@orion-agents/orion-code 0.3.24 → 0.3.26

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 (29) hide show
  1. package/CHANGELOG.md +60 -4
  2. package/README.md +8 -5
  3. package/README.zh-CN.md +6 -4
  4. package/dist/runtime/legacy-thread-materializer.d.ts +13 -0
  5. package/dist/runtime/legacy-thread-materializer.js +72 -0
  6. package/dist/runtime/model-coordinator.d.ts +1 -0
  7. package/dist/runtime/model-coordinator.js +9 -2
  8. package/dist/runtime/session-composer-control.js +5 -1
  9. package/dist/services/session-storage.js +21 -0
  10. package/dist/services/workspace-registry.d.ts +9 -0
  11. package/dist/services/workspace-registry.js +13 -2
  12. package/dist/web/git-diff-document.d.ts +19 -0
  13. package/dist/web/git-diff-document.js +46 -2
  14. package/dist/web/git-history-service.js +3 -0
  15. package/dist/web/git-read-model-service.d.ts +9 -0
  16. package/dist/web/git-read-model-service.js +111 -5
  17. package/dist/web/git-version-service.d.ts +8 -0
  18. package/dist/web/git-version-service.js +50 -26
  19. package/dist/web/protocol.d.ts +5 -0
  20. package/dist/web/workbench-controller.js +1 -0
  21. package/dist/web-client/assets/{FilesPanel-BjEDjE7l.js → FilesPanel-CdoCa8u0.js} +1 -1
  22. package/dist/web-client/assets/{GitPanel-DvgAZDRA.js → GitPanel-CRr_iIDz.js} +1 -1
  23. package/dist/web-client/assets/{ReviewPanel-BMPaYKDY.js → ReviewPanel-C1Cu2IRV.js} +1 -1
  24. package/dist/web-client/assets/{TerminalPanel-Da1ZEhGF.js → TerminalPanel-BniCjatZ.js} +1 -1
  25. package/dist/web-client/assets/{index-DZOlUgt6.js → index-kQqA3li6.js} +11 -11
  26. package/dist/web-client/assets/{useAutoNotice-Ylj5bfSH.js → useAutoNotice-DPXFWIwK.js} +1 -1
  27. package/dist/web-client/index.html +1 -1
  28. package/npm-shrinkwrap.json +2 -2
  29. package/package.json +1 -1
@@ -1,20 +1,20 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/TerminalPanel-Da1ZEhGF.js","assets/TerminalPanel-DLuoa74B.css","assets/FilesPanel-BjEDjE7l.js","assets/useAutoNotice-Ylj5bfSH.js","assets/GitPanel-DvgAZDRA.js","assets/ReviewPanel-BMPaYKDY.js"])))=>i.map(i=>d[i]);
2
- var Em=Object.defineProperty;var Rm=(t,r,i)=>r in t?Em(t,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[r]=i;var Vt=(t,r,i)=>Rm(t,typeof r!="symbol"?r+"":r,i);(function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const d of document.querySelectorAll('link[rel="modulepreload"]'))a(d);new MutationObserver(d=>{for(const f of d)if(f.type==="childList")for(const p of f.addedNodes)p.tagName==="LINK"&&p.rel==="modulepreload"&&a(p)}).observe(document,{childList:!0,subtree:!0});function i(d){const f={};return d.integrity&&(f.integrity=d.integrity),d.referrerPolicy&&(f.referrerPolicy=d.referrerPolicy),d.crossOrigin==="use-credentials"?f.credentials="include":d.crossOrigin==="anonymous"?f.credentials="omit":f.credentials="same-origin",f}function a(d){if(d.ep)return;d.ep=!0;const f=i(d);fetch(d.href,f)}})();function ap(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var nc={exports:{}},fo={},rc={exports:{}},Te={};var of;function Pm(){if(of)return Te;of=1;var t=Symbol.for("react.element"),r=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),d=Symbol.for("react.profiler"),f=Symbol.for("react.provider"),p=Symbol.for("react.context"),g=Symbol.for("react.forward_ref"),x=Symbol.for("react.suspense"),k=Symbol.for("react.memo"),b=Symbol.for("react.lazy"),j=Symbol.iterator;function N(v){return v===null||typeof v!="object"?null:(v=j&&v[j]||v["@@iterator"],typeof v=="function"?v:null)}var E={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},z=Object.assign,L={};function G(v,R,ue){this.props=v,this.context=R,this.refs=L,this.updater=ue||E}G.prototype.isReactComponent={},G.prototype.setState=function(v,R){if(typeof v!="object"&&typeof v!="function"&&v!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,v,R,"setState")},G.prototype.forceUpdate=function(v){this.updater.enqueueForceUpdate(this,v,"forceUpdate")};function ne(){}ne.prototype=G.prototype;function U(v,R,ue){this.props=v,this.context=R,this.refs=L,this.updater=ue||E}var se=U.prototype=new ne;se.constructor=U,z(se,G.prototype),se.isPureReactComponent=!0;var ie=Array.isArray,Y=Object.prototype.hasOwnProperty,A={current:null},F={key:!0,ref:!0,__self:!0,__source:!0};function ge(v,R,ue){var fe,ke={},re=null,he=null;if(R!=null)for(fe in R.ref!==void 0&&(he=R.ref),R.key!==void 0&&(re=""+R.key),R)Y.call(R,fe)&&!F.hasOwnProperty(fe)&&(ke[fe]=R[fe]);var je=arguments.length-2;if(je===1)ke.children=ue;else if(1<je){for(var le=Array(je),Me=0;Me<je;Me++)le[Me]=arguments[Me+2];ke.children=le}if(v&&v.defaultProps)for(fe in je=v.defaultProps,je)ke[fe]===void 0&&(ke[fe]=je[fe]);return{$$typeof:t,type:v,key:re,ref:he,props:ke,_owner:A.current}}function Ie(v,R){return{$$typeof:t,type:v.type,key:R,ref:v.ref,props:v.props,_owner:v._owner}}function we(v){return typeof v=="object"&&v!==null&&v.$$typeof===t}function te(v){var R={"=":"=0",":":"=2"};return"$"+v.replace(/[=:]/g,function(ue){return R[ue]})}var ye=/\/+/g;function J(v,R){return typeof v=="object"&&v!==null&&v.key!=null?te(""+v.key):R.toString(36)}function Se(v,R,ue,fe,ke){var re=typeof v;(re==="undefined"||re==="boolean")&&(v=null);var he=!1;if(v===null)he=!0;else switch(re){case"string":case"number":he=!0;break;case"object":switch(v.$$typeof){case t:case r:he=!0}}if(he)return he=v,ke=ke(he),v=fe===""?"."+J(he,0):fe,ie(ke)?(ue="",v!=null&&(ue=v.replace(ye,"$&/")+"/"),Se(ke,R,ue,"",function(Me){return Me})):ke!=null&&(we(ke)&&(ke=Ie(ke,ue+(!ke.key||he&&he.key===ke.key?"":(""+ke.key).replace(ye,"$&/")+"/")+v)),R.push(ke)),1;if(he=0,fe=fe===""?".":fe+":",ie(v))for(var je=0;je<v.length;je++){re=v[je];var le=fe+J(re,je);he+=Se(re,R,ue,le,ke)}else if(le=N(v),typeof le=="function")for(v=le.call(v),je=0;!(re=v.next()).done;)re=re.value,le=fe+J(re,je++),he+=Se(re,R,ue,le,ke);else if(re==="object")throw R=String(v),Error("Objects are not valid as a React child (found: "+(R==="[object Object]"?"object with keys {"+Object.keys(v).join(", ")+"}":R)+"). If you meant to render a collection of children, use an array instead.");return he}function D(v,R,ue){if(v==null)return v;var fe=[],ke=0;return Se(v,fe,"","",function(re){return R.call(ue,re,ke++)}),fe}function ce(v){if(v._status===-1){var R=v._result;R=R(),R.then(function(ue){(v._status===0||v._status===-1)&&(v._status=1,v._result=ue)},function(ue){(v._status===0||v._status===-1)&&(v._status=2,v._result=ue)}),v._status===-1&&(v._status=0,v._result=R)}if(v._status===1)return v._result.default;throw v._result}var W={current:null},T={transition:null},B={ReactCurrentDispatcher:W,ReactCurrentBatchConfig:T,ReactCurrentOwner:A};function $(){throw Error("act(...) is not supported in production builds of React.")}return Te.Children={map:D,forEach:function(v,R,ue){D(v,function(){R.apply(this,arguments)},ue)},count:function(v){var R=0;return D(v,function(){R++}),R},toArray:function(v){return D(v,function(R){return R})||[]},only:function(v){if(!we(v))throw Error("React.Children.only expected to receive a single React element child.");return v}},Te.Component=G,Te.Fragment=i,Te.Profiler=d,Te.PureComponent=U,Te.StrictMode=a,Te.Suspense=x,Te.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=B,Te.act=$,Te.cloneElement=function(v,R,ue){if(v==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+v+".");var fe=z({},v.props),ke=v.key,re=v.ref,he=v._owner;if(R!=null){if(R.ref!==void 0&&(re=R.ref,he=A.current),R.key!==void 0&&(ke=""+R.key),v.type&&v.type.defaultProps)var je=v.type.defaultProps;for(le in R)Y.call(R,le)&&!F.hasOwnProperty(le)&&(fe[le]=R[le]===void 0&&je!==void 0?je[le]:R[le])}var le=arguments.length-2;if(le===1)fe.children=ue;else if(1<le){je=Array(le);for(var Me=0;Me<le;Me++)je[Me]=arguments[Me+2];fe.children=je}return{$$typeof:t,type:v.type,key:ke,ref:re,props:fe,_owner:he}},Te.createContext=function(v){return v={$$typeof:p,_currentValue:v,_currentValue2:v,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},v.Provider={$$typeof:f,_context:v},v.Consumer=v},Te.createElement=ge,Te.createFactory=function(v){var R=ge.bind(null,v);return R.type=v,R},Te.createRef=function(){return{current:null}},Te.forwardRef=function(v){return{$$typeof:g,render:v}},Te.isValidElement=we,Te.lazy=function(v){return{$$typeof:b,_payload:{_status:-1,_result:v},_init:ce}},Te.memo=function(v,R){return{$$typeof:k,type:v,compare:R===void 0?null:R}},Te.startTransition=function(v){var R=T.transition;T.transition={};try{v()}finally{T.transition=R}},Te.unstable_act=$,Te.useCallback=function(v,R){return W.current.useCallback(v,R)},Te.useContext=function(v){return W.current.useContext(v)},Te.useDebugValue=function(){},Te.useDeferredValue=function(v){return W.current.useDeferredValue(v)},Te.useEffect=function(v,R){return W.current.useEffect(v,R)},Te.useId=function(){return W.current.useId()},Te.useImperativeHandle=function(v,R,ue){return W.current.useImperativeHandle(v,R,ue)},Te.useInsertionEffect=function(v,R){return W.current.useInsertionEffect(v,R)},Te.useLayoutEffect=function(v,R){return W.current.useLayoutEffect(v,R)},Te.useMemo=function(v,R){return W.current.useMemo(v,R)},Te.useReducer=function(v,R,ue){return W.current.useReducer(v,R,ue)},Te.useRef=function(v){return W.current.useRef(v)},Te.useState=function(v){return W.current.useState(v)},Te.useSyncExternalStore=function(v,R,ue){return W.current.useSyncExternalStore(v,R,ue)},Te.useTransition=function(){return W.current.useTransition()},Te.version="18.3.1",Te}var lf;function Rc(){return lf||(lf=1,rc.exports=Pm()),rc.exports}var af;function Tm(){if(af)return fo;af=1;var t=Rc(),r=Symbol.for("react.element"),i=Symbol.for("react.fragment"),a=Object.prototype.hasOwnProperty,d=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,f={key:!0,ref:!0,__self:!0,__source:!0};function p(g,x,k){var b,j={},N=null,E=null;k!==void 0&&(N=""+k),x.key!==void 0&&(N=""+x.key),x.ref!==void 0&&(E=x.ref);for(b in x)a.call(x,b)&&!f.hasOwnProperty(b)&&(j[b]=x[b]);if(g&&g.defaultProps)for(b in x=g.defaultProps,x)j[b]===void 0&&(j[b]=x[b]);return{$$typeof:r,type:g,key:N,ref:E,props:j,_owner:d.current}}return fo.Fragment=i,fo.jsx=p,fo.jsxs=p,fo}var cf;function Om(){return cf||(cf=1,nc.exports=Tm()),nc.exports}var o=Om(),m=Rc();const Mm=ap(m);var qi={},sc={exports:{}},_t={},oc={exports:{}},ic={};var uf;function Lm(){return uf||(uf=1,(function(t){function r(T,B){var $=T.length;T.push(B);e:for(;0<$;){var v=$-1>>>1,R=T[v];if(0<d(R,B))T[v]=B,T[$]=R,$=v;else break e}}function i(T){return T.length===0?null:T[0]}function a(T){if(T.length===0)return null;var B=T[0],$=T.pop();if($!==B){T[0]=$;e:for(var v=0,R=T.length,ue=R>>>1;v<ue;){var fe=2*(v+1)-1,ke=T[fe],re=fe+1,he=T[re];if(0>d(ke,$))re<R&&0>d(he,ke)?(T[v]=he,T[re]=$,v=re):(T[v]=ke,T[fe]=$,v=fe);else if(re<R&&0>d(he,$))T[v]=he,T[re]=$,v=re;else break e}}return B}function d(T,B){var $=T.sortIndex-B.sortIndex;return $!==0?$:T.id-B.id}if(typeof performance=="object"&&typeof performance.now=="function"){var f=performance;t.unstable_now=function(){return f.now()}}else{var p=Date,g=p.now();t.unstable_now=function(){return p.now()-g}}var x=[],k=[],b=1,j=null,N=3,E=!1,z=!1,L=!1,G=typeof setTimeout=="function"?setTimeout:null,ne=typeof clearTimeout=="function"?clearTimeout:null,U=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function se(T){for(var B=i(k);B!==null;){if(B.callback===null)a(k);else if(B.startTime<=T)a(k),B.sortIndex=B.expirationTime,r(x,B);else break;B=i(k)}}function ie(T){if(L=!1,se(T),!z)if(i(x)!==null)z=!0,ce(Y);else{var B=i(k);B!==null&&W(ie,B.startTime-T)}}function Y(T,B){z=!1,L&&(L=!1,ne(ge),ge=-1),E=!0;var $=N;try{for(se(B),j=i(x);j!==null&&(!(j.expirationTime>B)||T&&!te());){var v=j.callback;if(typeof v=="function"){j.callback=null,N=j.priorityLevel;var R=v(j.expirationTime<=B);B=t.unstable_now(),typeof R=="function"?j.callback=R:j===i(x)&&a(x),se(B)}else a(x);j=i(x)}if(j!==null)var ue=!0;else{var fe=i(k);fe!==null&&W(ie,fe.startTime-B),ue=!1}return ue}finally{j=null,N=$,E=!1}}var A=!1,F=null,ge=-1,Ie=5,we=-1;function te(){return!(t.unstable_now()-we<Ie)}function ye(){if(F!==null){var T=t.unstable_now();we=T;var B=!0;try{B=F(!0,T)}finally{B?J():(A=!1,F=null)}}else A=!1}var J;if(typeof U=="function")J=function(){U(ye)};else if(typeof MessageChannel<"u"){var Se=new MessageChannel,D=Se.port2;Se.port1.onmessage=ye,J=function(){D.postMessage(null)}}else J=function(){G(ye,0)};function ce(T){F=T,A||(A=!0,J())}function W(T,B){ge=G(function(){T(t.unstable_now())},B)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(T){T.callback=null},t.unstable_continueExecution=function(){z||E||(z=!0,ce(Y))},t.unstable_forceFrameRate=function(T){0>T||125<T?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):Ie=0<T?Math.floor(1e3/T):5},t.unstable_getCurrentPriorityLevel=function(){return N},t.unstable_getFirstCallbackNode=function(){return i(x)},t.unstable_next=function(T){switch(N){case 1:case 2:case 3:var B=3;break;default:B=N}var $=N;N=B;try{return T()}finally{N=$}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(T,B){switch(T){case 1:case 2:case 3:case 4:case 5:break;default:T=3}var $=N;N=T;try{return B()}finally{N=$}},t.unstable_scheduleCallback=function(T,B,$){var v=t.unstable_now();switch(typeof $=="object"&&$!==null?($=$.delay,$=typeof $=="number"&&0<$?v+$:v):$=v,T){case 1:var R=-1;break;case 2:R=250;break;case 5:R=1073741823;break;case 4:R=1e4;break;default:R=5e3}return R=$+R,T={id:b++,callback:B,priorityLevel:T,startTime:$,expirationTime:R,sortIndex:-1},$>v?(T.sortIndex=$,r(k,T),i(x)===null&&T===i(k)&&(L?(ne(ge),ge=-1):L=!0,W(ie,$-v))):(T.sortIndex=R,r(x,T),z||E||(z=!0,ce(Y))),T},t.unstable_shouldYield=te,t.unstable_wrapCallback=function(T){var B=N;return function(){var $=N;N=B;try{return T.apply(this,arguments)}finally{N=$}}}})(ic)),ic}var df;function Am(){return df||(df=1,oc.exports=Lm()),oc.exports}var ff;function $m(){if(ff)return _t;ff=1;var t=Rc(),r=Am();function i(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,s=1;s<arguments.length;s++)n+="&args[]="+encodeURIComponent(arguments[s]);return"Minified React error #"+e+"; visit "+n+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var a=new Set,d={};function f(e,n){p(e,n),p(e+"Capture",n)}function p(e,n){for(d[e]=n,e=0;e<n.length;e++)a.add(n[e])}var g=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),x=Object.prototype.hasOwnProperty,k=/^[: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]*$/,b={},j={};function N(e){return x.call(j,e)?!0:x.call(b,e)?!1:k.test(e)?j[e]=!0:(b[e]=!0,!1)}function E(e,n,s,l){if(s!==null&&s.type===0)return!1;switch(typeof n){case"function":case"symbol":return!0;case"boolean":return l?!1:s!==null?!s.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function z(e,n,s,l){if(n===null||typeof n>"u"||E(e,n,s,l))return!0;if(l)return!1;if(s!==null)switch(s.type){case 3:return!n;case 4:return n===!1;case 5:return isNaN(n);case 6:return isNaN(n)||1>n}return!1}function L(e,n,s,l,c,u,h){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=l,this.attributeNamespace=c,this.mustUseProperty=s,this.propertyName=e,this.type=n,this.sanitizeURL=u,this.removeEmptyString=h}var G={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){G[e]=new L(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var n=e[0];G[n]=new L(n,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){G[e]=new L(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){G[e]=new L(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){G[e]=new L(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){G[e]=new L(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){G[e]=new L(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){G[e]=new L(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){G[e]=new L(e,5,!1,e.toLowerCase(),null,!1,!1)});var ne=/[\-:]([a-z])/g;function U(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var n=e.replace(ne,U);G[n]=new L(n,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var n=e.replace(ne,U);G[n]=new L(n,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var n=e.replace(ne,U);G[n]=new L(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){G[e]=new L(e,1,!1,e.toLowerCase(),null,!1,!1)}),G.xlinkHref=new L("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){G[e]=new L(e,1,!1,e.toLowerCase(),null,!0,!0)});function se(e,n,s,l){var c=G.hasOwnProperty(n)?G[n]:null;(c!==null?c.type!==0:l||!(2<n.length)||n[0]!=="o"&&n[0]!=="O"||n[1]!=="n"&&n[1]!=="N")&&(z(n,s,c,l)&&(s=null),l||c===null?N(n)&&(s===null?e.removeAttribute(n):e.setAttribute(n,""+s)):c.mustUseProperty?e[c.propertyName]=s===null?c.type===3?!1:"":s:(n=c.attributeName,l=c.attributeNamespace,s===null?e.removeAttribute(n):(c=c.type,s=c===3||c===4&&s===!0?"":""+s,l?e.setAttributeNS(l,n,s):e.setAttribute(n,s))))}var ie=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,Y=Symbol.for("react.element"),A=Symbol.for("react.portal"),F=Symbol.for("react.fragment"),ge=Symbol.for("react.strict_mode"),Ie=Symbol.for("react.profiler"),we=Symbol.for("react.provider"),te=Symbol.for("react.context"),ye=Symbol.for("react.forward_ref"),J=Symbol.for("react.suspense"),Se=Symbol.for("react.suspense_list"),D=Symbol.for("react.memo"),ce=Symbol.for("react.lazy"),W=Symbol.for("react.offscreen"),T=Symbol.iterator;function B(e){return e===null||typeof e!="object"?null:(e=T&&e[T]||e["@@iterator"],typeof e=="function"?e:null)}var $=Object.assign,v;function R(e){if(v===void 0)try{throw Error()}catch(s){var n=s.stack.trim().match(/\n( *(at )?)/);v=n&&n[1]||""}return`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/TerminalPanel-BniCjatZ.js","assets/TerminalPanel-DLuoa74B.css","assets/FilesPanel-CdoCa8u0.js","assets/useAutoNotice-DPXFWIwK.js","assets/GitPanel-CRr_iIDz.js","assets/ReviewPanel-C1Cu2IRV.js"])))=>i.map(i=>d[i]);
2
+ var Em=Object.defineProperty;var Rm=(t,r,i)=>r in t?Em(t,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[r]=i;var Vt=(t,r,i)=>Rm(t,typeof r!="symbol"?r+"":r,i);(function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const d of document.querySelectorAll('link[rel="modulepreload"]'))a(d);new MutationObserver(d=>{for(const f of d)if(f.type==="childList")for(const p of f.addedNodes)p.tagName==="LINK"&&p.rel==="modulepreload"&&a(p)}).observe(document,{childList:!0,subtree:!0});function i(d){const f={};return d.integrity&&(f.integrity=d.integrity),d.referrerPolicy&&(f.referrerPolicy=d.referrerPolicy),d.crossOrigin==="use-credentials"?f.credentials="include":d.crossOrigin==="anonymous"?f.credentials="omit":f.credentials="same-origin",f}function a(d){if(d.ep)return;d.ep=!0;const f=i(d);fetch(d.href,f)}})();function ap(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var nc={exports:{}},fo={},rc={exports:{}},Te={};var of;function Pm(){if(of)return Te;of=1;var t=Symbol.for("react.element"),r=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),d=Symbol.for("react.profiler"),f=Symbol.for("react.provider"),p=Symbol.for("react.context"),g=Symbol.for("react.forward_ref"),x=Symbol.for("react.suspense"),k=Symbol.for("react.memo"),b=Symbol.for("react.lazy"),j=Symbol.iterator;function N(v){return v===null||typeof v!="object"?null:(v=j&&v[j]||v["@@iterator"],typeof v=="function"?v:null)}var E={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},z=Object.assign,A={};function G(v,R,ue){this.props=v,this.context=R,this.refs=A,this.updater=ue||E}G.prototype.isReactComponent={},G.prototype.setState=function(v,R){if(typeof v!="object"&&typeof v!="function"&&v!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,v,R,"setState")},G.prototype.forceUpdate=function(v){this.updater.enqueueForceUpdate(this,v,"forceUpdate")};function ne(){}ne.prototype=G.prototype;function U(v,R,ue){this.props=v,this.context=R,this.refs=A,this.updater=ue||E}var se=U.prototype=new ne;se.constructor=U,z(se,G.prototype),se.isPureReactComponent=!0;var ie=Array.isArray,Y=Object.prototype.hasOwnProperty,L={current:null},F={key:!0,ref:!0,__self:!0,__source:!0};function ge(v,R,ue){var fe,ke={},re=null,he=null;if(R!=null)for(fe in R.ref!==void 0&&(he=R.ref),R.key!==void 0&&(re=""+R.key),R)Y.call(R,fe)&&!F.hasOwnProperty(fe)&&(ke[fe]=R[fe]);var je=arguments.length-2;if(je===1)ke.children=ue;else if(1<je){for(var le=Array(je),Me=0;Me<je;Me++)le[Me]=arguments[Me+2];ke.children=le}if(v&&v.defaultProps)for(fe in je=v.defaultProps,je)ke[fe]===void 0&&(ke[fe]=je[fe]);return{$$typeof:t,type:v,key:re,ref:he,props:ke,_owner:L.current}}function Ie(v,R){return{$$typeof:t,type:v.type,key:R,ref:v.ref,props:v.props,_owner:v._owner}}function we(v){return typeof v=="object"&&v!==null&&v.$$typeof===t}function te(v){var R={"=":"=0",":":"=2"};return"$"+v.replace(/[=:]/g,function(ue){return R[ue]})}var ye=/\/+/g;function J(v,R){return typeof v=="object"&&v!==null&&v.key!=null?te(""+v.key):R.toString(36)}function Se(v,R,ue,fe,ke){var re=typeof v;(re==="undefined"||re==="boolean")&&(v=null);var he=!1;if(v===null)he=!0;else switch(re){case"string":case"number":he=!0;break;case"object":switch(v.$$typeof){case t:case r:he=!0}}if(he)return he=v,ke=ke(he),v=fe===""?"."+J(he,0):fe,ie(ke)?(ue="",v!=null&&(ue=v.replace(ye,"$&/")+"/"),Se(ke,R,ue,"",function(Me){return Me})):ke!=null&&(we(ke)&&(ke=Ie(ke,ue+(!ke.key||he&&he.key===ke.key?"":(""+ke.key).replace(ye,"$&/")+"/")+v)),R.push(ke)),1;if(he=0,fe=fe===""?".":fe+":",ie(v))for(var je=0;je<v.length;je++){re=v[je];var le=fe+J(re,je);he+=Se(re,R,ue,le,ke)}else if(le=N(v),typeof le=="function")for(v=le.call(v),je=0;!(re=v.next()).done;)re=re.value,le=fe+J(re,je++),he+=Se(re,R,ue,le,ke);else if(re==="object")throw R=String(v),Error("Objects are not valid as a React child (found: "+(R==="[object Object]"?"object with keys {"+Object.keys(v).join(", ")+"}":R)+"). If you meant to render a collection of children, use an array instead.");return he}function D(v,R,ue){if(v==null)return v;var fe=[],ke=0;return Se(v,fe,"","",function(re){return R.call(ue,re,ke++)}),fe}function ce(v){if(v._status===-1){var R=v._result;R=R(),R.then(function(ue){(v._status===0||v._status===-1)&&(v._status=1,v._result=ue)},function(ue){(v._status===0||v._status===-1)&&(v._status=2,v._result=ue)}),v._status===-1&&(v._status=0,v._result=R)}if(v._status===1)return v._result.default;throw v._result}var W={current:null},T={transition:null},B={ReactCurrentDispatcher:W,ReactCurrentBatchConfig:T,ReactCurrentOwner:L};function $(){throw Error("act(...) is not supported in production builds of React.")}return Te.Children={map:D,forEach:function(v,R,ue){D(v,function(){R.apply(this,arguments)},ue)},count:function(v){var R=0;return D(v,function(){R++}),R},toArray:function(v){return D(v,function(R){return R})||[]},only:function(v){if(!we(v))throw Error("React.Children.only expected to receive a single React element child.");return v}},Te.Component=G,Te.Fragment=i,Te.Profiler=d,Te.PureComponent=U,Te.StrictMode=a,Te.Suspense=x,Te.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=B,Te.act=$,Te.cloneElement=function(v,R,ue){if(v==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+v+".");var fe=z({},v.props),ke=v.key,re=v.ref,he=v._owner;if(R!=null){if(R.ref!==void 0&&(re=R.ref,he=L.current),R.key!==void 0&&(ke=""+R.key),v.type&&v.type.defaultProps)var je=v.type.defaultProps;for(le in R)Y.call(R,le)&&!F.hasOwnProperty(le)&&(fe[le]=R[le]===void 0&&je!==void 0?je[le]:R[le])}var le=arguments.length-2;if(le===1)fe.children=ue;else if(1<le){je=Array(le);for(var Me=0;Me<le;Me++)je[Me]=arguments[Me+2];fe.children=je}return{$$typeof:t,type:v.type,key:ke,ref:re,props:fe,_owner:he}},Te.createContext=function(v){return v={$$typeof:p,_currentValue:v,_currentValue2:v,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},v.Provider={$$typeof:f,_context:v},v.Consumer=v},Te.createElement=ge,Te.createFactory=function(v){var R=ge.bind(null,v);return R.type=v,R},Te.createRef=function(){return{current:null}},Te.forwardRef=function(v){return{$$typeof:g,render:v}},Te.isValidElement=we,Te.lazy=function(v){return{$$typeof:b,_payload:{_status:-1,_result:v},_init:ce}},Te.memo=function(v,R){return{$$typeof:k,type:v,compare:R===void 0?null:R}},Te.startTransition=function(v){var R=T.transition;T.transition={};try{v()}finally{T.transition=R}},Te.unstable_act=$,Te.useCallback=function(v,R){return W.current.useCallback(v,R)},Te.useContext=function(v){return W.current.useContext(v)},Te.useDebugValue=function(){},Te.useDeferredValue=function(v){return W.current.useDeferredValue(v)},Te.useEffect=function(v,R){return W.current.useEffect(v,R)},Te.useId=function(){return W.current.useId()},Te.useImperativeHandle=function(v,R,ue){return W.current.useImperativeHandle(v,R,ue)},Te.useInsertionEffect=function(v,R){return W.current.useInsertionEffect(v,R)},Te.useLayoutEffect=function(v,R){return W.current.useLayoutEffect(v,R)},Te.useMemo=function(v,R){return W.current.useMemo(v,R)},Te.useReducer=function(v,R,ue){return W.current.useReducer(v,R,ue)},Te.useRef=function(v){return W.current.useRef(v)},Te.useState=function(v){return W.current.useState(v)},Te.useSyncExternalStore=function(v,R,ue){return W.current.useSyncExternalStore(v,R,ue)},Te.useTransition=function(){return W.current.useTransition()},Te.version="18.3.1",Te}var lf;function Rc(){return lf||(lf=1,rc.exports=Pm()),rc.exports}var af;function Tm(){if(af)return fo;af=1;var t=Rc(),r=Symbol.for("react.element"),i=Symbol.for("react.fragment"),a=Object.prototype.hasOwnProperty,d=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,f={key:!0,ref:!0,__self:!0,__source:!0};function p(g,x,k){var b,j={},N=null,E=null;k!==void 0&&(N=""+k),x.key!==void 0&&(N=""+x.key),x.ref!==void 0&&(E=x.ref);for(b in x)a.call(x,b)&&!f.hasOwnProperty(b)&&(j[b]=x[b]);if(g&&g.defaultProps)for(b in x=g.defaultProps,x)j[b]===void 0&&(j[b]=x[b]);return{$$typeof:r,type:g,key:N,ref:E,props:j,_owner:d.current}}return fo.Fragment=i,fo.jsx=p,fo.jsxs=p,fo}var cf;function Om(){return cf||(cf=1,nc.exports=Tm()),nc.exports}var o=Om(),m=Rc();const Mm=ap(m);var qi={},sc={exports:{}},_t={},oc={exports:{}},ic={};var uf;function Am(){return uf||(uf=1,(function(t){function r(T,B){var $=T.length;T.push(B);e:for(;0<$;){var v=$-1>>>1,R=T[v];if(0<d(R,B))T[v]=B,T[$]=R,$=v;else break e}}function i(T){return T.length===0?null:T[0]}function a(T){if(T.length===0)return null;var B=T[0],$=T.pop();if($!==B){T[0]=$;e:for(var v=0,R=T.length,ue=R>>>1;v<ue;){var fe=2*(v+1)-1,ke=T[fe],re=fe+1,he=T[re];if(0>d(ke,$))re<R&&0>d(he,ke)?(T[v]=he,T[re]=$,v=re):(T[v]=ke,T[fe]=$,v=fe);else if(re<R&&0>d(he,$))T[v]=he,T[re]=$,v=re;else break e}}return B}function d(T,B){var $=T.sortIndex-B.sortIndex;return $!==0?$:T.id-B.id}if(typeof performance=="object"&&typeof performance.now=="function"){var f=performance;t.unstable_now=function(){return f.now()}}else{var p=Date,g=p.now();t.unstable_now=function(){return p.now()-g}}var x=[],k=[],b=1,j=null,N=3,E=!1,z=!1,A=!1,G=typeof setTimeout=="function"?setTimeout:null,ne=typeof clearTimeout=="function"?clearTimeout:null,U=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function se(T){for(var B=i(k);B!==null;){if(B.callback===null)a(k);else if(B.startTime<=T)a(k),B.sortIndex=B.expirationTime,r(x,B);else break;B=i(k)}}function ie(T){if(A=!1,se(T),!z)if(i(x)!==null)z=!0,ce(Y);else{var B=i(k);B!==null&&W(ie,B.startTime-T)}}function Y(T,B){z=!1,A&&(A=!1,ne(ge),ge=-1),E=!0;var $=N;try{for(se(B),j=i(x);j!==null&&(!(j.expirationTime>B)||T&&!te());){var v=j.callback;if(typeof v=="function"){j.callback=null,N=j.priorityLevel;var R=v(j.expirationTime<=B);B=t.unstable_now(),typeof R=="function"?j.callback=R:j===i(x)&&a(x),se(B)}else a(x);j=i(x)}if(j!==null)var ue=!0;else{var fe=i(k);fe!==null&&W(ie,fe.startTime-B),ue=!1}return ue}finally{j=null,N=$,E=!1}}var L=!1,F=null,ge=-1,Ie=5,we=-1;function te(){return!(t.unstable_now()-we<Ie)}function ye(){if(F!==null){var T=t.unstable_now();we=T;var B=!0;try{B=F(!0,T)}finally{B?J():(L=!1,F=null)}}else L=!1}var J;if(typeof U=="function")J=function(){U(ye)};else if(typeof MessageChannel<"u"){var Se=new MessageChannel,D=Se.port2;Se.port1.onmessage=ye,J=function(){D.postMessage(null)}}else J=function(){G(ye,0)};function ce(T){F=T,L||(L=!0,J())}function W(T,B){ge=G(function(){T(t.unstable_now())},B)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(T){T.callback=null},t.unstable_continueExecution=function(){z||E||(z=!0,ce(Y))},t.unstable_forceFrameRate=function(T){0>T||125<T?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):Ie=0<T?Math.floor(1e3/T):5},t.unstable_getCurrentPriorityLevel=function(){return N},t.unstable_getFirstCallbackNode=function(){return i(x)},t.unstable_next=function(T){switch(N){case 1:case 2:case 3:var B=3;break;default:B=N}var $=N;N=B;try{return T()}finally{N=$}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(T,B){switch(T){case 1:case 2:case 3:case 4:case 5:break;default:T=3}var $=N;N=T;try{return B()}finally{N=$}},t.unstable_scheduleCallback=function(T,B,$){var v=t.unstable_now();switch(typeof $=="object"&&$!==null?($=$.delay,$=typeof $=="number"&&0<$?v+$:v):$=v,T){case 1:var R=-1;break;case 2:R=250;break;case 5:R=1073741823;break;case 4:R=1e4;break;default:R=5e3}return R=$+R,T={id:b++,callback:B,priorityLevel:T,startTime:$,expirationTime:R,sortIndex:-1},$>v?(T.sortIndex=$,r(k,T),i(x)===null&&T===i(k)&&(A?(ne(ge),ge=-1):A=!0,W(ie,$-v))):(T.sortIndex=R,r(x,T),z||E||(z=!0,ce(Y))),T},t.unstable_shouldYield=te,t.unstable_wrapCallback=function(T){var B=N;return function(){var $=N;N=B;try{return T.apply(this,arguments)}finally{N=$}}}})(ic)),ic}var df;function Lm(){return df||(df=1,oc.exports=Am()),oc.exports}var ff;function $m(){if(ff)return _t;ff=1;var t=Rc(),r=Lm();function i(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,s=1;s<arguments.length;s++)n+="&args[]="+encodeURIComponent(arguments[s]);return"Minified React error #"+e+"; visit "+n+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var a=new Set,d={};function f(e,n){p(e,n),p(e+"Capture",n)}function p(e,n){for(d[e]=n,e=0;e<n.length;e++)a.add(n[e])}var g=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),x=Object.prototype.hasOwnProperty,k=/^[: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]*$/,b={},j={};function N(e){return x.call(j,e)?!0:x.call(b,e)?!1:k.test(e)?j[e]=!0:(b[e]=!0,!1)}function E(e,n,s,l){if(s!==null&&s.type===0)return!1;switch(typeof n){case"function":case"symbol":return!0;case"boolean":return l?!1:s!==null?!s.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function z(e,n,s,l){if(n===null||typeof n>"u"||E(e,n,s,l))return!0;if(l)return!1;if(s!==null)switch(s.type){case 3:return!n;case 4:return n===!1;case 5:return isNaN(n);case 6:return isNaN(n)||1>n}return!1}function A(e,n,s,l,c,u,h){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=l,this.attributeNamespace=c,this.mustUseProperty=s,this.propertyName=e,this.type=n,this.sanitizeURL=u,this.removeEmptyString=h}var G={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){G[e]=new A(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var n=e[0];G[n]=new A(n,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){G[e]=new A(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){G[e]=new A(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){G[e]=new A(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){G[e]=new A(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){G[e]=new A(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){G[e]=new A(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){G[e]=new A(e,5,!1,e.toLowerCase(),null,!1,!1)});var ne=/[\-:]([a-z])/g;function U(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var n=e.replace(ne,U);G[n]=new A(n,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var n=e.replace(ne,U);G[n]=new A(n,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var n=e.replace(ne,U);G[n]=new A(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){G[e]=new A(e,1,!1,e.toLowerCase(),null,!1,!1)}),G.xlinkHref=new A("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){G[e]=new A(e,1,!1,e.toLowerCase(),null,!0,!0)});function se(e,n,s,l){var c=G.hasOwnProperty(n)?G[n]:null;(c!==null?c.type!==0:l||!(2<n.length)||n[0]!=="o"&&n[0]!=="O"||n[1]!=="n"&&n[1]!=="N")&&(z(n,s,c,l)&&(s=null),l||c===null?N(n)&&(s===null?e.removeAttribute(n):e.setAttribute(n,""+s)):c.mustUseProperty?e[c.propertyName]=s===null?c.type===3?!1:"":s:(n=c.attributeName,l=c.attributeNamespace,s===null?e.removeAttribute(n):(c=c.type,s=c===3||c===4&&s===!0?"":""+s,l?e.setAttributeNS(l,n,s):e.setAttribute(n,s))))}var ie=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,Y=Symbol.for("react.element"),L=Symbol.for("react.portal"),F=Symbol.for("react.fragment"),ge=Symbol.for("react.strict_mode"),Ie=Symbol.for("react.profiler"),we=Symbol.for("react.provider"),te=Symbol.for("react.context"),ye=Symbol.for("react.forward_ref"),J=Symbol.for("react.suspense"),Se=Symbol.for("react.suspense_list"),D=Symbol.for("react.memo"),ce=Symbol.for("react.lazy"),W=Symbol.for("react.offscreen"),T=Symbol.iterator;function B(e){return e===null||typeof e!="object"?null:(e=T&&e[T]||e["@@iterator"],typeof e=="function"?e:null)}var $=Object.assign,v;function R(e){if(v===void 0)try{throw Error()}catch(s){var n=s.stack.trim().match(/\n( *(at )?)/);v=n&&n[1]||""}return`
3
3
  `+v+e}var ue=!1;function fe(e,n){if(!e||ue)return"";ue=!0;var s=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(n)if(n=function(){throw Error()},Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(n,[])}catch(O){var l=O}Reflect.construct(e,[],n)}else{try{n.call()}catch(O){l=O}e.call(n.prototype)}else{try{throw Error()}catch(O){l=O}e()}}catch(O){if(O&&l&&typeof O.stack=="string"){for(var c=O.stack.split(`
4
4
  `),u=l.stack.split(`
5
5
  `),h=c.length-1,w=u.length-1;1<=h&&0<=w&&c[h]!==u[w];)w--;for(;1<=h&&0<=w;h--,w--)if(c[h]!==u[w]){if(h!==1||w!==1)do if(h--,w--,0>w||c[h]!==u[w]){var S=`
6
- `+c[h].replace(" at new "," at ");return e.displayName&&S.includes("<anonymous>")&&(S=S.replace("<anonymous>",e.displayName)),S}while(1<=h&&0<=w);break}}}finally{ue=!1,Error.prepareStackTrace=s}return(e=e?e.displayName||e.name:"")?R(e):""}function ke(e){switch(e.tag){case 5:return R(e.type);case 16:return R("Lazy");case 13:return R("Suspense");case 19:return R("SuspenseList");case 0:case 2:case 15:return e=fe(e.type,!1),e;case 11:return e=fe(e.type.render,!1),e;case 1:return e=fe(e.type,!0),e;default:return""}}function re(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case F:return"Fragment";case A:return"Portal";case Ie:return"Profiler";case ge:return"StrictMode";case J:return"Suspense";case Se:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case te:return(e.displayName||"Context")+".Consumer";case we:return(e._context.displayName||"Context")+".Provider";case ye:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case D:return n=e.displayName||null,n!==null?n:re(e.type)||"Memo";case ce:n=e._payload,e=e._init;try{return re(e(n))}catch{}}return null}function he(e){var n=e.type;switch(e.tag){case 24:return"Cache";case 9:return(n.displayName||"Context")+".Consumer";case 10:return(n._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=n.render,e=e.displayName||e.name||"",n.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return n;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return re(n);case 8:return n===ge?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n}return null}function je(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function le(e){var n=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function Me(e){var n=le(e)?"checked":"value",s=Object.getOwnPropertyDescriptor(e.constructor.prototype,n),l=""+e[n];if(!e.hasOwnProperty(n)&&typeof s<"u"&&typeof s.get=="function"&&typeof s.set=="function"){var c=s.get,u=s.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return c.call(this)},set:function(h){l=""+h,u.call(this,h)}}),Object.defineProperty(e,n,{enumerable:s.enumerable}),{getValue:function(){return l},setValue:function(h){l=""+h},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}function Ke(e){e._valueTracker||(e._valueTracker=Me(e))}function tt(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var s=n.getValue(),l="";return e&&(l=le(e)?e.checked?"true":"false":e.value),e=l,e!==s?(n.setValue(e),!0):!1}function st(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}}function lt(e,n){var s=n.checked;return $({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:s??e._wrapperState.initialChecked})}function dt(e,n){var s=n.defaultValue==null?"":n.defaultValue,l=n.checked!=null?n.checked:n.defaultChecked;s=je(n.value!=null?n.value:s),e._wrapperState={initialChecked:l,initialValue:s,controlled:n.type==="checkbox"||n.type==="radio"?n.checked!=null:n.value!=null}}function ln(e,n){n=n.checked,n!=null&&se(e,"checked",n,!1)}function q(e,n){ln(e,n);var s=je(n.value),l=n.type;if(s!=null)l==="number"?(s===0&&e.value===""||e.value!=s)&&(e.value=""+s):e.value!==""+s&&(e.value=""+s);else if(l==="submit"||l==="reset"){e.removeAttribute("value");return}n.hasOwnProperty("value")?qe(e,n.type,s):n.hasOwnProperty("defaultValue")&&qe(e,n.type,je(n.defaultValue)),n.checked==null&&n.defaultChecked!=null&&(e.defaultChecked=!!n.defaultChecked)}function Re(e,n,s){if(n.hasOwnProperty("value")||n.hasOwnProperty("defaultValue")){var l=n.type;if(!(l!=="submit"&&l!=="reset"||n.value!==void 0&&n.value!==null))return;n=""+e._wrapperState.initialValue,s||n===e.value||(e.value=n),e.defaultValue=n}s=e.name,s!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,s!==""&&(e.name=s)}function qe(e,n,s){(n!=="number"||st(e.ownerDocument)!==e)&&(s==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+s&&(e.defaultValue=""+s))}var Ze=Array.isArray;function kt(e,n,s,l){if(e=e.options,n){n={};for(var c=0;c<s.length;c++)n["$"+s[c]]=!0;for(s=0;s<e.length;s++)c=n.hasOwnProperty("$"+e[s].value),e[s].selected!==c&&(e[s].selected=c),c&&l&&(e[s].defaultSelected=!0)}else{for(s=""+je(s),n=null,c=0;c<e.length;c++){if(e[c].value===s){e[c].selected=!0,l&&(e[c].defaultSelected=!0);return}n!==null||e[c].disabled||(n=e[c])}n!==null&&(n.selected=!0)}}function Mn(e,n){if(n.dangerouslySetInnerHTML!=null)throw Error(i(91));return $({},n,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ar(e,n){var s=n.value;if(s==null){if(s=n.children,n=n.defaultValue,s!=null){if(n!=null)throw Error(i(92));if(Ze(s)){if(1<s.length)throw Error(i(93));s=s[0]}n=s}n==null&&(n=""),s=n}e._wrapperState={initialValue:je(s)}}function cr(e,n){var s=je(n.value),l=je(n.defaultValue);s!=null&&(s=""+s,s!==e.value&&(e.value=s),n.defaultValue==null&&e.defaultValue!==s&&(e.defaultValue=s)),l!=null&&(e.defaultValue=""+l)}function yt(e){var n=e.textContent;n===e._wrapperState.initialValue&&n!==""&&n!==null&&(e.value=n)}function ur(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Ln(e,n){return e==null||e==="http://www.w3.org/1999/xhtml"?ur(n):e==="http://www.w3.org/2000/svg"&&n==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var $t,An=(function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(n,s,l,c){MSApp.execUnsafeLocalFunction(function(){return e(n,s,l,c)})}:e})(function(e,n){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=n;else{for($t=$t||document.createElement("div"),$t.innerHTML="<svg>"+n.valueOf().toString()+"</svg>",n=$t.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}});function an(e,n){if(n){var s=e.firstChild;if(s&&s===e.lastChild&&s.nodeType===3){s.nodeValue=n;return}}e.textContent=n}var Z={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Ne=["Webkit","ms","Moz","O"];Object.keys(Z).forEach(function(e){Ne.forEach(function(n){n=n+e.charAt(0).toUpperCase()+e.substring(1),Z[n]=Z[e]})});function Pe(e,n,s){return n==null||typeof n=="boolean"||n===""?"":s||typeof n!="number"||n===0||Z.hasOwnProperty(e)&&Z[e]?(""+n).trim():n+"px"}function Ue(e,n){e=e.style;for(var s in n)if(n.hasOwnProperty(s)){var l=s.indexOf("--")===0,c=Pe(s,n[s],l);s==="float"&&(s="cssFloat"),l?e.setProperty(s,c):e[s]=c}}var Qt=$({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function cn(e,n){if(n){if(Qt[e]&&(n.children!=null||n.dangerouslySetInnerHTML!=null))throw Error(i(137,e));if(n.dangerouslySetInnerHTML!=null){if(n.children!=null)throw Error(i(60));if(typeof n.dangerouslySetInnerHTML!="object"||!("__html"in n.dangerouslySetInnerHTML))throw Error(i(61))}if(n.style!=null&&typeof n.style!="object")throw Error(i(62))}}function un(e,n){if(e.indexOf("-")===-1)return typeof n.is=="string";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 Yt=null;function Mr(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Lr=null,gn=null,vn=null;function js(e){if(e=Ys(e)){if(typeof Lr!="function")throw Error(i(280));var n=e.stateNode;n&&(n=si(n),Lr(e.stateNode,e.type,n))}}function Ss(e){gn?vn?vn.push(e):vn=[e]:gn=e}function Cs(){if(gn){var e=gn,n=vn;if(vn=gn=null,js(e),n)for(e=0;e<n.length;e++)js(n[e])}}function bs(e,n){return e(n)}function Is(){}var Ar=!1;function Ns(e,n,s){if(Ar)return e(n,s);Ar=!0;try{return bs(e,n,s)}finally{Ar=!1,(gn!==null||vn!==null)&&(Is(),Cs())}}function $n(e,n){var s=e.stateNode;if(s===null)return null;var l=si(s);if(l===null)return null;s=l[n];e:switch(n){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(l=!l.disabled)||(e=e.type,l=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!l;break e;default:e=!1}if(e)return null;if(s&&typeof s!="function")throw Error(i(231,n,typeof s));return s}var $r=!1;if(g)try{var Dn={};Object.defineProperty(Dn,"passive",{get:function(){$r=!0}}),window.addEventListener("test",Dn,Dn),window.removeEventListener("test",Dn,Dn)}catch{$r=!1}function No(e,n,s,l,c,u,h,w,S){var O=Array.prototype.slice.call(arguments,3);try{n.apply(s,O)}catch(V){this.onError(V)}}var zn=!1,Dr=null,dr=!1,zr=null,_o={onError:function(e){zn=!0,Dr=e}};function Eo(e,n,s,l,c,u,h,w,S){zn=!1,Dr=null,No.apply(_o,arguments)}function Sl(e,n,s,l,c,u,h,w,S){if(Eo.apply(this,arguments),zn){if(zn){var O=Dr;zn=!1,Dr=null}else throw Error(i(198));dr||(dr=!0,zr=O)}}function yn(e){var n=e,s=e;if(e.alternate)for(;n.return;)n=n.return;else{e=n;do n=e,(n.flags&4098)!==0&&(s=n.return),e=n.return;while(e)}return n.tag===3?s:null}function Ro(e){if(e.tag===13){var n=e.memoizedState;if(n===null&&(e=e.alternate,e!==null&&(n=e.memoizedState)),n!==null)return n.dehydrated}return null}function Po(e){if(yn(e)!==e)throw Error(i(188))}function Cl(e){var n=e.alternate;if(!n){if(n=yn(e),n===null)throw Error(i(188));return n!==e?null:e}for(var s=e,l=n;;){var c=s.return;if(c===null)break;var u=c.alternate;if(u===null){if(l=c.return,l!==null){s=l;continue}break}if(c.child===u.child){for(u=c.child;u;){if(u===s)return Po(c),e;if(u===l)return Po(c),n;u=u.sibling}throw Error(i(188))}if(s.return!==l.return)s=c,l=u;else{for(var h=!1,w=c.child;w;){if(w===s){h=!0,s=c,l=u;break}if(w===l){h=!0,l=c,s=u;break}w=w.sibling}if(!h){for(w=u.child;w;){if(w===s){h=!0,s=u,l=c;break}if(w===l){h=!0,l=u,s=c;break}w=w.sibling}if(!h)throw Error(i(189))}}if(s.alternate!==l)throw Error(i(190))}if(s.tag!==3)throw Error(i(188));return s.stateNode.current===s?e:n}function To(e){return e=Cl(e),e!==null?Oo(e):null}function Oo(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var n=Oo(e);if(n!==null)return n;e=e.sibling}return null}var Mo=r.unstable_scheduleCallback,Lo=r.unstable_cancelCallback,bl=r.unstable_shouldYield,Il=r.unstable_requestPaint,Qe=r.unstable_now,Nl=r.unstable_getCurrentPriorityLevel,_s=r.unstable_ImmediatePriority,Es=r.unstable_UserBlockingPriority,fr=r.unstable_NormalPriority,Ao=r.unstable_LowPriority,Rs=r.unstable_IdlePriority,pr=null,Tt=null;function $o(e){if(Tt&&typeof Tt.onCommitFiberRoot=="function")try{Tt.onCommitFiberRoot(pr,e,void 0,(e.current.flags&128)===128)}catch{}}var jt=Math.clz32?Math.clz32:Wo,Do=Math.log,zo=Math.LN2;function Wo(e){return e>>>=0,e===0?32:31-(Do(e)/zo|0)|0}var hr=64,Wr=4194304;function y(e){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: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 e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function I(e,n){var s=e.pendingLanes;if(s===0)return 0;var l=0,c=e.suspendedLanes,u=e.pingedLanes,h=s&268435455;if(h!==0){var w=h&~c;w!==0?l=y(w):(u&=h,u!==0&&(l=y(u)))}else h=s&~c,h!==0?l=y(h):u!==0&&(l=y(u));if(l===0)return 0;if(n!==0&&n!==l&&(n&c)===0&&(c=l&-l,u=n&-n,c>=u||c===16&&(u&4194240)!==0))return n;if((l&4)!==0&&(l|=s&16),n=e.entangledLanes,n!==0)for(e=e.entanglements,n&=l;0<n;)s=31-jt(n),c=1<<s,l|=e[s],n&=~c;return l}function M(e,n){switch(e){case 1:case 2:case 4:return n+250;case 8:case 16:case 32:case 64: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 n+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function X(e,n){for(var s=e.suspendedLanes,l=e.pingedLanes,c=e.expirationTimes,u=e.pendingLanes;0<u;){var h=31-jt(u),w=1<<h,S=c[h];S===-1?((w&s)===0||(w&l)!==0)&&(c[h]=M(w,n)):S<=n&&(e.expiredLanes|=w),u&=~w}}function oe(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function Ee(){var e=hr;return hr<<=1,(hr&4194240)===0&&(hr=64),e}function ze(e){for(var n=[],s=0;31>s;s++)n.push(e);return n}function Ae(e,n,s){e.pendingLanes|=n,n!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,n=31-jt(n),e[n]=s}function Dt(e,n){var s=e.pendingLanes&~n;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=n,e.mutableReadLanes&=n,e.entangledLanes&=n,n=e.entanglements;var l=e.eventTimes;for(e=e.expirationTimes;0<s;){var c=31-jt(s),u=1<<c;n[c]=0,l[c]=-1,e[c]=-1,s&=~u}}function Fr(e,n){var s=e.entangledLanes|=n;for(e=e.entanglements;s;){var l=31-jt(s),c=1<<l;c&n|e[l]&n&&(e[l]|=n),s&=~c}}var Le=0;function Fo(e){return e&=-e,1<e?4<e?(e&268435455)!==0?16:536870912:4:1}var Bo,Ps,zt,Ts,Os,Br=!1,qo=[],Wn=null,Fn=null,Bn=null,Ms=new Map,Ls=new Map,qn=[],Xp="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 submit".split(" ");function Bc(e,n){switch(e){case"focusin":case"focusout":Wn=null;break;case"dragenter":case"dragleave":Fn=null;break;case"mouseover":case"mouseout":Bn=null;break;case"pointerover":case"pointerout":Ms.delete(n.pointerId);break;case"gotpointercapture":case"lostpointercapture":Ls.delete(n.pointerId)}}function As(e,n,s,l,c,u){return e===null||e.nativeEvent!==u?(e={blockedOn:n,domEventName:s,eventSystemFlags:l,nativeEvent:u,targetContainers:[c]},n!==null&&(n=Ys(n),n!==null&&Ps(n)),e):(e.eventSystemFlags|=l,n=e.targetContainers,c!==null&&n.indexOf(c)===-1&&n.push(c),e)}function Jp(e,n,s,l,c){switch(n){case"focusin":return Wn=As(Wn,e,n,s,l,c),!0;case"dragenter":return Fn=As(Fn,e,n,s,l,c),!0;case"mouseover":return Bn=As(Bn,e,n,s,l,c),!0;case"pointerover":var u=c.pointerId;return Ms.set(u,As(Ms.get(u)||null,e,n,s,l,c)),!0;case"gotpointercapture":return u=c.pointerId,Ls.set(u,As(Ls.get(u)||null,e,n,s,l,c)),!0}return!1}function qc(e){var n=mr(e.target);if(n!==null){var s=yn(n);if(s!==null){if(n=s.tag,n===13){if(n=Ro(s),n!==null){e.blockedOn=n,Os(e.priority,function(){zt(s)});return}}else if(n===3&&s.stateNode.current.memoizedState.isDehydrated){e.blockedOn=s.tag===3?s.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Uo(e){if(e.blockedOn!==null)return!1;for(var n=e.targetContainers;0<n.length;){var s=El(e.domEventName,e.eventSystemFlags,n[0],e.nativeEvent);if(s===null){s=e.nativeEvent;var l=new s.constructor(s.type,s);Yt=l,s.target.dispatchEvent(l),Yt=null}else return n=Ys(s),n!==null&&Ps(n),e.blockedOn=s,!1;n.shift()}return!0}function Uc(e,n,s){Uo(e)&&s.delete(n)}function Zp(){Br=!1,Wn!==null&&Uo(Wn)&&(Wn=null),Fn!==null&&Uo(Fn)&&(Fn=null),Bn!==null&&Uo(Bn)&&(Bn=null),Ms.forEach(Uc),Ls.forEach(Uc)}function $s(e,n){e.blockedOn===n&&(e.blockedOn=null,Br||(Br=!0,r.unstable_scheduleCallback(r.unstable_NormalPriority,Zp)))}function Ds(e){function n(c){return $s(c,e)}if(0<qo.length){$s(qo[0],e);for(var s=1;s<qo.length;s++){var l=qo[s];l.blockedOn===e&&(l.blockedOn=null)}}for(Wn!==null&&$s(Wn,e),Fn!==null&&$s(Fn,e),Bn!==null&&$s(Bn,e),Ms.forEach(n),Ls.forEach(n),s=0;s<qn.length;s++)l=qn[s],l.blockedOn===e&&(l.blockedOn=null);for(;0<qn.length&&(s=qn[0],s.blockedOn===null);)qc(s),s.blockedOn===null&&qn.shift()}var qr=ie.ReactCurrentBatchConfig,Ho=!0;function eh(e,n,s,l){var c=Le,u=qr.transition;qr.transition=null;try{Le=1,_l(e,n,s,l)}finally{Le=c,qr.transition=u}}function th(e,n,s,l){var c=Le,u=qr.transition;qr.transition=null;try{Le=4,_l(e,n,s,l)}finally{Le=c,qr.transition=u}}function _l(e,n,s,l){if(Ho){var c=El(e,n,s,l);if(c===null)Vl(e,n,l,Vo,s),Bc(e,l);else if(Jp(c,e,n,s,l))l.stopPropagation();else if(Bc(e,l),n&4&&-1<Xp.indexOf(e)){for(;c!==null;){var u=Ys(c);if(u!==null&&Bo(u),u=El(e,n,s,l),u===null&&Vl(e,n,l,Vo,s),u===c)break;c=u}c!==null&&l.stopPropagation()}else Vl(e,n,l,null,s)}}var Vo=null;function El(e,n,s,l){if(Vo=null,e=Mr(l),e=mr(e),e!==null)if(n=yn(e),n===null)e=null;else if(s=n.tag,s===13){if(e=Ro(n),e!==null)return e;e=null}else if(s===3){if(n.stateNode.current.memoizedState.isDehydrated)return n.tag===3?n.stateNode.containerInfo:null;e=null}else n!==e&&(e=null);return Vo=e,null}function Hc(e){switch(e){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"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 1;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"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Nl()){case _s:return 1;case Es:return 4;case fr:case Ao:return 16;case Rs:return 536870912;default:return 16}default:return 16}}var Un=null,Rl=null,Ko=null;function Vc(){if(Ko)return Ko;var e,n=Rl,s=n.length,l,c="value"in Un?Un.value:Un.textContent,u=c.length;for(e=0;e<s&&n[e]===c[e];e++);var h=s-e;for(l=1;l<=h&&n[s-l]===c[u-l];l++);return Ko=c.slice(e,1<l?1-l:void 0)}function Go(e){var n=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&n===13&&(e=13)):e=n,e===10&&(e=13),32<=e||e===13?e:0}function Qo(){return!0}function Kc(){return!1}function Ot(e){function n(s,l,c,u,h){this._reactName=s,this._targetInst=c,this.type=l,this.nativeEvent=u,this.target=h,this.currentTarget=null;for(var w in e)e.hasOwnProperty(w)&&(s=e[w],this[w]=s?s(u):u[w]);return this.isDefaultPrevented=(u.defaultPrevented!=null?u.defaultPrevented:u.returnValue===!1)?Qo:Kc,this.isPropagationStopped=Kc,this}return $(n.prototype,{preventDefault:function(){this.defaultPrevented=!0;var s=this.nativeEvent;s&&(s.preventDefault?s.preventDefault():typeof s.returnValue!="unknown"&&(s.returnValue=!1),this.isDefaultPrevented=Qo)},stopPropagation:function(){var s=this.nativeEvent;s&&(s.stopPropagation?s.stopPropagation():typeof s.cancelBubble!="unknown"&&(s.cancelBubble=!0),this.isPropagationStopped=Qo)},persist:function(){},isPersistent:Qo}),n}var Ur={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Pl=Ot(Ur),zs=$({},Ur,{view:0,detail:0}),nh=Ot(zs),Tl,Ol,Ws,Yo=$({},zs,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Ll,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!==Ws&&(Ws&&e.type==="mousemove"?(Tl=e.screenX-Ws.screenX,Ol=e.screenY-Ws.screenY):Ol=Tl=0,Ws=e),Tl)},movementY:function(e){return"movementY"in e?e.movementY:Ol}}),Gc=Ot(Yo),rh=$({},Yo,{dataTransfer:0}),sh=Ot(rh),oh=$({},zs,{relatedTarget:0}),Ml=Ot(oh),ih=$({},Ur,{animationName:0,elapsedTime:0,pseudoElement:0}),lh=Ot(ih),ah=$({},Ur,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),ch=Ot(ah),uh=$({},Ur,{data:0}),Qc=Ot(uh),dh={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},fh={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"},ph={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function hh(e){var n=this.nativeEvent;return n.getModifierState?n.getModifierState(e):(e=ph[e])?!!n[e]:!1}function Ll(){return hh}var mh=$({},zs,{key:function(e){if(e.key){var n=dh[e.key]||e.key;if(n!=="Unidentified")return n}return e.type==="keypress"?(e=Go(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?fh[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Ll,charCode:function(e){return e.type==="keypress"?Go(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?Go(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),gh=Ot(mh),vh=$({},Yo,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Yc=Ot(vh),yh=$({},zs,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Ll}),xh=Ot(yh),wh=$({},Ur,{propertyName:0,elapsedTime:0,pseudoElement:0}),kh=Ot(wh),jh=$({},Yo,{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}),Sh=Ot(jh),Ch=[9,13,27,32],Al=g&&"CompositionEvent"in window,Fs=null;g&&"documentMode"in document&&(Fs=document.documentMode);var bh=g&&"TextEvent"in window&&!Fs,Xc=g&&(!Al||Fs&&8<Fs&&11>=Fs),Jc=" ",Zc=!1;function eu(e,n){switch(e){case"keyup":return Ch.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function tu(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Hr=!1;function Ih(e,n){switch(e){case"compositionend":return tu(n);case"keypress":return n.which!==32?null:(Zc=!0,Jc);case"textInput":return e=n.data,e===Jc&&Zc?null:e;default:return null}}function Nh(e,n){if(Hr)return e==="compositionend"||!Al&&eu(e,n)?(e=Vc(),Ko=Rl=Un=null,Hr=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1<n.char.length)return n.char;if(n.which)return String.fromCharCode(n.which)}return null;case"compositionend":return Xc&&n.locale!=="ko"?null:n.data;default:return null}}var _h={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 nu(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n==="input"?!!_h[e.type]:n==="textarea"}function ru(e,n,s,l){Ss(l),n=ti(n,"onChange"),0<n.length&&(s=new Pl("onChange","change",null,s,l),e.push({event:s,listeners:n}))}var Bs=null,qs=null;function Eh(e){ku(e,0)}function Xo(e){var n=Yr(e);if(tt(n))return e}function Rh(e,n){if(e==="change")return n}var su=!1;if(g){var $l;if(g){var Dl="oninput"in document;if(!Dl){var ou=document.createElement("div");ou.setAttribute("oninput","return;"),Dl=typeof ou.oninput=="function"}$l=Dl}else $l=!1;su=$l&&(!document.documentMode||9<document.documentMode)}function iu(){Bs&&(Bs.detachEvent("onpropertychange",lu),qs=Bs=null)}function lu(e){if(e.propertyName==="value"&&Xo(qs)){var n=[];ru(n,qs,e,Mr(e)),Ns(Eh,n)}}function Ph(e,n,s){e==="focusin"?(iu(),Bs=n,qs=s,Bs.attachEvent("onpropertychange",lu)):e==="focusout"&&iu()}function Th(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return Xo(qs)}function Oh(e,n){if(e==="click")return Xo(n)}function Mh(e,n){if(e==="input"||e==="change")return Xo(n)}function Lh(e,n){return e===n&&(e!==0||1/e===1/n)||e!==e&&n!==n}var Xt=typeof Object.is=="function"?Object.is:Lh;function Us(e,n){if(Xt(e,n))return!0;if(typeof e!="object"||e===null||typeof n!="object"||n===null)return!1;var s=Object.keys(e),l=Object.keys(n);if(s.length!==l.length)return!1;for(l=0;l<s.length;l++){var c=s[l];if(!x.call(n,c)||!Xt(e[c],n[c]))return!1}return!0}function au(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function cu(e,n){var s=au(e);e=0;for(var l;s;){if(s.nodeType===3){if(l=e+s.textContent.length,e<=n&&l>=n)return{node:s,offset:n-e};e=l}e:{for(;s;){if(s.nextSibling){s=s.nextSibling;break e}s=s.parentNode}s=void 0}s=au(s)}}function uu(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?uu(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function du(){for(var e=window,n=st();n instanceof e.HTMLIFrameElement;){try{var s=typeof n.contentWindow.location.href=="string"}catch{s=!1}if(s)e=n.contentWindow;else break;n=st(e.document)}return n}function zl(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}function Ah(e){var n=du(),s=e.focusedElem,l=e.selectionRange;if(n!==s&&s&&s.ownerDocument&&uu(s.ownerDocument.documentElement,s)){if(l!==null&&zl(s)){if(n=l.start,e=l.end,e===void 0&&(e=n),"selectionStart"in s)s.selectionStart=n,s.selectionEnd=Math.min(e,s.value.length);else if(e=(n=s.ownerDocument||document)&&n.defaultView||window,e.getSelection){e=e.getSelection();var c=s.textContent.length,u=Math.min(l.start,c);l=l.end===void 0?u:Math.min(l.end,c),!e.extend&&u>l&&(c=l,l=u,u=c),c=cu(s,u);var h=cu(s,l);c&&h&&(e.rangeCount!==1||e.anchorNode!==c.node||e.anchorOffset!==c.offset||e.focusNode!==h.node||e.focusOffset!==h.offset)&&(n=n.createRange(),n.setStart(c.node,c.offset),e.removeAllRanges(),u>l?(e.addRange(n),e.extend(h.node,h.offset)):(n.setEnd(h.node,h.offset),e.addRange(n)))}}for(n=[],e=s;e=e.parentNode;)e.nodeType===1&&n.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof s.focus=="function"&&s.focus(),s=0;s<n.length;s++)e=n[s],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var $h=g&&"documentMode"in document&&11>=document.documentMode,Vr=null,Wl=null,Hs=null,Fl=!1;function fu(e,n,s){var l=s.window===s?s.document:s.nodeType===9?s:s.ownerDocument;Fl||Vr==null||Vr!==st(l)||(l=Vr,"selectionStart"in l&&zl(l)?l={start:l.selectionStart,end:l.selectionEnd}:(l=(l.ownerDocument&&l.ownerDocument.defaultView||window).getSelection(),l={anchorNode:l.anchorNode,anchorOffset:l.anchorOffset,focusNode:l.focusNode,focusOffset:l.focusOffset}),Hs&&Us(Hs,l)||(Hs=l,l=ti(Wl,"onSelect"),0<l.length&&(n=new Pl("onSelect","select",null,n,s),e.push({event:n,listeners:l}),n.target=Vr)))}function Jo(e,n){var s={};return s[e.toLowerCase()]=n.toLowerCase(),s["Webkit"+e]="webkit"+n,s["Moz"+e]="moz"+n,s}var Kr={animationend:Jo("Animation","AnimationEnd"),animationiteration:Jo("Animation","AnimationIteration"),animationstart:Jo("Animation","AnimationStart"),transitionend:Jo("Transition","TransitionEnd")},Bl={},pu={};g&&(pu=document.createElement("div").style,"AnimationEvent"in window||(delete Kr.animationend.animation,delete Kr.animationiteration.animation,delete Kr.animationstart.animation),"TransitionEvent"in window||delete Kr.transitionend.transition);function Zo(e){if(Bl[e])return Bl[e];if(!Kr[e])return e;var n=Kr[e],s;for(s in n)if(n.hasOwnProperty(s)&&s in pu)return Bl[e]=n[s];return e}var hu=Zo("animationend"),mu=Zo("animationiteration"),gu=Zo("animationstart"),vu=Zo("transitionend"),yu=new Map,xu="abort auxClick 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(" ");function Hn(e,n){yu.set(e,n),f(n,[e])}for(var ql=0;ql<xu.length;ql++){var Ul=xu[ql],Dh=Ul.toLowerCase(),zh=Ul[0].toUpperCase()+Ul.slice(1);Hn(Dh,"on"+zh)}Hn(hu,"onAnimationEnd"),Hn(mu,"onAnimationIteration"),Hn(gu,"onAnimationStart"),Hn("dblclick","onDoubleClick"),Hn("focusin","onFocus"),Hn("focusout","onBlur"),Hn(vu,"onTransitionEnd"),p("onMouseEnter",["mouseout","mouseover"]),p("onMouseLeave",["mouseout","mouseover"]),p("onPointerEnter",["pointerout","pointerover"]),p("onPointerLeave",["pointerout","pointerover"]),f("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),f("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),f("onBeforeInput",["compositionend","keypress","textInput","paste"]),f("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),f("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),f("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Vs="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Wh=new Set("cancel close invalid load scroll toggle".split(" ").concat(Vs));function wu(e,n,s){var l=e.type||"unknown-event";e.currentTarget=s,Sl(l,n,void 0,e),e.currentTarget=null}function ku(e,n){n=(n&4)!==0;for(var s=0;s<e.length;s++){var l=e[s],c=l.event;l=l.listeners;e:{var u=void 0;if(n)for(var h=l.length-1;0<=h;h--){var w=l[h],S=w.instance,O=w.currentTarget;if(w=w.listener,S!==u&&c.isPropagationStopped())break e;wu(c,w,O),u=S}else for(h=0;h<l.length;h++){if(w=l[h],S=w.instance,O=w.currentTarget,w=w.listener,S!==u&&c.isPropagationStopped())break e;wu(c,w,O),u=S}}}if(dr)throw e=zr,dr=!1,zr=null,e}function He(e,n){var s=n[Jl];s===void 0&&(s=n[Jl]=new Set);var l=e+"__bubble";s.has(l)||(ju(n,e,2,!1),s.add(l))}function Hl(e,n,s){var l=0;n&&(l|=4),ju(s,e,l,n)}var ei="_reactListening"+Math.random().toString(36).slice(2);function Ks(e){if(!e[ei]){e[ei]=!0,a.forEach(function(s){s!=="selectionchange"&&(Wh.has(s)||Hl(s,!1,e),Hl(s,!0,e))});var n=e.nodeType===9?e:e.ownerDocument;n===null||n[ei]||(n[ei]=!0,Hl("selectionchange",!1,n))}}function ju(e,n,s,l){switch(Hc(n)){case 1:var c=eh;break;case 4:c=th;break;default:c=_l}s=c.bind(null,n,s,e),c=void 0,!$r||n!=="touchstart"&&n!=="touchmove"&&n!=="wheel"||(c=!0),l?c!==void 0?e.addEventListener(n,s,{capture:!0,passive:c}):e.addEventListener(n,s,!0):c!==void 0?e.addEventListener(n,s,{passive:c}):e.addEventListener(n,s,!1)}function Vl(e,n,s,l,c){var u=l;if((n&1)===0&&(n&2)===0&&l!==null)e:for(;;){if(l===null)return;var h=l.tag;if(h===3||h===4){var w=l.stateNode.containerInfo;if(w===c||w.nodeType===8&&w.parentNode===c)break;if(h===4)for(h=l.return;h!==null;){var S=h.tag;if((S===3||S===4)&&(S=h.stateNode.containerInfo,S===c||S.nodeType===8&&S.parentNode===c))return;h=h.return}for(;w!==null;){if(h=mr(w),h===null)return;if(S=h.tag,S===5||S===6){l=u=h;continue e}w=w.parentNode}}l=l.return}Ns(function(){var O=u,V=Mr(s),K=[];e:{var H=yu.get(e);if(H!==void 0){var ae=Pl,pe=e;switch(e){case"keypress":if(Go(s)===0)break e;case"keydown":case"keyup":ae=gh;break;case"focusin":pe="focus",ae=Ml;break;case"focusout":pe="blur",ae=Ml;break;case"beforeblur":case"afterblur":ae=Ml;break;case"click":if(s.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":ae=Gc;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":ae=sh;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":ae=xh;break;case hu:case mu:case gu:ae=lh;break;case vu:ae=kh;break;case"scroll":ae=nh;break;case"wheel":ae=Sh;break;case"copy":case"cut":case"paste":ae=ch;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":ae=Yc}var me=(n&4)!==0,et=!me&&e==="scroll",_=me?H!==null?H+"Capture":null:H;me=[];for(var C=O,P;C!==null;){P=C;var ee=P.stateNode;if(P.tag===5&&ee!==null&&(P=ee,_!==null&&(ee=$n(C,_),ee!=null&&me.push(Gs(C,ee,P)))),et)break;C=C.return}0<me.length&&(H=new ae(H,pe,null,s,V),K.push({event:H,listeners:me}))}}if((n&7)===0){e:{if(H=e==="mouseover"||e==="pointerover",ae=e==="mouseout"||e==="pointerout",H&&s!==Yt&&(pe=s.relatedTarget||s.fromElement)&&(mr(pe)||pe[xn]))break e;if((ae||H)&&(H=V.window===V?V:(H=V.ownerDocument)?H.defaultView||H.parentWindow:window,ae?(pe=s.relatedTarget||s.toElement,ae=O,pe=pe?mr(pe):null,pe!==null&&(et=yn(pe),pe!==et||pe.tag!==5&&pe.tag!==6)&&(pe=null)):(ae=null,pe=O),ae!==pe)){if(me=Gc,ee="onMouseLeave",_="onMouseEnter",C="mouse",(e==="pointerout"||e==="pointerover")&&(me=Yc,ee="onPointerLeave",_="onPointerEnter",C="pointer"),et=ae==null?H:Yr(ae),P=pe==null?H:Yr(pe),H=new me(ee,C+"leave",ae,s,V),H.target=et,H.relatedTarget=P,ee=null,mr(V)===O&&(me=new me(_,C+"enter",pe,s,V),me.target=P,me.relatedTarget=et,ee=me),et=ee,ae&&pe)t:{for(me=ae,_=pe,C=0,P=me;P;P=Gr(P))C++;for(P=0,ee=_;ee;ee=Gr(ee))P++;for(;0<C-P;)me=Gr(me),C--;for(;0<P-C;)_=Gr(_),P--;for(;C--;){if(me===_||_!==null&&me===_.alternate)break t;me=Gr(me),_=Gr(_)}me=null}else me=null;ae!==null&&Su(K,H,ae,me,!1),pe!==null&&et!==null&&Su(K,et,pe,me,!0)}}e:{if(H=O?Yr(O):window,ae=H.nodeName&&H.nodeName.toLowerCase(),ae==="select"||ae==="input"&&H.type==="file")var ve=Rh;else if(nu(H))if(su)ve=Mh;else{ve=Th;var Ce=Ph}else(ae=H.nodeName)&&ae.toLowerCase()==="input"&&(H.type==="checkbox"||H.type==="radio")&&(ve=Oh);if(ve&&(ve=ve(e,O))){ru(K,ve,s,V);break e}Ce&&Ce(e,H,O),e==="focusout"&&(Ce=H._wrapperState)&&Ce.controlled&&H.type==="number"&&qe(H,"number",H.value)}switch(Ce=O?Yr(O):window,e){case"focusin":(nu(Ce)||Ce.contentEditable==="true")&&(Vr=Ce,Wl=O,Hs=null);break;case"focusout":Hs=Wl=Vr=null;break;case"mousedown":Fl=!0;break;case"contextmenu":case"mouseup":case"dragend":Fl=!1,fu(K,s,V);break;case"selectionchange":if($h)break;case"keydown":case"keyup":fu(K,s,V)}var be;if(Al)e:{switch(e){case"compositionstart":var _e="onCompositionStart";break e;case"compositionend":_e="onCompositionEnd";break e;case"compositionupdate":_e="onCompositionUpdate";break e}_e=void 0}else Hr?eu(e,s)&&(_e="onCompositionEnd"):e==="keydown"&&s.keyCode===229&&(_e="onCompositionStart");_e&&(Xc&&s.locale!=="ko"&&(Hr||_e!=="onCompositionStart"?_e==="onCompositionEnd"&&Hr&&(be=Vc()):(Un=V,Rl="value"in Un?Un.value:Un.textContent,Hr=!0)),Ce=ti(O,_e),0<Ce.length&&(_e=new Qc(_e,e,null,s,V),K.push({event:_e,listeners:Ce}),be?_e.data=be:(be=tu(s),be!==null&&(_e.data=be)))),(be=bh?Ih(e,s):Nh(e,s))&&(O=ti(O,"onBeforeInput"),0<O.length&&(V=new Qc("onBeforeInput","beforeinput",null,s,V),K.push({event:V,listeners:O}),V.data=be))}ku(K,n)})}function Gs(e,n,s){return{instance:e,listener:n,currentTarget:s}}function ti(e,n){for(var s=n+"Capture",l=[];e!==null;){var c=e,u=c.stateNode;c.tag===5&&u!==null&&(c=u,u=$n(e,s),u!=null&&l.unshift(Gs(e,u,c)),u=$n(e,n),u!=null&&l.push(Gs(e,u,c))),e=e.return}return l}function Gr(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function Su(e,n,s,l,c){for(var u=n._reactName,h=[];s!==null&&s!==l;){var w=s,S=w.alternate,O=w.stateNode;if(S!==null&&S===l)break;w.tag===5&&O!==null&&(w=O,c?(S=$n(s,u),S!=null&&h.unshift(Gs(s,S,w))):c||(S=$n(s,u),S!=null&&h.push(Gs(s,S,w)))),s=s.return}h.length!==0&&e.push({event:n,listeners:h})}var Fh=/\r\n?/g,Bh=/\u0000|\uFFFD/g;function Cu(e){return(typeof e=="string"?e:""+e).replace(Fh,`
7
- `).replace(Bh,"")}function ni(e,n,s){if(n=Cu(n),Cu(e)!==n&&s)throw Error(i(425))}function ri(){}var Kl=null,Gl=null;function Ql(e,n){return e==="textarea"||e==="noscript"||typeof n.children=="string"||typeof n.children=="number"||typeof n.dangerouslySetInnerHTML=="object"&&n.dangerouslySetInnerHTML!==null&&n.dangerouslySetInnerHTML.__html!=null}var Yl=typeof setTimeout=="function"?setTimeout:void 0,qh=typeof clearTimeout=="function"?clearTimeout:void 0,bu=typeof Promise=="function"?Promise:void 0,Uh=typeof queueMicrotask=="function"?queueMicrotask:typeof bu<"u"?function(e){return bu.resolve(null).then(e).catch(Hh)}:Yl;function Hh(e){setTimeout(function(){throw e})}function Xl(e,n){var s=n,l=0;do{var c=s.nextSibling;if(e.removeChild(s),c&&c.nodeType===8)if(s=c.data,s==="/$"){if(l===0){e.removeChild(c),Ds(n);return}l--}else s!=="$"&&s!=="$?"&&s!=="$!"||l++;s=c}while(s);Ds(n)}function Vn(e){for(;e!=null;e=e.nextSibling){var n=e.nodeType;if(n===1||n===3)break;if(n===8){if(n=e.data,n==="$"||n==="$!"||n==="$?")break;if(n==="/$")return null}}return e}function Iu(e){e=e.previousSibling;for(var n=0;e;){if(e.nodeType===8){var s=e.data;if(s==="$"||s==="$!"||s==="$?"){if(n===0)return e;n--}else s==="/$"&&n++}e=e.previousSibling}return null}var Qr=Math.random().toString(36).slice(2),dn="__reactFiber$"+Qr,Qs="__reactProps$"+Qr,xn="__reactContainer$"+Qr,Jl="__reactEvents$"+Qr,Vh="__reactListeners$"+Qr,Kh="__reactHandles$"+Qr;function mr(e){var n=e[dn];if(n)return n;for(var s=e.parentNode;s;){if(n=s[xn]||s[dn]){if(s=n.alternate,n.child!==null||s!==null&&s.child!==null)for(e=Iu(e);e!==null;){if(s=e[dn])return s;e=Iu(e)}return n}e=s,s=e.parentNode}return null}function Ys(e){return e=e[dn]||e[xn],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function Yr(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(i(33))}function si(e){return e[Qs]||null}var Zl=[],Xr=-1;function Kn(e){return{current:e}}function Ve(e){0>Xr||(e.current=Zl[Xr],Zl[Xr]=null,Xr--)}function Be(e,n){Xr++,Zl[Xr]=e.current,e.current=n}var Gn={},ht=Kn(Gn),St=Kn(!1),gr=Gn;function Jr(e,n){var s=e.type.contextTypes;if(!s)return Gn;var l=e.stateNode;if(l&&l.__reactInternalMemoizedUnmaskedChildContext===n)return l.__reactInternalMemoizedMaskedChildContext;var c={},u;for(u in s)c[u]=n[u];return l&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=c),c}function Ct(e){return e=e.childContextTypes,e!=null}function oi(){Ve(St),Ve(ht)}function Nu(e,n,s){if(ht.current!==Gn)throw Error(i(168));Be(ht,n),Be(St,s)}function _u(e,n,s){var l=e.stateNode;if(n=n.childContextTypes,typeof l.getChildContext!="function")return s;l=l.getChildContext();for(var c in l)if(!(c in n))throw Error(i(108,he(e)||"Unknown",c));return $({},s,l)}function ii(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Gn,gr=ht.current,Be(ht,e),Be(St,St.current),!0}function Eu(e,n,s){var l=e.stateNode;if(!l)throw Error(i(169));s?(e=_u(e,n,gr),l.__reactInternalMemoizedMergedChildContext=e,Ve(St),Ve(ht),Be(ht,e)):Ve(St),Be(St,s)}var wn=null,li=!1,ea=!1;function Ru(e){wn===null?wn=[e]:wn.push(e)}function Gh(e){li=!0,Ru(e)}function Qn(){if(!ea&&wn!==null){ea=!0;var e=0,n=Le;try{var s=wn;for(Le=1;e<s.length;e++){var l=s[e];do l=l(!0);while(l!==null)}wn=null,li=!1}catch(c){throw wn!==null&&(wn=wn.slice(e+1)),Mo(_s,Qn),c}finally{Le=n,ea=!1}}return null}var Zr=[],es=0,ai=null,ci=0,Wt=[],Ft=0,vr=null,kn=1,jn="";function yr(e,n){Zr[es++]=ci,Zr[es++]=ai,ai=e,ci=n}function Pu(e,n,s){Wt[Ft++]=kn,Wt[Ft++]=jn,Wt[Ft++]=vr,vr=e;var l=kn;e=jn;var c=32-jt(l)-1;l&=~(1<<c),s+=1;var u=32-jt(n)+c;if(30<u){var h=c-c%5;u=(l&(1<<h)-1).toString(32),l>>=h,c-=h,kn=1<<32-jt(n)+c|s<<c|l,jn=u+e}else kn=1<<u|s<<c|l,jn=e}function ta(e){e.return!==null&&(yr(e,1),Pu(e,1,0))}function na(e){for(;e===ai;)ai=Zr[--es],Zr[es]=null,ci=Zr[--es],Zr[es]=null;for(;e===vr;)vr=Wt[--Ft],Wt[Ft]=null,jn=Wt[--Ft],Wt[Ft]=null,kn=Wt[--Ft],Wt[Ft]=null}var Mt=null,Lt=null,Ge=!1,Jt=null;function Tu(e,n){var s=Ht(5,null,null,0);s.elementType="DELETED",s.stateNode=n,s.return=e,n=e.deletions,n===null?(e.deletions=[s],e.flags|=16):n.push(s)}function Ou(e,n){switch(e.tag){case 5:var s=e.type;return n=n.nodeType!==1||s.toLowerCase()!==n.nodeName.toLowerCase()?null:n,n!==null?(e.stateNode=n,Mt=e,Lt=Vn(n.firstChild),!0):!1;case 6:return n=e.pendingProps===""||n.nodeType!==3?null:n,n!==null?(e.stateNode=n,Mt=e,Lt=null,!0):!1;case 13:return n=n.nodeType!==8?null:n,n!==null?(s=vr!==null?{id:kn,overflow:jn}:null,e.memoizedState={dehydrated:n,treeContext:s,retryLane:1073741824},s=Ht(18,null,null,0),s.stateNode=n,s.return=e,e.child=s,Mt=e,Lt=null,!0):!1;default:return!1}}function ra(e){return(e.mode&1)!==0&&(e.flags&128)===0}function sa(e){if(Ge){var n=Lt;if(n){var s=n;if(!Ou(e,n)){if(ra(e))throw Error(i(418));n=Vn(s.nextSibling);var l=Mt;n&&Ou(e,n)?Tu(l,s):(e.flags=e.flags&-4097|2,Ge=!1,Mt=e)}}else{if(ra(e))throw Error(i(418));e.flags=e.flags&-4097|2,Ge=!1,Mt=e}}}function Mu(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;Mt=e}function ui(e){if(e!==Mt)return!1;if(!Ge)return Mu(e),Ge=!0,!1;var n;if((n=e.tag!==3)&&!(n=e.tag!==5)&&(n=e.type,n=n!=="head"&&n!=="body"&&!Ql(e.type,e.memoizedProps)),n&&(n=Lt)){if(ra(e))throw Lu(),Error(i(418));for(;n;)Tu(e,n),n=Vn(n.nextSibling)}if(Mu(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(i(317));e:{for(e=e.nextSibling,n=0;e;){if(e.nodeType===8){var s=e.data;if(s==="/$"){if(n===0){Lt=Vn(e.nextSibling);break e}n--}else s!=="$"&&s!=="$!"&&s!=="$?"||n++}e=e.nextSibling}Lt=null}}else Lt=Mt?Vn(e.stateNode.nextSibling):null;return!0}function Lu(){for(var e=Lt;e;)e=Vn(e.nextSibling)}function ts(){Lt=Mt=null,Ge=!1}function oa(e){Jt===null?Jt=[e]:Jt.push(e)}var Qh=ie.ReactCurrentBatchConfig;function Xs(e,n,s){if(e=s.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(s._owner){if(s=s._owner,s){if(s.tag!==1)throw Error(i(309));var l=s.stateNode}if(!l)throw Error(i(147,e));var c=l,u=""+e;return n!==null&&n.ref!==null&&typeof n.ref=="function"&&n.ref._stringRef===u?n.ref:(n=function(h){var w=c.refs;h===null?delete w[u]:w[u]=h},n._stringRef=u,n)}if(typeof e!="string")throw Error(i(284));if(!s._owner)throw Error(i(290,e))}return e}function di(e,n){throw e=Object.prototype.toString.call(n),Error(i(31,e==="[object Object]"?"object with keys {"+Object.keys(n).join(", ")+"}":e))}function Au(e){var n=e._init;return n(e._payload)}function $u(e){function n(_,C){if(e){var P=_.deletions;P===null?(_.deletions=[C],_.flags|=16):P.push(C)}}function s(_,C){if(!e)return null;for(;C!==null;)n(_,C),C=C.sibling;return null}function l(_,C){for(_=new Map;C!==null;)C.key!==null?_.set(C.key,C):_.set(C.index,C),C=C.sibling;return _}function c(_,C){return _=rr(_,C),_.index=0,_.sibling=null,_}function u(_,C,P){return _.index=P,e?(P=_.alternate,P!==null?(P=P.index,P<C?(_.flags|=2,C):P):(_.flags|=2,C)):(_.flags|=1048576,C)}function h(_){return e&&_.alternate===null&&(_.flags|=2),_}function w(_,C,P,ee){return C===null||C.tag!==6?(C=Ya(P,_.mode,ee),C.return=_,C):(C=c(C,P),C.return=_,C)}function S(_,C,P,ee){var ve=P.type;return ve===F?V(_,C,P.props.children,ee,P.key):C!==null&&(C.elementType===ve||typeof ve=="object"&&ve!==null&&ve.$$typeof===ce&&Au(ve)===C.type)?(ee=c(C,P.props),ee.ref=Xs(_,C,P),ee.return=_,ee):(ee=Li(P.type,P.key,P.props,null,_.mode,ee),ee.ref=Xs(_,C,P),ee.return=_,ee)}function O(_,C,P,ee){return C===null||C.tag!==4||C.stateNode.containerInfo!==P.containerInfo||C.stateNode.implementation!==P.implementation?(C=Xa(P,_.mode,ee),C.return=_,C):(C=c(C,P.children||[]),C.return=_,C)}function V(_,C,P,ee,ve){return C===null||C.tag!==7?(C=Ir(P,_.mode,ee,ve),C.return=_,C):(C=c(C,P),C.return=_,C)}function K(_,C,P){if(typeof C=="string"&&C!==""||typeof C=="number")return C=Ya(""+C,_.mode,P),C.return=_,C;if(typeof C=="object"&&C!==null){switch(C.$$typeof){case Y:return P=Li(C.type,C.key,C.props,null,_.mode,P),P.ref=Xs(_,null,C),P.return=_,P;case A:return C=Xa(C,_.mode,P),C.return=_,C;case ce:var ee=C._init;return K(_,ee(C._payload),P)}if(Ze(C)||B(C))return C=Ir(C,_.mode,P,null),C.return=_,C;di(_,C)}return null}function H(_,C,P,ee){var ve=C!==null?C.key:null;if(typeof P=="string"&&P!==""||typeof P=="number")return ve!==null?null:w(_,C,""+P,ee);if(typeof P=="object"&&P!==null){switch(P.$$typeof){case Y:return P.key===ve?S(_,C,P,ee):null;case A:return P.key===ve?O(_,C,P,ee):null;case ce:return ve=P._init,H(_,C,ve(P._payload),ee)}if(Ze(P)||B(P))return ve!==null?null:V(_,C,P,ee,null);di(_,P)}return null}function ae(_,C,P,ee,ve){if(typeof ee=="string"&&ee!==""||typeof ee=="number")return _=_.get(P)||null,w(C,_,""+ee,ve);if(typeof ee=="object"&&ee!==null){switch(ee.$$typeof){case Y:return _=_.get(ee.key===null?P:ee.key)||null,S(C,_,ee,ve);case A:return _=_.get(ee.key===null?P:ee.key)||null,O(C,_,ee,ve);case ce:var Ce=ee._init;return ae(_,C,P,Ce(ee._payload),ve)}if(Ze(ee)||B(ee))return _=_.get(P)||null,V(C,_,ee,ve,null);di(C,ee)}return null}function pe(_,C,P,ee){for(var ve=null,Ce=null,be=C,_e=C=0,ut=null;be!==null&&_e<P.length;_e++){be.index>_e?(ut=be,be=null):ut=be.sibling;var De=H(_,be,P[_e],ee);if(De===null){be===null&&(be=ut);break}e&&be&&De.alternate===null&&n(_,be),C=u(De,C,_e),Ce===null?ve=De:Ce.sibling=De,Ce=De,be=ut}if(_e===P.length)return s(_,be),Ge&&yr(_,_e),ve;if(be===null){for(;_e<P.length;_e++)be=K(_,P[_e],ee),be!==null&&(C=u(be,C,_e),Ce===null?ve=be:Ce.sibling=be,Ce=be);return Ge&&yr(_,_e),ve}for(be=l(_,be);_e<P.length;_e++)ut=ae(be,_,_e,P[_e],ee),ut!==null&&(e&&ut.alternate!==null&&be.delete(ut.key===null?_e:ut.key),C=u(ut,C,_e),Ce===null?ve=ut:Ce.sibling=ut,Ce=ut);return e&&be.forEach(function(sr){return n(_,sr)}),Ge&&yr(_,_e),ve}function me(_,C,P,ee){var ve=B(P);if(typeof ve!="function")throw Error(i(150));if(P=ve.call(P),P==null)throw Error(i(151));for(var Ce=ve=null,be=C,_e=C=0,ut=null,De=P.next();be!==null&&!De.done;_e++,De=P.next()){be.index>_e?(ut=be,be=null):ut=be.sibling;var sr=H(_,be,De.value,ee);if(sr===null){be===null&&(be=ut);break}e&&be&&sr.alternate===null&&n(_,be),C=u(sr,C,_e),Ce===null?ve=sr:Ce.sibling=sr,Ce=sr,be=ut}if(De.done)return s(_,be),Ge&&yr(_,_e),ve;if(be===null){for(;!De.done;_e++,De=P.next())De=K(_,De.value,ee),De!==null&&(C=u(De,C,_e),Ce===null?ve=De:Ce.sibling=De,Ce=De);return Ge&&yr(_,_e),ve}for(be=l(_,be);!De.done;_e++,De=P.next())De=ae(be,_,_e,De.value,ee),De!==null&&(e&&De.alternate!==null&&be.delete(De.key===null?_e:De.key),C=u(De,C,_e),Ce===null?ve=De:Ce.sibling=De,Ce=De);return e&&be.forEach(function(_m){return n(_,_m)}),Ge&&yr(_,_e),ve}function et(_,C,P,ee){if(typeof P=="object"&&P!==null&&P.type===F&&P.key===null&&(P=P.props.children),typeof P=="object"&&P!==null){switch(P.$$typeof){case Y:e:{for(var ve=P.key,Ce=C;Ce!==null;){if(Ce.key===ve){if(ve=P.type,ve===F){if(Ce.tag===7){s(_,Ce.sibling),C=c(Ce,P.props.children),C.return=_,_=C;break e}}else if(Ce.elementType===ve||typeof ve=="object"&&ve!==null&&ve.$$typeof===ce&&Au(ve)===Ce.type){s(_,Ce.sibling),C=c(Ce,P.props),C.ref=Xs(_,Ce,P),C.return=_,_=C;break e}s(_,Ce);break}else n(_,Ce);Ce=Ce.sibling}P.type===F?(C=Ir(P.props.children,_.mode,ee,P.key),C.return=_,_=C):(ee=Li(P.type,P.key,P.props,null,_.mode,ee),ee.ref=Xs(_,C,P),ee.return=_,_=ee)}return h(_);case A:e:{for(Ce=P.key;C!==null;){if(C.key===Ce)if(C.tag===4&&C.stateNode.containerInfo===P.containerInfo&&C.stateNode.implementation===P.implementation){s(_,C.sibling),C=c(C,P.children||[]),C.return=_,_=C;break e}else{s(_,C);break}else n(_,C);C=C.sibling}C=Xa(P,_.mode,ee),C.return=_,_=C}return h(_);case ce:return Ce=P._init,et(_,C,Ce(P._payload),ee)}if(Ze(P))return pe(_,C,P,ee);if(B(P))return me(_,C,P,ee);di(_,P)}return typeof P=="string"&&P!==""||typeof P=="number"?(P=""+P,C!==null&&C.tag===6?(s(_,C.sibling),C=c(C,P),C.return=_,_=C):(s(_,C),C=Ya(P,_.mode,ee),C.return=_,_=C),h(_)):s(_,C)}return et}var ns=$u(!0),Du=$u(!1),fi=Kn(null),pi=null,rs=null,ia=null;function la(){ia=rs=pi=null}function aa(e){var n=fi.current;Ve(fi),e._currentValue=n}function ca(e,n,s){for(;e!==null;){var l=e.alternate;if((e.childLanes&n)!==n?(e.childLanes|=n,l!==null&&(l.childLanes|=n)):l!==null&&(l.childLanes&n)!==n&&(l.childLanes|=n),e===s)break;e=e.return}}function ss(e,n){pi=e,ia=rs=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&n)!==0&&(bt=!0),e.firstContext=null)}function Bt(e){var n=e._currentValue;if(ia!==e)if(e={context:e,memoizedValue:n,next:null},rs===null){if(pi===null)throw Error(i(308));rs=e,pi.dependencies={lanes:0,firstContext:e}}else rs=rs.next=e;return n}var xr=null;function ua(e){xr===null?xr=[e]:xr.push(e)}function zu(e,n,s,l){var c=n.interleaved;return c===null?(s.next=s,ua(n)):(s.next=c.next,c.next=s),n.interleaved=s,Sn(e,l)}function Sn(e,n){e.lanes|=n;var s=e.alternate;for(s!==null&&(s.lanes|=n),s=e,e=e.return;e!==null;)e.childLanes|=n,s=e.alternate,s!==null&&(s.childLanes|=n),s=e,e=e.return;return s.tag===3?s.stateNode:null}var Yn=!1;function da(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Wu(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Cn(e,n){return{eventTime:e,lane:n,tag:0,payload:null,callback:null,next:null}}function Xn(e,n,s){var l=e.updateQueue;if(l===null)return null;if(l=l.shared,($e&2)!==0){var c=l.pending;return c===null?n.next=n:(n.next=c.next,c.next=n),l.pending=n,Sn(e,s)}return c=l.interleaved,c===null?(n.next=n,ua(l)):(n.next=c.next,c.next=n),l.interleaved=n,Sn(e,s)}function hi(e,n,s){if(n=n.updateQueue,n!==null&&(n=n.shared,(s&4194240)!==0)){var l=n.lanes;l&=e.pendingLanes,s|=l,n.lanes=s,Fr(e,s)}}function Fu(e,n){var s=e.updateQueue,l=e.alternate;if(l!==null&&(l=l.updateQueue,s===l)){var c=null,u=null;if(s=s.firstBaseUpdate,s!==null){do{var h={eventTime:s.eventTime,lane:s.lane,tag:s.tag,payload:s.payload,callback:s.callback,next:null};u===null?c=u=h:u=u.next=h,s=s.next}while(s!==null);u===null?c=u=n:u=u.next=n}else c=u=n;s={baseState:l.baseState,firstBaseUpdate:c,lastBaseUpdate:u,shared:l.shared,effects:l.effects},e.updateQueue=s;return}e=s.lastBaseUpdate,e===null?s.firstBaseUpdate=n:e.next=n,s.lastBaseUpdate=n}function mi(e,n,s,l){var c=e.updateQueue;Yn=!1;var u=c.firstBaseUpdate,h=c.lastBaseUpdate,w=c.shared.pending;if(w!==null){c.shared.pending=null;var S=w,O=S.next;S.next=null,h===null?u=O:h.next=O,h=S;var V=e.alternate;V!==null&&(V=V.updateQueue,w=V.lastBaseUpdate,w!==h&&(w===null?V.firstBaseUpdate=O:w.next=O,V.lastBaseUpdate=S))}if(u!==null){var K=c.baseState;h=0,V=O=S=null,w=u;do{var H=w.lane,ae=w.eventTime;if((l&H)===H){V!==null&&(V=V.next={eventTime:ae,lane:0,tag:w.tag,payload:w.payload,callback:w.callback,next:null});e:{var pe=e,me=w;switch(H=n,ae=s,me.tag){case 1:if(pe=me.payload,typeof pe=="function"){K=pe.call(ae,K,H);break e}K=pe;break e;case 3:pe.flags=pe.flags&-65537|128;case 0:if(pe=me.payload,H=typeof pe=="function"?pe.call(ae,K,H):pe,H==null)break e;K=$({},K,H);break e;case 2:Yn=!0}}w.callback!==null&&w.lane!==0&&(e.flags|=64,H=c.effects,H===null?c.effects=[w]:H.push(w))}else ae={eventTime:ae,lane:H,tag:w.tag,payload:w.payload,callback:w.callback,next:null},V===null?(O=V=ae,S=K):V=V.next=ae,h|=H;if(w=w.next,w===null){if(w=c.shared.pending,w===null)break;H=w,w=H.next,H.next=null,c.lastBaseUpdate=H,c.shared.pending=null}}while(!0);if(V===null&&(S=K),c.baseState=S,c.firstBaseUpdate=O,c.lastBaseUpdate=V,n=c.shared.interleaved,n!==null){c=n;do h|=c.lane,c=c.next;while(c!==n)}else u===null&&(c.shared.lanes=0);jr|=h,e.lanes=h,e.memoizedState=K}}function Bu(e,n,s){if(e=n.effects,n.effects=null,e!==null)for(n=0;n<e.length;n++){var l=e[n],c=l.callback;if(c!==null){if(l.callback=null,l=s,typeof c!="function")throw Error(i(191,c));c.call(l)}}}var Js={},fn=Kn(Js),Zs=Kn(Js),eo=Kn(Js);function wr(e){if(e===Js)throw Error(i(174));return e}function fa(e,n){switch(Be(eo,n),Be(Zs,e),Be(fn,Js),e=n.nodeType,e){case 9:case 11:n=(n=n.documentElement)?n.namespaceURI:Ln(null,"");break;default:e=e===8?n.parentNode:n,n=e.namespaceURI||null,e=e.tagName,n=Ln(n,e)}Ve(fn),Be(fn,n)}function os(){Ve(fn),Ve(Zs),Ve(eo)}function qu(e){wr(eo.current);var n=wr(fn.current),s=Ln(n,e.type);n!==s&&(Be(Zs,e),Be(fn,s))}function pa(e){Zs.current===e&&(Ve(fn),Ve(Zs))}var Ye=Kn(0);function gi(e){for(var n=e;n!==null;){if(n.tag===13){var s=n.memoizedState;if(s!==null&&(s=s.dehydrated,s===null||s.data==="$?"||s.data==="$!"))return n}else if(n.tag===19&&n.memoizedProps.revealOrder!==void 0){if((n.flags&128)!==0)return n}else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}var ha=[];function ma(){for(var e=0;e<ha.length;e++)ha[e]._workInProgressVersionPrimary=null;ha.length=0}var vi=ie.ReactCurrentDispatcher,ga=ie.ReactCurrentBatchConfig,kr=0,Xe=null,ot=null,at=null,yi=!1,to=!1,no=0,Yh=0;function mt(){throw Error(i(321))}function va(e,n){if(n===null)return!1;for(var s=0;s<n.length&&s<e.length;s++)if(!Xt(e[s],n[s]))return!1;return!0}function ya(e,n,s,l,c,u){if(kr=u,Xe=n,n.memoizedState=null,n.updateQueue=null,n.lanes=0,vi.current=e===null||e.memoizedState===null?em:tm,e=s(l,c),to){u=0;do{if(to=!1,no=0,25<=u)throw Error(i(301));u+=1,at=ot=null,n.updateQueue=null,vi.current=nm,e=s(l,c)}while(to)}if(vi.current=ki,n=ot!==null&&ot.next!==null,kr=0,at=ot=Xe=null,yi=!1,n)throw Error(i(300));return e}function xa(){var e=no!==0;return no=0,e}function pn(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return at===null?Xe.memoizedState=at=e:at=at.next=e,at}function qt(){if(ot===null){var e=Xe.alternate;e=e!==null?e.memoizedState:null}else e=ot.next;var n=at===null?Xe.memoizedState:at.next;if(n!==null)at=n,ot=e;else{if(e===null)throw Error(i(310));ot=e,e={memoizedState:ot.memoizedState,baseState:ot.baseState,baseQueue:ot.baseQueue,queue:ot.queue,next:null},at===null?Xe.memoizedState=at=e:at=at.next=e}return at}function ro(e,n){return typeof n=="function"?n(e):n}function wa(e){var n=qt(),s=n.queue;if(s===null)throw Error(i(311));s.lastRenderedReducer=e;var l=ot,c=l.baseQueue,u=s.pending;if(u!==null){if(c!==null){var h=c.next;c.next=u.next,u.next=h}l.baseQueue=c=u,s.pending=null}if(c!==null){u=c.next,l=l.baseState;var w=h=null,S=null,O=u;do{var V=O.lane;if((kr&V)===V)S!==null&&(S=S.next={lane:0,action:O.action,hasEagerState:O.hasEagerState,eagerState:O.eagerState,next:null}),l=O.hasEagerState?O.eagerState:e(l,O.action);else{var K={lane:V,action:O.action,hasEagerState:O.hasEagerState,eagerState:O.eagerState,next:null};S===null?(w=S=K,h=l):S=S.next=K,Xe.lanes|=V,jr|=V}O=O.next}while(O!==null&&O!==u);S===null?h=l:S.next=w,Xt(l,n.memoizedState)||(bt=!0),n.memoizedState=l,n.baseState=h,n.baseQueue=S,s.lastRenderedState=l}if(e=s.interleaved,e!==null){c=e;do u=c.lane,Xe.lanes|=u,jr|=u,c=c.next;while(c!==e)}else c===null&&(s.lanes=0);return[n.memoizedState,s.dispatch]}function ka(e){var n=qt(),s=n.queue;if(s===null)throw Error(i(311));s.lastRenderedReducer=e;var l=s.dispatch,c=s.pending,u=n.memoizedState;if(c!==null){s.pending=null;var h=c=c.next;do u=e(u,h.action),h=h.next;while(h!==c);Xt(u,n.memoizedState)||(bt=!0),n.memoizedState=u,n.baseQueue===null&&(n.baseState=u),s.lastRenderedState=u}return[u,l]}function Uu(){}function Hu(e,n){var s=Xe,l=qt(),c=n(),u=!Xt(l.memoizedState,c);if(u&&(l.memoizedState=c,bt=!0),l=l.queue,ja(Gu.bind(null,s,l,e),[e]),l.getSnapshot!==n||u||at!==null&&at.memoizedState.tag&1){if(s.flags|=2048,so(9,Ku.bind(null,s,l,c,n),void 0,null),ct===null)throw Error(i(349));(kr&30)!==0||Vu(s,n,c)}return c}function Vu(e,n,s){e.flags|=16384,e={getSnapshot:n,value:s},n=Xe.updateQueue,n===null?(n={lastEffect:null,stores:null},Xe.updateQueue=n,n.stores=[e]):(s=n.stores,s===null?n.stores=[e]:s.push(e))}function Ku(e,n,s,l){n.value=s,n.getSnapshot=l,Qu(n)&&Yu(e)}function Gu(e,n,s){return s(function(){Qu(n)&&Yu(e)})}function Qu(e){var n=e.getSnapshot;e=e.value;try{var s=n();return!Xt(e,s)}catch{return!0}}function Yu(e){var n=Sn(e,1);n!==null&&nn(n,e,1,-1)}function Xu(e){var n=pn();return typeof e=="function"&&(e=e()),n.memoizedState=n.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:ro,lastRenderedState:e},n.queue=e,e=e.dispatch=Zh.bind(null,Xe,e),[n.memoizedState,e]}function so(e,n,s,l){return e={tag:e,create:n,destroy:s,deps:l,next:null},n=Xe.updateQueue,n===null?(n={lastEffect:null,stores:null},Xe.updateQueue=n,n.lastEffect=e.next=e):(s=n.lastEffect,s===null?n.lastEffect=e.next=e:(l=s.next,s.next=e,e.next=l,n.lastEffect=e)),e}function Ju(){return qt().memoizedState}function xi(e,n,s,l){var c=pn();Xe.flags|=e,c.memoizedState=so(1|n,s,void 0,l===void 0?null:l)}function wi(e,n,s,l){var c=qt();l=l===void 0?null:l;var u=void 0;if(ot!==null){var h=ot.memoizedState;if(u=h.destroy,l!==null&&va(l,h.deps)){c.memoizedState=so(n,s,u,l);return}}Xe.flags|=e,c.memoizedState=so(1|n,s,u,l)}function Zu(e,n){return xi(8390656,8,e,n)}function ja(e,n){return wi(2048,8,e,n)}function ed(e,n){return wi(4,2,e,n)}function td(e,n){return wi(4,4,e,n)}function nd(e,n){if(typeof n=="function")return e=e(),n(e),function(){n(null)};if(n!=null)return e=e(),n.current=e,function(){n.current=null}}function rd(e,n,s){return s=s!=null?s.concat([e]):null,wi(4,4,nd.bind(null,n,e),s)}function Sa(){}function sd(e,n){var s=qt();n=n===void 0?null:n;var l=s.memoizedState;return l!==null&&n!==null&&va(n,l[1])?l[0]:(s.memoizedState=[e,n],e)}function od(e,n){var s=qt();n=n===void 0?null:n;var l=s.memoizedState;return l!==null&&n!==null&&va(n,l[1])?l[0]:(e=e(),s.memoizedState=[e,n],e)}function id(e,n,s){return(kr&21)===0?(e.baseState&&(e.baseState=!1,bt=!0),e.memoizedState=s):(Xt(s,n)||(s=Ee(),Xe.lanes|=s,jr|=s,e.baseState=!0),n)}function Xh(e,n){var s=Le;Le=s!==0&&4>s?s:4,e(!0);var l=ga.transition;ga.transition={};try{e(!1),n()}finally{Le=s,ga.transition=l}}function ld(){return qt().memoizedState}function Jh(e,n,s){var l=tr(e);if(s={lane:l,action:s,hasEagerState:!1,eagerState:null,next:null},ad(e))cd(n,s);else if(s=zu(e,n,s,l),s!==null){var c=wt();nn(s,e,l,c),ud(s,n,l)}}function Zh(e,n,s){var l=tr(e),c={lane:l,action:s,hasEagerState:!1,eagerState:null,next:null};if(ad(e))cd(n,c);else{var u=e.alternate;if(e.lanes===0&&(u===null||u.lanes===0)&&(u=n.lastRenderedReducer,u!==null))try{var h=n.lastRenderedState,w=u(h,s);if(c.hasEagerState=!0,c.eagerState=w,Xt(w,h)){var S=n.interleaved;S===null?(c.next=c,ua(n)):(c.next=S.next,S.next=c),n.interleaved=c;return}}catch{}s=zu(e,n,c,l),s!==null&&(c=wt(),nn(s,e,l,c),ud(s,n,l))}}function ad(e){var n=e.alternate;return e===Xe||n!==null&&n===Xe}function cd(e,n){to=yi=!0;var s=e.pending;s===null?n.next=n:(n.next=s.next,s.next=n),e.pending=n}function ud(e,n,s){if((s&4194240)!==0){var l=n.lanes;l&=e.pendingLanes,s|=l,n.lanes=s,Fr(e,s)}}var ki={readContext:Bt,useCallback:mt,useContext:mt,useEffect:mt,useImperativeHandle:mt,useInsertionEffect:mt,useLayoutEffect:mt,useMemo:mt,useReducer:mt,useRef:mt,useState:mt,useDebugValue:mt,useDeferredValue:mt,useTransition:mt,useMutableSource:mt,useSyncExternalStore:mt,useId:mt,unstable_isNewReconciler:!1},em={readContext:Bt,useCallback:function(e,n){return pn().memoizedState=[e,n===void 0?null:n],e},useContext:Bt,useEffect:Zu,useImperativeHandle:function(e,n,s){return s=s!=null?s.concat([e]):null,xi(4194308,4,nd.bind(null,n,e),s)},useLayoutEffect:function(e,n){return xi(4194308,4,e,n)},useInsertionEffect:function(e,n){return xi(4,2,e,n)},useMemo:function(e,n){var s=pn();return n=n===void 0?null:n,e=e(),s.memoizedState=[e,n],e},useReducer:function(e,n,s){var l=pn();return n=s!==void 0?s(n):n,l.memoizedState=l.baseState=n,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},l.queue=e,e=e.dispatch=Jh.bind(null,Xe,e),[l.memoizedState,e]},useRef:function(e){var n=pn();return e={current:e},n.memoizedState=e},useState:Xu,useDebugValue:Sa,useDeferredValue:function(e){return pn().memoizedState=e},useTransition:function(){var e=Xu(!1),n=e[0];return e=Xh.bind(null,e[1]),pn().memoizedState=e,[n,e]},useMutableSource:function(){},useSyncExternalStore:function(e,n,s){var l=Xe,c=pn();if(Ge){if(s===void 0)throw Error(i(407));s=s()}else{if(s=n(),ct===null)throw Error(i(349));(kr&30)!==0||Vu(l,n,s)}c.memoizedState=s;var u={value:s,getSnapshot:n};return c.queue=u,Zu(Gu.bind(null,l,u,e),[e]),l.flags|=2048,so(9,Ku.bind(null,l,u,s,n),void 0,null),s},useId:function(){var e=pn(),n=ct.identifierPrefix;if(Ge){var s=jn,l=kn;s=(l&~(1<<32-jt(l)-1)).toString(32)+s,n=":"+n+"R"+s,s=no++,0<s&&(n+="H"+s.toString(32)),n+=":"}else s=Yh++,n=":"+n+"r"+s.toString(32)+":";return e.memoizedState=n},unstable_isNewReconciler:!1},tm={readContext:Bt,useCallback:sd,useContext:Bt,useEffect:ja,useImperativeHandle:rd,useInsertionEffect:ed,useLayoutEffect:td,useMemo:od,useReducer:wa,useRef:Ju,useState:function(){return wa(ro)},useDebugValue:Sa,useDeferredValue:function(e){var n=qt();return id(n,ot.memoizedState,e)},useTransition:function(){var e=wa(ro)[0],n=qt().memoizedState;return[e,n]},useMutableSource:Uu,useSyncExternalStore:Hu,useId:ld,unstable_isNewReconciler:!1},nm={readContext:Bt,useCallback:sd,useContext:Bt,useEffect:ja,useImperativeHandle:rd,useInsertionEffect:ed,useLayoutEffect:td,useMemo:od,useReducer:ka,useRef:Ju,useState:function(){return ka(ro)},useDebugValue:Sa,useDeferredValue:function(e){var n=qt();return ot===null?n.memoizedState=e:id(n,ot.memoizedState,e)},useTransition:function(){var e=ka(ro)[0],n=qt().memoizedState;return[e,n]},useMutableSource:Uu,useSyncExternalStore:Hu,useId:ld,unstable_isNewReconciler:!1};function Zt(e,n){if(e&&e.defaultProps){n=$({},n),e=e.defaultProps;for(var s in e)n[s]===void 0&&(n[s]=e[s]);return n}return n}function Ca(e,n,s,l){n=e.memoizedState,s=s(l,n),s=s==null?n:$({},n,s),e.memoizedState=s,e.lanes===0&&(e.updateQueue.baseState=s)}var ji={isMounted:function(e){return(e=e._reactInternals)?yn(e)===e:!1},enqueueSetState:function(e,n,s){e=e._reactInternals;var l=wt(),c=tr(e),u=Cn(l,c);u.payload=n,s!=null&&(u.callback=s),n=Xn(e,u,c),n!==null&&(nn(n,e,c,l),hi(n,e,c))},enqueueReplaceState:function(e,n,s){e=e._reactInternals;var l=wt(),c=tr(e),u=Cn(l,c);u.tag=1,u.payload=n,s!=null&&(u.callback=s),n=Xn(e,u,c),n!==null&&(nn(n,e,c,l),hi(n,e,c))},enqueueForceUpdate:function(e,n){e=e._reactInternals;var s=wt(),l=tr(e),c=Cn(s,l);c.tag=2,n!=null&&(c.callback=n),n=Xn(e,c,l),n!==null&&(nn(n,e,l,s),hi(n,e,l))}};function dd(e,n,s,l,c,u,h){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(l,u,h):n.prototype&&n.prototype.isPureReactComponent?!Us(s,l)||!Us(c,u):!0}function fd(e,n,s){var l=!1,c=Gn,u=n.contextType;return typeof u=="object"&&u!==null?u=Bt(u):(c=Ct(n)?gr:ht.current,l=n.contextTypes,u=(l=l!=null)?Jr(e,c):Gn),n=new n(s,u),e.memoizedState=n.state!==null&&n.state!==void 0?n.state:null,n.updater=ji,e.stateNode=n,n._reactInternals=e,l&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=c,e.__reactInternalMemoizedMaskedChildContext=u),n}function pd(e,n,s,l){e=n.state,typeof n.componentWillReceiveProps=="function"&&n.componentWillReceiveProps(s,l),typeof n.UNSAFE_componentWillReceiveProps=="function"&&n.UNSAFE_componentWillReceiveProps(s,l),n.state!==e&&ji.enqueueReplaceState(n,n.state,null)}function ba(e,n,s,l){var c=e.stateNode;c.props=s,c.state=e.memoizedState,c.refs={},da(e);var u=n.contextType;typeof u=="object"&&u!==null?c.context=Bt(u):(u=Ct(n)?gr:ht.current,c.context=Jr(e,u)),c.state=e.memoizedState,u=n.getDerivedStateFromProps,typeof u=="function"&&(Ca(e,n,u,s),c.state=e.memoizedState),typeof n.getDerivedStateFromProps=="function"||typeof c.getSnapshotBeforeUpdate=="function"||typeof c.UNSAFE_componentWillMount!="function"&&typeof c.componentWillMount!="function"||(n=c.state,typeof c.componentWillMount=="function"&&c.componentWillMount(),typeof c.UNSAFE_componentWillMount=="function"&&c.UNSAFE_componentWillMount(),n!==c.state&&ji.enqueueReplaceState(c,c.state,null),mi(e,s,c,l),c.state=e.memoizedState),typeof c.componentDidMount=="function"&&(e.flags|=4194308)}function is(e,n){try{var s="",l=n;do s+=ke(l),l=l.return;while(l);var c=s}catch(u){c=`
6
+ `+c[h].replace(" at new "," at ");return e.displayName&&S.includes("<anonymous>")&&(S=S.replace("<anonymous>",e.displayName)),S}while(1<=h&&0<=w);break}}}finally{ue=!1,Error.prepareStackTrace=s}return(e=e?e.displayName||e.name:"")?R(e):""}function ke(e){switch(e.tag){case 5:return R(e.type);case 16:return R("Lazy");case 13:return R("Suspense");case 19:return R("SuspenseList");case 0:case 2:case 15:return e=fe(e.type,!1),e;case 11:return e=fe(e.type.render,!1),e;case 1:return e=fe(e.type,!0),e;default:return""}}function re(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case F:return"Fragment";case L:return"Portal";case Ie:return"Profiler";case ge:return"StrictMode";case J:return"Suspense";case Se:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case te:return(e.displayName||"Context")+".Consumer";case we:return(e._context.displayName||"Context")+".Provider";case ye:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case D:return n=e.displayName||null,n!==null?n:re(e.type)||"Memo";case ce:n=e._payload,e=e._init;try{return re(e(n))}catch{}}return null}function he(e){var n=e.type;switch(e.tag){case 24:return"Cache";case 9:return(n.displayName||"Context")+".Consumer";case 10:return(n._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=n.render,e=e.displayName||e.name||"",n.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return n;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return re(n);case 8:return n===ge?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n}return null}function je(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function le(e){var n=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function Me(e){var n=le(e)?"checked":"value",s=Object.getOwnPropertyDescriptor(e.constructor.prototype,n),l=""+e[n];if(!e.hasOwnProperty(n)&&typeof s<"u"&&typeof s.get=="function"&&typeof s.set=="function"){var c=s.get,u=s.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return c.call(this)},set:function(h){l=""+h,u.call(this,h)}}),Object.defineProperty(e,n,{enumerable:s.enumerable}),{getValue:function(){return l},setValue:function(h){l=""+h},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}function Ke(e){e._valueTracker||(e._valueTracker=Me(e))}function tt(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var s=n.getValue(),l="";return e&&(l=le(e)?e.checked?"true":"false":e.value),e=l,e!==s?(n.setValue(e),!0):!1}function st(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}}function lt(e,n){var s=n.checked;return $({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:s??e._wrapperState.initialChecked})}function dt(e,n){var s=n.defaultValue==null?"":n.defaultValue,l=n.checked!=null?n.checked:n.defaultChecked;s=je(n.value!=null?n.value:s),e._wrapperState={initialChecked:l,initialValue:s,controlled:n.type==="checkbox"||n.type==="radio"?n.checked!=null:n.value!=null}}function ln(e,n){n=n.checked,n!=null&&se(e,"checked",n,!1)}function q(e,n){ln(e,n);var s=je(n.value),l=n.type;if(s!=null)l==="number"?(s===0&&e.value===""||e.value!=s)&&(e.value=""+s):e.value!==""+s&&(e.value=""+s);else if(l==="submit"||l==="reset"){e.removeAttribute("value");return}n.hasOwnProperty("value")?qe(e,n.type,s):n.hasOwnProperty("defaultValue")&&qe(e,n.type,je(n.defaultValue)),n.checked==null&&n.defaultChecked!=null&&(e.defaultChecked=!!n.defaultChecked)}function Re(e,n,s){if(n.hasOwnProperty("value")||n.hasOwnProperty("defaultValue")){var l=n.type;if(!(l!=="submit"&&l!=="reset"||n.value!==void 0&&n.value!==null))return;n=""+e._wrapperState.initialValue,s||n===e.value||(e.value=n),e.defaultValue=n}s=e.name,s!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,s!==""&&(e.name=s)}function qe(e,n,s){(n!=="number"||st(e.ownerDocument)!==e)&&(s==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+s&&(e.defaultValue=""+s))}var Ze=Array.isArray;function kt(e,n,s,l){if(e=e.options,n){n={};for(var c=0;c<s.length;c++)n["$"+s[c]]=!0;for(s=0;s<e.length;s++)c=n.hasOwnProperty("$"+e[s].value),e[s].selected!==c&&(e[s].selected=c),c&&l&&(e[s].defaultSelected=!0)}else{for(s=""+je(s),n=null,c=0;c<e.length;c++){if(e[c].value===s){e[c].selected=!0,l&&(e[c].defaultSelected=!0);return}n!==null||e[c].disabled||(n=e[c])}n!==null&&(n.selected=!0)}}function Mn(e,n){if(n.dangerouslySetInnerHTML!=null)throw Error(i(91));return $({},n,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ar(e,n){var s=n.value;if(s==null){if(s=n.children,n=n.defaultValue,s!=null){if(n!=null)throw Error(i(92));if(Ze(s)){if(1<s.length)throw Error(i(93));s=s[0]}n=s}n==null&&(n=""),s=n}e._wrapperState={initialValue:je(s)}}function cr(e,n){var s=je(n.value),l=je(n.defaultValue);s!=null&&(s=""+s,s!==e.value&&(e.value=s),n.defaultValue==null&&e.defaultValue!==s&&(e.defaultValue=s)),l!=null&&(e.defaultValue=""+l)}function yt(e){var n=e.textContent;n===e._wrapperState.initialValue&&n!==""&&n!==null&&(e.value=n)}function ur(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function An(e,n){return e==null||e==="http://www.w3.org/1999/xhtml"?ur(n):e==="http://www.w3.org/2000/svg"&&n==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var $t,Ln=(function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(n,s,l,c){MSApp.execUnsafeLocalFunction(function(){return e(n,s,l,c)})}:e})(function(e,n){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=n;else{for($t=$t||document.createElement("div"),$t.innerHTML="<svg>"+n.valueOf().toString()+"</svg>",n=$t.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}});function an(e,n){if(n){var s=e.firstChild;if(s&&s===e.lastChild&&s.nodeType===3){s.nodeValue=n;return}}e.textContent=n}var Z={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Ne=["Webkit","ms","Moz","O"];Object.keys(Z).forEach(function(e){Ne.forEach(function(n){n=n+e.charAt(0).toUpperCase()+e.substring(1),Z[n]=Z[e]})});function Pe(e,n,s){return n==null||typeof n=="boolean"||n===""?"":s||typeof n!="number"||n===0||Z.hasOwnProperty(e)&&Z[e]?(""+n).trim():n+"px"}function Ue(e,n){e=e.style;for(var s in n)if(n.hasOwnProperty(s)){var l=s.indexOf("--")===0,c=Pe(s,n[s],l);s==="float"&&(s="cssFloat"),l?e.setProperty(s,c):e[s]=c}}var Qt=$({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function cn(e,n){if(n){if(Qt[e]&&(n.children!=null||n.dangerouslySetInnerHTML!=null))throw Error(i(137,e));if(n.dangerouslySetInnerHTML!=null){if(n.children!=null)throw Error(i(60));if(typeof n.dangerouslySetInnerHTML!="object"||!("__html"in n.dangerouslySetInnerHTML))throw Error(i(61))}if(n.style!=null&&typeof n.style!="object")throw Error(i(62))}}function un(e,n){if(e.indexOf("-")===-1)return typeof n.is=="string";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 Yt=null;function Mr(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Ar=null,gn=null,vn=null;function js(e){if(e=Ys(e)){if(typeof Ar!="function")throw Error(i(280));var n=e.stateNode;n&&(n=si(n),Ar(e.stateNode,e.type,n))}}function Ss(e){gn?vn?vn.push(e):vn=[e]:gn=e}function Cs(){if(gn){var e=gn,n=vn;if(vn=gn=null,js(e),n)for(e=0;e<n.length;e++)js(n[e])}}function bs(e,n){return e(n)}function Is(){}var Lr=!1;function Ns(e,n,s){if(Lr)return e(n,s);Lr=!0;try{return bs(e,n,s)}finally{Lr=!1,(gn!==null||vn!==null)&&(Is(),Cs())}}function $n(e,n){var s=e.stateNode;if(s===null)return null;var l=si(s);if(l===null)return null;s=l[n];e:switch(n){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(l=!l.disabled)||(e=e.type,l=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!l;break e;default:e=!1}if(e)return null;if(s&&typeof s!="function")throw Error(i(231,n,typeof s));return s}var $r=!1;if(g)try{var Dn={};Object.defineProperty(Dn,"passive",{get:function(){$r=!0}}),window.addEventListener("test",Dn,Dn),window.removeEventListener("test",Dn,Dn)}catch{$r=!1}function No(e,n,s,l,c,u,h,w,S){var O=Array.prototype.slice.call(arguments,3);try{n.apply(s,O)}catch(V){this.onError(V)}}var zn=!1,Dr=null,dr=!1,zr=null,_o={onError:function(e){zn=!0,Dr=e}};function Eo(e,n,s,l,c,u,h,w,S){zn=!1,Dr=null,No.apply(_o,arguments)}function Sl(e,n,s,l,c,u,h,w,S){if(Eo.apply(this,arguments),zn){if(zn){var O=Dr;zn=!1,Dr=null}else throw Error(i(198));dr||(dr=!0,zr=O)}}function yn(e){var n=e,s=e;if(e.alternate)for(;n.return;)n=n.return;else{e=n;do n=e,(n.flags&4098)!==0&&(s=n.return),e=n.return;while(e)}return n.tag===3?s:null}function Ro(e){if(e.tag===13){var n=e.memoizedState;if(n===null&&(e=e.alternate,e!==null&&(n=e.memoizedState)),n!==null)return n.dehydrated}return null}function Po(e){if(yn(e)!==e)throw Error(i(188))}function Cl(e){var n=e.alternate;if(!n){if(n=yn(e),n===null)throw Error(i(188));return n!==e?null:e}for(var s=e,l=n;;){var c=s.return;if(c===null)break;var u=c.alternate;if(u===null){if(l=c.return,l!==null){s=l;continue}break}if(c.child===u.child){for(u=c.child;u;){if(u===s)return Po(c),e;if(u===l)return Po(c),n;u=u.sibling}throw Error(i(188))}if(s.return!==l.return)s=c,l=u;else{for(var h=!1,w=c.child;w;){if(w===s){h=!0,s=c,l=u;break}if(w===l){h=!0,l=c,s=u;break}w=w.sibling}if(!h){for(w=u.child;w;){if(w===s){h=!0,s=u,l=c;break}if(w===l){h=!0,l=u,s=c;break}w=w.sibling}if(!h)throw Error(i(189))}}if(s.alternate!==l)throw Error(i(190))}if(s.tag!==3)throw Error(i(188));return s.stateNode.current===s?e:n}function To(e){return e=Cl(e),e!==null?Oo(e):null}function Oo(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var n=Oo(e);if(n!==null)return n;e=e.sibling}return null}var Mo=r.unstable_scheduleCallback,Ao=r.unstable_cancelCallback,bl=r.unstable_shouldYield,Il=r.unstable_requestPaint,Qe=r.unstable_now,Nl=r.unstable_getCurrentPriorityLevel,_s=r.unstable_ImmediatePriority,Es=r.unstable_UserBlockingPriority,fr=r.unstable_NormalPriority,Lo=r.unstable_LowPriority,Rs=r.unstable_IdlePriority,pr=null,Tt=null;function $o(e){if(Tt&&typeof Tt.onCommitFiberRoot=="function")try{Tt.onCommitFiberRoot(pr,e,void 0,(e.current.flags&128)===128)}catch{}}var jt=Math.clz32?Math.clz32:Wo,Do=Math.log,zo=Math.LN2;function Wo(e){return e>>>=0,e===0?32:31-(Do(e)/zo|0)|0}var hr=64,Wr=4194304;function y(e){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: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 e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function I(e,n){var s=e.pendingLanes;if(s===0)return 0;var l=0,c=e.suspendedLanes,u=e.pingedLanes,h=s&268435455;if(h!==0){var w=h&~c;w!==0?l=y(w):(u&=h,u!==0&&(l=y(u)))}else h=s&~c,h!==0?l=y(h):u!==0&&(l=y(u));if(l===0)return 0;if(n!==0&&n!==l&&(n&c)===0&&(c=l&-l,u=n&-n,c>=u||c===16&&(u&4194240)!==0))return n;if((l&4)!==0&&(l|=s&16),n=e.entangledLanes,n!==0)for(e=e.entanglements,n&=l;0<n;)s=31-jt(n),c=1<<s,l|=e[s],n&=~c;return l}function M(e,n){switch(e){case 1:case 2:case 4:return n+250;case 8:case 16:case 32:case 64: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 n+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function X(e,n){for(var s=e.suspendedLanes,l=e.pingedLanes,c=e.expirationTimes,u=e.pendingLanes;0<u;){var h=31-jt(u),w=1<<h,S=c[h];S===-1?((w&s)===0||(w&l)!==0)&&(c[h]=M(w,n)):S<=n&&(e.expiredLanes|=w),u&=~w}}function oe(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function Ee(){var e=hr;return hr<<=1,(hr&4194240)===0&&(hr=64),e}function ze(e){for(var n=[],s=0;31>s;s++)n.push(e);return n}function Le(e,n,s){e.pendingLanes|=n,n!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,n=31-jt(n),e[n]=s}function Dt(e,n){var s=e.pendingLanes&~n;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=n,e.mutableReadLanes&=n,e.entangledLanes&=n,n=e.entanglements;var l=e.eventTimes;for(e=e.expirationTimes;0<s;){var c=31-jt(s),u=1<<c;n[c]=0,l[c]=-1,e[c]=-1,s&=~u}}function Fr(e,n){var s=e.entangledLanes|=n;for(e=e.entanglements;s;){var l=31-jt(s),c=1<<l;c&n|e[l]&n&&(e[l]|=n),s&=~c}}var Ae=0;function Fo(e){return e&=-e,1<e?4<e?(e&268435455)!==0?16:536870912:4:1}var Bo,Ps,zt,Ts,Os,Br=!1,qo=[],Wn=null,Fn=null,Bn=null,Ms=new Map,As=new Map,qn=[],Xp="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 submit".split(" ");function Bc(e,n){switch(e){case"focusin":case"focusout":Wn=null;break;case"dragenter":case"dragleave":Fn=null;break;case"mouseover":case"mouseout":Bn=null;break;case"pointerover":case"pointerout":Ms.delete(n.pointerId);break;case"gotpointercapture":case"lostpointercapture":As.delete(n.pointerId)}}function Ls(e,n,s,l,c,u){return e===null||e.nativeEvent!==u?(e={blockedOn:n,domEventName:s,eventSystemFlags:l,nativeEvent:u,targetContainers:[c]},n!==null&&(n=Ys(n),n!==null&&Ps(n)),e):(e.eventSystemFlags|=l,n=e.targetContainers,c!==null&&n.indexOf(c)===-1&&n.push(c),e)}function Jp(e,n,s,l,c){switch(n){case"focusin":return Wn=Ls(Wn,e,n,s,l,c),!0;case"dragenter":return Fn=Ls(Fn,e,n,s,l,c),!0;case"mouseover":return Bn=Ls(Bn,e,n,s,l,c),!0;case"pointerover":var u=c.pointerId;return Ms.set(u,Ls(Ms.get(u)||null,e,n,s,l,c)),!0;case"gotpointercapture":return u=c.pointerId,As.set(u,Ls(As.get(u)||null,e,n,s,l,c)),!0}return!1}function qc(e){var n=mr(e.target);if(n!==null){var s=yn(n);if(s!==null){if(n=s.tag,n===13){if(n=Ro(s),n!==null){e.blockedOn=n,Os(e.priority,function(){zt(s)});return}}else if(n===3&&s.stateNode.current.memoizedState.isDehydrated){e.blockedOn=s.tag===3?s.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Uo(e){if(e.blockedOn!==null)return!1;for(var n=e.targetContainers;0<n.length;){var s=El(e.domEventName,e.eventSystemFlags,n[0],e.nativeEvent);if(s===null){s=e.nativeEvent;var l=new s.constructor(s.type,s);Yt=l,s.target.dispatchEvent(l),Yt=null}else return n=Ys(s),n!==null&&Ps(n),e.blockedOn=s,!1;n.shift()}return!0}function Uc(e,n,s){Uo(e)&&s.delete(n)}function Zp(){Br=!1,Wn!==null&&Uo(Wn)&&(Wn=null),Fn!==null&&Uo(Fn)&&(Fn=null),Bn!==null&&Uo(Bn)&&(Bn=null),Ms.forEach(Uc),As.forEach(Uc)}function $s(e,n){e.blockedOn===n&&(e.blockedOn=null,Br||(Br=!0,r.unstable_scheduleCallback(r.unstable_NormalPriority,Zp)))}function Ds(e){function n(c){return $s(c,e)}if(0<qo.length){$s(qo[0],e);for(var s=1;s<qo.length;s++){var l=qo[s];l.blockedOn===e&&(l.blockedOn=null)}}for(Wn!==null&&$s(Wn,e),Fn!==null&&$s(Fn,e),Bn!==null&&$s(Bn,e),Ms.forEach(n),As.forEach(n),s=0;s<qn.length;s++)l=qn[s],l.blockedOn===e&&(l.blockedOn=null);for(;0<qn.length&&(s=qn[0],s.blockedOn===null);)qc(s),s.blockedOn===null&&qn.shift()}var qr=ie.ReactCurrentBatchConfig,Ho=!0;function eh(e,n,s,l){var c=Ae,u=qr.transition;qr.transition=null;try{Ae=1,_l(e,n,s,l)}finally{Ae=c,qr.transition=u}}function th(e,n,s,l){var c=Ae,u=qr.transition;qr.transition=null;try{Ae=4,_l(e,n,s,l)}finally{Ae=c,qr.transition=u}}function _l(e,n,s,l){if(Ho){var c=El(e,n,s,l);if(c===null)Vl(e,n,l,Vo,s),Bc(e,l);else if(Jp(c,e,n,s,l))l.stopPropagation();else if(Bc(e,l),n&4&&-1<Xp.indexOf(e)){for(;c!==null;){var u=Ys(c);if(u!==null&&Bo(u),u=El(e,n,s,l),u===null&&Vl(e,n,l,Vo,s),u===c)break;c=u}c!==null&&l.stopPropagation()}else Vl(e,n,l,null,s)}}var Vo=null;function El(e,n,s,l){if(Vo=null,e=Mr(l),e=mr(e),e!==null)if(n=yn(e),n===null)e=null;else if(s=n.tag,s===13){if(e=Ro(n),e!==null)return e;e=null}else if(s===3){if(n.stateNode.current.memoizedState.isDehydrated)return n.tag===3?n.stateNode.containerInfo:null;e=null}else n!==e&&(e=null);return Vo=e,null}function Hc(e){switch(e){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"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 1;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"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Nl()){case _s:return 1;case Es:return 4;case fr:case Lo:return 16;case Rs:return 536870912;default:return 16}default:return 16}}var Un=null,Rl=null,Ko=null;function Vc(){if(Ko)return Ko;var e,n=Rl,s=n.length,l,c="value"in Un?Un.value:Un.textContent,u=c.length;for(e=0;e<s&&n[e]===c[e];e++);var h=s-e;for(l=1;l<=h&&n[s-l]===c[u-l];l++);return Ko=c.slice(e,1<l?1-l:void 0)}function Go(e){var n=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&n===13&&(e=13)):e=n,e===10&&(e=13),32<=e||e===13?e:0}function Qo(){return!0}function Kc(){return!1}function Ot(e){function n(s,l,c,u,h){this._reactName=s,this._targetInst=c,this.type=l,this.nativeEvent=u,this.target=h,this.currentTarget=null;for(var w in e)e.hasOwnProperty(w)&&(s=e[w],this[w]=s?s(u):u[w]);return this.isDefaultPrevented=(u.defaultPrevented!=null?u.defaultPrevented:u.returnValue===!1)?Qo:Kc,this.isPropagationStopped=Kc,this}return $(n.prototype,{preventDefault:function(){this.defaultPrevented=!0;var s=this.nativeEvent;s&&(s.preventDefault?s.preventDefault():typeof s.returnValue!="unknown"&&(s.returnValue=!1),this.isDefaultPrevented=Qo)},stopPropagation:function(){var s=this.nativeEvent;s&&(s.stopPropagation?s.stopPropagation():typeof s.cancelBubble!="unknown"&&(s.cancelBubble=!0),this.isPropagationStopped=Qo)},persist:function(){},isPersistent:Qo}),n}var Ur={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Pl=Ot(Ur),zs=$({},Ur,{view:0,detail:0}),nh=Ot(zs),Tl,Ol,Ws,Yo=$({},zs,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Al,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!==Ws&&(Ws&&e.type==="mousemove"?(Tl=e.screenX-Ws.screenX,Ol=e.screenY-Ws.screenY):Ol=Tl=0,Ws=e),Tl)},movementY:function(e){return"movementY"in e?e.movementY:Ol}}),Gc=Ot(Yo),rh=$({},Yo,{dataTransfer:0}),sh=Ot(rh),oh=$({},zs,{relatedTarget:0}),Ml=Ot(oh),ih=$({},Ur,{animationName:0,elapsedTime:0,pseudoElement:0}),lh=Ot(ih),ah=$({},Ur,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),ch=Ot(ah),uh=$({},Ur,{data:0}),Qc=Ot(uh),dh={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},fh={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"},ph={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function hh(e){var n=this.nativeEvent;return n.getModifierState?n.getModifierState(e):(e=ph[e])?!!n[e]:!1}function Al(){return hh}var mh=$({},zs,{key:function(e){if(e.key){var n=dh[e.key]||e.key;if(n!=="Unidentified")return n}return e.type==="keypress"?(e=Go(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?fh[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Al,charCode:function(e){return e.type==="keypress"?Go(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?Go(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),gh=Ot(mh),vh=$({},Yo,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Yc=Ot(vh),yh=$({},zs,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Al}),xh=Ot(yh),wh=$({},Ur,{propertyName:0,elapsedTime:0,pseudoElement:0}),kh=Ot(wh),jh=$({},Yo,{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}),Sh=Ot(jh),Ch=[9,13,27,32],Ll=g&&"CompositionEvent"in window,Fs=null;g&&"documentMode"in document&&(Fs=document.documentMode);var bh=g&&"TextEvent"in window&&!Fs,Xc=g&&(!Ll||Fs&&8<Fs&&11>=Fs),Jc=" ",Zc=!1;function eu(e,n){switch(e){case"keyup":return Ch.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function tu(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Hr=!1;function Ih(e,n){switch(e){case"compositionend":return tu(n);case"keypress":return n.which!==32?null:(Zc=!0,Jc);case"textInput":return e=n.data,e===Jc&&Zc?null:e;default:return null}}function Nh(e,n){if(Hr)return e==="compositionend"||!Ll&&eu(e,n)?(e=Vc(),Ko=Rl=Un=null,Hr=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1<n.char.length)return n.char;if(n.which)return String.fromCharCode(n.which)}return null;case"compositionend":return Xc&&n.locale!=="ko"?null:n.data;default:return null}}var _h={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 nu(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n==="input"?!!_h[e.type]:n==="textarea"}function ru(e,n,s,l){Ss(l),n=ti(n,"onChange"),0<n.length&&(s=new Pl("onChange","change",null,s,l),e.push({event:s,listeners:n}))}var Bs=null,qs=null;function Eh(e){ku(e,0)}function Xo(e){var n=Yr(e);if(tt(n))return e}function Rh(e,n){if(e==="change")return n}var su=!1;if(g){var $l;if(g){var Dl="oninput"in document;if(!Dl){var ou=document.createElement("div");ou.setAttribute("oninput","return;"),Dl=typeof ou.oninput=="function"}$l=Dl}else $l=!1;su=$l&&(!document.documentMode||9<document.documentMode)}function iu(){Bs&&(Bs.detachEvent("onpropertychange",lu),qs=Bs=null)}function lu(e){if(e.propertyName==="value"&&Xo(qs)){var n=[];ru(n,qs,e,Mr(e)),Ns(Eh,n)}}function Ph(e,n,s){e==="focusin"?(iu(),Bs=n,qs=s,Bs.attachEvent("onpropertychange",lu)):e==="focusout"&&iu()}function Th(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return Xo(qs)}function Oh(e,n){if(e==="click")return Xo(n)}function Mh(e,n){if(e==="input"||e==="change")return Xo(n)}function Ah(e,n){return e===n&&(e!==0||1/e===1/n)||e!==e&&n!==n}var Xt=typeof Object.is=="function"?Object.is:Ah;function Us(e,n){if(Xt(e,n))return!0;if(typeof e!="object"||e===null||typeof n!="object"||n===null)return!1;var s=Object.keys(e),l=Object.keys(n);if(s.length!==l.length)return!1;for(l=0;l<s.length;l++){var c=s[l];if(!x.call(n,c)||!Xt(e[c],n[c]))return!1}return!0}function au(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function cu(e,n){var s=au(e);e=0;for(var l;s;){if(s.nodeType===3){if(l=e+s.textContent.length,e<=n&&l>=n)return{node:s,offset:n-e};e=l}e:{for(;s;){if(s.nextSibling){s=s.nextSibling;break e}s=s.parentNode}s=void 0}s=au(s)}}function uu(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?uu(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function du(){for(var e=window,n=st();n instanceof e.HTMLIFrameElement;){try{var s=typeof n.contentWindow.location.href=="string"}catch{s=!1}if(s)e=n.contentWindow;else break;n=st(e.document)}return n}function zl(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}function Lh(e){var n=du(),s=e.focusedElem,l=e.selectionRange;if(n!==s&&s&&s.ownerDocument&&uu(s.ownerDocument.documentElement,s)){if(l!==null&&zl(s)){if(n=l.start,e=l.end,e===void 0&&(e=n),"selectionStart"in s)s.selectionStart=n,s.selectionEnd=Math.min(e,s.value.length);else if(e=(n=s.ownerDocument||document)&&n.defaultView||window,e.getSelection){e=e.getSelection();var c=s.textContent.length,u=Math.min(l.start,c);l=l.end===void 0?u:Math.min(l.end,c),!e.extend&&u>l&&(c=l,l=u,u=c),c=cu(s,u);var h=cu(s,l);c&&h&&(e.rangeCount!==1||e.anchorNode!==c.node||e.anchorOffset!==c.offset||e.focusNode!==h.node||e.focusOffset!==h.offset)&&(n=n.createRange(),n.setStart(c.node,c.offset),e.removeAllRanges(),u>l?(e.addRange(n),e.extend(h.node,h.offset)):(n.setEnd(h.node,h.offset),e.addRange(n)))}}for(n=[],e=s;e=e.parentNode;)e.nodeType===1&&n.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof s.focus=="function"&&s.focus(),s=0;s<n.length;s++)e=n[s],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var $h=g&&"documentMode"in document&&11>=document.documentMode,Vr=null,Wl=null,Hs=null,Fl=!1;function fu(e,n,s){var l=s.window===s?s.document:s.nodeType===9?s:s.ownerDocument;Fl||Vr==null||Vr!==st(l)||(l=Vr,"selectionStart"in l&&zl(l)?l={start:l.selectionStart,end:l.selectionEnd}:(l=(l.ownerDocument&&l.ownerDocument.defaultView||window).getSelection(),l={anchorNode:l.anchorNode,anchorOffset:l.anchorOffset,focusNode:l.focusNode,focusOffset:l.focusOffset}),Hs&&Us(Hs,l)||(Hs=l,l=ti(Wl,"onSelect"),0<l.length&&(n=new Pl("onSelect","select",null,n,s),e.push({event:n,listeners:l}),n.target=Vr)))}function Jo(e,n){var s={};return s[e.toLowerCase()]=n.toLowerCase(),s["Webkit"+e]="webkit"+n,s["Moz"+e]="moz"+n,s}var Kr={animationend:Jo("Animation","AnimationEnd"),animationiteration:Jo("Animation","AnimationIteration"),animationstart:Jo("Animation","AnimationStart"),transitionend:Jo("Transition","TransitionEnd")},Bl={},pu={};g&&(pu=document.createElement("div").style,"AnimationEvent"in window||(delete Kr.animationend.animation,delete Kr.animationiteration.animation,delete Kr.animationstart.animation),"TransitionEvent"in window||delete Kr.transitionend.transition);function Zo(e){if(Bl[e])return Bl[e];if(!Kr[e])return e;var n=Kr[e],s;for(s in n)if(n.hasOwnProperty(s)&&s in pu)return Bl[e]=n[s];return e}var hu=Zo("animationend"),mu=Zo("animationiteration"),gu=Zo("animationstart"),vu=Zo("transitionend"),yu=new Map,xu="abort auxClick 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(" ");function Hn(e,n){yu.set(e,n),f(n,[e])}for(var ql=0;ql<xu.length;ql++){var Ul=xu[ql],Dh=Ul.toLowerCase(),zh=Ul[0].toUpperCase()+Ul.slice(1);Hn(Dh,"on"+zh)}Hn(hu,"onAnimationEnd"),Hn(mu,"onAnimationIteration"),Hn(gu,"onAnimationStart"),Hn("dblclick","onDoubleClick"),Hn("focusin","onFocus"),Hn("focusout","onBlur"),Hn(vu,"onTransitionEnd"),p("onMouseEnter",["mouseout","mouseover"]),p("onMouseLeave",["mouseout","mouseover"]),p("onPointerEnter",["pointerout","pointerover"]),p("onPointerLeave",["pointerout","pointerover"]),f("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),f("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),f("onBeforeInput",["compositionend","keypress","textInput","paste"]),f("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),f("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),f("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Vs="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Wh=new Set("cancel close invalid load scroll toggle".split(" ").concat(Vs));function wu(e,n,s){var l=e.type||"unknown-event";e.currentTarget=s,Sl(l,n,void 0,e),e.currentTarget=null}function ku(e,n){n=(n&4)!==0;for(var s=0;s<e.length;s++){var l=e[s],c=l.event;l=l.listeners;e:{var u=void 0;if(n)for(var h=l.length-1;0<=h;h--){var w=l[h],S=w.instance,O=w.currentTarget;if(w=w.listener,S!==u&&c.isPropagationStopped())break e;wu(c,w,O),u=S}else for(h=0;h<l.length;h++){if(w=l[h],S=w.instance,O=w.currentTarget,w=w.listener,S!==u&&c.isPropagationStopped())break e;wu(c,w,O),u=S}}}if(dr)throw e=zr,dr=!1,zr=null,e}function He(e,n){var s=n[Jl];s===void 0&&(s=n[Jl]=new Set);var l=e+"__bubble";s.has(l)||(ju(n,e,2,!1),s.add(l))}function Hl(e,n,s){var l=0;n&&(l|=4),ju(s,e,l,n)}var ei="_reactListening"+Math.random().toString(36).slice(2);function Ks(e){if(!e[ei]){e[ei]=!0,a.forEach(function(s){s!=="selectionchange"&&(Wh.has(s)||Hl(s,!1,e),Hl(s,!0,e))});var n=e.nodeType===9?e:e.ownerDocument;n===null||n[ei]||(n[ei]=!0,Hl("selectionchange",!1,n))}}function ju(e,n,s,l){switch(Hc(n)){case 1:var c=eh;break;case 4:c=th;break;default:c=_l}s=c.bind(null,n,s,e),c=void 0,!$r||n!=="touchstart"&&n!=="touchmove"&&n!=="wheel"||(c=!0),l?c!==void 0?e.addEventListener(n,s,{capture:!0,passive:c}):e.addEventListener(n,s,!0):c!==void 0?e.addEventListener(n,s,{passive:c}):e.addEventListener(n,s,!1)}function Vl(e,n,s,l,c){var u=l;if((n&1)===0&&(n&2)===0&&l!==null)e:for(;;){if(l===null)return;var h=l.tag;if(h===3||h===4){var w=l.stateNode.containerInfo;if(w===c||w.nodeType===8&&w.parentNode===c)break;if(h===4)for(h=l.return;h!==null;){var S=h.tag;if((S===3||S===4)&&(S=h.stateNode.containerInfo,S===c||S.nodeType===8&&S.parentNode===c))return;h=h.return}for(;w!==null;){if(h=mr(w),h===null)return;if(S=h.tag,S===5||S===6){l=u=h;continue e}w=w.parentNode}}l=l.return}Ns(function(){var O=u,V=Mr(s),K=[];e:{var H=yu.get(e);if(H!==void 0){var ae=Pl,pe=e;switch(e){case"keypress":if(Go(s)===0)break e;case"keydown":case"keyup":ae=gh;break;case"focusin":pe="focus",ae=Ml;break;case"focusout":pe="blur",ae=Ml;break;case"beforeblur":case"afterblur":ae=Ml;break;case"click":if(s.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":ae=Gc;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":ae=sh;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":ae=xh;break;case hu:case mu:case gu:ae=lh;break;case vu:ae=kh;break;case"scroll":ae=nh;break;case"wheel":ae=Sh;break;case"copy":case"cut":case"paste":ae=ch;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":ae=Yc}var me=(n&4)!==0,et=!me&&e==="scroll",_=me?H!==null?H+"Capture":null:H;me=[];for(var C=O,P;C!==null;){P=C;var ee=P.stateNode;if(P.tag===5&&ee!==null&&(P=ee,_!==null&&(ee=$n(C,_),ee!=null&&me.push(Gs(C,ee,P)))),et)break;C=C.return}0<me.length&&(H=new ae(H,pe,null,s,V),K.push({event:H,listeners:me}))}}if((n&7)===0){e:{if(H=e==="mouseover"||e==="pointerover",ae=e==="mouseout"||e==="pointerout",H&&s!==Yt&&(pe=s.relatedTarget||s.fromElement)&&(mr(pe)||pe[xn]))break e;if((ae||H)&&(H=V.window===V?V:(H=V.ownerDocument)?H.defaultView||H.parentWindow:window,ae?(pe=s.relatedTarget||s.toElement,ae=O,pe=pe?mr(pe):null,pe!==null&&(et=yn(pe),pe!==et||pe.tag!==5&&pe.tag!==6)&&(pe=null)):(ae=null,pe=O),ae!==pe)){if(me=Gc,ee="onMouseLeave",_="onMouseEnter",C="mouse",(e==="pointerout"||e==="pointerover")&&(me=Yc,ee="onPointerLeave",_="onPointerEnter",C="pointer"),et=ae==null?H:Yr(ae),P=pe==null?H:Yr(pe),H=new me(ee,C+"leave",ae,s,V),H.target=et,H.relatedTarget=P,ee=null,mr(V)===O&&(me=new me(_,C+"enter",pe,s,V),me.target=P,me.relatedTarget=et,ee=me),et=ee,ae&&pe)t:{for(me=ae,_=pe,C=0,P=me;P;P=Gr(P))C++;for(P=0,ee=_;ee;ee=Gr(ee))P++;for(;0<C-P;)me=Gr(me),C--;for(;0<P-C;)_=Gr(_),P--;for(;C--;){if(me===_||_!==null&&me===_.alternate)break t;me=Gr(me),_=Gr(_)}me=null}else me=null;ae!==null&&Su(K,H,ae,me,!1),pe!==null&&et!==null&&Su(K,et,pe,me,!0)}}e:{if(H=O?Yr(O):window,ae=H.nodeName&&H.nodeName.toLowerCase(),ae==="select"||ae==="input"&&H.type==="file")var ve=Rh;else if(nu(H))if(su)ve=Mh;else{ve=Th;var Ce=Ph}else(ae=H.nodeName)&&ae.toLowerCase()==="input"&&(H.type==="checkbox"||H.type==="radio")&&(ve=Oh);if(ve&&(ve=ve(e,O))){ru(K,ve,s,V);break e}Ce&&Ce(e,H,O),e==="focusout"&&(Ce=H._wrapperState)&&Ce.controlled&&H.type==="number"&&qe(H,"number",H.value)}switch(Ce=O?Yr(O):window,e){case"focusin":(nu(Ce)||Ce.contentEditable==="true")&&(Vr=Ce,Wl=O,Hs=null);break;case"focusout":Hs=Wl=Vr=null;break;case"mousedown":Fl=!0;break;case"contextmenu":case"mouseup":case"dragend":Fl=!1,fu(K,s,V);break;case"selectionchange":if($h)break;case"keydown":case"keyup":fu(K,s,V)}var be;if(Ll)e:{switch(e){case"compositionstart":var _e="onCompositionStart";break e;case"compositionend":_e="onCompositionEnd";break e;case"compositionupdate":_e="onCompositionUpdate";break e}_e=void 0}else Hr?eu(e,s)&&(_e="onCompositionEnd"):e==="keydown"&&s.keyCode===229&&(_e="onCompositionStart");_e&&(Xc&&s.locale!=="ko"&&(Hr||_e!=="onCompositionStart"?_e==="onCompositionEnd"&&Hr&&(be=Vc()):(Un=V,Rl="value"in Un?Un.value:Un.textContent,Hr=!0)),Ce=ti(O,_e),0<Ce.length&&(_e=new Qc(_e,e,null,s,V),K.push({event:_e,listeners:Ce}),be?_e.data=be:(be=tu(s),be!==null&&(_e.data=be)))),(be=bh?Ih(e,s):Nh(e,s))&&(O=ti(O,"onBeforeInput"),0<O.length&&(V=new Qc("onBeforeInput","beforeinput",null,s,V),K.push({event:V,listeners:O}),V.data=be))}ku(K,n)})}function Gs(e,n,s){return{instance:e,listener:n,currentTarget:s}}function ti(e,n){for(var s=n+"Capture",l=[];e!==null;){var c=e,u=c.stateNode;c.tag===5&&u!==null&&(c=u,u=$n(e,s),u!=null&&l.unshift(Gs(e,u,c)),u=$n(e,n),u!=null&&l.push(Gs(e,u,c))),e=e.return}return l}function Gr(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function Su(e,n,s,l,c){for(var u=n._reactName,h=[];s!==null&&s!==l;){var w=s,S=w.alternate,O=w.stateNode;if(S!==null&&S===l)break;w.tag===5&&O!==null&&(w=O,c?(S=$n(s,u),S!=null&&h.unshift(Gs(s,S,w))):c||(S=$n(s,u),S!=null&&h.push(Gs(s,S,w)))),s=s.return}h.length!==0&&e.push({event:n,listeners:h})}var Fh=/\r\n?/g,Bh=/\u0000|\uFFFD/g;function Cu(e){return(typeof e=="string"?e:""+e).replace(Fh,`
7
+ `).replace(Bh,"")}function ni(e,n,s){if(n=Cu(n),Cu(e)!==n&&s)throw Error(i(425))}function ri(){}var Kl=null,Gl=null;function Ql(e,n){return e==="textarea"||e==="noscript"||typeof n.children=="string"||typeof n.children=="number"||typeof n.dangerouslySetInnerHTML=="object"&&n.dangerouslySetInnerHTML!==null&&n.dangerouslySetInnerHTML.__html!=null}var Yl=typeof setTimeout=="function"?setTimeout:void 0,qh=typeof clearTimeout=="function"?clearTimeout:void 0,bu=typeof Promise=="function"?Promise:void 0,Uh=typeof queueMicrotask=="function"?queueMicrotask:typeof bu<"u"?function(e){return bu.resolve(null).then(e).catch(Hh)}:Yl;function Hh(e){setTimeout(function(){throw e})}function Xl(e,n){var s=n,l=0;do{var c=s.nextSibling;if(e.removeChild(s),c&&c.nodeType===8)if(s=c.data,s==="/$"){if(l===0){e.removeChild(c),Ds(n);return}l--}else s!=="$"&&s!=="$?"&&s!=="$!"||l++;s=c}while(s);Ds(n)}function Vn(e){for(;e!=null;e=e.nextSibling){var n=e.nodeType;if(n===1||n===3)break;if(n===8){if(n=e.data,n==="$"||n==="$!"||n==="$?")break;if(n==="/$")return null}}return e}function Iu(e){e=e.previousSibling;for(var n=0;e;){if(e.nodeType===8){var s=e.data;if(s==="$"||s==="$!"||s==="$?"){if(n===0)return e;n--}else s==="/$"&&n++}e=e.previousSibling}return null}var Qr=Math.random().toString(36).slice(2),dn="__reactFiber$"+Qr,Qs="__reactProps$"+Qr,xn="__reactContainer$"+Qr,Jl="__reactEvents$"+Qr,Vh="__reactListeners$"+Qr,Kh="__reactHandles$"+Qr;function mr(e){var n=e[dn];if(n)return n;for(var s=e.parentNode;s;){if(n=s[xn]||s[dn]){if(s=n.alternate,n.child!==null||s!==null&&s.child!==null)for(e=Iu(e);e!==null;){if(s=e[dn])return s;e=Iu(e)}return n}e=s,s=e.parentNode}return null}function Ys(e){return e=e[dn]||e[xn],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function Yr(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(i(33))}function si(e){return e[Qs]||null}var Zl=[],Xr=-1;function Kn(e){return{current:e}}function Ve(e){0>Xr||(e.current=Zl[Xr],Zl[Xr]=null,Xr--)}function Be(e,n){Xr++,Zl[Xr]=e.current,e.current=n}var Gn={},ht=Kn(Gn),St=Kn(!1),gr=Gn;function Jr(e,n){var s=e.type.contextTypes;if(!s)return Gn;var l=e.stateNode;if(l&&l.__reactInternalMemoizedUnmaskedChildContext===n)return l.__reactInternalMemoizedMaskedChildContext;var c={},u;for(u in s)c[u]=n[u];return l&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=c),c}function Ct(e){return e=e.childContextTypes,e!=null}function oi(){Ve(St),Ve(ht)}function Nu(e,n,s){if(ht.current!==Gn)throw Error(i(168));Be(ht,n),Be(St,s)}function _u(e,n,s){var l=e.stateNode;if(n=n.childContextTypes,typeof l.getChildContext!="function")return s;l=l.getChildContext();for(var c in l)if(!(c in n))throw Error(i(108,he(e)||"Unknown",c));return $({},s,l)}function ii(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Gn,gr=ht.current,Be(ht,e),Be(St,St.current),!0}function Eu(e,n,s){var l=e.stateNode;if(!l)throw Error(i(169));s?(e=_u(e,n,gr),l.__reactInternalMemoizedMergedChildContext=e,Ve(St),Ve(ht),Be(ht,e)):Ve(St),Be(St,s)}var wn=null,li=!1,ea=!1;function Ru(e){wn===null?wn=[e]:wn.push(e)}function Gh(e){li=!0,Ru(e)}function Qn(){if(!ea&&wn!==null){ea=!0;var e=0,n=Ae;try{var s=wn;for(Ae=1;e<s.length;e++){var l=s[e];do l=l(!0);while(l!==null)}wn=null,li=!1}catch(c){throw wn!==null&&(wn=wn.slice(e+1)),Mo(_s,Qn),c}finally{Ae=n,ea=!1}}return null}var Zr=[],es=0,ai=null,ci=0,Wt=[],Ft=0,vr=null,kn=1,jn="";function yr(e,n){Zr[es++]=ci,Zr[es++]=ai,ai=e,ci=n}function Pu(e,n,s){Wt[Ft++]=kn,Wt[Ft++]=jn,Wt[Ft++]=vr,vr=e;var l=kn;e=jn;var c=32-jt(l)-1;l&=~(1<<c),s+=1;var u=32-jt(n)+c;if(30<u){var h=c-c%5;u=(l&(1<<h)-1).toString(32),l>>=h,c-=h,kn=1<<32-jt(n)+c|s<<c|l,jn=u+e}else kn=1<<u|s<<c|l,jn=e}function ta(e){e.return!==null&&(yr(e,1),Pu(e,1,0))}function na(e){for(;e===ai;)ai=Zr[--es],Zr[es]=null,ci=Zr[--es],Zr[es]=null;for(;e===vr;)vr=Wt[--Ft],Wt[Ft]=null,jn=Wt[--Ft],Wt[Ft]=null,kn=Wt[--Ft],Wt[Ft]=null}var Mt=null,At=null,Ge=!1,Jt=null;function Tu(e,n){var s=Ht(5,null,null,0);s.elementType="DELETED",s.stateNode=n,s.return=e,n=e.deletions,n===null?(e.deletions=[s],e.flags|=16):n.push(s)}function Ou(e,n){switch(e.tag){case 5:var s=e.type;return n=n.nodeType!==1||s.toLowerCase()!==n.nodeName.toLowerCase()?null:n,n!==null?(e.stateNode=n,Mt=e,At=Vn(n.firstChild),!0):!1;case 6:return n=e.pendingProps===""||n.nodeType!==3?null:n,n!==null?(e.stateNode=n,Mt=e,At=null,!0):!1;case 13:return n=n.nodeType!==8?null:n,n!==null?(s=vr!==null?{id:kn,overflow:jn}:null,e.memoizedState={dehydrated:n,treeContext:s,retryLane:1073741824},s=Ht(18,null,null,0),s.stateNode=n,s.return=e,e.child=s,Mt=e,At=null,!0):!1;default:return!1}}function ra(e){return(e.mode&1)!==0&&(e.flags&128)===0}function sa(e){if(Ge){var n=At;if(n){var s=n;if(!Ou(e,n)){if(ra(e))throw Error(i(418));n=Vn(s.nextSibling);var l=Mt;n&&Ou(e,n)?Tu(l,s):(e.flags=e.flags&-4097|2,Ge=!1,Mt=e)}}else{if(ra(e))throw Error(i(418));e.flags=e.flags&-4097|2,Ge=!1,Mt=e}}}function Mu(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;Mt=e}function ui(e){if(e!==Mt)return!1;if(!Ge)return Mu(e),Ge=!0,!1;var n;if((n=e.tag!==3)&&!(n=e.tag!==5)&&(n=e.type,n=n!=="head"&&n!=="body"&&!Ql(e.type,e.memoizedProps)),n&&(n=At)){if(ra(e))throw Au(),Error(i(418));for(;n;)Tu(e,n),n=Vn(n.nextSibling)}if(Mu(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(i(317));e:{for(e=e.nextSibling,n=0;e;){if(e.nodeType===8){var s=e.data;if(s==="/$"){if(n===0){At=Vn(e.nextSibling);break e}n--}else s!=="$"&&s!=="$!"&&s!=="$?"||n++}e=e.nextSibling}At=null}}else At=Mt?Vn(e.stateNode.nextSibling):null;return!0}function Au(){for(var e=At;e;)e=Vn(e.nextSibling)}function ts(){At=Mt=null,Ge=!1}function oa(e){Jt===null?Jt=[e]:Jt.push(e)}var Qh=ie.ReactCurrentBatchConfig;function Xs(e,n,s){if(e=s.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(s._owner){if(s=s._owner,s){if(s.tag!==1)throw Error(i(309));var l=s.stateNode}if(!l)throw Error(i(147,e));var c=l,u=""+e;return n!==null&&n.ref!==null&&typeof n.ref=="function"&&n.ref._stringRef===u?n.ref:(n=function(h){var w=c.refs;h===null?delete w[u]:w[u]=h},n._stringRef=u,n)}if(typeof e!="string")throw Error(i(284));if(!s._owner)throw Error(i(290,e))}return e}function di(e,n){throw e=Object.prototype.toString.call(n),Error(i(31,e==="[object Object]"?"object with keys {"+Object.keys(n).join(", ")+"}":e))}function Lu(e){var n=e._init;return n(e._payload)}function $u(e){function n(_,C){if(e){var P=_.deletions;P===null?(_.deletions=[C],_.flags|=16):P.push(C)}}function s(_,C){if(!e)return null;for(;C!==null;)n(_,C),C=C.sibling;return null}function l(_,C){for(_=new Map;C!==null;)C.key!==null?_.set(C.key,C):_.set(C.index,C),C=C.sibling;return _}function c(_,C){return _=rr(_,C),_.index=0,_.sibling=null,_}function u(_,C,P){return _.index=P,e?(P=_.alternate,P!==null?(P=P.index,P<C?(_.flags|=2,C):P):(_.flags|=2,C)):(_.flags|=1048576,C)}function h(_){return e&&_.alternate===null&&(_.flags|=2),_}function w(_,C,P,ee){return C===null||C.tag!==6?(C=Ya(P,_.mode,ee),C.return=_,C):(C=c(C,P),C.return=_,C)}function S(_,C,P,ee){var ve=P.type;return ve===F?V(_,C,P.props.children,ee,P.key):C!==null&&(C.elementType===ve||typeof ve=="object"&&ve!==null&&ve.$$typeof===ce&&Lu(ve)===C.type)?(ee=c(C,P.props),ee.ref=Xs(_,C,P),ee.return=_,ee):(ee=Ai(P.type,P.key,P.props,null,_.mode,ee),ee.ref=Xs(_,C,P),ee.return=_,ee)}function O(_,C,P,ee){return C===null||C.tag!==4||C.stateNode.containerInfo!==P.containerInfo||C.stateNode.implementation!==P.implementation?(C=Xa(P,_.mode,ee),C.return=_,C):(C=c(C,P.children||[]),C.return=_,C)}function V(_,C,P,ee,ve){return C===null||C.tag!==7?(C=Ir(P,_.mode,ee,ve),C.return=_,C):(C=c(C,P),C.return=_,C)}function K(_,C,P){if(typeof C=="string"&&C!==""||typeof C=="number")return C=Ya(""+C,_.mode,P),C.return=_,C;if(typeof C=="object"&&C!==null){switch(C.$$typeof){case Y:return P=Ai(C.type,C.key,C.props,null,_.mode,P),P.ref=Xs(_,null,C),P.return=_,P;case L:return C=Xa(C,_.mode,P),C.return=_,C;case ce:var ee=C._init;return K(_,ee(C._payload),P)}if(Ze(C)||B(C))return C=Ir(C,_.mode,P,null),C.return=_,C;di(_,C)}return null}function H(_,C,P,ee){var ve=C!==null?C.key:null;if(typeof P=="string"&&P!==""||typeof P=="number")return ve!==null?null:w(_,C,""+P,ee);if(typeof P=="object"&&P!==null){switch(P.$$typeof){case Y:return P.key===ve?S(_,C,P,ee):null;case L:return P.key===ve?O(_,C,P,ee):null;case ce:return ve=P._init,H(_,C,ve(P._payload),ee)}if(Ze(P)||B(P))return ve!==null?null:V(_,C,P,ee,null);di(_,P)}return null}function ae(_,C,P,ee,ve){if(typeof ee=="string"&&ee!==""||typeof ee=="number")return _=_.get(P)||null,w(C,_,""+ee,ve);if(typeof ee=="object"&&ee!==null){switch(ee.$$typeof){case Y:return _=_.get(ee.key===null?P:ee.key)||null,S(C,_,ee,ve);case L:return _=_.get(ee.key===null?P:ee.key)||null,O(C,_,ee,ve);case ce:var Ce=ee._init;return ae(_,C,P,Ce(ee._payload),ve)}if(Ze(ee)||B(ee))return _=_.get(P)||null,V(C,_,ee,ve,null);di(C,ee)}return null}function pe(_,C,P,ee){for(var ve=null,Ce=null,be=C,_e=C=0,ut=null;be!==null&&_e<P.length;_e++){be.index>_e?(ut=be,be=null):ut=be.sibling;var De=H(_,be,P[_e],ee);if(De===null){be===null&&(be=ut);break}e&&be&&De.alternate===null&&n(_,be),C=u(De,C,_e),Ce===null?ve=De:Ce.sibling=De,Ce=De,be=ut}if(_e===P.length)return s(_,be),Ge&&yr(_,_e),ve;if(be===null){for(;_e<P.length;_e++)be=K(_,P[_e],ee),be!==null&&(C=u(be,C,_e),Ce===null?ve=be:Ce.sibling=be,Ce=be);return Ge&&yr(_,_e),ve}for(be=l(_,be);_e<P.length;_e++)ut=ae(be,_,_e,P[_e],ee),ut!==null&&(e&&ut.alternate!==null&&be.delete(ut.key===null?_e:ut.key),C=u(ut,C,_e),Ce===null?ve=ut:Ce.sibling=ut,Ce=ut);return e&&be.forEach(function(sr){return n(_,sr)}),Ge&&yr(_,_e),ve}function me(_,C,P,ee){var ve=B(P);if(typeof ve!="function")throw Error(i(150));if(P=ve.call(P),P==null)throw Error(i(151));for(var Ce=ve=null,be=C,_e=C=0,ut=null,De=P.next();be!==null&&!De.done;_e++,De=P.next()){be.index>_e?(ut=be,be=null):ut=be.sibling;var sr=H(_,be,De.value,ee);if(sr===null){be===null&&(be=ut);break}e&&be&&sr.alternate===null&&n(_,be),C=u(sr,C,_e),Ce===null?ve=sr:Ce.sibling=sr,Ce=sr,be=ut}if(De.done)return s(_,be),Ge&&yr(_,_e),ve;if(be===null){for(;!De.done;_e++,De=P.next())De=K(_,De.value,ee),De!==null&&(C=u(De,C,_e),Ce===null?ve=De:Ce.sibling=De,Ce=De);return Ge&&yr(_,_e),ve}for(be=l(_,be);!De.done;_e++,De=P.next())De=ae(be,_,_e,De.value,ee),De!==null&&(e&&De.alternate!==null&&be.delete(De.key===null?_e:De.key),C=u(De,C,_e),Ce===null?ve=De:Ce.sibling=De,Ce=De);return e&&be.forEach(function(_m){return n(_,_m)}),Ge&&yr(_,_e),ve}function et(_,C,P,ee){if(typeof P=="object"&&P!==null&&P.type===F&&P.key===null&&(P=P.props.children),typeof P=="object"&&P!==null){switch(P.$$typeof){case Y:e:{for(var ve=P.key,Ce=C;Ce!==null;){if(Ce.key===ve){if(ve=P.type,ve===F){if(Ce.tag===7){s(_,Ce.sibling),C=c(Ce,P.props.children),C.return=_,_=C;break e}}else if(Ce.elementType===ve||typeof ve=="object"&&ve!==null&&ve.$$typeof===ce&&Lu(ve)===Ce.type){s(_,Ce.sibling),C=c(Ce,P.props),C.ref=Xs(_,Ce,P),C.return=_,_=C;break e}s(_,Ce);break}else n(_,Ce);Ce=Ce.sibling}P.type===F?(C=Ir(P.props.children,_.mode,ee,P.key),C.return=_,_=C):(ee=Ai(P.type,P.key,P.props,null,_.mode,ee),ee.ref=Xs(_,C,P),ee.return=_,_=ee)}return h(_);case L:e:{for(Ce=P.key;C!==null;){if(C.key===Ce)if(C.tag===4&&C.stateNode.containerInfo===P.containerInfo&&C.stateNode.implementation===P.implementation){s(_,C.sibling),C=c(C,P.children||[]),C.return=_,_=C;break e}else{s(_,C);break}else n(_,C);C=C.sibling}C=Xa(P,_.mode,ee),C.return=_,_=C}return h(_);case ce:return Ce=P._init,et(_,C,Ce(P._payload),ee)}if(Ze(P))return pe(_,C,P,ee);if(B(P))return me(_,C,P,ee);di(_,P)}return typeof P=="string"&&P!==""||typeof P=="number"?(P=""+P,C!==null&&C.tag===6?(s(_,C.sibling),C=c(C,P),C.return=_,_=C):(s(_,C),C=Ya(P,_.mode,ee),C.return=_,_=C),h(_)):s(_,C)}return et}var ns=$u(!0),Du=$u(!1),fi=Kn(null),pi=null,rs=null,ia=null;function la(){ia=rs=pi=null}function aa(e){var n=fi.current;Ve(fi),e._currentValue=n}function ca(e,n,s){for(;e!==null;){var l=e.alternate;if((e.childLanes&n)!==n?(e.childLanes|=n,l!==null&&(l.childLanes|=n)):l!==null&&(l.childLanes&n)!==n&&(l.childLanes|=n),e===s)break;e=e.return}}function ss(e,n){pi=e,ia=rs=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&n)!==0&&(bt=!0),e.firstContext=null)}function Bt(e){var n=e._currentValue;if(ia!==e)if(e={context:e,memoizedValue:n,next:null},rs===null){if(pi===null)throw Error(i(308));rs=e,pi.dependencies={lanes:0,firstContext:e}}else rs=rs.next=e;return n}var xr=null;function ua(e){xr===null?xr=[e]:xr.push(e)}function zu(e,n,s,l){var c=n.interleaved;return c===null?(s.next=s,ua(n)):(s.next=c.next,c.next=s),n.interleaved=s,Sn(e,l)}function Sn(e,n){e.lanes|=n;var s=e.alternate;for(s!==null&&(s.lanes|=n),s=e,e=e.return;e!==null;)e.childLanes|=n,s=e.alternate,s!==null&&(s.childLanes|=n),s=e,e=e.return;return s.tag===3?s.stateNode:null}var Yn=!1;function da(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Wu(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Cn(e,n){return{eventTime:e,lane:n,tag:0,payload:null,callback:null,next:null}}function Xn(e,n,s){var l=e.updateQueue;if(l===null)return null;if(l=l.shared,($e&2)!==0){var c=l.pending;return c===null?n.next=n:(n.next=c.next,c.next=n),l.pending=n,Sn(e,s)}return c=l.interleaved,c===null?(n.next=n,ua(l)):(n.next=c.next,c.next=n),l.interleaved=n,Sn(e,s)}function hi(e,n,s){if(n=n.updateQueue,n!==null&&(n=n.shared,(s&4194240)!==0)){var l=n.lanes;l&=e.pendingLanes,s|=l,n.lanes=s,Fr(e,s)}}function Fu(e,n){var s=e.updateQueue,l=e.alternate;if(l!==null&&(l=l.updateQueue,s===l)){var c=null,u=null;if(s=s.firstBaseUpdate,s!==null){do{var h={eventTime:s.eventTime,lane:s.lane,tag:s.tag,payload:s.payload,callback:s.callback,next:null};u===null?c=u=h:u=u.next=h,s=s.next}while(s!==null);u===null?c=u=n:u=u.next=n}else c=u=n;s={baseState:l.baseState,firstBaseUpdate:c,lastBaseUpdate:u,shared:l.shared,effects:l.effects},e.updateQueue=s;return}e=s.lastBaseUpdate,e===null?s.firstBaseUpdate=n:e.next=n,s.lastBaseUpdate=n}function mi(e,n,s,l){var c=e.updateQueue;Yn=!1;var u=c.firstBaseUpdate,h=c.lastBaseUpdate,w=c.shared.pending;if(w!==null){c.shared.pending=null;var S=w,O=S.next;S.next=null,h===null?u=O:h.next=O,h=S;var V=e.alternate;V!==null&&(V=V.updateQueue,w=V.lastBaseUpdate,w!==h&&(w===null?V.firstBaseUpdate=O:w.next=O,V.lastBaseUpdate=S))}if(u!==null){var K=c.baseState;h=0,V=O=S=null,w=u;do{var H=w.lane,ae=w.eventTime;if((l&H)===H){V!==null&&(V=V.next={eventTime:ae,lane:0,tag:w.tag,payload:w.payload,callback:w.callback,next:null});e:{var pe=e,me=w;switch(H=n,ae=s,me.tag){case 1:if(pe=me.payload,typeof pe=="function"){K=pe.call(ae,K,H);break e}K=pe;break e;case 3:pe.flags=pe.flags&-65537|128;case 0:if(pe=me.payload,H=typeof pe=="function"?pe.call(ae,K,H):pe,H==null)break e;K=$({},K,H);break e;case 2:Yn=!0}}w.callback!==null&&w.lane!==0&&(e.flags|=64,H=c.effects,H===null?c.effects=[w]:H.push(w))}else ae={eventTime:ae,lane:H,tag:w.tag,payload:w.payload,callback:w.callback,next:null},V===null?(O=V=ae,S=K):V=V.next=ae,h|=H;if(w=w.next,w===null){if(w=c.shared.pending,w===null)break;H=w,w=H.next,H.next=null,c.lastBaseUpdate=H,c.shared.pending=null}}while(!0);if(V===null&&(S=K),c.baseState=S,c.firstBaseUpdate=O,c.lastBaseUpdate=V,n=c.shared.interleaved,n!==null){c=n;do h|=c.lane,c=c.next;while(c!==n)}else u===null&&(c.shared.lanes=0);jr|=h,e.lanes=h,e.memoizedState=K}}function Bu(e,n,s){if(e=n.effects,n.effects=null,e!==null)for(n=0;n<e.length;n++){var l=e[n],c=l.callback;if(c!==null){if(l.callback=null,l=s,typeof c!="function")throw Error(i(191,c));c.call(l)}}}var Js={},fn=Kn(Js),Zs=Kn(Js),eo=Kn(Js);function wr(e){if(e===Js)throw Error(i(174));return e}function fa(e,n){switch(Be(eo,n),Be(Zs,e),Be(fn,Js),e=n.nodeType,e){case 9:case 11:n=(n=n.documentElement)?n.namespaceURI:An(null,"");break;default:e=e===8?n.parentNode:n,n=e.namespaceURI||null,e=e.tagName,n=An(n,e)}Ve(fn),Be(fn,n)}function os(){Ve(fn),Ve(Zs),Ve(eo)}function qu(e){wr(eo.current);var n=wr(fn.current),s=An(n,e.type);n!==s&&(Be(Zs,e),Be(fn,s))}function pa(e){Zs.current===e&&(Ve(fn),Ve(Zs))}var Ye=Kn(0);function gi(e){for(var n=e;n!==null;){if(n.tag===13){var s=n.memoizedState;if(s!==null&&(s=s.dehydrated,s===null||s.data==="$?"||s.data==="$!"))return n}else if(n.tag===19&&n.memoizedProps.revealOrder!==void 0){if((n.flags&128)!==0)return n}else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}var ha=[];function ma(){for(var e=0;e<ha.length;e++)ha[e]._workInProgressVersionPrimary=null;ha.length=0}var vi=ie.ReactCurrentDispatcher,ga=ie.ReactCurrentBatchConfig,kr=0,Xe=null,ot=null,at=null,yi=!1,to=!1,no=0,Yh=0;function mt(){throw Error(i(321))}function va(e,n){if(n===null)return!1;for(var s=0;s<n.length&&s<e.length;s++)if(!Xt(e[s],n[s]))return!1;return!0}function ya(e,n,s,l,c,u){if(kr=u,Xe=n,n.memoizedState=null,n.updateQueue=null,n.lanes=0,vi.current=e===null||e.memoizedState===null?em:tm,e=s(l,c),to){u=0;do{if(to=!1,no=0,25<=u)throw Error(i(301));u+=1,at=ot=null,n.updateQueue=null,vi.current=nm,e=s(l,c)}while(to)}if(vi.current=ki,n=ot!==null&&ot.next!==null,kr=0,at=ot=Xe=null,yi=!1,n)throw Error(i(300));return e}function xa(){var e=no!==0;return no=0,e}function pn(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return at===null?Xe.memoizedState=at=e:at=at.next=e,at}function qt(){if(ot===null){var e=Xe.alternate;e=e!==null?e.memoizedState:null}else e=ot.next;var n=at===null?Xe.memoizedState:at.next;if(n!==null)at=n,ot=e;else{if(e===null)throw Error(i(310));ot=e,e={memoizedState:ot.memoizedState,baseState:ot.baseState,baseQueue:ot.baseQueue,queue:ot.queue,next:null},at===null?Xe.memoizedState=at=e:at=at.next=e}return at}function ro(e,n){return typeof n=="function"?n(e):n}function wa(e){var n=qt(),s=n.queue;if(s===null)throw Error(i(311));s.lastRenderedReducer=e;var l=ot,c=l.baseQueue,u=s.pending;if(u!==null){if(c!==null){var h=c.next;c.next=u.next,u.next=h}l.baseQueue=c=u,s.pending=null}if(c!==null){u=c.next,l=l.baseState;var w=h=null,S=null,O=u;do{var V=O.lane;if((kr&V)===V)S!==null&&(S=S.next={lane:0,action:O.action,hasEagerState:O.hasEagerState,eagerState:O.eagerState,next:null}),l=O.hasEagerState?O.eagerState:e(l,O.action);else{var K={lane:V,action:O.action,hasEagerState:O.hasEagerState,eagerState:O.eagerState,next:null};S===null?(w=S=K,h=l):S=S.next=K,Xe.lanes|=V,jr|=V}O=O.next}while(O!==null&&O!==u);S===null?h=l:S.next=w,Xt(l,n.memoizedState)||(bt=!0),n.memoizedState=l,n.baseState=h,n.baseQueue=S,s.lastRenderedState=l}if(e=s.interleaved,e!==null){c=e;do u=c.lane,Xe.lanes|=u,jr|=u,c=c.next;while(c!==e)}else c===null&&(s.lanes=0);return[n.memoizedState,s.dispatch]}function ka(e){var n=qt(),s=n.queue;if(s===null)throw Error(i(311));s.lastRenderedReducer=e;var l=s.dispatch,c=s.pending,u=n.memoizedState;if(c!==null){s.pending=null;var h=c=c.next;do u=e(u,h.action),h=h.next;while(h!==c);Xt(u,n.memoizedState)||(bt=!0),n.memoizedState=u,n.baseQueue===null&&(n.baseState=u),s.lastRenderedState=u}return[u,l]}function Uu(){}function Hu(e,n){var s=Xe,l=qt(),c=n(),u=!Xt(l.memoizedState,c);if(u&&(l.memoizedState=c,bt=!0),l=l.queue,ja(Gu.bind(null,s,l,e),[e]),l.getSnapshot!==n||u||at!==null&&at.memoizedState.tag&1){if(s.flags|=2048,so(9,Ku.bind(null,s,l,c,n),void 0,null),ct===null)throw Error(i(349));(kr&30)!==0||Vu(s,n,c)}return c}function Vu(e,n,s){e.flags|=16384,e={getSnapshot:n,value:s},n=Xe.updateQueue,n===null?(n={lastEffect:null,stores:null},Xe.updateQueue=n,n.stores=[e]):(s=n.stores,s===null?n.stores=[e]:s.push(e))}function Ku(e,n,s,l){n.value=s,n.getSnapshot=l,Qu(n)&&Yu(e)}function Gu(e,n,s){return s(function(){Qu(n)&&Yu(e)})}function Qu(e){var n=e.getSnapshot;e=e.value;try{var s=n();return!Xt(e,s)}catch{return!0}}function Yu(e){var n=Sn(e,1);n!==null&&nn(n,e,1,-1)}function Xu(e){var n=pn();return typeof e=="function"&&(e=e()),n.memoizedState=n.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:ro,lastRenderedState:e},n.queue=e,e=e.dispatch=Zh.bind(null,Xe,e),[n.memoizedState,e]}function so(e,n,s,l){return e={tag:e,create:n,destroy:s,deps:l,next:null},n=Xe.updateQueue,n===null?(n={lastEffect:null,stores:null},Xe.updateQueue=n,n.lastEffect=e.next=e):(s=n.lastEffect,s===null?n.lastEffect=e.next=e:(l=s.next,s.next=e,e.next=l,n.lastEffect=e)),e}function Ju(){return qt().memoizedState}function xi(e,n,s,l){var c=pn();Xe.flags|=e,c.memoizedState=so(1|n,s,void 0,l===void 0?null:l)}function wi(e,n,s,l){var c=qt();l=l===void 0?null:l;var u=void 0;if(ot!==null){var h=ot.memoizedState;if(u=h.destroy,l!==null&&va(l,h.deps)){c.memoizedState=so(n,s,u,l);return}}Xe.flags|=e,c.memoizedState=so(1|n,s,u,l)}function Zu(e,n){return xi(8390656,8,e,n)}function ja(e,n){return wi(2048,8,e,n)}function ed(e,n){return wi(4,2,e,n)}function td(e,n){return wi(4,4,e,n)}function nd(e,n){if(typeof n=="function")return e=e(),n(e),function(){n(null)};if(n!=null)return e=e(),n.current=e,function(){n.current=null}}function rd(e,n,s){return s=s!=null?s.concat([e]):null,wi(4,4,nd.bind(null,n,e),s)}function Sa(){}function sd(e,n){var s=qt();n=n===void 0?null:n;var l=s.memoizedState;return l!==null&&n!==null&&va(n,l[1])?l[0]:(s.memoizedState=[e,n],e)}function od(e,n){var s=qt();n=n===void 0?null:n;var l=s.memoizedState;return l!==null&&n!==null&&va(n,l[1])?l[0]:(e=e(),s.memoizedState=[e,n],e)}function id(e,n,s){return(kr&21)===0?(e.baseState&&(e.baseState=!1,bt=!0),e.memoizedState=s):(Xt(s,n)||(s=Ee(),Xe.lanes|=s,jr|=s,e.baseState=!0),n)}function Xh(e,n){var s=Ae;Ae=s!==0&&4>s?s:4,e(!0);var l=ga.transition;ga.transition={};try{e(!1),n()}finally{Ae=s,ga.transition=l}}function ld(){return qt().memoizedState}function Jh(e,n,s){var l=tr(e);if(s={lane:l,action:s,hasEagerState:!1,eagerState:null,next:null},ad(e))cd(n,s);else if(s=zu(e,n,s,l),s!==null){var c=wt();nn(s,e,l,c),ud(s,n,l)}}function Zh(e,n,s){var l=tr(e),c={lane:l,action:s,hasEagerState:!1,eagerState:null,next:null};if(ad(e))cd(n,c);else{var u=e.alternate;if(e.lanes===0&&(u===null||u.lanes===0)&&(u=n.lastRenderedReducer,u!==null))try{var h=n.lastRenderedState,w=u(h,s);if(c.hasEagerState=!0,c.eagerState=w,Xt(w,h)){var S=n.interleaved;S===null?(c.next=c,ua(n)):(c.next=S.next,S.next=c),n.interleaved=c;return}}catch{}s=zu(e,n,c,l),s!==null&&(c=wt(),nn(s,e,l,c),ud(s,n,l))}}function ad(e){var n=e.alternate;return e===Xe||n!==null&&n===Xe}function cd(e,n){to=yi=!0;var s=e.pending;s===null?n.next=n:(n.next=s.next,s.next=n),e.pending=n}function ud(e,n,s){if((s&4194240)!==0){var l=n.lanes;l&=e.pendingLanes,s|=l,n.lanes=s,Fr(e,s)}}var ki={readContext:Bt,useCallback:mt,useContext:mt,useEffect:mt,useImperativeHandle:mt,useInsertionEffect:mt,useLayoutEffect:mt,useMemo:mt,useReducer:mt,useRef:mt,useState:mt,useDebugValue:mt,useDeferredValue:mt,useTransition:mt,useMutableSource:mt,useSyncExternalStore:mt,useId:mt,unstable_isNewReconciler:!1},em={readContext:Bt,useCallback:function(e,n){return pn().memoizedState=[e,n===void 0?null:n],e},useContext:Bt,useEffect:Zu,useImperativeHandle:function(e,n,s){return s=s!=null?s.concat([e]):null,xi(4194308,4,nd.bind(null,n,e),s)},useLayoutEffect:function(e,n){return xi(4194308,4,e,n)},useInsertionEffect:function(e,n){return xi(4,2,e,n)},useMemo:function(e,n){var s=pn();return n=n===void 0?null:n,e=e(),s.memoizedState=[e,n],e},useReducer:function(e,n,s){var l=pn();return n=s!==void 0?s(n):n,l.memoizedState=l.baseState=n,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},l.queue=e,e=e.dispatch=Jh.bind(null,Xe,e),[l.memoizedState,e]},useRef:function(e){var n=pn();return e={current:e},n.memoizedState=e},useState:Xu,useDebugValue:Sa,useDeferredValue:function(e){return pn().memoizedState=e},useTransition:function(){var e=Xu(!1),n=e[0];return e=Xh.bind(null,e[1]),pn().memoizedState=e,[n,e]},useMutableSource:function(){},useSyncExternalStore:function(e,n,s){var l=Xe,c=pn();if(Ge){if(s===void 0)throw Error(i(407));s=s()}else{if(s=n(),ct===null)throw Error(i(349));(kr&30)!==0||Vu(l,n,s)}c.memoizedState=s;var u={value:s,getSnapshot:n};return c.queue=u,Zu(Gu.bind(null,l,u,e),[e]),l.flags|=2048,so(9,Ku.bind(null,l,u,s,n),void 0,null),s},useId:function(){var e=pn(),n=ct.identifierPrefix;if(Ge){var s=jn,l=kn;s=(l&~(1<<32-jt(l)-1)).toString(32)+s,n=":"+n+"R"+s,s=no++,0<s&&(n+="H"+s.toString(32)),n+=":"}else s=Yh++,n=":"+n+"r"+s.toString(32)+":";return e.memoizedState=n},unstable_isNewReconciler:!1},tm={readContext:Bt,useCallback:sd,useContext:Bt,useEffect:ja,useImperativeHandle:rd,useInsertionEffect:ed,useLayoutEffect:td,useMemo:od,useReducer:wa,useRef:Ju,useState:function(){return wa(ro)},useDebugValue:Sa,useDeferredValue:function(e){var n=qt();return id(n,ot.memoizedState,e)},useTransition:function(){var e=wa(ro)[0],n=qt().memoizedState;return[e,n]},useMutableSource:Uu,useSyncExternalStore:Hu,useId:ld,unstable_isNewReconciler:!1},nm={readContext:Bt,useCallback:sd,useContext:Bt,useEffect:ja,useImperativeHandle:rd,useInsertionEffect:ed,useLayoutEffect:td,useMemo:od,useReducer:ka,useRef:Ju,useState:function(){return ka(ro)},useDebugValue:Sa,useDeferredValue:function(e){var n=qt();return ot===null?n.memoizedState=e:id(n,ot.memoizedState,e)},useTransition:function(){var e=ka(ro)[0],n=qt().memoizedState;return[e,n]},useMutableSource:Uu,useSyncExternalStore:Hu,useId:ld,unstable_isNewReconciler:!1};function Zt(e,n){if(e&&e.defaultProps){n=$({},n),e=e.defaultProps;for(var s in e)n[s]===void 0&&(n[s]=e[s]);return n}return n}function Ca(e,n,s,l){n=e.memoizedState,s=s(l,n),s=s==null?n:$({},n,s),e.memoizedState=s,e.lanes===0&&(e.updateQueue.baseState=s)}var ji={isMounted:function(e){return(e=e._reactInternals)?yn(e)===e:!1},enqueueSetState:function(e,n,s){e=e._reactInternals;var l=wt(),c=tr(e),u=Cn(l,c);u.payload=n,s!=null&&(u.callback=s),n=Xn(e,u,c),n!==null&&(nn(n,e,c,l),hi(n,e,c))},enqueueReplaceState:function(e,n,s){e=e._reactInternals;var l=wt(),c=tr(e),u=Cn(l,c);u.tag=1,u.payload=n,s!=null&&(u.callback=s),n=Xn(e,u,c),n!==null&&(nn(n,e,c,l),hi(n,e,c))},enqueueForceUpdate:function(e,n){e=e._reactInternals;var s=wt(),l=tr(e),c=Cn(s,l);c.tag=2,n!=null&&(c.callback=n),n=Xn(e,c,l),n!==null&&(nn(n,e,l,s),hi(n,e,l))}};function dd(e,n,s,l,c,u,h){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(l,u,h):n.prototype&&n.prototype.isPureReactComponent?!Us(s,l)||!Us(c,u):!0}function fd(e,n,s){var l=!1,c=Gn,u=n.contextType;return typeof u=="object"&&u!==null?u=Bt(u):(c=Ct(n)?gr:ht.current,l=n.contextTypes,u=(l=l!=null)?Jr(e,c):Gn),n=new n(s,u),e.memoizedState=n.state!==null&&n.state!==void 0?n.state:null,n.updater=ji,e.stateNode=n,n._reactInternals=e,l&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=c,e.__reactInternalMemoizedMaskedChildContext=u),n}function pd(e,n,s,l){e=n.state,typeof n.componentWillReceiveProps=="function"&&n.componentWillReceiveProps(s,l),typeof n.UNSAFE_componentWillReceiveProps=="function"&&n.UNSAFE_componentWillReceiveProps(s,l),n.state!==e&&ji.enqueueReplaceState(n,n.state,null)}function ba(e,n,s,l){var c=e.stateNode;c.props=s,c.state=e.memoizedState,c.refs={},da(e);var u=n.contextType;typeof u=="object"&&u!==null?c.context=Bt(u):(u=Ct(n)?gr:ht.current,c.context=Jr(e,u)),c.state=e.memoizedState,u=n.getDerivedStateFromProps,typeof u=="function"&&(Ca(e,n,u,s),c.state=e.memoizedState),typeof n.getDerivedStateFromProps=="function"||typeof c.getSnapshotBeforeUpdate=="function"||typeof c.UNSAFE_componentWillMount!="function"&&typeof c.componentWillMount!="function"||(n=c.state,typeof c.componentWillMount=="function"&&c.componentWillMount(),typeof c.UNSAFE_componentWillMount=="function"&&c.UNSAFE_componentWillMount(),n!==c.state&&ji.enqueueReplaceState(c,c.state,null),mi(e,s,c,l),c.state=e.memoizedState),typeof c.componentDidMount=="function"&&(e.flags|=4194308)}function is(e,n){try{var s="",l=n;do s+=ke(l),l=l.return;while(l);var c=s}catch(u){c=`
8
8
  Error generating stack: `+u.message+`
9
- `+u.stack}return{value:e,source:n,stack:c,digest:null}}function Ia(e,n,s){return{value:e,source:null,stack:s??null,digest:n??null}}function Na(e,n){try{console.error(n.value)}catch(s){setTimeout(function(){throw s})}}var rm=typeof WeakMap=="function"?WeakMap:Map;function hd(e,n,s){s=Cn(-1,s),s.tag=3,s.payload={element:null};var l=n.value;return s.callback=function(){Ei||(Ei=!0,Ba=l),Na(e,n)},s}function md(e,n,s){s=Cn(-1,s),s.tag=3;var l=e.type.getDerivedStateFromError;if(typeof l=="function"){var c=n.value;s.payload=function(){return l(c)},s.callback=function(){Na(e,n)}}var u=e.stateNode;return u!==null&&typeof u.componentDidCatch=="function"&&(s.callback=function(){Na(e,n),typeof l!="function"&&(Zn===null?Zn=new Set([this]):Zn.add(this));var h=n.stack;this.componentDidCatch(n.value,{componentStack:h!==null?h:""})}),s}function gd(e,n,s){var l=e.pingCache;if(l===null){l=e.pingCache=new rm;var c=new Set;l.set(n,c)}else c=l.get(n),c===void 0&&(c=new Set,l.set(n,c));c.has(s)||(c.add(s),e=vm.bind(null,e,n,s),n.then(e,e))}function vd(e){do{var n;if((n=e.tag===13)&&(n=e.memoizedState,n=n!==null?n.dehydrated!==null:!0),n)return e;e=e.return}while(e!==null);return null}function yd(e,n,s,l,c){return(e.mode&1)===0?(e===n?e.flags|=65536:(e.flags|=128,s.flags|=131072,s.flags&=-52805,s.tag===1&&(s.alternate===null?s.tag=17:(n=Cn(-1,1),n.tag=2,Xn(s,n,1))),s.lanes|=1),e):(e.flags|=65536,e.lanes=c,e)}var sm=ie.ReactCurrentOwner,bt=!1;function xt(e,n,s,l){n.child=e===null?Du(n,null,s,l):ns(n,e.child,s,l)}function xd(e,n,s,l,c){s=s.render;var u=n.ref;return ss(n,c),l=ya(e,n,s,l,u,c),s=xa(),e!==null&&!bt?(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~c,bn(e,n,c)):(Ge&&s&&ta(n),n.flags|=1,xt(e,n,l,c),n.child)}function wd(e,n,s,l,c){if(e===null){var u=s.type;return typeof u=="function"&&!Qa(u)&&u.defaultProps===void 0&&s.compare===null&&s.defaultProps===void 0?(n.tag=15,n.type=u,kd(e,n,u,l,c)):(e=Li(s.type,null,l,n,n.mode,c),e.ref=n.ref,e.return=n,n.child=e)}if(u=e.child,(e.lanes&c)===0){var h=u.memoizedProps;if(s=s.compare,s=s!==null?s:Us,s(h,l)&&e.ref===n.ref)return bn(e,n,c)}return n.flags|=1,e=rr(u,l),e.ref=n.ref,e.return=n,n.child=e}function kd(e,n,s,l,c){if(e!==null){var u=e.memoizedProps;if(Us(u,l)&&e.ref===n.ref)if(bt=!1,n.pendingProps=l=u,(e.lanes&c)!==0)(e.flags&131072)!==0&&(bt=!0);else return n.lanes=e.lanes,bn(e,n,c)}return _a(e,n,s,l,c)}function jd(e,n,s){var l=n.pendingProps,c=l.children,u=e!==null?e.memoizedState:null;if(l.mode==="hidden")if((n.mode&1)===0)n.memoizedState={baseLanes:0,cachePool:null,transitions:null},Be(as,At),At|=s;else{if((s&1073741824)===0)return e=u!==null?u.baseLanes|s:s,n.lanes=n.childLanes=1073741824,n.memoizedState={baseLanes:e,cachePool:null,transitions:null},n.updateQueue=null,Be(as,At),At|=e,null;n.memoizedState={baseLanes:0,cachePool:null,transitions:null},l=u!==null?u.baseLanes:s,Be(as,At),At|=l}else u!==null?(l=u.baseLanes|s,n.memoizedState=null):l=s,Be(as,At),At|=l;return xt(e,n,c,s),n.child}function Sd(e,n){var s=n.ref;(e===null&&s!==null||e!==null&&e.ref!==s)&&(n.flags|=512,n.flags|=2097152)}function _a(e,n,s,l,c){var u=Ct(s)?gr:ht.current;return u=Jr(n,u),ss(n,c),s=ya(e,n,s,l,u,c),l=xa(),e!==null&&!bt?(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~c,bn(e,n,c)):(Ge&&l&&ta(n),n.flags|=1,xt(e,n,s,c),n.child)}function Cd(e,n,s,l,c){if(Ct(s)){var u=!0;ii(n)}else u=!1;if(ss(n,c),n.stateNode===null)Ci(e,n),fd(n,s,l),ba(n,s,l,c),l=!0;else if(e===null){var h=n.stateNode,w=n.memoizedProps;h.props=w;var S=h.context,O=s.contextType;typeof O=="object"&&O!==null?O=Bt(O):(O=Ct(s)?gr:ht.current,O=Jr(n,O));var V=s.getDerivedStateFromProps,K=typeof V=="function"||typeof h.getSnapshotBeforeUpdate=="function";K||typeof h.UNSAFE_componentWillReceiveProps!="function"&&typeof h.componentWillReceiveProps!="function"||(w!==l||S!==O)&&pd(n,h,l,O),Yn=!1;var H=n.memoizedState;h.state=H,mi(n,l,h,c),S=n.memoizedState,w!==l||H!==S||St.current||Yn?(typeof V=="function"&&(Ca(n,s,V,l),S=n.memoizedState),(w=Yn||dd(n,s,w,l,H,S,O))?(K||typeof h.UNSAFE_componentWillMount!="function"&&typeof h.componentWillMount!="function"||(typeof h.componentWillMount=="function"&&h.componentWillMount(),typeof h.UNSAFE_componentWillMount=="function"&&h.UNSAFE_componentWillMount()),typeof h.componentDidMount=="function"&&(n.flags|=4194308)):(typeof h.componentDidMount=="function"&&(n.flags|=4194308),n.memoizedProps=l,n.memoizedState=S),h.props=l,h.state=S,h.context=O,l=w):(typeof h.componentDidMount=="function"&&(n.flags|=4194308),l=!1)}else{h=n.stateNode,Wu(e,n),w=n.memoizedProps,O=n.type===n.elementType?w:Zt(n.type,w),h.props=O,K=n.pendingProps,H=h.context,S=s.contextType,typeof S=="object"&&S!==null?S=Bt(S):(S=Ct(s)?gr:ht.current,S=Jr(n,S));var ae=s.getDerivedStateFromProps;(V=typeof ae=="function"||typeof h.getSnapshotBeforeUpdate=="function")||typeof h.UNSAFE_componentWillReceiveProps!="function"&&typeof h.componentWillReceiveProps!="function"||(w!==K||H!==S)&&pd(n,h,l,S),Yn=!1,H=n.memoizedState,h.state=H,mi(n,l,h,c);var pe=n.memoizedState;w!==K||H!==pe||St.current||Yn?(typeof ae=="function"&&(Ca(n,s,ae,l),pe=n.memoizedState),(O=Yn||dd(n,s,O,l,H,pe,S)||!1)?(V||typeof h.UNSAFE_componentWillUpdate!="function"&&typeof h.componentWillUpdate!="function"||(typeof h.componentWillUpdate=="function"&&h.componentWillUpdate(l,pe,S),typeof h.UNSAFE_componentWillUpdate=="function"&&h.UNSAFE_componentWillUpdate(l,pe,S)),typeof h.componentDidUpdate=="function"&&(n.flags|=4),typeof h.getSnapshotBeforeUpdate=="function"&&(n.flags|=1024)):(typeof h.componentDidUpdate!="function"||w===e.memoizedProps&&H===e.memoizedState||(n.flags|=4),typeof h.getSnapshotBeforeUpdate!="function"||w===e.memoizedProps&&H===e.memoizedState||(n.flags|=1024),n.memoizedProps=l,n.memoizedState=pe),h.props=l,h.state=pe,h.context=S,l=O):(typeof h.componentDidUpdate!="function"||w===e.memoizedProps&&H===e.memoizedState||(n.flags|=4),typeof h.getSnapshotBeforeUpdate!="function"||w===e.memoizedProps&&H===e.memoizedState||(n.flags|=1024),l=!1)}return Ea(e,n,s,l,u,c)}function Ea(e,n,s,l,c,u){Sd(e,n);var h=(n.flags&128)!==0;if(!l&&!h)return c&&Eu(n,s,!1),bn(e,n,u);l=n.stateNode,sm.current=n;var w=h&&typeof s.getDerivedStateFromError!="function"?null:l.render();return n.flags|=1,e!==null&&h?(n.child=ns(n,e.child,null,u),n.child=ns(n,null,w,u)):xt(e,n,w,u),n.memoizedState=l.state,c&&Eu(n,s,!0),n.child}function bd(e){var n=e.stateNode;n.pendingContext?Nu(e,n.pendingContext,n.pendingContext!==n.context):n.context&&Nu(e,n.context,!1),fa(e,n.containerInfo)}function Id(e,n,s,l,c){return ts(),oa(c),n.flags|=256,xt(e,n,s,l),n.child}var Ra={dehydrated:null,treeContext:null,retryLane:0};function Pa(e){return{baseLanes:e,cachePool:null,transitions:null}}function Nd(e,n,s){var l=n.pendingProps,c=Ye.current,u=!1,h=(n.flags&128)!==0,w;if((w=h)||(w=e!==null&&e.memoizedState===null?!1:(c&2)!==0),w?(u=!0,n.flags&=-129):(e===null||e.memoizedState!==null)&&(c|=1),Be(Ye,c&1),e===null)return sa(n),e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?((n.mode&1)===0?n.lanes=1:e.data==="$!"?n.lanes=8:n.lanes=1073741824,null):(h=l.children,e=l.fallback,u?(l=n.mode,u=n.child,h={mode:"hidden",children:h},(l&1)===0&&u!==null?(u.childLanes=0,u.pendingProps=h):u=Ai(h,l,0,null),e=Ir(e,l,s,null),u.return=n,e.return=n,u.sibling=e,n.child=u,n.child.memoizedState=Pa(s),n.memoizedState=Ra,e):Ta(n,h));if(c=e.memoizedState,c!==null&&(w=c.dehydrated,w!==null))return om(e,n,h,l,w,c,s);if(u){u=l.fallback,h=n.mode,c=e.child,w=c.sibling;var S={mode:"hidden",children:l.children};return(h&1)===0&&n.child!==c?(l=n.child,l.childLanes=0,l.pendingProps=S,n.deletions=null):(l=rr(c,S),l.subtreeFlags=c.subtreeFlags&14680064),w!==null?u=rr(w,u):(u=Ir(u,h,s,null),u.flags|=2),u.return=n,l.return=n,l.sibling=u,n.child=l,l=u,u=n.child,h=e.child.memoizedState,h=h===null?Pa(s):{baseLanes:h.baseLanes|s,cachePool:null,transitions:h.transitions},u.memoizedState=h,u.childLanes=e.childLanes&~s,n.memoizedState=Ra,l}return u=e.child,e=u.sibling,l=rr(u,{mode:"visible",children:l.children}),(n.mode&1)===0&&(l.lanes=s),l.return=n,l.sibling=null,e!==null&&(s=n.deletions,s===null?(n.deletions=[e],n.flags|=16):s.push(e)),n.child=l,n.memoizedState=null,l}function Ta(e,n){return n=Ai({mode:"visible",children:n},e.mode,0,null),n.return=e,e.child=n}function Si(e,n,s,l){return l!==null&&oa(l),ns(n,e.child,null,s),e=Ta(n,n.pendingProps.children),e.flags|=2,n.memoizedState=null,e}function om(e,n,s,l,c,u,h){if(s)return n.flags&256?(n.flags&=-257,l=Ia(Error(i(422))),Si(e,n,h,l)):n.memoizedState!==null?(n.child=e.child,n.flags|=128,null):(u=l.fallback,c=n.mode,l=Ai({mode:"visible",children:l.children},c,0,null),u=Ir(u,c,h,null),u.flags|=2,l.return=n,u.return=n,l.sibling=u,n.child=l,(n.mode&1)!==0&&ns(n,e.child,null,h),n.child.memoizedState=Pa(h),n.memoizedState=Ra,u);if((n.mode&1)===0)return Si(e,n,h,null);if(c.data==="$!"){if(l=c.nextSibling&&c.nextSibling.dataset,l)var w=l.dgst;return l=w,u=Error(i(419)),l=Ia(u,l,void 0),Si(e,n,h,l)}if(w=(h&e.childLanes)!==0,bt||w){if(l=ct,l!==null){switch(h&-h){case 4:c=2;break;case 16:c=8;break;case 64: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:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:c=32;break;case 536870912:c=268435456;break;default:c=0}c=(c&(l.suspendedLanes|h))!==0?0:c,c!==0&&c!==u.retryLane&&(u.retryLane=c,Sn(e,c),nn(l,e,c,-1))}return Ga(),l=Ia(Error(i(421))),Si(e,n,h,l)}return c.data==="$?"?(n.flags|=128,n.child=e.child,n=ym.bind(null,e),c._reactRetry=n,null):(e=u.treeContext,Lt=Vn(c.nextSibling),Mt=n,Ge=!0,Jt=null,e!==null&&(Wt[Ft++]=kn,Wt[Ft++]=jn,Wt[Ft++]=vr,kn=e.id,jn=e.overflow,vr=n),n=Ta(n,l.children),n.flags|=4096,n)}function _d(e,n,s){e.lanes|=n;var l=e.alternate;l!==null&&(l.lanes|=n),ca(e.return,n,s)}function Oa(e,n,s,l,c){var u=e.memoizedState;u===null?e.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:l,tail:s,tailMode:c}:(u.isBackwards=n,u.rendering=null,u.renderingStartTime=0,u.last=l,u.tail=s,u.tailMode=c)}function Ed(e,n,s){var l=n.pendingProps,c=l.revealOrder,u=l.tail;if(xt(e,n,l.children,s),l=Ye.current,(l&2)!==0)l=l&1|2,n.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=n.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&_d(e,s,n);else if(e.tag===19)_d(e,s,n);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===n)break e;for(;e.sibling===null;){if(e.return===null||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}l&=1}if(Be(Ye,l),(n.mode&1)===0)n.memoizedState=null;else switch(c){case"forwards":for(s=n.child,c=null;s!==null;)e=s.alternate,e!==null&&gi(e)===null&&(c=s),s=s.sibling;s=c,s===null?(c=n.child,n.child=null):(c=s.sibling,s.sibling=null),Oa(n,!1,c,s,u);break;case"backwards":for(s=null,c=n.child,n.child=null;c!==null;){if(e=c.alternate,e!==null&&gi(e)===null){n.child=c;break}e=c.sibling,c.sibling=s,s=c,c=e}Oa(n,!0,s,null,u);break;case"together":Oa(n,!1,null,null,void 0);break;default:n.memoizedState=null}return n.child}function Ci(e,n){(n.mode&1)===0&&e!==null&&(e.alternate=null,n.alternate=null,n.flags|=2)}function bn(e,n,s){if(e!==null&&(n.dependencies=e.dependencies),jr|=n.lanes,(s&n.childLanes)===0)return null;if(e!==null&&n.child!==e.child)throw Error(i(153));if(n.child!==null){for(e=n.child,s=rr(e,e.pendingProps),n.child=s,s.return=n;e.sibling!==null;)e=e.sibling,s=s.sibling=rr(e,e.pendingProps),s.return=n;s.sibling=null}return n.child}function im(e,n,s){switch(n.tag){case 3:bd(n),ts();break;case 5:qu(n);break;case 1:Ct(n.type)&&ii(n);break;case 4:fa(n,n.stateNode.containerInfo);break;case 10:var l=n.type._context,c=n.memoizedProps.value;Be(fi,l._currentValue),l._currentValue=c;break;case 13:if(l=n.memoizedState,l!==null)return l.dehydrated!==null?(Be(Ye,Ye.current&1),n.flags|=128,null):(s&n.child.childLanes)!==0?Nd(e,n,s):(Be(Ye,Ye.current&1),e=bn(e,n,s),e!==null?e.sibling:null);Be(Ye,Ye.current&1);break;case 19:if(l=(s&n.childLanes)!==0,(e.flags&128)!==0){if(l)return Ed(e,n,s);n.flags|=128}if(c=n.memoizedState,c!==null&&(c.rendering=null,c.tail=null,c.lastEffect=null),Be(Ye,Ye.current),l)break;return null;case 22:case 23:return n.lanes=0,jd(e,n,s)}return bn(e,n,s)}var Rd,Ma,Pd,Td;Rd=function(e,n){for(var s=n.child;s!==null;){if(s.tag===5||s.tag===6)e.appendChild(s.stateNode);else if(s.tag!==4&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===n)break;for(;s.sibling===null;){if(s.return===null||s.return===n)return;s=s.return}s.sibling.return=s.return,s=s.sibling}},Ma=function(){},Pd=function(e,n,s,l){var c=e.memoizedProps;if(c!==l){e=n.stateNode,wr(fn.current);var u=null;switch(s){case"input":c=lt(e,c),l=lt(e,l),u=[];break;case"select":c=$({},c,{value:void 0}),l=$({},l,{value:void 0}),u=[];break;case"textarea":c=Mn(e,c),l=Mn(e,l),u=[];break;default:typeof c.onClick!="function"&&typeof l.onClick=="function"&&(e.onclick=ri)}cn(s,l);var h;s=null;for(O in c)if(!l.hasOwnProperty(O)&&c.hasOwnProperty(O)&&c[O]!=null)if(O==="style"){var w=c[O];for(h in w)w.hasOwnProperty(h)&&(s||(s={}),s[h]="")}else O!=="dangerouslySetInnerHTML"&&O!=="children"&&O!=="suppressContentEditableWarning"&&O!=="suppressHydrationWarning"&&O!=="autoFocus"&&(d.hasOwnProperty(O)?u||(u=[]):(u=u||[]).push(O,null));for(O in l){var S=l[O];if(w=c?.[O],l.hasOwnProperty(O)&&S!==w&&(S!=null||w!=null))if(O==="style")if(w){for(h in w)!w.hasOwnProperty(h)||S&&S.hasOwnProperty(h)||(s||(s={}),s[h]="");for(h in S)S.hasOwnProperty(h)&&w[h]!==S[h]&&(s||(s={}),s[h]=S[h])}else s||(u||(u=[]),u.push(O,s)),s=S;else O==="dangerouslySetInnerHTML"?(S=S?S.__html:void 0,w=w?w.__html:void 0,S!=null&&w!==S&&(u=u||[]).push(O,S)):O==="children"?typeof S!="string"&&typeof S!="number"||(u=u||[]).push(O,""+S):O!=="suppressContentEditableWarning"&&O!=="suppressHydrationWarning"&&(d.hasOwnProperty(O)?(S!=null&&O==="onScroll"&&He("scroll",e),u||w===S||(u=[])):(u=u||[]).push(O,S))}s&&(u=u||[]).push("style",s);var O=u;(n.updateQueue=O)&&(n.flags|=4)}},Td=function(e,n,s,l){s!==l&&(n.flags|=4)};function oo(e,n){if(!Ge)switch(e.tailMode){case"hidden":n=e.tail;for(var s=null;n!==null;)n.alternate!==null&&(s=n),n=n.sibling;s===null?e.tail=null:s.sibling=null;break;case"collapsed":s=e.tail;for(var l=null;s!==null;)s.alternate!==null&&(l=s),s=s.sibling;l===null?n||e.tail===null?e.tail=null:e.tail.sibling=null:l.sibling=null}}function gt(e){var n=e.alternate!==null&&e.alternate.child===e.child,s=0,l=0;if(n)for(var c=e.child;c!==null;)s|=c.lanes|c.childLanes,l|=c.subtreeFlags&14680064,l|=c.flags&14680064,c.return=e,c=c.sibling;else for(c=e.child;c!==null;)s|=c.lanes|c.childLanes,l|=c.subtreeFlags,l|=c.flags,c.return=e,c=c.sibling;return e.subtreeFlags|=l,e.childLanes=s,n}function lm(e,n,s){var l=n.pendingProps;switch(na(n),n.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return gt(n),null;case 1:return Ct(n.type)&&oi(),gt(n),null;case 3:return l=n.stateNode,os(),Ve(St),Ve(ht),ma(),l.pendingContext&&(l.context=l.pendingContext,l.pendingContext=null),(e===null||e.child===null)&&(ui(n)?n.flags|=4:e===null||e.memoizedState.isDehydrated&&(n.flags&256)===0||(n.flags|=1024,Jt!==null&&(Ha(Jt),Jt=null))),Ma(e,n),gt(n),null;case 5:pa(n);var c=wr(eo.current);if(s=n.type,e!==null&&n.stateNode!=null)Pd(e,n,s,l,c),e.ref!==n.ref&&(n.flags|=512,n.flags|=2097152);else{if(!l){if(n.stateNode===null)throw Error(i(166));return gt(n),null}if(e=wr(fn.current),ui(n)){l=n.stateNode,s=n.type;var u=n.memoizedProps;switch(l[dn]=n,l[Qs]=u,e=(n.mode&1)!==0,s){case"dialog":He("cancel",l),He("close",l);break;case"iframe":case"object":case"embed":He("load",l);break;case"video":case"audio":for(c=0;c<Vs.length;c++)He(Vs[c],l);break;case"source":He("error",l);break;case"img":case"image":case"link":He("error",l),He("load",l);break;case"details":He("toggle",l);break;case"input":dt(l,u),He("invalid",l);break;case"select":l._wrapperState={wasMultiple:!!u.multiple},He("invalid",l);break;case"textarea":ar(l,u),He("invalid",l)}cn(s,u),c=null;for(var h in u)if(u.hasOwnProperty(h)){var w=u[h];h==="children"?typeof w=="string"?l.textContent!==w&&(u.suppressHydrationWarning!==!0&&ni(l.textContent,w,e),c=["children",w]):typeof w=="number"&&l.textContent!==""+w&&(u.suppressHydrationWarning!==!0&&ni(l.textContent,w,e),c=["children",""+w]):d.hasOwnProperty(h)&&w!=null&&h==="onScroll"&&He("scroll",l)}switch(s){case"input":Ke(l),Re(l,u,!0);break;case"textarea":Ke(l),yt(l);break;case"select":case"option":break;default:typeof u.onClick=="function"&&(l.onclick=ri)}l=c,n.updateQueue=l,l!==null&&(n.flags|=4)}else{h=c.nodeType===9?c:c.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=ur(s)),e==="http://www.w3.org/1999/xhtml"?s==="script"?(e=h.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof l.is=="string"?e=h.createElement(s,{is:l.is}):(e=h.createElement(s),s==="select"&&(h=e,l.multiple?h.multiple=!0:l.size&&(h.size=l.size))):e=h.createElementNS(e,s),e[dn]=n,e[Qs]=l,Rd(e,n,!1,!1),n.stateNode=e;e:{switch(h=un(s,l),s){case"dialog":He("cancel",e),He("close",e),c=l;break;case"iframe":case"object":case"embed":He("load",e),c=l;break;case"video":case"audio":for(c=0;c<Vs.length;c++)He(Vs[c],e);c=l;break;case"source":He("error",e),c=l;break;case"img":case"image":case"link":He("error",e),He("load",e),c=l;break;case"details":He("toggle",e),c=l;break;case"input":dt(e,l),c=lt(e,l),He("invalid",e);break;case"option":c=l;break;case"select":e._wrapperState={wasMultiple:!!l.multiple},c=$({},l,{value:void 0}),He("invalid",e);break;case"textarea":ar(e,l),c=Mn(e,l),He("invalid",e);break;default:c=l}cn(s,c),w=c;for(u in w)if(w.hasOwnProperty(u)){var S=w[u];u==="style"?Ue(e,S):u==="dangerouslySetInnerHTML"?(S=S?S.__html:void 0,S!=null&&An(e,S)):u==="children"?typeof S=="string"?(s!=="textarea"||S!=="")&&an(e,S):typeof S=="number"&&an(e,""+S):u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&u!=="autoFocus"&&(d.hasOwnProperty(u)?S!=null&&u==="onScroll"&&He("scroll",e):S!=null&&se(e,u,S,h))}switch(s){case"input":Ke(e),Re(e,l,!1);break;case"textarea":Ke(e),yt(e);break;case"option":l.value!=null&&e.setAttribute("value",""+je(l.value));break;case"select":e.multiple=!!l.multiple,u=l.value,u!=null?kt(e,!!l.multiple,u,!1):l.defaultValue!=null&&kt(e,!!l.multiple,l.defaultValue,!0);break;default:typeof c.onClick=="function"&&(e.onclick=ri)}switch(s){case"button":case"input":case"select":case"textarea":l=!!l.autoFocus;break e;case"img":l=!0;break e;default:l=!1}}l&&(n.flags|=4)}n.ref!==null&&(n.flags|=512,n.flags|=2097152)}return gt(n),null;case 6:if(e&&n.stateNode!=null)Td(e,n,e.memoizedProps,l);else{if(typeof l!="string"&&n.stateNode===null)throw Error(i(166));if(s=wr(eo.current),wr(fn.current),ui(n)){if(l=n.stateNode,s=n.memoizedProps,l[dn]=n,(u=l.nodeValue!==s)&&(e=Mt,e!==null))switch(e.tag){case 3:ni(l.nodeValue,s,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&ni(l.nodeValue,s,(e.mode&1)!==0)}u&&(n.flags|=4)}else l=(s.nodeType===9?s:s.ownerDocument).createTextNode(l),l[dn]=n,n.stateNode=l}return gt(n),null;case 13:if(Ve(Ye),l=n.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(Ge&&Lt!==null&&(n.mode&1)!==0&&(n.flags&128)===0)Lu(),ts(),n.flags|=98560,u=!1;else if(u=ui(n),l!==null&&l.dehydrated!==null){if(e===null){if(!u)throw Error(i(318));if(u=n.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(i(317));u[dn]=n}else ts(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;gt(n),u=!1}else Jt!==null&&(Ha(Jt),Jt=null),u=!0;if(!u)return n.flags&65536?n:null}return(n.flags&128)!==0?(n.lanes=s,n):(l=l!==null,l!==(e!==null&&e.memoizedState!==null)&&l&&(n.child.flags|=8192,(n.mode&1)!==0&&(e===null||(Ye.current&1)!==0?it===0&&(it=3):Ga())),n.updateQueue!==null&&(n.flags|=4),gt(n),null);case 4:return os(),Ma(e,n),e===null&&Ks(n.stateNode.containerInfo),gt(n),null;case 10:return aa(n.type._context),gt(n),null;case 17:return Ct(n.type)&&oi(),gt(n),null;case 19:if(Ve(Ye),u=n.memoizedState,u===null)return gt(n),null;if(l=(n.flags&128)!==0,h=u.rendering,h===null)if(l)oo(u,!1);else{if(it!==0||e!==null&&(e.flags&128)!==0)for(e=n.child;e!==null;){if(h=gi(e),h!==null){for(n.flags|=128,oo(u,!1),l=h.updateQueue,l!==null&&(n.updateQueue=l,n.flags|=4),n.subtreeFlags=0,l=s,s=n.child;s!==null;)u=s,e=l,u.flags&=14680066,h=u.alternate,h===null?(u.childLanes=0,u.lanes=e,u.child=null,u.subtreeFlags=0,u.memoizedProps=null,u.memoizedState=null,u.updateQueue=null,u.dependencies=null,u.stateNode=null):(u.childLanes=h.childLanes,u.lanes=h.lanes,u.child=h.child,u.subtreeFlags=0,u.deletions=null,u.memoizedProps=h.memoizedProps,u.memoizedState=h.memoizedState,u.updateQueue=h.updateQueue,u.type=h.type,e=h.dependencies,u.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),s=s.sibling;return Be(Ye,Ye.current&1|2),n.child}e=e.sibling}u.tail!==null&&Qe()>cs&&(n.flags|=128,l=!0,oo(u,!1),n.lanes=4194304)}else{if(!l)if(e=gi(h),e!==null){if(n.flags|=128,l=!0,s=e.updateQueue,s!==null&&(n.updateQueue=s,n.flags|=4),oo(u,!0),u.tail===null&&u.tailMode==="hidden"&&!h.alternate&&!Ge)return gt(n),null}else 2*Qe()-u.renderingStartTime>cs&&s!==1073741824&&(n.flags|=128,l=!0,oo(u,!1),n.lanes=4194304);u.isBackwards?(h.sibling=n.child,n.child=h):(s=u.last,s!==null?s.sibling=h:n.child=h,u.last=h)}return u.tail!==null?(n=u.tail,u.rendering=n,u.tail=n.sibling,u.renderingStartTime=Qe(),n.sibling=null,s=Ye.current,Be(Ye,l?s&1|2:s&1),n):(gt(n),null);case 22:case 23:return Ka(),l=n.memoizedState!==null,e!==null&&e.memoizedState!==null!==l&&(n.flags|=8192),l&&(n.mode&1)!==0?(At&1073741824)!==0&&(gt(n),n.subtreeFlags&6&&(n.flags|=8192)):gt(n),null;case 24:return null;case 25:return null}throw Error(i(156,n.tag))}function am(e,n){switch(na(n),n.tag){case 1:return Ct(n.type)&&oi(),e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 3:return os(),Ve(St),Ve(ht),ma(),e=n.flags,(e&65536)!==0&&(e&128)===0?(n.flags=e&-65537|128,n):null;case 5:return pa(n),null;case 13:if(Ve(Ye),e=n.memoizedState,e!==null&&e.dehydrated!==null){if(n.alternate===null)throw Error(i(340));ts()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 19:return Ve(Ye),null;case 4:return os(),null;case 10:return aa(n.type._context),null;case 22:case 23:return Ka(),null;case 24:return null;default:return null}}var bi=!1,vt=!1,cm=typeof WeakSet=="function"?WeakSet:Set,de=null;function ls(e,n){var s=e.ref;if(s!==null)if(typeof s=="function")try{s(null)}catch(l){Je(e,n,l)}else s.current=null}function La(e,n,s){try{s()}catch(l){Je(e,n,l)}}var Od=!1;function um(e,n){if(Kl=Ho,e=du(),zl(e)){if("selectionStart"in e)var s={start:e.selectionStart,end:e.selectionEnd};else e:{s=(s=e.ownerDocument)&&s.defaultView||window;var l=s.getSelection&&s.getSelection();if(l&&l.rangeCount!==0){s=l.anchorNode;var c=l.anchorOffset,u=l.focusNode;l=l.focusOffset;try{s.nodeType,u.nodeType}catch{s=null;break e}var h=0,w=-1,S=-1,O=0,V=0,K=e,H=null;t:for(;;){for(var ae;K!==s||c!==0&&K.nodeType!==3||(w=h+c),K!==u||l!==0&&K.nodeType!==3||(S=h+l),K.nodeType===3&&(h+=K.nodeValue.length),(ae=K.firstChild)!==null;)H=K,K=ae;for(;;){if(K===e)break t;if(H===s&&++O===c&&(w=h),H===u&&++V===l&&(S=h),(ae=K.nextSibling)!==null)break;K=H,H=K.parentNode}K=ae}s=w===-1||S===-1?null:{start:w,end:S}}else s=null}s=s||{start:0,end:0}}else s=null;for(Gl={focusedElem:e,selectionRange:s},Ho=!1,de=n;de!==null;)if(n=de,e=n.child,(n.subtreeFlags&1028)!==0&&e!==null)e.return=n,de=e;else for(;de!==null;){n=de;try{var pe=n.alternate;if((n.flags&1024)!==0)switch(n.tag){case 0:case 11:case 15:break;case 1:if(pe!==null){var me=pe.memoizedProps,et=pe.memoizedState,_=n.stateNode,C=_.getSnapshotBeforeUpdate(n.elementType===n.type?me:Zt(n.type,me),et);_.__reactInternalSnapshotBeforeUpdate=C}break;case 3:var P=n.stateNode.containerInfo;P.nodeType===1?P.textContent="":P.nodeType===9&&P.documentElement&&P.removeChild(P.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(i(163))}}catch(ee){Je(n,n.return,ee)}if(e=n.sibling,e!==null){e.return=n.return,de=e;break}de=n.return}return pe=Od,Od=!1,pe}function io(e,n,s){var l=n.updateQueue;if(l=l!==null?l.lastEffect:null,l!==null){var c=l=l.next;do{if((c.tag&e)===e){var u=c.destroy;c.destroy=void 0,u!==void 0&&La(n,s,u)}c=c.next}while(c!==l)}}function Ii(e,n){if(n=n.updateQueue,n=n!==null?n.lastEffect:null,n!==null){var s=n=n.next;do{if((s.tag&e)===e){var l=s.create;s.destroy=l()}s=s.next}while(s!==n)}}function Aa(e){var n=e.ref;if(n!==null){var s=e.stateNode;e.tag,e=s,typeof n=="function"?n(e):n.current=e}}function Md(e){var n=e.alternate;n!==null&&(e.alternate=null,Md(n)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(n=e.stateNode,n!==null&&(delete n[dn],delete n[Qs],delete n[Jl],delete n[Vh],delete n[Kh])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Ld(e){return e.tag===5||e.tag===3||e.tag===4}function Ad(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Ld(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.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 $a(e,n,s){var l=e.tag;if(l===5||l===6)e=e.stateNode,n?s.nodeType===8?s.parentNode.insertBefore(e,n):s.insertBefore(e,n):(s.nodeType===8?(n=s.parentNode,n.insertBefore(e,s)):(n=s,n.appendChild(e)),s=s._reactRootContainer,s!=null||n.onclick!==null||(n.onclick=ri));else if(l!==4&&(e=e.child,e!==null))for($a(e,n,s),e=e.sibling;e!==null;)$a(e,n,s),e=e.sibling}function Da(e,n,s){var l=e.tag;if(l===5||l===6)e=e.stateNode,n?s.insertBefore(e,n):s.appendChild(e);else if(l!==4&&(e=e.child,e!==null))for(Da(e,n,s),e=e.sibling;e!==null;)Da(e,n,s),e=e.sibling}var ft=null,en=!1;function Jn(e,n,s){for(s=s.child;s!==null;)$d(e,n,s),s=s.sibling}function $d(e,n,s){if(Tt&&typeof Tt.onCommitFiberUnmount=="function")try{Tt.onCommitFiberUnmount(pr,s)}catch{}switch(s.tag){case 5:vt||ls(s,n);case 6:var l=ft,c=en;ft=null,Jn(e,n,s),ft=l,en=c,ft!==null&&(en?(e=ft,s=s.stateNode,e.nodeType===8?e.parentNode.removeChild(s):e.removeChild(s)):ft.removeChild(s.stateNode));break;case 18:ft!==null&&(en?(e=ft,s=s.stateNode,e.nodeType===8?Xl(e.parentNode,s):e.nodeType===1&&Xl(e,s),Ds(e)):Xl(ft,s.stateNode));break;case 4:l=ft,c=en,ft=s.stateNode.containerInfo,en=!0,Jn(e,n,s),ft=l,en=c;break;case 0:case 11:case 14:case 15:if(!vt&&(l=s.updateQueue,l!==null&&(l=l.lastEffect,l!==null))){c=l=l.next;do{var u=c,h=u.destroy;u=u.tag,h!==void 0&&((u&2)!==0||(u&4)!==0)&&La(s,n,h),c=c.next}while(c!==l)}Jn(e,n,s);break;case 1:if(!vt&&(ls(s,n),l=s.stateNode,typeof l.componentWillUnmount=="function"))try{l.props=s.memoizedProps,l.state=s.memoizedState,l.componentWillUnmount()}catch(w){Je(s,n,w)}Jn(e,n,s);break;case 21:Jn(e,n,s);break;case 22:s.mode&1?(vt=(l=vt)||s.memoizedState!==null,Jn(e,n,s),vt=l):Jn(e,n,s);break;default:Jn(e,n,s)}}function Dd(e){var n=e.updateQueue;if(n!==null){e.updateQueue=null;var s=e.stateNode;s===null&&(s=e.stateNode=new cm),n.forEach(function(l){var c=xm.bind(null,e,l);s.has(l)||(s.add(l),l.then(c,c))})}}function tn(e,n){var s=n.deletions;if(s!==null)for(var l=0;l<s.length;l++){var c=s[l];try{var u=e,h=n,w=h;e:for(;w!==null;){switch(w.tag){case 5:ft=w.stateNode,en=!1;break e;case 3:ft=w.stateNode.containerInfo,en=!0;break e;case 4:ft=w.stateNode.containerInfo,en=!0;break e}w=w.return}if(ft===null)throw Error(i(160));$d(u,h,c),ft=null,en=!1;var S=c.alternate;S!==null&&(S.return=null),c.return=null}catch(O){Je(c,n,O)}}if(n.subtreeFlags&12854)for(n=n.child;n!==null;)zd(n,e),n=n.sibling}function zd(e,n){var s=e.alternate,l=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(tn(n,e),hn(e),l&4){try{io(3,e,e.return),Ii(3,e)}catch(me){Je(e,e.return,me)}try{io(5,e,e.return)}catch(me){Je(e,e.return,me)}}break;case 1:tn(n,e),hn(e),l&512&&s!==null&&ls(s,s.return);break;case 5:if(tn(n,e),hn(e),l&512&&s!==null&&ls(s,s.return),e.flags&32){var c=e.stateNode;try{an(c,"")}catch(me){Je(e,e.return,me)}}if(l&4&&(c=e.stateNode,c!=null)){var u=e.memoizedProps,h=s!==null?s.memoizedProps:u,w=e.type,S=e.updateQueue;if(e.updateQueue=null,S!==null)try{w==="input"&&u.type==="radio"&&u.name!=null&&ln(c,u),un(w,h);var O=un(w,u);for(h=0;h<S.length;h+=2){var V=S[h],K=S[h+1];V==="style"?Ue(c,K):V==="dangerouslySetInnerHTML"?An(c,K):V==="children"?an(c,K):se(c,V,K,O)}switch(w){case"input":q(c,u);break;case"textarea":cr(c,u);break;case"select":var H=c._wrapperState.wasMultiple;c._wrapperState.wasMultiple=!!u.multiple;var ae=u.value;ae!=null?kt(c,!!u.multiple,ae,!1):H!==!!u.multiple&&(u.defaultValue!=null?kt(c,!!u.multiple,u.defaultValue,!0):kt(c,!!u.multiple,u.multiple?[]:"",!1))}c[Qs]=u}catch(me){Je(e,e.return,me)}}break;case 6:if(tn(n,e),hn(e),l&4){if(e.stateNode===null)throw Error(i(162));c=e.stateNode,u=e.memoizedProps;try{c.nodeValue=u}catch(me){Je(e,e.return,me)}}break;case 3:if(tn(n,e),hn(e),l&4&&s!==null&&s.memoizedState.isDehydrated)try{Ds(n.containerInfo)}catch(me){Je(e,e.return,me)}break;case 4:tn(n,e),hn(e);break;case 13:tn(n,e),hn(e),c=e.child,c.flags&8192&&(u=c.memoizedState!==null,c.stateNode.isHidden=u,!u||c.alternate!==null&&c.alternate.memoizedState!==null||(Fa=Qe())),l&4&&Dd(e);break;case 22:if(V=s!==null&&s.memoizedState!==null,e.mode&1?(vt=(O=vt)||V,tn(n,e),vt=O):tn(n,e),hn(e),l&8192){if(O=e.memoizedState!==null,(e.stateNode.isHidden=O)&&!V&&(e.mode&1)!==0)for(de=e,V=e.child;V!==null;){for(K=de=V;de!==null;){switch(H=de,ae=H.child,H.tag){case 0:case 11:case 14:case 15:io(4,H,H.return);break;case 1:ls(H,H.return);var pe=H.stateNode;if(typeof pe.componentWillUnmount=="function"){l=H,s=H.return;try{n=l,pe.props=n.memoizedProps,pe.state=n.memoizedState,pe.componentWillUnmount()}catch(me){Je(l,s,me)}}break;case 5:ls(H,H.return);break;case 22:if(H.memoizedState!==null){Bd(K);continue}}ae!==null?(ae.return=H,de=ae):Bd(K)}V=V.sibling}e:for(V=null,K=e;;){if(K.tag===5){if(V===null){V=K;try{c=K.stateNode,O?(u=c.style,typeof u.setProperty=="function"?u.setProperty("display","none","important"):u.display="none"):(w=K.stateNode,S=K.memoizedProps.style,h=S!=null&&S.hasOwnProperty("display")?S.display:null,w.style.display=Pe("display",h))}catch(me){Je(e,e.return,me)}}}else if(K.tag===6){if(V===null)try{K.stateNode.nodeValue=O?"":K.memoizedProps}catch(me){Je(e,e.return,me)}}else if((K.tag!==22&&K.tag!==23||K.memoizedState===null||K===e)&&K.child!==null){K.child.return=K,K=K.child;continue}if(K===e)break e;for(;K.sibling===null;){if(K.return===null||K.return===e)break e;V===K&&(V=null),K=K.return}V===K&&(V=null),K.sibling.return=K.return,K=K.sibling}}break;case 19:tn(n,e),hn(e),l&4&&Dd(e);break;case 21:break;default:tn(n,e),hn(e)}}function hn(e){var n=e.flags;if(n&2){try{e:{for(var s=e.return;s!==null;){if(Ld(s)){var l=s;break e}s=s.return}throw Error(i(160))}switch(l.tag){case 5:var c=l.stateNode;l.flags&32&&(an(c,""),l.flags&=-33);var u=Ad(e);Da(e,u,c);break;case 3:case 4:var h=l.stateNode.containerInfo,w=Ad(e);$a(e,w,h);break;default:throw Error(i(161))}}catch(S){Je(e,e.return,S)}e.flags&=-3}n&4096&&(e.flags&=-4097)}function dm(e,n,s){de=e,Wd(e)}function Wd(e,n,s){for(var l=(e.mode&1)!==0;de!==null;){var c=de,u=c.child;if(c.tag===22&&l){var h=c.memoizedState!==null||bi;if(!h){var w=c.alternate,S=w!==null&&w.memoizedState!==null||vt;w=bi;var O=vt;if(bi=h,(vt=S)&&!O)for(de=c;de!==null;)h=de,S=h.child,h.tag===22&&h.memoizedState!==null?qd(c):S!==null?(S.return=h,de=S):qd(c);for(;u!==null;)de=u,Wd(u),u=u.sibling;de=c,bi=w,vt=O}Fd(e)}else(c.subtreeFlags&8772)!==0&&u!==null?(u.return=c,de=u):Fd(e)}}function Fd(e){for(;de!==null;){var n=de;if((n.flags&8772)!==0){var s=n.alternate;try{if((n.flags&8772)!==0)switch(n.tag){case 0:case 11:case 15:vt||Ii(5,n);break;case 1:var l=n.stateNode;if(n.flags&4&&!vt)if(s===null)l.componentDidMount();else{var c=n.elementType===n.type?s.memoizedProps:Zt(n.type,s.memoizedProps);l.componentDidUpdate(c,s.memoizedState,l.__reactInternalSnapshotBeforeUpdate)}var u=n.updateQueue;u!==null&&Bu(n,u,l);break;case 3:var h=n.updateQueue;if(h!==null){if(s=null,n.child!==null)switch(n.child.tag){case 5:s=n.child.stateNode;break;case 1:s=n.child.stateNode}Bu(n,h,s)}break;case 5:var w=n.stateNode;if(s===null&&n.flags&4){s=w;var S=n.memoizedProps;switch(n.type){case"button":case"input":case"select":case"textarea":S.autoFocus&&s.focus();break;case"img":S.src&&(s.src=S.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(n.memoizedState===null){var O=n.alternate;if(O!==null){var V=O.memoizedState;if(V!==null){var K=V.dehydrated;K!==null&&Ds(K)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(i(163))}vt||n.flags&512&&Aa(n)}catch(H){Je(n,n.return,H)}}if(n===e){de=null;break}if(s=n.sibling,s!==null){s.return=n.return,de=s;break}de=n.return}}function Bd(e){for(;de!==null;){var n=de;if(n===e){de=null;break}var s=n.sibling;if(s!==null){s.return=n.return,de=s;break}de=n.return}}function qd(e){for(;de!==null;){var n=de;try{switch(n.tag){case 0:case 11:case 15:var s=n.return;try{Ii(4,n)}catch(S){Je(n,s,S)}break;case 1:var l=n.stateNode;if(typeof l.componentDidMount=="function"){var c=n.return;try{l.componentDidMount()}catch(S){Je(n,c,S)}}var u=n.return;try{Aa(n)}catch(S){Je(n,u,S)}break;case 5:var h=n.return;try{Aa(n)}catch(S){Je(n,h,S)}}}catch(S){Je(n,n.return,S)}if(n===e){de=null;break}var w=n.sibling;if(w!==null){w.return=n.return,de=w;break}de=n.return}}var fm=Math.ceil,Ni=ie.ReactCurrentDispatcher,za=ie.ReactCurrentOwner,Ut=ie.ReactCurrentBatchConfig,$e=0,ct=null,nt=null,pt=0,At=0,as=Kn(0),it=0,lo=null,jr=0,_i=0,Wa=0,ao=null,It=null,Fa=0,cs=1/0,In=null,Ei=!1,Ba=null,Zn=null,Ri=!1,er=null,Pi=0,co=0,qa=null,Ti=-1,Oi=0;function wt(){return($e&6)!==0?Qe():Ti!==-1?Ti:Ti=Qe()}function tr(e){return(e.mode&1)===0?1:($e&2)!==0&&pt!==0?pt&-pt:Qh.transition!==null?(Oi===0&&(Oi=Ee()),Oi):(e=Le,e!==0||(e=window.event,e=e===void 0?16:Hc(e.type)),e)}function nn(e,n,s,l){if(50<co)throw co=0,qa=null,Error(i(185));Ae(e,s,l),(($e&2)===0||e!==ct)&&(e===ct&&(($e&2)===0&&(_i|=s),it===4&&nr(e,pt)),Nt(e,l),s===1&&$e===0&&(n.mode&1)===0&&(cs=Qe()+500,li&&Qn()))}function Nt(e,n){var s=e.callbackNode;X(e,n);var l=I(e,e===ct?pt:0);if(l===0)s!==null&&Lo(s),e.callbackNode=null,e.callbackPriority=0;else if(n=l&-l,e.callbackPriority!==n){if(s!=null&&Lo(s),n===1)e.tag===0?Gh(Hd.bind(null,e)):Ru(Hd.bind(null,e)),Uh(function(){($e&6)===0&&Qn()}),s=null;else{switch(Fo(l)){case 1:s=_s;break;case 4:s=Es;break;case 16:s=fr;break;case 536870912:s=Rs;break;default:s=fr}s=Zd(s,Ud.bind(null,e))}e.callbackPriority=n,e.callbackNode=s}}function Ud(e,n){if(Ti=-1,Oi=0,($e&6)!==0)throw Error(i(327));var s=e.callbackNode;if(us()&&e.callbackNode!==s)return null;var l=I(e,e===ct?pt:0);if(l===0)return null;if((l&30)!==0||(l&e.expiredLanes)!==0||n)n=Mi(e,l);else{n=l;var c=$e;$e|=2;var u=Kd();(ct!==e||pt!==n)&&(In=null,cs=Qe()+500,Cr(e,n));do try{mm();break}catch(w){Vd(e,w)}while(!0);la(),Ni.current=u,$e=c,nt!==null?n=0:(ct=null,pt=0,n=it)}if(n!==0){if(n===2&&(c=oe(e),c!==0&&(l=c,n=Ua(e,c))),n===1)throw s=lo,Cr(e,0),nr(e,l),Nt(e,Qe()),s;if(n===6)nr(e,l);else{if(c=e.current.alternate,(l&30)===0&&!pm(c)&&(n=Mi(e,l),n===2&&(u=oe(e),u!==0&&(l=u,n=Ua(e,u))),n===1))throw s=lo,Cr(e,0),nr(e,l),Nt(e,Qe()),s;switch(e.finishedWork=c,e.finishedLanes=l,n){case 0:case 1:throw Error(i(345));case 2:br(e,It,In);break;case 3:if(nr(e,l),(l&130023424)===l&&(n=Fa+500-Qe(),10<n)){if(I(e,0)!==0)break;if(c=e.suspendedLanes,(c&l)!==l){wt(),e.pingedLanes|=e.suspendedLanes&c;break}e.timeoutHandle=Yl(br.bind(null,e,It,In),n);break}br(e,It,In);break;case 4:if(nr(e,l),(l&4194240)===l)break;for(n=e.eventTimes,c=-1;0<l;){var h=31-jt(l);u=1<<h,h=n[h],h>c&&(c=h),l&=~u}if(l=c,l=Qe()-l,l=(120>l?120:480>l?480:1080>l?1080:1920>l?1920:3e3>l?3e3:4320>l?4320:1960*fm(l/1960))-l,10<l){e.timeoutHandle=Yl(br.bind(null,e,It,In),l);break}br(e,It,In);break;case 5:br(e,It,In);break;default:throw Error(i(329))}}}return Nt(e,Qe()),e.callbackNode===s?Ud.bind(null,e):null}function Ua(e,n){var s=ao;return e.current.memoizedState.isDehydrated&&(Cr(e,n).flags|=256),e=Mi(e,n),e!==2&&(n=It,It=s,n!==null&&Ha(n)),e}function Ha(e){It===null?It=e:It.push.apply(It,e)}function pm(e){for(var n=e;;){if(n.flags&16384){var s=n.updateQueue;if(s!==null&&(s=s.stores,s!==null))for(var l=0;l<s.length;l++){var c=s[l],u=c.getSnapshot;c=c.value;try{if(!Xt(u(),c))return!1}catch{return!1}}}if(s=n.child,n.subtreeFlags&16384&&s!==null)s.return=n,n=s;else{if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return!0;n=n.return}n.sibling.return=n.return,n=n.sibling}}return!0}function nr(e,n){for(n&=~Wa,n&=~_i,e.suspendedLanes|=n,e.pingedLanes&=~n,e=e.expirationTimes;0<n;){var s=31-jt(n),l=1<<s;e[s]=-1,n&=~l}}function Hd(e){if(($e&6)!==0)throw Error(i(327));us();var n=I(e,0);if((n&1)===0)return Nt(e,Qe()),null;var s=Mi(e,n);if(e.tag!==0&&s===2){var l=oe(e);l!==0&&(n=l,s=Ua(e,l))}if(s===1)throw s=lo,Cr(e,0),nr(e,n),Nt(e,Qe()),s;if(s===6)throw Error(i(345));return e.finishedWork=e.current.alternate,e.finishedLanes=n,br(e,It,In),Nt(e,Qe()),null}function Va(e,n){var s=$e;$e|=1;try{return e(n)}finally{$e=s,$e===0&&(cs=Qe()+500,li&&Qn())}}function Sr(e){er!==null&&er.tag===0&&($e&6)===0&&us();var n=$e;$e|=1;var s=Ut.transition,l=Le;try{if(Ut.transition=null,Le=1,e)return e()}finally{Le=l,Ut.transition=s,$e=n,($e&6)===0&&Qn()}}function Ka(){At=as.current,Ve(as)}function Cr(e,n){e.finishedWork=null,e.finishedLanes=0;var s=e.timeoutHandle;if(s!==-1&&(e.timeoutHandle=-1,qh(s)),nt!==null)for(s=nt.return;s!==null;){var l=s;switch(na(l),l.tag){case 1:l=l.type.childContextTypes,l!=null&&oi();break;case 3:os(),Ve(St),Ve(ht),ma();break;case 5:pa(l);break;case 4:os();break;case 13:Ve(Ye);break;case 19:Ve(Ye);break;case 10:aa(l.type._context);break;case 22:case 23:Ka()}s=s.return}if(ct=e,nt=e=rr(e.current,null),pt=At=n,it=0,lo=null,Wa=_i=jr=0,It=ao=null,xr!==null){for(n=0;n<xr.length;n++)if(s=xr[n],l=s.interleaved,l!==null){s.interleaved=null;var c=l.next,u=s.pending;if(u!==null){var h=u.next;u.next=c,l.next=h}s.pending=l}xr=null}return e}function Vd(e,n){do{var s=nt;try{if(la(),vi.current=ki,yi){for(var l=Xe.memoizedState;l!==null;){var c=l.queue;c!==null&&(c.pending=null),l=l.next}yi=!1}if(kr=0,at=ot=Xe=null,to=!1,no=0,za.current=null,s===null||s.return===null){it=1,lo=n,nt=null;break}e:{var u=e,h=s.return,w=s,S=n;if(n=pt,w.flags|=32768,S!==null&&typeof S=="object"&&typeof S.then=="function"){var O=S,V=w,K=V.tag;if((V.mode&1)===0&&(K===0||K===11||K===15)){var H=V.alternate;H?(V.updateQueue=H.updateQueue,V.memoizedState=H.memoizedState,V.lanes=H.lanes):(V.updateQueue=null,V.memoizedState=null)}var ae=vd(h);if(ae!==null){ae.flags&=-257,yd(ae,h,w,u,n),ae.mode&1&&gd(u,O,n),n=ae,S=O;var pe=n.updateQueue;if(pe===null){var me=new Set;me.add(S),n.updateQueue=me}else pe.add(S);break e}else{if((n&1)===0){gd(u,O,n),Ga();break e}S=Error(i(426))}}else if(Ge&&w.mode&1){var et=vd(h);if(et!==null){(et.flags&65536)===0&&(et.flags|=256),yd(et,h,w,u,n),oa(is(S,w));break e}}u=S=is(S,w),it!==4&&(it=2),ao===null?ao=[u]:ao.push(u),u=h;do{switch(u.tag){case 3:u.flags|=65536,n&=-n,u.lanes|=n;var _=hd(u,S,n);Fu(u,_);break e;case 1:w=S;var C=u.type,P=u.stateNode;if((u.flags&128)===0&&(typeof C.getDerivedStateFromError=="function"||P!==null&&typeof P.componentDidCatch=="function"&&(Zn===null||!Zn.has(P)))){u.flags|=65536,n&=-n,u.lanes|=n;var ee=md(u,w,n);Fu(u,ee);break e}}u=u.return}while(u!==null)}Qd(s)}catch(ve){n=ve,nt===s&&s!==null&&(nt=s=s.return);continue}break}while(!0)}function Kd(){var e=Ni.current;return Ni.current=ki,e===null?ki:e}function Ga(){(it===0||it===3||it===2)&&(it=4),ct===null||(jr&268435455)===0&&(_i&268435455)===0||nr(ct,pt)}function Mi(e,n){var s=$e;$e|=2;var l=Kd();(ct!==e||pt!==n)&&(In=null,Cr(e,n));do try{hm();break}catch(c){Vd(e,c)}while(!0);if(la(),$e=s,Ni.current=l,nt!==null)throw Error(i(261));return ct=null,pt=0,it}function hm(){for(;nt!==null;)Gd(nt)}function mm(){for(;nt!==null&&!bl();)Gd(nt)}function Gd(e){var n=Jd(e.alternate,e,At);e.memoizedProps=e.pendingProps,n===null?Qd(e):nt=n,za.current=null}function Qd(e){var n=e;do{var s=n.alternate;if(e=n.return,(n.flags&32768)===0){if(s=lm(s,n,At),s!==null){nt=s;return}}else{if(s=am(s,n),s!==null){s.flags&=32767,nt=s;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{it=6,nt=null;return}}if(n=n.sibling,n!==null){nt=n;return}nt=n=e}while(n!==null);it===0&&(it=5)}function br(e,n,s){var l=Le,c=Ut.transition;try{Ut.transition=null,Le=1,gm(e,n,s,l)}finally{Ut.transition=c,Le=l}return null}function gm(e,n,s,l){do us();while(er!==null);if(($e&6)!==0)throw Error(i(327));s=e.finishedWork;var c=e.finishedLanes;if(s===null)return null;if(e.finishedWork=null,e.finishedLanes=0,s===e.current)throw Error(i(177));e.callbackNode=null,e.callbackPriority=0;var u=s.lanes|s.childLanes;if(Dt(e,u),e===ct&&(nt=ct=null,pt=0),(s.subtreeFlags&2064)===0&&(s.flags&2064)===0||Ri||(Ri=!0,Zd(fr,function(){return us(),null})),u=(s.flags&15990)!==0,(s.subtreeFlags&15990)!==0||u){u=Ut.transition,Ut.transition=null;var h=Le;Le=1;var w=$e;$e|=4,za.current=null,um(e,s),zd(s,e),Ah(Gl),Ho=!!Kl,Gl=Kl=null,e.current=s,dm(s),Il(),$e=w,Le=h,Ut.transition=u}else e.current=s;if(Ri&&(Ri=!1,er=e,Pi=c),u=e.pendingLanes,u===0&&(Zn=null),$o(s.stateNode),Nt(e,Qe()),n!==null)for(l=e.onRecoverableError,s=0;s<n.length;s++)c=n[s],l(c.value,{componentStack:c.stack,digest:c.digest});if(Ei)throw Ei=!1,e=Ba,Ba=null,e;return(Pi&1)!==0&&e.tag!==0&&us(),u=e.pendingLanes,(u&1)!==0?e===qa?co++:(co=0,qa=e):co=0,Qn(),null}function us(){if(er!==null){var e=Fo(Pi),n=Ut.transition,s=Le;try{if(Ut.transition=null,Le=16>e?16:e,er===null)var l=!1;else{if(e=er,er=null,Pi=0,($e&6)!==0)throw Error(i(331));var c=$e;for($e|=4,de=e.current;de!==null;){var u=de,h=u.child;if((de.flags&16)!==0){var w=u.deletions;if(w!==null){for(var S=0;S<w.length;S++){var O=w[S];for(de=O;de!==null;){var V=de;switch(V.tag){case 0:case 11:case 15:io(8,V,u)}var K=V.child;if(K!==null)K.return=V,de=K;else for(;de!==null;){V=de;var H=V.sibling,ae=V.return;if(Md(V),V===O){de=null;break}if(H!==null){H.return=ae,de=H;break}de=ae}}}var pe=u.alternate;if(pe!==null){var me=pe.child;if(me!==null){pe.child=null;do{var et=me.sibling;me.sibling=null,me=et}while(me!==null)}}de=u}}if((u.subtreeFlags&2064)!==0&&h!==null)h.return=u,de=h;else e:for(;de!==null;){if(u=de,(u.flags&2048)!==0)switch(u.tag){case 0:case 11:case 15:io(9,u,u.return)}var _=u.sibling;if(_!==null){_.return=u.return,de=_;break e}de=u.return}}var C=e.current;for(de=C;de!==null;){h=de;var P=h.child;if((h.subtreeFlags&2064)!==0&&P!==null)P.return=h,de=P;else e:for(h=C;de!==null;){if(w=de,(w.flags&2048)!==0)try{switch(w.tag){case 0:case 11:case 15:Ii(9,w)}}catch(ve){Je(w,w.return,ve)}if(w===h){de=null;break e}var ee=w.sibling;if(ee!==null){ee.return=w.return,de=ee;break e}de=w.return}}if($e=c,Qn(),Tt&&typeof Tt.onPostCommitFiberRoot=="function")try{Tt.onPostCommitFiberRoot(pr,e)}catch{}l=!0}return l}finally{Le=s,Ut.transition=n}}return!1}function Yd(e,n,s){n=is(s,n),n=hd(e,n,1),e=Xn(e,n,1),n=wt(),e!==null&&(Ae(e,1,n),Nt(e,n))}function Je(e,n,s){if(e.tag===3)Yd(e,e,s);else for(;n!==null;){if(n.tag===3){Yd(n,e,s);break}else if(n.tag===1){var l=n.stateNode;if(typeof n.type.getDerivedStateFromError=="function"||typeof l.componentDidCatch=="function"&&(Zn===null||!Zn.has(l))){e=is(s,e),e=md(n,e,1),n=Xn(n,e,1),e=wt(),n!==null&&(Ae(n,1,e),Nt(n,e));break}}n=n.return}}function vm(e,n,s){var l=e.pingCache;l!==null&&l.delete(n),n=wt(),e.pingedLanes|=e.suspendedLanes&s,ct===e&&(pt&s)===s&&(it===4||it===3&&(pt&130023424)===pt&&500>Qe()-Fa?Cr(e,0):Wa|=s),Nt(e,n)}function Xd(e,n){n===0&&((e.mode&1)===0?n=1:(n=Wr,Wr<<=1,(Wr&130023424)===0&&(Wr=4194304)));var s=wt();e=Sn(e,n),e!==null&&(Ae(e,n,s),Nt(e,s))}function ym(e){var n=e.memoizedState,s=0;n!==null&&(s=n.retryLane),Xd(e,s)}function xm(e,n){var s=0;switch(e.tag){case 13:var l=e.stateNode,c=e.memoizedState;c!==null&&(s=c.retryLane);break;case 19:l=e.stateNode;break;default:throw Error(i(314))}l!==null&&l.delete(n),Xd(e,s)}var Jd;Jd=function(e,n,s){if(e!==null)if(e.memoizedProps!==n.pendingProps||St.current)bt=!0;else{if((e.lanes&s)===0&&(n.flags&128)===0)return bt=!1,im(e,n,s);bt=(e.flags&131072)!==0}else bt=!1,Ge&&(n.flags&1048576)!==0&&Pu(n,ci,n.index);switch(n.lanes=0,n.tag){case 2:var l=n.type;Ci(e,n),e=n.pendingProps;var c=Jr(n,ht.current);ss(n,s),c=ya(null,n,l,e,c,s);var u=xa();return n.flags|=1,typeof c=="object"&&c!==null&&typeof c.render=="function"&&c.$$typeof===void 0?(n.tag=1,n.memoizedState=null,n.updateQueue=null,Ct(l)?(u=!0,ii(n)):u=!1,n.memoizedState=c.state!==null&&c.state!==void 0?c.state:null,da(n),c.updater=ji,n.stateNode=c,c._reactInternals=n,ba(n,l,e,s),n=Ea(null,n,l,!0,u,s)):(n.tag=0,Ge&&u&&ta(n),xt(null,n,c,s),n=n.child),n;case 16:l=n.elementType;e:{switch(Ci(e,n),e=n.pendingProps,c=l._init,l=c(l._payload),n.type=l,c=n.tag=km(l),e=Zt(l,e),c){case 0:n=_a(null,n,l,e,s);break e;case 1:n=Cd(null,n,l,e,s);break e;case 11:n=xd(null,n,l,e,s);break e;case 14:n=wd(null,n,l,Zt(l.type,e),s);break e}throw Error(i(306,l,""))}return n;case 0:return l=n.type,c=n.pendingProps,c=n.elementType===l?c:Zt(l,c),_a(e,n,l,c,s);case 1:return l=n.type,c=n.pendingProps,c=n.elementType===l?c:Zt(l,c),Cd(e,n,l,c,s);case 3:e:{if(bd(n),e===null)throw Error(i(387));l=n.pendingProps,u=n.memoizedState,c=u.element,Wu(e,n),mi(n,l,null,s);var h=n.memoizedState;if(l=h.element,u.isDehydrated)if(u={element:l,isDehydrated:!1,cache:h.cache,pendingSuspenseBoundaries:h.pendingSuspenseBoundaries,transitions:h.transitions},n.updateQueue.baseState=u,n.memoizedState=u,n.flags&256){c=is(Error(i(423)),n),n=Id(e,n,l,s,c);break e}else if(l!==c){c=is(Error(i(424)),n),n=Id(e,n,l,s,c);break e}else for(Lt=Vn(n.stateNode.containerInfo.firstChild),Mt=n,Ge=!0,Jt=null,s=Du(n,null,l,s),n.child=s;s;)s.flags=s.flags&-3|4096,s=s.sibling;else{if(ts(),l===c){n=bn(e,n,s);break e}xt(e,n,l,s)}n=n.child}return n;case 5:return qu(n),e===null&&sa(n),l=n.type,c=n.pendingProps,u=e!==null?e.memoizedProps:null,h=c.children,Ql(l,c)?h=null:u!==null&&Ql(l,u)&&(n.flags|=32),Sd(e,n),xt(e,n,h,s),n.child;case 6:return e===null&&sa(n),null;case 13:return Nd(e,n,s);case 4:return fa(n,n.stateNode.containerInfo),l=n.pendingProps,e===null?n.child=ns(n,null,l,s):xt(e,n,l,s),n.child;case 11:return l=n.type,c=n.pendingProps,c=n.elementType===l?c:Zt(l,c),xd(e,n,l,c,s);case 7:return xt(e,n,n.pendingProps,s),n.child;case 8:return xt(e,n,n.pendingProps.children,s),n.child;case 12:return xt(e,n,n.pendingProps.children,s),n.child;case 10:e:{if(l=n.type._context,c=n.pendingProps,u=n.memoizedProps,h=c.value,Be(fi,l._currentValue),l._currentValue=h,u!==null)if(Xt(u.value,h)){if(u.children===c.children&&!St.current){n=bn(e,n,s);break e}}else for(u=n.child,u!==null&&(u.return=n);u!==null;){var w=u.dependencies;if(w!==null){h=u.child;for(var S=w.firstContext;S!==null;){if(S.context===l){if(u.tag===1){S=Cn(-1,s&-s),S.tag=2;var O=u.updateQueue;if(O!==null){O=O.shared;var V=O.pending;V===null?S.next=S:(S.next=V.next,V.next=S),O.pending=S}}u.lanes|=s,S=u.alternate,S!==null&&(S.lanes|=s),ca(u.return,s,n),w.lanes|=s;break}S=S.next}}else if(u.tag===10)h=u.type===n.type?null:u.child;else if(u.tag===18){if(h=u.return,h===null)throw Error(i(341));h.lanes|=s,w=h.alternate,w!==null&&(w.lanes|=s),ca(h,s,n),h=u.sibling}else h=u.child;if(h!==null)h.return=u;else for(h=u;h!==null;){if(h===n){h=null;break}if(u=h.sibling,u!==null){u.return=h.return,h=u;break}h=h.return}u=h}xt(e,n,c.children,s),n=n.child}return n;case 9:return c=n.type,l=n.pendingProps.children,ss(n,s),c=Bt(c),l=l(c),n.flags|=1,xt(e,n,l,s),n.child;case 14:return l=n.type,c=Zt(l,n.pendingProps),c=Zt(l.type,c),wd(e,n,l,c,s);case 15:return kd(e,n,n.type,n.pendingProps,s);case 17:return l=n.type,c=n.pendingProps,c=n.elementType===l?c:Zt(l,c),Ci(e,n),n.tag=1,Ct(l)?(e=!0,ii(n)):e=!1,ss(n,s),fd(n,l,c),ba(n,l,c,s),Ea(null,n,l,!0,e,s);case 19:return Ed(e,n,s);case 22:return jd(e,n,s)}throw Error(i(156,n.tag))};function Zd(e,n){return Mo(e,n)}function wm(e,n,s,l){this.tag=e,this.key=s,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=l,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ht(e,n,s,l){return new wm(e,n,s,l)}function Qa(e){return e=e.prototype,!(!e||!e.isReactComponent)}function km(e){if(typeof e=="function")return Qa(e)?1:0;if(e!=null){if(e=e.$$typeof,e===ye)return 11;if(e===D)return 14}return 2}function rr(e,n){var s=e.alternate;return s===null?(s=Ht(e.tag,n,e.key,e.mode),s.elementType=e.elementType,s.type=e.type,s.stateNode=e.stateNode,s.alternate=e,e.alternate=s):(s.pendingProps=n,s.type=e.type,s.flags=0,s.subtreeFlags=0,s.deletions=null),s.flags=e.flags&14680064,s.childLanes=e.childLanes,s.lanes=e.lanes,s.child=e.child,s.memoizedProps=e.memoizedProps,s.memoizedState=e.memoizedState,s.updateQueue=e.updateQueue,n=e.dependencies,s.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},s.sibling=e.sibling,s.index=e.index,s.ref=e.ref,s}function Li(e,n,s,l,c,u){var h=2;if(l=e,typeof e=="function")Qa(e)&&(h=1);else if(typeof e=="string")h=5;else e:switch(e){case F:return Ir(s.children,c,u,n);case ge:h=8,c|=8;break;case Ie:return e=Ht(12,s,n,c|2),e.elementType=Ie,e.lanes=u,e;case J:return e=Ht(13,s,n,c),e.elementType=J,e.lanes=u,e;case Se:return e=Ht(19,s,n,c),e.elementType=Se,e.lanes=u,e;case W:return Ai(s,c,u,n);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case we:h=10;break e;case te:h=9;break e;case ye:h=11;break e;case D:h=14;break e;case ce:h=16,l=null;break e}throw Error(i(130,e==null?e:typeof e,""))}return n=Ht(h,s,n,c),n.elementType=e,n.type=l,n.lanes=u,n}function Ir(e,n,s,l){return e=Ht(7,e,l,n),e.lanes=s,e}function Ai(e,n,s,l){return e=Ht(22,e,l,n),e.elementType=W,e.lanes=s,e.stateNode={isHidden:!1},e}function Ya(e,n,s){return e=Ht(6,e,null,n),e.lanes=s,e}function Xa(e,n,s){return n=Ht(4,e.children!==null?e.children:[],e.key,n),n.lanes=s,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function jm(e,n,s,l,c){this.tag=n,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ze(0),this.expirationTimes=ze(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ze(0),this.identifierPrefix=l,this.onRecoverableError=c,this.mutableSourceEagerHydrationData=null}function Ja(e,n,s,l,c,u,h,w,S){return e=new jm(e,n,s,w,S),n===1?(n=1,u===!0&&(n|=8)):n=0,u=Ht(3,null,null,n),e.current=u,u.stateNode=e,u.memoizedState={element:l,isDehydrated:s,cache:null,transitions:null,pendingSuspenseBoundaries:null},da(u),e}function Sm(e,n,s){var l=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:A,key:l==null?null:""+l,children:e,containerInfo:n,implementation:s}}function ef(e){if(!e)return Gn;e=e._reactInternals;e:{if(yn(e)!==e||e.tag!==1)throw Error(i(170));var n=e;do{switch(n.tag){case 3:n=n.stateNode.context;break e;case 1:if(Ct(n.type)){n=n.stateNode.__reactInternalMemoizedMergedChildContext;break e}}n=n.return}while(n!==null);throw Error(i(171))}if(e.tag===1){var s=e.type;if(Ct(s))return _u(e,s,n)}return n}function tf(e,n,s,l,c,u,h,w,S){return e=Ja(s,l,!0,e,c,u,h,w,S),e.context=ef(null),s=e.current,l=wt(),c=tr(s),u=Cn(l,c),u.callback=n??null,Xn(s,u,c),e.current.lanes=c,Ae(e,c,l),Nt(e,l),e}function $i(e,n,s,l){var c=n.current,u=wt(),h=tr(c);return s=ef(s),n.context===null?n.context=s:n.pendingContext=s,n=Cn(u,h),n.payload={element:e},l=l===void 0?null:l,l!==null&&(n.callback=l),e=Xn(c,n,h),e!==null&&(nn(e,c,h,u),hi(e,c,h)),h}function Di(e){return e=e.current,e.child?(e.child.tag===5,e.child.stateNode):null}function nf(e,n){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var s=e.retryLane;e.retryLane=s!==0&&s<n?s:n}}function Za(e,n){nf(e,n),(e=e.alternate)&&nf(e,n)}function Cm(){return null}var rf=typeof reportError=="function"?reportError:function(e){console.error(e)};function ec(e){this._internalRoot=e}zi.prototype.render=ec.prototype.render=function(e){var n=this._internalRoot;if(n===null)throw Error(i(409));$i(e,n,null,null)},zi.prototype.unmount=ec.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var n=e.containerInfo;Sr(function(){$i(null,e,null,null)}),n[xn]=null}};function zi(e){this._internalRoot=e}zi.prototype.unstable_scheduleHydration=function(e){if(e){var n=Ts();e={blockedOn:null,target:e,priority:n};for(var s=0;s<qn.length&&n!==0&&n<qn[s].priority;s++);qn.splice(s,0,e),s===0&&qc(e)}};function tc(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function Wi(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function sf(){}function bm(e,n,s,l,c){if(c){if(typeof l=="function"){var u=l;l=function(){var O=Di(h);u.call(O)}}var h=tf(n,l,e,0,null,!1,!1,"",sf);return e._reactRootContainer=h,e[xn]=h.current,Ks(e.nodeType===8?e.parentNode:e),Sr(),h}for(;c=e.lastChild;)e.removeChild(c);if(typeof l=="function"){var w=l;l=function(){var O=Di(S);w.call(O)}}var S=Ja(e,0,!1,null,null,!1,!1,"",sf);return e._reactRootContainer=S,e[xn]=S.current,Ks(e.nodeType===8?e.parentNode:e),Sr(function(){$i(n,S,s,l)}),S}function Fi(e,n,s,l,c){var u=s._reactRootContainer;if(u){var h=u;if(typeof c=="function"){var w=c;c=function(){var S=Di(h);w.call(S)}}$i(n,h,e,c)}else h=bm(s,n,e,c,l);return Di(h)}Bo=function(e){switch(e.tag){case 3:var n=e.stateNode;if(n.current.memoizedState.isDehydrated){var s=y(n.pendingLanes);s!==0&&(Fr(n,s|1),Nt(n,Qe()),($e&6)===0&&(cs=Qe()+500,Qn()))}break;case 13:Sr(function(){var l=Sn(e,1);if(l!==null){var c=wt();nn(l,e,1,c)}}),Za(e,1)}},Ps=function(e){if(e.tag===13){var n=Sn(e,134217728);if(n!==null){var s=wt();nn(n,e,134217728,s)}Za(e,134217728)}},zt=function(e){if(e.tag===13){var n=tr(e),s=Sn(e,n);if(s!==null){var l=wt();nn(s,e,n,l)}Za(e,n)}},Ts=function(){return Le},Os=function(e,n){var s=Le;try{return Le=e,n()}finally{Le=s}},Lr=function(e,n,s){switch(n){case"input":if(q(e,s),n=s.name,s.type==="radio"&&n!=null){for(s=e;s.parentNode;)s=s.parentNode;for(s=s.querySelectorAll("input[name="+JSON.stringify(""+n)+'][type="radio"]'),n=0;n<s.length;n++){var l=s[n];if(l!==e&&l.form===e.form){var c=si(l);if(!c)throw Error(i(90));tt(l),q(l,c)}}}break;case"textarea":cr(e,s);break;case"select":n=s.value,n!=null&&kt(e,!!s.multiple,n,!1)}},bs=Va,Is=Sr;var Im={usingClientEntryPoint:!1,Events:[Ys,Yr,si,Ss,Cs,Va]},uo={findFiberByHostInstance:mr,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},Nm={bundleType:uo.bundleType,version:uo.version,rendererPackageName:uo.rendererPackageName,rendererConfig:uo.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ie.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=To(e),e===null?null:e.stateNode},findFiberByHostInstance:uo.findFiberByHostInstance||Cm,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Bi=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Bi.isDisabled&&Bi.supportsFiber)try{pr=Bi.inject(Nm),Tt=Bi}catch{}}return _t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Im,_t.createPortal=function(e,n){var s=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!tc(n))throw Error(i(200));return Sm(e,n,null,s)},_t.createRoot=function(e,n){if(!tc(e))throw Error(i(299));var s=!1,l="",c=rf;return n!=null&&(n.unstable_strictMode===!0&&(s=!0),n.identifierPrefix!==void 0&&(l=n.identifierPrefix),n.onRecoverableError!==void 0&&(c=n.onRecoverableError)),n=Ja(e,1,!1,null,null,s,!1,l,c),e[xn]=n.current,Ks(e.nodeType===8?e.parentNode:e),new ec(n)},_t.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var n=e._reactInternals;if(n===void 0)throw typeof e.render=="function"?Error(i(188)):(e=Object.keys(e).join(","),Error(i(268,e)));return e=To(n),e=e===null?null:e.stateNode,e},_t.flushSync=function(e){return Sr(e)},_t.hydrate=function(e,n,s){if(!Wi(n))throw Error(i(200));return Fi(null,e,n,!0,s)},_t.hydrateRoot=function(e,n,s){if(!tc(e))throw Error(i(405));var l=s!=null&&s.hydratedSources||null,c=!1,u="",h=rf;if(s!=null&&(s.unstable_strictMode===!0&&(c=!0),s.identifierPrefix!==void 0&&(u=s.identifierPrefix),s.onRecoverableError!==void 0&&(h=s.onRecoverableError)),n=tf(n,null,e,1,s??null,c,!1,u,h),e[xn]=n.current,Ks(e),l)for(e=0;e<l.length;e++)s=l[e],c=s._getVersion,c=c(s._source),n.mutableSourceEagerHydrationData==null?n.mutableSourceEagerHydrationData=[s,c]:n.mutableSourceEagerHydrationData.push(s,c);return new zi(n)},_t.render=function(e,n,s){if(!Wi(n))throw Error(i(200));return Fi(null,e,n,!1,s)},_t.unmountComponentAtNode=function(e){if(!Wi(e))throw Error(i(40));return e._reactRootContainer?(Sr(function(){Fi(null,null,e,!1,function(){e._reactRootContainer=null,e[xn]=null})}),!0):!1},_t.unstable_batchedUpdates=Va,_t.unstable_renderSubtreeIntoContainer=function(e,n,s,l){if(!Wi(s))throw Error(i(200));if(e==null||e._reactInternals===void 0)throw Error(i(38));return Fi(e,n,s,!1,l)},_t.version="18.3.1-next-f1338f8080-20240426",_t}var pf;function Dm(){if(pf)return sc.exports;pf=1;function t(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(r){console.error(r)}}return t(),sc.exports=$m(),sc.exports}var hf;function zm(){if(hf)return qi;hf=1;var t=Dm();return qi.createRoot=t.createRoot,qi.hydrateRoot=t.hydrateRoot,qi}var Wm=zm();const Fm=ap(Wm),cp={boot:"loading",bootstrap:null,foregroundRestore:null,bootstrapEventCursor:null,connection:"connecting",connectionAttempt:0,lastCursor:0,lastEventId:null,contextRevision:"",workspaceId:"",workspace:"",workspaces:[],sessions:[],workspaceSessions:{},archivedSessions:{status:"idle",items:[],nextCursor:null,ownerWorkspaceId:""},workspaceProjectSummaries:{},workspaceResourceEpochs:{},workspaceNextCursor:null,sessionNextCursor:null,activeSessionId:null,sessionSync:{},clientTelemetry:{sessionSwitches:0,snapshotCacheHits:0,snapshotLoads:0,snapshotFailures:0},sessionProjectionById:{},sessionViewsById:{},sessionRuntimeById:{},transcript:[],tools:[],edits:[],subtasks:[],research:[],permission:null,processing:!1,statusMessage:"正在连接本地 Web Host…",mode:{baseMode:"interactive",pendingBaseMode:null},effort:null,queue:{items:[],limit:16},goal:null,goalEvidence:[],goalActivity:[],diagnostics:null,settings:null,settingsMirror:{status:"idle",document:null,lastGood:null,stale:!1,error:null,generation:0},sessionSnapshot:null,composer:null,modelCatalog:null,plan:null,skills:[],mcpServers:[],toolDetails:[],skillNextCursor:null,mcpNextCursor:null,toolDetailNextCursor:null,loopStats:null,traces:[],pendingAction:null,navigationTarget:null,pendingSessionActions:{},sessionCreationPending:!1,sessionCreationSelected:!1,notice:null,announcement:""};function ks(t){return vo(t,t.activeSessionId)}function vo(t,r){return!!(t.pendingAction||r&&Object.keys(t.pendingSessionActions[r]??{}).length)}function hc(t,r){const i=t.sessionProjectionById[r],a=t.sessionSync[r];return!!(t.connection==="live"&&i&&i.composer.workspaceId===t.workspaceId&&i.composer.contextRevision===t.contextRevision&&a?.status==="ready"&&!a.dirty)}const mf=Object.freeze({status:"idle",requestId:null});function wo(t){return t.activeSessionId?t.sessionSync[t.activeSessionId]??mf:mf}function ir(t){return!!(!t.sessionCreationSelected&&t.activeSessionId&&t.sessionSnapshot?.session.id===t.activeSessionId&&wo(t).status==="ready"&&!wo(t).dirty)}function Q({name:t,size:r=18,...i}){return o.jsx("svg",{"aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24",width:r,height:r,fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",...i,children:Bm[t]})}const Bm={activity:o.jsx("path",{d:"M3 12h4l2.2-6 4.2 12 2.2-6H21"}),add:o.jsx("path",{d:"M12 5v14M5 12h14"}),"arrow-up":o.jsx("path",{d:"m6 11 6-6 6 6M12 5v14"}),branch:o.jsxs(o.Fragment,{children:[o.jsx("circle",{cx:"6",cy:"5",r:"2"}),o.jsx("circle",{cx:"18",cy:"7",r:"2"}),o.jsx("circle",{cx:"6",cy:"19",r:"2"}),o.jsx("path",{d:"M6 7v10M8 12h4a6 6 0 0 0 6-3"})]}),check:o.jsx("path",{d:"m5 12 4 4L19 6"}),chevron:o.jsx("path",{d:"m9 7 5 5-5 5"}),close:o.jsx("path",{d:"m6 6 12 12M18 6 6 18"}),code:o.jsx("path",{d:"m8 9-4 3 4 3M16 9l4 3-4 3M14 5l-4 14"}),copy:o.jsxs(o.Fragment,{children:[o.jsx("rect",{x:"8",y:"8",width:"11",height:"11",rx:"2"}),o.jsx("path",{d:"M16 8V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h2"})]}),diagnostics:o.jsxs(o.Fragment,{children:[o.jsx("path",{d:"M4 19V9M10 19V5M16 19v-7M22 19V3"}),o.jsx("path",{d:"M2 19h21"})]}),edit:o.jsxs(o.Fragment,{children:[o.jsx("path",{d:"M12 20h9"}),o.jsx("path",{d:"M16.5 3.5a2.1 2.1 0 0 1 3 3L8 18l-4 1 1-4Z"})]}),goal:o.jsxs(o.Fragment,{children:[o.jsx("circle",{cx:"12",cy:"12",r:"8"}),o.jsx("circle",{cx:"12",cy:"12",r:"3"}),o.jsx("path",{d:"m15 9 5-5M17 4h3v3"})]}),info:o.jsxs(o.Fragment,{children:[o.jsx("circle",{cx:"12",cy:"12",r:"9"}),o.jsx("path",{d:"M12 11v5M12 8h.01"})]}),keyboard:o.jsxs(o.Fragment,{children:[o.jsx("rect",{x:"2",y:"6",width:"20",height:"12",rx:"2"}),o.jsx("path",{d:"M6 10h.01M10 10h.01M14 10h.01M18 10h.01M6 14h.01M18 14h.01M9.5 14.5h5"})]}),menu:o.jsx("path",{d:"M4 7h16M4 12h16M4 17h16"}),monitor:o.jsxs(o.Fragment,{children:[o.jsx("rect",{x:"2",y:"3",width:"20",height:"14",rx:"2"}),o.jsx("path",{d:"M8 21h8M12 17v4"})]}),moon:o.jsx("path",{d:"M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z"}),more:o.jsxs(o.Fragment,{children:[o.jsx("circle",{cx:"5",cy:"12",r:"1",fill:"currentColor",stroke:"none"}),o.jsx("circle",{cx:"12",cy:"12",r:"1",fill:"currentColor",stroke:"none"}),o.jsx("circle",{cx:"19",cy:"12",r:"1",fill:"currentColor",stroke:"none"})]}),pause:o.jsx("path",{d:"M9 5v14M15 5v14"}),refresh:o.jsx("path",{d:"M20 7v5h-5M4 17v-5h5M6.1 9A7 7 0 0 1 18 6l2 6M17.9 15A7 7 0 0 1 6 18l-2-6"}),search:o.jsxs(o.Fragment,{children:[o.jsx("circle",{cx:"11",cy:"11",r:"7"}),o.jsx("path",{d:"m20 20-4-4"})]}),settings:o.jsxs(o.Fragment,{children:[o.jsx("circle",{cx:"12",cy:"12",r:"3"}),o.jsx("path",{d:"M19.4 15a1.7 1.7 0 0 0 .3 1.9l.1.1-2.8 2.8-.1-.1a1.7 1.7 0 0 0-1.9-.3 1.7 1.7 0 0 0-1 1.6v.2h-4V21a1.7 1.7 0 0 0-1-1.6 1.7 1.7 0 0 0-1.9.3l-.1.1L4.2 17l.1-.1a1.7 1.7 0 0 0 .3-1.9A1.7 1.7 0 0 0 3 14H2.8v-4H3a1.7 1.7 0 0 0 1.6-1 1.7 1.7 0 0 0-.3-1.9L4.2 7 7 4.2l.1.1A1.7 1.7 0 0 0 9 4.6a1.7 1.7 0 0 0 1-1.6v-.2h4V3a1.7 1.7 0 0 0 1 1.6 1.7 1.7 0 0 0 1.9-.3l.1-.1L19.8 7l-.1.1a1.7 1.7 0 0 0-.3 1.9 1.7 1.7 0 0 0 1.6 1h.2v4H21a1.7 1.7 0 0 0-1.6 1Z"})]}),sidebar:o.jsxs(o.Fragment,{children:[o.jsx("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),o.jsx("path",{d:"M9 4v16"})]}),spark:o.jsx("path",{d:"m12 3 1.5 5.5L19 10l-5.5 1.5L12 17l-1.5-5.5L5 10l5.5-1.5ZM19 16l.7 2.3L22 19l-2.3.7L19 22l-.7-2.3L16 19l2.3-.7Z"}),stop:o.jsx("rect",{x:"6",y:"6",width:"12",height:"12",rx:"2"}),sun:o.jsxs(o.Fragment,{children:[o.jsx("circle",{cx:"12",cy:"12",r:"4"}),o.jsx("path",{d:"M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4"})]}),terminal:o.jsx("path",{d:"m5 7 4 4-4 4M11 16h8"}),trash:o.jsx(o.Fragment,{children:o.jsx("path",{d:"M4 7h16M9 7V4h6v3M7 7l1 13h8l1-13M10 11v5M14 11v5"})}),warning:o.jsxs(o.Fragment,{children:[o.jsx("path",{d:"M12 3 2.5 20h19Z"}),o.jsx("path",{d:"M12 9v4M12 17h.01"})]}),workspace:o.jsxs(o.Fragment,{children:[o.jsx("path",{d:"M3 7h7l2 2h9v10H3Z"}),o.jsx("path",{d:"M3 7V5h7l2 2"})]}),"chevron-left":o.jsx("path",{d:"m15 7-5 5 5 5"})};function ko({children:t,className:r=""}){return o.jsx("div",{className:`markdown ${r}`.trim(),children:up(t)})}function up(t){const r=t.replace(/\r\n?/g,`
9
+ `+u.stack}return{value:e,source:n,stack:c,digest:null}}function Ia(e,n,s){return{value:e,source:null,stack:s??null,digest:n??null}}function Na(e,n){try{console.error(n.value)}catch(s){setTimeout(function(){throw s})}}var rm=typeof WeakMap=="function"?WeakMap:Map;function hd(e,n,s){s=Cn(-1,s),s.tag=3,s.payload={element:null};var l=n.value;return s.callback=function(){Ei||(Ei=!0,Ba=l),Na(e,n)},s}function md(e,n,s){s=Cn(-1,s),s.tag=3;var l=e.type.getDerivedStateFromError;if(typeof l=="function"){var c=n.value;s.payload=function(){return l(c)},s.callback=function(){Na(e,n)}}var u=e.stateNode;return u!==null&&typeof u.componentDidCatch=="function"&&(s.callback=function(){Na(e,n),typeof l!="function"&&(Zn===null?Zn=new Set([this]):Zn.add(this));var h=n.stack;this.componentDidCatch(n.value,{componentStack:h!==null?h:""})}),s}function gd(e,n,s){var l=e.pingCache;if(l===null){l=e.pingCache=new rm;var c=new Set;l.set(n,c)}else c=l.get(n),c===void 0&&(c=new Set,l.set(n,c));c.has(s)||(c.add(s),e=vm.bind(null,e,n,s),n.then(e,e))}function vd(e){do{var n;if((n=e.tag===13)&&(n=e.memoizedState,n=n!==null?n.dehydrated!==null:!0),n)return e;e=e.return}while(e!==null);return null}function yd(e,n,s,l,c){return(e.mode&1)===0?(e===n?e.flags|=65536:(e.flags|=128,s.flags|=131072,s.flags&=-52805,s.tag===1&&(s.alternate===null?s.tag=17:(n=Cn(-1,1),n.tag=2,Xn(s,n,1))),s.lanes|=1),e):(e.flags|=65536,e.lanes=c,e)}var sm=ie.ReactCurrentOwner,bt=!1;function xt(e,n,s,l){n.child=e===null?Du(n,null,s,l):ns(n,e.child,s,l)}function xd(e,n,s,l,c){s=s.render;var u=n.ref;return ss(n,c),l=ya(e,n,s,l,u,c),s=xa(),e!==null&&!bt?(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~c,bn(e,n,c)):(Ge&&s&&ta(n),n.flags|=1,xt(e,n,l,c),n.child)}function wd(e,n,s,l,c){if(e===null){var u=s.type;return typeof u=="function"&&!Qa(u)&&u.defaultProps===void 0&&s.compare===null&&s.defaultProps===void 0?(n.tag=15,n.type=u,kd(e,n,u,l,c)):(e=Ai(s.type,null,l,n,n.mode,c),e.ref=n.ref,e.return=n,n.child=e)}if(u=e.child,(e.lanes&c)===0){var h=u.memoizedProps;if(s=s.compare,s=s!==null?s:Us,s(h,l)&&e.ref===n.ref)return bn(e,n,c)}return n.flags|=1,e=rr(u,l),e.ref=n.ref,e.return=n,n.child=e}function kd(e,n,s,l,c){if(e!==null){var u=e.memoizedProps;if(Us(u,l)&&e.ref===n.ref)if(bt=!1,n.pendingProps=l=u,(e.lanes&c)!==0)(e.flags&131072)!==0&&(bt=!0);else return n.lanes=e.lanes,bn(e,n,c)}return _a(e,n,s,l,c)}function jd(e,n,s){var l=n.pendingProps,c=l.children,u=e!==null?e.memoizedState:null;if(l.mode==="hidden")if((n.mode&1)===0)n.memoizedState={baseLanes:0,cachePool:null,transitions:null},Be(as,Lt),Lt|=s;else{if((s&1073741824)===0)return e=u!==null?u.baseLanes|s:s,n.lanes=n.childLanes=1073741824,n.memoizedState={baseLanes:e,cachePool:null,transitions:null},n.updateQueue=null,Be(as,Lt),Lt|=e,null;n.memoizedState={baseLanes:0,cachePool:null,transitions:null},l=u!==null?u.baseLanes:s,Be(as,Lt),Lt|=l}else u!==null?(l=u.baseLanes|s,n.memoizedState=null):l=s,Be(as,Lt),Lt|=l;return xt(e,n,c,s),n.child}function Sd(e,n){var s=n.ref;(e===null&&s!==null||e!==null&&e.ref!==s)&&(n.flags|=512,n.flags|=2097152)}function _a(e,n,s,l,c){var u=Ct(s)?gr:ht.current;return u=Jr(n,u),ss(n,c),s=ya(e,n,s,l,u,c),l=xa(),e!==null&&!bt?(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~c,bn(e,n,c)):(Ge&&l&&ta(n),n.flags|=1,xt(e,n,s,c),n.child)}function Cd(e,n,s,l,c){if(Ct(s)){var u=!0;ii(n)}else u=!1;if(ss(n,c),n.stateNode===null)Ci(e,n),fd(n,s,l),ba(n,s,l,c),l=!0;else if(e===null){var h=n.stateNode,w=n.memoizedProps;h.props=w;var S=h.context,O=s.contextType;typeof O=="object"&&O!==null?O=Bt(O):(O=Ct(s)?gr:ht.current,O=Jr(n,O));var V=s.getDerivedStateFromProps,K=typeof V=="function"||typeof h.getSnapshotBeforeUpdate=="function";K||typeof h.UNSAFE_componentWillReceiveProps!="function"&&typeof h.componentWillReceiveProps!="function"||(w!==l||S!==O)&&pd(n,h,l,O),Yn=!1;var H=n.memoizedState;h.state=H,mi(n,l,h,c),S=n.memoizedState,w!==l||H!==S||St.current||Yn?(typeof V=="function"&&(Ca(n,s,V,l),S=n.memoizedState),(w=Yn||dd(n,s,w,l,H,S,O))?(K||typeof h.UNSAFE_componentWillMount!="function"&&typeof h.componentWillMount!="function"||(typeof h.componentWillMount=="function"&&h.componentWillMount(),typeof h.UNSAFE_componentWillMount=="function"&&h.UNSAFE_componentWillMount()),typeof h.componentDidMount=="function"&&(n.flags|=4194308)):(typeof h.componentDidMount=="function"&&(n.flags|=4194308),n.memoizedProps=l,n.memoizedState=S),h.props=l,h.state=S,h.context=O,l=w):(typeof h.componentDidMount=="function"&&(n.flags|=4194308),l=!1)}else{h=n.stateNode,Wu(e,n),w=n.memoizedProps,O=n.type===n.elementType?w:Zt(n.type,w),h.props=O,K=n.pendingProps,H=h.context,S=s.contextType,typeof S=="object"&&S!==null?S=Bt(S):(S=Ct(s)?gr:ht.current,S=Jr(n,S));var ae=s.getDerivedStateFromProps;(V=typeof ae=="function"||typeof h.getSnapshotBeforeUpdate=="function")||typeof h.UNSAFE_componentWillReceiveProps!="function"&&typeof h.componentWillReceiveProps!="function"||(w!==K||H!==S)&&pd(n,h,l,S),Yn=!1,H=n.memoizedState,h.state=H,mi(n,l,h,c);var pe=n.memoizedState;w!==K||H!==pe||St.current||Yn?(typeof ae=="function"&&(Ca(n,s,ae,l),pe=n.memoizedState),(O=Yn||dd(n,s,O,l,H,pe,S)||!1)?(V||typeof h.UNSAFE_componentWillUpdate!="function"&&typeof h.componentWillUpdate!="function"||(typeof h.componentWillUpdate=="function"&&h.componentWillUpdate(l,pe,S),typeof h.UNSAFE_componentWillUpdate=="function"&&h.UNSAFE_componentWillUpdate(l,pe,S)),typeof h.componentDidUpdate=="function"&&(n.flags|=4),typeof h.getSnapshotBeforeUpdate=="function"&&(n.flags|=1024)):(typeof h.componentDidUpdate!="function"||w===e.memoizedProps&&H===e.memoizedState||(n.flags|=4),typeof h.getSnapshotBeforeUpdate!="function"||w===e.memoizedProps&&H===e.memoizedState||(n.flags|=1024),n.memoizedProps=l,n.memoizedState=pe),h.props=l,h.state=pe,h.context=S,l=O):(typeof h.componentDidUpdate!="function"||w===e.memoizedProps&&H===e.memoizedState||(n.flags|=4),typeof h.getSnapshotBeforeUpdate!="function"||w===e.memoizedProps&&H===e.memoizedState||(n.flags|=1024),l=!1)}return Ea(e,n,s,l,u,c)}function Ea(e,n,s,l,c,u){Sd(e,n);var h=(n.flags&128)!==0;if(!l&&!h)return c&&Eu(n,s,!1),bn(e,n,u);l=n.stateNode,sm.current=n;var w=h&&typeof s.getDerivedStateFromError!="function"?null:l.render();return n.flags|=1,e!==null&&h?(n.child=ns(n,e.child,null,u),n.child=ns(n,null,w,u)):xt(e,n,w,u),n.memoizedState=l.state,c&&Eu(n,s,!0),n.child}function bd(e){var n=e.stateNode;n.pendingContext?Nu(e,n.pendingContext,n.pendingContext!==n.context):n.context&&Nu(e,n.context,!1),fa(e,n.containerInfo)}function Id(e,n,s,l,c){return ts(),oa(c),n.flags|=256,xt(e,n,s,l),n.child}var Ra={dehydrated:null,treeContext:null,retryLane:0};function Pa(e){return{baseLanes:e,cachePool:null,transitions:null}}function Nd(e,n,s){var l=n.pendingProps,c=Ye.current,u=!1,h=(n.flags&128)!==0,w;if((w=h)||(w=e!==null&&e.memoizedState===null?!1:(c&2)!==0),w?(u=!0,n.flags&=-129):(e===null||e.memoizedState!==null)&&(c|=1),Be(Ye,c&1),e===null)return sa(n),e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?((n.mode&1)===0?n.lanes=1:e.data==="$!"?n.lanes=8:n.lanes=1073741824,null):(h=l.children,e=l.fallback,u?(l=n.mode,u=n.child,h={mode:"hidden",children:h},(l&1)===0&&u!==null?(u.childLanes=0,u.pendingProps=h):u=Li(h,l,0,null),e=Ir(e,l,s,null),u.return=n,e.return=n,u.sibling=e,n.child=u,n.child.memoizedState=Pa(s),n.memoizedState=Ra,e):Ta(n,h));if(c=e.memoizedState,c!==null&&(w=c.dehydrated,w!==null))return om(e,n,h,l,w,c,s);if(u){u=l.fallback,h=n.mode,c=e.child,w=c.sibling;var S={mode:"hidden",children:l.children};return(h&1)===0&&n.child!==c?(l=n.child,l.childLanes=0,l.pendingProps=S,n.deletions=null):(l=rr(c,S),l.subtreeFlags=c.subtreeFlags&14680064),w!==null?u=rr(w,u):(u=Ir(u,h,s,null),u.flags|=2),u.return=n,l.return=n,l.sibling=u,n.child=l,l=u,u=n.child,h=e.child.memoizedState,h=h===null?Pa(s):{baseLanes:h.baseLanes|s,cachePool:null,transitions:h.transitions},u.memoizedState=h,u.childLanes=e.childLanes&~s,n.memoizedState=Ra,l}return u=e.child,e=u.sibling,l=rr(u,{mode:"visible",children:l.children}),(n.mode&1)===0&&(l.lanes=s),l.return=n,l.sibling=null,e!==null&&(s=n.deletions,s===null?(n.deletions=[e],n.flags|=16):s.push(e)),n.child=l,n.memoizedState=null,l}function Ta(e,n){return n=Li({mode:"visible",children:n},e.mode,0,null),n.return=e,e.child=n}function Si(e,n,s,l){return l!==null&&oa(l),ns(n,e.child,null,s),e=Ta(n,n.pendingProps.children),e.flags|=2,n.memoizedState=null,e}function om(e,n,s,l,c,u,h){if(s)return n.flags&256?(n.flags&=-257,l=Ia(Error(i(422))),Si(e,n,h,l)):n.memoizedState!==null?(n.child=e.child,n.flags|=128,null):(u=l.fallback,c=n.mode,l=Li({mode:"visible",children:l.children},c,0,null),u=Ir(u,c,h,null),u.flags|=2,l.return=n,u.return=n,l.sibling=u,n.child=l,(n.mode&1)!==0&&ns(n,e.child,null,h),n.child.memoizedState=Pa(h),n.memoizedState=Ra,u);if((n.mode&1)===0)return Si(e,n,h,null);if(c.data==="$!"){if(l=c.nextSibling&&c.nextSibling.dataset,l)var w=l.dgst;return l=w,u=Error(i(419)),l=Ia(u,l,void 0),Si(e,n,h,l)}if(w=(h&e.childLanes)!==0,bt||w){if(l=ct,l!==null){switch(h&-h){case 4:c=2;break;case 16:c=8;break;case 64: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:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:c=32;break;case 536870912:c=268435456;break;default:c=0}c=(c&(l.suspendedLanes|h))!==0?0:c,c!==0&&c!==u.retryLane&&(u.retryLane=c,Sn(e,c),nn(l,e,c,-1))}return Ga(),l=Ia(Error(i(421))),Si(e,n,h,l)}return c.data==="$?"?(n.flags|=128,n.child=e.child,n=ym.bind(null,e),c._reactRetry=n,null):(e=u.treeContext,At=Vn(c.nextSibling),Mt=n,Ge=!0,Jt=null,e!==null&&(Wt[Ft++]=kn,Wt[Ft++]=jn,Wt[Ft++]=vr,kn=e.id,jn=e.overflow,vr=n),n=Ta(n,l.children),n.flags|=4096,n)}function _d(e,n,s){e.lanes|=n;var l=e.alternate;l!==null&&(l.lanes|=n),ca(e.return,n,s)}function Oa(e,n,s,l,c){var u=e.memoizedState;u===null?e.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:l,tail:s,tailMode:c}:(u.isBackwards=n,u.rendering=null,u.renderingStartTime=0,u.last=l,u.tail=s,u.tailMode=c)}function Ed(e,n,s){var l=n.pendingProps,c=l.revealOrder,u=l.tail;if(xt(e,n,l.children,s),l=Ye.current,(l&2)!==0)l=l&1|2,n.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=n.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&_d(e,s,n);else if(e.tag===19)_d(e,s,n);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===n)break e;for(;e.sibling===null;){if(e.return===null||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}l&=1}if(Be(Ye,l),(n.mode&1)===0)n.memoizedState=null;else switch(c){case"forwards":for(s=n.child,c=null;s!==null;)e=s.alternate,e!==null&&gi(e)===null&&(c=s),s=s.sibling;s=c,s===null?(c=n.child,n.child=null):(c=s.sibling,s.sibling=null),Oa(n,!1,c,s,u);break;case"backwards":for(s=null,c=n.child,n.child=null;c!==null;){if(e=c.alternate,e!==null&&gi(e)===null){n.child=c;break}e=c.sibling,c.sibling=s,s=c,c=e}Oa(n,!0,s,null,u);break;case"together":Oa(n,!1,null,null,void 0);break;default:n.memoizedState=null}return n.child}function Ci(e,n){(n.mode&1)===0&&e!==null&&(e.alternate=null,n.alternate=null,n.flags|=2)}function bn(e,n,s){if(e!==null&&(n.dependencies=e.dependencies),jr|=n.lanes,(s&n.childLanes)===0)return null;if(e!==null&&n.child!==e.child)throw Error(i(153));if(n.child!==null){for(e=n.child,s=rr(e,e.pendingProps),n.child=s,s.return=n;e.sibling!==null;)e=e.sibling,s=s.sibling=rr(e,e.pendingProps),s.return=n;s.sibling=null}return n.child}function im(e,n,s){switch(n.tag){case 3:bd(n),ts();break;case 5:qu(n);break;case 1:Ct(n.type)&&ii(n);break;case 4:fa(n,n.stateNode.containerInfo);break;case 10:var l=n.type._context,c=n.memoizedProps.value;Be(fi,l._currentValue),l._currentValue=c;break;case 13:if(l=n.memoizedState,l!==null)return l.dehydrated!==null?(Be(Ye,Ye.current&1),n.flags|=128,null):(s&n.child.childLanes)!==0?Nd(e,n,s):(Be(Ye,Ye.current&1),e=bn(e,n,s),e!==null?e.sibling:null);Be(Ye,Ye.current&1);break;case 19:if(l=(s&n.childLanes)!==0,(e.flags&128)!==0){if(l)return Ed(e,n,s);n.flags|=128}if(c=n.memoizedState,c!==null&&(c.rendering=null,c.tail=null,c.lastEffect=null),Be(Ye,Ye.current),l)break;return null;case 22:case 23:return n.lanes=0,jd(e,n,s)}return bn(e,n,s)}var Rd,Ma,Pd,Td;Rd=function(e,n){for(var s=n.child;s!==null;){if(s.tag===5||s.tag===6)e.appendChild(s.stateNode);else if(s.tag!==4&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===n)break;for(;s.sibling===null;){if(s.return===null||s.return===n)return;s=s.return}s.sibling.return=s.return,s=s.sibling}},Ma=function(){},Pd=function(e,n,s,l){var c=e.memoizedProps;if(c!==l){e=n.stateNode,wr(fn.current);var u=null;switch(s){case"input":c=lt(e,c),l=lt(e,l),u=[];break;case"select":c=$({},c,{value:void 0}),l=$({},l,{value:void 0}),u=[];break;case"textarea":c=Mn(e,c),l=Mn(e,l),u=[];break;default:typeof c.onClick!="function"&&typeof l.onClick=="function"&&(e.onclick=ri)}cn(s,l);var h;s=null;for(O in c)if(!l.hasOwnProperty(O)&&c.hasOwnProperty(O)&&c[O]!=null)if(O==="style"){var w=c[O];for(h in w)w.hasOwnProperty(h)&&(s||(s={}),s[h]="")}else O!=="dangerouslySetInnerHTML"&&O!=="children"&&O!=="suppressContentEditableWarning"&&O!=="suppressHydrationWarning"&&O!=="autoFocus"&&(d.hasOwnProperty(O)?u||(u=[]):(u=u||[]).push(O,null));for(O in l){var S=l[O];if(w=c?.[O],l.hasOwnProperty(O)&&S!==w&&(S!=null||w!=null))if(O==="style")if(w){for(h in w)!w.hasOwnProperty(h)||S&&S.hasOwnProperty(h)||(s||(s={}),s[h]="");for(h in S)S.hasOwnProperty(h)&&w[h]!==S[h]&&(s||(s={}),s[h]=S[h])}else s||(u||(u=[]),u.push(O,s)),s=S;else O==="dangerouslySetInnerHTML"?(S=S?S.__html:void 0,w=w?w.__html:void 0,S!=null&&w!==S&&(u=u||[]).push(O,S)):O==="children"?typeof S!="string"&&typeof S!="number"||(u=u||[]).push(O,""+S):O!=="suppressContentEditableWarning"&&O!=="suppressHydrationWarning"&&(d.hasOwnProperty(O)?(S!=null&&O==="onScroll"&&He("scroll",e),u||w===S||(u=[])):(u=u||[]).push(O,S))}s&&(u=u||[]).push("style",s);var O=u;(n.updateQueue=O)&&(n.flags|=4)}},Td=function(e,n,s,l){s!==l&&(n.flags|=4)};function oo(e,n){if(!Ge)switch(e.tailMode){case"hidden":n=e.tail;for(var s=null;n!==null;)n.alternate!==null&&(s=n),n=n.sibling;s===null?e.tail=null:s.sibling=null;break;case"collapsed":s=e.tail;for(var l=null;s!==null;)s.alternate!==null&&(l=s),s=s.sibling;l===null?n||e.tail===null?e.tail=null:e.tail.sibling=null:l.sibling=null}}function gt(e){var n=e.alternate!==null&&e.alternate.child===e.child,s=0,l=0;if(n)for(var c=e.child;c!==null;)s|=c.lanes|c.childLanes,l|=c.subtreeFlags&14680064,l|=c.flags&14680064,c.return=e,c=c.sibling;else for(c=e.child;c!==null;)s|=c.lanes|c.childLanes,l|=c.subtreeFlags,l|=c.flags,c.return=e,c=c.sibling;return e.subtreeFlags|=l,e.childLanes=s,n}function lm(e,n,s){var l=n.pendingProps;switch(na(n),n.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return gt(n),null;case 1:return Ct(n.type)&&oi(),gt(n),null;case 3:return l=n.stateNode,os(),Ve(St),Ve(ht),ma(),l.pendingContext&&(l.context=l.pendingContext,l.pendingContext=null),(e===null||e.child===null)&&(ui(n)?n.flags|=4:e===null||e.memoizedState.isDehydrated&&(n.flags&256)===0||(n.flags|=1024,Jt!==null&&(Ha(Jt),Jt=null))),Ma(e,n),gt(n),null;case 5:pa(n);var c=wr(eo.current);if(s=n.type,e!==null&&n.stateNode!=null)Pd(e,n,s,l,c),e.ref!==n.ref&&(n.flags|=512,n.flags|=2097152);else{if(!l){if(n.stateNode===null)throw Error(i(166));return gt(n),null}if(e=wr(fn.current),ui(n)){l=n.stateNode,s=n.type;var u=n.memoizedProps;switch(l[dn]=n,l[Qs]=u,e=(n.mode&1)!==0,s){case"dialog":He("cancel",l),He("close",l);break;case"iframe":case"object":case"embed":He("load",l);break;case"video":case"audio":for(c=0;c<Vs.length;c++)He(Vs[c],l);break;case"source":He("error",l);break;case"img":case"image":case"link":He("error",l),He("load",l);break;case"details":He("toggle",l);break;case"input":dt(l,u),He("invalid",l);break;case"select":l._wrapperState={wasMultiple:!!u.multiple},He("invalid",l);break;case"textarea":ar(l,u),He("invalid",l)}cn(s,u),c=null;for(var h in u)if(u.hasOwnProperty(h)){var w=u[h];h==="children"?typeof w=="string"?l.textContent!==w&&(u.suppressHydrationWarning!==!0&&ni(l.textContent,w,e),c=["children",w]):typeof w=="number"&&l.textContent!==""+w&&(u.suppressHydrationWarning!==!0&&ni(l.textContent,w,e),c=["children",""+w]):d.hasOwnProperty(h)&&w!=null&&h==="onScroll"&&He("scroll",l)}switch(s){case"input":Ke(l),Re(l,u,!0);break;case"textarea":Ke(l),yt(l);break;case"select":case"option":break;default:typeof u.onClick=="function"&&(l.onclick=ri)}l=c,n.updateQueue=l,l!==null&&(n.flags|=4)}else{h=c.nodeType===9?c:c.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=ur(s)),e==="http://www.w3.org/1999/xhtml"?s==="script"?(e=h.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof l.is=="string"?e=h.createElement(s,{is:l.is}):(e=h.createElement(s),s==="select"&&(h=e,l.multiple?h.multiple=!0:l.size&&(h.size=l.size))):e=h.createElementNS(e,s),e[dn]=n,e[Qs]=l,Rd(e,n,!1,!1),n.stateNode=e;e:{switch(h=un(s,l),s){case"dialog":He("cancel",e),He("close",e),c=l;break;case"iframe":case"object":case"embed":He("load",e),c=l;break;case"video":case"audio":for(c=0;c<Vs.length;c++)He(Vs[c],e);c=l;break;case"source":He("error",e),c=l;break;case"img":case"image":case"link":He("error",e),He("load",e),c=l;break;case"details":He("toggle",e),c=l;break;case"input":dt(e,l),c=lt(e,l),He("invalid",e);break;case"option":c=l;break;case"select":e._wrapperState={wasMultiple:!!l.multiple},c=$({},l,{value:void 0}),He("invalid",e);break;case"textarea":ar(e,l),c=Mn(e,l),He("invalid",e);break;default:c=l}cn(s,c),w=c;for(u in w)if(w.hasOwnProperty(u)){var S=w[u];u==="style"?Ue(e,S):u==="dangerouslySetInnerHTML"?(S=S?S.__html:void 0,S!=null&&Ln(e,S)):u==="children"?typeof S=="string"?(s!=="textarea"||S!=="")&&an(e,S):typeof S=="number"&&an(e,""+S):u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&u!=="autoFocus"&&(d.hasOwnProperty(u)?S!=null&&u==="onScroll"&&He("scroll",e):S!=null&&se(e,u,S,h))}switch(s){case"input":Ke(e),Re(e,l,!1);break;case"textarea":Ke(e),yt(e);break;case"option":l.value!=null&&e.setAttribute("value",""+je(l.value));break;case"select":e.multiple=!!l.multiple,u=l.value,u!=null?kt(e,!!l.multiple,u,!1):l.defaultValue!=null&&kt(e,!!l.multiple,l.defaultValue,!0);break;default:typeof c.onClick=="function"&&(e.onclick=ri)}switch(s){case"button":case"input":case"select":case"textarea":l=!!l.autoFocus;break e;case"img":l=!0;break e;default:l=!1}}l&&(n.flags|=4)}n.ref!==null&&(n.flags|=512,n.flags|=2097152)}return gt(n),null;case 6:if(e&&n.stateNode!=null)Td(e,n,e.memoizedProps,l);else{if(typeof l!="string"&&n.stateNode===null)throw Error(i(166));if(s=wr(eo.current),wr(fn.current),ui(n)){if(l=n.stateNode,s=n.memoizedProps,l[dn]=n,(u=l.nodeValue!==s)&&(e=Mt,e!==null))switch(e.tag){case 3:ni(l.nodeValue,s,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&ni(l.nodeValue,s,(e.mode&1)!==0)}u&&(n.flags|=4)}else l=(s.nodeType===9?s:s.ownerDocument).createTextNode(l),l[dn]=n,n.stateNode=l}return gt(n),null;case 13:if(Ve(Ye),l=n.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(Ge&&At!==null&&(n.mode&1)!==0&&(n.flags&128)===0)Au(),ts(),n.flags|=98560,u=!1;else if(u=ui(n),l!==null&&l.dehydrated!==null){if(e===null){if(!u)throw Error(i(318));if(u=n.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(i(317));u[dn]=n}else ts(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;gt(n),u=!1}else Jt!==null&&(Ha(Jt),Jt=null),u=!0;if(!u)return n.flags&65536?n:null}return(n.flags&128)!==0?(n.lanes=s,n):(l=l!==null,l!==(e!==null&&e.memoizedState!==null)&&l&&(n.child.flags|=8192,(n.mode&1)!==0&&(e===null||(Ye.current&1)!==0?it===0&&(it=3):Ga())),n.updateQueue!==null&&(n.flags|=4),gt(n),null);case 4:return os(),Ma(e,n),e===null&&Ks(n.stateNode.containerInfo),gt(n),null;case 10:return aa(n.type._context),gt(n),null;case 17:return Ct(n.type)&&oi(),gt(n),null;case 19:if(Ve(Ye),u=n.memoizedState,u===null)return gt(n),null;if(l=(n.flags&128)!==0,h=u.rendering,h===null)if(l)oo(u,!1);else{if(it!==0||e!==null&&(e.flags&128)!==0)for(e=n.child;e!==null;){if(h=gi(e),h!==null){for(n.flags|=128,oo(u,!1),l=h.updateQueue,l!==null&&(n.updateQueue=l,n.flags|=4),n.subtreeFlags=0,l=s,s=n.child;s!==null;)u=s,e=l,u.flags&=14680066,h=u.alternate,h===null?(u.childLanes=0,u.lanes=e,u.child=null,u.subtreeFlags=0,u.memoizedProps=null,u.memoizedState=null,u.updateQueue=null,u.dependencies=null,u.stateNode=null):(u.childLanes=h.childLanes,u.lanes=h.lanes,u.child=h.child,u.subtreeFlags=0,u.deletions=null,u.memoizedProps=h.memoizedProps,u.memoizedState=h.memoizedState,u.updateQueue=h.updateQueue,u.type=h.type,e=h.dependencies,u.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),s=s.sibling;return Be(Ye,Ye.current&1|2),n.child}e=e.sibling}u.tail!==null&&Qe()>cs&&(n.flags|=128,l=!0,oo(u,!1),n.lanes=4194304)}else{if(!l)if(e=gi(h),e!==null){if(n.flags|=128,l=!0,s=e.updateQueue,s!==null&&(n.updateQueue=s,n.flags|=4),oo(u,!0),u.tail===null&&u.tailMode==="hidden"&&!h.alternate&&!Ge)return gt(n),null}else 2*Qe()-u.renderingStartTime>cs&&s!==1073741824&&(n.flags|=128,l=!0,oo(u,!1),n.lanes=4194304);u.isBackwards?(h.sibling=n.child,n.child=h):(s=u.last,s!==null?s.sibling=h:n.child=h,u.last=h)}return u.tail!==null?(n=u.tail,u.rendering=n,u.tail=n.sibling,u.renderingStartTime=Qe(),n.sibling=null,s=Ye.current,Be(Ye,l?s&1|2:s&1),n):(gt(n),null);case 22:case 23:return Ka(),l=n.memoizedState!==null,e!==null&&e.memoizedState!==null!==l&&(n.flags|=8192),l&&(n.mode&1)!==0?(Lt&1073741824)!==0&&(gt(n),n.subtreeFlags&6&&(n.flags|=8192)):gt(n),null;case 24:return null;case 25:return null}throw Error(i(156,n.tag))}function am(e,n){switch(na(n),n.tag){case 1:return Ct(n.type)&&oi(),e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 3:return os(),Ve(St),Ve(ht),ma(),e=n.flags,(e&65536)!==0&&(e&128)===0?(n.flags=e&-65537|128,n):null;case 5:return pa(n),null;case 13:if(Ve(Ye),e=n.memoizedState,e!==null&&e.dehydrated!==null){if(n.alternate===null)throw Error(i(340));ts()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 19:return Ve(Ye),null;case 4:return os(),null;case 10:return aa(n.type._context),null;case 22:case 23:return Ka(),null;case 24:return null;default:return null}}var bi=!1,vt=!1,cm=typeof WeakSet=="function"?WeakSet:Set,de=null;function ls(e,n){var s=e.ref;if(s!==null)if(typeof s=="function")try{s(null)}catch(l){Je(e,n,l)}else s.current=null}function Aa(e,n,s){try{s()}catch(l){Je(e,n,l)}}var Od=!1;function um(e,n){if(Kl=Ho,e=du(),zl(e)){if("selectionStart"in e)var s={start:e.selectionStart,end:e.selectionEnd};else e:{s=(s=e.ownerDocument)&&s.defaultView||window;var l=s.getSelection&&s.getSelection();if(l&&l.rangeCount!==0){s=l.anchorNode;var c=l.anchorOffset,u=l.focusNode;l=l.focusOffset;try{s.nodeType,u.nodeType}catch{s=null;break e}var h=0,w=-1,S=-1,O=0,V=0,K=e,H=null;t:for(;;){for(var ae;K!==s||c!==0&&K.nodeType!==3||(w=h+c),K!==u||l!==0&&K.nodeType!==3||(S=h+l),K.nodeType===3&&(h+=K.nodeValue.length),(ae=K.firstChild)!==null;)H=K,K=ae;for(;;){if(K===e)break t;if(H===s&&++O===c&&(w=h),H===u&&++V===l&&(S=h),(ae=K.nextSibling)!==null)break;K=H,H=K.parentNode}K=ae}s=w===-1||S===-1?null:{start:w,end:S}}else s=null}s=s||{start:0,end:0}}else s=null;for(Gl={focusedElem:e,selectionRange:s},Ho=!1,de=n;de!==null;)if(n=de,e=n.child,(n.subtreeFlags&1028)!==0&&e!==null)e.return=n,de=e;else for(;de!==null;){n=de;try{var pe=n.alternate;if((n.flags&1024)!==0)switch(n.tag){case 0:case 11:case 15:break;case 1:if(pe!==null){var me=pe.memoizedProps,et=pe.memoizedState,_=n.stateNode,C=_.getSnapshotBeforeUpdate(n.elementType===n.type?me:Zt(n.type,me),et);_.__reactInternalSnapshotBeforeUpdate=C}break;case 3:var P=n.stateNode.containerInfo;P.nodeType===1?P.textContent="":P.nodeType===9&&P.documentElement&&P.removeChild(P.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(i(163))}}catch(ee){Je(n,n.return,ee)}if(e=n.sibling,e!==null){e.return=n.return,de=e;break}de=n.return}return pe=Od,Od=!1,pe}function io(e,n,s){var l=n.updateQueue;if(l=l!==null?l.lastEffect:null,l!==null){var c=l=l.next;do{if((c.tag&e)===e){var u=c.destroy;c.destroy=void 0,u!==void 0&&Aa(n,s,u)}c=c.next}while(c!==l)}}function Ii(e,n){if(n=n.updateQueue,n=n!==null?n.lastEffect:null,n!==null){var s=n=n.next;do{if((s.tag&e)===e){var l=s.create;s.destroy=l()}s=s.next}while(s!==n)}}function La(e){var n=e.ref;if(n!==null){var s=e.stateNode;e.tag,e=s,typeof n=="function"?n(e):n.current=e}}function Md(e){var n=e.alternate;n!==null&&(e.alternate=null,Md(n)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(n=e.stateNode,n!==null&&(delete n[dn],delete n[Qs],delete n[Jl],delete n[Vh],delete n[Kh])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Ad(e){return e.tag===5||e.tag===3||e.tag===4}function Ld(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Ad(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.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 $a(e,n,s){var l=e.tag;if(l===5||l===6)e=e.stateNode,n?s.nodeType===8?s.parentNode.insertBefore(e,n):s.insertBefore(e,n):(s.nodeType===8?(n=s.parentNode,n.insertBefore(e,s)):(n=s,n.appendChild(e)),s=s._reactRootContainer,s!=null||n.onclick!==null||(n.onclick=ri));else if(l!==4&&(e=e.child,e!==null))for($a(e,n,s),e=e.sibling;e!==null;)$a(e,n,s),e=e.sibling}function Da(e,n,s){var l=e.tag;if(l===5||l===6)e=e.stateNode,n?s.insertBefore(e,n):s.appendChild(e);else if(l!==4&&(e=e.child,e!==null))for(Da(e,n,s),e=e.sibling;e!==null;)Da(e,n,s),e=e.sibling}var ft=null,en=!1;function Jn(e,n,s){for(s=s.child;s!==null;)$d(e,n,s),s=s.sibling}function $d(e,n,s){if(Tt&&typeof Tt.onCommitFiberUnmount=="function")try{Tt.onCommitFiberUnmount(pr,s)}catch{}switch(s.tag){case 5:vt||ls(s,n);case 6:var l=ft,c=en;ft=null,Jn(e,n,s),ft=l,en=c,ft!==null&&(en?(e=ft,s=s.stateNode,e.nodeType===8?e.parentNode.removeChild(s):e.removeChild(s)):ft.removeChild(s.stateNode));break;case 18:ft!==null&&(en?(e=ft,s=s.stateNode,e.nodeType===8?Xl(e.parentNode,s):e.nodeType===1&&Xl(e,s),Ds(e)):Xl(ft,s.stateNode));break;case 4:l=ft,c=en,ft=s.stateNode.containerInfo,en=!0,Jn(e,n,s),ft=l,en=c;break;case 0:case 11:case 14:case 15:if(!vt&&(l=s.updateQueue,l!==null&&(l=l.lastEffect,l!==null))){c=l=l.next;do{var u=c,h=u.destroy;u=u.tag,h!==void 0&&((u&2)!==0||(u&4)!==0)&&Aa(s,n,h),c=c.next}while(c!==l)}Jn(e,n,s);break;case 1:if(!vt&&(ls(s,n),l=s.stateNode,typeof l.componentWillUnmount=="function"))try{l.props=s.memoizedProps,l.state=s.memoizedState,l.componentWillUnmount()}catch(w){Je(s,n,w)}Jn(e,n,s);break;case 21:Jn(e,n,s);break;case 22:s.mode&1?(vt=(l=vt)||s.memoizedState!==null,Jn(e,n,s),vt=l):Jn(e,n,s);break;default:Jn(e,n,s)}}function Dd(e){var n=e.updateQueue;if(n!==null){e.updateQueue=null;var s=e.stateNode;s===null&&(s=e.stateNode=new cm),n.forEach(function(l){var c=xm.bind(null,e,l);s.has(l)||(s.add(l),l.then(c,c))})}}function tn(e,n){var s=n.deletions;if(s!==null)for(var l=0;l<s.length;l++){var c=s[l];try{var u=e,h=n,w=h;e:for(;w!==null;){switch(w.tag){case 5:ft=w.stateNode,en=!1;break e;case 3:ft=w.stateNode.containerInfo,en=!0;break e;case 4:ft=w.stateNode.containerInfo,en=!0;break e}w=w.return}if(ft===null)throw Error(i(160));$d(u,h,c),ft=null,en=!1;var S=c.alternate;S!==null&&(S.return=null),c.return=null}catch(O){Je(c,n,O)}}if(n.subtreeFlags&12854)for(n=n.child;n!==null;)zd(n,e),n=n.sibling}function zd(e,n){var s=e.alternate,l=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(tn(n,e),hn(e),l&4){try{io(3,e,e.return),Ii(3,e)}catch(me){Je(e,e.return,me)}try{io(5,e,e.return)}catch(me){Je(e,e.return,me)}}break;case 1:tn(n,e),hn(e),l&512&&s!==null&&ls(s,s.return);break;case 5:if(tn(n,e),hn(e),l&512&&s!==null&&ls(s,s.return),e.flags&32){var c=e.stateNode;try{an(c,"")}catch(me){Je(e,e.return,me)}}if(l&4&&(c=e.stateNode,c!=null)){var u=e.memoizedProps,h=s!==null?s.memoizedProps:u,w=e.type,S=e.updateQueue;if(e.updateQueue=null,S!==null)try{w==="input"&&u.type==="radio"&&u.name!=null&&ln(c,u),un(w,h);var O=un(w,u);for(h=0;h<S.length;h+=2){var V=S[h],K=S[h+1];V==="style"?Ue(c,K):V==="dangerouslySetInnerHTML"?Ln(c,K):V==="children"?an(c,K):se(c,V,K,O)}switch(w){case"input":q(c,u);break;case"textarea":cr(c,u);break;case"select":var H=c._wrapperState.wasMultiple;c._wrapperState.wasMultiple=!!u.multiple;var ae=u.value;ae!=null?kt(c,!!u.multiple,ae,!1):H!==!!u.multiple&&(u.defaultValue!=null?kt(c,!!u.multiple,u.defaultValue,!0):kt(c,!!u.multiple,u.multiple?[]:"",!1))}c[Qs]=u}catch(me){Je(e,e.return,me)}}break;case 6:if(tn(n,e),hn(e),l&4){if(e.stateNode===null)throw Error(i(162));c=e.stateNode,u=e.memoizedProps;try{c.nodeValue=u}catch(me){Je(e,e.return,me)}}break;case 3:if(tn(n,e),hn(e),l&4&&s!==null&&s.memoizedState.isDehydrated)try{Ds(n.containerInfo)}catch(me){Je(e,e.return,me)}break;case 4:tn(n,e),hn(e);break;case 13:tn(n,e),hn(e),c=e.child,c.flags&8192&&(u=c.memoizedState!==null,c.stateNode.isHidden=u,!u||c.alternate!==null&&c.alternate.memoizedState!==null||(Fa=Qe())),l&4&&Dd(e);break;case 22:if(V=s!==null&&s.memoizedState!==null,e.mode&1?(vt=(O=vt)||V,tn(n,e),vt=O):tn(n,e),hn(e),l&8192){if(O=e.memoizedState!==null,(e.stateNode.isHidden=O)&&!V&&(e.mode&1)!==0)for(de=e,V=e.child;V!==null;){for(K=de=V;de!==null;){switch(H=de,ae=H.child,H.tag){case 0:case 11:case 14:case 15:io(4,H,H.return);break;case 1:ls(H,H.return);var pe=H.stateNode;if(typeof pe.componentWillUnmount=="function"){l=H,s=H.return;try{n=l,pe.props=n.memoizedProps,pe.state=n.memoizedState,pe.componentWillUnmount()}catch(me){Je(l,s,me)}}break;case 5:ls(H,H.return);break;case 22:if(H.memoizedState!==null){Bd(K);continue}}ae!==null?(ae.return=H,de=ae):Bd(K)}V=V.sibling}e:for(V=null,K=e;;){if(K.tag===5){if(V===null){V=K;try{c=K.stateNode,O?(u=c.style,typeof u.setProperty=="function"?u.setProperty("display","none","important"):u.display="none"):(w=K.stateNode,S=K.memoizedProps.style,h=S!=null&&S.hasOwnProperty("display")?S.display:null,w.style.display=Pe("display",h))}catch(me){Je(e,e.return,me)}}}else if(K.tag===6){if(V===null)try{K.stateNode.nodeValue=O?"":K.memoizedProps}catch(me){Je(e,e.return,me)}}else if((K.tag!==22&&K.tag!==23||K.memoizedState===null||K===e)&&K.child!==null){K.child.return=K,K=K.child;continue}if(K===e)break e;for(;K.sibling===null;){if(K.return===null||K.return===e)break e;V===K&&(V=null),K=K.return}V===K&&(V=null),K.sibling.return=K.return,K=K.sibling}}break;case 19:tn(n,e),hn(e),l&4&&Dd(e);break;case 21:break;default:tn(n,e),hn(e)}}function hn(e){var n=e.flags;if(n&2){try{e:{for(var s=e.return;s!==null;){if(Ad(s)){var l=s;break e}s=s.return}throw Error(i(160))}switch(l.tag){case 5:var c=l.stateNode;l.flags&32&&(an(c,""),l.flags&=-33);var u=Ld(e);Da(e,u,c);break;case 3:case 4:var h=l.stateNode.containerInfo,w=Ld(e);$a(e,w,h);break;default:throw Error(i(161))}}catch(S){Je(e,e.return,S)}e.flags&=-3}n&4096&&(e.flags&=-4097)}function dm(e,n,s){de=e,Wd(e)}function Wd(e,n,s){for(var l=(e.mode&1)!==0;de!==null;){var c=de,u=c.child;if(c.tag===22&&l){var h=c.memoizedState!==null||bi;if(!h){var w=c.alternate,S=w!==null&&w.memoizedState!==null||vt;w=bi;var O=vt;if(bi=h,(vt=S)&&!O)for(de=c;de!==null;)h=de,S=h.child,h.tag===22&&h.memoizedState!==null?qd(c):S!==null?(S.return=h,de=S):qd(c);for(;u!==null;)de=u,Wd(u),u=u.sibling;de=c,bi=w,vt=O}Fd(e)}else(c.subtreeFlags&8772)!==0&&u!==null?(u.return=c,de=u):Fd(e)}}function Fd(e){for(;de!==null;){var n=de;if((n.flags&8772)!==0){var s=n.alternate;try{if((n.flags&8772)!==0)switch(n.tag){case 0:case 11:case 15:vt||Ii(5,n);break;case 1:var l=n.stateNode;if(n.flags&4&&!vt)if(s===null)l.componentDidMount();else{var c=n.elementType===n.type?s.memoizedProps:Zt(n.type,s.memoizedProps);l.componentDidUpdate(c,s.memoizedState,l.__reactInternalSnapshotBeforeUpdate)}var u=n.updateQueue;u!==null&&Bu(n,u,l);break;case 3:var h=n.updateQueue;if(h!==null){if(s=null,n.child!==null)switch(n.child.tag){case 5:s=n.child.stateNode;break;case 1:s=n.child.stateNode}Bu(n,h,s)}break;case 5:var w=n.stateNode;if(s===null&&n.flags&4){s=w;var S=n.memoizedProps;switch(n.type){case"button":case"input":case"select":case"textarea":S.autoFocus&&s.focus();break;case"img":S.src&&(s.src=S.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(n.memoizedState===null){var O=n.alternate;if(O!==null){var V=O.memoizedState;if(V!==null){var K=V.dehydrated;K!==null&&Ds(K)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(i(163))}vt||n.flags&512&&La(n)}catch(H){Je(n,n.return,H)}}if(n===e){de=null;break}if(s=n.sibling,s!==null){s.return=n.return,de=s;break}de=n.return}}function Bd(e){for(;de!==null;){var n=de;if(n===e){de=null;break}var s=n.sibling;if(s!==null){s.return=n.return,de=s;break}de=n.return}}function qd(e){for(;de!==null;){var n=de;try{switch(n.tag){case 0:case 11:case 15:var s=n.return;try{Ii(4,n)}catch(S){Je(n,s,S)}break;case 1:var l=n.stateNode;if(typeof l.componentDidMount=="function"){var c=n.return;try{l.componentDidMount()}catch(S){Je(n,c,S)}}var u=n.return;try{La(n)}catch(S){Je(n,u,S)}break;case 5:var h=n.return;try{La(n)}catch(S){Je(n,h,S)}}}catch(S){Je(n,n.return,S)}if(n===e){de=null;break}var w=n.sibling;if(w!==null){w.return=n.return,de=w;break}de=n.return}}var fm=Math.ceil,Ni=ie.ReactCurrentDispatcher,za=ie.ReactCurrentOwner,Ut=ie.ReactCurrentBatchConfig,$e=0,ct=null,nt=null,pt=0,Lt=0,as=Kn(0),it=0,lo=null,jr=0,_i=0,Wa=0,ao=null,It=null,Fa=0,cs=1/0,In=null,Ei=!1,Ba=null,Zn=null,Ri=!1,er=null,Pi=0,co=0,qa=null,Ti=-1,Oi=0;function wt(){return($e&6)!==0?Qe():Ti!==-1?Ti:Ti=Qe()}function tr(e){return(e.mode&1)===0?1:($e&2)!==0&&pt!==0?pt&-pt:Qh.transition!==null?(Oi===0&&(Oi=Ee()),Oi):(e=Ae,e!==0||(e=window.event,e=e===void 0?16:Hc(e.type)),e)}function nn(e,n,s,l){if(50<co)throw co=0,qa=null,Error(i(185));Le(e,s,l),(($e&2)===0||e!==ct)&&(e===ct&&(($e&2)===0&&(_i|=s),it===4&&nr(e,pt)),Nt(e,l),s===1&&$e===0&&(n.mode&1)===0&&(cs=Qe()+500,li&&Qn()))}function Nt(e,n){var s=e.callbackNode;X(e,n);var l=I(e,e===ct?pt:0);if(l===0)s!==null&&Ao(s),e.callbackNode=null,e.callbackPriority=0;else if(n=l&-l,e.callbackPriority!==n){if(s!=null&&Ao(s),n===1)e.tag===0?Gh(Hd.bind(null,e)):Ru(Hd.bind(null,e)),Uh(function(){($e&6)===0&&Qn()}),s=null;else{switch(Fo(l)){case 1:s=_s;break;case 4:s=Es;break;case 16:s=fr;break;case 536870912:s=Rs;break;default:s=fr}s=Zd(s,Ud.bind(null,e))}e.callbackPriority=n,e.callbackNode=s}}function Ud(e,n){if(Ti=-1,Oi=0,($e&6)!==0)throw Error(i(327));var s=e.callbackNode;if(us()&&e.callbackNode!==s)return null;var l=I(e,e===ct?pt:0);if(l===0)return null;if((l&30)!==0||(l&e.expiredLanes)!==0||n)n=Mi(e,l);else{n=l;var c=$e;$e|=2;var u=Kd();(ct!==e||pt!==n)&&(In=null,cs=Qe()+500,Cr(e,n));do try{mm();break}catch(w){Vd(e,w)}while(!0);la(),Ni.current=u,$e=c,nt!==null?n=0:(ct=null,pt=0,n=it)}if(n!==0){if(n===2&&(c=oe(e),c!==0&&(l=c,n=Ua(e,c))),n===1)throw s=lo,Cr(e,0),nr(e,l),Nt(e,Qe()),s;if(n===6)nr(e,l);else{if(c=e.current.alternate,(l&30)===0&&!pm(c)&&(n=Mi(e,l),n===2&&(u=oe(e),u!==0&&(l=u,n=Ua(e,u))),n===1))throw s=lo,Cr(e,0),nr(e,l),Nt(e,Qe()),s;switch(e.finishedWork=c,e.finishedLanes=l,n){case 0:case 1:throw Error(i(345));case 2:br(e,It,In);break;case 3:if(nr(e,l),(l&130023424)===l&&(n=Fa+500-Qe(),10<n)){if(I(e,0)!==0)break;if(c=e.suspendedLanes,(c&l)!==l){wt(),e.pingedLanes|=e.suspendedLanes&c;break}e.timeoutHandle=Yl(br.bind(null,e,It,In),n);break}br(e,It,In);break;case 4:if(nr(e,l),(l&4194240)===l)break;for(n=e.eventTimes,c=-1;0<l;){var h=31-jt(l);u=1<<h,h=n[h],h>c&&(c=h),l&=~u}if(l=c,l=Qe()-l,l=(120>l?120:480>l?480:1080>l?1080:1920>l?1920:3e3>l?3e3:4320>l?4320:1960*fm(l/1960))-l,10<l){e.timeoutHandle=Yl(br.bind(null,e,It,In),l);break}br(e,It,In);break;case 5:br(e,It,In);break;default:throw Error(i(329))}}}return Nt(e,Qe()),e.callbackNode===s?Ud.bind(null,e):null}function Ua(e,n){var s=ao;return e.current.memoizedState.isDehydrated&&(Cr(e,n).flags|=256),e=Mi(e,n),e!==2&&(n=It,It=s,n!==null&&Ha(n)),e}function Ha(e){It===null?It=e:It.push.apply(It,e)}function pm(e){for(var n=e;;){if(n.flags&16384){var s=n.updateQueue;if(s!==null&&(s=s.stores,s!==null))for(var l=0;l<s.length;l++){var c=s[l],u=c.getSnapshot;c=c.value;try{if(!Xt(u(),c))return!1}catch{return!1}}}if(s=n.child,n.subtreeFlags&16384&&s!==null)s.return=n,n=s;else{if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return!0;n=n.return}n.sibling.return=n.return,n=n.sibling}}return!0}function nr(e,n){for(n&=~Wa,n&=~_i,e.suspendedLanes|=n,e.pingedLanes&=~n,e=e.expirationTimes;0<n;){var s=31-jt(n),l=1<<s;e[s]=-1,n&=~l}}function Hd(e){if(($e&6)!==0)throw Error(i(327));us();var n=I(e,0);if((n&1)===0)return Nt(e,Qe()),null;var s=Mi(e,n);if(e.tag!==0&&s===2){var l=oe(e);l!==0&&(n=l,s=Ua(e,l))}if(s===1)throw s=lo,Cr(e,0),nr(e,n),Nt(e,Qe()),s;if(s===6)throw Error(i(345));return e.finishedWork=e.current.alternate,e.finishedLanes=n,br(e,It,In),Nt(e,Qe()),null}function Va(e,n){var s=$e;$e|=1;try{return e(n)}finally{$e=s,$e===0&&(cs=Qe()+500,li&&Qn())}}function Sr(e){er!==null&&er.tag===0&&($e&6)===0&&us();var n=$e;$e|=1;var s=Ut.transition,l=Ae;try{if(Ut.transition=null,Ae=1,e)return e()}finally{Ae=l,Ut.transition=s,$e=n,($e&6)===0&&Qn()}}function Ka(){Lt=as.current,Ve(as)}function Cr(e,n){e.finishedWork=null,e.finishedLanes=0;var s=e.timeoutHandle;if(s!==-1&&(e.timeoutHandle=-1,qh(s)),nt!==null)for(s=nt.return;s!==null;){var l=s;switch(na(l),l.tag){case 1:l=l.type.childContextTypes,l!=null&&oi();break;case 3:os(),Ve(St),Ve(ht),ma();break;case 5:pa(l);break;case 4:os();break;case 13:Ve(Ye);break;case 19:Ve(Ye);break;case 10:aa(l.type._context);break;case 22:case 23:Ka()}s=s.return}if(ct=e,nt=e=rr(e.current,null),pt=Lt=n,it=0,lo=null,Wa=_i=jr=0,It=ao=null,xr!==null){for(n=0;n<xr.length;n++)if(s=xr[n],l=s.interleaved,l!==null){s.interleaved=null;var c=l.next,u=s.pending;if(u!==null){var h=u.next;u.next=c,l.next=h}s.pending=l}xr=null}return e}function Vd(e,n){do{var s=nt;try{if(la(),vi.current=ki,yi){for(var l=Xe.memoizedState;l!==null;){var c=l.queue;c!==null&&(c.pending=null),l=l.next}yi=!1}if(kr=0,at=ot=Xe=null,to=!1,no=0,za.current=null,s===null||s.return===null){it=1,lo=n,nt=null;break}e:{var u=e,h=s.return,w=s,S=n;if(n=pt,w.flags|=32768,S!==null&&typeof S=="object"&&typeof S.then=="function"){var O=S,V=w,K=V.tag;if((V.mode&1)===0&&(K===0||K===11||K===15)){var H=V.alternate;H?(V.updateQueue=H.updateQueue,V.memoizedState=H.memoizedState,V.lanes=H.lanes):(V.updateQueue=null,V.memoizedState=null)}var ae=vd(h);if(ae!==null){ae.flags&=-257,yd(ae,h,w,u,n),ae.mode&1&&gd(u,O,n),n=ae,S=O;var pe=n.updateQueue;if(pe===null){var me=new Set;me.add(S),n.updateQueue=me}else pe.add(S);break e}else{if((n&1)===0){gd(u,O,n),Ga();break e}S=Error(i(426))}}else if(Ge&&w.mode&1){var et=vd(h);if(et!==null){(et.flags&65536)===0&&(et.flags|=256),yd(et,h,w,u,n),oa(is(S,w));break e}}u=S=is(S,w),it!==4&&(it=2),ao===null?ao=[u]:ao.push(u),u=h;do{switch(u.tag){case 3:u.flags|=65536,n&=-n,u.lanes|=n;var _=hd(u,S,n);Fu(u,_);break e;case 1:w=S;var C=u.type,P=u.stateNode;if((u.flags&128)===0&&(typeof C.getDerivedStateFromError=="function"||P!==null&&typeof P.componentDidCatch=="function"&&(Zn===null||!Zn.has(P)))){u.flags|=65536,n&=-n,u.lanes|=n;var ee=md(u,w,n);Fu(u,ee);break e}}u=u.return}while(u!==null)}Qd(s)}catch(ve){n=ve,nt===s&&s!==null&&(nt=s=s.return);continue}break}while(!0)}function Kd(){var e=Ni.current;return Ni.current=ki,e===null?ki:e}function Ga(){(it===0||it===3||it===2)&&(it=4),ct===null||(jr&268435455)===0&&(_i&268435455)===0||nr(ct,pt)}function Mi(e,n){var s=$e;$e|=2;var l=Kd();(ct!==e||pt!==n)&&(In=null,Cr(e,n));do try{hm();break}catch(c){Vd(e,c)}while(!0);if(la(),$e=s,Ni.current=l,nt!==null)throw Error(i(261));return ct=null,pt=0,it}function hm(){for(;nt!==null;)Gd(nt)}function mm(){for(;nt!==null&&!bl();)Gd(nt)}function Gd(e){var n=Jd(e.alternate,e,Lt);e.memoizedProps=e.pendingProps,n===null?Qd(e):nt=n,za.current=null}function Qd(e){var n=e;do{var s=n.alternate;if(e=n.return,(n.flags&32768)===0){if(s=lm(s,n,Lt),s!==null){nt=s;return}}else{if(s=am(s,n),s!==null){s.flags&=32767,nt=s;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{it=6,nt=null;return}}if(n=n.sibling,n!==null){nt=n;return}nt=n=e}while(n!==null);it===0&&(it=5)}function br(e,n,s){var l=Ae,c=Ut.transition;try{Ut.transition=null,Ae=1,gm(e,n,s,l)}finally{Ut.transition=c,Ae=l}return null}function gm(e,n,s,l){do us();while(er!==null);if(($e&6)!==0)throw Error(i(327));s=e.finishedWork;var c=e.finishedLanes;if(s===null)return null;if(e.finishedWork=null,e.finishedLanes=0,s===e.current)throw Error(i(177));e.callbackNode=null,e.callbackPriority=0;var u=s.lanes|s.childLanes;if(Dt(e,u),e===ct&&(nt=ct=null,pt=0),(s.subtreeFlags&2064)===0&&(s.flags&2064)===0||Ri||(Ri=!0,Zd(fr,function(){return us(),null})),u=(s.flags&15990)!==0,(s.subtreeFlags&15990)!==0||u){u=Ut.transition,Ut.transition=null;var h=Ae;Ae=1;var w=$e;$e|=4,za.current=null,um(e,s),zd(s,e),Lh(Gl),Ho=!!Kl,Gl=Kl=null,e.current=s,dm(s),Il(),$e=w,Ae=h,Ut.transition=u}else e.current=s;if(Ri&&(Ri=!1,er=e,Pi=c),u=e.pendingLanes,u===0&&(Zn=null),$o(s.stateNode),Nt(e,Qe()),n!==null)for(l=e.onRecoverableError,s=0;s<n.length;s++)c=n[s],l(c.value,{componentStack:c.stack,digest:c.digest});if(Ei)throw Ei=!1,e=Ba,Ba=null,e;return(Pi&1)!==0&&e.tag!==0&&us(),u=e.pendingLanes,(u&1)!==0?e===qa?co++:(co=0,qa=e):co=0,Qn(),null}function us(){if(er!==null){var e=Fo(Pi),n=Ut.transition,s=Ae;try{if(Ut.transition=null,Ae=16>e?16:e,er===null)var l=!1;else{if(e=er,er=null,Pi=0,($e&6)!==0)throw Error(i(331));var c=$e;for($e|=4,de=e.current;de!==null;){var u=de,h=u.child;if((de.flags&16)!==0){var w=u.deletions;if(w!==null){for(var S=0;S<w.length;S++){var O=w[S];for(de=O;de!==null;){var V=de;switch(V.tag){case 0:case 11:case 15:io(8,V,u)}var K=V.child;if(K!==null)K.return=V,de=K;else for(;de!==null;){V=de;var H=V.sibling,ae=V.return;if(Md(V),V===O){de=null;break}if(H!==null){H.return=ae,de=H;break}de=ae}}}var pe=u.alternate;if(pe!==null){var me=pe.child;if(me!==null){pe.child=null;do{var et=me.sibling;me.sibling=null,me=et}while(me!==null)}}de=u}}if((u.subtreeFlags&2064)!==0&&h!==null)h.return=u,de=h;else e:for(;de!==null;){if(u=de,(u.flags&2048)!==0)switch(u.tag){case 0:case 11:case 15:io(9,u,u.return)}var _=u.sibling;if(_!==null){_.return=u.return,de=_;break e}de=u.return}}var C=e.current;for(de=C;de!==null;){h=de;var P=h.child;if((h.subtreeFlags&2064)!==0&&P!==null)P.return=h,de=P;else e:for(h=C;de!==null;){if(w=de,(w.flags&2048)!==0)try{switch(w.tag){case 0:case 11:case 15:Ii(9,w)}}catch(ve){Je(w,w.return,ve)}if(w===h){de=null;break e}var ee=w.sibling;if(ee!==null){ee.return=w.return,de=ee;break e}de=w.return}}if($e=c,Qn(),Tt&&typeof Tt.onPostCommitFiberRoot=="function")try{Tt.onPostCommitFiberRoot(pr,e)}catch{}l=!0}return l}finally{Ae=s,Ut.transition=n}}return!1}function Yd(e,n,s){n=is(s,n),n=hd(e,n,1),e=Xn(e,n,1),n=wt(),e!==null&&(Le(e,1,n),Nt(e,n))}function Je(e,n,s){if(e.tag===3)Yd(e,e,s);else for(;n!==null;){if(n.tag===3){Yd(n,e,s);break}else if(n.tag===1){var l=n.stateNode;if(typeof n.type.getDerivedStateFromError=="function"||typeof l.componentDidCatch=="function"&&(Zn===null||!Zn.has(l))){e=is(s,e),e=md(n,e,1),n=Xn(n,e,1),e=wt(),n!==null&&(Le(n,1,e),Nt(n,e));break}}n=n.return}}function vm(e,n,s){var l=e.pingCache;l!==null&&l.delete(n),n=wt(),e.pingedLanes|=e.suspendedLanes&s,ct===e&&(pt&s)===s&&(it===4||it===3&&(pt&130023424)===pt&&500>Qe()-Fa?Cr(e,0):Wa|=s),Nt(e,n)}function Xd(e,n){n===0&&((e.mode&1)===0?n=1:(n=Wr,Wr<<=1,(Wr&130023424)===0&&(Wr=4194304)));var s=wt();e=Sn(e,n),e!==null&&(Le(e,n,s),Nt(e,s))}function ym(e){var n=e.memoizedState,s=0;n!==null&&(s=n.retryLane),Xd(e,s)}function xm(e,n){var s=0;switch(e.tag){case 13:var l=e.stateNode,c=e.memoizedState;c!==null&&(s=c.retryLane);break;case 19:l=e.stateNode;break;default:throw Error(i(314))}l!==null&&l.delete(n),Xd(e,s)}var Jd;Jd=function(e,n,s){if(e!==null)if(e.memoizedProps!==n.pendingProps||St.current)bt=!0;else{if((e.lanes&s)===0&&(n.flags&128)===0)return bt=!1,im(e,n,s);bt=(e.flags&131072)!==0}else bt=!1,Ge&&(n.flags&1048576)!==0&&Pu(n,ci,n.index);switch(n.lanes=0,n.tag){case 2:var l=n.type;Ci(e,n),e=n.pendingProps;var c=Jr(n,ht.current);ss(n,s),c=ya(null,n,l,e,c,s);var u=xa();return n.flags|=1,typeof c=="object"&&c!==null&&typeof c.render=="function"&&c.$$typeof===void 0?(n.tag=1,n.memoizedState=null,n.updateQueue=null,Ct(l)?(u=!0,ii(n)):u=!1,n.memoizedState=c.state!==null&&c.state!==void 0?c.state:null,da(n),c.updater=ji,n.stateNode=c,c._reactInternals=n,ba(n,l,e,s),n=Ea(null,n,l,!0,u,s)):(n.tag=0,Ge&&u&&ta(n),xt(null,n,c,s),n=n.child),n;case 16:l=n.elementType;e:{switch(Ci(e,n),e=n.pendingProps,c=l._init,l=c(l._payload),n.type=l,c=n.tag=km(l),e=Zt(l,e),c){case 0:n=_a(null,n,l,e,s);break e;case 1:n=Cd(null,n,l,e,s);break e;case 11:n=xd(null,n,l,e,s);break e;case 14:n=wd(null,n,l,Zt(l.type,e),s);break e}throw Error(i(306,l,""))}return n;case 0:return l=n.type,c=n.pendingProps,c=n.elementType===l?c:Zt(l,c),_a(e,n,l,c,s);case 1:return l=n.type,c=n.pendingProps,c=n.elementType===l?c:Zt(l,c),Cd(e,n,l,c,s);case 3:e:{if(bd(n),e===null)throw Error(i(387));l=n.pendingProps,u=n.memoizedState,c=u.element,Wu(e,n),mi(n,l,null,s);var h=n.memoizedState;if(l=h.element,u.isDehydrated)if(u={element:l,isDehydrated:!1,cache:h.cache,pendingSuspenseBoundaries:h.pendingSuspenseBoundaries,transitions:h.transitions},n.updateQueue.baseState=u,n.memoizedState=u,n.flags&256){c=is(Error(i(423)),n),n=Id(e,n,l,s,c);break e}else if(l!==c){c=is(Error(i(424)),n),n=Id(e,n,l,s,c);break e}else for(At=Vn(n.stateNode.containerInfo.firstChild),Mt=n,Ge=!0,Jt=null,s=Du(n,null,l,s),n.child=s;s;)s.flags=s.flags&-3|4096,s=s.sibling;else{if(ts(),l===c){n=bn(e,n,s);break e}xt(e,n,l,s)}n=n.child}return n;case 5:return qu(n),e===null&&sa(n),l=n.type,c=n.pendingProps,u=e!==null?e.memoizedProps:null,h=c.children,Ql(l,c)?h=null:u!==null&&Ql(l,u)&&(n.flags|=32),Sd(e,n),xt(e,n,h,s),n.child;case 6:return e===null&&sa(n),null;case 13:return Nd(e,n,s);case 4:return fa(n,n.stateNode.containerInfo),l=n.pendingProps,e===null?n.child=ns(n,null,l,s):xt(e,n,l,s),n.child;case 11:return l=n.type,c=n.pendingProps,c=n.elementType===l?c:Zt(l,c),xd(e,n,l,c,s);case 7:return xt(e,n,n.pendingProps,s),n.child;case 8:return xt(e,n,n.pendingProps.children,s),n.child;case 12:return xt(e,n,n.pendingProps.children,s),n.child;case 10:e:{if(l=n.type._context,c=n.pendingProps,u=n.memoizedProps,h=c.value,Be(fi,l._currentValue),l._currentValue=h,u!==null)if(Xt(u.value,h)){if(u.children===c.children&&!St.current){n=bn(e,n,s);break e}}else for(u=n.child,u!==null&&(u.return=n);u!==null;){var w=u.dependencies;if(w!==null){h=u.child;for(var S=w.firstContext;S!==null;){if(S.context===l){if(u.tag===1){S=Cn(-1,s&-s),S.tag=2;var O=u.updateQueue;if(O!==null){O=O.shared;var V=O.pending;V===null?S.next=S:(S.next=V.next,V.next=S),O.pending=S}}u.lanes|=s,S=u.alternate,S!==null&&(S.lanes|=s),ca(u.return,s,n),w.lanes|=s;break}S=S.next}}else if(u.tag===10)h=u.type===n.type?null:u.child;else if(u.tag===18){if(h=u.return,h===null)throw Error(i(341));h.lanes|=s,w=h.alternate,w!==null&&(w.lanes|=s),ca(h,s,n),h=u.sibling}else h=u.child;if(h!==null)h.return=u;else for(h=u;h!==null;){if(h===n){h=null;break}if(u=h.sibling,u!==null){u.return=h.return,h=u;break}h=h.return}u=h}xt(e,n,c.children,s),n=n.child}return n;case 9:return c=n.type,l=n.pendingProps.children,ss(n,s),c=Bt(c),l=l(c),n.flags|=1,xt(e,n,l,s),n.child;case 14:return l=n.type,c=Zt(l,n.pendingProps),c=Zt(l.type,c),wd(e,n,l,c,s);case 15:return kd(e,n,n.type,n.pendingProps,s);case 17:return l=n.type,c=n.pendingProps,c=n.elementType===l?c:Zt(l,c),Ci(e,n),n.tag=1,Ct(l)?(e=!0,ii(n)):e=!1,ss(n,s),fd(n,l,c),ba(n,l,c,s),Ea(null,n,l,!0,e,s);case 19:return Ed(e,n,s);case 22:return jd(e,n,s)}throw Error(i(156,n.tag))};function Zd(e,n){return Mo(e,n)}function wm(e,n,s,l){this.tag=e,this.key=s,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=l,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ht(e,n,s,l){return new wm(e,n,s,l)}function Qa(e){return e=e.prototype,!(!e||!e.isReactComponent)}function km(e){if(typeof e=="function")return Qa(e)?1:0;if(e!=null){if(e=e.$$typeof,e===ye)return 11;if(e===D)return 14}return 2}function rr(e,n){var s=e.alternate;return s===null?(s=Ht(e.tag,n,e.key,e.mode),s.elementType=e.elementType,s.type=e.type,s.stateNode=e.stateNode,s.alternate=e,e.alternate=s):(s.pendingProps=n,s.type=e.type,s.flags=0,s.subtreeFlags=0,s.deletions=null),s.flags=e.flags&14680064,s.childLanes=e.childLanes,s.lanes=e.lanes,s.child=e.child,s.memoizedProps=e.memoizedProps,s.memoizedState=e.memoizedState,s.updateQueue=e.updateQueue,n=e.dependencies,s.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},s.sibling=e.sibling,s.index=e.index,s.ref=e.ref,s}function Ai(e,n,s,l,c,u){var h=2;if(l=e,typeof e=="function")Qa(e)&&(h=1);else if(typeof e=="string")h=5;else e:switch(e){case F:return Ir(s.children,c,u,n);case ge:h=8,c|=8;break;case Ie:return e=Ht(12,s,n,c|2),e.elementType=Ie,e.lanes=u,e;case J:return e=Ht(13,s,n,c),e.elementType=J,e.lanes=u,e;case Se:return e=Ht(19,s,n,c),e.elementType=Se,e.lanes=u,e;case W:return Li(s,c,u,n);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case we:h=10;break e;case te:h=9;break e;case ye:h=11;break e;case D:h=14;break e;case ce:h=16,l=null;break e}throw Error(i(130,e==null?e:typeof e,""))}return n=Ht(h,s,n,c),n.elementType=e,n.type=l,n.lanes=u,n}function Ir(e,n,s,l){return e=Ht(7,e,l,n),e.lanes=s,e}function Li(e,n,s,l){return e=Ht(22,e,l,n),e.elementType=W,e.lanes=s,e.stateNode={isHidden:!1},e}function Ya(e,n,s){return e=Ht(6,e,null,n),e.lanes=s,e}function Xa(e,n,s){return n=Ht(4,e.children!==null?e.children:[],e.key,n),n.lanes=s,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function jm(e,n,s,l,c){this.tag=n,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ze(0),this.expirationTimes=ze(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ze(0),this.identifierPrefix=l,this.onRecoverableError=c,this.mutableSourceEagerHydrationData=null}function Ja(e,n,s,l,c,u,h,w,S){return e=new jm(e,n,s,w,S),n===1?(n=1,u===!0&&(n|=8)):n=0,u=Ht(3,null,null,n),e.current=u,u.stateNode=e,u.memoizedState={element:l,isDehydrated:s,cache:null,transitions:null,pendingSuspenseBoundaries:null},da(u),e}function Sm(e,n,s){var l=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:L,key:l==null?null:""+l,children:e,containerInfo:n,implementation:s}}function ef(e){if(!e)return Gn;e=e._reactInternals;e:{if(yn(e)!==e||e.tag!==1)throw Error(i(170));var n=e;do{switch(n.tag){case 3:n=n.stateNode.context;break e;case 1:if(Ct(n.type)){n=n.stateNode.__reactInternalMemoizedMergedChildContext;break e}}n=n.return}while(n!==null);throw Error(i(171))}if(e.tag===1){var s=e.type;if(Ct(s))return _u(e,s,n)}return n}function tf(e,n,s,l,c,u,h,w,S){return e=Ja(s,l,!0,e,c,u,h,w,S),e.context=ef(null),s=e.current,l=wt(),c=tr(s),u=Cn(l,c),u.callback=n??null,Xn(s,u,c),e.current.lanes=c,Le(e,c,l),Nt(e,l),e}function $i(e,n,s,l){var c=n.current,u=wt(),h=tr(c);return s=ef(s),n.context===null?n.context=s:n.pendingContext=s,n=Cn(u,h),n.payload={element:e},l=l===void 0?null:l,l!==null&&(n.callback=l),e=Xn(c,n,h),e!==null&&(nn(e,c,h,u),hi(e,c,h)),h}function Di(e){return e=e.current,e.child?(e.child.tag===5,e.child.stateNode):null}function nf(e,n){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var s=e.retryLane;e.retryLane=s!==0&&s<n?s:n}}function Za(e,n){nf(e,n),(e=e.alternate)&&nf(e,n)}function Cm(){return null}var rf=typeof reportError=="function"?reportError:function(e){console.error(e)};function ec(e){this._internalRoot=e}zi.prototype.render=ec.prototype.render=function(e){var n=this._internalRoot;if(n===null)throw Error(i(409));$i(e,n,null,null)},zi.prototype.unmount=ec.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var n=e.containerInfo;Sr(function(){$i(null,e,null,null)}),n[xn]=null}};function zi(e){this._internalRoot=e}zi.prototype.unstable_scheduleHydration=function(e){if(e){var n=Ts();e={blockedOn:null,target:e,priority:n};for(var s=0;s<qn.length&&n!==0&&n<qn[s].priority;s++);qn.splice(s,0,e),s===0&&qc(e)}};function tc(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function Wi(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function sf(){}function bm(e,n,s,l,c){if(c){if(typeof l=="function"){var u=l;l=function(){var O=Di(h);u.call(O)}}var h=tf(n,l,e,0,null,!1,!1,"",sf);return e._reactRootContainer=h,e[xn]=h.current,Ks(e.nodeType===8?e.parentNode:e),Sr(),h}for(;c=e.lastChild;)e.removeChild(c);if(typeof l=="function"){var w=l;l=function(){var O=Di(S);w.call(O)}}var S=Ja(e,0,!1,null,null,!1,!1,"",sf);return e._reactRootContainer=S,e[xn]=S.current,Ks(e.nodeType===8?e.parentNode:e),Sr(function(){$i(n,S,s,l)}),S}function Fi(e,n,s,l,c){var u=s._reactRootContainer;if(u){var h=u;if(typeof c=="function"){var w=c;c=function(){var S=Di(h);w.call(S)}}$i(n,h,e,c)}else h=bm(s,n,e,c,l);return Di(h)}Bo=function(e){switch(e.tag){case 3:var n=e.stateNode;if(n.current.memoizedState.isDehydrated){var s=y(n.pendingLanes);s!==0&&(Fr(n,s|1),Nt(n,Qe()),($e&6)===0&&(cs=Qe()+500,Qn()))}break;case 13:Sr(function(){var l=Sn(e,1);if(l!==null){var c=wt();nn(l,e,1,c)}}),Za(e,1)}},Ps=function(e){if(e.tag===13){var n=Sn(e,134217728);if(n!==null){var s=wt();nn(n,e,134217728,s)}Za(e,134217728)}},zt=function(e){if(e.tag===13){var n=tr(e),s=Sn(e,n);if(s!==null){var l=wt();nn(s,e,n,l)}Za(e,n)}},Ts=function(){return Ae},Os=function(e,n){var s=Ae;try{return Ae=e,n()}finally{Ae=s}},Ar=function(e,n,s){switch(n){case"input":if(q(e,s),n=s.name,s.type==="radio"&&n!=null){for(s=e;s.parentNode;)s=s.parentNode;for(s=s.querySelectorAll("input[name="+JSON.stringify(""+n)+'][type="radio"]'),n=0;n<s.length;n++){var l=s[n];if(l!==e&&l.form===e.form){var c=si(l);if(!c)throw Error(i(90));tt(l),q(l,c)}}}break;case"textarea":cr(e,s);break;case"select":n=s.value,n!=null&&kt(e,!!s.multiple,n,!1)}},bs=Va,Is=Sr;var Im={usingClientEntryPoint:!1,Events:[Ys,Yr,si,Ss,Cs,Va]},uo={findFiberByHostInstance:mr,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},Nm={bundleType:uo.bundleType,version:uo.version,rendererPackageName:uo.rendererPackageName,rendererConfig:uo.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ie.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=To(e),e===null?null:e.stateNode},findFiberByHostInstance:uo.findFiberByHostInstance||Cm,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Bi=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Bi.isDisabled&&Bi.supportsFiber)try{pr=Bi.inject(Nm),Tt=Bi}catch{}}return _t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Im,_t.createPortal=function(e,n){var s=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!tc(n))throw Error(i(200));return Sm(e,n,null,s)},_t.createRoot=function(e,n){if(!tc(e))throw Error(i(299));var s=!1,l="",c=rf;return n!=null&&(n.unstable_strictMode===!0&&(s=!0),n.identifierPrefix!==void 0&&(l=n.identifierPrefix),n.onRecoverableError!==void 0&&(c=n.onRecoverableError)),n=Ja(e,1,!1,null,null,s,!1,l,c),e[xn]=n.current,Ks(e.nodeType===8?e.parentNode:e),new ec(n)},_t.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var n=e._reactInternals;if(n===void 0)throw typeof e.render=="function"?Error(i(188)):(e=Object.keys(e).join(","),Error(i(268,e)));return e=To(n),e=e===null?null:e.stateNode,e},_t.flushSync=function(e){return Sr(e)},_t.hydrate=function(e,n,s){if(!Wi(n))throw Error(i(200));return Fi(null,e,n,!0,s)},_t.hydrateRoot=function(e,n,s){if(!tc(e))throw Error(i(405));var l=s!=null&&s.hydratedSources||null,c=!1,u="",h=rf;if(s!=null&&(s.unstable_strictMode===!0&&(c=!0),s.identifierPrefix!==void 0&&(u=s.identifierPrefix),s.onRecoverableError!==void 0&&(h=s.onRecoverableError)),n=tf(n,null,e,1,s??null,c,!1,u,h),e[xn]=n.current,Ks(e),l)for(e=0;e<l.length;e++)s=l[e],c=s._getVersion,c=c(s._source),n.mutableSourceEagerHydrationData==null?n.mutableSourceEagerHydrationData=[s,c]:n.mutableSourceEagerHydrationData.push(s,c);return new zi(n)},_t.render=function(e,n,s){if(!Wi(n))throw Error(i(200));return Fi(null,e,n,!1,s)},_t.unmountComponentAtNode=function(e){if(!Wi(e))throw Error(i(40));return e._reactRootContainer?(Sr(function(){Fi(null,null,e,!1,function(){e._reactRootContainer=null,e[xn]=null})}),!0):!1},_t.unstable_batchedUpdates=Va,_t.unstable_renderSubtreeIntoContainer=function(e,n,s,l){if(!Wi(s))throw Error(i(200));if(e==null||e._reactInternals===void 0)throw Error(i(38));return Fi(e,n,s,!1,l)},_t.version="18.3.1-next-f1338f8080-20240426",_t}var pf;function Dm(){if(pf)return sc.exports;pf=1;function t(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(r){console.error(r)}}return t(),sc.exports=$m(),sc.exports}var hf;function zm(){if(hf)return qi;hf=1;var t=Dm();return qi.createRoot=t.createRoot,qi.hydrateRoot=t.hydrateRoot,qi}var Wm=zm();const Fm=ap(Wm),cp={boot:"loading",bootstrap:null,foregroundRestore:null,bootstrapEventCursor:null,connection:"connecting",connectionAttempt:0,lastCursor:0,lastEventId:null,contextRevision:"",workspaceId:"",workspace:"",workspaces:[],sessions:[],workspaceSessions:{},archivedSessions:{status:"idle",items:[],nextCursor:null,ownerWorkspaceId:""},workspaceProjectSummaries:{},workspaceResourceEpochs:{},workspaceNextCursor:null,sessionNextCursor:null,activeSessionId:null,sessionSync:{},clientTelemetry:{sessionSwitches:0,snapshotCacheHits:0,snapshotLoads:0,snapshotFailures:0},sessionProjectionById:{},sessionViewsById:{},sessionRuntimeById:{},transcript:[],tools:[],edits:[],subtasks:[],research:[],permission:null,processing:!1,statusMessage:"正在连接本地 Web Host…",mode:{baseMode:"interactive",pendingBaseMode:null},effort:null,queue:{items:[],limit:16},goal:null,goalEvidence:[],goalActivity:[],diagnostics:null,settings:null,settingsMirror:{status:"idle",document:null,lastGood:null,stale:!1,error:null,generation:0},sessionSnapshot:null,composer:null,modelCatalog:null,plan:null,skills:[],mcpServers:[],toolDetails:[],skillNextCursor:null,mcpNextCursor:null,toolDetailNextCursor:null,loopStats:null,traces:[],pendingAction:null,navigationTarget:null,pendingSessionActions:{},sessionCreationPending:!1,sessionCreationSelected:!1,notice:null,announcement:""};function ks(t){return vo(t,t.activeSessionId)}function vo(t,r){return!!(t.pendingAction||r&&Object.keys(t.pendingSessionActions[r]??{}).length)}function hc(t,r){const i=t.sessionProjectionById[r],a=t.sessionSync[r];return!!(t.connection==="live"&&i&&i.composer.workspaceId===t.workspaceId&&i.composer.contextRevision===t.contextRevision&&a?.status==="ready"&&!a.dirty)}const mf=Object.freeze({status:"idle",requestId:null});function wo(t){return t.activeSessionId?t.sessionSync[t.activeSessionId]??mf:mf}function ir(t){return!!(!t.sessionCreationSelected&&t.activeSessionId&&t.sessionSnapshot?.session.id===t.activeSessionId&&wo(t).status==="ready"&&!wo(t).dirty)}function Q({name:t,size:r=18,...i}){return o.jsx("svg",{"aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24",width:r,height:r,fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",...i,children:Bm[t]})}const Bm={activity:o.jsx("path",{d:"M3 12h4l2.2-6 4.2 12 2.2-6H21"}),add:o.jsx("path",{d:"M12 5v14M5 12h14"}),"arrow-up":o.jsx("path",{d:"m6 11 6-6 6 6M12 5v14"}),branch:o.jsxs(o.Fragment,{children:[o.jsx("circle",{cx:"6",cy:"5",r:"2"}),o.jsx("circle",{cx:"18",cy:"7",r:"2"}),o.jsx("circle",{cx:"6",cy:"19",r:"2"}),o.jsx("path",{d:"M6 7v10M8 12h4a6 6 0 0 0 6-3"})]}),check:o.jsx("path",{d:"m5 12 4 4L19 6"}),chevron:o.jsx("path",{d:"m9 7 5 5-5 5"}),close:o.jsx("path",{d:"m6 6 12 12M18 6 6 18"}),code:o.jsx("path",{d:"m8 9-4 3 4 3M16 9l4 3-4 3M14 5l-4 14"}),copy:o.jsxs(o.Fragment,{children:[o.jsx("rect",{x:"8",y:"8",width:"11",height:"11",rx:"2"}),o.jsx("path",{d:"M16 8V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h2"})]}),diagnostics:o.jsxs(o.Fragment,{children:[o.jsx("path",{d:"M4 19V9M10 19V5M16 19v-7M22 19V3"}),o.jsx("path",{d:"M2 19h21"})]}),edit:o.jsxs(o.Fragment,{children:[o.jsx("path",{d:"M12 20h9"}),o.jsx("path",{d:"M16.5 3.5a2.1 2.1 0 0 1 3 3L8 18l-4 1 1-4Z"})]}),goal:o.jsxs(o.Fragment,{children:[o.jsx("circle",{cx:"12",cy:"12",r:"8"}),o.jsx("circle",{cx:"12",cy:"12",r:"3"}),o.jsx("path",{d:"m15 9 5-5M17 4h3v3"})]}),info:o.jsxs(o.Fragment,{children:[o.jsx("circle",{cx:"12",cy:"12",r:"9"}),o.jsx("path",{d:"M12 11v5M12 8h.01"})]}),keyboard:o.jsxs(o.Fragment,{children:[o.jsx("rect",{x:"2",y:"6",width:"20",height:"12",rx:"2"}),o.jsx("path",{d:"M6 10h.01M10 10h.01M14 10h.01M18 10h.01M6 14h.01M18 14h.01M9.5 14.5h5"})]}),menu:o.jsx("path",{d:"M4 7h16M4 12h16M4 17h16"}),monitor:o.jsxs(o.Fragment,{children:[o.jsx("rect",{x:"2",y:"3",width:"20",height:"14",rx:"2"}),o.jsx("path",{d:"M8 21h8M12 17v4"})]}),moon:o.jsx("path",{d:"M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z"}),more:o.jsxs(o.Fragment,{children:[o.jsx("circle",{cx:"5",cy:"12",r:"1",fill:"currentColor",stroke:"none"}),o.jsx("circle",{cx:"12",cy:"12",r:"1",fill:"currentColor",stroke:"none"}),o.jsx("circle",{cx:"19",cy:"12",r:"1",fill:"currentColor",stroke:"none"})]}),pause:o.jsx("path",{d:"M9 5v14M15 5v14"}),refresh:o.jsx("path",{d:"M20 7v5h-5M4 17v-5h5M6.1 9A7 7 0 0 1 18 6l2 6M17.9 15A7 7 0 0 1 6 18l-2-6"}),search:o.jsxs(o.Fragment,{children:[o.jsx("circle",{cx:"11",cy:"11",r:"7"}),o.jsx("path",{d:"m20 20-4-4"})]}),settings:o.jsxs(o.Fragment,{children:[o.jsx("circle",{cx:"12",cy:"12",r:"3"}),o.jsx("path",{d:"M19.4 15a1.7 1.7 0 0 0 .3 1.9l.1.1-2.8 2.8-.1-.1a1.7 1.7 0 0 0-1.9-.3 1.7 1.7 0 0 0-1 1.6v.2h-4V21a1.7 1.7 0 0 0-1-1.6 1.7 1.7 0 0 0-1.9.3l-.1.1L4.2 17l.1-.1a1.7 1.7 0 0 0 .3-1.9A1.7 1.7 0 0 0 3 14H2.8v-4H3a1.7 1.7 0 0 0 1.6-1 1.7 1.7 0 0 0-.3-1.9L4.2 7 7 4.2l.1.1A1.7 1.7 0 0 0 9 4.6a1.7 1.7 0 0 0 1-1.6v-.2h4V3a1.7 1.7 0 0 0 1 1.6 1.7 1.7 0 0 0 1.9-.3l.1-.1L19.8 7l-.1.1a1.7 1.7 0 0 0-.3 1.9 1.7 1.7 0 0 0 1.6 1h.2v4H21a1.7 1.7 0 0 0-1.6 1Z"})]}),sidebar:o.jsxs(o.Fragment,{children:[o.jsx("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),o.jsx("path",{d:"M9 4v16"})]}),spark:o.jsx("path",{d:"m12 3 1.5 5.5L19 10l-5.5 1.5L12 17l-1.5-5.5L5 10l5.5-1.5ZM19 16l.7 2.3L22 19l-2.3.7L19 22l-.7-2.3L16 19l2.3-.7Z"}),stop:o.jsx("rect",{x:"6",y:"6",width:"12",height:"12",rx:"2"}),sun:o.jsxs(o.Fragment,{children:[o.jsx("circle",{cx:"12",cy:"12",r:"4"}),o.jsx("path",{d:"M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4"})]}),terminal:o.jsx("path",{d:"m5 7 4 4-4 4M11 16h8"}),trash:o.jsx(o.Fragment,{children:o.jsx("path",{d:"M4 7h16M9 7V4h6v3M7 7l1 13h8l1-13M10 11v5M14 11v5"})}),warning:o.jsxs(o.Fragment,{children:[o.jsx("path",{d:"M12 3 2.5 20h19Z"}),o.jsx("path",{d:"M12 9v4M12 17h.01"})]}),workspace:o.jsxs(o.Fragment,{children:[o.jsx("path",{d:"M3 7h7l2 2h9v10H3Z"}),o.jsx("path",{d:"M3 7V5h7l2 2"})]}),"chevron-left":o.jsx("path",{d:"m15 7-5 5 5 5"})};function ko({children:t,className:r=""}){return o.jsx("div",{className:`markdown ${r}`.trim(),children:up(t)})}function up(t){const r=t.replace(/\r\n?/g,`
10
10
  `).split(`
11
11
  `),i=[];let a=0;for(;a<r.length;){const d=r[a];if(!d.trim()){a+=1;continue}const f=d.match(/^\s*```([^`]*)$/);if(f){const b=[];for(a+=1;a<r.length&&!/^\s*```\s*$/.test(r[a]);)b.push(r[a]),a+=1;a<r.length&&(a+=1),i.push(o.jsx(Gm,{language:f[1].trim(),content:b.join(`
12
12
  `)},`code-${a}`));continue}const p=d.match(/^(#{1,6})\s+(.+)$/);if(p){const b=Math.min(6,p[1].length);i.push(Km(b,yo(p[2],`heading-${a}`),`heading-${a}`)),a+=1;continue}if(/^\s*>\s?/.test(d)){const b=[];for(;a<r.length&&/^\s*>\s?/.test(r[a]);)b.push(r[a].replace(/^\s*>\s?/,"")),a+=1;i.push(o.jsx("blockquote",{children:up(b.join(`
13
- `))},`quote-${a}`));continue}if(d.match(/^\s*(?:[-*+] |\d+[.)] )(.+)$/)){const b=/^\s*\d/.test(d),j=[],N=b?/^\s*\d+[.)]\s+(.+)$/:/^\s*[-*+]\s+(.+)$/;for(;a<r.length;){const z=r[a].match(N);if(!z)break;j.push(z[1]),a+=1}const E=j.map((z,L)=>o.jsx("li",{children:yo(z,`list-${a}-${L}`)},`item-${a}-${L}`));i.push(b?o.jsx("ol",{children:E},`list-${a}`):o.jsx("ul",{children:E},`list-${a}`));continue}const x=mc(d);if(x&&x.length>=1&&a+1<r.length){const b=Um(r[a+1]);if(b&&b.length===x.length){const j=[x];for(a+=2;a<r.length;){const N=mc(r[a]);if(!N||N.length!==x.length)break;j.push(N),a+=1}i.push(Hm(j,b,`table-${a}`));continue}}const k=[d.trim()];for(a+=1;a<r.length&&r[a].trim()&&!qm(r[a]);)k.push(r[a].trim()),a+=1;i.push(o.jsx("p",{children:yo(k.join(" "),`paragraph-${a}`)},`paragraph-${a}`))}return i}function qm(t){return/^\s*```/.test(t)||/^(#{1,6})\s+/.test(t)||/^\s*>\s?/.test(t)||/^\s*(?:[-*+] |\d+[.)] )/.test(t)||mc(t)!==null}function mc(t){if(!t.includes("|"))return null;const r=t.split("|"),i=r[0].trim()==="",a=r[r.length-1].trim()==="",d=i&&a?r.slice(1,-1):r;return d.length===0?null:d.map(f=>f.trim())}function Um(t){if(!t.includes("|")&&!/[-:]/.test(t))return null;let r=t.split("|").map(a=>a.trim());if(r.length>=2&&r[0]===""&&r[r.length-1]===""&&(r=r.slice(1,-1)),r.length<1)return null;const i=[];for(const a of r){if(a===""||!/^:?-+:?$/.test(a))return null;const d=a.startsWith(":"),f=a.endsWith(":");d&&f?i.push("center"):f?i.push("right"):i.push("left")}return i}function Hm(t,r,i){const[a,...d]=t,f=p=>p==="left"?void 0:{textAlign:p};return o.jsxs("table",{className:"markdown-table",children:[o.jsx("thead",{children:o.jsx("tr",{children:a.map((p,g)=>o.jsx("th",{style:f(r[g]),children:yo(p,`${i}-th-${g}`)},`th-${g}`))})}),o.jsx("tbody",{children:d.map((p,g)=>o.jsx("tr",{children:p.map((x,k)=>o.jsx("td",{style:f(r[k]),children:yo(x,`${i}-td-${g}-${k}`)},`td-${g}-${k}`))},`tr-${g}`))})]},i)}function yo(t,r){const i=/(`[^`\n]+`|\*\*[^*\n]+\*\*|\[[^\]\n]+\]\([^\s)]+\))/g,a=[];let d=0,f,p=0;for(;f=i.exec(t);){f.index>d&&a.push(t.slice(d,f.index));const g=f[0],x=`${r}-${p++}`;if(g.startsWith("`"))a.push(o.jsx("code",{children:g.slice(1,-1)},x));else if(g.startsWith("**"))a.push(o.jsx("strong",{children:g.slice(2,-2)},x));else{const k=g.match(/^\[([^\]]+)\]\(([^)]+)\)$/);k&&Vm(k[2])?a.push(o.jsx("a",{href:k[2],target:"_blank",rel:"noopener noreferrer",referrerPolicy:"no-referrer",children:k[1]},x)):a.push(g)}d=f.index+g.length}return d<t.length&&a.push(t.slice(d)),a}function Vm(t){try{const r=new URL(t);return r.protocol==="https:"||r.protocol==="http:"||r.protocol==="mailto:"}catch{return!1}}function Km(t,r,i){return t===1?o.jsx("h1",{children:r},i):t===2?o.jsx("h2",{children:r},i):t===3?o.jsx("h3",{children:r},i):t===4?o.jsx("h4",{children:r},i):t===5?o.jsx("h5",{children:r},i):o.jsx("h6",{children:r},i)}function Gm({language:t,content:r}){const[i,a]=m.useState("idle"),d=async()=>{try{await navigator.clipboard.writeText(r),a("copied"),window.setTimeout(()=>a("idle"),1400)}catch{a("failed")}};return o.jsxs("figure",{className:"code-block",children:[o.jsxs("figcaption",{children:[o.jsx("span",{children:t||"text"}),o.jsxs("button",{type:"button",className:"icon-text-button",onClick:d,"aria-label":"复制代码",children:[o.jsx(Q,{name:i==="copied"?"check":"copy",size:15}),i==="copied"?"已复制":i==="failed"?"复制失败":"复制"]})]}),o.jsx("pre",{tabIndex:0,"aria-label":`${t||"文本"}代码块`,children:o.jsx("code",{children:r})})]})}function On(t){return t.replace(/\u001b\[[0-?]*[ -/]*[@-~]/g,"").replace(/[\u0000-\u0008\u000b\u000c\u000e-\u001f\u007f]/g,"")}function Pc(t,r=8e3){const i=/api.?key|authorization|cookie|password|secret|token/i;let a;try{a=JSON.stringify(t,(f,p)=>f&&i.test(f)?"[REDACTED]":p,2)}catch{a=String(t)}const d=On(a);return d.length<=r?d:`${d.slice(0,r)}
14
- …已截断`}const Qm=Object.freeze({activating:"running",closed:"danger",completed:"success",connected:"success",done:"success",draining:"warning",error:"danger",failed:"danger",live:"running",offline:"danger",passed:"success",pending:"running",queued:"running",ready:"success",rejected:"danger",replay:"warning","replay-required":"warning",running:"running",skipped:"warning",streaming:"running",success:"success",timedout:"warning",warning:"warning"}),gf=Object.freeze({danger:"失败",idle:"空闲",running:"进行中",success:"已完成",warning:"部分完成"});function Ym(t){return Qm[t.trim().toLowerCase()]??"idle"}function Xm(t){return gf[t]??gf.idle}function Tc({state:t,className:r="",label:i,describe:a=!0}){const d=Ym(t);return o.jsxs(o.Fragment,{children:[o.jsx("span",{className:`state-dot state-${t}${r?` ${r}`:""}`,"data-tone":d,"aria-hidden":"true"}),a?o.jsx("span",{className:"sr-only",children:i??Xm(d)}):null]})}const ws="orion.web.composer-drafts.v1",dp=20,gc=256*1024,Jm=5*1024*1024;function Zm(t,r){return ml().entries.find(i=>i.workspaceId===t&&i.sessionId===r)??null}function eg(t){const r=gl();if(!r)return;const i=Object.freeze({...t,references:[...t.references],updatedAt:Date.now()});if(vc(i)>gc)throw new Error(`Composer draft exceeds ${gc} bytes.`);const a=ml().entries.filter(f=>!(f.workspaceId===t.workspaceId&&f.sessionId===t.sessionId)),d=[i,...a].slice(0,dp);for(;d.length>0&&vc({version:1,entries:d})>Jm;)d.pop();r.setItem(ws,JSON.stringify({version:1,entries:d}))}function vf(t,r){const i=gl();if(!i)return;const a=ml().entries.filter(d=>!(d.workspaceId===t&&d.sessionId===r));a.length===0?i.removeItem(ws):i.setItem(ws,JSON.stringify({version:1,entries:a}))}function tg(t){const r=gl();if(!r)return;const i=ml().entries.filter(a=>a.workspaceId!==t);i.length===0?r.removeItem(ws):r.setItem(ws,JSON.stringify({version:1,entries:i}))}function ml(){const t=gl();if(!t)return{version:1,entries:[]};try{const r=JSON.parse(t.getItem(ws)??"");return r.version!==1||!Array.isArray(r.entries)?{version:1,entries:[]}:{version:1,entries:r.entries.filter(ng).slice(0,dp)}}catch{return{version:1,entries:[]}}}function ng(t){if(!t||typeof t!="object")return!1;const r=t;return typeof r.workspaceId=="string"&&typeof r.sessionId=="string"&&typeof r.text=="string"&&Array.isArray(r.references)&&typeof r.updatedAt=="number"&&Number.isFinite(r.updatedAt)&&vc(r)<=gc}function gl(){try{return typeof window>"u"?null:window.sessionStorage}catch{return null}}function vc(t){return new TextEncoder().encode(JSON.stringify(t)).byteLength}const fp=/^hmac-sha256:[0-9a-f]{64}$/,rg=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,sg=/^(?:api[-_]?key|authorization|cookie|password|secret|access[-_]?token|refresh[-_]?token|auth[-_]?token|credential[-_]?value|headers?|env(?:ironment)?[-_]?name)$/i,og=["ready","invalid","read-only","unavailable"],ig=["internal","model","global","project","session"],lg=["global","project","session"],ag=["live","next-logical-request","new-session","restart"],cg=["runtime_busy","read_only","invalid_document"],ug=["system","light","dark"],dg=["system","reduced"],fg=["classic","orion-blocksmith"],pp=["auto","none","minimal","low","medium","high","xhigh","max"],pg=["ask","allow","deny"],hg=["appearance.style","appearance.theme","appearance.motion","defaults.model","defaults.effort","permissions.toolConfirmation"];function yc(t){il(t);const r=Kt(t,"Settings document");if(Gt(r,["schemaVersion","revision","state","writable","hasDocument","workspace","sections","models","credentials","currentSession","diagnostic"]),r.schemaVersion!==1&&r.schemaVersion!==2)throw new Error("Settings schemaVersion is not supported.");const i=r.schemaVersion,a=Pt(r.revision,"Settings revision");if(!fp.test(a))throw new Error("Settings revision is invalid.");const d=on(r.state,"Settings state",og),f=Kt(r.sections,"Settings sections");Gt(f,["appearance","defaults","permissions"]);const p=Kt(f.appearance,"Appearance settings");Gt(p,i===1?["theme","motion"]:["style","theme","motion"]);const g=Kt(f.defaults,"Default settings");Gt(g,["model","effort"]);const x=Kt(f.permissions,"Permission settings");Gt(x,["toolConfirmation"]);const k=xc(r.models,"Settings models").map(vg),b=xc(r.credentials,"Credential status").map(yg),j=r.currentSession===void 0?void 0:xg(r.currentSession),N=r.diagnostic===void 0?void 0:wg(r.diagnostic);return{schemaVersion:2,revision:a,state:d,writable:gs(r.writable,"Settings writable"),hasDocument:gs(r.hasDocument,"Settings document availability"),workspace:Pt(r.workspace,"Settings workspace"),sections:{appearance:{style:i===1?Cg(d,gs(r.writable,"Settings writable")):ds(p.style,"Visual style",Sg),theme:ds(p.theme,"Theme",jg),motion:ds(p.motion,"Motion",bg)},defaults:{model:ds(g.model,"Default model",_g),effort:ds(g.effort,"Default effort",Ig)},permissions:{toolConfirmation:ds(x.toolConfirmation,"Tool confirmation",Ng)}},models:k,credentials:b,...j?{currentSession:j}:{},...N?{diagnostic:N}:{}}}function mg(t){il(t);const r=Kt(t,"Settings mutation result");Gt(r,["requestId","revision","appliedKeys","settings"]);const i=Pt(r.requestId,"Settings requestId");if(!rg.test(i))throw new Error("Settings requestId is invalid.");const a=yc(r.settings),d=Pt(r.revision,"Settings mutation revision");if(d!==a.revision)throw new Error("Settings mutation revisions do not match.");const f=xc(r.appliedKeys,"Applied setting keys").map((p,g)=>on(p,`Applied setting key ${g+1}`,hg));if(new Set(f).size!==f.length)throw new Error("Settings mutation contains duplicate applied keys.");return{requestId:i,revision:d,appliedKeys:f,settings:a}}function gg(t){const r=Kt(t.payload,"Settings invalidation payload");Gt(r,["revision","reason","state"]);const i=Pt(r.revision,"Settings invalidation revision");if(!fp.test(i))throw new Error("Settings invalidation revision is invalid.");return{apiVersion:1,eventId:Pt(t.eventId,"Settings invalidation eventId"),cursor:kg(t.cursor,"Settings invalidation cursor"),sessionId:null,threadId:null,durable:!1,timestamp:Pt(t.timestamp,"Settings invalidation timestamp"),type:"settings_invalidated",payload:{revision:i,reason:on(r.reason,"Settings invalidation reason",["local-write","external-edit","workspace-change"]),state:on(r.state,"Settings invalidation state",["ready","invalid"])}}}function ds(t,r,i){const a=Kt(t,`${r} field`);if(Gt(a,["effectiveValue","explicitValue","inheritedValue","source","scope","applies","overridden","writable","blockedReason"]),!i(a.effectiveValue))throw new Error(`${r} effective value is invalid.`);if(a.explicitValue!==void 0&&!i(a.explicitValue))throw new Error(`${r} explicit value is invalid.`);if(a.inheritedValue!==void 0&&!i(a.inheritedValue))throw new Error(`${r} inherited value is invalid.`);const d=a.explicitValue,f=a.inheritedValue;return{effectiveValue:a.effectiveValue,...d===void 0?{}:{explicitValue:d},...f===void 0?{}:{inheritedValue:f},source:on(a.source,`${r} source`,ig),scope:on(a.scope,`${r} scope`,lg),applies:on(a.applies,`${r} application timing`,ag),overridden:gs(a.overridden,`${r} override state`),writable:gs(a.writable,`${r} writable state`),...a.blockedReason===void 0?{}:{blockedReason:on(a.blockedReason,`${r} blocked reason`,cg)}}}function vg(t,r){const i=Kt(t,`Model ${r+1}`);return Gt(i,["id","label","provider"]),{id:Pt(i.id,`Model ${r+1} id`),label:Pt(i.label,`Model ${r+1} label`),...i.provider===void 0?{}:{provider:Pt(i.provider,`Model ${r+1} provider`)}}}function yg(t,r){const i=Kt(t,`Credential ${r+1}`);if(Gt(i,["providerId","state","source","writable"]),i.writable!==!1)throw new Error("Browser credential status must be read-only.");return{providerId:Pt(i.providerId,`Credential ${r+1} provider`),state:on(i.state,`Credential ${r+1} state`,["ready","missing","unavailable"]),source:on(i.source,`Credential ${r+1} source`,["environment","legacy","none"]),writable:!1}}function xg(t){const r=Kt(t,"Current session settings");return Gt(r,["model","effort","overridesProjectEffort"]),{model:Pt(r.model,"Current session model"),effort:on(r.effort,"Current session effort",pp),overridesProjectEffort:gs(r.overridesProjectEffort,"Current session effort override state")}}function wg(t){const r=Kt(t,"Settings diagnostic");return Gt(r,["code","message"]),{code:Pt(r.code,"Settings diagnostic code"),message:Pt(r.message,"Settings diagnostic message")}}function il(t,r=new Set){if(!(!t||typeof t!="object")){if(r.has(t))throw new Error("Settings response contains a cycle.");r.add(t);try{if(Array.isArray(t)){for(const i of t)il(i,r);return}for(const[i,a]of Object.entries(t)){if(sg.test(i))throw new Error("Settings response contains a forbidden secret-bearing field.");il(a,r)}}finally{r.delete(t)}}}function Kt(t,r){if(!t||typeof t!="object"||Array.isArray(t))throw new Error(`${r} must be an object.`);return t}function xc(t,r){if(!Array.isArray(t))throw new Error(`${r} must be an array.`);return t}function Pt(t,r){if(typeof t!="string"||!t.trim())throw new Error(`${r} must be text.`);return t}function gs(t,r){if(typeof t!="boolean")throw new Error(`${r} must be boolean.`);return t}function kg(t,r){if(!Number.isSafeInteger(t)||t<0)throw new Error(`${r} must be a non-negative safe integer.`);return t}function on(t,r,i){if(typeof t!="string"||!i.includes(t))throw new Error(`${r} is invalid.`);return t}function Gt(t,r){const i=new Set(r),a=Object.keys(t).find(d=>!i.has(d));if(a)throw new Error(`Settings response contains an unknown field: ${a}.`)}function jg(t){return typeof t=="string"&&ug.includes(t)}function Sg(t){return typeof t=="string"&&fg.includes(t)}function Cg(t,r){const i=t==="invalid"?"invalid_document":t==="ready"&&r?void 0:"read_only";return{effectiveValue:"orion-blocksmith",inheritedValue:"orion-blocksmith",source:"internal",scope:"global",applies:"live",overridden:!1,writable:t==="ready"&&r,...i?{blockedReason:i}:{}}}function bg(t){return typeof t=="string"&&dg.includes(t)}function Ig(t){return typeof t=="string"&&pp.includes(t)}function Ng(t){return typeof t=="string"&&pg.includes(t)}function _g(t){return typeof t=="string"&&!!t.trim()}const Ui="/api/v1",Eg="x-orion-web-nonce",wc=100,Rg=50,mn=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;class Oe extends Error{constructor(i,a,d,f){super(i);Vt(this,"status");Vt(this,"code");Vt(this,"type");this.status=a,this.code=d,this.type=f,this.name="WebApiError"}}class Pg{constructor(){Vt(this,"nonce","")}async bootstrap(){const r=await this.query("/bootstrap");if(!En(r)||r.apiVersion!==1||typeof r.nonce!="string")throw new Oe("Web Host 返回了不兼容的启动协议。",502);return this.nonce=r.nonce,{...r,settings:yc(r.settings)}}async listWorkspaces(r,i){const a=await this.collectionPage(Fe("/workspaces",r),i),d=a.items.find(f=>f.active);return{activeId:d?.id??"",activePath:d?.path??"",workspaces:a.items,nextCursor:a.nextCursor}}async listWorkspaceSessions(r,i,a){const d=await this.collectionPage(Fe(`/workspaces/${encodeURIComponent(r)}/sessions`,i),a);return{sessions:d.items,nextCursor:d.nextCursor}}workspaceProjectSummary(r,i){return this.query(Fe(`/workspaces/${encodeURIComponent(r)}/summary`,i))}async listSessions(r,i){const a=await this.collectionPage(Fe("/sessions",r),i);return{sessions:a.items,nextCursor:a.nextCursor}}diagnostics(r){return this.query(Fe("/diagnostics",r))}async settings(){return yc(await this.query("/settings"))}async sessionSnapshot(r,i,a){const d=`/sessions/${encodeURIComponent(r)}/snapshot`;return this.query(lc(Fe(d,i),a??null,!0,Rg))}composerState(r,i){return this.query(Fe(`/sessions/${encodeURIComponent(r)}/composer-state`,i))}modelCatalog(r,i,a){return this.query(lc(Fe(`/sessions/${encodeURIComponent(r)}/model-catalog`,i),a??null,!1,wc))}composerAction(r,i){return this.mutate(`/sessions/${encodeURIComponent(r)}/composer-actions`,"POST",{...i,requestId:We()})}async skills(r,i){const a=await this.collectionPage(Fe("/skills",r),i);return{skills:a.items,nextCursor:a.nextCursor}}async mcp(r,i){const a=await this.collectionPage(Fe("/mcp",r),i);return{servers:a.items,nextCursor:a.nextCursor}}async toolDetails(r,i){const a=await this.collectionPage(Fe("/tool-details",r),i);return{details:a.items,nextCursor:a.nextCursor}}readToolDetail(r,i,a=0,d=64*1024){const f=new URLSearchParams({offsetBytes:String(a),limitBytes:String(d)});return _n(f,i),this.query(`/tool-details/${encodeURIComponent(r)}?${f.toString()}`)}listFiles(r,i,a){const d=new URLSearchParams({pageSize:"100"});return _n(d,r),i&&d.set("parentId",i),a&&d.set("cursor",a),this.query(`/files?${d.toString()}`)}readFileContent(r,i,a){const d=new URLSearchParams({limitBytes:String(65536)});return _n(d,i),a&&d.set("cursor",a),this.query(`/files/${encodeURIComponent(r)}/content?${d.toString()}`)}writeFileContent(r,i,a,d){return this.mutate("/files/write","POST",{...r,fileId:i,content:a,expectedRevision:d,requestId:We()},{"X-Orion-User-Gesture":"file-mutation-v1"})}gitStatus(r,i,a){const d=new URLSearchParams({pageSize:"200"});return _n(d,r),i&&d.set("cursor",i),a?.group&&d.set("group",a.group),a?.query&&d.set("query",a.query),this.query(`/git/status?${d.toString()}`)}gitLog(r,i){const a=new URLSearchParams({pageSize:"30"});return _n(a,r),i&&a.set("cursor",i),this.query(`/git/log?${a.toString()}`)}gitDiff(r,i,a){const d=new URLSearchParams({lineLimit:"240",byteLimit:String(262144)});return _n(d,i),a&&d.set("cursor",a),this.query(`/git/diff/${encodeURIComponent(r)}?${d.toString()}`)}gitDiffDocument(r,i,a,d,f){const p=new URLSearchParams({lineLimit:"240",byteLimit:String(262144)});return _n(p,i),a&&p.set("cursor",a),d&&p.set("ignoreWhitespace","1"),f&&p.set("wordDiff","1"),this.query(`/git/diff-v2/${encodeURIComponent(r)}?${p.toString()}`)}review(r){return this.query(Fe("/review",r))}async terminals(r,i){const a=await this.collectionPage(Fe("/terminals",r),i);return{terminals:a.items,nextCursor:a.nextCursor}}createTerminal(r){return this.mutate("/terminals","POST",{...r,requestId:We()},{"X-Orion-User-Gesture":"terminal-create-v1"})}terminalAttachTicket(r,i){return this.mutate(`/terminals/${encodeURIComponent(r)}/attach-ticket`,"POST",{...i,requestId:We()})}closeTerminal(r,i){return this.mutate(`/terminals/${encodeURIComponent(r)}`,"DELETE",{...i,requestId:We()})}terminalSocket(r){const i=location.protocol==="https:"?"wss:":"ws:";return new WebSocket(`${i}//${location.host}${Ui}/terminals/${encodeURIComponent(r)}/stream`,"orion-terminal-v1")}async searchFiles(r,i,a,d=50){const f=new URLSearchParams({q:i.slice(0,200),scope:a,limit:String(d)});return _n(f,r),this.query(`/files/search?${f.toString()}`)}gitStage(r,i,a){return this.mutate("/git/stage","POST",{...r,fileIds:i,expectedRepositoryRevision:a,requestId:We()},{"X-Orion-User-Gesture":"git-mutation-v1"})}gitUnstage(r,i,a){return this.mutate("/git/unstage","POST",{...r,fileIds:i,expectedRepositoryRevision:a,requestId:We()},{"X-Orion-User-Gesture":"git-mutation-v1"})}gitCommit(r,i){return this.mutate("/git/commit","POST",{...r,summary:i.summary,...i.body===void 0?{}:{body:i.body},expectedRepositoryRevision:i.expectedRepositoryRevision,requestId:i.requestId},{"X-Orion-User-Gesture":"git-mutation-v1"})}gitCompare(r,i){const a=new URLSearchParams({base:i.baseRef,head:i.headRef,mode:i.mode});return this.query(Fe(`/git/compare?${a.toString()}`,r))}gitCompareFileDiff(r,i){const a=new URLSearchParams({baseOid:i.baseOid,headOid:i.headOid,path:i.path});return i.cursor&&a.set("cursor",i.cursor),this.query(Fe(`/git/compare/file?${a.toString()}`,r))}gitRefs(r){return this.query(Fe("/git/refs",r))}gitHistory(r,i){const a=new URLSearchParams;for(const[d,f]of Object.entries(i))f!==void 0&&f!==""&&a.set(d,String(f));return this.query(Fe(`/git/history?${a.toString()}`,r))}gitCommitDetail(r,i,a=0){const d=new URLSearchParams({parent:String(a)});return this.query(Fe(`/git/commit/${encodeURIComponent(i)}?${d.toString()}`,r))}gitCommitFiles(r,i,a=0){const d=new URLSearchParams({parent:String(a)});return this.query(Fe(`/git/commit/${encodeURIComponent(i)}/files?${d.toString()}`,r))}gitCommitDiff(r,i){const a=new URLSearchParams({path:i.path,parent:String(i.parentIndex??0)});return i.cursor&&a.set("cursor",i.cursor),this.query(Fe(`/git/commit/${encodeURIComponent(i.oid)}/diff?${a.toString()}`,r))}gitFilesTarget(r,i){const a=new URLSearchParams({fileToken:i});return this.query(Fe(`/git/files-target?${a.toString()}`,r))}gitGraph(r,i=200){const a=new URLSearchParams({limit:String(i)});return this.query(Fe(`/git/graph?${a.toString()}`,r))}gitConflictVersions(r,i){const a=new URLSearchParams({path:i});return this.query(Fe(`/git/conflict?${a.toString()}`,r))}gitBlob(r,i){const a=new URLSearchParams({path:i.path,rev:i.rev});return this.query(Fe(`/git/blob?${a.toString()}`,r))}gitSubmodules(r){return this.query(Fe("/git/submodules",r))}gitBlame(r,i){const a=new URLSearchParams({path:i.path});return i.rev&&a.set("rev",i.rev),i.limit!==void 0&&a.set("limit",String(i.limit)),this.query(Fe(`/git/blame?${a.toString()}`,r))}gitFileHistory(r,i){const a=new URLSearchParams({path:i.path});return i.rev&&a.set("rev",i.rev),i.limit!==void 0&&a.set("limit",String(i.limit)),this.query(Fe(`/git/file-history?${a.toString()}`,r))}gitCommitPreview(r){return this.query(Fe("/git/commit/preview",r))}gitApplyPatch(r,i){return this.mutate("/git/patch","POST",{...r,fileId:i.fileId,...i.hunkIds?{hunkIds:[...i.hunkIds]}:{},...i.lineIds?{lineIds:[...i.lineIds]}:{},expectedRepositoryRevision:i.expectedRepositoryRevision,requestId:We()},{"X-Orion-User-Gesture":"git-mutation-v1"})}activateContext(r){return this.mutate("/context/activate","POST",{...r,requestId:We()})}async setWorkspacePinned(r,i,a){return(await this.mutate(`/workspaces/${encodeURIComponent(r)}/pin`,"POST",{requestId:We(),pinned:i,...a})).workspace}removeWorkspace(r,i){return this.mutate(`/workspaces/${encodeURIComponent(r)}`,"DELETE",{requestId:We(),...i})}async activateWorkspace(r,i){const a=await this.mutate("/workspaces/activate","POST",{requestId:We(),path:r,...i});return{requestId:a.requestId,activeId:a.page.items.find(d=>d.active)?.id??"",activePath:a.active,workspaces:a.page.items,nextCursor:a.page.nextCursor}}pickDirectory(r){return this.mutate("/workspaces/pick-directory","POST",{requestId:We(),...r.title?{title:r.title}:{},...r.initialPath?{initialPath:r.initialPath}:{}})}async inspectWorkspace(r,i){return(await this.mutate("/workspaces/inspect","POST",{requestId:We(),path:r,...i?{source:i}:{}})).candidate}async listWorkspaceRoots(){return this.query("/workspaces/roots").then(r=>r.roots)}async addWorkspaceRoot(r){return(await this.mutate("/workspaces/roots/add","POST",{requestId:We(),path:r})).root}async removeWorkspaceRoot(r){return(await this.mutate("/workspaces/roots/remove","POST",{requestId:We(),rootId:r})).removed}async discoverWorkspaceRoot(r,i={}){return this.mutate("/workspaces/roots/discover","POST",{requestId:We(),rootId:r,refresh:i.refresh??!0})}async createSession(r){return(await this.mutate("/sessions","POST",{requestId:We(),...r})).session}activateSession(r,i){return this.mutate(`/sessions/${encodeURIComponent(r)}/activate`,"POST",{requestId:We(),...i})}async renameSession(r,i,a){return(await this.mutate(`/sessions/${encodeURIComponent(r)}`,"PATCH",{requestId:We(),name:i,...a})).session}async updateSessionTags(r,i,a){return(await this.mutate(`/sessions/${encodeURIComponent(r)}/tags`,"POST",{requestId:We(),tags:[...i],...a})).session}async archiveSession(r,i){return(await this.mutate(`/sessions/${encodeURIComponent(r)}/archive`,"POST",{requestId:We(),...i})).session}async restoreSession(r,i){return(await this.mutate(`/sessions/${encodeURIComponent(r)}/restore`,"POST",{requestId:We(),...i})).session}async deleteSession(r,i){await this.mutate(`/sessions/${encodeURIComponent(r)}`,"DELETE",{requestId:We(),...i})}async listArchivedWorkspaceSessions(r,i,a){const d=await this.collectionPage(Fe(`/workspaces/${encodeURIComponent(r)}/sessions/archived`,i),a);return{sessions:d.items,nextCursor:d.nextCursor}}command(r){return this.mutate("/commands","POST",{...r,requestId:We()})}async updateSettings(r,i,a,d=We()){const f=await this.mutate("/settings","PATCH",{operations:i,expectedRevision:r,...a,requestId:d}),p=mg(f);if(p.requestId!==d)throw new Oe("Host 返回了其他设置请求的结果。",502,"settings_response_invalid");const g=i.map(x=>x.key);if(p.appliedKeys.length!==g.length||g.some(x=>!p.appliedKeys.includes(x)))throw new Oe("Host 返回的设置字段与提交内容不一致。",502,"settings_response_invalid");return p}openSettingsDocument(){return this.mutate("/settings/open-document","POST",{requestId:We()})}connectEvents(r){let i=Math.max(0,r.cursor??0),a=null,d,f=0,p=!1,g=!1;const x=()=>{if(!(p||g)){if(!navigator.onLine){r.onStatus("offline",f);return}r.onStatus(f===0?"connecting":"reconnecting",f),a=new EventSource(`${Ui}/events?cursor=${i}`),a.onopen=()=>{f=0,r.onStatus("live",f)},a.addEventListener("orion",j=>{if(!(p||g))try{const N=Tg(j.data);if(N.type==="replay_reset"){i=N.cursor,r.onEvent(N),g=!0,a?.close(),a=null,window.clearTimeout(d);return}if(N.cursor<=i)return;i=N.cursor,r.onEvent(N)}catch(N){r.onProtocolError?.(N instanceof Error?N.message:"无法解析 Web Host 事件流消息。")}}),a.onerror=()=>{if(a?.close(),a=null,p||g)return;f+=1,r.onStatus(navigator.onLine?"reconnecting":"offline",f);const j=Math.min(1e4,500*2**Math.min(f,5));window.clearTimeout(d),d=window.setTimeout(x,j)}}},k=()=>{p||g||a||(window.clearTimeout(d),x())},b=()=>{window.clearTimeout(d),a?.close(),a=null,!g&&r.onStatus("offline",f)};return window.addEventListener("online",k),window.addEventListener("offline",b),x(),{close(){p=!0,window.clearTimeout(d),a?.close(),a=null,window.removeEventListener("online",k),window.removeEventListener("offline",b)},cursor:()=>i}}collectionPage(r,i){return this.query(lc(r,i??null,!1,wc))}async query(r){const i=await fetch(`${Ui}${r}`,{method:"GET",headers:{Accept:"application/json"},credentials:"same-origin",cache:"no-store"});return yf(i)}async mutate(r,i,a,d={}){if(!this.nonce)throw new Oe("Web Workbench 尚未完成安全握手。",503);const f=await fetch(`${Ui}${r}`,{method:i,headers:{Accept:"application/json","Content-Type":"application/json",[Eg]:this.nonce,...d},credentials:"same-origin",cache:"no-store",body:JSON.stringify(a)});return yf(f)}}async function yf(t){const i=(t.headers.get("content-type")??"").includes("json")?await t.json().catch(()=>null):null;if(!t.ok){const a=En(i)?i:{},d=typeof a.detail=="string"?a.detail:`请求失败 (${t.status})`;throw new Oe(d,t.status,typeof a.code=="string"?a.code:void 0,typeof a.type=="string"?a.type:void 0)}return i}function Tg(t){const r=JSON.parse(t);if(!En(r)||r.apiVersion!==1||typeof r.eventId!="string"||!mn.test(r.eventId)||!Number.isSafeInteger(r.cursor)||r.cursor<0||r.sessionId!==null&&typeof r.sessionId!="string"||r.threadId!==null&&typeof r.threadId!="string"||typeof r.durable!="boolean"||typeof r.timestamp!="string"||!["runtime_event","thread_event","workbench_state","replay_reset","settings_invalidated","workspace_resource_invalidated","composer_state_changed","session_runtime_changed","workspace_mutation_changed"].includes(String(r.type))||!En(r.payload))throw new Error("Web Host 事件流消息不符合 Web protocol v1。");if(r.type==="runtime_event"){const i=r.payload.value;if(!En(i)||typeof r.payload.eventType!="string"||i.type!==r.payload.eventType)throw new Error("Web Host 事件流消息判别字段不一致。")}if(r.type==="thread_event"&&(!En(r.payload.value)||typeof r.payload.eventType!="string"||!Number.isSafeInteger(r.payload.sequence)||typeof r.sessionId!="string"||typeof r.threadId!="string"))throw new Error("Thread 事件身份或序列无效。");if(r.type==="workbench_state"&&(typeof r.payload.contextRevision!="string"||!mn.test(r.payload.contextRevision)||typeof r.payload.workspaceId!="string"||!mn.test(r.payload.workspaceId)||typeof r.payload.workspace!="string"||r.payload.activeSessionId!==null&&typeof r.payload.activeSessionId!="string"))throw new Error("Workbench 状态事件无效。");if(r.type==="settings_invalidated"&&(r.sessionId!==null||r.threadId!==null||r.durable!==!1))throw new Error("Settings invalidation 事件身份无效。");if(r.type==="settings_invalidated")return gg(r);if(r.type==="session_runtime_changed"&&(!En(r.payload.runtime)||r.sessionId!==r.payload.runtime.sessionId||!Og(r.payload.runtime)))throw new Error("Session Runtime 状态事件无效。");if(r.type==="workspace_mutation_changed"){const i=r.payload.state;if(typeof r.sessionId!="string"||r.durable!==!1||!En(i)||typeof i.callId!="string"||i.callId.length<1||!["queued","running","completed","failed","cancelled"].includes(String(i.phase))||(i.phase==="queued"?!Number.isSafeInteger(i.queuePosition)||i.queuePosition<1:i.queuePosition!==void 0))throw new Error("Workspace mutation 状态事件无效。")}if(r.type==="workspace_resource_invalidated"&&(r.sessionId!==null||r.threadId!==null||r.durable!==!1||typeof r.payload.workspaceId!="string"||!mn.test(r.payload.workspaceId)||!Array.isArray(r.payload.resources)||r.payload.resources.length<1||r.payload.resources.some(i=>!["files","git","review"].includes(String(i)))||!["context-change","filesystem-change","terminal-command","tool-finished"].includes(String(r.payload.reason))))throw new Error("Workspace resource invalidation 事件无效。");if(r.type==="composer_state_changed"&&(typeof r.sessionId!="string"||r.durable!==!0||!En(r.payload.state)||r.payload.state.apiVersion!==1||r.payload.state.sessionId!==r.sessionId||typeof r.payload.state.controlRevision!="string"||!mn.test(r.payload.state.controlRevision)||typeof r.payload.state.contextRevision!="string"||!mn.test(r.payload.state.contextRevision)))throw new Error("Composer state 事件身份无效。");if(r.type==="replay_reset"&&(typeof r.payload.reason!="string"||r.payload.snapshotRequired!==!0))throw new Error("Replay reset 事件无效。");return r}function Og(t){const r=t.phase==="queued";return typeof t.workspaceId=="string"&&mn.test(t.workspaceId)&&typeof t.sessionId=="string"&&mn.test(t.sessionId)&&typeof t.runtimeRevision=="string"&&mn.test(t.runtimeRevision)&&["cold","starting","idle","queued","running","waiting_approval","stopping","interrupted","failed"].includes(String(t.phase))&&Number.isSafeInteger(t.pendingApprovalCount)&&t.pendingApprovalCount>=0&&typeof t.resident=="boolean"&&Number.isSafeInteger(t.estimatedBytes)&&t.estimatedBytes>=0&&typeof t.updatedAt=="string"&&(r?typeof t.queueId=="string"&&mn.test(t.queueId)&&Number.isSafeInteger(t.queuePosition)&&t.queuePosition>=1:t.queueId===void 0&&t.queuePosition===void 0)}function lc(t,r=null,i=!1,a=wc){const d=new URLSearchParams({pageSize:String(a)});return r&&d.set("cursor",r),i&&d.set("tail","1"),`${t}${t.includes("?")?"&":"?"}${d.toString()}`}function _n(t,r){t.set("expectedContextRevision",r.expectedContextRevision),t.set("workspaceId",r.workspaceId)}function Fe(t,r){const i=new URLSearchParams;return _n(i,r),`${t}${t.includes("?")?"&":"?"}${i.toString()}`}function En(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}function We(){if(typeof crypto.randomUUID=="function")return crypto.randomUUID();const t=crypto.getRandomValues(new Uint8Array(16));t[6]=t[6]&15|64,t[8]=t[8]&63|128;const r=[...t].map(i=>i.toString(16).padStart(2,"0")).join("");return`${r.slice(0,8)}-${r.slice(8,12)}-${r.slice(12,16)}-${r.slice(16,20)}-${r.slice(20)}`}function Mg({state:t,actions:r,insertion:i}){const a=t.workspaceId,d=t.activeSessionId??"",[f,p]=m.useState({workspaceId:a,sessionId:d,text:"",references:[]}),[g,x]=m.useState(null),[k,b]=m.useState(""),[j,N]=m.useState(new Set),E=m.useRef(null),z=`${a}:${d}`,L=m.useRef(z);L.current=z;const G=`${f.workspaceId}:${f.sessionId}`,ne=!d||!t.bootstrap?.configured||t.connection!=="live"||!ir(t),U=ks(t),se=t.sessionSnapshot?.sessionRuntime.phase==="queued",ie=!ne&&!U,Y=ie&&!se;m.useEffect(()=>{if(!a||!d){p({workspaceId:a,sessionId:d,text:"",references:[]});return}const J=Zm(a,d);p({workspaceId:a,sessionId:d,text:J?.text??"",references:J?.references??[]}),b(""),N(new Set)},[a,d]),m.useEffect(()=>{if(!(!f.workspaceId||!f.sessionId))try{f.text||f.references.length>0?eg(f):vf(f.workspaceId,f.sessionId),b("")}catch(J){b(J instanceof Error?J.message:"草稿无法保存。")}},[f]),m.useEffect(()=>{!i||!d||G!==z||(p(J=>({...J,text:J.text.trim()?`${J.text.trimEnd()}
13
+ `))},`quote-${a}`));continue}if(d.match(/^\s*(?:[-*+] |\d+[.)] )(.+)$/)){const b=/^\s*\d/.test(d),j=[],N=b?/^\s*\d+[.)]\s+(.+)$/:/^\s*[-*+]\s+(.+)$/;for(;a<r.length;){const z=r[a].match(N);if(!z)break;j.push(z[1]),a+=1}const E=j.map((z,A)=>o.jsx("li",{children:yo(z,`list-${a}-${A}`)},`item-${a}-${A}`));i.push(b?o.jsx("ol",{children:E},`list-${a}`):o.jsx("ul",{children:E},`list-${a}`));continue}const x=mc(d);if(x&&x.length>=1&&a+1<r.length){const b=Um(r[a+1]);if(b&&b.length===x.length){const j=[x];for(a+=2;a<r.length;){const N=mc(r[a]);if(!N||N.length!==x.length)break;j.push(N),a+=1}i.push(Hm(j,b,`table-${a}`));continue}}const k=[d.trim()];for(a+=1;a<r.length&&r[a].trim()&&!qm(r[a]);)k.push(r[a].trim()),a+=1;i.push(o.jsx("p",{children:yo(k.join(" "),`paragraph-${a}`)},`paragraph-${a}`))}return i}function qm(t){return/^\s*```/.test(t)||/^(#{1,6})\s+/.test(t)||/^\s*>\s?/.test(t)||/^\s*(?:[-*+] |\d+[.)] )/.test(t)||mc(t)!==null}function mc(t){if(!t.includes("|"))return null;const r=t.split("|"),i=r[0].trim()==="",a=r[r.length-1].trim()==="",d=i&&a?r.slice(1,-1):r;return d.length===0?null:d.map(f=>f.trim())}function Um(t){if(!t.includes("|")&&!/[-:]/.test(t))return null;let r=t.split("|").map(a=>a.trim());if(r.length>=2&&r[0]===""&&r[r.length-1]===""&&(r=r.slice(1,-1)),r.length<1)return null;const i=[];for(const a of r){if(a===""||!/^:?-+:?$/.test(a))return null;const d=a.startsWith(":"),f=a.endsWith(":");d&&f?i.push("center"):f?i.push("right"):i.push("left")}return i}function Hm(t,r,i){const[a,...d]=t,f=p=>p==="left"?void 0:{textAlign:p};return o.jsxs("table",{className:"markdown-table",children:[o.jsx("thead",{children:o.jsx("tr",{children:a.map((p,g)=>o.jsx("th",{style:f(r[g]),children:yo(p,`${i}-th-${g}`)},`th-${g}`))})}),o.jsx("tbody",{children:d.map((p,g)=>o.jsx("tr",{children:p.map((x,k)=>o.jsx("td",{style:f(r[k]),children:yo(x,`${i}-td-${g}-${k}`)},`td-${g}-${k}`))},`tr-${g}`))})]},i)}function yo(t,r){const i=/(`[^`\n]+`|\*\*[^*\n]+\*\*|\[[^\]\n]+\]\([^\s)]+\))/g,a=[];let d=0,f,p=0;for(;f=i.exec(t);){f.index>d&&a.push(t.slice(d,f.index));const g=f[0],x=`${r}-${p++}`;if(g.startsWith("`"))a.push(o.jsx("code",{children:g.slice(1,-1)},x));else if(g.startsWith("**"))a.push(o.jsx("strong",{children:g.slice(2,-2)},x));else{const k=g.match(/^\[([^\]]+)\]\(([^)]+)\)$/);k&&Vm(k[2])?a.push(o.jsx("a",{href:k[2],target:"_blank",rel:"noopener noreferrer",referrerPolicy:"no-referrer",children:k[1]},x)):a.push(g)}d=f.index+g.length}return d<t.length&&a.push(t.slice(d)),a}function Vm(t){try{const r=new URL(t);return r.protocol==="https:"||r.protocol==="http:"||r.protocol==="mailto:"}catch{return!1}}function Km(t,r,i){return t===1?o.jsx("h1",{children:r},i):t===2?o.jsx("h2",{children:r},i):t===3?o.jsx("h3",{children:r},i):t===4?o.jsx("h4",{children:r},i):t===5?o.jsx("h5",{children:r},i):o.jsx("h6",{children:r},i)}function Gm({language:t,content:r}){const[i,a]=m.useState("idle"),d=async()=>{try{await navigator.clipboard.writeText(r),a("copied"),window.setTimeout(()=>a("idle"),1400)}catch{a("failed")}};return o.jsxs("figure",{className:"code-block",children:[o.jsxs("figcaption",{children:[o.jsx("span",{children:t||"text"}),o.jsxs("button",{type:"button",className:"icon-text-button",onClick:d,"aria-label":"复制代码",children:[o.jsx(Q,{name:i==="copied"?"check":"copy",size:15}),i==="copied"?"已复制":i==="failed"?"复制失败":"复制"]})]}),o.jsx("pre",{tabIndex:0,"aria-label":`${t||"文本"}代码块`,children:o.jsx("code",{children:r})})]})}function On(t){return t.replace(/\u001b\[[0-?]*[ -/]*[@-~]/g,"").replace(/[\u0000-\u0008\u000b\u000c\u000e-\u001f\u007f]/g,"")}function Pc(t,r=8e3){const i=/api.?key|authorization|cookie|password|secret|token/i;let a;try{a=JSON.stringify(t,(f,p)=>f&&i.test(f)?"[REDACTED]":p,2)}catch{a=String(t)}const d=On(a);return d.length<=r?d:`${d.slice(0,r)}
14
+ …已截断`}const Qm=Object.freeze({activating:"running",closed:"danger",completed:"success",connected:"success",done:"success",draining:"warning",error:"danger",failed:"danger",live:"running",offline:"danger",passed:"success",pending:"running",queued:"running",ready:"success",rejected:"danger",replay:"warning","replay-required":"warning",running:"running",skipped:"warning",streaming:"running",success:"success",timedout:"warning",warning:"warning"}),gf=Object.freeze({danger:"失败",idle:"空闲",running:"进行中",success:"已完成",warning:"部分完成"});function Ym(t){return Qm[t.trim().toLowerCase()]??"idle"}function Xm(t){return gf[t]??gf.idle}function Tc({state:t,className:r="",label:i,describe:a=!0}){const d=Ym(t);return o.jsxs(o.Fragment,{children:[o.jsx("span",{className:`state-dot state-${t}${r?` ${r}`:""}`,"data-tone":d,"aria-hidden":"true"}),a?o.jsx("span",{className:"sr-only",children:i??Xm(d)}):null]})}const ws="orion.web.composer-drafts.v1",dp=20,gc=256*1024,Jm=5*1024*1024;function Zm(t,r){return ml().entries.find(i=>i.workspaceId===t&&i.sessionId===r)??null}function eg(t){const r=gl();if(!r)return;const i=Object.freeze({...t,references:[...t.references],updatedAt:Date.now()});if(vc(i)>gc)throw new Error(`Composer draft exceeds ${gc} bytes.`);const a=ml().entries.filter(f=>!(f.workspaceId===t.workspaceId&&f.sessionId===t.sessionId)),d=[i,...a].slice(0,dp);for(;d.length>0&&vc({version:1,entries:d})>Jm;)d.pop();r.setItem(ws,JSON.stringify({version:1,entries:d}))}function vf(t,r){const i=gl();if(!i)return;const a=ml().entries.filter(d=>!(d.workspaceId===t&&d.sessionId===r));a.length===0?i.removeItem(ws):i.setItem(ws,JSON.stringify({version:1,entries:a}))}function tg(t){const r=gl();if(!r)return;const i=ml().entries.filter(a=>a.workspaceId!==t);i.length===0?r.removeItem(ws):r.setItem(ws,JSON.stringify({version:1,entries:i}))}function ml(){const t=gl();if(!t)return{version:1,entries:[]};try{const r=JSON.parse(t.getItem(ws)??"");return r.version!==1||!Array.isArray(r.entries)?{version:1,entries:[]}:{version:1,entries:r.entries.filter(ng).slice(0,dp)}}catch{return{version:1,entries:[]}}}function ng(t){if(!t||typeof t!="object")return!1;const r=t;return typeof r.workspaceId=="string"&&typeof r.sessionId=="string"&&typeof r.text=="string"&&Array.isArray(r.references)&&typeof r.updatedAt=="number"&&Number.isFinite(r.updatedAt)&&vc(r)<=gc}function gl(){try{return typeof window>"u"?null:window.sessionStorage}catch{return null}}function vc(t){return new TextEncoder().encode(JSON.stringify(t)).byteLength}const fp=/^hmac-sha256:[0-9a-f]{64}$/,rg=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,sg=/^(?:api[-_]?key|authorization|cookie|password|secret|access[-_]?token|refresh[-_]?token|auth[-_]?token|credential[-_]?value|headers?|env(?:ironment)?[-_]?name)$/i,og=["ready","invalid","read-only","unavailable"],ig=["internal","model","global","project","session"],lg=["global","project","session"],ag=["live","next-logical-request","new-session","restart"],cg=["runtime_busy","read_only","invalid_document"],ug=["system","light","dark"],dg=["system","reduced"],fg=["classic","orion-blocksmith"],pp=["auto","none","minimal","low","medium","high","xhigh","max"],pg=["ask","allow","deny"],hg=["appearance.style","appearance.theme","appearance.motion","defaults.model","defaults.effort","permissions.toolConfirmation"];function yc(t){il(t);const r=Kt(t,"Settings document");if(Gt(r,["schemaVersion","revision","state","writable","hasDocument","workspace","sections","models","credentials","currentSession","diagnostic"]),r.schemaVersion!==1&&r.schemaVersion!==2)throw new Error("Settings schemaVersion is not supported.");const i=r.schemaVersion,a=Pt(r.revision,"Settings revision");if(!fp.test(a))throw new Error("Settings revision is invalid.");const d=on(r.state,"Settings state",og),f=Kt(r.sections,"Settings sections");Gt(f,["appearance","defaults","permissions"]);const p=Kt(f.appearance,"Appearance settings");Gt(p,i===1?["theme","motion"]:["style","theme","motion"]);const g=Kt(f.defaults,"Default settings");Gt(g,["model","effort"]);const x=Kt(f.permissions,"Permission settings");Gt(x,["toolConfirmation"]);const k=xc(r.models,"Settings models").map(vg),b=xc(r.credentials,"Credential status").map(yg),j=r.currentSession===void 0?void 0:xg(r.currentSession),N=r.diagnostic===void 0?void 0:wg(r.diagnostic);return{schemaVersion:2,revision:a,state:d,writable:gs(r.writable,"Settings writable"),hasDocument:gs(r.hasDocument,"Settings document availability"),workspace:Pt(r.workspace,"Settings workspace"),sections:{appearance:{style:i===1?Cg(d,gs(r.writable,"Settings writable")):ds(p.style,"Visual style",Sg),theme:ds(p.theme,"Theme",jg),motion:ds(p.motion,"Motion",bg)},defaults:{model:ds(g.model,"Default model",_g),effort:ds(g.effort,"Default effort",Ig)},permissions:{toolConfirmation:ds(x.toolConfirmation,"Tool confirmation",Ng)}},models:k,credentials:b,...j?{currentSession:j}:{},...N?{diagnostic:N}:{}}}function mg(t){il(t);const r=Kt(t,"Settings mutation result");Gt(r,["requestId","revision","appliedKeys","settings"]);const i=Pt(r.requestId,"Settings requestId");if(!rg.test(i))throw new Error("Settings requestId is invalid.");const a=yc(r.settings),d=Pt(r.revision,"Settings mutation revision");if(d!==a.revision)throw new Error("Settings mutation revisions do not match.");const f=xc(r.appliedKeys,"Applied setting keys").map((p,g)=>on(p,`Applied setting key ${g+1}`,hg));if(new Set(f).size!==f.length)throw new Error("Settings mutation contains duplicate applied keys.");return{requestId:i,revision:d,appliedKeys:f,settings:a}}function gg(t){const r=Kt(t.payload,"Settings invalidation payload");Gt(r,["revision","reason","state"]);const i=Pt(r.revision,"Settings invalidation revision");if(!fp.test(i))throw new Error("Settings invalidation revision is invalid.");return{apiVersion:1,eventId:Pt(t.eventId,"Settings invalidation eventId"),cursor:kg(t.cursor,"Settings invalidation cursor"),sessionId:null,threadId:null,durable:!1,timestamp:Pt(t.timestamp,"Settings invalidation timestamp"),type:"settings_invalidated",payload:{revision:i,reason:on(r.reason,"Settings invalidation reason",["local-write","external-edit","workspace-change"]),state:on(r.state,"Settings invalidation state",["ready","invalid"])}}}function ds(t,r,i){const a=Kt(t,`${r} field`);if(Gt(a,["effectiveValue","explicitValue","inheritedValue","source","scope","applies","overridden","writable","blockedReason"]),!i(a.effectiveValue))throw new Error(`${r} effective value is invalid.`);if(a.explicitValue!==void 0&&!i(a.explicitValue))throw new Error(`${r} explicit value is invalid.`);if(a.inheritedValue!==void 0&&!i(a.inheritedValue))throw new Error(`${r} inherited value is invalid.`);const d=a.explicitValue,f=a.inheritedValue;return{effectiveValue:a.effectiveValue,...d===void 0?{}:{explicitValue:d},...f===void 0?{}:{inheritedValue:f},source:on(a.source,`${r} source`,ig),scope:on(a.scope,`${r} scope`,lg),applies:on(a.applies,`${r} application timing`,ag),overridden:gs(a.overridden,`${r} override state`),writable:gs(a.writable,`${r} writable state`),...a.blockedReason===void 0?{}:{blockedReason:on(a.blockedReason,`${r} blocked reason`,cg)}}}function vg(t,r){const i=Kt(t,`Model ${r+1}`);return Gt(i,["id","label","provider"]),{id:Pt(i.id,`Model ${r+1} id`),label:Pt(i.label,`Model ${r+1} label`),...i.provider===void 0?{}:{provider:Pt(i.provider,`Model ${r+1} provider`)}}}function yg(t,r){const i=Kt(t,`Credential ${r+1}`);if(Gt(i,["providerId","state","source","writable"]),i.writable!==!1)throw new Error("Browser credential status must be read-only.");return{providerId:Pt(i.providerId,`Credential ${r+1} provider`),state:on(i.state,`Credential ${r+1} state`,["ready","missing","unavailable"]),source:on(i.source,`Credential ${r+1} source`,["environment","legacy","none"]),writable:!1}}function xg(t){const r=Kt(t,"Current session settings");return Gt(r,["model","effort","overridesProjectEffort"]),{model:Pt(r.model,"Current session model"),effort:on(r.effort,"Current session effort",pp),overridesProjectEffort:gs(r.overridesProjectEffort,"Current session effort override state")}}function wg(t){const r=Kt(t,"Settings diagnostic");return Gt(r,["code","message"]),{code:Pt(r.code,"Settings diagnostic code"),message:Pt(r.message,"Settings diagnostic message")}}function il(t,r=new Set){if(!(!t||typeof t!="object")){if(r.has(t))throw new Error("Settings response contains a cycle.");r.add(t);try{if(Array.isArray(t)){for(const i of t)il(i,r);return}for(const[i,a]of Object.entries(t)){if(sg.test(i))throw new Error("Settings response contains a forbidden secret-bearing field.");il(a,r)}}finally{r.delete(t)}}}function Kt(t,r){if(!t||typeof t!="object"||Array.isArray(t))throw new Error(`${r} must be an object.`);return t}function xc(t,r){if(!Array.isArray(t))throw new Error(`${r} must be an array.`);return t}function Pt(t,r){if(typeof t!="string"||!t.trim())throw new Error(`${r} must be text.`);return t}function gs(t,r){if(typeof t!="boolean")throw new Error(`${r} must be boolean.`);return t}function kg(t,r){if(!Number.isSafeInteger(t)||t<0)throw new Error(`${r} must be a non-negative safe integer.`);return t}function on(t,r,i){if(typeof t!="string"||!i.includes(t))throw new Error(`${r} is invalid.`);return t}function Gt(t,r){const i=new Set(r),a=Object.keys(t).find(d=>!i.has(d));if(a)throw new Error(`Settings response contains an unknown field: ${a}.`)}function jg(t){return typeof t=="string"&&ug.includes(t)}function Sg(t){return typeof t=="string"&&fg.includes(t)}function Cg(t,r){const i=t==="invalid"?"invalid_document":t==="ready"&&r?void 0:"read_only";return{effectiveValue:"orion-blocksmith",inheritedValue:"orion-blocksmith",source:"internal",scope:"global",applies:"live",overridden:!1,writable:t==="ready"&&r,...i?{blockedReason:i}:{}}}function bg(t){return typeof t=="string"&&dg.includes(t)}function Ig(t){return typeof t=="string"&&pp.includes(t)}function Ng(t){return typeof t=="string"&&pg.includes(t)}function _g(t){return typeof t=="string"&&!!t.trim()}const Ui="/api/v1",Eg="x-orion-web-nonce",wc=100,Rg=50,mn=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;class Oe extends Error{constructor(i,a,d,f){super(i);Vt(this,"status");Vt(this,"code");Vt(this,"type");this.status=a,this.code=d,this.type=f,this.name="WebApiError"}}class Pg{constructor(){Vt(this,"nonce","")}async bootstrap(){const r=await this.query("/bootstrap");if(!En(r)||r.apiVersion!==1||typeof r.nonce!="string")throw new Oe("Web Host 返回了不兼容的启动协议。",502);return this.nonce=r.nonce,{...r,settings:yc(r.settings)}}async listWorkspaces(r,i){const a=await this.collectionPage(Fe("/workspaces",r),i),d=a.items.find(f=>f.active);return{activeId:d?.id??"",activePath:d?.path??"",workspaces:a.items,nextCursor:a.nextCursor}}async listWorkspaceSessions(r,i,a){const d=await this.collectionPage(Fe(`/workspaces/${encodeURIComponent(r)}/sessions`,i),a);return{sessions:d.items,nextCursor:d.nextCursor}}workspaceProjectSummary(r,i){return this.query(Fe(`/workspaces/${encodeURIComponent(r)}/summary`,i))}async listSessions(r,i){const a=await this.collectionPage(Fe("/sessions",r),i);return{sessions:a.items,nextCursor:a.nextCursor}}diagnostics(r){return this.query(Fe("/diagnostics",r))}async settings(){return yc(await this.query("/settings"))}async sessionSnapshot(r,i,a){const d=`/sessions/${encodeURIComponent(r)}/snapshot`;return this.query(lc(Fe(d,i),a??null,!0,Rg))}composerState(r,i){return this.query(Fe(`/sessions/${encodeURIComponent(r)}/composer-state`,i))}modelCatalog(r,i,a){return this.query(lc(Fe(`/sessions/${encodeURIComponent(r)}/model-catalog`,i),a??null,!1,wc))}composerAction(r,i){return this.mutate(`/sessions/${encodeURIComponent(r)}/composer-actions`,"POST",{...i,requestId:We()})}async skills(r,i){const a=await this.collectionPage(Fe("/skills",r),i);return{skills:a.items,nextCursor:a.nextCursor}}async mcp(r,i){const a=await this.collectionPage(Fe("/mcp",r),i);return{servers:a.items,nextCursor:a.nextCursor}}async toolDetails(r,i){const a=await this.collectionPage(Fe("/tool-details",r),i);return{details:a.items,nextCursor:a.nextCursor}}readToolDetail(r,i,a=0,d=64*1024){const f=new URLSearchParams({offsetBytes:String(a),limitBytes:String(d)});return _n(f,i),this.query(`/tool-details/${encodeURIComponent(r)}?${f.toString()}`)}listFiles(r,i,a){const d=new URLSearchParams({pageSize:"100"});return _n(d,r),i&&d.set("parentId",i),a&&d.set("cursor",a),this.query(`/files?${d.toString()}`)}readFileContent(r,i,a){const d=new URLSearchParams({limitBytes:String(65536)});return _n(d,i),a&&d.set("cursor",a),this.query(`/files/${encodeURIComponent(r)}/content?${d.toString()}`)}writeFileContent(r,i,a,d){return this.mutate("/files/write","POST",{...r,fileId:i,content:a,expectedRevision:d,requestId:We()},{"X-Orion-User-Gesture":"file-mutation-v1"})}gitStatus(r,i,a){const d=new URLSearchParams({pageSize:"200"});return _n(d,r),i&&d.set("cursor",i),a?.group&&d.set("group",a.group),a?.query&&d.set("query",a.query),this.query(`/git/status?${d.toString()}`)}gitLog(r,i){const a=new URLSearchParams({pageSize:"30"});return _n(a,r),i&&a.set("cursor",i),this.query(`/git/log?${a.toString()}`)}gitDiff(r,i,a){const d=new URLSearchParams({lineLimit:"240",byteLimit:String(262144)});return _n(d,i),a&&d.set("cursor",a),this.query(`/git/diff/${encodeURIComponent(r)}?${d.toString()}`)}gitDiffDocument(r,i,a,d,f){const p=new URLSearchParams({lineLimit:"240",byteLimit:String(262144)});return _n(p,i),a&&p.set("cursor",a),d&&p.set("ignoreWhitespace","1"),f&&p.set("wordDiff","1"),this.query(`/git/diff-v2/${encodeURIComponent(r)}?${p.toString()}`)}review(r){return this.query(Fe("/review",r))}async terminals(r,i){const a=await this.collectionPage(Fe("/terminals",r),i);return{terminals:a.items,nextCursor:a.nextCursor}}createTerminal(r){return this.mutate("/terminals","POST",{...r,requestId:We()},{"X-Orion-User-Gesture":"terminal-create-v1"})}terminalAttachTicket(r,i){return this.mutate(`/terminals/${encodeURIComponent(r)}/attach-ticket`,"POST",{...i,requestId:We()})}closeTerminal(r,i){return this.mutate(`/terminals/${encodeURIComponent(r)}`,"DELETE",{...i,requestId:We()})}terminalSocket(r){const i=location.protocol==="https:"?"wss:":"ws:";return new WebSocket(`${i}//${location.host}${Ui}/terminals/${encodeURIComponent(r)}/stream`,"orion-terminal-v1")}async searchFiles(r,i,a,d=50){const f=new URLSearchParams({q:i.slice(0,200),scope:a,limit:String(d)});return _n(f,r),this.query(`/files/search?${f.toString()}`)}gitStage(r,i,a){return this.mutate("/git/stage","POST",{...r,fileIds:i,expectedRepositoryRevision:a,requestId:We()},{"X-Orion-User-Gesture":"git-mutation-v1"})}gitUnstage(r,i,a){return this.mutate("/git/unstage","POST",{...r,fileIds:i,expectedRepositoryRevision:a,requestId:We()},{"X-Orion-User-Gesture":"git-mutation-v1"})}gitCommit(r,i){return this.mutate("/git/commit","POST",{...r,summary:i.summary,...i.body===void 0?{}:{body:i.body},expectedRepositoryRevision:i.expectedRepositoryRevision,requestId:i.requestId},{"X-Orion-User-Gesture":"git-mutation-v1"})}gitCompare(r,i){const a=new URLSearchParams({base:i.baseRef,head:i.headRef,mode:i.mode});return this.query(Fe(`/git/compare?${a.toString()}`,r))}gitCompareFileDiff(r,i){const a=new URLSearchParams({baseOid:i.baseOid,headOid:i.headOid,path:i.path});return i.cursor&&a.set("cursor",i.cursor),this.query(Fe(`/git/compare/file?${a.toString()}`,r))}gitRefs(r){return this.query(Fe("/git/refs",r))}gitHistory(r,i){const a=new URLSearchParams;for(const[d,f]of Object.entries(i))f!==void 0&&f!==""&&a.set(d,String(f));return this.query(Fe(`/git/history?${a.toString()}`,r))}gitCommitDetail(r,i,a=0){const d=new URLSearchParams({parent:String(a)});return this.query(Fe(`/git/commit/${encodeURIComponent(i)}?${d.toString()}`,r))}gitCommitFiles(r,i,a=0){const d=new URLSearchParams({parent:String(a)});return this.query(Fe(`/git/commit/${encodeURIComponent(i)}/files?${d.toString()}`,r))}gitCommitDiff(r,i){const a=new URLSearchParams({path:i.path,parent:String(i.parentIndex??0)});return i.cursor&&a.set("cursor",i.cursor),this.query(Fe(`/git/commit/${encodeURIComponent(i.oid)}/diff?${a.toString()}`,r))}gitFilesTarget(r,i){const a=new URLSearchParams({fileToken:i});return this.query(Fe(`/git/files-target?${a.toString()}`,r))}gitGraph(r,i=200){const a=new URLSearchParams({limit:String(i)});return this.query(Fe(`/git/graph?${a.toString()}`,r))}gitConflictVersions(r,i){const a=new URLSearchParams({path:i});return this.query(Fe(`/git/conflict?${a.toString()}`,r))}gitBlob(r,i){const a=new URLSearchParams({path:i.path,rev:i.rev});return this.query(Fe(`/git/blob?${a.toString()}`,r))}gitSubmodules(r){return this.query(Fe("/git/submodules",r))}gitBlame(r,i){const a=new URLSearchParams({path:i.path});return i.rev&&a.set("rev",i.rev),i.limit!==void 0&&a.set("limit",String(i.limit)),this.query(Fe(`/git/blame?${a.toString()}`,r))}gitFileHistory(r,i){const a=new URLSearchParams({path:i.path});return i.rev&&a.set("rev",i.rev),i.limit!==void 0&&a.set("limit",String(i.limit)),this.query(Fe(`/git/file-history?${a.toString()}`,r))}gitCommitPreview(r){return this.query(Fe("/git/commit/preview",r))}gitApplyPatch(r,i){return this.mutate("/git/patch","POST",{...r,fileId:i.fileId,...i.hunkIds?{hunkIds:[...i.hunkIds]}:{},...i.lineIds?{lineIds:[...i.lineIds]}:{},expectedRepositoryRevision:i.expectedRepositoryRevision,requestId:We()},{"X-Orion-User-Gesture":"git-mutation-v1"})}activateContext(r){return this.mutate("/context/activate","POST",{...r,requestId:We()})}async setWorkspacePinned(r,i,a){return(await this.mutate(`/workspaces/${encodeURIComponent(r)}/pin`,"POST",{requestId:We(),pinned:i,...a})).workspace}removeWorkspace(r,i){return this.mutate(`/workspaces/${encodeURIComponent(r)}`,"DELETE",{requestId:We(),...i})}async activateWorkspace(r,i){const a=await this.mutate("/workspaces/activate","POST",{requestId:We(),path:r,...i});return{requestId:a.requestId,activeId:a.page.items.find(d=>d.active)?.id??"",activePath:a.active,workspaces:a.page.items,nextCursor:a.page.nextCursor}}pickDirectory(r){return this.mutate("/workspaces/pick-directory","POST",{requestId:We(),...r.title?{title:r.title}:{},...r.initialPath?{initialPath:r.initialPath}:{}})}async inspectWorkspace(r,i){return(await this.mutate("/workspaces/inspect","POST",{requestId:We(),path:r,...i?{source:i}:{}})).candidate}async listWorkspaceRoots(){return this.query("/workspaces/roots").then(r=>r.roots)}async addWorkspaceRoot(r){return(await this.mutate("/workspaces/roots/add","POST",{requestId:We(),path:r})).root}async removeWorkspaceRoot(r){return(await this.mutate("/workspaces/roots/remove","POST",{requestId:We(),rootId:r})).removed}async discoverWorkspaceRoot(r,i={}){return this.mutate("/workspaces/roots/discover","POST",{requestId:We(),rootId:r,refresh:i.refresh??!0})}async createSession(r){return(await this.mutate("/sessions","POST",{requestId:We(),...r})).session}activateSession(r,i){return this.mutate(`/sessions/${encodeURIComponent(r)}/activate`,"POST",{requestId:We(),...i})}async renameSession(r,i,a){return(await this.mutate(`/sessions/${encodeURIComponent(r)}`,"PATCH",{requestId:We(),name:i,...a})).session}async updateSessionTags(r,i,a){return(await this.mutate(`/sessions/${encodeURIComponent(r)}/tags`,"POST",{requestId:We(),tags:[...i],...a})).session}async archiveSession(r,i){return(await this.mutate(`/sessions/${encodeURIComponent(r)}/archive`,"POST",{requestId:We(),...i})).session}async restoreSession(r,i){return(await this.mutate(`/sessions/${encodeURIComponent(r)}/restore`,"POST",{requestId:We(),...i})).session}async deleteSession(r,i){await this.mutate(`/sessions/${encodeURIComponent(r)}`,"DELETE",{requestId:We(),...i})}async listArchivedWorkspaceSessions(r,i,a){const d=await this.collectionPage(Fe(`/workspaces/${encodeURIComponent(r)}/sessions/archived`,i),a);return{sessions:d.items,nextCursor:d.nextCursor}}command(r){return this.mutate("/commands","POST",{...r,requestId:We()})}async updateSettings(r,i,a,d=We()){const f=await this.mutate("/settings","PATCH",{operations:i,expectedRevision:r,...a,requestId:d}),p=mg(f);if(p.requestId!==d)throw new Oe("Host 返回了其他设置请求的结果。",502,"settings_response_invalid");const g=i.map(x=>x.key);if(p.appliedKeys.length!==g.length||g.some(x=>!p.appliedKeys.includes(x)))throw new Oe("Host 返回的设置字段与提交内容不一致。",502,"settings_response_invalid");return p}openSettingsDocument(){return this.mutate("/settings/open-document","POST",{requestId:We()})}connectEvents(r){let i=Math.max(0,r.cursor??0),a=null,d,f=0,p=!1,g=!1;const x=()=>{if(!(p||g)){if(!navigator.onLine){r.onStatus("offline",f);return}r.onStatus(f===0?"connecting":"reconnecting",f),a=new EventSource(`${Ui}/events?cursor=${i}`),a.onopen=()=>{f=0,r.onStatus("live",f)},a.addEventListener("orion",j=>{if(!(p||g))try{const N=Tg(j.data);if(N.type==="replay_reset"){i=N.cursor,r.onEvent(N),g=!0,a?.close(),a=null,window.clearTimeout(d);return}if(N.cursor<=i)return;i=N.cursor,r.onEvent(N)}catch(N){r.onProtocolError?.(N instanceof Error?N.message:"无法解析 Web Host 事件流消息。")}}),a.onerror=()=>{if(a?.close(),a=null,p||g)return;f+=1,r.onStatus(navigator.onLine?"reconnecting":"offline",f);const j=Math.min(1e4,500*2**Math.min(f,5));window.clearTimeout(d),d=window.setTimeout(x,j)}}},k=()=>{p||g||a||(window.clearTimeout(d),x())},b=()=>{window.clearTimeout(d),a?.close(),a=null,!g&&r.onStatus("offline",f)};return window.addEventListener("online",k),window.addEventListener("offline",b),x(),{close(){p=!0,window.clearTimeout(d),a?.close(),a=null,window.removeEventListener("online",k),window.removeEventListener("offline",b)},cursor:()=>i}}collectionPage(r,i){return this.query(lc(r,i??null,!1,wc))}async query(r){const i=await fetch(`${Ui}${r}`,{method:"GET",headers:{Accept:"application/json"},credentials:"same-origin",cache:"no-store"});return yf(i)}async mutate(r,i,a,d={}){if(!this.nonce)throw new Oe("Web Workbench 尚未完成安全握手。",503);const f=await fetch(`${Ui}${r}`,{method:i,headers:{Accept:"application/json","Content-Type":"application/json",[Eg]:this.nonce,...d},credentials:"same-origin",cache:"no-store",body:JSON.stringify(a)});return yf(f)}}async function yf(t){const i=(t.headers.get("content-type")??"").includes("json")?await t.json().catch(()=>null):null;if(!t.ok){const a=En(i)?i:{},d=typeof a.detail=="string"?a.detail:`请求失败 (${t.status})`;throw new Oe(d,t.status,typeof a.code=="string"?a.code:void 0,typeof a.type=="string"?a.type:void 0)}return i}function Tg(t){const r=JSON.parse(t);if(!En(r)||r.apiVersion!==1||typeof r.eventId!="string"||!mn.test(r.eventId)||!Number.isSafeInteger(r.cursor)||r.cursor<0||r.sessionId!==null&&typeof r.sessionId!="string"||r.threadId!==null&&typeof r.threadId!="string"||typeof r.durable!="boolean"||typeof r.timestamp!="string"||!["runtime_event","thread_event","workbench_state","replay_reset","settings_invalidated","workspace_resource_invalidated","composer_state_changed","session_runtime_changed","workspace_mutation_changed"].includes(String(r.type))||!En(r.payload))throw new Error("Web Host 事件流消息不符合 Web protocol v1。");if(r.type==="runtime_event"){const i=r.payload.value;if(!En(i)||typeof r.payload.eventType!="string"||i.type!==r.payload.eventType)throw new Error("Web Host 事件流消息判别字段不一致。")}if(r.type==="thread_event"&&(!En(r.payload.value)||typeof r.payload.eventType!="string"||!Number.isSafeInteger(r.payload.sequence)||typeof r.sessionId!="string"||typeof r.threadId!="string"))throw new Error("Thread 事件身份或序列无效。");if(r.type==="workbench_state"&&(typeof r.payload.contextRevision!="string"||!mn.test(r.payload.contextRevision)||typeof r.payload.workspaceId!="string"||!mn.test(r.payload.workspaceId)||typeof r.payload.workspace!="string"||r.payload.activeSessionId!==null&&typeof r.payload.activeSessionId!="string"))throw new Error("Workbench 状态事件无效。");if(r.type==="settings_invalidated"&&(r.sessionId!==null||r.threadId!==null||r.durable!==!1))throw new Error("Settings invalidation 事件身份无效。");if(r.type==="settings_invalidated")return gg(r);if(r.type==="session_runtime_changed"&&(!En(r.payload.runtime)||r.sessionId!==r.payload.runtime.sessionId||!Og(r.payload.runtime)))throw new Error("Session Runtime 状态事件无效。");if(r.type==="workspace_mutation_changed"){const i=r.payload.state;if(typeof r.sessionId!="string"||r.durable!==!1||!En(i)||typeof i.callId!="string"||i.callId.length<1||!["queued","running","completed","failed","cancelled"].includes(String(i.phase))||(i.phase==="queued"?!Number.isSafeInteger(i.queuePosition)||i.queuePosition<1:i.queuePosition!==void 0))throw new Error("Workspace mutation 状态事件无效。")}if(r.type==="workspace_resource_invalidated"&&(r.sessionId!==null||r.threadId!==null||r.durable!==!1||typeof r.payload.workspaceId!="string"||!mn.test(r.payload.workspaceId)||!Array.isArray(r.payload.resources)||r.payload.resources.length<1||r.payload.resources.some(i=>!["files","git","review"].includes(String(i)))||!["context-change","filesystem-change","terminal-command","tool-finished"].includes(String(r.payload.reason))))throw new Error("Workspace resource invalidation 事件无效。");if(r.type==="composer_state_changed"&&(typeof r.sessionId!="string"||r.durable!==!0||!En(r.payload.state)||r.payload.state.apiVersion!==1||r.payload.state.sessionId!==r.sessionId||typeof r.payload.state.controlRevision!="string"||!mn.test(r.payload.state.controlRevision)||typeof r.payload.state.contextRevision!="string"||!mn.test(r.payload.state.contextRevision)))throw new Error("Composer state 事件身份无效。");if(r.type==="replay_reset"&&(typeof r.payload.reason!="string"||r.payload.snapshotRequired!==!0))throw new Error("Replay reset 事件无效。");return r}function Og(t){const r=t.phase==="queued";return typeof t.workspaceId=="string"&&mn.test(t.workspaceId)&&typeof t.sessionId=="string"&&mn.test(t.sessionId)&&typeof t.runtimeRevision=="string"&&mn.test(t.runtimeRevision)&&["cold","starting","idle","queued","running","waiting_approval","stopping","interrupted","failed"].includes(String(t.phase))&&Number.isSafeInteger(t.pendingApprovalCount)&&t.pendingApprovalCount>=0&&typeof t.resident=="boolean"&&Number.isSafeInteger(t.estimatedBytes)&&t.estimatedBytes>=0&&typeof t.updatedAt=="string"&&(r?typeof t.queueId=="string"&&mn.test(t.queueId)&&Number.isSafeInteger(t.queuePosition)&&t.queuePosition>=1:t.queueId===void 0&&t.queuePosition===void 0)}function lc(t,r=null,i=!1,a=wc){const d=new URLSearchParams({pageSize:String(a)});return r&&d.set("cursor",r),i&&d.set("tail","1"),`${t}${t.includes("?")?"&":"?"}${d.toString()}`}function _n(t,r){t.set("expectedContextRevision",r.expectedContextRevision),t.set("workspaceId",r.workspaceId)}function Fe(t,r){const i=new URLSearchParams;return _n(i,r),`${t}${t.includes("?")?"&":"?"}${i.toString()}`}function En(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}function We(){if(typeof crypto.randomUUID=="function")return crypto.randomUUID();const t=crypto.getRandomValues(new Uint8Array(16));t[6]=t[6]&15|64,t[8]=t[8]&63|128;const r=[...t].map(i=>i.toString(16).padStart(2,"0")).join("");return`${r.slice(0,8)}-${r.slice(8,12)}-${r.slice(12,16)}-${r.slice(16,20)}-${r.slice(20)}`}function Mg({state:t,actions:r,insertion:i}){const a=t.workspaceId,d=t.activeSessionId??"",[f,p]=m.useState({workspaceId:a,sessionId:d,text:"",references:[]}),[g,x]=m.useState(null),[k,b]=m.useState(""),[j,N]=m.useState(new Set),E=m.useRef(null),z=`${a}:${d}`,A=m.useRef(z);A.current=z;const G=`${f.workspaceId}:${f.sessionId}`,ne=!d||!t.bootstrap?.configured||t.connection!=="live"||!ir(t),U=ks(t),se=t.sessionSnapshot?.sessionRuntime.phase==="queued",ie=!ne&&!U,Y=ie&&!se;m.useEffect(()=>{if(!a||!d){p({workspaceId:a,sessionId:d,text:"",references:[]});return}const J=Zm(a,d);p({workspaceId:a,sessionId:d,text:J?.text??"",references:J?.references??[]}),b(""),N(new Set)},[a,d]),m.useEffect(()=>{if(!(!f.workspaceId||!f.sessionId))try{f.text||f.references.length>0?eg(f):vf(f.workspaceId,f.sessionId),b("")}catch(J){b(J instanceof Error?J.message:"草稿无法保存。")}},[f]),m.useEffect(()=>{!i||!d||G!==z||(p(J=>({...J,text:J.text.trim()?`${J.text.trimEnd()}
15
15
 
16
- ${i.text}`:i.text})),requestAnimationFrame(()=>E.current?.focus()))},[z,G,i,d]);const A=G===z?f.text:"",F=G===z?f.references:[],ge=J=>p(Se=>({...Se,workspaceId:a,sessionId:d,text:J})),Ie=J=>{const Se=new Set(J.map(xo));N(D=>new Set([...D].filter(ce=>Se.has(ce)))),p(D=>({...D,workspaceId:a,sessionId:d,references:J}))},we=async J=>{const Se=A.trim();if(!Se||!Y)return;const D=z;try{J==="queue"?await r.queue(Se,F):await r.submit(Se,F),vf(a,d),L.current===D&&(N(new Set),p({workspaceId:a,sessionId:d,text:"",references:[]}),E.current?.focus())}catch(ce){if(L.current!==D)return;ce instanceof Oe&&["context_reference_stale","context_reference_forbidden"].includes(ce.code??"")&&N(new Set(F.map(xo))),b(ce instanceof Error?ce.message:"发送失败,草稿已保留。"),E.current?.focus()}},te=J=>{J.preventDefault(),we(t.processing?"queue":"submit")},ye=J=>{J.key!=="Enter"||J.shiftKey||J.nativeEvent.isComposing||(J.preventDefault(),t.processing&&(J.metaKey||J.ctrlKey)?we("submit"):we(t.processing?"queue":"submit"))};return o.jsxs("div",{className:"composer-control-center",children:[t.composer?.planReview?.status==="awaiting_review"?o.jsx(Wg,{state:t,actions:r}):null,F.length>0?o.jsx(zg,{references:F,invalidReferenceKeys:j,onChange:Ie}):null,o.jsxs("form",{className:"composer composer-v032",onSubmit:te,children:[o.jsx("label",{htmlFor:"orion-composer",className:"sr-only",children:"发送给 Orion"}),o.jsx("textarea",{ref:E,id:"orion-composer",rows:3,maxLength:1e6,value:A,onChange:J=>ge(J.target.value),onKeyDown:ye,placeholder:U?"正在同步会话控制状态…":se?`任务正在排队${t.sessionSnapshot?.sessionRuntime.queuePosition?`(第 ${t.sessionSnapshot.sessionRuntime.queuePosition} 位)`:""}`:ne?"选择会话并配置模型后开始":t.processing?"输入后续消息;Enter 排队,⌘/Ctrl+Enter Steer":"描述任务,或输入 / 查看命令…",disabled:!Y}),o.jsxs("div",{className:"composer-toolbar composer-control-toolbar",children:[o.jsxs("div",{className:"composer-controls composer-control-row",children:[o.jsx(Dg,{state:t,actions:r,disabled:!Y,references:F,onChange:Ie,onInsertCommand:()=>ge(A.trim()?`${A.trimEnd()}
17
- /`:"/")}),o.jsx(kc,{label:Ug(t),accessibleLabel:"工作模式",disabled:!Y,value:t.composer?.mode.baseMode??t.mode.baseMode,options:[{value:"interactive",label:"BUILD",detail:"执行、修改并验证当前任务"},{value:"plan",label:"PLAN",detail:"生成计划并等待你的审核"},{value:"auto",label:"AUTO",detail:"自主执行,仍受权限与沙箱约束"}],onSelect:J=>{J==="auto"?x("auto"):Rt(r.setMode(J))}}),o.jsx(kc,{label:Hg(t),accessibleLabel:"会话权限",disabled:!Y,value:t.composer?.permission.override??"inherit",options:[{value:"inherit",label:"继承项目",detail:`当前 ${t.composer?.permission.projectDefault??"ask"}`},{value:"ask",label:"ASK",detail:"高风险工具逐次请求批准"},{value:"allow",label:"ALLOW",detail:"允许策略许可的工具,不绕过沙箱"},{value:"deny",label:"DENY",detail:"拒绝需要授权的工具"}],onSelect:J=>{J==="allow"?x("allow"):Rt(r.setPermissionOverride(J==="inherit"?null:J))}})]}),o.jsxs("div",{className:"composer-actions composer-control-actions",children:[o.jsx(Lg,{state:t,actions:r,disabled:!Y}),o.jsx($g,{state:t,actions:r,disabled:!Y}),t.processing?o.jsxs(o.Fragment,{children:[o.jsxs("button",{type:"button",className:"icon-text-button stop-button",onClick:()=>Rt(r.interrupt()),disabled:!Y,children:[o.jsx(Q,{name:"stop",size:14}),"停止"]}),o.jsx("button",{type:"button",className:"secondary-button",onClick:()=>{we("submit")},disabled:!A.trim()||!Y,children:"Steer"})]}):null,se?o.jsx("button",{type:"button",className:"secondary-button",onClick:()=>Rt(r.cancelQueuedTurn()),disabled:!ie,children:"取消排队"}):null,o.jsx("button",{type:"submit",className:"send-button composer-send-icon","aria-label":t.processing?"加入消息队列":"发送消息",disabled:!Y||!A.trim(),children:o.jsx(Q,{name:"arrow-up",size:17})})]})]}),F.length>0||k||t.composer?.lastError?o.jsxs("div",{className:"composer-footline",children:[F.length>0?o.jsxs("span",{children:[F.length," 个 Context 引用"]}):null,k?o.jsx("span",{role:"alert",children:k}):t.composer?.lastError?o.jsx("span",{role:"alert",children:t.composer.lastError.message}):null]}):null]}),g?o.jsx(Fg,{kind:g,onCancel:()=>x(null),onConfirm:()=>{const J=g;x(null),Rt(J==="auto"?r.setMode("auto"):r.setPermissionOverride("allow"))}}):null]})}function Lg({state:t,actions:r,disabled:i}){const a=t.composer?.model,d=["auto",...a?.effort.supportedLevels??[]];return o.jsxs("div",{className:"model-control-cluster",children:[o.jsx(Ag,{state:t,actions:r,disabled:i}),a?.effort.supported?o.jsx(kc,{label:t.composer?.pending.model?`${Hi(a.effort.requested)} → ${Hi(t.composer.pending.model.effort)}`:Hi(a.effort.requested),accessibleLabel:"推理强度",disabled:i,value:a.effort.requested,options:d.map(f=>({value:f,label:Hi(f),detail:f==="auto"?"采用模型或项目默认值":`请求 ${f} reasoning effort`})),onSelect:f=>Rt(r.selectModel(a.modelId,f))}):null]})}function Ag({state:t,actions:r,disabled:i}){const[a,d]=m.useState(!1),[f,p]=m.useState(""),g=m.useRef(null),x=m.useRef(null),k=m.useRef(null),b=t.composer?.model,j=t.modelCatalog,N=t.composer?.pending.model?`${b?.modelId??"模型"} → ${t.composer.pending.model.modelId}`:b?.modelId??"模型",E=f.trim().toLowerCase(),z=new Set((j?.unavailableProviders??[]).map(U=>U.id)),L=(j?.items??[]).filter(U=>!z.has(U.providerId)).filter(U=>[U.id,U.label,U.providerId,U.providerLabel].some(se=>se.toLowerCase().includes(E))).slice(0,80),G=new Map;for(const U of L){const se=U.providerLabel||U.providerId;G.set(se,[...G.get(se)??[],U])}const ne=()=>{d(!1),p(""),x.current?.focus()};return vl(a,g,ne),o.jsxs("div",{className:"control-menu",ref:g,children:[o.jsxs("button",{ref:x,type:"button",className:"composer-control-trigger","aria-label":"会话模型","aria-haspopup":"menu","aria-expanded":a,disabled:i,onClick:()=>{a?ne():(d(!0),j||Rt(r.loadModelCatalog()))},children:[o.jsx("span",{children:N}),o.jsx(Q,{name:"chevron",size:12})]}),a?o.jsxs("div",{className:"control-menu-popover model-catalog-popover",role:"menu","aria-label":"会话模型",ref:k,onKeyDown:U=>Mc(U,ne),children:[(j?.items.length??0)>8?o.jsxs("label",{className:"model-catalog-search",children:[o.jsx("span",{className:"sr-only",children:"筛选模型"}),o.jsx("input",{type:"search",value:f,placeholder:"筛选模型…",onChange:U=>p(U.target.value),onKeyDown:U=>{U.key==="ArrowDown"?(U.preventDefault(),hp(k.current)):U.key==="Escape"&&(U.stopPropagation(),ne())}})]}):null,j===null?o.jsx("p",{role:"status",children:"正在加载模型…"}):null,j&&L.length===0?o.jsx("p",{children:"没有匹配的可用模型"}):null,[...G.entries()].map(([U,se])=>o.jsxs("section",{role:"group","aria-label":U,children:[o.jsx("div",{className:"model-provider-heading",children:U}),se.map(ie=>o.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":ie.id===b?.modelId,onClick:()=>{ne(),Rt(r.selectModel(ie.id))},children:[o.jsxs("span",{children:[o.jsx("strong",{children:ie.label}),o.jsxs("small",{children:[ms(ie.contextWindow)," context",ie.reasoning?" · reasoning":""]})]}),ie.id===b?.modelId?o.jsx(Q,{name:"check",size:14}):null]},ie.id))]},U)),j?.unavailableProviders.map(U=>o.jsxs("section",{role:"group","aria-label":`${U.id} 不可用`,children:[o.jsxs("div",{className:"model-provider-heading state-error",children:[U.id," · 不可用"]}),o.jsx("p",{children:U.reason}),o.jsx("button",{type:"button",role:"menuitem",onClick:()=>Rt(r.loadModelCatalog()),children:"Retry"})]},U.id)),(j?.items.length??0)>80&&!E?o.jsx("p",{children:"显示前 80 项;输入关键词继续筛选。"}):null]}):null]})}function $g({state:t,actions:r,disabled:i}){const[a,d]=m.useState(!1),f=m.useRef(null),p=m.useRef(null),g=t.composer?.contextUsage,x=g?Math.max(0,Math.min(100,g.percent)):null,k=g?.source==="estimated",b=!!(g&&g.percent>=g.warningThresholdPercent);return vl(a,f,()=>{d(!1),p.current?.focus()}),o.jsxs("div",{className:"context-meter-wrap",ref:f,children:[o.jsxs("button",{ref:p,type:"button",className:"context-meter-button","aria-label":g?`Context ${k?"估算 ":""}${g.usedTokens} / ${g.safeInputBudget??g.contextWindow} tokens,${g.percent}%${b?",接近压缩阈值":""}`:"Context 用量不可用","aria-haspopup":"dialog","aria-expanded":a,disabled:i,onClick:()=>d(j=>!j),children:[o.jsx("span",{className:"context-meter-ring",style:{"--context-percent":`${x??0}%`},"aria-hidden":"true"}),o.jsx("span",{children:g?`${k?"~":""}${g.percent}%${b?" !":""}`:"Context"})]}),a?o.jsxs("section",{className:"context-popover",role:"dialog","aria-label":"Context 用量详情",children:[o.jsxs("header",{children:[o.jsx("strong",{children:"Context"}),o.jsx("button",{type:"button",className:"icon-button",onClick:()=>d(!1),"aria-label":"关闭 Context 详情",children:o.jsx(Q,{name:"close",size:14})})]}),g?o.jsxs("dl",{children:[o.jsxs("div",{children:[o.jsx("dt",{children:"当前模型"}),o.jsx("dd",{children:g.modelId})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"已使用"}),o.jsx("dd",{children:ms(g.usedTokens)})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"安全输入预算"}),o.jsx("dd",{children:ms(g.safeInputBudget??g.contextWindow)})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"原始窗口"}),o.jsx("dd",{children:ms(g.contextWindow)})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"输出预留"}),o.jsx("dd",{children:ms(g.reservedOutputTokens??0)})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"安全余量"}),o.jsx("dd",{children:ms(g.safetyMarginTokens??0)})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"来源"}),o.jsx("dd",{children:g.source==="estimated"?"估算 ~":g.source})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"警告阈值"}),o.jsxs("dd",{children:[g.warningThresholdPercent,"%"]})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"自动压缩"}),o.jsx("dd",{children:g.autoCompactEnabled?`${g.autoCompactThresholdPercent}%`:"关闭"})]})]}):o.jsx("p",{children:"Runtime 尚未提供当前模型的 Context 计数。"}),t.composer?.compactAvailable?o.jsx("button",{type:"button",className:"secondary-button",disabled:!g||t.processing,onClick:()=>Rt(r.compactContext()),children:"立即压缩"}):null]}):null]})}function Dg({state:t,actions:r,disabled:i,references:a,onChange:d,onInsertCommand:f}){const[p,g]=m.useState(!1),[x,k]=m.useState("root"),[b,j]=m.useState([]),[N,E]=m.useState(!1),[z,L]=m.useState(""),G=m.useRef(null),ne=m.useRef(null);vl(p,G,()=>g(!1));const U=A=>{a.some(F=>F.kind===A.kind&&F.id===A.id)||d([...a,A]),g(!1),k("root")},se=async()=>{k("files"),E(!0),L("");try{const A=await r.listFiles();j(A.items.filter(F=>F.readable&&!F.sensitive))}catch(A){L(A instanceof Error?A.message:"文件列表加载失败。")}finally{E(!1)}},ie=async A=>{E(!0),L("");try{if(wf(A)){const F=await r.listFiles(A.id);U({kind:"folder",id:A.id,label:A.name,revision:F.revision})}else if(Vg(A)){const F=await r.readFileContent(A.id);if(F.binary||F.sensitive)throw new Error("该文件不能加入模型 Context。");U({kind:"file",id:A.id,label:A.name,revision:F.revision})}}catch(F){L(F instanceof Error?F.message:"Context 引用加载失败。")}finally{E(!1)}},Y=async()=>{E(!0);try{const A=await r.review();U({kind:"review",id:"working-tree",label:A.truncated?`Review · ${A.totalChangedFiles} files · ${A.changedFiles.length} visible`:`Review · ${A.totalChangedFiles} files`,gitRevision:A.repositoryRevision})}catch(A){L(A instanceof Error?A.message:"Review Context 加载失败。")}finally{E(!1)}};return o.jsxs("div",{className:"control-menu context-launcher",ref:G,children:[o.jsx("button",{type:"button",className:"context-add-button","aria-label":"添加 Context","aria-haspopup":"menu","aria-expanded":p,disabled:i,onClick:()=>{const A=!p;g(A),A&&requestAnimationFrame(()=>hp(ne.current))},children:o.jsx(Q,{name:"add",size:17})}),p?o.jsxs("div",{className:"control-menu-popover context-launcher-menu",role:"menu","aria-label":"添加 Context",ref:ne,onKeyDown:A=>Mc(A,()=>g(!1)),children:[x!=="root"?o.jsx("button",{type:"button",role:"menuitem",onClick:()=>k("root"),children:"← 返回"}):null,x==="root"?o.jsxs(o.Fragment,{children:[o.jsx(Nn,{label:"文件或目录",detail:"Workspace 内受控读取",onClick:()=>{se()}}),o.jsx(Nn,{label:"当前 Review",detail:"绑定 exact Git revision",onClick:()=>{Y()}}),o.jsx(Nn,{label:"历史 Session",detail:"引用受控摘要",onClick:()=>k("sessions")}),o.jsx(Nn,{label:"Skill",detail:"绑定已加载能力 digest",onClick:()=>k("skills")}),o.jsx(Nn,{label:"命令",detail:"插入 / 命令入口",onClick:()=>{f(),g(!1)}}),a.length>0?o.jsx(Nn,{label:"清除 Context",detail:"移除当前草稿全部引用",onClick:()=>{d([]),g(!1)}}):null]}):null,x==="files"?b.map(A=>o.jsx(Nn,{label:A.name,detail:wf(A)?"目录":`${A.sizeBytes??0} bytes`,onClick:()=>{ie(A)}},A.id)):null,x==="sessions"?t.sessions.filter(A=>A.id!==t.activeSessionId).map(A=>o.jsx(Nn,{label:A.name||`Session ${A.id.slice(0,8)}`,detail:`${A.messageCount} 条消息`,onClick:()=>U({kind:"session",id:A.id,label:A.name||`Session ${A.id.slice(0,8)}`,digest:A.contextDigest})},A.id)):null,x==="skills"?t.skills.filter(A=>A.userInvocable).map(A=>o.jsx(Nn,{label:A.name,detail:A.description,onClick:()=>U({kind:"skill",id:A.id,label:A.name,digest:A.digest})},A.id)):null,N?o.jsx("p",{role:"status",children:"正在加载…"}):null,z?o.jsx("p",{role:"alert",children:z}):null]}):null]})}function zg({references:t,invalidReferenceKeys:r,onChange:i}){return o.jsx("div",{className:"context-tray","aria-label":"当前 Context 引用",children:t.map(a=>o.jsxs("span",{className:`context-chip${r.has(xo(a))?" state-stale":""}`,children:[o.jsx("small",{children:Kg(a.kind)}),o.jsx("span",{children:a.label}),r.has(xo(a))?o.jsx("span",{className:"context-chip-state",children:"已失效,请移除后重新添加"}):null,o.jsx("button",{type:"button","aria-label":`移除 Context ${a.label}`,onClick:()=>i(t.filter(d=>d!==a)),children:o.jsx(Q,{name:"close",size:12})})]},xo(a)))})}function Wg({state:t,actions:r}){const i=t.composer.planReview,[a,d]=m.useState(!1),[f,p]=m.useState(""),g=ks(t)||t.connection!=="live"||!ir(t);return o.jsxs("section",{className:"plan-review-card","aria-labelledby":"plan-review-title",children:[o.jsxs("div",{children:[o.jsx("span",{className:"eyebrow",children:"PLAN REVIEW"}),o.jsx("h2",{id:"plan-review-title",children:"计划已保存,尚未执行"}),o.jsxs("p",{children:["由 ",i.createdModel," 创建 · digest ",i.planDigest.slice(0,12)]})]}),a?o.jsxs("label",{children:["继续规划反馈",o.jsx("textarea",{rows:2,value:f,onChange:x=>p(x.target.value)})]}):null,o.jsxs("div",{className:"plan-review-actions",children:[o.jsx("button",{type:"button",className:"danger-ghost-button",disabled:g,onClick:()=>Rt(r.reviewPlan(i.planDigest,"cancel")),children:"取消计划"}),a?o.jsx("button",{type:"button",className:"secondary-button",disabled:g||!f.trim(),onClick:()=>Rt(r.reviewPlan(i.planDigest,"continue",f.trim())),children:"提交反馈"}):o.jsx("button",{type:"button",className:"secondary-button",disabled:g,onClick:()=>d(!0),children:"继续规划"}),o.jsx("button",{type:"button",className:"primary-button",disabled:g,onClick:()=>Rt(r.reviewPlan(i.planDigest,"approve")),children:"批准并进入 BUILD"})]})]})}function kc({label:t,accessibleLabel:r,value:i,options:a,disabled:d,emptyLabel:f,onOpen:p,onSelect:g}){const[x,k]=m.useState(!1),b=m.useRef(null),j=m.useRef(null),N=m.useRef(null),E=m.useId(),z=()=>{k(!1),j.current?.focus()},L=()=>{k(!0),p?.(),requestAnimationFrame(()=>Bg(N.current))};return vl(x,b,z),o.jsxs("div",{className:"control-menu",ref:b,children:[o.jsxs("button",{ref:j,type:"button",className:"composer-control-trigger","aria-label":r,"aria-haspopup":"menu","aria-expanded":x,"aria-controls":x?E:void 0,disabled:d,onClick:()=>{x?z():L()},onKeyDown:G=>{G.key==="ArrowDown"&&(G.preventDefault(),L())},children:[o.jsx("span",{children:t}),o.jsx(Q,{name:"chevron",size:12})]}),x?o.jsx("div",{id:E,ref:N,className:"control-menu-popover",role:"menu","aria-label":r,onKeyDown:G=>Mc(G,z),children:a.length===0?o.jsx("p",{children:f??"没有选项"}):a.map(G=>o.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":G.value===i,onClick:()=>{z(),g(G.value)},children:[o.jsxs("span",{children:[o.jsx("strong",{children:G.label}),o.jsx("small",{children:G.detail})]}),G.value===i?o.jsx(Q,{name:"check",size:14}):null]},G.value))}):null]})}function Nn({label:t,detail:r,onClick:i}){return o.jsx("button",{type:"button",role:"menuitem",onClick:i,children:o.jsxs("span",{children:[o.jsx("strong",{children:t}),o.jsx("small",{children:r})]})})}function Fg({kind:t,onCancel:r,onConfirm:i}){const[a,d]=m.useState(!1),f=m.useRef(null),p=m.useRef(null);return m.useEffect(()=>{const g=document.querySelector(t==="auto"?'[aria-label="工作模式"]':'[aria-label="会话权限"]');return p.current?.focus(),()=>g?.focus()},[t]),o.jsx("div",{className:"modal-backdrop",onPointerDown:g=>{g.target===g.currentTarget&&r()},children:o.jsxs("section",{ref:f,className:"risk-confirmation",role:"alertdialog","aria-modal":"true","aria-labelledby":"risk-title","aria-describedby":"risk-description",onKeyDown:g=>qg(g,f.current,r),children:[o.jsx("h2",{id:"risk-title",children:t==="auto"?"启用 AUTO 模式?":"启用会话 ALLOW?"}),o.jsx("p",{id:"risk-description",children:t==="auto"?"Orion 会自主执行多个步骤,但仍受 ToolGateway、沙箱与 Workspace containment 约束。":"策略允许的工具将不再逐次询问;硬拒绝、沙箱和 Workspace 边界仍然生效。"}),o.jsxs("label",{children:[o.jsx("input",{type:"checkbox",checked:a,onChange:g=>d(g.target.checked)}),"我理解这会扩大本会话的默认执行范围"]}),o.jsxs("div",{children:[o.jsx("button",{ref:p,type:"button",className:"secondary-button",onClick:r,children:"取消"}),o.jsx("button",{type:"button",className:"primary-button",disabled:!a,onClick:i,children:"确认启用"})]})]})})}function Oc(t){return t?[...t.querySelectorAll('[role="menuitem"], [role="menuitemradio"]')].filter(r=>!r.disabled):[]}function hp(t){Oc(t)[0]?.focus()}function Bg(t){const r=Oc(t);(r.find(i=>i.getAttribute("aria-checked")==="true")??r[0])?.focus()}function Mc(t,r){if(t.key==="Escape"){t.preventDefault(),r();return}if(!["ArrowDown","ArrowUp","Home","End"].includes(t.key))return;t.preventDefault();const i=Oc(t.currentTarget);if(i.length===0)return;const a=i.indexOf(document.activeElement),d=t.key==="Home"?0:t.key==="End"?i.length-1:t.key==="ArrowDown"?(Math.max(0,a)+1)%i.length:(a<=0?i.length:a)-1;i[d]?.focus()}function qg(t,r,i){if(t.key==="Escape"){t.preventDefault(),i();return}if(t.key!=="Tab"||!r)return;const a=[...r.querySelectorAll('button:not(:disabled), input:not(:disabled), textarea:not(:disabled), [tabindex]:not([tabindex="-1"])')];if(a.length===0)return;const d=a[0],f=a.at(-1);t.shiftKey&&document.activeElement===d?(t.preventDefault(),f.focus()):!t.shiftKey&&document.activeElement===f&&(t.preventDefault(),d.focus())}function vl(t,r,i){m.useEffect(()=>{if(!t)return;const a=f=>{r.current?.contains(f.target)||i()},d=f=>{f.key==="Escape"&&i()};return document.addEventListener("pointerdown",a),document.addEventListener("keydown",d),()=>{document.removeEventListener("pointerdown",a),document.removeEventListener("keydown",d)}},[i,t,r])}function xf(t){return t==="plan"?"PLAN":t==="auto"?"AUTO":"BUILD"}function Ug(t){const r=t.composer?.mode??t.mode,i=xf(r.baseMode);return r.pendingBaseMode?`${i} → ${xf(r.pendingBaseMode)}`:i}function Hg(t){const r=t.composer?.permission,i=r?.source==="session"?"Session":"Project",a=`${r?.effective.toUpperCase()??"ASK"} · ${i}`;if((t.composer?.mode.baseMode??t.mode.baseMode)==="auto"&&r?.effective!=="deny")return"AUTO · hard policy";const d=t.composer?.pending.permission;return d?`${a} → ${(d.override??r?.projectDefault??"ask").toUpperCase()} · Session`:a}function Hi(t){return t==="auto"?"Effort 自动":`Effort ${t}`}function wf(t){return t.kind==="directory"||t.kind==="symlink"&&t.targetKind==="directory"}function Vg(t){return t.kind==="file"||t.kind==="symlink"&&t.targetKind==="file"}function Kg(t){return t==="file"?"FILE":t==="folder"?"FOLDER":t==="review"?"REVIEW":t==="session"?"SESSION":"SKILL"}function xo(t){return`${t.kind}:${t.id}`}function Rt(t){t.catch(()=>{})}function ms(t){return t>=1e3?`${Math.round(t/1e3)}k`:String(t)}const Gg=48,Qg=64,Yg=new Set(["user","assistant"]);function Xg(t,r={}){const i=Zg(r.maxBuckets),a=[...t].filter(g=>Number.isFinite(g.order)).sort((g,x)=>g.order-x.order);if(a.length===0)return Object.freeze({anchors:Object.freeze([]),buckets:Object.freeze([]),minOrder:0,maxOrder:0});const d=Math.min(a.length,i),f=Math.ceil(a.length/d),p=[];for(let g=0;g<d;g+=1){const x=a.slice(g*f,(g+1)*f);if(x.length===0)break;p.push(Jg(g,x))}return Object.freeze({anchors:Object.freeze(a),buckets:Object.freeze(p),minOrder:p[0]?.startOrder??0,maxOrder:p.at(-1)?.endOrder??0})}function Jg(t,r){const i=[],a=new Set;let d=!1,f=null;for(const p of r)a.has(p.kind)||(a.add(p.kind),i.push(p.kind)),p.priority==="error"&&(d=!0,(!f||p.priority==="error")&&(f=p));if(!f){let p=null;for(const g of r)Yg.has(g.kind)&&(p=g);f=p??r[Math.floor((r.length-1)/2)]}return Object.freeze({index:t,startOrder:r[0].order,endOrder:r.at(-1).order,orders:Object.freeze(r.map(p=>p.order)),kinds:Object.freeze(i),hasError:d,jumpOrder:f.order})}function Zg(t){return typeof t!="number"||!Number.isFinite(t)?Gg:Math.min(Qg,Math.max(1,Math.round(t)))}function ev(t){switch(t){case"user":return"用户任务";case"assistant":return"Orion 回复";case"tool":return"工具活动";case"edit":return"文件修改";case"subtask":return"子任务";case"research":return"研究";case"system":return"系统/错误"}}function tv(t,r){const i=t.buckets.findIndex(f=>r>=f.startOrder&&r<=f.endOrder),a=i>=0?t.buckets[i]:void 0,d=a?.kinds.includes("assistant")?"assistant":a?.kinds.includes("user")?"user":a?.kinds[0]??"system";return{bucketIndex:i>=0?i+1:0,bucketCount:t.buckets.length,kindLabel:d?ev(d):"未知"}}function kf(t,r){return r<=0?0:r===1?.5:Math.max(0,Math.min(r-1,t))/(r-1)}function Vi(t,r){const i=t.buckets.findIndex(a=>r>=a.startOrder&&r<=a.endOrder);return i>=0?i:null}function nv(t){const r=t.kind==="tool"||t.kind==="edit"||t.kind==="subtask"||t.kind==="research"?160:240,i=t.label.length,a=.35+Math.log2(1+i/r)*.55;return Math.max(.15,Math.min(1,a))}const rv=220,sv=400;function ov(t,r={}){const i=typeof r.maxTicks=="number"&&Number.isFinite(r.maxTicks)?Math.max(1,Math.min(sv,Math.round(r.maxTicks))):rv,a=[...t].filter(p=>Number.isFinite(p.order)).sort((p,g)=>p.order-g.order);if(a.length===0)return Object.freeze([]);const d=[];if(a.length<=i)for(const p of a)d.push([p]);else{const p=Math.ceil(a.length/i);for(let g=0;g<a.length;g+=p)d.push(a.slice(g,g+p))}const f=d.map((p,g)=>{const x=p.some(E=>E.priority==="error");let b=p.reduce((E,z)=>z.order>E.order?z:E,p[0]),j=-1;for(const E of p){const z=E.priority==="error"?2:E.priority==="turn"?1:0;z>=j&&(j=z,b=E)}const N=Math.max(.15,Math.min(1,p.reduce((E,z)=>E+nv(z),0)/p.length+(x?.1:0)));return{index:g,orders:Object.freeze(p.map(E=>E.order)),jumpOrder:b.order,weight:N,hasError:x}});return Object.freeze(f)}function iv(t){return t>=.72?"history-tick-l":t>=.45?"history-tick-m":"history-tick-s"}function jf(t){const{clientY:r,railTop:i,railHeight:a,tickCount:d}=t;if(!Number.isFinite(a)||a<=0||d<=0)return 0;const f=(r-i)/a;return Math.max(0,Math.min(d-1,Math.round(f*(d-1))))}function lv(t,r){let i=null;for(const a of t)a.topInViewport<r-1||(!i||a.topInViewport<i.topInViewport)&&(i=a);return i?.order??null}function av(t,r){if(t.anchors.length===0)return null;let i=t.anchors[0].order,a=Number.POSITIVE_INFINITY;for(const d of t.anchors){const f=Math.abs(d.order-r);(f<a||f===a&&d.order>i)&&(i=d.order,a=f)}return i}function cv(t){const{key:r,currentIndex:i,bucketCount:a,model:d}=t;if(a<=0)return null;const f=t.shiftKey?5:1;if(r==="Home")return d.buckets[0]?.jumpOrder??null;if(r==="End")return d.buckets.at(-1)?.jumpOrder??null;let p;if(r==="ArrowUp"||r==="ArrowLeft")p=i-f;else if(r==="ArrowDown"||r==="ArrowRight")p=i+f;else if(r==="PageUp")p=i-5;else if(r==="PageDown")p=i+5;else return null;const g=Math.max(0,Math.min(a-1,p));return d.buckets[g]?.jumpOrder??null}function uv({model:t,activeOrder:r,span:i,hasEarlierHistory:a,processing:d,reduceMotion:f,onJumpToOrder:p,onJumpToLatest:g}){const x=m.useRef(null),k=m.useRef(null),b=m.useRef(!1),j=m.useRef(null),N=m.useRef(null),[E,z]=m.useState(!1),[L,G]=m.useState(null),ne=m.useMemo(()=>ov(t.anchors),[t.anchors]),U=ne.length,se=m.useMemo(()=>{if(r===null||U===0)return 0;const D=Vi(t,r);return D!==null?D+1:0},[r,t,U]),ie=m.useMemo(()=>r===null?null:tv(t,r),[r,t]),Y=i!==null?Vi(t,i.firstOrder)??0:null,A=i!==null?Vi(t,i.lastOrder)??t.buckets.length-1:null,F=m.useMemo(()=>ne.map(D=>Vi(t,D.jumpOrder)),[t,ne]),ge=m.useCallback(()=>{j.current!==null&&(window.clearTimeout(j.current),j.current=null),G(null)},[]),Ie=m.useCallback(D=>{const ce=x.current;if(!ce)return;const W=ce.getBoundingClientRect(),T=jf({clientY:D,railTop:W.top,railHeight:W.height,tickCount:U}),B=ne[T];if(!B)return;const $=t.anchors.find(ue=>ue.order===B.jumpOrder);let v=$?.preview;if($?.kind==="user"){const fe=t.anchors.find(ke=>ke.order>$.order&&ke.kind==="assistant")?.preview;fe&&(v=v?`${v}
16
+ ${i.text}`:i.text})),requestAnimationFrame(()=>E.current?.focus()))},[z,G,i,d]);const L=G===z?f.text:"",F=G===z?f.references:[],ge=J=>p(Se=>({...Se,workspaceId:a,sessionId:d,text:J})),Ie=J=>{const Se=new Set(J.map(xo));N(D=>new Set([...D].filter(ce=>Se.has(ce)))),p(D=>({...D,workspaceId:a,sessionId:d,references:J}))},we=async J=>{const Se=L.trim();if(!Se||!Y)return;const D=z;try{J==="queue"?await r.queue(Se,F):await r.submit(Se,F),vf(a,d),A.current===D&&(N(new Set),p({workspaceId:a,sessionId:d,text:"",references:[]}),E.current?.focus())}catch(ce){if(A.current!==D)return;ce instanceof Oe&&["context_reference_stale","context_reference_forbidden"].includes(ce.code??"")&&N(new Set(F.map(xo))),b(ce instanceof Error?ce.message:"发送失败,草稿已保留。"),E.current?.focus()}},te=J=>{J.preventDefault(),we(t.processing?"queue":"submit")},ye=J=>{J.key!=="Enter"||J.shiftKey||J.nativeEvent.isComposing||(J.preventDefault(),t.processing&&(J.metaKey||J.ctrlKey)?we("submit"):we(t.processing?"queue":"submit"))};return o.jsxs("div",{className:"composer-control-center",children:[t.composer?.planReview?.status==="awaiting_review"?o.jsx(Wg,{state:t,actions:r}):null,F.length>0?o.jsx(zg,{references:F,invalidReferenceKeys:j,onChange:Ie}):null,o.jsxs("form",{className:"composer composer-v032",onSubmit:te,children:[o.jsx("label",{htmlFor:"orion-composer",className:"sr-only",children:"发送给 Orion"}),o.jsx("textarea",{ref:E,id:"orion-composer",rows:3,maxLength:1e6,value:L,onChange:J=>ge(J.target.value),onKeyDown:ye,placeholder:U?"正在同步会话控制状态…":se?`任务正在排队${t.sessionSnapshot?.sessionRuntime.queuePosition?`(第 ${t.sessionSnapshot.sessionRuntime.queuePosition} 位)`:""}`:ne?"选择会话并配置模型后开始":t.processing?"输入后续消息;Enter 排队,⌘/Ctrl+Enter Steer":"描述任务,或输入 / 查看命令…",disabled:!Y}),o.jsxs("div",{className:"composer-toolbar composer-control-toolbar",children:[o.jsxs("div",{className:"composer-controls composer-control-row",children:[o.jsx(Dg,{state:t,actions:r,disabled:!Y,references:F,onChange:Ie,onInsertCommand:()=>ge(L.trim()?`${L.trimEnd()}
17
+ /`:"/")}),o.jsx(kc,{label:Ug(t),accessibleLabel:"工作模式",disabled:!Y,value:t.composer?.mode.baseMode??t.mode.baseMode,options:[{value:"interactive",label:"BUILD",detail:"执行、修改并验证当前任务"},{value:"plan",label:"PLAN",detail:"生成计划并等待你的审核"},{value:"auto",label:"AUTO",detail:"自主执行,仍受权限与沙箱约束"}],onSelect:J=>{J==="auto"?x("auto"):Rt(r.setMode(J))}}),o.jsx(kc,{label:Hg(t),accessibleLabel:"会话权限",disabled:!Y,value:t.composer?.permission.override??"inherit",options:[{value:"inherit",label:"继承项目",detail:`当前 ${t.composer?.permission.projectDefault??"ask"}`},{value:"ask",label:"ASK",detail:"高风险工具逐次请求批准"},{value:"allow",label:"ALLOW",detail:"允许策略许可的工具,不绕过沙箱"},{value:"deny",label:"DENY",detail:"拒绝需要授权的工具"}],onSelect:J=>{J==="allow"?x("allow"):Rt(r.setPermissionOverride(J==="inherit"?null:J))}})]}),o.jsxs("div",{className:"composer-actions composer-control-actions",children:[o.jsx(Ag,{state:t,actions:r,disabled:!Y}),o.jsx($g,{state:t,actions:r,disabled:!Y}),t.processing?o.jsxs(o.Fragment,{children:[o.jsxs("button",{type:"button",className:"icon-text-button stop-button",onClick:()=>Rt(r.interrupt()),disabled:!Y,children:[o.jsx(Q,{name:"stop",size:14}),"停止"]}),o.jsx("button",{type:"button",className:"secondary-button",onClick:()=>{we("submit")},disabled:!L.trim()||!Y,children:"Steer"})]}):null,se?o.jsx("button",{type:"button",className:"secondary-button",onClick:()=>Rt(r.cancelQueuedTurn()),disabled:!ie,children:"取消排队"}):null,o.jsx("button",{type:"submit",className:"send-button composer-send-icon","aria-label":t.processing?"加入消息队列":"发送消息",disabled:!Y||!L.trim(),children:o.jsx(Q,{name:"arrow-up",size:17})})]})]}),F.length>0||k||t.composer?.lastError?o.jsxs("div",{className:"composer-footline",children:[F.length>0?o.jsxs("span",{children:[F.length," 个 Context 引用"]}):null,k?o.jsx("span",{role:"alert",children:k}):t.composer?.lastError?o.jsx("span",{role:"alert",children:t.composer.lastError.message}):null]}):null]}),g?o.jsx(Fg,{kind:g,onCancel:()=>x(null),onConfirm:()=>{const J=g;x(null),Rt(J==="auto"?r.setMode("auto"):r.setPermissionOverride("allow"))}}):null]})}function Ag({state:t,actions:r,disabled:i}){const a=t.composer?.model,d=["auto",...a?.effort.supportedLevels??[]];return o.jsxs("div",{className:"model-control-cluster",children:[o.jsx(Lg,{state:t,actions:r,disabled:i}),a?.effort.supported?o.jsx(kc,{label:t.composer?.pending.model?`${Hi(a.effort.requested)} → ${Hi(t.composer.pending.model.effort)}`:Hi(a.effort.requested),accessibleLabel:"推理强度",disabled:i,value:a.effort.requested,options:d.map(f=>({value:f,label:Hi(f),detail:f==="auto"?"采用模型或项目默认值":`请求 ${f} reasoning effort`})),onSelect:f=>Rt(r.selectModel(a.modelId,f))}):null]})}function Lg({state:t,actions:r,disabled:i}){const[a,d]=m.useState(!1),[f,p]=m.useState(""),g=m.useRef(null),x=m.useRef(null),k=m.useRef(null),b=t.composer?.model,j=t.modelCatalog,N=t.composer?.pending.model?`${b?.modelId??"模型"} → ${t.composer.pending.model.modelId}`:b?.modelId??"模型",E=f.trim().toLowerCase(),z=new Set((j?.unavailableProviders??[]).map(U=>U.id)),A=(j?.items??[]).filter(U=>!z.has(U.providerId)).filter(U=>[U.id,U.label,U.providerId,U.providerLabel].some(se=>se.toLowerCase().includes(E))).slice(0,80),G=new Map;for(const U of A){const se=U.providerLabel||U.providerId;G.set(se,[...G.get(se)??[],U])}const ne=()=>{d(!1),p(""),x.current?.focus()};return vl(a,g,ne),o.jsxs("div",{className:"control-menu",ref:g,children:[o.jsxs("button",{ref:x,type:"button",className:"composer-control-trigger","aria-label":"会话模型","aria-haspopup":"menu","aria-expanded":a,disabled:i,onClick:()=>{a?ne():(d(!0),j||Rt(r.loadModelCatalog()))},children:[o.jsx("span",{children:N}),o.jsx(Q,{name:"chevron",size:12})]}),a?o.jsxs("div",{className:"control-menu-popover model-catalog-popover",role:"menu","aria-label":"会话模型",ref:k,onKeyDown:U=>Mc(U,ne),children:[(j?.items.length??0)>8?o.jsxs("label",{className:"model-catalog-search",children:[o.jsx("span",{className:"sr-only",children:"筛选模型"}),o.jsx("input",{type:"search",value:f,placeholder:"筛选模型…",onChange:U=>p(U.target.value),onKeyDown:U=>{U.key==="ArrowDown"?(U.preventDefault(),hp(k.current)):U.key==="Escape"&&(U.stopPropagation(),ne())}})]}):null,j===null?o.jsx("p",{role:"status",children:"正在加载模型…"}):null,j&&A.length===0?o.jsx("p",{children:"没有匹配的可用模型"}):null,[...G.entries()].map(([U,se])=>o.jsxs("section",{role:"group","aria-label":U,children:[o.jsx("div",{className:"model-provider-heading",children:U}),se.map(ie=>o.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":ie.id===b?.modelId,onClick:()=>{ne(),Rt(r.selectModel(ie.id))},children:[o.jsxs("span",{children:[o.jsx("strong",{children:ie.label}),o.jsxs("small",{children:[ms(ie.contextWindow)," context",ie.reasoning?" · reasoning":""]})]}),ie.id===b?.modelId?o.jsx(Q,{name:"check",size:14}):null]},ie.id))]},U)),j?.unavailableProviders.map(U=>o.jsxs("section",{role:"group","aria-label":`${U.id} 不可用`,children:[o.jsxs("div",{className:"model-provider-heading state-error",children:[U.id," · 不可用"]}),o.jsx("p",{children:U.reason}),o.jsx("button",{type:"button",role:"menuitem",onClick:()=>Rt(r.loadModelCatalog()),children:"Retry"})]},U.id)),(j?.items.length??0)>80&&!E?o.jsx("p",{children:"显示前 80 项;输入关键词继续筛选。"}):null]}):null]})}function $g({state:t,actions:r,disabled:i}){const[a,d]=m.useState(!1),f=m.useRef(null),p=m.useRef(null),g=t.composer?.contextUsage,x=g?Math.max(0,Math.min(100,g.percent)):null,k=g?.source==="estimated",b=!!(g&&g.percent>=g.warningThresholdPercent);return vl(a,f,()=>{d(!1),p.current?.focus()}),o.jsxs("div",{className:"context-meter-wrap",ref:f,children:[o.jsxs("button",{ref:p,type:"button",className:"context-meter-button","aria-label":g?`Context ${k?"估算 ":""}${g.usedTokens} / ${g.safeInputBudget??g.contextWindow} tokens,${g.percent}%${b?",接近压缩阈值":""}`:"Context 用量不可用","aria-haspopup":"dialog","aria-expanded":a,disabled:i,onClick:()=>d(j=>!j),children:[o.jsx("span",{className:"context-meter-ring",style:{"--context-percent":`${x??0}%`},"aria-hidden":"true"}),o.jsx("span",{children:g?`${k?"~":""}${g.percent}%${b?" !":""}`:"Context"})]}),a?o.jsxs("section",{className:"context-popover",role:"dialog","aria-label":"Context 用量详情",children:[o.jsxs("header",{children:[o.jsx("strong",{children:"Context"}),o.jsx("button",{type:"button",className:"icon-button",onClick:()=>d(!1),"aria-label":"关闭 Context 详情",children:o.jsx(Q,{name:"close",size:14})})]}),g?o.jsxs("dl",{children:[o.jsxs("div",{children:[o.jsx("dt",{children:"当前模型"}),o.jsx("dd",{children:g.modelId})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"已使用"}),o.jsx("dd",{children:ms(g.usedTokens)})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"安全输入预算"}),o.jsx("dd",{children:ms(g.safeInputBudget??g.contextWindow)})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"原始窗口"}),o.jsx("dd",{children:ms(g.contextWindow)})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"输出预留"}),o.jsx("dd",{children:ms(g.reservedOutputTokens??0)})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"安全余量"}),o.jsx("dd",{children:ms(g.safetyMarginTokens??0)})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"来源"}),o.jsx("dd",{children:g.source==="estimated"?"估算 ~":g.source})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"警告阈值"}),o.jsxs("dd",{children:[g.warningThresholdPercent,"%"]})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"自动压缩"}),o.jsx("dd",{children:g.autoCompactEnabled?`${g.autoCompactThresholdPercent}%`:"关闭"})]})]}):o.jsx("p",{children:"Runtime 尚未提供当前模型的 Context 计数。"}),t.composer?.compactAvailable?o.jsx("button",{type:"button",className:"secondary-button",disabled:!g||t.processing,onClick:()=>Rt(r.compactContext()),children:"立即压缩"}):null]}):null]})}function Dg({state:t,actions:r,disabled:i,references:a,onChange:d,onInsertCommand:f}){const[p,g]=m.useState(!1),[x,k]=m.useState("root"),[b,j]=m.useState([]),[N,E]=m.useState(!1),[z,A]=m.useState(""),G=m.useRef(null),ne=m.useRef(null);vl(p,G,()=>g(!1));const U=L=>{a.some(F=>F.kind===L.kind&&F.id===L.id)||d([...a,L]),g(!1),k("root")},se=async()=>{k("files"),E(!0),A("");try{const L=await r.listFiles();j(L.items.filter(F=>F.readable&&!F.sensitive))}catch(L){A(L instanceof Error?L.message:"文件列表加载失败。")}finally{E(!1)}},ie=async L=>{E(!0),A("");try{if(wf(L)){const F=await r.listFiles(L.id);U({kind:"folder",id:L.id,label:L.name,revision:F.revision})}else if(Vg(L)){const F=await r.readFileContent(L.id);if(F.binary||F.sensitive)throw new Error("该文件不能加入模型 Context。");U({kind:"file",id:L.id,label:L.name,revision:F.revision})}}catch(F){A(F instanceof Error?F.message:"Context 引用加载失败。")}finally{E(!1)}},Y=async()=>{E(!0);try{const L=await r.review();U({kind:"review",id:"working-tree",label:L.truncated?`Review · ${L.totalChangedFiles} files · ${L.changedFiles.length} visible`:`Review · ${L.totalChangedFiles} files`,gitRevision:L.repositoryRevision})}catch(L){A(L instanceof Error?L.message:"Review Context 加载失败。")}finally{E(!1)}};return o.jsxs("div",{className:"control-menu context-launcher",ref:G,children:[o.jsx("button",{type:"button",className:"context-add-button","aria-label":"添加 Context","aria-haspopup":"menu","aria-expanded":p,disabled:i,onClick:()=>{const L=!p;g(L),L&&requestAnimationFrame(()=>hp(ne.current))},children:o.jsx(Q,{name:"add",size:17})}),p?o.jsxs("div",{className:"control-menu-popover context-launcher-menu",role:"menu","aria-label":"添加 Context",ref:ne,onKeyDown:L=>Mc(L,()=>g(!1)),children:[x!=="root"?o.jsx("button",{type:"button",role:"menuitem",onClick:()=>k("root"),children:"← 返回"}):null,x==="root"?o.jsxs(o.Fragment,{children:[o.jsx(Nn,{label:"文件或目录",detail:"Workspace 内受控读取",onClick:()=>{se()}}),o.jsx(Nn,{label:"当前 Review",detail:"绑定 exact Git revision",onClick:()=>{Y()}}),o.jsx(Nn,{label:"历史 Session",detail:"引用受控摘要",onClick:()=>k("sessions")}),o.jsx(Nn,{label:"Skill",detail:"绑定已加载能力 digest",onClick:()=>k("skills")}),o.jsx(Nn,{label:"命令",detail:"插入 / 命令入口",onClick:()=>{f(),g(!1)}}),a.length>0?o.jsx(Nn,{label:"清除 Context",detail:"移除当前草稿全部引用",onClick:()=>{d([]),g(!1)}}):null]}):null,x==="files"?b.map(L=>o.jsx(Nn,{label:L.name,detail:wf(L)?"目录":`${L.sizeBytes??0} bytes`,onClick:()=>{ie(L)}},L.id)):null,x==="sessions"?t.sessions.filter(L=>L.id!==t.activeSessionId).map(L=>o.jsx(Nn,{label:L.name||`Session ${L.id.slice(0,8)}`,detail:`${L.messageCount} 条消息`,onClick:()=>U({kind:"session",id:L.id,label:L.name||`Session ${L.id.slice(0,8)}`,digest:L.contextDigest})},L.id)):null,x==="skills"?t.skills.filter(L=>L.userInvocable).map(L=>o.jsx(Nn,{label:L.name,detail:L.description,onClick:()=>U({kind:"skill",id:L.id,label:L.name,digest:L.digest})},L.id)):null,N?o.jsx("p",{role:"status",children:"正在加载…"}):null,z?o.jsx("p",{role:"alert",children:z}):null]}):null]})}function zg({references:t,invalidReferenceKeys:r,onChange:i}){return o.jsx("div",{className:"context-tray","aria-label":"当前 Context 引用",children:t.map(a=>o.jsxs("span",{className:`context-chip${r.has(xo(a))?" state-stale":""}`,children:[o.jsx("small",{children:Kg(a.kind)}),o.jsx("span",{children:a.label}),r.has(xo(a))?o.jsx("span",{className:"context-chip-state",children:"已失效,请移除后重新添加"}):null,o.jsx("button",{type:"button","aria-label":`移除 Context ${a.label}`,onClick:()=>i(t.filter(d=>d!==a)),children:o.jsx(Q,{name:"close",size:12})})]},xo(a)))})}function Wg({state:t,actions:r}){const i=t.composer.planReview,[a,d]=m.useState(!1),[f,p]=m.useState(""),g=ks(t)||t.connection!=="live"||!ir(t);return o.jsxs("section",{className:"plan-review-card","aria-labelledby":"plan-review-title",children:[o.jsxs("div",{children:[o.jsx("span",{className:"eyebrow",children:"PLAN REVIEW"}),o.jsx("h2",{id:"plan-review-title",children:"计划已保存,尚未执行"}),o.jsxs("p",{children:["由 ",i.createdModel," 创建 · digest ",i.planDigest.slice(0,12)]})]}),a?o.jsxs("label",{children:["继续规划反馈",o.jsx("textarea",{rows:2,value:f,onChange:x=>p(x.target.value)})]}):null,o.jsxs("div",{className:"plan-review-actions",children:[o.jsx("button",{type:"button",className:"danger-ghost-button",disabled:g,onClick:()=>Rt(r.reviewPlan(i.planDigest,"cancel")),children:"取消计划"}),a?o.jsx("button",{type:"button",className:"secondary-button",disabled:g||!f.trim(),onClick:()=>Rt(r.reviewPlan(i.planDigest,"continue",f.trim())),children:"提交反馈"}):o.jsx("button",{type:"button",className:"secondary-button",disabled:g,onClick:()=>d(!0),children:"继续规划"}),o.jsx("button",{type:"button",className:"primary-button",disabled:g,onClick:()=>Rt(r.reviewPlan(i.planDigest,"approve")),children:"批准并进入 BUILD"})]})]})}function kc({label:t,accessibleLabel:r,value:i,options:a,disabled:d,emptyLabel:f,onOpen:p,onSelect:g}){const[x,k]=m.useState(!1),b=m.useRef(null),j=m.useRef(null),N=m.useRef(null),E=m.useId(),z=()=>{k(!1),j.current?.focus()},A=()=>{k(!0),p?.(),requestAnimationFrame(()=>Bg(N.current))};return vl(x,b,z),o.jsxs("div",{className:"control-menu",ref:b,children:[o.jsxs("button",{ref:j,type:"button",className:"composer-control-trigger","aria-label":r,"aria-haspopup":"menu","aria-expanded":x,"aria-controls":x?E:void 0,disabled:d,onClick:()=>{x?z():A()},onKeyDown:G=>{G.key==="ArrowDown"&&(G.preventDefault(),A())},children:[o.jsx("span",{children:t}),o.jsx(Q,{name:"chevron",size:12})]}),x?o.jsx("div",{id:E,ref:N,className:"control-menu-popover",role:"menu","aria-label":r,onKeyDown:G=>Mc(G,z),children:a.length===0?o.jsx("p",{children:f??"没有选项"}):a.map(G=>o.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":G.value===i,onClick:()=>{z(),g(G.value)},children:[o.jsxs("span",{children:[o.jsx("strong",{children:G.label}),o.jsx("small",{children:G.detail})]}),G.value===i?o.jsx(Q,{name:"check",size:14}):null]},G.value))}):null]})}function Nn({label:t,detail:r,onClick:i}){return o.jsx("button",{type:"button",role:"menuitem",onClick:i,children:o.jsxs("span",{children:[o.jsx("strong",{children:t}),o.jsx("small",{children:r})]})})}function Fg({kind:t,onCancel:r,onConfirm:i}){const[a,d]=m.useState(!1),f=m.useRef(null),p=m.useRef(null);return m.useEffect(()=>{const g=document.querySelector(t==="auto"?'[aria-label="工作模式"]':'[aria-label="会话权限"]');return p.current?.focus(),()=>g?.focus()},[t]),o.jsx("div",{className:"modal-backdrop",onPointerDown:g=>{g.target===g.currentTarget&&r()},children:o.jsxs("section",{ref:f,className:"risk-confirmation",role:"alertdialog","aria-modal":"true","aria-labelledby":"risk-title","aria-describedby":"risk-description",onKeyDown:g=>qg(g,f.current,r),children:[o.jsx("h2",{id:"risk-title",children:t==="auto"?"启用 AUTO 模式?":"启用会话 ALLOW?"}),o.jsx("p",{id:"risk-description",children:t==="auto"?"Orion 会自主执行多个步骤,但仍受 ToolGateway、沙箱与 Workspace containment 约束。":"策略允许的工具将不再逐次询问;硬拒绝、沙箱和 Workspace 边界仍然生效。"}),o.jsxs("label",{children:[o.jsx("input",{type:"checkbox",checked:a,onChange:g=>d(g.target.checked)}),"我理解这会扩大本会话的默认执行范围"]}),o.jsxs("div",{children:[o.jsx("button",{ref:p,type:"button",className:"secondary-button",onClick:r,children:"取消"}),o.jsx("button",{type:"button",className:"primary-button",disabled:!a,onClick:i,children:"确认启用"})]})]})})}function Oc(t){return t?[...t.querySelectorAll('[role="menuitem"], [role="menuitemradio"]')].filter(r=>!r.disabled):[]}function hp(t){Oc(t)[0]?.focus()}function Bg(t){const r=Oc(t);(r.find(i=>i.getAttribute("aria-checked")==="true")??r[0])?.focus()}function Mc(t,r){if(t.key==="Escape"){t.preventDefault(),r();return}if(!["ArrowDown","ArrowUp","Home","End"].includes(t.key))return;t.preventDefault();const i=Oc(t.currentTarget);if(i.length===0)return;const a=i.indexOf(document.activeElement),d=t.key==="Home"?0:t.key==="End"?i.length-1:t.key==="ArrowDown"?(Math.max(0,a)+1)%i.length:(a<=0?i.length:a)-1;i[d]?.focus()}function qg(t,r,i){if(t.key==="Escape"){t.preventDefault(),i();return}if(t.key!=="Tab"||!r)return;const a=[...r.querySelectorAll('button:not(:disabled), input:not(:disabled), textarea:not(:disabled), [tabindex]:not([tabindex="-1"])')];if(a.length===0)return;const d=a[0],f=a.at(-1);t.shiftKey&&document.activeElement===d?(t.preventDefault(),f.focus()):!t.shiftKey&&document.activeElement===f&&(t.preventDefault(),d.focus())}function vl(t,r,i){m.useEffect(()=>{if(!t)return;const a=f=>{r.current?.contains(f.target)||i()},d=f=>{f.key==="Escape"&&i()};return document.addEventListener("pointerdown",a),document.addEventListener("keydown",d),()=>{document.removeEventListener("pointerdown",a),document.removeEventListener("keydown",d)}},[i,t,r])}function xf(t){return t==="plan"?"PLAN":t==="auto"?"AUTO":"BUILD"}function Ug(t){const r=t.composer?.mode??t.mode,i=xf(r.baseMode);return r.pendingBaseMode?`${i} → ${xf(r.pendingBaseMode)}`:i}function Hg(t){const r=t.composer?.permission,i=r?.source==="session"?"Session":"Project",a=`${r?.effective.toUpperCase()??"ASK"} · ${i}`;if((t.composer?.mode.baseMode??t.mode.baseMode)==="auto"&&r?.effective!=="deny")return"AUTO · hard policy";const d=t.composer?.pending.permission;return d?`${a} → ${(d.override??r?.projectDefault??"ask").toUpperCase()} · Session`:a}function Hi(t){return t==="auto"?"Effort 自动":`Effort ${t}`}function wf(t){return t.kind==="directory"||t.kind==="symlink"&&t.targetKind==="directory"}function Vg(t){return t.kind==="file"||t.kind==="symlink"&&t.targetKind==="file"}function Kg(t){return t==="file"?"FILE":t==="folder"?"FOLDER":t==="review"?"REVIEW":t==="session"?"SESSION":"SKILL"}function xo(t){return`${t.kind}:${t.id}`}function Rt(t){t.catch(()=>{})}function ms(t){return t>=1e3?`${Math.round(t/1e3)}k`:String(t)}const Gg=48,Qg=64,Yg=new Set(["user","assistant"]);function Xg(t,r={}){const i=Zg(r.maxBuckets),a=[...t].filter(g=>Number.isFinite(g.order)).sort((g,x)=>g.order-x.order);if(a.length===0)return Object.freeze({anchors:Object.freeze([]),buckets:Object.freeze([]),minOrder:0,maxOrder:0});const d=Math.min(a.length,i),f=Math.ceil(a.length/d),p=[];for(let g=0;g<d;g+=1){const x=a.slice(g*f,(g+1)*f);if(x.length===0)break;p.push(Jg(g,x))}return Object.freeze({anchors:Object.freeze(a),buckets:Object.freeze(p),minOrder:p[0]?.startOrder??0,maxOrder:p.at(-1)?.endOrder??0})}function Jg(t,r){const i=[],a=new Set;let d=!1,f=null;for(const p of r)a.has(p.kind)||(a.add(p.kind),i.push(p.kind)),p.priority==="error"&&(d=!0,(!f||p.priority==="error")&&(f=p));if(!f){let p=null;for(const g of r)Yg.has(g.kind)&&(p=g);f=p??r[Math.floor((r.length-1)/2)]}return Object.freeze({index:t,startOrder:r[0].order,endOrder:r.at(-1).order,orders:Object.freeze(r.map(p=>p.order)),kinds:Object.freeze(i),hasError:d,jumpOrder:f.order})}function Zg(t){return typeof t!="number"||!Number.isFinite(t)?Gg:Math.min(Qg,Math.max(1,Math.round(t)))}function ev(t){switch(t){case"user":return"用户任务";case"assistant":return"Orion 回复";case"tool":return"工具活动";case"edit":return"文件修改";case"subtask":return"子任务";case"research":return"研究";case"system":return"系统/错误"}}function tv(t,r){const i=t.buckets.findIndex(f=>r>=f.startOrder&&r<=f.endOrder),a=i>=0?t.buckets[i]:void 0,d=a?.kinds.includes("assistant")?"assistant":a?.kinds.includes("user")?"user":a?.kinds[0]??"system";return{bucketIndex:i>=0?i+1:0,bucketCount:t.buckets.length,kindLabel:d?ev(d):"未知"}}function kf(t,r){return r<=0?0:r===1?.5:Math.max(0,Math.min(r-1,t))/(r-1)}function Vi(t,r){const i=t.buckets.findIndex(a=>r>=a.startOrder&&r<=a.endOrder);return i>=0?i:null}function nv(t){const r=t.kind==="tool"||t.kind==="edit"||t.kind==="subtask"||t.kind==="research"?160:240,i=t.label.length,a=.35+Math.log2(1+i/r)*.55;return Math.max(.15,Math.min(1,a))}const rv=220,sv=400;function ov(t,r={}){const i=typeof r.maxTicks=="number"&&Number.isFinite(r.maxTicks)?Math.max(1,Math.min(sv,Math.round(r.maxTicks))):rv,a=[...t].filter(p=>Number.isFinite(p.order)).sort((p,g)=>p.order-g.order);if(a.length===0)return Object.freeze([]);const d=[];if(a.length<=i)for(const p of a)d.push([p]);else{const p=Math.ceil(a.length/i);for(let g=0;g<a.length;g+=p)d.push(a.slice(g,g+p))}const f=d.map((p,g)=>{const x=p.some(E=>E.priority==="error");let b=p.reduce((E,z)=>z.order>E.order?z:E,p[0]),j=-1;for(const E of p){const z=E.priority==="error"?2:E.priority==="turn"?1:0;z>=j&&(j=z,b=E)}const N=Math.max(.15,Math.min(1,p.reduce((E,z)=>E+nv(z),0)/p.length+(x?.1:0)));return{index:g,orders:Object.freeze(p.map(E=>E.order)),jumpOrder:b.order,weight:N,hasError:x}});return Object.freeze(f)}function iv(t){return t>=.72?"history-tick-l":t>=.45?"history-tick-m":"history-tick-s"}function jf(t){const{clientY:r,railTop:i,railHeight:a,tickCount:d}=t;if(!Number.isFinite(a)||a<=0||d<=0)return 0;const f=(r-i)/a;return Math.max(0,Math.min(d-1,Math.round(f*(d-1))))}function lv(t,r){let i=null;for(const a of t)a.topInViewport<r-1||(!i||a.topInViewport<i.topInViewport)&&(i=a);return i?.order??null}function av(t,r){if(t.anchors.length===0)return null;let i=t.anchors[0].order,a=Number.POSITIVE_INFINITY;for(const d of t.anchors){const f=Math.abs(d.order-r);(f<a||f===a&&d.order>i)&&(i=d.order,a=f)}return i}function cv(t){const{key:r,currentIndex:i,bucketCount:a,model:d}=t;if(a<=0)return null;const f=t.shiftKey?5:1;if(r==="Home")return d.buckets[0]?.jumpOrder??null;if(r==="End")return d.buckets.at(-1)?.jumpOrder??null;let p;if(r==="ArrowUp"||r==="ArrowLeft")p=i-f;else if(r==="ArrowDown"||r==="ArrowRight")p=i+f;else if(r==="PageUp")p=i-5;else if(r==="PageDown")p=i+5;else return null;const g=Math.max(0,Math.min(a-1,p));return d.buckets[g]?.jumpOrder??null}function uv({model:t,activeOrder:r,span:i,hasEarlierHistory:a,processing:d,reduceMotion:f,onJumpToOrder:p,onJumpToLatest:g}){const x=m.useRef(null),k=m.useRef(null),b=m.useRef(!1),j=m.useRef(null),N=m.useRef(null),[E,z]=m.useState(!1),[A,G]=m.useState(null),ne=m.useMemo(()=>ov(t.anchors),[t.anchors]),U=ne.length,se=m.useMemo(()=>{if(r===null||U===0)return 0;const D=Vi(t,r);return D!==null?D+1:0},[r,t,U]),ie=m.useMemo(()=>r===null?null:tv(t,r),[r,t]),Y=i!==null?Vi(t,i.firstOrder)??0:null,L=i!==null?Vi(t,i.lastOrder)??t.buckets.length-1:null,F=m.useMemo(()=>ne.map(D=>Vi(t,D.jumpOrder)),[t,ne]),ge=m.useCallback(()=>{j.current!==null&&(window.clearTimeout(j.current),j.current=null),G(null)},[]),Ie=m.useCallback(D=>{const ce=x.current;if(!ce)return;const W=ce.getBoundingClientRect(),T=jf({clientY:D,railTop:W.top,railHeight:W.height,tickCount:U}),B=ne[T];if(!B)return;const $=t.anchors.find(ue=>ue.order===B.jumpOrder);let v=$?.preview;if($?.kind==="user"){const fe=t.anchors.find(ke=>ke.order>$.order&&ke.kind==="assistant")?.preview;fe&&(v=v?`${v}
18
18
 
19
- ${fe}`:fe)}const R=kf(T,U)*W.height;G({title:On($?.label??""),preview:v?On(v):null,top:Math.max(8,Math.min(W.height-140,R))})},[t,U,ne]),we=m.useCallback(D=>{N.current=D,j.current!==null&&window.clearTimeout(j.current),j.current=window.setTimeout(()=>{j.current=null;const ce=N.current;ce===null||k.current!==null||b.current||Ie(ce)},120)},[Ie]);m.useEffect(()=>{const D=()=>{b.current||ge()};return window.addEventListener("scroll",D,!0),()=>window.removeEventListener("scroll",D,!0)},[ge]),m.useEffect(()=>()=>{j.current!==null&&window.clearTimeout(j.current)},[]);const te=m.useCallback((D,ce)=>{const W=x.current;if(!W)return;const T=W.getBoundingClientRect(),B=jf({clientY:D,railTop:T.top,railHeight:T.height,tickCount:U}),$=ne[B];$&&p($.jumpOrder,ce)},[p,U,ne]),ye=D=>{D.button!==0||k.current!==null||(D.preventDefault(),k.current=D.pointerId,D.currentTarget.setPointerCapture(D.pointerId),document.documentElement.dataset.historyScrubbing="1",b.current=!0,z(!0),ge(),te(D.clientY,"auto"))},J=D=>{k.current===D.pointerId&&(D.currentTarget.hasPointerCapture(D.pointerId)&&D.currentTarget.releasePointerCapture(D.pointerId),k.current=null,b.current=!1,delete document.documentElement.dataset.historyScrubbing,z(!1),ge())},Se=D=>{const ce=cv({key:D.key,shiftKey:D.shiftKey,currentIndex:se-1,bucketCount:t.buckets.length,model:t});ce!==null&&(D.preventDefault(),p(ce,f?"auto":"smooth"))};return U===0?null:o.jsx("nav",{className:"history-rail","aria-label":"会话历史定位",children:o.jsxs("div",{className:"history-rail-inner",ref:x,children:[o.jsxs("div",{className:"history-slider",role:"slider","aria-label":"已加载会话历史位置","aria-valuemin":0,"aria-valuemax":Math.max(0,t.buckets.length-1),"aria-valuenow":Math.max(0,se-1),"aria-valuetext":ie?`已加载 ${ie.bucketIndex}/${ie.bucketCount} 个关键节点,当前为${ie.kindLabel}${a?";更早历史可在正文顶部加载":""}`:`已加载 ${t.buckets.length} 个关键节点${a?";更早历史可在正文顶部加载":""}`,tabIndex:0,onKeyDown:Se,onPointerDown:ye,onPointerMove:D=>{if(k.current===D.pointerId){te(D.clientY,"auto");return}we(D.clientY)},onPointerLeave:ge,onPointerUp:J,onPointerCancel:J,onLostPointerCapture:J,onDoubleClick:g,children:[o.jsx("div",{className:"history-ticks","aria-hidden":"true",children:ne.map((D,ce)=>{const W=F[ce],T=W!==null&&Y!==null&&A!==null&&W>=Y&&W<=A;return o.jsx("span",{className:["history-tick",iv(D.weight),T?"is-viewport":"",D.hasError?"is-error":"",E?"is-scrubbing":""].filter(Boolean).join(" "),style:{top:`${kf(D.index,U)*100}%`}},D.index)})}),d?o.jsx("span",{className:"history-live-bar","aria-hidden":"true"}):null]}),L?o.jsxs("div",{className:"history-preview-card",style:{top:L.top},"aria-hidden":"true",children:[o.jsx("strong",{children:L.title}),L.preview?o.jsx("p",{children:L.preview}):null]}):null]})})}const dv=10;function fv(t){const{viewportRef:r,model:i,activeSessionId:a,onUserNavigate:d}=t,f=m.useRef(new Map),p=m.useRef(null),g=m.useRef([]),x=m.useRef(null),[k,b]=m.useState(null),[j,N]=m.useState(null),E=m.useRef(d);E.current=d;const z=m.useRef(a),L=m.useRef(i);L.current=i;const G=()=>{if(x.current=null,g.current.length===0)return;const Y=g.current;if(g.current=[],Y.length===0)return;const F=r.current?.getBoundingClientRect().top??0,ge=lv(Y,F);let Ie=Number.POSITIVE_INFINITY,we=Number.NEGATIVE_INFINITY;for(const te of Y)te.topInViewport>=F-1&&(te.order<Ie&&(Ie=te.order),te.order>we&&(we=te.order));b(te=>te===ge?te:ge),N(te=>{if(!Number.isFinite(Ie)||!Number.isFinite(we))return te;const ye={firstOrder:Ie,lastOrder:we};return te?.firstOrder===ye.firstOrder&&te?.lastOrder===ye.lastOrder?te:ye})},ne=()=>{x.current===null&&(x.current=requestAnimationFrame(G))},U=()=>{p.current&&(p.current.disconnect(),p.current=null),x.current!==null&&(cancelAnimationFrame(x.current),x.current=null),g.current=[],f.current.clear(),b(null),N(null)};m.useEffect(()=>{if(z.current===a&&p.current)return;z.current=a,U();const Y=r.current;if(!Y||!i.anchors.length||typeof IntersectionObserver>"u")return;const A=new IntersectionObserver(F=>{const Ie=r.current?.getBoundingClientRect().top??0;for(const we of F){const te=Number(we.target.dataset.order);Number.isFinite(te)&&we.isIntersecting&&g.current.push({order:te,topInViewport:we.boundingClientRect.top-Ie})}ne()},{root:Y,threshold:[0,.2,.6]});return p.current=A,f.current.clear(),Y.querySelectorAll("li[data-order]").forEach(F=>{const ge=Number(F.dataset.order);Number.isFinite(ge)&&(f.current.set(ge,F),A.observe(F))}),()=>U()},[r,a,i.anchors.length,i.anchors[i.anchors.length-1]?.order]);const se=m.useCallback((Y,A)=>{if(A){if(f.current.get(Y)===A)return;f.current.set(Y,A),p.current?.observe(A);return}const F=f.current.get(Y);F&&(p.current?.unobserve(F),f.current.delete(Y))},[]);return{activeOrder:k,span:j,registerItem:se,scrollToOrder:(Y,A="smooth")=>{const F=r.current,ge=av(L.current,Y),Ie=ge!==null?f.current.get(ge):void 0;if(!F||!Ie){if(!F||L.current.anchors.length===0)return;const te=(Y-L.current.minOrder)/(L.current.maxOrder-L.current.minOrder||1);F.scrollTo({top:Math.max(0,Math.min(1,te))*(F.scrollHeight-F.clientHeight),behavior:A}),E.current?.();return}const we=Ie.getBoundingClientRect().top-F.getBoundingClientRect().top+F.scrollTop-dv;F.scrollTo({top:Math.max(0,we),behavior:A}),E.current?.()}}}const ac=40;function Nr(t){if(t.length===0)return 0;let r=1;for(let i=0;i<t.length;i+=1)t.charCodeAt(i)===10&&(r+=1);return r}function pv(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}function hv(t){if(t==null)return null;const r=t.trim();if(r.length===0)return{format:"plain",displayText:t,isEnvelope:!1,lineCount:0,isLong:!1};let i;try{i=JSON.parse(r)}catch{return{format:"plain",displayText:t,isEnvelope:!1,lineCount:Nr(t),isLong:Nr(t)>ac}}if(pv(i)&&typeof i.output=="string"){const a=i.output;return{format:"envelope",displayText:a,isEnvelope:!0,lineCount:Nr(a),isLong:Nr(a)>ac}}try{const a=JSON.stringify(i,null,2);return{format:"json",displayText:a,isEnvelope:!1,lineCount:Nr(a),isLong:Nr(a)>ac}}catch{return{format:"plain",displayText:t,isEnvelope:!1,lineCount:Nr(t),isLong:!1}}}function mp({text:t,defaultOpen:r=!1,note:i=null}){const a=hv(t),d=r||!a?.isLong,[f,p]=m.useState(d),[g,x]=m.useState(!1),k=m.useRef(null);if(m.useEffect(()=>()=>{k.current!==null&&window.clearTimeout(k.current)},[]),a===null)return null;const b=On(a.displayText),j=async()=>{try{await navigator.clipboard.writeText(a.displayText),x(!0),k.current!==null&&window.clearTimeout(k.current),k.current=window.setTimeout(()=>x(!1),1400)}catch{}},N=o.jsx("pre",{className:"tool-output-text",tabIndex:0,children:b});if(!a.isLong||r)return o.jsxs("div",{className:"tool-output-preview tool-output-preview-open",children:[N,i?o.jsx("p",{className:"truncation-note",children:i}):null]});const E=`${a.lineCount} 行 · ${a.format==="envelope"?"已解包":"文本"}`;return o.jsx("div",{className:"tool-output-preview",children:o.jsxs("details",{className:"tool-output-fold",open:f,onToggle:z=>p(z.target.open),children:[o.jsxs("summary",{children:[o.jsxs("span",{children:[E,a.isEnvelope?" · 输出已安全还原换行":""]}),o.jsx("button",{type:"button",className:"text-button",onClick:z=>{z.preventDefault(),j()},children:g?"已复制":"复制原始响应"})]}),N,i?o.jsx("p",{className:"truncation-note",children:i}):null]})})}const cc=320,mv=300;function gv({state:t,actions:r,onRevealSettings:i,onCreateSession:a,composerInsertion:d,navigationOpen:f,navigationOverlay:p,onOpenNavigation:g}){const x=wo(t),k=m.useMemo(()=>vv(t),[t.edits,t.research,t.subtasks,t.tools,t.transcript]),[b,j]=m.useState(cc),N=k.slice(-b),E=m.useRef(null),z=m.useRef(null),L=m.useRef(!0),G=m.useRef(null),[ne,U]=m.useState(!0),se=`${t.workspaceId}:${t.activeSessionId??""}`,ie=!!(t.navigationTarget||t.sessionCreationSelected),Y=m.useRef(new Map),A=m.useRef({key:se,top:0,pinned:!0,visibleCount:cc}),F=m.useRef(null),[ge,Ie]=m.useState(!1),we=m.useMemo(()=>N.map(yv).filter(W=>W!==null),[N]),te=m.useMemo(()=>Xg(we),[we]),ye=fv({viewportRef:E,model:te,activeSessionId:t.activeSessionId,onUserNavigate:()=>{L.current=!1,U(!1)}});m.useEffect(()=>{const W=window.matchMedia("(prefers-reduced-motion: reduce)");Ie(W.matches);const T=B=>Ie(B.matches);return W.addEventListener("change",T),()=>W.removeEventListener("change",T)},[]),m.useLayoutEffect(()=>{const W=A.current;if(W.key!==se)for(Y.current.delete(W.key),Y.current.set(W.key,W);Y.current.size>8;){const $=Y.current.keys().next().value;if($===void 0)break;Y.current.delete($)}const T=Y.current.get(se),B=T??{top:0,pinned:!0,visibleCount:cc};A.current={key:se,...B},F.current=T&&!T.pinned?T:null,j(B.visibleCount),L.current=B.pinned,U(B.pinned),G.current=null},[se]),m.useLayoutEffect(()=>{ie&&!A.current.pinned&&(F.current=A.current)},[ie]),m.useLayoutEffect(()=>{const W=E.current;if(!W||t.navigationTarget||t.sessionCreationSelected)return;const T=F.current;if(T){if(x.status!=="ready"||N.length===0||b!==T.visibleCount)return;W.scrollTop=T.top,F.current=null}if(G.current){const B=G.current;W.scrollTop=B.top+(W.scrollHeight-B.height),G.current=null;return}L.current&&(W.scrollTop=W.scrollHeight),A.current={key:se,top:W.scrollTop,pinned:L.current,visibleCount:b}},[N.length,t.processing,t.navigationTarget,t.sessionCreationSelected,x.status,se,b]),m.useLayoutEffect(()=>{const W=E.current,T=z.current;if(!W||!T||typeof ResizeObserver>"u")return;const B=new ResizeObserver(()=>{L.current&&(W.scrollTop=W.scrollHeight)});return B.observe(T),()=>B.disconnect()},[t.activeSessionId]);const J=()=>{if(t.navigationTarget||t.sessionCreationSelected)return;const W=E.current;if(!W)return;const T=W.scrollHeight-W.scrollTop-W.clientHeight<72;L.current=T,U(T),F.current||(A.current={key:se,top:W.scrollTop,pinned:T,visibleCount:b})},Se=!!t.sessionSnapshot?.transcript.nextCursor,D=async()=>{const W=se,T=E.current;if(T&&(G.current={height:T.scrollHeight,top:T.scrollTop}),k.length>N.length){j(B=>B+mv);return}if(Se)try{if(await r.loadOlderTranscript(),A.current.key!==W){const B=Y.current.get(W);B&&Y.current.set(W,{...B,visibleCount:B.visibleCount+100});return}j(B=>B+100)}catch{A.current.key===W&&(G.current=null)}},ce=()=>{const W=E.current;W&&(L.current=!0,U(!0),W.scrollTo({top:W.scrollHeight,behavior:"smooth"}))};return o.jsxs("main",{className:"conversation-column",id:"main-content",children:[p?o.jsx("button",{type:"button",className:"icon-button mobile-nav-toggle",onClick:g,"aria-label":"打开会话导航","aria-controls":"workspace-rail","aria-expanded":f,children:o.jsx(Q,{name:"menu"})}):null,t.bootstrap?.configured?null:o.jsxs("div",{className:"configuration-banner",role:"status",children:[o.jsx(Q,{name:"warning"}),o.jsxs("div",{children:[o.jsx("strong",{children:"模型尚未配置"}),o.jsx("span",{children:"请在 Orion 配置文件或环境变量中设置凭证。API Key 不会进入浏览器。"})]}),o.jsx("button",{type:"button",className:"secondary-button",onClick:i,children:"转到设置"})]}),o.jsxs("div",{className:"transcript-stage",children:[o.jsx("div",{className:"transcript-viewport",ref:E,role:"region","aria-label":"会话记录",tabIndex:0,onScroll:J,"aria-busy":t.processing,children:o.jsxs("div",{className:"transcript-content",ref:z,children:[k.length>N.length||Se?o.jsx("button",{type:"button",className:"load-history",onClick:()=>{D()},disabled:ks(t),children:k.length>N.length?`加载更早内容 · 还剩 ${k.length-N.length} 项`:"从持久记录加载更早内容"}):null,t.sessionCreationSelected?o.jsx(ps,{icon:"refresh",title:"正在创建会话",detail:"正在保存新会话,可以继续选择其他会话。"}):t.navigationTarget?o.jsx(ps,{icon:"refresh",title:"正在打开所选会话",detail:"正在确认项目上下文,可以继续选择其他会话。"}):t.activeSessionId?x.status==="failed"&&N.length===0?o.jsx(ps,{icon:"warning",title:"会话快照加载失败",detail:x.error??"请重试当前会话快照。"}):(x.status==="loading"||x.status==="refreshing")&&N.length===0?o.jsx(ps,{icon:"refresh",title:"正在同步会话",detail:"本地 Web Host 正在读取最近的会话快照。"}):N.length===0?o.jsx(ps,{icon:"spark",title:"准备好开始了",detail:"描述要构建、修复或调查的任务。Orion 会实时展示工具、文件变化与验证结果。"}):o.jsx("ol",{className:"timeline","aria-label":"会话记录",children:N.map(W=>o.jsx("li",{id:`conversation-item-${t.activeSessionId??"none"}-${jc(W)}`,"data-event-id":W.order,"data-order":W.order,ref:T=>ye.registerItem(W.order,T),children:wv(W,t)},jc(W)))}):o.jsx(ps,{icon:"workspace",title:"选择或创建一个会话",detail:"Orion 会在当前工作区运行,并沿用 CLI/TUI 的权限与持久化状态。",action:"创建会话",onAction:a}),t.processing&&!t.navigationTarget&&!t.sessionCreationSelected?o.jsxs("div",{className:"thinking-indicator",role:"status",children:[o.jsx("span",{}),o.jsx("span",{}),o.jsx("span",{}),o.jsx("span",{children:t.statusMessage||"Orion 正在处理…"})]}):null]})}),o.jsx(uv,{model:te,activeOrder:ye.activeOrder,span:ye.span,hasEarlierHistory:k.length>N.length||Se,processing:t.processing,reduceMotion:ge,onJumpToOrder:(W,T)=>ye.scrollToOrder(W,T),onJumpToLatest:ce})]}),!ne&&N.length>0?o.jsxs("button",{type:"button",className:"jump-latest",onClick:ce,children:[o.jsx(Q,{name:"arrow-up",size:15}),"回到最新"]}):null,o.jsxs("div",{className:"input-dock",children:[t.permission||t.queue.items.length>0?o.jsxs("div",{className:"input-transients",children:[t.permission?o.jsx(Nv,{state:t,actions:r}):null,t.queue.items.length>0?o.jsx(_v,{state:t,actions:r}):null]}):null,o.jsx(Mg,{state:t,actions:r,insertion:d})]})]})}function vv(t){const r=new Set(t.tools.map(a=>a.callId));return[...t.transcript.filter(a=>!a.toolActivity?.callId||!r.has(a.toolActivity.callId)).map(a=>({kind:"transcript",order:a.order,value:a})),...t.tools.map(a=>({kind:"tool",order:a.order,value:a})),...t.edits.map(a=>({kind:"edit",order:a.order,value:a})),...t.subtasks.map(a=>({kind:"subtask",order:a.order,value:a})),...t.research.map(a=>({kind:"research",order:a.order,value:a}))].sort((a,d)=>a.order-d.order)}function jc(t){return t.kind==="transcript"?`entry-${t.value.id}`:t.kind==="tool"?`tool-${t.value.callId}`:t.kind==="edit"?`edit-${t.order}`:t.kind==="subtask"?`subtask-${t.value.taskId}`:`research-${t.value.packetId}`}function yv(t){const r=t.order,i=jc(t);if(t.kind==="tool")return{order:r,key:i,kind:"tool",label:po(t.value.summary)||t.value.name,preview:fs(t.value.summary),priority:t.value.state==="error"?"error":"activity"};if(t.kind==="edit")return{order:r,key:i,kind:"edit",label:t.value.request.path,preview:fs(`${t.value.request.path}
20
- ${t.value.request.newString??""}`),priority:"activity"};if(t.kind==="subtask")return{order:r,key:i,kind:"subtask",label:po(t.value.objective)||t.value.role,preview:fs(t.value.summary||t.value.objective),priority:xv.has(t.value.state)?"error":"activity"};if(t.kind==="research")return{order:r,key:i,kind:"research",label:po(t.value.objective)||"Research",preview:fs(t.value.conclusion||t.value.objective),priority:t.value.stage==="failed"?"error":"activity"};const a=t.value;if(a.toolActivity){const g=a.toolActivity;return{order:r,key:i,kind:"tool",label:po(g.summary)||g.name||g.detail||"工具活动",preview:fs(g.summary||g.body),priority:g.state==="error"?"error":"activity"}}const d=a.role;let f;return d==="user"||d==="assistant"?f="turn":f=d==="error"||d==="command"&&a.command?.success===!1?"error":"activity",(a.errorLayer||a.budgetStop)&&(f="error"),{order:r,key:i,kind:d==="user"?"user":d==="assistant"?"assistant":"system",priority:f,label:po(a.content)||a.title||(d==="user"?"用户任务":d==="assistant"?"Orion 回复":Sc(d)),preview:fs(a.content)}}const xv=new Set(["failed","timed_out","rejected","cancelled"]);function po(t){if(!t)return null;const r=t.replace(/\s+/gu," ").trim();return r.length>80?`${r.slice(0,80)}…`:r}function fs(t){if(!t)return;const r=t.trim();if(r)return r.length<=280?r:`${r.slice(0,280)}…`}function wv(t,r){if(t.kind==="transcript")return o.jsx(kv,{entry:t.value});if(t.kind==="tool"){const i=r.transcript.find(a=>a.toolActivity?.callId===t.value.callId)?.toolActivity;return o.jsx(jv,{tool:t.value,activity:i})}return t.kind==="edit"?o.jsx(Cv,{edit:t.value}):t.kind==="subtask"?o.jsx(bv,{subtask:t.value}):o.jsx(Iv,{research:t.value})}function kv({entry:t}){if(t.toolActivity)return o.jsx(Sv,{entry:t});if(Rv(t))return o.jsxs("details",{className:"reasoning-card",children:[o.jsxs("summary",{children:[o.jsx(Tc,{state:t.live?"running":"ready",describe:!1}),o.jsx("span",{children:t.live?"正在分析":t.title||"推理摘要"}),o.jsx("span",{className:"reasoning-hint",children:"展开查看 Runtime 提供的摘要"})]}),o.jsx(ko,{children:t.content})]});const r=t.role;return o.jsxs("article",{className:`message-card role-${r}`,"aria-label":Sc(r),children:[o.jsxs("header",{children:[o.jsx("span",{className:"message-avatar","aria-hidden":"true",children:Pv(r)}),o.jsx("span",{children:t.title||Sc(r)}),t.live?o.jsx("span",{className:"streaming-label",children:"生成中"}):null,t.command?o.jsx("span",{className:`command-state ${t.command.success?"success":"error"}`,children:t.command.success?"成功":"失败"}):null]}),o.jsx("div",{className:"message-body",children:r==="user"?o.jsx("p",{className:"literal-message",children:t.content}):o.jsx(ko,{children:t.content})}),t.budgetStop?o.jsxs("div",{className:"budget-stop",role:"status",children:[o.jsx(Q,{name:"pause",size:15}),o.jsxs("span",{children:[t.budgetStop.reason," · 状态已保留"]})]}):null]})}function jv({tool:t,activity:r}){const i=t.workspaceMutation?.phase==="queued"?`等待工作树写入${t.workspaceMutation.queuePosition?`(第 ${t.workspaceMutation.queuePosition} 位)`:""}`:t.workspaceMutation?.phase==="running"?"正在写入工作树":t.state==="running"?"运行中":t.state==="success"?"完成":t.state==="skipped"?"跳过":"失败",a=r?.outputView?.preview||r?.body||t.error||t.summary;return o.jsxs("article",{className:`tool-card tool-${t.state}`,"aria-label":`工具 ${t.name}:${i}`,children:[o.jsxs("div",{className:"tool-card-header",children:[o.jsx("span",{className:`tool-state-icon ${t.state}`,"aria-hidden":"true",children:t.state==="running"?o.jsx("span",{className:"spinner"}):o.jsx(Q,{name:t.state==="success"?"check":t.state==="skipped"?"pause":"warning",size:15})}),o.jsxs("div",{className:"tool-title",children:[o.jsx("strong",{children:t.name}),o.jsxs("span",{children:["#",t.sequence," · ",i,t.duration!==void 0?` · ${gp(t.duration)}`:""]})]}),t.outputBytes!==void 0?o.jsx("span",{className:"byte-pill",children:Cc(t.outputBytes)}):null]}),t.summary||t.error?o.jsx("p",{className:t.error?"tool-error-copy":"tool-summary",children:On(t.error||t.summary||"")}):null,o.jsxs("details",{className:"tool-details",open:t.state==="error",children:[o.jsx("summary",{children:"输入与详情"}),o.jsxs("dl",{className:"tool-meta-grid",children:[o.jsxs("div",{children:[o.jsx("dt",{children:"授权"}),o.jsx("dd",{children:t.authorization?`${t.authorization.approved?"允许":"拒绝"} · ${t.authorization.source}`:"等待 Runtime 记录"})]}),t.artifactId?o.jsxs("div",{children:[o.jsx("dt",{children:"产物"}),o.jsx("dd",{children:o.jsx("code",{children:t.artifactId})})]}):null]}),o.jsxs("div",{className:"tool-detail-section",children:[o.jsx("span",{className:"micro-label",children:"参数(已脱敏)"}),o.jsx("pre",{tabIndex:0,children:Pc(t.args)})]}),a?o.jsxs("div",{className:"tool-detail-section",children:[o.jsx("span",{className:"micro-label",children:"输出预览"}),o.jsx(mp,{text:a,defaultOpen:t.state==="error",note:r?.outputView?.omittedBytes?`另有 ${Cc(r.outputView.omittedBytes)} 已折叠,可在 Inspector 中查看产物。`:null})]}):null]})]})}function Sv({entry:t}){const r=t.toolActivity;return o.jsxs("article",{className:`tool-card tool-${r.state}`,children:[o.jsxs("div",{className:"tool-card-header",children:[o.jsx("span",{className:`tool-state-icon ${r.state}`,"aria-hidden":"true",children:o.jsx(Q,{name:"terminal",size:15})}),o.jsxs("div",{className:"tool-title",children:[o.jsx("strong",{children:r.name}),o.jsx("span",{children:r.detail})]})]}),r.summary?o.jsx("p",{className:"tool-summary",children:r.summary}):null,r.outputView?.preview||r.body?o.jsxs("div",{className:"tool-detail-section tool-output-section",children:[o.jsx("span",{className:"micro-label",children:"输出"}),o.jsx(mp,{text:r.outputView?.preview||r.body,defaultOpen:r.state==="error",note:r.outputView?.omittedBytes?`另有 ${Cc(r.outputView.omittedBytes)} 已折叠,可在 Inspector 中查看产物。`:null})]}):null]})}function Cv({edit:t}){const r=t.request;return o.jsxs("article",{className:"edit-card",children:[o.jsxs("header",{children:[o.jsx("span",{className:"edit-icon",children:o.jsx(Q,{name:"edit",size:15})}),o.jsxs("div",{children:[o.jsx("strong",{children:"文件修改预览"}),o.jsxs("span",{children:[r.kind," · ",r.candidates.length," 个候选"]})]})]}),o.jsx("code",{className:"path-chip",title:r.path,children:r.path}),o.jsxs("details",{children:[o.jsx("summary",{children:"查看替换内容"}),o.jsx("pre",{tabIndex:0,children:On(r.newString)})]})]})}function bv({subtask:t}){return o.jsxs("details",{className:`activity-card subtask-card state-${t.state}`,children:[o.jsxs("summary",{children:[o.jsx(Q,{name:"branch",size:16}),o.jsxs("span",{children:[o.jsx("strong",{children:t.role}),o.jsx("small",{children:t.state})]}),t.durationMs!==void 0?o.jsx("time",{children:gp(t.durationMs)}):null]}),o.jsx("p",{children:t.objective}),t.summary?o.jsx(ko,{children:t.summary}):null]})}function Iv({research:t}){return o.jsxs("details",{className:`activity-card research-card state-${t.stage}`,children:[o.jsxs("summary",{children:[o.jsx(Q,{name:"search",size:16}),o.jsxs("span",{children:[o.jsx("strong",{children:"Research"}),o.jsxs("small",{children:[t.stage," · ",t.sources.length," sources"]})]})]}),t.objective?o.jsx("p",{children:t.objective}):null,t.conclusion?o.jsx(ko,{children:t.conclusion}):null,t.sources.length>0?o.jsx("ul",{className:"source-list",children:t.sources.map(r=>o.jsxs("li",{children:[o.jsx(Tc,{state:r.status}),o.jsx("span",{children:r.title||r.location||r.id}),o.jsxs("small",{children:[r.provider," · ",r.status]})]},r.id))}):null]})}function Nv({state:t,actions:r}){const i=t.permission,a=m.useRef(null),d=m.useRef("");m.useEffect(()=>{d.current!==i.id&&(d.current=i.id,a.current?.focus())},[i.id]);const f=ks(t)||t.connection!=="live"||!ir(t);return o.jsxs("section",{ref:a,className:"approval-card",role:"region","aria-live":"assertive","aria-labelledby":"approval-title","aria-describedby":"approval-reason",tabIndex:-1,children:[o.jsxs("div",{className:"approval-heading",children:[o.jsx("span",{className:"approval-icon",children:o.jsx(Q,{name:"warning",size:17})}),o.jsxs("div",{children:[o.jsx("span",{className:"eyebrow",children:"需要你的确认"}),o.jsxs("h2",{id:"approval-title",children:["允许 ",i.name,"?"]})]})]}),o.jsx("p",{id:"approval-reason",children:i.reason||"该工具需要在当前权限策略下获得明确授权。"}),o.jsxs("details",{className:"approval-args",children:[o.jsx("summary",{children:"查看脱敏参数"}),o.jsx("pre",{tabIndex:0,children:Pc(i.args,6e3)})]}),o.jsxs("div",{className:"approval-actions",children:[o.jsx("button",{type:"button",className:"danger-ghost-button",onClick:()=>Tn(r.answerPermission(!1)),disabled:f,children:"拒绝"}),o.jsx("button",{type:"button",className:"secondary-button",onClick:()=>Tn(r.answerPermission(!0,"once")),disabled:f,children:"仅本次"}),o.jsx("button",{type:"button",className:"secondary-button",onClick:()=>Tn(r.answerPermission(!0,"project")),disabled:f,children:"允许此项目"}),o.jsx("button",{type:"button",className:"primary-button",onClick:()=>Tn(r.answerPermission(!0,"global")),disabled:f,children:"始终允许"})]}),o.jsx("p",{className:"approval-footnote",children:"项目与全局授权会写入 Orion 配置;拒绝不会丢失当前会话。"})]})}function _v({state:t,actions:r}){const i=ks(t)||t.connection!=="live"||!ir(t);return o.jsxs("details",{className:"queue-dock",children:[o.jsxs("summary",{children:[o.jsxs("span",{children:[t.queue.items.length," 条排队消息"]}),o.jsx("span",{children:"执行时采用最新 Composer 控制"})]}),o.jsxs("div",{className:"queue-list",children:[t.queue.items.map((a,d)=>o.jsx(Ev,{item:a,index:d,count:t.queue.items.length,disabled:i,actions:r},a.id)),o.jsx("button",{type:"button",className:"text-button queue-clear",onClick:()=>Tn(r.clearQueue()),disabled:i,children:"清空队列"})]})]})}function Ev({item:t,index:r,count:i,disabled:a,actions:d}){const[f,p]=m.useState(!1),[g,x]=m.useState(t.text);m.useEffect(()=>x(t.text),[t.text]);const k=async()=>{const b=g.trim();b&&(await d.editQueued(t.id,t.revision,b),p(!1))};return o.jsxs("div",{className:"queue-row",children:[o.jsx("span",{className:"queue-index",children:r+1}),f?o.jsx("textarea",{rows:2,value:g,"aria-label":`编辑排队消息 ${r+1}`,onChange:b=>x(b.target.value)}):o.jsx("p",{children:t.text}),o.jsxs("div",{className:"queue-row-actions",children:[o.jsx("button",{type:"button",className:"icon-button","aria-label":`上移排队消息 ${r+1}`,onClick:()=>Tn(d.moveQueued(t.id,t.revision,r-1)),disabled:a||r===0,children:o.jsx(Q,{name:"arrow-up",size:13})}),o.jsx("button",{type:"button",className:"icon-button queue-move-down","aria-label":`下移排队消息 ${r+1}`,onClick:()=>Tn(d.moveQueued(t.id,t.revision,r+1)),disabled:a||r===i-1,children:o.jsx(Q,{name:"arrow-up",size:13})}),f?o.jsx("button",{type:"button",className:"text-button",onClick:()=>Tn(k()),disabled:a||!g.trim(),children:"保存"}):o.jsx("button",{type:"button",className:"text-button",onClick:()=>p(!0),disabled:a,children:"编辑"}),o.jsx("button",{type:"button",className:"icon-button","aria-label":`移除排队消息 ${r+1}`,onClick:()=>Tn(d.removeQueued(t.id,t.revision)),disabled:a,children:o.jsx(Q,{name:"trash",size:14})})]})]})}function ps({icon:t,title:r,detail:i,action:a,onAction:d}){return o.jsxs("section",{className:"empty-conversation",children:[o.jsx("div",{className:"empty-orbit",children:o.jsx(Q,{name:t,size:26})}),o.jsx("h2",{children:r}),o.jsx("p",{children:i}),a&&d?o.jsx("button",{type:"button",className:"primary-button",onClick:d,children:a}):null]})}function Rv(t){const r=`${t.title??""}`.toLocaleLowerCase();return r.includes("reason")||r.includes("think")||r.includes("analysis")||r.includes("推理")||r.includes("思考")}function Sc(t){return t==="user"?"你":t==="assistant"?"Orion":t==="command"?"命令":t==="error"?"错误":t==="system"?"系统":t==="status"?"状态":"工具"}function Pv(t){return t==="user"?"Y":t==="assistant"?"O":t==="error"?"!":t==="command"?"›":"·"}function Tn(t){t.catch(()=>{})}function gp(t){return t<1e3?`${Math.round(t)}ms`:t<6e4?`${(t/1e3).toFixed(t<1e4?1:0)}s`:`${Math.floor(t/6e4)}m ${Math.round(t%6e4/1e3)}s`}function Cc(t){return t<1024?`${t} B`:t<1048576?`${(t/1024).toFixed(1)} KB`:`${(t/1048576).toFixed(1)} MB`}const Tv=.02,Ov=.1;function vs(t,r,i){const a=Number.isFinite(t)?Math.round(t):r;return Math.min(i,Math.max(r,a))}function Mv({side:t,clientX:r,bounds:i,minWidth:a,maxWidth:d}){const f=t==="left"?r-i.left:i.right-r;return vs(f,a,d)}function Lv(t,r,i){const a=i-r;if(a<=0)return 0;const d=(vs(t,r,i)-r)/a;return Math.round(d*100)}function Av(t){const{key:r,minWidth:i,maxWidth:a,defaultWidth:d,currentWidth:f,side:p}=t,g=j=>vs(j,i,a);if(r==="Home")return g(i);if(r==="End")return g(a);if(r==="Enter"||r===" ")return g(d);if(r!=="ArrowLeft"&&r!=="ArrowRight")return null;const x=t.shiftKey?Ov:Tv,k=Math.max(1,Math.round((a-i)*x)),b=(r==="ArrowRight"?1:-1)*(p==="left"?1:-1);return g(f+b*k)}function vp({side:t,className:r,minWidth:i,maxWidth:a,defaultWidth:d,label:f,width:p,controls:g,boundsRef:x,resizingScope:k="workbench",onPreview:b,onCommit:j}){const N=m.useRef(vs(p??d,i,a)),E=m.useRef(null),z=m.useRef(null),L=m.useRef(null),G=()=>{L.current!==null&&cancelAnimationFrame(L.current),L.current=null},ne=()=>{E.current=null,z.current=null,G(),delete document.documentElement.dataset.panelResizing};m.useEffect(()=>ne,[]),m.useEffect(()=>{p===void 0||E.current!==null||(N.current=vs(p,i,a))},[p,i,a]);const U=te=>{N.current=te,z.current=te,L.current===null&&(L.current=requestAnimationFrame(()=>{L.current=null;const ye=z.current;z.current=null,ye!==null&&b(ye)}))},se=te=>{let ye;if(x?.current){const J=x.current.getBoundingClientRect();ye={left:J.left,right:J.right}}else ye=te.currentTarget.closest(".workbench-shell")?.getBoundingClientRect()??{left:0,right:window.innerWidth};return Mv({side:t,clientX:te.clientX,bounds:ye,minWidth:i,maxWidth:a})},ie=te=>{if(te.button!==0||E.current!==null)return;te.preventDefault(),E.current=te.pointerId,te.currentTarget.setPointerCapture(te.pointerId);const ye=k==="resource-split"?"resource-split":t;document.documentElement.dataset.panelResizing=ye,U(se(te))},Y=te=>{E.current===te.pointerId&&U(se(te))},A=te=>{if(E.current!==te.pointerId)return;te.currentTarget.hasPointerCapture(te.pointerId)&&te.currentTarget.releasePointerCapture(te.pointerId);const ye=z.current??N.current;ne(),b(ye),j(ye)},F=te=>{if(E.current!==te.pointerId)return;const ye=z.current??N.current;ne(),b(ye),j(ye)},ge=te=>{N.current=te,b(te),j(te)},Ie=te=>{const ye=Av({key:te.key,shiftKey:te.shiftKey,minWidth:i,maxWidth:a,defaultWidth:d,currentWidth:N.current,side:t});ye!==null&&(te.preventDefault(),ge(ye))},we=Lv(N.current,i,a);return o.jsx("div",{className:`panel-resize-handle panel-resize-handle-${t}${r?` ${r}`:""}`,role:"separator","aria-orientation":"vertical","aria-label":f,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":we,"aria-valuetext":`${N.current} 像素`,"aria-controls":g,tabIndex:0,title:`${f};方向键调整,Shift 加速,Enter 恢复默认,双击亦可恢复`,onPointerDown:ie,onPointerMove:Y,onPointerUp:A,onPointerCancel:A,onLostPointerCapture:F,onKeyDown:Ie,onDoubleClick:()=>ge(vs(d,i,a)),children:o.jsx("span",{})})}const $v=["ArrowDown","ArrowUp","Home","End","Escape"];function Dv({label:t,items:r,disabled:i=!1}){const[a,d]=m.useState(!1),f=m.useRef(null),p=m.useRef(null),g=m.useRef([]),x=m.useId(),k=()=>{d(!1),p.current?.focus()};m.useEffect(()=>{if(!a)return;const j=N=>{f.current?.contains(N.target)||d(!1)};return document.addEventListener("pointerdown",j),()=>document.removeEventListener("pointerdown",j)},[a]),m.useEffect(()=>{if(!a)return;const j=r.findIndex(N=>!N.disabled);g.current[j>=0?j:0]?.focus()},[a]);const b=j=>{if(!$v.includes(j.key))return;if(j.preventDefault(),j.key==="Escape"){k();return}const N=r.map((L,G)=>({item:L,index:G})).filter(L=>!L.item.disabled);if(!N.length)return;const E=N.findIndex(L=>g.current[L.index]===document.activeElement);let z=0;if(j.key==="Home")z=0;else if(j.key==="End")z=N.length-1;else{const L=j.key==="ArrowDown"?1:-1;z=E<0?0:(E+L+N.length)%N.length}g.current[N[z].index]?.focus()};return o.jsxs("div",{className:"session-row-menu",ref:f,children:[o.jsx("button",{ref:p,type:"button",className:"icon-button session-row-menu-trigger","aria-label":t,"aria-haspopup":"menu","aria-expanded":a,disabled:i,onClick:()=>d(j=>!j),onKeyDown:j=>{if(j.key==="ArrowDown"||j.key==="Enter"||j.key===" "){if(a)return;j.preventDefault(),d(!0)}},children:o.jsx(Q,{name:"more",size:15})}),a?o.jsx("div",{className:"session-menu",role:"menu","aria-label":t,onKeyDown:b,children:r.map((j,N)=>o.jsxs("button",{ref:E=>{g.current[N]=E},type:"button",role:"menuitem",className:`session-menu-item${j.danger?" danger":""}`,tabIndex:-1,disabled:j.disabled,"aria-describedby":j.hint?`${x}-${j.id}`:void 0,onClick:()=>{d(!1),j.onSelect()},children:[j.label,j.hint?o.jsx("span",{id:`${x}-${j.id}`,className:"session-menu-hint",children:j.hint}):null]},j.id))}):null]})}const Lc=240,yl=280,yp=480,Sf=48,Ac=320,$c=420,xp=3200,rt=48,Cf=560,wp="orion.web.workbench-layout.v2",zv="orion.web.work-panel.v1",bc=["agent","review","terminal","files","git"],Tr=Object.freeze({schemaVersion:2,projectNavigation:Object.freeze({expanded:!0,widthPx:yl}),workPanel:Object.freeze({expanded:!0,widthPx:$c,activePanel:"agent",agentPanel:"goal"})});function Ki(t,r){const i=Uv(t),a=kp(r.projectNavigation.widthPx),d=So(r.workPanel.widthPx);if(i<=760)return Object.freeze({projectNavigation:Object.freeze({mode:"drawer",widthPx:0}),conversationWidthPx:i,workPanel:Object.freeze({mode:"drawer",widthPx:0})});if(i<=1180){const k=i-Cf,j=r.projectNavigation.expanded&&k>=Lc?"dock":r.projectNavigation.expanded?"drawer":"rail",N=j==="dock"?Math.min(a,k):j==="rail"?Sf:0;return Object.freeze({projectNavigation:Object.freeze({mode:j,widthPx:N}),conversationWidthPx:Math.max(0,i-N),workPanel:Object.freeze({mode:"drawer",widthPx:0})})}const f=r.projectNavigation.expanded?a:Sf,p=i-f-Cf,g=r.workPanel.expanded&&p>=Ac,x=g?Math.min(d,p):rt;return Object.freeze({projectNavigation:Object.freeze({mode:r.projectNavigation.expanded?"dock":"rail",widthPx:f}),conversationWidthPx:Math.max(0,i-f-x),workPanel:Object.freeze({mode:g?"dock":"rail",widthPx:x})})}function kp(t){const r=Number.isFinite(t)?Math.round(t):yl;return Math.min(yp,Math.max(Lc,r))}function So(t){const r=Number.isFinite(t)?Math.round(t):$c;return Math.min(xp,Math.max(Ac,r))}function Wv(t,r=null){if(!t)return qv(r);try{const i=JSON.parse(t);if(!tl(i)||i.schemaVersion!==2)return Tr;const a=tl(i.projectNavigation)?i.projectNavigation:{},d=tl(i.workPanel)?i.workPanel:{};return jp({schemaVersion:2,projectNavigation:{expanded:typeof a.expanded=="boolean"?a.expanded:!0,widthPx:kp(Number(a.widthPx))},workPanel:{expanded:typeof d.expanded=="boolean"?d.expanded:!0,widthPx:So(Number(d.widthPx)),activePanel:Co(d.activePanel)?d.activePanel:"agent",agentPanel:Cp(d.agentPanel)?d.agentPanel:"goal",order:Hv(d.order)}})}catch{return Tr}}function Fv(){const t=Sp();if(!t)return Tr;try{return Wv(t.localStorage.getItem(wp),t.localStorage.getItem(zv))}catch{return Tr}}function Bv(t){const r=Sp();if(r)try{r.localStorage.setItem(wp,JSON.stringify(t))}catch{}}function qv(t){if(!t)return Tr;try{const r=JSON.parse(t);return!tl(r)||r.schemaVersion!==1?Tr:jp({schemaVersion:2,projectNavigation:{expanded:!0,widthPx:yl},workPanel:{expanded:typeof r.expanded=="boolean"?r.expanded:!0,widthPx:So(Number(r.widthPx)),activePanel:Co(r.activePanel)?r.activePanel:"agent",agentPanel:Cp(r.agentPanel)?r.agentPanel:"goal"}})}catch{return Tr}}function jp(t){return Object.freeze({schemaVersion:2,projectNavigation:Object.freeze({...t.projectNavigation}),workPanel:Object.freeze({...t.workPanel})})}function Uv(t){return!Number.isFinite(t)||t<=0?1440:Math.max(320,Math.round(t))}function Sp(){return globalThis.window??null}function Hv(t){if(!Array.isArray(t)||t.length!==bc.length)return;const r=new Set;for(const i of t){if(!Co(i)||r.has(i))return;r.add(i)}return Object.freeze([...t])}function Co(t){return["agent","review","terminal","files","git"].includes(String(t))}function Cp(t){return["goal","activity","integrations","diagnostics"].includes(String(t))}function tl(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}function bp({size:t=20,className:r,pixel:i=!1}){const a=m.useId(),d=`orion-bar-a-${a}`,f=`orion-bar-b-${a}`,p=`orion-bar-c-${a}`;return o.jsx("span",{className:r?`orion-brand-mark ${i?"orion-brand-mark-pixel ":""}${r}`:`orion-brand-mark${i?" orion-brand-mark-pixel":""}`,"aria-hidden":"true",style:{width:t,height:t},children:o.jsxs("svg",{viewBox:"0 0 20 20",width:t,height:t,focusable:"false",role:"presentation",shapeRendering:i?"crispEdges":void 0,children:[o.jsxs("defs",{children:[o.jsxs("linearGradient",{id:d,x1:"0",y1:"0",x2:"0",y2:"1",children:[o.jsx("stop",{offset:"0",className:"orion-mark-stop orion-mark-stop-primary"}),o.jsx("stop",{offset:"1",className:"orion-mark-stop orion-mark-stop-secondary"})]}),o.jsxs("linearGradient",{id:f,x1:"0",y1:"0",x2:"0",y2:"1",children:[o.jsx("stop",{offset:"0",className:"orion-mark-stop orion-mark-stop-primary"}),o.jsx("stop",{offset:"1",className:"orion-mark-stop orion-mark-stop-secondary"})]}),o.jsxs("linearGradient",{id:p,x1:"0",y1:"0",x2:"0",y2:"1",children:[o.jsx("stop",{offset:"0",className:"orion-mark-stop orion-mark-stop-primary"}),o.jsx("stop",{offset:"1",className:"orion-mark-stop orion-mark-stop-secondary"})]})]}),i?[{x:2,y:9,h:9},{x:8,y:4,h:14},{x:14,y:7,h:11}].map(g=>o.jsxs(m.Fragment,{children:[o.jsx("rect",{x:g.x,y:g.y,width:"4",height:Math.max(1,g.h-1),rx:0,style:{fill:"var(--accent)"}}),g.h>1?o.jsx("rect",{x:g.x,y:g.y+g.h-1,width:"4",height:"1",rx:0,style:{fill:"var(--accent-2)"}}):null]},g.x)):o.jsxs(o.Fragment,{children:[o.jsx("rect",{className:"orion-mark-bar",x:"2",y:"9",width:"4",height:"9",rx:2,fill:`url(#${d})`}),o.jsx("rect",{className:"orion-mark-bar",x:"8",y:"4",width:"4",height:"14",rx:2,fill:`url(#${f})`}),o.jsx("rect",{className:"orion-mark-bar",x:"14",y:"7",width:"4",height:"11",rx:2,fill:`url(#${p})`})]})]})})}const nl=5,bf=7,Ic=1,Vv=Object.freeze({c:[".....",".....",".###.","#....","#....","#....",".###."],d:["....#","....#",".####","#...#","#...#","#...#",".####"],e:[".....",".....",".###.","#...#","#####","#....",".###."],i:["..#..",".....","..#..","..#..","..#..","..#..","..#.."],n:[".....",".....","#.##.","##..#","#...#","#...#","#...#"],o:[".....",".....",".###.","#...#","#...#","#...#",".###."],r:[".....",".....","#.##.","##..#","#....","#....","#...."],"-":[".....",".....",".....",".###.",".....",".....","....."]});function Kv(t){const r=[];let i=0;for(const a of t.toLocaleLowerCase()){const d=Vv[a];d&&d.forEach((f,p)=>{let g=-1;for(let x=0;x<=nl;x+=1){const k=x<nl&&f[x]==="#";k&&g<0?g=x:!k&&g>=0&&(r.push({x:i+g,y:p,w:x-g}),g=-1)}}),i+=nl+Ic}return r}function Gv({text:t,scale:r=2,className:i}){const a=m.useMemo(()=>Kv(t),[t]),d=t.length*(nl+Ic)-Ic;return a.length?o.jsx("svg",{className:i?`pixel-wordmark ${i}`:"pixel-wordmark",viewBox:`0 0 ${d} ${bf}`,width:d*r,height:bf*r,shapeRendering:"crispEdges",role:"img","aria-label":t,children:a.map(f=>o.jsx("rect",{x:f.x,y:f.y,width:f.w,height:1,style:{fill:"var(--text)"}},`${f.x}-${f.y}`))}):null}const _r=40;function Qv({state:t,drawerOpen:r,dockVisible:i,collapsed:a,resizable:d,width:f,onExpand:p,onCollapse:g,onOpenWorkspaceDialog:x,onOpenSettings:k,onLoadMoreWorkspaces:b,onCreateSession:j,onLoadWorkspaceSessions:N,onActivateContext:E,onSetPinned:z,onRemoveWorkspace:L,onRefreshSummary:G,onRenameSession:ne,onSessionTags:U,onArchiveSession:se,onDeleteSession:ie,onRestoreSession:Y,onWidthPreview:A,onWidthCommit:F}){const[ge,Ie]=m.useState(""),[we,te]=m.useState(0),[ye,J]=m.useState(new Set([t.workspaceId,t.navigationTarget?.workspaceId].filter(v=>!!v))),Se=m.useDeferredValue(ge.trim().toLocaleLowerCase()),D=!!t.pendingAction,ce=D;m.useEffect(()=>{J(v=>new Set([...v,...[t.workspaceId,t.navigationTarget?.workspaceId].filter(R=>!!R)]))},[t.workspaceId,t.navigationTarget?.workspaceId]),m.useEffect(()=>te(0),[Se]);const W=m.useMemo(()=>{const v=[...t.workspaces].sort(Yv);return Se?v.filter(R=>Nf(R,Se)?!0:(t.workspaceSessions[R.id]?.items??[]).some(ue=>[ue.name,ue.taskSummary,ue.id].filter(fe=>!!fe).some(fe=>fe.toLocaleLowerCase().includes(Se)))):v},[Se,t.workspaceSessions,t.workspaces]);m.useEffect(()=>{const v=W.findIndex(R=>R.id===t.workspaceId);v<0||te(R=>v<R||v>=R+_r?Math.floor(v/_r)*_r:R)},[W,t.workspaceId]);const T=W.slice(we,we+_r),B=!!(Se&&(t.workspaceNextCursor||Object.values(t.workspaceSessions).some(v=>!!v.nextCursor))),$=v=>{const R=new Set(ye);R.has(v.id)?R.delete(v.id):(R.add(v.id),t.workspaceSessions[v.id]?G(v.id):N(v.id)),J(R)};if(a&&!r){const v=t.workspaces.find(R=>R.id===t.workspaceId);return o.jsxs("aside",{id:"workspace-rail",className:"workspace-rail project-navigator project-navigator-collapsed","aria-label":"项目与会话",hidden:!i,children:[o.jsx("div",{className:"project-rail-brand","aria-hidden":"true",children:o.jsx(bp,{size:22})}),o.jsx("button",{type:"button",className:"icon-button project-rail-action","aria-label":"展开项目导航",title:"展开项目导航(⌘/Ctrl+B)",onClick:p,children:o.jsx(Q,{name:"sidebar",size:17})}),o.jsx("button",{type:"button",className:"icon-button project-rail-action","aria-label":"新建会话",title:"新建会话",onClick:j,disabled:D||t.sessionCreationPending||!t.workspaceId,children:o.jsx(Q,{name:"add",size:18})}),o.jsx("button",{type:"button",className:"icon-button project-rail-action project-rail-workspace","aria-label":v?`打开项目 ${v.label}`:"打开项目导航",title:v?.label??"打开项目导航",onClick:p,children:o.jsx(Q,{name:"workspace",size:17})}),o.jsx("span",{className:"project-rail-spacer"}),o.jsx("button",{type:"button",className:"icon-button project-rail-action","aria-label":"打开设置",title:"设置",onClick:k,children:o.jsx(Q,{name:"settings",size:17})}),o.jsx("span",{className:`connection-dot project-rail-connection ${t.connection}`,"aria-label":uc(t.connection),title:uc(t.connection)})]})}return o.jsxs("aside",{id:"workspace-rail",className:`workspace-rail project-navigator ${r?"drawer-open":""}`,"aria-label":"项目与会话",hidden:!i,children:[o.jsxs("div",{className:"project-toolbar",children:[o.jsxs("div",{className:"project-toolbar-brand",children:[o.jsx(Gv,{text:"orion-code",scale:2}),o.jsx("h2",{className:"sr-only",children:"项目"})]}),o.jsxs("div",{className:"project-toolbar-actions",children:[o.jsx("button",{type:"button",className:"icon-button drawer-close","aria-label":"关闭项目导航",onClick:g,children:o.jsx(Q,{name:"close"})}),o.jsx("button",{type:"button",className:"icon-button","aria-label":"收起项目导航",title:"收起项目导航(⌘/Ctrl+B)",onClick:g,children:o.jsx(Q,{name:"chevron-left"})}),o.jsx("button",{type:"button",className:"icon-button","aria-label":"选择其他工作区",title:"打开其他项目",onClick:x,disabled:ce,children:o.jsx(Q,{name:"add"})})]})]}),o.jsxs("label",{className:"project-search",children:[o.jsx("span",{className:"sr-only",children:"搜索项目和会话"}),o.jsx(Q,{name:"search",size:15}),o.jsx("input",{type:"search",value:ge,onChange:v=>Ie(v.target.value),placeholder:"搜索项目和会话"}),ge?o.jsx("button",{type:"button","aria-label":"清除搜索",onClick:()=>Ie(""),children:o.jsx(Q,{name:"close",size:13})}):null]}),o.jsxs("nav",{className:"project-tree","aria-label":"已知项目","aria-description":B?"搜索仅覆盖已加载的项目和会话;仍有分页内容未加载。":void 0,children:[T.map((v,R)=>{const ue=we+R,fe=W[ue-1],ke=ye.has(v.id)||!!Se,re=t.workspaceSessions[v.id],he=t.workspaceProjectSummaries[v.id],je=Nf(v,Se)?re?.items??[]:Xv(re?.items??[],Se);return o.jsxs(m.Fragment,{children:[ue===0||fe?.pinnedOrder!==void 0&&v.pinnedOrder===void 0?o.jsx("h3",{className:"project-group-heading",role:"presentation",children:v.pinnedOrder===void 0?"RECENT":"PINNED"}):null,o.jsxs("section",{className:`project-node ${v.active?"active":""} ${v.available?"":"unavailable"}`,children:[o.jsxs("div",{className:"project-row",children:[o.jsxs("button",{id:`project-${v.id}`,type:"button",className:"project-toggle","aria-expanded":ke,"aria-controls":`project-${v.id}-sessions`,"aria-current":v.active?"page":void 0,onClick:()=>$(v),onKeyDown:le=>{if(le.key==="ArrowRight"){le.preventDefault(),ke?le.currentTarget.closest(".project-node")?.querySelector(".project-session-main")?.focus():$(v);return}if(le.key==="ArrowLeft"&&ke){le.preventDefault(),$(v);return}If(le)},children:[o.jsx(Q,{name:"chevron",size:13}),o.jsx("span",{className:"workspace-icon",children:o.jsx(Q,{name:"workspace",size:15})}),o.jsxs("span",{className:"project-copy",children:[o.jsx("strong",{children:v.label}),o.jsx("span",{title:v.path,children:he?`${he.detached?he.head||"detached":he.branch||"Git"} · ${he.dirtyCount?`M${he.dirtyCount}`:"clean"}`:Jv(v.path)})]})]}),o.jsx("button",{type:"button",className:"icon-button project-pin","aria-label":`${v.pinnedOrder===void 0?"置顶":"取消置顶"}项目 ${v.label}`,"aria-pressed":v.pinnedOrder!==void 0,onClick:()=>z(v.id,v.pinnedOrder===void 0),disabled:D,children:o.jsx("span",{"aria-hidden":"true",children:v.pinnedOrder===void 0?"○":"●"})}),!v.available&&!v.active?o.jsx("button",{type:"button",className:"icon-button project-remove","aria-label":`移除不可用项目 ${v.label}`,onClick:()=>L(v.id),disabled:D,children:o.jsx(Q,{name:"close",size:13})}):o.jsx("button",{type:"button",className:"icon-button project-add-session","aria-label":`在 ${v.label} 新建会话`,disabled:D||t.sessionCreationPending||!v.available||!v.active,onClick:j,title:v.active?"新建会话":"先激活项目后新建会话",children:o.jsx(Q,{name:"add",size:14})})]}),ke?o.jsxs(m.Fragment,{children:[o.jsxs("div",{id:`project-${v.id}-sessions`,className:"project-sessions",role:"list","aria-label":`${v.label} 的会话`,children:[re?.status==="loading"&&!re.items.length?o.jsx("p",{className:"project-loading",role:"listitem",children:"正在加载会话…"}):null,re?.status==="error"?o.jsx("div",{role:"listitem",children:o.jsx("button",{type:"button",className:"project-load-error",onClick:()=>N(v.id),children:"加载失败,重试"})}):null,v.active&&t.sessionCreationPending?o.jsx("p",{className:"project-loading",role:"listitem","aria-current":t.sessionCreationSelected?"page":void 0,"aria-live":"polite",children:"正在创建会话…"}):null,je.map(le=>{const Me=t.sessionCreationSelected?!1:t.navigationTarget?t.navigationTarget.workspaceId===v.id&&t.navigationTarget.sessionId===le.id:v.active&&le.id===t.activeSessionId,Ke=t.sessionRuntimeById[le.id],tt=ey(Ke),st=ny(Ke?.phase),lt=le.tags??[];return o.jsxs("div",{className:`project-session-row ${Me?"active":""}`,role:"listitem",children:[o.jsxs("button",{type:"button",className:"project-session-main","aria-current":Me?"page":void 0,"aria-disabled":Me||!v.available,onClick:()=>{Me||E(v.id,le.id)},disabled:!v.available,onKeyDown:dt=>{if(dt.key==="ArrowLeft"){dt.preventDefault(),document.getElementById(`project-${v.id}`)?.focus();return}If(dt)},children:[o.jsx("span",{className:`session-state ${tt.tone}`,"aria-hidden":"true"}),o.jsxs("span",{children:[o.jsx("strong",{children:ys(le)}),o.jsxs("small",{children:[_f(le.updatedAt)," · ",le.messageCount," 条"]}),lt.length>0?o.jsxs("small",{className:"project-session-tags","aria-label":"会话标签",children:[lt.slice(0,3).map(dt=>o.jsx("span",{className:"session-tag-badge",children:dt},dt)),lt.length>3?o.jsxs("span",{className:"session-tag-more",children:["+",lt.length-3]}):null]}):null,tt.label?o.jsx("small",{className:"project-session-status",children:tt.label}):null]})]}),v.active?o.jsx(Dv,{label:`会话 ${ys(le)} 操作`,disabled:vo(t,le.id),items:[{id:"rename",label:"重命名…",onSelect:()=>ne(le)},{id:"tags",label:"管理标签…",onSelect:()=>U(le)},{id:"archive",label:"归档",disabled:st,hint:st?"会话运行中":void 0,onSelect:()=>se(le)},{id:"delete",label:"删除…",danger:!0,disabled:st,hint:st?"会话运行中":void 0,onSelect:()=>ie(le)}]}):null]},le.id)}),re?.status==="ready"&&!je.length?o.jsx("div",{role:"listitem",children:o.jsx("button",{type:"button",className:"project-empty-session",disabled:!v.available,onClick:()=>E(v.id,null),children:Se?"没有匹配会话":"打开项目"})}):null,re?.nextCursor?o.jsx("div",{role:"listitem",children:o.jsx("button",{type:"button",className:"text-button project-load-more",onClick:()=>N(v.id,!0),children:"加载更多会话"})}):null]}),v.active&&(t.archivedSessions.items.length>0||t.archivedSessions.status==="loading")?o.jsxs("details",{className:"archived-section",children:[o.jsxs("summary",{children:["已归档(",t.archivedSessions.items.length,t.archivedSessions.status==="loading"?"…":"",")"]}),o.jsx("div",{className:"archived-list",role:"list","aria-label":"已归档会话",children:t.archivedSessions.items.map(le=>o.jsxs("div",{className:"archived-row",role:"listitem",children:[o.jsxs("span",{className:"archived-copy",children:[o.jsx("strong",{children:ys(le)}),o.jsx("small",{children:_f(le.updatedAt)})]}),o.jsx("button",{type:"button",className:"text-button",disabled:D,onClick:()=>Y(le),children:"还原"}),o.jsx("button",{type:"button",className:"text-button archived-delete",disabled:D,onClick:()=>ie(le),children:"删除"})]},le.id))})]}):null]}):null]})]},v.id)}),W.length?null:o.jsxs("div",{className:"empty-rail",children:[o.jsx(Q,{name:"search"}),o.jsx("p",{children:"没有匹配的项目或会话"})]}),we>0?o.jsx("button",{type:"button",className:"text-button project-window-more",onClick:()=>te(v=>Math.max(0,v-_r)),children:"上一批项目"}):null,we+_r<W.length?o.jsx("button",{type:"button",className:"text-button project-window-more",onClick:()=>te(v=>v+_r),children:"下一批项目"}):t.workspaceNextCursor?o.jsx("button",{type:"button",className:"text-button project-window-more",onClick:b,children:"加载更多项目"}):null]}),o.jsxs("footer",{className:"rail-footer",children:[o.jsx("span",{className:`connection-dot ${t.connection}`,"aria-hidden":"true"}),o.jsx("span",{"data-testid":"runtime-connection-state","data-state":t.connection,title:Zv(t.connection),children:uc(t.connection)}),o.jsx("button",{type:"button",className:"icon-button rail-settings","aria-label":"打开设置",onClick:k,children:o.jsx(Q,{name:"settings",size:14})}),t.bootstrap?.productVersion?o.jsxs("span",{className:"version",children:["v",t.bootstrap.productVersion]}):null]}),d?o.jsx(vp,{side:"left",minWidth:Lc,maxWidth:yp,defaultWidth:yl,label:"拖动或按方向键调整项目导航宽度",width:f,controls:"workspace-rail",onPreview:A,onCommit:F}):null]})}function If(t){if(!["ArrowDown","ArrowUp","Home","End"].includes(t.key))return;const r=t.currentTarget.closest(".project-tree");if(!r)return;const i=Array.from(r.querySelectorAll(".project-toggle:not(:disabled), .project-session-main:not(:disabled)")).filter(f=>f.getClientRects().length>0),a=i.indexOf(t.currentTarget);if(a<0||i.length===0)return;const d=t.key==="Home"?0:t.key==="End"?i.length-1:Math.max(0,Math.min(i.length-1,a+(t.key==="ArrowDown"?1:-1)));t.preventDefault(),i[d]?.focus()}function Yv(t,r){return t.pinnedOrder!==void 0||r.pinnedOrder!==void 0?t.pinnedOrder===void 0?1:r.pinnedOrder===void 0?-1:t.pinnedOrder-r.pinnedOrder:Date.parse(r.lastActivatedAt)-Date.parse(t.lastActivatedAt)}function Nf(t,r){return!!(r&&(t.label.toLocaleLowerCase().includes(r)||t.path.toLocaleLowerCase().includes(r)))}function Xv(t,r){return r?t.filter(i=>[i.name,i.taskSummary,i.id,i.model].filter(a=>!!a).some(a=>a.toLocaleLowerCase().includes(r))):t}function ys(t){return t.name||t.taskSummary||`会话 ${t.id.slice(0,8)}`}function Ip(t){const r=t.replace(/[\\/]+$/,"");return r.split(/[\\/]/).filter(Boolean).at(-1)??r}function Jv(t){return t.length<=31?t:`…${t.slice(-30)}`}function _f(t){const r=Date.parse(t);if(!Number.isFinite(r))return"未知";const i=Math.max(0,Math.floor((Date.now()-r)/6e4));if(i<1)return"刚刚";if(i<60)return`${i} 分钟前`;const a=Math.floor(i/60);if(a<24)return`${a} 小时前`;const d=Math.floor(a/24);return d<30?`${d} 天前`:new Date(r).toLocaleDateString("zh-CN")}function uc(t){return t==="live"?"已连接":t==="offline"?"离线":t==="replay-required"?"事件流需恢复":t==="closed"?"已关闭":t==="connecting"?"正在连接…":"正在重连…"}function Zv(t){return t==="live"?"本地 Web Host 已连接":t==="offline"?"浏览器离线":t==="replay-required"?"Web Host 事件流需要恢复":t==="closed"?"本地 Web Host 已关闭":t==="connecting"?"正在连接本地 Web Host":"正在重连本地 Web Host"}function ey(t){return!t||t.phase==="cold"?{label:"",tone:""}:t.pendingApprovalCount>0||t.phase==="waiting_approval"?{label:"等待审批",tone:"approval"}:t.phase==="running"||t.phase==="starting"?{label:t.phase==="starting"?"正在启动":"运行中",tone:"running"}:t.phase==="queued"?{label:t.queuePosition?`排队 ${t.queuePosition}`:"排队中",tone:"queued"}:t.phase==="failed"?{label:"失败",tone:"failed"}:t.phase==="interrupted"?{label:"已中断",tone:"failed"}:t.phase==="stopping"?{label:"正在停止",tone:"running"}:{label:"已就绪",tone:"ready"}}const ty=new Set(["starting","queued","running","waiting_approval","stopping"]);function ny(t){return t?ty.has(t):!1}const ry={available:"可用",missing:"目录不存在",not_directory:"不是文件夹",unreadable:"无法读取"},Ef=["prepare","runtime","session"],sy={prepare:"准备项目",runtime:"加载本地 Runtime",session:"恢复会话(如有)"};function oy({candidate:t,busy:r,stage:i="prepare",error:a,onCancel:d,onOpen:f}){const p=t.availability==="available"&&!t.isActive,g=t.isActive?"当前项目":t.availability!=="available"?"不可打开":r?"正在打开…":"打开项目",x=Ef.indexOf(i);return o.jsxs("section",{className:"workspace-confirm","aria-label":"已选择本地项目",children:[o.jsxs("header",{className:"workspace-confirm-head",children:[o.jsx("span",{className:"workspace-confirm-name",title:t.canonicalPath,children:t.label}),o.jsxs("span",{className:"workspace-confirm-meta",children:[t.kind==="git"?"Git 项目":"本地文件夹"," ·"," ",ry[t.availability],typeof t.sessionCount=="number"?` · ${t.sessionCount} 个会话`:t.sessionCountStatus==="deferred"?" · 会话数读取中":""]})]}),o.jsx("p",{className:"workspace-confirm-path",children:t.canonicalPath}),o.jsx("p",{className:"workspace-confirm-note",children:"已解析真实路径;此操作不会读取目录外的文件。"}),r?o.jsx("ol",{className:"workspace-confirm-stages","aria-label":"打开进度",children:Ef.map((k,b)=>o.jsx("li",{className:"workspace-confirm-stage","aria-current":k===i?"step":void 0,"data-state":b<x?"done":b===x?"current":"todo",children:sy[k]},k))}):null,a?o.jsx("p",{className:"field-error",role:"alert",children:a}):null,o.jsxs("footer",{className:"workspace-confirm-actions",children:[o.jsx("button",{type:"button",className:"text-button",onClick:d,disabled:r,children:"取消"}),o.jsx("button",{type:"button",className:"primary-button",onClick:f,disabled:r||!p,"aria-busy":r,children:g})]})]})}const Np={phase:"idle",roots:[],activeRootId:null,candidates:[],errorCode:null,errorMessage:null,generation:0,rootsLoading:!1,scanning:!1};function iy(t,r){switch(r.type){case"reset":return{...Np};case"roots-loading":return{...t,rootsLoading:!0,errorMessage:null,errorCode:null};case"roots-loaded":return{...t,rootsLoading:!1,roots:r.roots,errorMessage:null,errorCode:null};case"roots-failed":return{...t,rootsLoading:!1,errorMessage:r.message};case"root-added":{const i=[r.root,...t.roots.filter(a=>a.id!==r.root.id)];return{...t,roots:i}}case"root-removed":{const i=t.roots.filter(d=>d.id!==r.rootId),a=t.activeRootId===r.rootId;return{...t,roots:i,...a?{activeRootId:null,candidates:[],phase:"idle",errorCode:null,errorMessage:null,scanning:!1}:{}}}case"scan-started":return{...t,phase:"loading",activeRootId:r.rootId,generation:r.generation,scanning:!0,errorCode:null,errorMessage:null,candidates:[]};case"scan-succeeded":{if(r.generation!==t.generation||r.rootId!==t.activeRootId)return t;const i=t.roots.map(a=>a.id===r.rootId?{...a,lastScannedAt:new Date().toISOString(),discovery:{status:r.status,candidateCount:r.candidates.length,durationMs:0,cached:!1,...r.errorCode?{errorCode:r.errorCode}:{}}}:a);return{...t,scanning:!1,roots:i,candidates:r.candidates,phase:r.candidates.length>0?r.status==="partial"?"partial":"ready":"empty",...r.status==="partial"&&r.errorCode?{errorCode:r.errorCode}:{}}}case"scan-failed":return r.generation!==t.generation||r.rootId!==t.activeRootId?t:{...t,scanning:!1,phase:"error",errorMessage:r.message,...r.errorCode?{errorCode:r.errorCode}:{}};case"scan-cancelled":return r.generation!==t.generation||r.rootId!==t.activeRootId?t:{...t,scanning:!1,phase:"cancelled",candidates:[]};default:return t}}function ly(t,r){if(t.scanning&&t.activeRootId===r.id||t.activeRootId===r.id&&t.phase==="loading")return"扫描中…";if(r.discovery){if(r.discovery.errorCode==="budget_exceeded")return"部分结果(预算内未扫完)";if(r.discovery.errorCode)return"上次扫描未完成";const i=r.discovery.candidateCount;return r.discovery.status==="partial"?`部分结果(${i} 个候选)`:`${i} 个候选`}return r.lastScannedAt?"尚未在本次会话扫描":"尚未扫描"}const _p=Object.freeze({phase:"browse",candidate:null,pendingPath:null,error:null,pickerReturned:!1});function ay(t,r){switch(r.type){case"picker-started":return{...t,phase:"picker-pending",error:null,pickerReturned:!1};case"picker-cancelled":return{...t,phase:"browse",error:null,pendingPath:null,pickerReturned:!0};case"picker-unavailable":return{...t,phase:"browse",error:r.reason,pendingPath:null,pickerReturned:!0};case"inspect-started":return{...t,phase:"inspect-pending",pendingPath:r.path,candidate:null,error:null,pickerReturned:!1};case"inspect-succeeded":return{...t,phase:"confirm",candidate:r.candidate,pendingPath:null,error:null};case"activate-started":return t.phase!=="confirm"||!t.candidate?t:{...t,phase:"activate-pending",error:null};case"failed":return{...t,phase:t.candidate?"confirm":"browse",error:r.message,pendingPath:null};case"back-to-browse":return{...t,phase:"browse",candidate:null,pendingPath:null,error:null};case"reset":return _p;default:return t}}function cy(t){return t.phase==="picker-pending"||t.phase==="inspect-pending"||t.phase==="activate-pending"}function bo({open:t,onClose:r,labelledBy:i,describedBy:a,className:d="",children:f}){const p=m.useRef(null);m.useEffect(()=>{const x=p.current;x&&(t&&!x.open&&x.showModal(),!t&&x.open&&x.close())},[t]);const g=x=>{x.target===x.currentTarget&&r()};return o.jsx("dialog",{ref:p,className:`modal ${d}`.trim(),"aria-labelledby":i,"aria-describedby":a,onCancel:x=>{x.preventDefault(),r()},onClose:r,onClick:g,children:f})}function uy({open:t,onClose:r,state:i,onSelect:a,onLoadMore:d,onPickDirectory:f,onInspect:p,onListRoots:g,onAddRoot:x,onRemoveRoot:k,onDiscoverRoot:b}){const[j,N]=m.useState(""),[E,z]=m.useState(!1),[L,G]=m.useState(""),[ne,U]=m.useReducer(ay,_p),[se,ie]=m.useReducer(iy,Np),Y=m.useRef(0);m.useEffect(()=>{if(!t){ie({type:"reset"});return}N(""),z(!1),G(""),U({type:"reset"}),ie({type:"roots-loading"}),g().then(q=>ie({type:"roots-loaded",roots:q})).catch(q=>ie({type:"roots-failed",message:q instanceof Error?q.message:"无法读取项目根目录。"}))},[t]);const A=cy(ne),F=!!i.pendingAction||A,Ie=ne.phase==="confirm"||ne.phase==="activate-pending"?ne.candidate:null,we=L.trim().toLocaleLowerCase(),te=q=>!we||q.label.toLocaleLowerCase().includes(we)||q.path.toLocaleLowerCase().includes(we),ye=i.workspaces.filter(te),J=ye.filter(q=>q.pinnedOrder!==void 0),Se=ye.filter(q=>q.pinnedOrder===void 0),D=3,ce=E?Se:Se.slice(0,D),W=Se.length-ce.length,T=J.length>0||Se.length>0,B=async(q,Re)=>{U({type:"inspect-started",path:q});try{const qe=await p(q);U({type:"inspect-succeeded",candidate:{...qe,source:Re}})}catch(qe){U({type:"failed",message:qe instanceof Error?qe.message:"无法读取该目录。"})}},$=async()=>{U({type:"picker-started"});try{const q=await f();if(q.outcome==="cancelled"){U({type:"picker-cancelled"});return}if(q.outcome!=="selected"||!q.path){U({type:"picker-unavailable",reason:"系统目录选择器不可用,请在高级选项中粘贴绝对路径。"});return}await B(q.path,"picker")}catch(q){U({type:"picker-unavailable",reason:q instanceof Error?q.message:"无法打开系统目录选择器。"})}},v=async q=>{U({type:"activate-started"});try{await a(q.canonicalPath),r()}catch(Re){U({type:"failed",message:Re instanceof Error?Re.message:"工作区切换失败。"})}},R=q=>{B(q.path,q.pinnedOrder!==void 0?"pinned":"recent")},ue=q=>{q.preventDefault();const Re=j.trim();Re&&B(Re,"manual")},fe=(q,Re)=>{Y.current+=1;const qe=Y.current;ie({type:"scan-started",rootId:q,generation:qe}),b(q,{refresh:Re}).then(Ze=>{ie({type:"scan-succeeded",rootId:q,generation:qe,candidates:Ze.candidates,status:Ze.status,...Ze.errorCode?{errorCode:Ze.errorCode}:{}})}).catch(Ze=>{const kt=Ze instanceof Error?Ze.message:"扫描失败。";ie({type:"scan-failed",rootId:q,generation:qe,message:kt})})},ke=q=>{if(q.discovery?.cached||q.discovery){ie({type:"scan-started",rootId:q.id,generation:Y.current+1}),b(q.id,{refresh:!1}).then(Re=>{Y.current+=1,ie({type:"scan-succeeded",rootId:q.id,generation:Y.current,candidates:Re.candidates,status:Re.status,...Re.errorCode?{errorCode:Re.errorCode}:{}})}).catch(Re=>{Y.current+=1,ie({type:"scan-failed",rootId:q.id,generation:Y.current,message:Re instanceof Error?Re.message:"扫描失败。"})});return}fe(q.id,!0)},re=q=>{fe(q.id,!0)},he=q=>{k(q.id).then(()=>ie({type:"root-removed",rootId:q.id})).catch(Re=>{ie({type:"roots-failed",message:Re instanceof Error?Re.message:"无法移除项目根目录。"})})},je=async()=>{ie({type:"roots-loading"});try{const q=await f();if(q.outcome!=="selected"||!q.path){ie({type:"roots-loaded",roots:se.roots});return}const Re=await x(q.path);ie({type:"root-added",root:Re}),fe(Re.id,!0)}catch(q){ie({type:"roots-failed",message:q instanceof Error?q.message:"无法添加项目根目录。"})}},le=(q,Re)=>Re?`${q.replace(/[\\/]+$/u,"")}/${Re}`:q,Me=se.roots.find(q=>q.id===se.activeRootId)??null,Ke=se.candidates.filter(q=>!we||q.label.toLocaleLowerCase().includes(we)),tt=24,[st,lt]=m.useState(!1),dt=st?Ke:Ke.slice(0,tt),ln=Ke.length-dt.length;return o.jsxs(bo,{open:t,onClose:r,labelledBy:"workspace-dialog-title",describedBy:"workspace-dialog-description",className:"workspace-modal",children:[o.jsxs("div",{className:"modal-header",children:[o.jsxs("div",{children:[o.jsx("span",{className:"eyebrow",children:"LOCAL WORKSPACE"}),o.jsx("h2",{id:"workspace-dialog-title",children:"打开或新增项目"}),o.jsx("p",{id:"workspace-dialog-description",children:"选择一个本地目录作为项目;Host 会解析真实路径并拒绝无效目录。"})]}),o.jsx("button",{type:"button",className:"icon-button",onClick:r,"aria-label":"关闭工作区选择",children:o.jsx(Q,{name:"close"})})]}),o.jsxs("div",{className:"workspace-picker",children:[o.jsxs("label",{className:"workspace-search",children:[o.jsx("span",{className:"sr-only",children:"搜索最近项目"}),o.jsx(Q,{name:"search",size:15}),o.jsx("input",{type:"search",value:L,onChange:q=>G(q.target.value),placeholder:"搜索最近项目…",disabled:F})]}),o.jsxs("button",{type:"button",className:"workspace-pick-folder primary-button",onClick:()=>{$()},disabled:ne.phase==="picker-pending"||F&&!A,"aria-busy":ne.phase==="picker-pending",children:[o.jsx(Q,{name:"workspace",size:16}),ne.phase==="picker-pending"?"正在打开 Finder…":"从 Finder 选择文件夹…"]}),ne.error?o.jsx("p",{className:"field-error",role:"alert",children:ne.error}):null,ne.phase==="inspect-pending"?o.jsxs("p",{className:"workspace-inspect-pending",role:"status",children:["正在解析 ",ne.pendingPath,"…"]}):null]}),Ie?o.jsx(oy,{candidate:Ie,busy:ne.phase==="activate-pending",stage:ne.phase==="activate-pending"?"runtime":"prepare",error:ne.error,onCancel:()=>U({type:"back-to-browse"}),onOpen:()=>{v(Ie)}}):null,o.jsxs("div",{className:"workspace-options",role:"group","aria-label":"常用工作区",children:[J.length>0?o.jsxs(o.Fragment,{children:[o.jsx("h3",{className:"workspace-group-heading",children:"固定项目"}),J.map(q=>o.jsx(Rf,{workspace:q,locked:F,onOpen:R},q.id))]}):null,Se.length>0?o.jsxs(o.Fragment,{children:[o.jsx("h3",{className:"workspace-group-heading",children:J.length>0?"最近打开":"最近项目"}),ce.map(q=>o.jsx(Rf,{workspace:q,locked:F,onOpen:R},q.id))]}):null,T?null:o.jsx("p",{className:"workspace-empty",children:"没有匹配的项目。"}),W>0||E&&Se.length>D?o.jsx("button",{type:"button",className:"text-button workspace-toggle-all","aria-expanded":E,onClick:()=>z(q=>!q),children:E?"收起其他项目":`其他项目(${W})`}):null,i.workspaceNextCursor?o.jsx("button",{type:"button",className:"text-button",onClick:()=>{d()},disabled:F,children:"加载更多工作区"}):null]}),se.roots.length>0||se.rootsLoading?o.jsxs("div",{className:"workspace-roots",role:"group","aria-label":"项目根目录",children:[o.jsx("h3",{className:"workspace-group-heading",children:"项目根目录"}),se.rootsLoading?o.jsx("p",{className:"workspace-empty",role:"status",children:"正在读取项目根目录…"}):null,se.roots.map(q=>o.jsxs("div",{className:`workspace-root-row ${se.activeRootId===q.id?"active":""}`,children:[o.jsxs("button",{type:"button",className:"workspace-root-select",onClick:()=>ke(q),"aria-pressed":se.activeRootId===q.id,children:[o.jsx("span",{className:"workspace-icon",children:o.jsx(Q,{name:"workspace",size:15})}),o.jsxs("span",{children:[o.jsx("strong",{children:q.label}),o.jsx("small",{title:q.canonicalPath,children:ly(se,q)})]})]}),o.jsxs("span",{className:"workspace-root-actions",children:[o.jsx("button",{type:"button",className:"icon-button",onClick:()=>re(q),disabled:se.scanning,"aria-label":`刷新项目根目录 ${q.label}`,children:o.jsx(Q,{name:"refresh",size:14})}),o.jsx("button",{type:"button",className:"icon-button",onClick:()=>he(q),disabled:se.scanning,"aria-label":`移除项目根目录 ${q.label}`,children:o.jsx(Q,{name:"close",size:14})})]})]},q.id)),o.jsx("button",{type:"button",className:"text-button workspace-add-root",onClick:()=>{je()},disabled:se.scanning,children:"添加项目根目录…"})]}):null,!se.rootsLoading&&se.roots.length===0?o.jsx("button",{type:"button",className:"text-button workspace-add-root",onClick:()=>{je()},disabled:se.scanning,children:"添加项目根目录…"}):null,se.scanning?o.jsx("p",{className:"workspace-empty",role:"status",children:"正在扫描项目根目录…"}):null,se.phase==="error"?o.jsx("p",{className:"field-error",role:"alert",children:se.errorMessage||"扫描失败。"}):null,se.phase==="partial"?o.jsx("p",{className:"workspace-empty",role:"status",children:"部分结果:扫描在预算内未完成,可再次刷新。"}):null,se.phase==="empty"&&se.activeRootId?o.jsx("p",{className:"workspace-empty",role:"status",children:"该根目录下未发现候选项目;可用 Finder 或高级路径打开任意目录。"}):null,Me&&Ke.length>0?o.jsxs("div",{className:"workspace-discovered",role:"group","aria-label":"发现的项目",children:[o.jsxs("h3",{className:"workspace-group-heading",children:["发现的项目(",Me.label,se.phase==="partial"?",部分结果":"",")"]}),dt.map(q=>{const Re=le(Me.canonicalPath,q.relativePath);return o.jsxs("button",{type:"button",className:"workspace-option",disabled:F,onClick:()=>{B(Re,"discovered")},children:[o.jsx("span",{className:"workspace-icon",children:o.jsx(Q,{name:"workspace",size:16})}),o.jsxs("span",{children:[o.jsx("strong",{children:q.label}),o.jsx("small",{children:q.hint==="git"?"Git 仓库":"项目清单"})]}),o.jsx(Q,{name:"chevron",size:15})]},`${q.rootId}:${q.relativePath||"(root)"}`)}),ln>0?o.jsx("button",{type:"button",className:"text-button workspace-toggle-all","aria-expanded":st,onClick:()=>lt(q=>!q),children:st?"收起候选项目":`显示更多候选(${ln})`}):null]}):null,o.jsxs("details",{className:"workspace-advanced",children:[o.jsx("summary",{children:"高级:粘贴绝对路径"}),o.jsxs("form",{className:"workspace-path-form",onSubmit:ue,children:[o.jsx("label",{htmlFor:"workspace-path-input",children:"打开其他本地目录"}),o.jsxs("div",{className:"path-input-row",children:[o.jsx("input",{id:"workspace-path-input",value:j,onChange:q=>N(q.target.value),placeholder:"/Users/name/project",spellCheck:!1,autoComplete:"off"}),o.jsx("button",{type:"submit",className:"primary-button",disabled:!j.trim()||F,children:"打开"})]})]})]})]})}function Rf({workspace:t,locked:r,onOpen:i}){return o.jsxs("button",{type:"button",className:`workspace-option ${t.active?"active":""}`,disabled:t.active||!t.available||r,onClick:()=>i(t),children:[o.jsx("span",{className:"workspace-icon",children:o.jsx(Q,{name:"workspace",size:17})}),o.jsxs("span",{children:[o.jsx("strong",{children:t.label||Ip(t.path)}),o.jsx("small",{title:t.path,children:t.path})]}),t.active?o.jsx("span",{className:"current-pill",children:"当前"}):t.available?o.jsx(Q,{name:"chevron",size:15}):o.jsx("span",{className:"current-pill",children:"不可用"})]})}function dy({open:t,onClose:r,session:i,pending:a,onRename:d}){const[f,p]=m.useState(""),[g,x]=m.useState(""),k=i?.id;m.useEffect(()=>{t&&i&&(p(ys(i)),x(""))},[t,k]);const b=async j=>{if(j.preventDefault(),!(!i||!f.trim())){x("");try{await d(i.id,f.trim()),r()}catch(N){x(N instanceof Error?N.message:"重命名失败,请重试。")}}};return o.jsx(bo,{open:t,onClose:r,labelledBy:"rename-title",className:"rename-modal",children:o.jsxs("form",{onSubmit:b,children:[o.jsxs("header",{className:"modal-header",children:[o.jsxs("div",{children:[o.jsx("span",{className:"eyebrow",children:"SESSION"}),o.jsx("h2",{id:"rename-title",children:"重命名会话"})]}),o.jsx("button",{type:"button",className:"icon-button",onClick:r,"aria-label":"关闭重命名窗口",children:o.jsx(Q,{name:"close"})})]}),o.jsxs("div",{className:"rename-body",children:[o.jsx("label",{htmlFor:"session-name",children:"会话名称"}),o.jsx("input",{id:"session-name",value:f,onChange:j=>{p(j.target.value),g&&x("")},maxLength:120,autoFocus:!0}),g?o.jsx("p",{className:"field-error",role:"alert",children:g}):null]}),o.jsxs("footer",{className:"modal-footer",children:[o.jsx("button",{type:"button",className:"secondary-button",onClick:r,children:"取消"}),o.jsx("button",{type:"submit",className:"primary-button",disabled:a||!f.trim(),children:a?"保存中…":"保存"})]})]})})}const Pf=8;function fy({open:t,onClose:r,session:i,pending:a,onSave:d}){const[f,p]=m.useState(()=>i?.tags?[...i.tags]:[]),[g,x]=m.useState(""),[k,b]=m.useState(""),j=i?.id;m.useEffect(()=>{t&&i&&(p(i.tags??[]),x(""),b(""))},[t,j]);const N=()=>{const L=g.trim().slice(0,32);if(x(""),!!L&&!f.includes(L)){if(f.length>=Pf){b(`最多 ${Pf} 个标签。`);return}p([...f,L]),b("")}},E=L=>p(f.filter(G=>G!==L)),z=async L=>{if(L.preventDefault(),!!i){b("");try{await d(i.id,f),r()}catch(G){b(G instanceof Error?G.message:"保存标签失败,请重试。")}}};return o.jsx(bo,{open:t,onClose:r,labelledBy:"session-tags-title",className:"tags-modal",children:o.jsxs("form",{onSubmit:z,children:[o.jsxs("header",{className:"modal-header",children:[o.jsxs("div",{children:[o.jsx("span",{className:"eyebrow",children:"SESSION"}),o.jsx("h2",{id:"session-tags-title",children:"管理会话标签"})]}),o.jsx("button",{type:"button",className:"icon-button",onClick:r,"aria-label":"关闭标签窗口",children:o.jsx(Q,{name:"close"})})]}),o.jsxs("div",{className:"session-tags-body",children:[i?o.jsx("p",{className:"modal-description",children:ys(i)}):null,o.jsx("div",{className:"session-tags-chips",role:"list","aria-label":"当前标签",children:f.length===0?o.jsx("span",{className:"session-tags-empty",children:"还没有标签,输入后回车添加。"}):f.map(L=>o.jsxs("span",{className:"session-tag-chip",role:"listitem",children:[L,o.jsx("button",{type:"button",className:"icon-button session-tag-remove","aria-label":`移除标签 ${L}`,onClick:()=>E(L),children:o.jsx(Q,{name:"close",size:11})})]},L))}),o.jsx("label",{htmlFor:"session-tag-input",children:"新标签"}),o.jsx("input",{id:"session-tag-input",value:g,onChange:L=>{x(L.target.value),k&&b("")},onKeyDown:L=>{(L.key==="Enter"||L.key===","||L.key===",")&&(L.preventDefault(),N())},placeholder:"回车或逗号添加",maxLength:32,autoFocus:!0}),k?o.jsx("p",{className:"field-error",role:"alert",children:k}):null]}),o.jsxs("footer",{className:"modal-footer",children:[o.jsx("button",{type:"button",className:"secondary-button",onClick:r,children:"取消"}),o.jsx("button",{type:"submit",className:"primary-button",disabled:a,children:a?"保存中…":"保存"})]})]})})}function py({open:t,onClose:r,title:i,body:a,confirmLabel:d,danger:f=!1,pending:p=!1,onConfirm:g}){const x=m.useId(),k=async()=>{if(!p)try{await g(),r()}catch{}};return o.jsxs(bo,{open:t,onClose:r,labelledBy:x,className:"confirm-modal",children:[o.jsxs("header",{className:"modal-header",children:[o.jsx("h2",{id:x,children:i}),o.jsx("button",{type:"button",className:"icon-button",onClick:r,"aria-label":"关闭确认窗口",children:o.jsx(Q,{name:"close"})})]}),o.jsx("p",{className:"confirm-body",children:a}),o.jsxs("footer",{className:"modal-footer",children:[o.jsx("button",{type:"button",className:"secondary-button",autoFocus:!0,onClick:r,children:"取消"}),o.jsx("button",{type:"button",className:f?"danger-button":"primary-button",disabled:p,onClick:()=>{k()},children:p?"处理中…":d})]})]})}function hy({open:t,onClose:r,session:i,pending:a,onConfirm:d}){const f=async()=>{if(i)try{await d(i.id),r()}catch{}};return o.jsxs(bo,{open:t,onClose:r,labelledBy:"confirm-delete-title",describedBy:"confirm-delete-description",className:"delete-modal",children:[o.jsxs("div",{className:"modal-header",children:[o.jsxs("div",{children:[o.jsx("span",{className:"eyebrow",children:"SESSION"}),o.jsx("h2",{id:"confirm-delete-title",children:"删除会话"})]}),o.jsx("button",{type:"button",className:"icon-button",onClick:r,"aria-label":"关闭删除确认",children:o.jsx(Q,{name:"close"})})]}),o.jsxs("p",{id:"confirm-delete-description",className:"confirm-delete-body",children:["将永久删除会话",o.jsx("strong",{children:i?`「${ys(i)}」`:""}),"及其全部记录(消息、文件变更、目标与检查点)。此操作不可恢复。"]}),o.jsxs("footer",{className:"modal-footer",children:[o.jsx("button",{type:"button",className:"secondary-button",onClick:r,children:"取消"}),o.jsx("button",{type:"button",className:"danger-button",disabled:a,onClick:()=>{f()},children:a?"删除中…":"永久删除"})]})]})}const my=["appearance.style","appearance.theme","appearance.motion","defaults.model","defaults.effort","permissions.toolConfirmation"];function ll(t,r){return r==="appearance.style"?t.sections.appearance.style:r==="appearance.theme"?t.sections.appearance.theme:r==="appearance.motion"?t.sections.appearance.motion:r==="defaults.model"?t.sections.defaults.model:r==="defaults.effort"?t.sections.defaults.effort:t.sections.permissions.toolConfirmation}function gy(t){return{"appearance.style":t.sections.appearance.style.effectiveValue,"appearance.theme":t.sections.appearance.theme.effectiveValue,"appearance.motion":t.sections.appearance.motion.effectiveValue,"defaults.model":t.sections.defaults.model.effectiveValue,"defaults.effort":t.sections.defaults.effort.effectiveValue,"permissions.toolConfirmation":t.sections.permissions.toolConfirmation.effectiveValue}}function Rr(t){return{openedAtRevision:t.revision,workspace:t.workspace,base:t,values:wy(t),intents:{},serverLatest:null}}function Ep(t,r,i){const a=Rn(t.base,r),d={...t.values,[r]:i},f={...t.intents};return Object.is(i,a)?delete f[r]:f[r]={op:"set",value:i},{...t,values:d,intents:f,serverLatest:null}}function Rp(t,r){const i=ll(t.base,r),a={...t.intents};return i.explicitValue===void 0?(delete a[r],{...t,values:{...t.values,[r]:Rn(t.base,r)},intents:a,serverLatest:null}):(a[r]={op:"unset"},{...t,values:{...t.values,[r]:i.inheritedValue??i.effectiveValue},intents:a,serverLatest:null})}function Tf(t,r){return{...t,serverLatest:r}}function vy(t){const r=t.serverLatest;if(!r)return t;let i=Rr(r);for(const a of Or(t)){const d=t.intents[a];if(d){if(d.op==="unset"){i=Rp(i,a);continue}i=Ep(i,a,d.value)}}return i}function Or(t){return my.filter(r=>t.intents[r]!==void 0)}function yy(t){return Or(t).map(r=>{const i=t.intents[r];return i.op==="unset"?{op:"unset",key:r}:{op:"set",key:r,value:i.value}})}function xy(t){return t.serverLatest?Or(t).filter(r=>{const i=ll(t.base,r),a=ll(t.serverLatest,r);return!Object.is(i.effectiveValue,a.effectiveValue)||!Object.is(i.explicitValue,a.explicitValue)||i.overridden!==a.overridden||i.source!==a.source}):[]}function Rn(t,r){const i=ll(t,r);return i.explicitValue??i.effectiveValue}function wy(t){const r=gy(t);return{"appearance.style":Rn(t,"appearance.style")??r["appearance.style"],"appearance.theme":Rn(t,"appearance.theme")??r["appearance.theme"],"appearance.motion":Rn(t,"appearance.motion")??r["appearance.motion"],"defaults.model":Rn(t,"defaults.model")??r["defaults.model"],"defaults.effort":Rn(t,"defaults.effort")??r["defaults.effort"],"permissions.toolConfirmation":Rn(t,"permissions.toolConfirmation")??r["permissions.toolConfirmation"]}}const al={phase:"closed",section:"general",draft:null,message:null,problemCode:null,confirmDiscard:!1};function ky(t,r){switch(r.type){case"open":return{...al,phase:"ready",draft:Rr(r.document)};case"close":return al;case"select_section":return{...t,section:r.section,confirmDiscard:!1};case"set_value":return!t.draft||t.phase==="saving"?t:{...t,phase:"ready",draft:Ep(t.draft,r.key,r.value),message:null,problemCode:null,confirmDiscard:!1};case"reset_value":return!t.draft||t.phase==="saving"?t:{...t,phase:"ready",draft:Rp(t.draft,r.key),message:null,problemCode:null,confirmDiscard:!1};case"save_started":return{...t,phase:"saving",message:"正在原子应用设置…",problemCode:null,confirmDiscard:!1};case"save_succeeded":return{...t,phase:"success",draft:Rr(r.document),message:"设置已安全保存并应用。",problemCode:null,confirmDiscard:!1};case"save_failed":{if(!t.draft)return t;const i=r.code==="settings_revision_conflict";return{...t,phase:i?"conflict":"rejected",draft:r.latest?Tf(t.draft,r.latest):t.draft,message:r.message,problemCode:r.code,confirmDiscard:!1}}case"server_updated":{if(!t.draft)return{...t,phase:"ready",draft:Rr(r.document)};if(t.phase==="saving")return t;if(t.draft.base.revision===r.document.revision){const i=Or(t.draft).length>0;return{...t,draft:i?{...t.draft,base:r.document}:Rr(r.document)}}return t.draft.workspace!==r.document.workspace||Or(t.draft).length===0?{...t,phase:"ready",draft:Rr(r.document),message:"已采用 Host 的最新设置。",problemCode:null,confirmDiscard:!1}:{...t,phase:"conflict",draft:Tf(t.draft,r.document),message:"Host 设置已更新。你的草稿仍被保留,请选择如何继续。",problemCode:"settings_revision_conflict",confirmDiscard:!1}}case"adopt_server":return t.draft?.serverLatest?{...t,phase:"ready",draft:Rr(t.draft.serverLatest),message:"已采用服务器最新值。",problemCode:null}:t;case"rebase":return t.draft?.serverLatest?{...t,phase:"ready",draft:vy(t.draft),message:"草稿已基于服务器最新值重放;请确认后再次应用。",problemCode:null}:t;case"request_discard":return{...t,confirmDiscard:!0};case"cancel_discard":return{...t,confirmDiscard:!1};case"clear_status":return{...t,phase:"ready",message:null,problemCode:null}}}const jy=["auto","none","minimal","low","medium","high","xhigh","max"],Sy=[{id:"general",label:"General",icon:"settings"},{id:"models",label:"Models & Reasoning",icon:"spark"},{id:"permissions",label:"Permissions",icon:"warning"},{id:"advanced",label:"Advanced",icon:"diagnostics"}];function Cy({open:t,onClose:r,state:i,actions:a,onGoToSessionControls:d}){const f=m.useRef(null),p=m.useRef(null),g=m.useRef(null),x=m.useRef(null),k=m.useRef(null),b=m.useRef(!1),j=m.useRef(null),N=m.useRef(al.phase),[E,z]=m.useReducer(ky,al),[L,G]=m.useState(!1),[ne,U]=m.useState(!1),[se,ie]=m.useState(null),Y=i.settings??i.settingsMirror.lastGood,A=Y&&(!i.workspace||Y.workspace===i.workspace)?Y:null;m.useEffect(()=>{const D=f.current;D&&(t&&!D.open&&D.showModal(),!t&&D.open&&D.close())},[t]),m.useEffect(()=>{if(t&&!b.current)A&&(z({type:"open",document:A}),k.current=A),G(!1),U(!1),ie(null);else if(t&&A&&k.current===null)z({type:"open",document:A}),k.current=A;else if(t&&A&&k.current!==null&&k.current!==A){if(E.phase==="saving")return;k.current=A,z({type:"server_updated",document:A})}else!t&&b.current&&(z({type:"close"}),k.current=null,j.current=null);b.current=t},[A,E.phase,t]),m.useEffect(()=>{E.confirmDiscard&&g.current?.focus()},[E.confirmDiscard]),m.useEffect(()=>{const D=N.current;if(N.current=E.phase,!t||D!=="saving"||E.phase!=="success")return;const ce=Af();f.current?.contains(ce)||p.current?.focus()},[E.phase,t]),m.useEffect(()=>{!t||A||i.settingsMirror.status==="loading"||a.refreshSettings().catch(()=>{})},[a,A,t,i.settingsMirror.status]),m.useEffect(()=>{!t||!E.draft||!i.workspace||E.draft.workspace!==i.workspace&&(z({type:"close"}),k.current=null)},[E.draft,t,i.workspace]);const F=E.draft,ge=F?Or(F):[],Ie=ge.length>0,we=i.processing&&ge.some(D=>["defaults.effort","permissions.toolConfirmation"].includes(D)),te=()=>{if(E.phase!=="saving"){if(Ie){const D=Af();x.current=D instanceof HTMLElement?D:null,z({type:"request_discard"});return}z({type:"close"}),r()}},ye=()=>{z({type:"close"}),r()},J=async D=>{if(D.preventDefault(),!F||!Ie||E.phase==="saving"||E.phase==="conflict")return;const ce=yy(F),W=j.current??We();j.current=W,z({type:"save_started"});try{const T=await a.updateSettings(F.base.revision,ce,W);j.current=null,k.current=T.settings,z({type:"save_succeeded",document:T.settings})}catch(T){const B=T instanceof Oe?T.code??"settings_rejected":"network";let $;B==="settings_revision_conflict"?(j.current=null,$=await a.refreshSettings().catch(()=>{}),$&&(k.current=$)):T instanceof Oe&&T.status<500&&(j.current=null);const v=B==="settings_revision_conflict"&&!$?"settings_recovery_required":B;z({type:"save_failed",code:v,message:Ty(v,T),...$?{latest:$}:{}})}},Se=D=>{D.target===D.currentTarget&&te()};return o.jsx("dialog",{id:"settings-dialog",ref:f,className:"modal settings-modal","aria-modal":"true","aria-labelledby":"settings-title","aria-describedby":"settings-description",onCancel:D=>{D.preventDefault(),te()},onClick:Se,children:o.jsxs("form",{onSubmit:J,children:[o.jsxs("header",{className:"modal-header settings-header",children:[o.jsxs("div",{children:[o.jsx("span",{className:"eyebrow",children:"HOST SETTINGS"}),o.jsx("h2",{id:"settings-title",children:"设置"}),o.jsx("p",{id:"settings-description",children:"由本地 Host 读取、校验并原子保存。"})]}),o.jsx("button",{ref:p,type:"button",className:"icon-button",onClick:te,"aria-label":"关闭设置",disabled:E.phase==="saving",children:o.jsx(Q,{name:"close"})})]}),o.jsxs("div",{className:"settings-layout",children:[o.jsx("nav",{className:"settings-navigation","aria-label":"设置类别",children:Sy.map(D=>o.jsxs("button",{type:"button",className:E.section===D.id?"active":"","aria-current":E.section===D.id?"page":void 0,onClick:()=>z({type:"select_section",section:D.id}),children:[o.jsx(Q,{name:D.icon,size:16}),o.jsx("span",{children:D.label})]},D.id))}),o.jsxs("div",{className:"settings-content",children:[o.jsx(Ry,{state:i}),F?o.jsxs(o.Fragment,{children:[E.phase==="conflict"?o.jsx(Py,{draft:F,onAdopt:()=>{j.current=null,z({type:"adopt_server"})},onRebase:()=>{j.current=null,z({type:"rebase"})}}):null,E.message&&E.phase!=="conflict"?o.jsxs("div",{className:`settings-inline-message settings-message-${E.phase}`,role:E.phase==="rejected"?"alert":"status","aria-live":E.phase==="rejected"?"assertive":"polite",children:[o.jsx(Q,{name:E.phase==="success"?"check":"info",size:16}),o.jsx("span",{children:E.message})]}):null,E.section==="general"?o.jsx(by,{document:F.base,draft:F.values,dirtyKeys:ge,saving:E.phase==="saving",onSet:(D,ce)=>z({type:"set_value",key:D,value:ce}),onReset:D=>z({type:"reset_value",key:D})}):null,E.section==="models"?o.jsx(Ny,{document:F.base,draft:F.values,dirtyKeys:ge,runtimeBusy:i.processing,saving:E.phase==="saving",onGoToSessionControls:d,onSet:(D,ce)=>z({type:"set_value",key:D,value:ce}),onReset:D=>z({type:"reset_value",key:D})}):null,E.section==="permissions"?o.jsx(_y,{document:F.base,value:F.values["permissions.toolConfirmation"],dirtyKeys:ge,runtimeBusy:i.processing,saving:E.phase==="saving",confirmAllow:L,allowAcknowledged:ne,onAllowRequested:()=>{U(!1),G(!0)},onAllowAcknowledged:U,onConfirmAllow:()=>{z({type:"set_value",key:"permissions.toolConfirmation",value:"allow"}),G(!1),U(!1)},onCancelAllow:()=>{G(!1),U(!1)},onSet:D=>z({type:"set_value",key:"permissions.toolConfirmation",value:D}),onReset:()=>z({type:"reset_value",key:"permissions.toolConfirmation"})}):null,E.section==="advanced"?o.jsx(Ey,{state:i,document:F.base,documentAction:se,onOpenDocument:()=>{ie({tone:"status",message:"正在请求 Host 打开设置文件…"}),a.openSettingsDocument().then(()=>ie({tone:"status",message:"已交给系统默认编辑器打开。"})).catch(D=>ie({tone:"error",message:D instanceof Error?D.message:"无法打开设置文件。"}))},onRefresh:()=>{ie({tone:"status",message:"正在重新载入 Host 设置…"}),a.refreshSettings().then(()=>ie({tone:"status",message:"已载入最新设置。"})).catch(D=>ie({tone:"error",message:D instanceof Error?D.message:"重新载入失败。"}))}}):null]}):o.jsxs("section",{className:"settings-empty","aria-live":"polite",children:[o.jsx(Q,{name:"refresh"}),o.jsx("h3",{children:"正在读取设置"}),o.jsx("p",{children:"等待本地 Host 返回可验证的设置快照。"})]})]})]}),E.confirmDiscard?o.jsxs("div",{className:"settings-discard-confirm",role:"alertdialog","aria-labelledby":"settings-discard-title","aria-describedby":"settings-discard-description",children:[o.jsxs("div",{children:[o.jsx("strong",{id:"settings-discard-title",children:"放弃未应用的更改?"}),o.jsxs("p",{id:"settings-discard-description",children:["你的 ",ge.length," 项草稿尚未写入 Host。"]})]}),o.jsxs("div",{children:[o.jsx("button",{ref:g,type:"button",className:"secondary-button",onClick:()=>{z({type:"cancel_discard"});const D=x.current;requestAnimationFrame(()=>D?.focus())},children:"继续编辑"}),o.jsx("button",{type:"button",className:"danger-ghost-button",onClick:ye,children:"放弃更改"})]})]}):null,o.jsxs("footer",{className:"modal-footer settings-footer",children:[o.jsx("span",{className:"settings-dirty-summary","aria-live":"polite",children:Ie?`${ge.length} 项未应用`:"没有未应用的更改"}),o.jsx("button",{type:"button",className:"secondary-button",onClick:te,disabled:E.phase==="saving",children:"取消"}),o.jsx("button",{type:"submit",className:"primary-button",disabled:!F||!Ie||E.phase==="saving"||E.phase==="conflict"||we||F.base.state!=="ready"||!F.base.writable,children:E.phase==="saving"?"应用中…":`应用 ${ge.length} 项`})]})]})})}function by({document:t,draft:r,dirtyKeys:i,saving:a,onSet:d,onReset:f}){const p=t.sections.appearance.style,g=t.sections.appearance.theme,x=t.sections.appearance.motion;return o.jsxs(xl,{heading:"通用",detail:"外观偏好由 Host 保存,并在所有 Workbench 窗口保持一致。",children:[o.jsx(xs,{id:"settings-style",label:"视觉风格",description:"选择内置的方块工坊外观,或切回经典工作台。",field:p,dirty:i.includes("appearance.style"),onReset:()=>f("appearance.style"),disabled:a||!sn(t,p),children:o.jsxs("select",{id:"settings-style",value:r["appearance.style"],disabled:a||!sn(t,p),onChange:k=>d("appearance.style",k.target.value),children:[o.jsx("option",{value:"orion-blocksmith",children:"方块工坊(内置,默认)"}),o.jsx("option",{value:"classic",children:"经典"})]})}),o.jsx(xs,{id:"settings-theme",label:"主题",description:"跟随系统或固定使用浅色、深色。",field:g,dirty:i.includes("appearance.theme"),onReset:()=>f("appearance.theme"),disabled:a||!sn(t,g),children:o.jsxs("select",{id:"settings-theme",value:r["appearance.theme"],disabled:a||!sn(t,g),onChange:k=>d("appearance.theme",k.target.value),children:[o.jsx("option",{value:"system",children:"跟随系统"}),o.jsx("option",{value:"dark",children:"深色"}),o.jsx("option",{value:"light",children:"浅色"})]})}),o.jsxs("figure",{className:"appearance-preview","data-preview-style":r["appearance.style"],"data-preview-theme":r["appearance.theme"],"aria-label":`外观预览:${r["appearance.style"]==="orion-blocksmith"?"方块工坊":"经典工作台"},${Iy(r["appearance.theme"])}`,children:[o.jsxs("div",{className:"appearance-preview-frame","aria-hidden":"true",children:[o.jsx("span",{className:"appearance-preview-rail"}),o.jsxs("span",{className:"appearance-preview-main",children:[o.jsx("i",{}),o.jsx("i",{})]}),o.jsx("span",{className:"appearance-preview-panel"})]}),o.jsx("figcaption",{children:"纯 CSS 预览 · 均为内置外观,不支持安装或卸载。"})]}),o.jsx(xs,{id:"settings-motion",label:"动效",description:"减少非必要动画,保留状态变化。",field:x,dirty:i.includes("appearance.motion"),onReset:()=>f("appearance.motion"),disabled:a||!sn(t,x),children:o.jsxs("select",{id:"settings-motion",value:r["appearance.motion"],disabled:a||!sn(t,x),onChange:k=>d("appearance.motion",k.target.value),children:[o.jsx("option",{value:"system",children:"跟随系统"}),o.jsx("option",{value:"reduced",children:"减少动效"})]})})]})}function Iy(t){return t==="light"?"浅色":t==="dark"?"深色":"跟随系统"}function Ny({document:t,draft:r,dirtyKeys:i,saving:a,runtimeBusy:d,onSet:f,onReset:p,onGoToSessionControls:g}){const x=t.sections.defaults.model,k=t.sections.defaults.effort,b=t.models.some(j=>j.id===r["defaults.model"])?t.models:[{id:r["defaults.model"],label:r["defaults.model"]},...t.models];return o.jsxs(xl,{heading:"模型与推理",detail:"项目默认值通常从下一逻辑请求开始生效;当前会话覆盖保持可见。",children:[d?o.jsx(Pp,{detail:"当前回合正在运行;项目推理强度暂时锁定,默认模型仍可用于新会话。"}):null,o.jsx(xs,{id:"settings-model",label:"默认模型",description:"仅展示 Host 提供的可用模型标识。",field:x,dirty:i.includes("defaults.model"),onReset:()=>p("defaults.model"),disabled:a||!sn(t,x),children:o.jsx("select",{id:"settings-model",value:r["defaults.model"],disabled:a||!sn(t,x),onChange:j=>f("defaults.model",j.target.value),children:b.map(j=>o.jsxs("option",{value:j.id,children:[j.label,j.provider?` · ${j.provider}`:""]},j.id))})}),o.jsx(xs,{id:"settings-effort",label:"默认推理强度",description:"模型不支持的强度会由 Host 拒绝,不会静默降级。",field:k,dirty:i.includes("defaults.effort"),onReset:()=>p("defaults.effort"),disabled:a||d||!sn(t,k),children:o.jsx("select",{id:"settings-effort",value:r["defaults.effort"],disabled:a||d||!sn(t,k),onChange:j=>f("defaults.effort",j.target.value),children:jy.map(j=>o.jsx("option",{value:j,children:j==="auto"?"Auto":j},j))})}),t.currentSession?o.jsxs("div",{className:"settings-readonly-card","aria-label":"当前会话设置",children:[o.jsxs("div",{children:[o.jsx("span",{children:"当前会话"}),o.jsx("strong",{children:t.currentSession.model})]}),o.jsxs("div",{children:[o.jsx("span",{children:"Effort"}),o.jsx("strong",{children:t.currentSession.effort})]}),o.jsx("p",{children:t.currentSession.overridesProjectEffort?"当前会话覆盖了项目推理强度。":"当前会话沿用项目默认值。"}),o.jsx("small",{children:"可在会话输入框使用 /model 或 /effort 调整当前会话。"}),o.jsx("button",{type:"button",className:"text-button",onClick:g,"aria-controls":"orion-composer",children:"转到会话控制"})]}):null,o.jsxs("div",{className:"credential-note",children:[o.jsx(Q,{name:"check",size:16}),o.jsxs("div",{children:[o.jsx("strong",{children:"凭证始终留在 Host"}),o.jsx("p",{children:"浏览器只接收 ready / missing / unavailable 状态,不提供 API Key 输入框。"})]})]})]})}function _y({document:t,value:r,dirtyKeys:i,runtimeBusy:a,saving:d,confirmAllow:f,allowAcknowledged:p,onAllowRequested:g,onAllowAcknowledged:x,onConfirmAllow:k,onCancelAllow:b,onSet:j,onReset:N}){const E=m.useRef(null),z=m.useRef(null),L=t.sections.permissions.toolConfirmation,G=d||a||!sn(t,L);return m.useEffect(()=>{f&&z.current?.focus()},[f]),o.jsxs(xl,{heading:"权限",detail:"默认确认策略不改变工作区边界、硬拒绝和高风险保护。",children:[a?o.jsx(Pp,{}):null,o.jsx(xs,{id:"settings-tool-confirmation",label:"工具确认",description:"Ask 逐次询问;Deny 默认拒绝;Allow 仍受 Host 安全策略约束。",field:L,labelControl:!1,dirty:i.includes("permissions.toolConfirmation"),onReset:N,disabled:G,children:o.jsxs("fieldset",{id:"settings-tool-confirmation",className:"segmented-field",disabled:G,children:[o.jsx("legend",{className:"sr-only",children:"默认工具确认策略"}),["ask","allow","deny"].map(ne=>o.jsxs("label",{children:[o.jsx("input",{ref:ne==="allow"?E:void 0,type:"radio",name:"settings-permission",value:ne,checked:r===ne,onChange:()=>ne==="allow"?g():j(ne)}),o.jsx("span",{children:ne==="ask"?"Ask":ne==="allow"?"Allow":"Deny"})]},ne))]})}),f?o.jsxs("div",{className:"settings-risk-confirm",role:"alertdialog","aria-labelledby":"allow-confirm-title","aria-describedby":"allow-confirm-description",children:[o.jsx("strong",{id:"allow-confirm-title",children:"确认启用 Allow"}),o.jsx("p",{id:"allow-confirm-description",children:"Orion 会减少常规工具询问,但硬拒绝、工作区边界和风险检查仍然生效。"}),o.jsxs("label",{children:[o.jsx("input",{ref:z,type:"checkbox",checked:p,onChange:ne=>x(ne.target.checked)}),o.jsx("span",{children:"我理解这会扩大默认授权范围"})]}),o.jsxs("div",{children:[o.jsx("button",{type:"button",className:"secondary-button",onClick:()=>{b(),requestAnimationFrame(()=>E.current?.focus())},children:"保持当前策略"}),o.jsx("button",{type:"button",className:"primary-button",disabled:!p,onClick:k,children:"启用 Allow"})]})]}):null,o.jsx("p",{className:"settings-help",children:"Agent 的 BUILD / PLAN / AUTO 模式与工具确认策略互相独立。"})]})}function Ey({state:t,document:r,documentAction:i,onOpenDocument:a,onRefresh:d}){return o.jsxs(xl,{heading:"高级",detail:"配置状态、凭证可用性和集成清单均为只读摘要。",children:[r.diagnostic?o.jsxs("div",{className:"settings-diagnostic",role:"alert",children:[o.jsx(Q,{name:"warning",size:16}),o.jsxs("div",{children:[o.jsx("strong",{children:On(r.diagnostic.code)}),o.jsx("p",{children:On(r.diagnostic.message)})]})]}):null,o.jsxs("dl",{className:"settings-facts",children:[o.jsxs("div",{children:[o.jsx("dt",{children:"状态"}),o.jsx("dd",{children:zy(r.state)})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"工作区"}),o.jsx("dd",{title:"仅显示目录名",children:Ip(r.workspace)||"—"})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"文档"}),o.jsx("dd",{children:r.hasDocument?"已创建":"尚未创建"})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"版本"}),o.jsx("dd",{title:r.revision,children:Mf(r.revision)})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"Last good"}),o.jsx("dd",{children:t.settingsMirror.lastGood?Mf(t.settingsMirror.lastGood.revision):"无"})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"Mirror"}),o.jsxs("dd",{children:[t.settingsMirror.status," · g",t.settingsMirror.generation]})]})]}),o.jsxs("div",{className:"settings-advanced-actions",children:[o.jsxs("button",{type:"button",className:"secondary-button",onClick:d,children:[o.jsx(Q,{name:"refresh",size:15}),"重新载入设置"]}),o.jsxs("button",{type:"button",className:"secondary-button",onClick:a,children:[o.jsx(Q,{name:"edit",size:15}),"打开配置文件"]})]}),i?o.jsx("div",{className:`settings-document-action ${i.tone}`,role:i.tone==="error"?"alert":"status",children:i.message}):null,o.jsxs("section",{className:"settings-subsection","aria-labelledby":"credential-status-heading",children:[o.jsx("h4",{id:"credential-status-heading",children:"凭证状态"}),o.jsx("p",{children:"仅显示来源类别与可用性;密钥值、环境变量名和认证头不会进入浏览器。"}),r.credentials.length?o.jsx("ul",{className:"settings-readonly-list",children:r.credentials.map(f=>o.jsxs("li",{children:[o.jsx("span",{children:f.providerId}),o.jsx("span",{className:`settings-state-badge state-${f.state}`,children:f.state}),o.jsx("small",{children:Dy(f.source)})]},f.providerId))}):o.jsx("p",{className:"settings-empty-line",children:"Host 未报告凭证槽位。"})]}),o.jsxs("section",{className:"settings-subsection","aria-labelledby":"integration-status-heading",children:[o.jsx("h4",{id:"integration-status-heading",children:"只读能力"}),o.jsx("p",{children:"Skills 与 MCP 在专用配置中管理,此处用于确认 Host 实际加载结果。"}),o.jsxs("div",{className:"settings-capability-grid",children:[o.jsx(Of,{title:"Skills",count:t.skills.length,names:t.skills.map(f=>f.name)}),o.jsx(Of,{title:"MCP",count:t.mcpServers.length,names:t.mcpServers.map(f=>f.name)})]})]})]})}function Ry({state:t}){const{settingsMirror:r}=t;return r.status==="loading"?o.jsxs("div",{className:"settings-availability",role:"status",children:[o.jsx(Q,{name:"refresh",size:15})," 正在与 Host 同步设置…"]}):r.error?o.jsxs("div",{className:"settings-availability error",role:"alert",children:[o.jsx(Q,{name:"warning",size:15})," 设置同步失败:",r.error," 当前显示上一次可用值。"]}):r.stale?o.jsxs("div",{className:"settings-availability",role:"status",children:[o.jsx(Q,{name:"refresh",size:15})," Host 已更新设置,正在载入;当前显示上一次可用值。"]}):r.document?.state==="invalid"?o.jsxs("div",{className:"settings-availability error",role:"alert",children:[o.jsx(Q,{name:"warning",size:15})," 设置文档无效。控件已锁定,并保留上一次可用值供参考。"]}):r.document?.state==="read-only"?o.jsxs("div",{className:"settings-availability",role:"status",children:[o.jsx(Q,{name:"info",size:15})," 设置当前为只读状态。"]}):r.document?.state==="unavailable"?o.jsxs("div",{className:"settings-availability error",role:"alert",children:[o.jsx(Q,{name:"warning",size:15})," Host 设置暂不可用;当前显示上一次可用值。"]}):null}function xl({heading:t,detail:r,children:i}){return o.jsxs("section",{className:"settings-section","aria-labelledby":`settings-${Lf(t)}-heading`,children:[o.jsxs("header",{className:"settings-section-heading",children:[o.jsx("h3",{id:`settings-${Lf(t)}-heading`,children:t}),o.jsx("p",{children:r})]}),o.jsx("div",{className:"settings-section-fields",children:i})]})}function xs({id:t,label:r,description:i,field:a,labelControl:d=!0,dirty:f,disabled:p,onReset:g,children:x}){return o.jsxs("div",{className:`settings-field-card ${f?"dirty":""}`,children:[o.jsxs("div",{className:"settings-field-copy",children:[d?o.jsx("label",{htmlFor:t,children:r}):o.jsx("strong",{children:r}),o.jsx("p",{children:i}),o.jsxs("div",{className:"settings-field-meta","aria-label":`${r} 设置来源`,children:[o.jsx("span",{children:Oy(a.source)}),o.jsx("span",{children:My(a.scope)}),o.jsx("span",{children:Ly(a.applies)}),f?o.jsx("strong",{children:"草稿"}):null]}),a.blockedReason?o.jsx("small",{className:"settings-blocked-reason",children:Ay(a.blockedReason)}):null]}),o.jsxs("div",{className:"settings-field-control",children:[x,o.jsx("button",{type:"button",className:"text-button",onClick:g,disabled:p||a.explicitValue===void 0&&!f,"aria-label":`重置${r}为继承值`,children:"重置"})]})]})}function Py({draft:t,onAdopt:r,onRebase:i}){const a=xy(t),d=Or(t),f=t.serverLatest;return o.jsxs("div",{className:"settings-conflict",role:"alert",children:[o.jsx(Q,{name:"warning",size:17}),o.jsxs("div",{children:[o.jsx("strong",{children:"Host 设置已在其他位置更新"}),o.jsxs("p",{children:["草稿仍被保留",a.length?`;${a.length} 个草稿字段的服务器值发生变化`:"","。"]}),f?o.jsxs("div",{className:"settings-conflict-values","aria-label":"服务器值与我的草稿",children:[o.jsxs("div",{className:"settings-conflict-value-heading","aria-hidden":"true",children:[o.jsx("span",{children:"字段"}),o.jsx("span",{children:"服务器最新值"}),o.jsx("span",{children:"我的草稿"})]}),d.map(p=>o.jsxs("div",{children:[o.jsx("strong",{children:$y(p)}),o.jsx("span",{"data-label":"服务器最新值",children:String(Rn(f,p))}),o.jsxs("span",{"data-label":"我的草稿",children:[String(t.values[p]),t.intents[p]?.op==="unset"?"(重置)":""]})]},p))]}):null,o.jsxs("div",{children:[o.jsx("button",{type:"button",className:"secondary-button",onClick:r,children:"采用服务器值"}),o.jsx("button",{type:"button",className:"primary-button",onClick:i,children:"基于最新值重试"})]})]})]})}function Pp({detail:t="当前回合正在运行;相关设置会在 Runtime 空闲后解锁。"}={}){return o.jsxs("div",{className:"settings-busy",role:"status",children:[o.jsx(Q,{name:"activity",size:15})," ",t]})}function Of({title:t,count:r,names:i}){return o.jsxs("div",{className:"settings-capability-card",children:[o.jsx("span",{children:t}),o.jsx("strong",{children:r}),o.jsx("small",{children:i.slice(0,3).join(" · ")||"未加载"})]})}function sn(t,r){return t.state==="ready"&&t.writable&&r.writable&&!r.blockedReason}function Ty(t,r){const i=r instanceof Error?r.message:"Host 拒绝了设置变更。";switch(t){case"settings_revision_conflict":return"设置已在其他位置更新。你的草稿没有丢失。";case"runtime_busy":return"Runtime 正在处理任务。请等待当前回合结束后再次应用。";case"settings_document_invalid":return"配置文件无效。请在高级页查看 Host 提供的安全诊断。";case"settings_write_forbidden":return"当前设置来源为只读,Host 未执行任何变更。";case"request_id_conflict":return"保存请求标识与先前内容冲突,请重新应用。";case"settings_recovery_required":return"Host 报告设置冲突,但最新设置暂时无法载入。草稿已保留,请重新载入后再试。";case"network":return"未能确认 Host 是否收到请求;保留草稿,可安全重试。";default:return i}}function Oy(t){return`来源:${t==="internal"?"内置":t==="model"?"模型":t==="global"?"全局":t==="project"?"项目":"会话"}`}function My(t){return`作用域:${t==="global"?"全局":t==="project"?"项目":"会话"}`}function Ly(t){return`生效:${t==="live"?"立即":t==="next-logical-request"?"下次请求":t==="new-session"?"新会话":"重启后"}`}function Ay(t){return t==="runtime_busy"?"Runtime 正在运行,暂不可修改。":t==="read_only"?"此字段来自只读配置。":"设置文档无效,修复前不可修改。"}function $y(t){return t==="appearance.style"?"视觉风格":t==="appearance.theme"?"主题":t==="appearance.motion"?"动效":t==="defaults.model"?"默认模型":t==="defaults.effort"?"默认推理强度":"工具确认"}function Dy(t){return t==="environment"?"环境提供":t==="legacy"?"Host 旧配置":"未配置"}function zy(t){return t==="ready"?"可用":t==="invalid"?"无效":t==="read-only"?"只读":"不可用"}function Mf(t){return t.length>24?`${t.slice(0,20)}…`:t}function Lf(t){return t.replace(/[^a-z0-9]+/gi,"-").replace(/^-|-$/g,"").toLowerCase()||"section"}function Af(){return typeof document>"u"?null:document.activeElement}const Wy=["导航","面板","编辑","浮层"],Tp=Object.freeze([{id:"toggle-project-navigation",tokens:["Mod","B"],group:"导航",description:"展开或折叠项目导航"},{id:"toggle-work-panel",tokens:["Mod","Shift","B"],group:"导航",description:"展开或折叠右侧工作面板"},{id:"focus-work-panel-1",tokens:["Mod","Shift","1"],group:"面板",description:"切换到 Agent 面板"},{id:"focus-work-panel-2",tokens:["Mod","Shift","2"],group:"面板",description:"切换到审阅面板"},{id:"focus-work-panel-3",tokens:["Mod","Shift","3"],group:"面板",description:"切换到终端面板"},{id:"focus-work-panel-4",tokens:["Mod","Shift","4"],group:"面板",description:"切换到文件面板"},{id:"focus-work-panel-5",tokens:["Mod","Shift","5"],group:"面板",description:"切换到 Git 面板"},{id:"work-panel-tab-nav",tokens:["←","→"],group:"面板",description:"在面板标签之间移动(Home / End 跳到首尾)"},{id:"resize-panel",tokens:["←","→"],group:"面板",description:"聚焦分隔条后按 2% 步长调整宽度,配合 Shift 为 10%"},{id:"resize-panel-reset",tokens:["Enter"],group:"面板",description:"分隔条聚焦时恢复默认宽度(Home 最窄,End 最宽)"},{id:"submit-composer",tokens:["Enter"],group:"编辑",description:"在输入框中发送当前内容"},{id:"newline-composer",tokens:["Shift","Enter"],group:"编辑",description:"在输入框中插入换行而不发送"},{id:"force-submit-composer",tokens:["Mod","Enter"],group:"编辑",description:"Agent 运行中时立即提交(否则进入队列)"},{id:"project-tree-nav",tokens:["↑","↓"],group:"面板",description:"在项目与会话树中移动焦点"},{id:"close-overlay",tokens:["Esc"],group:"浮层",description:"关闭抽屉、对话框或快捷键面板"},{id:"open-shortcut-help",tokens:["Mod","/"],group:"浮层",description:"打开或关闭本快捷键面板"}]);function Fy(){if(typeof navigator>"u")return!1;const t=navigator.platform??"";return/mac|iphone|ipad|ipod/i.test(t)||/Mac/i.test(navigator.userAgent??"")}function By(t,r=Fy()){return t.map(a=>a==="Mod"?r?"⌘":"Ctrl":a==="Shift"?r?"⇧":"Shift":a==="Alt"?r?"⌥":"Alt":a.toUpperCase()).join(r?" ":"+")}function cl(t,r){let i=!1,a=!1,d=!1,f=null;for(const k of r)k==="Mod"?i=!0:k==="Shift"?a=!0:k==="Alt"?d=!0:f=k;if(i!==(t.metaKey||t.ctrlKey)||a!==t.shiftKey||d!==t.altKey||f===null)return!1;const p=t.code??"";if(/^[a-z]$/i.test(f))return p===`Key${f.toUpperCase()}`;if(/^[0-9]$/.test(f))return p===`Digit${f}`;const x=Object.freeze({esc:"escape"})[f.toLowerCase()]??f.toLowerCase();return t.key.toLowerCase()===x}function ul(t){return Tp.find(r=>r.id===t)}function qy(){return Wy.map(t=>({group:t,items:Tp.filter(r=>r.group===t)})).filter(t=>t.items.length>0)}function Uy({open:t,onClose:r}){const i=m.useRef(null),a=m.useRef(null),d="shortcut-help-title";m.useEffect(()=>{const g=i.current;if(g&&(t&&!g.open&&(a.current=document.activeElement,g.showModal()),!t&&g.open)){g.close();const x=a.current;x&&document.contains(x)&&x.focus(),a.current=null}},[t]);const f=g=>{g.target===g.currentTarget&&r()},p=qy();return o.jsxs("dialog",{ref:i,id:"shortcut-help",className:"modal shortcut-help","aria-labelledby":d,onCancel:g=>{g.preventDefault(),r()},onClose:r,onClick:f,children:[o.jsxs("header",{className:"shortcut-help-header",children:[o.jsxs("div",{children:[o.jsx("span",{className:"eyebrow",children:"KEYBOARD"}),o.jsx("h2",{id:d,children:"键盘快捷键"})]}),o.jsx("button",{type:"button",className:"icon-button",onClick:r,"aria-label":"关闭快捷键面板",children:o.jsx(Q,{name:"close",size:15})})]}),o.jsx("div",{className:"shortcut-help-body",tabIndex:0,"aria-label":"键盘快捷键列表",children:p.map(({group:g,items:x})=>o.jsxs("section",{className:"shortcut-help-group",children:[o.jsx("h3",{children:g}),o.jsx("dl",{children:x.map(k=>o.jsxs("div",{className:"shortcut-row",children:[o.jsx("dt",{children:k.description}),o.jsx("dd",{children:o.jsx("kbd",{children:By(k.tokens)})})]},k.id))})]},g))}),o.jsx("footer",{className:"shortcut-help-footer",children:o.jsxs("p",{children:["按 ",o.jsx("kbd",{children:"Esc"})," 关闭本面板,焦点会回到打开它的位置。"]})})]})}const Hy="modulepreload",Vy=function(t){return"/"+t},$f={},wl=function(r,i,a){let d=Promise.resolve();if(i&&i.length>0){let x=function(k){return Promise.all(k.map(b=>Promise.resolve(b).then(j=>({status:"fulfilled",value:j}),j=>({status:"rejected",reason:j}))))};document.getElementsByTagName("link");const p=document.querySelector("meta[property=csp-nonce]"),g=p?.nonce||p?.getAttribute("nonce");d=x(i.map(k=>{if(k=Vy(k),k in $f)return;$f[k]=!0;const b=k.endsWith(".css"),j=b?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${k}"]${j}`))return;const N=document.createElement("link");if(N.rel=b?"stylesheet":Hy,b||(N.as="script"),N.crossOrigin="",N.href=k,g&&N.setAttribute("nonce",g),document.head.appendChild(N),b)return new Promise((E,z)=>{N.addEventListener("load",E),N.addEventListener("error",()=>z(new Error(`Unable to preload CSS for ${k}`)))})}))}function f(p){const g=new Event("vite:preloadError",{cancelable:!0});if(g.payload=p,window.dispatchEvent(g),!g.defaultPrevented)throw p}return d.then(p=>{for(const g of p||[])g.status==="rejected"&&f(g.reason);return r().catch(f)})},Er=[{id:"goal",label:"Goal",icon:"goal"},{id:"activity",label:"活动",icon:"activity"},{id:"integrations",label:"能力",icon:"branch"},{id:"diagnostics",label:"诊断",icon:"diagnostics"}];function Ky({state:t,actions:r,tab:i,onTabChange:a}){const d=m.useId(),f=p=>{if(p.key!=="ArrowLeft"&&p.key!=="ArrowRight"&&p.key!=="Home"&&p.key!=="End")return;p.preventDefault();const g=Er.findIndex(k=>k.id===i),x=p.key==="Home"?0:p.key==="End"?Er.length-1:(g+(p.key==="ArrowRight"?1:-1)+Er.length)%Er.length;a(Er[x].id),requestAnimationFrame(()=>document.getElementById(`${d}-tab-${Er[x].id}`)?.focus())};return o.jsxs("div",{className:"agent-panel",children:[o.jsx("div",{className:"inspector-tabs",role:"tablist","aria-label":"详情类别",onKeyDown:f,children:Er.map(p=>o.jsxs("button",{id:`${d}-tab-${p.id}`,type:"button",role:"tab","aria-selected":i===p.id,"aria-controls":`${d}-panel`,tabIndex:i===p.id?0:-1,onClick:()=>a(p.id),children:[o.jsx(Q,{name:p.icon,size:15}),o.jsx("span",{children:p.label})]},p.id))}),o.jsxs("div",{id:`${d}-panel`,className:"inspector-body",role:"tabpanel","aria-labelledby":`${d}-tab-${i}`,tabIndex:0,children:[i==="goal"?o.jsx(Gy,{state:t,actions:r}):null,i==="activity"?o.jsx(Yy,{state:t,actions:r}):null,i==="integrations"?o.jsx(Zy,{state:t,actions:r}):null,i==="diagnostics"?o.jsx(ex,{state:t,actions:r}):null]})]})}function Gy({state:t,actions:r}){const i=t.goal,a=t.plan?.body??(typeof t.diagnostics?.plan=="string"?t.diagnostics.plan:""),d=ks(t),f=d||t.connection!=="live"||!ir(t),[p,g]=m.useState(!1);if(!i)return o.jsxs("div",{className:"inspector-stack",children:[o.jsxs("section",{className:"inspector-empty-card",children:[o.jsx("div",{className:"empty-mini-icon",children:o.jsx(Q,{name:"goal"})}),o.jsx("h3",{children:"没有活动 Goal"}),o.jsx("p",{children:"Goal 会跨回合保存目标、计划、证据和预算状态。"})]}),o.jsx(Qy,{onCreate:k=>r.controlGoal("create",k),disabled:f||!t.activeSessionId}),o.jsx(Df,{mode:t.mode.baseMode,plan:a})]});const x=i.criteria?.total?Math.round(i.criteria.passed/i.criteria.total*100):0;return o.jsxs("div",{className:"inspector-stack",children:[o.jsxs("section",{className:"goal-card",children:[o.jsxs("header",{children:[o.jsx("span",{className:`goal-status status-${i.status}`,children:i.status.replace(/_/g," ")}),o.jsxs("span",{children:["rev ",i.revision]})]}),o.jsx("h3",{children:i.objective}),i.criteria?o.jsxs("div",{className:"goal-progress",children:[o.jsxs("div",{children:[o.jsx("span",{children:"成功条件"}),o.jsxs("strong",{children:[i.criteria.passed," / ",i.criteria.total]})]}),o.jsx("progress",{value:i.criteria.passed,max:Math.max(1,i.criteria.total),"aria-label":`Goal 条件完成 ${x}%`}),o.jsxs("div",{className:"goal-breakdown",children:[o.jsxs("span",{children:[x,"% 完成"]}),o.jsxs("span",{children:[i.criteria.failed," 失败 · ",i.criteria.stale," 过期"]})]})]}):null,o.jsxs("dl",{className:"metric-grid",children:[o.jsxs("div",{children:[o.jsx("dt",{children:"Tokens"}),o.jsxs("dd",{children:[zf(i.tokensUsed),i.tokenBudget?` / ${zf(i.tokenBudget)}`:""]})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"用时"}),o.jsx("dd",{children:nx(i.timeUsedMs)})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"续跑"}),o.jsx("dd",{children:i.continuationCount})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"Plan"}),o.jsx("dd",{children:i.planRevision?`r${i.planRevision}`:"—"})]})]}),i.nextAction?o.jsxs("div",{className:"next-action",children:[o.jsx("span",{children:"下一步"}),o.jsx("p",{children:i.nextAction})]}):null,i.auditRemaining?.length?o.jsxs("details",{className:"remaining-audit",children:[o.jsxs("summary",{children:["仍需验证 ",i.auditRemaining.length," 项"]}),o.jsx("ul",{children:i.auditRemaining.map((k,b)=>o.jsx("li",{children:k},`${k}-${b}`))})]}):null,o.jsxs("div",{className:"goal-actions",children:[i.status==="active"?o.jsxs("button",{type:"button",className:"secondary-button",onClick:()=>{r.controlGoal("pause")},disabled:f,children:[o.jsx(Q,{name:"pause",size:14}),"暂停"]}):i.status!=="complete"?o.jsxs("button",{type:"button",className:"secondary-button",onClick:()=>{r.controlGoal("resume")},disabled:f,children:[o.jsx(Q,{name:"refresh",size:14}),"恢复"]}):null,o.jsx("button",{type:"button",className:"danger-ghost-button",onClick:()=>g(!0),disabled:f,children:"清除"})]})]}),t.goalEvidence.length>0?o.jsxs("section",{className:"inspector-section",children:[o.jsxs("div",{className:"inspector-section-heading",children:[o.jsx("h3",{children:"最近证据"}),o.jsx("span",{children:t.goalEvidence.length})]}),o.jsx("ul",{className:"evidence-list",children:t.goalEvidence.slice(-8).reverse().map(k=>o.jsxs("li",{children:[o.jsx("span",{className:`evidence-state ${k.result}`,"aria-hidden":"true",children:o.jsx(Q,{name:k.result==="passed"?"check":k.result==="failed"?"close":"more",size:12})}),o.jsxs("div",{children:[o.jsx("strong",{children:k.subject}),o.jsxs("span",{children:[k.kind," · ",k.result]})]})]},k.id))})]}):null,o.jsx(Df,{mode:t.mode.baseMode,plan:a,goalPhase:i.planPhase}),t.goalActivity.length>0?o.jsxs("section",{className:"inspector-section",children:[o.jsx("div",{className:"inspector-section-heading",children:o.jsx("h3",{children:"Goal 轨迹"})}),o.jsx("ol",{className:"compact-timeline",children:t.goalActivity.slice(-10).reverse().map((k,b)=>o.jsxs("li",{children:[o.jsx("span",{className:"timeline-pin","aria-hidden":"true"}),o.jsxs("div",{children:[o.jsx("strong",{children:k.type.replace(/_/g," ")}),o.jsx("p",{children:k.message}),o.jsx("time",{children:rx(k.timestamp)})]})]},`${k.timestamp}-${b}`))})]}):null,o.jsx(py,{open:p,onClose:()=>g(!1),title:"清除此 Goal?",body:"Goal 的目标与进度会从当前会话移除,会话记录仍会保留。",confirmLabel:"清除 Goal",danger:!0,pending:d,onConfirm:()=>r.controlGoal("clear")})]})}function Qy({onCreate:t,disabled:r}){const[i,a]=m.useState(""),d=async f=>{if(f.preventDefault(),!!i.trim())try{await t(i.trim()),a("")}catch{}};return o.jsxs("form",{className:"goal-create",onSubmit:d,children:[o.jsx("label",{htmlFor:"goal-objective",children:"创建 Goal"}),o.jsx("textarea",{id:"goal-objective",rows:3,value:i,onChange:f=>a(f.target.value),placeholder:"输入一个可验证、可持续执行的目标…",disabled:r}),o.jsxs("button",{type:"submit",className:"primary-button",disabled:r||!i.trim(),children:[o.jsx(Q,{name:"goal",size:15}),"开始 Goal"]})]})}function Df({mode:t,plan:r,goalPhase:i}){return o.jsxs("section",{className:"inspector-section plan-section",children:[o.jsxs("div",{className:"inspector-section-heading",children:[o.jsx("h3",{children:"Plan"}),o.jsx("span",{className:`mode-badge mode-${t}`,children:t==="plan"?"PLAN MODE":i||"READ ONLY"})]}),r?o.jsx(ko,{children:r}):o.jsx("p",{className:"muted-copy",children:"还没有保存的计划。切换到 PLAN 模式后提交任务,Runtime 会生成并保存计划。"})]})}function Yy({state:t,actions:r}){const i=m.useMemo(()=>t.tools.filter(a=>tx(a)),[t.tools]);return o.jsxs("div",{className:"inspector-stack",children:[o.jsxs("section",{className:"inspector-section",children:[o.jsxs("div",{className:"inspector-section-heading",children:[o.jsx("h3",{children:"工具调用"}),o.jsx("span",{children:t.tools.length})]}),t.tools.length?o.jsx("ul",{className:"activity-list",children:t.tools.slice(-20).reverse().map(a=>o.jsx(Xy,{tool:a},a.callId))}):o.jsx(rl,{text:"还没有工具活动"})]}),o.jsx(Jy,{state:t,actions:r}),o.jsxs("section",{className:"inspector-section",children:[o.jsxs("div",{className:"inspector-section-heading",children:[o.jsx("h3",{children:"文件变化"}),o.jsx("span",{children:i.length+t.edits.length})]}),i.length||t.edits.length?o.jsxs("ul",{className:"change-list",children:[t.edits.slice(-8).reverse().map(a=>o.jsxs("li",{children:[o.jsx(Q,{name:"edit",size:14}),o.jsxs("div",{children:[o.jsx("strong",{children:Op(a.request.path)}),o.jsxs("span",{children:[a.request.kind," · ",a.request.candidates.length," candidates"]})]})]},a.eventId)),i.slice(-8).reverse().map(a=>o.jsxs("li",{children:[o.jsx(Q,{name:"code",size:14}),o.jsxs("div",{children:[o.jsx("strong",{children:a.name}),o.jsx("span",{children:a.summary||a.state})]})]},a.callId))]}):o.jsx(rl,{text:"还没有文件变化"})]}),o.jsxs("section",{className:"inspector-section",children:[o.jsxs("div",{className:"inspector-section-heading",children:[o.jsx("h3",{children:"子代理与研究"}),o.jsx("span",{children:t.subtasks.length+t.research.length})]}),t.subtasks.length?o.jsx("ul",{className:"activity-list",children:t.subtasks.slice(-8).reverse().map(a=>o.jsxs("li",{children:[o.jsx("span",{className:`state-dot state-${a.state}`,"aria-hidden":"true"}),o.jsxs("div",{children:[o.jsx("strong",{children:a.role}),o.jsx("span",{children:a.objective})]}),o.jsx("small",{children:a.state})]},a.taskId))}):null,t.research.length?o.jsx("ul",{className:"activity-list",children:t.research.slice(-6).reverse().map(a=>o.jsxs("li",{children:[o.jsx("span",{className:`state-dot state-${a.stage}`,"aria-hidden":"true"}),o.jsxs("div",{children:[o.jsx("strong",{children:"Research"}),o.jsx("span",{children:a.objective||a.packetId})]}),o.jsx("small",{children:a.stage})]},a.packetId))}):null,!t.subtasks.length&&!t.research.length?o.jsx(rl,{text:"还没有子代理或研究活动"}):null]})]})}function Xy({tool:t}){return o.jsxs("li",{children:[o.jsx("span",{className:`state-dot state-${t.state}`,"aria-hidden":"true"}),o.jsxs("div",{children:[o.jsx("strong",{children:t.name}),o.jsx("span",{children:t.summary||`调用 #${t.sequence}`})]}),o.jsx("small",{children:t.duration!==void 0?`${Math.round(t.duration)}ms`:t.state})]})}function Jy({state:t,actions:r}){const[i,a]=m.useState(""),[d,f]=m.useState(""),[p,g]=m.useState(),[x,k]=m.useState(0),[b,j]=m.useState(!1),[N,E]=m.useState("");m.useEffect(()=>{a(""),f(""),g(void 0),E("")},[t.activeSessionId]);const z=async(L,G=0)=>{j(!0),E("");try{const ne=await r.readToolDetail(L,G);a(L),f(U=>G===0?ne.content:`${U}${ne.content}`),g(ne.nextOffsetBytes),k(ne.totalBytes)}catch(ne){E(ne instanceof Error?ne.message:"工具详情读取失败。")}finally{j(!1)}};return o.jsxs("section",{className:"inspector-section tool-detail-browser",children:[o.jsxs("div",{className:"inspector-section-heading",children:[o.jsx("h3",{children:"持久化输出"}),o.jsxs("button",{type:"button",className:"icon-text-button",onClick:()=>{r.refreshToolDetails()},disabled:!!t.pendingAction,children:[o.jsx(Q,{name:"refresh",size:13}),"刷新"]})]}),t.toolDetails.length?o.jsx("div",{className:"detail-selector",role:"group","aria-label":"工具输出详情",children:t.toolDetails.slice(-20).reverse().map(L=>o.jsxs("button",{type:"button",className:i&&L.artifactId===i?"active":"",disabled:!L.artifactId||b,onClick:()=>L.artifactId&&void z(L.artifactId),children:[o.jsxs("span",{children:[o.jsx("strong",{children:L.toolName}),o.jsxs("small",{children:["#",L.sequence," · ",Wf(L.outputBytes)]})]}),o.jsx(Q,{name:"chevron",size:13})]},`${L.callId}:${L.sequence}`))}):o.jsx(rl,{text:"没有可读取的持久化输出"}),t.toolDetailNextCursor?o.jsx("button",{type:"button",className:"text-button",onClick:()=>{r.loadMoreToolDetails()},disabled:!!t.pendingAction,children:"加载更多输出记录"}):null,N?o.jsx("p",{className:"field-error",role:"alert",children:N}):null,i?o.jsxs("div",{className:"detail-output",children:[o.jsxs("div",{children:[o.jsxs("span",{children:[Wf(x)," · 已脱敏"]}),o.jsx("code",{children:i})]}),o.jsx("pre",{tabIndex:0,children:On(d)}),p!==void 0?o.jsx("button",{type:"button",className:"secondary-button",disabled:b,onClick:()=>{z(i,p)},children:b?"读取中…":"加载更多"}):null]}):null]})}function Zy({state:t,actions:r}){const i=t.skills,a=t.mcpServers;return o.jsxs("div",{className:"inspector-stack",children:[o.jsxs("section",{className:"capability-card",children:[o.jsxs("header",{children:[o.jsx("span",{className:"capability-icon",children:o.jsx(Q,{name:"spark",size:17})}),o.jsxs("div",{children:[o.jsx("h3",{children:"Skills"}),o.jsx("p",{children:"安全描述符,只读"})]}),o.jsx("span",{className:`readiness-pill ${i.length?"ready":""}`,children:i.length?`${i.length} 可用`:"未发现"})]}),i.length?o.jsx("ul",{className:"skill-list",children:i.map(d=>o.jsxs("li",{children:[o.jsxs("div",{children:[o.jsx("strong",{children:d.name}),o.jsxs("span",{children:[d.sourceScope," · ",d.providerId]})]}),o.jsx("p",{children:d.description}),d.requestedCapabilities.length?o.jsx("small",{children:d.requestedCapabilities.join(" · ")}):null]},d.id))}):o.jsx("p",{className:"muted-copy",children:"当前 Runtime 没有公开可用的 Skill 描述符。"})]}),o.jsxs("section",{className:"capability-card",children:[o.jsxs("header",{children:[o.jsx("span",{className:"capability-icon mcp",children:o.jsx(Q,{name:"branch",size:17})}),o.jsxs("div",{children:[o.jsx("h3",{children:"MCP Servers"}),o.jsx("p",{children:"只读配置与运行状态"})]}),o.jsx("span",{className:`readiness-pill ${a.length?"ready":""}`,children:a.length?`${a.length} 已配置`:"未配置"})]}),a.length?o.jsx("ul",{className:"server-list",children:a.map(d=>o.jsxs("li",{children:[o.jsx("span",{className:`state-dot state-${d.state}`,"aria-hidden":"true"}),o.jsxs("div",{children:[o.jsx("code",{children:d.name}),o.jsxs("small",{children:[d.transport," · ",d.toolCount," tools"]})]}),o.jsx("span",{children:d.disabled?"Disabled":d.state})]},d.id))}):o.jsx("p",{className:"muted-copy",children:"没有可用的 MCP Server。浏览器不会接收环境变量或认证 Header。"})]}),t.skillNextCursor||t.mcpNextCursor?o.jsx("button",{type:"button",className:"secondary-button",onClick:()=>{r.loadMoreCapabilities()},disabled:!!t.pendingAction,children:"加载更多能力"}):null,o.jsxs("section",{className:"security-note",children:[o.jsx(Q,{name:"info",size:16}),o.jsxs("p",{children:[o.jsx("strong",{children:"能力边界由 Runtime 管理。"})," Web 端只展示描述符和状态,不加载外部插件代码,也不会绕过 ToolGateway。"]})]})]})}function ex({state:t,actions:r}){const i=t.diagnostics,a=wo(t);return o.jsxs("div",{className:"inspector-stack",children:[o.jsxs("div",{className:"diagnostics-toolbar",children:[o.jsxs("div",{children:[o.jsx("span",{className:`connection-dot ${t.connection}`,"aria-hidden":"true"}),o.jsx("strong",{children:sx(t.connection)})]}),o.jsxs("button",{type:"button",className:"icon-text-button",onClick:()=>{r.refreshDiagnostics()},disabled:!!t.pendingAction,children:[o.jsx(Q,{name:"refresh",size:14}),"刷新"]})]}),o.jsxs("section",{className:"inspector-section",children:[o.jsx("div",{className:"inspector-section-heading",children:o.jsx("h3",{children:"Runtime"})}),o.jsxs("dl",{className:"diagnostic-list",children:[o.jsx(Et,{label:"版本",value:t.bootstrap?.productVersion??"—"}),o.jsx(Et,{label:"工作区",value:Op(t.workspace)||"—"}),o.jsx(Et,{label:"会话",value:t.activeSessionId?.slice(0,12)??"未选择"}),o.jsx(Et,{label:"模式",value:String(i?.agentMode??t.mode.baseMode)}),o.jsx(Et,{label:"权限",value:String(i?.permissionMode??t.settings?.sections.permissions.toolConfirmation.effectiveValue??"—")}),o.jsx(Et,{label:"事件游标",value:`${t.lastCursor}`}),o.jsx(Et,{label:"事件 UUID",value:t.lastEventId?.slice(0,12)??"—"}),o.jsx(Et,{label:"会话快照",value:a.status}),o.jsx(Et,{label:"保留事件",value:`${i?.eventStream?.retained??"—"}`}),o.jsx(Et,{label:"快照请求",value:i?.session?`${i.session.snapshotRequests} 次 / 失败 ${i.session.snapshotFailures}`:"—"}),o.jsx(Et,{label:"快照时延",value:i?.session?`${i.session.snapshotLastMs} ms(累计 ${i.session.snapshotTotalMs} ms)`:"—"}),o.jsx(Et,{label:"Session actor",value:i?.session?`${i.session.actors.actorsCreated} 分配 / ${i.session.actors.actorsEvicted} LRU 驱逐`:"—"}),o.jsx(Et,{label:"control plane",value:i?.session?`${i.session.controlPlaneInstalls} 次装载 / ${i.session.controlPlaneShutdowns} 次关闭`:"—"}),o.jsx(Et,{label:"浏览器切换",value:`${t.clientTelemetry.sessionSwitches} 次 / 缓存命中 ${t.clientTelemetry.snapshotCacheHits} / 加载 ${t.clientTelemetry.snapshotLoads}`})]})]}),i?.contextUsage?o.jsx(Gi,{title:"Context usage",value:i.contextUsage}):null,i?.tokenUsage?o.jsx(Gi,{title:"Token usage",value:i.tokenUsage}):null,i?.harness?o.jsx(Gi,{title:"Harness",value:i.harness}):null,t.loopStats?o.jsx(Gi,{title:"Loop statistics",value:t.loopStats}):null,o.jsxs("section",{className:"security-note",children:[o.jsx(Q,{name:"check",size:16}),o.jsx("p",{title:"API Key、认证 Header 和环境值不会返回浏览器。",children:"诊断载荷由 Host 脱敏。"})]})]})}function Et({label:t,value:r}){return o.jsxs("div",{children:[o.jsx("dt",{children:t}),o.jsx("dd",{title:r,children:r})]})}function Gi({title:t,value:r}){return o.jsxs("details",{className:"json-section",children:[o.jsx("summary",{children:t}),o.jsx("pre",{tabIndex:0,children:Pc(r,12e3)})]})}function rl({text:t}){return o.jsxs("div",{className:"empty-small",children:[o.jsx("span",{className:"empty-line","aria-hidden":"true"}),o.jsx("p",{children:t})]})}function tx(t){return/write|edit|patch|delete|move|rename|mkdir|create/i.test(t.name)}function Op(t){const r=t.replace(/[\\/]+$/,"");return r.split(/[\\/]/).filter(Boolean).at(-1)??r}function zf(t){return new Intl.NumberFormat("zh-CN",{notation:t>99999?"compact":"standard"}).format(t)}function nx(t){return t<1e3?`${Math.round(t)}ms`:t<6e4?`${Math.round(t/1e3)}s`:`${Math.floor(t/6e4)}m ${Math.round(t%6e4/1e3)}s`}function Wf(t){return t<1024?`${t} B`:t<1048576?`${(t/1024).toFixed(1)} KB`:`${(t/1048576).toFixed(1)} MB`}function rx(t){const r=Date.parse(t);return Number.isFinite(r)?new Date(r).toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit"}):""}function sx(t){return t==="live"?"本地 Web Host 连接正常":t==="offline"?"浏览器离线":t==="replay-required"?"Web Host 事件流需要恢复":t==="closed"?"本地 Web Host 已关闭":t==="connecting"?"正在连接本地 Web Host":"正在重新连接本地 Web Host"}function ox({width:t,onPreview:r,onCommit:i,maxWidth:a=xp}){return o.jsx(vp,{side:"right",className:"work-panel-resize-handle",minWidth:Ac,maxWidth:a,defaultWidth:$c,label:"拖动或按方向键调整工作面板宽度",width:t,controls:"work-panel-detail",onPreview:r,onCommit:i})}const ix=["agent","review","terminal","files","git"],lx=Object.freeze({agent:{label:"Agent",icon:"spark",kind:"task"},review:{label:"审阅",icon:"edit",kind:"resource"},terminal:{label:"终端",icon:"terminal",kind:"resource"},files:{label:"文件",icon:"workspace",kind:"resource"},git:{label:"Git",icon:"branch",kind:"resource"}}),ax=new Map(ix.map(t=>{const r=lx[t];return[t,Object.freeze({id:t,label:r.label,icon:r.icon,kind:r.kind})]})),cx=m.lazy(()=>wl(()=>import("./TerminalPanel-Da1ZEhGF.js"),__vite__mapDeps([0,1])).then(t=>({default:t.TerminalPanel}))),ux=m.lazy(()=>wl(()=>import("./FilesPanel-BjEDjE7l.js"),__vite__mapDeps([2,3])).then(t=>({default:t.FilesPanel}))),dx=m.lazy(()=>wl(()=>import("./GitPanel-DvgAZDRA.js"),__vite__mapDeps([4,3])).then(t=>({default:t.GitPanel}))),fx=m.lazy(()=>wl(()=>import("./ReviewPanel-BMPaYKDY.js"),__vite__mapDeps([5,3])).then(t=>({default:t.ReviewPanel}))),px=["focus-work-panel-1","focus-work-panel-2","focus-work-panel-3","focus-work-panel-4","focus-work-panel-5"],Ff=Object.freeze(Object.fromEntries([...ax].map(([t,r])=>[t,{label:r.label,icon:r.icon}]))),hx=new Set(["starting","running","stopping","queued","waiting_approval","interrupted","failed"]);function mx(t,r){return t?hx.has(t)?t==="failed"||t==="interrupted"?"failed":t==="queued"||t==="waiting_approval"?"queued":"running":null:r?"running":null}const dc=["system","light","dark"],gx={system:"monitor",light:"sun",dark:"moon"},Bf={system:"跟随系统",light:"浅色",dark:"深色"};function vx(t){const r=t??"system",i=dc.indexOf(r),a=dc[(i+1)%dc.length];return{current:r,next:a}}function yx({state:t,actions:r,mode:i,expanded:a,themePreference:d,onCycleTheme:f,onToggleInspector:p,onShowShortcutHelp:g,activePanel:x,panelOrder:k,agentPanel:b,onExpand:j,onCollapse:N,onPanelChange:E,onAgentPanelChange:z,onWidthPreview:L,onWidthCommit:G,width:ne,maxWidthPx:U,revealFileRequest:se,onRevealInFiles:ie,onSendToComposer:Y,resourceNavigatorWidths:A,onResourceNavigatorWidthCommit:F}){const ge=m.useRef(null),Ie=m.useRef(null),we=m.useRef(a),te=m.useId(),ye=m.useRef(new Set([x]));ye.current.add(x);const J=m.useRef(x==="terminal"||ye.current.has("terminal"));x==="terminal"&&(J.current=!0);const[Se,D]=m.useState(!1),ce=k&&k.length===bc.length?k:bc,W=t.workspaceResourceEpochs[t.workspaceId]??{files:0,git:0,review:0},T=t.sessionRuntimeById[t.activeSessionId??""]?.phase,B=mx(T,t.processing),$=vx(d);m.useEffect(()=>{const re=we.current;if(we.current=a,!(i!=="dock"||re===a)){if(!a){requestAnimationFrame(()=>ge.current?.querySelector(`[data-work-panel-id="${x}"]`)?.focus());return}Se&&(D(!1),requestAnimationFrame(()=>Ie.current?.focus()))}},[x,a,i,Se]),m.useEffect(()=>{const re=ul("toggle-work-panel"),he=je=>{if(re&&cl(je,re.tokens)){je.preventDefault(),a?N():(D(!0),j());return}const le=px.findIndex(Ke=>{const tt=ul(Ke);return tt?cl(je,tt.tokens):!1}),Me=ce[le];Me&&(je.preventDefault(),!(a&&x===Me)&&(E(Me),a||j()))};return window.addEventListener("keydown",he),()=>window.removeEventListener("keydown",he)},[a,i,N,j,E]);const v=re=>{if(re.key==="Escape"&&a&&!re.target.closest('[role="alertdialog"], .terminal-host, input, textarea, [contenteditable]')){re.preventDefault(),N();return}if(i!=="overlay"||!a||re.key!=="Tab")return;const he=xx(ge.current);if(!he.length){re.preventDefault(),ge.current?.focus();return}const je=he.indexOf(document.activeElement);re.shiftKey&&je<=0?(re.preventDefault(),he.at(-1)?.focus()):!re.shiftKey&&(je<0||je===he.length-1)&&(re.preventDefault(),he[0].focus())},R=re=>{if(i==="overlay"){E(re),a||(D(!0),j());return}if(a&&x===re){N();return}a||D(!0),E(re),j()},ue=(re=!1)=>o.jsxs("nav",{className:re?"work-panel-rail work-panel-rail-overlay":"work-panel-rail","aria-label":"工作面板快捷入口",children:[ce.map((he,je)=>{const le=Ff[he],Me=x===he;return o.jsxs("button",{type:"button",className:"work-panel-rail-button","data-work-panel-id":he,"aria-label":`打开${le.label}面板`,"aria-current":Me?"page":void 0,title:`${le.label} · ⌘⇧${je+1}`,onClick:()=>R(he),children:[o.jsx(Q,{name:le.icon,size:17}),he==="terminal"&&B?o.jsx(Tc,{state:B,className:"rail-status-dot",describe:!1}):null]},he)}),o.jsx("div",{className:"work-panel-rail-spacer"}),o.jsx("button",{type:"button",className:"icon-button shortcut-help-button",onClick:g,"aria-label":"查看键盘快捷键",title:"键盘快捷键(⌘/Ctrl+/)",children:o.jsx(Q,{name:"keyboard",size:17})}),o.jsx("button",{type:"button",className:"icon-button theme-cycle-button",onClick:f,"aria-label":`主题:${Bf[$.current]},点击切换为${Bf[$.next]}`,children:o.jsx(Q,{name:gx[$.current],size:17})}),o.jsx("button",{type:"button",className:"icon-button inspector-toggle",onClick:p,"aria-label":a?"关闭工作面板":"打开工作面板","aria-controls":"work-panel","aria-expanded":a,children:o.jsx(Q,{name:"sidebar",size:17})})]}),fe=re=>o.jsxs("div",{id:`${te}-${re}`,className:"work-panel-pane",role:"tabpanel","aria-label":Ff[re].label,hidden:re!==x,children:[re==="agent"?o.jsx(Ky,{state:t,actions:r,tab:b,onTabChange:z}):null,re==="review"?o.jsx(fx,{workspaceId:t.workspaceId,refreshEpoch:W.review,actions:r,onSendToComposer:Y,navigatorWidthPx:A.review,onNavigatorWidthCommit:he=>F("review",he)}):null,re==="terminal"?o.jsx(cx,{workspaceId:t.workspaceId,workspacePath:t.workspace,styleNonce:t.bootstrap?.nonce??"",available:!!t.bootstrap?.capabilities.terminal,actions:r}):null,re==="files"?o.jsx(ux,{workspaceId:t.workspaceId,refreshEpoch:W.files,actions:r,revealRequest:se??null,navigatorWidthPx:A.files,onNavigatorWidthCommit:he=>F("files",he)}):null,re==="git"?o.jsx(dx,{workspaceId:t.workspaceId,refreshEpoch:W.git,actions:r,onRevealInFiles:ie,onSendToComposer:Y,navigatorWidthPx:A.git,onNavigatorWidthCommit:he=>F("git",he)}):null]},re),ke=x==="terminal"||!J.current?[x]:[x,"terminal"];return o.jsxs("aside",{ref:ge,id:"work-panel",className:`work-panel work-panel-${i} ${a?"drawer-open work-panel-expanded":"work-panel-collapsed"}`,role:i==="overlay"?"dialog":void 0,"aria-modal":i==="overlay"&&a?!0:void 0,"aria-label":"工作面板","data-mode":i,"data-state":a?"expanded":"collapsed",tabIndex:i==="overlay"&&a?-1:void 0,onKeyDownCapture:v,children:[i==="dock"?o.jsxs("div",{className:"work-panel-dock-body",children:[a?o.jsx("section",{ref:Ie,id:"work-panel-detail",className:"work-panel-detail","aria-label":"工作面板内容",tabIndex:-1,children:o.jsx("div",{className:"work-panel-content",children:o.jsx(m.Suspense,{fallback:o.jsx("p",{className:"resource-loading",children:"正在加载工作面板…"}),children:ke.map(re=>fe(re))})})}):null,ue()]}):o.jsxs("div",{id:"work-panel-detail",className:"work-panel-detail",hidden:!a,children:[ue(!0),o.jsx("div",{className:"work-panel-content",children:o.jsx(m.Suspense,{fallback:o.jsx("p",{className:"resource-loading",children:"正在加载工作面板…"}),children:ke.map(re=>fe(re))})})]}),i==="dock"&&a?o.jsx(ox,{width:ne,maxWidth:U,onPreview:L,onCommit:G}):null]})}function xx(t){return t?Array.from(t.querySelectorAll('a[href], button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"])')).filter(r=>!r.hasAttribute("disabled")&&!r.closest("[inert]")&&!r.closest("[hidden]")&&r.getClientRects().length>0):[]}const Mp="orion.web.right-workspace.v3",dl=4,sl=300,Lp=160,Ap=420,wx=280,kx=["files","git","review"],fl=Object.freeze({files:sl,git:sl,review:sl});function $p(t){return Number.isFinite(t)?Math.min(Ap,Math.max(Lp,Math.round(t))):sl}function Cw(t){const r=Number.isFinite(t)?t:0,i=Math.min(Ap,r*.48,r-wx);return Math.max(Lp,Math.floor(i))}const Dp=Object.freeze({expanded:!0,activePanel:"agent",detailWidthPx:560,taskSubview:"overview",resourceNavigatorWidthPx:fl}),jx=Dp;function qf(){return Object.freeze({schemaVersion:dl,projectNavigation:Object.freeze({expanded:!0,widthPx:280}),workPanel:Object.freeze({byWorkspace:Object.freeze({}),fallback:jx})})}function Sx(t){const r=Dc(t.agentPanel);return Object.freeze({expanded:t.expanded!==!1,activePanel:Co(t.activePanel)?t.activePanel:"agent",detailWidthPx:Math.max(320,So(Number.isFinite(t.widthPx)?Number(t.widthPx)-rt:560)),taskSubview:r,resourceNavigatorWidthPx:fl})}function Cx(t,r){return t.workPanel.byWorkspace[r]??t.workPanel.fallback}function zp(t,r,i){const a=t.workPanel.byWorkspace[r]??t.workPanel.fallback,d=Object.freeze({...a,...i,resourceNavigatorWidthPx:i.resourceNavigatorWidthPx??a.resourceNavigatorWidthPx}),f={schemaVersion:dl,projectNavigation:t.projectNavigation,workPanel:{...t.workPanel,byWorkspace:Object.freeze({...t.workPanel.byWorkspace,[r]:d})}};return Object.freeze(f)}function bx(t,r,i,a){const d=Cx(t,r);return zp(t,r,{...d,resourceNavigatorWidthPx:Object.freeze({...d.resourceNavigatorWidthPx,[i]:$p(a)})})}function Ix(t){if(!t)return null;try{const r=JSON.parse(t);if(!Pr(r))return null;const i=r.schemaVersion;if(i!==3&&i!==dl)return null;const a=Pr(r.projectNavigation)?r.projectNavigation:{},d=Pr(r.workPanel)?r.workPanel:{},f=Pr(d.byWorkspace)?d.byWorkspace:{},p=Pr(d.fallback)?d.fallback:{},g={};for(const[x,k]of Object.entries(f))Pr(k)&&(g[x]=Uf(k));return Object.freeze({schemaVersion:dl,projectNavigation:Object.freeze({expanded:a.expanded!==!1,widthPx:So(Number(a.widthPx)||280)}),workPanel:Object.freeze({byWorkspace:Object.freeze(g),fallback:Uf(p)})})}catch{return null}}function Uf(t){return Object.freeze({expanded:t.expanded!==!1,activePanel:Co(t.activePanel)?t.activePanel:"agent",detailWidthPx:Wp(Number(t.detailWidthPx)),taskSubview:Dc(t.taskSubview),resourceNavigatorWidthPx:Nx(t.resourceNavigatorWidthPx)})}function Nx(t){if(!Pr(t))return fl;const r={...fl};for(const i of kx){const a=Number(t[i]);Number.isFinite(a)&&(r[i]=$p(a))}return Object.freeze(r)}function Wp(t){return Number.isFinite(t)?Math.min(3200,Math.max(360,Math.round(t))):Dp.detailWidthPx}function Dc(t){const r=String(t);return r==="goal"||r==="overview"?"overview":r==="activity"?"activity":r==="integrations"||r==="capabilities"?"capabilities":r==="diagnostics"?"diagnostics":"overview"}function _x(t){switch(t){case"overview":return"goal";case"activity":return"activity";case"capabilities":return"integrations";case"diagnostics":return"diagnostics"}}function Pr(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}function Ex(t){return["agent","review","terminal","files","git"].includes(t)}function Rx(){const t=globalThis;try{return Ix(t.window?.localStorage.getItem(Mp)??null)}catch{return null}}function Hf(t){const r=globalThis;try{r.window?.localStorage.setItem(Mp,JSON.stringify(t))}catch{}}function Px(t,r){const[i,a]=m.useState(Rx),d=t??"__fallback__",f=m.useMemo(()=>Sx(r),[]),p=m.useMemo(()=>{const k=i?.workPanel.byWorkspace[d]??i?.workPanel.fallback??f;return{workspaceId:d,expanded:k.expanded,activePanel:Ex(k.activePanel)?k.activePanel:"agent",agentPanel:_x(k.taskSubview),detailWidthPx:k.detailWidthPx,resourceNavigatorWidthPx:k.resourceNavigatorWidthPx}},[i,d,f]),g=m.useCallback(k=>{a(b=>{const j=b??qf(),N=j.workPanel.byWorkspace[d]??j.workPanel.fallback??f,E={expanded:k.expanded??N.expanded,activePanel:k.activePanel??N.activePanel,detailWidthPx:k.detailWidthPx??N.detailWidthPx,taskSubview:k.agentPanel?Dc(k.agentPanel):N.taskSubview,resourceNavigatorWidthPx:N.resourceNavigatorWidthPx},z=zp(j,d,E);return Hf(z),z})},[d,f]),x=m.useCallback((k,b)=>{a(j=>{const N=j??qf(),E=bx(N,d,k,b);return Hf(E),E})},[d]);return{value:p,update:g,setResourceNavigatorWidth:x}}const zc=320,Vf=360,Tx=1024,Ox=768,Mx=.8;function Fp(t){return Number.isFinite(t)&&t>0?Math.round(t):1440}function Bp(t){const r=Math.floor(t*Mx),i=t-zc-rt;return Math.max(0,Math.min(r,i))}function Kf(t){const r=Fp(t.containerWidth),i=Math.max(0,Math.round(t.leftWidthPx)),a=Math.max(0,r-i);if(r<Ox)return Object.freeze({mode:"drawer",detailWidthPx:0,conversationWidthPx:a,canResize:!1});if(r<Tx)return t.expanded?Object.freeze({mode:"drawer",detailWidthPx:0,conversationWidthPx:a,canResize:!0}):Object.freeze({mode:"rail",detailWidthPx:0,conversationWidthPx:a,canResize:!1});if(!t.expanded)return Object.freeze({mode:"rail",detailWidthPx:rt,conversationWidthPx:a-rt,canResize:!1});const d=Bp(a);if(d<Vf)return Object.freeze({mode:"rail",detailWidthPx:rt,conversationWidthPx:a-rt,canResize:!1});const f=Math.max(Vf,Math.min(Wp(t.storedDetailWidthPx),d)),p=a-f-rt;return p<zc?Object.freeze({mode:"rail",detailWidthPx:rt,conversationWidthPx:a-rt,canResize:!1}):Object.freeze({mode:"dock",detailWidthPx:f,conversationWidthPx:p,canResize:d>f})}function Gf(t){const r=Fp(t.containerWidth),i=t.navigationExpanded?Math.max(240,Math.min(480,Math.round(t.navigationWidthPx))):rt;let a=Kf({containerWidth:r,leftWidthPx:i,expanded:t.workExpanded,storedDetailWidthPx:t.workDetailWidthPx});const d=Kf({containerWidth:r,leftWidthPx:rt,expanded:t.workExpanded,storedDetailWidthPx:t.workDetailWidthPx});return t.navigationExpanded&&(a.mode==="dock"&&a.conversationWidthPx<zc||a.mode!=="dock"&&d.mode==="dock")?(a=d,Object.freeze({projectNavigation:Object.freeze({mode:"rail",widthPx:rt}),conversationWidthPx:a.conversationWidthPx,workPanel:Object.freeze({mode:a.mode,widthPx:a.mode==="dock"?a.detailWidthPx+rt:a.detailWidthPx})})):Object.freeze({projectNavigation:Object.freeze({mode:t.navigationExpanded?"dock":"rail",widthPx:i}),conversationWidthPx:a.conversationWidthPx,workPanel:Object.freeze({mode:a.mode,widthPx:a.mode==="dock"?a.detailWidthPx+rt:a.detailWidthPx})})}function Lx(t,r,i){const a=r==="light"||r==="system"&&i;return t==="orion-blocksmith"?a?"#d7d0c1":"#15191b":a?"#f4f5f8":"#090b10"}function lr(t,r){return t.some(i=>i.id===r.id)?t.map(i=>i.id===r.id?r:i):[r,...t]}const pl=1e4,Ax=256,$x=256,Dx=128,zx=8,kl=8*1024*1024,Wx=64;function Fx(t=cp,r){switch(r.type){case"baseline_loaded":{t=Ec(t);const i=t.workspaceId!==r.bootstrap.workspaceId||t.activeSessionId!==r.bootstrap.activeSessionId?jo(t):t,a=Qx(r.diagnostics,i.mode);return{...i,boot:"ready",bootError:void 0,bootstrap:r.bootstrap,contextRevision:r.bootstrap.contextRevision,workspaceId:r.bootstrap.workspaceId,pendingSessionActions:t.workspaceId===r.bootstrap.workspaceId&&t.contextRevision===r.bootstrap.contextRevision?t.pendingSessionActions:{},sessionCreationPending:t.workspaceId===r.bootstrap.workspaceId&&t.contextRevision===r.bootstrap.contextRevision?t.sessionCreationPending:!1,sessionCreationSelected:!1,foregroundRestore:null,bootstrapEventCursor:r.bootstrap.eventCursor??null,workspace:r.workspaces.activePath||r.bootstrap.workspace,workspaces:r.workspaces.workspaces,sessions:r.sessions,workspaceSessions:{...i.workspaceSessions,[r.bootstrap.workspaceId]:{status:"ready",items:r.sessions,nextCursor:r.sessionNextCursor}},workspaceNextCursor:r.workspaces.nextCursor,sessionNextCursor:r.sessionNextCursor,activeSessionId:r.bootstrap.activeSessionId,sessionSync:r.bootstrap.activeSessionId?{...i.sessionSync,[r.bootstrap.activeSessionId]:{status:i.sessionProjectionById[r.bootstrap.activeSessionId]?"refreshing":"loading",requestId:null}}:i.sessionSync,settings:r.settings,diagnostics:r.diagnostics,skills:r.skills,skillNextCursor:r.skillNextCursor,mcpServers:r.mcpServers,mcpNextCursor:r.mcpNextCursor,toolDetails:r.toolDetails,toolDetailNextCursor:r.toolDetailNextCursor,notice:i.notice?.domain==="session-snapshot"?null:i.notice,processing:!!r.diagnostics.processing,mode:a,statusMessage:r.bootstrap.configured?"本地 Web Host 已就绪":"模型尚未配置,任务提交已停用",announcement:r.bootstrap.configured?"本地 Web Host 已就绪":"Orion 尚未配置模型"}}case"boot_failed":return{...t,boot:"error",bootError:r.message,connection:Xx()?"reconnecting":"offline",announcement:`启动失败:${r.message}`};case"connection_changed":return t.connection==="replay-required"?t:{...t,connection:r.phase,sessionSync:r.phase==="live"?t.sessionSync:Object.fromEntries(Object.entries(t.sessionSync).map(([i,a])=>[i,{...a,dirty:!0}])),connectionAttempt:r.attempt,announcement:Jx(r.phase,r.attempt)};case"event_received":return Bx(t,r.envelope);case"session_snapshot_started":return t.contextRevision!==r.contextRevision||t.workspaceId!==r.workspaceId?t:Qi(Pn(t,r.sessionId,{status:r.cached?"refreshing":"loading",requestId:r.requestId}),{snapshotLoads:1});case"session_snapshot_loaded":{const i=r.snapshot.session.id;return!Yi(t,r.contextRevision,r.workspaceId)||!np(t,i,r.requestId)?t:ep(t,r.snapshot)?Pn(t,i,{status:"refreshing",requestId:r.requestId??null,dirty:!0}):t.activeSessionId!==i?r.requestId===void 0?t:tp(Qf(t,r.snapshot),i):tp(Nc(t,r.snapshot,r.advanceEventCursor===!0),i)}case"composer_loaded":return r.composer.sessionId!==t.activeSessionId||r.composer.workspaceId!==t.workspaceId||r.composer.contextRevision!==t.contextRevision||r.requestControlRevision!==void 0&&t.composer&&t.composer.controlRevision!==r.requestControlRevision&&t.composer.controlRevision!==r.composer.controlRevision?t:qp(t,r.composer);case"model_catalog_loaded":return{...t,modelCatalog:r.catalog};case"durable_session_metadata_loaded":return t.contextRevision!==r.contextRevision||t.workspaceId!==r.workspaceId||ep(t,r.snapshot)?t:t.activeSessionId!==r.snapshot.session.id?Qf(t,r.snapshot):r.snapshot.runtime.active!==!0?t:Hx(t,r.snapshot);case"older_transcript_loaded":{const i=r.snapshot.session.id,a=t.activeSessionId===i,d=a?t.sessionSnapshot:t.sessionProjectionById[i],f=a?t:t.sessionViewsById[i]?.view;if(!d||!f)return t;if(d.threadId!==r.snapshot.threadId||d.threadCursor!==r.snapshot.threadCursor||d.projectionDigest!==r.snapshot.projectionDigest){const b=t.sessionSync[i];return b?Pn(t,i,{...b,dirty:!0}):t}const p=new Set(f.transcript.map(b=>b.id)),g=Up(r.snapshot).filter(b=>!p.has(b.id)),x=[...g,...f.transcript].sort((b,j)=>b.order-j.order).slice(-pl),k={...d,transcript:{items:d.transcript.items,nextCursor:r.snapshot.transcript.nextCursor}};return a?{...t,transcript:x,sessionSnapshot:k,announcement:`已加载 ${g.length} 条更早记录`}:Fc(t,k,{...f,transcript:x,sessionSnapshot:k})}case"sessions_loaded":return{...t,sessions:r.append?or(t.sessions,r.sessions,i=>i.id):r.sessions,sessionNextCursor:r.nextCursor,workspaceSessions:t.workspaceId?{...t.workspaceSessions,[t.workspaceId]:{status:"ready",items:r.append?or(t.sessions,r.sessions,i=>i.id):r.sessions,nextCursor:r.nextCursor}}:t.workspaceSessions};case"workspaces_loaded":return{...t,workspaceId:r.value.activeId||t.workspaceId,workspace:r.value.activePath||t.workspace,workspaces:r.append?or(t.workspaces,r.value.workspaces,i=>i.id):r.value.workspaces,workspaceNextCursor:r.value.nextCursor};case"workspace_sessions_loading":return{...t,workspaceSessions:{...t.workspaceSessions,[r.workspaceId]:{status:"loading",items:t.workspaceSessions[r.workspaceId]?.items??[],nextCursor:t.workspaceSessions[r.workspaceId]?.nextCursor??null}}};case"workspace_sessions_loaded":{const i=t.workspaceSessions[r.workspaceId],a=r.append?or(i?.items??[],r.sessions,d=>d.id):r.sessions;return{...t,sessions:r.workspaceId===t.workspaceId?a:t.sessions,sessionNextCursor:r.workspaceId===t.workspaceId?r.nextCursor:t.sessionNextCursor,workspaceSessions:{...t.workspaceSessions,[r.workspaceId]:{status:"ready",items:a,nextCursor:r.nextCursor}}}}case"workspace_sessions_failed":return{...t,workspaceSessions:{...t.workspaceSessions,[r.workspaceId]:{status:"error",items:t.workspaceSessions[r.workspaceId]?.items??[],nextCursor:t.workspaceSessions[r.workspaceId]?.nextCursor??null,error:r.detail}}};case"session_updated":return Xf(t,a=>Vx(a,r.session));case"session_archived":{const i=Yf(t,r.session.id),a=t.archivedSessions.items.some(d=>d.id===r.session.id);return{...i,archivedSessions:a?i.archivedSessions:{...i.archivedSessions,status:"ready",items:[r.session,...i.archivedSessions.items]}}}case"session_restored":{const i=Xf(t,a=>[r.session,...a.filter(d=>d.id!==r.session.id)]);return{...i,archivedSessions:{...i.archivedSessions,items:i.archivedSessions.items.filter(a=>a.id!==r.session.id)}}}case"session_deleted":{const i={...t.sessionRuntimeById};return delete i[r.sessionId],{...Yf(t,r.sessionId),sessionRuntimeById:i,archivedSessions:{...t.archivedSessions,items:t.archivedSessions.items.filter(a=>a.id!==r.sessionId)}}}case"archived_sessions_loading":return r.workspaceId!==t.workspaceId?t:{...t,archivedSessions:{status:"loading",items:t.archivedSessions.ownerWorkspaceId===r.workspaceId?t.archivedSessions.items:[],nextCursor:t.archivedSessions.nextCursor,ownerWorkspaceId:r.workspaceId}};case"archived_sessions_loaded":{if(r.workspaceId!==t.workspaceId)return t;const i=r.append?or(t.archivedSessions.items,r.sessions,a=>a.id):r.sessions;return{...t,archivedSessions:{status:"ready",items:i,nextCursor:r.nextCursor,ownerWorkspaceId:r.workspaceId}}}case"archived_sessions_failed":return r.workspaceId!==t.workspaceId?t:{...t,archivedSessions:{...t.archivedSessions,status:"error",ownerWorkspaceId:r.workspaceId,error:r.detail}};case"workspace_project_summary_loaded":return{...t,workspaceProjectSummaries:{...t.workspaceProjectSummaries,[r.summary.workspaceId]:r.summary}};case"settings_loaded":return{...t,settings:r.settings};case"settings_mirror_changed":return{...t,settings:r.snapshot.document??r.snapshot.lastGood,settingsMirror:r.snapshot};case"diagnostics_loaded":return{...t,diagnostics:r.diagnostics};case"capabilities_loaded":return{...t,skills:r.append?or(t.skills,r.skills,i=>i.id):r.skills,skillNextCursor:r.skillNextCursor,mcpServers:r.append?or(t.mcpServers,r.mcpServers,i=>i.id):r.mcpServers,mcpNextCursor:r.mcpNextCursor};case"tool_details_loaded":return{...t,toolDetails:r.append?or(t.toolDetails,r.details,i=>`${i.sequence}:${i.callId}`):r.details,toolDetailNextCursor:r.nextCursor};case"pending_action":return{...t,pendingAction:r.label};case"navigation_target":return{...t,navigationTarget:r.target,sessionCreationSelected:!1};case"pending_session_action":{if(!Yi(t,r.contextRevision,r.workspaceId))return t;const i={...t.pendingSessionActions[r.sessionId]};r.label===null?delete i[r.operationId]:i[r.operationId]=r.label;const a={...t.pendingSessionActions};return Object.keys(i).length?a[r.sessionId]=i:delete a[r.sessionId],{...t,pendingSessionActions:a}}case"session_creation_pending":return Yi(t,r.contextRevision,r.workspaceId)?{...t,sessionCreationPending:r.pending,sessionCreationSelected:r.pending}:t;case"notice":return{...t,notice:r.notice};case"approval_resolved":return t.permission?.id!==r.requestId?t:{...t,permission:null,announcement:r.approved?"工具权限已授予":"工具请求已拒绝"};case"snapshot_failed":{if(!Yi(t,r.contextRevision,r.workspaceId))return t;if(!r.sessionId)return t.connection==="replay-required"?t:{...t,notice:{id:r.requestId??t.lastCursor,tone:"warning",title:"会话状态尚未同步",detail:r.detail},announcement:"会话状态尚未同步"};if(!np(t,r.sessionId,r.requestId)||r.sessionId!==t.activeSessionId&&r.requestId===void 0)return t;const i=Qi(Pn(t,r.sessionId,{status:"failed",requestId:r.requestId??t.sessionSync[r.sessionId]?.requestId??null,error:r.detail}),{snapshotFailures:1});return r.sessionId!==t.activeSessionId||t.connection==="replay-required"?i:{...i,statusMessage:t.sessionSnapshot?.session.id===r.sessionId?"会话刷新失败,当前显示最近状态":"会话快照加载失败",notice:{id:r.requestId??t.lastCursor,tone:"warning",title:"会话快照尚未同步",detail:r.detail,domain:"session-snapshot",sessionId:r.sessionId},announcement:"当前会话快照尚未同步,写操作已暂停"}}case"reset_session_view":{t=Ec(t),t={...t,sessionCreationSelected:!1,foregroundRestore:null};const i=!!r.activeSessionId&&r.activeSessionId!==t.activeSessionId,a=!!(r.activeSessionId&&t.sessionProjectionById[r.activeSessionId]),d={...i?{sessionSwitches:1}:{},...a?{snapshotCacheHits:1}:{}};if(r.activeSessionId&&t.sessionProjectionById[r.activeSessionId]){const g=r.activeSessionId,x=hc(t,g),k=t.sessionProjectionById[g],b={...k,session:t.sessions.find(E=>E.id===g)??k.session},j=Nc({...t,activeSessionId:g},b,!1),N=t.sessionViewsById[g]?{...j,...t.sessionViewsById[g].view,sessionSnapshot:b}:j;return Qi({...Pn(N,g,{status:x?"ready":"refreshing",requestId:t.sessionSync[g]?.requestId??null,dirty:!x}),notice:t.notice?.domain==="session-snapshot"&&t.notice.sessionId!==g?null:t.notice,statusMessage:x?N.statusMessage:"已显示最近会话状态,正在同步…",announcement:x?"已切换会话":"已切换到缓存会话,正在同步最新状态"},d)}const f={...jo(t),activeSessionId:r.activeSessionId,notice:t.notice?.domain==="session-snapshot"&&t.notice.sessionId!==r.activeSessionId?null:t.notice,statusMessage:r.activeSessionId?"正在加载会话快照…":"请选择会话",announcement:r.activeSessionId?"正在加载会话快照":"会话已清除"},p=r.activeSessionId?Pn(f,r.activeSessionId,{status:"loading",requestId:t.sessionSync[r.activeSessionId]?.requestId??null}):f;return Qi(p,d)}case"recovering":return{...t,connection:"connecting",replayReason:void 0,notice:null,announcement:"正在重新加载会话状态"}}}function Bx(t,r){if(r.type==="replay_reset")return{...t,sessionSync:Object.fromEntries(Object.entries(t.sessionSync).map(([a,d])=>{const f={...d};return delete f.lastEventCursor,delete f.snapshotEventCursor,[a,{...f,dirty:!0}]})),lastCursor:r.cursor,lastEventId:r.eventId,connection:"replay-required",replayReason:r.payload.reason,notice:{id:r.cursor,tone:"warning",title:"需要重新载入会话",detail:r.payload.reason,domain:"transport"},announcement:"事件历史已超出保留窗口,需要重新载入会话"};if(t.connection==="replay-required"||r.cursor<=t.lastCursor)return t;let i={...t,lastCursor:r.cursor,lastEventId:r.eventId};if(r.sessionId){const a=t.sessionSync[r.sessionId];if(a&&(i=Pn(i,r.sessionId,{...a,lastEventCursor:r.cursor,dirty:a.dirty||r.sessionId!==t.activeSessionId&&r.cursor>(a.snapshotEventCursor??0)})),a?.snapshotEventCursor!==void 0&&r.cursor<=a.snapshotEventCursor)return i}if(r.type==="settings_invalidated")return{...i,announcement:r.payload.revision===t.settings?.revision?"Host 设置已同步":r.payload.state==="invalid"?"设置文档无效,仍保留上一次可用值":"Host 设置已更新,正在刷新"};if(r.type==="workspace_resource_invalidated"){const d={...t.workspaceResourceEpochs[r.payload.workspaceId]??{files:0,git:0,review:0}};for(const f of r.payload.resources)d[f]=r.cursor;return{...i,workspaceResourceEpochs:{...t.workspaceResourceEpochs,[r.payload.workspaceId]:d},announcement:"项目资源已变化,可用面板正在刷新"}}if(r.type==="workbench_state"){if(t.bootstrapEventCursor!==null&&r.cursor<=t.bootstrapEventCursor)return i;const a=t.bootstrapEventCursor!==null,d=!a&&t.bootstrap!==null&&(r.payload.workspaceId===t.bootstrap.workspaceId||r.payload.workspace===t.bootstrap.workspace),f=!d&&(t.workspaceId!==""&&t.workspaceId!==r.payload.workspaceId||t.workspace!==""&&t.workspace!==r.payload.workspace),p=!a&&d&&!f?t.foregroundRestore:null,g=f?jo(Ec(i)):i,x=!a&&(d||f)?t.contextRevision:r.payload.contextRevision;return{...g,contextRevision:x,workspaceId:r.payload.workspaceId,sessionSync:i.contextRevision===x?g.sessionSync:Object.fromEntries(Object.entries(g.sessionSync).map(([k,b])=>[k,{...b,dirty:!0}])),pendingSessionActions:i.contextRevision===x?g.pendingSessionActions:{},sessionCreationPending:i.contextRevision===x?g.sessionCreationPending:!1,sessionCreationSelected:i.contextRevision===x?g.sessionCreationSelected:!1,workspace:!a&&d?t.workspace:r.payload.workspace,activeSessionId:f?null:p??t.activeSessionId,foregroundRestore:f?t.activeSessionId:null}}if(r.type==="composer_state_changed"){const a=r.payload.state;return a.sessionId!==i.activeSessionId||a.workspaceId!==i.workspaceId||a.contextRevision!==i.contextRevision?i:qp(i,a)}if(r.type==="session_runtime_changed"){const a=r.payload.runtime,d=i.sessionProjectionById[a.sessionId],f=jl(i.sessionRuntimeById,a),p=d?Io(i.sessionProjectionById,{...d,sessionRuntime:a}):i.sessionProjectionById;return a.sessionId!==i.activeSessionId?{...i,sessionProjectionById:p,sessionRuntimeById:f}:{...i,sessionProjectionById:p,sessionRuntimeById:f,processing:["running","waiting_approval","stopping"].includes(a.phase),sessionSnapshot:i.sessionSnapshot?.session.id===a.sessionId?{...i.sessionSnapshot,sessionRuntime:a}:i.sessionSnapshot,composer:i.composer?.sessionId===a.sessionId?{...i.composer,sessionRuntime:a}:i.composer}}if(r.type==="workspace_mutation_changed"){if(r.sessionId!==i.activeSessionId)return i;const a=i.tools.find(f=>f.callId===r.payload.state.callId);if(!a)return i;const d={phase:r.payload.state.phase,...r.payload.state.queuePosition===void 0?{}:{queuePosition:r.payload.state.queuePosition}};return{...i,tools:_c(i.tools,{...a,workspaceMutation:d}),announcement:d.phase==="queued"?`工具 ${a.name} 正在等待工作树写入`:d.phase==="running"?`工具 ${a.name} 已获得工作树写入权限`:i.announcement}}return r.sessionId!==null&&r.sessionId!==i.activeSessionId?i:r.type==="thread_event"?qx(i,r.payload.value):Ux(i,r.payload.value,r.eventId,r.cursor,r.timestamp)}function qx(t,r){const i=r.payload;switch(i.type){case"thread.started":case"thread.resumed":return{...t,statusMessage:"会话线程已就绪"};case"thread.forked":return{...t,statusMessage:"分支线程已就绪"};case"turn.started":return{...t,processing:!0,statusMessage:i.data.mode==="plan"?"正在制定计划…":"Orion 正在处理…",announcement:"新回合已开始"};case"turn.queued":return{...t,statusMessage:"消息已进入 Runtime 队列"};case"turn.queue_expired":return{...t,notice:{id:t.lastCursor,tone:"warning",title:"一条排队消息已过期",detail:`队列项 ${i.data.queueId} 未在时限内开始。`}};case"turn.steered":return{...t,statusMessage:"已将补充指令送入当前回合"};case"turn.interrupt_requested":return{...t,statusMessage:"正在中断当前回合…"};case"turn.committed":return{...t,statusMessage:"回合结果已持久化"};case"plan.review_requested":return{...t,processing:!1,statusMessage:"计划已保存,等待审核",announcement:"计划已准备好,请审核后再执行"};case"plan.review_resolved":return{...t,statusMessage:i.data.action==="approve"?"计划已批准,正在进入 BUILD":i.data.action==="continue"?"已提交继续规划反馈":"计划已取消"};case"turn.completed":return{...t,processing:!1,permission:null,statusMessage:"任务已完成",announcement:"当前回合已完成"};case"turn.failed":return{...t,processing:!1,permission:null,statusMessage:"当前回合失败",notice:{id:t.lastCursor,tone:"error",title:"当前回合失败",detail:i.data.error},announcement:"当前回合失败"};case"turn.interrupted":return{...t,processing:!1,permission:null,statusMessage:"当前回合已中断",announcement:"当前回合已中断"};case"compact.started":return{...t,statusMessage:"正在压缩上下文…"};case"compact.completed":return{...t,statusMessage:"上下文压缩完成"};case"compact.failed":return{...t,statusMessage:"上下文压缩失败",notice:{id:t.lastCursor,tone:"warning",title:"上下文压缩失败",detail:i.data.error}};case"approval.requested":return{...t,statusMessage:`等待确认:${i.data.toolName}`};case"item.started":case"item.delta":case"item.completed":case"item.failed":case"item.interrupted":case"item.indeterminate":case"step.snapshot":case"capability.receipt":case"tool.receipt":return t}}function Ux(t,r,i,a,d){switch(r.type){case"transcript_append":{const f={...r.entry,id:`web-entry-${a}`,eventId:i,order:a,receivedAt:d};return{...t,transcript:ol(t.transcript,f,pl)}}case"transcript_update":if(r.contentDelta!==void 0){const f=t.transcript.find(p=>p.id===r.id);if(!f||r.contentStart===void 0||(f.content??"").length!==r.contentStart){const p="流式回复基线已变化,需要重新载入会话。";return{...t,connection:"replay-required",replayReason:p,notice:{id:a,tone:"warning",title:"需要重新载入会话",detail:p},announcement:p}}}return{...t,transcript:t.transcript.map(f=>f.id===r.id?{...f,...r.patch,...r.contentDelta===void 0?{}:{content:`${f.content??""}${r.contentDelta}`}}:f)};case"transcript_finalize":return{...t,transcript:t.transcript.map(f=>f.id===r.id?{...f,...r.patch,live:!1}:f)};case"transcript_remove":return{...t,transcript:t.transcript.filter(f=>f.id!==r.id)};case"transcript_replace":{const f=Math.max(1,r.entries.length);return{...t,transcript:r.entries.slice(-pl).map((p,g)=>({...p,eventId:`${i}:${g}`,order:a-1+(g+1)/(f+1),receivedAt:d,live:!1}))}}case"transcript_clear":return{...jo(t),activeSessionId:t.activeSessionId,statusMessage:"新会话已就绪"};case"status_changed":return{...t,statusMessage:r.message};case"permission_requested":return{...t,permission:{...r.request,eventId:i},announcement:`需要确认工具权限:${r.request.name}`};case"tool_started":{const f={callId:r.event.callId,eventId:i,order:a,name:r.event.name,args:r.event.args,sequence:r.event.sequence,state:"running",startedAt:d};return{...t,tools:_c(t.tools,f),announcement:`工具 ${f.name} 已开始`}}case"tool_finished":{const f=t.tools.find(g=>g.callId===r.event.callId),p={callId:r.event.callId,eventId:f?.eventId??i,order:f?.order??a,name:r.event.name,args:r.event.args,sequence:r.event.sequence,state:r.event.skipped?"skipped":r.event.success?"success":"error",startedAt:f?.startedAt,finishedAt:d,duration:r.event.duration,summary:r.event.summary,error:r.event.error,outputBytes:r.event.outputBytes,artifactId:r.event.artifactRef?.id,authorization:r.event.authorization};return{...t,tools:_c(t.tools,p),announcement:`工具 ${p.name} ${p.state==="success"?"已完成":p.state==="skipped"?"已跳过":"失败"}`}}case"edit_preview_requested":{const f={eventId:i,order:a,receivedAt:d,request:r.request};return{...t,edits:ol(t.edits,f,Ax)}}case"session_restored":return{...t,activeSessionId:r.event.sessionId,statusMessage:`已恢复 ${r.event.restoredMessages} 条消息`,announcement:"会话恢复完成",notice:r.event.warnings&&r.event.warnings.length>0?{id:a,tone:"warning",title:"会话已恢复,但有注意事项",detail:r.event.warnings.join(" ")}:t.notice};case"loop_stats_updated":return{...t,loopStats:r.stats};case"trace_event_recorded":return{...t,traces:ol(t.traces,r.event,$x)};case"harness_diagnostics_updated":return{...t,diagnostics:{...t.diagnostics??{},harness:r.diagnostics}};case"subtask_event":{const f={...r.event,eventId:i,order:a,updatedAt:d},p=[...t.subtasks.filter(g=>g.taskId!==f.taskId),f].slice(-256);return{...t,subtasks:p}}case"research_event":return{...t,research:Gx(t.research,r.event,i,a,d)};case"goal_event":return Kx(t,r.event,d);case"effort_event":return{...t,effort:r.event};case"followup_queue_changed":return{...t,queue:r.snapshot};case"processing_changed":return{...t,processing:r.processing,permission:r.processing?t.permission:null,announcement:r.processing?"Orion 开始处理任务":"Orion 已完成当前处理"};case"agent_mode_changed":return{...t,mode:r.snapshot};case"clear_view":return{...t,transcript:[],tools:[],edits:[]};case"shutdown_requested":return{...t,connection:"closed",processing:!1,permission:null,statusMessage:r.reason??"Web Host 已关闭",announcement:"Orion Web Host 已关闭"};case"session_picker_requested":case"model_picker_requested":return t}}function Nc(t,r,i=!0){const a=Up(r),d=t.activeSessionId===r.session.id&&t.sessionSnapshot?.session.id===r.session.id?Wc(t):t.sessionViewsById[r.session.id]?.view,f=d?.sessionSnapshot,p=f&&f.threadId===r.threadId&&f.threadCursor===r.threadCursor&&f.projectionDigest===r.projectionDigest,g=a[0]?.order??-1/0,x=p?d.transcript.filter(L=>L.eventId.startsWith("snapshot:")&&L.order<g):[],b=(f?.threadId===r.threadId||f?.threadId===null&&r.threadId!==null&&!!r.activeTurnId)&&r.runtime.processing?d.transcript.filter(L=>L.live&&!L.eventId.startsWith("snapshot:")):[],j=[...x,...a,...b].slice(-pl);x.length&&f&&(r={...r,transcript:{...r.transcript,nextCursor:f.transcript.nextCursor}});const N=Kp(r.runtime.agentMode)?r.runtime.agentMode:t.mode.baseMode,E=r.pendingApprovals[0],z=Hp(r.goal);return{...jo(t),lastCursor:i?Math.max(t.lastCursor,r.eventCursor):t.lastCursor,activeSessionId:r.session.id,sessionProjectionById:Io(t.sessionProjectionById,r),sessionViewsById:Vp(t.sessionViewsById,r.session.id),sessionRuntimeById:jl(t.sessionRuntimeById,r.sessionRuntime),sessions:lr(t.sessions,r.session),workspaceSessions:t.workspaceId?{...t.workspaceSessions,[t.workspaceId]:{status:"ready",items:lr(t.workspaceSessions[t.workspaceId]?.items??t.sessions,r.session),nextCursor:t.workspaceSessions[t.workspaceId]?.nextCursor??t.sessionNextCursor}}:t.workspaceSessions,transcript:j,permission:E?{id:E.id,name:E.toolName,reason:E.reason,args:{...E.sanitizedArguments},eventId:`snapshot:${E.id}`}:null,processing:r.runtime.processing,statusMessage:r.runtime.status,mode:r.composer.mode??{baseMode:N,pendingBaseMode:null},queue:{items:r.composer.queue.items.map(L=>({...L})),limit:r.composer.queue.limit},goal:z,plan:r.plan??null,composer:r.composer,sessionSnapshot:r,diagnostics:{...t.diagnostics??{},activeSessionId:r.session.id,processing:r.runtime.processing,agentMode:N,permissionMode:r.runtime.permissionMode,contextUsage:r.runtime.contextUsage,tokenUsage:r.runtime.tokenUsage,plan:r.plan?.body??null,recoveryDiagnostics:r.recoveryDiagnostics},announcement:"会话快照已同步"}}function Qf(t,r){const i=t.workspaceId?{...t.workspaceSessions,[t.workspaceId]:{status:"ready",items:lr(t.workspaceSessions[t.workspaceId]?.items??t.sessions,r.session),nextCursor:t.workspaceSessions[t.workspaceId]?.nextCursor??t.sessionNextCursor}}:t.workspaceSessions,a={...t,sessionProjectionById:Io(t.sessionProjectionById,r),sessionViewsById:Vp(t.sessionViewsById,r.session.id),sessionRuntimeById:jl(t.sessionRuntimeById,r.sessionRuntime),sessions:lr(t.sessions,r.session),workspaceSessions:i};if(!t.sessionViewsById[r.session.id])return a;const d=Nc(t,r,!1);return Fc(a,r,Wc(d))}function qp(t,r){const i=t.sessionProjectionById[r.sessionId],a=i?Io(t.sessionProjectionById,{...i,sessionRuntime:r.sessionRuntime,composer:r}):t.sessionProjectionById;return{...t,composer:r,sessionSnapshot:t.sessionSnapshot?.session.id===r.sessionId?{...t.sessionSnapshot,sessionRuntime:r.sessionRuntime,composer:r}:t.sessionSnapshot,sessionProjectionById:a,sessionRuntimeById:jl(t.sessionRuntimeById,r.sessionRuntime),processing:r.processing,mode:r.mode,queue:{items:r.queue.items.map(d=>({...d})),limit:r.queue.limit},diagnostics:{...t.diagnostics??{},contextUsage:r.contextUsage,agentMode:r.mode.baseMode}}}function Hx(t,r){const i=lr(t.sessions,r.session),a=t.workspaceSessions[t.workspaceId],d=!t.composer||t.composer.controlRevision===r.composer.controlRevision?r.composer:t.composer;return{...t,sessions:i,workspaceSessions:{...t.workspaceSessions,[t.workspaceId]:{status:"ready",items:lr(a?.items??t.sessions,r.session),nextCursor:a?.nextCursor??t.sessionNextCursor}},goal:Hp(r.goal),plan:r.plan,composer:d,sessionSnapshot:t.sessionSnapshot?.session.id===r.session.id?{...t.sessionSnapshot,session:r.session,goal:r.goal,plan:r.plan,composer:d,recoveryDiagnostics:r.recoveryDiagnostics}:t.sessionSnapshot,diagnostics:{...t.diagnostics??{},plan:r.plan?.body??null,recoveryDiagnostics:r.recoveryDiagnostics}}}function Up(t){return t.transcript.items.map((r,i)=>{const a=Number.parseInt(r.id.split(":").at(-1)??"",10);return{id:r.id,role:r.role,content:r.content,eventId:`snapshot:${r.id}`,order:-1e9+(Number.isSafeInteger(a)?a:i),receivedAt:Yx(r.timestamp),live:!1}})}function Hp(t){if(!t||!ho(t.state))return null;const r=t.state;if(typeof r.goalId!="string"||typeof r.objective!="string"||typeof r.status!="string")return null;const i=ho(r.budget)?r.budget:null,a=ho(r.lastStopDecision)?r.lastStopDecision:null,d=a&&ho(a.reason)?Xi(a.reason.message):Xi(r.stopReason),f=ho(r.criteria)?{passed:rn(r.criteria.passed),total:rn(r.criteria.total),failed:rn(r.criteria.failed),stale:rn(r.criteria.stale)}:void 0;return{goalId:r.goalId,revision:rn(r.revision,rn(r.generation,1)),objective:r.objective,status:r.status,tokenBudget:pc(r.tokenBudget)??pc(i?.maxTokens),tokensUsed:rn(r.tokensUsed),timeUsedMs:rn(r.timeUsedMs,rn(r.elapsedMs)),continuationCount:rn(r.continuationCount),updatedAt:rn(r.updatedAt),stopReason:d,criteria:f,planRevision:pc(r.planRevision),planPhase:Xi(r.planPhase),nextAction:Xi(r.nextAction),auditRemaining:Array.isArray(r.auditRemaining)?r.auditRemaining.filter(p=>typeof p=="string"):void 0}}function or(t,r,i){const a=new Map(t.map(d=>[i(d),d]));for(const d of r)a.set(i(d),d);return[...a.values()]}function Vx(t,r){const i=t.findIndex(d=>d.id===r.id);if(i<0)return[r,...t];const a=[...t];return a[i]=r,a}function Yf(t,r){const i=t.workspaceId,a=i?t.workspaceSessions[i]:void 0,d=(a?.items??t.sessions).filter(f=>f.id!==r);return{...t,sessions:i?d:t.sessions,workspaceSessions:i?{...t.workspaceSessions,[i]:{status:(a?.status??"ready")==="error"?"error":"ready",items:d,nextCursor:a?.nextCursor??null,error:a?.error}}:t.workspaceSessions}}function Xf(t,r){const i=t.workspaceId,a=i?t.workspaceSessions[i]:void 0,d=a?.items??t.sessions,f=r(d),p=a?.status==="error"?"error":a?.status==="loading"?"loading":"ready";return{...t,sessions:i?f:t.sessions,workspaceSessions:i?{...t.workspaceSessions,[i]:{status:p,items:f,nextCursor:a?.nextCursor??null,error:a?.error}}:t.workspaceSessions}}function Kx(t,r,i){switch(r.type){case"goal_updated":case"goal_restored":return{...t,goal:r.goal,goalActivity:hs(t.goalActivity,r.type,"Goal 状态已更新",i)};case"goal_completed":return{...t,goal:r.goal,goalActivity:hs(t.goalActivity,r.type,r.audit.verificationSummary,i),announcement:"Goal 已完成并通过运行时审计"};case"goal_cleared":return{...t,goal:null,goalEvidence:[],goalActivity:hs(t.goalActivity,r.type,r.reason,i)};case"goal_plan_updated":return{...t,goal:t.goal?{...t.goal,planRevision:r.planRevision,planPhase:r.phase,nextAction:r.nextAction}:t.goal,goalActivity:hs(t.goalActivity,r.type,r.nextAction??`Plan phase: ${r.phase}`,i)};case"goal_evidence_recorded":{const a=r.evidence;return{...t,goalEvidence:[...t.goalEvidence.filter(d=>d.id!==a.id),a].slice(-256)}}case"goal_continuation":return{...t,goalActivity:hs(t.goalActivity,`${r.type}:${r.phase}`,r.reason,i)};case"goal_audit_failed":return{...t,goalActivity:hs(t.goalActivity,r.type,r.summary,i),notice:{id:Date.parse(i),tone:"warning",title:"Goal 审计尚未通过",detail:r.summary}}}}function Gx(t,r,i,a,d){const p=t.find(x=>x.packetId===r.packetId)??{packetId:r.packetId,eventId:i,order:a,updatedAt:d,stage:"running",sources:[],conflicts:[]};let g;switch(r.type){case"research_started":g={...p,eventId:i,order:a,updatedAt:d,objective:r.objective,mode:r.mode,stage:"running"};break;case"research_source":{const x={id:r.sourceId,provider:r.provider,status:r.status,title:r.title,location:r.displayUrl??r.canonicalUrl??r.projectPath,failureReason:r.failureReason};g={...p,eventId:i,order:a,updatedAt:d,sources:[...p.sources.filter(k=>k.id!==x.id),x].slice(-64)};break}case"research_conflict":g={...p,eventId:i,order:a,updatedAt:d,conflicts:[...p.conflicts.filter(x=>x!==r.claimId),r.claimId].slice(-64)};break;case"research_completed":g={...p,eventId:i,order:a,updatedAt:d,stage:r.stage,auditStatus:r.auditStatus,conclusion:r.conclusion,summary:r.summary};break}return[...t.filter(x=>x.packetId!==r.packetId),g].slice(-128)}function _c(t,r){return[...t.filter(i=>i.callId!==r.callId),r].sort((i,a)=>i.order-a.order).slice(-1e3)}function Io(t,r){const i=Object.entries(t).filter(([d])=>d!==r.session.id);i.push([r.session.id,r]);let a=i.reduce((d,[,f])=>d+Jf(f),0);for(;i.length>1&&(i.length>zx||a>kl);){const d=i.shift();d&&(a-=Jf(d[1]))}return Object.freeze(Object.fromEntries(i))}function jl(t,r){const i=Object.entries(t).filter(([a])=>a!==r.sessionId);return i.push([r.sessionId,r]),Object.freeze(Object.fromEntries(i.slice(-64)))}function Jf(t){const r=Zf.get(t);if(r!==void 0)return r;try{const i=JSON.stringify(t).length*2;return Zf.set(t,i),i}catch{return kl}}const Zf=new WeakMap;function Vp(t,r){if(!t[r])return t;const i={...t};return delete i[r],i}function Ec(t){const r=t.sessionSnapshot;return!r||r.session.id!==t.activeSessionId?t:Fc(t,r,Wc(t))}function Wc(t){return{transcript:t.transcript,tools:t.tools,edits:t.edits,subtasks:t.subtasks,research:t.research,permission:t.permission,processing:t.processing,statusMessage:t.statusMessage,mode:t.mode,effort:t.effort,queue:t.queue,goal:t.goal,goalEvidence:t.goalEvidence,goalActivity:t.goalActivity,sessionSnapshot:t.sessionSnapshot,composer:t.composer,plan:t.plan,loopStats:t.loopStats,traces:t.traces}}const hl=new WeakMap;function fc(t){if(t==null)return 0;if(typeof t=="string")return t.length*2;if(typeof t!="object")return 16;const r=hl.get(t);if(r!==void 0)return r;let i;try{i=JSON.stringify(t).length*2}catch{i=kl}return hl.set(t,i),i}function Fc(t,r,i){const a=Io(t.sessionProjectionById,r),d=Object.entries(t.sessionViewsById).filter(([b])=>b!==r.session.id&&a[b]);let f=hl.get(i.transcript);f===void 0&&(f=i.transcript.reduce((b,j)=>b+j.content.length*2+512+fc(j.toolActivity)+fc(j.command),0),hl.set(i.transcript,f));const p=Object.entries(i).reduce((b,[j,N])=>b+(j==="transcript"?f:fc(N)),512);d.push([r.session.id,{view:i,estimatedBytes:p}]);let g=d.reduce((b,[,j])=>b+j.estimatedBytes,0);const x=[];for(;d.length>0&&g>kl;){const b=d.shift();g-=b[1].estimatedBytes,x.push(b[0])}let k={...t,sessionProjectionById:a,sessionViewsById:Object.fromEntries(d)};for(const b of x){const j=k.sessionSync[b];j&&(k=Pn(k,b,{...j,dirty:!0}))}return k}function jo(t){return{...t,transcript:[],tools:[],edits:[],subtasks:[],research:[],permission:null,processing:!1,statusMessage:"",queue:{items:[],limit:16},goal:null,goalEvidence:[],goalActivity:[],sessionSnapshot:null,composer:null,modelCatalog:null,plan:null,loopStats:null,traces:[]}}function Pn(t,r,i){const a={...t.sessionSync};delete a[r];const d=Math.max(t.sessionSync[r]?.lastEventCursor??0,i.lastEventCursor??0),f=Math.max(t.sessionSync[r]?.snapshotEventCursor??0,i.snapshotEventCursor??0),p={...i};delete p.lastEventCursor,delete p.snapshotEventCursor,d>0&&(p.lastEventCursor=d),f>0&&(p.snapshotEventCursor=f),a[r]=p;const g=Object.keys(a).length-Wx;return g>0&&Object.keys(a).filter(x=>x!==t.activeSessionId&&x!==r).slice(0,g).forEach(x=>delete a[x]),{...t,sessionSync:a}}function Qi(t,r){const i={sessionSwitches:t.clientTelemetry.sessionSwitches+(r.sessionSwitches??0),snapshotCacheHits:t.clientTelemetry.snapshotCacheHits+(r.snapshotCacheHits??0),snapshotLoads:t.clientTelemetry.snapshotLoads+(r.snapshotLoads??0),snapshotFailures:t.clientTelemetry.snapshotFailures+(r.snapshotFailures??0)};return{...t,clientTelemetry:i}}function ep(t,r){return(t.sessionSync[r.session.id]?.lastEventCursor??0)>r.eventCursor}function tp(t,r){const i=Pn(t,r,{status:"ready",requestId:t.sessionSync[r]?.requestId??null,snapshotEventCursor:t.sessionProjectionById[r]?.eventCursor});return i.notice?.domain!=="session-snapshot"||i.notice.sessionId!==r?i:{...i,notice:null}}function np(t,r,i){return i===void 0||t.sessionSync[r]?.requestId===i}function Yi(t,r,i){return(r===void 0||t.contextRevision===r)&&(i===void 0||t.workspaceId===i)}function hs(t,r,i,a){return ol(t,{type:r,message:i,timestamp:a},Dx)}function ol(t,r,i){const a=[...t,r];return a.length<=i?a:a.slice(a.length-i)}function Qx(t,r){const i=t.agentMode;return Kp(i)?{baseMode:i,pendingBaseMode:null}:r}function Kp(t){return t==="interactive"||t==="plan"||t==="auto"}function Yx(t){const r=new Date(t);return Number.isFinite(r.getTime())?r.toISOString():new Date(0).toISOString()}function ho(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}function rn(t,r=0){return typeof t=="number"&&Number.isFinite(t)?t:r}function pc(t){return typeof t=="number"&&Number.isFinite(t)?t:void 0}function Xi(t){return typeof t=="string"&&t?t:void 0}function Xx(){return typeof navigator>"u"||navigator.onLine}function Jx(t,r){return t==="live"?"本地 Web Host 事件流已连接":t==="offline"?"浏览器已离线,本地 Web Host 将在网络恢复后重连":t==="reconnecting"?`正在重新连接本地 Web Host,第 ${Math.max(1,r)} 次尝试`:t==="connecting"?"正在连接本地 Web Host":t==="replay-required"?"本地 Web Host 事件历史需要重新载入":"本地 Web Host 已关闭"}const rp="orion.web.theme",sp="orion.web.motion";function Zx(t){const r=ip(rp),i=ip(sp),a=ew(r),d=tw(i),f=[],p=[];return r!==null&&p.push(rp),i!==null&&p.push(sp),t.sections.appearance.theme.explicitValue===void 0&&a&&f.push({op:"set",key:"appearance.theme",value:a}),t.sections.appearance.motion.explicitValue===void 0&&d&&f.push({op:"set",key:"appearance.motion",value:d}),{operations:f,keysToClear:p}}function op(t){if(!(typeof window>"u"))for(const r of t)try{window.localStorage.removeItem(r)}catch{}}function ip(t){if(typeof window>"u")return null;try{return window.localStorage.getItem(t)}catch{return null}}function ew(t){return t==="system"||t==="light"||t==="dark"?t:null}function tw(t){return t==="system"||t==="reduced"?t:null}class nw{constructor(r){Vt(this,"read");Vt(this,"snapshot",Object.freeze({status:"idle",document:null,lastGood:null,stale:!1,error:null,generation:0}));Vt(this,"listeners",new Set);Vt(this,"inFlight",null);Vt(this,"rerun",!1);Vt(this,"generation",0);Vt(this,"disposed",!1);this.read=r}getSnapshot(){return this.snapshot}subscribe(r){return this.listeners.add(r),()=>this.listeners.delete(r)}ensure(){return this.snapshot.document||this.inFlight?this.inFlight??Promise.resolve(this.snapshot):this.refresh()}refresh(){if(this.disposed)return Promise.resolve(this.snapshot);if(this.inFlight)return this.rerun=!0,this.inFlight;const r=Promise.resolve().then(()=>this.run());return this.inFlight=r,r}accept(r){return this.disposed?this.snapshot:(this.generation+=1,this.inFlight&&(this.rerun=!0),this.publishDocument(r))}invalidate(r,i){return this.snapshot.document?.revision===r&&(i==="ready"?this.snapshot.document.state==="ready":this.snapshot.document.state==="invalid")?Promise.resolve(this.snapshot):(this.setSnapshot({...this.snapshot,stale:!0}),this.refresh())}reset(){this.disposed||(this.generation+=1,this.rerun=!1,this.setSnapshot({status:"idle",document:null,lastGood:null,stale:!1,error:null,generation:this.generation}))}dispose(){this.disposed=!0,this.generation+=1,this.listeners.clear()}async run(){try{do{this.rerun=!1;const r=++this.generation;this.setSnapshot({...this.snapshot,status:this.snapshot.document?"ready":"loading",error:null,generation:r});try{const i=await this.read();if(this.disposed)return this.snapshot;if(r!==this.generation)continue;this.publishDocument(i)}catch(i){if(this.disposed)return this.snapshot;if(r!==this.generation)continue;this.setSnapshot({...this.snapshot,status:this.snapshot.document?"ready":"unavailable",stale:!0,error:i instanceof Error?i.message:"设置读取失败。",generation:r})}}while(this.rerun&&!this.disposed);return this.snapshot}finally{if(this.inFlight=null,this.rerun&&!this.disposed)return this.refresh()}}publishDocument(r){const i=r.state==="ready"?r:this.snapshot.lastGood;return this.setSnapshot({status:"ready",document:r,lastGood:i,stale:!1,error:null,generation:this.generation}),this.snapshot}setSnapshot(r){this.snapshot=Object.freeze(r);for(const i of this.listeners)i()}}function rw(t,r,i){if(t)return t;const a=new Set(r.map(d=>d.id));return i&&a.has(i)?i:r[0]?.id??null}const sw=7,ow=2;function iw(){const t=m.useMemo(()=>new Pg,[]),r=m.useMemo(()=>new nw(()=>t.settings()),[t]),[i,a]=m.useReducer(Fx,cp),[d,f]=m.useState(0),p=m.useRef(i),g=m.useRef(null),x=m.useRef(0),k=m.useRef(0),b=m.useRef(0),j=m.useRef(null),N=m.useRef(null),E=m.useRef(null),z=m.useRef(0),L=m.useRef(new Map),G=m.useRef(0),ne=m.useRef(0),U=m.useRef(new Map),se=m.useRef(()=>{}),ie=m.useRef(!1);p.current=i,m.useEffect(()=>r.subscribe(()=>{a({type:"settings_mirror_changed",snapshot:r.getSnapshot()})}),[r]);const Y=m.useCallback((y,I=xe(p.current),M={})=>{const X=`${I.workspaceId}:${I.expectedContextRevision}:${y}`,oe=U.current.get(X);if(oe&&!M.force)return oe.promise;const Ee=++ne.current;a({type:"session_snapshot_started",sessionId:y,requestId:Ee,cached:!!p.current.sessionProjectionById[y],contextRevision:I.expectedContextRevision,workspaceId:I.workspaceId});const ze=t.sessionSnapshot(y,I).then(Ae=>(aw(Ae,y,I),a({type:"session_snapshot_loaded",snapshot:Ae,requestId:Ee,contextRevision:I.expectedContextRevision,workspaceId:I.workspaceId,advanceEventCursor:!1}),Ae)).catch(Ae=>{const Dt=go(Ae);throw a({type:"snapshot_failed",sessionId:y,detail:Dt,requestId:Ee,contextRevision:I.expectedContextRevision,workspaceId:I.workspaceId}),new Oe(Dt,Ae instanceof Oe?Ae.status:503,"session_snapshot_sync_failed",Ae instanceof Oe?Ae.type:void 0)}).finally(()=>{U.current.get(X)?.requestId===Ee&&U.current.delete(X)});return U.current.set(X,{requestId:Ee,promise:ze}),ze},[t]),A=i.activeSessionId??"",F=A?i.sessionSync[A]:void 0,ge=i.sessionSnapshot?.session.id===A,Ie=i.connection==="live"&&!!A&&(F?.dirty===!0&&F.status==="refreshing"||!ge),we=F?.requestId??null,te=i.contextRevision;m.useEffect(()=>{if(!Ie)return;const y=p.current.activeSessionId;if(!y)return;const I=setTimeout(()=>{const M=p.current;if(M.connection!=="live"||M.activeSessionId!==y)return;const X=M.sessionSync[y];!(M.sessionSnapshot?.session.id===y)&&X?.dirty!==!0||Y(y,{workspaceId:M.workspaceId,expectedContextRevision:M.contextRevision},{force:!0}).catch(()=>{})},250);return()=>clearTimeout(I)},[Ie,A,we,te,Y]);const ye=m.useCallback(async y=>{const I=++z.current;try{const M=await t.bootstrap(),X={expectedContextRevision:M.contextRevision,workspaceId:M.workspaceId};r.reset(),r.accept(M.settings);const Ee=y!==void 0&&y.activeId!==""&&y.activeId===M.workspaceId?y:void 0,ze=Ee?Promise.resolve(Ee):t.listWorkspaces(X),[Ae,Dt,Fr]=await Promise.all([ze,t.listSessions(X),r.refresh()]),Le=cw(M.workspaceId,Dt.sessions,M.activeSessionId);Ji(M.workspaceId,Le);const Fo=Object.freeze({...M,activeSessionId:Le}),Bo=await lw(t,r,Fr.document??Fr.lastGood??M.settings,X);if(I!==z.current)return;a({type:"baseline_loaded",bootstrap:Fo,workspaces:Ae,sessions:Dt.sessions,sessionNextCursor:Dt.nextCursor,diagnostics:{},settings:Bo,skills:[],skillNextCursor:null,mcpServers:[],mcpNextCursor:null,toolDetails:[],toolDetailNextCursor:null}),Le&&Y(Le,X).catch(()=>{}),se.current();const Ps=Dt.sessions.map(zt=>zt.id).filter(zt=>zt!==Le).slice(0,sw);se.current=mw(()=>{I===z.current&&gw(Ps,ow,async zt=>{I===z.current&&await Y(zt,X).catch(()=>{})})}),t.workspaceProjectSummary(M.workspaceId,X).then(zt=>{I===z.current&&a({type:"workspace_project_summary_loaded",summary:zt})}).catch(()=>{}),Promise.all([t.diagnostics(X).catch(()=>({})),t.skills(X).catch(()=>({skills:[],nextCursor:null})),t.mcp(X).catch(()=>({servers:[],nextCursor:null})),t.toolDetails(X).catch(()=>({details:[],nextCursor:null}))]).then(([zt,Ts,Os,Br])=>{I===z.current&&(a({type:"diagnostics_loaded",diagnostics:zt}),a({type:"capabilities_loaded",skills:Ts.skills,skillNextCursor:Ts.nextCursor,mcpServers:Os.servers,mcpNextCursor:Os.nextCursor}),a({type:"tool_details_loaded",details:Br.details,nextCursor:Br.nextCursor}))})}catch(M){throw M}},[t,Y,r]),J=m.useCallback(async y=>{let I;for(let M=0;M<3;M+=1)try{await ye(y);return}catch(X){if(I=X,!pw(X)||M===2)break;await hw(100*3**M)}throw a({type:"boot_failed",message:go(I)}),I},[ye]);m.useEffect(()=>{if(ie.current)return;ie.current=!0;let y=!0;return J().catch(()=>{}),()=>{y=!1}},[J]),m.useEffect(()=>()=>{se.current()},[]);const Se=i.bootstrap!==null;m.useEffect(()=>{if(!Se)return;const y=t.connectEvents({cursor:p.current.lastCursor,onEvent:I=>{if(a({type:"event_received",envelope:I}),vw(I)){const M=p.current;if(I.sessionId&&M.contextRevision&&M.workspaceId){const X=I.sessionId,oe=++G.current;L.current.set(X,oe);const Ee=M.contextRevision,ze=M.workspaceId;t.sessionSnapshot(X,{expectedContextRevision:Ee,workspaceId:ze}).then(Ae=>{L.current.get(X)===oe&&a({type:"durable_session_metadata_loaded",snapshot:Ae,contextRevision:Ee,workspaceId:ze})}).catch(()=>{}).finally(()=>{L.current.get(X)===oe&&L.current.delete(X)})}}I.type==="settings_invalidated"&&r.invalidate(I.payload.revision,I.payload.state)},onStatus:(I,M)=>a({type:"connection_changed",phase:I,attempt:M}),onProtocolError:I=>a({type:"notice",notice:{id:Date.now(),tone:"error",title:"收到无法识别的 Web Host 事件流消息",detail:I}})});return g.current=y,()=>{y.close(),g.current===y&&(g.current=null)}},[t,Se,r,d]);const D=m.useCallback(()=>{g.current?.close(),g.current=null},[]),ce=m.useCallback(()=>{f(y=>y+1)},[]);m.useEffect(()=>{!i.workspace||i.boot!=="ready"||i.pendingAction||i.bootstrap?.workspace!==i.workspace&&(D(),J().catch(y=>mo(a,"工作区刷新失败",y)).finally(ce))},[J,D,ce,i.boot,i.bootstrap?.workspace,i.pendingAction,i.workspace]),m.useEffect(()=>{i.boot==="ready"&&i.connection==="live"&&(i.pendingAction||!i.activeSessionId||i.bootstrap?.workspace===i.workspace&&i.sessionSync[i.activeSessionId]?.status!=="failed"&&(i.sessionSnapshot?.session.id===i.activeSessionId&&!i.sessionSync[i.activeSessionId]?.dirty||Y(i.activeSessionId).catch(()=>{})))},[Y,i.activeSessionId,i.boot,i.bootstrap?.workspace,i.pendingAction,i.connection,i.sessionSync,i.sessionSnapshot,i.workspace]);const W=m.useCallback(async(y,I)=>{const M=++x.current;a({type:"pending_action",label:y});try{return await I()}catch(X){throw el(X)||mo(a,`${y}失败`,X),X}finally{x.current===M&&a({type:"pending_action",label:null})}},[]),T=m.useCallback(async(y,I,M)=>{const X=p.current,oe=M??X.activeSessionId,Ee=++k.current,ze={workspaceId:X.workspaceId,contextRevision:X.contextRevision};oe&&a({type:"pending_session_action",sessionId:oe,operationId:Ee,label:y,...ze});try{return await I()}catch(Ae){throw!el(Ae)&&p.current.workspaceId===X.workspaceId&&p.current.contextRevision===X.contextRevision&&p.current.activeSessionId===oe&&mo(a,`${y}失败`,Ae),Ae}finally{oe&&a({type:"pending_session_action",sessionId:oe,operationId:Ee,label:null,...ze})}},[]),B=m.useCallback(async(y,I)=>{const M=p.current;try{return await I()}catch(X){throw!el(X)&&p.current.workspaceId===M.workspaceId&&p.current.contextRevision===M.contextRevision&&mo(a,`${y}失败`,X),X}},[]),$=m.useCallback((y,I)=>{const M=p.current;M.workspaceId===y.workspaceId&&M.contextRevision===y.expectedContextRevision&&a(I)},[]),v=m.useCallback(async(y,I)=>T(y,async()=>{const M=p.current;if(p.current.connection!=="live")throw new Oe("本地 Web Host 连接尚未就绪,请在连接恢复后重试。",409,"session_not_synchronized");const X=M.activeSessionId;if(!X)throw new Oe("当前没有可接收命令的活动会话。",409,"active_session_changed");const oe=M.sessionSnapshot;if(!oe||!ir(M))throw new Oe("当前会话快照尚未同步,请刷新后重试。",409,"session_runtime_revision_conflict");try{const Ee=await t.command({...I,workspaceId:M.workspaceId,expectedContextRevision:M.contextRevision,expectedSessionId:X,expectedSessionRuntimeRevision:oe.sessionRuntime.runtimeRevision});return dw(Ee),Ee}catch(Ee){throw Ee instanceof Oe&&["context_revision_conflict","active_session_changed","session_runtime_revision_conflict"].includes(Ee.code??"")?(a({type:"snapshot_failed",sessionId:X,detail:Ee.message,contextRevision:M.contextRevision,workspaceId:M.workspaceId}),new Oe(Ee.message,Ee.status,"session_runtime_revision_conflict",Ee.type)):Ee}}),[t,T]),R=m.useCallback(async(y,I)=>T(y,async()=>{const M=p.current,X=M.composer;if(M.connection!=="live"||!M.activeSessionId||!ir(M)||!X||X.sessionId!==M.activeSessionId)throw new Oe("Composer 控制状态尚未与活动会话同步。",409,"composer_control_conflict");try{const oe=await t.composerAction(M.activeSessionId,{...I,workspaceId:M.workspaceId,expectedContextRevision:M.contextRevision,expectedSessionId:M.activeSessionId,expectedSessionRuntimeRevision:X.sessionRuntime.runtimeRevision,expectedControlRevision:X.controlRevision});return a({type:"composer_loaded",composer:oe.state,requestControlRevision:X.controlRevision}),oe}catch(oe){throw oe instanceof Oe&&["composer_control_conflict","context_revision_conflict","active_session_changed","session_runtime_revision_conflict"].includes(oe.code??"")?(a({type:"snapshot_failed",sessionId:M.activeSessionId,detail:oe.message,contextRevision:M.contextRevision,workspaceId:M.workspaceId}),new Oe(oe.message,oe.status,"composer_control_conflict",oe.type)):oe}}),[t,T]),ue=m.useCallback(()=>W("重新连接",J),[J,W]),fe=m.useCallback(()=>B("刷新诊断",async()=>{const y=++z.current,I=await t.diagnostics(xe(p.current));y===z.current&&a({type:"diagnostics_loaded",diagnostics:I})}),[t,B]),ke=m.useCallback(()=>B("刷新工具详情",async()=>{const y=++z.current,I=await t.toolDetails(xe(p.current));y===z.current&&a({type:"tool_details_loaded",details:I.details,nextCursor:I.nextCursor})}),[t,B]),re=m.useCallback(()=>B("加载更多工作区",async()=>{const y=xe(p.current),I=p.current.workspaceNextCursor;if(I)try{const M=await t.listWorkspaces(y,I);$(y,{type:"workspaces_loaded",value:M,append:!0})}catch(M){if(!Zi(M))throw M;$(y,{type:"workspaces_loaded",value:await t.listWorkspaces(y)})}}),[t,$,B]),he=m.useCallback(()=>B("加载更多会话",async()=>{const y=p.current.sessionNextCursor;if(!y)return;const I=xe(p.current);try{const M=await t.listSessions(I,y);$(I,{type:"sessions_loaded",sessions:M.sessions,nextCursor:M.nextCursor,append:!0})}catch(M){if(!Zi(M))throw M;const X=await t.listSessions(I);$(I,{type:"sessions_loaded",sessions:X.sessions,nextCursor:X.nextCursor})}}),[t,$,B]),je=m.useCallback(async(y,I=!1)=>{const M=xe(p.current),X=p.current.workspaceSessions[y],oe=I?X?.nextCursor:void 0;if(I&&!oe)return;a({type:"workspace_sessions_loading",workspaceId:y});const Ee=t.workspaceProjectSummary(y,M).catch(()=>null);try{const ze=await t.listWorkspaceSessions(y,M,oe??void 0);a({type:"workspace_sessions_loaded",workspaceId:y,sessions:ze.sessions,nextCursor:ze.nextCursor,append:I});const Ae=await Ee;Ae&&a({type:"workspace_project_summary_loaded",summary:Ae})}catch(ze){throw a({type:"workspace_sessions_failed",workspaceId:y,detail:go(ze)}),ze}},[t]),le=m.useCallback(async y=>{const I=await t.workspaceProjectSummary(y,xe(p.current));a({type:"workspace_project_summary_loaded",summary:I})},[t]),Me=m.useCallback(()=>B("加载更多能力",async()=>{const y=xe(p.current),I=p.current.skillNextCursor,M=p.current.mcpNextCursor;if(!(!I&&!M))try{const[X,oe]=await Promise.all([I?t.skills(y,I):Promise.resolve({skills:[],nextCursor:null}),M?t.mcp(y,M):Promise.resolve({servers:[],nextCursor:null})]);$(y,{type:"capabilities_loaded",skills:X.skills,skillNextCursor:X.nextCursor,mcpServers:oe.servers,mcpNextCursor:oe.nextCursor,append:!0})}catch(X){if(!Zi(X))throw X;const[oe,Ee]=await Promise.all([t.skills(y),t.mcp(y)]);$(y,{type:"capabilities_loaded",skills:oe.skills,skillNextCursor:oe.nextCursor,mcpServers:Ee.servers,mcpNextCursor:Ee.nextCursor})}}),[t,$,B]),Ke=m.useCallback(()=>B("加载更多工具详情",async()=>{const y=xe(p.current),I=p.current.toolDetailNextCursor;if(I)try{const M=await t.toolDetails(y,I);$(y,{type:"tool_details_loaded",details:M.details,nextCursor:M.nextCursor,append:!0})}catch(M){if(!Zi(M))throw M;const X=await t.toolDetails(y);$(y,{type:"tool_details_loaded",details:X.details,nextCursor:X.nextCursor})}}),[t,$,B]),tt=m.useCallback(async()=>{const y=p.current;if(y.connection!=="replay-required"){if(!y.activeSessionId)return;await Y(y.activeSessionId,xe(y),{force:!0});return}await W("恢复本地 Web Host 事件流",async()=>{D(),a({type:"recovering"});try{await J()}finally{ce()}})},[J,Y,D,ce,W]),st=m.useCallback(y=>W("切换工作区",async()=>{D();try{const I=await t.activateWorkspace(y,xe(p.current));a({type:"workspaces_loaded",value:I}),a({type:"reset_session_view",activeSessionId:null}),await J(I)}finally{ce()}}),[t,J,D,ce,W]),lt=m.useCallback(()=>t.pickDirectory({}),[t]),dt=m.useCallback(()=>t.listWorkspaceRoots(),[t]),ln=m.useCallback(y=>t.addWorkspaceRoot(y),[t]),q=m.useCallback(y=>t.removeWorkspaceRoot(y),[t]),Re=m.useCallback((y,I)=>t.discoverWorkspaceRoot(y,I),[t]),qe=m.useCallback(y=>t.inspectWorkspace(y,"picker"),[t]),Ze=m.useCallback(y=>{++b.current;const I=p.current;if(!I.sessionCreationSelected&&I.activeSessionId===y&&I.sessionSnapshot&&ir(I))return Promise.resolve();const M=xe(I);return(async()=>{Ji(M.workspaceId,y),a({type:"reset_session_view",activeSessionId:y}),hc(I,y)||await Y(y,M)})()},[Y]),kt=m.useCallback((y,I)=>{if(!N.current&&y===p.current.workspaceId&&I)return Ze(I);++b.current;const M={workspaceId:y,sessionId:I};if(j.current=M,a({type:"navigation_target",target:M}),N.current)return N.current;const X=W("切换项目上下文",async()=>{let oe=xe(p.current),Ee=!1;D();try{for(;j.current;){const ze=j.current;j.current=null,Ji(ze.workspaceId,ze.sessionId);try{if(ze.workspaceId!==oe.workspaceId){++z.current;const Ae=await t.activateContext({expectedContextRevision:oe.expectedContextRevision,...ze});if(Ae.contextRevision!==Ae.bootstrap.contextRevision||Ae.bootstrap.workspaceId!==ze.workspaceId)throw new Oe("Host 返回的项目上下文不一致。",502,"context_response_invalid");oe={workspaceId:Ae.bootstrap.workspaceId,expectedContextRevision:Ae.contextRevision},Ee=!0}if(j.current)continue;Ee?(await J(),Ee=!1):(a({type:"reset_session_view",activeSessionId:ze.sessionId}),ze.sessionId&&!hc(p.current,ze.sessionId)&&Y(ze.sessionId,oe).catch(()=>{}))}catch(Ae){await J();const Dt=await t.bootstrap();if(oe={workspaceId:Dt.workspaceId,expectedContextRevision:Dt.contextRevision},Ee=!1,!j.current)throw Ae}}}finally{ce()}}).finally(()=>{j.current=null,N.current=null,a({type:"navigation_target",target:null})});return N.current=X,X},[t,J,Y,D,ce,W,Ze]),Mn=m.useCallback((y,I)=>B(I?"置顶项目":"取消置顶",async()=>{const M=xe(p.current);await t.setWorkspacePinned(y,I,M),$(M,{type:"workspaces_loaded",value:await t.listWorkspaces(M)})}),[t,$,B]),ar=m.useCallback(y=>W("移除项目",async()=>{const I=p.current;if(!I.contextRevision)throw new Oe("工作区上下文尚未完成同步。",409,"context_revision_conflict");await t.removeWorkspace(y,xe(I)),tg(y),a({type:"workspaces_loaded",value:await t.listWorkspaces(xe(p.current))})}),[t,W]),cr=m.useCallback(()=>{const y=xe(p.current);if(E.current?.workspaceId===y.workspaceId&&E.current.contextRevision===y.expectedContextRevision)return E.current.promise;const I=b.current,M={workspaceId:y.workspaceId,contextRevision:y.expectedContextRevision};a({type:"session_creation_pending",pending:!0,...M});const X=(async()=>{const oe=await t.createSession(y);p.current.workspaceId!==y.workspaceId||p.current.contextRevision!==y.expectedContextRevision||(a({type:"sessions_loaded",sessions:lr(p.current.sessions,oe),nextCursor:p.current.sessionNextCursor}),b.current===I&&(++b.current,Ji(y.workspaceId,oe.id),a({type:"reset_session_view",activeSessionId:oe.id}),Y(oe.id,y).catch(()=>{})))})().catch(oe=>{throw!el(oe)&&p.current.workspaceId===y.workspaceId&&p.current.contextRevision===y.expectedContextRevision&&mo(a,"创建会话失败",oe),oe}).finally(()=>{E.current?.promise===X&&(E.current=null),a({type:"session_creation_pending",pending:!1,...M})});return E.current={...M,promise:X},X},[t,Y]),yt=Ze,ur=m.useCallback(()=>T("加载更早记录",async()=>{const y=xe(p.current),I=p.current.sessionSnapshot,M=p.current.activeSessionId,X=I?.transcript.nextCursor;if(!(!I||!M||!X))try{const oe=await t.sessionSnapshot(M,y,X);if(oe.session.id!==I.session.id||oe.threadId!==I.threadId||oe.threadCursor!==I.threadCursor||oe.projectionDigest!==I.projectionDigest)throw new Oe("加载历史记录时会话快照发生变化,正在恢复最新快照。",409,"transcript_cursor_stale");$(y,{type:"older_transcript_loaded",snapshot:oe})}catch(oe){if(!(oe instanceof Oe)||oe.code!=="transcript_cursor_stale")throw oe;p.current.workspaceId===y.workspaceId&&p.current.contextRevision===y.expectedContextRevision&&await Y(M,y,{force:!0})}}),[t,$,Y,T]),Ln=m.useCallback((y,I)=>T("重命名会话",async()=>{const M=xe(p.current),X=await t.renameSession(y,I,M),oe=lr(p.current.sessions,X);$(M,{type:"sessions_loaded",sessions:oe,nextCursor:p.current.sessionNextCursor})},y),[t,$,T]),$t=m.useCallback((y,I)=>T("更新会话标签",async()=>{const M=xe(p.current),X=await t.updateSessionTags(y,I,M);$(M,{type:"session_updated",session:X})},y),[t,$,T]),An=m.useCallback(y=>T("归档会话",async()=>{const I=xe(p.current),M=await t.archiveSession(y,I);$(I,{type:"session_archived",session:M})},y),[t,$,T]),an=m.useCallback(y=>T("还原会话",async()=>{const I=xe(p.current),M=await t.restoreSession(y,I);$(I,{type:"session_restored",session:M})},y),[t,$,T]),Z=m.useCallback(y=>T("删除会话",async()=>{const I=xe(p.current);await t.deleteSession(y,I),$(I,{type:"session_deleted",sessionId:y})},y),[t,$,T]),Ne=m.useCallback(async(y,I=!1)=>{const M=xe(p.current),X=p.current.archivedSessions,oe=I?X?.nextCursor:void 0;if(!(I&&!oe)){a({type:"archived_sessions_loading",workspaceId:y});try{const Ee=await t.listArchivedWorkspaceSessions(y,M,oe??void 0);a({type:"archived_sessions_loaded",workspaceId:y,sessions:Ee.sessions,nextCursor:Ee.nextCursor,append:I})}catch(Ee){throw a({type:"archived_sessions_failed",workspaceId:y,detail:go(Ee)}),Ee}}},[t]),Pe=m.useCallback((y,I)=>v("提交任务",{type:"submit",text:y,contextReferences:I}),[v]),Ue=m.useCallback((y,I)=>v("加入队列",{type:"queue_followup",text:y,contextReferences:I}),[v]),Qt=m.useCallback(async(y,I)=>{await R("移除排队消息",{type:"remove_queue_item",itemId:y,expectedItemRevision:I})},[R]),cn=m.useCallback(async(y,I,M)=>{await R("编辑排队消息",{type:"edit_queue_item",itemId:y,expectedItemRevision:I,text:M})},[R]),un=m.useCallback(async(y,I,M)=>{await R("移动排队消息",{type:"move_queue_item",itemId:y,expectedItemRevision:I,targetIndex:M})},[R]),Yt=m.useCallback(async()=>{await v("清空队列",{type:"clear_followups"})},[v]),Mr=m.useCallback(async()=>{const y=p.current.sessionSnapshot?.sessionRuntime;if(!y||y.phase!=="queued"||!y.queueId)throw new Oe("排队任务已变化,请等待状态同步后重试。",409,"session_queue_conflict");await v("取消排队任务",{type:"cancel_queued_turn",queueId:y.queueId})},[v]),Lr=m.useCallback(async()=>{await v("中断任务",{type:"interrupt"})},[v]),gn=m.useCallback(async y=>{p.current.mode.baseMode===y&&!p.current.mode.pendingBaseMode||await R("切换模式",{type:"set_agent_mode",mode:y})},[R]),vn=m.useCallback(async y=>{await R(y===null?"继承项目权限":"切换会话权限",y===null?{type:"clear_permission_override"}:{type:"set_permission_override",value:y})},[R]),js=m.useCallback(()=>T("加载模型目录",async()=>{const y=p.current;if(!y.activeSessionId)return;const I=await t.modelCatalog(y.activeSessionId,xe(y));p.current.activeSessionId===y.activeSessionId&&$(xe(y),{type:"model_catalog_loaded",catalog:I})}),[t,$,T]),Ss=m.useCallback(async(y,I)=>{await R("切换会话模型",{type:"select_model",modelId:y,...I?{effort:I}:{}})},[R]),Cs=m.useCallback(async()=>{await R("压缩上下文",{type:"compact_context"})},[R]),bs=m.useCallback(async(y,I,M)=>{await R("审核计划",{type:"review_plan",planDigest:y,action:I,...M?{feedback:M}:{}})},[R]),Is=m.useCallback(async(y,I="once")=>{const M=p.current.permission;M&&(await v(y?"确认工具权限":"拒绝工具权限",{type:"permission_decision",requestPermissionId:M.id,approved:y,scope:I}),a({type:"approval_resolved",requestId:M.id,approved:y}))},[v]),Ar=m.useCallback(async(y,I)=>{const M=p.current,X=M.activeSessionId,oe=xe(M);if(await v("更新 Goal",{type:"goal_control",goalAction:y,objective:I}),p.current.workspaceId!==oe.workspaceId||p.current.contextRevision!==oe.expectedContextRevision)return;const[Ee]=await Promise.all([t.diagnostics(oe),X?Y(X,oe,{force:!0}):Promise.resolve()]);p.current.activeSessionId===X&&$(oe,{type:"diagnostics_loaded",diagnostics:Ee})},[t,$,Y,v]),Ns=m.useCallback(async()=>{const y=await r.refresh(),I=y.document??y.lastGood;if(!I)throw new Oe(y.error??"设置尚不可用。",503);return I},[r]),$n=m.useCallback(async(y,I,M)=>{if(I.length<1||I.length>20)throw new Oe("设置变更必须包含 1 到 20 个字段。",400,"settings_invalid_operation");const X=await t.updateSettings(y,I,xe(p.current),M);return r.accept(X.settings),X},[t,r]),$r=m.useCallback(async()=>{await t.openSettingsDocument()},[t]),Dn=m.useCallback((y,I=0)=>t.readToolDetail(y,xe(p.current),I),[t]),No=m.useCallback((y,I)=>t.listFiles(xe(p.current),y,I),[t]),zn=m.useCallback((y,I)=>t.readFileContent(y,xe(p.current),I),[t]),Dr=m.useCallback((y,I,M)=>t.writeFileContent(xe(p.current),y,I,M),[t]),dr=m.useCallback((y,I)=>t.gitStatus(xe(p.current),y,I),[t]),zr=m.useCallback(y=>t.gitLog(xe(p.current),y),[t]),_o=m.useCallback((y,I)=>t.gitDiff(y,xe(p.current),I),[t]),Eo=m.useCallback((y,I,M,X)=>t.gitDiffDocument(y,xe(p.current),I,M,X),[t]),Sl=m.useCallback(()=>t.gitRefs(xe(p.current)),[t]),yn=m.useCallback(y=>t.gitCompare(xe(p.current),y),[t]),Ro=m.useCallback(y=>t.gitCompareFileDiff(xe(p.current),y),[t]),Po=m.useCallback(y=>t.gitHistory(xe(p.current),y),[t]),Cl=m.useCallback((y,I=0)=>t.gitCommitDetail(xe(p.current),y,I),[t]),To=m.useCallback((y,I=0)=>t.gitCommitFiles(xe(p.current),y,I),[t]),Oo=m.useCallback(y=>t.gitCommitDiff(xe(p.current),y),[t]),Mo=m.useCallback(y=>t.gitFilesTarget(xe(p.current),y),[t]),Lo=m.useCallback((y=200)=>t.gitGraph(xe(p.current),y),[t]),bl=m.useCallback(y=>t.gitConflictVersions(xe(p.current),y),[t]),Il=m.useCallback(y=>t.gitBlob(xe(p.current),y),[t]),Qe=m.useCallback(()=>t.gitSubmodules(xe(p.current)),[t]),Nl=m.useCallback(y=>t.gitBlame(xe(p.current),y),[t]),_s=m.useCallback(y=>t.gitFileHistory(xe(p.current),y),[t]),Es=m.useCallback(()=>t.gitCommitPreview(xe(p.current)),[t]),fr=m.useCallback((y,I)=>t.gitStage(xe(p.current),y,I),[t]),Ao=m.useCallback((y,I)=>t.gitUnstage(xe(p.current),y,I),[t]),Rs=m.useCallback(y=>t.gitApplyPatch(xe(p.current),y),[t]),pr=m.useCallback(y=>t.gitCommit(xe(p.current),y),[t]),Tt=m.useCallback(()=>t.review(xe(p.current)),[t]),$o=m.useCallback(async()=>(await t.terminals(xe(p.current))).terminals,[t]),jt=m.useCallback(async(y,I)=>{const M=p.current;if(!M.contextRevision||!M.workspaceId)throw new Oe("工作区上下文尚未完成同步。",409,"context_revision_conflict");return t.createTerminal({expectedContextRevision:M.contextRevision,workspaceId:M.workspaceId,cols:y,rows:I})},[t]),Do=m.useCallback(async y=>{const I=p.current;if(!I.contextRevision||!I.workspaceId)throw new Oe("工作区上下文尚未完成同步。",409,"context_revision_conflict");return t.terminalAttachTicket(y,{expectedContextRevision:I.contextRevision,workspaceId:I.workspaceId})},[t]),zo=m.useCallback(async y=>{const I=p.current;if(!I.contextRevision||!I.workspaceId)throw new Oe("工作区上下文尚未完成同步。",409,"context_revision_conflict");await t.closeTerminal(y,{expectedContextRevision:I.contextRevision,workspaceId:I.workspaceId})},[t]),Wo=m.useCallback(y=>t.terminalSocket(y),[t]),hr=m.useCallback(()=>a({type:"notice",notice:null}),[]),Wr=m.useMemo(()=>({retryBoot:ue,refreshDiagnostics:fe,refreshToolDetails:ke,loadMoreWorkspaces:re,loadMoreSessions:he,loadWorkspaceSessions:je,refreshWorkspaceProjectSummary:le,loadMoreCapabilities:Me,loadMoreToolDetails:Ke,recoverSession:tt,switchWorkspace:st,pickWorkspaceDirectory:lt,inspectWorkspacePath:qe,listWorkspaceRoots:dt,addWorkspaceRoot:ln,removeWorkspaceRoot:q,discoverWorkspaceRoot:Re,activateContext:kt,setWorkspacePinned:Mn,removeWorkspace:ar,createSession:cr,activateSession:yt,loadOlderTranscript:ur,renameSession:Ln,updateSessionTags:$t,archiveSession:An,restoreSession:an,deleteSession:Z,loadArchivedWorkspaceSessions:Ne,submit:Pe,queue:Ue,removeQueued:Qt,editQueued:cn,moveQueued:un,clearQueue:Yt,cancelQueuedTurn:Mr,interrupt:Lr,setMode:gn,setPermissionOverride:vn,loadModelCatalog:js,selectModel:Ss,compactContext:Cs,reviewPlan:bs,answerPermission:Is,controlGoal:Ar,refreshSettings:Ns,updateSettings:$n,openSettingsDocument:$r,readToolDetail:Dn,listFiles:No,readFileContent:zn,writeFileContent:Dr,gitStatus:dr,gitLog:zr,gitDiff:_o,gitDiffDocument:Eo,gitCommitPreview:Es,gitRefs:Sl,gitCompare:yn,gitCompareFileDiff:Ro,gitHistory:Po,gitCommitDetail:Cl,gitCommitFiles:To,gitCommitDiff:Oo,gitFilesTarget:Mo,gitGraph:Lo,gitConflictVersions:bl,gitBlob:Il,gitSubmodules:Qe,gitBlame:Nl,gitFileHistory:_s,gitStage:fr,gitUnstage:Ao,gitApplyPatch:Rs,gitCommit:pr,review:Tt,terminals:$o,createTerminal:jt,terminalAttachTicket:Do,closeTerminal:zo,terminalSocket:Wo,dismissNotice:hr}),[yt,kt,zo,jt,_o,Eo,Es,fr,Ao,Rs,pr,zr,dr,No,ur,Me,he,Ke,re,js,je,Is,Yt,Mr,Cs,bs,Ar,cr,hr,cn,Lr,Ue,zn,Dn,Tt,tt,fe,Ns,ke,le,Qt,ar,Ln,an,$t,An,Z,Ne,ue,gn,vn,Ss,Mn,Pe,st,lt,qe,dt,ln,q,Re,un,Do,Wo,$o,$n,$r]);return{state:i,actions:Wr}}async function lw(t,r,i,a){let d=i;for(let f=0;f<2;f+=1){const p=Zx(d);if(p.keysToClear.length===0||d.state!=="ready"||!d.writable)return d;if(p.operations.length===0)return op(p.keysToClear),d;try{const g=await t.updateSettings(d.revision,p.operations,a,We());return r.accept(g.settings),op(p.keysToClear),g.settings}catch(g){if(f===0&&g instanceof Oe&&g.code==="settings_revision_conflict"){const x=await r.refresh(),k=x.document??x.lastGood;if(k){d=k;continue}}return d}}return d}function xe(t){if(!t.contextRevision||!t.workspaceId)throw new Oe("工作区上下文尚未完成同步。",409,"context_revision_conflict");return{expectedContextRevision:t.contextRevision,workspaceId:t.workspaceId}}function aw(t,r,i){if(!(t.session.id===r&&t.sessionRuntime.sessionId===r&&t.sessionRuntime.workspaceId===i.workspaceId&&t.composer.sessionId===r&&t.composer.workspaceId===i.workspaceId&&t.composer.contextRevision===i.expectedContextRevision))throw new Oe("Host 返回的会话快照身份与当前项目上下文不一致。",502,"session_snapshot_identity_mismatch")}const lp="orion.web.view-id.v1",Gp="orion.web.foreground-session.v1:";function cw(t,r,i){const a=Qp(`${Gp}${t}`);return rw(a,r,i)}function Ji(t,r){uw();const i=`${Gp}${t}`;try{r?globalThis.sessionStorage?.setItem(i,r):globalThis.sessionStorage?.removeItem(i)}catch{}}function uw(){const t=Qp(lp);if(t)return t;const r=globalThis.crypto?.randomUUID?.()??`view-${Date.now().toString(36)}`;try{globalThis.sessionStorage?.setItem(lp,r)}catch{}return r}function Qp(t){try{return globalThis.sessionStorage?.getItem(t)??null}catch{return null}}function dw(t){if(t.result.includes("failed")||t.result.includes("invalid")||t.result.includes("rejected")||t.result.includes("ignored")||t.result.includes("full")||t.result==="empty")throw new Oe(fw(t),409)}function fw(t){if(t.detail)try{const r=JSON.parse(t.detail);if(typeof r.reason=="string")return r.reason}catch{}return`Runtime 未接受操作:${t.result}`}function mo(t,r,i,a="error"){t({type:"notice",notice:{id:Date.now(),tone:a,title:r,detail:go(i)}})}function go(t){return t instanceof Oe||t instanceof Error?t.message:"发生未知错误。"}function Zi(t){return t instanceof Oe&&t.code==="collection_cursor_stale"}function el(t){return t instanceof Oe&&["composer_control_conflict","session_runtime_revision_conflict","session_snapshot_sync_failed"].includes(t.code??"")}function pw(t){return t instanceof Oe&&["context_revision_conflict","runtime_busy","active_session_changed"].includes(t.code??"")}function hw(t){return new Promise(r=>{globalThis.setTimeout(r,t)})}function mw(t){if(typeof window<"u"&&"requestIdleCallback"in window){const i=window.requestIdleCallback(t,{timeout:1500});return()=>window.cancelIdleCallback(i)}const r=globalThis.setTimeout(t,150);return()=>globalThis.clearTimeout(r)}async function gw(t,r,i){let a=0;const d=Array.from({length:Math.min(Math.max(1,r),t.length)},async()=>{for(;a<t.length;){const f=t[a];a+=1,f!==void 0&&await i(f)}});await Promise.all(d)}function vw(t){return t.sessionId?t.type==="runtime_event"?t.payload.value.type==="permission_requested":t.type!=="thread_event"?!1:["approval.requested","plan.review_requested","turn.completed","turn.failed","turn.interrupted"].includes(t.payload.value.payload.type):!1}const yw=5e3;function xw(t,r){return r||t.tone==="error"?null:yw}function ww({uid:t,notice:r,reconnectNeeded:i,snapshotRetryNeeded:a,pendingAction:d,onDismiss:f,onRecover:p}){const g=i||a,x=!g,k=m.useRef(f);m.useEffect(()=>{k.current=f},[f]);const b=xw(r,g);m.useEffect(()=>{if(b===null)return;const E=window.setTimeout(()=>k.current(t),b);return()=>window.clearTimeout(E)},[b,t]);const j=`notice-${t}`,N=r.tone==="success"?"check":r.tone==="info"?"info":"warning";return o.jsxs("aside",{className:`workbench-notice notice-${r.tone}`,role:r.tone==="error"?"alert":"status","aria-labelledby":j,children:[o.jsx("span",{className:"notice-icon","aria-hidden":"true",children:o.jsx(Q,{name:N,size:17})}),o.jsxs("div",{children:[o.jsx("strong",{id:j,children:r.title}),r.detail?o.jsx("p",{children:r.detail}):null]}),i?o.jsx("button",{type:"button",className:"secondary-button",onClick:()=>p(t),disabled:d,children:"重建连接"}):null,a?o.jsx("button",{type:"button",className:"secondary-button",onClick:()=>p(t),disabled:d,children:"重试同步"}):null,x?o.jsx("button",{type:"button",className:"icon-button",onClick:()=>f(t),"aria-label":"关闭通知",children:o.jsx(Q,{name:"close",size:15})}):null]})}function kw(){const{state:t,actions:r}=iw(),[i,a]=m.useState(!1),[d,f]=m.useState(Fv),{value:p,update:g,setResourceNavigatorWidth:x}=Px(t.workspaceId,d.workPanel),[k,b]=m.useState(!1),[j,N]=m.useState(!1),[E,z]=m.useState(!1),[L,G]=m.useState(null),[ne,U]=m.useState(null),[se,ie]=m.useState(null),[Y,A]=m.useState(!1),[F,ge]=m.useState([]),Ie=m.useRef(0),we=m.useRef(t.notice),te=m.useRef(null),[ye,J]=m.useState(null),[Se,D]=m.useState(null),ce=m.useRef(null),W=m.useRef(!1),T=m.useRef(!1),B=m.useRef(null),$=jw(B),v=$>1180,R=v?Gf({containerWidth:$,navigationExpanded:d.projectNavigation.expanded,navigationWidthPx:d.projectNavigation.widthPx,workExpanded:p.expanded,workDetailWidthPx:p.detailWidthPx}):Ki($,d),ue=R.projectNavigation.mode==="drawer",fe=R.workPanel.mode==="drawer",ke=R.workPanel.mode==="rail"&&p.expanded,re=fe||ke&&k,he=fe||ke?k:R.workPanel.mode==="dock",je=re&&k,le=ue&&i,Me=le||je,Ke=t.settings?.state==="ready"?t.settings:t.settingsMirror.lastGood??t.settings,tt=Ke?.sections.appearance.theme.effectiveValue,st=Ke?.sections.appearance.motion.effectiveValue,lt=Ke?.sections.appearance.style.effectiveValue??"orion-blocksmith",dt=wo(t),ln=m.useCallback(()=>{if(!t.workspace)return;const Z=Ke?.revision;if(!Z)return;const Ne=Ke?.sections.appearance.theme.effectiveValue??"system",Pe=Ne==="system"?"light":Ne==="light"?"dark":"system";r.updateSettings(Z,[{op:"set",key:"appearance.theme",value:Pe}],We()).catch(Ue=>{console.warn("[theme] 主题切换写入失败",Ue)})},[r,Ke,t.workspace]),q=m.useCallback(Z=>{f(Ne=>{const Pe={...Ne,projectNavigation:{...Ne.projectNavigation,...Z}};return Bv(Pe),Pe})},[]),Re=m.useCallback(Z=>{g({...Z,detailWidthPx:Z.widthPx===void 0?void 0:Math.max(360,Z.widthPx-rt)})},[g]),qe=m.useCallback(()=>{ce.current=document.activeElement instanceof HTMLElement?document.activeElement:null},[]),Ze=m.useCallback(()=>{requestAnimationFrame(()=>document.querySelector(".project-search input")?.focus())},[]),kt=m.useCallback(()=>{requestAnimationFrame(()=>document.querySelector('.workspace-rail [aria-label="打开设置"]')?.focus())},[]),Mn=m.useCallback(()=>{ue&&(qe(),b(!1),a(!0)),kt()},[kt,ue,qe]),ar=m.useCallback(()=>{W.current=le,le&&(a(!1),b(!1),ce.current=null),N(!0)},[le]),cr=m.useCallback(()=>{N(!1),W.current&&(W.current=!1,T.current=!0,a(!0))},[]),yt=m.useCallback(()=>{a(!1),b(!1),T.current=!1;const Z=ce.current;ce.current=null,Z&&requestAnimationFrame(()=>Z.focus())},[]);m.useLayoutEffect(()=>{document.documentElement.dataset.theme=tt??"system",document.documentElement.dataset.motion=st??"system",document.documentElement.dataset.uiStyle=lt},[st,tt,lt]),m.useEffect(()=>{we.current=t.notice;const Z=t.notice;Z&&te.current!==Z.id&&(te.current=Z.id,ge(Ne=>Ne.some(Pe=>Pe.notice.id===Z.id)?Ne:[...Ne,{uid:++Ie.current,notice:Z}].slice(-4)))},[t.notice]),m.useEffect(()=>{const Z=t.workspaceId;if(!Z)return;const Ne=t.workspaceSessions[Z],Pe=t.archivedSessions;Ne?.status==="ready"&&(Pe.ownerWorkspaceId===Z&&Pe.status!=="idle"||r.loadArchivedWorkspaceSessions(Z).catch(()=>{}))},[r,t.archivedSessions,t.workspaceId,t.workspaceSessions]);const ur=m.useCallback(Z=>{const Ne=F.find(Pe=>Pe.uid===Z);Ne&&(we.current?.id===Ne.notice.id&&r.dismissNotice(),ge(Pe=>Pe.filter(Ue=>Ue.uid!==Z)))},[r,F]),Ln=m.useCallback(Z=>{const Ne=F.find(Pe=>Pe.uid===Z);Ne&&(we.current?.id===Ne.notice.id&&r.dismissNotice(),ge(Pe=>Pe.filter(Ue=>Ue.uid!==Z)),r.recoverSession())},[r,F]);m.useEffect(()=>{const Z=window.matchMedia("(prefers-color-scheme: light)"),Ne=document.querySelector('meta[name="theme-color"]'),Pe=()=>{Ne&&(Ne.content=Lx(lt,tt??"system",Z.matches))};return Pe(),Z.addEventListener("change",Pe),()=>Z.removeEventListener("change",Pe)},[tt,lt]),m.useEffect(()=>{a(!1),b(!1),ce.current=null,W.current=!1,T.current=!1},[t.activeSessionId,t.workspace]),m.useLayoutEffect(()=>{a(!1),b(!1),ce.current=null,T.current=!1},[R.projectNavigation.mode,R.workPanel.mode,ue,fe]),m.useEffect(()=>{const Z=Ne=>{const Pe=ul("toggle-project-navigation");if(Pe&&cl(Ne,Pe.tokens)){if(Ne.preventDefault(),ue){if(i){yt();return}qe(),b(!1),a(!0);return}const Ue=!d.projectNavigation.expanded,Qt=!!(!Ue&&document.activeElement?.closest(".workspace-rail")),cn=Ki($,{...d,projectNavigation:{...d.projectNavigation,expanded:Ue}});if(Ue&&cn.projectNavigation.mode==="drawer"){q({expanded:Ue}),qe(),b(!1),a(!0);return}q({expanded:Ue}),Ue?Ze():Qt&&requestAnimationFrame(()=>{(document.querySelector('.project-navigator-collapsed [aria-label="展开项目导航"]')??document.querySelector(".mobile-nav-toggle"))?.focus()})}};return window.addEventListener("keydown",Z),()=>window.removeEventListener("keydown",Z)},[yt,Ze,i,ue,d.projectNavigation,qe,$,q]),m.useEffect(()=>{const Z=ul("open-shortcut-help");if(!Z)return;const Ne=Pe=>{cl(Pe,Z.tokens)&&(Pe.preventDefault(),A(Ue=>!Ue))};return window.addEventListener("keydown",Ne),()=>window.removeEventListener("keydown",Ne)},[]),m.useEffect(()=>{if(!Me)return;const Z=document.querySelector(".conversation-column"),Ne=document.querySelector(".workspace-rail"),Pe=document.querySelector(".work-panel"),Ue=document.querySelector(".workbench-notice-stack"),Qt=document.querySelector(".skip-link");Z&&(Z.inert=!0),Ne&&(Ne.inert=je),Pe&&(Pe.inert=i),Ue&&(Ue.inert=!0),Qt&&(Qt.inert=!0);const cn=window.setTimeout(()=>{const Yt=je?Pe?.querySelector('[aria-label="关闭工作面板"]'):T.current?Ne?.querySelector('[aria-label="打开设置"]'):Ne?.querySelector(".drawer-close");T.current=!1,Yt?.focus()},0),un=Yt=>{Yt.key==="Escape"&&Me&&!Yt.target?.closest?.('[role="alertdialog"], dialog')&&yt()};return window.addEventListener("keydown",un),()=>{Z&&(Z.inert=!1),Ne&&(Ne.inert=!1),Pe&&(Pe.inert=!1),Ue&&(Ue.inert=!1),Qt&&(Qt.inert=!1),window.clearTimeout(cn),window.removeEventListener("keydown",un)}},[yt,Me,i,je,t.notice]);const $t=m.useCallback(()=>{requestAnimationFrame(()=>document.querySelector("#main-content h1")?.focus())},[]),An=()=>{a(!1),r.createSession().then($t,$t)},an=()=>{W.current=!1,T.current=!1,N(!1),requestAnimationFrame(()=>document.querySelector("#orion-composer")?.focus())};return o.jsxs(o.Fragment,{children:[o.jsx("a",{className:"skip-link",href:"#main-content",children:"跳到主要内容"}),o.jsxs("div",{ref:B,className:`workbench-shell project-navigation-${R.projectNavigation.mode} work-panel-mode-${R.workPanel.mode} ${ke&&k?"work-panel-transient-overlay":""}`,style:{"--project-navigation-width":`${R.projectNavigation.widthPx}px`,"--project-navigation-preferred-width":`${d.projectNavigation.widthPx}px`,"--work-panel-width":`${R.workPanel.widthPx}px`,"--work-panel-preferred-width":`${p.detailWidthPx+rt}px`},"aria-busy":t.boot==="loading",children:[o.jsx(Qv,{state:t,drawerOpen:le,dockVisible:!0,collapsed:R.projectNavigation.mode==="rail",resizable:R.projectNavigation.mode==="dock",width:R.projectNavigation.widthPx,onExpand:()=>{ue?(qe(),b(!1),a(!0)):(q({expanded:!0}),Ze())},onCollapse:()=>{ue?yt():q({expanded:!1})},onOpenWorkspaceDialog:()=>z(!0),onOpenSettings:ar,onLoadMoreWorkspaces:()=>{r.loadMoreWorkspaces()},onCreateSession:An,onLoadWorkspaceSessions:(Z,Ne)=>{r.loadWorkspaceSessions(Z,Ne)},onActivateContext:(Z,Ne)=>{a(!1),r.activateContext(Z,Ne).then($t,$t)},onSetPinned:(Z,Ne)=>{r.setWorkspacePinned(Z,Ne)},onRemoveWorkspace:Z=>{r.removeWorkspace(Z)},onRefreshSummary:Z=>{r.refreshWorkspaceProjectSummary(Z)},onRenameSession:G,onSessionTags:U,onArchiveSession:Z=>{r.archiveSession(Z.id)},onDeleteSession:ie,onRestoreSession:Z=>{r.restoreSession(Z.id)},onWidthPreview:Z=>{const Ne=Ki($,{...d,projectNavigation:{...d.projectNavigation,widthPx:Z}});B.current?.style.setProperty("--project-navigation-width",`${Ne.projectNavigation.widthPx}px`)},onWidthCommit:Z=>q({widthPx:Z})}),o.jsx(gv,{state:t,actions:r,navigationOpen:le,navigationOverlay:ue,onOpenNavigation:()=>{qe(),b(!1),a(!0)},onRevealSettings:Mn,onCreateSession:An,composerInsertion:Se}),o.jsx(yx,{state:t,actions:r,mode:re?"overlay":"dock",expanded:he,themePreference:tt,onCycleTheme:ln,onShowShortcutHelp:()=>A(!0),onToggleInspector:()=>{if(fe||ke){if(k){yt();return}qe(),a(!1),b(!0);return}Re({expanded:!p.expanded})},activePanel:p.activePanel,panelOrder:d.workPanel.order,agentPanel:p.agentPanel,onExpand:()=>{fe||ke?(qe(),b(!0)):Re({expanded:!0})},onCollapse:()=>{re?yt():Re({expanded:!1})},onPanelChange:Z=>Re({activePanel:Z}),onAgentPanelChange:Z=>Re({agentPanel:Z}),onWidthPreview:Z=>{const Ne=v?Gf({containerWidth:$,navigationExpanded:d.projectNavigation.expanded,navigationWidthPx:d.projectNavigation.widthPx,workExpanded:!0,workDetailWidthPx:Math.max(360,Z-rt)}):Ki($,{...d,workPanel:{...d.workPanel,widthPx:Z}});B.current?.style.setProperty("--work-panel-width",`${Ne.workPanel.widthPx}px`)},onWidthCommit:Z=>Re({widthPx:Z}),width:R.workPanel.widthPx,maxWidthPx:v?Bp($-(d.projectNavigation.expanded?d.projectNavigation.widthPx:rt))+rt:void 0,revealFileRequest:ye,onRevealInFiles:Z=>{(fe||ke)&&b(!0),J({id:Date.now(),fileId:Z.filesToken,displayPath:Z.path}),Re({activePanel:"files"})},onSendToComposer:Z=>{D({id:Date.now(),text:Z}),fe&&yt(),requestAnimationFrame(()=>document.querySelector("#orion-composer")?.focus())},resourceNavigatorWidths:p.resourceNavigatorWidthPx,onResourceNavigatorWidthCommit:x}),Me?o.jsx("button",{type:"button",className:"drawer-scrim","aria-label":"关闭侧边面板",tabIndex:-1,onClick:yt}):null,F.length>0?o.jsx("div",{className:"workbench-notice-stack","aria-live":"polite",children:F.map(Z=>o.jsx(ww,{uid:Z.uid,notice:Z.notice,reconnectNeeded:t.connection==="replay-required",snapshotRetryNeeded:Z.notice.domain==="session-snapshot"&&dt.status==="failed",pendingAction:!!t.pendingAction,onDismiss:ur,onRecover:Ln},Z.uid))}):null,t.boot!=="ready"?o.jsxs("section",{className:"boot-screen",role:t.boot==="error"?"alert":"status",children:[o.jsx(bp,{className:"boot-mark",size:34}),t.boot==="loading"?o.jsxs(o.Fragment,{children:[o.jsx("h1",{children:"正在启动 Orion Workbench"}),o.jsx("p",{children:"建立本地安全握手并恢复工作区状态…"}),o.jsx("span",{className:"boot-loader","aria-hidden":"true"})]}):o.jsxs(o.Fragment,{children:[o.jsx("h1",{children:"无法连接本地 Web Host"}),o.jsx("p",{children:t.bootError||"请确认 Orion Web Host 仍在运行。"}),o.jsxs("button",{type:"button",className:"primary-button",onClick:()=>{r.retryBoot()},disabled:!!t.pendingAction,children:[o.jsx(Q,{name:"refresh",size:15}),"重新连接"]})]})]}):null,o.jsx("div",{className:"sr-only","aria-live":"polite","aria-atomic":"true",children:t.announcement})]}),o.jsx(Cy,{open:j,onClose:cr,state:t,actions:r,onGoToSessionControls:an}),o.jsx(uy,{open:E,onClose:()=>z(!1),state:t,onSelect:r.switchWorkspace,onLoadMore:r.loadMoreWorkspaces,onPickDirectory:r.pickWorkspaceDirectory,onInspect:r.inspectWorkspacePath,onListRoots:r.listWorkspaceRoots,onAddRoot:r.addWorkspaceRoot,onRemoveRoot:r.removeWorkspaceRoot,onDiscoverRoot:r.discoverWorkspaceRoot}),o.jsx(dy,{open:!!L,onClose:()=>G(null),session:L,pending:vo(t,L?.id??null),onRename:r.renameSession}),o.jsx(fy,{open:!!ne,onClose:()=>U(null),session:ne,pending:vo(t,ne?.id??null),onSave:r.updateSessionTags}),o.jsx(hy,{open:!!se,onClose:()=>ie(null),session:se,pending:vo(t,se?.id??null),onConfirm:r.deleteSession}),o.jsx(Uy,{open:Y,onClose:()=>A(!1)})]})}function jw(t){const[r,i]=m.useState(()=>typeof window>"u"?1440:Math.max(320,Math.round(window.innerWidth)));return m.useEffect(()=>{const a=t.current;if(!a)return;const d=()=>{const f=Math.max(320,Math.round(a.getBoundingClientRect().width));i(p=>p===f?p:f)};if(d(),typeof ResizeObserver<"u"){const f=new ResizeObserver(d);return f.observe(a),()=>f.disconnect()}return window.addEventListener("resize",d),()=>window.removeEventListener("resize",d)},[t]),r}const Yp=document.getElementById("root");if(!Yp)throw new Error("Orion Web root element was not found.");Fm.createRoot(Yp).render(o.jsx(Mm.StrictMode,{children:o.jsx(kw,{})}));export{py as C,Q as I,vp as P,sl as R,Oe as W,We as a,Lp as b,$p as c,Cw as d,o as j,m as r,On as s};
19
+ ${fe}`:fe)}const R=kf(T,U)*W.height;G({title:On($?.label??""),preview:v?On(v):null,top:Math.max(8,Math.min(W.height-140,R))})},[t,U,ne]),we=m.useCallback(D=>{N.current=D,j.current!==null&&window.clearTimeout(j.current),j.current=window.setTimeout(()=>{j.current=null;const ce=N.current;ce===null||k.current!==null||b.current||Ie(ce)},120)},[Ie]);m.useEffect(()=>{const D=()=>{b.current||ge()};return window.addEventListener("scroll",D,!0),()=>window.removeEventListener("scroll",D,!0)},[ge]),m.useEffect(()=>()=>{j.current!==null&&window.clearTimeout(j.current)},[]);const te=m.useCallback((D,ce)=>{const W=x.current;if(!W)return;const T=W.getBoundingClientRect(),B=jf({clientY:D,railTop:T.top,railHeight:T.height,tickCount:U}),$=ne[B];$&&p($.jumpOrder,ce)},[p,U,ne]),ye=D=>{D.button!==0||k.current!==null||(D.preventDefault(),k.current=D.pointerId,D.currentTarget.setPointerCapture(D.pointerId),document.documentElement.dataset.historyScrubbing="1",b.current=!0,z(!0),ge(),te(D.clientY,"auto"))},J=D=>{k.current===D.pointerId&&(D.currentTarget.hasPointerCapture(D.pointerId)&&D.currentTarget.releasePointerCapture(D.pointerId),k.current=null,b.current=!1,delete document.documentElement.dataset.historyScrubbing,z(!1),ge())},Se=D=>{const ce=cv({key:D.key,shiftKey:D.shiftKey,currentIndex:se-1,bucketCount:t.buckets.length,model:t});ce!==null&&(D.preventDefault(),p(ce,f?"auto":"smooth"))};return U===0?null:o.jsx("nav",{className:"history-rail","aria-label":"会话历史定位",children:o.jsxs("div",{className:"history-rail-inner",ref:x,children:[o.jsxs("div",{className:"history-slider",role:"slider","aria-label":"已加载会话历史位置","aria-valuemin":0,"aria-valuemax":Math.max(0,t.buckets.length-1),"aria-valuenow":Math.max(0,se-1),"aria-valuetext":ie?`已加载 ${ie.bucketIndex}/${ie.bucketCount} 个关键节点,当前为${ie.kindLabel}${a?";更早历史可在正文顶部加载":""}`:`已加载 ${t.buckets.length} 个关键节点${a?";更早历史可在正文顶部加载":""}`,tabIndex:0,onKeyDown:Se,onPointerDown:ye,onPointerMove:D=>{if(k.current===D.pointerId){te(D.clientY,"auto");return}we(D.clientY)},onPointerLeave:ge,onPointerUp:J,onPointerCancel:J,onLostPointerCapture:J,onDoubleClick:g,children:[o.jsx("div",{className:"history-ticks","aria-hidden":"true",children:ne.map((D,ce)=>{const W=F[ce],T=W!==null&&Y!==null&&L!==null&&W>=Y&&W<=L;return o.jsx("span",{className:["history-tick",iv(D.weight),T?"is-viewport":"",D.hasError?"is-error":"",E?"is-scrubbing":""].filter(Boolean).join(" "),style:{top:`${kf(D.index,U)*100}%`}},D.index)})}),d?o.jsx("span",{className:"history-live-bar","aria-hidden":"true"}):null]}),A?o.jsxs("div",{className:"history-preview-card",style:{top:A.top},"aria-hidden":"true",children:[o.jsx("strong",{children:A.title}),A.preview?o.jsx("p",{children:A.preview}):null]}):null]})})}const dv=10;function fv(t){const{viewportRef:r,model:i,activeSessionId:a,onUserNavigate:d}=t,f=m.useRef(new Map),p=m.useRef(null),g=m.useRef([]),x=m.useRef(null),[k,b]=m.useState(null),[j,N]=m.useState(null),E=m.useRef(d);E.current=d;const z=m.useRef(a),A=m.useRef(i);A.current=i;const G=()=>{if(x.current=null,g.current.length===0)return;const Y=g.current;if(g.current=[],Y.length===0)return;const F=r.current?.getBoundingClientRect().top??0,ge=lv(Y,F);let Ie=Number.POSITIVE_INFINITY,we=Number.NEGATIVE_INFINITY;for(const te of Y)te.topInViewport>=F-1&&(te.order<Ie&&(Ie=te.order),te.order>we&&(we=te.order));b(te=>te===ge?te:ge),N(te=>{if(!Number.isFinite(Ie)||!Number.isFinite(we))return te;const ye={firstOrder:Ie,lastOrder:we};return te?.firstOrder===ye.firstOrder&&te?.lastOrder===ye.lastOrder?te:ye})},ne=()=>{x.current===null&&(x.current=requestAnimationFrame(G))},U=()=>{p.current&&(p.current.disconnect(),p.current=null),x.current!==null&&(cancelAnimationFrame(x.current),x.current=null),g.current=[],f.current.clear(),b(null),N(null)};m.useEffect(()=>{if(z.current===a&&p.current)return;z.current=a,U();const Y=r.current;if(!Y||!i.anchors.length||typeof IntersectionObserver>"u")return;const L=new IntersectionObserver(F=>{const Ie=r.current?.getBoundingClientRect().top??0;for(const we of F){const te=Number(we.target.dataset.order);Number.isFinite(te)&&we.isIntersecting&&g.current.push({order:te,topInViewport:we.boundingClientRect.top-Ie})}ne()},{root:Y,threshold:[0,.2,.6]});return p.current=L,f.current.clear(),Y.querySelectorAll("li[data-order]").forEach(F=>{const ge=Number(F.dataset.order);Number.isFinite(ge)&&(f.current.set(ge,F),L.observe(F))}),()=>U()},[r,a,i.anchors.length,i.anchors[i.anchors.length-1]?.order]);const se=m.useCallback((Y,L)=>{if(L){if(f.current.get(Y)===L)return;f.current.set(Y,L),p.current?.observe(L);return}const F=f.current.get(Y);F&&(p.current?.unobserve(F),f.current.delete(Y))},[]);return{activeOrder:k,span:j,registerItem:se,scrollToOrder:(Y,L="smooth")=>{const F=r.current,ge=av(A.current,Y),Ie=ge!==null?f.current.get(ge):void 0;if(!F||!Ie){if(!F||A.current.anchors.length===0)return;const te=(Y-A.current.minOrder)/(A.current.maxOrder-A.current.minOrder||1);F.scrollTo({top:Math.max(0,Math.min(1,te))*(F.scrollHeight-F.clientHeight),behavior:L}),E.current?.();return}const we=Ie.getBoundingClientRect().top-F.getBoundingClientRect().top+F.scrollTop-dv;F.scrollTo({top:Math.max(0,we),behavior:L}),E.current?.()}}}const ac=40;function Nr(t){if(t.length===0)return 0;let r=1;for(let i=0;i<t.length;i+=1)t.charCodeAt(i)===10&&(r+=1);return r}function pv(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}function hv(t){if(t==null)return null;const r=t.trim();if(r.length===0)return{format:"plain",displayText:t,isEnvelope:!1,lineCount:0,isLong:!1};let i;try{i=JSON.parse(r)}catch{return{format:"plain",displayText:t,isEnvelope:!1,lineCount:Nr(t),isLong:Nr(t)>ac}}if(pv(i)&&typeof i.output=="string"){const a=i.output;return{format:"envelope",displayText:a,isEnvelope:!0,lineCount:Nr(a),isLong:Nr(a)>ac}}try{const a=JSON.stringify(i,null,2);return{format:"json",displayText:a,isEnvelope:!1,lineCount:Nr(a),isLong:Nr(a)>ac}}catch{return{format:"plain",displayText:t,isEnvelope:!1,lineCount:Nr(t),isLong:!1}}}function mp({text:t,defaultOpen:r=!1,note:i=null}){const a=hv(t),d=r||!a?.isLong,[f,p]=m.useState(d),[g,x]=m.useState(!1),k=m.useRef(null);if(m.useEffect(()=>()=>{k.current!==null&&window.clearTimeout(k.current)},[]),a===null)return null;const b=On(a.displayText),j=async()=>{try{await navigator.clipboard.writeText(a.displayText),x(!0),k.current!==null&&window.clearTimeout(k.current),k.current=window.setTimeout(()=>x(!1),1400)}catch{}},N=o.jsx("pre",{className:"tool-output-text",tabIndex:0,children:b});if(!a.isLong||r)return o.jsxs("div",{className:"tool-output-preview tool-output-preview-open",children:[N,i?o.jsx("p",{className:"truncation-note",children:i}):null]});const E=`${a.lineCount} 行 · ${a.format==="envelope"?"已解包":"文本"}`;return o.jsx("div",{className:"tool-output-preview",children:o.jsxs("details",{className:"tool-output-fold",open:f,onToggle:z=>p(z.target.open),children:[o.jsxs("summary",{children:[o.jsxs("span",{children:[E,a.isEnvelope?" · 输出已安全还原换行":""]}),o.jsx("button",{type:"button",className:"text-button",onClick:z=>{z.preventDefault(),j()},children:g?"已复制":"复制原始响应"})]}),N,i?o.jsx("p",{className:"truncation-note",children:i}):null]})})}const cc=320,mv=300;function gv({state:t,actions:r,onRevealSettings:i,onCreateSession:a,composerInsertion:d,navigationOpen:f,navigationOverlay:p,onOpenNavigation:g}){const x=wo(t),k=m.useMemo(()=>vv(t),[t.edits,t.research,t.subtasks,t.tools,t.transcript]),[b,j]=m.useState(cc),N=k.slice(-b),E=m.useRef(null),z=m.useRef(null),A=m.useRef(!0),G=m.useRef(null),[ne,U]=m.useState(!0),se=`${t.workspaceId}:${t.activeSessionId??""}`,ie=!!(t.navigationTarget||t.sessionCreationSelected),Y=m.useRef(new Map),L=m.useRef({key:se,top:0,pinned:!0,visibleCount:cc}),F=m.useRef(null),[ge,Ie]=m.useState(!1),we=m.useMemo(()=>N.map(yv).filter(W=>W!==null),[N]),te=m.useMemo(()=>Xg(we),[we]),ye=fv({viewportRef:E,model:te,activeSessionId:t.activeSessionId,onUserNavigate:()=>{A.current=!1,U(!1)}});m.useEffect(()=>{const W=window.matchMedia("(prefers-reduced-motion: reduce)");Ie(W.matches);const T=B=>Ie(B.matches);return W.addEventListener("change",T),()=>W.removeEventListener("change",T)},[]),m.useLayoutEffect(()=>{const W=L.current;if(W.key!==se)for(Y.current.delete(W.key),Y.current.set(W.key,W);Y.current.size>8;){const $=Y.current.keys().next().value;if($===void 0)break;Y.current.delete($)}const T=Y.current.get(se),B=T??{top:0,pinned:!0,visibleCount:cc};L.current={key:se,...B},F.current=T&&!T.pinned?T:null,j(B.visibleCount),A.current=B.pinned,U(B.pinned),G.current=null},[se]),m.useLayoutEffect(()=>{ie&&!L.current.pinned&&(F.current=L.current)},[ie]),m.useLayoutEffect(()=>{const W=E.current;if(!W||t.navigationTarget||t.sessionCreationSelected)return;const T=F.current;if(T){if(x.status!=="ready"||N.length===0||b!==T.visibleCount)return;W.scrollTop=T.top,F.current=null}if(G.current){const B=G.current;W.scrollTop=B.top+(W.scrollHeight-B.height),G.current=null;return}A.current&&(W.scrollTop=W.scrollHeight),L.current={key:se,top:W.scrollTop,pinned:A.current,visibleCount:b}},[N.length,t.processing,t.navigationTarget,t.sessionCreationSelected,x.status,se,b]),m.useLayoutEffect(()=>{const W=E.current,T=z.current;if(!W||!T||typeof ResizeObserver>"u")return;const B=new ResizeObserver(()=>{A.current&&(W.scrollTop=W.scrollHeight)});return B.observe(T),()=>B.disconnect()},[t.activeSessionId]);const J=()=>{if(t.navigationTarget||t.sessionCreationSelected)return;const W=E.current;if(!W)return;const T=W.scrollHeight-W.scrollTop-W.clientHeight<72;A.current=T,U(T),F.current||(L.current={key:se,top:W.scrollTop,pinned:T,visibleCount:b})},Se=!!t.sessionSnapshot?.transcript.nextCursor,D=async()=>{const W=se,T=E.current;if(T&&(G.current={height:T.scrollHeight,top:T.scrollTop}),k.length>N.length){j(B=>B+mv);return}if(Se)try{if(await r.loadOlderTranscript(),L.current.key!==W){const B=Y.current.get(W);B&&Y.current.set(W,{...B,visibleCount:B.visibleCount+100});return}j(B=>B+100)}catch{L.current.key===W&&(G.current=null)}},ce=()=>{const W=E.current;W&&(A.current=!0,U(!0),W.scrollTo({top:W.scrollHeight,behavior:"smooth"}))};return o.jsxs("main",{className:"conversation-column",id:"main-content",children:[p?o.jsx("button",{type:"button",className:"icon-button mobile-nav-toggle",onClick:g,"aria-label":"打开会话导航","aria-controls":"workspace-rail","aria-expanded":f,children:o.jsx(Q,{name:"menu"})}):null,t.bootstrap?.configured?null:o.jsxs("div",{className:"configuration-banner",role:"status",children:[o.jsx(Q,{name:"warning"}),o.jsxs("div",{children:[o.jsx("strong",{children:"模型尚未配置"}),o.jsx("span",{children:"请在 Orion 配置文件或环境变量中设置凭证。API Key 不会进入浏览器。"})]}),o.jsx("button",{type:"button",className:"secondary-button",onClick:i,children:"转到设置"})]}),o.jsxs("div",{className:"transcript-stage",children:[o.jsx("div",{className:"transcript-viewport",ref:E,role:"region","aria-label":"会话记录",tabIndex:0,onScroll:J,"aria-busy":t.processing,children:o.jsxs("div",{className:"transcript-content",ref:z,children:[k.length>N.length||Se?o.jsx("button",{type:"button",className:"load-history",onClick:()=>{D()},disabled:ks(t),children:k.length>N.length?`加载更早内容 · 还剩 ${k.length-N.length} 项`:"从持久记录加载更早内容"}):null,t.sessionCreationSelected?o.jsx(ps,{icon:"refresh",title:"正在创建会话",detail:"正在保存新会话,可以继续选择其他会话。"}):t.navigationTarget?o.jsx(ps,{icon:"refresh",title:"正在打开所选会话",detail:"正在确认项目上下文,可以继续选择其他会话。"}):t.activeSessionId?x.status==="failed"&&N.length===0?o.jsx(ps,{icon:"warning",title:"会话快照加载失败",detail:x.error??"请重试当前会话快照。"}):(x.status==="loading"||x.status==="refreshing")&&N.length===0?o.jsx(ps,{icon:"refresh",title:"正在同步会话",detail:"本地 Web Host 正在读取最近的会话快照。"}):N.length===0?o.jsx(ps,{icon:"spark",title:"准备好开始了",detail:"描述要构建、修复或调查的任务。Orion 会实时展示工具、文件变化与验证结果。"}):o.jsx("ol",{className:"timeline","aria-label":"会话记录",children:N.map(W=>o.jsx("li",{id:`conversation-item-${t.activeSessionId??"none"}-${jc(W)}`,"data-event-id":W.order,"data-order":W.order,ref:T=>ye.registerItem(W.order,T),children:wv(W,t)},jc(W)))}):o.jsx(ps,{icon:"workspace",title:"选择或创建一个会话",detail:"Orion 会在当前工作区运行,并沿用 CLI/TUI 的权限与持久化状态。",action:"创建会话",onAction:a}),t.processing&&!t.navigationTarget&&!t.sessionCreationSelected?o.jsxs("div",{className:"thinking-indicator",role:"status",children:[o.jsx("span",{}),o.jsx("span",{}),o.jsx("span",{}),o.jsx("span",{children:t.statusMessage||"Orion 正在处理…"})]}):null]})}),o.jsx(uv,{model:te,activeOrder:ye.activeOrder,span:ye.span,hasEarlierHistory:k.length>N.length||Se,processing:t.processing,reduceMotion:ge,onJumpToOrder:(W,T)=>ye.scrollToOrder(W,T),onJumpToLatest:ce})]}),!ne&&N.length>0?o.jsxs("button",{type:"button",className:"jump-latest",onClick:ce,children:[o.jsx(Q,{name:"arrow-up",size:15}),"回到最新"]}):null,o.jsxs("div",{className:"input-dock",children:[t.permission||t.queue.items.length>0?o.jsxs("div",{className:"input-transients",children:[t.permission?o.jsx(Nv,{state:t,actions:r}):null,t.queue.items.length>0?o.jsx(_v,{state:t,actions:r}):null]}):null,o.jsx(Mg,{state:t,actions:r,insertion:d})]})]})}function vv(t){const r=new Set(t.tools.map(a=>a.callId));return[...t.transcript.filter(a=>!a.toolActivity?.callId||!r.has(a.toolActivity.callId)).map(a=>({kind:"transcript",order:a.order,value:a})),...t.tools.map(a=>({kind:"tool",order:a.order,value:a})),...t.edits.map(a=>({kind:"edit",order:a.order,value:a})),...t.subtasks.map(a=>({kind:"subtask",order:a.order,value:a})),...t.research.map(a=>({kind:"research",order:a.order,value:a}))].sort((a,d)=>a.order-d.order)}function jc(t){return t.kind==="transcript"?`entry-${t.value.id}`:t.kind==="tool"?`tool-${t.value.callId}`:t.kind==="edit"?`edit-${t.order}`:t.kind==="subtask"?`subtask-${t.value.taskId}`:`research-${t.value.packetId}`}function yv(t){const r=t.order,i=jc(t);if(t.kind==="tool")return{order:r,key:i,kind:"tool",label:po(t.value.summary)||t.value.name,preview:fs(t.value.summary),priority:t.value.state==="error"?"error":"activity"};if(t.kind==="edit")return{order:r,key:i,kind:"edit",label:t.value.request.path,preview:fs(`${t.value.request.path}
20
+ ${t.value.request.newString??""}`),priority:"activity"};if(t.kind==="subtask")return{order:r,key:i,kind:"subtask",label:po(t.value.objective)||t.value.role,preview:fs(t.value.summary||t.value.objective),priority:xv.has(t.value.state)?"error":"activity"};if(t.kind==="research")return{order:r,key:i,kind:"research",label:po(t.value.objective)||"Research",preview:fs(t.value.conclusion||t.value.objective),priority:t.value.stage==="failed"?"error":"activity"};const a=t.value;if(a.toolActivity){const g=a.toolActivity;return{order:r,key:i,kind:"tool",label:po(g.summary)||g.name||g.detail||"工具活动",preview:fs(g.summary||g.body),priority:g.state==="error"?"error":"activity"}}const d=a.role;let f;return d==="user"||d==="assistant"?f="turn":f=d==="error"||d==="command"&&a.command?.success===!1?"error":"activity",(a.errorLayer||a.budgetStop)&&(f="error"),{order:r,key:i,kind:d==="user"?"user":d==="assistant"?"assistant":"system",priority:f,label:po(a.content)||a.title||(d==="user"?"用户任务":d==="assistant"?"Orion 回复":Sc(d)),preview:fs(a.content)}}const xv=new Set(["failed","timed_out","rejected","cancelled"]);function po(t){if(!t)return null;const r=t.replace(/\s+/gu," ").trim();return r.length>80?`${r.slice(0,80)}…`:r}function fs(t){if(!t)return;const r=t.trim();if(r)return r.length<=280?r:`${r.slice(0,280)}…`}function wv(t,r){if(t.kind==="transcript")return o.jsx(kv,{entry:t.value});if(t.kind==="tool"){const i=r.transcript.find(a=>a.toolActivity?.callId===t.value.callId)?.toolActivity;return o.jsx(jv,{tool:t.value,activity:i})}return t.kind==="edit"?o.jsx(Cv,{edit:t.value}):t.kind==="subtask"?o.jsx(bv,{subtask:t.value}):o.jsx(Iv,{research:t.value})}function kv({entry:t}){if(t.toolActivity)return o.jsx(Sv,{entry:t});if(Rv(t))return o.jsxs("details",{className:"reasoning-card",children:[o.jsxs("summary",{children:[o.jsx(Tc,{state:t.live?"running":"ready",describe:!1}),o.jsx("span",{children:t.live?"正在分析":t.title||"推理摘要"}),o.jsx("span",{className:"reasoning-hint",children:"展开查看 Runtime 提供的摘要"})]}),o.jsx(ko,{children:t.content})]});const r=t.role;return o.jsxs("article",{className:`message-card role-${r}`,"aria-label":Sc(r),children:[o.jsxs("header",{children:[o.jsx("span",{className:"message-avatar","aria-hidden":"true",children:Pv(r)}),o.jsx("span",{children:t.title||Sc(r)}),t.live?o.jsx("span",{className:"streaming-label",children:"生成中"}):null,t.command?o.jsx("span",{className:`command-state ${t.command.success?"success":"error"}`,children:t.command.success?"成功":"失败"}):null]}),o.jsx("div",{className:"message-body",children:r==="user"?o.jsx("p",{className:"literal-message",children:t.content}):o.jsx(ko,{children:t.content})}),t.budgetStop?o.jsxs("div",{className:"budget-stop",role:"status",children:[o.jsx(Q,{name:"pause",size:15}),o.jsxs("span",{children:[t.budgetStop.reason," · 状态已保留"]})]}):null]})}function jv({tool:t,activity:r}){const i=t.workspaceMutation?.phase==="queued"?`等待工作树写入${t.workspaceMutation.queuePosition?`(第 ${t.workspaceMutation.queuePosition} 位)`:""}`:t.workspaceMutation?.phase==="running"?"正在写入工作树":t.state==="running"?"运行中":t.state==="success"?"完成":t.state==="skipped"?"跳过":"失败",a=r?.outputView?.preview||r?.body||t.error||t.summary;return o.jsxs("article",{className:`tool-card tool-${t.state}`,"aria-label":`工具 ${t.name}:${i}`,children:[o.jsxs("div",{className:"tool-card-header",children:[o.jsx("span",{className:`tool-state-icon ${t.state}`,"aria-hidden":"true",children:t.state==="running"?o.jsx("span",{className:"spinner"}):o.jsx(Q,{name:t.state==="success"?"check":t.state==="skipped"?"pause":"warning",size:15})}),o.jsxs("div",{className:"tool-title",children:[o.jsx("strong",{children:t.name}),o.jsxs("span",{children:["#",t.sequence," · ",i,t.duration!==void 0?` · ${gp(t.duration)}`:""]})]}),t.outputBytes!==void 0?o.jsx("span",{className:"byte-pill",children:Cc(t.outputBytes)}):null]}),t.summary||t.error?o.jsx("p",{className:t.error?"tool-error-copy":"tool-summary",children:On(t.error||t.summary||"")}):null,o.jsxs("details",{className:"tool-details",open:t.state==="error",children:[o.jsx("summary",{children:"输入与详情"}),o.jsxs("dl",{className:"tool-meta-grid",children:[o.jsxs("div",{children:[o.jsx("dt",{children:"授权"}),o.jsx("dd",{children:t.authorization?`${t.authorization.approved?"允许":"拒绝"} · ${t.authorization.source}`:"等待 Runtime 记录"})]}),t.artifactId?o.jsxs("div",{children:[o.jsx("dt",{children:"产物"}),o.jsx("dd",{children:o.jsx("code",{children:t.artifactId})})]}):null]}),o.jsxs("div",{className:"tool-detail-section",children:[o.jsx("span",{className:"micro-label",children:"参数(已脱敏)"}),o.jsx("pre",{tabIndex:0,children:Pc(t.args)})]}),a?o.jsxs("div",{className:"tool-detail-section",children:[o.jsx("span",{className:"micro-label",children:"输出预览"}),o.jsx(mp,{text:a,defaultOpen:t.state==="error",note:r?.outputView?.omittedBytes?`另有 ${Cc(r.outputView.omittedBytes)} 已折叠,可在 Inspector 中查看产物。`:null})]}):null]})]})}function Sv({entry:t}){const r=t.toolActivity;return o.jsxs("article",{className:`tool-card tool-${r.state}`,children:[o.jsxs("div",{className:"tool-card-header",children:[o.jsx("span",{className:`tool-state-icon ${r.state}`,"aria-hidden":"true",children:o.jsx(Q,{name:"terminal",size:15})}),o.jsxs("div",{className:"tool-title",children:[o.jsx("strong",{children:r.name}),o.jsx("span",{children:r.detail})]})]}),r.summary?o.jsx("p",{className:"tool-summary",children:r.summary}):null,r.outputView?.preview||r.body?o.jsxs("div",{className:"tool-detail-section tool-output-section",children:[o.jsx("span",{className:"micro-label",children:"输出"}),o.jsx(mp,{text:r.outputView?.preview||r.body,defaultOpen:r.state==="error",note:r.outputView?.omittedBytes?`另有 ${Cc(r.outputView.omittedBytes)} 已折叠,可在 Inspector 中查看产物。`:null})]}):null]})}function Cv({edit:t}){const r=t.request;return o.jsxs("article",{className:"edit-card",children:[o.jsxs("header",{children:[o.jsx("span",{className:"edit-icon",children:o.jsx(Q,{name:"edit",size:15})}),o.jsxs("div",{children:[o.jsx("strong",{children:"文件修改预览"}),o.jsxs("span",{children:[r.kind," · ",r.candidates.length," 个候选"]})]})]}),o.jsx("code",{className:"path-chip",title:r.path,children:r.path}),o.jsxs("details",{children:[o.jsx("summary",{children:"查看替换内容"}),o.jsx("pre",{tabIndex:0,children:On(r.newString)})]})]})}function bv({subtask:t}){return o.jsxs("details",{className:`activity-card subtask-card state-${t.state}`,children:[o.jsxs("summary",{children:[o.jsx(Q,{name:"branch",size:16}),o.jsxs("span",{children:[o.jsx("strong",{children:t.role}),o.jsx("small",{children:t.state})]}),t.durationMs!==void 0?o.jsx("time",{children:gp(t.durationMs)}):null]}),o.jsx("p",{children:t.objective}),t.summary?o.jsx(ko,{children:t.summary}):null]})}function Iv({research:t}){return o.jsxs("details",{className:`activity-card research-card state-${t.stage}`,children:[o.jsxs("summary",{children:[o.jsx(Q,{name:"search",size:16}),o.jsxs("span",{children:[o.jsx("strong",{children:"Research"}),o.jsxs("small",{children:[t.stage," · ",t.sources.length," sources"]})]})]}),t.objective?o.jsx("p",{children:t.objective}):null,t.conclusion?o.jsx(ko,{children:t.conclusion}):null,t.sources.length>0?o.jsx("ul",{className:"source-list",children:t.sources.map(r=>o.jsxs("li",{children:[o.jsx(Tc,{state:r.status}),o.jsx("span",{children:r.title||r.location||r.id}),o.jsxs("small",{children:[r.provider," · ",r.status]})]},r.id))}):null]})}function Nv({state:t,actions:r}){const i=t.permission,a=m.useRef(null),d=m.useRef("");m.useEffect(()=>{d.current!==i.id&&(d.current=i.id,a.current?.focus())},[i.id]);const f=ks(t)||t.connection!=="live"||!ir(t);return o.jsxs("section",{ref:a,className:"approval-card",role:"region","aria-live":"assertive","aria-labelledby":"approval-title","aria-describedby":"approval-reason",tabIndex:-1,children:[o.jsxs("div",{className:"approval-heading",children:[o.jsx("span",{className:"approval-icon",children:o.jsx(Q,{name:"warning",size:17})}),o.jsxs("div",{children:[o.jsx("span",{className:"eyebrow",children:"需要你的确认"}),o.jsxs("h2",{id:"approval-title",children:["允许 ",i.name,"?"]})]})]}),o.jsx("p",{id:"approval-reason",children:i.reason||"该工具需要在当前权限策略下获得明确授权。"}),o.jsxs("details",{className:"approval-args",children:[o.jsx("summary",{children:"查看脱敏参数"}),o.jsx("pre",{tabIndex:0,children:Pc(i.args,6e3)})]}),o.jsxs("div",{className:"approval-actions",children:[o.jsx("button",{type:"button",className:"danger-ghost-button",onClick:()=>Tn(r.answerPermission(!1)),disabled:f,children:"拒绝"}),o.jsx("button",{type:"button",className:"secondary-button",onClick:()=>Tn(r.answerPermission(!0,"once")),disabled:f,children:"仅本次"}),o.jsx("button",{type:"button",className:"secondary-button",onClick:()=>Tn(r.answerPermission(!0,"project")),disabled:f,children:"允许此项目"}),o.jsx("button",{type:"button",className:"primary-button",onClick:()=>Tn(r.answerPermission(!0,"global")),disabled:f,children:"始终允许"})]}),o.jsx("p",{className:"approval-footnote",children:"项目与全局授权会写入 Orion 配置;拒绝不会丢失当前会话。"})]})}function _v({state:t,actions:r}){const i=ks(t)||t.connection!=="live"||!ir(t);return o.jsxs("details",{className:"queue-dock",children:[o.jsxs("summary",{children:[o.jsxs("span",{children:[t.queue.items.length," 条排队消息"]}),o.jsx("span",{children:"执行时采用最新 Composer 控制"})]}),o.jsxs("div",{className:"queue-list",children:[t.queue.items.map((a,d)=>o.jsx(Ev,{item:a,index:d,count:t.queue.items.length,disabled:i,actions:r},a.id)),o.jsx("button",{type:"button",className:"text-button queue-clear",onClick:()=>Tn(r.clearQueue()),disabled:i,children:"清空队列"})]})]})}function Ev({item:t,index:r,count:i,disabled:a,actions:d}){const[f,p]=m.useState(!1),[g,x]=m.useState(t.text);m.useEffect(()=>x(t.text),[t.text]);const k=async()=>{const b=g.trim();b&&(await d.editQueued(t.id,t.revision,b),p(!1))};return o.jsxs("div",{className:"queue-row",children:[o.jsx("span",{className:"queue-index",children:r+1}),f?o.jsx("textarea",{rows:2,value:g,"aria-label":`编辑排队消息 ${r+1}`,onChange:b=>x(b.target.value)}):o.jsx("p",{children:t.text}),o.jsxs("div",{className:"queue-row-actions",children:[o.jsx("button",{type:"button",className:"icon-button","aria-label":`上移排队消息 ${r+1}`,onClick:()=>Tn(d.moveQueued(t.id,t.revision,r-1)),disabled:a||r===0,children:o.jsx(Q,{name:"arrow-up",size:13})}),o.jsx("button",{type:"button",className:"icon-button queue-move-down","aria-label":`下移排队消息 ${r+1}`,onClick:()=>Tn(d.moveQueued(t.id,t.revision,r+1)),disabled:a||r===i-1,children:o.jsx(Q,{name:"arrow-up",size:13})}),f?o.jsx("button",{type:"button",className:"text-button",onClick:()=>Tn(k()),disabled:a||!g.trim(),children:"保存"}):o.jsx("button",{type:"button",className:"text-button",onClick:()=>p(!0),disabled:a,children:"编辑"}),o.jsx("button",{type:"button",className:"icon-button","aria-label":`移除排队消息 ${r+1}`,onClick:()=>Tn(d.removeQueued(t.id,t.revision)),disabled:a,children:o.jsx(Q,{name:"trash",size:14})})]})]})}function ps({icon:t,title:r,detail:i,action:a,onAction:d}){return o.jsxs("section",{className:"empty-conversation",children:[o.jsx("div",{className:"empty-orbit",children:o.jsx(Q,{name:t,size:26})}),o.jsx("h2",{children:r}),o.jsx("p",{children:i}),a&&d?o.jsx("button",{type:"button",className:"primary-button",onClick:d,children:a}):null]})}function Rv(t){const r=`${t.title??""}`.toLocaleLowerCase();return r.includes("reason")||r.includes("think")||r.includes("analysis")||r.includes("推理")||r.includes("思考")}function Sc(t){return t==="user"?"你":t==="assistant"?"Orion":t==="command"?"命令":t==="error"?"错误":t==="system"?"系统":t==="status"?"状态":"工具"}function Pv(t){return t==="user"?"Y":t==="assistant"?"O":t==="error"?"!":t==="command"?"›":"·"}function Tn(t){t.catch(()=>{})}function gp(t){return t<1e3?`${Math.round(t)}ms`:t<6e4?`${(t/1e3).toFixed(t<1e4?1:0)}s`:`${Math.floor(t/6e4)}m ${Math.round(t%6e4/1e3)}s`}function Cc(t){return t<1024?`${t} B`:t<1048576?`${(t/1024).toFixed(1)} KB`:`${(t/1048576).toFixed(1)} MB`}const Tv=.02,Ov=.1;function vs(t,r,i){const a=Number.isFinite(t)?Math.round(t):r;return Math.min(i,Math.max(r,a))}function Mv({side:t,clientX:r,bounds:i,minWidth:a,maxWidth:d}){const f=t==="left"?r-i.left:i.right-r;return vs(f,a,d)}function Av(t,r,i){const a=i-r;if(a<=0)return 0;const d=(vs(t,r,i)-r)/a;return Math.round(d*100)}function Lv(t){const{key:r,minWidth:i,maxWidth:a,defaultWidth:d,currentWidth:f,side:p}=t,g=j=>vs(j,i,a);if(r==="Home")return g(i);if(r==="End")return g(a);if(r==="Enter"||r===" ")return g(d);if(r!=="ArrowLeft"&&r!=="ArrowRight")return null;const x=t.shiftKey?Ov:Tv,k=Math.max(1,Math.round((a-i)*x)),b=(r==="ArrowRight"?1:-1)*(p==="left"?1:-1);return g(f+b*k)}function vp({side:t,className:r,minWidth:i,maxWidth:a,defaultWidth:d,label:f,width:p,controls:g,boundsRef:x,resizingScope:k="workbench",onPreview:b,onCommit:j}){const N=m.useRef(vs(p??d,i,a)),E=m.useRef(null),z=m.useRef(null),A=m.useRef(null),G=()=>{A.current!==null&&cancelAnimationFrame(A.current),A.current=null},ne=()=>{E.current=null,z.current=null,G(),delete document.documentElement.dataset.panelResizing};m.useEffect(()=>ne,[]),m.useEffect(()=>{p===void 0||E.current!==null||(N.current=vs(p,i,a))},[p,i,a]);const U=te=>{N.current=te,z.current=te,A.current===null&&(A.current=requestAnimationFrame(()=>{A.current=null;const ye=z.current;z.current=null,ye!==null&&b(ye)}))},se=te=>{let ye;if(x?.current){const J=x.current.getBoundingClientRect();ye={left:J.left,right:J.right}}else ye=te.currentTarget.closest(".workbench-shell")?.getBoundingClientRect()??{left:0,right:window.innerWidth};return Mv({side:t,clientX:te.clientX,bounds:ye,minWidth:i,maxWidth:a})},ie=te=>{if(te.button!==0||E.current!==null)return;te.preventDefault(),E.current=te.pointerId,te.currentTarget.setPointerCapture(te.pointerId);const ye=k==="resource-split"?"resource-split":t;document.documentElement.dataset.panelResizing=ye,U(se(te))},Y=te=>{E.current===te.pointerId&&U(se(te))},L=te=>{if(E.current!==te.pointerId)return;te.currentTarget.hasPointerCapture(te.pointerId)&&te.currentTarget.releasePointerCapture(te.pointerId);const ye=z.current??N.current;ne(),b(ye),j(ye)},F=te=>{if(E.current!==te.pointerId)return;const ye=z.current??N.current;ne(),b(ye),j(ye)},ge=te=>{N.current=te,b(te),j(te)},Ie=te=>{const ye=Lv({key:te.key,shiftKey:te.shiftKey,minWidth:i,maxWidth:a,defaultWidth:d,currentWidth:N.current,side:t});ye!==null&&(te.preventDefault(),ge(ye))},we=Av(N.current,i,a);return o.jsx("div",{className:`panel-resize-handle panel-resize-handle-${t}${r?` ${r}`:""}`,role:"separator","aria-orientation":"vertical","aria-label":f,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":we,"aria-valuetext":`${N.current} 像素`,"aria-controls":g,tabIndex:0,title:`${f};方向键调整,Shift 加速,Enter 恢复默认,双击亦可恢复`,onPointerDown:ie,onPointerMove:Y,onPointerUp:L,onPointerCancel:L,onLostPointerCapture:F,onKeyDown:Ie,onDoubleClick:()=>ge(vs(d,i,a)),children:o.jsx("span",{})})}const $v=["ArrowDown","ArrowUp","Home","End","Escape"];function Dv({label:t,items:r,disabled:i=!1}){const[a,d]=m.useState(!1),f=m.useRef(null),p=m.useRef(null),g=m.useRef([]),x=m.useId(),k=()=>{d(!1),p.current?.focus()};m.useEffect(()=>{if(!a)return;const j=N=>{f.current?.contains(N.target)||d(!1)};return document.addEventListener("pointerdown",j),()=>document.removeEventListener("pointerdown",j)},[a]),m.useEffect(()=>{if(!a)return;const j=r.findIndex(N=>!N.disabled);g.current[j>=0?j:0]?.focus()},[a]);const b=j=>{if(!$v.includes(j.key))return;if(j.preventDefault(),j.key==="Escape"){k();return}const N=r.map((A,G)=>({item:A,index:G})).filter(A=>!A.item.disabled);if(!N.length)return;const E=N.findIndex(A=>g.current[A.index]===document.activeElement);let z=0;if(j.key==="Home")z=0;else if(j.key==="End")z=N.length-1;else{const A=j.key==="ArrowDown"?1:-1;z=E<0?0:(E+A+N.length)%N.length}g.current[N[z].index]?.focus()};return o.jsxs("div",{className:"session-row-menu",ref:f,children:[o.jsx("button",{ref:p,type:"button",className:"icon-button session-row-menu-trigger","aria-label":t,"aria-haspopup":"menu","aria-expanded":a,disabled:i,onClick:()=>d(j=>!j),onKeyDown:j=>{if(j.key==="ArrowDown"||j.key==="Enter"||j.key===" "){if(a)return;j.preventDefault(),d(!0)}},children:o.jsx(Q,{name:"more",size:15})}),a?o.jsx("div",{className:"session-menu",role:"menu","aria-label":t,onKeyDown:b,children:r.map((j,N)=>o.jsxs("button",{ref:E=>{g.current[N]=E},type:"button",role:"menuitem",className:`session-menu-item${j.danger?" danger":""}`,tabIndex:-1,disabled:j.disabled,"aria-describedby":j.hint?`${x}-${j.id}`:void 0,onClick:()=>{d(!1),j.onSelect()},children:[j.label,j.hint?o.jsx("span",{id:`${x}-${j.id}`,className:"session-menu-hint",children:j.hint}):null]},j.id))}):null]})}const Ac=240,yl=280,yp=480,Sf=48,Lc=320,$c=420,xp=3200,rt=48,Cf=560,wp="orion.web.workbench-layout.v2",zv="orion.web.work-panel.v1",bc=["agent","review","terminal","files","git"],Tr=Object.freeze({schemaVersion:2,projectNavigation:Object.freeze({expanded:!0,widthPx:yl}),workPanel:Object.freeze({expanded:!0,widthPx:$c,activePanel:"agent",agentPanel:"goal"})});function Ki(t,r){const i=Uv(t),a=kp(r.projectNavigation.widthPx),d=So(r.workPanel.widthPx);if(i<=760)return Object.freeze({projectNavigation:Object.freeze({mode:"drawer",widthPx:0}),conversationWidthPx:i,workPanel:Object.freeze({mode:"drawer",widthPx:0})});if(i<=1180){const k=i-Cf,j=r.projectNavigation.expanded&&k>=Ac?"dock":r.projectNavigation.expanded?"drawer":"rail",N=j==="dock"?Math.min(a,k):j==="rail"?Sf:0;return Object.freeze({projectNavigation:Object.freeze({mode:j,widthPx:N}),conversationWidthPx:Math.max(0,i-N),workPanel:Object.freeze({mode:"drawer",widthPx:0})})}const f=r.projectNavigation.expanded?a:Sf,p=i-f-Cf,g=r.workPanel.expanded&&p>=Lc,x=g?Math.min(d,p):rt;return Object.freeze({projectNavigation:Object.freeze({mode:r.projectNavigation.expanded?"dock":"rail",widthPx:f}),conversationWidthPx:Math.max(0,i-f-x),workPanel:Object.freeze({mode:g?"dock":"rail",widthPx:x})})}function kp(t){const r=Number.isFinite(t)?Math.round(t):yl;return Math.min(yp,Math.max(Ac,r))}function So(t){const r=Number.isFinite(t)?Math.round(t):$c;return Math.min(xp,Math.max(Lc,r))}function Wv(t,r=null){if(!t)return qv(r);try{const i=JSON.parse(t);if(!tl(i)||i.schemaVersion!==2)return Tr;const a=tl(i.projectNavigation)?i.projectNavigation:{},d=tl(i.workPanel)?i.workPanel:{};return jp({schemaVersion:2,projectNavigation:{expanded:typeof a.expanded=="boolean"?a.expanded:!0,widthPx:kp(Number(a.widthPx))},workPanel:{expanded:typeof d.expanded=="boolean"?d.expanded:!0,widthPx:So(Number(d.widthPx)),activePanel:Co(d.activePanel)?d.activePanel:"agent",agentPanel:Cp(d.agentPanel)?d.agentPanel:"goal",order:Hv(d.order)}})}catch{return Tr}}function Fv(){const t=Sp();if(!t)return Tr;try{return Wv(t.localStorage.getItem(wp),t.localStorage.getItem(zv))}catch{return Tr}}function Bv(t){const r=Sp();if(r)try{r.localStorage.setItem(wp,JSON.stringify(t))}catch{}}function qv(t){if(!t)return Tr;try{const r=JSON.parse(t);return!tl(r)||r.schemaVersion!==1?Tr:jp({schemaVersion:2,projectNavigation:{expanded:!0,widthPx:yl},workPanel:{expanded:typeof r.expanded=="boolean"?r.expanded:!0,widthPx:So(Number(r.widthPx)),activePanel:Co(r.activePanel)?r.activePanel:"agent",agentPanel:Cp(r.agentPanel)?r.agentPanel:"goal"}})}catch{return Tr}}function jp(t){return Object.freeze({schemaVersion:2,projectNavigation:Object.freeze({...t.projectNavigation}),workPanel:Object.freeze({...t.workPanel})})}function Uv(t){return!Number.isFinite(t)||t<=0?1440:Math.max(320,Math.round(t))}function Sp(){return globalThis.window??null}function Hv(t){if(!Array.isArray(t)||t.length!==bc.length)return;const r=new Set;for(const i of t){if(!Co(i)||r.has(i))return;r.add(i)}return Object.freeze([...t])}function Co(t){return["agent","review","terminal","files","git"].includes(String(t))}function Cp(t){return["goal","activity","integrations","diagnostics"].includes(String(t))}function tl(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}function bp({size:t=20,className:r,pixel:i=!1}){const a=m.useId(),d=`orion-bar-a-${a}`,f=`orion-bar-b-${a}`,p=`orion-bar-c-${a}`;return o.jsx("span",{className:r?`orion-brand-mark ${i?"orion-brand-mark-pixel ":""}${r}`:`orion-brand-mark${i?" orion-brand-mark-pixel":""}`,"aria-hidden":"true",style:{width:t,height:t},children:o.jsxs("svg",{viewBox:"0 0 20 20",width:t,height:t,focusable:"false",role:"presentation",shapeRendering:i?"crispEdges":void 0,children:[o.jsxs("defs",{children:[o.jsxs("linearGradient",{id:d,x1:"0",y1:"0",x2:"0",y2:"1",children:[o.jsx("stop",{offset:"0",className:"orion-mark-stop orion-mark-stop-primary"}),o.jsx("stop",{offset:"1",className:"orion-mark-stop orion-mark-stop-secondary"})]}),o.jsxs("linearGradient",{id:f,x1:"0",y1:"0",x2:"0",y2:"1",children:[o.jsx("stop",{offset:"0",className:"orion-mark-stop orion-mark-stop-primary"}),o.jsx("stop",{offset:"1",className:"orion-mark-stop orion-mark-stop-secondary"})]}),o.jsxs("linearGradient",{id:p,x1:"0",y1:"0",x2:"0",y2:"1",children:[o.jsx("stop",{offset:"0",className:"orion-mark-stop orion-mark-stop-primary"}),o.jsx("stop",{offset:"1",className:"orion-mark-stop orion-mark-stop-secondary"})]})]}),i?[{x:2,y:9,h:9},{x:8,y:4,h:14},{x:14,y:7,h:11}].map(g=>o.jsxs(m.Fragment,{children:[o.jsx("rect",{x:g.x,y:g.y,width:"4",height:Math.max(1,g.h-1),rx:0,style:{fill:"var(--accent)"}}),g.h>1?o.jsx("rect",{x:g.x,y:g.y+g.h-1,width:"4",height:"1",rx:0,style:{fill:"var(--accent-2)"}}):null]},g.x)):o.jsxs(o.Fragment,{children:[o.jsx("rect",{className:"orion-mark-bar",x:"2",y:"9",width:"4",height:"9",rx:2,fill:`url(#${d})`}),o.jsx("rect",{className:"orion-mark-bar",x:"8",y:"4",width:"4",height:"14",rx:2,fill:`url(#${f})`}),o.jsx("rect",{className:"orion-mark-bar",x:"14",y:"7",width:"4",height:"11",rx:2,fill:`url(#${p})`})]})]})})}const nl=5,bf=7,Ic=1,Vv=Object.freeze({c:[".....",".....",".###.","#....","#....","#....",".###."],d:["....#","....#",".####","#...#","#...#","#...#",".####"],e:[".....",".....",".###.","#...#","#####","#....",".###."],i:["..#..",".....","..#..","..#..","..#..","..#..","..#.."],n:[".....",".....","#.##.","##..#","#...#","#...#","#...#"],o:[".....",".....",".###.","#...#","#...#","#...#",".###."],r:[".....",".....","#.##.","##..#","#....","#....","#...."],"-":[".....",".....",".....",".###.",".....",".....","....."]});function Kv(t){const r=[];let i=0;for(const a of t.toLocaleLowerCase()){const d=Vv[a];d&&d.forEach((f,p)=>{let g=-1;for(let x=0;x<=nl;x+=1){const k=x<nl&&f[x]==="#";k&&g<0?g=x:!k&&g>=0&&(r.push({x:i+g,y:p,w:x-g}),g=-1)}}),i+=nl+Ic}return r}function Gv({text:t,scale:r=2,className:i}){const a=m.useMemo(()=>Kv(t),[t]),d=t.length*(nl+Ic)-Ic;return a.length?o.jsx("svg",{className:i?`pixel-wordmark ${i}`:"pixel-wordmark",viewBox:`0 0 ${d} ${bf}`,width:d*r,height:bf*r,shapeRendering:"crispEdges",role:"img","aria-label":t,children:a.map(f=>o.jsx("rect",{x:f.x,y:f.y,width:f.w,height:1,style:{fill:"var(--text)"}},`${f.x}-${f.y}`))}):null}const _r=40;function Qv({state:t,drawerOpen:r,dockVisible:i,collapsed:a,resizable:d,width:f,onExpand:p,onCollapse:g,onOpenWorkspaceDialog:x,onOpenSettings:k,onLoadMoreWorkspaces:b,onCreateSession:j,onLoadWorkspaceSessions:N,onActivateContext:E,onSetPinned:z,onRemoveWorkspace:A,onRefreshSummary:G,onRenameSession:ne,onSessionTags:U,onArchiveSession:se,onDeleteSession:ie,onRestoreSession:Y,onWidthPreview:L,onWidthCommit:F}){const[ge,Ie]=m.useState(""),[we,te]=m.useState(0),[ye,J]=m.useState(new Set([t.workspaceId,t.navigationTarget?.workspaceId].filter(v=>!!v))),Se=m.useDeferredValue(ge.trim().toLocaleLowerCase()),D=!!t.pendingAction,ce=D;m.useEffect(()=>{J(v=>new Set([...v,...[t.workspaceId,t.navigationTarget?.workspaceId].filter(R=>!!R)]))},[t.workspaceId,t.navigationTarget?.workspaceId]),m.useEffect(()=>te(0),[Se]);const W=m.useMemo(()=>{const v=[...t.workspaces].sort(Yv);return Se?v.filter(R=>Nf(R,Se)?!0:(t.workspaceSessions[R.id]?.items??[]).some(ue=>[ue.name,ue.taskSummary,ue.id].filter(fe=>!!fe).some(fe=>fe.toLocaleLowerCase().includes(Se)))):v},[Se,t.workspaceSessions,t.workspaces]);m.useEffect(()=>{const v=W.findIndex(R=>R.id===t.workspaceId);v<0||te(R=>v<R||v>=R+_r?Math.floor(v/_r)*_r:R)},[W,t.workspaceId]);const T=W.slice(we,we+_r),B=!!(Se&&(t.workspaceNextCursor||Object.values(t.workspaceSessions).some(v=>!!v.nextCursor))),$=v=>{const R=new Set(ye);R.has(v.id)?R.delete(v.id):(R.add(v.id),t.workspaceSessions[v.id]?G(v.id):N(v.id)),J(R)};if(a&&!r){const v=t.workspaces.find(R=>R.id===t.workspaceId);return o.jsxs("aside",{id:"workspace-rail",className:"workspace-rail project-navigator project-navigator-collapsed","aria-label":"项目与会话",hidden:!i,children:[o.jsx("div",{className:"project-rail-brand","aria-hidden":"true",children:o.jsx(bp,{size:22})}),o.jsx("button",{type:"button",className:"icon-button project-rail-action","aria-label":"展开项目导航",title:"展开项目导航(⌘/Ctrl+B)",onClick:p,children:o.jsx(Q,{name:"sidebar",size:17})}),o.jsx("button",{type:"button",className:"icon-button project-rail-action","aria-label":"新建会话",title:"新建会话",onClick:j,disabled:D||t.sessionCreationPending||!t.workspaceId,children:o.jsx(Q,{name:"add",size:18})}),o.jsx("button",{type:"button",className:"icon-button project-rail-action project-rail-workspace","aria-label":v?`打开项目 ${v.label}`:"打开项目导航",title:v?.label??"打开项目导航",onClick:p,children:o.jsx(Q,{name:"workspace",size:17})}),o.jsx("span",{className:"project-rail-spacer"}),o.jsx("button",{type:"button",className:"icon-button project-rail-action","aria-label":"打开设置",title:"设置",onClick:k,children:o.jsx(Q,{name:"settings",size:17})}),o.jsx("span",{className:`connection-dot project-rail-connection ${t.connection}`,"aria-label":uc(t.connection),title:uc(t.connection)})]})}return o.jsxs("aside",{id:"workspace-rail",className:`workspace-rail project-navigator ${r?"drawer-open":""}`,"aria-label":"项目与会话",hidden:!i,children:[o.jsxs("div",{className:"project-toolbar",children:[o.jsxs("div",{className:"project-toolbar-brand",children:[o.jsx(Gv,{text:"orion-code",scale:2}),o.jsx("h2",{className:"sr-only",children:"项目"})]}),o.jsxs("div",{className:"project-toolbar-actions",children:[o.jsx("button",{type:"button",className:"icon-button drawer-close","aria-label":"关闭项目导航",onClick:g,children:o.jsx(Q,{name:"close"})}),o.jsx("button",{type:"button",className:"icon-button","aria-label":"收起项目导航",title:"收起项目导航(⌘/Ctrl+B)",onClick:g,children:o.jsx(Q,{name:"chevron-left"})}),o.jsx("button",{type:"button",className:"icon-button","aria-label":"选择其他工作区",title:"打开其他项目",onClick:x,disabled:ce,children:o.jsx(Q,{name:"add"})})]})]}),o.jsxs("label",{className:"project-search",children:[o.jsx("span",{className:"sr-only",children:"搜索项目和会话"}),o.jsx(Q,{name:"search",size:15}),o.jsx("input",{type:"search",value:ge,onChange:v=>Ie(v.target.value),placeholder:"搜索项目和会话"}),ge?o.jsx("button",{type:"button","aria-label":"清除搜索",onClick:()=>Ie(""),children:o.jsx(Q,{name:"close",size:13})}):null]}),o.jsxs("nav",{className:"project-tree","aria-label":"已知项目","aria-description":B?"搜索仅覆盖已加载的项目和会话;仍有分页内容未加载。":void 0,children:[T.map((v,R)=>{const ue=we+R,fe=W[ue-1],ke=ye.has(v.id)||!!Se,re=t.workspaceSessions[v.id],he=t.workspaceProjectSummaries[v.id],je=Nf(v,Se)?re?.items??[]:Xv(re?.items??[],Se);return o.jsxs(m.Fragment,{children:[ue===0||fe?.pinnedOrder!==void 0&&v.pinnedOrder===void 0?o.jsx("h3",{className:"project-group-heading",role:"presentation",children:v.pinnedOrder===void 0?"RECENT":"PINNED"}):null,o.jsxs("section",{className:`project-node ${v.active?"active":""} ${v.available?"":"unavailable"}`,children:[o.jsxs("div",{className:"project-row",children:[o.jsxs("button",{id:`project-${v.id}`,type:"button",className:"project-toggle","aria-expanded":ke,"aria-controls":`project-${v.id}-sessions`,"aria-current":v.active?"page":void 0,onClick:()=>$(v),onKeyDown:le=>{if(le.key==="ArrowRight"){le.preventDefault(),ke?le.currentTarget.closest(".project-node")?.querySelector(".project-session-main")?.focus():$(v);return}if(le.key==="ArrowLeft"&&ke){le.preventDefault(),$(v);return}If(le)},children:[o.jsx(Q,{name:"chevron",size:13}),o.jsx("span",{className:"workspace-icon",children:o.jsx(Q,{name:"workspace",size:15})}),o.jsxs("span",{className:"project-copy",children:[o.jsx("strong",{children:v.label}),o.jsx("span",{title:v.path,children:he?`${he.detached?he.head||"detached":he.branch||"Git"} · ${he.dirtyCount?`M${he.dirtyCount}`:"clean"}`:Jv(v.path)})]})]}),o.jsx("button",{type:"button",className:"icon-button project-pin","aria-label":`${v.pinnedOrder===void 0?"置顶":"取消置顶"}项目 ${v.label}`,"aria-pressed":v.pinnedOrder!==void 0,onClick:()=>z(v.id,v.pinnedOrder===void 0),disabled:D,children:o.jsx("span",{"aria-hidden":"true",children:v.pinnedOrder===void 0?"○":"●"})}),!v.available&&!v.active?o.jsx("button",{type:"button",className:"icon-button project-remove","aria-label":`移除不可用项目 ${v.label}`,onClick:()=>A(v.id),disabled:D,children:o.jsx(Q,{name:"close",size:13})}):o.jsx("button",{type:"button",className:"icon-button project-add-session","aria-label":`在 ${v.label} 新建会话`,disabled:D||t.sessionCreationPending||!v.available||!v.active,onClick:j,title:v.active?"新建会话":"先激活项目后新建会话",children:o.jsx(Q,{name:"add",size:14})})]}),ke?o.jsxs(m.Fragment,{children:[o.jsxs("div",{id:`project-${v.id}-sessions`,className:"project-sessions",role:"list","aria-label":`${v.label} 的会话`,children:[re?.status==="loading"&&!re.items.length?o.jsx("p",{className:"project-loading",role:"listitem",children:"正在加载会话…"}):null,re?.status==="error"?o.jsx("div",{role:"listitem",children:o.jsx("button",{type:"button",className:"project-load-error",onClick:()=>N(v.id),children:"加载失败,重试"})}):null,v.active&&t.sessionCreationPending?o.jsx("p",{className:"project-loading",role:"listitem","aria-current":t.sessionCreationSelected?"page":void 0,"aria-live":"polite",children:"正在创建会话…"}):null,je.map(le=>{const Me=t.sessionCreationSelected?!1:t.navigationTarget?t.navigationTarget.workspaceId===v.id&&t.navigationTarget.sessionId===le.id:v.active&&le.id===t.activeSessionId,Ke=t.sessionRuntimeById[le.id],tt=ey(Ke),st=ny(Ke?.phase),lt=le.tags??[];return o.jsxs("div",{className:`project-session-row ${Me?"active":""}`,role:"listitem",children:[o.jsxs("button",{type:"button",className:"project-session-main","aria-current":Me?"page":void 0,"aria-disabled":Me||!v.available,onClick:()=>{Me||E(v.id,le.id)},disabled:!v.available,onKeyDown:dt=>{if(dt.key==="ArrowLeft"){dt.preventDefault(),document.getElementById(`project-${v.id}`)?.focus();return}If(dt)},children:[o.jsx("span",{className:`session-state ${tt.tone}`,"aria-hidden":"true"}),o.jsxs("span",{children:[o.jsx("strong",{children:ys(le)}),o.jsxs("small",{children:[_f(le.updatedAt)," · ",le.messageCount," 条"]}),lt.length>0?o.jsxs("small",{className:"project-session-tags","aria-label":"会话标签",children:[lt.slice(0,3).map(dt=>o.jsx("span",{className:"session-tag-badge",children:dt},dt)),lt.length>3?o.jsxs("span",{className:"session-tag-more",children:["+",lt.length-3]}):null]}):null,tt.label?o.jsx("small",{className:"project-session-status",children:tt.label}):null]})]}),v.active?o.jsx(Dv,{label:`会话 ${ys(le)} 操作`,disabled:vo(t,le.id),items:[{id:"rename",label:"重命名…",onSelect:()=>ne(le)},{id:"tags",label:"管理标签…",onSelect:()=>U(le)},{id:"archive",label:"归档",disabled:st,hint:st?"会话运行中":void 0,onSelect:()=>se(le)},{id:"delete",label:"删除…",danger:!0,disabled:st,hint:st?"会话运行中":void 0,onSelect:()=>ie(le)}]}):null]},le.id)}),re?.status==="ready"&&!je.length?o.jsx("div",{role:"listitem",children:o.jsx("button",{type:"button",className:"project-empty-session",disabled:!v.available,onClick:()=>E(v.id,null),children:Se?"没有匹配会话":"打开项目"})}):null,re?.nextCursor?o.jsx("div",{role:"listitem",children:o.jsx("button",{type:"button",className:"text-button project-load-more",onClick:()=>N(v.id,!0),children:"加载更多会话"})}):null]}),v.active&&(t.archivedSessions.items.length>0||t.archivedSessions.status==="loading")?o.jsxs("details",{className:"archived-section",children:[o.jsxs("summary",{children:["已归档(",t.archivedSessions.items.length,t.archivedSessions.status==="loading"?"…":"",")"]}),o.jsx("div",{className:"archived-list",role:"list","aria-label":"已归档会话",children:t.archivedSessions.items.map(le=>o.jsxs("div",{className:"archived-row",role:"listitem",children:[o.jsxs("span",{className:"archived-copy",children:[o.jsx("strong",{children:ys(le)}),o.jsx("small",{children:_f(le.updatedAt)})]}),o.jsx("button",{type:"button",className:"text-button",disabled:D,onClick:()=>Y(le),children:"还原"}),o.jsx("button",{type:"button",className:"text-button archived-delete",disabled:D,onClick:()=>ie(le),children:"删除"})]},le.id))})]}):null]}):null]})]},v.id)}),W.length?null:o.jsxs("div",{className:"empty-rail",children:[o.jsx(Q,{name:"search"}),o.jsx("p",{children:"没有匹配的项目或会话"})]}),we>0?o.jsx("button",{type:"button",className:"text-button project-window-more",onClick:()=>te(v=>Math.max(0,v-_r)),children:"上一批项目"}):null,we+_r<W.length?o.jsx("button",{type:"button",className:"text-button project-window-more",onClick:()=>te(v=>v+_r),children:"下一批项目"}):t.workspaceNextCursor?o.jsx("button",{type:"button",className:"text-button project-window-more",onClick:b,children:"加载更多项目"}):null]}),o.jsxs("footer",{className:"rail-footer",children:[o.jsx("span",{className:`connection-dot ${t.connection}`,"aria-hidden":"true"}),o.jsx("span",{"data-testid":"runtime-connection-state","data-state":t.connection,title:Zv(t.connection),children:uc(t.connection)}),o.jsx("button",{type:"button",className:"icon-button rail-settings","aria-label":"打开设置",onClick:k,children:o.jsx(Q,{name:"settings",size:14})}),t.bootstrap?.productVersion?o.jsxs("span",{className:"version",children:["v",t.bootstrap.productVersion]}):null]}),d?o.jsx(vp,{side:"left",minWidth:Ac,maxWidth:yp,defaultWidth:yl,label:"拖动或按方向键调整项目导航宽度",width:f,controls:"workspace-rail",onPreview:L,onCommit:F}):null]})}function If(t){if(!["ArrowDown","ArrowUp","Home","End"].includes(t.key))return;const r=t.currentTarget.closest(".project-tree");if(!r)return;const i=Array.from(r.querySelectorAll(".project-toggle:not(:disabled), .project-session-main:not(:disabled)")).filter(f=>f.getClientRects().length>0),a=i.indexOf(t.currentTarget);if(a<0||i.length===0)return;const d=t.key==="Home"?0:t.key==="End"?i.length-1:Math.max(0,Math.min(i.length-1,a+(t.key==="ArrowDown"?1:-1)));t.preventDefault(),i[d]?.focus()}function Yv(t,r){return t.pinnedOrder!==void 0||r.pinnedOrder!==void 0?t.pinnedOrder===void 0?1:r.pinnedOrder===void 0?-1:t.pinnedOrder-r.pinnedOrder:t.registeredAt&&r.registeredAt?Date.parse(t.registeredAt)-Date.parse(r.registeredAt):Date.parse(r.lastActivatedAt)-Date.parse(t.lastActivatedAt)}function Nf(t,r){return!!(r&&(t.label.toLocaleLowerCase().includes(r)||t.path.toLocaleLowerCase().includes(r)))}function Xv(t,r){return r?t.filter(i=>[i.name,i.taskSummary,i.id,i.model].filter(a=>!!a).some(a=>a.toLocaleLowerCase().includes(r))):t}function ys(t){return t.name||t.taskSummary||`会话 ${t.id.slice(0,8)}`}function Ip(t){const r=t.replace(/[\\/]+$/,"");return r.split(/[\\/]/).filter(Boolean).at(-1)??r}function Jv(t){return t.length<=31?t:`…${t.slice(-30)}`}function _f(t){const r=Date.parse(t);if(!Number.isFinite(r))return"未知";const i=Math.max(0,Math.floor((Date.now()-r)/6e4));if(i<1)return"刚刚";if(i<60)return`${i} 分钟前`;const a=Math.floor(i/60);if(a<24)return`${a} 小时前`;const d=Math.floor(a/24);return d<30?`${d} 天前`:new Date(r).toLocaleDateString("zh-CN")}function uc(t){return t==="live"?"已连接":t==="offline"?"离线":t==="replay-required"?"事件流需恢复":t==="closed"?"已关闭":t==="connecting"?"正在连接…":"正在重连…"}function Zv(t){return t==="live"?"本地 Web Host 已连接":t==="offline"?"浏览器离线":t==="replay-required"?"Web Host 事件流需要恢复":t==="closed"?"本地 Web Host 已关闭":t==="connecting"?"正在连接本地 Web Host":"正在重连本地 Web Host"}function ey(t){return!t||t.phase==="cold"?{label:"",tone:""}:t.pendingApprovalCount>0||t.phase==="waiting_approval"?{label:"等待审批",tone:"approval"}:t.phase==="running"||t.phase==="starting"?{label:t.phase==="starting"?"正在启动":"运行中",tone:"running"}:t.phase==="queued"?{label:t.queuePosition?`排队 ${t.queuePosition}`:"排队中",tone:"queued"}:t.phase==="failed"?{label:"失败",tone:"failed"}:t.phase==="interrupted"?{label:"已中断",tone:"failed"}:t.phase==="stopping"?{label:"正在停止",tone:"running"}:{label:"已就绪",tone:"ready"}}const ty=new Set(["starting","queued","running","waiting_approval","stopping"]);function ny(t){return t?ty.has(t):!1}const ry={available:"可用",missing:"目录不存在",not_directory:"不是文件夹",unreadable:"无法读取"},Ef=["prepare","runtime","session"],sy={prepare:"准备项目",runtime:"加载本地 Runtime",session:"恢复会话(如有)"};function oy({candidate:t,busy:r,stage:i="prepare",error:a,onCancel:d,onOpen:f}){const p=t.availability==="available"&&!t.isActive,g=t.isActive?"当前项目":t.availability!=="available"?"不可打开":r?"正在打开…":"打开项目",x=Ef.indexOf(i);return o.jsxs("section",{className:"workspace-confirm","aria-label":"已选择本地项目",children:[o.jsxs("header",{className:"workspace-confirm-head",children:[o.jsx("span",{className:"workspace-confirm-name",title:t.canonicalPath,children:t.label}),o.jsxs("span",{className:"workspace-confirm-meta",children:[t.kind==="git"?"Git 项目":"本地文件夹"," ·"," ",ry[t.availability],typeof t.sessionCount=="number"?` · ${t.sessionCount} 个会话`:t.sessionCountStatus==="deferred"?" · 会话数读取中":""]})]}),o.jsx("p",{className:"workspace-confirm-path",children:t.canonicalPath}),o.jsx("p",{className:"workspace-confirm-note",children:"已解析真实路径;此操作不会读取目录外的文件。"}),r?o.jsx("ol",{className:"workspace-confirm-stages","aria-label":"打开进度",children:Ef.map((k,b)=>o.jsx("li",{className:"workspace-confirm-stage","aria-current":k===i?"step":void 0,"data-state":b<x?"done":b===x?"current":"todo",children:sy[k]},k))}):null,a?o.jsx("p",{className:"field-error",role:"alert",children:a}):null,o.jsxs("footer",{className:"workspace-confirm-actions",children:[o.jsx("button",{type:"button",className:"text-button",onClick:d,disabled:r,children:"取消"}),o.jsx("button",{type:"button",className:"primary-button",onClick:f,disabled:r||!p,"aria-busy":r,children:g})]})]})}const Np={phase:"idle",roots:[],activeRootId:null,candidates:[],errorCode:null,errorMessage:null,generation:0,rootsLoading:!1,scanning:!1};function iy(t,r){switch(r.type){case"reset":return{...Np};case"roots-loading":return{...t,rootsLoading:!0,errorMessage:null,errorCode:null};case"roots-loaded":return{...t,rootsLoading:!1,roots:r.roots,errorMessage:null,errorCode:null};case"roots-failed":return{...t,rootsLoading:!1,errorMessage:r.message};case"root-added":{const i=[r.root,...t.roots.filter(a=>a.id!==r.root.id)];return{...t,roots:i}}case"root-removed":{const i=t.roots.filter(d=>d.id!==r.rootId),a=t.activeRootId===r.rootId;return{...t,roots:i,...a?{activeRootId:null,candidates:[],phase:"idle",errorCode:null,errorMessage:null,scanning:!1}:{}}}case"scan-started":return{...t,phase:"loading",activeRootId:r.rootId,generation:r.generation,scanning:!0,errorCode:null,errorMessage:null,candidates:[]};case"scan-succeeded":{if(r.generation!==t.generation||r.rootId!==t.activeRootId)return t;const i=t.roots.map(a=>a.id===r.rootId?{...a,lastScannedAt:new Date().toISOString(),discovery:{status:r.status,candidateCount:r.candidates.length,durationMs:0,cached:!1,...r.errorCode?{errorCode:r.errorCode}:{}}}:a);return{...t,scanning:!1,roots:i,candidates:r.candidates,phase:r.candidates.length>0?r.status==="partial"?"partial":"ready":"empty",...r.status==="partial"&&r.errorCode?{errorCode:r.errorCode}:{}}}case"scan-failed":return r.generation!==t.generation||r.rootId!==t.activeRootId?t:{...t,scanning:!1,phase:"error",errorMessage:r.message,...r.errorCode?{errorCode:r.errorCode}:{}};case"scan-cancelled":return r.generation!==t.generation||r.rootId!==t.activeRootId?t:{...t,scanning:!1,phase:"cancelled",candidates:[]};default:return t}}function ly(t,r){if(t.scanning&&t.activeRootId===r.id||t.activeRootId===r.id&&t.phase==="loading")return"扫描中…";if(r.discovery){if(r.discovery.errorCode==="budget_exceeded")return"部分结果(预算内未扫完)";if(r.discovery.errorCode)return"上次扫描未完成";const i=r.discovery.candidateCount;return r.discovery.status==="partial"?`部分结果(${i} 个候选)`:`${i} 个候选`}return r.lastScannedAt?"尚未在本次会话扫描":"尚未扫描"}const _p=Object.freeze({phase:"browse",candidate:null,pendingPath:null,error:null,pickerReturned:!1});function ay(t,r){switch(r.type){case"picker-started":return{...t,phase:"picker-pending",error:null,pickerReturned:!1};case"picker-cancelled":return{...t,phase:"browse",error:null,pendingPath:null,pickerReturned:!0};case"picker-unavailable":return{...t,phase:"browse",error:r.reason,pendingPath:null,pickerReturned:!0};case"inspect-started":return{...t,phase:"inspect-pending",pendingPath:r.path,candidate:null,error:null,pickerReturned:!1};case"inspect-succeeded":return{...t,phase:"confirm",candidate:r.candidate,pendingPath:null,error:null};case"activate-started":return t.phase!=="confirm"||!t.candidate?t:{...t,phase:"activate-pending",error:null};case"failed":return{...t,phase:t.candidate?"confirm":"browse",error:r.message,pendingPath:null};case"back-to-browse":return{...t,phase:"browse",candidate:null,pendingPath:null,error:null};case"reset":return _p;default:return t}}function cy(t){return t.phase==="picker-pending"||t.phase==="inspect-pending"||t.phase==="activate-pending"}function bo({open:t,onClose:r,labelledBy:i,describedBy:a,className:d="",children:f}){const p=m.useRef(null);m.useEffect(()=>{const x=p.current;x&&(t&&!x.open&&x.showModal(),!t&&x.open&&x.close())},[t]);const g=x=>{x.target===x.currentTarget&&r()};return o.jsx("dialog",{ref:p,className:`modal ${d}`.trim(),"aria-labelledby":i,"aria-describedby":a,onCancel:x=>{x.preventDefault(),r()},onClose:r,onClick:g,children:f})}function uy({open:t,onClose:r,state:i,onSelect:a,onLoadMore:d,onPickDirectory:f,onInspect:p,onListRoots:g,onAddRoot:x,onRemoveRoot:k,onDiscoverRoot:b}){const[j,N]=m.useState(""),[E,z]=m.useState(!1),[A,G]=m.useState(""),[ne,U]=m.useReducer(ay,_p),[se,ie]=m.useReducer(iy,Np),Y=m.useRef(0);m.useEffect(()=>{if(!t){ie({type:"reset"});return}N(""),z(!1),G(""),U({type:"reset"}),ie({type:"roots-loading"}),g().then(q=>ie({type:"roots-loaded",roots:q})).catch(q=>ie({type:"roots-failed",message:q instanceof Error?q.message:"无法读取项目根目录。"}))},[t]);const L=cy(ne),F=!!i.pendingAction||L,Ie=ne.phase==="confirm"||ne.phase==="activate-pending"?ne.candidate:null,we=A.trim().toLocaleLowerCase(),te=q=>!we||q.label.toLocaleLowerCase().includes(we)||q.path.toLocaleLowerCase().includes(we),ye=i.workspaces.filter(te),J=ye.filter(q=>q.pinnedOrder!==void 0),Se=ye.filter(q=>q.pinnedOrder===void 0),D=3,ce=E?Se:Se.slice(0,D),W=Se.length-ce.length,T=J.length>0||Se.length>0,B=async(q,Re)=>{U({type:"inspect-started",path:q});try{const qe=await p(q);U({type:"inspect-succeeded",candidate:{...qe,source:Re}})}catch(qe){U({type:"failed",message:qe instanceof Error?qe.message:"无法读取该目录。"})}},$=async()=>{U({type:"picker-started"});try{const q=await f();if(q.outcome==="cancelled"){U({type:"picker-cancelled"});return}if(q.outcome!=="selected"||!q.path){U({type:"picker-unavailable",reason:"系统目录选择器不可用,请在高级选项中粘贴绝对路径。"});return}await B(q.path,"picker")}catch(q){U({type:"picker-unavailable",reason:q instanceof Error?q.message:"无法打开系统目录选择器。"})}},v=async q=>{U({type:"activate-started"});try{await a(q.canonicalPath),r()}catch(Re){U({type:"failed",message:Re instanceof Error?Re.message:"工作区切换失败。"})}},R=q=>{B(q.path,q.pinnedOrder!==void 0?"pinned":"recent")},ue=q=>{q.preventDefault();const Re=j.trim();Re&&B(Re,"manual")},fe=(q,Re)=>{Y.current+=1;const qe=Y.current;ie({type:"scan-started",rootId:q,generation:qe}),b(q,{refresh:Re}).then(Ze=>{ie({type:"scan-succeeded",rootId:q,generation:qe,candidates:Ze.candidates,status:Ze.status,...Ze.errorCode?{errorCode:Ze.errorCode}:{}})}).catch(Ze=>{const kt=Ze instanceof Error?Ze.message:"扫描失败。";ie({type:"scan-failed",rootId:q,generation:qe,message:kt})})},ke=q=>{if(q.discovery?.cached||q.discovery){ie({type:"scan-started",rootId:q.id,generation:Y.current+1}),b(q.id,{refresh:!1}).then(Re=>{Y.current+=1,ie({type:"scan-succeeded",rootId:q.id,generation:Y.current,candidates:Re.candidates,status:Re.status,...Re.errorCode?{errorCode:Re.errorCode}:{}})}).catch(Re=>{Y.current+=1,ie({type:"scan-failed",rootId:q.id,generation:Y.current,message:Re instanceof Error?Re.message:"扫描失败。"})});return}fe(q.id,!0)},re=q=>{fe(q.id,!0)},he=q=>{k(q.id).then(()=>ie({type:"root-removed",rootId:q.id})).catch(Re=>{ie({type:"roots-failed",message:Re instanceof Error?Re.message:"无法移除项目根目录。"})})},je=async()=>{ie({type:"roots-loading"});try{const q=await f();if(q.outcome!=="selected"||!q.path){ie({type:"roots-loaded",roots:se.roots});return}const Re=await x(q.path);ie({type:"root-added",root:Re}),fe(Re.id,!0)}catch(q){ie({type:"roots-failed",message:q instanceof Error?q.message:"无法添加项目根目录。"})}},le=(q,Re)=>Re?`${q.replace(/[\\/]+$/u,"")}/${Re}`:q,Me=se.roots.find(q=>q.id===se.activeRootId)??null,Ke=se.candidates.filter(q=>!we||q.label.toLocaleLowerCase().includes(we)),tt=24,[st,lt]=m.useState(!1),dt=st?Ke:Ke.slice(0,tt),ln=Ke.length-dt.length;return o.jsxs(bo,{open:t,onClose:r,labelledBy:"workspace-dialog-title",describedBy:"workspace-dialog-description",className:"workspace-modal",children:[o.jsxs("div",{className:"modal-header",children:[o.jsxs("div",{children:[o.jsx("span",{className:"eyebrow",children:"LOCAL WORKSPACE"}),o.jsx("h2",{id:"workspace-dialog-title",children:"打开或新增项目"}),o.jsx("p",{id:"workspace-dialog-description",children:"选择一个本地目录作为项目;Host 会解析真实路径并拒绝无效目录。"})]}),o.jsx("button",{type:"button",className:"icon-button",onClick:r,"aria-label":"关闭工作区选择",children:o.jsx(Q,{name:"close"})})]}),o.jsxs("div",{className:"workspace-picker",children:[o.jsxs("label",{className:"workspace-search",children:[o.jsx("span",{className:"sr-only",children:"搜索最近项目"}),o.jsx(Q,{name:"search",size:15}),o.jsx("input",{type:"search",value:A,onChange:q=>G(q.target.value),placeholder:"搜索最近项目…",disabled:F})]}),o.jsxs("button",{type:"button",className:"workspace-pick-folder primary-button",onClick:()=>{$()},disabled:ne.phase==="picker-pending"||F&&!L,"aria-busy":ne.phase==="picker-pending",children:[o.jsx(Q,{name:"workspace",size:16}),ne.phase==="picker-pending"?"正在打开 Finder…":"从 Finder 选择文件夹…"]}),ne.error?o.jsx("p",{className:"field-error",role:"alert",children:ne.error}):null,ne.phase==="inspect-pending"?o.jsxs("p",{className:"workspace-inspect-pending",role:"status",children:["正在解析 ",ne.pendingPath,"…"]}):null]}),Ie?o.jsx(oy,{candidate:Ie,busy:ne.phase==="activate-pending",stage:ne.phase==="activate-pending"?"runtime":"prepare",error:ne.error,onCancel:()=>U({type:"back-to-browse"}),onOpen:()=>{v(Ie)}}):null,o.jsxs("div",{className:"workspace-options",role:"group","aria-label":"常用工作区",children:[J.length>0?o.jsxs(o.Fragment,{children:[o.jsx("h3",{className:"workspace-group-heading",children:"固定项目"}),J.map(q=>o.jsx(Rf,{workspace:q,locked:F,onOpen:R},q.id))]}):null,Se.length>0?o.jsxs(o.Fragment,{children:[o.jsx("h3",{className:"workspace-group-heading",children:J.length>0?"最近打开":"最近项目"}),ce.map(q=>o.jsx(Rf,{workspace:q,locked:F,onOpen:R},q.id))]}):null,T?null:o.jsx("p",{className:"workspace-empty",children:"没有匹配的项目。"}),W>0||E&&Se.length>D?o.jsx("button",{type:"button",className:"text-button workspace-toggle-all","aria-expanded":E,onClick:()=>z(q=>!q),children:E?"收起其他项目":`其他项目(${W})`}):null,i.workspaceNextCursor?o.jsx("button",{type:"button",className:"text-button",onClick:()=>{d()},disabled:F,children:"加载更多工作区"}):null]}),se.roots.length>0||se.rootsLoading?o.jsxs("div",{className:"workspace-roots",role:"group","aria-label":"项目根目录",children:[o.jsx("h3",{className:"workspace-group-heading",children:"项目根目录"}),se.rootsLoading?o.jsx("p",{className:"workspace-empty",role:"status",children:"正在读取项目根目录…"}):null,se.roots.map(q=>o.jsxs("div",{className:`workspace-root-row ${se.activeRootId===q.id?"active":""}`,children:[o.jsxs("button",{type:"button",className:"workspace-root-select",onClick:()=>ke(q),"aria-pressed":se.activeRootId===q.id,children:[o.jsx("span",{className:"workspace-icon",children:o.jsx(Q,{name:"workspace",size:15})}),o.jsxs("span",{children:[o.jsx("strong",{children:q.label}),o.jsx("small",{title:q.canonicalPath,children:ly(se,q)})]})]}),o.jsxs("span",{className:"workspace-root-actions",children:[o.jsx("button",{type:"button",className:"icon-button",onClick:()=>re(q),disabled:se.scanning,"aria-label":`刷新项目根目录 ${q.label}`,children:o.jsx(Q,{name:"refresh",size:14})}),o.jsx("button",{type:"button",className:"icon-button",onClick:()=>he(q),disabled:se.scanning,"aria-label":`移除项目根目录 ${q.label}`,children:o.jsx(Q,{name:"close",size:14})})]})]},q.id)),o.jsx("button",{type:"button",className:"text-button workspace-add-root",onClick:()=>{je()},disabled:se.scanning,children:"添加项目根目录…"})]}):null,!se.rootsLoading&&se.roots.length===0?o.jsx("button",{type:"button",className:"text-button workspace-add-root",onClick:()=>{je()},disabled:se.scanning,children:"添加项目根目录…"}):null,se.scanning?o.jsx("p",{className:"workspace-empty",role:"status",children:"正在扫描项目根目录…"}):null,se.phase==="error"?o.jsx("p",{className:"field-error",role:"alert",children:se.errorMessage||"扫描失败。"}):null,se.phase==="partial"?o.jsx("p",{className:"workspace-empty",role:"status",children:"部分结果:扫描在预算内未完成,可再次刷新。"}):null,se.phase==="empty"&&se.activeRootId?o.jsx("p",{className:"workspace-empty",role:"status",children:"该根目录下未发现候选项目;可用 Finder 或高级路径打开任意目录。"}):null,Me&&Ke.length>0?o.jsxs("div",{className:"workspace-discovered",role:"group","aria-label":"发现的项目",children:[o.jsxs("h3",{className:"workspace-group-heading",children:["发现的项目(",Me.label,se.phase==="partial"?",部分结果":"",")"]}),dt.map(q=>{const Re=le(Me.canonicalPath,q.relativePath);return o.jsxs("button",{type:"button",className:"workspace-option",disabled:F,onClick:()=>{B(Re,"discovered")},children:[o.jsx("span",{className:"workspace-icon",children:o.jsx(Q,{name:"workspace",size:16})}),o.jsxs("span",{children:[o.jsx("strong",{children:q.label}),o.jsx("small",{children:q.hint==="git"?"Git 仓库":"项目清单"})]}),o.jsx(Q,{name:"chevron",size:15})]},`${q.rootId}:${q.relativePath||"(root)"}`)}),ln>0?o.jsx("button",{type:"button",className:"text-button workspace-toggle-all","aria-expanded":st,onClick:()=>lt(q=>!q),children:st?"收起候选项目":`显示更多候选(${ln})`}):null]}):null,o.jsxs("details",{className:"workspace-advanced",children:[o.jsx("summary",{children:"高级:粘贴绝对路径"}),o.jsxs("form",{className:"workspace-path-form",onSubmit:ue,children:[o.jsx("label",{htmlFor:"workspace-path-input",children:"打开其他本地目录"}),o.jsxs("div",{className:"path-input-row",children:[o.jsx("input",{id:"workspace-path-input",value:j,onChange:q=>N(q.target.value),placeholder:"/Users/name/project",spellCheck:!1,autoComplete:"off"}),o.jsx("button",{type:"submit",className:"primary-button",disabled:!j.trim()||F,children:"打开"})]})]})]})]})}function Rf({workspace:t,locked:r,onOpen:i}){return o.jsxs("button",{type:"button",className:`workspace-option ${t.active?"active":""}`,disabled:t.active||!t.available||r,onClick:()=>i(t),children:[o.jsx("span",{className:"workspace-icon",children:o.jsx(Q,{name:"workspace",size:17})}),o.jsxs("span",{children:[o.jsx("strong",{children:t.label||Ip(t.path)}),o.jsx("small",{title:t.path,children:t.path})]}),t.active?o.jsx("span",{className:"current-pill",children:"当前"}):t.available?o.jsx(Q,{name:"chevron",size:15}):o.jsx("span",{className:"current-pill",children:"不可用"})]})}function dy({open:t,onClose:r,session:i,pending:a,onRename:d}){const[f,p]=m.useState(""),[g,x]=m.useState(""),k=i?.id;m.useEffect(()=>{t&&i&&(p(ys(i)),x(""))},[t,k]);const b=async j=>{if(j.preventDefault(),!(!i||!f.trim())){x("");try{await d(i.id,f.trim()),r()}catch(N){x(N instanceof Error?N.message:"重命名失败,请重试。")}}};return o.jsx(bo,{open:t,onClose:r,labelledBy:"rename-title",className:"rename-modal",children:o.jsxs("form",{onSubmit:b,children:[o.jsxs("header",{className:"modal-header",children:[o.jsxs("div",{children:[o.jsx("span",{className:"eyebrow",children:"SESSION"}),o.jsx("h2",{id:"rename-title",children:"重命名会话"})]}),o.jsx("button",{type:"button",className:"icon-button",onClick:r,"aria-label":"关闭重命名窗口",children:o.jsx(Q,{name:"close"})})]}),o.jsxs("div",{className:"rename-body",children:[o.jsx("label",{htmlFor:"session-name",children:"会话名称"}),o.jsx("input",{id:"session-name",value:f,onChange:j=>{p(j.target.value),g&&x("")},maxLength:120,autoFocus:!0}),g?o.jsx("p",{className:"field-error",role:"alert",children:g}):null]}),o.jsxs("footer",{className:"modal-footer",children:[o.jsx("button",{type:"button",className:"secondary-button",onClick:r,children:"取消"}),o.jsx("button",{type:"submit",className:"primary-button",disabled:a||!f.trim(),children:a?"保存中…":"保存"})]})]})})}const Pf=8;function fy({open:t,onClose:r,session:i,pending:a,onSave:d}){const[f,p]=m.useState(()=>i?.tags?[...i.tags]:[]),[g,x]=m.useState(""),[k,b]=m.useState(""),j=i?.id;m.useEffect(()=>{t&&i&&(p(i.tags??[]),x(""),b(""))},[t,j]);const N=()=>{const A=g.trim().slice(0,32);if(x(""),!!A&&!f.includes(A)){if(f.length>=Pf){b(`最多 ${Pf} 个标签。`);return}p([...f,A]),b("")}},E=A=>p(f.filter(G=>G!==A)),z=async A=>{if(A.preventDefault(),!!i){b("");try{await d(i.id,f),r()}catch(G){b(G instanceof Error?G.message:"保存标签失败,请重试。")}}};return o.jsx(bo,{open:t,onClose:r,labelledBy:"session-tags-title",className:"tags-modal",children:o.jsxs("form",{onSubmit:z,children:[o.jsxs("header",{className:"modal-header",children:[o.jsxs("div",{children:[o.jsx("span",{className:"eyebrow",children:"SESSION"}),o.jsx("h2",{id:"session-tags-title",children:"管理会话标签"})]}),o.jsx("button",{type:"button",className:"icon-button",onClick:r,"aria-label":"关闭标签窗口",children:o.jsx(Q,{name:"close"})})]}),o.jsxs("div",{className:"session-tags-body",children:[i?o.jsx("p",{className:"modal-description",children:ys(i)}):null,o.jsx("div",{className:"session-tags-chips",role:"list","aria-label":"当前标签",children:f.length===0?o.jsx("span",{className:"session-tags-empty",children:"还没有标签,输入后回车添加。"}):f.map(A=>o.jsxs("span",{className:"session-tag-chip",role:"listitem",children:[A,o.jsx("button",{type:"button",className:"icon-button session-tag-remove","aria-label":`移除标签 ${A}`,onClick:()=>E(A),children:o.jsx(Q,{name:"close",size:11})})]},A))}),o.jsx("label",{htmlFor:"session-tag-input",children:"新标签"}),o.jsx("input",{id:"session-tag-input",value:g,onChange:A=>{x(A.target.value),k&&b("")},onKeyDown:A=>{(A.key==="Enter"||A.key===","||A.key===",")&&(A.preventDefault(),N())},placeholder:"回车或逗号添加",maxLength:32,autoFocus:!0}),k?o.jsx("p",{className:"field-error",role:"alert",children:k}):null]}),o.jsxs("footer",{className:"modal-footer",children:[o.jsx("button",{type:"button",className:"secondary-button",onClick:r,children:"取消"}),o.jsx("button",{type:"submit",className:"primary-button",disabled:a,children:a?"保存中…":"保存"})]})]})})}function py({open:t,onClose:r,title:i,body:a,confirmLabel:d,danger:f=!1,pending:p=!1,onConfirm:g}){const x=m.useId(),k=async()=>{if(!p)try{await g(),r()}catch{}};return o.jsxs(bo,{open:t,onClose:r,labelledBy:x,className:"confirm-modal",children:[o.jsxs("header",{className:"modal-header",children:[o.jsx("h2",{id:x,children:i}),o.jsx("button",{type:"button",className:"icon-button",onClick:r,"aria-label":"关闭确认窗口",children:o.jsx(Q,{name:"close"})})]}),o.jsx("p",{className:"confirm-body",children:a}),o.jsxs("footer",{className:"modal-footer",children:[o.jsx("button",{type:"button",className:"secondary-button",autoFocus:!0,onClick:r,children:"取消"}),o.jsx("button",{type:"button",className:f?"danger-button":"primary-button",disabled:p,onClick:()=>{k()},children:p?"处理中…":d})]})]})}function hy({open:t,onClose:r,session:i,pending:a,onConfirm:d}){const f=async()=>{if(i)try{await d(i.id),r()}catch{}};return o.jsxs(bo,{open:t,onClose:r,labelledBy:"confirm-delete-title",describedBy:"confirm-delete-description",className:"delete-modal",children:[o.jsxs("div",{className:"modal-header",children:[o.jsxs("div",{children:[o.jsx("span",{className:"eyebrow",children:"SESSION"}),o.jsx("h2",{id:"confirm-delete-title",children:"删除会话"})]}),o.jsx("button",{type:"button",className:"icon-button",onClick:r,"aria-label":"关闭删除确认",children:o.jsx(Q,{name:"close"})})]}),o.jsxs("p",{id:"confirm-delete-description",className:"confirm-delete-body",children:["将永久删除会话",o.jsx("strong",{children:i?`「${ys(i)}」`:""}),"及其全部记录(消息、文件变更、目标与检查点)。此操作不可恢复。"]}),o.jsxs("footer",{className:"modal-footer",children:[o.jsx("button",{type:"button",className:"secondary-button",onClick:r,children:"取消"}),o.jsx("button",{type:"button",className:"danger-button",disabled:a,onClick:()=>{f()},children:a?"删除中…":"永久删除"})]})]})}const my=["appearance.style","appearance.theme","appearance.motion","defaults.model","defaults.effort","permissions.toolConfirmation"];function ll(t,r){return r==="appearance.style"?t.sections.appearance.style:r==="appearance.theme"?t.sections.appearance.theme:r==="appearance.motion"?t.sections.appearance.motion:r==="defaults.model"?t.sections.defaults.model:r==="defaults.effort"?t.sections.defaults.effort:t.sections.permissions.toolConfirmation}function gy(t){return{"appearance.style":t.sections.appearance.style.effectiveValue,"appearance.theme":t.sections.appearance.theme.effectiveValue,"appearance.motion":t.sections.appearance.motion.effectiveValue,"defaults.model":t.sections.defaults.model.effectiveValue,"defaults.effort":t.sections.defaults.effort.effectiveValue,"permissions.toolConfirmation":t.sections.permissions.toolConfirmation.effectiveValue}}function Rr(t){return{openedAtRevision:t.revision,workspace:t.workspace,base:t,values:wy(t),intents:{},serverLatest:null}}function Ep(t,r,i){const a=Rn(t.base,r),d={...t.values,[r]:i},f={...t.intents};return Object.is(i,a)?delete f[r]:f[r]={op:"set",value:i},{...t,values:d,intents:f,serverLatest:null}}function Rp(t,r){const i=ll(t.base,r),a={...t.intents};return i.explicitValue===void 0?(delete a[r],{...t,values:{...t.values,[r]:Rn(t.base,r)},intents:a,serverLatest:null}):(a[r]={op:"unset"},{...t,values:{...t.values,[r]:i.inheritedValue??i.effectiveValue},intents:a,serverLatest:null})}function Tf(t,r){return{...t,serverLatest:r}}function vy(t){const r=t.serverLatest;if(!r)return t;let i=Rr(r);for(const a of Or(t)){const d=t.intents[a];if(d){if(d.op==="unset"){i=Rp(i,a);continue}i=Ep(i,a,d.value)}}return i}function Or(t){return my.filter(r=>t.intents[r]!==void 0)}function yy(t){return Or(t).map(r=>{const i=t.intents[r];return i.op==="unset"?{op:"unset",key:r}:{op:"set",key:r,value:i.value}})}function xy(t){return t.serverLatest?Or(t).filter(r=>{const i=ll(t.base,r),a=ll(t.serverLatest,r);return!Object.is(i.effectiveValue,a.effectiveValue)||!Object.is(i.explicitValue,a.explicitValue)||i.overridden!==a.overridden||i.source!==a.source}):[]}function Rn(t,r){const i=ll(t,r);return i.explicitValue??i.effectiveValue}function wy(t){const r=gy(t);return{"appearance.style":Rn(t,"appearance.style")??r["appearance.style"],"appearance.theme":Rn(t,"appearance.theme")??r["appearance.theme"],"appearance.motion":Rn(t,"appearance.motion")??r["appearance.motion"],"defaults.model":Rn(t,"defaults.model")??r["defaults.model"],"defaults.effort":Rn(t,"defaults.effort")??r["defaults.effort"],"permissions.toolConfirmation":Rn(t,"permissions.toolConfirmation")??r["permissions.toolConfirmation"]}}const al={phase:"closed",section:"general",draft:null,message:null,problemCode:null,confirmDiscard:!1};function ky(t,r){switch(r.type){case"open":return{...al,phase:"ready",draft:Rr(r.document)};case"close":return al;case"select_section":return{...t,section:r.section,confirmDiscard:!1};case"set_value":return!t.draft||t.phase==="saving"?t:{...t,phase:"ready",draft:Ep(t.draft,r.key,r.value),message:null,problemCode:null,confirmDiscard:!1};case"reset_value":return!t.draft||t.phase==="saving"?t:{...t,phase:"ready",draft:Rp(t.draft,r.key),message:null,problemCode:null,confirmDiscard:!1};case"save_started":return{...t,phase:"saving",message:"正在原子应用设置…",problemCode:null,confirmDiscard:!1};case"save_succeeded":return{...t,phase:"success",draft:Rr(r.document),message:"设置已安全保存并应用。",problemCode:null,confirmDiscard:!1};case"save_failed":{if(!t.draft)return t;const i=r.code==="settings_revision_conflict";return{...t,phase:i?"conflict":"rejected",draft:r.latest?Tf(t.draft,r.latest):t.draft,message:r.message,problemCode:r.code,confirmDiscard:!1}}case"server_updated":{if(!t.draft)return{...t,phase:"ready",draft:Rr(r.document)};if(t.phase==="saving")return t;if(t.draft.base.revision===r.document.revision){const i=Or(t.draft).length>0;return{...t,draft:i?{...t.draft,base:r.document}:Rr(r.document)}}return t.draft.workspace!==r.document.workspace||Or(t.draft).length===0?{...t,phase:"ready",draft:Rr(r.document),message:"已采用 Host 的最新设置。",problemCode:null,confirmDiscard:!1}:{...t,phase:"conflict",draft:Tf(t.draft,r.document),message:"Host 设置已更新。你的草稿仍被保留,请选择如何继续。",problemCode:"settings_revision_conflict",confirmDiscard:!1}}case"adopt_server":return t.draft?.serverLatest?{...t,phase:"ready",draft:Rr(t.draft.serverLatest),message:"已采用服务器最新值。",problemCode:null}:t;case"rebase":return t.draft?.serverLatest?{...t,phase:"ready",draft:vy(t.draft),message:"草稿已基于服务器最新值重放;请确认后再次应用。",problemCode:null}:t;case"request_discard":return{...t,confirmDiscard:!0};case"cancel_discard":return{...t,confirmDiscard:!1};case"clear_status":return{...t,phase:"ready",message:null,problemCode:null}}}const jy=["auto","none","minimal","low","medium","high","xhigh","max"],Sy=[{id:"general",label:"General",icon:"settings"},{id:"models",label:"Models & Reasoning",icon:"spark"},{id:"permissions",label:"Permissions",icon:"warning"},{id:"advanced",label:"Advanced",icon:"diagnostics"}];function Cy({open:t,onClose:r,state:i,actions:a,onGoToSessionControls:d}){const f=m.useRef(null),p=m.useRef(null),g=m.useRef(null),x=m.useRef(null),k=m.useRef(null),b=m.useRef(!1),j=m.useRef(null),N=m.useRef(al.phase),[E,z]=m.useReducer(ky,al),[A,G]=m.useState(!1),[ne,U]=m.useState(!1),[se,ie]=m.useState(null),Y=i.settings??i.settingsMirror.lastGood,L=Y&&(!i.workspace||Y.workspace===i.workspace)?Y:null;m.useEffect(()=>{const D=f.current;D&&(t&&!D.open&&D.showModal(),!t&&D.open&&D.close())},[t]),m.useEffect(()=>{if(t&&!b.current)L&&(z({type:"open",document:L}),k.current=L),G(!1),U(!1),ie(null);else if(t&&L&&k.current===null)z({type:"open",document:L}),k.current=L;else if(t&&L&&k.current!==null&&k.current!==L){if(E.phase==="saving")return;k.current=L,z({type:"server_updated",document:L})}else!t&&b.current&&(z({type:"close"}),k.current=null,j.current=null);b.current=t},[L,E.phase,t]),m.useEffect(()=>{E.confirmDiscard&&g.current?.focus()},[E.confirmDiscard]),m.useEffect(()=>{const D=N.current;if(N.current=E.phase,!t||D!=="saving"||E.phase!=="success")return;const ce=Lf();f.current?.contains(ce)||p.current?.focus()},[E.phase,t]),m.useEffect(()=>{!t||L||i.settingsMirror.status==="loading"||a.refreshSettings().catch(()=>{})},[a,L,t,i.settingsMirror.status]),m.useEffect(()=>{!t||!E.draft||!i.workspace||E.draft.workspace!==i.workspace&&(z({type:"close"}),k.current=null)},[E.draft,t,i.workspace]);const F=E.draft,ge=F?Or(F):[],Ie=ge.length>0,we=i.processing&&ge.some(D=>["defaults.effort","permissions.toolConfirmation"].includes(D)),te=()=>{if(E.phase!=="saving"){if(Ie){const D=Lf();x.current=D instanceof HTMLElement?D:null,z({type:"request_discard"});return}z({type:"close"}),r()}},ye=()=>{z({type:"close"}),r()},J=async D=>{if(D.preventDefault(),!F||!Ie||E.phase==="saving"||E.phase==="conflict")return;const ce=yy(F),W=j.current??We();j.current=W,z({type:"save_started"});try{const T=await a.updateSettings(F.base.revision,ce,W);j.current=null,k.current=T.settings,z({type:"save_succeeded",document:T.settings})}catch(T){const B=T instanceof Oe?T.code??"settings_rejected":"network";let $;B==="settings_revision_conflict"?(j.current=null,$=await a.refreshSettings().catch(()=>{}),$&&(k.current=$)):T instanceof Oe&&T.status<500&&(j.current=null);const v=B==="settings_revision_conflict"&&!$?"settings_recovery_required":B;z({type:"save_failed",code:v,message:Ty(v,T),...$?{latest:$}:{}})}},Se=D=>{D.target===D.currentTarget&&te()};return o.jsx("dialog",{id:"settings-dialog",ref:f,className:"modal settings-modal","aria-modal":"true","aria-labelledby":"settings-title","aria-describedby":"settings-description",onCancel:D=>{D.preventDefault(),te()},onClick:Se,children:o.jsxs("form",{onSubmit:J,children:[o.jsxs("header",{className:"modal-header settings-header",children:[o.jsxs("div",{children:[o.jsx("span",{className:"eyebrow",children:"HOST SETTINGS"}),o.jsx("h2",{id:"settings-title",children:"设置"}),o.jsx("p",{id:"settings-description",children:"由本地 Host 读取、校验并原子保存。"})]}),o.jsx("button",{ref:p,type:"button",className:"icon-button",onClick:te,"aria-label":"关闭设置",disabled:E.phase==="saving",children:o.jsx(Q,{name:"close"})})]}),o.jsxs("div",{className:"settings-layout",children:[o.jsx("nav",{className:"settings-navigation","aria-label":"设置类别",children:Sy.map(D=>o.jsxs("button",{type:"button",className:E.section===D.id?"active":"","aria-current":E.section===D.id?"page":void 0,onClick:()=>z({type:"select_section",section:D.id}),children:[o.jsx(Q,{name:D.icon,size:16}),o.jsx("span",{children:D.label})]},D.id))}),o.jsxs("div",{className:"settings-content",children:[o.jsx(Ry,{state:i}),F?o.jsxs(o.Fragment,{children:[E.phase==="conflict"?o.jsx(Py,{draft:F,onAdopt:()=>{j.current=null,z({type:"adopt_server"})},onRebase:()=>{j.current=null,z({type:"rebase"})}}):null,E.message&&E.phase!=="conflict"?o.jsxs("div",{className:`settings-inline-message settings-message-${E.phase}`,role:E.phase==="rejected"?"alert":"status","aria-live":E.phase==="rejected"?"assertive":"polite",children:[o.jsx(Q,{name:E.phase==="success"?"check":"info",size:16}),o.jsx("span",{children:E.message})]}):null,E.section==="general"?o.jsx(by,{document:F.base,draft:F.values,dirtyKeys:ge,saving:E.phase==="saving",onSet:(D,ce)=>z({type:"set_value",key:D,value:ce}),onReset:D=>z({type:"reset_value",key:D})}):null,E.section==="models"?o.jsx(Ny,{document:F.base,draft:F.values,dirtyKeys:ge,runtimeBusy:i.processing,saving:E.phase==="saving",onGoToSessionControls:d,onSet:(D,ce)=>z({type:"set_value",key:D,value:ce}),onReset:D=>z({type:"reset_value",key:D})}):null,E.section==="permissions"?o.jsx(_y,{document:F.base,value:F.values["permissions.toolConfirmation"],dirtyKeys:ge,runtimeBusy:i.processing,saving:E.phase==="saving",confirmAllow:A,allowAcknowledged:ne,onAllowRequested:()=>{U(!1),G(!0)},onAllowAcknowledged:U,onConfirmAllow:()=>{z({type:"set_value",key:"permissions.toolConfirmation",value:"allow"}),G(!1),U(!1)},onCancelAllow:()=>{G(!1),U(!1)},onSet:D=>z({type:"set_value",key:"permissions.toolConfirmation",value:D}),onReset:()=>z({type:"reset_value",key:"permissions.toolConfirmation"})}):null,E.section==="advanced"?o.jsx(Ey,{state:i,document:F.base,documentAction:se,onOpenDocument:()=>{ie({tone:"status",message:"正在请求 Host 打开设置文件…"}),a.openSettingsDocument().then(()=>ie({tone:"status",message:"已交给系统默认编辑器打开。"})).catch(D=>ie({tone:"error",message:D instanceof Error?D.message:"无法打开设置文件。"}))},onRefresh:()=>{ie({tone:"status",message:"正在重新载入 Host 设置…"}),a.refreshSettings().then(()=>ie({tone:"status",message:"已载入最新设置。"})).catch(D=>ie({tone:"error",message:D instanceof Error?D.message:"重新载入失败。"}))}}):null]}):o.jsxs("section",{className:"settings-empty","aria-live":"polite",children:[o.jsx(Q,{name:"refresh"}),o.jsx("h3",{children:"正在读取设置"}),o.jsx("p",{children:"等待本地 Host 返回可验证的设置快照。"})]})]})]}),E.confirmDiscard?o.jsxs("div",{className:"settings-discard-confirm",role:"alertdialog","aria-labelledby":"settings-discard-title","aria-describedby":"settings-discard-description",children:[o.jsxs("div",{children:[o.jsx("strong",{id:"settings-discard-title",children:"放弃未应用的更改?"}),o.jsxs("p",{id:"settings-discard-description",children:["你的 ",ge.length," 项草稿尚未写入 Host。"]})]}),o.jsxs("div",{children:[o.jsx("button",{ref:g,type:"button",className:"secondary-button",onClick:()=>{z({type:"cancel_discard"});const D=x.current;requestAnimationFrame(()=>D?.focus())},children:"继续编辑"}),o.jsx("button",{type:"button",className:"danger-ghost-button",onClick:ye,children:"放弃更改"})]})]}):null,o.jsxs("footer",{className:"modal-footer settings-footer",children:[o.jsx("span",{className:"settings-dirty-summary","aria-live":"polite",children:Ie?`${ge.length} 项未应用`:"没有未应用的更改"}),o.jsx("button",{type:"button",className:"secondary-button",onClick:te,disabled:E.phase==="saving",children:"取消"}),o.jsx("button",{type:"submit",className:"primary-button",disabled:!F||!Ie||E.phase==="saving"||E.phase==="conflict"||we||F.base.state!=="ready"||!F.base.writable,children:E.phase==="saving"?"应用中…":`应用 ${ge.length} 项`})]})]})})}function by({document:t,draft:r,dirtyKeys:i,saving:a,onSet:d,onReset:f}){const p=t.sections.appearance.style,g=t.sections.appearance.theme,x=t.sections.appearance.motion;return o.jsxs(xl,{heading:"通用",detail:"外观偏好由 Host 保存,并在所有 Workbench 窗口保持一致。",children:[o.jsx(xs,{id:"settings-style",label:"视觉风格",description:"选择内置的方块工坊外观,或切回经典工作台。",field:p,dirty:i.includes("appearance.style"),onReset:()=>f("appearance.style"),disabled:a||!sn(t,p),children:o.jsxs("select",{id:"settings-style",value:r["appearance.style"],disabled:a||!sn(t,p),onChange:k=>d("appearance.style",k.target.value),children:[o.jsx("option",{value:"orion-blocksmith",children:"方块工坊(内置,默认)"}),o.jsx("option",{value:"classic",children:"经典"})]})}),o.jsx(xs,{id:"settings-theme",label:"主题",description:"跟随系统或固定使用浅色、深色。",field:g,dirty:i.includes("appearance.theme"),onReset:()=>f("appearance.theme"),disabled:a||!sn(t,g),children:o.jsxs("select",{id:"settings-theme",value:r["appearance.theme"],disabled:a||!sn(t,g),onChange:k=>d("appearance.theme",k.target.value),children:[o.jsx("option",{value:"system",children:"跟随系统"}),o.jsx("option",{value:"dark",children:"深色"}),o.jsx("option",{value:"light",children:"浅色"})]})}),o.jsxs("figure",{className:"appearance-preview","data-preview-style":r["appearance.style"],"data-preview-theme":r["appearance.theme"],"aria-label":`外观预览:${r["appearance.style"]==="orion-blocksmith"?"方块工坊":"经典工作台"},${Iy(r["appearance.theme"])}`,children:[o.jsxs("div",{className:"appearance-preview-frame","aria-hidden":"true",children:[o.jsx("span",{className:"appearance-preview-rail"}),o.jsxs("span",{className:"appearance-preview-main",children:[o.jsx("i",{}),o.jsx("i",{})]}),o.jsx("span",{className:"appearance-preview-panel"})]}),o.jsx("figcaption",{children:"纯 CSS 预览 · 均为内置外观,不支持安装或卸载。"})]}),o.jsx(xs,{id:"settings-motion",label:"动效",description:"减少非必要动画,保留状态变化。",field:x,dirty:i.includes("appearance.motion"),onReset:()=>f("appearance.motion"),disabled:a||!sn(t,x),children:o.jsxs("select",{id:"settings-motion",value:r["appearance.motion"],disabled:a||!sn(t,x),onChange:k=>d("appearance.motion",k.target.value),children:[o.jsx("option",{value:"system",children:"跟随系统"}),o.jsx("option",{value:"reduced",children:"减少动效"})]})})]})}function Iy(t){return t==="light"?"浅色":t==="dark"?"深色":"跟随系统"}function Ny({document:t,draft:r,dirtyKeys:i,saving:a,runtimeBusy:d,onSet:f,onReset:p,onGoToSessionControls:g}){const x=t.sections.defaults.model,k=t.sections.defaults.effort,b=t.models.some(j=>j.id===r["defaults.model"])?t.models:[{id:r["defaults.model"],label:r["defaults.model"]},...t.models];return o.jsxs(xl,{heading:"模型与推理",detail:"项目默认值通常从下一逻辑请求开始生效;当前会话覆盖保持可见。",children:[d?o.jsx(Pp,{detail:"当前回合正在运行;项目推理强度暂时锁定,默认模型仍可用于新会话。"}):null,o.jsx(xs,{id:"settings-model",label:"默认模型",description:"仅展示 Host 提供的可用模型标识。",field:x,dirty:i.includes("defaults.model"),onReset:()=>p("defaults.model"),disabled:a||!sn(t,x),children:o.jsx("select",{id:"settings-model",value:r["defaults.model"],disabled:a||!sn(t,x),onChange:j=>f("defaults.model",j.target.value),children:b.map(j=>o.jsxs("option",{value:j.id,children:[j.label,j.provider?` · ${j.provider}`:""]},j.id))})}),o.jsx(xs,{id:"settings-effort",label:"默认推理强度",description:"模型不支持的强度会由 Host 拒绝,不会静默降级。",field:k,dirty:i.includes("defaults.effort"),onReset:()=>p("defaults.effort"),disabled:a||d||!sn(t,k),children:o.jsx("select",{id:"settings-effort",value:r["defaults.effort"],disabled:a||d||!sn(t,k),onChange:j=>f("defaults.effort",j.target.value),children:jy.map(j=>o.jsx("option",{value:j,children:j==="auto"?"Auto":j},j))})}),t.currentSession?o.jsxs("div",{className:"settings-readonly-card","aria-label":"当前会话设置",children:[o.jsxs("div",{children:[o.jsx("span",{children:"当前会话"}),o.jsx("strong",{children:t.currentSession.model})]}),o.jsxs("div",{children:[o.jsx("span",{children:"Effort"}),o.jsx("strong",{children:t.currentSession.effort})]}),o.jsx("p",{children:t.currentSession.overridesProjectEffort?"当前会话覆盖了项目推理强度。":"当前会话沿用项目默认值。"}),o.jsx("small",{children:"可在会话输入框使用 /model 或 /effort 调整当前会话。"}),o.jsx("button",{type:"button",className:"text-button",onClick:g,"aria-controls":"orion-composer",children:"转到会话控制"})]}):null,o.jsxs("div",{className:"credential-note",children:[o.jsx(Q,{name:"check",size:16}),o.jsxs("div",{children:[o.jsx("strong",{children:"凭证始终留在 Host"}),o.jsx("p",{children:"浏览器只接收 ready / missing / unavailable 状态,不提供 API Key 输入框。"})]})]})]})}function _y({document:t,value:r,dirtyKeys:i,runtimeBusy:a,saving:d,confirmAllow:f,allowAcknowledged:p,onAllowRequested:g,onAllowAcknowledged:x,onConfirmAllow:k,onCancelAllow:b,onSet:j,onReset:N}){const E=m.useRef(null),z=m.useRef(null),A=t.sections.permissions.toolConfirmation,G=d||a||!sn(t,A);return m.useEffect(()=>{f&&z.current?.focus()},[f]),o.jsxs(xl,{heading:"权限",detail:"默认确认策略不改变工作区边界、硬拒绝和高风险保护。",children:[a?o.jsx(Pp,{}):null,o.jsx(xs,{id:"settings-tool-confirmation",label:"工具确认",description:"Ask 逐次询问;Deny 默认拒绝;Allow 仍受 Host 安全策略约束。",field:A,labelControl:!1,dirty:i.includes("permissions.toolConfirmation"),onReset:N,disabled:G,children:o.jsxs("fieldset",{id:"settings-tool-confirmation",className:"segmented-field",disabled:G,children:[o.jsx("legend",{className:"sr-only",children:"默认工具确认策略"}),["ask","allow","deny"].map(ne=>o.jsxs("label",{children:[o.jsx("input",{ref:ne==="allow"?E:void 0,type:"radio",name:"settings-permission",value:ne,checked:r===ne,onChange:()=>ne==="allow"?g():j(ne)}),o.jsx("span",{children:ne==="ask"?"Ask":ne==="allow"?"Allow":"Deny"})]},ne))]})}),f?o.jsxs("div",{className:"settings-risk-confirm",role:"alertdialog","aria-labelledby":"allow-confirm-title","aria-describedby":"allow-confirm-description",children:[o.jsx("strong",{id:"allow-confirm-title",children:"确认启用 Allow"}),o.jsx("p",{id:"allow-confirm-description",children:"Orion 会减少常规工具询问,但硬拒绝、工作区边界和风险检查仍然生效。"}),o.jsxs("label",{children:[o.jsx("input",{ref:z,type:"checkbox",checked:p,onChange:ne=>x(ne.target.checked)}),o.jsx("span",{children:"我理解这会扩大默认授权范围"})]}),o.jsxs("div",{children:[o.jsx("button",{type:"button",className:"secondary-button",onClick:()=>{b(),requestAnimationFrame(()=>E.current?.focus())},children:"保持当前策略"}),o.jsx("button",{type:"button",className:"primary-button",disabled:!p,onClick:k,children:"启用 Allow"})]})]}):null,o.jsx("p",{className:"settings-help",children:"Agent 的 BUILD / PLAN / AUTO 模式与工具确认策略互相独立。"})]})}function Ey({state:t,document:r,documentAction:i,onOpenDocument:a,onRefresh:d}){return o.jsxs(xl,{heading:"高级",detail:"配置状态、凭证可用性和集成清单均为只读摘要。",children:[r.diagnostic?o.jsxs("div",{className:"settings-diagnostic",role:"alert",children:[o.jsx(Q,{name:"warning",size:16}),o.jsxs("div",{children:[o.jsx("strong",{children:On(r.diagnostic.code)}),o.jsx("p",{children:On(r.diagnostic.message)})]})]}):null,o.jsxs("dl",{className:"settings-facts",children:[o.jsxs("div",{children:[o.jsx("dt",{children:"状态"}),o.jsx("dd",{children:zy(r.state)})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"工作区"}),o.jsx("dd",{title:"仅显示目录名",children:Ip(r.workspace)||"—"})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"文档"}),o.jsx("dd",{children:r.hasDocument?"已创建":"尚未创建"})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"版本"}),o.jsx("dd",{title:r.revision,children:Mf(r.revision)})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"Last good"}),o.jsx("dd",{children:t.settingsMirror.lastGood?Mf(t.settingsMirror.lastGood.revision):"无"})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"Mirror"}),o.jsxs("dd",{children:[t.settingsMirror.status," · g",t.settingsMirror.generation]})]})]}),o.jsxs("div",{className:"settings-advanced-actions",children:[o.jsxs("button",{type:"button",className:"secondary-button",onClick:d,children:[o.jsx(Q,{name:"refresh",size:15}),"重新载入设置"]}),o.jsxs("button",{type:"button",className:"secondary-button",onClick:a,children:[o.jsx(Q,{name:"edit",size:15}),"打开配置文件"]})]}),i?o.jsx("div",{className:`settings-document-action ${i.tone}`,role:i.tone==="error"?"alert":"status",children:i.message}):null,o.jsxs("section",{className:"settings-subsection","aria-labelledby":"credential-status-heading",children:[o.jsx("h4",{id:"credential-status-heading",children:"凭证状态"}),o.jsx("p",{children:"仅显示来源类别与可用性;密钥值、环境变量名和认证头不会进入浏览器。"}),r.credentials.length?o.jsx("ul",{className:"settings-readonly-list",children:r.credentials.map(f=>o.jsxs("li",{children:[o.jsx("span",{children:f.providerId}),o.jsx("span",{className:`settings-state-badge state-${f.state}`,children:f.state}),o.jsx("small",{children:Dy(f.source)})]},f.providerId))}):o.jsx("p",{className:"settings-empty-line",children:"Host 未报告凭证槽位。"})]}),o.jsxs("section",{className:"settings-subsection","aria-labelledby":"integration-status-heading",children:[o.jsx("h4",{id:"integration-status-heading",children:"只读能力"}),o.jsx("p",{children:"Skills 与 MCP 在专用配置中管理,此处用于确认 Host 实际加载结果。"}),o.jsxs("div",{className:"settings-capability-grid",children:[o.jsx(Of,{title:"Skills",count:t.skills.length,names:t.skills.map(f=>f.name)}),o.jsx(Of,{title:"MCP",count:t.mcpServers.length,names:t.mcpServers.map(f=>f.name)})]})]})]})}function Ry({state:t}){const{settingsMirror:r}=t;return r.status==="loading"?o.jsxs("div",{className:"settings-availability",role:"status",children:[o.jsx(Q,{name:"refresh",size:15})," 正在与 Host 同步设置…"]}):r.error?o.jsxs("div",{className:"settings-availability error",role:"alert",children:[o.jsx(Q,{name:"warning",size:15})," 设置同步失败:",r.error," 当前显示上一次可用值。"]}):r.stale?o.jsxs("div",{className:"settings-availability",role:"status",children:[o.jsx(Q,{name:"refresh",size:15})," Host 已更新设置,正在载入;当前显示上一次可用值。"]}):r.document?.state==="invalid"?o.jsxs("div",{className:"settings-availability error",role:"alert",children:[o.jsx(Q,{name:"warning",size:15})," 设置文档无效。控件已锁定,并保留上一次可用值供参考。"]}):r.document?.state==="read-only"?o.jsxs("div",{className:"settings-availability",role:"status",children:[o.jsx(Q,{name:"info",size:15})," 设置当前为只读状态。"]}):r.document?.state==="unavailable"?o.jsxs("div",{className:"settings-availability error",role:"alert",children:[o.jsx(Q,{name:"warning",size:15})," Host 设置暂不可用;当前显示上一次可用值。"]}):null}function xl({heading:t,detail:r,children:i}){return o.jsxs("section",{className:"settings-section","aria-labelledby":`settings-${Af(t)}-heading`,children:[o.jsxs("header",{className:"settings-section-heading",children:[o.jsx("h3",{id:`settings-${Af(t)}-heading`,children:t}),o.jsx("p",{children:r})]}),o.jsx("div",{className:"settings-section-fields",children:i})]})}function xs({id:t,label:r,description:i,field:a,labelControl:d=!0,dirty:f,disabled:p,onReset:g,children:x}){return o.jsxs("div",{className:`settings-field-card ${f?"dirty":""}`,children:[o.jsxs("div",{className:"settings-field-copy",children:[d?o.jsx("label",{htmlFor:t,children:r}):o.jsx("strong",{children:r}),o.jsx("p",{children:i}),o.jsxs("div",{className:"settings-field-meta","aria-label":`${r} 设置来源`,children:[o.jsx("span",{children:Oy(a.source)}),o.jsx("span",{children:My(a.scope)}),o.jsx("span",{children:Ay(a.applies)}),f?o.jsx("strong",{children:"草稿"}):null]}),a.blockedReason?o.jsx("small",{className:"settings-blocked-reason",children:Ly(a.blockedReason)}):null]}),o.jsxs("div",{className:"settings-field-control",children:[x,o.jsx("button",{type:"button",className:"text-button",onClick:g,disabled:p||a.explicitValue===void 0&&!f,"aria-label":`重置${r}为继承值`,children:"重置"})]})]})}function Py({draft:t,onAdopt:r,onRebase:i}){const a=xy(t),d=Or(t),f=t.serverLatest;return o.jsxs("div",{className:"settings-conflict",role:"alert",children:[o.jsx(Q,{name:"warning",size:17}),o.jsxs("div",{children:[o.jsx("strong",{children:"Host 设置已在其他位置更新"}),o.jsxs("p",{children:["草稿仍被保留",a.length?`;${a.length} 个草稿字段的服务器值发生变化`:"","。"]}),f?o.jsxs("div",{className:"settings-conflict-values","aria-label":"服务器值与我的草稿",children:[o.jsxs("div",{className:"settings-conflict-value-heading","aria-hidden":"true",children:[o.jsx("span",{children:"字段"}),o.jsx("span",{children:"服务器最新值"}),o.jsx("span",{children:"我的草稿"})]}),d.map(p=>o.jsxs("div",{children:[o.jsx("strong",{children:$y(p)}),o.jsx("span",{"data-label":"服务器最新值",children:String(Rn(f,p))}),o.jsxs("span",{"data-label":"我的草稿",children:[String(t.values[p]),t.intents[p]?.op==="unset"?"(重置)":""]})]},p))]}):null,o.jsxs("div",{children:[o.jsx("button",{type:"button",className:"secondary-button",onClick:r,children:"采用服务器值"}),o.jsx("button",{type:"button",className:"primary-button",onClick:i,children:"基于最新值重试"})]})]})]})}function Pp({detail:t="当前回合正在运行;相关设置会在 Runtime 空闲后解锁。"}={}){return o.jsxs("div",{className:"settings-busy",role:"status",children:[o.jsx(Q,{name:"activity",size:15})," ",t]})}function Of({title:t,count:r,names:i}){return o.jsxs("div",{className:"settings-capability-card",children:[o.jsx("span",{children:t}),o.jsx("strong",{children:r}),o.jsx("small",{children:i.slice(0,3).join(" · ")||"未加载"})]})}function sn(t,r){return t.state==="ready"&&t.writable&&r.writable&&!r.blockedReason}function Ty(t,r){const i=r instanceof Error?r.message:"Host 拒绝了设置变更。";switch(t){case"settings_revision_conflict":return"设置已在其他位置更新。你的草稿没有丢失。";case"runtime_busy":return"Runtime 正在处理任务。请等待当前回合结束后再次应用。";case"settings_document_invalid":return"配置文件无效。请在高级页查看 Host 提供的安全诊断。";case"settings_write_forbidden":return"当前设置来源为只读,Host 未执行任何变更。";case"request_id_conflict":return"保存请求标识与先前内容冲突,请重新应用。";case"settings_recovery_required":return"Host 报告设置冲突,但最新设置暂时无法载入。草稿已保留,请重新载入后再试。";case"network":return"未能确认 Host 是否收到请求;保留草稿,可安全重试。";default:return i}}function Oy(t){return`来源:${t==="internal"?"内置":t==="model"?"模型":t==="global"?"全局":t==="project"?"项目":"会话"}`}function My(t){return`作用域:${t==="global"?"全局":t==="project"?"项目":"会话"}`}function Ay(t){return`生效:${t==="live"?"立即":t==="next-logical-request"?"下次请求":t==="new-session"?"新会话":"重启后"}`}function Ly(t){return t==="runtime_busy"?"Runtime 正在运行,暂不可修改。":t==="read_only"?"此字段来自只读配置。":"设置文档无效,修复前不可修改。"}function $y(t){return t==="appearance.style"?"视觉风格":t==="appearance.theme"?"主题":t==="appearance.motion"?"动效":t==="defaults.model"?"默认模型":t==="defaults.effort"?"默认推理强度":"工具确认"}function Dy(t){return t==="environment"?"环境提供":t==="legacy"?"Host 旧配置":"未配置"}function zy(t){return t==="ready"?"可用":t==="invalid"?"无效":t==="read-only"?"只读":"不可用"}function Mf(t){return t.length>24?`${t.slice(0,20)}…`:t}function Af(t){return t.replace(/[^a-z0-9]+/gi,"-").replace(/^-|-$/g,"").toLowerCase()||"section"}function Lf(){return typeof document>"u"?null:document.activeElement}const Wy=["导航","面板","编辑","浮层"],Tp=Object.freeze([{id:"toggle-project-navigation",tokens:["Mod","B"],group:"导航",description:"展开或折叠项目导航"},{id:"toggle-work-panel",tokens:["Mod","Shift","B"],group:"导航",description:"展开或折叠右侧工作面板"},{id:"focus-work-panel-1",tokens:["Mod","Shift","1"],group:"面板",description:"切换到 Agent 面板"},{id:"focus-work-panel-2",tokens:["Mod","Shift","2"],group:"面板",description:"切换到审阅面板"},{id:"focus-work-panel-3",tokens:["Mod","Shift","3"],group:"面板",description:"切换到终端面板"},{id:"focus-work-panel-4",tokens:["Mod","Shift","4"],group:"面板",description:"切换到文件面板"},{id:"focus-work-panel-5",tokens:["Mod","Shift","5"],group:"面板",description:"切换到 Git 面板"},{id:"work-panel-tab-nav",tokens:["←","→"],group:"面板",description:"在面板标签之间移动(Home / End 跳到首尾)"},{id:"resize-panel",tokens:["←","→"],group:"面板",description:"聚焦分隔条后按 2% 步长调整宽度,配合 Shift 为 10%"},{id:"resize-panel-reset",tokens:["Enter"],group:"面板",description:"分隔条聚焦时恢复默认宽度(Home 最窄,End 最宽)"},{id:"submit-composer",tokens:["Enter"],group:"编辑",description:"在输入框中发送当前内容"},{id:"newline-composer",tokens:["Shift","Enter"],group:"编辑",description:"在输入框中插入换行而不发送"},{id:"force-submit-composer",tokens:["Mod","Enter"],group:"编辑",description:"Agent 运行中时立即提交(否则进入队列)"},{id:"project-tree-nav",tokens:["↑","↓"],group:"面板",description:"在项目与会话树中移动焦点"},{id:"close-overlay",tokens:["Esc"],group:"浮层",description:"关闭抽屉、对话框或快捷键面板"},{id:"open-shortcut-help",tokens:["Mod","/"],group:"浮层",description:"打开或关闭本快捷键面板"}]);function Fy(){if(typeof navigator>"u")return!1;const t=navigator.platform??"";return/mac|iphone|ipad|ipod/i.test(t)||/Mac/i.test(navigator.userAgent??"")}function By(t,r=Fy()){return t.map(a=>a==="Mod"?r?"⌘":"Ctrl":a==="Shift"?r?"⇧":"Shift":a==="Alt"?r?"⌥":"Alt":a.toUpperCase()).join(r?" ":"+")}function cl(t,r){let i=!1,a=!1,d=!1,f=null;for(const k of r)k==="Mod"?i=!0:k==="Shift"?a=!0:k==="Alt"?d=!0:f=k;if(i!==(t.metaKey||t.ctrlKey)||a!==t.shiftKey||d!==t.altKey||f===null)return!1;const p=t.code??"";if(/^[a-z]$/i.test(f))return p===`Key${f.toUpperCase()}`;if(/^[0-9]$/.test(f))return p===`Digit${f}`;const x=Object.freeze({esc:"escape"})[f.toLowerCase()]??f.toLowerCase();return t.key.toLowerCase()===x}function ul(t){return Tp.find(r=>r.id===t)}function qy(){return Wy.map(t=>({group:t,items:Tp.filter(r=>r.group===t)})).filter(t=>t.items.length>0)}function Uy({open:t,onClose:r}){const i=m.useRef(null),a=m.useRef(null),d="shortcut-help-title";m.useEffect(()=>{const g=i.current;if(g&&(t&&!g.open&&(a.current=document.activeElement,g.showModal()),!t&&g.open)){g.close();const x=a.current;x&&document.contains(x)&&x.focus(),a.current=null}},[t]);const f=g=>{g.target===g.currentTarget&&r()},p=qy();return o.jsxs("dialog",{ref:i,id:"shortcut-help",className:"modal shortcut-help","aria-labelledby":d,onCancel:g=>{g.preventDefault(),r()},onClose:r,onClick:f,children:[o.jsxs("header",{className:"shortcut-help-header",children:[o.jsxs("div",{children:[o.jsx("span",{className:"eyebrow",children:"KEYBOARD"}),o.jsx("h2",{id:d,children:"键盘快捷键"})]}),o.jsx("button",{type:"button",className:"icon-button",onClick:r,"aria-label":"关闭快捷键面板",children:o.jsx(Q,{name:"close",size:15})})]}),o.jsx("div",{className:"shortcut-help-body",tabIndex:0,"aria-label":"键盘快捷键列表",children:p.map(({group:g,items:x})=>o.jsxs("section",{className:"shortcut-help-group",children:[o.jsx("h3",{children:g}),o.jsx("dl",{children:x.map(k=>o.jsxs("div",{className:"shortcut-row",children:[o.jsx("dt",{children:k.description}),o.jsx("dd",{children:o.jsx("kbd",{children:By(k.tokens)})})]},k.id))})]},g))}),o.jsx("footer",{className:"shortcut-help-footer",children:o.jsxs("p",{children:["按 ",o.jsx("kbd",{children:"Esc"})," 关闭本面板,焦点会回到打开它的位置。"]})})]})}const Hy="modulepreload",Vy=function(t){return"/"+t},$f={},wl=function(r,i,a){let d=Promise.resolve();if(i&&i.length>0){let x=function(k){return Promise.all(k.map(b=>Promise.resolve(b).then(j=>({status:"fulfilled",value:j}),j=>({status:"rejected",reason:j}))))};document.getElementsByTagName("link");const p=document.querySelector("meta[property=csp-nonce]"),g=p?.nonce||p?.getAttribute("nonce");d=x(i.map(k=>{if(k=Vy(k),k in $f)return;$f[k]=!0;const b=k.endsWith(".css"),j=b?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${k}"]${j}`))return;const N=document.createElement("link");if(N.rel=b?"stylesheet":Hy,b||(N.as="script"),N.crossOrigin="",N.href=k,g&&N.setAttribute("nonce",g),document.head.appendChild(N),b)return new Promise((E,z)=>{N.addEventListener("load",E),N.addEventListener("error",()=>z(new Error(`Unable to preload CSS for ${k}`)))})}))}function f(p){const g=new Event("vite:preloadError",{cancelable:!0});if(g.payload=p,window.dispatchEvent(g),!g.defaultPrevented)throw p}return d.then(p=>{for(const g of p||[])g.status==="rejected"&&f(g.reason);return r().catch(f)})},Er=[{id:"goal",label:"Goal",icon:"goal"},{id:"activity",label:"活动",icon:"activity"},{id:"integrations",label:"能力",icon:"branch"},{id:"diagnostics",label:"诊断",icon:"diagnostics"}];function Ky({state:t,actions:r,tab:i,onTabChange:a}){const d=m.useId(),f=p=>{if(p.key!=="ArrowLeft"&&p.key!=="ArrowRight"&&p.key!=="Home"&&p.key!=="End")return;p.preventDefault();const g=Er.findIndex(k=>k.id===i),x=p.key==="Home"?0:p.key==="End"?Er.length-1:(g+(p.key==="ArrowRight"?1:-1)+Er.length)%Er.length;a(Er[x].id),requestAnimationFrame(()=>document.getElementById(`${d}-tab-${Er[x].id}`)?.focus())};return o.jsxs("div",{className:"agent-panel",children:[o.jsx("div",{className:"inspector-tabs",role:"tablist","aria-label":"详情类别",onKeyDown:f,children:Er.map(p=>o.jsxs("button",{id:`${d}-tab-${p.id}`,type:"button",role:"tab","aria-selected":i===p.id,"aria-controls":`${d}-panel`,tabIndex:i===p.id?0:-1,onClick:()=>a(p.id),children:[o.jsx(Q,{name:p.icon,size:15}),o.jsx("span",{children:p.label})]},p.id))}),o.jsxs("div",{id:`${d}-panel`,className:"inspector-body",role:"tabpanel","aria-labelledby":`${d}-tab-${i}`,tabIndex:0,children:[i==="goal"?o.jsx(Gy,{state:t,actions:r}):null,i==="activity"?o.jsx(Yy,{state:t,actions:r}):null,i==="integrations"?o.jsx(Zy,{state:t,actions:r}):null,i==="diagnostics"?o.jsx(ex,{state:t,actions:r}):null]})]})}function Gy({state:t,actions:r}){const i=t.goal,a=t.plan?.body??(typeof t.diagnostics?.plan=="string"?t.diagnostics.plan:""),d=ks(t),f=d||t.connection!=="live"||!ir(t),[p,g]=m.useState(!1);if(!i)return o.jsxs("div",{className:"inspector-stack",children:[o.jsxs("section",{className:"inspector-empty-card",children:[o.jsx("div",{className:"empty-mini-icon",children:o.jsx(Q,{name:"goal"})}),o.jsx("h3",{children:"没有活动 Goal"}),o.jsx("p",{children:"Goal 会跨回合保存目标、计划、证据和预算状态。"})]}),o.jsx(Qy,{onCreate:k=>r.controlGoal("create",k),disabled:f||!t.activeSessionId}),o.jsx(Df,{mode:t.mode.baseMode,plan:a})]});const x=i.criteria?.total?Math.round(i.criteria.passed/i.criteria.total*100):0;return o.jsxs("div",{className:"inspector-stack",children:[o.jsxs("section",{className:"goal-card",children:[o.jsxs("header",{children:[o.jsx("span",{className:`goal-status status-${i.status}`,children:i.status.replace(/_/g," ")}),o.jsxs("span",{children:["rev ",i.revision]})]}),o.jsx("h3",{children:i.objective}),i.criteria?o.jsxs("div",{className:"goal-progress",children:[o.jsxs("div",{children:[o.jsx("span",{children:"成功条件"}),o.jsxs("strong",{children:[i.criteria.passed," / ",i.criteria.total]})]}),o.jsx("progress",{value:i.criteria.passed,max:Math.max(1,i.criteria.total),"aria-label":`Goal 条件完成 ${x}%`}),o.jsxs("div",{className:"goal-breakdown",children:[o.jsxs("span",{children:[x,"% 完成"]}),o.jsxs("span",{children:[i.criteria.failed," 失败 · ",i.criteria.stale," 过期"]})]})]}):null,o.jsxs("dl",{className:"metric-grid",children:[o.jsxs("div",{children:[o.jsx("dt",{children:"Tokens"}),o.jsxs("dd",{children:[zf(i.tokensUsed),i.tokenBudget?` / ${zf(i.tokenBudget)}`:""]})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"用时"}),o.jsx("dd",{children:nx(i.timeUsedMs)})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"续跑"}),o.jsx("dd",{children:i.continuationCount})]}),o.jsxs("div",{children:[o.jsx("dt",{children:"Plan"}),o.jsx("dd",{children:i.planRevision?`r${i.planRevision}`:"—"})]})]}),i.nextAction?o.jsxs("div",{className:"next-action",children:[o.jsx("span",{children:"下一步"}),o.jsx("p",{children:i.nextAction})]}):null,i.auditRemaining?.length?o.jsxs("details",{className:"remaining-audit",children:[o.jsxs("summary",{children:["仍需验证 ",i.auditRemaining.length," 项"]}),o.jsx("ul",{children:i.auditRemaining.map((k,b)=>o.jsx("li",{children:k},`${k}-${b}`))})]}):null,o.jsxs("div",{className:"goal-actions",children:[i.status==="active"?o.jsxs("button",{type:"button",className:"secondary-button",onClick:()=>{r.controlGoal("pause")},disabled:f,children:[o.jsx(Q,{name:"pause",size:14}),"暂停"]}):i.status!=="complete"?o.jsxs("button",{type:"button",className:"secondary-button",onClick:()=>{r.controlGoal("resume")},disabled:f,children:[o.jsx(Q,{name:"refresh",size:14}),"恢复"]}):null,o.jsx("button",{type:"button",className:"danger-ghost-button",onClick:()=>g(!0),disabled:f,children:"清除"})]})]}),t.goalEvidence.length>0?o.jsxs("section",{className:"inspector-section",children:[o.jsxs("div",{className:"inspector-section-heading",children:[o.jsx("h3",{children:"最近证据"}),o.jsx("span",{children:t.goalEvidence.length})]}),o.jsx("ul",{className:"evidence-list",children:t.goalEvidence.slice(-8).reverse().map(k=>o.jsxs("li",{children:[o.jsx("span",{className:`evidence-state ${k.result}`,"aria-hidden":"true",children:o.jsx(Q,{name:k.result==="passed"?"check":k.result==="failed"?"close":"more",size:12})}),o.jsxs("div",{children:[o.jsx("strong",{children:k.subject}),o.jsxs("span",{children:[k.kind," · ",k.result]})]})]},k.id))})]}):null,o.jsx(Df,{mode:t.mode.baseMode,plan:a,goalPhase:i.planPhase}),t.goalActivity.length>0?o.jsxs("section",{className:"inspector-section",children:[o.jsx("div",{className:"inspector-section-heading",children:o.jsx("h3",{children:"Goal 轨迹"})}),o.jsx("ol",{className:"compact-timeline",children:t.goalActivity.slice(-10).reverse().map((k,b)=>o.jsxs("li",{children:[o.jsx("span",{className:"timeline-pin","aria-hidden":"true"}),o.jsxs("div",{children:[o.jsx("strong",{children:k.type.replace(/_/g," ")}),o.jsx("p",{children:k.message}),o.jsx("time",{children:rx(k.timestamp)})]})]},`${k.timestamp}-${b}`))})]}):null,o.jsx(py,{open:p,onClose:()=>g(!1),title:"清除此 Goal?",body:"Goal 的目标与进度会从当前会话移除,会话记录仍会保留。",confirmLabel:"清除 Goal",danger:!0,pending:d,onConfirm:()=>r.controlGoal("clear")})]})}function Qy({onCreate:t,disabled:r}){const[i,a]=m.useState(""),d=async f=>{if(f.preventDefault(),!!i.trim())try{await t(i.trim()),a("")}catch{}};return o.jsxs("form",{className:"goal-create",onSubmit:d,children:[o.jsx("label",{htmlFor:"goal-objective",children:"创建 Goal"}),o.jsx("textarea",{id:"goal-objective",rows:3,value:i,onChange:f=>a(f.target.value),placeholder:"输入一个可验证、可持续执行的目标…",disabled:r}),o.jsxs("button",{type:"submit",className:"primary-button",disabled:r||!i.trim(),children:[o.jsx(Q,{name:"goal",size:15}),"开始 Goal"]})]})}function Df({mode:t,plan:r,goalPhase:i}){return o.jsxs("section",{className:"inspector-section plan-section",children:[o.jsxs("div",{className:"inspector-section-heading",children:[o.jsx("h3",{children:"Plan"}),o.jsx("span",{className:`mode-badge mode-${t}`,children:t==="plan"?"PLAN MODE":i||"READ ONLY"})]}),r?o.jsx(ko,{children:r}):o.jsx("p",{className:"muted-copy",children:"还没有保存的计划。切换到 PLAN 模式后提交任务,Runtime 会生成并保存计划。"})]})}function Yy({state:t,actions:r}){const i=m.useMemo(()=>t.tools.filter(a=>tx(a)),[t.tools]);return o.jsxs("div",{className:"inspector-stack",children:[o.jsxs("section",{className:"inspector-section",children:[o.jsxs("div",{className:"inspector-section-heading",children:[o.jsx("h3",{children:"工具调用"}),o.jsx("span",{children:t.tools.length})]}),t.tools.length?o.jsx("ul",{className:"activity-list",children:t.tools.slice(-20).reverse().map(a=>o.jsx(Xy,{tool:a},a.callId))}):o.jsx(rl,{text:"还没有工具活动"})]}),o.jsx(Jy,{state:t,actions:r}),o.jsxs("section",{className:"inspector-section",children:[o.jsxs("div",{className:"inspector-section-heading",children:[o.jsx("h3",{children:"文件变化"}),o.jsx("span",{children:i.length+t.edits.length})]}),i.length||t.edits.length?o.jsxs("ul",{className:"change-list",children:[t.edits.slice(-8).reverse().map(a=>o.jsxs("li",{children:[o.jsx(Q,{name:"edit",size:14}),o.jsxs("div",{children:[o.jsx("strong",{children:Op(a.request.path)}),o.jsxs("span",{children:[a.request.kind," · ",a.request.candidates.length," candidates"]})]})]},a.eventId)),i.slice(-8).reverse().map(a=>o.jsxs("li",{children:[o.jsx(Q,{name:"code",size:14}),o.jsxs("div",{children:[o.jsx("strong",{children:a.name}),o.jsx("span",{children:a.summary||a.state})]})]},a.callId))]}):o.jsx(rl,{text:"还没有文件变化"})]}),o.jsxs("section",{className:"inspector-section",children:[o.jsxs("div",{className:"inspector-section-heading",children:[o.jsx("h3",{children:"子代理与研究"}),o.jsx("span",{children:t.subtasks.length+t.research.length})]}),t.subtasks.length?o.jsx("ul",{className:"activity-list",children:t.subtasks.slice(-8).reverse().map(a=>o.jsxs("li",{children:[o.jsx("span",{className:`state-dot state-${a.state}`,"aria-hidden":"true"}),o.jsxs("div",{children:[o.jsx("strong",{children:a.role}),o.jsx("span",{children:a.objective})]}),o.jsx("small",{children:a.state})]},a.taskId))}):null,t.research.length?o.jsx("ul",{className:"activity-list",children:t.research.slice(-6).reverse().map(a=>o.jsxs("li",{children:[o.jsx("span",{className:`state-dot state-${a.stage}`,"aria-hidden":"true"}),o.jsxs("div",{children:[o.jsx("strong",{children:"Research"}),o.jsx("span",{children:a.objective||a.packetId})]}),o.jsx("small",{children:a.stage})]},a.packetId))}):null,!t.subtasks.length&&!t.research.length?o.jsx(rl,{text:"还没有子代理或研究活动"}):null]})]})}function Xy({tool:t}){return o.jsxs("li",{children:[o.jsx("span",{className:`state-dot state-${t.state}`,"aria-hidden":"true"}),o.jsxs("div",{children:[o.jsx("strong",{children:t.name}),o.jsx("span",{children:t.summary||`调用 #${t.sequence}`})]}),o.jsx("small",{children:t.duration!==void 0?`${Math.round(t.duration)}ms`:t.state})]})}function Jy({state:t,actions:r}){const[i,a]=m.useState(""),[d,f]=m.useState(""),[p,g]=m.useState(),[x,k]=m.useState(0),[b,j]=m.useState(!1),[N,E]=m.useState("");m.useEffect(()=>{a(""),f(""),g(void 0),E("")},[t.activeSessionId]);const z=async(A,G=0)=>{j(!0),E("");try{const ne=await r.readToolDetail(A,G);a(A),f(U=>G===0?ne.content:`${U}${ne.content}`),g(ne.nextOffsetBytes),k(ne.totalBytes)}catch(ne){E(ne instanceof Error?ne.message:"工具详情读取失败。")}finally{j(!1)}};return o.jsxs("section",{className:"inspector-section tool-detail-browser",children:[o.jsxs("div",{className:"inspector-section-heading",children:[o.jsx("h3",{children:"持久化输出"}),o.jsxs("button",{type:"button",className:"icon-text-button",onClick:()=>{r.refreshToolDetails()},disabled:!!t.pendingAction,children:[o.jsx(Q,{name:"refresh",size:13}),"刷新"]})]}),t.toolDetails.length?o.jsx("div",{className:"detail-selector",role:"group","aria-label":"工具输出详情",children:t.toolDetails.slice(-20).reverse().map(A=>o.jsxs("button",{type:"button",className:i&&A.artifactId===i?"active":"",disabled:!A.artifactId||b,onClick:()=>A.artifactId&&void z(A.artifactId),children:[o.jsxs("span",{children:[o.jsx("strong",{children:A.toolName}),o.jsxs("small",{children:["#",A.sequence," · ",Wf(A.outputBytes)]})]}),o.jsx(Q,{name:"chevron",size:13})]},`${A.callId}:${A.sequence}`))}):o.jsx(rl,{text:"没有可读取的持久化输出"}),t.toolDetailNextCursor?o.jsx("button",{type:"button",className:"text-button",onClick:()=>{r.loadMoreToolDetails()},disabled:!!t.pendingAction,children:"加载更多输出记录"}):null,N?o.jsx("p",{className:"field-error",role:"alert",children:N}):null,i?o.jsxs("div",{className:"detail-output",children:[o.jsxs("div",{children:[o.jsxs("span",{children:[Wf(x)," · 已脱敏"]}),o.jsx("code",{children:i})]}),o.jsx("pre",{tabIndex:0,children:On(d)}),p!==void 0?o.jsx("button",{type:"button",className:"secondary-button",disabled:b,onClick:()=>{z(i,p)},children:b?"读取中…":"加载更多"}):null]}):null]})}function Zy({state:t,actions:r}){const i=t.skills,a=t.mcpServers;return o.jsxs("div",{className:"inspector-stack",children:[o.jsxs("section",{className:"capability-card",children:[o.jsxs("header",{children:[o.jsx("span",{className:"capability-icon",children:o.jsx(Q,{name:"spark",size:17})}),o.jsxs("div",{children:[o.jsx("h3",{children:"Skills"}),o.jsx("p",{children:"安全描述符,只读"})]}),o.jsx("span",{className:`readiness-pill ${i.length?"ready":""}`,children:i.length?`${i.length} 可用`:"未发现"})]}),i.length?o.jsx("ul",{className:"skill-list",children:i.map(d=>o.jsxs("li",{children:[o.jsxs("div",{children:[o.jsx("strong",{children:d.name}),o.jsxs("span",{children:[d.sourceScope," · ",d.providerId]})]}),o.jsx("p",{children:d.description}),d.requestedCapabilities.length?o.jsx("small",{children:d.requestedCapabilities.join(" · ")}):null]},d.id))}):o.jsx("p",{className:"muted-copy",children:"当前 Runtime 没有公开可用的 Skill 描述符。"})]}),o.jsxs("section",{className:"capability-card",children:[o.jsxs("header",{children:[o.jsx("span",{className:"capability-icon mcp",children:o.jsx(Q,{name:"branch",size:17})}),o.jsxs("div",{children:[o.jsx("h3",{children:"MCP Servers"}),o.jsx("p",{children:"只读配置与运行状态"})]}),o.jsx("span",{className:`readiness-pill ${a.length?"ready":""}`,children:a.length?`${a.length} 已配置`:"未配置"})]}),a.length?o.jsx("ul",{className:"server-list",children:a.map(d=>o.jsxs("li",{children:[o.jsx("span",{className:`state-dot state-${d.state}`,"aria-hidden":"true"}),o.jsxs("div",{children:[o.jsx("code",{children:d.name}),o.jsxs("small",{children:[d.transport," · ",d.toolCount," tools"]})]}),o.jsx("span",{children:d.disabled?"Disabled":d.state})]},d.id))}):o.jsx("p",{className:"muted-copy",children:"没有可用的 MCP Server。浏览器不会接收环境变量或认证 Header。"})]}),t.skillNextCursor||t.mcpNextCursor?o.jsx("button",{type:"button",className:"secondary-button",onClick:()=>{r.loadMoreCapabilities()},disabled:!!t.pendingAction,children:"加载更多能力"}):null,o.jsxs("section",{className:"security-note",children:[o.jsx(Q,{name:"info",size:16}),o.jsxs("p",{children:[o.jsx("strong",{children:"能力边界由 Runtime 管理。"})," Web 端只展示描述符和状态,不加载外部插件代码,也不会绕过 ToolGateway。"]})]})]})}function ex({state:t,actions:r}){const i=t.diagnostics,a=wo(t);return o.jsxs("div",{className:"inspector-stack",children:[o.jsxs("div",{className:"diagnostics-toolbar",children:[o.jsxs("div",{children:[o.jsx("span",{className:`connection-dot ${t.connection}`,"aria-hidden":"true"}),o.jsx("strong",{children:sx(t.connection)})]}),o.jsxs("button",{type:"button",className:"icon-text-button",onClick:()=>{r.refreshDiagnostics()},disabled:!!t.pendingAction,children:[o.jsx(Q,{name:"refresh",size:14}),"刷新"]})]}),o.jsxs("section",{className:"inspector-section",children:[o.jsx("div",{className:"inspector-section-heading",children:o.jsx("h3",{children:"Runtime"})}),o.jsxs("dl",{className:"diagnostic-list",children:[o.jsx(Et,{label:"版本",value:t.bootstrap?.productVersion??"—"}),o.jsx(Et,{label:"工作区",value:Op(t.workspace)||"—"}),o.jsx(Et,{label:"会话",value:t.activeSessionId?.slice(0,12)??"未选择"}),o.jsx(Et,{label:"模式",value:String(i?.agentMode??t.mode.baseMode)}),o.jsx(Et,{label:"权限",value:String(i?.permissionMode??t.settings?.sections.permissions.toolConfirmation.effectiveValue??"—")}),o.jsx(Et,{label:"事件游标",value:`${t.lastCursor}`}),o.jsx(Et,{label:"事件 UUID",value:t.lastEventId?.slice(0,12)??"—"}),o.jsx(Et,{label:"会话快照",value:a.status}),o.jsx(Et,{label:"保留事件",value:`${i?.eventStream?.retained??"—"}`}),o.jsx(Et,{label:"快照请求",value:i?.session?`${i.session.snapshotRequests} 次 / 失败 ${i.session.snapshotFailures}`:"—"}),o.jsx(Et,{label:"快照时延",value:i?.session?`${i.session.snapshotLastMs} ms(累计 ${i.session.snapshotTotalMs} ms)`:"—"}),o.jsx(Et,{label:"Session actor",value:i?.session?`${i.session.actors.actorsCreated} 分配 / ${i.session.actors.actorsEvicted} LRU 驱逐`:"—"}),o.jsx(Et,{label:"control plane",value:i?.session?`${i.session.controlPlaneInstalls} 次装载 / ${i.session.controlPlaneShutdowns} 次关闭`:"—"}),o.jsx(Et,{label:"浏览器切换",value:`${t.clientTelemetry.sessionSwitches} 次 / 缓存命中 ${t.clientTelemetry.snapshotCacheHits} / 加载 ${t.clientTelemetry.snapshotLoads}`})]})]}),i?.contextUsage?o.jsx(Gi,{title:"Context usage",value:i.contextUsage}):null,i?.tokenUsage?o.jsx(Gi,{title:"Token usage",value:i.tokenUsage}):null,i?.harness?o.jsx(Gi,{title:"Harness",value:i.harness}):null,t.loopStats?o.jsx(Gi,{title:"Loop statistics",value:t.loopStats}):null,o.jsxs("section",{className:"security-note",children:[o.jsx(Q,{name:"check",size:16}),o.jsx("p",{title:"API Key、认证 Header 和环境值不会返回浏览器。",children:"诊断载荷由 Host 脱敏。"})]})]})}function Et({label:t,value:r}){return o.jsxs("div",{children:[o.jsx("dt",{children:t}),o.jsx("dd",{title:r,children:r})]})}function Gi({title:t,value:r}){return o.jsxs("details",{className:"json-section",children:[o.jsx("summary",{children:t}),o.jsx("pre",{tabIndex:0,children:Pc(r,12e3)})]})}function rl({text:t}){return o.jsxs("div",{className:"empty-small",children:[o.jsx("span",{className:"empty-line","aria-hidden":"true"}),o.jsx("p",{children:t})]})}function tx(t){return/write|edit|patch|delete|move|rename|mkdir|create/i.test(t.name)}function Op(t){const r=t.replace(/[\\/]+$/,"");return r.split(/[\\/]/).filter(Boolean).at(-1)??r}function zf(t){return new Intl.NumberFormat("zh-CN",{notation:t>99999?"compact":"standard"}).format(t)}function nx(t){return t<1e3?`${Math.round(t)}ms`:t<6e4?`${Math.round(t/1e3)}s`:`${Math.floor(t/6e4)}m ${Math.round(t%6e4/1e3)}s`}function Wf(t){return t<1024?`${t} B`:t<1048576?`${(t/1024).toFixed(1)} KB`:`${(t/1048576).toFixed(1)} MB`}function rx(t){const r=Date.parse(t);return Number.isFinite(r)?new Date(r).toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit"}):""}function sx(t){return t==="live"?"本地 Web Host 连接正常":t==="offline"?"浏览器离线":t==="replay-required"?"Web Host 事件流需要恢复":t==="closed"?"本地 Web Host 已关闭":t==="connecting"?"正在连接本地 Web Host":"正在重新连接本地 Web Host"}function ox({width:t,onPreview:r,onCommit:i,maxWidth:a=xp}){return o.jsx(vp,{side:"right",className:"work-panel-resize-handle",minWidth:Lc,maxWidth:a,defaultWidth:$c,label:"拖动或按方向键调整工作面板宽度",width:t,controls:"work-panel-detail",onPreview:r,onCommit:i})}const ix=["agent","review","terminal","files","git"],lx=Object.freeze({agent:{label:"Agent",icon:"spark",kind:"task"},review:{label:"审阅",icon:"edit",kind:"resource"},terminal:{label:"终端",icon:"terminal",kind:"resource"},files:{label:"文件",icon:"workspace",kind:"resource"},git:{label:"Git",icon:"branch",kind:"resource"}}),ax=new Map(ix.map(t=>{const r=lx[t];return[t,Object.freeze({id:t,label:r.label,icon:r.icon,kind:r.kind})]})),cx=m.lazy(()=>wl(()=>import("./TerminalPanel-BniCjatZ.js"),__vite__mapDeps([0,1])).then(t=>({default:t.TerminalPanel}))),ux=m.lazy(()=>wl(()=>import("./FilesPanel-CdoCa8u0.js"),__vite__mapDeps([2,3])).then(t=>({default:t.FilesPanel}))),dx=m.lazy(()=>wl(()=>import("./GitPanel-CRr_iIDz.js"),__vite__mapDeps([4,3])).then(t=>({default:t.GitPanel}))),fx=m.lazy(()=>wl(()=>import("./ReviewPanel-C1Cu2IRV.js"),__vite__mapDeps([5,3])).then(t=>({default:t.ReviewPanel}))),px=["focus-work-panel-1","focus-work-panel-2","focus-work-panel-3","focus-work-panel-4","focus-work-panel-5"],Ff=Object.freeze(Object.fromEntries([...ax].map(([t,r])=>[t,{label:r.label,icon:r.icon}]))),hx=new Set(["starting","running","stopping","queued","waiting_approval","interrupted","failed"]);function mx(t,r){return t?hx.has(t)?t==="failed"||t==="interrupted"?"failed":t==="queued"||t==="waiting_approval"?"queued":"running":null:r?"running":null}const dc=["system","light","dark"],gx={system:"monitor",light:"sun",dark:"moon"},Bf={system:"跟随系统",light:"浅色",dark:"深色"};function vx(t){const r=t??"system",i=dc.indexOf(r),a=dc[(i+1)%dc.length];return{current:r,next:a}}function yx({state:t,actions:r,mode:i,expanded:a,themePreference:d,onCycleTheme:f,onToggleInspector:p,onShowShortcutHelp:g,activePanel:x,panelOrder:k,agentPanel:b,onExpand:j,onCollapse:N,onPanelChange:E,onAgentPanelChange:z,onWidthPreview:A,onWidthCommit:G,width:ne,maxWidthPx:U,revealFileRequest:se,onRevealInFiles:ie,onSendToComposer:Y,resourceNavigatorWidths:L,onResourceNavigatorWidthCommit:F}){const ge=m.useRef(null),Ie=m.useRef(null),we=m.useRef(a),te=m.useId(),ye=m.useRef(new Set([x]));ye.current.add(x);const J=m.useRef(x==="terminal"||ye.current.has("terminal"));x==="terminal"&&(J.current=!0);const[Se,D]=m.useState(!1),ce=k&&k.length===bc.length?k:bc,W=t.workspaceResourceEpochs[t.workspaceId]??{files:0,git:0,review:0},T=t.sessionRuntimeById[t.activeSessionId??""]?.phase,B=mx(T,t.processing),$=vx(d);m.useEffect(()=>{const re=we.current;if(we.current=a,!(i!=="dock"||re===a)){if(!a){requestAnimationFrame(()=>ge.current?.querySelector(`[data-work-panel-id="${x}"]`)?.focus());return}Se&&(D(!1),requestAnimationFrame(()=>Ie.current?.focus()))}},[x,a,i,Se]),m.useEffect(()=>{const re=ul("toggle-work-panel"),he=je=>{if(re&&cl(je,re.tokens)){je.preventDefault(),a?N():(D(!0),j());return}const le=px.findIndex(Ke=>{const tt=ul(Ke);return tt?cl(je,tt.tokens):!1}),Me=ce[le];Me&&(je.preventDefault(),!(a&&x===Me)&&(E(Me),a||j()))};return window.addEventListener("keydown",he),()=>window.removeEventListener("keydown",he)},[a,i,N,j,E]);const v=re=>{if(re.key==="Escape"&&a&&!re.target.closest('[role="alertdialog"], .terminal-host, input, textarea, [contenteditable]')){re.preventDefault(),N();return}if(i!=="overlay"||!a||re.key!=="Tab")return;const he=xx(ge.current);if(!he.length){re.preventDefault(),ge.current?.focus();return}const je=he.indexOf(document.activeElement);re.shiftKey&&je<=0?(re.preventDefault(),he.at(-1)?.focus()):!re.shiftKey&&(je<0||je===he.length-1)&&(re.preventDefault(),he[0].focus())},R=re=>{if(i==="overlay"){E(re),a||(D(!0),j());return}if(a&&x===re){N();return}a||D(!0),E(re),j()},ue=(re=!1)=>o.jsxs("nav",{className:re?"work-panel-rail work-panel-rail-overlay":"work-panel-rail","aria-label":"工作面板快捷入口",children:[ce.map((he,je)=>{const le=Ff[he],Me=x===he;return o.jsxs("button",{type:"button",className:"work-panel-rail-button","data-work-panel-id":he,"aria-label":`打开${le.label}面板`,"aria-current":Me?"page":void 0,title:`${le.label} · ⌘⇧${je+1}`,onClick:()=>R(he),children:[o.jsx(Q,{name:le.icon,size:17}),he==="terminal"&&B?o.jsx(Tc,{state:B,className:"rail-status-dot",describe:!1}):null]},he)}),o.jsx("div",{className:"work-panel-rail-spacer"}),o.jsx("button",{type:"button",className:"icon-button shortcut-help-button",onClick:g,"aria-label":"查看键盘快捷键",title:"键盘快捷键(⌘/Ctrl+/)",children:o.jsx(Q,{name:"keyboard",size:17})}),o.jsx("button",{type:"button",className:"icon-button theme-cycle-button",onClick:f,"aria-label":`主题:${Bf[$.current]},点击切换为${Bf[$.next]}`,children:o.jsx(Q,{name:gx[$.current],size:17})}),o.jsx("button",{type:"button",className:"icon-button inspector-toggle",onClick:p,"aria-label":a?"关闭工作面板":"打开工作面板","aria-controls":"work-panel","aria-expanded":a,children:o.jsx(Q,{name:"sidebar",size:17})})]}),fe=re=>o.jsxs("div",{id:`${te}-${re}`,className:"work-panel-pane",role:"tabpanel","aria-label":Ff[re].label,hidden:re!==x,children:[re==="agent"?o.jsx(Ky,{state:t,actions:r,tab:b,onTabChange:z}):null,re==="review"?o.jsx(fx,{workspaceId:t.workspaceId,refreshEpoch:W.review,actions:r,onSendToComposer:Y,navigatorWidthPx:L.review,onNavigatorWidthCommit:he=>F("review",he)}):null,re==="terminal"?o.jsx(cx,{workspaceId:t.workspaceId,workspacePath:t.workspace,styleNonce:t.bootstrap?.nonce??"",available:!!t.bootstrap?.capabilities.terminal,actions:r}):null,re==="files"?o.jsx(ux,{workspaceId:t.workspaceId,refreshEpoch:W.files,actions:r,revealRequest:se??null,navigatorWidthPx:L.files,onNavigatorWidthCommit:he=>F("files",he)}):null,re==="git"?o.jsx(dx,{workspaceId:t.workspaceId,refreshEpoch:W.git,actions:r,onRevealInFiles:ie,onSendToComposer:Y,navigatorWidthPx:L.git,onNavigatorWidthCommit:he=>F("git",he)}):null]},re),ke=x==="terminal"||!J.current?[x]:[x,"terminal"];return o.jsxs("aside",{ref:ge,id:"work-panel",className:`work-panel work-panel-${i} ${a?"drawer-open work-panel-expanded":"work-panel-collapsed"}`,role:i==="overlay"?"dialog":void 0,"aria-modal":i==="overlay"&&a?!0:void 0,"aria-label":"工作面板","data-mode":i,"data-state":a?"expanded":"collapsed",tabIndex:i==="overlay"&&a?-1:void 0,onKeyDownCapture:v,children:[i==="dock"?o.jsxs("div",{className:"work-panel-dock-body",children:[a?o.jsx("section",{ref:Ie,id:"work-panel-detail",className:"work-panel-detail","aria-label":"工作面板内容",tabIndex:-1,children:o.jsx("div",{className:"work-panel-content",children:o.jsx(m.Suspense,{fallback:o.jsx("p",{className:"resource-loading",children:"正在加载工作面板…"}),children:ke.map(re=>fe(re))})})}):null,ue()]}):o.jsxs("div",{id:"work-panel-detail",className:"work-panel-detail",hidden:!a,children:[ue(!0),o.jsx("div",{className:"work-panel-content",children:o.jsx(m.Suspense,{fallback:o.jsx("p",{className:"resource-loading",children:"正在加载工作面板…"}),children:ke.map(re=>fe(re))})})]}),i==="dock"&&a?o.jsx(ox,{width:ne,maxWidth:U,onPreview:A,onCommit:G}):null]})}function xx(t){return t?Array.from(t.querySelectorAll('a[href], button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"])')).filter(r=>!r.hasAttribute("disabled")&&!r.closest("[inert]")&&!r.closest("[hidden]")&&r.getClientRects().length>0):[]}const Mp="orion.web.right-workspace.v3",dl=4,sl=300,Ap=160,Lp=420,wx=280,kx=["files","git","review"],fl=Object.freeze({files:sl,git:sl,review:sl});function $p(t){return Number.isFinite(t)?Math.min(Lp,Math.max(Ap,Math.round(t))):sl}function Cw(t){const r=Number.isFinite(t)?t:0,i=Math.min(Lp,r*.48,r-wx);return Math.max(Ap,Math.floor(i))}const Dp=Object.freeze({expanded:!0,activePanel:"agent",detailWidthPx:560,taskSubview:"overview",resourceNavigatorWidthPx:fl}),jx=Dp;function qf(){return Object.freeze({schemaVersion:dl,projectNavigation:Object.freeze({expanded:!0,widthPx:280}),workPanel:Object.freeze({byWorkspace:Object.freeze({}),fallback:jx})})}function Sx(t){const r=Dc(t.agentPanel);return Object.freeze({expanded:t.expanded!==!1,activePanel:Co(t.activePanel)?t.activePanel:"agent",detailWidthPx:Math.max(320,So(Number.isFinite(t.widthPx)?Number(t.widthPx)-rt:560)),taskSubview:r,resourceNavigatorWidthPx:fl})}function Cx(t,r){return t.workPanel.byWorkspace[r]??t.workPanel.fallback}function zp(t,r,i){const a=t.workPanel.byWorkspace[r]??t.workPanel.fallback,d=Object.freeze({...a,...i,resourceNavigatorWidthPx:i.resourceNavigatorWidthPx??a.resourceNavigatorWidthPx}),f={schemaVersion:dl,projectNavigation:t.projectNavigation,workPanel:{...t.workPanel,byWorkspace:Object.freeze({...t.workPanel.byWorkspace,[r]:d})}};return Object.freeze(f)}function bx(t,r,i,a){const d=Cx(t,r);return zp(t,r,{...d,resourceNavigatorWidthPx:Object.freeze({...d.resourceNavigatorWidthPx,[i]:$p(a)})})}function Ix(t){if(!t)return null;try{const r=JSON.parse(t);if(!Pr(r))return null;const i=r.schemaVersion;if(i!==3&&i!==dl)return null;const a=Pr(r.projectNavigation)?r.projectNavigation:{},d=Pr(r.workPanel)?r.workPanel:{},f=Pr(d.byWorkspace)?d.byWorkspace:{},p=Pr(d.fallback)?d.fallback:{},g={};for(const[x,k]of Object.entries(f))Pr(k)&&(g[x]=Uf(k));return Object.freeze({schemaVersion:dl,projectNavigation:Object.freeze({expanded:a.expanded!==!1,widthPx:So(Number(a.widthPx)||280)}),workPanel:Object.freeze({byWorkspace:Object.freeze(g),fallback:Uf(p)})})}catch{return null}}function Uf(t){return Object.freeze({expanded:t.expanded!==!1,activePanel:Co(t.activePanel)?t.activePanel:"agent",detailWidthPx:Wp(Number(t.detailWidthPx)),taskSubview:Dc(t.taskSubview),resourceNavigatorWidthPx:Nx(t.resourceNavigatorWidthPx)})}function Nx(t){if(!Pr(t))return fl;const r={...fl};for(const i of kx){const a=Number(t[i]);Number.isFinite(a)&&(r[i]=$p(a))}return Object.freeze(r)}function Wp(t){return Number.isFinite(t)?Math.min(3200,Math.max(360,Math.round(t))):Dp.detailWidthPx}function Dc(t){const r=String(t);return r==="goal"||r==="overview"?"overview":r==="activity"?"activity":r==="integrations"||r==="capabilities"?"capabilities":r==="diagnostics"?"diagnostics":"overview"}function _x(t){switch(t){case"overview":return"goal";case"activity":return"activity";case"capabilities":return"integrations";case"diagnostics":return"diagnostics"}}function Pr(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}function Ex(t){return["agent","review","terminal","files","git"].includes(t)}function Rx(){const t=globalThis;try{return Ix(t.window?.localStorage.getItem(Mp)??null)}catch{return null}}function Hf(t){const r=globalThis;try{r.window?.localStorage.setItem(Mp,JSON.stringify(t))}catch{}}function Px(t,r){const[i,a]=m.useState(Rx),d=t??"__fallback__",f=m.useMemo(()=>Sx(r),[]),p=m.useMemo(()=>{const k=i?.workPanel.byWorkspace[d]??i?.workPanel.fallback??f;return{workspaceId:d,expanded:k.expanded,activePanel:Ex(k.activePanel)?k.activePanel:"agent",agentPanel:_x(k.taskSubview),detailWidthPx:k.detailWidthPx,resourceNavigatorWidthPx:k.resourceNavigatorWidthPx}},[i,d,f]),g=m.useCallback(k=>{a(b=>{const j=b??qf(),N=j.workPanel.byWorkspace[d]??j.workPanel.fallback??f,E={expanded:k.expanded??N.expanded,activePanel:k.activePanel??N.activePanel,detailWidthPx:k.detailWidthPx??N.detailWidthPx,taskSubview:k.agentPanel?Dc(k.agentPanel):N.taskSubview,resourceNavigatorWidthPx:N.resourceNavigatorWidthPx},z=zp(j,d,E);return Hf(z),z})},[d,f]),x=m.useCallback((k,b)=>{a(j=>{const N=j??qf(),E=bx(N,d,k,b);return Hf(E),E})},[d]);return{value:p,update:g,setResourceNavigatorWidth:x}}const zc=320,Vf=360,Tx=1024,Ox=768,Mx=.8;function Fp(t){return Number.isFinite(t)&&t>0?Math.round(t):1440}function Bp(t){const r=Math.floor(t*Mx),i=t-zc-rt;return Math.max(0,Math.min(r,i))}function Kf(t){const r=Fp(t.containerWidth),i=Math.max(0,Math.round(t.leftWidthPx)),a=Math.max(0,r-i);if(r<Ox)return Object.freeze({mode:"drawer",detailWidthPx:0,conversationWidthPx:a,canResize:!1});if(r<Tx)return t.expanded?Object.freeze({mode:"drawer",detailWidthPx:0,conversationWidthPx:a,canResize:!0}):Object.freeze({mode:"rail",detailWidthPx:0,conversationWidthPx:a,canResize:!1});if(!t.expanded)return Object.freeze({mode:"rail",detailWidthPx:rt,conversationWidthPx:a-rt,canResize:!1});const d=Bp(a);if(d<Vf)return Object.freeze({mode:"rail",detailWidthPx:rt,conversationWidthPx:a-rt,canResize:!1});const f=Math.max(Vf,Math.min(Wp(t.storedDetailWidthPx),d)),p=a-f-rt;return p<zc?Object.freeze({mode:"rail",detailWidthPx:rt,conversationWidthPx:a-rt,canResize:!1}):Object.freeze({mode:"dock",detailWidthPx:f,conversationWidthPx:p,canResize:d>f})}function Gf(t){const r=Fp(t.containerWidth),i=t.navigationExpanded?Math.max(240,Math.min(480,Math.round(t.navigationWidthPx))):rt;let a=Kf({containerWidth:r,leftWidthPx:i,expanded:t.workExpanded,storedDetailWidthPx:t.workDetailWidthPx});const d=Kf({containerWidth:r,leftWidthPx:rt,expanded:t.workExpanded,storedDetailWidthPx:t.workDetailWidthPx});return t.navigationExpanded&&(a.mode==="dock"&&a.conversationWidthPx<zc||a.mode!=="dock"&&d.mode==="dock")?(a=d,Object.freeze({projectNavigation:Object.freeze({mode:"rail",widthPx:rt}),conversationWidthPx:a.conversationWidthPx,workPanel:Object.freeze({mode:a.mode,widthPx:a.mode==="dock"?a.detailWidthPx+rt:a.detailWidthPx})})):Object.freeze({projectNavigation:Object.freeze({mode:t.navigationExpanded?"dock":"rail",widthPx:i}),conversationWidthPx:a.conversationWidthPx,workPanel:Object.freeze({mode:a.mode,widthPx:a.mode==="dock"?a.detailWidthPx+rt:a.detailWidthPx})})}function Ax(t,r,i){const a=r==="light"||r==="system"&&i;return t==="orion-blocksmith"?a?"#d7d0c1":"#15191b":a?"#f4f5f8":"#090b10"}function lr(t,r){return t.some(i=>i.id===r.id)?t.map(i=>i.id===r.id?r:i):[r,...t]}const pl=1e4,Lx=256,$x=256,Dx=128,zx=8,kl=8*1024*1024,Wx=64;function Fx(t=cp,r){switch(r.type){case"baseline_loaded":{t=Ec(t);const i=t.workspaceId!==r.bootstrap.workspaceId||t.activeSessionId!==r.bootstrap.activeSessionId?jo(t):t,a=Qx(r.diagnostics,i.mode);return{...i,boot:"ready",bootError:void 0,bootstrap:r.bootstrap,contextRevision:r.bootstrap.contextRevision,workspaceId:r.bootstrap.workspaceId,pendingSessionActions:t.workspaceId===r.bootstrap.workspaceId&&t.contextRevision===r.bootstrap.contextRevision?t.pendingSessionActions:{},sessionCreationPending:t.workspaceId===r.bootstrap.workspaceId&&t.contextRevision===r.bootstrap.contextRevision?t.sessionCreationPending:!1,sessionCreationSelected:!1,foregroundRestore:null,bootstrapEventCursor:r.bootstrap.eventCursor??null,workspace:r.workspaces.activePath||r.bootstrap.workspace,workspaces:r.workspaces.workspaces,sessions:r.sessions,workspaceSessions:{...i.workspaceSessions,[r.bootstrap.workspaceId]:{status:"ready",items:r.sessions,nextCursor:r.sessionNextCursor}},workspaceNextCursor:r.workspaces.nextCursor,sessionNextCursor:r.sessionNextCursor,activeSessionId:r.bootstrap.activeSessionId,sessionSync:r.bootstrap.activeSessionId?{...i.sessionSync,[r.bootstrap.activeSessionId]:{status:i.sessionProjectionById[r.bootstrap.activeSessionId]?"refreshing":"loading",requestId:null}}:i.sessionSync,settings:r.settings,diagnostics:r.diagnostics,skills:r.skills,skillNextCursor:r.skillNextCursor,mcpServers:r.mcpServers,mcpNextCursor:r.mcpNextCursor,toolDetails:r.toolDetails,toolDetailNextCursor:r.toolDetailNextCursor,notice:i.notice?.domain==="session-snapshot"?null:i.notice,processing:!!r.diagnostics.processing,mode:a,statusMessage:r.bootstrap.configured?"本地 Web Host 已就绪":"模型尚未配置,任务提交已停用",announcement:r.bootstrap.configured?"本地 Web Host 已就绪":"Orion 尚未配置模型"}}case"boot_failed":return{...t,boot:"error",bootError:r.message,connection:Xx()?"reconnecting":"offline",announcement:`启动失败:${r.message}`};case"connection_changed":return t.connection==="replay-required"?t:{...t,connection:r.phase,sessionSync:r.phase==="live"?t.sessionSync:Object.fromEntries(Object.entries(t.sessionSync).map(([i,a])=>[i,{...a,dirty:!0}])),connectionAttempt:r.attempt,announcement:Jx(r.phase,r.attempt)};case"event_received":return Bx(t,r.envelope);case"session_snapshot_started":return t.contextRevision!==r.contextRevision||t.workspaceId!==r.workspaceId?t:Qi(Pn(t,r.sessionId,{status:r.cached?"refreshing":"loading",requestId:r.requestId}),{snapshotLoads:1});case"session_snapshot_loaded":{const i=r.snapshot.session.id;return!Yi(t,r.contextRevision,r.workspaceId)||!np(t,i,r.requestId)?t:ep(t,r.snapshot)?Pn(t,i,{status:"refreshing",requestId:r.requestId??null,dirty:!0}):t.activeSessionId!==i?r.requestId===void 0?t:tp(Qf(t,r.snapshot),i):tp(Nc(t,r.snapshot,r.advanceEventCursor===!0),i)}case"composer_loaded":return r.composer.sessionId!==t.activeSessionId||r.composer.workspaceId!==t.workspaceId||r.composer.contextRevision!==t.contextRevision||r.requestControlRevision!==void 0&&t.composer&&t.composer.controlRevision!==r.requestControlRevision&&t.composer.controlRevision!==r.composer.controlRevision?t:qp(t,r.composer);case"model_catalog_loaded":return{...t,modelCatalog:r.catalog};case"durable_session_metadata_loaded":return t.contextRevision!==r.contextRevision||t.workspaceId!==r.workspaceId||ep(t,r.snapshot)?t:t.activeSessionId!==r.snapshot.session.id?Qf(t,r.snapshot):r.snapshot.runtime.active!==!0?t:Hx(t,r.snapshot);case"older_transcript_loaded":{const i=r.snapshot.session.id,a=t.activeSessionId===i,d=a?t.sessionSnapshot:t.sessionProjectionById[i],f=a?t:t.sessionViewsById[i]?.view;if(!d||!f)return t;if(d.threadId!==r.snapshot.threadId||d.threadCursor!==r.snapshot.threadCursor||d.projectionDigest!==r.snapshot.projectionDigest){const b=t.sessionSync[i];return b?Pn(t,i,{...b,dirty:!0}):t}const p=new Set(f.transcript.map(b=>b.id)),g=Up(r.snapshot).filter(b=>!p.has(b.id)),x=[...g,...f.transcript].sort((b,j)=>b.order-j.order).slice(-pl),k={...d,transcript:{items:d.transcript.items,nextCursor:r.snapshot.transcript.nextCursor}};return a?{...t,transcript:x,sessionSnapshot:k,announcement:`已加载 ${g.length} 条更早记录`}:Fc(t,k,{...f,transcript:x,sessionSnapshot:k})}case"sessions_loaded":return{...t,sessions:r.append?or(t.sessions,r.sessions,i=>i.id):r.sessions,sessionNextCursor:r.nextCursor,workspaceSessions:t.workspaceId?{...t.workspaceSessions,[t.workspaceId]:{status:"ready",items:r.append?or(t.sessions,r.sessions,i=>i.id):r.sessions,nextCursor:r.nextCursor}}:t.workspaceSessions};case"workspaces_loaded":return{...t,workspaceId:r.value.activeId||t.workspaceId,workspace:r.value.activePath||t.workspace,workspaces:r.append?or(t.workspaces,r.value.workspaces,i=>i.id):r.value.workspaces,workspaceNextCursor:r.value.nextCursor};case"workspace_sessions_loading":return{...t,workspaceSessions:{...t.workspaceSessions,[r.workspaceId]:{status:"loading",items:t.workspaceSessions[r.workspaceId]?.items??[],nextCursor:t.workspaceSessions[r.workspaceId]?.nextCursor??null}}};case"workspace_sessions_loaded":{const i=t.workspaceSessions[r.workspaceId],a=r.append?or(i?.items??[],r.sessions,d=>d.id):r.sessions;return{...t,sessions:r.workspaceId===t.workspaceId?a:t.sessions,sessionNextCursor:r.workspaceId===t.workspaceId?r.nextCursor:t.sessionNextCursor,workspaceSessions:{...t.workspaceSessions,[r.workspaceId]:{status:"ready",items:a,nextCursor:r.nextCursor}}}}case"workspace_sessions_failed":return{...t,workspaceSessions:{...t.workspaceSessions,[r.workspaceId]:{status:"error",items:t.workspaceSessions[r.workspaceId]?.items??[],nextCursor:t.workspaceSessions[r.workspaceId]?.nextCursor??null,error:r.detail}}};case"session_updated":return Xf(t,a=>Vx(a,r.session));case"session_archived":{const i=Yf(t,r.session.id),a=t.archivedSessions.items.some(d=>d.id===r.session.id);return{...i,archivedSessions:a?i.archivedSessions:{...i.archivedSessions,status:"ready",items:[r.session,...i.archivedSessions.items]}}}case"session_restored":{const i=Xf(t,a=>[r.session,...a.filter(d=>d.id!==r.session.id)]);return{...i,archivedSessions:{...i.archivedSessions,items:i.archivedSessions.items.filter(a=>a.id!==r.session.id)}}}case"session_deleted":{const i={...t.sessionRuntimeById};return delete i[r.sessionId],{...Yf(t,r.sessionId),sessionRuntimeById:i,archivedSessions:{...t.archivedSessions,items:t.archivedSessions.items.filter(a=>a.id!==r.sessionId)}}}case"archived_sessions_loading":return r.workspaceId!==t.workspaceId?t:{...t,archivedSessions:{status:"loading",items:t.archivedSessions.ownerWorkspaceId===r.workspaceId?t.archivedSessions.items:[],nextCursor:t.archivedSessions.nextCursor,ownerWorkspaceId:r.workspaceId}};case"archived_sessions_loaded":{if(r.workspaceId!==t.workspaceId)return t;const i=r.append?or(t.archivedSessions.items,r.sessions,a=>a.id):r.sessions;return{...t,archivedSessions:{status:"ready",items:i,nextCursor:r.nextCursor,ownerWorkspaceId:r.workspaceId}}}case"archived_sessions_failed":return r.workspaceId!==t.workspaceId?t:{...t,archivedSessions:{...t.archivedSessions,status:"error",ownerWorkspaceId:r.workspaceId,error:r.detail}};case"workspace_project_summary_loaded":return{...t,workspaceProjectSummaries:{...t.workspaceProjectSummaries,[r.summary.workspaceId]:r.summary}};case"settings_loaded":return{...t,settings:r.settings};case"settings_mirror_changed":return{...t,settings:r.snapshot.document??r.snapshot.lastGood,settingsMirror:r.snapshot};case"diagnostics_loaded":return{...t,diagnostics:r.diagnostics};case"capabilities_loaded":return{...t,skills:r.append?or(t.skills,r.skills,i=>i.id):r.skills,skillNextCursor:r.skillNextCursor,mcpServers:r.append?or(t.mcpServers,r.mcpServers,i=>i.id):r.mcpServers,mcpNextCursor:r.mcpNextCursor};case"tool_details_loaded":return{...t,toolDetails:r.append?or(t.toolDetails,r.details,i=>`${i.sequence}:${i.callId}`):r.details,toolDetailNextCursor:r.nextCursor};case"pending_action":return{...t,pendingAction:r.label};case"navigation_target":return{...t,navigationTarget:r.target,sessionCreationSelected:!1};case"pending_session_action":{if(!Yi(t,r.contextRevision,r.workspaceId))return t;const i={...t.pendingSessionActions[r.sessionId]};r.label===null?delete i[r.operationId]:i[r.operationId]=r.label;const a={...t.pendingSessionActions};return Object.keys(i).length?a[r.sessionId]=i:delete a[r.sessionId],{...t,pendingSessionActions:a}}case"session_creation_pending":return Yi(t,r.contextRevision,r.workspaceId)?{...t,sessionCreationPending:r.pending,sessionCreationSelected:r.pending}:t;case"notice":return{...t,notice:r.notice};case"approval_resolved":return t.permission?.id!==r.requestId?t:{...t,permission:null,announcement:r.approved?"工具权限已授予":"工具请求已拒绝"};case"snapshot_failed":{if(!Yi(t,r.contextRevision,r.workspaceId))return t;if(!r.sessionId)return t.connection==="replay-required"?t:{...t,notice:{id:r.requestId??t.lastCursor,tone:"warning",title:"会话状态尚未同步",detail:r.detail},announcement:"会话状态尚未同步"};if(!np(t,r.sessionId,r.requestId)||r.sessionId!==t.activeSessionId&&r.requestId===void 0)return t;const i=Qi(Pn(t,r.sessionId,{status:"failed",requestId:r.requestId??t.sessionSync[r.sessionId]?.requestId??null,error:r.detail}),{snapshotFailures:1});return r.sessionId!==t.activeSessionId||t.connection==="replay-required"?i:{...i,statusMessage:t.sessionSnapshot?.session.id===r.sessionId?"会话刷新失败,当前显示最近状态":"会话快照加载失败",notice:{id:r.requestId??t.lastCursor,tone:"warning",title:"会话快照尚未同步",detail:r.detail,domain:"session-snapshot",sessionId:r.sessionId},announcement:"当前会话快照尚未同步,写操作已暂停"}}case"reset_session_view":{t=Ec(t),t={...t,sessionCreationSelected:!1,foregroundRestore:null};const i=!!r.activeSessionId&&r.activeSessionId!==t.activeSessionId,a=!!(r.activeSessionId&&t.sessionProjectionById[r.activeSessionId]),d={...i?{sessionSwitches:1}:{},...a?{snapshotCacheHits:1}:{}};if(r.activeSessionId&&t.sessionProjectionById[r.activeSessionId]){const g=r.activeSessionId,x=hc(t,g),k=t.sessionProjectionById[g],b={...k,session:t.sessions.find(E=>E.id===g)??k.session},j=Nc({...t,activeSessionId:g},b,!1),N=t.sessionViewsById[g]?{...j,...t.sessionViewsById[g].view,sessionSnapshot:b}:j;return Qi({...Pn(N,g,{status:x?"ready":"refreshing",requestId:t.sessionSync[g]?.requestId??null,dirty:!x}),notice:t.notice?.domain==="session-snapshot"&&t.notice.sessionId!==g?null:t.notice,statusMessage:x?N.statusMessage:"已显示最近会话状态,正在同步…",announcement:x?"已切换会话":"已切换到缓存会话,正在同步最新状态"},d)}const f={...jo(t),activeSessionId:r.activeSessionId,notice:t.notice?.domain==="session-snapshot"&&t.notice.sessionId!==r.activeSessionId?null:t.notice,statusMessage:r.activeSessionId?"正在加载会话快照…":"请选择会话",announcement:r.activeSessionId?"正在加载会话快照":"会话已清除"},p=r.activeSessionId?Pn(f,r.activeSessionId,{status:"loading",requestId:t.sessionSync[r.activeSessionId]?.requestId??null}):f;return Qi(p,d)}case"recovering":return{...t,connection:"connecting",replayReason:void 0,notice:null,announcement:"正在重新加载会话状态"}}}function Bx(t,r){if(r.type==="replay_reset")return{...t,sessionSync:Object.fromEntries(Object.entries(t.sessionSync).map(([a,d])=>{const f={...d};return delete f.lastEventCursor,delete f.snapshotEventCursor,[a,{...f,dirty:!0}]})),lastCursor:r.cursor,lastEventId:r.eventId,connection:"replay-required",replayReason:r.payload.reason,notice:{id:r.cursor,tone:"warning",title:"需要重新载入会话",detail:r.payload.reason,domain:"transport"},announcement:"事件历史已超出保留窗口,需要重新载入会话"};if(t.connection==="replay-required"||r.cursor<=t.lastCursor)return t;let i={...t,lastCursor:r.cursor,lastEventId:r.eventId};if(r.sessionId){const a=t.sessionSync[r.sessionId];if(a&&(i=Pn(i,r.sessionId,{...a,lastEventCursor:r.cursor,dirty:a.dirty||r.sessionId!==t.activeSessionId&&r.cursor>(a.snapshotEventCursor??0)})),a?.snapshotEventCursor!==void 0&&r.cursor<=a.snapshotEventCursor)return i}if(r.type==="settings_invalidated")return{...i,announcement:r.payload.revision===t.settings?.revision?"Host 设置已同步":r.payload.state==="invalid"?"设置文档无效,仍保留上一次可用值":"Host 设置已更新,正在刷新"};if(r.type==="workspace_resource_invalidated"){const d={...t.workspaceResourceEpochs[r.payload.workspaceId]??{files:0,git:0,review:0}};for(const f of r.payload.resources)d[f]=r.cursor;return{...i,workspaceResourceEpochs:{...t.workspaceResourceEpochs,[r.payload.workspaceId]:d},announcement:"项目资源已变化,可用面板正在刷新"}}if(r.type==="workbench_state"){if(t.bootstrapEventCursor!==null&&r.cursor<=t.bootstrapEventCursor)return i;const a=t.bootstrapEventCursor!==null,d=!a&&t.bootstrap!==null&&(r.payload.workspaceId===t.bootstrap.workspaceId||r.payload.workspace===t.bootstrap.workspace),f=!d&&(t.workspaceId!==""&&t.workspaceId!==r.payload.workspaceId||t.workspace!==""&&t.workspace!==r.payload.workspace),p=!a&&d&&!f?t.foregroundRestore:null,g=f?jo(Ec(i)):i,x=!a&&(d||f)?t.contextRevision:r.payload.contextRevision;return{...g,contextRevision:x,workspaceId:r.payload.workspaceId,sessionSync:i.contextRevision===x?g.sessionSync:Object.fromEntries(Object.entries(g.sessionSync).map(([k,b])=>[k,{...b,dirty:!0}])),pendingSessionActions:i.contextRevision===x?g.pendingSessionActions:{},sessionCreationPending:i.contextRevision===x?g.sessionCreationPending:!1,sessionCreationSelected:i.contextRevision===x?g.sessionCreationSelected:!1,workspace:!a&&d?t.workspace:r.payload.workspace,activeSessionId:f?null:p??t.activeSessionId,foregroundRestore:f?t.activeSessionId:null}}if(r.type==="composer_state_changed"){const a=r.payload.state;return a.sessionId!==i.activeSessionId||a.workspaceId!==i.workspaceId||a.contextRevision!==i.contextRevision?i:qp(i,a)}if(r.type==="session_runtime_changed"){const a=r.payload.runtime,d=i.sessionProjectionById[a.sessionId],f=jl(i.sessionRuntimeById,a),p=d?Io(i.sessionProjectionById,{...d,sessionRuntime:a}):i.sessionProjectionById;return a.sessionId!==i.activeSessionId?{...i,sessionProjectionById:p,sessionRuntimeById:f}:{...i,sessionProjectionById:p,sessionRuntimeById:f,processing:["running","waiting_approval","stopping"].includes(a.phase),sessionSnapshot:i.sessionSnapshot?.session.id===a.sessionId?{...i.sessionSnapshot,sessionRuntime:a}:i.sessionSnapshot,composer:i.composer?.sessionId===a.sessionId?{...i.composer,sessionRuntime:a}:i.composer}}if(r.type==="workspace_mutation_changed"){if(r.sessionId!==i.activeSessionId)return i;const a=i.tools.find(f=>f.callId===r.payload.state.callId);if(!a)return i;const d={phase:r.payload.state.phase,...r.payload.state.queuePosition===void 0?{}:{queuePosition:r.payload.state.queuePosition}};return{...i,tools:_c(i.tools,{...a,workspaceMutation:d}),announcement:d.phase==="queued"?`工具 ${a.name} 正在等待工作树写入`:d.phase==="running"?`工具 ${a.name} 已获得工作树写入权限`:i.announcement}}return r.sessionId!==null&&r.sessionId!==i.activeSessionId?i:r.type==="thread_event"?qx(i,r.payload.value):Ux(i,r.payload.value,r.eventId,r.cursor,r.timestamp)}function qx(t,r){const i=r.payload;switch(i.type){case"thread.started":case"thread.resumed":return{...t,statusMessage:"会话线程已就绪"};case"thread.forked":return{...t,statusMessage:"分支线程已就绪"};case"turn.started":return{...t,processing:!0,statusMessage:i.data.mode==="plan"?"正在制定计划…":"Orion 正在处理…",announcement:"新回合已开始"};case"turn.queued":return{...t,statusMessage:"消息已进入 Runtime 队列"};case"turn.queue_expired":return{...t,notice:{id:t.lastCursor,tone:"warning",title:"一条排队消息已过期",detail:`队列项 ${i.data.queueId} 未在时限内开始。`}};case"turn.steered":return{...t,statusMessage:"已将补充指令送入当前回合"};case"turn.interrupt_requested":return{...t,statusMessage:"正在中断当前回合…"};case"turn.committed":return{...t,statusMessage:"回合结果已持久化"};case"plan.review_requested":return{...t,processing:!1,statusMessage:"计划已保存,等待审核",announcement:"计划已准备好,请审核后再执行"};case"plan.review_resolved":return{...t,statusMessage:i.data.action==="approve"?"计划已批准,正在进入 BUILD":i.data.action==="continue"?"已提交继续规划反馈":"计划已取消"};case"turn.completed":return{...t,processing:!1,permission:null,statusMessage:"任务已完成",announcement:"当前回合已完成"};case"turn.failed":return{...t,processing:!1,permission:null,statusMessage:"当前回合失败",notice:{id:t.lastCursor,tone:"error",title:"当前回合失败",detail:i.data.error},announcement:"当前回合失败"};case"turn.interrupted":return{...t,processing:!1,permission:null,statusMessage:"当前回合已中断",announcement:"当前回合已中断"};case"compact.started":return{...t,statusMessage:"正在压缩上下文…"};case"compact.completed":return{...t,statusMessage:"上下文压缩完成"};case"compact.failed":return{...t,statusMessage:"上下文压缩失败",notice:{id:t.lastCursor,tone:"warning",title:"上下文压缩失败",detail:i.data.error}};case"approval.requested":return{...t,statusMessage:`等待确认:${i.data.toolName}`};case"item.started":case"item.delta":case"item.completed":case"item.failed":case"item.interrupted":case"item.indeterminate":case"step.snapshot":case"capability.receipt":case"tool.receipt":return t}}function Ux(t,r,i,a,d){switch(r.type){case"transcript_append":{const f={...r.entry,id:`web-entry-${a}`,eventId:i,order:a,receivedAt:d};return{...t,transcript:ol(t.transcript,f,pl)}}case"transcript_update":if(r.contentDelta!==void 0){const f=t.transcript.find(p=>p.id===r.id);if(!f||r.contentStart===void 0||(f.content??"").length!==r.contentStart){const p="流式回复基线已变化,需要重新载入会话。";return{...t,connection:"replay-required",replayReason:p,notice:{id:a,tone:"warning",title:"需要重新载入会话",detail:p},announcement:p}}}return{...t,transcript:t.transcript.map(f=>f.id===r.id?{...f,...r.patch,...r.contentDelta===void 0?{}:{content:`${f.content??""}${r.contentDelta}`}}:f)};case"transcript_finalize":return{...t,transcript:t.transcript.map(f=>f.id===r.id?{...f,...r.patch,live:!1}:f)};case"transcript_remove":return{...t,transcript:t.transcript.filter(f=>f.id!==r.id)};case"transcript_replace":{const f=Math.max(1,r.entries.length);return{...t,transcript:r.entries.slice(-pl).map((p,g)=>({...p,eventId:`${i}:${g}`,order:a-1+(g+1)/(f+1),receivedAt:d,live:!1}))}}case"transcript_clear":return{...jo(t),activeSessionId:t.activeSessionId,statusMessage:"新会话已就绪"};case"status_changed":return{...t,statusMessage:r.message};case"permission_requested":return{...t,permission:{...r.request,eventId:i},announcement:`需要确认工具权限:${r.request.name}`};case"tool_started":{const f={callId:r.event.callId,eventId:i,order:a,name:r.event.name,args:r.event.args,sequence:r.event.sequence,state:"running",startedAt:d};return{...t,tools:_c(t.tools,f),announcement:`工具 ${f.name} 已开始`}}case"tool_finished":{const f=t.tools.find(g=>g.callId===r.event.callId),p={callId:r.event.callId,eventId:f?.eventId??i,order:f?.order??a,name:r.event.name,args:r.event.args,sequence:r.event.sequence,state:r.event.skipped?"skipped":r.event.success?"success":"error",startedAt:f?.startedAt,finishedAt:d,duration:r.event.duration,summary:r.event.summary,error:r.event.error,outputBytes:r.event.outputBytes,artifactId:r.event.artifactRef?.id,authorization:r.event.authorization};return{...t,tools:_c(t.tools,p),announcement:`工具 ${p.name} ${p.state==="success"?"已完成":p.state==="skipped"?"已跳过":"失败"}`}}case"edit_preview_requested":{const f={eventId:i,order:a,receivedAt:d,request:r.request};return{...t,edits:ol(t.edits,f,Lx)}}case"session_restored":return{...t,activeSessionId:r.event.sessionId,statusMessage:`已恢复 ${r.event.restoredMessages} 条消息`,announcement:"会话恢复完成",notice:r.event.warnings&&r.event.warnings.length>0?{id:a,tone:"warning",title:"会话已恢复,但有注意事项",detail:r.event.warnings.join(" ")}:t.notice};case"loop_stats_updated":return{...t,loopStats:r.stats};case"trace_event_recorded":return{...t,traces:ol(t.traces,r.event,$x)};case"harness_diagnostics_updated":return{...t,diagnostics:{...t.diagnostics??{},harness:r.diagnostics}};case"subtask_event":{const f={...r.event,eventId:i,order:a,updatedAt:d},p=[...t.subtasks.filter(g=>g.taskId!==f.taskId),f].slice(-256);return{...t,subtasks:p}}case"research_event":return{...t,research:Gx(t.research,r.event,i,a,d)};case"goal_event":return Kx(t,r.event,d);case"effort_event":return{...t,effort:r.event};case"followup_queue_changed":return{...t,queue:r.snapshot};case"processing_changed":return{...t,processing:r.processing,permission:r.processing?t.permission:null,announcement:r.processing?"Orion 开始处理任务":"Orion 已完成当前处理"};case"agent_mode_changed":return{...t,mode:r.snapshot};case"clear_view":return{...t,transcript:[],tools:[],edits:[]};case"shutdown_requested":return{...t,connection:"closed",processing:!1,permission:null,statusMessage:r.reason??"Web Host 已关闭",announcement:"Orion Web Host 已关闭"};case"session_picker_requested":case"model_picker_requested":return t}}function Nc(t,r,i=!0){const a=Up(r),d=t.activeSessionId===r.session.id&&t.sessionSnapshot?.session.id===r.session.id?Wc(t):t.sessionViewsById[r.session.id]?.view,f=d?.sessionSnapshot,p=f&&f.threadId===r.threadId&&f.threadCursor===r.threadCursor&&f.projectionDigest===r.projectionDigest,g=a[0]?.order??-1/0,x=p?d.transcript.filter(A=>A.eventId.startsWith("snapshot:")&&A.order<g):[],b=(f?.threadId===r.threadId||f?.threadId===null&&r.threadId!==null&&!!r.activeTurnId)&&r.runtime.processing?d.transcript.filter(A=>A.live&&!A.eventId.startsWith("snapshot:")):[],j=[...x,...a,...b].slice(-pl);x.length&&f&&(r={...r,transcript:{...r.transcript,nextCursor:f.transcript.nextCursor}});const N=Kp(r.runtime.agentMode)?r.runtime.agentMode:t.mode.baseMode,E=r.pendingApprovals[0],z=Hp(r.goal);return{...jo(t),lastCursor:i?Math.max(t.lastCursor,r.eventCursor):t.lastCursor,activeSessionId:r.session.id,sessionProjectionById:Io(t.sessionProjectionById,r),sessionViewsById:Vp(t.sessionViewsById,r.session.id),sessionRuntimeById:jl(t.sessionRuntimeById,r.sessionRuntime),sessions:lr(t.sessions,r.session),workspaceSessions:t.workspaceId?{...t.workspaceSessions,[t.workspaceId]:{status:"ready",items:lr(t.workspaceSessions[t.workspaceId]?.items??t.sessions,r.session),nextCursor:t.workspaceSessions[t.workspaceId]?.nextCursor??t.sessionNextCursor}}:t.workspaceSessions,transcript:j,permission:E?{id:E.id,name:E.toolName,reason:E.reason,args:{...E.sanitizedArguments},eventId:`snapshot:${E.id}`}:null,processing:r.runtime.processing,statusMessage:r.runtime.status,mode:r.composer.mode??{baseMode:N,pendingBaseMode:null},queue:{items:r.composer.queue.items.map(A=>({...A})),limit:r.composer.queue.limit},goal:z,plan:r.plan??null,composer:r.composer,sessionSnapshot:r,diagnostics:{...t.diagnostics??{},activeSessionId:r.session.id,processing:r.runtime.processing,agentMode:N,permissionMode:r.runtime.permissionMode,contextUsage:r.runtime.contextUsage,tokenUsage:r.runtime.tokenUsage,plan:r.plan?.body??null,recoveryDiagnostics:r.recoveryDiagnostics},announcement:"会话快照已同步"}}function Qf(t,r){const i=t.workspaceId?{...t.workspaceSessions,[t.workspaceId]:{status:"ready",items:lr(t.workspaceSessions[t.workspaceId]?.items??t.sessions,r.session),nextCursor:t.workspaceSessions[t.workspaceId]?.nextCursor??t.sessionNextCursor}}:t.workspaceSessions,a={...t,sessionProjectionById:Io(t.sessionProjectionById,r),sessionViewsById:Vp(t.sessionViewsById,r.session.id),sessionRuntimeById:jl(t.sessionRuntimeById,r.sessionRuntime),sessions:lr(t.sessions,r.session),workspaceSessions:i};if(!t.sessionViewsById[r.session.id])return a;const d=Nc(t,r,!1);return Fc(a,r,Wc(d))}function qp(t,r){const i=t.sessionProjectionById[r.sessionId],a=i?Io(t.sessionProjectionById,{...i,sessionRuntime:r.sessionRuntime,composer:r}):t.sessionProjectionById;return{...t,composer:r,sessionSnapshot:t.sessionSnapshot?.session.id===r.sessionId?{...t.sessionSnapshot,sessionRuntime:r.sessionRuntime,composer:r}:t.sessionSnapshot,sessionProjectionById:a,sessionRuntimeById:jl(t.sessionRuntimeById,r.sessionRuntime),processing:r.processing,mode:r.mode,queue:{items:r.queue.items.map(d=>({...d})),limit:r.queue.limit},diagnostics:{...t.diagnostics??{},contextUsage:r.contextUsage,agentMode:r.mode.baseMode}}}function Hx(t,r){const i=lr(t.sessions,r.session),a=t.workspaceSessions[t.workspaceId],d=!t.composer||t.composer.controlRevision===r.composer.controlRevision?r.composer:t.composer;return{...t,sessions:i,workspaceSessions:{...t.workspaceSessions,[t.workspaceId]:{status:"ready",items:lr(a?.items??t.sessions,r.session),nextCursor:a?.nextCursor??t.sessionNextCursor}},goal:Hp(r.goal),plan:r.plan,composer:d,sessionSnapshot:t.sessionSnapshot?.session.id===r.session.id?{...t.sessionSnapshot,session:r.session,goal:r.goal,plan:r.plan,composer:d,recoveryDiagnostics:r.recoveryDiagnostics}:t.sessionSnapshot,diagnostics:{...t.diagnostics??{},plan:r.plan?.body??null,recoveryDiagnostics:r.recoveryDiagnostics}}}function Up(t){return t.transcript.items.map((r,i)=>{const a=Number.parseInt(r.id.split(":").at(-1)??"",10);return{id:r.id,role:r.role,content:r.content,eventId:`snapshot:${r.id}`,order:-1e9+(Number.isSafeInteger(a)?a:i),receivedAt:Yx(r.timestamp),live:!1}})}function Hp(t){if(!t||!ho(t.state))return null;const r=t.state;if(typeof r.goalId!="string"||typeof r.objective!="string"||typeof r.status!="string")return null;const i=ho(r.budget)?r.budget:null,a=ho(r.lastStopDecision)?r.lastStopDecision:null,d=a&&ho(a.reason)?Xi(a.reason.message):Xi(r.stopReason),f=ho(r.criteria)?{passed:rn(r.criteria.passed),total:rn(r.criteria.total),failed:rn(r.criteria.failed),stale:rn(r.criteria.stale)}:void 0;return{goalId:r.goalId,revision:rn(r.revision,rn(r.generation,1)),objective:r.objective,status:r.status,tokenBudget:pc(r.tokenBudget)??pc(i?.maxTokens),tokensUsed:rn(r.tokensUsed),timeUsedMs:rn(r.timeUsedMs,rn(r.elapsedMs)),continuationCount:rn(r.continuationCount),updatedAt:rn(r.updatedAt),stopReason:d,criteria:f,planRevision:pc(r.planRevision),planPhase:Xi(r.planPhase),nextAction:Xi(r.nextAction),auditRemaining:Array.isArray(r.auditRemaining)?r.auditRemaining.filter(p=>typeof p=="string"):void 0}}function or(t,r,i){const a=new Map(t.map(d=>[i(d),d]));for(const d of r)a.set(i(d),d);return[...a.values()]}function Vx(t,r){const i=t.findIndex(d=>d.id===r.id);if(i<0)return[r,...t];const a=[...t];return a[i]=r,a}function Yf(t,r){const i=t.workspaceId,a=i?t.workspaceSessions[i]:void 0,d=(a?.items??t.sessions).filter(f=>f.id!==r);return{...t,sessions:i?d:t.sessions,workspaceSessions:i?{...t.workspaceSessions,[i]:{status:(a?.status??"ready")==="error"?"error":"ready",items:d,nextCursor:a?.nextCursor??null,error:a?.error}}:t.workspaceSessions}}function Xf(t,r){const i=t.workspaceId,a=i?t.workspaceSessions[i]:void 0,d=a?.items??t.sessions,f=r(d),p=a?.status==="error"?"error":a?.status==="loading"?"loading":"ready";return{...t,sessions:i?f:t.sessions,workspaceSessions:i?{...t.workspaceSessions,[i]:{status:p,items:f,nextCursor:a?.nextCursor??null,error:a?.error}}:t.workspaceSessions}}function Kx(t,r,i){switch(r.type){case"goal_updated":case"goal_restored":return{...t,goal:r.goal,goalActivity:hs(t.goalActivity,r.type,"Goal 状态已更新",i)};case"goal_completed":return{...t,goal:r.goal,goalActivity:hs(t.goalActivity,r.type,r.audit.verificationSummary,i),announcement:"Goal 已完成并通过运行时审计"};case"goal_cleared":return{...t,goal:null,goalEvidence:[],goalActivity:hs(t.goalActivity,r.type,r.reason,i)};case"goal_plan_updated":return{...t,goal:t.goal?{...t.goal,planRevision:r.planRevision,planPhase:r.phase,nextAction:r.nextAction}:t.goal,goalActivity:hs(t.goalActivity,r.type,r.nextAction??`Plan phase: ${r.phase}`,i)};case"goal_evidence_recorded":{const a=r.evidence;return{...t,goalEvidence:[...t.goalEvidence.filter(d=>d.id!==a.id),a].slice(-256)}}case"goal_continuation":return{...t,goalActivity:hs(t.goalActivity,`${r.type}:${r.phase}`,r.reason,i)};case"goal_audit_failed":return{...t,goalActivity:hs(t.goalActivity,r.type,r.summary,i),notice:{id:Date.parse(i),tone:"warning",title:"Goal 审计尚未通过",detail:r.summary}}}}function Gx(t,r,i,a,d){const p=t.find(x=>x.packetId===r.packetId)??{packetId:r.packetId,eventId:i,order:a,updatedAt:d,stage:"running",sources:[],conflicts:[]};let g;switch(r.type){case"research_started":g={...p,eventId:i,order:a,updatedAt:d,objective:r.objective,mode:r.mode,stage:"running"};break;case"research_source":{const x={id:r.sourceId,provider:r.provider,status:r.status,title:r.title,location:r.displayUrl??r.canonicalUrl??r.projectPath,failureReason:r.failureReason};g={...p,eventId:i,order:a,updatedAt:d,sources:[...p.sources.filter(k=>k.id!==x.id),x].slice(-64)};break}case"research_conflict":g={...p,eventId:i,order:a,updatedAt:d,conflicts:[...p.conflicts.filter(x=>x!==r.claimId),r.claimId].slice(-64)};break;case"research_completed":g={...p,eventId:i,order:a,updatedAt:d,stage:r.stage,auditStatus:r.auditStatus,conclusion:r.conclusion,summary:r.summary};break}return[...t.filter(x=>x.packetId!==r.packetId),g].slice(-128)}function _c(t,r){return[...t.filter(i=>i.callId!==r.callId),r].sort((i,a)=>i.order-a.order).slice(-1e3)}function Io(t,r){const i=Object.entries(t).filter(([d])=>d!==r.session.id);i.push([r.session.id,r]);let a=i.reduce((d,[,f])=>d+Jf(f),0);for(;i.length>1&&(i.length>zx||a>kl);){const d=i.shift();d&&(a-=Jf(d[1]))}return Object.freeze(Object.fromEntries(i))}function jl(t,r){const i=Object.entries(t).filter(([a])=>a!==r.sessionId);return i.push([r.sessionId,r]),Object.freeze(Object.fromEntries(i.slice(-64)))}function Jf(t){const r=Zf.get(t);if(r!==void 0)return r;try{const i=JSON.stringify(t).length*2;return Zf.set(t,i),i}catch{return kl}}const Zf=new WeakMap;function Vp(t,r){if(!t[r])return t;const i={...t};return delete i[r],i}function Ec(t){const r=t.sessionSnapshot;return!r||r.session.id!==t.activeSessionId?t:Fc(t,r,Wc(t))}function Wc(t){return{transcript:t.transcript,tools:t.tools,edits:t.edits,subtasks:t.subtasks,research:t.research,permission:t.permission,processing:t.processing,statusMessage:t.statusMessage,mode:t.mode,effort:t.effort,queue:t.queue,goal:t.goal,goalEvidence:t.goalEvidence,goalActivity:t.goalActivity,sessionSnapshot:t.sessionSnapshot,composer:t.composer,plan:t.plan,loopStats:t.loopStats,traces:t.traces}}const hl=new WeakMap;function fc(t){if(t==null)return 0;if(typeof t=="string")return t.length*2;if(typeof t!="object")return 16;const r=hl.get(t);if(r!==void 0)return r;let i;try{i=JSON.stringify(t).length*2}catch{i=kl}return hl.set(t,i),i}function Fc(t,r,i){const a=Io(t.sessionProjectionById,r),d=Object.entries(t.sessionViewsById).filter(([b])=>b!==r.session.id&&a[b]);let f=hl.get(i.transcript);f===void 0&&(f=i.transcript.reduce((b,j)=>b+j.content.length*2+512+fc(j.toolActivity)+fc(j.command),0),hl.set(i.transcript,f));const p=Object.entries(i).reduce((b,[j,N])=>b+(j==="transcript"?f:fc(N)),512);d.push([r.session.id,{view:i,estimatedBytes:p}]);let g=d.reduce((b,[,j])=>b+j.estimatedBytes,0);const x=[];for(;d.length>0&&g>kl;){const b=d.shift();g-=b[1].estimatedBytes,x.push(b[0])}let k={...t,sessionProjectionById:a,sessionViewsById:Object.fromEntries(d)};for(const b of x){const j=k.sessionSync[b];j&&(k=Pn(k,b,{...j,dirty:!0}))}return k}function jo(t){return{...t,transcript:[],tools:[],edits:[],subtasks:[],research:[],permission:null,processing:!1,statusMessage:"",queue:{items:[],limit:16},goal:null,goalEvidence:[],goalActivity:[],sessionSnapshot:null,composer:null,modelCatalog:null,plan:null,loopStats:null,traces:[]}}function Pn(t,r,i){const a={...t.sessionSync};delete a[r];const d=Math.max(t.sessionSync[r]?.lastEventCursor??0,i.lastEventCursor??0),f=Math.max(t.sessionSync[r]?.snapshotEventCursor??0,i.snapshotEventCursor??0),p={...i};delete p.lastEventCursor,delete p.snapshotEventCursor,d>0&&(p.lastEventCursor=d),f>0&&(p.snapshotEventCursor=f),a[r]=p;const g=Object.keys(a).length-Wx;return g>0&&Object.keys(a).filter(x=>x!==t.activeSessionId&&x!==r).slice(0,g).forEach(x=>delete a[x]),{...t,sessionSync:a}}function Qi(t,r){const i={sessionSwitches:t.clientTelemetry.sessionSwitches+(r.sessionSwitches??0),snapshotCacheHits:t.clientTelemetry.snapshotCacheHits+(r.snapshotCacheHits??0),snapshotLoads:t.clientTelemetry.snapshotLoads+(r.snapshotLoads??0),snapshotFailures:t.clientTelemetry.snapshotFailures+(r.snapshotFailures??0)};return{...t,clientTelemetry:i}}function ep(t,r){return(t.sessionSync[r.session.id]?.lastEventCursor??0)>r.eventCursor}function tp(t,r){const i=Pn(t,r,{status:"ready",requestId:t.sessionSync[r]?.requestId??null,snapshotEventCursor:t.sessionProjectionById[r]?.eventCursor});return i.notice?.domain!=="session-snapshot"||i.notice.sessionId!==r?i:{...i,notice:null}}function np(t,r,i){return i===void 0||t.sessionSync[r]?.requestId===i}function Yi(t,r,i){return(r===void 0||t.contextRevision===r)&&(i===void 0||t.workspaceId===i)}function hs(t,r,i,a){return ol(t,{type:r,message:i,timestamp:a},Dx)}function ol(t,r,i){const a=[...t,r];return a.length<=i?a:a.slice(a.length-i)}function Qx(t,r){const i=t.agentMode;return Kp(i)?{baseMode:i,pendingBaseMode:null}:r}function Kp(t){return t==="interactive"||t==="plan"||t==="auto"}function Yx(t){const r=new Date(t);return Number.isFinite(r.getTime())?r.toISOString():new Date(0).toISOString()}function ho(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}function rn(t,r=0){return typeof t=="number"&&Number.isFinite(t)?t:r}function pc(t){return typeof t=="number"&&Number.isFinite(t)?t:void 0}function Xi(t){return typeof t=="string"&&t?t:void 0}function Xx(){return typeof navigator>"u"||navigator.onLine}function Jx(t,r){return t==="live"?"本地 Web Host 事件流已连接":t==="offline"?"浏览器已离线,本地 Web Host 将在网络恢复后重连":t==="reconnecting"?`正在重新连接本地 Web Host,第 ${Math.max(1,r)} 次尝试`:t==="connecting"?"正在连接本地 Web Host":t==="replay-required"?"本地 Web Host 事件历史需要重新载入":"本地 Web Host 已关闭"}const rp="orion.web.theme",sp="orion.web.motion";function Zx(t){const r=ip(rp),i=ip(sp),a=ew(r),d=tw(i),f=[],p=[];return r!==null&&p.push(rp),i!==null&&p.push(sp),t.sections.appearance.theme.explicitValue===void 0&&a&&f.push({op:"set",key:"appearance.theme",value:a}),t.sections.appearance.motion.explicitValue===void 0&&d&&f.push({op:"set",key:"appearance.motion",value:d}),{operations:f,keysToClear:p}}function op(t){if(!(typeof window>"u"))for(const r of t)try{window.localStorage.removeItem(r)}catch{}}function ip(t){if(typeof window>"u")return null;try{return window.localStorage.getItem(t)}catch{return null}}function ew(t){return t==="system"||t==="light"||t==="dark"?t:null}function tw(t){return t==="system"||t==="reduced"?t:null}class nw{constructor(r){Vt(this,"read");Vt(this,"snapshot",Object.freeze({status:"idle",document:null,lastGood:null,stale:!1,error:null,generation:0}));Vt(this,"listeners",new Set);Vt(this,"inFlight",null);Vt(this,"rerun",!1);Vt(this,"generation",0);Vt(this,"disposed",!1);this.read=r}getSnapshot(){return this.snapshot}subscribe(r){return this.listeners.add(r),()=>this.listeners.delete(r)}ensure(){return this.snapshot.document||this.inFlight?this.inFlight??Promise.resolve(this.snapshot):this.refresh()}refresh(){if(this.disposed)return Promise.resolve(this.snapshot);if(this.inFlight)return this.rerun=!0,this.inFlight;const r=Promise.resolve().then(()=>this.run());return this.inFlight=r,r}accept(r){return this.disposed?this.snapshot:(this.generation+=1,this.inFlight&&(this.rerun=!0),this.publishDocument(r))}invalidate(r,i){return this.snapshot.document?.revision===r&&(i==="ready"?this.snapshot.document.state==="ready":this.snapshot.document.state==="invalid")?Promise.resolve(this.snapshot):(this.setSnapshot({...this.snapshot,stale:!0}),this.refresh())}reset(){this.disposed||(this.generation+=1,this.rerun=!1,this.setSnapshot({status:"idle",document:null,lastGood:null,stale:!1,error:null,generation:this.generation}))}dispose(){this.disposed=!0,this.generation+=1,this.listeners.clear()}async run(){try{do{this.rerun=!1;const r=++this.generation;this.setSnapshot({...this.snapshot,status:this.snapshot.document?"ready":"loading",error:null,generation:r});try{const i=await this.read();if(this.disposed)return this.snapshot;if(r!==this.generation)continue;this.publishDocument(i)}catch(i){if(this.disposed)return this.snapshot;if(r!==this.generation)continue;this.setSnapshot({...this.snapshot,status:this.snapshot.document?"ready":"unavailable",stale:!0,error:i instanceof Error?i.message:"设置读取失败。",generation:r})}}while(this.rerun&&!this.disposed);return this.snapshot}finally{if(this.inFlight=null,this.rerun&&!this.disposed)return this.refresh()}}publishDocument(r){const i=r.state==="ready"?r:this.snapshot.lastGood;return this.setSnapshot({status:"ready",document:r,lastGood:i,stale:!1,error:null,generation:this.generation}),this.snapshot}setSnapshot(r){this.snapshot=Object.freeze(r);for(const i of this.listeners)i()}}function rw(t,r,i){if(t)return t;const a=new Set(r.map(d=>d.id));return i&&a.has(i)?i:r[0]?.id??null}const sw=7,ow=2;function iw(){const t=m.useMemo(()=>new Pg,[]),r=m.useMemo(()=>new nw(()=>t.settings()),[t]),[i,a]=m.useReducer(Fx,cp),[d,f]=m.useState(0),p=m.useRef(i),g=m.useRef(null),x=m.useRef(0),k=m.useRef(0),b=m.useRef(0),j=m.useRef(null),N=m.useRef(null),E=m.useRef(null),z=m.useRef(0),A=m.useRef(new Map),G=m.useRef(0),ne=m.useRef(0),U=m.useRef(new Map),se=m.useRef(()=>{}),ie=m.useRef(!1);p.current=i,m.useEffect(()=>r.subscribe(()=>{a({type:"settings_mirror_changed",snapshot:r.getSnapshot()})}),[r]);const Y=m.useCallback((y,I=xe(p.current),M={})=>{const X=`${I.workspaceId}:${I.expectedContextRevision}:${y}`,oe=U.current.get(X);if(oe&&!M.force)return oe.promise;const Ee=++ne.current;a({type:"session_snapshot_started",sessionId:y,requestId:Ee,cached:!!p.current.sessionProjectionById[y],contextRevision:I.expectedContextRevision,workspaceId:I.workspaceId});const ze=t.sessionSnapshot(y,I).then(Le=>(aw(Le,y,I),a({type:"session_snapshot_loaded",snapshot:Le,requestId:Ee,contextRevision:I.expectedContextRevision,workspaceId:I.workspaceId,advanceEventCursor:!1}),Le)).catch(Le=>{const Dt=go(Le);throw a({type:"snapshot_failed",sessionId:y,detail:Dt,requestId:Ee,contextRevision:I.expectedContextRevision,workspaceId:I.workspaceId}),new Oe(Dt,Le instanceof Oe?Le.status:503,"session_snapshot_sync_failed",Le instanceof Oe?Le.type:void 0)}).finally(()=>{U.current.get(X)?.requestId===Ee&&U.current.delete(X)});return U.current.set(X,{requestId:Ee,promise:ze}),ze},[t]),L=i.activeSessionId??"",F=L?i.sessionSync[L]:void 0,ge=i.sessionSnapshot?.session.id===L,Ie=i.connection==="live"&&!!L&&(F?.dirty===!0&&F.status==="refreshing"||!ge),we=F?.requestId??null,te=i.contextRevision;m.useEffect(()=>{if(!Ie)return;const y=p.current.activeSessionId;if(!y)return;const I=setTimeout(()=>{const M=p.current;if(M.connection!=="live"||M.activeSessionId!==y)return;const X=M.sessionSync[y];!(M.sessionSnapshot?.session.id===y)&&X?.dirty!==!0||Y(y,{workspaceId:M.workspaceId,expectedContextRevision:M.contextRevision},{force:!0}).catch(()=>{})},250);return()=>clearTimeout(I)},[Ie,L,we,te,Y]);const ye=m.useCallback(async y=>{const I=++z.current;try{const M=await t.bootstrap(),X={expectedContextRevision:M.contextRevision,workspaceId:M.workspaceId};r.reset(),r.accept(M.settings);const Ee=y!==void 0&&y.activeId!==""&&y.activeId===M.workspaceId?y:void 0,ze=Ee?Promise.resolve(Ee):t.listWorkspaces(X),[Le,Dt,Fr]=await Promise.all([ze,t.listSessions(X),r.refresh()]),Ae=cw(M.workspaceId,Dt.sessions,M.activeSessionId);Ji(M.workspaceId,Ae);const Fo=Object.freeze({...M,activeSessionId:Ae}),Bo=await lw(t,r,Fr.document??Fr.lastGood??M.settings,X);if(I!==z.current)return;a({type:"baseline_loaded",bootstrap:Fo,workspaces:Le,sessions:Dt.sessions,sessionNextCursor:Dt.nextCursor,diagnostics:{},settings:Bo,skills:[],skillNextCursor:null,mcpServers:[],mcpNextCursor:null,toolDetails:[],toolDetailNextCursor:null}),Ae&&Y(Ae,X).catch(()=>{}),se.current();const Ps=Dt.sessions.map(zt=>zt.id).filter(zt=>zt!==Ae).slice(0,sw);se.current=mw(()=>{I===z.current&&gw(Ps,ow,async zt=>{I===z.current&&await Y(zt,X).catch(()=>{})})}),t.workspaceProjectSummary(M.workspaceId,X).then(zt=>{I===z.current&&a({type:"workspace_project_summary_loaded",summary:zt})}).catch(()=>{}),Promise.all([t.diagnostics(X).catch(()=>({})),t.skills(X).catch(()=>({skills:[],nextCursor:null})),t.mcp(X).catch(()=>({servers:[],nextCursor:null})),t.toolDetails(X).catch(()=>({details:[],nextCursor:null}))]).then(([zt,Ts,Os,Br])=>{I===z.current&&(a({type:"diagnostics_loaded",diagnostics:zt}),a({type:"capabilities_loaded",skills:Ts.skills,skillNextCursor:Ts.nextCursor,mcpServers:Os.servers,mcpNextCursor:Os.nextCursor}),a({type:"tool_details_loaded",details:Br.details,nextCursor:Br.nextCursor}))})}catch(M){throw M}},[t,Y,r]),J=m.useCallback(async y=>{let I;for(let M=0;M<3;M+=1)try{await ye(y);return}catch(X){if(I=X,!pw(X)||M===2)break;await hw(100*3**M)}throw a({type:"boot_failed",message:go(I)}),I},[ye]);m.useEffect(()=>{if(ie.current)return;ie.current=!0;let y=!0;return J().catch(()=>{}),()=>{y=!1}},[J]),m.useEffect(()=>()=>{se.current()},[]);const Se=i.bootstrap!==null;m.useEffect(()=>{if(!Se)return;const y=t.connectEvents({cursor:p.current.lastCursor,onEvent:I=>{if(a({type:"event_received",envelope:I}),vw(I)){const M=p.current;if(I.sessionId&&M.contextRevision&&M.workspaceId){const X=I.sessionId,oe=++G.current;A.current.set(X,oe);const Ee=M.contextRevision,ze=M.workspaceId;t.sessionSnapshot(X,{expectedContextRevision:Ee,workspaceId:ze}).then(Le=>{A.current.get(X)===oe&&a({type:"durable_session_metadata_loaded",snapshot:Le,contextRevision:Ee,workspaceId:ze})}).catch(()=>{}).finally(()=>{A.current.get(X)===oe&&A.current.delete(X)})}}I.type==="settings_invalidated"&&r.invalidate(I.payload.revision,I.payload.state)},onStatus:(I,M)=>a({type:"connection_changed",phase:I,attempt:M}),onProtocolError:I=>a({type:"notice",notice:{id:Date.now(),tone:"error",title:"收到无法识别的 Web Host 事件流消息",detail:I}})});return g.current=y,()=>{y.close(),g.current===y&&(g.current=null)}},[t,Se,r,d]);const D=m.useCallback(()=>{g.current?.close(),g.current=null},[]),ce=m.useCallback(()=>{f(y=>y+1)},[]);m.useEffect(()=>{!i.workspace||i.boot!=="ready"||i.pendingAction||i.bootstrap?.workspace!==i.workspace&&(D(),J().catch(y=>mo(a,"工作区刷新失败",y)).finally(ce))},[J,D,ce,i.boot,i.bootstrap?.workspace,i.pendingAction,i.workspace]),m.useEffect(()=>{i.boot==="ready"&&i.connection==="live"&&(i.pendingAction||!i.activeSessionId||i.bootstrap?.workspace===i.workspace&&i.sessionSync[i.activeSessionId]?.status!=="failed"&&(i.sessionSnapshot?.session.id===i.activeSessionId&&!i.sessionSync[i.activeSessionId]?.dirty||Y(i.activeSessionId).catch(()=>{})))},[Y,i.activeSessionId,i.boot,i.bootstrap?.workspace,i.pendingAction,i.connection,i.sessionSync,i.sessionSnapshot,i.workspace]);const W=m.useCallback(async(y,I)=>{const M=++x.current;a({type:"pending_action",label:y});try{return await I()}catch(X){throw el(X)||mo(a,`${y}失败`,X),X}finally{x.current===M&&a({type:"pending_action",label:null})}},[]),T=m.useCallback(async(y,I,M)=>{const X=p.current,oe=M??X.activeSessionId,Ee=++k.current,ze={workspaceId:X.workspaceId,contextRevision:X.contextRevision};oe&&a({type:"pending_session_action",sessionId:oe,operationId:Ee,label:y,...ze});try{return await I()}catch(Le){throw!el(Le)&&p.current.workspaceId===X.workspaceId&&p.current.contextRevision===X.contextRevision&&p.current.activeSessionId===oe&&mo(a,`${y}失败`,Le),Le}finally{oe&&a({type:"pending_session_action",sessionId:oe,operationId:Ee,label:null,...ze})}},[]),B=m.useCallback(async(y,I)=>{const M=p.current;try{return await I()}catch(X){throw!el(X)&&p.current.workspaceId===M.workspaceId&&p.current.contextRevision===M.contextRevision&&mo(a,`${y}失败`,X),X}},[]),$=m.useCallback((y,I)=>{const M=p.current;M.workspaceId===y.workspaceId&&M.contextRevision===y.expectedContextRevision&&a(I)},[]),v=m.useCallback(async(y,I)=>T(y,async()=>{const M=p.current;if(p.current.connection!=="live")throw new Oe("本地 Web Host 连接尚未就绪,请在连接恢复后重试。",409,"session_not_synchronized");const X=M.activeSessionId;if(!X)throw new Oe("当前没有可接收命令的活动会话。",409,"active_session_changed");const oe=M.sessionSnapshot;if(!oe||!ir(M))throw new Oe("当前会话快照尚未同步,请刷新后重试。",409,"session_runtime_revision_conflict");try{const Ee=await t.command({...I,workspaceId:M.workspaceId,expectedContextRevision:M.contextRevision,expectedSessionId:X,expectedSessionRuntimeRevision:oe.sessionRuntime.runtimeRevision});return dw(Ee),Ee}catch(Ee){throw Ee instanceof Oe&&["context_revision_conflict","active_session_changed","session_runtime_revision_conflict"].includes(Ee.code??"")?(a({type:"snapshot_failed",sessionId:X,detail:Ee.message,contextRevision:M.contextRevision,workspaceId:M.workspaceId}),new Oe(Ee.message,Ee.status,"session_runtime_revision_conflict",Ee.type)):Ee}}),[t,T]),R=m.useCallback(async(y,I)=>T(y,async()=>{const M=p.current,X=M.composer;if(M.connection!=="live"||!M.activeSessionId||!ir(M)||!X||X.sessionId!==M.activeSessionId)throw new Oe("Composer 控制状态尚未与活动会话同步。",409,"composer_control_conflict");try{const oe=await t.composerAction(M.activeSessionId,{...I,workspaceId:M.workspaceId,expectedContextRevision:M.contextRevision,expectedSessionId:M.activeSessionId,expectedSessionRuntimeRevision:X.sessionRuntime.runtimeRevision,expectedControlRevision:X.controlRevision});return a({type:"composer_loaded",composer:oe.state,requestControlRevision:X.controlRevision}),oe}catch(oe){throw oe instanceof Oe&&["composer_control_conflict","context_revision_conflict","active_session_changed","session_runtime_revision_conflict"].includes(oe.code??"")?(a({type:"snapshot_failed",sessionId:M.activeSessionId,detail:oe.message,contextRevision:M.contextRevision,workspaceId:M.workspaceId}),new Oe(oe.message,oe.status,"composer_control_conflict",oe.type)):oe}}),[t,T]),ue=m.useCallback(()=>W("重新连接",J),[J,W]),fe=m.useCallback(()=>B("刷新诊断",async()=>{const y=++z.current,I=await t.diagnostics(xe(p.current));y===z.current&&a({type:"diagnostics_loaded",diagnostics:I})}),[t,B]),ke=m.useCallback(()=>B("刷新工具详情",async()=>{const y=++z.current,I=await t.toolDetails(xe(p.current));y===z.current&&a({type:"tool_details_loaded",details:I.details,nextCursor:I.nextCursor})}),[t,B]),re=m.useCallback(()=>B("加载更多工作区",async()=>{const y=xe(p.current),I=p.current.workspaceNextCursor;if(I)try{const M=await t.listWorkspaces(y,I);$(y,{type:"workspaces_loaded",value:M,append:!0})}catch(M){if(!Zi(M))throw M;$(y,{type:"workspaces_loaded",value:await t.listWorkspaces(y)})}}),[t,$,B]),he=m.useCallback(()=>B("加载更多会话",async()=>{const y=p.current.sessionNextCursor;if(!y)return;const I=xe(p.current);try{const M=await t.listSessions(I,y);$(I,{type:"sessions_loaded",sessions:M.sessions,nextCursor:M.nextCursor,append:!0})}catch(M){if(!Zi(M))throw M;const X=await t.listSessions(I);$(I,{type:"sessions_loaded",sessions:X.sessions,nextCursor:X.nextCursor})}}),[t,$,B]),je=m.useCallback(async(y,I=!1)=>{const M=xe(p.current),X=p.current.workspaceSessions[y],oe=I?X?.nextCursor:void 0;if(I&&!oe)return;a({type:"workspace_sessions_loading",workspaceId:y});const Ee=t.workspaceProjectSummary(y,M).catch(()=>null);try{const ze=await t.listWorkspaceSessions(y,M,oe??void 0);a({type:"workspace_sessions_loaded",workspaceId:y,sessions:ze.sessions,nextCursor:ze.nextCursor,append:I});const Le=await Ee;Le&&a({type:"workspace_project_summary_loaded",summary:Le})}catch(ze){throw a({type:"workspace_sessions_failed",workspaceId:y,detail:go(ze)}),ze}},[t]),le=m.useCallback(async y=>{const I=await t.workspaceProjectSummary(y,xe(p.current));a({type:"workspace_project_summary_loaded",summary:I})},[t]),Me=m.useCallback(()=>B("加载更多能力",async()=>{const y=xe(p.current),I=p.current.skillNextCursor,M=p.current.mcpNextCursor;if(!(!I&&!M))try{const[X,oe]=await Promise.all([I?t.skills(y,I):Promise.resolve({skills:[],nextCursor:null}),M?t.mcp(y,M):Promise.resolve({servers:[],nextCursor:null})]);$(y,{type:"capabilities_loaded",skills:X.skills,skillNextCursor:X.nextCursor,mcpServers:oe.servers,mcpNextCursor:oe.nextCursor,append:!0})}catch(X){if(!Zi(X))throw X;const[oe,Ee]=await Promise.all([t.skills(y),t.mcp(y)]);$(y,{type:"capabilities_loaded",skills:oe.skills,skillNextCursor:oe.nextCursor,mcpServers:Ee.servers,mcpNextCursor:Ee.nextCursor})}}),[t,$,B]),Ke=m.useCallback(()=>B("加载更多工具详情",async()=>{const y=xe(p.current),I=p.current.toolDetailNextCursor;if(I)try{const M=await t.toolDetails(y,I);$(y,{type:"tool_details_loaded",details:M.details,nextCursor:M.nextCursor,append:!0})}catch(M){if(!Zi(M))throw M;const X=await t.toolDetails(y);$(y,{type:"tool_details_loaded",details:X.details,nextCursor:X.nextCursor})}}),[t,$,B]),tt=m.useCallback(async()=>{const y=p.current;if(y.connection!=="replay-required"){if(!y.activeSessionId)return;await Y(y.activeSessionId,xe(y),{force:!0});return}await W("恢复本地 Web Host 事件流",async()=>{D(),a({type:"recovering"});try{await J()}finally{ce()}})},[J,Y,D,ce,W]),st=m.useCallback(y=>W("切换工作区",async()=>{D();try{const I=await t.activateWorkspace(y,xe(p.current));a({type:"workspaces_loaded",value:I}),a({type:"reset_session_view",activeSessionId:null}),await J(I)}finally{ce()}}),[t,J,D,ce,W]),lt=m.useCallback(()=>t.pickDirectory({}),[t]),dt=m.useCallback(()=>t.listWorkspaceRoots(),[t]),ln=m.useCallback(y=>t.addWorkspaceRoot(y),[t]),q=m.useCallback(y=>t.removeWorkspaceRoot(y),[t]),Re=m.useCallback((y,I)=>t.discoverWorkspaceRoot(y,I),[t]),qe=m.useCallback(y=>t.inspectWorkspace(y,"picker"),[t]),Ze=m.useCallback(y=>{++b.current;const I=p.current;if(!I.sessionCreationSelected&&I.activeSessionId===y&&I.sessionSnapshot&&ir(I))return Promise.resolve();const M=xe(I);return(async()=>{Ji(M.workspaceId,y),a({type:"reset_session_view",activeSessionId:y}),hc(I,y)||await Y(y,M)})()},[Y]),kt=m.useCallback((y,I)=>{if(!N.current&&y===p.current.workspaceId&&I)return Ze(I);++b.current;const M={workspaceId:y,sessionId:I};if(j.current=M,a({type:"navigation_target",target:M}),N.current)return N.current;const X=W("切换项目上下文",async()=>{let oe=xe(p.current),Ee=!1;D();try{for(;j.current;){const ze=j.current;j.current=null,Ji(ze.workspaceId,ze.sessionId);try{if(ze.workspaceId!==oe.workspaceId){++z.current;const Le=await t.activateContext({expectedContextRevision:oe.expectedContextRevision,...ze});if(Le.contextRevision!==Le.bootstrap.contextRevision||Le.bootstrap.workspaceId!==ze.workspaceId)throw new Oe("Host 返回的项目上下文不一致。",502,"context_response_invalid");oe={workspaceId:Le.bootstrap.workspaceId,expectedContextRevision:Le.contextRevision},Ee=!0}if(j.current)continue;Ee?(await J(),Ee=!1):(a({type:"reset_session_view",activeSessionId:ze.sessionId}),ze.sessionId&&!hc(p.current,ze.sessionId)&&Y(ze.sessionId,oe).catch(()=>{}))}catch(Le){await J();const Dt=await t.bootstrap();if(oe={workspaceId:Dt.workspaceId,expectedContextRevision:Dt.contextRevision},Ee=!1,!j.current)throw Le}}}finally{ce()}}).finally(()=>{j.current=null,N.current=null,a({type:"navigation_target",target:null})});return N.current=X,X},[t,J,Y,D,ce,W,Ze]),Mn=m.useCallback((y,I)=>B(I?"置顶项目":"取消置顶",async()=>{const M=xe(p.current);await t.setWorkspacePinned(y,I,M),$(M,{type:"workspaces_loaded",value:await t.listWorkspaces(M)})}),[t,$,B]),ar=m.useCallback(y=>W("移除项目",async()=>{const I=p.current;if(!I.contextRevision)throw new Oe("工作区上下文尚未完成同步。",409,"context_revision_conflict");await t.removeWorkspace(y,xe(I)),tg(y),a({type:"workspaces_loaded",value:await t.listWorkspaces(xe(p.current))})}),[t,W]),cr=m.useCallback(()=>{const y=xe(p.current);if(E.current?.workspaceId===y.workspaceId&&E.current.contextRevision===y.expectedContextRevision)return E.current.promise;const I=b.current,M={workspaceId:y.workspaceId,contextRevision:y.expectedContextRevision};a({type:"session_creation_pending",pending:!0,...M});const X=(async()=>{const oe=await t.createSession(y);p.current.workspaceId!==y.workspaceId||p.current.contextRevision!==y.expectedContextRevision||(a({type:"sessions_loaded",sessions:lr(p.current.sessions,oe),nextCursor:p.current.sessionNextCursor}),b.current===I&&(++b.current,Ji(y.workspaceId,oe.id),a({type:"reset_session_view",activeSessionId:oe.id}),Y(oe.id,y).catch(()=>{})))})().catch(oe=>{throw!el(oe)&&p.current.workspaceId===y.workspaceId&&p.current.contextRevision===y.expectedContextRevision&&mo(a,"创建会话失败",oe),oe}).finally(()=>{E.current?.promise===X&&(E.current=null),a({type:"session_creation_pending",pending:!1,...M})});return E.current={...M,promise:X},X},[t,Y]),yt=Ze,ur=m.useCallback(()=>T("加载更早记录",async()=>{const y=xe(p.current),I=p.current.sessionSnapshot,M=p.current.activeSessionId,X=I?.transcript.nextCursor;if(!(!I||!M||!X))try{const oe=await t.sessionSnapshot(M,y,X);if(oe.session.id!==I.session.id||oe.threadId!==I.threadId||oe.threadCursor!==I.threadCursor||oe.projectionDigest!==I.projectionDigest)throw new Oe("加载历史记录时会话快照发生变化,正在恢复最新快照。",409,"transcript_cursor_stale");$(y,{type:"older_transcript_loaded",snapshot:oe})}catch(oe){if(!(oe instanceof Oe)||oe.code!=="transcript_cursor_stale")throw oe;p.current.workspaceId===y.workspaceId&&p.current.contextRevision===y.expectedContextRevision&&await Y(M,y,{force:!0})}}),[t,$,Y,T]),An=m.useCallback((y,I)=>T("重命名会话",async()=>{const M=xe(p.current),X=await t.renameSession(y,I,M),oe=lr(p.current.sessions,X);$(M,{type:"sessions_loaded",sessions:oe,nextCursor:p.current.sessionNextCursor})},y),[t,$,T]),$t=m.useCallback((y,I)=>T("更新会话标签",async()=>{const M=xe(p.current),X=await t.updateSessionTags(y,I,M);$(M,{type:"session_updated",session:X})},y),[t,$,T]),Ln=m.useCallback(y=>T("归档会话",async()=>{const I=xe(p.current),M=await t.archiveSession(y,I);$(I,{type:"session_archived",session:M})},y),[t,$,T]),an=m.useCallback(y=>T("还原会话",async()=>{const I=xe(p.current),M=await t.restoreSession(y,I);$(I,{type:"session_restored",session:M})},y),[t,$,T]),Z=m.useCallback(y=>T("删除会话",async()=>{const I=xe(p.current);await t.deleteSession(y,I),$(I,{type:"session_deleted",sessionId:y})},y),[t,$,T]),Ne=m.useCallback(async(y,I=!1)=>{const M=xe(p.current),X=p.current.archivedSessions,oe=I?X?.nextCursor:void 0;if(!(I&&!oe)){a({type:"archived_sessions_loading",workspaceId:y});try{const Ee=await t.listArchivedWorkspaceSessions(y,M,oe??void 0);a({type:"archived_sessions_loaded",workspaceId:y,sessions:Ee.sessions,nextCursor:Ee.nextCursor,append:I})}catch(Ee){throw a({type:"archived_sessions_failed",workspaceId:y,detail:go(Ee)}),Ee}}},[t]),Pe=m.useCallback((y,I)=>v("提交任务",{type:"submit",text:y,contextReferences:I}),[v]),Ue=m.useCallback((y,I)=>v("加入队列",{type:"queue_followup",text:y,contextReferences:I}),[v]),Qt=m.useCallback(async(y,I)=>{await R("移除排队消息",{type:"remove_queue_item",itemId:y,expectedItemRevision:I})},[R]),cn=m.useCallback(async(y,I,M)=>{await R("编辑排队消息",{type:"edit_queue_item",itemId:y,expectedItemRevision:I,text:M})},[R]),un=m.useCallback(async(y,I,M)=>{await R("移动排队消息",{type:"move_queue_item",itemId:y,expectedItemRevision:I,targetIndex:M})},[R]),Yt=m.useCallback(async()=>{await v("清空队列",{type:"clear_followups"})},[v]),Mr=m.useCallback(async()=>{const y=p.current.sessionSnapshot?.sessionRuntime;if(!y||y.phase!=="queued"||!y.queueId)throw new Oe("排队任务已变化,请等待状态同步后重试。",409,"session_queue_conflict");await v("取消排队任务",{type:"cancel_queued_turn",queueId:y.queueId})},[v]),Ar=m.useCallback(async()=>{await v("中断任务",{type:"interrupt"})},[v]),gn=m.useCallback(async y=>{p.current.mode.baseMode===y&&!p.current.mode.pendingBaseMode||await R("切换模式",{type:"set_agent_mode",mode:y})},[R]),vn=m.useCallback(async y=>{await R(y===null?"继承项目权限":"切换会话权限",y===null?{type:"clear_permission_override"}:{type:"set_permission_override",value:y})},[R]),js=m.useCallback(()=>T("加载模型目录",async()=>{const y=p.current;if(!y.activeSessionId)return;const I=await t.modelCatalog(y.activeSessionId,xe(y));p.current.activeSessionId===y.activeSessionId&&$(xe(y),{type:"model_catalog_loaded",catalog:I})}),[t,$,T]),Ss=m.useCallback(async(y,I)=>{await R("切换会话模型",{type:"select_model",modelId:y,...I?{effort:I}:{}})},[R]),Cs=m.useCallback(async()=>{await R("压缩上下文",{type:"compact_context"})},[R]),bs=m.useCallback(async(y,I,M)=>{await R("审核计划",{type:"review_plan",planDigest:y,action:I,...M?{feedback:M}:{}})},[R]),Is=m.useCallback(async(y,I="once")=>{const M=p.current.permission;M&&(await v(y?"确认工具权限":"拒绝工具权限",{type:"permission_decision",requestPermissionId:M.id,approved:y,scope:I}),a({type:"approval_resolved",requestId:M.id,approved:y}))},[v]),Lr=m.useCallback(async(y,I)=>{const M=p.current,X=M.activeSessionId,oe=xe(M);if(await v("更新 Goal",{type:"goal_control",goalAction:y,objective:I}),p.current.workspaceId!==oe.workspaceId||p.current.contextRevision!==oe.expectedContextRevision)return;const[Ee]=await Promise.all([t.diagnostics(oe),X?Y(X,oe,{force:!0}):Promise.resolve()]);p.current.activeSessionId===X&&$(oe,{type:"diagnostics_loaded",diagnostics:Ee})},[t,$,Y,v]),Ns=m.useCallback(async()=>{const y=await r.refresh(),I=y.document??y.lastGood;if(!I)throw new Oe(y.error??"设置尚不可用。",503);return I},[r]),$n=m.useCallback(async(y,I,M)=>{if(I.length<1||I.length>20)throw new Oe("设置变更必须包含 1 到 20 个字段。",400,"settings_invalid_operation");const X=await t.updateSettings(y,I,xe(p.current),M);return r.accept(X.settings),X},[t,r]),$r=m.useCallback(async()=>{await t.openSettingsDocument()},[t]),Dn=m.useCallback((y,I=0)=>t.readToolDetail(y,xe(p.current),I),[t]),No=m.useCallback((y,I)=>t.listFiles(xe(p.current),y,I),[t]),zn=m.useCallback((y,I)=>t.readFileContent(y,xe(p.current),I),[t]),Dr=m.useCallback((y,I,M)=>t.writeFileContent(xe(p.current),y,I,M),[t]),dr=m.useCallback((y,I)=>t.gitStatus(xe(p.current),y,I),[t]),zr=m.useCallback(y=>t.gitLog(xe(p.current),y),[t]),_o=m.useCallback((y,I)=>t.gitDiff(y,xe(p.current),I),[t]),Eo=m.useCallback((y,I,M,X)=>t.gitDiffDocument(y,xe(p.current),I,M,X),[t]),Sl=m.useCallback(()=>t.gitRefs(xe(p.current)),[t]),yn=m.useCallback(y=>t.gitCompare(xe(p.current),y),[t]),Ro=m.useCallback(y=>t.gitCompareFileDiff(xe(p.current),y),[t]),Po=m.useCallback(y=>t.gitHistory(xe(p.current),y),[t]),Cl=m.useCallback((y,I=0)=>t.gitCommitDetail(xe(p.current),y,I),[t]),To=m.useCallback((y,I=0)=>t.gitCommitFiles(xe(p.current),y,I),[t]),Oo=m.useCallback(y=>t.gitCommitDiff(xe(p.current),y),[t]),Mo=m.useCallback(y=>t.gitFilesTarget(xe(p.current),y),[t]),Ao=m.useCallback((y=200)=>t.gitGraph(xe(p.current),y),[t]),bl=m.useCallback(y=>t.gitConflictVersions(xe(p.current),y),[t]),Il=m.useCallback(y=>t.gitBlob(xe(p.current),y),[t]),Qe=m.useCallback(()=>t.gitSubmodules(xe(p.current)),[t]),Nl=m.useCallback(y=>t.gitBlame(xe(p.current),y),[t]),_s=m.useCallback(y=>t.gitFileHistory(xe(p.current),y),[t]),Es=m.useCallback(()=>t.gitCommitPreview(xe(p.current)),[t]),fr=m.useCallback((y,I)=>t.gitStage(xe(p.current),y,I),[t]),Lo=m.useCallback((y,I)=>t.gitUnstage(xe(p.current),y,I),[t]),Rs=m.useCallback(y=>t.gitApplyPatch(xe(p.current),y),[t]),pr=m.useCallback(y=>t.gitCommit(xe(p.current),y),[t]),Tt=m.useCallback(()=>t.review(xe(p.current)),[t]),$o=m.useCallback(async()=>(await t.terminals(xe(p.current))).terminals,[t]),jt=m.useCallback(async(y,I)=>{const M=p.current;if(!M.contextRevision||!M.workspaceId)throw new Oe("工作区上下文尚未完成同步。",409,"context_revision_conflict");return t.createTerminal({expectedContextRevision:M.contextRevision,workspaceId:M.workspaceId,cols:y,rows:I})},[t]),Do=m.useCallback(async y=>{const I=p.current;if(!I.contextRevision||!I.workspaceId)throw new Oe("工作区上下文尚未完成同步。",409,"context_revision_conflict");return t.terminalAttachTicket(y,{expectedContextRevision:I.contextRevision,workspaceId:I.workspaceId})},[t]),zo=m.useCallback(async y=>{const I=p.current;if(!I.contextRevision||!I.workspaceId)throw new Oe("工作区上下文尚未完成同步。",409,"context_revision_conflict");await t.closeTerminal(y,{expectedContextRevision:I.contextRevision,workspaceId:I.workspaceId})},[t]),Wo=m.useCallback(y=>t.terminalSocket(y),[t]),hr=m.useCallback(()=>a({type:"notice",notice:null}),[]),Wr=m.useMemo(()=>({retryBoot:ue,refreshDiagnostics:fe,refreshToolDetails:ke,loadMoreWorkspaces:re,loadMoreSessions:he,loadWorkspaceSessions:je,refreshWorkspaceProjectSummary:le,loadMoreCapabilities:Me,loadMoreToolDetails:Ke,recoverSession:tt,switchWorkspace:st,pickWorkspaceDirectory:lt,inspectWorkspacePath:qe,listWorkspaceRoots:dt,addWorkspaceRoot:ln,removeWorkspaceRoot:q,discoverWorkspaceRoot:Re,activateContext:kt,setWorkspacePinned:Mn,removeWorkspace:ar,createSession:cr,activateSession:yt,loadOlderTranscript:ur,renameSession:An,updateSessionTags:$t,archiveSession:Ln,restoreSession:an,deleteSession:Z,loadArchivedWorkspaceSessions:Ne,submit:Pe,queue:Ue,removeQueued:Qt,editQueued:cn,moveQueued:un,clearQueue:Yt,cancelQueuedTurn:Mr,interrupt:Ar,setMode:gn,setPermissionOverride:vn,loadModelCatalog:js,selectModel:Ss,compactContext:Cs,reviewPlan:bs,answerPermission:Is,controlGoal:Lr,refreshSettings:Ns,updateSettings:$n,openSettingsDocument:$r,readToolDetail:Dn,listFiles:No,readFileContent:zn,writeFileContent:Dr,gitStatus:dr,gitLog:zr,gitDiff:_o,gitDiffDocument:Eo,gitCommitPreview:Es,gitRefs:Sl,gitCompare:yn,gitCompareFileDiff:Ro,gitHistory:Po,gitCommitDetail:Cl,gitCommitFiles:To,gitCommitDiff:Oo,gitFilesTarget:Mo,gitGraph:Ao,gitConflictVersions:bl,gitBlob:Il,gitSubmodules:Qe,gitBlame:Nl,gitFileHistory:_s,gitStage:fr,gitUnstage:Lo,gitApplyPatch:Rs,gitCommit:pr,review:Tt,terminals:$o,createTerminal:jt,terminalAttachTicket:Do,closeTerminal:zo,terminalSocket:Wo,dismissNotice:hr}),[yt,kt,zo,jt,_o,Eo,Es,fr,Lo,Rs,pr,zr,dr,No,ur,Me,he,Ke,re,js,je,Is,Yt,Mr,Cs,bs,Lr,cr,hr,cn,Ar,Ue,zn,Dn,Tt,tt,fe,Ns,ke,le,Qt,ar,An,an,$t,Ln,Z,Ne,ue,gn,vn,Ss,Mn,Pe,st,lt,qe,dt,ln,q,Re,un,Do,Wo,$o,$n,$r]);return{state:i,actions:Wr}}async function lw(t,r,i,a){let d=i;for(let f=0;f<2;f+=1){const p=Zx(d);if(p.keysToClear.length===0||d.state!=="ready"||!d.writable)return d;if(p.operations.length===0)return op(p.keysToClear),d;try{const g=await t.updateSettings(d.revision,p.operations,a,We());return r.accept(g.settings),op(p.keysToClear),g.settings}catch(g){if(f===0&&g instanceof Oe&&g.code==="settings_revision_conflict"){const x=await r.refresh(),k=x.document??x.lastGood;if(k){d=k;continue}}return d}}return d}function xe(t){if(!t.contextRevision||!t.workspaceId)throw new Oe("工作区上下文尚未完成同步。",409,"context_revision_conflict");return{expectedContextRevision:t.contextRevision,workspaceId:t.workspaceId}}function aw(t,r,i){if(!(t.session.id===r&&t.sessionRuntime.sessionId===r&&t.sessionRuntime.workspaceId===i.workspaceId&&t.composer.sessionId===r&&t.composer.workspaceId===i.workspaceId&&t.composer.contextRevision===i.expectedContextRevision))throw new Oe("Host 返回的会话快照身份与当前项目上下文不一致。",502,"session_snapshot_identity_mismatch")}const lp="orion.web.view-id.v1",Gp="orion.web.foreground-session.v1:";function cw(t,r,i){const a=Qp(`${Gp}${t}`);return rw(a,r,i)}function Ji(t,r){uw();const i=`${Gp}${t}`;try{r?globalThis.sessionStorage?.setItem(i,r):globalThis.sessionStorage?.removeItem(i)}catch{}}function uw(){const t=Qp(lp);if(t)return t;const r=globalThis.crypto?.randomUUID?.()??`view-${Date.now().toString(36)}`;try{globalThis.sessionStorage?.setItem(lp,r)}catch{}return r}function Qp(t){try{return globalThis.sessionStorage?.getItem(t)??null}catch{return null}}function dw(t){if(t.result.includes("failed")||t.result.includes("invalid")||t.result.includes("rejected")||t.result.includes("ignored")||t.result.includes("full")||t.result==="empty")throw new Oe(fw(t),409)}function fw(t){if(t.detail)try{const r=JSON.parse(t.detail);if(typeof r.reason=="string")return r.reason}catch{}return`Runtime 未接受操作:${t.result}`}function mo(t,r,i,a="error"){t({type:"notice",notice:{id:Date.now(),tone:a,title:r,detail:go(i)}})}function go(t){return t instanceof Oe||t instanceof Error?t.message:"发生未知错误。"}function Zi(t){return t instanceof Oe&&t.code==="collection_cursor_stale"}function el(t){return t instanceof Oe&&["composer_control_conflict","session_runtime_revision_conflict","session_snapshot_sync_failed"].includes(t.code??"")}function pw(t){return t instanceof Oe&&["context_revision_conflict","runtime_busy","active_session_changed"].includes(t.code??"")}function hw(t){return new Promise(r=>{globalThis.setTimeout(r,t)})}function mw(t){if(typeof window<"u"&&"requestIdleCallback"in window){const i=window.requestIdleCallback(t,{timeout:1500});return()=>window.cancelIdleCallback(i)}const r=globalThis.setTimeout(t,150);return()=>globalThis.clearTimeout(r)}async function gw(t,r,i){let a=0;const d=Array.from({length:Math.min(Math.max(1,r),t.length)},async()=>{for(;a<t.length;){const f=t[a];a+=1,f!==void 0&&await i(f)}});await Promise.all(d)}function vw(t){return t.sessionId?t.type==="runtime_event"?t.payload.value.type==="permission_requested":t.type!=="thread_event"?!1:["approval.requested","plan.review_requested","turn.completed","turn.failed","turn.interrupted"].includes(t.payload.value.payload.type):!1}const yw=5e3;function xw(t,r){return r||t.tone==="error"?null:yw}function ww({uid:t,notice:r,reconnectNeeded:i,snapshotRetryNeeded:a,pendingAction:d,onDismiss:f,onRecover:p}){const g=i||a,x=!g,k=m.useRef(f);m.useEffect(()=>{k.current=f},[f]);const b=xw(r,g);m.useEffect(()=>{if(b===null)return;const E=window.setTimeout(()=>k.current(t),b);return()=>window.clearTimeout(E)},[b,t]);const j=`notice-${t}`,N=r.tone==="success"?"check":r.tone==="info"?"info":"warning";return o.jsxs("aside",{className:`workbench-notice notice-${r.tone}`,role:r.tone==="error"?"alert":"status","aria-labelledby":j,children:[o.jsx("span",{className:"notice-icon","aria-hidden":"true",children:o.jsx(Q,{name:N,size:17})}),o.jsxs("div",{children:[o.jsx("strong",{id:j,children:r.title}),r.detail?o.jsx("p",{children:r.detail}):null]}),i?o.jsx("button",{type:"button",className:"secondary-button",onClick:()=>p(t),disabled:d,children:"重建连接"}):null,a?o.jsx("button",{type:"button",className:"secondary-button",onClick:()=>p(t),disabled:d,children:"重试同步"}):null,x?o.jsx("button",{type:"button",className:"icon-button",onClick:()=>f(t),"aria-label":"关闭通知",children:o.jsx(Q,{name:"close",size:15})}):null]})}function kw(){const{state:t,actions:r}=iw(),[i,a]=m.useState(!1),[d,f]=m.useState(Fv),{value:p,update:g,setResourceNavigatorWidth:x}=Px(t.workspaceId,d.workPanel),[k,b]=m.useState(!1),[j,N]=m.useState(!1),[E,z]=m.useState(!1),[A,G]=m.useState(null),[ne,U]=m.useState(null),[se,ie]=m.useState(null),[Y,L]=m.useState(!1),[F,ge]=m.useState([]),Ie=m.useRef(0),we=m.useRef(t.notice),te=m.useRef(null),[ye,J]=m.useState(null),[Se,D]=m.useState(null),ce=m.useRef(null),W=m.useRef(!1),T=m.useRef(!1),B=m.useRef(null),$=jw(B),v=$>1180,R=v?Gf({containerWidth:$,navigationExpanded:d.projectNavigation.expanded,navigationWidthPx:d.projectNavigation.widthPx,workExpanded:p.expanded,workDetailWidthPx:p.detailWidthPx}):Ki($,d),ue=R.projectNavigation.mode==="drawer",fe=R.workPanel.mode==="drawer",ke=R.workPanel.mode==="rail"&&p.expanded,re=fe||ke&&k,he=fe||ke?k:R.workPanel.mode==="dock",je=re&&k,le=ue&&i,Me=le||je,Ke=t.settings?.state==="ready"?t.settings:t.settingsMirror.lastGood??t.settings,tt=Ke?.sections.appearance.theme.effectiveValue,st=Ke?.sections.appearance.motion.effectiveValue,lt=Ke?.sections.appearance.style.effectiveValue??"orion-blocksmith",dt=wo(t),ln=m.useCallback(()=>{if(!t.workspace)return;const Z=Ke?.revision;if(!Z)return;const Ne=Ke?.sections.appearance.theme.effectiveValue??"system",Pe=Ne==="system"?"light":Ne==="light"?"dark":"system";r.updateSettings(Z,[{op:"set",key:"appearance.theme",value:Pe}],We()).catch(Ue=>{console.warn("[theme] 主题切换写入失败",Ue)})},[r,Ke,t.workspace]),q=m.useCallback(Z=>{f(Ne=>{const Pe={...Ne,projectNavigation:{...Ne.projectNavigation,...Z}};return Bv(Pe),Pe})},[]),Re=m.useCallback(Z=>{g({...Z,detailWidthPx:Z.widthPx===void 0?void 0:Math.max(360,Z.widthPx-rt)})},[g]),qe=m.useCallback(()=>{ce.current=document.activeElement instanceof HTMLElement?document.activeElement:null},[]),Ze=m.useCallback(()=>{requestAnimationFrame(()=>document.querySelector(".project-search input")?.focus())},[]),kt=m.useCallback(()=>{requestAnimationFrame(()=>document.querySelector('.workspace-rail [aria-label="打开设置"]')?.focus())},[]),Mn=m.useCallback(()=>{ue&&(qe(),b(!1),a(!0)),kt()},[kt,ue,qe]),ar=m.useCallback(()=>{W.current=le,le&&(a(!1),b(!1),ce.current=null),N(!0)},[le]),cr=m.useCallback(()=>{N(!1),W.current&&(W.current=!1,T.current=!0,a(!0))},[]),yt=m.useCallback(()=>{a(!1),b(!1),T.current=!1;const Z=ce.current;ce.current=null,Z&&requestAnimationFrame(()=>Z.focus())},[]);m.useLayoutEffect(()=>{document.documentElement.dataset.theme=tt??"system",document.documentElement.dataset.motion=st??"system",document.documentElement.dataset.uiStyle=lt},[st,tt,lt]),m.useEffect(()=>{we.current=t.notice;const Z=t.notice;Z&&te.current!==Z.id&&(te.current=Z.id,ge(Ne=>Ne.some(Pe=>Pe.notice.id===Z.id)?Ne:[...Ne,{uid:++Ie.current,notice:Z}].slice(-4)))},[t.notice]),m.useEffect(()=>{const Z=t.workspaceId;if(!Z)return;const Ne=t.workspaceSessions[Z],Pe=t.archivedSessions;Ne?.status==="ready"&&(Pe.ownerWorkspaceId===Z&&Pe.status!=="idle"||r.loadArchivedWorkspaceSessions(Z).catch(()=>{}))},[r,t.archivedSessions,t.workspaceId,t.workspaceSessions]);const ur=m.useCallback(Z=>{const Ne=F.find(Pe=>Pe.uid===Z);Ne&&(we.current?.id===Ne.notice.id&&r.dismissNotice(),ge(Pe=>Pe.filter(Ue=>Ue.uid!==Z)))},[r,F]),An=m.useCallback(Z=>{const Ne=F.find(Pe=>Pe.uid===Z);Ne&&(we.current?.id===Ne.notice.id&&r.dismissNotice(),ge(Pe=>Pe.filter(Ue=>Ue.uid!==Z)),r.recoverSession())},[r,F]);m.useEffect(()=>{const Z=window.matchMedia("(prefers-color-scheme: light)"),Ne=document.querySelector('meta[name="theme-color"]'),Pe=()=>{Ne&&(Ne.content=Ax(lt,tt??"system",Z.matches))};return Pe(),Z.addEventListener("change",Pe),()=>Z.removeEventListener("change",Pe)},[tt,lt]),m.useEffect(()=>{a(!1),b(!1),ce.current=null,W.current=!1,T.current=!1},[t.activeSessionId,t.workspace]),m.useLayoutEffect(()=>{a(!1),b(!1),ce.current=null,T.current=!1},[R.projectNavigation.mode,R.workPanel.mode,ue,fe]),m.useEffect(()=>{const Z=Ne=>{const Pe=ul("toggle-project-navigation");if(Pe&&cl(Ne,Pe.tokens)){if(Ne.preventDefault(),ue){if(i){yt();return}qe(),b(!1),a(!0);return}const Ue=!d.projectNavigation.expanded,Qt=!!(!Ue&&document.activeElement?.closest(".workspace-rail")),cn=Ki($,{...d,projectNavigation:{...d.projectNavigation,expanded:Ue}});if(Ue&&cn.projectNavigation.mode==="drawer"){q({expanded:Ue}),qe(),b(!1),a(!0);return}q({expanded:Ue}),Ue?Ze():Qt&&requestAnimationFrame(()=>{(document.querySelector('.project-navigator-collapsed [aria-label="展开项目导航"]')??document.querySelector(".mobile-nav-toggle"))?.focus()})}};return window.addEventListener("keydown",Z),()=>window.removeEventListener("keydown",Z)},[yt,Ze,i,ue,d.projectNavigation,qe,$,q]),m.useEffect(()=>{const Z=ul("open-shortcut-help");if(!Z)return;const Ne=Pe=>{cl(Pe,Z.tokens)&&(Pe.preventDefault(),L(Ue=>!Ue))};return window.addEventListener("keydown",Ne),()=>window.removeEventListener("keydown",Ne)},[]),m.useEffect(()=>{if(!Me)return;const Z=document.querySelector(".conversation-column"),Ne=document.querySelector(".workspace-rail"),Pe=document.querySelector(".work-panel"),Ue=document.querySelector(".workbench-notice-stack"),Qt=document.querySelector(".skip-link");Z&&(Z.inert=!0),Ne&&(Ne.inert=je),Pe&&(Pe.inert=i),Ue&&(Ue.inert=!0),Qt&&(Qt.inert=!0);const cn=window.setTimeout(()=>{const Yt=je?Pe?.querySelector('[aria-label="关闭工作面板"]'):T.current?Ne?.querySelector('[aria-label="打开设置"]'):Ne?.querySelector(".drawer-close");T.current=!1,Yt?.focus()},0),un=Yt=>{Yt.key==="Escape"&&Me&&!Yt.target?.closest?.('[role="alertdialog"], dialog')&&yt()};return window.addEventListener("keydown",un),()=>{Z&&(Z.inert=!1),Ne&&(Ne.inert=!1),Pe&&(Pe.inert=!1),Ue&&(Ue.inert=!1),Qt&&(Qt.inert=!1),window.clearTimeout(cn),window.removeEventListener("keydown",un)}},[yt,Me,i,je,t.notice]);const $t=m.useCallback(()=>{requestAnimationFrame(()=>document.querySelector("#main-content h1")?.focus())},[]),Ln=()=>{a(!1),r.createSession().then($t,$t)},an=()=>{W.current=!1,T.current=!1,N(!1),requestAnimationFrame(()=>document.querySelector("#orion-composer")?.focus())};return o.jsxs(o.Fragment,{children:[o.jsx("a",{className:"skip-link",href:"#main-content",children:"跳到主要内容"}),o.jsxs("div",{ref:B,className:`workbench-shell project-navigation-${R.projectNavigation.mode} work-panel-mode-${R.workPanel.mode} ${ke&&k?"work-panel-transient-overlay":""}`,style:{"--project-navigation-width":`${R.projectNavigation.widthPx}px`,"--project-navigation-preferred-width":`${d.projectNavigation.widthPx}px`,"--work-panel-width":`${R.workPanel.widthPx}px`,"--work-panel-preferred-width":`${p.detailWidthPx+rt}px`},"aria-busy":t.boot==="loading",children:[o.jsx(Qv,{state:t,drawerOpen:le,dockVisible:!0,collapsed:R.projectNavigation.mode==="rail",resizable:R.projectNavigation.mode==="dock",width:R.projectNavigation.widthPx,onExpand:()=>{ue?(qe(),b(!1),a(!0)):(q({expanded:!0}),Ze())},onCollapse:()=>{ue?yt():q({expanded:!1})},onOpenWorkspaceDialog:()=>z(!0),onOpenSettings:ar,onLoadMoreWorkspaces:()=>{r.loadMoreWorkspaces()},onCreateSession:Ln,onLoadWorkspaceSessions:(Z,Ne)=>{r.loadWorkspaceSessions(Z,Ne)},onActivateContext:(Z,Ne)=>{a(!1),r.activateContext(Z,Ne).then($t,$t)},onSetPinned:(Z,Ne)=>{r.setWorkspacePinned(Z,Ne)},onRemoveWorkspace:Z=>{r.removeWorkspace(Z)},onRefreshSummary:Z=>{r.refreshWorkspaceProjectSummary(Z)},onRenameSession:G,onSessionTags:U,onArchiveSession:Z=>{r.archiveSession(Z.id)},onDeleteSession:ie,onRestoreSession:Z=>{r.restoreSession(Z.id)},onWidthPreview:Z=>{const Ne=Ki($,{...d,projectNavigation:{...d.projectNavigation,widthPx:Z}});B.current?.style.setProperty("--project-navigation-width",`${Ne.projectNavigation.widthPx}px`)},onWidthCommit:Z=>q({widthPx:Z})}),o.jsx(gv,{state:t,actions:r,navigationOpen:le,navigationOverlay:ue,onOpenNavigation:()=>{qe(),b(!1),a(!0)},onRevealSettings:Mn,onCreateSession:Ln,composerInsertion:Se}),o.jsx(yx,{state:t,actions:r,mode:re?"overlay":"dock",expanded:he,themePreference:tt,onCycleTheme:ln,onShowShortcutHelp:()=>L(!0),onToggleInspector:()=>{if(fe||ke){if(k){yt();return}qe(),a(!1),b(!0);return}Re({expanded:!p.expanded})},activePanel:p.activePanel,panelOrder:d.workPanel.order,agentPanel:p.agentPanel,onExpand:()=>{fe||ke?(qe(),b(!0)):Re({expanded:!0})},onCollapse:()=>{re?yt():Re({expanded:!1})},onPanelChange:Z=>Re({activePanel:Z}),onAgentPanelChange:Z=>Re({agentPanel:Z}),onWidthPreview:Z=>{const Ne=v?Gf({containerWidth:$,navigationExpanded:d.projectNavigation.expanded,navigationWidthPx:d.projectNavigation.widthPx,workExpanded:!0,workDetailWidthPx:Math.max(360,Z-rt)}):Ki($,{...d,workPanel:{...d.workPanel,widthPx:Z}});B.current?.style.setProperty("--work-panel-width",`${Ne.workPanel.widthPx}px`)},onWidthCommit:Z=>Re({widthPx:Z}),width:R.workPanel.widthPx,maxWidthPx:v?Bp($-(d.projectNavigation.expanded?d.projectNavigation.widthPx:rt))+rt:void 0,revealFileRequest:ye,onRevealInFiles:Z=>{(fe||ke)&&b(!0),J({id:Date.now(),fileId:Z.filesToken,displayPath:Z.path}),Re({activePanel:"files"})},onSendToComposer:Z=>{D({id:Date.now(),text:Z}),fe&&yt(),requestAnimationFrame(()=>document.querySelector("#orion-composer")?.focus())},resourceNavigatorWidths:p.resourceNavigatorWidthPx,onResourceNavigatorWidthCommit:x}),Me?o.jsx("button",{type:"button",className:"drawer-scrim","aria-label":"关闭侧边面板",tabIndex:-1,onClick:yt}):null,F.length>0?o.jsx("div",{className:"workbench-notice-stack","aria-live":"polite",children:F.map(Z=>o.jsx(ww,{uid:Z.uid,notice:Z.notice,reconnectNeeded:t.connection==="replay-required",snapshotRetryNeeded:Z.notice.domain==="session-snapshot"&&dt.status==="failed",pendingAction:!!t.pendingAction,onDismiss:ur,onRecover:An},Z.uid))}):null,t.boot!=="ready"?o.jsxs("section",{className:"boot-screen",role:t.boot==="error"?"alert":"status",children:[o.jsx(bp,{className:"boot-mark",size:34}),t.boot==="loading"?o.jsxs(o.Fragment,{children:[o.jsx("h1",{children:"正在启动 Orion Workbench"}),o.jsx("p",{children:"建立本地安全握手并恢复工作区状态…"}),o.jsx("span",{className:"boot-loader","aria-hidden":"true"})]}):o.jsxs(o.Fragment,{children:[o.jsx("h1",{children:"无法连接本地 Web Host"}),o.jsx("p",{children:t.bootError||"请确认 Orion Web Host 仍在运行。"}),o.jsxs("button",{type:"button",className:"primary-button",onClick:()=>{r.retryBoot()},disabled:!!t.pendingAction,children:[o.jsx(Q,{name:"refresh",size:15}),"重新连接"]})]})]}):null,o.jsx("div",{className:"sr-only","aria-live":"polite","aria-atomic":"true",children:t.announcement})]}),o.jsx(Cy,{open:j,onClose:cr,state:t,actions:r,onGoToSessionControls:an}),o.jsx(uy,{open:E,onClose:()=>z(!1),state:t,onSelect:r.switchWorkspace,onLoadMore:r.loadMoreWorkspaces,onPickDirectory:r.pickWorkspaceDirectory,onInspect:r.inspectWorkspacePath,onListRoots:r.listWorkspaceRoots,onAddRoot:r.addWorkspaceRoot,onRemoveRoot:r.removeWorkspaceRoot,onDiscoverRoot:r.discoverWorkspaceRoot}),o.jsx(dy,{open:!!A,onClose:()=>G(null),session:A,pending:vo(t,A?.id??null),onRename:r.renameSession}),o.jsx(fy,{open:!!ne,onClose:()=>U(null),session:ne,pending:vo(t,ne?.id??null),onSave:r.updateSessionTags}),o.jsx(hy,{open:!!se,onClose:()=>ie(null),session:se,pending:vo(t,se?.id??null),onConfirm:r.deleteSession}),o.jsx(Uy,{open:Y,onClose:()=>L(!1)})]})}function jw(t){const[r,i]=m.useState(()=>typeof window>"u"?1440:Math.max(320,Math.round(window.innerWidth)));return m.useEffect(()=>{const a=t.current;if(!a)return;const d=()=>{const f=Math.max(320,Math.round(a.getBoundingClientRect().width));i(p=>p===f?p:f)};if(d(),typeof ResizeObserver<"u"){const f=new ResizeObserver(d);return f.observe(a),()=>f.disconnect()}return window.addEventListener("resize",d),()=>window.removeEventListener("resize",d)},[t]),r}const Yp=document.getElementById("root");if(!Yp)throw new Error("Orion Web root element was not found.");Fm.createRoot(Yp).render(o.jsx(Mm.StrictMode,{children:o.jsx(kw,{})}));export{py as C,Q as I,vp as P,sl as R,Oe as W,We as a,Ap as b,$p as c,Cw as d,o as j,m as r,On as s};