@orion-agents/orion-code 0.3.19 → 0.3.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +65 -3
- package/README.md +5 -7
- package/README.zh-CN.md +4 -5
- package/dist/runtime/release-receipts.d.ts +19 -2
- package/dist/runtime/release-receipts.js +58 -6
- package/dist/services/workspace-roots-registry.d.ts +46 -0
- package/dist/services/workspace-roots-registry.js +199 -0
- package/dist/web/protocol.d.ts +36 -0
- package/dist/web/server.js +45 -0
- package/dist/web/workbench-controller.d.ts +22 -1
- package/dist/web/workbench-controller.js +107 -0
- package/dist/web/workspace-discovery.d.ts +92 -0
- package/dist/web/workspace-discovery.js +324 -0
- package/dist/web-client/assets/{FilesPanel-DGWgLv6R.js → FilesPanel-CKeXPofZ.js} +1 -1
- package/dist/web-client/assets/{GitPanel-DIuJNXoB.js → GitPanel-DollPxv0.js} +1 -1
- package/dist/web-client/assets/{ReviewPanel-YWZXJdm5.js → ReviewPanel-CNADacIn.js} +1 -1
- package/dist/web-client/assets/{TerminalPanel-DPSMepio.js → TerminalPanel-Cyns4uJt.js} +1 -1
- package/dist/web-client/assets/index-BhGhORAX.js +20 -0
- package/dist/web-client/assets/{index--hnGXXjj.css → index-DCYKIeOj.css} +1 -1
- package/dist/web-client/assets/{useAutoNotice-h7c0Iz1E.js → useAutoNotice-BLADeFFj.js} +1 -1
- package/dist/web-client/index.html +2 -2
- package/npm-shrinkwrap.json +27 -27
- package/package.json +1 -1
- package/dist/web-client/assets/index-DYeu_rs7.js +0 -20
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/TerminalPanel-Cyns4uJt.js","assets/TerminalPanel-DLuoa74B.css","assets/FilesPanel-CKeXPofZ.js","assets/useAutoNotice-BLADeFFj.js","assets/GitPanel-DollPxv0.js","assets/ReviewPanel-CNADacIn.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
var xm=Object.defineProperty;var wm=(n,r,o)=>r in n?xm(n,r,{enumerable:!0,configurable:!0,writable:!0,value:o}):n[r]=o;var Ht=(n,r,o)=>wm(n,typeof r!="symbol"?r+"":r,o);(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 o(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=o(d);fetch(d.href,f)}})();function Xf(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var qa={exports:{}},ri={},Ba={exports:{}},Te={};var Ud;function km(){if(Ud)return Te;Ud=1;var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),o=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"),w=Symbol.for("react.memo"),R=Symbol.for("react.lazy"),C=Symbol.iterator;function _(v){return v===null||typeof v!="object"?null:(v=C&&v[C]||v["@@iterator"],typeof v=="function"?v:null)}var P={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},$=Object.assign,O={};function W(v,M,ce){this.props=v,this.context=M,this.refs=O,this.updater=ce||P}W.prototype.isReactComponent={},W.prototype.setState=function(v,M){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,M,"setState")},W.prototype.forceUpdate=function(v){this.updater.enqueueForceUpdate(this,v,"forceUpdate")};function te(){}te.prototype=W.prototype;function z(v,M,ce){this.props=v,this.context=M,this.refs=O,this.updater=ce||P}var oe=z.prototype=new te;oe.constructor=z,$(oe,W.prototype),oe.isPureReactComponent=!0;var J=Array.isArray,re=Object.prototype.hasOwnProperty,N={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};function se(v,M,ce){var de,ke={},ee=null,he=null;if(M!=null)for(de in M.ref!==void 0&&(he=M.ref),M.key!==void 0&&(ee=""+M.key),M)re.call(M,de)&&!L.hasOwnProperty(de)&&(ke[de]=M[de]);var Se=arguments.length-2;if(Se===1)ke.children=ce;else if(1<Se){for(var ae=Array(Se),Me=0;Me<Se;Me++)ae[Me]=arguments[Me+2];ke.children=ae}if(v&&v.defaultProps)for(de in Se=v.defaultProps,Se)ke[de]===void 0&&(ke[de]=Se[de]);return{$$typeof:n,type:v,key:ee,ref:he,props:ke,_owner:N.current}}function Ne(v,M){return{$$typeof:n,type:v.type,key:M,ref:v.ref,props:v.props,_owner:v._owner}}function we(v){return typeof v=="object"&&v!==null&&v.$$typeof===n}function Z(v){var M={"=":"=0",":":"=2"};return"$"+v.replace(/[=:]/g,function(ce){return M[ce]})}var Q=/\/+/g;function V(v,M){return typeof v=="object"&&v!==null&&v.key!=null?Z(""+v.key):M.toString(36)}function je(v,M,ce,de,ke){var ee=typeof v;(ee==="undefined"||ee==="boolean")&&(v=null);var he=!1;if(v===null)he=!0;else switch(ee){case"string":case"number":he=!0;break;case"object":switch(v.$$typeof){case n:case r:he=!0}}if(he)return he=v,ke=ke(he),v=de===""?"."+V(he,0):de,J(ke)?(ce="",v!=null&&(ce=v.replace(Q,"$&/")+"/"),je(ke,M,ce,"",function(Me){return Me})):ke!=null&&(we(ke)&&(ke=Ne(ke,ce+(!ke.key||he&&he.key===ke.key?"":(""+ke.key).replace(Q,"$&/")+"/")+v)),M.push(ke)),1;if(he=0,de=de===""?".":de+":",J(v))for(var Se=0;Se<v.length;Se++){ee=v[Se];var ae=de+V(ee,Se);he+=je(ee,M,ce,ae,ke)}else if(ae=_(v),typeof ae=="function")for(v=ae.call(v),Se=0;!(ee=v.next()).done;)ee=ee.value,ae=de+V(ee,Se++),he+=je(ee,M,ce,ae,ke);else if(ee==="object")throw M=String(v),Error("Objects are not valid as a React child (found: "+(M==="[object Object]"?"object with keys {"+Object.keys(v).join(", ")+"}":M)+"). If you meant to render a collection of children, use an array instead.");return he}function A(v,M,ce){if(v==null)return v;var de=[],ke=0;return je(v,de,"","",function(ee){return M.call(ce,ee,ke++)}),de}function pe(v){if(v._status===-1){var M=v._result;M=M(),M.then(function(ce){(v._status===0||v._status===-1)&&(v._status=1,v._result=ce)},function(ce){(v._status===0||v._status===-1)&&(v._status=2,v._result=ce)}),v._status===-1&&(v._status=0,v._result=M)}if(v._status===1)return v._result.default;throw v._result}var ge={current:null},q={transition:null},ie={ReactCurrentDispatcher:ge,ReactCurrentBatchConfig:q,ReactCurrentOwner:N};function B(){throw Error("act(...) is not supported in production builds of React.")}return Te.Children={map:A,forEach:function(v,M,ce){A(v,function(){M.apply(this,arguments)},ce)},count:function(v){var M=0;return A(v,function(){M++}),M},toArray:function(v){return A(v,function(M){return M})||[]},only:function(v){if(!we(v))throw Error("React.Children.only expected to receive a single React element child.");return v}},Te.Component=W,Te.Fragment=o,Te.Profiler=d,Te.PureComponent=z,Te.StrictMode=a,Te.Suspense=x,Te.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ie,Te.act=B,Te.cloneElement=function(v,M,ce){if(v==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+v+".");var de=$({},v.props),ke=v.key,ee=v.ref,he=v._owner;if(M!=null){if(M.ref!==void 0&&(ee=M.ref,he=N.current),M.key!==void 0&&(ke=""+M.key),v.type&&v.type.defaultProps)var Se=v.type.defaultProps;for(ae in M)re.call(M,ae)&&!L.hasOwnProperty(ae)&&(de[ae]=M[ae]===void 0&&Se!==void 0?Se[ae]:M[ae])}var ae=arguments.length-2;if(ae===1)de.children=ce;else if(1<ae){Se=Array(ae);for(var Me=0;Me<ae;Me++)Se[Me]=arguments[Me+2];de.children=Se}return{$$typeof:n,type:v.type,key:ke,ref:ee,props:de,_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=se,Te.createFactory=function(v){var M=se.bind(null,v);return M.type=v,M},Te.createRef=function(){return{current:null}},Te.forwardRef=function(v){return{$$typeof:g,render:v}},Te.isValidElement=we,Te.lazy=function(v){return{$$typeof:R,_payload:{_status:-1,_result:v},_init:pe}},Te.memo=function(v,M){return{$$typeof:w,type:v,compare:M===void 0?null:M}},Te.startTransition=function(v){var M=q.transition;q.transition={};try{v()}finally{q.transition=M}},Te.unstable_act=B,Te.useCallback=function(v,M){return ge.current.useCallback(v,M)},Te.useContext=function(v){return ge.current.useContext(v)},Te.useDebugValue=function(){},Te.useDeferredValue=function(v){return ge.current.useDeferredValue(v)},Te.useEffect=function(v,M){return ge.current.useEffect(v,M)},Te.useId=function(){return ge.current.useId()},Te.useImperativeHandle=function(v,M,ce){return ge.current.useImperativeHandle(v,M,ce)},Te.useInsertionEffect=function(v,M){return ge.current.useInsertionEffect(v,M)},Te.useLayoutEffect=function(v,M){return ge.current.useLayoutEffect(v,M)},Te.useMemo=function(v,M){return ge.current.useMemo(v,M)},Te.useReducer=function(v,M,ce){return ge.current.useReducer(v,M,ce)},Te.useRef=function(v){return ge.current.useRef(v)},Te.useState=function(v){return ge.current.useState(v)},Te.useSyncExternalStore=function(v,M,ce){return ge.current.useSyncExternalStore(v,M,ce)},Te.useTransition=function(){return ge.current.useTransition()},Te.version="18.3.1",Te}var Hd;function dc(){return Hd||(Hd=1,Ba.exports=km()),Ba.exports}var Vd;function jm(){if(Vd)return ri;Vd=1;var n=dc(),r=Symbol.for("react.element"),o=Symbol.for("react.fragment"),a=Object.prototype.hasOwnProperty,d=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,f={key:!0,ref:!0,__self:!0,__source:!0};function p(g,x,w){var R,C={},_=null,P=null;w!==void 0&&(_=""+w),x.key!==void 0&&(_=""+x.key),x.ref!==void 0&&(P=x.ref);for(R in x)a.call(x,R)&&!f.hasOwnProperty(R)&&(C[R]=x[R]);if(g&&g.defaultProps)for(R in x=g.defaultProps,x)C[R]===void 0&&(C[R]=x[R]);return{$$typeof:r,type:g,key:_,ref:P,props:C,_owner:d.current}}return ri.Fragment=o,ri.jsx=p,ri.jsxs=p,ri}var Kd;function Sm(){return Kd||(Kd=1,qa.exports=jm()),qa.exports}var i=Sm(),m=dc();const Cm=Xf(m);var No={},Ua={exports:{}},Rt={},Ha={exports:{}},Va={};var Gd;function bm(){return Gd||(Gd=1,(function(n){function r(q,ie){var B=q.length;q.push(ie);e:for(;0<B;){var v=B-1>>>1,M=q[v];if(0<d(M,ie))q[v]=ie,q[B]=M,B=v;else break e}}function o(q){return q.length===0?null:q[0]}function a(q){if(q.length===0)return null;var ie=q[0],B=q.pop();if(B!==ie){q[0]=B;e:for(var v=0,M=q.length,ce=M>>>1;v<ce;){var de=2*(v+1)-1,ke=q[de],ee=de+1,he=q[ee];if(0>d(ke,B))ee<M&&0>d(he,ke)?(q[v]=he,q[ee]=B,v=ee):(q[v]=ke,q[de]=B,v=de);else if(ee<M&&0>d(he,B))q[v]=he,q[ee]=B,v=ee;else break e}}return ie}function d(q,ie){var B=q.sortIndex-ie.sortIndex;return B!==0?B:q.id-ie.id}if(typeof performance=="object"&&typeof performance.now=="function"){var f=performance;n.unstable_now=function(){return f.now()}}else{var p=Date,g=p.now();n.unstable_now=function(){return p.now()-g}}var x=[],w=[],R=1,C=null,_=3,P=!1,$=!1,O=!1,W=typeof setTimeout=="function"?setTimeout:null,te=typeof clearTimeout=="function"?clearTimeout:null,z=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function oe(q){for(var ie=o(w);ie!==null;){if(ie.callback===null)a(w);else if(ie.startTime<=q)a(w),ie.sortIndex=ie.expirationTime,r(x,ie);else break;ie=o(w)}}function J(q){if(O=!1,oe(q),!$)if(o(x)!==null)$=!0,pe(re);else{var ie=o(w);ie!==null&&ge(J,ie.startTime-q)}}function re(q,ie){$=!1,O&&(O=!1,te(se),se=-1),P=!0;var B=_;try{for(oe(ie),C=o(x);C!==null&&(!(C.expirationTime>ie)||q&&!Z());){var v=C.callback;if(typeof v=="function"){C.callback=null,_=C.priorityLevel;var M=v(C.expirationTime<=ie);ie=n.unstable_now(),typeof M=="function"?C.callback=M:C===o(x)&&a(x),oe(ie)}else a(x);C=o(x)}if(C!==null)var ce=!0;else{var de=o(w);de!==null&&ge(J,de.startTime-ie),ce=!1}return ce}finally{C=null,_=B,P=!1}}var N=!1,L=null,se=-1,Ne=5,we=-1;function Z(){return!(n.unstable_now()-we<Ne)}function Q(){if(L!==null){var q=n.unstable_now();we=q;var ie=!0;try{ie=L(!0,q)}finally{ie?V():(N=!1,L=null)}}else N=!1}var V;if(typeof z=="function")V=function(){z(Q)};else if(typeof MessageChannel<"u"){var je=new MessageChannel,A=je.port2;je.port1.onmessage=Q,V=function(){A.postMessage(null)}}else V=function(){W(Q,0)};function pe(q){L=q,N||(N=!0,V())}function ge(q,ie){se=W(function(){q(n.unstable_now())},ie)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(q){q.callback=null},n.unstable_continueExecution=function(){$||P||($=!0,pe(re))},n.unstable_forceFrameRate=function(q){0>q||125<q?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):Ne=0<q?Math.floor(1e3/q):5},n.unstable_getCurrentPriorityLevel=function(){return _},n.unstable_getFirstCallbackNode=function(){return o(x)},n.unstable_next=function(q){switch(_){case 1:case 2:case 3:var ie=3;break;default:ie=_}var B=_;_=ie;try{return q()}finally{_=B}},n.unstable_pauseExecution=function(){},n.unstable_requestPaint=function(){},n.unstable_runWithPriority=function(q,ie){switch(q){case 1:case 2:case 3:case 4:case 5:break;default:q=3}var B=_;_=q;try{return ie()}finally{_=B}},n.unstable_scheduleCallback=function(q,ie,B){var v=n.unstable_now();switch(typeof B=="object"&&B!==null?(B=B.delay,B=typeof B=="number"&&0<B?v+B:v):B=v,q){case 1:var M=-1;break;case 2:M=250;break;case 5:M=1073741823;break;case 4:M=1e4;break;default:M=5e3}return M=B+M,q={id:R++,callback:ie,priorityLevel:q,startTime:B,expirationTime:M,sortIndex:-1},B>v?(q.sortIndex=B,r(w,q),o(x)===null&&q===o(w)&&(O?(te(se),se=-1):O=!0,ge(J,B-v))):(q.sortIndex=M,r(x,q),$||P||($=!0,pe(re))),q},n.unstable_shouldYield=Z,n.unstable_wrapCallback=function(q){var ie=_;return function(){var B=_;_=ie;try{return q.apply(this,arguments)}finally{_=B}}}})(Va)),Va}var Qd;function Nm(){return Qd||(Qd=1,Ha.exports=bm()),Ha.exports}var Yd;function Im(){if(Yd)return Rt;Yd=1;var n=dc(),r=Nm();function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,s=1;s<arguments.length;s++)t+="&args[]="+encodeURIComponent(arguments[s]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var a=new Set,d={};function f(e,t){p(e,t),p(e+"Capture",t)}function p(e,t){for(d[e]=t,e=0;e<t.length;e++)a.add(t[e])}var g=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),x=Object.prototype.hasOwnProperty,w=/^[: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]*$/,R={},C={};function _(e){return x.call(C,e)?!0:x.call(R,e)?!1:w.test(e)?C[e]=!0:(R[e]=!0,!1)}function P(e,t,s,l){if(s!==null&&s.type===0)return!1;switch(typeof t){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 $(e,t,s,l){if(t===null||typeof t>"u"||P(e,t,s,l))return!0;if(l)return!1;if(s!==null)switch(s.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function O(e,t,s,l,c,u,h){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=l,this.attributeNamespace=c,this.mustUseProperty=s,this.propertyName=e,this.type=t,this.sanitizeURL=u,this.removeEmptyString=h}var W={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){W[e]=new O(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];W[t]=new O(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){W[e]=new O(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){W[e]=new O(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){W[e]=new O(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){W[e]=new O(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){W[e]=new O(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){W[e]=new O(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){W[e]=new O(e,5,!1,e.toLowerCase(),null,!1,!1)});var te=/[\-:]([a-z])/g;function z(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 t=e.replace(te,z);W[t]=new O(t,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(te,z);W[t]=new O(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(te,z);W[t]=new O(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){W[e]=new O(e,1,!1,e.toLowerCase(),null,!1,!1)}),W.xlinkHref=new O("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){W[e]=new O(e,1,!1,e.toLowerCase(),null,!0,!0)});function oe(e,t,s,l){var c=W.hasOwnProperty(t)?W[t]:null;(c!==null?c.type!==0:l||!(2<t.length)||t[0]!=="o"&&t[0]!=="O"||t[1]!=="n"&&t[1]!=="N")&&($(t,s,c,l)&&(s=null),l||c===null?_(t)&&(s===null?e.removeAttribute(t):e.setAttribute(t,""+s)):c.mustUseProperty?e[c.propertyName]=s===null?c.type===3?!1:"":s:(t=c.attributeName,l=c.attributeNamespace,s===null?e.removeAttribute(t):(c=c.type,s=c===3||c===4&&s===!0?"":""+s,l?e.setAttributeNS(l,t,s):e.setAttribute(t,s))))}var J=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,re=Symbol.for("react.element"),N=Symbol.for("react.portal"),L=Symbol.for("react.fragment"),se=Symbol.for("react.strict_mode"),Ne=Symbol.for("react.profiler"),we=Symbol.for("react.provider"),Z=Symbol.for("react.context"),Q=Symbol.for("react.forward_ref"),V=Symbol.for("react.suspense"),je=Symbol.for("react.suspense_list"),A=Symbol.for("react.memo"),pe=Symbol.for("react.lazy"),ge=Symbol.for("react.offscreen"),q=Symbol.iterator;function ie(e){return e===null||typeof e!="object"?null:(e=q&&e[q]||e["@@iterator"],typeof e=="function"?e:null)}var B=Object.assign,v;function M(e){if(v===void 0)try{throw Error()}catch(s){var t=s.stack.trim().match(/\n( *(at )?)/);v=t&&t[1]||""}return`
|
|
3
|
+
`+v+e}var ce=!1;function de(e,t){if(!e||ce)return"";ce=!0;var s=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(t,[])}catch(T){var l=T}Reflect.construct(e,[],t)}else{try{t.call()}catch(T){l=T}e.call(t.prototype)}else{try{throw Error()}catch(T){l=T}e()}}catch(T){if(T&&l&&typeof T.stack=="string"){for(var c=T.stack.split(`
|
|
4
|
+
`),u=l.stack.split(`
|
|
5
|
+
`),h=c.length-1,y=u.length-1;1<=h&&0<=y&&c[h]!==u[y];)y--;for(;1<=h&&0<=y;h--,y--)if(c[h]!==u[y]){if(h!==1||y!==1)do if(h--,y--,0>y||c[h]!==u[y]){var j=`
|
|
6
|
+
`+c[h].replace(" at new "," at ");return e.displayName&&j.includes("<anonymous>")&&(j=j.replace("<anonymous>",e.displayName)),j}while(1<=h&&0<=y);break}}}finally{ce=!1,Error.prepareStackTrace=s}return(e=e?e.displayName||e.name:"")?M(e):""}function ke(e){switch(e.tag){case 5:return M(e.type);case 16:return M("Lazy");case 13:return M("Suspense");case 19:return M("SuspenseList");case 0:case 2:case 15:return e=de(e.type,!1),e;case 11:return e=de(e.type.render,!1),e;case 1:return e=de(e.type,!0),e;default:return""}}function ee(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 L:return"Fragment";case N:return"Portal";case Ne:return"Profiler";case se:return"StrictMode";case V:return"Suspense";case je:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Z:return(e.displayName||"Context")+".Consumer";case we:return(e._context.displayName||"Context")+".Provider";case Q:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case A:return t=e.displayName||null,t!==null?t:ee(e.type)||"Memo";case pe:t=e._payload,e=e._init;try{return ee(e(t))}catch{}}return null}function he(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ee(t);case 8:return t===se?"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 t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Se(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function ae(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Me(e){var t=ae(e)?"checked":"value",s=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),l=""+e[t];if(!e.hasOwnProperty(t)&&typeof s<"u"&&typeof s.get=="function"&&typeof s.set=="function"){var c=s.get,u=s.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return c.call(this)},set:function(h){l=""+h,u.call(this,h)}}),Object.defineProperty(e,t,{enumerable:s.enumerable}),{getValue:function(){return l},setValue:function(h){l=""+h},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function He(e){e._valueTracker||(e._valueTracker=Me(e))}function Ze(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var s=t.getValue(),l="";return e&&(l=ae(e)?e.checked?"true":"false":e.value),e=l,e!==s?(t.setValue(e),!0):!1}function ft(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,t){var s=t.checked;return B({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:s??e._wrapperState.initialChecked})}function wt(e,t){var s=t.defaultValue==null?"":t.defaultValue,l=t.checked!=null?t.checked:t.defaultChecked;s=Se(t.value!=null?t.value:s),e._wrapperState={initialChecked:l,initialValue:s,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function pt(e,t){t=t.checked,t!=null&&oe(e,"checked",t,!1)}function F(e,t){pt(e,t);var s=Se(t.value),l=t.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}t.hasOwnProperty("value")?Fe(e,t.type,s):t.hasOwnProperty("defaultValue")&&Fe(e,t.type,Se(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Ee(e,t,s){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var l=t.type;if(!(l!=="submit"&&l!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,s||t===e.value||(e.value=t),e.defaultValue=t}s=e.name,s!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,s!==""&&(e.name=s)}function Fe(e,t,s){(t!=="number"||ft(e.ownerDocument)!==e)&&(s==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+s&&(e.defaultValue=""+s))}var et=Array.isArray;function Ct(e,t,s,l){if(e=e.options,t){t={};for(var c=0;c<s.length;c++)t["$"+s[c]]=!0;for(s=0;s<e.length;s++)c=t.hasOwnProperty("$"+e[s].value),e[s].selected!==c&&(e[s].selected=c),c&&l&&(e[s].defaultSelected=!0)}else{for(s=""+Se(s),t=null,c=0;c<e.length;c++){if(e[c].value===s){e[c].selected=!0,l&&(e[c].defaultSelected=!0);return}t!==null||e[c].disabled||(t=e[c])}t!==null&&(t.selected=!0)}}function Pn(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(o(91));return B({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function nr(e,t){var s=t.value;if(s==null){if(s=t.children,t=t.defaultValue,s!=null){if(t!=null)throw Error(o(92));if(et(s)){if(1<s.length)throw Error(o(93));s=s[0]}t=s}t==null&&(t=""),s=t}e._wrapperState={initialValue:Se(s)}}function rr(e,t){var s=Se(t.value),l=Se(t.defaultValue);s!=null&&(s=""+s,s!==e.value&&(e.value=s),t.defaultValue==null&&e.defaultValue!==s&&(e.defaultValue=s)),l!=null&&(e.defaultValue=""+l)}function kt(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}function sr(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 Tn(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?sr(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var Dt,Mn=(function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,s,l,c){MSApp.execUnsafeLocalFunction(function(){return e(t,s,l,c)})}:e})(function(e,t){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=t;else{for(Dt=Dt||document.createElement("div"),Dt.innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=Dt.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function on(e,t){if(t){var s=e.firstChild;if(s&&s===e.lastChild&&s.nodeType===3){s.nodeValue=t;return}}e.textContent=t}var Y={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},Ie=["Webkit","ms","Moz","O"];Object.keys(Y).forEach(function(e){Ie.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Y[t]=Y[e]})});function Re(e,t,s){return t==null||typeof t=="boolean"||t===""?"":s||typeof t!="number"||t===0||Y.hasOwnProperty(e)&&Y[e]?(""+t).trim():t+"px"}function qe(e,t){e=e.style;for(var s in t)if(t.hasOwnProperty(s)){var l=s.indexOf("--")===0,c=Re(s,t[s],l);s==="float"&&(s="cssFloat"),l?e.setProperty(s,c):e[s]=c}}var Gt=B({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 ln(e,t){if(t){if(Gt[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(o(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(o(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(o(61))}if(t.style!=null&&typeof t.style!="object")throw Error(o(62))}}function an(e,t){if(e.indexOf("-")===-1)return typeof t.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 Qt=null;function Er(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Rr=null,On=null,mn=null;function ps(e){if(e=qs(e)){if(typeof Rr!="function")throw Error(o(280));var t=e.stateNode;t&&(t=Wi(t),Rr(e.stateNode,e.type,t))}}function hs(e){On?mn?mn.push(e):mn=[e]:On=e}function ms(){if(On){var e=On,t=mn;if(mn=On=null,ps(e),t)for(e=0;e<t.length;e++)ps(t[e])}}function mi(e,t){return e(t)}function gi(){}var gs=!1;function vi(e,t,s){if(gs)return e(t,s);gs=!0;try{return mi(e,t,s)}finally{gs=!1,(On!==null||mn!==null)&&(gi(),ms())}}function ir(e,t){var s=e.stateNode;if(s===null)return null;var l=Wi(s);if(l===null)return null;s=l[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(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(o(231,t,typeof s));return s}var vs=!1;if(g)try{var or={};Object.defineProperty(or,"passive",{get:function(){vs=!0}}),window.addEventListener("test",or,or),window.removeEventListener("test",or,or)}catch{vs=!1}function sl(e,t,s,l,c,u,h,y,j){var T=Array.prototype.slice.call(arguments,3);try{t.apply(s,T)}catch(H){this.onError(H)}}var lr=!1,Pr=null,Tr=!1,ys=null,il={onError:function(e){lr=!0,Pr=e}};function ol(e,t,s,l,c,u,h,y,j){lr=!1,Pr=null,sl.apply(il,arguments)}function yi(e,t,s,l,c,u,h,y,j){if(ol.apply(this,arguments),lr){if(lr){var T=Pr;lr=!1,Pr=null}else throw Error(o(198));Tr||(Tr=!0,ys=T)}}function cn(e){var t=e,s=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,(t.flags&4098)!==0&&(s=t.return),e=t.return;while(e)}return t.tag===3?s:null}function xs(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function ws(e){if(cn(e)!==e)throw Error(o(188))}function xi(e){var t=e.alternate;if(!t){if(t=cn(e),t===null)throw Error(o(188));return t!==e?null:e}for(var s=e,l=t;;){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 ws(c),e;if(u===l)return ws(c),t;u=u.sibling}throw Error(o(188))}if(s.return!==l.return)s=c,l=u;else{for(var h=!1,y=c.child;y;){if(y===s){h=!0,s=c,l=u;break}if(y===l){h=!0,l=c,s=u;break}y=y.sibling}if(!h){for(y=u.child;y;){if(y===s){h=!0,s=u,l=c;break}if(y===l){h=!0,l=u,s=c;break}y=y.sibling}if(!h)throw Error(o(189))}}if(s.alternate!==l)throw Error(o(190))}if(s.tag!==3)throw Error(o(188));return s.stateNode.current===s?e:t}function ks(e){return e=xi(e),e!==null?js(e):null}function js(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=js(e);if(t!==null)return t;e=e.sibling}return null}var Ss=r.unstable_scheduleCallback,Cs=r.unstable_cancelCallback,wi=r.unstable_shouldYield,ki=r.unstable_requestPaint,Ve=r.unstable_now,ll=r.unstable_getCurrentPriorityLevel,k=r.unstable_ImmediatePriority,b=r.unstable_UserBlockingPriority,D=r.unstable_NormalPriority,ne=r.unstable_LowPriority,xe=r.unstable_IdlePriority,$e=null,Ke=null;function at(e){if(Ke&&typeof Ke.onCommitFiberRoot=="function")try{Ke.onCommitFiberRoot($e,e,void 0,(e.current.flags&128)===128)}catch{}}var st=Math.clz32?Math.clz32:al,ji=Math.log,gn=Math.LN2;function al(e){return e>>>=0,e===0?32:31-(ji(e)/gn|0)|0}var Mr=64,Or=4194304;function tt(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 ar(e,t){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 y=h&~c;y!==0?l=tt(y):(u&=h,u!==0&&(l=tt(u)))}else h=s&~c,h!==0?l=tt(h):u!==0&&(l=tt(u));if(l===0)return 0;if(t!==0&&t!==l&&(t&c)===0&&(c=l&-l,u=t&-t,c>=u||c===16&&(u&4194240)!==0))return t;if((l&4)!==0&&(l|=s&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=l;0<t;)s=31-st(t),c=1<<s,l|=e[s],t&=~c;return l}function Si(e,t){switch(e){case 1:case 2:case 4:return t+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 t+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 Ci(e,t){for(var s=e.suspendedLanes,l=e.pingedLanes,c=e.expirationTimes,u=e.pendingLanes;0<u;){var h=31-st(u),y=1<<h,j=c[h];j===-1?((y&s)===0||(y&l)!==0)&&(c[h]=Si(y,t)):j<=t&&(e.expiredLanes|=y),u&=~y}}function cl(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function kc(){var e=Mr;return Mr<<=1,(Mr&4194240)===0&&(Mr=64),e}function ul(e){for(var t=[],s=0;31>s;s++)t.push(e);return t}function bs(e,t,s){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-st(t),e[t]=s}function Wp(e,t){var s=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var l=e.eventTimes;for(e=e.expirationTimes;0<s;){var c=31-st(s),u=1<<c;t[c]=0,l[c]=-1,e[c]=-1,s&=~u}}function dl(e,t){var s=e.entangledLanes|=t;for(e=e.entanglements;s;){var l=31-st(s),c=1<<l;c&t|e[l]&t&&(e[l]|=t),s&=~c}}var De=0;function jc(e){return e&=-e,1<e?4<e?(e&268435455)!==0?16:536870912:4:1}var Sc,fl,Cc,bc,Nc,pl=!1,bi=[],Ln=null,An=null,$n=null,Ns=new Map,Is=new Map,Dn=[],Fp="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 Ic(e,t){switch(e){case"focusin":case"focusout":Ln=null;break;case"dragenter":case"dragleave":An=null;break;case"mouseover":case"mouseout":$n=null;break;case"pointerover":case"pointerout":Ns.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Is.delete(t.pointerId)}}function _s(e,t,s,l,c,u){return e===null||e.nativeEvent!==u?(e={blockedOn:t,domEventName:s,eventSystemFlags:l,nativeEvent:u,targetContainers:[c]},t!==null&&(t=qs(t),t!==null&&fl(t)),e):(e.eventSystemFlags|=l,t=e.targetContainers,c!==null&&t.indexOf(c)===-1&&t.push(c),e)}function qp(e,t,s,l,c){switch(t){case"focusin":return Ln=_s(Ln,e,t,s,l,c),!0;case"dragenter":return An=_s(An,e,t,s,l,c),!0;case"mouseover":return $n=_s($n,e,t,s,l,c),!0;case"pointerover":var u=c.pointerId;return Ns.set(u,_s(Ns.get(u)||null,e,t,s,l,c)),!0;case"gotpointercapture":return u=c.pointerId,Is.set(u,_s(Is.get(u)||null,e,t,s,l,c)),!0}return!1}function _c(e){var t=cr(e.target);if(t!==null){var s=cn(t);if(s!==null){if(t=s.tag,t===13){if(t=xs(s),t!==null){e.blockedOn=t,Nc(e.priority,function(){Cc(s)});return}}else if(t===3&&s.stateNode.current.memoizedState.isDehydrated){e.blockedOn=s.tag===3?s.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Ni(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var s=ml(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(s===null){s=e.nativeEvent;var l=new s.constructor(s.type,s);Qt=l,s.target.dispatchEvent(l),Qt=null}else return t=qs(s),t!==null&&fl(t),e.blockedOn=s,!1;t.shift()}return!0}function Ec(e,t,s){Ni(e)&&s.delete(t)}function Bp(){pl=!1,Ln!==null&&Ni(Ln)&&(Ln=null),An!==null&&Ni(An)&&(An=null),$n!==null&&Ni($n)&&($n=null),Ns.forEach(Ec),Is.forEach(Ec)}function Es(e,t){e.blockedOn===t&&(e.blockedOn=null,pl||(pl=!0,r.unstable_scheduleCallback(r.unstable_NormalPriority,Bp)))}function Rs(e){function t(c){return Es(c,e)}if(0<bi.length){Es(bi[0],e);for(var s=1;s<bi.length;s++){var l=bi[s];l.blockedOn===e&&(l.blockedOn=null)}}for(Ln!==null&&Es(Ln,e),An!==null&&Es(An,e),$n!==null&&Es($n,e),Ns.forEach(t),Is.forEach(t),s=0;s<Dn.length;s++)l=Dn[s],l.blockedOn===e&&(l.blockedOn=null);for(;0<Dn.length&&(s=Dn[0],s.blockedOn===null);)_c(s),s.blockedOn===null&&Dn.shift()}var Lr=J.ReactCurrentBatchConfig,Ii=!0;function Up(e,t,s,l){var c=De,u=Lr.transition;Lr.transition=null;try{De=1,hl(e,t,s,l)}finally{De=c,Lr.transition=u}}function Hp(e,t,s,l){var c=De,u=Lr.transition;Lr.transition=null;try{De=4,hl(e,t,s,l)}finally{De=c,Lr.transition=u}}function hl(e,t,s,l){if(Ii){var c=ml(e,t,s,l);if(c===null)Tl(e,t,l,_i,s),Ic(e,l);else if(qp(c,e,t,s,l))l.stopPropagation();else if(Ic(e,l),t&4&&-1<Fp.indexOf(e)){for(;c!==null;){var u=qs(c);if(u!==null&&Sc(u),u=ml(e,t,s,l),u===null&&Tl(e,t,l,_i,s),u===c)break;c=u}c!==null&&l.stopPropagation()}else Tl(e,t,l,null,s)}}var _i=null;function ml(e,t,s,l){if(_i=null,e=Er(l),e=cr(e),e!==null)if(t=cn(e),t===null)e=null;else if(s=t.tag,s===13){if(e=xs(t),e!==null)return e;e=null}else if(s===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return _i=e,null}function Rc(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(ll()){case k:return 1;case b:return 4;case D:case ne:return 16;case xe:return 536870912;default:return 16}default:return 16}}var zn=null,gl=null,Ei=null;function Pc(){if(Ei)return Ei;var e,t=gl,s=t.length,l,c="value"in zn?zn.value:zn.textContent,u=c.length;for(e=0;e<s&&t[e]===c[e];e++);var h=s-e;for(l=1;l<=h&&t[s-l]===c[u-l];l++);return Ei=c.slice(e,1<l?1-l:void 0)}function Ri(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function Pi(){return!0}function Tc(){return!1}function Ot(e){function t(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 y in e)e.hasOwnProperty(y)&&(s=e[y],this[y]=s?s(u):u[y]);return this.isDefaultPrevented=(u.defaultPrevented!=null?u.defaultPrevented:u.returnValue===!1)?Pi:Tc,this.isPropagationStopped=Tc,this}return B(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var s=this.nativeEvent;s&&(s.preventDefault?s.preventDefault():typeof s.returnValue!="unknown"&&(s.returnValue=!1),this.isDefaultPrevented=Pi)},stopPropagation:function(){var s=this.nativeEvent;s&&(s.stopPropagation?s.stopPropagation():typeof s.cancelBubble!="unknown"&&(s.cancelBubble=!0),this.isPropagationStopped=Pi)},persist:function(){},isPersistent:Pi}),t}var Ar={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},vl=Ot(Ar),Ps=B({},Ar,{view:0,detail:0}),Vp=Ot(Ps),yl,xl,Ts,Ti=B({},Ps,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:kl,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!==Ts&&(Ts&&e.type==="mousemove"?(yl=e.screenX-Ts.screenX,xl=e.screenY-Ts.screenY):xl=yl=0,Ts=e),yl)},movementY:function(e){return"movementY"in e?e.movementY:xl}}),Mc=Ot(Ti),Kp=B({},Ti,{dataTransfer:0}),Gp=Ot(Kp),Qp=B({},Ps,{relatedTarget:0}),wl=Ot(Qp),Yp=B({},Ar,{animationName:0,elapsedTime:0,pseudoElement:0}),Xp=Ot(Yp),Jp=B({},Ar,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Zp=Ot(Jp),eh=B({},Ar,{data:0}),Oc=Ot(eh),th={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},nh={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"},rh={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function sh(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=rh[e])?!!t[e]:!1}function kl(){return sh}var ih=B({},Ps,{key:function(e){if(e.key){var t=th[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=Ri(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?nh[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:kl,charCode:function(e){return e.type==="keypress"?Ri(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?Ri(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),oh=Ot(ih),lh=B({},Ti,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Lc=Ot(lh),ah=B({},Ps,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:kl}),ch=Ot(ah),uh=B({},Ar,{propertyName:0,elapsedTime:0,pseudoElement:0}),dh=Ot(uh),fh=B({},Ti,{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}),ph=Ot(fh),hh=[9,13,27,32],jl=g&&"CompositionEvent"in window,Ms=null;g&&"documentMode"in document&&(Ms=document.documentMode);var mh=g&&"TextEvent"in window&&!Ms,Ac=g&&(!jl||Ms&&8<Ms&&11>=Ms),$c=" ",Dc=!1;function zc(e,t){switch(e){case"keyup":return hh.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Wc(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var $r=!1;function gh(e,t){switch(e){case"compositionend":return Wc(t);case"keypress":return t.which!==32?null:(Dc=!0,$c);case"textInput":return e=t.data,e===$c&&Dc?null:e;default:return null}}function vh(e,t){if($r)return e==="compositionend"||!jl&&zc(e,t)?(e=Pc(),Ei=gl=zn=null,$r=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Ac&&t.locale!=="ko"?null:t.data;default:return null}}var yh={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 Fc(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!yh[e.type]:t==="textarea"}function qc(e,t,s,l){hs(l),t=$i(t,"onChange"),0<t.length&&(s=new vl("onChange","change",null,s,l),e.push({event:s,listeners:t}))}var Os=null,Ls=null;function xh(e){ou(e,0)}function Mi(e){var t=qr(e);if(Ze(t))return e}function wh(e,t){if(e==="change")return t}var Bc=!1;if(g){var Sl;if(g){var Cl="oninput"in document;if(!Cl){var Uc=document.createElement("div");Uc.setAttribute("oninput","return;"),Cl=typeof Uc.oninput=="function"}Sl=Cl}else Sl=!1;Bc=Sl&&(!document.documentMode||9<document.documentMode)}function Hc(){Os&&(Os.detachEvent("onpropertychange",Vc),Ls=Os=null)}function Vc(e){if(e.propertyName==="value"&&Mi(Ls)){var t=[];qc(t,Ls,e,Er(e)),vi(xh,t)}}function kh(e,t,s){e==="focusin"?(Hc(),Os=t,Ls=s,Os.attachEvent("onpropertychange",Vc)):e==="focusout"&&Hc()}function jh(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return Mi(Ls)}function Sh(e,t){if(e==="click")return Mi(t)}function Ch(e,t){if(e==="input"||e==="change")return Mi(t)}function bh(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Yt=typeof Object.is=="function"?Object.is:bh;function As(e,t){if(Yt(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var s=Object.keys(e),l=Object.keys(t);if(s.length!==l.length)return!1;for(l=0;l<s.length;l++){var c=s[l];if(!x.call(t,c)||!Yt(e[c],t[c]))return!1}return!0}function Kc(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Gc(e,t){var s=Kc(e);e=0;for(var l;s;){if(s.nodeType===3){if(l=e+s.textContent.length,e<=t&&l>=t)return{node:s,offset:t-e};e=l}e:{for(;s;){if(s.nextSibling){s=s.nextSibling;break e}s=s.parentNode}s=void 0}s=Kc(s)}}function Qc(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Qc(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Yc(){for(var e=window,t=ft();t instanceof e.HTMLIFrameElement;){try{var s=typeof t.contentWindow.location.href=="string"}catch{s=!1}if(s)e=t.contentWindow;else break;t=ft(e.document)}return t}function bl(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Nh(e){var t=Yc(),s=e.focusedElem,l=e.selectionRange;if(t!==s&&s&&s.ownerDocument&&Qc(s.ownerDocument.documentElement,s)){if(l!==null&&bl(s)){if(t=l.start,e=l.end,e===void 0&&(e=t),"selectionStart"in s)s.selectionStart=t,s.selectionEnd=Math.min(e,s.value.length);else if(e=(t=s.ownerDocument||document)&&t.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=Gc(s,u);var h=Gc(s,l);c&&h&&(e.rangeCount!==1||e.anchorNode!==c.node||e.anchorOffset!==c.offset||e.focusNode!==h.node||e.focusOffset!==h.offset)&&(t=t.createRange(),t.setStart(c.node,c.offset),e.removeAllRanges(),u>l?(e.addRange(t),e.extend(h.node,h.offset)):(t.setEnd(h.node,h.offset),e.addRange(t)))}}for(t=[],e=s;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof s.focus=="function"&&s.focus(),s=0;s<t.length;s++)e=t[s],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var Ih=g&&"documentMode"in document&&11>=document.documentMode,Dr=null,Nl=null,$s=null,Il=!1;function Xc(e,t,s){var l=s.window===s?s.document:s.nodeType===9?s:s.ownerDocument;Il||Dr==null||Dr!==ft(l)||(l=Dr,"selectionStart"in l&&bl(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}),$s&&As($s,l)||($s=l,l=$i(Nl,"onSelect"),0<l.length&&(t=new vl("onSelect","select",null,t,s),e.push({event:t,listeners:l}),t.target=Dr)))}function Oi(e,t){var s={};return s[e.toLowerCase()]=t.toLowerCase(),s["Webkit"+e]="webkit"+t,s["Moz"+e]="moz"+t,s}var zr={animationend:Oi("Animation","AnimationEnd"),animationiteration:Oi("Animation","AnimationIteration"),animationstart:Oi("Animation","AnimationStart"),transitionend:Oi("Transition","TransitionEnd")},_l={},Jc={};g&&(Jc=document.createElement("div").style,"AnimationEvent"in window||(delete zr.animationend.animation,delete zr.animationiteration.animation,delete zr.animationstart.animation),"TransitionEvent"in window||delete zr.transitionend.transition);function Li(e){if(_l[e])return _l[e];if(!zr[e])return e;var t=zr[e],s;for(s in t)if(t.hasOwnProperty(s)&&s in Jc)return _l[e]=t[s];return e}var Zc=Li("animationend"),eu=Li("animationiteration"),tu=Li("animationstart"),nu=Li("transitionend"),ru=new Map,su="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 Wn(e,t){ru.set(e,t),f(t,[e])}for(var El=0;El<su.length;El++){var Rl=su[El],_h=Rl.toLowerCase(),Eh=Rl[0].toUpperCase()+Rl.slice(1);Wn(_h,"on"+Eh)}Wn(Zc,"onAnimationEnd"),Wn(eu,"onAnimationIteration"),Wn(tu,"onAnimationStart"),Wn("dblclick","onDoubleClick"),Wn("focusin","onFocus"),Wn("focusout","onBlur"),Wn(nu,"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 Ds="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(" "),Rh=new Set("cancel close invalid load scroll toggle".split(" ").concat(Ds));function iu(e,t,s){var l=e.type||"unknown-event";e.currentTarget=s,yi(l,t,void 0,e),e.currentTarget=null}function ou(e,t){t=(t&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(t)for(var h=l.length-1;0<=h;h--){var y=l[h],j=y.instance,T=y.currentTarget;if(y=y.listener,j!==u&&c.isPropagationStopped())break e;iu(c,y,T),u=j}else for(h=0;h<l.length;h++){if(y=l[h],j=y.instance,T=y.currentTarget,y=y.listener,j!==u&&c.isPropagationStopped())break e;iu(c,y,T),u=j}}}if(Tr)throw e=ys,Tr=!1,ys=null,e}function Be(e,t){var s=t[Dl];s===void 0&&(s=t[Dl]=new Set);var l=e+"__bubble";s.has(l)||(lu(t,e,2,!1),s.add(l))}function Pl(e,t,s){var l=0;t&&(l|=4),lu(s,e,l,t)}var Ai="_reactListening"+Math.random().toString(36).slice(2);function zs(e){if(!e[Ai]){e[Ai]=!0,a.forEach(function(s){s!=="selectionchange"&&(Rh.has(s)||Pl(s,!1,e),Pl(s,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Ai]||(t[Ai]=!0,Pl("selectionchange",!1,t))}}function lu(e,t,s,l){switch(Rc(t)){case 1:var c=Up;break;case 4:c=Hp;break;default:c=hl}s=c.bind(null,t,s,e),c=void 0,!vs||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(c=!0),l?c!==void 0?e.addEventListener(t,s,{capture:!0,passive:c}):e.addEventListener(t,s,!0):c!==void 0?e.addEventListener(t,s,{passive:c}):e.addEventListener(t,s,!1)}function Tl(e,t,s,l,c){var u=l;if((t&1)===0&&(t&2)===0&&l!==null)e:for(;;){if(l===null)return;var h=l.tag;if(h===3||h===4){var y=l.stateNode.containerInfo;if(y===c||y.nodeType===8&&y.parentNode===c)break;if(h===4)for(h=l.return;h!==null;){var j=h.tag;if((j===3||j===4)&&(j=h.stateNode.containerInfo,j===c||j.nodeType===8&&j.parentNode===c))return;h=h.return}for(;y!==null;){if(h=cr(y),h===null)return;if(j=h.tag,j===5||j===6){l=u=h;continue e}y=y.parentNode}}l=l.return}vi(function(){var T=u,H=Er(s),K=[];e:{var U=ru.get(e);if(U!==void 0){var le=vl,fe=e;switch(e){case"keypress":if(Ri(s)===0)break e;case"keydown":case"keyup":le=oh;break;case"focusin":fe="focus",le=wl;break;case"focusout":fe="blur",le=wl;break;case"beforeblur":case"afterblur":le=wl;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":le=Mc;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":le=Gp;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":le=ch;break;case Zc:case eu:case tu:le=Xp;break;case nu:le=dh;break;case"scroll":le=Vp;break;case"wheel":le=ph;break;case"copy":case"cut":case"paste":le=Zp;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":le=Lc}var me=(t&4)!==0,Je=!me&&e==="scroll",I=me?U!==null?U+"Capture":null:U;me=[];for(var S=T,E;S!==null;){E=S;var X=E.stateNode;if(E.tag===5&&X!==null&&(E=X,I!==null&&(X=ir(S,I),X!=null&&me.push(Ws(S,X,E)))),Je)break;S=S.return}0<me.length&&(U=new le(U,fe,null,s,H),K.push({event:U,listeners:me}))}}if((t&7)===0){e:{if(U=e==="mouseover"||e==="pointerover",le=e==="mouseout"||e==="pointerout",U&&s!==Qt&&(fe=s.relatedTarget||s.fromElement)&&(cr(fe)||fe[vn]))break e;if((le||U)&&(U=H.window===H?H:(U=H.ownerDocument)?U.defaultView||U.parentWindow:window,le?(fe=s.relatedTarget||s.toElement,le=T,fe=fe?cr(fe):null,fe!==null&&(Je=cn(fe),fe!==Je||fe.tag!==5&&fe.tag!==6)&&(fe=null)):(le=null,fe=T),le!==fe)){if(me=Mc,X="onMouseLeave",I="onMouseEnter",S="mouse",(e==="pointerout"||e==="pointerover")&&(me=Lc,X="onPointerLeave",I="onPointerEnter",S="pointer"),Je=le==null?U:qr(le),E=fe==null?U:qr(fe),U=new me(X,S+"leave",le,s,H),U.target=Je,U.relatedTarget=E,X=null,cr(H)===T&&(me=new me(I,S+"enter",fe,s,H),me.target=E,me.relatedTarget=Je,X=me),Je=X,le&&fe)t:{for(me=le,I=fe,S=0,E=me;E;E=Wr(E))S++;for(E=0,X=I;X;X=Wr(X))E++;for(;0<S-E;)me=Wr(me),S--;for(;0<E-S;)I=Wr(I),E--;for(;S--;){if(me===I||I!==null&&me===I.alternate)break t;me=Wr(me),I=Wr(I)}me=null}else me=null;le!==null&&au(K,U,le,me,!1),fe!==null&&Je!==null&&au(K,Je,fe,me,!0)}}e:{if(U=T?qr(T):window,le=U.nodeName&&U.nodeName.toLowerCase(),le==="select"||le==="input"&&U.type==="file")var ve=wh;else if(Fc(U))if(Bc)ve=Ch;else{ve=jh;var Ce=kh}else(le=U.nodeName)&&le.toLowerCase()==="input"&&(U.type==="checkbox"||U.type==="radio")&&(ve=Sh);if(ve&&(ve=ve(e,T))){qc(K,ve,s,H);break e}Ce&&Ce(e,U,T),e==="focusout"&&(Ce=U._wrapperState)&&Ce.controlled&&U.type==="number"&&Fe(U,"number",U.value)}switch(Ce=T?qr(T):window,e){case"focusin":(Fc(Ce)||Ce.contentEditable==="true")&&(Dr=Ce,Nl=T,$s=null);break;case"focusout":$s=Nl=Dr=null;break;case"mousedown":Il=!0;break;case"contextmenu":case"mouseup":case"dragend":Il=!1,Xc(K,s,H);break;case"selectionchange":if(Ih)break;case"keydown":case"keyup":Xc(K,s,H)}var be;if(jl)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 $r?zc(e,s)&&(_e="onCompositionEnd"):e==="keydown"&&s.keyCode===229&&(_e="onCompositionStart");_e&&(Ac&&s.locale!=="ko"&&($r||_e!=="onCompositionStart"?_e==="onCompositionEnd"&&$r&&(be=Pc()):(zn=H,gl="value"in zn?zn.value:zn.textContent,$r=!0)),Ce=$i(T,_e),0<Ce.length&&(_e=new Oc(_e,e,null,s,H),K.push({event:_e,listeners:Ce}),be?_e.data=be:(be=Wc(s),be!==null&&(_e.data=be)))),(be=mh?gh(e,s):vh(e,s))&&(T=$i(T,"onBeforeInput"),0<T.length&&(H=new Oc("onBeforeInput","beforeinput",null,s,H),K.push({event:H,listeners:T}),H.data=be))}ou(K,t)})}function Ws(e,t,s){return{instance:e,listener:t,currentTarget:s}}function $i(e,t){for(var s=t+"Capture",l=[];e!==null;){var c=e,u=c.stateNode;c.tag===5&&u!==null&&(c=u,u=ir(e,s),u!=null&&l.unshift(Ws(e,u,c)),u=ir(e,t),u!=null&&l.push(Ws(e,u,c))),e=e.return}return l}function Wr(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function au(e,t,s,l,c){for(var u=t._reactName,h=[];s!==null&&s!==l;){var y=s,j=y.alternate,T=y.stateNode;if(j!==null&&j===l)break;y.tag===5&&T!==null&&(y=T,c?(j=ir(s,u),j!=null&&h.unshift(Ws(s,j,y))):c||(j=ir(s,u),j!=null&&h.push(Ws(s,j,y)))),s=s.return}h.length!==0&&e.push({event:t,listeners:h})}var Ph=/\r\n?/g,Th=/\u0000|\uFFFD/g;function cu(e){return(typeof e=="string"?e:""+e).replace(Ph,`
|
|
7
|
+
`).replace(Th,"")}function Di(e,t,s){if(t=cu(t),cu(e)!==t&&s)throw Error(o(425))}function zi(){}var Ml=null,Ol=null;function Ll(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Al=typeof setTimeout=="function"?setTimeout:void 0,Mh=typeof clearTimeout=="function"?clearTimeout:void 0,uu=typeof Promise=="function"?Promise:void 0,Oh=typeof queueMicrotask=="function"?queueMicrotask:typeof uu<"u"?function(e){return uu.resolve(null).then(e).catch(Lh)}:Al;function Lh(e){setTimeout(function(){throw e})}function $l(e,t){var s=t,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),Rs(t);return}l--}else s!=="$"&&s!=="$?"&&s!=="$!"||l++;s=c}while(s);Rs(t)}function Fn(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?")break;if(t==="/$")return null}}return e}function du(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var s=e.data;if(s==="$"||s==="$!"||s==="$?"){if(t===0)return e;t--}else s==="/$"&&t++}e=e.previousSibling}return null}var Fr=Math.random().toString(36).slice(2),un="__reactFiber$"+Fr,Fs="__reactProps$"+Fr,vn="__reactContainer$"+Fr,Dl="__reactEvents$"+Fr,Ah="__reactListeners$"+Fr,$h="__reactHandles$"+Fr;function cr(e){var t=e[un];if(t)return t;for(var s=e.parentNode;s;){if(t=s[vn]||s[un]){if(s=t.alternate,t.child!==null||s!==null&&s.child!==null)for(e=du(e);e!==null;){if(s=e[un])return s;e=du(e)}return t}e=s,s=e.parentNode}return null}function qs(e){return e=e[un]||e[vn],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function qr(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(o(33))}function Wi(e){return e[Fs]||null}var zl=[],Br=-1;function qn(e){return{current:e}}function Ue(e){0>Br||(e.current=zl[Br],zl[Br]=null,Br--)}function We(e,t){Br++,zl[Br]=e.current,e.current=t}var Bn={},gt=qn(Bn),bt=qn(!1),ur=Bn;function Ur(e,t){var s=e.type.contextTypes;if(!s)return Bn;var l=e.stateNode;if(l&&l.__reactInternalMemoizedUnmaskedChildContext===t)return l.__reactInternalMemoizedMaskedChildContext;var c={},u;for(u in s)c[u]=t[u];return l&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=c),c}function Nt(e){return e=e.childContextTypes,e!=null}function Fi(){Ue(bt),Ue(gt)}function fu(e,t,s){if(gt.current!==Bn)throw Error(o(168));We(gt,t),We(bt,s)}function pu(e,t,s){var l=e.stateNode;if(t=t.childContextTypes,typeof l.getChildContext!="function")return s;l=l.getChildContext();for(var c in l)if(!(c in t))throw Error(o(108,he(e)||"Unknown",c));return B({},s,l)}function qi(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Bn,ur=gt.current,We(gt,e),We(bt,bt.current),!0}function hu(e,t,s){var l=e.stateNode;if(!l)throw Error(o(169));s?(e=pu(e,t,ur),l.__reactInternalMemoizedMergedChildContext=e,Ue(bt),Ue(gt),We(gt,e)):Ue(bt),We(bt,s)}var yn=null,Bi=!1,Wl=!1;function mu(e){yn===null?yn=[e]:yn.push(e)}function Dh(e){Bi=!0,mu(e)}function Un(){if(!Wl&&yn!==null){Wl=!0;var e=0,t=De;try{var s=yn;for(De=1;e<s.length;e++){var l=s[e];do l=l(!0);while(l!==null)}yn=null,Bi=!1}catch(c){throw yn!==null&&(yn=yn.slice(e+1)),Ss(k,Un),c}finally{De=t,Wl=!1}}return null}var Hr=[],Vr=0,Ui=null,Hi=0,zt=[],Wt=0,dr=null,xn=1,wn="";function fr(e,t){Hr[Vr++]=Hi,Hr[Vr++]=Ui,Ui=e,Hi=t}function gu(e,t,s){zt[Wt++]=xn,zt[Wt++]=wn,zt[Wt++]=dr,dr=e;var l=xn;e=wn;var c=32-st(l)-1;l&=~(1<<c),s+=1;var u=32-st(t)+c;if(30<u){var h=c-c%5;u=(l&(1<<h)-1).toString(32),l>>=h,c-=h,xn=1<<32-st(t)+c|s<<c|l,wn=u+e}else xn=1<<u|s<<c|l,wn=e}function Fl(e){e.return!==null&&(fr(e,1),gu(e,1,0))}function ql(e){for(;e===Ui;)Ui=Hr[--Vr],Hr[Vr]=null,Hi=Hr[--Vr],Hr[Vr]=null;for(;e===dr;)dr=zt[--Wt],zt[Wt]=null,wn=zt[--Wt],zt[Wt]=null,xn=zt[--Wt],zt[Wt]=null}var Lt=null,At=null,Ge=!1,Xt=null;function vu(e,t){var s=Ut(5,null,null,0);s.elementType="DELETED",s.stateNode=t,s.return=e,t=e.deletions,t===null?(e.deletions=[s],e.flags|=16):t.push(s)}function yu(e,t){switch(e.tag){case 5:var s=e.type;return t=t.nodeType!==1||s.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,Lt=e,At=Fn(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,Lt=e,At=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(s=dr!==null?{id:xn,overflow:wn}:null,e.memoizedState={dehydrated:t,treeContext:s,retryLane:1073741824},s=Ut(18,null,null,0),s.stateNode=t,s.return=e,e.child=s,Lt=e,At=null,!0):!1;default:return!1}}function Bl(e){return(e.mode&1)!==0&&(e.flags&128)===0}function Ul(e){if(Ge){var t=At;if(t){var s=t;if(!yu(e,t)){if(Bl(e))throw Error(o(418));t=Fn(s.nextSibling);var l=Lt;t&&yu(e,t)?vu(l,s):(e.flags=e.flags&-4097|2,Ge=!1,Lt=e)}}else{if(Bl(e))throw Error(o(418));e.flags=e.flags&-4097|2,Ge=!1,Lt=e}}}function xu(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;Lt=e}function Vi(e){if(e!==Lt)return!1;if(!Ge)return xu(e),Ge=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!=="head"&&t!=="body"&&!Ll(e.type,e.memoizedProps)),t&&(t=At)){if(Bl(e))throw wu(),Error(o(418));for(;t;)vu(e,t),t=Fn(t.nextSibling)}if(xu(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(o(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var s=e.data;if(s==="/$"){if(t===0){At=Fn(e.nextSibling);break e}t--}else s!=="$"&&s!=="$!"&&s!=="$?"||t++}e=e.nextSibling}At=null}}else At=Lt?Fn(e.stateNode.nextSibling):null;return!0}function wu(){for(var e=At;e;)e=Fn(e.nextSibling)}function Kr(){At=Lt=null,Ge=!1}function Hl(e){Xt===null?Xt=[e]:Xt.push(e)}var zh=J.ReactCurrentBatchConfig;function Bs(e,t,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(o(309));var l=s.stateNode}if(!l)throw Error(o(147,e));var c=l,u=""+e;return t!==null&&t.ref!==null&&typeof t.ref=="function"&&t.ref._stringRef===u?t.ref:(t=function(h){var y=c.refs;h===null?delete y[u]:y[u]=h},t._stringRef=u,t)}if(typeof e!="string")throw Error(o(284));if(!s._owner)throw Error(o(290,e))}return e}function Ki(e,t){throw e=Object.prototype.toString.call(t),Error(o(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function ku(e){var t=e._init;return t(e._payload)}function ju(e){function t(I,S){if(e){var E=I.deletions;E===null?(I.deletions=[S],I.flags|=16):E.push(S)}}function s(I,S){if(!e)return null;for(;S!==null;)t(I,S),S=S.sibling;return null}function l(I,S){for(I=new Map;S!==null;)S.key!==null?I.set(S.key,S):I.set(S.index,S),S=S.sibling;return I}function c(I,S){return I=Jn(I,S),I.index=0,I.sibling=null,I}function u(I,S,E){return I.index=E,e?(E=I.alternate,E!==null?(E=E.index,E<S?(I.flags|=2,S):E):(I.flags|=2,S)):(I.flags|=1048576,S)}function h(I){return e&&I.alternate===null&&(I.flags|=2),I}function y(I,S,E,X){return S===null||S.tag!==6?(S=Aa(E,I.mode,X),S.return=I,S):(S=c(S,E),S.return=I,S)}function j(I,S,E,X){var ve=E.type;return ve===L?H(I,S,E.props.children,X,E.key):S!==null&&(S.elementType===ve||typeof ve=="object"&&ve!==null&&ve.$$typeof===pe&&ku(ve)===S.type)?(X=c(S,E.props),X.ref=Bs(I,S,E),X.return=I,X):(X=yo(E.type,E.key,E.props,null,I.mode,X),X.ref=Bs(I,S,E),X.return=I,X)}function T(I,S,E,X){return S===null||S.tag!==4||S.stateNode.containerInfo!==E.containerInfo||S.stateNode.implementation!==E.implementation?(S=$a(E,I.mode,X),S.return=I,S):(S=c(S,E.children||[]),S.return=I,S)}function H(I,S,E,X,ve){return S===null||S.tag!==7?(S=wr(E,I.mode,X,ve),S.return=I,S):(S=c(S,E),S.return=I,S)}function K(I,S,E){if(typeof S=="string"&&S!==""||typeof S=="number")return S=Aa(""+S,I.mode,E),S.return=I,S;if(typeof S=="object"&&S!==null){switch(S.$$typeof){case re:return E=yo(S.type,S.key,S.props,null,I.mode,E),E.ref=Bs(I,null,S),E.return=I,E;case N:return S=$a(S,I.mode,E),S.return=I,S;case pe:var X=S._init;return K(I,X(S._payload),E)}if(et(S)||ie(S))return S=wr(S,I.mode,E,null),S.return=I,S;Ki(I,S)}return null}function U(I,S,E,X){var ve=S!==null?S.key:null;if(typeof E=="string"&&E!==""||typeof E=="number")return ve!==null?null:y(I,S,""+E,X);if(typeof E=="object"&&E!==null){switch(E.$$typeof){case re:return E.key===ve?j(I,S,E,X):null;case N:return E.key===ve?T(I,S,E,X):null;case pe:return ve=E._init,U(I,S,ve(E._payload),X)}if(et(E)||ie(E))return ve!==null?null:H(I,S,E,X,null);Ki(I,E)}return null}function le(I,S,E,X,ve){if(typeof X=="string"&&X!==""||typeof X=="number")return I=I.get(E)||null,y(S,I,""+X,ve);if(typeof X=="object"&&X!==null){switch(X.$$typeof){case re:return I=I.get(X.key===null?E:X.key)||null,j(S,I,X,ve);case N:return I=I.get(X.key===null?E:X.key)||null,T(S,I,X,ve);case pe:var Ce=X._init;return le(I,S,E,Ce(X._payload),ve)}if(et(X)||ie(X))return I=I.get(E)||null,H(S,I,X,ve,null);Ki(S,X)}return null}function fe(I,S,E,X){for(var ve=null,Ce=null,be=S,_e=S=0,dt=null;be!==null&&_e<E.length;_e++){be.index>_e?(dt=be,be=null):dt=be.sibling;var Le=U(I,be,E[_e],X);if(Le===null){be===null&&(be=dt);break}e&&be&&Le.alternate===null&&t(I,be),S=u(Le,S,_e),Ce===null?ve=Le:Ce.sibling=Le,Ce=Le,be=dt}if(_e===E.length)return s(I,be),Ge&&fr(I,_e),ve;if(be===null){for(;_e<E.length;_e++)be=K(I,E[_e],X),be!==null&&(S=u(be,S,_e),Ce===null?ve=be:Ce.sibling=be,Ce=be);return Ge&&fr(I,_e),ve}for(be=l(I,be);_e<E.length;_e++)dt=le(be,I,_e,E[_e],X),dt!==null&&(e&&dt.alternate!==null&&be.delete(dt.key===null?_e:dt.key),S=u(dt,S,_e),Ce===null?ve=dt:Ce.sibling=dt,Ce=dt);return e&&be.forEach(function(Zn){return t(I,Zn)}),Ge&&fr(I,_e),ve}function me(I,S,E,X){var ve=ie(E);if(typeof ve!="function")throw Error(o(150));if(E=ve.call(E),E==null)throw Error(o(151));for(var Ce=ve=null,be=S,_e=S=0,dt=null,Le=E.next();be!==null&&!Le.done;_e++,Le=E.next()){be.index>_e?(dt=be,be=null):dt=be.sibling;var Zn=U(I,be,Le.value,X);if(Zn===null){be===null&&(be=dt);break}e&&be&&Zn.alternate===null&&t(I,be),S=u(Zn,S,_e),Ce===null?ve=Zn:Ce.sibling=Zn,Ce=Zn,be=dt}if(Le.done)return s(I,be),Ge&&fr(I,_e),ve;if(be===null){for(;!Le.done;_e++,Le=E.next())Le=K(I,Le.value,X),Le!==null&&(S=u(Le,S,_e),Ce===null?ve=Le:Ce.sibling=Le,Ce=Le);return Ge&&fr(I,_e),ve}for(be=l(I,be);!Le.done;_e++,Le=E.next())Le=le(be,I,_e,Le.value,X),Le!==null&&(e&&Le.alternate!==null&&be.delete(Le.key===null?_e:Le.key),S=u(Le,S,_e),Ce===null?ve=Le:Ce.sibling=Le,Ce=Le);return e&&be.forEach(function(ym){return t(I,ym)}),Ge&&fr(I,_e),ve}function Je(I,S,E,X){if(typeof E=="object"&&E!==null&&E.type===L&&E.key===null&&(E=E.props.children),typeof E=="object"&&E!==null){switch(E.$$typeof){case re:e:{for(var ve=E.key,Ce=S;Ce!==null;){if(Ce.key===ve){if(ve=E.type,ve===L){if(Ce.tag===7){s(I,Ce.sibling),S=c(Ce,E.props.children),S.return=I,I=S;break e}}else if(Ce.elementType===ve||typeof ve=="object"&&ve!==null&&ve.$$typeof===pe&&ku(ve)===Ce.type){s(I,Ce.sibling),S=c(Ce,E.props),S.ref=Bs(I,Ce,E),S.return=I,I=S;break e}s(I,Ce);break}else t(I,Ce);Ce=Ce.sibling}E.type===L?(S=wr(E.props.children,I.mode,X,E.key),S.return=I,I=S):(X=yo(E.type,E.key,E.props,null,I.mode,X),X.ref=Bs(I,S,E),X.return=I,I=X)}return h(I);case N:e:{for(Ce=E.key;S!==null;){if(S.key===Ce)if(S.tag===4&&S.stateNode.containerInfo===E.containerInfo&&S.stateNode.implementation===E.implementation){s(I,S.sibling),S=c(S,E.children||[]),S.return=I,I=S;break e}else{s(I,S);break}else t(I,S);S=S.sibling}S=$a(E,I.mode,X),S.return=I,I=S}return h(I);case pe:return Ce=E._init,Je(I,S,Ce(E._payload),X)}if(et(E))return fe(I,S,E,X);if(ie(E))return me(I,S,E,X);Ki(I,E)}return typeof E=="string"&&E!==""||typeof E=="number"?(E=""+E,S!==null&&S.tag===6?(s(I,S.sibling),S=c(S,E),S.return=I,I=S):(s(I,S),S=Aa(E,I.mode,X),S.return=I,I=S),h(I)):s(I,S)}return Je}var Gr=ju(!0),Su=ju(!1),Gi=qn(null),Qi=null,Qr=null,Vl=null;function Kl(){Vl=Qr=Qi=null}function Gl(e){var t=Gi.current;Ue(Gi),e._currentValue=t}function Ql(e,t,s){for(;e!==null;){var l=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,l!==null&&(l.childLanes|=t)):l!==null&&(l.childLanes&t)!==t&&(l.childLanes|=t),e===s)break;e=e.return}}function Yr(e,t){Qi=e,Vl=Qr=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(It=!0),e.firstContext=null)}function Ft(e){var t=e._currentValue;if(Vl!==e)if(e={context:e,memoizedValue:t,next:null},Qr===null){if(Qi===null)throw Error(o(308));Qr=e,Qi.dependencies={lanes:0,firstContext:e}}else Qr=Qr.next=e;return t}var pr=null;function Yl(e){pr===null?pr=[e]:pr.push(e)}function Cu(e,t,s,l){var c=t.interleaved;return c===null?(s.next=s,Yl(t)):(s.next=c.next,c.next=s),t.interleaved=s,kn(e,l)}function kn(e,t){e.lanes|=t;var s=e.alternate;for(s!==null&&(s.lanes|=t),s=e,e=e.return;e!==null;)e.childLanes|=t,s=e.alternate,s!==null&&(s.childLanes|=t),s=e,e=e.return;return s.tag===3?s.stateNode:null}var Hn=!1;function Xl(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function bu(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function jn(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Vn(e,t,s){var l=e.updateQueue;if(l===null)return null;if(l=l.shared,(Oe&2)!==0){var c=l.pending;return c===null?t.next=t:(t.next=c.next,c.next=t),l.pending=t,kn(e,s)}return c=l.interleaved,c===null?(t.next=t,Yl(l)):(t.next=c.next,c.next=t),l.interleaved=t,kn(e,s)}function Yi(e,t,s){if(t=t.updateQueue,t!==null&&(t=t.shared,(s&4194240)!==0)){var l=t.lanes;l&=e.pendingLanes,s|=l,t.lanes=s,dl(e,s)}}function Nu(e,t){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=t:u=u.next=t}else c=u=t;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=t:e.next=t,s.lastBaseUpdate=t}function Xi(e,t,s,l){var c=e.updateQueue;Hn=!1;var u=c.firstBaseUpdate,h=c.lastBaseUpdate,y=c.shared.pending;if(y!==null){c.shared.pending=null;var j=y,T=j.next;j.next=null,h===null?u=T:h.next=T,h=j;var H=e.alternate;H!==null&&(H=H.updateQueue,y=H.lastBaseUpdate,y!==h&&(y===null?H.firstBaseUpdate=T:y.next=T,H.lastBaseUpdate=j))}if(u!==null){var K=c.baseState;h=0,H=T=j=null,y=u;do{var U=y.lane,le=y.eventTime;if((l&U)===U){H!==null&&(H=H.next={eventTime:le,lane:0,tag:y.tag,payload:y.payload,callback:y.callback,next:null});e:{var fe=e,me=y;switch(U=t,le=s,me.tag){case 1:if(fe=me.payload,typeof fe=="function"){K=fe.call(le,K,U);break e}K=fe;break e;case 3:fe.flags=fe.flags&-65537|128;case 0:if(fe=me.payload,U=typeof fe=="function"?fe.call(le,K,U):fe,U==null)break e;K=B({},K,U);break e;case 2:Hn=!0}}y.callback!==null&&y.lane!==0&&(e.flags|=64,U=c.effects,U===null?c.effects=[y]:U.push(y))}else le={eventTime:le,lane:U,tag:y.tag,payload:y.payload,callback:y.callback,next:null},H===null?(T=H=le,j=K):H=H.next=le,h|=U;if(y=y.next,y===null){if(y=c.shared.pending,y===null)break;U=y,y=U.next,U.next=null,c.lastBaseUpdate=U,c.shared.pending=null}}while(!0);if(H===null&&(j=K),c.baseState=j,c.firstBaseUpdate=T,c.lastBaseUpdate=H,t=c.shared.interleaved,t!==null){c=t;do h|=c.lane,c=c.next;while(c!==t)}else u===null&&(c.shared.lanes=0);gr|=h,e.lanes=h,e.memoizedState=K}}function Iu(e,t,s){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var l=e[t],c=l.callback;if(c!==null){if(l.callback=null,l=s,typeof c!="function")throw Error(o(191,c));c.call(l)}}}var Us={},dn=qn(Us),Hs=qn(Us),Vs=qn(Us);function hr(e){if(e===Us)throw Error(o(174));return e}function Jl(e,t){switch(We(Vs,t),We(Hs,e),We(dn,Us),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:Tn(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=Tn(t,e)}Ue(dn),We(dn,t)}function Xr(){Ue(dn),Ue(Hs),Ue(Vs)}function _u(e){hr(Vs.current);var t=hr(dn.current),s=Tn(t,e.type);t!==s&&(We(Hs,e),We(dn,s))}function Zl(e){Hs.current===e&&(Ue(dn),Ue(Hs))}var Qe=qn(0);function Ji(e){for(var t=e;t!==null;){if(t.tag===13){var s=t.memoizedState;if(s!==null&&(s=s.dehydrated,s===null||s.data==="$?"||s.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var ea=[];function ta(){for(var e=0;e<ea.length;e++)ea[e]._workInProgressVersionPrimary=null;ea.length=0}var Zi=J.ReactCurrentDispatcher,na=J.ReactCurrentBatchConfig,mr=0,Ye=null,it=null,ct=null,eo=!1,Ks=!1,Gs=0,Wh=0;function vt(){throw Error(o(321))}function ra(e,t){if(t===null)return!1;for(var s=0;s<t.length&&s<e.length;s++)if(!Yt(e[s],t[s]))return!1;return!0}function sa(e,t,s,l,c,u){if(mr=u,Ye=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Zi.current=e===null||e.memoizedState===null?Uh:Hh,e=s(l,c),Ks){u=0;do{if(Ks=!1,Gs=0,25<=u)throw Error(o(301));u+=1,ct=it=null,t.updateQueue=null,Zi.current=Vh,e=s(l,c)}while(Ks)}if(Zi.current=ro,t=it!==null&&it.next!==null,mr=0,ct=it=Ye=null,eo=!1,t)throw Error(o(300));return e}function ia(){var e=Gs!==0;return Gs=0,e}function fn(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return ct===null?Ye.memoizedState=ct=e:ct=ct.next=e,ct}function qt(){if(it===null){var e=Ye.alternate;e=e!==null?e.memoizedState:null}else e=it.next;var t=ct===null?Ye.memoizedState:ct.next;if(t!==null)ct=t,it=e;else{if(e===null)throw Error(o(310));it=e,e={memoizedState:it.memoizedState,baseState:it.baseState,baseQueue:it.baseQueue,queue:it.queue,next:null},ct===null?Ye.memoizedState=ct=e:ct=ct.next=e}return ct}function Qs(e,t){return typeof t=="function"?t(e):t}function oa(e){var t=qt(),s=t.queue;if(s===null)throw Error(o(311));s.lastRenderedReducer=e;var l=it,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 y=h=null,j=null,T=u;do{var H=T.lane;if((mr&H)===H)j!==null&&(j=j.next={lane:0,action:T.action,hasEagerState:T.hasEagerState,eagerState:T.eagerState,next:null}),l=T.hasEagerState?T.eagerState:e(l,T.action);else{var K={lane:H,action:T.action,hasEagerState:T.hasEagerState,eagerState:T.eagerState,next:null};j===null?(y=j=K,h=l):j=j.next=K,Ye.lanes|=H,gr|=H}T=T.next}while(T!==null&&T!==u);j===null?h=l:j.next=y,Yt(l,t.memoizedState)||(It=!0),t.memoizedState=l,t.baseState=h,t.baseQueue=j,s.lastRenderedState=l}if(e=s.interleaved,e!==null){c=e;do u=c.lane,Ye.lanes|=u,gr|=u,c=c.next;while(c!==e)}else c===null&&(s.lanes=0);return[t.memoizedState,s.dispatch]}function la(e){var t=qt(),s=t.queue;if(s===null)throw Error(o(311));s.lastRenderedReducer=e;var l=s.dispatch,c=s.pending,u=t.memoizedState;if(c!==null){s.pending=null;var h=c=c.next;do u=e(u,h.action),h=h.next;while(h!==c);Yt(u,t.memoizedState)||(It=!0),t.memoizedState=u,t.baseQueue===null&&(t.baseState=u),s.lastRenderedState=u}return[u,l]}function Eu(){}function Ru(e,t){var s=Ye,l=qt(),c=t(),u=!Yt(l.memoizedState,c);if(u&&(l.memoizedState=c,It=!0),l=l.queue,aa(Mu.bind(null,s,l,e),[e]),l.getSnapshot!==t||u||ct!==null&&ct.memoizedState.tag&1){if(s.flags|=2048,Ys(9,Tu.bind(null,s,l,c,t),void 0,null),ut===null)throw Error(o(349));(mr&30)!==0||Pu(s,t,c)}return c}function Pu(e,t,s){e.flags|=16384,e={getSnapshot:t,value:s},t=Ye.updateQueue,t===null?(t={lastEffect:null,stores:null},Ye.updateQueue=t,t.stores=[e]):(s=t.stores,s===null?t.stores=[e]:s.push(e))}function Tu(e,t,s,l){t.value=s,t.getSnapshot=l,Ou(t)&&Lu(e)}function Mu(e,t,s){return s(function(){Ou(t)&&Lu(e)})}function Ou(e){var t=e.getSnapshot;e=e.value;try{var s=t();return!Yt(e,s)}catch{return!0}}function Lu(e){var t=kn(e,1);t!==null&&tn(t,e,1,-1)}function Au(e){var t=fn();return typeof e=="function"&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Qs,lastRenderedState:e},t.queue=e,e=e.dispatch=Bh.bind(null,Ye,e),[t.memoizedState,e]}function Ys(e,t,s,l){return e={tag:e,create:t,destroy:s,deps:l,next:null},t=Ye.updateQueue,t===null?(t={lastEffect:null,stores:null},Ye.updateQueue=t,t.lastEffect=e.next=e):(s=t.lastEffect,s===null?t.lastEffect=e.next=e:(l=s.next,s.next=e,e.next=l,t.lastEffect=e)),e}function $u(){return qt().memoizedState}function to(e,t,s,l){var c=fn();Ye.flags|=e,c.memoizedState=Ys(1|t,s,void 0,l===void 0?null:l)}function no(e,t,s,l){var c=qt();l=l===void 0?null:l;var u=void 0;if(it!==null){var h=it.memoizedState;if(u=h.destroy,l!==null&&ra(l,h.deps)){c.memoizedState=Ys(t,s,u,l);return}}Ye.flags|=e,c.memoizedState=Ys(1|t,s,u,l)}function Du(e,t){return to(8390656,8,e,t)}function aa(e,t){return no(2048,8,e,t)}function zu(e,t){return no(4,2,e,t)}function Wu(e,t){return no(4,4,e,t)}function Fu(e,t){if(typeof t=="function")return e=e(),t(e),function(){t(null)};if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function qu(e,t,s){return s=s!=null?s.concat([e]):null,no(4,4,Fu.bind(null,t,e),s)}function ca(){}function Bu(e,t){var s=qt();t=t===void 0?null:t;var l=s.memoizedState;return l!==null&&t!==null&&ra(t,l[1])?l[0]:(s.memoizedState=[e,t],e)}function Uu(e,t){var s=qt();t=t===void 0?null:t;var l=s.memoizedState;return l!==null&&t!==null&&ra(t,l[1])?l[0]:(e=e(),s.memoizedState=[e,t],e)}function Hu(e,t,s){return(mr&21)===0?(e.baseState&&(e.baseState=!1,It=!0),e.memoizedState=s):(Yt(s,t)||(s=kc(),Ye.lanes|=s,gr|=s,e.baseState=!0),t)}function Fh(e,t){var s=De;De=s!==0&&4>s?s:4,e(!0);var l=na.transition;na.transition={};try{e(!1),t()}finally{De=s,na.transition=l}}function Vu(){return qt().memoizedState}function qh(e,t,s){var l=Yn(e);if(s={lane:l,action:s,hasEagerState:!1,eagerState:null,next:null},Ku(e))Gu(t,s);else if(s=Cu(e,t,s,l),s!==null){var c=St();tn(s,e,l,c),Qu(s,t,l)}}function Bh(e,t,s){var l=Yn(e),c={lane:l,action:s,hasEagerState:!1,eagerState:null,next:null};if(Ku(e))Gu(t,c);else{var u=e.alternate;if(e.lanes===0&&(u===null||u.lanes===0)&&(u=t.lastRenderedReducer,u!==null))try{var h=t.lastRenderedState,y=u(h,s);if(c.hasEagerState=!0,c.eagerState=y,Yt(y,h)){var j=t.interleaved;j===null?(c.next=c,Yl(t)):(c.next=j.next,j.next=c),t.interleaved=c;return}}catch{}s=Cu(e,t,c,l),s!==null&&(c=St(),tn(s,e,l,c),Qu(s,t,l))}}function Ku(e){var t=e.alternate;return e===Ye||t!==null&&t===Ye}function Gu(e,t){Ks=eo=!0;var s=e.pending;s===null?t.next=t:(t.next=s.next,s.next=t),e.pending=t}function Qu(e,t,s){if((s&4194240)!==0){var l=t.lanes;l&=e.pendingLanes,s|=l,t.lanes=s,dl(e,s)}}var ro={readContext:Ft,useCallback:vt,useContext:vt,useEffect:vt,useImperativeHandle:vt,useInsertionEffect:vt,useLayoutEffect:vt,useMemo:vt,useReducer:vt,useRef:vt,useState:vt,useDebugValue:vt,useDeferredValue:vt,useTransition:vt,useMutableSource:vt,useSyncExternalStore:vt,useId:vt,unstable_isNewReconciler:!1},Uh={readContext:Ft,useCallback:function(e,t){return fn().memoizedState=[e,t===void 0?null:t],e},useContext:Ft,useEffect:Du,useImperativeHandle:function(e,t,s){return s=s!=null?s.concat([e]):null,to(4194308,4,Fu.bind(null,t,e),s)},useLayoutEffect:function(e,t){return to(4194308,4,e,t)},useInsertionEffect:function(e,t){return to(4,2,e,t)},useMemo:function(e,t){var s=fn();return t=t===void 0?null:t,e=e(),s.memoizedState=[e,t],e},useReducer:function(e,t,s){var l=fn();return t=s!==void 0?s(t):t,l.memoizedState=l.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},l.queue=e,e=e.dispatch=qh.bind(null,Ye,e),[l.memoizedState,e]},useRef:function(e){var t=fn();return e={current:e},t.memoizedState=e},useState:Au,useDebugValue:ca,useDeferredValue:function(e){return fn().memoizedState=e},useTransition:function(){var e=Au(!1),t=e[0];return e=Fh.bind(null,e[1]),fn().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,s){var l=Ye,c=fn();if(Ge){if(s===void 0)throw Error(o(407));s=s()}else{if(s=t(),ut===null)throw Error(o(349));(mr&30)!==0||Pu(l,t,s)}c.memoizedState=s;var u={value:s,getSnapshot:t};return c.queue=u,Du(Mu.bind(null,l,u,e),[e]),l.flags|=2048,Ys(9,Tu.bind(null,l,u,s,t),void 0,null),s},useId:function(){var e=fn(),t=ut.identifierPrefix;if(Ge){var s=wn,l=xn;s=(l&~(1<<32-st(l)-1)).toString(32)+s,t=":"+t+"R"+s,s=Gs++,0<s&&(t+="H"+s.toString(32)),t+=":"}else s=Wh++,t=":"+t+"r"+s.toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},Hh={readContext:Ft,useCallback:Bu,useContext:Ft,useEffect:aa,useImperativeHandle:qu,useInsertionEffect:zu,useLayoutEffect:Wu,useMemo:Uu,useReducer:oa,useRef:$u,useState:function(){return oa(Qs)},useDebugValue:ca,useDeferredValue:function(e){var t=qt();return Hu(t,it.memoizedState,e)},useTransition:function(){var e=oa(Qs)[0],t=qt().memoizedState;return[e,t]},useMutableSource:Eu,useSyncExternalStore:Ru,useId:Vu,unstable_isNewReconciler:!1},Vh={readContext:Ft,useCallback:Bu,useContext:Ft,useEffect:aa,useImperativeHandle:qu,useInsertionEffect:zu,useLayoutEffect:Wu,useMemo:Uu,useReducer:la,useRef:$u,useState:function(){return la(Qs)},useDebugValue:ca,useDeferredValue:function(e){var t=qt();return it===null?t.memoizedState=e:Hu(t,it.memoizedState,e)},useTransition:function(){var e=la(Qs)[0],t=qt().memoizedState;return[e,t]},useMutableSource:Eu,useSyncExternalStore:Ru,useId:Vu,unstable_isNewReconciler:!1};function Jt(e,t){if(e&&e.defaultProps){t=B({},t),e=e.defaultProps;for(var s in e)t[s]===void 0&&(t[s]=e[s]);return t}return t}function ua(e,t,s,l){t=e.memoizedState,s=s(l,t),s=s==null?t:B({},t,s),e.memoizedState=s,e.lanes===0&&(e.updateQueue.baseState=s)}var so={isMounted:function(e){return(e=e._reactInternals)?cn(e)===e:!1},enqueueSetState:function(e,t,s){e=e._reactInternals;var l=St(),c=Yn(e),u=jn(l,c);u.payload=t,s!=null&&(u.callback=s),t=Vn(e,u,c),t!==null&&(tn(t,e,c,l),Yi(t,e,c))},enqueueReplaceState:function(e,t,s){e=e._reactInternals;var l=St(),c=Yn(e),u=jn(l,c);u.tag=1,u.payload=t,s!=null&&(u.callback=s),t=Vn(e,u,c),t!==null&&(tn(t,e,c,l),Yi(t,e,c))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var s=St(),l=Yn(e),c=jn(s,l);c.tag=2,t!=null&&(c.callback=t),t=Vn(e,c,l),t!==null&&(tn(t,e,l,s),Yi(t,e,l))}};function Yu(e,t,s,l,c,u,h){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(l,u,h):t.prototype&&t.prototype.isPureReactComponent?!As(s,l)||!As(c,u):!0}function Xu(e,t,s){var l=!1,c=Bn,u=t.contextType;return typeof u=="object"&&u!==null?u=Ft(u):(c=Nt(t)?ur:gt.current,l=t.contextTypes,u=(l=l!=null)?Ur(e,c):Bn),t=new t(s,u),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=so,e.stateNode=t,t._reactInternals=e,l&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=c,e.__reactInternalMemoizedMaskedChildContext=u),t}function Ju(e,t,s,l){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(s,l),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(s,l),t.state!==e&&so.enqueueReplaceState(t,t.state,null)}function da(e,t,s,l){var c=e.stateNode;c.props=s,c.state=e.memoizedState,c.refs={},Xl(e);var u=t.contextType;typeof u=="object"&&u!==null?c.context=Ft(u):(u=Nt(t)?ur:gt.current,c.context=Ur(e,u)),c.state=e.memoizedState,u=t.getDerivedStateFromProps,typeof u=="function"&&(ua(e,t,u,s),c.state=e.memoizedState),typeof t.getDerivedStateFromProps=="function"||typeof c.getSnapshotBeforeUpdate=="function"||typeof c.UNSAFE_componentWillMount!="function"&&typeof c.componentWillMount!="function"||(t=c.state,typeof c.componentWillMount=="function"&&c.componentWillMount(),typeof c.UNSAFE_componentWillMount=="function"&&c.UNSAFE_componentWillMount(),t!==c.state&&so.enqueueReplaceState(c,c.state,null),Xi(e,s,c,l),c.state=e.memoizedState),typeof c.componentDidMount=="function"&&(e.flags|=4194308)}function Jr(e,t){try{var s="",l=t;do s+=ke(l),l=l.return;while(l);var c=s}catch(u){c=`
|
|
8
|
+
Error generating stack: `+u.message+`
|
|
9
|
+
`+u.stack}return{value:e,source:t,stack:c,digest:null}}function fa(e,t,s){return{value:e,source:null,stack:s??null,digest:t??null}}function pa(e,t){try{console.error(t.value)}catch(s){setTimeout(function(){throw s})}}var Kh=typeof WeakMap=="function"?WeakMap:Map;function Zu(e,t,s){s=jn(-1,s),s.tag=3,s.payload={element:null};var l=t.value;return s.callback=function(){fo||(fo=!0,_a=l),pa(e,t)},s}function ed(e,t,s){s=jn(-1,s),s.tag=3;var l=e.type.getDerivedStateFromError;if(typeof l=="function"){var c=t.value;s.payload=function(){return l(c)},s.callback=function(){pa(e,t)}}var u=e.stateNode;return u!==null&&typeof u.componentDidCatch=="function"&&(s.callback=function(){pa(e,t),typeof l!="function"&&(Gn===null?Gn=new Set([this]):Gn.add(this));var h=t.stack;this.componentDidCatch(t.value,{componentStack:h!==null?h:""})}),s}function td(e,t,s){var l=e.pingCache;if(l===null){l=e.pingCache=new Kh;var c=new Set;l.set(t,c)}else c=l.get(t),c===void 0&&(c=new Set,l.set(t,c));c.has(s)||(c.add(s),e=lm.bind(null,e,t,s),t.then(e,e))}function nd(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function rd(e,t,s,l,c){return(e.mode&1)===0?(e===t?e.flags|=65536:(e.flags|=128,s.flags|=131072,s.flags&=-52805,s.tag===1&&(s.alternate===null?s.tag=17:(t=jn(-1,1),t.tag=2,Vn(s,t,1))),s.lanes|=1),e):(e.flags|=65536,e.lanes=c,e)}var Gh=J.ReactCurrentOwner,It=!1;function jt(e,t,s,l){t.child=e===null?Su(t,null,s,l):Gr(t,e.child,s,l)}function sd(e,t,s,l,c){s=s.render;var u=t.ref;return Yr(t,c),l=sa(e,t,s,l,u,c),s=ia(),e!==null&&!It?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~c,Sn(e,t,c)):(Ge&&s&&Fl(t),t.flags|=1,jt(e,t,l,c),t.child)}function id(e,t,s,l,c){if(e===null){var u=s.type;return typeof u=="function"&&!La(u)&&u.defaultProps===void 0&&s.compare===null&&s.defaultProps===void 0?(t.tag=15,t.type=u,od(e,t,u,l,c)):(e=yo(s.type,null,l,t,t.mode,c),e.ref=t.ref,e.return=t,t.child=e)}if(u=e.child,(e.lanes&c)===0){var h=u.memoizedProps;if(s=s.compare,s=s!==null?s:As,s(h,l)&&e.ref===t.ref)return Sn(e,t,c)}return t.flags|=1,e=Jn(u,l),e.ref=t.ref,e.return=t,t.child=e}function od(e,t,s,l,c){if(e!==null){var u=e.memoizedProps;if(As(u,l)&&e.ref===t.ref)if(It=!1,t.pendingProps=l=u,(e.lanes&c)!==0)(e.flags&131072)!==0&&(It=!0);else return t.lanes=e.lanes,Sn(e,t,c)}return ha(e,t,s,l,c)}function ld(e,t,s){var l=t.pendingProps,c=l.children,u=e!==null?e.memoizedState:null;if(l.mode==="hidden")if((t.mode&1)===0)t.memoizedState={baseLanes:0,cachePool:null,transitions:null},We(es,$t),$t|=s;else{if((s&1073741824)===0)return e=u!==null?u.baseLanes|s:s,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,We(es,$t),$t|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},l=u!==null?u.baseLanes:s,We(es,$t),$t|=l}else u!==null?(l=u.baseLanes|s,t.memoizedState=null):l=s,We(es,$t),$t|=l;return jt(e,t,c,s),t.child}function ad(e,t){var s=t.ref;(e===null&&s!==null||e!==null&&e.ref!==s)&&(t.flags|=512,t.flags|=2097152)}function ha(e,t,s,l,c){var u=Nt(s)?ur:gt.current;return u=Ur(t,u),Yr(t,c),s=sa(e,t,s,l,u,c),l=ia(),e!==null&&!It?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~c,Sn(e,t,c)):(Ge&&l&&Fl(t),t.flags|=1,jt(e,t,s,c),t.child)}function cd(e,t,s,l,c){if(Nt(s)){var u=!0;qi(t)}else u=!1;if(Yr(t,c),t.stateNode===null)oo(e,t),Xu(t,s,l),da(t,s,l,c),l=!0;else if(e===null){var h=t.stateNode,y=t.memoizedProps;h.props=y;var j=h.context,T=s.contextType;typeof T=="object"&&T!==null?T=Ft(T):(T=Nt(s)?ur:gt.current,T=Ur(t,T));var H=s.getDerivedStateFromProps,K=typeof H=="function"||typeof h.getSnapshotBeforeUpdate=="function";K||typeof h.UNSAFE_componentWillReceiveProps!="function"&&typeof h.componentWillReceiveProps!="function"||(y!==l||j!==T)&&Ju(t,h,l,T),Hn=!1;var U=t.memoizedState;h.state=U,Xi(t,l,h,c),j=t.memoizedState,y!==l||U!==j||bt.current||Hn?(typeof H=="function"&&(ua(t,s,H,l),j=t.memoizedState),(y=Hn||Yu(t,s,y,l,U,j,T))?(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"&&(t.flags|=4194308)):(typeof h.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=l,t.memoizedState=j),h.props=l,h.state=j,h.context=T,l=y):(typeof h.componentDidMount=="function"&&(t.flags|=4194308),l=!1)}else{h=t.stateNode,bu(e,t),y=t.memoizedProps,T=t.type===t.elementType?y:Jt(t.type,y),h.props=T,K=t.pendingProps,U=h.context,j=s.contextType,typeof j=="object"&&j!==null?j=Ft(j):(j=Nt(s)?ur:gt.current,j=Ur(t,j));var le=s.getDerivedStateFromProps;(H=typeof le=="function"||typeof h.getSnapshotBeforeUpdate=="function")||typeof h.UNSAFE_componentWillReceiveProps!="function"&&typeof h.componentWillReceiveProps!="function"||(y!==K||U!==j)&&Ju(t,h,l,j),Hn=!1,U=t.memoizedState,h.state=U,Xi(t,l,h,c);var fe=t.memoizedState;y!==K||U!==fe||bt.current||Hn?(typeof le=="function"&&(ua(t,s,le,l),fe=t.memoizedState),(T=Hn||Yu(t,s,T,l,U,fe,j)||!1)?(H||typeof h.UNSAFE_componentWillUpdate!="function"&&typeof h.componentWillUpdate!="function"||(typeof h.componentWillUpdate=="function"&&h.componentWillUpdate(l,fe,j),typeof h.UNSAFE_componentWillUpdate=="function"&&h.UNSAFE_componentWillUpdate(l,fe,j)),typeof h.componentDidUpdate=="function"&&(t.flags|=4),typeof h.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof h.componentDidUpdate!="function"||y===e.memoizedProps&&U===e.memoizedState||(t.flags|=4),typeof h.getSnapshotBeforeUpdate!="function"||y===e.memoizedProps&&U===e.memoizedState||(t.flags|=1024),t.memoizedProps=l,t.memoizedState=fe),h.props=l,h.state=fe,h.context=j,l=T):(typeof h.componentDidUpdate!="function"||y===e.memoizedProps&&U===e.memoizedState||(t.flags|=4),typeof h.getSnapshotBeforeUpdate!="function"||y===e.memoizedProps&&U===e.memoizedState||(t.flags|=1024),l=!1)}return ma(e,t,s,l,u,c)}function ma(e,t,s,l,c,u){ad(e,t);var h=(t.flags&128)!==0;if(!l&&!h)return c&&hu(t,s,!1),Sn(e,t,u);l=t.stateNode,Gh.current=t;var y=h&&typeof s.getDerivedStateFromError!="function"?null:l.render();return t.flags|=1,e!==null&&h?(t.child=Gr(t,e.child,null,u),t.child=Gr(t,null,y,u)):jt(e,t,y,u),t.memoizedState=l.state,c&&hu(t,s,!0),t.child}function ud(e){var t=e.stateNode;t.pendingContext?fu(e,t.pendingContext,t.pendingContext!==t.context):t.context&&fu(e,t.context,!1),Jl(e,t.containerInfo)}function dd(e,t,s,l,c){return Kr(),Hl(c),t.flags|=256,jt(e,t,s,l),t.child}var ga={dehydrated:null,treeContext:null,retryLane:0};function va(e){return{baseLanes:e,cachePool:null,transitions:null}}function fd(e,t,s){var l=t.pendingProps,c=Qe.current,u=!1,h=(t.flags&128)!==0,y;if((y=h)||(y=e!==null&&e.memoizedState===null?!1:(c&2)!==0),y?(u=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(c|=1),We(Qe,c&1),e===null)return Ul(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?((t.mode&1)===0?t.lanes=1:e.data==="$!"?t.lanes=8:t.lanes=1073741824,null):(h=l.children,e=l.fallback,u?(l=t.mode,u=t.child,h={mode:"hidden",children:h},(l&1)===0&&u!==null?(u.childLanes=0,u.pendingProps=h):u=xo(h,l,0,null),e=wr(e,l,s,null),u.return=t,e.return=t,u.sibling=e,t.child=u,t.child.memoizedState=va(s),t.memoizedState=ga,e):ya(t,h));if(c=e.memoizedState,c!==null&&(y=c.dehydrated,y!==null))return Qh(e,t,h,l,y,c,s);if(u){u=l.fallback,h=t.mode,c=e.child,y=c.sibling;var j={mode:"hidden",children:l.children};return(h&1)===0&&t.child!==c?(l=t.child,l.childLanes=0,l.pendingProps=j,t.deletions=null):(l=Jn(c,j),l.subtreeFlags=c.subtreeFlags&14680064),y!==null?u=Jn(y,u):(u=wr(u,h,s,null),u.flags|=2),u.return=t,l.return=t,l.sibling=u,t.child=l,l=u,u=t.child,h=e.child.memoizedState,h=h===null?va(s):{baseLanes:h.baseLanes|s,cachePool:null,transitions:h.transitions},u.memoizedState=h,u.childLanes=e.childLanes&~s,t.memoizedState=ga,l}return u=e.child,e=u.sibling,l=Jn(u,{mode:"visible",children:l.children}),(t.mode&1)===0&&(l.lanes=s),l.return=t,l.sibling=null,e!==null&&(s=t.deletions,s===null?(t.deletions=[e],t.flags|=16):s.push(e)),t.child=l,t.memoizedState=null,l}function ya(e,t){return t=xo({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function io(e,t,s,l){return l!==null&&Hl(l),Gr(t,e.child,null,s),e=ya(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Qh(e,t,s,l,c,u,h){if(s)return t.flags&256?(t.flags&=-257,l=fa(Error(o(422))),io(e,t,h,l)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(u=l.fallback,c=t.mode,l=xo({mode:"visible",children:l.children},c,0,null),u=wr(u,c,h,null),u.flags|=2,l.return=t,u.return=t,l.sibling=u,t.child=l,(t.mode&1)!==0&&Gr(t,e.child,null,h),t.child.memoizedState=va(h),t.memoizedState=ga,u);if((t.mode&1)===0)return io(e,t,h,null);if(c.data==="$!"){if(l=c.nextSibling&&c.nextSibling.dataset,l)var y=l.dgst;return l=y,u=Error(o(419)),l=fa(u,l,void 0),io(e,t,h,l)}if(y=(h&e.childLanes)!==0,It||y){if(l=ut,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,kn(e,c),tn(l,e,c,-1))}return Oa(),l=fa(Error(o(421))),io(e,t,h,l)}return c.data==="$?"?(t.flags|=128,t.child=e.child,t=am.bind(null,e),c._reactRetry=t,null):(e=u.treeContext,At=Fn(c.nextSibling),Lt=t,Ge=!0,Xt=null,e!==null&&(zt[Wt++]=xn,zt[Wt++]=wn,zt[Wt++]=dr,xn=e.id,wn=e.overflow,dr=t),t=ya(t,l.children),t.flags|=4096,t)}function pd(e,t,s){e.lanes|=t;var l=e.alternate;l!==null&&(l.lanes|=t),Ql(e.return,t,s)}function xa(e,t,s,l,c){var u=e.memoizedState;u===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:l,tail:s,tailMode:c}:(u.isBackwards=t,u.rendering=null,u.renderingStartTime=0,u.last=l,u.tail=s,u.tailMode=c)}function hd(e,t,s){var l=t.pendingProps,c=l.revealOrder,u=l.tail;if(jt(e,t,l.children,s),l=Qe.current,(l&2)!==0)l=l&1|2,t.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&pd(e,s,t);else if(e.tag===19)pd(e,s,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}l&=1}if(We(Qe,l),(t.mode&1)===0)t.memoizedState=null;else switch(c){case"forwards":for(s=t.child,c=null;s!==null;)e=s.alternate,e!==null&&Ji(e)===null&&(c=s),s=s.sibling;s=c,s===null?(c=t.child,t.child=null):(c=s.sibling,s.sibling=null),xa(t,!1,c,s,u);break;case"backwards":for(s=null,c=t.child,t.child=null;c!==null;){if(e=c.alternate,e!==null&&Ji(e)===null){t.child=c;break}e=c.sibling,c.sibling=s,s=c,c=e}xa(t,!0,s,null,u);break;case"together":xa(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function oo(e,t){(t.mode&1)===0&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Sn(e,t,s){if(e!==null&&(t.dependencies=e.dependencies),gr|=t.lanes,(s&t.childLanes)===0)return null;if(e!==null&&t.child!==e.child)throw Error(o(153));if(t.child!==null){for(e=t.child,s=Jn(e,e.pendingProps),t.child=s,s.return=t;e.sibling!==null;)e=e.sibling,s=s.sibling=Jn(e,e.pendingProps),s.return=t;s.sibling=null}return t.child}function Yh(e,t,s){switch(t.tag){case 3:ud(t),Kr();break;case 5:_u(t);break;case 1:Nt(t.type)&&qi(t);break;case 4:Jl(t,t.stateNode.containerInfo);break;case 10:var l=t.type._context,c=t.memoizedProps.value;We(Gi,l._currentValue),l._currentValue=c;break;case 13:if(l=t.memoizedState,l!==null)return l.dehydrated!==null?(We(Qe,Qe.current&1),t.flags|=128,null):(s&t.child.childLanes)!==0?fd(e,t,s):(We(Qe,Qe.current&1),e=Sn(e,t,s),e!==null?e.sibling:null);We(Qe,Qe.current&1);break;case 19:if(l=(s&t.childLanes)!==0,(e.flags&128)!==0){if(l)return hd(e,t,s);t.flags|=128}if(c=t.memoizedState,c!==null&&(c.rendering=null,c.tail=null,c.lastEffect=null),We(Qe,Qe.current),l)break;return null;case 22:case 23:return t.lanes=0,ld(e,t,s)}return Sn(e,t,s)}var md,wa,gd,vd;md=function(e,t){for(var s=t.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===t)break;for(;s.sibling===null;){if(s.return===null||s.return===t)return;s=s.return}s.sibling.return=s.return,s=s.sibling}},wa=function(){},gd=function(e,t,s,l){var c=e.memoizedProps;if(c!==l){e=t.stateNode,hr(dn.current);var u=null;switch(s){case"input":c=lt(e,c),l=lt(e,l),u=[];break;case"select":c=B({},c,{value:void 0}),l=B({},l,{value:void 0}),u=[];break;case"textarea":c=Pn(e,c),l=Pn(e,l),u=[];break;default:typeof c.onClick!="function"&&typeof l.onClick=="function"&&(e.onclick=zi)}ln(s,l);var h;s=null;for(T in c)if(!l.hasOwnProperty(T)&&c.hasOwnProperty(T)&&c[T]!=null)if(T==="style"){var y=c[T];for(h in y)y.hasOwnProperty(h)&&(s||(s={}),s[h]="")}else T!=="dangerouslySetInnerHTML"&&T!=="children"&&T!=="suppressContentEditableWarning"&&T!=="suppressHydrationWarning"&&T!=="autoFocus"&&(d.hasOwnProperty(T)?u||(u=[]):(u=u||[]).push(T,null));for(T in l){var j=l[T];if(y=c?.[T],l.hasOwnProperty(T)&&j!==y&&(j!=null||y!=null))if(T==="style")if(y){for(h in y)!y.hasOwnProperty(h)||j&&j.hasOwnProperty(h)||(s||(s={}),s[h]="");for(h in j)j.hasOwnProperty(h)&&y[h]!==j[h]&&(s||(s={}),s[h]=j[h])}else s||(u||(u=[]),u.push(T,s)),s=j;else T==="dangerouslySetInnerHTML"?(j=j?j.__html:void 0,y=y?y.__html:void 0,j!=null&&y!==j&&(u=u||[]).push(T,j)):T==="children"?typeof j!="string"&&typeof j!="number"||(u=u||[]).push(T,""+j):T!=="suppressContentEditableWarning"&&T!=="suppressHydrationWarning"&&(d.hasOwnProperty(T)?(j!=null&&T==="onScroll"&&Be("scroll",e),u||y===j||(u=[])):(u=u||[]).push(T,j))}s&&(u=u||[]).push("style",s);var T=u;(t.updateQueue=T)&&(t.flags|=4)}},vd=function(e,t,s,l){s!==l&&(t.flags|=4)};function Xs(e,t){if(!Ge)switch(e.tailMode){case"hidden":t=e.tail;for(var s=null;t!==null;)t.alternate!==null&&(s=t),t=t.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?t||e.tail===null?e.tail=null:e.tail.sibling=null:l.sibling=null}}function yt(e){var t=e.alternate!==null&&e.alternate.child===e.child,s=0,l=0;if(t)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,t}function Xh(e,t,s){var l=t.pendingProps;switch(ql(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return yt(t),null;case 1:return Nt(t.type)&&Fi(),yt(t),null;case 3:return l=t.stateNode,Xr(),Ue(bt),Ue(gt),ta(),l.pendingContext&&(l.context=l.pendingContext,l.pendingContext=null),(e===null||e.child===null)&&(Vi(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,Xt!==null&&(Pa(Xt),Xt=null))),wa(e,t),yt(t),null;case 5:Zl(t);var c=hr(Vs.current);if(s=t.type,e!==null&&t.stateNode!=null)gd(e,t,s,l,c),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!l){if(t.stateNode===null)throw Error(o(166));return yt(t),null}if(e=hr(dn.current),Vi(t)){l=t.stateNode,s=t.type;var u=t.memoizedProps;switch(l[un]=t,l[Fs]=u,e=(t.mode&1)!==0,s){case"dialog":Be("cancel",l),Be("close",l);break;case"iframe":case"object":case"embed":Be("load",l);break;case"video":case"audio":for(c=0;c<Ds.length;c++)Be(Ds[c],l);break;case"source":Be("error",l);break;case"img":case"image":case"link":Be("error",l),Be("load",l);break;case"details":Be("toggle",l);break;case"input":wt(l,u),Be("invalid",l);break;case"select":l._wrapperState={wasMultiple:!!u.multiple},Be("invalid",l);break;case"textarea":nr(l,u),Be("invalid",l)}ln(s,u),c=null;for(var h in u)if(u.hasOwnProperty(h)){var y=u[h];h==="children"?typeof y=="string"?l.textContent!==y&&(u.suppressHydrationWarning!==!0&&Di(l.textContent,y,e),c=["children",y]):typeof y=="number"&&l.textContent!==""+y&&(u.suppressHydrationWarning!==!0&&Di(l.textContent,y,e),c=["children",""+y]):d.hasOwnProperty(h)&&y!=null&&h==="onScroll"&&Be("scroll",l)}switch(s){case"input":He(l),Ee(l,u,!0);break;case"textarea":He(l),kt(l);break;case"select":case"option":break;default:typeof u.onClick=="function"&&(l.onclick=zi)}l=c,t.updateQueue=l,l!==null&&(t.flags|=4)}else{h=c.nodeType===9?c:c.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=sr(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[un]=t,e[Fs]=l,md(e,t,!1,!1),t.stateNode=e;e:{switch(h=an(s,l),s){case"dialog":Be("cancel",e),Be("close",e),c=l;break;case"iframe":case"object":case"embed":Be("load",e),c=l;break;case"video":case"audio":for(c=0;c<Ds.length;c++)Be(Ds[c],e);c=l;break;case"source":Be("error",e),c=l;break;case"img":case"image":case"link":Be("error",e),Be("load",e),c=l;break;case"details":Be("toggle",e),c=l;break;case"input":wt(e,l),c=lt(e,l),Be("invalid",e);break;case"option":c=l;break;case"select":e._wrapperState={wasMultiple:!!l.multiple},c=B({},l,{value:void 0}),Be("invalid",e);break;case"textarea":nr(e,l),c=Pn(e,l),Be("invalid",e);break;default:c=l}ln(s,c),y=c;for(u in y)if(y.hasOwnProperty(u)){var j=y[u];u==="style"?qe(e,j):u==="dangerouslySetInnerHTML"?(j=j?j.__html:void 0,j!=null&&Mn(e,j)):u==="children"?typeof j=="string"?(s!=="textarea"||j!=="")&&on(e,j):typeof j=="number"&&on(e,""+j):u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&u!=="autoFocus"&&(d.hasOwnProperty(u)?j!=null&&u==="onScroll"&&Be("scroll",e):j!=null&&oe(e,u,j,h))}switch(s){case"input":He(e),Ee(e,l,!1);break;case"textarea":He(e),kt(e);break;case"option":l.value!=null&&e.setAttribute("value",""+Se(l.value));break;case"select":e.multiple=!!l.multiple,u=l.value,u!=null?Ct(e,!!l.multiple,u,!1):l.defaultValue!=null&&Ct(e,!!l.multiple,l.defaultValue,!0);break;default:typeof c.onClick=="function"&&(e.onclick=zi)}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&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return yt(t),null;case 6:if(e&&t.stateNode!=null)vd(e,t,e.memoizedProps,l);else{if(typeof l!="string"&&t.stateNode===null)throw Error(o(166));if(s=hr(Vs.current),hr(dn.current),Vi(t)){if(l=t.stateNode,s=t.memoizedProps,l[un]=t,(u=l.nodeValue!==s)&&(e=Lt,e!==null))switch(e.tag){case 3:Di(l.nodeValue,s,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&Di(l.nodeValue,s,(e.mode&1)!==0)}u&&(t.flags|=4)}else l=(s.nodeType===9?s:s.ownerDocument).createTextNode(l),l[un]=t,t.stateNode=l}return yt(t),null;case 13:if(Ue(Qe),l=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(Ge&&At!==null&&(t.mode&1)!==0&&(t.flags&128)===0)wu(),Kr(),t.flags|=98560,u=!1;else if(u=Vi(t),l!==null&&l.dehydrated!==null){if(e===null){if(!u)throw Error(o(318));if(u=t.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(o(317));u[un]=t}else Kr(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;yt(t),u=!1}else Xt!==null&&(Pa(Xt),Xt=null),u=!0;if(!u)return t.flags&65536?t:null}return(t.flags&128)!==0?(t.lanes=s,t):(l=l!==null,l!==(e!==null&&e.memoizedState!==null)&&l&&(t.child.flags|=8192,(t.mode&1)!==0&&(e===null||(Qe.current&1)!==0?ot===0&&(ot=3):Oa())),t.updateQueue!==null&&(t.flags|=4),yt(t),null);case 4:return Xr(),wa(e,t),e===null&&zs(t.stateNode.containerInfo),yt(t),null;case 10:return Gl(t.type._context),yt(t),null;case 17:return Nt(t.type)&&Fi(),yt(t),null;case 19:if(Ue(Qe),u=t.memoizedState,u===null)return yt(t),null;if(l=(t.flags&128)!==0,h=u.rendering,h===null)if(l)Xs(u,!1);else{if(ot!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(h=Ji(e),h!==null){for(t.flags|=128,Xs(u,!1),l=h.updateQueue,l!==null&&(t.updateQueue=l,t.flags|=4),t.subtreeFlags=0,l=s,s=t.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 We(Qe,Qe.current&1|2),t.child}e=e.sibling}u.tail!==null&&Ve()>ts&&(t.flags|=128,l=!0,Xs(u,!1),t.lanes=4194304)}else{if(!l)if(e=Ji(h),e!==null){if(t.flags|=128,l=!0,s=e.updateQueue,s!==null&&(t.updateQueue=s,t.flags|=4),Xs(u,!0),u.tail===null&&u.tailMode==="hidden"&&!h.alternate&&!Ge)return yt(t),null}else 2*Ve()-u.renderingStartTime>ts&&s!==1073741824&&(t.flags|=128,l=!0,Xs(u,!1),t.lanes=4194304);u.isBackwards?(h.sibling=t.child,t.child=h):(s=u.last,s!==null?s.sibling=h:t.child=h,u.last=h)}return u.tail!==null?(t=u.tail,u.rendering=t,u.tail=t.sibling,u.renderingStartTime=Ve(),t.sibling=null,s=Qe.current,We(Qe,l?s&1|2:s&1),t):(yt(t),null);case 22:case 23:return Ma(),l=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==l&&(t.flags|=8192),l&&(t.mode&1)!==0?($t&1073741824)!==0&&(yt(t),t.subtreeFlags&6&&(t.flags|=8192)):yt(t),null;case 24:return null;case 25:return null}throw Error(o(156,t.tag))}function Jh(e,t){switch(ql(t),t.tag){case 1:return Nt(t.type)&&Fi(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Xr(),Ue(bt),Ue(gt),ta(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return Zl(t),null;case 13:if(Ue(Qe),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(o(340));Kr()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Ue(Qe),null;case 4:return Xr(),null;case 10:return Gl(t.type._context),null;case 22:case 23:return Ma(),null;case 24:return null;default:return null}}var lo=!1,xt=!1,Zh=typeof WeakSet=="function"?WeakSet:Set,ue=null;function Zr(e,t){var s=e.ref;if(s!==null)if(typeof s=="function")try{s(null)}catch(l){Xe(e,t,l)}else s.current=null}function ka(e,t,s){try{s()}catch(l){Xe(e,t,l)}}var yd=!1;function em(e,t){if(Ml=Ii,e=Yc(),bl(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,y=-1,j=-1,T=0,H=0,K=e,U=null;t:for(;;){for(var le;K!==s||c!==0&&K.nodeType!==3||(y=h+c),K!==u||l!==0&&K.nodeType!==3||(j=h+l),K.nodeType===3&&(h+=K.nodeValue.length),(le=K.firstChild)!==null;)U=K,K=le;for(;;){if(K===e)break t;if(U===s&&++T===c&&(y=h),U===u&&++H===l&&(j=h),(le=K.nextSibling)!==null)break;K=U,U=K.parentNode}K=le}s=y===-1||j===-1?null:{start:y,end:j}}else s=null}s=s||{start:0,end:0}}else s=null;for(Ol={focusedElem:e,selectionRange:s},Ii=!1,ue=t;ue!==null;)if(t=ue,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,ue=e;else for(;ue!==null;){t=ue;try{var fe=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(fe!==null){var me=fe.memoizedProps,Je=fe.memoizedState,I=t.stateNode,S=I.getSnapshotBeforeUpdate(t.elementType===t.type?me:Jt(t.type,me),Je);I.__reactInternalSnapshotBeforeUpdate=S}break;case 3:var E=t.stateNode.containerInfo;E.nodeType===1?E.textContent="":E.nodeType===9&&E.documentElement&&E.removeChild(E.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(o(163))}}catch(X){Xe(t,t.return,X)}if(e=t.sibling,e!==null){e.return=t.return,ue=e;break}ue=t.return}return fe=yd,yd=!1,fe}function Js(e,t,s){var l=t.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&&ka(t,s,u)}c=c.next}while(c!==l)}}function ao(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var s=t=t.next;do{if((s.tag&e)===e){var l=s.create;s.destroy=l()}s=s.next}while(s!==t)}}function ja(e){var t=e.ref;if(t!==null){var s=e.stateNode;e.tag,e=s,typeof t=="function"?t(e):t.current=e}}function xd(e){var t=e.alternate;t!==null&&(e.alternate=null,xd(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[un],delete t[Fs],delete t[Dl],delete t[Ah],delete t[$h])),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 wd(e){return e.tag===5||e.tag===3||e.tag===4}function kd(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||wd(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.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 Sa(e,t,s){var l=e.tag;if(l===5||l===6)e=e.stateNode,t?s.nodeType===8?s.parentNode.insertBefore(e,t):s.insertBefore(e,t):(s.nodeType===8?(t=s.parentNode,t.insertBefore(e,s)):(t=s,t.appendChild(e)),s=s._reactRootContainer,s!=null||t.onclick!==null||(t.onclick=zi));else if(l!==4&&(e=e.child,e!==null))for(Sa(e,t,s),e=e.sibling;e!==null;)Sa(e,t,s),e=e.sibling}function Ca(e,t,s){var l=e.tag;if(l===5||l===6)e=e.stateNode,t?s.insertBefore(e,t):s.appendChild(e);else if(l!==4&&(e=e.child,e!==null))for(Ca(e,t,s),e=e.sibling;e!==null;)Ca(e,t,s),e=e.sibling}var ht=null,Zt=!1;function Kn(e,t,s){for(s=s.child;s!==null;)jd(e,t,s),s=s.sibling}function jd(e,t,s){if(Ke&&typeof Ke.onCommitFiberUnmount=="function")try{Ke.onCommitFiberUnmount($e,s)}catch{}switch(s.tag){case 5:xt||Zr(s,t);case 6:var l=ht,c=Zt;ht=null,Kn(e,t,s),ht=l,Zt=c,ht!==null&&(Zt?(e=ht,s=s.stateNode,e.nodeType===8?e.parentNode.removeChild(s):e.removeChild(s)):ht.removeChild(s.stateNode));break;case 18:ht!==null&&(Zt?(e=ht,s=s.stateNode,e.nodeType===8?$l(e.parentNode,s):e.nodeType===1&&$l(e,s),Rs(e)):$l(ht,s.stateNode));break;case 4:l=ht,c=Zt,ht=s.stateNode.containerInfo,Zt=!0,Kn(e,t,s),ht=l,Zt=c;break;case 0:case 11:case 14:case 15:if(!xt&&(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)&&ka(s,t,h),c=c.next}while(c!==l)}Kn(e,t,s);break;case 1:if(!xt&&(Zr(s,t),l=s.stateNode,typeof l.componentWillUnmount=="function"))try{l.props=s.memoizedProps,l.state=s.memoizedState,l.componentWillUnmount()}catch(y){Xe(s,t,y)}Kn(e,t,s);break;case 21:Kn(e,t,s);break;case 22:s.mode&1?(xt=(l=xt)||s.memoizedState!==null,Kn(e,t,s),xt=l):Kn(e,t,s);break;default:Kn(e,t,s)}}function Sd(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var s=e.stateNode;s===null&&(s=e.stateNode=new Zh),t.forEach(function(l){var c=cm.bind(null,e,l);s.has(l)||(s.add(l),l.then(c,c))})}}function en(e,t){var s=t.deletions;if(s!==null)for(var l=0;l<s.length;l++){var c=s[l];try{var u=e,h=t,y=h;e:for(;y!==null;){switch(y.tag){case 5:ht=y.stateNode,Zt=!1;break e;case 3:ht=y.stateNode.containerInfo,Zt=!0;break e;case 4:ht=y.stateNode.containerInfo,Zt=!0;break e}y=y.return}if(ht===null)throw Error(o(160));jd(u,h,c),ht=null,Zt=!1;var j=c.alternate;j!==null&&(j.return=null),c.return=null}catch(T){Xe(c,t,T)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)Cd(t,e),t=t.sibling}function Cd(e,t){var s=e.alternate,l=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(en(t,e),pn(e),l&4){try{Js(3,e,e.return),ao(3,e)}catch(me){Xe(e,e.return,me)}try{Js(5,e,e.return)}catch(me){Xe(e,e.return,me)}}break;case 1:en(t,e),pn(e),l&512&&s!==null&&Zr(s,s.return);break;case 5:if(en(t,e),pn(e),l&512&&s!==null&&Zr(s,s.return),e.flags&32){var c=e.stateNode;try{on(c,"")}catch(me){Xe(e,e.return,me)}}if(l&4&&(c=e.stateNode,c!=null)){var u=e.memoizedProps,h=s!==null?s.memoizedProps:u,y=e.type,j=e.updateQueue;if(e.updateQueue=null,j!==null)try{y==="input"&&u.type==="radio"&&u.name!=null&&pt(c,u),an(y,h);var T=an(y,u);for(h=0;h<j.length;h+=2){var H=j[h],K=j[h+1];H==="style"?qe(c,K):H==="dangerouslySetInnerHTML"?Mn(c,K):H==="children"?on(c,K):oe(c,H,K,T)}switch(y){case"input":F(c,u);break;case"textarea":rr(c,u);break;case"select":var U=c._wrapperState.wasMultiple;c._wrapperState.wasMultiple=!!u.multiple;var le=u.value;le!=null?Ct(c,!!u.multiple,le,!1):U!==!!u.multiple&&(u.defaultValue!=null?Ct(c,!!u.multiple,u.defaultValue,!0):Ct(c,!!u.multiple,u.multiple?[]:"",!1))}c[Fs]=u}catch(me){Xe(e,e.return,me)}}break;case 6:if(en(t,e),pn(e),l&4){if(e.stateNode===null)throw Error(o(162));c=e.stateNode,u=e.memoizedProps;try{c.nodeValue=u}catch(me){Xe(e,e.return,me)}}break;case 3:if(en(t,e),pn(e),l&4&&s!==null&&s.memoizedState.isDehydrated)try{Rs(t.containerInfo)}catch(me){Xe(e,e.return,me)}break;case 4:en(t,e),pn(e);break;case 13:en(t,e),pn(e),c=e.child,c.flags&8192&&(u=c.memoizedState!==null,c.stateNode.isHidden=u,!u||c.alternate!==null&&c.alternate.memoizedState!==null||(Ia=Ve())),l&4&&Sd(e);break;case 22:if(H=s!==null&&s.memoizedState!==null,e.mode&1?(xt=(T=xt)||H,en(t,e),xt=T):en(t,e),pn(e),l&8192){if(T=e.memoizedState!==null,(e.stateNode.isHidden=T)&&!H&&(e.mode&1)!==0)for(ue=e,H=e.child;H!==null;){for(K=ue=H;ue!==null;){switch(U=ue,le=U.child,U.tag){case 0:case 11:case 14:case 15:Js(4,U,U.return);break;case 1:Zr(U,U.return);var fe=U.stateNode;if(typeof fe.componentWillUnmount=="function"){l=U,s=U.return;try{t=l,fe.props=t.memoizedProps,fe.state=t.memoizedState,fe.componentWillUnmount()}catch(me){Xe(l,s,me)}}break;case 5:Zr(U,U.return);break;case 22:if(U.memoizedState!==null){Id(K);continue}}le!==null?(le.return=U,ue=le):Id(K)}H=H.sibling}e:for(H=null,K=e;;){if(K.tag===5){if(H===null){H=K;try{c=K.stateNode,T?(u=c.style,typeof u.setProperty=="function"?u.setProperty("display","none","important"):u.display="none"):(y=K.stateNode,j=K.memoizedProps.style,h=j!=null&&j.hasOwnProperty("display")?j.display:null,y.style.display=Re("display",h))}catch(me){Xe(e,e.return,me)}}}else if(K.tag===6){if(H===null)try{K.stateNode.nodeValue=T?"":K.memoizedProps}catch(me){Xe(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;H===K&&(H=null),K=K.return}H===K&&(H=null),K.sibling.return=K.return,K=K.sibling}}break;case 19:en(t,e),pn(e),l&4&&Sd(e);break;case 21:break;default:en(t,e),pn(e)}}function pn(e){var t=e.flags;if(t&2){try{e:{for(var s=e.return;s!==null;){if(wd(s)){var l=s;break e}s=s.return}throw Error(o(160))}switch(l.tag){case 5:var c=l.stateNode;l.flags&32&&(on(c,""),l.flags&=-33);var u=kd(e);Ca(e,u,c);break;case 3:case 4:var h=l.stateNode.containerInfo,y=kd(e);Sa(e,y,h);break;default:throw Error(o(161))}}catch(j){Xe(e,e.return,j)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function tm(e,t,s){ue=e,bd(e)}function bd(e,t,s){for(var l=(e.mode&1)!==0;ue!==null;){var c=ue,u=c.child;if(c.tag===22&&l){var h=c.memoizedState!==null||lo;if(!h){var y=c.alternate,j=y!==null&&y.memoizedState!==null||xt;y=lo;var T=xt;if(lo=h,(xt=j)&&!T)for(ue=c;ue!==null;)h=ue,j=h.child,h.tag===22&&h.memoizedState!==null?_d(c):j!==null?(j.return=h,ue=j):_d(c);for(;u!==null;)ue=u,bd(u),u=u.sibling;ue=c,lo=y,xt=T}Nd(e)}else(c.subtreeFlags&8772)!==0&&u!==null?(u.return=c,ue=u):Nd(e)}}function Nd(e){for(;ue!==null;){var t=ue;if((t.flags&8772)!==0){var s=t.alternate;try{if((t.flags&8772)!==0)switch(t.tag){case 0:case 11:case 15:xt||ao(5,t);break;case 1:var l=t.stateNode;if(t.flags&4&&!xt)if(s===null)l.componentDidMount();else{var c=t.elementType===t.type?s.memoizedProps:Jt(t.type,s.memoizedProps);l.componentDidUpdate(c,s.memoizedState,l.__reactInternalSnapshotBeforeUpdate)}var u=t.updateQueue;u!==null&&Iu(t,u,l);break;case 3:var h=t.updateQueue;if(h!==null){if(s=null,t.child!==null)switch(t.child.tag){case 5:s=t.child.stateNode;break;case 1:s=t.child.stateNode}Iu(t,h,s)}break;case 5:var y=t.stateNode;if(s===null&&t.flags&4){s=y;var j=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":j.autoFocus&&s.focus();break;case"img":j.src&&(s.src=j.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var T=t.alternate;if(T!==null){var H=T.memoizedState;if(H!==null){var K=H.dehydrated;K!==null&&Rs(K)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(o(163))}xt||t.flags&512&&ja(t)}catch(U){Xe(t,t.return,U)}}if(t===e){ue=null;break}if(s=t.sibling,s!==null){s.return=t.return,ue=s;break}ue=t.return}}function Id(e){for(;ue!==null;){var t=ue;if(t===e){ue=null;break}var s=t.sibling;if(s!==null){s.return=t.return,ue=s;break}ue=t.return}}function _d(e){for(;ue!==null;){var t=ue;try{switch(t.tag){case 0:case 11:case 15:var s=t.return;try{ao(4,t)}catch(j){Xe(t,s,j)}break;case 1:var l=t.stateNode;if(typeof l.componentDidMount=="function"){var c=t.return;try{l.componentDidMount()}catch(j){Xe(t,c,j)}}var u=t.return;try{ja(t)}catch(j){Xe(t,u,j)}break;case 5:var h=t.return;try{ja(t)}catch(j){Xe(t,h,j)}}}catch(j){Xe(t,t.return,j)}if(t===e){ue=null;break}var y=t.sibling;if(y!==null){y.return=t.return,ue=y;break}ue=t.return}}var nm=Math.ceil,co=J.ReactCurrentDispatcher,ba=J.ReactCurrentOwner,Bt=J.ReactCurrentBatchConfig,Oe=0,ut=null,nt=null,mt=0,$t=0,es=qn(0),ot=0,Zs=null,gr=0,uo=0,Na=0,ei=null,_t=null,Ia=0,ts=1/0,Cn=null,fo=!1,_a=null,Gn=null,po=!1,Qn=null,ho=0,ti=0,Ea=null,mo=-1,go=0;function St(){return(Oe&6)!==0?Ve():mo!==-1?mo:mo=Ve()}function Yn(e){return(e.mode&1)===0?1:(Oe&2)!==0&&mt!==0?mt&-mt:zh.transition!==null?(go===0&&(go=kc()),go):(e=De,e!==0||(e=window.event,e=e===void 0?16:Rc(e.type)),e)}function tn(e,t,s,l){if(50<ti)throw ti=0,Ea=null,Error(o(185));bs(e,s,l),((Oe&2)===0||e!==ut)&&(e===ut&&((Oe&2)===0&&(uo|=s),ot===4&&Xn(e,mt)),Et(e,l),s===1&&Oe===0&&(t.mode&1)===0&&(ts=Ve()+500,Bi&&Un()))}function Et(e,t){var s=e.callbackNode;Ci(e,t);var l=ar(e,e===ut?mt:0);if(l===0)s!==null&&Cs(s),e.callbackNode=null,e.callbackPriority=0;else if(t=l&-l,e.callbackPriority!==t){if(s!=null&&Cs(s),t===1)e.tag===0?Dh(Rd.bind(null,e)):mu(Rd.bind(null,e)),Oh(function(){(Oe&6)===0&&Un()}),s=null;else{switch(jc(l)){case 1:s=k;break;case 4:s=b;break;case 16:s=D;break;case 536870912:s=xe;break;default:s=D}s=Dd(s,Ed.bind(null,e))}e.callbackPriority=t,e.callbackNode=s}}function Ed(e,t){if(mo=-1,go=0,(Oe&6)!==0)throw Error(o(327));var s=e.callbackNode;if(ns()&&e.callbackNode!==s)return null;var l=ar(e,e===ut?mt:0);if(l===0)return null;if((l&30)!==0||(l&e.expiredLanes)!==0||t)t=vo(e,l);else{t=l;var c=Oe;Oe|=2;var u=Td();(ut!==e||mt!==t)&&(Cn=null,ts=Ve()+500,yr(e,t));do try{im();break}catch(y){Pd(e,y)}while(!0);Kl(),co.current=u,Oe=c,nt!==null?t=0:(ut=null,mt=0,t=ot)}if(t!==0){if(t===2&&(c=cl(e),c!==0&&(l=c,t=Ra(e,c))),t===1)throw s=Zs,yr(e,0),Xn(e,l),Et(e,Ve()),s;if(t===6)Xn(e,l);else{if(c=e.current.alternate,(l&30)===0&&!rm(c)&&(t=vo(e,l),t===2&&(u=cl(e),u!==0&&(l=u,t=Ra(e,u))),t===1))throw s=Zs,yr(e,0),Xn(e,l),Et(e,Ve()),s;switch(e.finishedWork=c,e.finishedLanes=l,t){case 0:case 1:throw Error(o(345));case 2:xr(e,_t,Cn);break;case 3:if(Xn(e,l),(l&130023424)===l&&(t=Ia+500-Ve(),10<t)){if(ar(e,0)!==0)break;if(c=e.suspendedLanes,(c&l)!==l){St(),e.pingedLanes|=e.suspendedLanes&c;break}e.timeoutHandle=Al(xr.bind(null,e,_t,Cn),t);break}xr(e,_t,Cn);break;case 4:if(Xn(e,l),(l&4194240)===l)break;for(t=e.eventTimes,c=-1;0<l;){var h=31-st(l);u=1<<h,h=t[h],h>c&&(c=h),l&=~u}if(l=c,l=Ve()-l,l=(120>l?120:480>l?480:1080>l?1080:1920>l?1920:3e3>l?3e3:4320>l?4320:1960*nm(l/1960))-l,10<l){e.timeoutHandle=Al(xr.bind(null,e,_t,Cn),l);break}xr(e,_t,Cn);break;case 5:xr(e,_t,Cn);break;default:throw Error(o(329))}}}return Et(e,Ve()),e.callbackNode===s?Ed.bind(null,e):null}function Ra(e,t){var s=ei;return e.current.memoizedState.isDehydrated&&(yr(e,t).flags|=256),e=vo(e,t),e!==2&&(t=_t,_t=s,t!==null&&Pa(t)),e}function Pa(e){_t===null?_t=e:_t.push.apply(_t,e)}function rm(e){for(var t=e;;){if(t.flags&16384){var s=t.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(!Yt(u(),c))return!1}catch{return!1}}}if(s=t.child,t.subtreeFlags&16384&&s!==null)s.return=t,t=s;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Xn(e,t){for(t&=~Na,t&=~uo,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var s=31-st(t),l=1<<s;e[s]=-1,t&=~l}}function Rd(e){if((Oe&6)!==0)throw Error(o(327));ns();var t=ar(e,0);if((t&1)===0)return Et(e,Ve()),null;var s=vo(e,t);if(e.tag!==0&&s===2){var l=cl(e);l!==0&&(t=l,s=Ra(e,l))}if(s===1)throw s=Zs,yr(e,0),Xn(e,t),Et(e,Ve()),s;if(s===6)throw Error(o(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,xr(e,_t,Cn),Et(e,Ve()),null}function Ta(e,t){var s=Oe;Oe|=1;try{return e(t)}finally{Oe=s,Oe===0&&(ts=Ve()+500,Bi&&Un())}}function vr(e){Qn!==null&&Qn.tag===0&&(Oe&6)===0&&ns();var t=Oe;Oe|=1;var s=Bt.transition,l=De;try{if(Bt.transition=null,De=1,e)return e()}finally{De=l,Bt.transition=s,Oe=t,(Oe&6)===0&&Un()}}function Ma(){$t=es.current,Ue(es)}function yr(e,t){e.finishedWork=null,e.finishedLanes=0;var s=e.timeoutHandle;if(s!==-1&&(e.timeoutHandle=-1,Mh(s)),nt!==null)for(s=nt.return;s!==null;){var l=s;switch(ql(l),l.tag){case 1:l=l.type.childContextTypes,l!=null&&Fi();break;case 3:Xr(),Ue(bt),Ue(gt),ta();break;case 5:Zl(l);break;case 4:Xr();break;case 13:Ue(Qe);break;case 19:Ue(Qe);break;case 10:Gl(l.type._context);break;case 22:case 23:Ma()}s=s.return}if(ut=e,nt=e=Jn(e.current,null),mt=$t=t,ot=0,Zs=null,Na=uo=gr=0,_t=ei=null,pr!==null){for(t=0;t<pr.length;t++)if(s=pr[t],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}pr=null}return e}function Pd(e,t){do{var s=nt;try{if(Kl(),Zi.current=ro,eo){for(var l=Ye.memoizedState;l!==null;){var c=l.queue;c!==null&&(c.pending=null),l=l.next}eo=!1}if(mr=0,ct=it=Ye=null,Ks=!1,Gs=0,ba.current=null,s===null||s.return===null){ot=1,Zs=t,nt=null;break}e:{var u=e,h=s.return,y=s,j=t;if(t=mt,y.flags|=32768,j!==null&&typeof j=="object"&&typeof j.then=="function"){var T=j,H=y,K=H.tag;if((H.mode&1)===0&&(K===0||K===11||K===15)){var U=H.alternate;U?(H.updateQueue=U.updateQueue,H.memoizedState=U.memoizedState,H.lanes=U.lanes):(H.updateQueue=null,H.memoizedState=null)}var le=nd(h);if(le!==null){le.flags&=-257,rd(le,h,y,u,t),le.mode&1&&td(u,T,t),t=le,j=T;var fe=t.updateQueue;if(fe===null){var me=new Set;me.add(j),t.updateQueue=me}else fe.add(j);break e}else{if((t&1)===0){td(u,T,t),Oa();break e}j=Error(o(426))}}else if(Ge&&y.mode&1){var Je=nd(h);if(Je!==null){(Je.flags&65536)===0&&(Je.flags|=256),rd(Je,h,y,u,t),Hl(Jr(j,y));break e}}u=j=Jr(j,y),ot!==4&&(ot=2),ei===null?ei=[u]:ei.push(u),u=h;do{switch(u.tag){case 3:u.flags|=65536,t&=-t,u.lanes|=t;var I=Zu(u,j,t);Nu(u,I);break e;case 1:y=j;var S=u.type,E=u.stateNode;if((u.flags&128)===0&&(typeof S.getDerivedStateFromError=="function"||E!==null&&typeof E.componentDidCatch=="function"&&(Gn===null||!Gn.has(E)))){u.flags|=65536,t&=-t,u.lanes|=t;var X=ed(u,y,t);Nu(u,X);break e}}u=u.return}while(u!==null)}Od(s)}catch(ve){t=ve,nt===s&&s!==null&&(nt=s=s.return);continue}break}while(!0)}function Td(){var e=co.current;return co.current=ro,e===null?ro:e}function Oa(){(ot===0||ot===3||ot===2)&&(ot=4),ut===null||(gr&268435455)===0&&(uo&268435455)===0||Xn(ut,mt)}function vo(e,t){var s=Oe;Oe|=2;var l=Td();(ut!==e||mt!==t)&&(Cn=null,yr(e,t));do try{sm();break}catch(c){Pd(e,c)}while(!0);if(Kl(),Oe=s,co.current=l,nt!==null)throw Error(o(261));return ut=null,mt=0,ot}function sm(){for(;nt!==null;)Md(nt)}function im(){for(;nt!==null&&!wi();)Md(nt)}function Md(e){var t=$d(e.alternate,e,$t);e.memoizedProps=e.pendingProps,t===null?Od(e):nt=t,ba.current=null}function Od(e){var t=e;do{var s=t.alternate;if(e=t.return,(t.flags&32768)===0){if(s=Xh(s,t,$t),s!==null){nt=s;return}}else{if(s=Jh(s,t),s!==null){s.flags&=32767,nt=s;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{ot=6,nt=null;return}}if(t=t.sibling,t!==null){nt=t;return}nt=t=e}while(t!==null);ot===0&&(ot=5)}function xr(e,t,s){var l=De,c=Bt.transition;try{Bt.transition=null,De=1,om(e,t,s,l)}finally{Bt.transition=c,De=l}return null}function om(e,t,s,l){do ns();while(Qn!==null);if((Oe&6)!==0)throw Error(o(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(o(177));e.callbackNode=null,e.callbackPriority=0;var u=s.lanes|s.childLanes;if(Wp(e,u),e===ut&&(nt=ut=null,mt=0),(s.subtreeFlags&2064)===0&&(s.flags&2064)===0||po||(po=!0,Dd(D,function(){return ns(),null})),u=(s.flags&15990)!==0,(s.subtreeFlags&15990)!==0||u){u=Bt.transition,Bt.transition=null;var h=De;De=1;var y=Oe;Oe|=4,ba.current=null,em(e,s),Cd(s,e),Nh(Ol),Ii=!!Ml,Ol=Ml=null,e.current=s,tm(s),ki(),Oe=y,De=h,Bt.transition=u}else e.current=s;if(po&&(po=!1,Qn=e,ho=c),u=e.pendingLanes,u===0&&(Gn=null),at(s.stateNode),Et(e,Ve()),t!==null)for(l=e.onRecoverableError,s=0;s<t.length;s++)c=t[s],l(c.value,{componentStack:c.stack,digest:c.digest});if(fo)throw fo=!1,e=_a,_a=null,e;return(ho&1)!==0&&e.tag!==0&&ns(),u=e.pendingLanes,(u&1)!==0?e===Ea?ti++:(ti=0,Ea=e):ti=0,Un(),null}function ns(){if(Qn!==null){var e=jc(ho),t=Bt.transition,s=De;try{if(Bt.transition=null,De=16>e?16:e,Qn===null)var l=!1;else{if(e=Qn,Qn=null,ho=0,(Oe&6)!==0)throw Error(o(331));var c=Oe;for(Oe|=4,ue=e.current;ue!==null;){var u=ue,h=u.child;if((ue.flags&16)!==0){var y=u.deletions;if(y!==null){for(var j=0;j<y.length;j++){var T=y[j];for(ue=T;ue!==null;){var H=ue;switch(H.tag){case 0:case 11:case 15:Js(8,H,u)}var K=H.child;if(K!==null)K.return=H,ue=K;else for(;ue!==null;){H=ue;var U=H.sibling,le=H.return;if(xd(H),H===T){ue=null;break}if(U!==null){U.return=le,ue=U;break}ue=le}}}var fe=u.alternate;if(fe!==null){var me=fe.child;if(me!==null){fe.child=null;do{var Je=me.sibling;me.sibling=null,me=Je}while(me!==null)}}ue=u}}if((u.subtreeFlags&2064)!==0&&h!==null)h.return=u,ue=h;else e:for(;ue!==null;){if(u=ue,(u.flags&2048)!==0)switch(u.tag){case 0:case 11:case 15:Js(9,u,u.return)}var I=u.sibling;if(I!==null){I.return=u.return,ue=I;break e}ue=u.return}}var S=e.current;for(ue=S;ue!==null;){h=ue;var E=h.child;if((h.subtreeFlags&2064)!==0&&E!==null)E.return=h,ue=E;else e:for(h=S;ue!==null;){if(y=ue,(y.flags&2048)!==0)try{switch(y.tag){case 0:case 11:case 15:ao(9,y)}}catch(ve){Xe(y,y.return,ve)}if(y===h){ue=null;break e}var X=y.sibling;if(X!==null){X.return=y.return,ue=X;break e}ue=y.return}}if(Oe=c,Un(),Ke&&typeof Ke.onPostCommitFiberRoot=="function")try{Ke.onPostCommitFiberRoot($e,e)}catch{}l=!0}return l}finally{De=s,Bt.transition=t}}return!1}function Ld(e,t,s){t=Jr(s,t),t=Zu(e,t,1),e=Vn(e,t,1),t=St(),e!==null&&(bs(e,1,t),Et(e,t))}function Xe(e,t,s){if(e.tag===3)Ld(e,e,s);else for(;t!==null;){if(t.tag===3){Ld(t,e,s);break}else if(t.tag===1){var l=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof l.componentDidCatch=="function"&&(Gn===null||!Gn.has(l))){e=Jr(s,e),e=ed(t,e,1),t=Vn(t,e,1),e=St(),t!==null&&(bs(t,1,e),Et(t,e));break}}t=t.return}}function lm(e,t,s){var l=e.pingCache;l!==null&&l.delete(t),t=St(),e.pingedLanes|=e.suspendedLanes&s,ut===e&&(mt&s)===s&&(ot===4||ot===3&&(mt&130023424)===mt&&500>Ve()-Ia?yr(e,0):Na|=s),Et(e,t)}function Ad(e,t){t===0&&((e.mode&1)===0?t=1:(t=Or,Or<<=1,(Or&130023424)===0&&(Or=4194304)));var s=St();e=kn(e,t),e!==null&&(bs(e,t,s),Et(e,s))}function am(e){var t=e.memoizedState,s=0;t!==null&&(s=t.retryLane),Ad(e,s)}function cm(e,t){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(o(314))}l!==null&&l.delete(t),Ad(e,s)}var $d;$d=function(e,t,s){if(e!==null)if(e.memoizedProps!==t.pendingProps||bt.current)It=!0;else{if((e.lanes&s)===0&&(t.flags&128)===0)return It=!1,Yh(e,t,s);It=(e.flags&131072)!==0}else It=!1,Ge&&(t.flags&1048576)!==0&&gu(t,Hi,t.index);switch(t.lanes=0,t.tag){case 2:var l=t.type;oo(e,t),e=t.pendingProps;var c=Ur(t,gt.current);Yr(t,s),c=sa(null,t,l,e,c,s);var u=ia();return t.flags|=1,typeof c=="object"&&c!==null&&typeof c.render=="function"&&c.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Nt(l)?(u=!0,qi(t)):u=!1,t.memoizedState=c.state!==null&&c.state!==void 0?c.state:null,Xl(t),c.updater=so,t.stateNode=c,c._reactInternals=t,da(t,l,e,s),t=ma(null,t,l,!0,u,s)):(t.tag=0,Ge&&u&&Fl(t),jt(null,t,c,s),t=t.child),t;case 16:l=t.elementType;e:{switch(oo(e,t),e=t.pendingProps,c=l._init,l=c(l._payload),t.type=l,c=t.tag=dm(l),e=Jt(l,e),c){case 0:t=ha(null,t,l,e,s);break e;case 1:t=cd(null,t,l,e,s);break e;case 11:t=sd(null,t,l,e,s);break e;case 14:t=id(null,t,l,Jt(l.type,e),s);break e}throw Error(o(306,l,""))}return t;case 0:return l=t.type,c=t.pendingProps,c=t.elementType===l?c:Jt(l,c),ha(e,t,l,c,s);case 1:return l=t.type,c=t.pendingProps,c=t.elementType===l?c:Jt(l,c),cd(e,t,l,c,s);case 3:e:{if(ud(t),e===null)throw Error(o(387));l=t.pendingProps,u=t.memoizedState,c=u.element,bu(e,t),Xi(t,l,null,s);var h=t.memoizedState;if(l=h.element,u.isDehydrated)if(u={element:l,isDehydrated:!1,cache:h.cache,pendingSuspenseBoundaries:h.pendingSuspenseBoundaries,transitions:h.transitions},t.updateQueue.baseState=u,t.memoizedState=u,t.flags&256){c=Jr(Error(o(423)),t),t=dd(e,t,l,s,c);break e}else if(l!==c){c=Jr(Error(o(424)),t),t=dd(e,t,l,s,c);break e}else for(At=Fn(t.stateNode.containerInfo.firstChild),Lt=t,Ge=!0,Xt=null,s=Su(t,null,l,s),t.child=s;s;)s.flags=s.flags&-3|4096,s=s.sibling;else{if(Kr(),l===c){t=Sn(e,t,s);break e}jt(e,t,l,s)}t=t.child}return t;case 5:return _u(t),e===null&&Ul(t),l=t.type,c=t.pendingProps,u=e!==null?e.memoizedProps:null,h=c.children,Ll(l,c)?h=null:u!==null&&Ll(l,u)&&(t.flags|=32),ad(e,t),jt(e,t,h,s),t.child;case 6:return e===null&&Ul(t),null;case 13:return fd(e,t,s);case 4:return Jl(t,t.stateNode.containerInfo),l=t.pendingProps,e===null?t.child=Gr(t,null,l,s):jt(e,t,l,s),t.child;case 11:return l=t.type,c=t.pendingProps,c=t.elementType===l?c:Jt(l,c),sd(e,t,l,c,s);case 7:return jt(e,t,t.pendingProps,s),t.child;case 8:return jt(e,t,t.pendingProps.children,s),t.child;case 12:return jt(e,t,t.pendingProps.children,s),t.child;case 10:e:{if(l=t.type._context,c=t.pendingProps,u=t.memoizedProps,h=c.value,We(Gi,l._currentValue),l._currentValue=h,u!==null)if(Yt(u.value,h)){if(u.children===c.children&&!bt.current){t=Sn(e,t,s);break e}}else for(u=t.child,u!==null&&(u.return=t);u!==null;){var y=u.dependencies;if(y!==null){h=u.child;for(var j=y.firstContext;j!==null;){if(j.context===l){if(u.tag===1){j=jn(-1,s&-s),j.tag=2;var T=u.updateQueue;if(T!==null){T=T.shared;var H=T.pending;H===null?j.next=j:(j.next=H.next,H.next=j),T.pending=j}}u.lanes|=s,j=u.alternate,j!==null&&(j.lanes|=s),Ql(u.return,s,t),y.lanes|=s;break}j=j.next}}else if(u.tag===10)h=u.type===t.type?null:u.child;else if(u.tag===18){if(h=u.return,h===null)throw Error(o(341));h.lanes|=s,y=h.alternate,y!==null&&(y.lanes|=s),Ql(h,s,t),h=u.sibling}else h=u.child;if(h!==null)h.return=u;else for(h=u;h!==null;){if(h===t){h=null;break}if(u=h.sibling,u!==null){u.return=h.return,h=u;break}h=h.return}u=h}jt(e,t,c.children,s),t=t.child}return t;case 9:return c=t.type,l=t.pendingProps.children,Yr(t,s),c=Ft(c),l=l(c),t.flags|=1,jt(e,t,l,s),t.child;case 14:return l=t.type,c=Jt(l,t.pendingProps),c=Jt(l.type,c),id(e,t,l,c,s);case 15:return od(e,t,t.type,t.pendingProps,s);case 17:return l=t.type,c=t.pendingProps,c=t.elementType===l?c:Jt(l,c),oo(e,t),t.tag=1,Nt(l)?(e=!0,qi(t)):e=!1,Yr(t,s),Xu(t,l,c),da(t,l,c,s),ma(null,t,l,!0,e,s);case 19:return hd(e,t,s);case 22:return ld(e,t,s)}throw Error(o(156,t.tag))};function Dd(e,t){return Ss(e,t)}function um(e,t,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=t,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 Ut(e,t,s,l){return new um(e,t,s,l)}function La(e){return e=e.prototype,!(!e||!e.isReactComponent)}function dm(e){if(typeof e=="function")return La(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Q)return 11;if(e===A)return 14}return 2}function Jn(e,t){var s=e.alternate;return s===null?(s=Ut(e.tag,t,e.key,e.mode),s.elementType=e.elementType,s.type=e.type,s.stateNode=e.stateNode,s.alternate=e,e.alternate=s):(s.pendingProps=t,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,t=e.dependencies,s.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},s.sibling=e.sibling,s.index=e.index,s.ref=e.ref,s}function yo(e,t,s,l,c,u){var h=2;if(l=e,typeof e=="function")La(e)&&(h=1);else if(typeof e=="string")h=5;else e:switch(e){case L:return wr(s.children,c,u,t);case se:h=8,c|=8;break;case Ne:return e=Ut(12,s,t,c|2),e.elementType=Ne,e.lanes=u,e;case V:return e=Ut(13,s,t,c),e.elementType=V,e.lanes=u,e;case je:return e=Ut(19,s,t,c),e.elementType=je,e.lanes=u,e;case ge:return xo(s,c,u,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case we:h=10;break e;case Z:h=9;break e;case Q:h=11;break e;case A:h=14;break e;case pe:h=16,l=null;break e}throw Error(o(130,e==null?e:typeof e,""))}return t=Ut(h,s,t,c),t.elementType=e,t.type=l,t.lanes=u,t}function wr(e,t,s,l){return e=Ut(7,e,l,t),e.lanes=s,e}function xo(e,t,s,l){return e=Ut(22,e,l,t),e.elementType=ge,e.lanes=s,e.stateNode={isHidden:!1},e}function Aa(e,t,s){return e=Ut(6,e,null,t),e.lanes=s,e}function $a(e,t,s){return t=Ut(4,e.children!==null?e.children:[],e.key,t),t.lanes=s,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function fm(e,t,s,l,c){this.tag=t,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=ul(0),this.expirationTimes=ul(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ul(0),this.identifierPrefix=l,this.onRecoverableError=c,this.mutableSourceEagerHydrationData=null}function Da(e,t,s,l,c,u,h,y,j){return e=new fm(e,t,s,y,j),t===1?(t=1,u===!0&&(t|=8)):t=0,u=Ut(3,null,null,t),e.current=u,u.stateNode=e,u.memoizedState={element:l,isDehydrated:s,cache:null,transitions:null,pendingSuspenseBoundaries:null},Xl(u),e}function pm(e,t,s){var l=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:N,key:l==null?null:""+l,children:e,containerInfo:t,implementation:s}}function zd(e){if(!e)return Bn;e=e._reactInternals;e:{if(cn(e)!==e||e.tag!==1)throw Error(o(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Nt(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(t!==null);throw Error(o(171))}if(e.tag===1){var s=e.type;if(Nt(s))return pu(e,s,t)}return t}function Wd(e,t,s,l,c,u,h,y,j){return e=Da(s,l,!0,e,c,u,h,y,j),e.context=zd(null),s=e.current,l=St(),c=Yn(s),u=jn(l,c),u.callback=t??null,Vn(s,u,c),e.current.lanes=c,bs(e,c,l),Et(e,l),e}function wo(e,t,s,l){var c=t.current,u=St(),h=Yn(c);return s=zd(s),t.context===null?t.context=s:t.pendingContext=s,t=jn(u,h),t.payload={element:e},l=l===void 0?null:l,l!==null&&(t.callback=l),e=Vn(c,t,h),e!==null&&(tn(e,c,h,u),Yi(e,c,h)),h}function ko(e){return e=e.current,e.child?(e.child.tag===5,e.child.stateNode):null}function Fd(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var s=e.retryLane;e.retryLane=s!==0&&s<t?s:t}}function za(e,t){Fd(e,t),(e=e.alternate)&&Fd(e,t)}function hm(){return null}var qd=typeof reportError=="function"?reportError:function(e){console.error(e)};function Wa(e){this._internalRoot=e}jo.prototype.render=Wa.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(o(409));wo(e,t,null,null)},jo.prototype.unmount=Wa.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;vr(function(){wo(null,e,null,null)}),t[vn]=null}};function jo(e){this._internalRoot=e}jo.prototype.unstable_scheduleHydration=function(e){if(e){var t=bc();e={blockedOn:null,target:e,priority:t};for(var s=0;s<Dn.length&&t!==0&&t<Dn[s].priority;s++);Dn.splice(s,0,e),s===0&&_c(e)}};function Fa(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function So(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function Bd(){}function mm(e,t,s,l,c){if(c){if(typeof l=="function"){var u=l;l=function(){var T=ko(h);u.call(T)}}var h=Wd(t,l,e,0,null,!1,!1,"",Bd);return e._reactRootContainer=h,e[vn]=h.current,zs(e.nodeType===8?e.parentNode:e),vr(),h}for(;c=e.lastChild;)e.removeChild(c);if(typeof l=="function"){var y=l;l=function(){var T=ko(j);y.call(T)}}var j=Da(e,0,!1,null,null,!1,!1,"",Bd);return e._reactRootContainer=j,e[vn]=j.current,zs(e.nodeType===8?e.parentNode:e),vr(function(){wo(t,j,s,l)}),j}function Co(e,t,s,l,c){var u=s._reactRootContainer;if(u){var h=u;if(typeof c=="function"){var y=c;c=function(){var j=ko(h);y.call(j)}}wo(t,h,e,c)}else h=mm(s,t,e,c,l);return ko(h)}Sc=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var s=tt(t.pendingLanes);s!==0&&(dl(t,s|1),Et(t,Ve()),(Oe&6)===0&&(ts=Ve()+500,Un()))}break;case 13:vr(function(){var l=kn(e,1);if(l!==null){var c=St();tn(l,e,1,c)}}),za(e,1)}},fl=function(e){if(e.tag===13){var t=kn(e,134217728);if(t!==null){var s=St();tn(t,e,134217728,s)}za(e,134217728)}},Cc=function(e){if(e.tag===13){var t=Yn(e),s=kn(e,t);if(s!==null){var l=St();tn(s,e,t,l)}za(e,t)}},bc=function(){return De},Nc=function(e,t){var s=De;try{return De=e,t()}finally{De=s}},Rr=function(e,t,s){switch(t){case"input":if(F(e,s),t=s.name,s.type==="radio"&&t!=null){for(s=e;s.parentNode;)s=s.parentNode;for(s=s.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<s.length;t++){var l=s[t];if(l!==e&&l.form===e.form){var c=Wi(l);if(!c)throw Error(o(90));Ze(l),F(l,c)}}}break;case"textarea":rr(e,s);break;case"select":t=s.value,t!=null&&Ct(e,!!s.multiple,t,!1)}},mi=Ta,gi=vr;var gm={usingClientEntryPoint:!1,Events:[qs,qr,Wi,hs,ms,Ta]},ni={findFiberByHostInstance:cr,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},vm={bundleType:ni.bundleType,version:ni.version,rendererPackageName:ni.rendererPackageName,rendererConfig:ni.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:J.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=ks(e),e===null?null:e.stateNode},findFiberByHostInstance:ni.findFiberByHostInstance||hm,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 bo=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!bo.isDisabled&&bo.supportsFiber)try{$e=bo.inject(vm),Ke=bo}catch{}}return Rt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=gm,Rt.createPortal=function(e,t){var s=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!Fa(t))throw Error(o(200));return pm(e,t,null,s)},Rt.createRoot=function(e,t){if(!Fa(e))throw Error(o(299));var s=!1,l="",c=qd;return t!=null&&(t.unstable_strictMode===!0&&(s=!0),t.identifierPrefix!==void 0&&(l=t.identifierPrefix),t.onRecoverableError!==void 0&&(c=t.onRecoverableError)),t=Da(e,1,!1,null,null,s,!1,l,c),e[vn]=t.current,zs(e.nodeType===8?e.parentNode:e),new Wa(t)},Rt.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(o(188)):(e=Object.keys(e).join(","),Error(o(268,e)));return e=ks(t),e=e===null?null:e.stateNode,e},Rt.flushSync=function(e){return vr(e)},Rt.hydrate=function(e,t,s){if(!So(t))throw Error(o(200));return Co(null,e,t,!0,s)},Rt.hydrateRoot=function(e,t,s){if(!Fa(e))throw Error(o(405));var l=s!=null&&s.hydratedSources||null,c=!1,u="",h=qd;if(s!=null&&(s.unstable_strictMode===!0&&(c=!0),s.identifierPrefix!==void 0&&(u=s.identifierPrefix),s.onRecoverableError!==void 0&&(h=s.onRecoverableError)),t=Wd(t,null,e,1,s??null,c,!1,u,h),e[vn]=t.current,zs(e),l)for(e=0;e<l.length;e++)s=l[e],c=s._getVersion,c=c(s._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[s,c]:t.mutableSourceEagerHydrationData.push(s,c);return new jo(t)},Rt.render=function(e,t,s){if(!So(t))throw Error(o(200));return Co(null,e,t,!1,s)},Rt.unmountComponentAtNode=function(e){if(!So(e))throw Error(o(40));return e._reactRootContainer?(vr(function(){Co(null,null,e,!1,function(){e._reactRootContainer=null,e[vn]=null})}),!0):!1},Rt.unstable_batchedUpdates=Ta,Rt.unstable_renderSubtreeIntoContainer=function(e,t,s,l){if(!So(s))throw Error(o(200));if(e==null||e._reactInternals===void 0)throw Error(o(38));return Co(e,t,s,!1,l)},Rt.version="18.3.1-next-f1338f8080-20240426",Rt}var Xd;function _m(){if(Xd)return Ua.exports;Xd=1;function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(r){console.error(r)}}return n(),Ua.exports=Im(),Ua.exports}var Jd;function Em(){if(Jd)return No;Jd=1;var n=_m();return No.createRoot=n.createRoot,No.hydrateRoot=n.hydrateRoot,No}var Rm=Em();const Pm=Xf(Rm),Jf={boot:"loading",bootstrap: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:{},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,notice:null,announcement:""},Zd=Object.freeze({status:"idle",requestId:null});function Qo(n){return n.activeSessionId?n.sessionSync[n.activeSessionId]??Zd:Zd}function Ir(n){return!!(n.activeSessionId&&n.sessionSnapshot?.session.id===n.activeSessionId&&Qo(n).status==="ready")}function G({name:n,size:r=18,...o}){return i.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",...o,children:Tm[n]})}const Tm={activity:i.jsx("path",{d:"M3 12h4l2.2-6 4.2 12 2.2-6H21"}),add:i.jsx("path",{d:"M12 5v14M5 12h14"}),"arrow-up":i.jsx("path",{d:"m6 11 6-6 6 6M12 5v14"}),branch:i.jsxs(i.Fragment,{children:[i.jsx("circle",{cx:"6",cy:"5",r:"2"}),i.jsx("circle",{cx:"18",cy:"7",r:"2"}),i.jsx("circle",{cx:"6",cy:"19",r:"2"}),i.jsx("path",{d:"M6 7v10M8 12h4a6 6 0 0 0 6-3"})]}),check:i.jsx("path",{d:"m5 12 4 4L19 6"}),chevron:i.jsx("path",{d:"m9 7 5 5-5 5"}),close:i.jsx("path",{d:"m6 6 12 12M18 6 6 18"}),code:i.jsx("path",{d:"m8 9-4 3 4 3M16 9l4 3-4 3M14 5l-4 14"}),copy:i.jsxs(i.Fragment,{children:[i.jsx("rect",{x:"8",y:"8",width:"11",height:"11",rx:"2"}),i.jsx("path",{d:"M16 8V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h2"})]}),diagnostics:i.jsxs(i.Fragment,{children:[i.jsx("path",{d:"M4 19V9M10 19V5M16 19v-7M22 19V3"}),i.jsx("path",{d:"M2 19h21"})]}),edit:i.jsxs(i.Fragment,{children:[i.jsx("path",{d:"M12 20h9"}),i.jsx("path",{d:"M16.5 3.5a2.1 2.1 0 0 1 3 3L8 18l-4 1 1-4Z"})]}),goal:i.jsxs(i.Fragment,{children:[i.jsx("circle",{cx:"12",cy:"12",r:"8"}),i.jsx("circle",{cx:"12",cy:"12",r:"3"}),i.jsx("path",{d:"m15 9 5-5M17 4h3v3"})]}),info:i.jsxs(i.Fragment,{children:[i.jsx("circle",{cx:"12",cy:"12",r:"9"}),i.jsx("path",{d:"M12 11v5M12 8h.01"})]}),keyboard:i.jsxs(i.Fragment,{children:[i.jsx("rect",{x:"2",y:"6",width:"20",height:"12",rx:"2"}),i.jsx("path",{d:"M6 10h.01M10 10h.01M14 10h.01M18 10h.01M6 14h.01M18 14h.01M9.5 14.5h5"})]}),menu:i.jsx("path",{d:"M4 7h16M4 12h16M4 17h16"}),monitor:i.jsxs(i.Fragment,{children:[i.jsx("rect",{x:"2",y:"3",width:"20",height:"14",rx:"2"}),i.jsx("path",{d:"M8 21h8M12 17v4"})]}),moon:i.jsx("path",{d:"M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z"}),more:i.jsxs(i.Fragment,{children:[i.jsx("circle",{cx:"5",cy:"12",r:"1",fill:"currentColor",stroke:"none"}),i.jsx("circle",{cx:"12",cy:"12",r:"1",fill:"currentColor",stroke:"none"}),i.jsx("circle",{cx:"19",cy:"12",r:"1",fill:"currentColor",stroke:"none"})]}),pause:i.jsx("path",{d:"M9 5v14M15 5v14"}),refresh:i.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:i.jsxs(i.Fragment,{children:[i.jsx("circle",{cx:"11",cy:"11",r:"7"}),i.jsx("path",{d:"m20 20-4-4"})]}),settings:i.jsxs(i.Fragment,{children:[i.jsx("circle",{cx:"12",cy:"12",r:"3"}),i.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:i.jsxs(i.Fragment,{children:[i.jsx("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),i.jsx("path",{d:"M9 4v16"})]}),spark:i.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:i.jsx("rect",{x:"6",y:"6",width:"12",height:"12",rx:"2"}),sun:i.jsxs(i.Fragment,{children:[i.jsx("circle",{cx:"12",cy:"12",r:"4"}),i.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:i.jsx("path",{d:"m5 7 4 4-4 4M11 16h8"}),trash:i.jsx(i.Fragment,{children:i.jsx("path",{d:"M4 7h16M9 7V4h6v3M7 7l1 13h8l1-13M10 11v5M14 11v5"})}),warning:i.jsxs(i.Fragment,{children:[i.jsx("path",{d:"M12 3 2.5 20h19Z"}),i.jsx("path",{d:"M12 9v4M12 17h.01"})]}),workspace:i.jsxs(i.Fragment,{children:[i.jsx("path",{d:"M3 7h7l2 2h9v10H3Z"}),i.jsx("path",{d:"M3 7V5h7l2 2"})]}),"chevron-left":i.jsx("path",{d:"m15 7-5 5 5 5"})};function ui({children:n,className:r=""}){return i.jsx("div",{className:`markdown ${r}`.trim(),children:Zf(n)})}function Zf(n){const r=n.replace(/\r\n?/g,`
|
|
10
|
+
`).split(`
|
|
11
|
+
`),o=[];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 R=[];for(a+=1;a<r.length&&!/^\s*```\s*$/.test(r[a]);)R.push(r[a]),a+=1;a<r.length&&(a+=1),o.push(i.jsx(Dm,{language:f[1].trim(),content:R.join(`
|
|
12
|
+
`)},`code-${a}`));continue}const p=d.match(/^(#{1,6})\s+(.+)$/);if(p){const R=Math.min(6,p[1].length);o.push($m(R,ai(p[2],`heading-${a}`),`heading-${a}`)),a+=1;continue}if(/^\s*>\s?/.test(d)){const R=[];for(;a<r.length&&/^\s*>\s?/.test(r[a]);)R.push(r[a].replace(/^\s*>\s?/,"")),a+=1;o.push(i.jsx("blockquote",{children:Zf(R.join(`
|
|
13
|
+
`))},`quote-${a}`));continue}if(d.match(/^\s*(?:[-*+] |\d+[.)] )(.+)$/)){const R=/^\s*\d/.test(d),C=[],_=R?/^\s*\d+[.)]\s+(.+)$/:/^\s*[-*+]\s+(.+)$/;for(;a<r.length;){const $=r[a].match(_);if(!$)break;C.push($[1]),a+=1}const P=C.map(($,O)=>i.jsx("li",{children:ai($,`list-${a}-${O}`)},`item-${a}-${O}`));o.push(R?i.jsx("ol",{children:P},`list-${a}`):i.jsx("ul",{children:P},`list-${a}`));continue}const x=Ja(d);if(x&&x.length>=1&&a+1<r.length){const R=Om(r[a+1]);if(R&&R.length===x.length){const C=[x];for(a+=2;a<r.length;){const _=Ja(r[a]);if(!_||_.length!==x.length)break;C.push(_),a+=1}o.push(Lm(C,R,`table-${a}`));continue}}const w=[d.trim()];for(a+=1;a<r.length&&r[a].trim()&&!Mm(r[a]);)w.push(r[a].trim()),a+=1;o.push(i.jsx("p",{children:ai(w.join(" "),`paragraph-${a}`)},`paragraph-${a}`))}return o}function Mm(n){return/^\s*```/.test(n)||/^(#{1,6})\s+/.test(n)||/^\s*>\s?/.test(n)||/^\s*(?:[-*+] |\d+[.)] )/.test(n)||Ja(n)!==null}function Ja(n){if(!n.includes("|"))return null;const r=n.split("|"),o=r[0].trim()==="",a=r[r.length-1].trim()==="",d=o&&a?r.slice(1,-1):r;return d.length===0?null:d.map(f=>f.trim())}function Om(n){if(!n.includes("|")&&!/[-:]/.test(n))return null;let r=n.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 o=[];for(const a of r){if(a===""||!/^:?-+:?$/.test(a))return null;const d=a.startsWith(":"),f=a.endsWith(":");d&&f?o.push("center"):f?o.push("right"):o.push("left")}return o}function Lm(n,r,o){const[a,...d]=n,f=p=>p==="left"?void 0:{textAlign:p};return i.jsxs("table",{className:"markdown-table",children:[i.jsx("thead",{children:i.jsx("tr",{children:a.map((p,g)=>i.jsx("th",{style:f(r[g]),children:ai(p,`${o}-th-${g}`)},`th-${g}`))})}),i.jsx("tbody",{children:d.map((p,g)=>i.jsx("tr",{children:p.map((x,w)=>i.jsx("td",{style:f(r[w]),children:ai(x,`${o}-td-${g}-${w}`)},`td-${g}-${w}`))},`tr-${g}`))})]},o)}function ai(n,r){const o=/(`[^`\n]+`|\*\*[^*\n]+\*\*|\[[^\]\n]+\]\([^\s)]+\))/g,a=[];let d=0,f,p=0;for(;f=o.exec(n);){f.index>d&&a.push(n.slice(d,f.index));const g=f[0],x=`${r}-${p++}`;if(g.startsWith("`"))a.push(i.jsx("code",{children:g.slice(1,-1)},x));else if(g.startsWith("**"))a.push(i.jsx("strong",{children:g.slice(2,-2)},x));else{const w=g.match(/^\[([^\]]+)\]\(([^)]+)\)$/);w&&Am(w[2])?a.push(i.jsx("a",{href:w[2],target:"_blank",rel:"noopener noreferrer",referrerPolicy:"no-referrer",children:w[1]},x)):a.push(g)}d=f.index+g.length}return d<n.length&&a.push(n.slice(d)),a}function Am(n){try{const r=new URL(n);return r.protocol==="https:"||r.protocol==="http:"||r.protocol==="mailto:"}catch{return!1}}function $m(n,r,o){return n===1?i.jsx("h1",{children:r},o):n===2?i.jsx("h2",{children:r},o):n===3?i.jsx("h3",{children:r},o):n===4?i.jsx("h4",{children:r},o):n===5?i.jsx("h5",{children:r},o):i.jsx("h6",{children:r},o)}function Dm({language:n,content:r}){const[o,a]=m.useState("idle"),d=async()=>{try{await navigator.clipboard.writeText(r),a("copied"),window.setTimeout(()=>a("idle"),1400)}catch{a("failed")}};return i.jsxs("figure",{className:"code-block",children:[i.jsxs("figcaption",{children:[i.jsx("span",{children:n||"text"}),i.jsxs("button",{type:"button",className:"icon-text-button",onClick:d,"aria-label":"复制代码",children:[i.jsx(G,{name:o==="copied"?"check":"copy",size:15}),o==="copied"?"已复制":o==="failed"?"复制失败":"复制"]})]}),i.jsx("pre",{tabIndex:0,"aria-label":`${n||"文本"}代码块`,children:i.jsx("code",{children:r})})]})}function Rn(n){return n.replace(/\u001b\[[0-?]*[ -/]*[@-~]/g,"").replace(/[\u0000-\u0008\u000b\u000c\u000e-\u001f\u007f]/g,"")}function fc(n,r=8e3){const o=/api.?key|authorization|cookie|password|secret|token/i;let a;try{a=JSON.stringify(n,(f,p)=>f&&o.test(f)?"[REDACTED]":p,2)}catch{a=String(n)}const d=Rn(a);return d.length<=r?d:`${d.slice(0,r)}
|
|
14
|
+
…已截断`}const zm=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"}),ef=Object.freeze({danger:"失败",idle:"空闲",running:"进行中",success:"已完成",warning:"部分完成"});function Wm(n){return zm[n.trim().toLowerCase()]??"idle"}function Fm(n){return ef[n]??ef.idle}function pc({state:n,className:r="",label:o,describe:a=!0}){const d=Wm(n);return i.jsxs(i.Fragment,{children:[i.jsx("span",{className:`state-dot state-${n}${r?` ${r}`:""}`,"data-tone":d,"aria-hidden":"true"}),a?i.jsx("span",{className:"sr-only",children:o??Fm(d)}):null]})}const fs="orion.web.composer-drafts.v1",ep=20,Za=256*1024,qm=5*1024*1024;function Bm(n,r){return Yo().entries.find(o=>o.workspaceId===n&&o.sessionId===r)??null}function Um(n){const r=Xo();if(!r)return;const o=Object.freeze({...n,references:[...n.references],updatedAt:Date.now()});if(ec(o)>Za)throw new Error(`Composer draft exceeds ${Za} bytes.`);const a=Yo().entries.filter(f=>!(f.workspaceId===n.workspaceId&&f.sessionId===n.sessionId)),d=[o,...a].slice(0,ep);for(;d.length>0&&ec({version:1,entries:d})>qm;)d.pop();r.setItem(fs,JSON.stringify({version:1,entries:d}))}function tf(n,r){const o=Xo();if(!o)return;const a=Yo().entries.filter(d=>!(d.workspaceId===n&&d.sessionId===r));a.length===0?o.removeItem(fs):o.setItem(fs,JSON.stringify({version:1,entries:a}))}function Hm(n){const r=Xo();if(!r)return;const o=Yo().entries.filter(a=>a.workspaceId!==n);o.length===0?r.removeItem(fs):r.setItem(fs,JSON.stringify({version:1,entries:o}))}function Yo(){const n=Xo();if(!n)return{version:1,entries:[]};try{const r=JSON.parse(n.getItem(fs)??"");return r.version!==1||!Array.isArray(r.entries)?{version:1,entries:[]}:{version:1,entries:r.entries.filter(Vm).slice(0,ep)}}catch{return{version:1,entries:[]}}}function Vm(n){if(!n||typeof n!="object")return!1;const r=n;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)&&ec(r)<=Za}function Xo(){try{return typeof window>"u"?null:window.sessionStorage}catch{return null}}function ec(n){return new TextEncoder().encode(JSON.stringify(n)).byteLength}const tp=/^hmac-sha256:[0-9a-f]{64}$/,Km=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,Gm=/^(?:api[-_]?key|authorization|cookie|password|secret|access[-_]?token|refresh[-_]?token|auth[-_]?token|credential[-_]?value|headers?|env(?:ironment)?[-_]?name)$/i,Qm=["ready","invalid","read-only","unavailable"],Ym=["internal","model","global","project","session"],Xm=["global","project","session"],Jm=["live","next-logical-request","new-session","restart"],Zm=["runtime_busy","read_only","invalid_document"],eg=["system","light","dark"],tg=["system","reduced"],ng=["classic","orion-blocksmith"],np=["auto","none","minimal","low","medium","high","xhigh","max"],rg=["ask","allow","deny"],sg=["appearance.style","appearance.theme","appearance.motion","defaults.model","defaults.effort","permissions.toolConfirmation"];function tc(n){Fo(n);const r=Vt(n,"Settings document");if(Kt(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 o=r.schemaVersion,a=Mt(r.revision,"Settings revision");if(!tp.test(a))throw new Error("Settings revision is invalid.");const d=sn(r.state,"Settings state",Qm),f=Vt(r.sections,"Settings sections");Kt(f,["appearance","defaults","permissions"]);const p=Vt(f.appearance,"Appearance settings");Kt(p,o===1?["theme","motion"]:["style","theme","motion"]);const g=Vt(f.defaults,"Default settings");Kt(g,["model","effort"]);const x=Vt(f.permissions,"Permission settings");Kt(x,["toolConfirmation"]);const w=nc(r.models,"Settings models").map(lg),R=nc(r.credentials,"Credential status").map(ag),C=r.currentSession===void 0?void 0:cg(r.currentSession),_=r.diagnostic===void 0?void 0:ug(r.diagnostic);return{schemaVersion:2,revision:a,state:d,writable:as(r.writable,"Settings writable"),hasDocument:as(r.hasDocument,"Settings document availability"),workspace:Mt(r.workspace,"Settings workspace"),sections:{appearance:{style:o===1?hg(d,as(r.writable,"Settings writable")):rs(p.style,"Visual style",pg),theme:rs(p.theme,"Theme",fg),motion:rs(p.motion,"Motion",mg)},defaults:{model:rs(g.model,"Default model",yg),effort:rs(g.effort,"Default effort",gg)},permissions:{toolConfirmation:rs(x.toolConfirmation,"Tool confirmation",vg)}},models:w,credentials:R,...C?{currentSession:C}:{},..._?{diagnostic:_}:{}}}function ig(n){Fo(n);const r=Vt(n,"Settings mutation result");Kt(r,["requestId","revision","appliedKeys","settings"]);const o=Mt(r.requestId,"Settings requestId");if(!Km.test(o))throw new Error("Settings requestId is invalid.");const a=tc(r.settings),d=Mt(r.revision,"Settings mutation revision");if(d!==a.revision)throw new Error("Settings mutation revisions do not match.");const f=nc(r.appliedKeys,"Applied setting keys").map((p,g)=>sn(p,`Applied setting key ${g+1}`,sg));if(new Set(f).size!==f.length)throw new Error("Settings mutation contains duplicate applied keys.");return{requestId:o,revision:d,appliedKeys:f,settings:a}}function og(n){const r=Vt(n.payload,"Settings invalidation payload");Kt(r,["revision","reason","state"]);const o=Mt(r.revision,"Settings invalidation revision");if(!tp.test(o))throw new Error("Settings invalidation revision is invalid.");return{apiVersion:1,eventId:Mt(n.eventId,"Settings invalidation eventId"),cursor:dg(n.cursor,"Settings invalidation cursor"),sessionId:null,threadId:null,durable:!1,timestamp:Mt(n.timestamp,"Settings invalidation timestamp"),type:"settings_invalidated",payload:{revision:o,reason:sn(r.reason,"Settings invalidation reason",["local-write","external-edit","workspace-change"]),state:sn(r.state,"Settings invalidation state",["ready","invalid"])}}}function rs(n,r,o){const a=Vt(n,`${r} field`);if(Kt(a,["effectiveValue","explicitValue","inheritedValue","source","scope","applies","overridden","writable","blockedReason"]),!o(a.effectiveValue))throw new Error(`${r} effective value is invalid.`);if(a.explicitValue!==void 0&&!o(a.explicitValue))throw new Error(`${r} explicit value is invalid.`);if(a.inheritedValue!==void 0&&!o(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:sn(a.source,`${r} source`,Ym),scope:sn(a.scope,`${r} scope`,Xm),applies:sn(a.applies,`${r} application timing`,Jm),overridden:as(a.overridden,`${r} override state`),writable:as(a.writable,`${r} writable state`),...a.blockedReason===void 0?{}:{blockedReason:sn(a.blockedReason,`${r} blocked reason`,Zm)}}}function lg(n,r){const o=Vt(n,`Model ${r+1}`);return Kt(o,["id","label","provider"]),{id:Mt(o.id,`Model ${r+1} id`),label:Mt(o.label,`Model ${r+1} label`),...o.provider===void 0?{}:{provider:Mt(o.provider,`Model ${r+1} provider`)}}}function ag(n,r){const o=Vt(n,`Credential ${r+1}`);if(Kt(o,["providerId","state","source","writable"]),o.writable!==!1)throw new Error("Browser credential status must be read-only.");return{providerId:Mt(o.providerId,`Credential ${r+1} provider`),state:sn(o.state,`Credential ${r+1} state`,["ready","missing","unavailable"]),source:sn(o.source,`Credential ${r+1} source`,["environment","legacy","none"]),writable:!1}}function cg(n){const r=Vt(n,"Current session settings");return Kt(r,["model","effort","overridesProjectEffort"]),{model:Mt(r.model,"Current session model"),effort:sn(r.effort,"Current session effort",np),overridesProjectEffort:as(r.overridesProjectEffort,"Current session effort override state")}}function ug(n){const r=Vt(n,"Settings diagnostic");return Kt(r,["code","message"]),{code:Mt(r.code,"Settings diagnostic code"),message:Mt(r.message,"Settings diagnostic message")}}function Fo(n,r=new Set){if(!(!n||typeof n!="object")){if(r.has(n))throw new Error("Settings response contains a cycle.");r.add(n);try{if(Array.isArray(n)){for(const o of n)Fo(o,r);return}for(const[o,a]of Object.entries(n)){if(Gm.test(o))throw new Error("Settings response contains a forbidden secret-bearing field.");Fo(a,r)}}finally{r.delete(n)}}}function Vt(n,r){if(!n||typeof n!="object"||Array.isArray(n))throw new Error(`${r} must be an object.`);return n}function nc(n,r){if(!Array.isArray(n))throw new Error(`${r} must be an array.`);return n}function Mt(n,r){if(typeof n!="string"||!n.trim())throw new Error(`${r} must be text.`);return n}function as(n,r){if(typeof n!="boolean")throw new Error(`${r} must be boolean.`);return n}function dg(n,r){if(!Number.isSafeInteger(n)||n<0)throw new Error(`${r} must be a non-negative safe integer.`);return n}function sn(n,r,o){if(typeof n!="string"||!o.includes(n))throw new Error(`${r} is invalid.`);return n}function Kt(n,r){const o=new Set(r),a=Object.keys(n).find(d=>!o.has(d));if(a)throw new Error(`Settings response contains an unknown field: ${a}.`)}function fg(n){return typeof n=="string"&&eg.includes(n)}function pg(n){return typeof n=="string"&&ng.includes(n)}function hg(n,r){const o=n==="invalid"?"invalid_document":n==="ready"&&r?void 0:"read_only";return{effectiveValue:"orion-blocksmith",inheritedValue:"orion-blocksmith",source:"internal",scope:"global",applies:"live",overridden:!1,writable:n==="ready"&&r,...o?{blockedReason:o}:{}}}function mg(n){return typeof n=="string"&&tg.includes(n)}function gg(n){return typeof n=="string"&&np.includes(n)}function vg(n){return typeof n=="string"&&rg.includes(n)}function yg(n){return typeof n=="string"&&!!n.trim()}const Io="/api/v1",xg="x-orion-web-nonce",rc=100,wg=50,hn=/^[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 Pe extends Error{constructor(o,a,d,f){super(o);Ht(this,"status");Ht(this,"code");Ht(this,"type");this.status=a,this.code=d,this.type=f,this.name="WebApiError"}}class kg{constructor(){Ht(this,"nonce","")}async bootstrap(){const r=await this.query("/bootstrap");if(!In(r)||r.apiVersion!==1||typeof r.nonce!="string")throw new Pe("Web Host 返回了不兼容的启动协议。",502);return this.nonce=r.nonce,{...r,settings:tc(r.settings)}}async listWorkspaces(r,o){const a=await this.collectionPage(ze("/workspaces",r),o),d=a.items.find(f=>f.active);return{activeId:d?.id??"",activePath:d?.path??"",workspaces:a.items,nextCursor:a.nextCursor}}async listWorkspaceSessions(r,o,a){const d=await this.collectionPage(ze(`/workspaces/${encodeURIComponent(r)}/sessions`,o),a);return{sessions:d.items,nextCursor:d.nextCursor}}workspaceProjectSummary(r,o){return this.query(ze(`/workspaces/${encodeURIComponent(r)}/summary`,o))}async listSessions(r,o){const a=await this.collectionPage(ze("/sessions",r),o);return{sessions:a.items,nextCursor:a.nextCursor}}diagnostics(r){return this.query(ze("/diagnostics",r))}async settings(){return tc(await this.query("/settings"))}async sessionSnapshot(r,o,a){const d=`/sessions/${encodeURIComponent(r)}/snapshot`;return this.query(Ka(ze(d,o),a??null,!0,wg))}composerState(r,o){return this.query(ze(`/sessions/${encodeURIComponent(r)}/composer-state`,o))}modelCatalog(r,o,a){return this.query(Ka(ze(`/sessions/${encodeURIComponent(r)}/model-catalog`,o),a??null,!1,rc))}composerAction(r,o){return this.mutate(`/sessions/${encodeURIComponent(r)}/composer-actions`,"POST",{...o,requestId:Ae()})}async skills(r,o){const a=await this.collectionPage(ze("/skills",r),o);return{skills:a.items,nextCursor:a.nextCursor}}async mcp(r,o){const a=await this.collectionPage(ze("/mcp",r),o);return{servers:a.items,nextCursor:a.nextCursor}}async toolDetails(r,o){const a=await this.collectionPage(ze("/tool-details",r),o);return{details:a.items,nextCursor:a.nextCursor}}readToolDetail(r,o,a=0,d=64*1024){const f=new URLSearchParams({offsetBytes:String(a),limitBytes:String(d)});return Nn(f,o),this.query(`/tool-details/${encodeURIComponent(r)}?${f.toString()}`)}listFiles(r,o,a){const d=new URLSearchParams({pageSize:"100"});return Nn(d,r),o&&d.set("parentId",o),a&&d.set("cursor",a),this.query(`/files?${d.toString()}`)}readFileContent(r,o,a){const d=new URLSearchParams({limitBytes:String(65536)});return Nn(d,o),a&&d.set("cursor",a),this.query(`/files/${encodeURIComponent(r)}/content?${d.toString()}`)}writeFileContent(r,o,a,d){return this.mutate("/files/write","POST",{...r,fileId:o,content:a,expectedRevision:d,requestId:Ae()},{"X-Orion-User-Gesture":"file-mutation-v1"})}gitStatus(r,o,a){const d=new URLSearchParams({pageSize:"200"});return Nn(d,r),o&&d.set("cursor",o),a?.group&&d.set("group",a.group),a?.query&&d.set("query",a.query),this.query(`/git/status?${d.toString()}`)}gitLog(r,o){const a=new URLSearchParams({pageSize:"30"});return Nn(a,r),o&&a.set("cursor",o),this.query(`/git/log?${a.toString()}`)}gitDiff(r,o,a){const d=new URLSearchParams({lineLimit:"240",byteLimit:String(262144)});return Nn(d,o),a&&d.set("cursor",a),this.query(`/git/diff/${encodeURIComponent(r)}?${d.toString()}`)}gitDiffDocument(r,o,a,d,f){const p=new URLSearchParams({lineLimit:"240",byteLimit:String(262144)});return Nn(p,o),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(ze("/review",r))}async terminals(r,o){const a=await this.collectionPage(ze("/terminals",r),o);return{terminals:a.items,nextCursor:a.nextCursor}}createTerminal(r){return this.mutate("/terminals","POST",{...r,requestId:Ae()},{"X-Orion-User-Gesture":"terminal-create-v1"})}terminalAttachTicket(r,o){return this.mutate(`/terminals/${encodeURIComponent(r)}/attach-ticket`,"POST",{...o,requestId:Ae()})}closeTerminal(r,o){return this.mutate(`/terminals/${encodeURIComponent(r)}`,"DELETE",{...o,requestId:Ae()})}terminalSocket(r){const o=location.protocol==="https:"?"wss:":"ws:";return new WebSocket(`${o}//${location.host}${Io}/terminals/${encodeURIComponent(r)}/stream`,"orion-terminal-v1")}async searchFiles(r,o,a,d=50){const f=new URLSearchParams({q:o.slice(0,200),scope:a,limit:String(d)});return Nn(f,r),this.query(`/files/search?${f.toString()}`)}gitStage(r,o,a){return this.mutate("/git/stage","POST",{...r,fileIds:o,expectedRepositoryRevision:a,requestId:Ae()},{"X-Orion-User-Gesture":"git-mutation-v1"})}gitUnstage(r,o,a){return this.mutate("/git/unstage","POST",{...r,fileIds:o,expectedRepositoryRevision:a,requestId:Ae()},{"X-Orion-User-Gesture":"git-mutation-v1"})}gitCommit(r,o){return this.mutate("/git/commit","POST",{...r,summary:o.summary,...o.body===void 0?{}:{body:o.body},expectedRepositoryRevision:o.expectedRepositoryRevision,requestId:o.requestId},{"X-Orion-User-Gesture":"git-mutation-v1"})}gitCompare(r,o){const a=new URLSearchParams({base:o.baseRef,head:o.headRef,mode:o.mode});return this.query(ze(`/git/compare?${a.toString()}`,r))}gitCompareFileDiff(r,o){const a=new URLSearchParams({baseOid:o.baseOid,headOid:o.headOid,path:o.path});return o.cursor&&a.set("cursor",o.cursor),this.query(ze(`/git/compare/file?${a.toString()}`,r))}gitRefs(r){return this.query(ze("/git/refs",r))}gitHistory(r,o){const a=new URLSearchParams;for(const[d,f]of Object.entries(o))f!==void 0&&f!==""&&a.set(d,String(f));return this.query(ze(`/git/history?${a.toString()}`,r))}gitCommitDetail(r,o,a=0){const d=new URLSearchParams({parent:String(a)});return this.query(ze(`/git/commit/${encodeURIComponent(o)}?${d.toString()}`,r))}gitCommitFiles(r,o,a=0){const d=new URLSearchParams({parent:String(a)});return this.query(ze(`/git/commit/${encodeURIComponent(o)}/files?${d.toString()}`,r))}gitCommitDiff(r,o){const a=new URLSearchParams({path:o.path,parent:String(o.parentIndex??0)});return o.cursor&&a.set("cursor",o.cursor),this.query(ze(`/git/commit/${encodeURIComponent(o.oid)}/diff?${a.toString()}`,r))}gitFilesTarget(r,o){const a=new URLSearchParams({fileToken:o});return this.query(ze(`/git/files-target?${a.toString()}`,r))}gitGraph(r,o=200){const a=new URLSearchParams({limit:String(o)});return this.query(ze(`/git/graph?${a.toString()}`,r))}gitConflictVersions(r,o){const a=new URLSearchParams({path:o});return this.query(ze(`/git/conflict?${a.toString()}`,r))}gitBlob(r,o){const a=new URLSearchParams({path:o.path,rev:o.rev});return this.query(ze(`/git/blob?${a.toString()}`,r))}gitSubmodules(r){return this.query(ze("/git/submodules",r))}gitBlame(r,o){const a=new URLSearchParams({path:o.path});return o.rev&&a.set("rev",o.rev),o.limit!==void 0&&a.set("limit",String(o.limit)),this.query(ze(`/git/blame?${a.toString()}`,r))}gitFileHistory(r,o){const a=new URLSearchParams({path:o.path});return o.rev&&a.set("rev",o.rev),o.limit!==void 0&&a.set("limit",String(o.limit)),this.query(ze(`/git/file-history?${a.toString()}`,r))}gitCommitPreview(r){return this.query(ze("/git/commit/preview",r))}gitApplyPatch(r,o){return this.mutate("/git/patch","POST",{...r,fileId:o.fileId,...o.hunkIds?{hunkIds:[...o.hunkIds]}:{},...o.lineIds?{lineIds:[...o.lineIds]}:{},expectedRepositoryRevision:o.expectedRepositoryRevision,requestId:Ae()},{"X-Orion-User-Gesture":"git-mutation-v1"})}activateContext(r){return this.mutate("/context/activate","POST",{...r,requestId:Ae()})}async setWorkspacePinned(r,o,a){return(await this.mutate(`/workspaces/${encodeURIComponent(r)}/pin`,"POST",{requestId:Ae(),pinned:o,...a})).workspace}removeWorkspace(r,o){return this.mutate(`/workspaces/${encodeURIComponent(r)}`,"DELETE",{requestId:Ae(),...o})}async activateWorkspace(r,o){const a=await this.mutate("/workspaces/activate","POST",{requestId:Ae(),path:r,...o});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:Ae(),...r.title?{title:r.title}:{},...r.initialPath?{initialPath:r.initialPath}:{}})}async inspectWorkspace(r,o){return(await this.mutate("/workspaces/inspect","POST",{requestId:Ae(),path:r,...o?{source:o}:{}})).candidate}async listWorkspaceRoots(){return this.query("/workspaces/roots").then(r=>r.roots)}async addWorkspaceRoot(r){return(await this.mutate("/workspaces/roots/add","POST",{requestId:Ae(),path:r})).root}async removeWorkspaceRoot(r){return(await this.mutate("/workspaces/roots/remove","POST",{requestId:Ae(),rootId:r})).removed}async discoverWorkspaceRoot(r,o={}){return this.mutate("/workspaces/roots/discover","POST",{requestId:Ae(),rootId:r,refresh:o.refresh??!0})}async createSession(r){return(await this.mutate("/sessions","POST",{requestId:Ae(),...r})).session}activateSession(r,o){return this.mutate(`/sessions/${encodeURIComponent(r)}/activate`,"POST",{requestId:Ae(),...o})}async renameSession(r,o,a){return(await this.mutate(`/sessions/${encodeURIComponent(r)}`,"PATCH",{requestId:Ae(),name:o,...a})).session}async updateSessionTags(r,o,a){return(await this.mutate(`/sessions/${encodeURIComponent(r)}/tags`,"POST",{requestId:Ae(),tags:[...o],...a})).session}async archiveSession(r,o){return(await this.mutate(`/sessions/${encodeURIComponent(r)}/archive`,"POST",{requestId:Ae(),...o})).session}async restoreSession(r,o){return(await this.mutate(`/sessions/${encodeURIComponent(r)}/restore`,"POST",{requestId:Ae(),...o})).session}async deleteSession(r,o){await this.mutate(`/sessions/${encodeURIComponent(r)}`,"DELETE",{requestId:Ae(),...o})}async listArchivedWorkspaceSessions(r,o,a){const d=await this.collectionPage(ze(`/workspaces/${encodeURIComponent(r)}/sessions/archived`,o),a);return{sessions:d.items,nextCursor:d.nextCursor}}command(r){return this.mutate("/commands","POST",{...r,requestId:Ae()})}async updateSettings(r,o,a,d=Ae()){const f=await this.mutate("/settings","PATCH",{operations:o,expectedRevision:r,...a,requestId:d}),p=ig(f);if(p.requestId!==d)throw new Pe("Host 返回了其他设置请求的结果。",502,"settings_response_invalid");const g=o.map(x=>x.key);if(p.appliedKeys.length!==g.length||g.some(x=>!p.appliedKeys.includes(x)))throw new Pe("Host 返回的设置字段与提交内容不一致。",502,"settings_response_invalid");return p}openSettingsDocument(){return this.mutate("/settings/open-document","POST",{requestId:Ae()})}connectEvents(r){let o=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(`${Io}/events?cursor=${o}`),a.onopen=()=>{f=0,r.onStatus("live",f)},a.addEventListener("orion",C=>{if(!(p||g))try{const _=jg(C.data);if(_.type==="replay_reset"){o=_.cursor,r.onEvent(_),g=!0,a?.close(),a=null,window.clearTimeout(d);return}if(_.cursor<=o)return;o=_.cursor,r.onEvent(_)}catch(_){r.onProtocolError?.(_ instanceof Error?_.message:"无法解析 Web Host 事件流消息。")}}),a.onerror=()=>{if(a?.close(),a=null,p||g)return;f+=1,r.onStatus(navigator.onLine?"reconnecting":"offline",f);const C=Math.min(1e4,500*2**Math.min(f,5));window.clearTimeout(d),d=window.setTimeout(x,C)}}},w=()=>{p||g||a||(window.clearTimeout(d),x())},R=()=>{window.clearTimeout(d),a?.close(),a=null,!g&&r.onStatus("offline",f)};return window.addEventListener("online",w),window.addEventListener("offline",R),x(),{close(){p=!0,window.clearTimeout(d),a?.close(),a=null,window.removeEventListener("online",w),window.removeEventListener("offline",R)},cursor:()=>o}}collectionPage(r,o){return this.query(Ka(r,o??null,!1,rc))}async query(r){const o=await fetch(`${Io}${r}`,{method:"GET",headers:{Accept:"application/json"},credentials:"same-origin",cache:"no-store"});return nf(o)}async mutate(r,o,a,d={}){if(!this.nonce)throw new Pe("Web Workbench 尚未完成安全握手。",503);const f=await fetch(`${Io}${r}`,{method:o,headers:{Accept:"application/json","Content-Type":"application/json",[xg]:this.nonce,...d},credentials:"same-origin",cache:"no-store",body:JSON.stringify(a)});return nf(f)}}async function nf(n){const o=(n.headers.get("content-type")??"").includes("json")?await n.json().catch(()=>null):null;if(!n.ok){const a=In(o)?o:{},d=typeof a.detail=="string"?a.detail:`请求失败 (${n.status})`;throw new Pe(d,n.status,typeof a.code=="string"?a.code:void 0,typeof a.type=="string"?a.type:void 0)}return o}function jg(n){const r=JSON.parse(n);if(!In(r)||r.apiVersion!==1||typeof r.eventId!="string"||!hn.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))||!In(r.payload))throw new Error("Web Host 事件流消息不符合 Web protocol v1。");if(r.type==="runtime_event"){const o=r.payload.value;if(!In(o)||typeof r.payload.eventType!="string"||o.type!==r.payload.eventType)throw new Error("Web Host 事件流消息判别字段不一致。")}if(r.type==="thread_event"&&(!In(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"||!hn.test(r.payload.contextRevision)||typeof r.payload.workspaceId!="string"||!hn.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 og(r);if(r.type==="session_runtime_changed"&&(!In(r.payload.runtime)||r.sessionId!==r.payload.runtime.sessionId||!Sg(r.payload.runtime)))throw new Error("Session Runtime 状态事件无效。");if(r.type==="workspace_mutation_changed"){const o=r.payload.state;if(typeof r.sessionId!="string"||r.durable!==!1||!In(o)||typeof o.callId!="string"||o.callId.length<1||!["queued","running","completed","failed","cancelled"].includes(String(o.phase))||(o.phase==="queued"?!Number.isSafeInteger(o.queuePosition)||o.queuePosition<1:o.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"||!hn.test(r.payload.workspaceId)||!Array.isArray(r.payload.resources)||r.payload.resources.length<1||r.payload.resources.some(o=>!["files","git","review"].includes(String(o)))||!["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||!In(r.payload.state)||r.payload.state.apiVersion!==1||r.payload.state.sessionId!==r.sessionId||typeof r.payload.state.controlRevision!="string"||!hn.test(r.payload.state.controlRevision)||typeof r.payload.state.contextRevision!="string"||!hn.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 Sg(n){const r=n.phase==="queued";return typeof n.workspaceId=="string"&&hn.test(n.workspaceId)&&typeof n.sessionId=="string"&&hn.test(n.sessionId)&&typeof n.runtimeRevision=="string"&&hn.test(n.runtimeRevision)&&["cold","starting","idle","queued","running","waiting_approval","stopping","interrupted","failed"].includes(String(n.phase))&&Number.isSafeInteger(n.pendingApprovalCount)&&n.pendingApprovalCount>=0&&typeof n.resident=="boolean"&&Number.isSafeInteger(n.estimatedBytes)&&n.estimatedBytes>=0&&typeof n.updatedAt=="string"&&(r?typeof n.queueId=="string"&&hn.test(n.queueId)&&Number.isSafeInteger(n.queuePosition)&&n.queuePosition>=1:n.queueId===void 0&&n.queuePosition===void 0)}function Ka(n,r=null,o=!1,a=rc){const d=new URLSearchParams({pageSize:String(a)});return r&&d.set("cursor",r),o&&d.set("tail","1"),`${n}${n.includes("?")?"&":"?"}${d.toString()}`}function Nn(n,r){n.set("expectedContextRevision",r.expectedContextRevision),n.set("workspaceId",r.workspaceId)}function ze(n,r){const o=new URLSearchParams;return Nn(o,r),`${n}${n.includes("?")?"&":"?"}${o.toString()}`}function In(n){return!!n&&typeof n=="object"&&!Array.isArray(n)}function Ae(){if(typeof crypto.randomUUID=="function")return crypto.randomUUID();const n=crypto.getRandomValues(new Uint8Array(16));n[6]=n[6]&15|64,n[8]=n[8]&63|128;const r=[...n].map(o=>o.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 Cg({state:n,actions:r,insertion:o}){const a=n.workspaceId,d=n.activeSessionId??"",[f,p]=m.useState({workspaceId:a,sessionId:d,text:"",references:[]}),[g,x]=m.useState(null),[w,R]=m.useState(""),[C,_]=m.useState(new Set),P=m.useRef(null),$=`${a}:${d}`,O=m.useRef($);O.current=$;const W=`${f.workspaceId}:${f.sessionId}`,te=!d||!n.bootstrap?.configured||n.connection!=="live"||!Ir(n),z=!!n.pendingAction,oe=n.sessionSnapshot?.sessionRuntime.phase==="queued",J=!te&&!z,re=J&&!oe;m.useEffect(()=>{if(!a||!d){p({workspaceId:a,sessionId:d,text:"",references:[]});return}const V=Bm(a,d);p({workspaceId:a,sessionId:d,text:V?.text??"",references:V?.references??[]}),R(""),_(new Set)},[a,d]),m.useEffect(()=>{if(!(!f.workspaceId||!f.sessionId))try{f.text||f.references.length>0?Um(f):tf(f.workspaceId,f.sessionId),R("")}catch(V){R(V instanceof Error?V.message:"草稿无法保存。")}},[f]),m.useEffect(()=>{!o||!d||W!==$||(p(V=>({...V,text:V.text.trim()?`${V.text.trimEnd()}
|
|
15
|
+
|
|
16
|
+
${o.text}`:o.text})),requestAnimationFrame(()=>P.current?.focus()))},[$,W,o,d]);const N=W===$?f.text:"",L=W===$?f.references:[],se=V=>p(je=>({...je,workspaceId:a,sessionId:d,text:V})),Ne=V=>{const je=new Set(V.map(ci));_(A=>new Set([...A].filter(pe=>je.has(pe)))),p(A=>({...A,workspaceId:a,sessionId:d,references:V}))},we=async V=>{const je=N.trim();if(!je||!re)return;const A=$;try{V==="queue"?await r.queue(je,L):await r.submit(je,L),tf(a,d),_(new Set),O.current===A&&p({workspaceId:a,sessionId:d,text:"",references:[]}),P.current?.focus()}catch(pe){pe instanceof Pe&&["context_reference_stale","context_reference_forbidden"].includes(pe.code??"")&&_(new Set(L.map(ci))),R(pe instanceof Error?pe.message:"发送失败,草稿已保留。"),P.current?.focus()}},Z=V=>{V.preventDefault(),we(n.processing?"queue":"submit")},Q=V=>{V.key!=="Enter"||V.shiftKey||V.nativeEvent.isComposing||(V.preventDefault(),n.processing&&(V.metaKey||V.ctrlKey)?we("submit"):we(n.processing?"queue":"submit"))};return i.jsxs("div",{className:"composer-control-center",children:[n.composer?.planReview?.status==="awaiting_review"?i.jsx(Rg,{state:n,actions:r}):null,L.length>0?i.jsx(Eg,{references:L,invalidReferenceKeys:C,onChange:Ne}):null,i.jsxs("form",{className:"composer composer-v032",onSubmit:Z,children:[i.jsx("label",{htmlFor:"orion-composer",className:"sr-only",children:"发送给 Orion"}),i.jsx("textarea",{ref:P,id:"orion-composer",rows:3,maxLength:1e6,value:N,onChange:V=>se(V.target.value),onKeyDown:Q,placeholder:z?"正在同步会话控制状态…":oe?`任务正在排队${n.sessionSnapshot?.sessionRuntime.queuePosition?`(第 ${n.sessionSnapshot.sessionRuntime.queuePosition} 位)`:""}`:te?"选择会话并配置模型后开始":n.processing?"输入后续消息;Enter 排队,⌘/Ctrl+Enter Steer":"描述任务,或输入 / 查看命令…",disabled:!re}),i.jsxs("div",{className:"composer-toolbar composer-control-toolbar",children:[i.jsxs("div",{className:"composer-controls composer-control-row",children:[i.jsx(_g,{state:n,actions:r,disabled:!re,references:L,onChange:Ne,onInsertCommand:()=>se(N.trim()?`${N.trimEnd()}
|
|
17
|
+
/`:"/")}),i.jsx(sc,{label:Og(n),accessibleLabel:"工作模式",disabled:!re,value:n.composer?.mode.baseMode??n.mode.baseMode,options:[{value:"interactive",label:"BUILD",detail:"执行、修改并验证当前任务"},{value:"plan",label:"PLAN",detail:"生成计划并等待你的审核"},{value:"auto",label:"AUTO",detail:"自主执行,仍受权限与沙箱约束"}],onSelect:V=>{V==="auto"?x("auto"):Tt(r.setMode(V))}}),i.jsx(sc,{label:Lg(n),accessibleLabel:"会话权限",disabled:!re,value:n.composer?.permission.override??"inherit",options:[{value:"inherit",label:"继承项目",detail:`当前 ${n.composer?.permission.projectDefault??"ask"}`},{value:"ask",label:"ASK",detail:"高风险工具逐次请求批准"},{value:"allow",label:"ALLOW",detail:"允许策略许可的工具,不绕过沙箱"},{value:"deny",label:"DENY",detail:"拒绝需要授权的工具"}],onSelect:V=>{V==="allow"?x("allow"):Tt(r.setPermissionOverride(V==="inherit"?null:V))}})]}),i.jsxs("div",{className:"composer-actions composer-control-actions",children:[i.jsx(bg,{state:n,actions:r,disabled:!re}),i.jsx(Ig,{state:n,actions:r,disabled:!re}),n.processing?i.jsxs(i.Fragment,{children:[i.jsxs("button",{type:"button",className:"icon-text-button stop-button",onClick:()=>Tt(r.interrupt()),disabled:!re,children:[i.jsx(G,{name:"stop",size:14}),"停止"]}),i.jsx("button",{type:"button",className:"secondary-button",onClick:()=>{we("submit")},disabled:!N.trim()||!re,children:"Steer"})]}):null,oe?i.jsx("button",{type:"button",className:"secondary-button",onClick:()=>Tt(r.cancelQueuedTurn()),disabled:!J,children:"取消排队"}):null,i.jsx("button",{type:"submit",className:"send-button composer-send-icon","aria-label":n.processing?"加入消息队列":"发送消息",disabled:!re||!N.trim(),children:i.jsx(G,{name:"arrow-up",size:17})})]})]}),L.length>0||w||n.composer?.lastError?i.jsxs("div",{className:"composer-footline",children:[L.length>0?i.jsxs("span",{children:[L.length," 个 Context 引用"]}):null,w?i.jsx("span",{role:"alert",children:w}):n.composer?.lastError?i.jsx("span",{role:"alert",children:n.composer.lastError.message}):null]}):null]}),g?i.jsx(Pg,{kind:g,onCancel:()=>x(null),onConfirm:()=>{const V=g;x(null),Tt(V==="auto"?r.setMode("auto"):r.setPermissionOverride("allow"))}}):null]})}function bg({state:n,actions:r,disabled:o}){const a=n.composer?.model,d=["auto",...a?.effort.supportedLevels??[]];return i.jsxs("div",{className:"model-control-cluster",children:[i.jsx(Ng,{state:n,actions:r,disabled:o}),a?.effort.supported?i.jsx(sc,{label:n.composer?.pending.model?`${_o(a.effort.requested)} → ${_o(n.composer.pending.model.effort)}`:_o(a.effort.requested),accessibleLabel:"推理强度",disabled:o,value:a.effort.requested,options:d.map(f=>({value:f,label:_o(f),detail:f==="auto"?"采用模型或项目默认值":`请求 ${f} reasoning effort`})),onSelect:f=>Tt(r.selectModel(a.modelId,f))}):null]})}function Ng({state:n,actions:r,disabled:o}){const[a,d]=m.useState(!1),[f,p]=m.useState(""),g=m.useRef(null),x=m.useRef(null),w=m.useRef(null),R=n.composer?.model,C=n.modelCatalog,_=n.composer?.pending.model?`${R?.modelId??"模型"} → ${n.composer.pending.model.modelId}`:R?.modelId??"模型",P=f.trim().toLowerCase(),$=new Set((C?.unavailableProviders??[]).map(z=>z.id)),O=(C?.items??[]).filter(z=>!$.has(z.providerId)).filter(z=>[z.id,z.label,z.providerId,z.providerLabel].some(oe=>oe.toLowerCase().includes(P))).slice(0,80),W=new Map;for(const z of O){const oe=z.providerLabel||z.providerId;W.set(oe,[...W.get(oe)??[],z])}const te=()=>{d(!1),p(""),x.current?.focus()};return Jo(a,g,te),i.jsxs("div",{className:"control-menu",ref:g,children:[i.jsxs("button",{ref:x,type:"button",className:"composer-control-trigger","aria-label":"会话模型","aria-haspopup":"menu","aria-expanded":a,disabled:o,onClick:()=>{a?te():(d(!0),C||Tt(r.loadModelCatalog()))},children:[i.jsx("span",{children:_}),i.jsx(G,{name:"chevron",size:12})]}),a?i.jsxs("div",{className:"control-menu-popover model-catalog-popover",role:"menu","aria-label":"会话模型",ref:w,onKeyDown:z=>mc(z,te),children:[(C?.items.length??0)>8?i.jsxs("label",{className:"model-catalog-search",children:[i.jsx("span",{className:"sr-only",children:"筛选模型"}),i.jsx("input",{type:"search",value:f,placeholder:"筛选模型…",onChange:z=>p(z.target.value),onKeyDown:z=>{z.key==="ArrowDown"?(z.preventDefault(),rp(w.current)):z.key==="Escape"&&(z.stopPropagation(),te())}})]}):null,C===null?i.jsx("p",{role:"status",children:"正在加载模型…"}):null,C&&O.length===0?i.jsx("p",{children:"没有匹配的可用模型"}):null,[...W.entries()].map(([z,oe])=>i.jsxs("section",{role:"group","aria-label":z,children:[i.jsx("div",{className:"model-provider-heading",children:z}),oe.map(J=>i.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":J.id===R?.modelId,onClick:()=>{te(),Tt(r.selectModel(J.id))},children:[i.jsxs("span",{children:[i.jsx("strong",{children:J.label}),i.jsxs("small",{children:[os(J.contextWindow)," context",J.reasoning?" · reasoning":""]})]}),J.id===R?.modelId?i.jsx(G,{name:"check",size:14}):null]},J.id))]},z)),C?.unavailableProviders.map(z=>i.jsxs("section",{role:"group","aria-label":`${z.id} 不可用`,children:[i.jsxs("div",{className:"model-provider-heading state-error",children:[z.id," · 不可用"]}),i.jsx("p",{children:z.reason}),i.jsx("button",{type:"button",role:"menuitem",onClick:()=>Tt(r.loadModelCatalog()),children:"Retry"})]},z.id)),(C?.items.length??0)>80&&!P?i.jsx("p",{children:"显示前 80 项;输入关键词继续筛选。"}):null]}):null]})}function Ig({state:n,actions:r,disabled:o}){const[a,d]=m.useState(!1),f=m.useRef(null),p=m.useRef(null),g=n.composer?.contextUsage,x=g?Math.max(0,Math.min(100,g.percent)):null,w=g?.source==="estimated",R=!!(g&&g.percent>=g.warningThresholdPercent);return Jo(a,f,()=>{d(!1),p.current?.focus()}),i.jsxs("div",{className:"context-meter-wrap",ref:f,children:[i.jsxs("button",{ref:p,type:"button",className:"context-meter-button","aria-label":g?`Context ${w?"估算 ":""}${g.usedTokens} / ${g.safeInputBudget??g.contextWindow} tokens,${g.percent}%${R?",接近压缩阈值":""}`:"Context 用量不可用","aria-haspopup":"dialog","aria-expanded":a,disabled:o,onClick:()=>d(C=>!C),children:[i.jsx("span",{className:"context-meter-ring",style:{"--context-percent":`${x??0}%`},"aria-hidden":"true"}),i.jsx("span",{children:g?`${w?"~":""}${g.percent}%${R?" !":""}`:"Context"})]}),a?i.jsxs("section",{className:"context-popover",role:"dialog","aria-label":"Context 用量详情",children:[i.jsxs("header",{children:[i.jsx("strong",{children:"Context"}),i.jsx("button",{type:"button",className:"icon-button",onClick:()=>d(!1),"aria-label":"关闭 Context 详情",children:i.jsx(G,{name:"close",size:14})})]}),g?i.jsxs("dl",{children:[i.jsxs("div",{children:[i.jsx("dt",{children:"当前模型"}),i.jsx("dd",{children:g.modelId})]}),i.jsxs("div",{children:[i.jsx("dt",{children:"已使用"}),i.jsx("dd",{children:os(g.usedTokens)})]}),i.jsxs("div",{children:[i.jsx("dt",{children:"安全输入预算"}),i.jsx("dd",{children:os(g.safeInputBudget??g.contextWindow)})]}),i.jsxs("div",{children:[i.jsx("dt",{children:"原始窗口"}),i.jsx("dd",{children:os(g.contextWindow)})]}),i.jsxs("div",{children:[i.jsx("dt",{children:"输出预留"}),i.jsx("dd",{children:os(g.reservedOutputTokens??0)})]}),i.jsxs("div",{children:[i.jsx("dt",{children:"安全余量"}),i.jsx("dd",{children:os(g.safetyMarginTokens??0)})]}),i.jsxs("div",{children:[i.jsx("dt",{children:"来源"}),i.jsx("dd",{children:g.source==="estimated"?"估算 ~":g.source})]}),i.jsxs("div",{children:[i.jsx("dt",{children:"警告阈值"}),i.jsxs("dd",{children:[g.warningThresholdPercent,"%"]})]}),i.jsxs("div",{children:[i.jsx("dt",{children:"自动压缩"}),i.jsx("dd",{children:g.autoCompactEnabled?`${g.autoCompactThresholdPercent}%`:"关闭"})]})]}):i.jsx("p",{children:"Runtime 尚未提供当前模型的 Context 计数。"}),n.composer?.compactAvailable?i.jsx("button",{type:"button",className:"secondary-button",disabled:!g||n.processing,onClick:()=>Tt(r.compactContext()),children:"立即压缩"}):null]}):null]})}function _g({state:n,actions:r,disabled:o,references:a,onChange:d,onInsertCommand:f}){const[p,g]=m.useState(!1),[x,w]=m.useState("root"),[R,C]=m.useState([]),[_,P]=m.useState(!1),[$,O]=m.useState(""),W=m.useRef(null),te=m.useRef(null);Jo(p,W,()=>g(!1));const z=N=>{a.some(L=>L.kind===N.kind&&L.id===N.id)||d([...a,N]),g(!1),w("root")},oe=async()=>{w("files"),P(!0),O("");try{const N=await r.listFiles();C(N.items.filter(L=>L.readable&&!L.sensitive))}catch(N){O(N instanceof Error?N.message:"文件列表加载失败。")}finally{P(!1)}},J=async N=>{P(!0),O("");try{if(sf(N)){const L=await r.listFiles(N.id);z({kind:"folder",id:N.id,label:N.name,revision:L.revision})}else if(Ag(N)){const L=await r.readFileContent(N.id);if(L.binary||L.sensitive)throw new Error("该文件不能加入模型 Context。");z({kind:"file",id:N.id,label:N.name,revision:L.revision})}}catch(L){O(L instanceof Error?L.message:"Context 引用加载失败。")}finally{P(!1)}},re=async()=>{P(!0);try{const N=await r.review();z({kind:"review",id:"working-tree",label:N.truncated?`Review · ${N.totalChangedFiles} files · ${N.changedFiles.length} visible`:`Review · ${N.totalChangedFiles} files`,gitRevision:N.repositoryRevision})}catch(N){O(N instanceof Error?N.message:"Review Context 加载失败。")}finally{P(!1)}};return i.jsxs("div",{className:"control-menu context-launcher",ref:W,children:[i.jsx("button",{type:"button",className:"context-add-button","aria-label":"添加 Context","aria-haspopup":"menu","aria-expanded":p,disabled:o,onClick:()=>{const N=!p;g(N),N&&requestAnimationFrame(()=>rp(te.current))},children:i.jsx(G,{name:"add",size:17})}),p?i.jsxs("div",{className:"control-menu-popover context-launcher-menu",role:"menu","aria-label":"添加 Context",ref:te,onKeyDown:N=>mc(N,()=>g(!1)),children:[x!=="root"?i.jsx("button",{type:"button",role:"menuitem",onClick:()=>w("root"),children:"← 返回"}):null,x==="root"?i.jsxs(i.Fragment,{children:[i.jsx(bn,{label:"文件或目录",detail:"Workspace 内受控读取",onClick:()=>{oe()}}),i.jsx(bn,{label:"当前 Review",detail:"绑定 exact Git revision",onClick:()=>{re()}}),i.jsx(bn,{label:"历史 Session",detail:"引用受控摘要",onClick:()=>w("sessions")}),i.jsx(bn,{label:"Skill",detail:"绑定已加载能力 digest",onClick:()=>w("skills")}),i.jsx(bn,{label:"命令",detail:"插入 / 命令入口",onClick:()=>{f(),g(!1)}}),a.length>0?i.jsx(bn,{label:"清除 Context",detail:"移除当前草稿全部引用",onClick:()=>{d([]),g(!1)}}):null]}):null,x==="files"?R.map(N=>i.jsx(bn,{label:N.name,detail:sf(N)?"目录":`${N.sizeBytes??0} bytes`,onClick:()=>{J(N)}},N.id)):null,x==="sessions"?n.sessions.filter(N=>N.id!==n.activeSessionId).map(N=>i.jsx(bn,{label:N.name||`Session ${N.id.slice(0,8)}`,detail:`${N.messageCount} 条消息`,onClick:()=>z({kind:"session",id:N.id,label:N.name||`Session ${N.id.slice(0,8)}`,digest:N.contextDigest})},N.id)):null,x==="skills"?n.skills.filter(N=>N.userInvocable).map(N=>i.jsx(bn,{label:N.name,detail:N.description,onClick:()=>z({kind:"skill",id:N.id,label:N.name,digest:N.digest})},N.id)):null,_?i.jsx("p",{role:"status",children:"正在加载…"}):null,$?i.jsx("p",{role:"alert",children:$}):null]}):null]})}function Eg({references:n,invalidReferenceKeys:r,onChange:o}){return i.jsx("div",{className:"context-tray","aria-label":"当前 Context 引用",children:n.map(a=>i.jsxs("span",{className:`context-chip${r.has(ci(a))?" state-stale":""}`,children:[i.jsx("small",{children:$g(a.kind)}),i.jsx("span",{children:a.label}),r.has(ci(a))?i.jsx("span",{className:"context-chip-state",children:"已失效,请移除后重新添加"}):null,i.jsx("button",{type:"button","aria-label":`移除 Context ${a.label}`,onClick:()=>o(n.filter(d=>d!==a)),children:i.jsx(G,{name:"close",size:12})})]},ci(a)))})}function Rg({state:n,actions:r}){const o=n.composer.planReview,[a,d]=m.useState(!1),[f,p]=m.useState(""),g=!!n.pendingAction||n.connection!=="live"||!Ir(n);return i.jsxs("section",{className:"plan-review-card","aria-labelledby":"plan-review-title",children:[i.jsxs("div",{children:[i.jsx("span",{className:"eyebrow",children:"PLAN REVIEW"}),i.jsx("h2",{id:"plan-review-title",children:"计划已保存,尚未执行"}),i.jsxs("p",{children:["由 ",o.createdModel," 创建 · digest ",o.planDigest.slice(0,12)]})]}),a?i.jsxs("label",{children:["继续规划反馈",i.jsx("textarea",{rows:2,value:f,onChange:x=>p(x.target.value)})]}):null,i.jsxs("div",{className:"plan-review-actions",children:[i.jsx("button",{type:"button",className:"danger-ghost-button",disabled:g,onClick:()=>Tt(r.reviewPlan(o.planDigest,"cancel")),children:"取消计划"}),a?i.jsx("button",{type:"button",className:"secondary-button",disabled:g||!f.trim(),onClick:()=>Tt(r.reviewPlan(o.planDigest,"continue",f.trim())),children:"提交反馈"}):i.jsx("button",{type:"button",className:"secondary-button",disabled:g,onClick:()=>d(!0),children:"继续规划"}),i.jsx("button",{type:"button",className:"primary-button",disabled:g,onClick:()=>Tt(r.reviewPlan(o.planDigest,"approve")),children:"批准并进入 BUILD"})]})]})}function sc({label:n,accessibleLabel:r,value:o,options:a,disabled:d,emptyLabel:f,onOpen:p,onSelect:g}){const[x,w]=m.useState(!1),R=m.useRef(null),C=m.useRef(null),_=m.useRef(null),P=m.useId(),$=()=>{w(!1),C.current?.focus()},O=()=>{w(!0),p?.(),requestAnimationFrame(()=>Tg(_.current))};return Jo(x,R,$),i.jsxs("div",{className:"control-menu",ref:R,children:[i.jsxs("button",{ref:C,type:"button",className:"composer-control-trigger","aria-label":r,"aria-haspopup":"menu","aria-expanded":x,"aria-controls":x?P:void 0,disabled:d,onClick:()=>{x?$():O()},onKeyDown:W=>{W.key==="ArrowDown"&&(W.preventDefault(),O())},children:[i.jsx("span",{children:n}),i.jsx(G,{name:"chevron",size:12})]}),x?i.jsx("div",{id:P,ref:_,className:"control-menu-popover",role:"menu","aria-label":r,onKeyDown:W=>mc(W,$),children:a.length===0?i.jsx("p",{children:f??"没有选项"}):a.map(W=>i.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":W.value===o,onClick:()=>{$(),g(W.value)},children:[i.jsxs("span",{children:[i.jsx("strong",{children:W.label}),i.jsx("small",{children:W.detail})]}),W.value===o?i.jsx(G,{name:"check",size:14}):null]},W.value))}):null]})}function bn({label:n,detail:r,onClick:o}){return i.jsx("button",{type:"button",role:"menuitem",onClick:o,children:i.jsxs("span",{children:[i.jsx("strong",{children:n}),i.jsx("small",{children:r})]})})}function Pg({kind:n,onCancel:r,onConfirm:o}){const[a,d]=m.useState(!1),f=m.useRef(null),p=m.useRef(null);return m.useEffect(()=>{const g=document.querySelector(n==="auto"?'[aria-label="工作模式"]':'[aria-label="会话权限"]');return p.current?.focus(),()=>g?.focus()},[n]),i.jsx("div",{className:"modal-backdrop",onPointerDown:g=>{g.target===g.currentTarget&&r()},children:i.jsxs("section",{ref:f,className:"risk-confirmation",role:"alertdialog","aria-modal":"true","aria-labelledby":"risk-title","aria-describedby":"risk-description",onKeyDown:g=>Mg(g,f.current,r),children:[i.jsx("h2",{id:"risk-title",children:n==="auto"?"启用 AUTO 模式?":"启用会话 ALLOW?"}),i.jsx("p",{id:"risk-description",children:n==="auto"?"Orion 会自主执行多个步骤,但仍受 ToolGateway、沙箱与 Workspace containment 约束。":"策略允许的工具将不再逐次询问;硬拒绝、沙箱和 Workspace 边界仍然生效。"}),i.jsxs("label",{children:[i.jsx("input",{type:"checkbox",checked:a,onChange:g=>d(g.target.checked)}),"我理解这会扩大本会话的默认执行范围"]}),i.jsxs("div",{children:[i.jsx("button",{ref:p,type:"button",className:"secondary-button",onClick:r,children:"取消"}),i.jsx("button",{type:"button",className:"primary-button",disabled:!a,onClick:o,children:"确认启用"})]})]})})}function hc(n){return n?[...n.querySelectorAll('[role="menuitem"], [role="menuitemradio"]')].filter(r=>!r.disabled):[]}function rp(n){hc(n)[0]?.focus()}function Tg(n){const r=hc(n);(r.find(o=>o.getAttribute("aria-checked")==="true")??r[0])?.focus()}function mc(n,r){if(n.key==="Escape"){n.preventDefault(),r();return}if(!["ArrowDown","ArrowUp","Home","End"].includes(n.key))return;n.preventDefault();const o=hc(n.currentTarget);if(o.length===0)return;const a=o.indexOf(document.activeElement),d=n.key==="Home"?0:n.key==="End"?o.length-1:n.key==="ArrowDown"?(Math.max(0,a)+1)%o.length:(a<=0?o.length:a)-1;o[d]?.focus()}function Mg(n,r,o){if(n.key==="Escape"){n.preventDefault(),o();return}if(n.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);n.shiftKey&&document.activeElement===d?(n.preventDefault(),f.focus()):!n.shiftKey&&document.activeElement===f&&(n.preventDefault(),d.focus())}function Jo(n,r,o){m.useEffect(()=>{if(!n)return;const a=f=>{r.current?.contains(f.target)||o()},d=f=>{f.key==="Escape"&&o()};return document.addEventListener("pointerdown",a),document.addEventListener("keydown",d),()=>{document.removeEventListener("pointerdown",a),document.removeEventListener("keydown",d)}},[o,n,r])}function rf(n){return n==="plan"?"PLAN":n==="auto"?"AUTO":"BUILD"}function Og(n){const r=n.composer?.mode??n.mode,o=rf(r.baseMode);return r.pendingBaseMode?`${o} → ${rf(r.pendingBaseMode)}`:o}function Lg(n){const r=n.composer?.permission,o=r?.source==="session"?"Session":"Project",a=`${r?.effective.toUpperCase()??"ASK"} · ${o}`;if((n.composer?.mode.baseMode??n.mode.baseMode)==="auto"&&r?.effective!=="deny")return"AUTO · hard policy";const d=n.composer?.pending.permission;return d?`${a} → ${(d.override??r?.projectDefault??"ask").toUpperCase()} · Session`:a}function _o(n){return n==="auto"?"Effort 自动":`Effort ${n}`}function sf(n){return n.kind==="directory"||n.kind==="symlink"&&n.targetKind==="directory"}function Ag(n){return n.kind==="file"||n.kind==="symlink"&&n.targetKind==="file"}function $g(n){return n==="file"?"FILE":n==="folder"?"FOLDER":n==="review"?"REVIEW":n==="session"?"SESSION":"SKILL"}function ci(n){return`${n.kind}:${n.id}`}function Tt(n){n.catch(()=>{})}function os(n){return n>=1e3?`${Math.round(n/1e3)}k`:String(n)}const Dg=48,zg=64,Wg=new Set(["user","assistant"]);function Fg(n,r={}){const o=Bg(r.maxBuckets),a=[...n].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,o),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(qg(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 qg(n,r){const o=[],a=new Set;let d=!1,f=null;for(const p of r)a.has(p.kind)||(a.add(p.kind),o.push(p.kind)),p.priority==="error"&&(d=!0,(!f||p.priority==="error")&&(f=p));if(!f){let p=null;for(const g of r)Wg.has(g.kind)&&(p=g);f=p??r[Math.floor((r.length-1)/2)]}return Object.freeze({index:n,startOrder:r[0].order,endOrder:r.at(-1).order,orders:Object.freeze(r.map(p=>p.order)),kinds:Object.freeze(o),hasError:d,jumpOrder:f.order})}function Bg(n){return typeof n!="number"||!Number.isFinite(n)?Dg:Math.min(zg,Math.max(1,Math.round(n)))}function Ug(n){switch(n){case"user":return"用户任务";case"assistant":return"Orion 回复";case"tool":return"工具活动";case"edit":return"文件修改";case"subtask":return"子任务";case"research":return"研究";case"system":return"系统/错误"}}function Hg(n,r){const o=n.buckets.findIndex(f=>r>=f.startOrder&&r<=f.endOrder),a=o>=0?n.buckets[o]:void 0,d=a?.kinds.includes("assistant")?"assistant":a?.kinds.includes("user")?"user":a?.kinds[0]??"system";return{bucketIndex:o>=0?o+1:0,bucketCount:n.buckets.length,kindLabel:d?Ug(d):"未知"}}function of(n,r){return r<=0?0:r===1?.5:Math.max(0,Math.min(r-1,n))/(r-1)}function Eo(n,r){const o=n.buckets.findIndex(a=>r>=a.startOrder&&r<=a.endOrder);return o>=0?o:null}function Vg(n){const r=n.kind==="tool"||n.kind==="edit"||n.kind==="subtask"||n.kind==="research"?160:240,o=n.label.length,a=.35+Math.log2(1+o/r)*.55;return Math.max(.15,Math.min(1,a))}const Kg=220,Gg=400;function Qg(n,r={}){const o=typeof r.maxTicks=="number"&&Number.isFinite(r.maxTicks)?Math.max(1,Math.min(Gg,Math.round(r.maxTicks))):Kg,a=[...n].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<=o)for(const p of a)d.push([p]);else{const p=Math.ceil(a.length/o);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(P=>P.priority==="error");let R=p.reduce((P,$)=>$.order>P.order?$:P,p[0]),C=-1;for(const P of p){const $=P.priority==="error"?2:P.priority==="turn"?1:0;$>=C&&(C=$,R=P)}const _=Math.max(.15,Math.min(1,p.reduce((P,$)=>P+Vg($),0)/p.length+(x?.1:0)));return{index:g,orders:Object.freeze(p.map(P=>P.order)),jumpOrder:R.order,weight:_,hasError:x}});return Object.freeze(f)}function Yg(n){return n>=.72?"history-tick-l":n>=.45?"history-tick-m":"history-tick-s"}function lf(n){const{clientY:r,railTop:o,railHeight:a,tickCount:d}=n;if(!Number.isFinite(a)||a<=0||d<=0)return 0;const f=(r-o)/a;return Math.max(0,Math.min(d-1,Math.round(f*(d-1))))}function Xg(n,r){let o=null;for(const a of n)a.topInViewport<r-1||(!o||a.topInViewport<o.topInViewport)&&(o=a);return o?.order??null}function Jg(n,r){if(n.anchors.length===0)return null;let o=n.anchors[0].order,a=Number.POSITIVE_INFINITY;for(const d of n.anchors){const f=Math.abs(d.order-r);(f<a||f===a&&d.order>o)&&(o=d.order,a=f)}return o}function Zg(n){const{key:r,currentIndex:o,bucketCount:a,model:d}=n;if(a<=0)return null;const f=n.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=o-f;else if(r==="ArrowDown"||r==="ArrowRight")p=o+f;else if(r==="PageUp")p=o-5;else if(r==="PageDown")p=o+5;else return null;const g=Math.max(0,Math.min(a-1,p));return d.buckets[g]?.jumpOrder??null}function ev({model:n,activeOrder:r,span:o,hasEarlierHistory:a,processing:d,reduceMotion:f,onJumpToOrder:p,onJumpToLatest:g}){const x=m.useRef(null),w=m.useRef(null),R=m.useRef(!1),C=m.useRef(null),_=m.useRef(null),[P,$]=m.useState(!1),[O,W]=m.useState(null),te=m.useMemo(()=>Qg(n.anchors),[n.anchors]),z=te.length,oe=m.useMemo(()=>{if(r===null||z===0)return 0;const A=Eo(n,r);return A!==null?A+1:0},[r,n,z]),J=m.useMemo(()=>r===null?null:Hg(n,r),[r,n]),re=o!==null?Eo(n,o.firstOrder)??0:null,N=o!==null?Eo(n,o.lastOrder)??n.buckets.length-1:null,L=m.useMemo(()=>te.map(A=>Eo(n,A.jumpOrder)),[n,te]),se=m.useCallback(()=>{C.current!==null&&(window.clearTimeout(C.current),C.current=null),W(null)},[]),Ne=m.useCallback(A=>{const pe=x.current;if(!pe)return;const ge=pe.getBoundingClientRect(),q=lf({clientY:A,railTop:ge.top,railHeight:ge.height,tickCount:z}),ie=te[q];if(!ie)return;const B=n.anchors.find(ce=>ce.order===ie.jumpOrder);let v=B?.preview;if(B?.kind==="user"){const de=n.anchors.find(ke=>ke.order>B.order&&ke.kind==="assistant")?.preview;de&&(v=v?`${v}
|
|
18
|
+
|
|
19
|
+
${de}`:de)}const M=of(q,z)*ge.height;W({title:Rn(B?.label??""),preview:v?Rn(v):null,top:Math.max(8,Math.min(ge.height-140,M))})},[n,z,te]),we=m.useCallback(A=>{_.current=A,C.current!==null&&window.clearTimeout(C.current),C.current=window.setTimeout(()=>{C.current=null;const pe=_.current;pe===null||w.current!==null||R.current||Ne(pe)},120)},[Ne]);m.useEffect(()=>{const A=()=>{R.current||se()};return window.addEventListener("scroll",A,!0),()=>window.removeEventListener("scroll",A,!0)},[se]),m.useEffect(()=>()=>{C.current!==null&&window.clearTimeout(C.current)},[]);const Z=m.useCallback((A,pe)=>{const ge=x.current;if(!ge)return;const q=ge.getBoundingClientRect(),ie=lf({clientY:A,railTop:q.top,railHeight:q.height,tickCount:z}),B=te[ie];B&&p(B.jumpOrder,pe)},[p,z,te]),Q=A=>{A.button!==0||w.current!==null||(A.preventDefault(),w.current=A.pointerId,A.currentTarget.setPointerCapture(A.pointerId),document.documentElement.dataset.historyScrubbing="1",R.current=!0,$(!0),se(),Z(A.clientY,"auto"))},V=A=>{w.current===A.pointerId&&(A.currentTarget.hasPointerCapture(A.pointerId)&&A.currentTarget.releasePointerCapture(A.pointerId),w.current=null,R.current=!1,delete document.documentElement.dataset.historyScrubbing,$(!1),se())},je=A=>{const pe=Zg({key:A.key,shiftKey:A.shiftKey,currentIndex:oe-1,bucketCount:n.buckets.length,model:n});pe!==null&&(A.preventDefault(),p(pe,f?"auto":"smooth"))};return z===0?null:i.jsx("nav",{className:"history-rail","aria-label":"会话历史定位",children:i.jsxs("div",{className:"history-rail-inner",ref:x,children:[i.jsxs("div",{className:"history-slider",role:"slider","aria-label":"已加载会话历史位置","aria-valuemin":0,"aria-valuemax":Math.max(0,n.buckets.length-1),"aria-valuenow":Math.max(0,oe-1),"aria-valuetext":J?`已加载 ${J.bucketIndex}/${J.bucketCount} 个关键节点,当前为${J.kindLabel}${a?";更早历史可在正文顶部加载":""}`:`已加载 ${n.buckets.length} 个关键节点${a?";更早历史可在正文顶部加载":""}`,tabIndex:0,onKeyDown:je,onPointerDown:Q,onPointerMove:A=>{if(w.current===A.pointerId){Z(A.clientY,"auto");return}we(A.clientY)},onPointerLeave:se,onPointerUp:V,onPointerCancel:V,onLostPointerCapture:V,onDoubleClick:g,children:[i.jsx("div",{className:"history-ticks","aria-hidden":"true",children:te.map((A,pe)=>{const ge=L[pe],q=ge!==null&&re!==null&&N!==null&&ge>=re&&ge<=N;return i.jsx("span",{className:["history-tick",Yg(A.weight),q?"is-viewport":"",A.hasError?"is-error":"",P?"is-scrubbing":""].filter(Boolean).join(" "),style:{top:`${of(A.index,z)*100}%`}},A.index)})}),d?i.jsx("span",{className:"history-live-bar","aria-hidden":"true"}):null]}),O?i.jsxs("div",{className:"history-preview-card",style:{top:O.top},"aria-hidden":"true",children:[i.jsx("strong",{children:O.title}),O.preview?i.jsx("p",{children:O.preview}):null]}):null]})})}const tv=10;function nv(n){const{viewportRef:r,model:o,activeSessionId:a,onUserNavigate:d}=n,f=m.useRef(new Map),p=m.useRef(null),g=m.useRef([]),x=m.useRef(null),[w,R]=m.useState(null),[C,_]=m.useState(null),P=m.useRef(d);P.current=d;const $=m.useRef(a),O=m.useRef(o);O.current=o;const W=()=>{if(x.current=null,g.current.length===0)return;const re=g.current;if(g.current=[],re.length===0)return;const L=r.current?.getBoundingClientRect().top??0,se=Xg(re,L);let Ne=Number.POSITIVE_INFINITY,we=Number.NEGATIVE_INFINITY;for(const Z of re)Z.topInViewport>=L-1&&(Z.order<Ne&&(Ne=Z.order),Z.order>we&&(we=Z.order));R(Z=>Z===se?Z:se),_(Z=>{if(!Number.isFinite(Ne)||!Number.isFinite(we))return Z;const Q={firstOrder:Ne,lastOrder:we};return Z?.firstOrder===Q.firstOrder&&Z?.lastOrder===Q.lastOrder?Z:Q})},te=()=>{x.current===null&&(x.current=requestAnimationFrame(W))},z=()=>{p.current&&(p.current.disconnect(),p.current=null),x.current!==null&&(cancelAnimationFrame(x.current),x.current=null),g.current=[],f.current.clear(),R(null),_(null)};m.useEffect(()=>{if($.current===a&&p.current)return;$.current=a,z();const re=r.current;if(!re||!o.anchors.length||typeof IntersectionObserver>"u")return;const N=new IntersectionObserver(L=>{const Ne=r.current?.getBoundingClientRect().top??0;for(const we of L){const Z=Number(we.target.dataset.order);Number.isFinite(Z)&&we.isIntersecting&&g.current.push({order:Z,topInViewport:we.boundingClientRect.top-Ne})}te()},{root:re,threshold:[0,.2,.6]});return p.current=N,f.current.clear(),re.querySelectorAll("li[data-order]").forEach(L=>{const se=Number(L.dataset.order);Number.isFinite(se)&&(f.current.set(se,L),N.observe(L))}),()=>z()},[r,a,o.anchors.length,o.anchors[o.anchors.length-1]?.order]);const oe=m.useCallback((re,N)=>{if(N){if(f.current.get(re)===N)return;f.current.set(re,N),p.current?.observe(N);return}const L=f.current.get(re);L&&(p.current?.unobserve(L),f.current.delete(re))},[]);return{activeOrder:w,span:C,registerItem:oe,scrollToOrder:(re,N="smooth")=>{const L=r.current,se=Jg(O.current,re),Ne=se!==null?f.current.get(se):void 0;if(!L||!Ne){if(!L||O.current.anchors.length===0)return;const Z=(re-O.current.minOrder)/(O.current.maxOrder-O.current.minOrder||1);L.scrollTo({top:Math.max(0,Math.min(1,Z))*(L.scrollHeight-L.clientHeight),behavior:N}),P.current?.();return}const we=Ne.getBoundingClientRect().top-L.getBoundingClientRect().top+L.scrollTop-tv;L.scrollTo({top:Math.max(0,we),behavior:N}),P.current?.()}}}const Ga=40;function kr(n){if(n.length===0)return 0;let r=1;for(let o=0;o<n.length;o+=1)n.charCodeAt(o)===10&&(r+=1);return r}function rv(n){return!!n&&typeof n=="object"&&!Array.isArray(n)}function sv(n){if(n==null)return null;const r=n.trim();if(r.length===0)return{format:"plain",displayText:n,isEnvelope:!1,lineCount:0,isLong:!1};let o;try{o=JSON.parse(r)}catch{return{format:"plain",displayText:n,isEnvelope:!1,lineCount:kr(n),isLong:kr(n)>Ga}}if(rv(o)&&typeof o.output=="string"){const a=o.output;return{format:"envelope",displayText:a,isEnvelope:!0,lineCount:kr(a),isLong:kr(a)>Ga}}try{const a=JSON.stringify(o,null,2);return{format:"json",displayText:a,isEnvelope:!1,lineCount:kr(a),isLong:kr(a)>Ga}}catch{return{format:"plain",displayText:n,isEnvelope:!1,lineCount:kr(n),isLong:!1}}}function sp({text:n,defaultOpen:r=!1,note:o=null}){const a=sv(n),d=r||!a?.isLong,[f,p]=m.useState(d),[g,x]=m.useState(!1),w=m.useRef(null);if(m.useEffect(()=>()=>{w.current!==null&&window.clearTimeout(w.current)},[]),a===null)return null;const R=Rn(a.displayText),C=async()=>{try{await navigator.clipboard.writeText(a.displayText),x(!0),w.current!==null&&window.clearTimeout(w.current),w.current=window.setTimeout(()=>x(!1),1400)}catch{}},_=i.jsx("pre",{className:"tool-output-text",tabIndex:0,children:R});if(!a.isLong||r)return i.jsxs("div",{className:"tool-output-preview tool-output-preview-open",children:[_,o?i.jsx("p",{className:"truncation-note",children:o}):null]});const P=`${a.lineCount} 行 · ${a.format==="envelope"?"已解包":"文本"}`;return i.jsx("div",{className:"tool-output-preview",children:i.jsxs("details",{className:"tool-output-fold",open:f,onToggle:$=>p($.target.open),children:[i.jsxs("summary",{children:[i.jsxs("span",{children:[P,a.isEnvelope?" · 输出已安全还原换行":""]}),i.jsx("button",{type:"button",className:"text-button",onClick:$=>{$.preventDefault(),C()},children:g?"已复制":"复制原始响应"})]}),_,o?i.jsx("p",{className:"truncation-note",children:o}):null]})})}const af=320,iv=300;function ov({state:n,actions:r,onRevealSettings:o,onCreateSession:a,composerInsertion:d,navigationOpen:f,navigationOverlay:p,onOpenNavigation:g}){const x=Qo(n),w=m.useMemo(()=>lv(n),[n.edits,n.research,n.subtasks,n.tools,n.transcript]),[R,C]=m.useState(af),_=w.slice(-R),P=m.useRef(null),$=m.useRef(null),O=m.useRef(!0),W=m.useRef(null),[te,z]=m.useState(!0),[oe,J]=m.useState(!1),re=m.useMemo(()=>_.map(av).filter(Q=>Q!==null),[_]),N=m.useMemo(()=>Fg(re),[re]),L=nv({viewportRef:P,model:N,activeSessionId:n.activeSessionId,onUserNavigate:()=>{O.current=!1,z(!1)}});m.useEffect(()=>{const Q=window.matchMedia("(prefers-reduced-motion: reduce)");J(Q.matches);const V=je=>J(je.matches);return Q.addEventListener("change",V),()=>Q.removeEventListener("change",V)},[]),m.useEffect(()=>{C(af),O.current=!0,z(!0)},[n.activeSessionId]),m.useLayoutEffect(()=>{const Q=P.current;if(Q){if(W.current){const V=W.current;Q.scrollTop=V.top+(Q.scrollHeight-V.height),W.current=null;return}O.current&&(Q.scrollTop=Q.scrollHeight)}},[_.length,n.processing]),m.useLayoutEffect(()=>{const Q=P.current,V=$.current;if(!Q||!V||typeof ResizeObserver>"u")return;const je=new ResizeObserver(()=>{O.current&&(Q.scrollTop=Q.scrollHeight)});return je.observe(V),()=>je.disconnect()},[n.activeSessionId]);const se=()=>{const Q=P.current;if(!Q)return;const V=Q.scrollHeight-Q.scrollTop-Q.clientHeight<72;O.current=V,z(V)},Ne=!!n.sessionSnapshot?.transcript.nextCursor,we=async()=>{const Q=P.current;if(Q&&(W.current={height:Q.scrollHeight,top:Q.scrollTop}),w.length>_.length){C(V=>V+iv);return}if(Ne)try{await r.loadOlderTranscript(),C(V=>V+100)}catch{W.current=null}},Z=()=>{const Q=P.current;Q&&(O.current=!0,z(!0),Q.scrollTo({top:Q.scrollHeight,behavior:"smooth"}))};return i.jsxs("main",{className:"conversation-column",id:"main-content",children:[p?i.jsx("button",{type:"button",className:"icon-button mobile-nav-toggle",onClick:g,"aria-label":"打开会话导航","aria-controls":"workspace-rail","aria-expanded":f,children:i.jsx(G,{name:"menu"})}):null,n.bootstrap?.configured?null:i.jsxs("div",{className:"configuration-banner",role:"status",children:[i.jsx(G,{name:"warning"}),i.jsxs("div",{children:[i.jsx("strong",{children:"模型尚未配置"}),i.jsx("span",{children:"请在 Orion 配置文件或环境变量中设置凭证。API Key 不会进入浏览器。"})]}),i.jsx("button",{type:"button",className:"secondary-button",onClick:o,children:"转到设置"})]}),i.jsxs("div",{className:"transcript-stage",children:[i.jsx("div",{className:"transcript-viewport",ref:P,role:"region","aria-label":"会话记录",tabIndex:0,onScroll:se,"aria-busy":n.processing,children:i.jsxs("div",{className:"transcript-content",ref:$,children:[w.length>_.length||Ne?i.jsx("button",{type:"button",className:"load-history",onClick:()=>{we()},disabled:!!n.pendingAction,children:w.length>_.length?`加载更早内容 · 还剩 ${w.length-_.length} 项`:"从持久记录加载更早内容"}):null,n.activeSessionId?x.status==="failed"&&_.length===0?i.jsx(Ro,{icon:"warning",title:"会话快照加载失败",detail:x.error??"请重试当前会话快照。"}):(x.status==="loading"||x.status==="refreshing")&&_.length===0?i.jsx(Ro,{icon:"refresh",title:"正在同步会话",detail:"本地 Web Host 正在读取最近的会话快照。"}):_.length===0?i.jsx(Ro,{icon:"spark",title:"准备好开始了",detail:"描述要构建、修复或调查的任务。Orion 会实时展示工具、文件变化与验证结果。"}):i.jsx("ol",{className:"timeline","aria-label":"会话记录",children:_.map(Q=>i.jsx("li",{id:`conversation-item-${n.activeSessionId??"none"}-${ic(Q)}`,"data-event-id":Q.order,"data-order":Q.order,ref:V=>L.registerItem(Q.order,V),children:uv(Q,n)},ic(Q)))}):i.jsx(Ro,{icon:"workspace",title:"选择或创建一个会话",detail:"Orion 会在当前工作区运行,并沿用 CLI/TUI 的权限与持久化状态。",action:"创建会话",onAction:a}),n.processing?i.jsxs("div",{className:"thinking-indicator",role:"status",children:[i.jsx("span",{}),i.jsx("span",{}),i.jsx("span",{}),i.jsx("span",{children:n.statusMessage||"Orion 正在处理…"})]}):null]})}),i.jsx(ev,{model:N,activeOrder:L.activeOrder,span:L.span,hasEarlierHistory:w.length>_.length||Ne,processing:n.processing,reduceMotion:oe,onJumpToOrder:(Q,V)=>L.scrollToOrder(Q,V),onJumpToLatest:Z})]}),!te&&_.length>0?i.jsxs("button",{type:"button",className:"jump-latest",onClick:Z,children:[i.jsx(G,{name:"arrow-up",size:15}),"回到最新"]}):null,i.jsxs("div",{className:"input-dock",children:[n.permission||n.queue.items.length>0?i.jsxs("div",{className:"input-transients",children:[n.permission?i.jsx(vv,{state:n,actions:r}):null,n.queue.items.length>0?i.jsx(yv,{state:n,actions:r}):null]}):null,i.jsx(Cg,{state:n,actions:r,insertion:d})]})]})}function lv(n){const r=new Set(n.tools.map(a=>a.callId));return[...n.transcript.filter(a=>!a.toolActivity?.callId||!r.has(a.toolActivity.callId)).map(a=>({kind:"transcript",order:a.order,value:a})),...n.tools.map(a=>({kind:"tool",order:a.order,value:a})),...n.edits.map(a=>({kind:"edit",order:a.order,value:a})),...n.subtasks.map(a=>({kind:"subtask",order:a.order,value:a})),...n.research.map(a=>({kind:"research",order:a.order,value:a}))].sort((a,d)=>a.order-d.order)}function ic(n){return n.kind==="transcript"?`entry-${n.value.id}`:n.kind==="tool"?`tool-${n.value.callId}`:n.kind==="edit"?`edit-${n.order}`:n.kind==="subtask"?`subtask-${n.value.taskId}`:`research-${n.value.packetId}`}function av(n){const r=n.order,o=ic(n);if(n.kind==="tool")return{order:r,key:o,kind:"tool",label:si(n.value.summary)||n.value.name,preview:ss(n.value.summary),priority:n.value.state==="error"?"error":"activity"};if(n.kind==="edit")return{order:r,key:o,kind:"edit",label:n.value.request.path,preview:ss(`${n.value.request.path}
|
|
20
|
+
${n.value.request.newString??""}`),priority:"activity"};if(n.kind==="subtask")return{order:r,key:o,kind:"subtask",label:si(n.value.objective)||n.value.role,preview:ss(n.value.summary||n.value.objective),priority:cv.has(n.value.state)?"error":"activity"};if(n.kind==="research")return{order:r,key:o,kind:"research",label:si(n.value.objective)||"Research",preview:ss(n.value.conclusion||n.value.objective),priority:n.value.stage==="failed"?"error":"activity"};const a=n.value;if(a.toolActivity){const g=a.toolActivity;return{order:r,key:o,kind:"tool",label:si(g.summary)||g.name||g.detail||"工具活动",preview:ss(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:o,kind:d==="user"?"user":d==="assistant"?"assistant":"system",priority:f,label:si(a.content)||a.title||(d==="user"?"用户任务":d==="assistant"?"Orion 回复":oc(d)),preview:ss(a.content)}}const cv=new Set(["failed","timed_out","rejected","cancelled"]);function si(n){if(!n)return null;const r=n.replace(/\s+/gu," ").trim();return r.length>80?`${r.slice(0,80)}…`:r}function ss(n){if(!n)return;const r=n.trim();if(r)return r.length<=280?r:`${r.slice(0,280)}…`}function uv(n,r){if(n.kind==="transcript")return i.jsx(dv,{entry:n.value});if(n.kind==="tool"){const o=r.transcript.find(a=>a.toolActivity?.callId===n.value.callId)?.toolActivity;return i.jsx(fv,{tool:n.value,activity:o})}return n.kind==="edit"?i.jsx(hv,{edit:n.value}):n.kind==="subtask"?i.jsx(mv,{subtask:n.value}):i.jsx(gv,{research:n.value})}function dv({entry:n}){if(n.toolActivity)return i.jsx(pv,{entry:n});if(wv(n))return i.jsxs("details",{className:"reasoning-card",children:[i.jsxs("summary",{children:[i.jsx(pc,{state:n.live?"running":"ready",describe:!1}),i.jsx("span",{children:n.live?"正在分析":n.title||"推理摘要"}),i.jsx("span",{className:"reasoning-hint",children:"展开查看 Runtime 提供的摘要"})]}),i.jsx(ui,{children:n.content})]});const r=n.role;return i.jsxs("article",{className:`message-card role-${r}`,"aria-label":oc(r),children:[i.jsxs("header",{children:[i.jsx("span",{className:"message-avatar","aria-hidden":"true",children:kv(r)}),i.jsx("span",{children:n.title||oc(r)}),n.live?i.jsx("span",{className:"streaming-label",children:"生成中"}):null,n.command?i.jsx("span",{className:`command-state ${n.command.success?"success":"error"}`,children:n.command.success?"成功":"失败"}):null]}),i.jsx("div",{className:"message-body",children:r==="user"?i.jsx("p",{className:"literal-message",children:n.content}):i.jsx(ui,{children:n.content})}),n.budgetStop?i.jsxs("div",{className:"budget-stop",role:"status",children:[i.jsx(G,{name:"pause",size:15}),i.jsxs("span",{children:[n.budgetStop.reason," · 状态已保留"]})]}):null]})}function fv({tool:n,activity:r}){const o=n.workspaceMutation?.phase==="queued"?`等待工作树写入${n.workspaceMutation.queuePosition?`(第 ${n.workspaceMutation.queuePosition} 位)`:""}`:n.workspaceMutation?.phase==="running"?"正在写入工作树":n.state==="running"?"运行中":n.state==="success"?"完成":n.state==="skipped"?"跳过":"失败",a=r?.outputView?.preview||r?.body||n.error||n.summary;return i.jsxs("article",{className:`tool-card tool-${n.state}`,"aria-label":`工具 ${n.name}:${o}`,children:[i.jsxs("div",{className:"tool-card-header",children:[i.jsx("span",{className:`tool-state-icon ${n.state}`,"aria-hidden":"true",children:n.state==="running"?i.jsx("span",{className:"spinner"}):i.jsx(G,{name:n.state==="success"?"check":n.state==="skipped"?"pause":"warning",size:15})}),i.jsxs("div",{className:"tool-title",children:[i.jsx("strong",{children:n.name}),i.jsxs("span",{children:["#",n.sequence," · ",o,n.duration!==void 0?` · ${ip(n.duration)}`:""]})]}),n.outputBytes!==void 0?i.jsx("span",{className:"byte-pill",children:lc(n.outputBytes)}):null]}),n.summary||n.error?i.jsx("p",{className:n.error?"tool-error-copy":"tool-summary",children:Rn(n.error||n.summary||"")}):null,i.jsxs("details",{className:"tool-details",open:n.state==="error",children:[i.jsx("summary",{children:"输入与详情"}),i.jsxs("dl",{className:"tool-meta-grid",children:[i.jsxs("div",{children:[i.jsx("dt",{children:"授权"}),i.jsx("dd",{children:n.authorization?`${n.authorization.approved?"允许":"拒绝"} · ${n.authorization.source}`:"等待 Runtime 记录"})]}),n.artifactId?i.jsxs("div",{children:[i.jsx("dt",{children:"产物"}),i.jsx("dd",{children:i.jsx("code",{children:n.artifactId})})]}):null]}),i.jsxs("div",{className:"tool-detail-section",children:[i.jsx("span",{className:"micro-label",children:"参数(已脱敏)"}),i.jsx("pre",{tabIndex:0,children:fc(n.args)})]}),a?i.jsxs("div",{className:"tool-detail-section",children:[i.jsx("span",{className:"micro-label",children:"输出预览"}),i.jsx(sp,{text:a,defaultOpen:n.state==="error",note:r?.outputView?.omittedBytes?`另有 ${lc(r.outputView.omittedBytes)} 已折叠,可在 Inspector 中查看产物。`:null})]}):null]})]})}function pv({entry:n}){const r=n.toolActivity;return i.jsxs("article",{className:`tool-card tool-${r.state}`,children:[i.jsxs("div",{className:"tool-card-header",children:[i.jsx("span",{className:`tool-state-icon ${r.state}`,"aria-hidden":"true",children:i.jsx(G,{name:"terminal",size:15})}),i.jsxs("div",{className:"tool-title",children:[i.jsx("strong",{children:r.name}),i.jsx("span",{children:r.detail})]})]}),r.summary?i.jsx("p",{className:"tool-summary",children:r.summary}):null,r.outputView?.preview||r.body?i.jsxs("div",{className:"tool-detail-section tool-output-section",children:[i.jsx("span",{className:"micro-label",children:"输出"}),i.jsx(sp,{text:r.outputView?.preview||r.body,defaultOpen:r.state==="error",note:r.outputView?.omittedBytes?`另有 ${lc(r.outputView.omittedBytes)} 已折叠,可在 Inspector 中查看产物。`:null})]}):null]})}function hv({edit:n}){const r=n.request;return i.jsxs("article",{className:"edit-card",children:[i.jsxs("header",{children:[i.jsx("span",{className:"edit-icon",children:i.jsx(G,{name:"edit",size:15})}),i.jsxs("div",{children:[i.jsx("strong",{children:"文件修改预览"}),i.jsxs("span",{children:[r.kind," · ",r.candidates.length," 个候选"]})]})]}),i.jsx("code",{className:"path-chip",title:r.path,children:r.path}),i.jsxs("details",{children:[i.jsx("summary",{children:"查看替换内容"}),i.jsx("pre",{tabIndex:0,children:Rn(r.newString)})]})]})}function mv({subtask:n}){return i.jsxs("details",{className:`activity-card subtask-card state-${n.state}`,children:[i.jsxs("summary",{children:[i.jsx(G,{name:"branch",size:16}),i.jsxs("span",{children:[i.jsx("strong",{children:n.role}),i.jsx("small",{children:n.state})]}),n.durationMs!==void 0?i.jsx("time",{children:ip(n.durationMs)}):null]}),i.jsx("p",{children:n.objective}),n.summary?i.jsx(ui,{children:n.summary}):null]})}function gv({research:n}){return i.jsxs("details",{className:`activity-card research-card state-${n.stage}`,children:[i.jsxs("summary",{children:[i.jsx(G,{name:"search",size:16}),i.jsxs("span",{children:[i.jsx("strong",{children:"Research"}),i.jsxs("small",{children:[n.stage," · ",n.sources.length," sources"]})]})]}),n.objective?i.jsx("p",{children:n.objective}):null,n.conclusion?i.jsx(ui,{children:n.conclusion}):null,n.sources.length>0?i.jsx("ul",{className:"source-list",children:n.sources.map(r=>i.jsxs("li",{children:[i.jsx(pc,{state:r.status}),i.jsx("span",{children:r.title||r.location||r.id}),i.jsxs("small",{children:[r.provider," · ",r.status]})]},r.id))}):null]})}function vv({state:n,actions:r}){const o=n.permission,a=m.useRef(null),d=m.useRef("");m.useEffect(()=>{d.current!==o.id&&(d.current=o.id,a.current?.focus())},[o.id]);const f=!!n.pendingAction||n.connection!=="live"||!Ir(n);return i.jsxs("section",{ref:a,className:"approval-card",role:"region","aria-live":"assertive","aria-labelledby":"approval-title","aria-describedby":"approval-reason",tabIndex:-1,children:[i.jsxs("div",{className:"approval-heading",children:[i.jsx("span",{className:"approval-icon",children:i.jsx(G,{name:"warning",size:17})}),i.jsxs("div",{children:[i.jsx("span",{className:"eyebrow",children:"需要你的确认"}),i.jsxs("h2",{id:"approval-title",children:["允许 ",o.name,"?"]})]})]}),i.jsx("p",{id:"approval-reason",children:o.reason||"该工具需要在当前权限策略下获得明确授权。"}),i.jsxs("details",{className:"approval-args",children:[i.jsx("summary",{children:"查看脱敏参数"}),i.jsx("pre",{tabIndex:0,children:fc(o.args,6e3)})]}),i.jsxs("div",{className:"approval-actions",children:[i.jsx("button",{type:"button",className:"danger-ghost-button",onClick:()=>En(r.answerPermission(!1)),disabled:f,children:"拒绝"}),i.jsx("button",{type:"button",className:"secondary-button",onClick:()=>En(r.answerPermission(!0,"once")),disabled:f,children:"仅本次"}),i.jsx("button",{type:"button",className:"secondary-button",onClick:()=>En(r.answerPermission(!0,"project")),disabled:f,children:"允许此项目"}),i.jsx("button",{type:"button",className:"primary-button",onClick:()=>En(r.answerPermission(!0,"global")),disabled:f,children:"始终允许"})]}),i.jsx("p",{className:"approval-footnote",children:"项目与全局授权会写入 Orion 配置;拒绝不会丢失当前会话。"})]})}function yv({state:n,actions:r}){const o=!!n.pendingAction||n.connection!=="live"||!Ir(n);return i.jsxs("details",{className:"queue-dock",children:[i.jsxs("summary",{children:[i.jsxs("span",{children:[n.queue.items.length," 条排队消息"]}),i.jsx("span",{children:"执行时采用最新 Composer 控制"})]}),i.jsxs("div",{className:"queue-list",children:[n.queue.items.map((a,d)=>i.jsx(xv,{item:a,index:d,count:n.queue.items.length,disabled:o,actions:r},a.id)),i.jsx("button",{type:"button",className:"text-button queue-clear",onClick:()=>En(r.clearQueue()),disabled:o,children:"清空队列"})]})]})}function xv({item:n,index:r,count:o,disabled:a,actions:d}){const[f,p]=m.useState(!1),[g,x]=m.useState(n.text);m.useEffect(()=>x(n.text),[n.text]);const w=async()=>{const R=g.trim();R&&(await d.editQueued(n.id,n.revision,R),p(!1))};return i.jsxs("div",{className:"queue-row",children:[i.jsx("span",{className:"queue-index",children:r+1}),f?i.jsx("textarea",{rows:2,value:g,"aria-label":`编辑排队消息 ${r+1}`,onChange:R=>x(R.target.value)}):i.jsx("p",{children:n.text}),i.jsxs("div",{className:"queue-row-actions",children:[i.jsx("button",{type:"button",className:"icon-button","aria-label":`上移排队消息 ${r+1}`,onClick:()=>En(d.moveQueued(n.id,n.revision,r-1)),disabled:a||r===0,children:i.jsx(G,{name:"arrow-up",size:13})}),i.jsx("button",{type:"button",className:"icon-button queue-move-down","aria-label":`下移排队消息 ${r+1}`,onClick:()=>En(d.moveQueued(n.id,n.revision,r+1)),disabled:a||r===o-1,children:i.jsx(G,{name:"arrow-up",size:13})}),f?i.jsx("button",{type:"button",className:"text-button",onClick:()=>En(w()),disabled:a||!g.trim(),children:"保存"}):i.jsx("button",{type:"button",className:"text-button",onClick:()=>p(!0),disabled:a,children:"编辑"}),i.jsx("button",{type:"button",className:"icon-button","aria-label":`移除排队消息 ${r+1}`,onClick:()=>En(d.removeQueued(n.id,n.revision)),disabled:a,children:i.jsx(G,{name:"trash",size:14})})]})]})}function Ro({icon:n,title:r,detail:o,action:a,onAction:d}){return i.jsxs("section",{className:"empty-conversation",children:[i.jsx("div",{className:"empty-orbit",children:i.jsx(G,{name:n,size:26})}),i.jsx("h2",{children:r}),i.jsx("p",{children:o}),a&&d?i.jsx("button",{type:"button",className:"primary-button",onClick:d,children:a}):null]})}function wv(n){const r=`${n.title??""}`.toLocaleLowerCase();return r.includes("reason")||r.includes("think")||r.includes("analysis")||r.includes("推理")||r.includes("思考")}function oc(n){return n==="user"?"你":n==="assistant"?"Orion":n==="command"?"命令":n==="error"?"错误":n==="system"?"系统":n==="status"?"状态":"工具"}function kv(n){return n==="user"?"Y":n==="assistant"?"O":n==="error"?"!":n==="command"?"›":"·"}function En(n){n.catch(()=>{})}function ip(n){return n<1e3?`${Math.round(n)}ms`:n<6e4?`${(n/1e3).toFixed(n<1e4?1:0)}s`:`${Math.floor(n/6e4)}m ${Math.round(n%6e4/1e3)}s`}function lc(n){return n<1024?`${n} B`:n<1048576?`${(n/1024).toFixed(1)} KB`:`${(n/1048576).toFixed(1)} MB`}const jv=.02,Sv=.1;function cs(n,r,o){const a=Number.isFinite(n)?Math.round(n):r;return Math.min(o,Math.max(r,a))}function Cv({side:n,clientX:r,bounds:o,minWidth:a,maxWidth:d}){const f=n==="left"?r-o.left:o.right-r;return cs(f,a,d)}function bv(n,r,o){const a=o-r;if(a<=0)return 0;const d=(cs(n,r,o)-r)/a;return Math.round(d*100)}function Nv(n){const{key:r,minWidth:o,maxWidth:a,defaultWidth:d,currentWidth:f,side:p}=n,g=C=>cs(C,o,a);if(r==="Home")return g(o);if(r==="End")return g(a);if(r==="Enter"||r===" ")return g(d);if(r!=="ArrowLeft"&&r!=="ArrowRight")return null;const x=n.shiftKey?Sv:jv,w=Math.max(1,Math.round((a-o)*x)),R=(r==="ArrowRight"?1:-1)*(p==="left"?1:-1);return g(f+R*w)}function op({side:n,className:r,minWidth:o,maxWidth:a,defaultWidth:d,label:f,width:p,controls:g,boundsRef:x,resizingScope:w="workbench",onPreview:R,onCommit:C}){const _=m.useRef(cs(p??d,o,a)),P=m.useRef(null),$=m.useRef(null),O=m.useRef(null),W=()=>{O.current!==null&&cancelAnimationFrame(O.current),O.current=null},te=()=>{P.current=null,$.current=null,W(),delete document.documentElement.dataset.panelResizing};m.useEffect(()=>te,[]),m.useEffect(()=>{p===void 0||P.current!==null||(_.current=cs(p,o,a))},[p,o,a]);const z=Z=>{_.current=Z,$.current=Z,O.current===null&&(O.current=requestAnimationFrame(()=>{O.current=null;const Q=$.current;$.current=null,Q!==null&&R(Q)}))},oe=Z=>{let Q;if(x?.current){const V=x.current.getBoundingClientRect();Q={left:V.left,right:V.right}}else Q=Z.currentTarget.closest(".workbench-shell")?.getBoundingClientRect()??{left:0,right:window.innerWidth};return Cv({side:n,clientX:Z.clientX,bounds:Q,minWidth:o,maxWidth:a})},J=Z=>{if(Z.button!==0||P.current!==null)return;Z.preventDefault(),P.current=Z.pointerId,Z.currentTarget.setPointerCapture(Z.pointerId);const Q=w==="resource-split"?"resource-split":n;document.documentElement.dataset.panelResizing=Q,z(oe(Z))},re=Z=>{P.current===Z.pointerId&&z(oe(Z))},N=Z=>{if(P.current!==Z.pointerId)return;Z.currentTarget.hasPointerCapture(Z.pointerId)&&Z.currentTarget.releasePointerCapture(Z.pointerId);const Q=$.current??_.current;te(),R(Q),C(Q)},L=Z=>{if(P.current!==Z.pointerId)return;const Q=$.current??_.current;te(),R(Q),C(Q)},se=Z=>{_.current=Z,R(Z),C(Z)},Ne=Z=>{const Q=Nv({key:Z.key,shiftKey:Z.shiftKey,minWidth:o,maxWidth:a,defaultWidth:d,currentWidth:_.current,side:n});Q!==null&&(Z.preventDefault(),se(Q))},we=bv(_.current,o,a);return i.jsx("div",{className:`panel-resize-handle panel-resize-handle-${n}${r?` ${r}`:""}`,role:"separator","aria-orientation":"vertical","aria-label":f,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":we,"aria-valuetext":`${_.current} 像素`,"aria-controls":g,tabIndex:0,title:`${f};方向键调整,Shift 加速,Enter 恢复默认,双击亦可恢复`,onPointerDown:J,onPointerMove:re,onPointerUp:N,onPointerCancel:N,onLostPointerCapture:L,onKeyDown:Ne,onDoubleClick:()=>se(cs(d,o,a)),children:i.jsx("span",{})})}const Iv=["ArrowDown","ArrowUp","Home","End","Escape"];function _v({label:n,items:r,disabled:o=!1}){const[a,d]=m.useState(!1),f=m.useRef(null),p=m.useRef(null),g=m.useRef([]),x=m.useId(),w=()=>{d(!1),p.current?.focus()};m.useEffect(()=>{if(!a)return;const C=_=>{f.current?.contains(_.target)||d(!1)};return document.addEventListener("pointerdown",C),()=>document.removeEventListener("pointerdown",C)},[a]),m.useEffect(()=>{if(!a)return;const C=r.findIndex(_=>!_.disabled);g.current[C>=0?C:0]?.focus()},[a]);const R=C=>{if(!Iv.includes(C.key))return;if(C.preventDefault(),C.key==="Escape"){w();return}const _=r.map((O,W)=>({item:O,index:W})).filter(O=>!O.item.disabled);if(!_.length)return;const P=_.findIndex(O=>g.current[O.index]===document.activeElement);let $=0;if(C.key==="Home")$=0;else if(C.key==="End")$=_.length-1;else{const O=C.key==="ArrowDown"?1:-1;$=P<0?0:(P+O+_.length)%_.length}g.current[_[$].index]?.focus()};return i.jsxs("div",{className:"session-row-menu",ref:f,children:[i.jsx("button",{ref:p,type:"button",className:"icon-button session-row-menu-trigger","aria-label":n,"aria-haspopup":"menu","aria-expanded":a,disabled:o,onClick:()=>d(C=>!C),onKeyDown:C=>{if(C.key==="ArrowDown"||C.key==="Enter"||C.key===" "){if(a)return;C.preventDefault(),d(!0)}},children:i.jsx(G,{name:"more",size:15})}),a?i.jsx("div",{className:"session-menu",role:"menu","aria-label":n,onKeyDown:R,children:r.map((C,_)=>i.jsxs("button",{ref:P=>{g.current[_]=P},type:"button",role:"menuitem",className:`session-menu-item${C.danger?" danger":""}`,tabIndex:-1,disabled:C.disabled,"aria-describedby":C.hint?`${x}-${C.id}`:void 0,onClick:()=>{d(!1),C.onSelect()},children:[C.label,C.hint?i.jsx("span",{id:`${x}-${C.id}`,className:"session-menu-hint",children:C.hint}):null]},C.id))}):null]})}const gc=240,Zo=280,lp=480,cf=48,vc=320,yc=420,ap=3200,rt=48,uf=560,cp="orion.web.workbench-layout.v2",Ev="orion.web.work-panel.v1",ac=["agent","review","terminal","files","git"],Nr=Object.freeze({schemaVersion:2,projectNavigation:Object.freeze({expanded:!0,widthPx:Zo}),workPanel:Object.freeze({expanded:!0,widthPx:yc,activePanel:"agent",agentPanel:"goal"})});function Po(n,r){const o=Ov(n),a=up(r.projectNavigation.widthPx),d=fi(r.workPanel.widthPx);if(o<=760)return Object.freeze({projectNavigation:Object.freeze({mode:"drawer",widthPx:0}),conversationWidthPx:o,workPanel:Object.freeze({mode:"drawer",widthPx:0})});if(o<=1180){const w=o-uf,C=r.projectNavigation.expanded&&w>=gc?"dock":r.projectNavigation.expanded?"drawer":"rail",_=C==="dock"?Math.min(a,w):C==="rail"?cf:0;return Object.freeze({projectNavigation:Object.freeze({mode:C,widthPx:_}),conversationWidthPx:Math.max(0,o-_),workPanel:Object.freeze({mode:"drawer",widthPx:0})})}const f=r.projectNavigation.expanded?a:cf,p=o-f-uf,g=r.workPanel.expanded&&p>=vc,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,o-f-x),workPanel:Object.freeze({mode:g?"dock":"rail",widthPx:x})})}function up(n){const r=Number.isFinite(n)?Math.round(n):Zo;return Math.min(lp,Math.max(gc,r))}function fi(n){const r=Number.isFinite(n)?Math.round(n):yc;return Math.min(ap,Math.max(vc,r))}function Rv(n,r=null){if(!n)return Mv(r);try{const o=JSON.parse(n);if(!Ao(o)||o.schemaVersion!==2)return Nr;const a=Ao(o.projectNavigation)?o.projectNavigation:{},d=Ao(o.workPanel)?o.workPanel:{};return dp({schemaVersion:2,projectNavigation:{expanded:typeof a.expanded=="boolean"?a.expanded:!0,widthPx:up(Number(a.widthPx))},workPanel:{expanded:typeof d.expanded=="boolean"?d.expanded:!0,widthPx:fi(Number(d.widthPx)),activePanel:pi(d.activePanel)?d.activePanel:"agent",agentPanel:pp(d.agentPanel)?d.agentPanel:"goal",order:Lv(d.order)}})}catch{return Nr}}function Pv(){const n=fp();if(!n)return Nr;try{return Rv(n.localStorage.getItem(cp),n.localStorage.getItem(Ev))}catch{return Nr}}function Tv(n){const r=fp();if(r)try{r.localStorage.setItem(cp,JSON.stringify(n))}catch{}}function Mv(n){if(!n)return Nr;try{const r=JSON.parse(n);return!Ao(r)||r.schemaVersion!==1?Nr:dp({schemaVersion:2,projectNavigation:{expanded:!0,widthPx:Zo},workPanel:{expanded:typeof r.expanded=="boolean"?r.expanded:!0,widthPx:fi(Number(r.widthPx)),activePanel:pi(r.activePanel)?r.activePanel:"agent",agentPanel:pp(r.agentPanel)?r.agentPanel:"goal"}})}catch{return Nr}}function dp(n){return Object.freeze({schemaVersion:2,projectNavigation:Object.freeze({...n.projectNavigation}),workPanel:Object.freeze({...n.workPanel})})}function Ov(n){return!Number.isFinite(n)||n<=0?1440:Math.max(320,Math.round(n))}function fp(){return globalThis.window??null}function Lv(n){if(!Array.isArray(n)||n.length!==ac.length)return;const r=new Set;for(const o of n){if(!pi(o)||r.has(o))return;r.add(o)}return Object.freeze([...n])}function pi(n){return["agent","review","terminal","files","git"].includes(String(n))}function pp(n){return["goal","activity","integrations","diagnostics"].includes(String(n))}function Ao(n){return!!n&&typeof n=="object"&&!Array.isArray(n)}function hp({size:n=20,className:r,pixel:o=!1}){const a=m.useId(),d=`orion-bar-a-${a}`,f=`orion-bar-b-${a}`,p=`orion-bar-c-${a}`;return i.jsx("span",{className:r?`orion-brand-mark ${o?"orion-brand-mark-pixel ":""}${r}`:`orion-brand-mark${o?" orion-brand-mark-pixel":""}`,"aria-hidden":"true",style:{width:n,height:n},children:i.jsxs("svg",{viewBox:"0 0 20 20",width:n,height:n,focusable:"false",role:"presentation",shapeRendering:o?"crispEdges":void 0,children:[i.jsxs("defs",{children:[i.jsxs("linearGradient",{id:d,x1:"0",y1:"0",x2:"0",y2:"1",children:[i.jsx("stop",{offset:"0",className:"orion-mark-stop orion-mark-stop-primary"}),i.jsx("stop",{offset:"1",className:"orion-mark-stop orion-mark-stop-secondary"})]}),i.jsxs("linearGradient",{id:f,x1:"0",y1:"0",x2:"0",y2:"1",children:[i.jsx("stop",{offset:"0",className:"orion-mark-stop orion-mark-stop-primary"}),i.jsx("stop",{offset:"1",className:"orion-mark-stop orion-mark-stop-secondary"})]}),i.jsxs("linearGradient",{id:p,x1:"0",y1:"0",x2:"0",y2:"1",children:[i.jsx("stop",{offset:"0",className:"orion-mark-stop orion-mark-stop-primary"}),i.jsx("stop",{offset:"1",className:"orion-mark-stop orion-mark-stop-secondary"})]})]}),o?[{x:2,y:9,h:9},{x:8,y:4,h:14},{x:14,y:7,h:11}].map(g=>i.jsxs(m.Fragment,{children:[i.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?i.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)):i.jsxs(i.Fragment,{children:[i.jsx("rect",{className:"orion-mark-bar",x:"2",y:"9",width:"4",height:"9",rx:2,fill:`url(#${d})`}),i.jsx("rect",{className:"orion-mark-bar",x:"8",y:"4",width:"4",height:"14",rx:2,fill:`url(#${f})`}),i.jsx("rect",{className:"orion-mark-bar",x:"14",y:"7",width:"4",height:"11",rx:2,fill:`url(#${p})`})]})]})})}const $o=5,df=7,cc=1,Av=Object.freeze({c:[".....",".....",".###.","#....","#....","#....",".###."],d:["....#","....#",".####","#...#","#...#","#...#",".####"],e:[".....",".....",".###.","#...#","#####","#....",".###."],i:["..#..",".....","..#..","..#..","..#..","..#..","..#.."],n:[".....",".....","#.##.","##..#","#...#","#...#","#...#"],o:[".....",".....",".###.","#...#","#...#","#...#",".###."],r:[".....",".....","#.##.","##..#","#....","#....","#...."],"-":[".....",".....",".....",".###.",".....",".....","....."]});function $v(n){const r=[];let o=0;for(const a of n.toLocaleLowerCase()){const d=Av[a];d&&d.forEach((f,p)=>{let g=-1;for(let x=0;x<=$o;x+=1){const w=x<$o&&f[x]==="#";w&&g<0?g=x:!w&&g>=0&&(r.push({x:o+g,y:p,w:x-g}),g=-1)}}),o+=$o+cc}return r}function Dv({text:n,scale:r=2,className:o}){const a=m.useMemo(()=>$v(n),[n]),d=n.length*($o+cc)-cc;return a.length?i.jsx("svg",{className:o?`pixel-wordmark ${o}`:"pixel-wordmark",viewBox:`0 0 ${d} ${df}`,width:d*r,height:df*r,shapeRendering:"crispEdges",role:"img","aria-label":n,children:a.map(f=>i.jsx("rect",{x:f.x,y:f.y,width:f.w,height:1,style:{fill:"var(--text)"}},`${f.x}-${f.y}`))}):null}const jr=40;function zv({state:n,drawerOpen:r,dockVisible:o,collapsed:a,resizable:d,width:f,onExpand:p,onCollapse:g,onOpenWorkspaceDialog:x,onOpenSettings:w,onLoadMoreWorkspaces:R,onCreateSession:C,onLoadWorkspaceSessions:_,onActivateContext:P,onSetPinned:$,onRemoveWorkspace:O,onRefreshSummary:W,onRenameSession:te,onSessionTags:z,onArchiveSession:oe,onDeleteSession:J,onRestoreSession:re,onWidthPreview:N,onWidthCommit:L}){const[se,Ne]=m.useState(""),[we,Z]=m.useState(0),[Q,V]=m.useState(new Set(n.workspaceId?[n.workspaceId]:[])),je=m.useDeferredValue(se.trim().toLocaleLowerCase()),A=!!n.pendingAction,pe=A||n.processing;m.useEffect(()=>{n.workspaceId&&V(v=>new Set([...v,n.workspaceId]))},[n.workspaceId]),m.useEffect(()=>Z(0),[je]);const ge=m.useMemo(()=>{const v=[...n.workspaces].sort(Wv);return je?v.filter(M=>pf(M,je)?!0:(n.workspaceSessions[M.id]?.items??[]).some(ce=>[ce.name,ce.taskSummary,ce.id].filter(de=>!!de).some(de=>de.toLocaleLowerCase().includes(je)))):v},[je,n.workspaceSessions,n.workspaces]);m.useEffect(()=>{const v=ge.findIndex(M=>M.id===n.workspaceId);v<0||Z(M=>v<M||v>=M+jr?Math.floor(v/jr)*jr:M)},[ge,n.workspaceId]);const q=ge.slice(we,we+jr),ie=!!(je&&(n.workspaceNextCursor||Object.values(n.workspaceSessions).some(v=>!!v.nextCursor))),B=v=>{const M=new Set(Q);M.has(v.id)?M.delete(v.id):(M.add(v.id),n.workspaceSessions[v.id]?W(v.id):_(v.id)),V(M)};if(a&&!r){const v=n.workspaces.find(M=>M.id===n.workspaceId);return i.jsxs("aside",{id:"workspace-rail",className:"workspace-rail project-navigator project-navigator-collapsed","aria-label":"项目与会话",hidden:!o,children:[i.jsx("div",{className:"project-rail-brand","aria-hidden":"true",children:i.jsx(hp,{size:22})}),i.jsx("button",{type:"button",className:"icon-button project-rail-action","aria-label":"展开项目导航",title:"展开项目导航(⌘/Ctrl+B)",onClick:p,children:i.jsx(G,{name:"sidebar",size:17})}),i.jsx("button",{type:"button",className:"icon-button project-rail-action","aria-label":"新建会话",title:"新建会话",onClick:C,disabled:A||!n.workspaceId,children:i.jsx(G,{name:"add",size:18})}),i.jsx("button",{type:"button",className:"icon-button project-rail-action project-rail-workspace","aria-label":v?`打开项目 ${v.label}`:"打开项目导航",title:v?.label??"打开项目导航",onClick:p,children:i.jsx(G,{name:"workspace",size:17})}),i.jsx("span",{className:"project-rail-spacer"}),i.jsx("button",{type:"button",className:"icon-button project-rail-action","aria-label":"打开设置",title:"设置",onClick:w,children:i.jsx(G,{name:"settings",size:17})}),i.jsx("span",{className:`connection-dot project-rail-connection ${n.connection}`,"aria-label":Qa(n.connection),title:Qa(n.connection)})]})}return i.jsxs("aside",{id:"workspace-rail",className:`workspace-rail project-navigator ${r?"drawer-open":""}`,"aria-label":"项目与会话",hidden:!o,children:[i.jsxs("div",{className:"project-toolbar",children:[i.jsxs("div",{className:"project-toolbar-brand",children:[i.jsx(Dv,{text:"orion-code",scale:2}),i.jsx("h2",{className:"sr-only",children:"项目"})]}),i.jsxs("div",{className:"project-toolbar-actions",children:[i.jsx("button",{type:"button",className:"icon-button drawer-close","aria-label":"关闭项目导航",onClick:g,children:i.jsx(G,{name:"close"})}),i.jsx("button",{type:"button",className:"icon-button","aria-label":"收起项目导航",title:"收起项目导航(⌘/Ctrl+B)",onClick:g,children:i.jsx(G,{name:"chevron-left"})}),i.jsx("button",{type:"button",className:"icon-button","aria-label":"选择其他工作区",title:"打开其他项目",onClick:x,disabled:pe,children:i.jsx(G,{name:"add"})})]})]}),i.jsxs("label",{className:"project-search",children:[i.jsx("span",{className:"sr-only",children:"搜索项目和会话"}),i.jsx(G,{name:"search",size:15}),i.jsx("input",{type:"search",value:se,onChange:v=>Ne(v.target.value),placeholder:"搜索项目和会话"}),se?i.jsx("button",{type:"button","aria-label":"清除搜索",onClick:()=>Ne(""),children:i.jsx(G,{name:"close",size:13})}):null]}),i.jsxs("nav",{className:"project-tree","aria-label":"已知项目","aria-description":ie?"搜索仅覆盖已加载的项目和会话;仍有分页内容未加载。":void 0,children:[q.map((v,M)=>{const ce=we+M,de=ge[ce-1],ke=Q.has(v.id)||!!je,ee=n.workspaceSessions[v.id],he=n.workspaceProjectSummaries[v.id],Se=pf(v,je)?ee?.items??[]:Fv(ee?.items??[],je);return i.jsxs(m.Fragment,{children:[ce===0||de?.pinnedOrder!==void 0&&v.pinnedOrder===void 0?i.jsx("h3",{className:"project-group-heading",role:"presentation",children:v.pinnedOrder===void 0?"RECENT":"PINNED"}):null,i.jsxs("section",{className:`project-node ${v.active?"active":""} ${v.available?"":"unavailable"}`,children:[i.jsxs("div",{className:"project-row",children:[i.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:()=>B(v),onKeyDown:ae=>{if(ae.key==="ArrowRight"){ae.preventDefault(),ke?ae.currentTarget.closest(".project-node")?.querySelector(".project-session-main")?.focus():B(v);return}if(ae.key==="ArrowLeft"&&ke){ae.preventDefault(),B(v);return}ff(ae)},children:[i.jsx(G,{name:"chevron",size:13}),i.jsx("span",{className:"workspace-icon",children:i.jsx(G,{name:"workspace",size:15})}),i.jsxs("span",{className:"project-copy",children:[i.jsx("strong",{children:v.label}),i.jsx("span",{title:v.path,children:he?`${he.detached?he.head||"detached":he.branch||"Git"} · ${he.dirtyCount?`M${he.dirtyCount}`:"clean"}`:qv(v.path)})]})]}),i.jsx("button",{type:"button",className:"icon-button project-pin","aria-label":`${v.pinnedOrder===void 0?"置顶":"取消置顶"}项目 ${v.label}`,"aria-pressed":v.pinnedOrder!==void 0,onClick:()=>$(v.id,v.pinnedOrder===void 0),disabled:A,children:i.jsx("span",{"aria-hidden":"true",children:v.pinnedOrder===void 0?"○":"●"})}),!v.available&&!v.active?i.jsx("button",{type:"button",className:"icon-button project-remove","aria-label":`移除不可用项目 ${v.label}`,onClick:()=>O(v.id),disabled:A,children:i.jsx(G,{name:"close",size:13})}):i.jsx("button",{type:"button",className:"icon-button project-add-session","aria-label":`在 ${v.label} 新建会话`,disabled:A||!v.available||!v.active,onClick:C,title:v.active?"新建会话":"先激活项目后新建会话",children:i.jsx(G,{name:"add",size:14})})]}),ke?i.jsxs(m.Fragment,{children:[i.jsxs("div",{id:`project-${v.id}-sessions`,className:"project-sessions",role:"list","aria-label":`${v.label} 的会话`,children:[ee?.status==="loading"&&!ee.items.length?i.jsx("p",{className:"project-loading",role:"listitem",children:"正在加载会话…"}):null,ee?.status==="error"?i.jsx("div",{role:"listitem",children:i.jsx("button",{type:"button",className:"project-load-error",onClick:()=>_(v.id),children:"加载失败,重试"})}):null,Se.map(ae=>{const Me=v.active&&ae.id===n.activeSessionId,He=n.sessionRuntimeById[ae.id],Ze=Uv(He),ft=!v.active&&pe,lt=Vv(He?.phase),wt=ae.tags??[];return i.jsxs("div",{className:`project-session-row ${Me?"active":""}`,role:"listitem",children:[i.jsxs("button",{type:"button",className:"project-session-main","aria-current":Me?"page":void 0,"aria-disabled":Me||ft||!v.available,onClick:()=>{Me||P(v.id,ae.id)},disabled:ft||!v.available,onKeyDown:pt=>{if(pt.key==="ArrowLeft"){pt.preventDefault(),document.getElementById(`project-${v.id}`)?.focus();return}ff(pt)},children:[i.jsx("span",{className:`session-state ${Ze.tone}`,"aria-hidden":"true"}),i.jsxs("span",{children:[i.jsx("strong",{children:us(ae)}),i.jsxs("small",{children:[hf(ae.updatedAt)," · ",ae.messageCount," 条"]}),wt.length>0?i.jsxs("small",{className:"project-session-tags","aria-label":"会话标签",children:[wt.slice(0,3).map(pt=>i.jsx("span",{className:"session-tag-badge",children:pt},pt)),wt.length>3?i.jsxs("span",{className:"session-tag-more",children:["+",wt.length-3]}):null]}):null,Ze.label?i.jsx("small",{className:"project-session-status",children:Ze.label}):null]})]}),v.active?i.jsx(_v,{label:`会话 ${us(ae)} 操作`,disabled:A,items:[{id:"rename",label:"重命名…",onSelect:()=>te(ae)},{id:"tags",label:"管理标签…",onSelect:()=>z(ae)},{id:"archive",label:"归档",disabled:lt,hint:lt?"会话运行中":void 0,onSelect:()=>oe(ae)},{id:"delete",label:"删除…",danger:!0,disabled:lt,hint:lt?"会话运行中":void 0,onSelect:()=>J(ae)}]}):null]},ae.id)}),ee?.status==="ready"&&!Se.length?i.jsx("div",{role:"listitem",children:i.jsx("button",{type:"button",className:"project-empty-session",disabled:pe||!v.available,onClick:()=>P(v.id,null),children:je?"没有匹配会话":"打开项目"})}):null,ee?.nextCursor?i.jsx("div",{role:"listitem",children:i.jsx("button",{type:"button",className:"text-button project-load-more",onClick:()=>_(v.id,!0),children:"加载更多会话"})}):null]}),v.active&&(n.archivedSessions.items.length>0||n.archivedSessions.status==="loading")?i.jsxs("details",{className:"archived-section",children:[i.jsxs("summary",{children:["已归档(",n.archivedSessions.items.length,n.archivedSessions.status==="loading"?"…":"",")"]}),i.jsx("div",{className:"archived-list",role:"list","aria-label":"已归档会话",children:n.archivedSessions.items.map(ae=>i.jsxs("div",{className:"archived-row",role:"listitem",children:[i.jsxs("span",{className:"archived-copy",children:[i.jsx("strong",{children:us(ae)}),i.jsx("small",{children:hf(ae.updatedAt)})]}),i.jsx("button",{type:"button",className:"text-button",disabled:A,onClick:()=>re(ae),children:"还原"}),i.jsx("button",{type:"button",className:"text-button archived-delete",disabled:A,onClick:()=>J(ae),children:"删除"})]},ae.id))})]}):null]}):null]})]},v.id)}),ge.length?null:i.jsxs("div",{className:"empty-rail",children:[i.jsx(G,{name:"search"}),i.jsx("p",{children:"没有匹配的项目或会话"})]}),we>0?i.jsx("button",{type:"button",className:"text-button project-window-more",onClick:()=>Z(v=>Math.max(0,v-jr)),children:"上一批项目"}):null,we+jr<ge.length?i.jsx("button",{type:"button",className:"text-button project-window-more",onClick:()=>Z(v=>v+jr),children:"下一批项目"}):n.workspaceNextCursor?i.jsx("button",{type:"button",className:"text-button project-window-more",onClick:R,children:"加载更多项目"}):null]}),i.jsxs("footer",{className:"rail-footer",children:[i.jsx("span",{className:`connection-dot ${n.connection}`,"aria-hidden":"true"}),i.jsx("span",{"data-testid":"runtime-connection-state","data-state":n.connection,title:Bv(n.connection),children:Qa(n.connection)}),i.jsx("button",{type:"button",className:"icon-button rail-settings","aria-label":"打开设置",onClick:w,children:i.jsx(G,{name:"settings",size:14})}),n.bootstrap?.productVersion?i.jsxs("span",{className:"version",children:["v",n.bootstrap.productVersion]}):null]}),d?i.jsx(op,{side:"left",minWidth:gc,maxWidth:lp,defaultWidth:Zo,label:"拖动或按方向键调整项目导航宽度",width:f,controls:"workspace-rail",onPreview:N,onCommit:L}):null]})}function ff(n){if(!["ArrowDown","ArrowUp","Home","End"].includes(n.key))return;const r=n.currentTarget.closest(".project-tree");if(!r)return;const o=Array.from(r.querySelectorAll(".project-toggle:not(:disabled), .project-session-main:not(:disabled)")).filter(f=>f.getClientRects().length>0),a=o.indexOf(n.currentTarget);if(a<0||o.length===0)return;const d=n.key==="Home"?0:n.key==="End"?o.length-1:Math.max(0,Math.min(o.length-1,a+(n.key==="ArrowDown"?1:-1)));n.preventDefault(),o[d]?.focus()}function Wv(n,r){return n.pinnedOrder!==void 0||r.pinnedOrder!==void 0?n.pinnedOrder===void 0?1:r.pinnedOrder===void 0?-1:n.pinnedOrder-r.pinnedOrder:Date.parse(r.lastActivatedAt)-Date.parse(n.lastActivatedAt)}function pf(n,r){return!!(r&&(n.label.toLocaleLowerCase().includes(r)||n.path.toLocaleLowerCase().includes(r)))}function Fv(n,r){return r?n.filter(o=>[o.name,o.taskSummary,o.id,o.model].filter(a=>!!a).some(a=>a.toLocaleLowerCase().includes(r))):n}function us(n){return n.name||n.taskSummary||`会话 ${n.id.slice(0,8)}`}function mp(n){const r=n.replace(/[\\/]+$/,"");return r.split(/[\\/]/).filter(Boolean).at(-1)??r}function qv(n){return n.length<=31?n:`…${n.slice(-30)}`}function hf(n){const r=Date.parse(n);if(!Number.isFinite(r))return"未知";const o=Math.max(0,Math.floor((Date.now()-r)/6e4));if(o<1)return"刚刚";if(o<60)return`${o} 分钟前`;const a=Math.floor(o/60);if(a<24)return`${a} 小时前`;const d=Math.floor(a/24);return d<30?`${d} 天前`:new Date(r).toLocaleDateString("zh-CN")}function Qa(n){return n==="live"?"已连接":n==="offline"?"离线":n==="replay-required"?"事件流需恢复":n==="closed"?"已关闭":n==="connecting"?"正在连接…":"正在重连…"}function Bv(n){return n==="live"?"本地 Web Host 已连接":n==="offline"?"浏览器离线":n==="replay-required"?"Web Host 事件流需要恢复":n==="closed"?"本地 Web Host 已关闭":n==="connecting"?"正在连接本地 Web Host":"正在重连本地 Web Host"}function Uv(n){return!n||n.phase==="cold"?{label:"",tone:""}:n.pendingApprovalCount>0||n.phase==="waiting_approval"?{label:"等待审批",tone:"approval"}:n.phase==="running"||n.phase==="starting"?{label:n.phase==="starting"?"正在启动":"运行中",tone:"running"}:n.phase==="queued"?{label:n.queuePosition?`排队 ${n.queuePosition}`:"排队中",tone:"queued"}:n.phase==="failed"?{label:"失败",tone:"failed"}:n.phase==="interrupted"?{label:"已中断",tone:"failed"}:n.phase==="stopping"?{label:"正在停止",tone:"running"}:{label:"已就绪",tone:"ready"}}const Hv=new Set(["starting","queued","running","waiting_approval","stopping"]);function Vv(n){return n?Hv.has(n):!1}const Kv={available:"可用",missing:"目录不存在",not_directory:"不是文件夹",unreadable:"无法读取"},mf=["prepare","runtime","session"],Gv={prepare:"准备项目",runtime:"加载本地 Runtime",session:"恢复会话(如有)"};function Qv({candidate:n,busy:r,stage:o="prepare",error:a,onCancel:d,onOpen:f}){const p=n.availability==="available"&&!n.isActive,g=n.isActive?"当前项目":n.availability!=="available"?"不可打开":r?"正在打开…":"打开项目",x=mf.indexOf(o);return i.jsxs("section",{className:"workspace-confirm","aria-label":"已选择本地项目",children:[i.jsxs("header",{className:"workspace-confirm-head",children:[i.jsx("span",{className:"workspace-confirm-name",title:n.canonicalPath,children:n.label}),i.jsxs("span",{className:"workspace-confirm-meta",children:[n.kind==="git"?"Git 项目":"本地文件夹"," ·"," ",Kv[n.availability],typeof n.sessionCount=="number"?` · ${n.sessionCount} 个会话`:n.sessionCountStatus==="deferred"?" · 会话数读取中":""]})]}),i.jsx("p",{className:"workspace-confirm-path",children:n.canonicalPath}),i.jsx("p",{className:"workspace-confirm-note",children:"已解析真实路径;此操作不会读取目录外的文件。"}),r?i.jsx("ol",{className:"workspace-confirm-stages","aria-label":"打开进度",children:mf.map((w,R)=>i.jsx("li",{className:"workspace-confirm-stage","aria-current":w===o?"step":void 0,"data-state":R<x?"done":R===x?"current":"todo",children:Gv[w]},w))}):null,a?i.jsx("p",{className:"field-error",role:"alert",children:a}):null,i.jsxs("footer",{className:"workspace-confirm-actions",children:[i.jsx("button",{type:"button",className:"text-button",onClick:d,disabled:r,children:"取消"}),i.jsx("button",{type:"button",className:"primary-button",onClick:f,disabled:r||!p,"aria-busy":r,children:g})]})]})}const gp={phase:"idle",roots:[],activeRootId:null,candidates:[],errorCode:null,errorMessage:null,generation:0,rootsLoading:!1,scanning:!1};function Yv(n,r){switch(r.type){case"reset":return{...gp};case"roots-loading":return{...n,rootsLoading:!0,errorMessage:null,errorCode:null};case"roots-loaded":return{...n,rootsLoading:!1,roots:r.roots,errorMessage:null,errorCode:null};case"roots-failed":return{...n,rootsLoading:!1,errorMessage:r.message};case"root-added":{const o=[r.root,...n.roots.filter(a=>a.id!==r.root.id)];return{...n,roots:o}}case"root-removed":{const o=n.roots.filter(d=>d.id!==r.rootId),a=n.activeRootId===r.rootId;return{...n,roots:o,...a?{activeRootId:null,candidates:[],phase:"idle",errorCode:null,errorMessage:null,scanning:!1}:{}}}case"scan-started":return{...n,phase:"loading",activeRootId:r.rootId,generation:r.generation,scanning:!0,errorCode:null,errorMessage:null,candidates:[]};case"scan-succeeded":{if(r.generation!==n.generation||r.rootId!==n.activeRootId)return n;const o=n.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{...n,scanning:!1,roots:o,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!==n.generation||r.rootId!==n.activeRootId?n:{...n,scanning:!1,phase:"error",errorMessage:r.message,...r.errorCode?{errorCode:r.errorCode}:{}};case"scan-cancelled":return r.generation!==n.generation||r.rootId!==n.activeRootId?n:{...n,scanning:!1,phase:"cancelled",candidates:[]};default:return n}}function Xv(n,r){if(n.scanning&&n.activeRootId===r.id||n.activeRootId===r.id&&n.phase==="loading")return"扫描中…";if(r.discovery){if(r.discovery.errorCode==="budget_exceeded")return"部分结果(预算内未扫完)";if(r.discovery.errorCode)return"上次扫描未完成";const o=r.discovery.candidateCount;return r.discovery.status==="partial"?`部分结果(${o} 个候选)`:`${o} 个候选`}return r.lastScannedAt?"尚未在本次会话扫描":"尚未扫描"}const vp=Object.freeze({phase:"browse",candidate:null,pendingPath:null,error:null,pickerReturned:!1});function Jv(n,r){switch(r.type){case"picker-started":return{...n,phase:"picker-pending",error:null,pickerReturned:!1};case"picker-cancelled":return{...n,phase:"browse",error:null,pendingPath:null,pickerReturned:!0};case"picker-unavailable":return{...n,phase:"browse",error:r.reason,pendingPath:null,pickerReturned:!0};case"inspect-started":return{...n,phase:"inspect-pending",pendingPath:r.path,candidate:null,error:null,pickerReturned:!1};case"inspect-succeeded":return{...n,phase:"confirm",candidate:r.candidate,pendingPath:null,error:null};case"activate-started":return n.phase!=="confirm"||!n.candidate?n:{...n,phase:"activate-pending",error:null};case"failed":return{...n,phase:n.candidate?"confirm":"browse",error:r.message,pendingPath:null};case"back-to-browse":return{...n,phase:"browse",candidate:null,pendingPath:null,error:null};case"reset":return vp;default:return n}}function Zv(n){return n.phase==="picker-pending"||n.phase==="inspect-pending"||n.phase==="activate-pending"}function hi({open:n,onClose:r,labelledBy:o,describedBy:a,className:d="",children:f}){const p=m.useRef(null);m.useEffect(()=>{const x=p.current;x&&(n&&!x.open&&x.showModal(),!n&&x.open&&x.close())},[n]);const g=x=>{x.target===x.currentTarget&&r()};return i.jsx("dialog",{ref:p,className:`modal ${d}`.trim(),"aria-labelledby":o,"aria-describedby":a,onCancel:x=>{x.preventDefault(),r()},onClose:r,onClick:g,children:f})}function ey({open:n,onClose:r,state:o,onSelect:a,onLoadMore:d,onPickDirectory:f,onInspect:p,onListRoots:g,onAddRoot:x,onRemoveRoot:w,onDiscoverRoot:R}){const[C,_]=m.useState(""),[P,$]=m.useState(!1),[O,W]=m.useState(""),[te,z]=m.useReducer(Jv,vp),[oe,J]=m.useReducer(Yv,gp),re=m.useRef(0);m.useEffect(()=>{if(!n){J({type:"reset"});return}_(""),$(!1),W(""),z({type:"reset"}),J({type:"roots-loading"}),g().then(F=>J({type:"roots-loaded",roots:F})).catch(F=>J({type:"roots-failed",message:F instanceof Error?F.message:"无法读取项目根目录。"}))},[n]);const N=Zv(te),L=!!o.pendingAction||N,Ne=te.phase==="confirm"||te.phase==="activate-pending"?te.candidate:null,we=O.trim().toLocaleLowerCase(),Z=F=>!we||F.label.toLocaleLowerCase().includes(we)||F.path.toLocaleLowerCase().includes(we),Q=o.workspaces.filter(Z),V=Q.filter(F=>F.pinnedOrder!==void 0),je=Q.filter(F=>F.pinnedOrder===void 0),A=3,pe=P?je:je.slice(0,A),ge=je.length-pe.length,q=V.length>0||je.length>0,ie=async(F,Ee)=>{z({type:"inspect-started",path:F});try{const Fe=await p(F);z({type:"inspect-succeeded",candidate:{...Fe,source:Ee}})}catch(Fe){z({type:"failed",message:Fe instanceof Error?Fe.message:"无法读取该目录。"})}},B=async()=>{z({type:"picker-started"});try{const F=await f();if(F.outcome==="cancelled"){z({type:"picker-cancelled"});return}if(F.outcome!=="selected"||!F.path){z({type:"picker-unavailable",reason:"系统目录选择器不可用,请在高级选项中粘贴绝对路径。"});return}await ie(F.path,"picker")}catch(F){z({type:"picker-unavailable",reason:F instanceof Error?F.message:"无法打开系统目录选择器。"})}},v=async F=>{z({type:"activate-started"});try{await a(F.canonicalPath),r()}catch(Ee){z({type:"failed",message:Ee instanceof Error?Ee.message:"工作区切换失败。"})}},M=F=>{ie(F.path,F.pinnedOrder!==void 0?"pinned":"recent")},ce=F=>{F.preventDefault();const Ee=C.trim();Ee&&ie(Ee,"manual")},de=(F,Ee)=>{re.current+=1;const Fe=re.current;J({type:"scan-started",rootId:F,generation:Fe}),R(F,{refresh:Ee}).then(et=>{J({type:"scan-succeeded",rootId:F,generation:Fe,candidates:et.candidates,status:et.status,...et.errorCode?{errorCode:et.errorCode}:{}})}).catch(et=>{const Ct=et instanceof Error?et.message:"扫描失败。";J({type:"scan-failed",rootId:F,generation:Fe,message:Ct})})},ke=F=>{if(F.discovery?.cached||F.discovery){J({type:"scan-started",rootId:F.id,generation:re.current+1}),R(F.id,{refresh:!1}).then(Ee=>{re.current+=1,J({type:"scan-succeeded",rootId:F.id,generation:re.current,candidates:Ee.candidates,status:Ee.status,...Ee.errorCode?{errorCode:Ee.errorCode}:{}})}).catch(Ee=>{re.current+=1,J({type:"scan-failed",rootId:F.id,generation:re.current,message:Ee instanceof Error?Ee.message:"扫描失败。"})});return}de(F.id,!0)},ee=F=>{de(F.id,!0)},he=F=>{w(F.id).then(()=>J({type:"root-removed",rootId:F.id})).catch(Ee=>{J({type:"roots-failed",message:Ee instanceof Error?Ee.message:"无法移除项目根目录。"})})},Se=async()=>{J({type:"roots-loading"});try{const F=await f();if(F.outcome!=="selected"||!F.path){J({type:"roots-loaded",roots:oe.roots});return}const Ee=await x(F.path);J({type:"root-added",root:Ee}),de(Ee.id,!0)}catch(F){J({type:"roots-failed",message:F instanceof Error?F.message:"无法添加项目根目录。"})}},ae=(F,Ee)=>Ee?`${F.replace(/[\\/]+$/u,"")}/${Ee}`:F,Me=oe.roots.find(F=>F.id===oe.activeRootId)??null,He=oe.candidates.filter(F=>!we||F.label.toLocaleLowerCase().includes(we)),Ze=24,[ft,lt]=m.useState(!1),wt=ft?He:He.slice(0,Ze),pt=He.length-wt.length;return i.jsxs(hi,{open:n,onClose:r,labelledBy:"workspace-dialog-title",describedBy:"workspace-dialog-description",className:"workspace-modal",children:[i.jsxs("div",{className:"modal-header",children:[i.jsxs("div",{children:[i.jsx("span",{className:"eyebrow",children:"LOCAL WORKSPACE"}),i.jsx("h2",{id:"workspace-dialog-title",children:"打开或新增项目"}),i.jsx("p",{id:"workspace-dialog-description",children:"选择一个本地目录作为项目;Host 会解析真实路径并拒绝无效目录。"})]}),i.jsx("button",{type:"button",className:"icon-button",onClick:r,"aria-label":"关闭工作区选择",children:i.jsx(G,{name:"close"})})]}),i.jsxs("div",{className:"workspace-picker",children:[i.jsxs("label",{className:"workspace-search",children:[i.jsx("span",{className:"sr-only",children:"搜索最近项目"}),i.jsx(G,{name:"search",size:15}),i.jsx("input",{type:"search",value:O,onChange:F=>W(F.target.value),placeholder:"搜索最近项目…",disabled:L})]}),i.jsxs("button",{type:"button",className:"workspace-pick-folder primary-button",onClick:()=>{B()},disabled:te.phase==="picker-pending"||L&&!N,"aria-busy":te.phase==="picker-pending",children:[i.jsx(G,{name:"workspace",size:16}),te.phase==="picker-pending"?"正在打开 Finder…":"从 Finder 选择文件夹…"]}),te.error?i.jsx("p",{className:"field-error",role:"alert",children:te.error}):null,te.phase==="inspect-pending"?i.jsxs("p",{className:"workspace-inspect-pending",role:"status",children:["正在解析 ",te.pendingPath,"…"]}):null]}),Ne?i.jsx(Qv,{candidate:Ne,busy:te.phase==="activate-pending",stage:te.phase==="activate-pending"?"runtime":"prepare",error:te.error,onCancel:()=>z({type:"back-to-browse"}),onOpen:()=>{v(Ne)}}):null,i.jsxs("div",{className:"workspace-options",role:"group","aria-label":"常用工作区",children:[V.length>0?i.jsxs(i.Fragment,{children:[i.jsx("h3",{className:"workspace-group-heading",children:"固定项目"}),V.map(F=>i.jsx(gf,{workspace:F,locked:L,onOpen:M},F.id))]}):null,je.length>0?i.jsxs(i.Fragment,{children:[i.jsx("h3",{className:"workspace-group-heading",children:V.length>0?"最近打开":"最近项目"}),pe.map(F=>i.jsx(gf,{workspace:F,locked:L,onOpen:M},F.id))]}):null,q?null:i.jsx("p",{className:"workspace-empty",children:"没有匹配的项目。"}),ge>0||P&&je.length>A?i.jsx("button",{type:"button",className:"text-button workspace-toggle-all","aria-expanded":P,onClick:()=>$(F=>!F),children:P?"收起其他项目":`其他项目(${ge})`}):null,o.workspaceNextCursor?i.jsx("button",{type:"button",className:"text-button",onClick:()=>{d()},disabled:L,children:"加载更多工作区"}):null]}),oe.roots.length>0||oe.rootsLoading?i.jsxs("div",{className:"workspace-roots",role:"group","aria-label":"项目根目录",children:[i.jsx("h3",{className:"workspace-group-heading",children:"项目根目录"}),oe.rootsLoading?i.jsx("p",{className:"workspace-empty",role:"status",children:"正在读取项目根目录…"}):null,oe.roots.map(F=>i.jsxs("div",{className:`workspace-root-row ${oe.activeRootId===F.id?"active":""}`,children:[i.jsxs("button",{type:"button",className:"workspace-root-select",onClick:()=>ke(F),"aria-pressed":oe.activeRootId===F.id,children:[i.jsx("span",{className:"workspace-icon",children:i.jsx(G,{name:"workspace",size:15})}),i.jsxs("span",{children:[i.jsx("strong",{children:F.label}),i.jsx("small",{title:F.canonicalPath,children:Xv(oe,F)})]})]}),i.jsxs("span",{className:"workspace-root-actions",children:[i.jsx("button",{type:"button",className:"icon-button",onClick:()=>ee(F),disabled:oe.scanning,"aria-label":`刷新项目根目录 ${F.label}`,children:i.jsx(G,{name:"refresh",size:14})}),i.jsx("button",{type:"button",className:"icon-button",onClick:()=>he(F),disabled:oe.scanning,"aria-label":`移除项目根目录 ${F.label}`,children:i.jsx(G,{name:"close",size:14})})]})]},F.id)),i.jsx("button",{type:"button",className:"text-button workspace-add-root",onClick:()=>{Se()},disabled:oe.scanning,children:"添加项目根目录…"})]}):null,!oe.rootsLoading&&oe.roots.length===0?i.jsx("button",{type:"button",className:"text-button workspace-add-root",onClick:()=>{Se()},disabled:oe.scanning,children:"添加项目根目录…"}):null,oe.scanning?i.jsx("p",{className:"workspace-empty",role:"status",children:"正在扫描项目根目录…"}):null,oe.phase==="error"?i.jsx("p",{className:"field-error",role:"alert",children:oe.errorMessage||"扫描失败。"}):null,oe.phase==="partial"?i.jsx("p",{className:"workspace-empty",role:"status",children:"部分结果:扫描在预算内未完成,可再次刷新。"}):null,oe.phase==="empty"&&oe.activeRootId?i.jsx("p",{className:"workspace-empty",role:"status",children:"该根目录下未发现候选项目;可用 Finder 或高级路径打开任意目录。"}):null,Me&&He.length>0?i.jsxs("div",{className:"workspace-discovered",role:"group","aria-label":"发现的项目",children:[i.jsxs("h3",{className:"workspace-group-heading",children:["发现的项目(",Me.label,oe.phase==="partial"?",部分结果":"",")"]}),wt.map(F=>{const Ee=ae(Me.canonicalPath,F.relativePath);return i.jsxs("button",{type:"button",className:"workspace-option",disabled:L,onClick:()=>{ie(Ee,"discovered")},children:[i.jsx("span",{className:"workspace-icon",children:i.jsx(G,{name:"workspace",size:16})}),i.jsxs("span",{children:[i.jsx("strong",{children:F.label}),i.jsx("small",{children:F.hint==="git"?"Git 仓库":"项目清单"})]}),i.jsx(G,{name:"chevron",size:15})]},`${F.rootId}:${F.relativePath||"(root)"}`)}),pt>0?i.jsx("button",{type:"button",className:"text-button workspace-toggle-all","aria-expanded":ft,onClick:()=>lt(F=>!F),children:ft?"收起候选项目":`显示更多候选(${pt})`}):null]}):null,i.jsxs("details",{className:"workspace-advanced",children:[i.jsx("summary",{children:"高级:粘贴绝对路径"}),i.jsxs("form",{className:"workspace-path-form",onSubmit:ce,children:[i.jsx("label",{htmlFor:"workspace-path-input",children:"打开其他本地目录"}),i.jsxs("div",{className:"path-input-row",children:[i.jsx("input",{id:"workspace-path-input",value:C,onChange:F=>_(F.target.value),placeholder:"/Users/name/project",spellCheck:!1,autoComplete:"off"}),i.jsx("button",{type:"submit",className:"primary-button",disabled:!C.trim()||L,children:"打开"})]})]})]})]})}function gf({workspace:n,locked:r,onOpen:o}){return i.jsxs("button",{type:"button",className:`workspace-option ${n.active?"active":""}`,disabled:n.active||!n.available||r,onClick:()=>o(n),children:[i.jsx("span",{className:"workspace-icon",children:i.jsx(G,{name:"workspace",size:17})}),i.jsxs("span",{children:[i.jsx("strong",{children:n.label||mp(n.path)}),i.jsx("small",{title:n.path,children:n.path})]}),n.active?i.jsx("span",{className:"current-pill",children:"当前"}):n.available?i.jsx(G,{name:"chevron",size:15}):i.jsx("span",{className:"current-pill",children:"不可用"})]})}function ty({open:n,onClose:r,session:o,pending:a,onRename:d}){const[f,p]=m.useState(""),[g,x]=m.useState(""),w=o?.id;m.useEffect(()=>{n&&o&&(p(us(o)),x(""))},[n,w]);const R=async C=>{if(C.preventDefault(),!(!o||!f.trim())){x("");try{await d(o.id,f.trim()),r()}catch(_){x(_ instanceof Error?_.message:"重命名失败,请重试。")}}};return i.jsx(hi,{open:n,onClose:r,labelledBy:"rename-title",className:"rename-modal",children:i.jsxs("form",{onSubmit:R,children:[i.jsxs("header",{className:"modal-header",children:[i.jsxs("div",{children:[i.jsx("span",{className:"eyebrow",children:"SESSION"}),i.jsx("h2",{id:"rename-title",children:"重命名会话"})]}),i.jsx("button",{type:"button",className:"icon-button",onClick:r,"aria-label":"关闭重命名窗口",children:i.jsx(G,{name:"close"})})]}),i.jsxs("div",{className:"rename-body",children:[i.jsx("label",{htmlFor:"session-name",children:"会话名称"}),i.jsx("input",{id:"session-name",value:f,onChange:C=>{p(C.target.value),g&&x("")},maxLength:120,autoFocus:!0}),g?i.jsx("p",{className:"field-error",role:"alert",children:g}):null]}),i.jsxs("footer",{className:"modal-footer",children:[i.jsx("button",{type:"button",className:"secondary-button",onClick:r,children:"取消"}),i.jsx("button",{type:"submit",className:"primary-button",disabled:a||!f.trim(),children:a?"保存中…":"保存"})]})]})})}const vf=8;function ny({open:n,onClose:r,session:o,pending:a,onSave:d}){const[f,p]=m.useState(()=>o?.tags?[...o.tags]:[]),[g,x]=m.useState(""),[w,R]=m.useState(""),C=o?.id;m.useEffect(()=>{n&&o&&(p(o.tags??[]),x(""),R(""))},[n,C]);const _=()=>{const O=g.trim().slice(0,32);if(x(""),!!O&&!f.includes(O)){if(f.length>=vf){R(`最多 ${vf} 个标签。`);return}p([...f,O]),R("")}},P=O=>p(f.filter(W=>W!==O)),$=async O=>{if(O.preventDefault(),!!o){R("");try{await d(o.id,f),r()}catch(W){R(W instanceof Error?W.message:"保存标签失败,请重试。")}}};return i.jsx(hi,{open:n,onClose:r,labelledBy:"session-tags-title",className:"tags-modal",children:i.jsxs("form",{onSubmit:$,children:[i.jsxs("header",{className:"modal-header",children:[i.jsxs("div",{children:[i.jsx("span",{className:"eyebrow",children:"SESSION"}),i.jsx("h2",{id:"session-tags-title",children:"管理会话标签"})]}),i.jsx("button",{type:"button",className:"icon-button",onClick:r,"aria-label":"关闭标签窗口",children:i.jsx(G,{name:"close"})})]}),i.jsxs("div",{className:"session-tags-body",children:[o?i.jsx("p",{className:"modal-description",children:us(o)}):null,i.jsx("div",{className:"session-tags-chips",role:"list","aria-label":"当前标签",children:f.length===0?i.jsx("span",{className:"session-tags-empty",children:"还没有标签,输入后回车添加。"}):f.map(O=>i.jsxs("span",{className:"session-tag-chip",role:"listitem",children:[O,i.jsx("button",{type:"button",className:"icon-button session-tag-remove","aria-label":`移除标签 ${O}`,onClick:()=>P(O),children:i.jsx(G,{name:"close",size:11})})]},O))}),i.jsx("label",{htmlFor:"session-tag-input",children:"新标签"}),i.jsx("input",{id:"session-tag-input",value:g,onChange:O=>{x(O.target.value),w&&R("")},onKeyDown:O=>{(O.key==="Enter"||O.key===","||O.key===",")&&(O.preventDefault(),_())},placeholder:"回车或逗号添加",maxLength:32,autoFocus:!0}),w?i.jsx("p",{className:"field-error",role:"alert",children:w}):null]}),i.jsxs("footer",{className:"modal-footer",children:[i.jsx("button",{type:"button",className:"secondary-button",onClick:r,children:"取消"}),i.jsx("button",{type:"submit",className:"primary-button",disabled:a,children:a?"保存中…":"保存"})]})]})})}function ry({open:n,onClose:r,title:o,body:a,confirmLabel:d,danger:f=!1,pending:p=!1,onConfirm:g}){const x=m.useId(),w=async()=>{if(!p)try{await g(),r()}catch{}};return i.jsxs(hi,{open:n,onClose:r,labelledBy:x,className:"confirm-modal",children:[i.jsxs("header",{className:"modal-header",children:[i.jsx("h2",{id:x,children:o}),i.jsx("button",{type:"button",className:"icon-button",onClick:r,"aria-label":"关闭确认窗口",children:i.jsx(G,{name:"close"})})]}),i.jsx("p",{className:"confirm-body",children:a}),i.jsxs("footer",{className:"modal-footer",children:[i.jsx("button",{type:"button",className:"secondary-button",autoFocus:!0,onClick:r,children:"取消"}),i.jsx("button",{type:"button",className:f?"danger-button":"primary-button",disabled:p,onClick:()=>{w()},children:p?"处理中…":d})]})]})}function sy({open:n,onClose:r,session:o,pending:a,onConfirm:d}){const f=async()=>{if(o)try{await d(o.id),r()}catch{}};return i.jsxs(hi,{open:n,onClose:r,labelledBy:"confirm-delete-title",describedBy:"confirm-delete-description",className:"delete-modal",children:[i.jsxs("div",{className:"modal-header",children:[i.jsxs("div",{children:[i.jsx("span",{className:"eyebrow",children:"SESSION"}),i.jsx("h2",{id:"confirm-delete-title",children:"删除会话"})]}),i.jsx("button",{type:"button",className:"icon-button",onClick:r,"aria-label":"关闭删除确认",children:i.jsx(G,{name:"close"})})]}),i.jsxs("p",{id:"confirm-delete-description",className:"confirm-delete-body",children:["将永久删除会话",i.jsx("strong",{children:o?`「${us(o)}」`:""}),"及其全部记录(消息、文件变更、目标与检查点)。此操作不可恢复。"]}),i.jsxs("footer",{className:"modal-footer",children:[i.jsx("button",{type:"button",className:"secondary-button",onClick:r,children:"取消"}),i.jsx("button",{type:"button",className:"danger-button",disabled:a,onClick:()=>{f()},children:a?"删除中…":"永久删除"})]})]})}const iy=["appearance.style","appearance.theme","appearance.motion","defaults.model","defaults.effort","permissions.toolConfirmation"];function qo(n,r){return r==="appearance.style"?n.sections.appearance.style:r==="appearance.theme"?n.sections.appearance.theme:r==="appearance.motion"?n.sections.appearance.motion:r==="defaults.model"?n.sections.defaults.model:r==="defaults.effort"?n.sections.defaults.effort:n.sections.permissions.toolConfirmation}function oy(n){return{"appearance.style":n.sections.appearance.style.effectiveValue,"appearance.theme":n.sections.appearance.theme.effectiveValue,"appearance.motion":n.sections.appearance.motion.effectiveValue,"defaults.model":n.sections.defaults.model.effectiveValue,"defaults.effort":n.sections.defaults.effort.effectiveValue,"permissions.toolConfirmation":n.sections.permissions.toolConfirmation.effectiveValue}}function Cr(n){return{openedAtRevision:n.revision,workspace:n.workspace,base:n,values:uy(n),intents:{},serverLatest:null}}function yp(n,r,o){const a=_n(n.base,r),d={...n.values,[r]:o},f={...n.intents};return Object.is(o,a)?delete f[r]:f[r]={op:"set",value:o},{...n,values:d,intents:f,serverLatest:null}}function xp(n,r){const o=qo(n.base,r),a={...n.intents};return o.explicitValue===void 0?(delete a[r],{...n,values:{...n.values,[r]:_n(n.base,r)},intents:a,serverLatest:null}):(a[r]={op:"unset"},{...n,values:{...n.values,[r]:o.inheritedValue??o.effectiveValue},intents:a,serverLatest:null})}function yf(n,r){return{...n,serverLatest:r}}function ly(n){const r=n.serverLatest;if(!r)return n;let o=Cr(r);for(const a of _r(n)){const d=n.intents[a];if(d){if(d.op==="unset"){o=xp(o,a);continue}o=yp(o,a,d.value)}}return o}function _r(n){return iy.filter(r=>n.intents[r]!==void 0)}function ay(n){return _r(n).map(r=>{const o=n.intents[r];return o.op==="unset"?{op:"unset",key:r}:{op:"set",key:r,value:o.value}})}function cy(n){return n.serverLatest?_r(n).filter(r=>{const o=qo(n.base,r),a=qo(n.serverLatest,r);return!Object.is(o.effectiveValue,a.effectiveValue)||!Object.is(o.explicitValue,a.explicitValue)||o.overridden!==a.overridden||o.source!==a.source}):[]}function _n(n,r){const o=qo(n,r);return o.explicitValue??o.effectiveValue}function uy(n){const r=oy(n);return{"appearance.style":_n(n,"appearance.style")??r["appearance.style"],"appearance.theme":_n(n,"appearance.theme")??r["appearance.theme"],"appearance.motion":_n(n,"appearance.motion")??r["appearance.motion"],"defaults.model":_n(n,"defaults.model")??r["defaults.model"],"defaults.effort":_n(n,"defaults.effort")??r["defaults.effort"],"permissions.toolConfirmation":_n(n,"permissions.toolConfirmation")??r["permissions.toolConfirmation"]}}const Bo={phase:"closed",section:"general",draft:null,message:null,problemCode:null,confirmDiscard:!1};function dy(n,r){switch(r.type){case"open":return{...Bo,phase:"ready",draft:Cr(r.document)};case"close":return Bo;case"select_section":return{...n,section:r.section,confirmDiscard:!1};case"set_value":return!n.draft||n.phase==="saving"?n:{...n,phase:"ready",draft:yp(n.draft,r.key,r.value),message:null,problemCode:null,confirmDiscard:!1};case"reset_value":return!n.draft||n.phase==="saving"?n:{...n,phase:"ready",draft:xp(n.draft,r.key),message:null,problemCode:null,confirmDiscard:!1};case"save_started":return{...n,phase:"saving",message:"正在原子应用设置…",problemCode:null,confirmDiscard:!1};case"save_succeeded":return{...n,phase:"success",draft:Cr(r.document),message:"设置已安全保存并应用。",problemCode:null,confirmDiscard:!1};case"save_failed":{if(!n.draft)return n;const o=r.code==="settings_revision_conflict";return{...n,phase:o?"conflict":"rejected",draft:r.latest?yf(n.draft,r.latest):n.draft,message:r.message,problemCode:r.code,confirmDiscard:!1}}case"server_updated":{if(!n.draft)return{...n,phase:"ready",draft:Cr(r.document)};if(n.phase==="saving")return n;if(n.draft.base.revision===r.document.revision){const o=_r(n.draft).length>0;return{...n,draft:o?{...n.draft,base:r.document}:Cr(r.document)}}return n.draft.workspace!==r.document.workspace||_r(n.draft).length===0?{...n,phase:"ready",draft:Cr(r.document),message:"已采用 Host 的最新设置。",problemCode:null,confirmDiscard:!1}:{...n,phase:"conflict",draft:yf(n.draft,r.document),message:"Host 设置已更新。你的草稿仍被保留,请选择如何继续。",problemCode:"settings_revision_conflict",confirmDiscard:!1}}case"adopt_server":return n.draft?.serverLatest?{...n,phase:"ready",draft:Cr(n.draft.serverLatest),message:"已采用服务器最新值。",problemCode:null}:n;case"rebase":return n.draft?.serverLatest?{...n,phase:"ready",draft:ly(n.draft),message:"草稿已基于服务器最新值重放;请确认后再次应用。",problemCode:null}:n;case"request_discard":return{...n,confirmDiscard:!0};case"cancel_discard":return{...n,confirmDiscard:!1};case"clear_status":return{...n,phase:"ready",message:null,problemCode:null}}}const fy=["auto","none","minimal","low","medium","high","xhigh","max"],py=[{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 hy({open:n,onClose:r,state:o,actions:a,onGoToSessionControls:d}){const f=m.useRef(null),p=m.useRef(null),g=m.useRef(null),x=m.useRef(null),w=m.useRef(null),R=m.useRef(!1),C=m.useRef(null),_=m.useRef(Bo.phase),[P,$]=m.useReducer(dy,Bo),[O,W]=m.useState(!1),[te,z]=m.useState(!1),[oe,J]=m.useState(null),re=o.settings??o.settingsMirror.lastGood,N=re&&(!o.workspace||re.workspace===o.workspace)?re:null;m.useEffect(()=>{const A=f.current;A&&(n&&!A.open&&A.showModal(),!n&&A.open&&A.close())},[n]),m.useEffect(()=>{if(n&&!R.current)N&&($({type:"open",document:N}),w.current=N),W(!1),z(!1),J(null);else if(n&&N&&w.current===null)$({type:"open",document:N}),w.current=N;else if(n&&N&&w.current!==null&&w.current!==N){if(P.phase==="saving")return;w.current=N,$({type:"server_updated",document:N})}else!n&&R.current&&($({type:"close"}),w.current=null,C.current=null);R.current=n},[N,P.phase,n]),m.useEffect(()=>{P.confirmDiscard&&g.current?.focus()},[P.confirmDiscard]),m.useEffect(()=>{const A=_.current;if(_.current=P.phase,!n||A!=="saving"||P.phase!=="success")return;const pe=jf();f.current?.contains(pe)||p.current?.focus()},[P.phase,n]),m.useEffect(()=>{!n||N||o.settingsMirror.status==="loading"||a.refreshSettings().catch(()=>{})},[a,N,n,o.settingsMirror.status]),m.useEffect(()=>{!n||!P.draft||!o.workspace||P.draft.workspace!==o.workspace&&($({type:"close"}),w.current=null)},[P.draft,n,o.workspace]);const L=P.draft,se=L?_r(L):[],Ne=se.length>0,we=o.processing&&se.some(A=>["defaults.effort","permissions.toolConfirmation"].includes(A)),Z=()=>{if(P.phase!=="saving"){if(Ne){const A=jf();x.current=A instanceof HTMLElement?A:null,$({type:"request_discard"});return}$({type:"close"}),r()}},Q=()=>{$({type:"close"}),r()},V=async A=>{if(A.preventDefault(),!L||!Ne||P.phase==="saving"||P.phase==="conflict")return;const pe=ay(L),ge=C.current??Ae();C.current=ge,$({type:"save_started"});try{const q=await a.updateSettings(L.base.revision,pe,ge);C.current=null,w.current=q.settings,$({type:"save_succeeded",document:q.settings})}catch(q){const ie=q instanceof Pe?q.code??"settings_rejected":"network";let B;ie==="settings_revision_conflict"?(C.current=null,B=await a.refreshSettings().catch(()=>{}),B&&(w.current=B)):q instanceof Pe&&q.status<500&&(C.current=null);const v=ie==="settings_revision_conflict"&&!B?"settings_recovery_required":ie;$({type:"save_failed",code:v,message:jy(v,q),...B?{latest:B}:{}})}},je=A=>{A.target===A.currentTarget&&Z()};return i.jsx("dialog",{id:"settings-dialog",ref:f,className:"modal settings-modal","aria-modal":"true","aria-labelledby":"settings-title","aria-describedby":"settings-description",onCancel:A=>{A.preventDefault(),Z()},onClick:je,children:i.jsxs("form",{onSubmit:V,children:[i.jsxs("header",{className:"modal-header settings-header",children:[i.jsxs("div",{children:[i.jsx("span",{className:"eyebrow",children:"HOST SETTINGS"}),i.jsx("h2",{id:"settings-title",children:"设置"}),i.jsx("p",{id:"settings-description",children:"由本地 Host 读取、校验并原子保存。"})]}),i.jsx("button",{ref:p,type:"button",className:"icon-button",onClick:Z,"aria-label":"关闭设置",disabled:P.phase==="saving",children:i.jsx(G,{name:"close"})})]}),i.jsxs("div",{className:"settings-layout",children:[i.jsx("nav",{className:"settings-navigation","aria-label":"设置类别",children:py.map(A=>i.jsxs("button",{type:"button",className:P.section===A.id?"active":"","aria-current":P.section===A.id?"page":void 0,onClick:()=>$({type:"select_section",section:A.id}),children:[i.jsx(G,{name:A.icon,size:16}),i.jsx("span",{children:A.label})]},A.id))}),i.jsxs("div",{className:"settings-content",children:[i.jsx(wy,{state:o}),L?i.jsxs(i.Fragment,{children:[P.phase==="conflict"?i.jsx(ky,{draft:L,onAdopt:()=>{C.current=null,$({type:"adopt_server"})},onRebase:()=>{C.current=null,$({type:"rebase"})}}):null,P.message&&P.phase!=="conflict"?i.jsxs("div",{className:`settings-inline-message settings-message-${P.phase}`,role:P.phase==="rejected"?"alert":"status","aria-live":P.phase==="rejected"?"assertive":"polite",children:[i.jsx(G,{name:P.phase==="success"?"check":"info",size:16}),i.jsx("span",{children:P.message})]}):null,P.section==="general"?i.jsx(my,{document:L.base,draft:L.values,dirtyKeys:se,saving:P.phase==="saving",onSet:(A,pe)=>$({type:"set_value",key:A,value:pe}),onReset:A=>$({type:"reset_value",key:A})}):null,P.section==="models"?i.jsx(vy,{document:L.base,draft:L.values,dirtyKeys:se,runtimeBusy:o.processing,saving:P.phase==="saving",onGoToSessionControls:d,onSet:(A,pe)=>$({type:"set_value",key:A,value:pe}),onReset:A=>$({type:"reset_value",key:A})}):null,P.section==="permissions"?i.jsx(yy,{document:L.base,value:L.values["permissions.toolConfirmation"],dirtyKeys:se,runtimeBusy:o.processing,saving:P.phase==="saving",confirmAllow:O,allowAcknowledged:te,onAllowRequested:()=>{z(!1),W(!0)},onAllowAcknowledged:z,onConfirmAllow:()=>{$({type:"set_value",key:"permissions.toolConfirmation",value:"allow"}),W(!1),z(!1)},onCancelAllow:()=>{W(!1),z(!1)},onSet:A=>$({type:"set_value",key:"permissions.toolConfirmation",value:A}),onReset:()=>$({type:"reset_value",key:"permissions.toolConfirmation"})}):null,P.section==="advanced"?i.jsx(xy,{state:o,document:L.base,documentAction:oe,onOpenDocument:()=>{J({tone:"status",message:"正在请求 Host 打开设置文件…"}),a.openSettingsDocument().then(()=>J({tone:"status",message:"已交给系统默认编辑器打开。"})).catch(A=>J({tone:"error",message:A instanceof Error?A.message:"无法打开设置文件。"}))},onRefresh:()=>{J({tone:"status",message:"正在重新载入 Host 设置…"}),a.refreshSettings().then(()=>J({tone:"status",message:"已载入最新设置。"})).catch(A=>J({tone:"error",message:A instanceof Error?A.message:"重新载入失败。"}))}}):null]}):i.jsxs("section",{className:"settings-empty","aria-live":"polite",children:[i.jsx(G,{name:"refresh"}),i.jsx("h3",{children:"正在读取设置"}),i.jsx("p",{children:"等待本地 Host 返回可验证的设置快照。"})]})]})]}),P.confirmDiscard?i.jsxs("div",{className:"settings-discard-confirm",role:"alertdialog","aria-labelledby":"settings-discard-title","aria-describedby":"settings-discard-description",children:[i.jsxs("div",{children:[i.jsx("strong",{id:"settings-discard-title",children:"放弃未应用的更改?"}),i.jsxs("p",{id:"settings-discard-description",children:["你的 ",se.length," 项草稿尚未写入 Host。"]})]}),i.jsxs("div",{children:[i.jsx("button",{ref:g,type:"button",className:"secondary-button",onClick:()=>{$({type:"cancel_discard"});const A=x.current;requestAnimationFrame(()=>A?.focus())},children:"继续编辑"}),i.jsx("button",{type:"button",className:"danger-ghost-button",onClick:Q,children:"放弃更改"})]})]}):null,i.jsxs("footer",{className:"modal-footer settings-footer",children:[i.jsx("span",{className:"settings-dirty-summary","aria-live":"polite",children:Ne?`${se.length} 项未应用`:"没有未应用的更改"}),i.jsx("button",{type:"button",className:"secondary-button",onClick:Z,disabled:P.phase==="saving",children:"取消"}),i.jsx("button",{type:"submit",className:"primary-button",disabled:!L||!Ne||P.phase==="saving"||P.phase==="conflict"||we||L.base.state!=="ready"||!L.base.writable,children:P.phase==="saving"?"应用中…":`应用 ${se.length} 项`})]})]})})}function my({document:n,draft:r,dirtyKeys:o,saving:a,onSet:d,onReset:f}){const p=n.sections.appearance.style,g=n.sections.appearance.theme,x=n.sections.appearance.motion;return i.jsxs(el,{heading:"通用",detail:"外观偏好由 Host 保存,并在所有 Workbench 窗口保持一致。",children:[i.jsx(ds,{id:"settings-style",label:"视觉风格",description:"选择内置的方块工坊外观,或切回经典工作台。",field:p,dirty:o.includes("appearance.style"),onReset:()=>f("appearance.style"),disabled:a||!rn(n,p),children:i.jsxs("select",{id:"settings-style",value:r["appearance.style"],disabled:a||!rn(n,p),onChange:w=>d("appearance.style",w.target.value),children:[i.jsx("option",{value:"orion-blocksmith",children:"方块工坊(内置,默认)"}),i.jsx("option",{value:"classic",children:"经典"})]})}),i.jsx(ds,{id:"settings-theme",label:"主题",description:"跟随系统或固定使用浅色、深色。",field:g,dirty:o.includes("appearance.theme"),onReset:()=>f("appearance.theme"),disabled:a||!rn(n,g),children:i.jsxs("select",{id:"settings-theme",value:r["appearance.theme"],disabled:a||!rn(n,g),onChange:w=>d("appearance.theme",w.target.value),children:[i.jsx("option",{value:"system",children:"跟随系统"}),i.jsx("option",{value:"dark",children:"深色"}),i.jsx("option",{value:"light",children:"浅色"})]})}),i.jsxs("figure",{className:"appearance-preview","data-preview-style":r["appearance.style"],"data-preview-theme":r["appearance.theme"],"aria-label":`外观预览:${r["appearance.style"]==="orion-blocksmith"?"方块工坊":"经典工作台"},${gy(r["appearance.theme"])}`,children:[i.jsxs("div",{className:"appearance-preview-frame","aria-hidden":"true",children:[i.jsx("span",{className:"appearance-preview-rail"}),i.jsxs("span",{className:"appearance-preview-main",children:[i.jsx("i",{}),i.jsx("i",{})]}),i.jsx("span",{className:"appearance-preview-panel"})]}),i.jsx("figcaption",{children:"纯 CSS 预览 · 均为内置外观,不支持安装或卸载。"})]}),i.jsx(ds,{id:"settings-motion",label:"动效",description:"减少非必要动画,保留状态变化。",field:x,dirty:o.includes("appearance.motion"),onReset:()=>f("appearance.motion"),disabled:a||!rn(n,x),children:i.jsxs("select",{id:"settings-motion",value:r["appearance.motion"],disabled:a||!rn(n,x),onChange:w=>d("appearance.motion",w.target.value),children:[i.jsx("option",{value:"system",children:"跟随系统"}),i.jsx("option",{value:"reduced",children:"减少动效"})]})})]})}function gy(n){return n==="light"?"浅色":n==="dark"?"深色":"跟随系统"}function vy({document:n,draft:r,dirtyKeys:o,saving:a,runtimeBusy:d,onSet:f,onReset:p,onGoToSessionControls:g}){const x=n.sections.defaults.model,w=n.sections.defaults.effort,R=n.models.some(C=>C.id===r["defaults.model"])?n.models:[{id:r["defaults.model"],label:r["defaults.model"]},...n.models];return i.jsxs(el,{heading:"模型与推理",detail:"项目默认值通常从下一逻辑请求开始生效;当前会话覆盖保持可见。",children:[d?i.jsx(wp,{detail:"当前回合正在运行;项目推理强度暂时锁定,默认模型仍可用于新会话。"}):null,i.jsx(ds,{id:"settings-model",label:"默认模型",description:"仅展示 Host 提供的可用模型标识。",field:x,dirty:o.includes("defaults.model"),onReset:()=>p("defaults.model"),disabled:a||!rn(n,x),children:i.jsx("select",{id:"settings-model",value:r["defaults.model"],disabled:a||!rn(n,x),onChange:C=>f("defaults.model",C.target.value),children:R.map(C=>i.jsxs("option",{value:C.id,children:[C.label,C.provider?` · ${C.provider}`:""]},C.id))})}),i.jsx(ds,{id:"settings-effort",label:"默认推理强度",description:"模型不支持的强度会由 Host 拒绝,不会静默降级。",field:w,dirty:o.includes("defaults.effort"),onReset:()=>p("defaults.effort"),disabled:a||d||!rn(n,w),children:i.jsx("select",{id:"settings-effort",value:r["defaults.effort"],disabled:a||d||!rn(n,w),onChange:C=>f("defaults.effort",C.target.value),children:fy.map(C=>i.jsx("option",{value:C,children:C==="auto"?"Auto":C},C))})}),n.currentSession?i.jsxs("div",{className:"settings-readonly-card","aria-label":"当前会话设置",children:[i.jsxs("div",{children:[i.jsx("span",{children:"当前会话"}),i.jsx("strong",{children:n.currentSession.model})]}),i.jsxs("div",{children:[i.jsx("span",{children:"Effort"}),i.jsx("strong",{children:n.currentSession.effort})]}),i.jsx("p",{children:n.currentSession.overridesProjectEffort?"当前会话覆盖了项目推理强度。":"当前会话沿用项目默认值。"}),i.jsx("small",{children:"可在会话输入框使用 /model 或 /effort 调整当前会话。"}),i.jsx("button",{type:"button",className:"text-button",onClick:g,"aria-controls":"orion-composer",children:"转到会话控制"})]}):null,i.jsxs("div",{className:"credential-note",children:[i.jsx(G,{name:"check",size:16}),i.jsxs("div",{children:[i.jsx("strong",{children:"凭证始终留在 Host"}),i.jsx("p",{children:"浏览器只接收 ready / missing / unavailable 状态,不提供 API Key 输入框。"})]})]})]})}function yy({document:n,value:r,dirtyKeys:o,runtimeBusy:a,saving:d,confirmAllow:f,allowAcknowledged:p,onAllowRequested:g,onAllowAcknowledged:x,onConfirmAllow:w,onCancelAllow:R,onSet:C,onReset:_}){const P=m.useRef(null),$=m.useRef(null),O=n.sections.permissions.toolConfirmation,W=d||a||!rn(n,O);return m.useEffect(()=>{f&&$.current?.focus()},[f]),i.jsxs(el,{heading:"权限",detail:"默认确认策略不改变工作区边界、硬拒绝和高风险保护。",children:[a?i.jsx(wp,{}):null,i.jsx(ds,{id:"settings-tool-confirmation",label:"工具确认",description:"Ask 逐次询问;Deny 默认拒绝;Allow 仍受 Host 安全策略约束。",field:O,labelControl:!1,dirty:o.includes("permissions.toolConfirmation"),onReset:_,disabled:W,children:i.jsxs("fieldset",{id:"settings-tool-confirmation",className:"segmented-field",disabled:W,children:[i.jsx("legend",{className:"sr-only",children:"默认工具确认策略"}),["ask","allow","deny"].map(te=>i.jsxs("label",{children:[i.jsx("input",{ref:te==="allow"?P:void 0,type:"radio",name:"settings-permission",value:te,checked:r===te,onChange:()=>te==="allow"?g():C(te)}),i.jsx("span",{children:te==="ask"?"Ask":te==="allow"?"Allow":"Deny"})]},te))]})}),f?i.jsxs("div",{className:"settings-risk-confirm",role:"alertdialog","aria-labelledby":"allow-confirm-title","aria-describedby":"allow-confirm-description",children:[i.jsx("strong",{id:"allow-confirm-title",children:"确认启用 Allow"}),i.jsx("p",{id:"allow-confirm-description",children:"Orion 会减少常规工具询问,但硬拒绝、工作区边界和风险检查仍然生效。"}),i.jsxs("label",{children:[i.jsx("input",{ref:$,type:"checkbox",checked:p,onChange:te=>x(te.target.checked)}),i.jsx("span",{children:"我理解这会扩大默认授权范围"})]}),i.jsxs("div",{children:[i.jsx("button",{type:"button",className:"secondary-button",onClick:()=>{R(),requestAnimationFrame(()=>P.current?.focus())},children:"保持当前策略"}),i.jsx("button",{type:"button",className:"primary-button",disabled:!p,onClick:w,children:"启用 Allow"})]})]}):null,i.jsx("p",{className:"settings-help",children:"Agent 的 BUILD / PLAN / AUTO 模式与工具确认策略互相独立。"})]})}function xy({state:n,document:r,documentAction:o,onOpenDocument:a,onRefresh:d}){return i.jsxs(el,{heading:"高级",detail:"配置状态、凭证可用性和集成清单均为只读摘要。",children:[r.diagnostic?i.jsxs("div",{className:"settings-diagnostic",role:"alert",children:[i.jsx(G,{name:"warning",size:16}),i.jsxs("div",{children:[i.jsx("strong",{children:Rn(r.diagnostic.code)}),i.jsx("p",{children:Rn(r.diagnostic.message)})]})]}):null,i.jsxs("dl",{className:"settings-facts",children:[i.jsxs("div",{children:[i.jsx("dt",{children:"状态"}),i.jsx("dd",{children:Ey(r.state)})]}),i.jsxs("div",{children:[i.jsx("dt",{children:"工作区"}),i.jsx("dd",{title:"仅显示目录名",children:mp(r.workspace)||"—"})]}),i.jsxs("div",{children:[i.jsx("dt",{children:"文档"}),i.jsx("dd",{children:r.hasDocument?"已创建":"尚未创建"})]}),i.jsxs("div",{children:[i.jsx("dt",{children:"版本"}),i.jsx("dd",{title:r.revision,children:wf(r.revision)})]}),i.jsxs("div",{children:[i.jsx("dt",{children:"Last good"}),i.jsx("dd",{children:n.settingsMirror.lastGood?wf(n.settingsMirror.lastGood.revision):"无"})]}),i.jsxs("div",{children:[i.jsx("dt",{children:"Mirror"}),i.jsxs("dd",{children:[n.settingsMirror.status," · g",n.settingsMirror.generation]})]})]}),i.jsxs("div",{className:"settings-advanced-actions",children:[i.jsxs("button",{type:"button",className:"secondary-button",onClick:d,children:[i.jsx(G,{name:"refresh",size:15}),"重新载入设置"]}),i.jsxs("button",{type:"button",className:"secondary-button",onClick:a,children:[i.jsx(G,{name:"edit",size:15}),"打开配置文件"]})]}),o?i.jsx("div",{className:`settings-document-action ${o.tone}`,role:o.tone==="error"?"alert":"status",children:o.message}):null,i.jsxs("section",{className:"settings-subsection","aria-labelledby":"credential-status-heading",children:[i.jsx("h4",{id:"credential-status-heading",children:"凭证状态"}),i.jsx("p",{children:"仅显示来源类别与可用性;密钥值、环境变量名和认证头不会进入浏览器。"}),r.credentials.length?i.jsx("ul",{className:"settings-readonly-list",children:r.credentials.map(f=>i.jsxs("li",{children:[i.jsx("span",{children:f.providerId}),i.jsx("span",{className:`settings-state-badge state-${f.state}`,children:f.state}),i.jsx("small",{children:_y(f.source)})]},f.providerId))}):i.jsx("p",{className:"settings-empty-line",children:"Host 未报告凭证槽位。"})]}),i.jsxs("section",{className:"settings-subsection","aria-labelledby":"integration-status-heading",children:[i.jsx("h4",{id:"integration-status-heading",children:"只读能力"}),i.jsx("p",{children:"Skills 与 MCP 在专用配置中管理,此处用于确认 Host 实际加载结果。"}),i.jsxs("div",{className:"settings-capability-grid",children:[i.jsx(xf,{title:"Skills",count:n.skills.length,names:n.skills.map(f=>f.name)}),i.jsx(xf,{title:"MCP",count:n.mcpServers.length,names:n.mcpServers.map(f=>f.name)})]})]})]})}function wy({state:n}){const{settingsMirror:r}=n;return r.status==="loading"?i.jsxs("div",{className:"settings-availability",role:"status",children:[i.jsx(G,{name:"refresh",size:15})," 正在与 Host 同步设置…"]}):r.error?i.jsxs("div",{className:"settings-availability error",role:"alert",children:[i.jsx(G,{name:"warning",size:15})," 设置同步失败:",r.error," 当前显示上一次可用值。"]}):r.stale?i.jsxs("div",{className:"settings-availability",role:"status",children:[i.jsx(G,{name:"refresh",size:15})," Host 已更新设置,正在载入;当前显示上一次可用值。"]}):r.document?.state==="invalid"?i.jsxs("div",{className:"settings-availability error",role:"alert",children:[i.jsx(G,{name:"warning",size:15})," 设置文档无效。控件已锁定,并保留上一次可用值供参考。"]}):r.document?.state==="read-only"?i.jsxs("div",{className:"settings-availability",role:"status",children:[i.jsx(G,{name:"info",size:15})," 设置当前为只读状态。"]}):r.document?.state==="unavailable"?i.jsxs("div",{className:"settings-availability error",role:"alert",children:[i.jsx(G,{name:"warning",size:15})," Host 设置暂不可用;当前显示上一次可用值。"]}):null}function el({heading:n,detail:r,children:o}){return i.jsxs("section",{className:"settings-section","aria-labelledby":`settings-${kf(n)}-heading`,children:[i.jsxs("header",{className:"settings-section-heading",children:[i.jsx("h3",{id:`settings-${kf(n)}-heading`,children:n}),i.jsx("p",{children:r})]}),i.jsx("div",{className:"settings-section-fields",children:o})]})}function ds({id:n,label:r,description:o,field:a,labelControl:d=!0,dirty:f,disabled:p,onReset:g,children:x}){return i.jsxs("div",{className:`settings-field-card ${f?"dirty":""}`,children:[i.jsxs("div",{className:"settings-field-copy",children:[d?i.jsx("label",{htmlFor:n,children:r}):i.jsx("strong",{children:r}),i.jsx("p",{children:o}),i.jsxs("div",{className:"settings-field-meta","aria-label":`${r} 设置来源`,children:[i.jsx("span",{children:Sy(a.source)}),i.jsx("span",{children:Cy(a.scope)}),i.jsx("span",{children:by(a.applies)}),f?i.jsx("strong",{children:"草稿"}):null]}),a.blockedReason?i.jsx("small",{className:"settings-blocked-reason",children:Ny(a.blockedReason)}):null]}),i.jsxs("div",{className:"settings-field-control",children:[x,i.jsx("button",{type:"button",className:"text-button",onClick:g,disabled:p||a.explicitValue===void 0&&!f,"aria-label":`重置${r}为继承值`,children:"重置"})]})]})}function ky({draft:n,onAdopt:r,onRebase:o}){const a=cy(n),d=_r(n),f=n.serverLatest;return i.jsxs("div",{className:"settings-conflict",role:"alert",children:[i.jsx(G,{name:"warning",size:17}),i.jsxs("div",{children:[i.jsx("strong",{children:"Host 设置已在其他位置更新"}),i.jsxs("p",{children:["草稿仍被保留",a.length?`;${a.length} 个草稿字段的服务器值发生变化`:"","。"]}),f?i.jsxs("div",{className:"settings-conflict-values","aria-label":"服务器值与我的草稿",children:[i.jsxs("div",{className:"settings-conflict-value-heading","aria-hidden":"true",children:[i.jsx("span",{children:"字段"}),i.jsx("span",{children:"服务器最新值"}),i.jsx("span",{children:"我的草稿"})]}),d.map(p=>i.jsxs("div",{children:[i.jsx("strong",{children:Iy(p)}),i.jsx("span",{"data-label":"服务器最新值",children:String(_n(f,p))}),i.jsxs("span",{"data-label":"我的草稿",children:[String(n.values[p]),n.intents[p]?.op==="unset"?"(重置)":""]})]},p))]}):null,i.jsxs("div",{children:[i.jsx("button",{type:"button",className:"secondary-button",onClick:r,children:"采用服务器值"}),i.jsx("button",{type:"button",className:"primary-button",onClick:o,children:"基于最新值重试"})]})]})]})}function wp({detail:n="当前回合正在运行;相关设置会在 Runtime 空闲后解锁。"}={}){return i.jsxs("div",{className:"settings-busy",role:"status",children:[i.jsx(G,{name:"activity",size:15})," ",n]})}function xf({title:n,count:r,names:o}){return i.jsxs("div",{className:"settings-capability-card",children:[i.jsx("span",{children:n}),i.jsx("strong",{children:r}),i.jsx("small",{children:o.slice(0,3).join(" · ")||"未加载"})]})}function rn(n,r){return n.state==="ready"&&n.writable&&r.writable&&!r.blockedReason}function jy(n,r){const o=r instanceof Error?r.message:"Host 拒绝了设置变更。";switch(n){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 o}}function Sy(n){return`来源:${n==="internal"?"内置":n==="model"?"模型":n==="global"?"全局":n==="project"?"项目":"会话"}`}function Cy(n){return`作用域:${n==="global"?"全局":n==="project"?"项目":"会话"}`}function by(n){return`生效:${n==="live"?"立即":n==="next-logical-request"?"下次请求":n==="new-session"?"新会话":"重启后"}`}function Ny(n){return n==="runtime_busy"?"Runtime 正在运行,暂不可修改。":n==="read_only"?"此字段来自只读配置。":"设置文档无效,修复前不可修改。"}function Iy(n){return n==="appearance.style"?"视觉风格":n==="appearance.theme"?"主题":n==="appearance.motion"?"动效":n==="defaults.model"?"默认模型":n==="defaults.effort"?"默认推理强度":"工具确认"}function _y(n){return n==="environment"?"环境提供":n==="legacy"?"Host 旧配置":"未配置"}function Ey(n){return n==="ready"?"可用":n==="invalid"?"无效":n==="read-only"?"只读":"不可用"}function wf(n){return n.length>24?`${n.slice(0,20)}…`:n}function kf(n){return n.replace(/[^a-z0-9]+/gi,"-").replace(/^-|-$/g,"").toLowerCase()||"section"}function jf(){return typeof document>"u"?null:document.activeElement}const Ry=["导航","面板","编辑","浮层"],kp=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 Py(){if(typeof navigator>"u")return!1;const n=navigator.platform??"";return/mac|iphone|ipad|ipod/i.test(n)||/Mac/i.test(navigator.userAgent??"")}function Ty(n,r=Py()){return n.map(a=>a==="Mod"?r?"⌘":"Ctrl":a==="Shift"?r?"⇧":"Shift":a==="Alt"?r?"⌥":"Alt":a.toUpperCase()).join(r?" ":"+")}function Uo(n,r){let o=!1,a=!1,d=!1,f=null;for(const w of r)w==="Mod"?o=!0:w==="Shift"?a=!0:w==="Alt"?d=!0:f=w;if(o!==(n.metaKey||n.ctrlKey)||a!==n.shiftKey||d!==n.altKey||f===null)return!1;const p=n.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 n.key.toLowerCase()===x}function Ho(n){return kp.find(r=>r.id===n)}function My(){return Ry.map(n=>({group:n,items:kp.filter(r=>r.group===n)})).filter(n=>n.items.length>0)}function Oy({open:n,onClose:r}){const o=m.useRef(null),a=m.useRef(null),d="shortcut-help-title";m.useEffect(()=>{const g=o.current;if(g&&(n&&!g.open&&(a.current=document.activeElement,g.showModal()),!n&&g.open)){g.close();const x=a.current;x&&document.contains(x)&&x.focus(),a.current=null}},[n]);const f=g=>{g.target===g.currentTarget&&r()},p=My();return i.jsxs("dialog",{ref:o,id:"shortcut-help",className:"modal shortcut-help","aria-labelledby":d,onCancel:g=>{g.preventDefault(),r()},onClose:r,onClick:f,children:[i.jsxs("header",{className:"shortcut-help-header",children:[i.jsxs("div",{children:[i.jsx("span",{className:"eyebrow",children:"KEYBOARD"}),i.jsx("h2",{id:d,children:"键盘快捷键"})]}),i.jsx("button",{type:"button",className:"icon-button",onClick:r,"aria-label":"关闭快捷键面板",children:i.jsx(G,{name:"close",size:15})})]}),i.jsx("div",{className:"shortcut-help-body",tabIndex:0,"aria-label":"键盘快捷键列表",children:p.map(({group:g,items:x})=>i.jsxs("section",{className:"shortcut-help-group",children:[i.jsx("h3",{children:g}),i.jsx("dl",{children:x.map(w=>i.jsxs("div",{className:"shortcut-row",children:[i.jsx("dt",{children:w.description}),i.jsx("dd",{children:i.jsx("kbd",{children:Ty(w.tokens)})})]},w.id))})]},g))}),i.jsx("footer",{className:"shortcut-help-footer",children:i.jsxs("p",{children:["按 ",i.jsx("kbd",{children:"Esc"})," 关闭本面板,焦点会回到打开它的位置。"]})})]})}const Ly="modulepreload",Ay=function(n){return"/"+n},Sf={},tl=function(r,o,a){let d=Promise.resolve();if(o&&o.length>0){let x=function(w){return Promise.all(w.map(R=>Promise.resolve(R).then(C=>({status:"fulfilled",value:C}),C=>({status:"rejected",reason:C}))))};document.getElementsByTagName("link");const p=document.querySelector("meta[property=csp-nonce]"),g=p?.nonce||p?.getAttribute("nonce");d=x(o.map(w=>{if(w=Ay(w),w in Sf)return;Sf[w]=!0;const R=w.endsWith(".css"),C=R?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${w}"]${C}`))return;const _=document.createElement("link");if(_.rel=R?"stylesheet":Ly,R||(_.as="script"),_.crossOrigin="",_.href=w,g&&_.setAttribute("nonce",g),document.head.appendChild(_),R)return new Promise((P,$)=>{_.addEventListener("load",P),_.addEventListener("error",()=>$(new Error(`Unable to preload CSS for ${w}`)))})}))}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)})},Sr=[{id:"goal",label:"Goal",icon:"goal"},{id:"activity",label:"活动",icon:"activity"},{id:"integrations",label:"能力",icon:"branch"},{id:"diagnostics",label:"诊断",icon:"diagnostics"}];function $y({state:n,actions:r,tab:o,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=Sr.findIndex(w=>w.id===o),x=p.key==="Home"?0:p.key==="End"?Sr.length-1:(g+(p.key==="ArrowRight"?1:-1)+Sr.length)%Sr.length;a(Sr[x].id),requestAnimationFrame(()=>document.getElementById(`${d}-tab-${Sr[x].id}`)?.focus())};return i.jsxs("div",{className:"agent-panel",children:[i.jsx("div",{className:"inspector-tabs",role:"tablist","aria-label":"详情类别",onKeyDown:f,children:Sr.map(p=>i.jsxs("button",{id:`${d}-tab-${p.id}`,type:"button",role:"tab","aria-selected":o===p.id,"aria-controls":`${d}-panel`,tabIndex:o===p.id?0:-1,onClick:()=>a(p.id),children:[i.jsx(G,{name:p.icon,size:15}),i.jsx("span",{children:p.label})]},p.id))}),i.jsxs("div",{id:`${d}-panel`,className:"inspector-body",role:"tabpanel","aria-labelledby":`${d}-tab-${o}`,tabIndex:0,children:[o==="goal"?i.jsx(Dy,{state:n,actions:r}):null,o==="activity"?i.jsx(Wy,{state:n,actions:r}):null,o==="integrations"?i.jsx(By,{state:n,actions:r}):null,o==="diagnostics"?i.jsx(Uy,{state:n,actions:r}):null]})]})}function Dy({state:n,actions:r}){const o=n.goal,a=n.plan?.body??(typeof n.diagnostics?.plan=="string"?n.diagnostics.plan:""),d=!!n.pendingAction,f=d||n.connection!=="live"||!Ir(n),[p,g]=m.useState(!1);if(!o)return i.jsxs("div",{className:"inspector-stack",children:[i.jsxs("section",{className:"inspector-empty-card",children:[i.jsx("div",{className:"empty-mini-icon",children:i.jsx(G,{name:"goal"})}),i.jsx("h3",{children:"没有活动 Goal"}),i.jsx("p",{children:"Goal 会跨回合保存目标、计划、证据和预算状态。"})]}),i.jsx(zy,{onCreate:w=>r.controlGoal("create",w),disabled:f||!n.activeSessionId}),i.jsx(Cf,{mode:n.mode.baseMode,plan:a})]});const x=o.criteria?.total?Math.round(o.criteria.passed/o.criteria.total*100):0;return i.jsxs("div",{className:"inspector-stack",children:[i.jsxs("section",{className:"goal-card",children:[i.jsxs("header",{children:[i.jsx("span",{className:`goal-status status-${o.status}`,children:o.status.replace(/_/g," ")}),i.jsxs("span",{children:["rev ",o.revision]})]}),i.jsx("h3",{children:o.objective}),o.criteria?i.jsxs("div",{className:"goal-progress",children:[i.jsxs("div",{children:[i.jsx("span",{children:"成功条件"}),i.jsxs("strong",{children:[o.criteria.passed," / ",o.criteria.total]})]}),i.jsx("progress",{value:o.criteria.passed,max:Math.max(1,o.criteria.total),"aria-label":`Goal 条件完成 ${x}%`}),i.jsxs("div",{className:"goal-breakdown",children:[i.jsxs("span",{children:[x,"% 完成"]}),i.jsxs("span",{children:[o.criteria.failed," 失败 · ",o.criteria.stale," 过期"]})]})]}):null,i.jsxs("dl",{className:"metric-grid",children:[i.jsxs("div",{children:[i.jsx("dt",{children:"Tokens"}),i.jsxs("dd",{children:[bf(o.tokensUsed),o.tokenBudget?` / ${bf(o.tokenBudget)}`:""]})]}),i.jsxs("div",{children:[i.jsx("dt",{children:"用时"}),i.jsx("dd",{children:Vy(o.timeUsedMs)})]}),i.jsxs("div",{children:[i.jsx("dt",{children:"续跑"}),i.jsx("dd",{children:o.continuationCount})]}),i.jsxs("div",{children:[i.jsx("dt",{children:"Plan"}),i.jsx("dd",{children:o.planRevision?`r${o.planRevision}`:"—"})]})]}),o.nextAction?i.jsxs("div",{className:"next-action",children:[i.jsx("span",{children:"下一步"}),i.jsx("p",{children:o.nextAction})]}):null,o.auditRemaining?.length?i.jsxs("details",{className:"remaining-audit",children:[i.jsxs("summary",{children:["仍需验证 ",o.auditRemaining.length," 项"]}),i.jsx("ul",{children:o.auditRemaining.map((w,R)=>i.jsx("li",{children:w},`${w}-${R}`))})]}):null,i.jsxs("div",{className:"goal-actions",children:[o.status==="active"?i.jsxs("button",{type:"button",className:"secondary-button",onClick:()=>{r.controlGoal("pause")},disabled:f,children:[i.jsx(G,{name:"pause",size:14}),"暂停"]}):o.status!=="complete"?i.jsxs("button",{type:"button",className:"secondary-button",onClick:()=>{r.controlGoal("resume")},disabled:f,children:[i.jsx(G,{name:"refresh",size:14}),"恢复"]}):null,i.jsx("button",{type:"button",className:"danger-ghost-button",onClick:()=>g(!0),disabled:f,children:"清除"})]})]}),n.goalEvidence.length>0?i.jsxs("section",{className:"inspector-section",children:[i.jsxs("div",{className:"inspector-section-heading",children:[i.jsx("h3",{children:"最近证据"}),i.jsx("span",{children:n.goalEvidence.length})]}),i.jsx("ul",{className:"evidence-list",children:n.goalEvidence.slice(-8).reverse().map(w=>i.jsxs("li",{children:[i.jsx("span",{className:`evidence-state ${w.result}`,"aria-hidden":"true",children:i.jsx(G,{name:w.result==="passed"?"check":w.result==="failed"?"close":"more",size:12})}),i.jsxs("div",{children:[i.jsx("strong",{children:w.subject}),i.jsxs("span",{children:[w.kind," · ",w.result]})]})]},w.id))})]}):null,i.jsx(Cf,{mode:n.mode.baseMode,plan:a,goalPhase:o.planPhase}),n.goalActivity.length>0?i.jsxs("section",{className:"inspector-section",children:[i.jsx("div",{className:"inspector-section-heading",children:i.jsx("h3",{children:"Goal 轨迹"})}),i.jsx("ol",{className:"compact-timeline",children:n.goalActivity.slice(-10).reverse().map((w,R)=>i.jsxs("li",{children:[i.jsx("span",{className:"timeline-pin","aria-hidden":"true"}),i.jsxs("div",{children:[i.jsx("strong",{children:w.type.replace(/_/g," ")}),i.jsx("p",{children:w.message}),i.jsx("time",{children:Ky(w.timestamp)})]})]},`${w.timestamp}-${R}`))})]}):null,i.jsx(ry,{open:p,onClose:()=>g(!1),title:"清除此 Goal?",body:"Goal 的目标与进度会从当前会话移除,会话记录仍会保留。",confirmLabel:"清除 Goal",danger:!0,pending:d,onConfirm:()=>r.controlGoal("clear")})]})}function zy({onCreate:n,disabled:r}){const[o,a]=m.useState(""),d=async f=>{if(f.preventDefault(),!!o.trim())try{await n(o.trim()),a("")}catch{}};return i.jsxs("form",{className:"goal-create",onSubmit:d,children:[i.jsx("label",{htmlFor:"goal-objective",children:"创建 Goal"}),i.jsx("textarea",{id:"goal-objective",rows:3,value:o,onChange:f=>a(f.target.value),placeholder:"输入一个可验证、可持续执行的目标…",disabled:r}),i.jsxs("button",{type:"submit",className:"primary-button",disabled:r||!o.trim(),children:[i.jsx(G,{name:"goal",size:15}),"开始 Goal"]})]})}function Cf({mode:n,plan:r,goalPhase:o}){return i.jsxs("section",{className:"inspector-section plan-section",children:[i.jsxs("div",{className:"inspector-section-heading",children:[i.jsx("h3",{children:"Plan"}),i.jsx("span",{className:`mode-badge mode-${n}`,children:n==="plan"?"PLAN MODE":o||"READ ONLY"})]}),r?i.jsx(ui,{children:r}):i.jsx("p",{className:"muted-copy",children:"还没有保存的计划。切换到 PLAN 模式后提交任务,Runtime 会生成并保存计划。"})]})}function Wy({state:n,actions:r}){const o=m.useMemo(()=>n.tools.filter(a=>Hy(a)),[n.tools]);return i.jsxs("div",{className:"inspector-stack",children:[i.jsxs("section",{className:"inspector-section",children:[i.jsxs("div",{className:"inspector-section-heading",children:[i.jsx("h3",{children:"工具调用"}),i.jsx("span",{children:n.tools.length})]}),n.tools.length?i.jsx("ul",{className:"activity-list",children:n.tools.slice(-20).reverse().map(a=>i.jsx(Fy,{tool:a},a.callId))}):i.jsx(Do,{text:"还没有工具活动"})]}),i.jsx(qy,{state:n,actions:r}),i.jsxs("section",{className:"inspector-section",children:[i.jsxs("div",{className:"inspector-section-heading",children:[i.jsx("h3",{children:"文件变化"}),i.jsx("span",{children:o.length+n.edits.length})]}),o.length||n.edits.length?i.jsxs("ul",{className:"change-list",children:[n.edits.slice(-8).reverse().map(a=>i.jsxs("li",{children:[i.jsx(G,{name:"edit",size:14}),i.jsxs("div",{children:[i.jsx("strong",{children:jp(a.request.path)}),i.jsxs("span",{children:[a.request.kind," · ",a.request.candidates.length," candidates"]})]})]},a.eventId)),o.slice(-8).reverse().map(a=>i.jsxs("li",{children:[i.jsx(G,{name:"code",size:14}),i.jsxs("div",{children:[i.jsx("strong",{children:a.name}),i.jsx("span",{children:a.summary||a.state})]})]},a.callId))]}):i.jsx(Do,{text:"还没有文件变化"})]}),i.jsxs("section",{className:"inspector-section",children:[i.jsxs("div",{className:"inspector-section-heading",children:[i.jsx("h3",{children:"子代理与研究"}),i.jsx("span",{children:n.subtasks.length+n.research.length})]}),n.subtasks.length?i.jsx("ul",{className:"activity-list",children:n.subtasks.slice(-8).reverse().map(a=>i.jsxs("li",{children:[i.jsx("span",{className:`state-dot state-${a.state}`,"aria-hidden":"true"}),i.jsxs("div",{children:[i.jsx("strong",{children:a.role}),i.jsx("span",{children:a.objective})]}),i.jsx("small",{children:a.state})]},a.taskId))}):null,n.research.length?i.jsx("ul",{className:"activity-list",children:n.research.slice(-6).reverse().map(a=>i.jsxs("li",{children:[i.jsx("span",{className:`state-dot state-${a.stage}`,"aria-hidden":"true"}),i.jsxs("div",{children:[i.jsx("strong",{children:"Research"}),i.jsx("span",{children:a.objective||a.packetId})]}),i.jsx("small",{children:a.stage})]},a.packetId))}):null,!n.subtasks.length&&!n.research.length?i.jsx(Do,{text:"还没有子代理或研究活动"}):null]})]})}function Fy({tool:n}){return i.jsxs("li",{children:[i.jsx("span",{className:`state-dot state-${n.state}`,"aria-hidden":"true"}),i.jsxs("div",{children:[i.jsx("strong",{children:n.name}),i.jsx("span",{children:n.summary||`调用 #${n.sequence}`})]}),i.jsx("small",{children:n.duration!==void 0?`${Math.round(n.duration)}ms`:n.state})]})}function qy({state:n,actions:r}){const[o,a]=m.useState(""),[d,f]=m.useState(""),[p,g]=m.useState(),[x,w]=m.useState(0),[R,C]=m.useState(!1),[_,P]=m.useState("");m.useEffect(()=>{a(""),f(""),g(void 0),P("")},[n.activeSessionId]);const $=async(O,W=0)=>{C(!0),P("");try{const te=await r.readToolDetail(O,W);a(O),f(z=>W===0?te.content:`${z}${te.content}`),g(te.nextOffsetBytes),w(te.totalBytes)}catch(te){P(te instanceof Error?te.message:"工具详情读取失败。")}finally{C(!1)}};return i.jsxs("section",{className:"inspector-section tool-detail-browser",children:[i.jsxs("div",{className:"inspector-section-heading",children:[i.jsx("h3",{children:"持久化输出"}),i.jsxs("button",{type:"button",className:"icon-text-button",onClick:()=>{r.refreshToolDetails()},disabled:!!n.pendingAction,children:[i.jsx(G,{name:"refresh",size:13}),"刷新"]})]}),n.toolDetails.length?i.jsx("div",{className:"detail-selector",role:"group","aria-label":"工具输出详情",children:n.toolDetails.slice(-20).reverse().map(O=>i.jsxs("button",{type:"button",className:o&&O.artifactId===o?"active":"",disabled:!O.artifactId||R,onClick:()=>O.artifactId&&void $(O.artifactId),children:[i.jsxs("span",{children:[i.jsx("strong",{children:O.toolName}),i.jsxs("small",{children:["#",O.sequence," · ",Nf(O.outputBytes)]})]}),i.jsx(G,{name:"chevron",size:13})]},`${O.callId}:${O.sequence}`))}):i.jsx(Do,{text:"没有可读取的持久化输出"}),n.toolDetailNextCursor?i.jsx("button",{type:"button",className:"text-button",onClick:()=>{r.loadMoreToolDetails()},disabled:!!n.pendingAction,children:"加载更多输出记录"}):null,_?i.jsx("p",{className:"field-error",role:"alert",children:_}):null,o?i.jsxs("div",{className:"detail-output",children:[i.jsxs("div",{children:[i.jsxs("span",{children:[Nf(x)," · 已脱敏"]}),i.jsx("code",{children:o})]}),i.jsx("pre",{tabIndex:0,children:Rn(d)}),p!==void 0?i.jsx("button",{type:"button",className:"secondary-button",disabled:R,onClick:()=>{$(o,p)},children:R?"读取中…":"加载更多"}):null]}):null]})}function By({state:n,actions:r}){const o=n.skills,a=n.mcpServers;return i.jsxs("div",{className:"inspector-stack",children:[i.jsxs("section",{className:"capability-card",children:[i.jsxs("header",{children:[i.jsx("span",{className:"capability-icon",children:i.jsx(G,{name:"spark",size:17})}),i.jsxs("div",{children:[i.jsx("h3",{children:"Skills"}),i.jsx("p",{children:"安全描述符,只读"})]}),i.jsx("span",{className:`readiness-pill ${o.length?"ready":""}`,children:o.length?`${o.length} 可用`:"未发现"})]}),o.length?i.jsx("ul",{className:"skill-list",children:o.map(d=>i.jsxs("li",{children:[i.jsxs("div",{children:[i.jsx("strong",{children:d.name}),i.jsxs("span",{children:[d.sourceScope," · ",d.providerId]})]}),i.jsx("p",{children:d.description}),d.requestedCapabilities.length?i.jsx("small",{children:d.requestedCapabilities.join(" · ")}):null]},d.id))}):i.jsx("p",{className:"muted-copy",children:"当前 Runtime 没有公开可用的 Skill 描述符。"})]}),i.jsxs("section",{className:"capability-card",children:[i.jsxs("header",{children:[i.jsx("span",{className:"capability-icon mcp",children:i.jsx(G,{name:"branch",size:17})}),i.jsxs("div",{children:[i.jsx("h3",{children:"MCP Servers"}),i.jsx("p",{children:"只读配置与运行状态"})]}),i.jsx("span",{className:`readiness-pill ${a.length?"ready":""}`,children:a.length?`${a.length} 已配置`:"未配置"})]}),a.length?i.jsx("ul",{className:"server-list",children:a.map(d=>i.jsxs("li",{children:[i.jsx("span",{className:`state-dot state-${d.state}`,"aria-hidden":"true"}),i.jsxs("div",{children:[i.jsx("code",{children:d.name}),i.jsxs("small",{children:[d.transport," · ",d.toolCount," tools"]})]}),i.jsx("span",{children:d.disabled?"Disabled":d.state})]},d.id))}):i.jsx("p",{className:"muted-copy",children:"没有可用的 MCP Server。浏览器不会接收环境变量或认证 Header。"})]}),n.skillNextCursor||n.mcpNextCursor?i.jsx("button",{type:"button",className:"secondary-button",onClick:()=>{r.loadMoreCapabilities()},disabled:!!n.pendingAction,children:"加载更多能力"}):null,i.jsxs("section",{className:"security-note",children:[i.jsx(G,{name:"info",size:16}),i.jsxs("p",{children:[i.jsx("strong",{children:"能力边界由 Runtime 管理。"})," Web 端只展示描述符和状态,不加载外部插件代码,也不会绕过 ToolGateway。"]})]})]})}function Uy({state:n,actions:r}){const o=n.diagnostics,a=Qo(n);return i.jsxs("div",{className:"inspector-stack",children:[i.jsxs("div",{className:"diagnostics-toolbar",children:[i.jsxs("div",{children:[i.jsx("span",{className:`connection-dot ${n.connection}`,"aria-hidden":"true"}),i.jsx("strong",{children:Gy(n.connection)})]}),i.jsxs("button",{type:"button",className:"icon-text-button",onClick:()=>{r.refreshDiagnostics()},disabled:!!n.pendingAction,children:[i.jsx(G,{name:"refresh",size:14}),"刷新"]})]}),i.jsxs("section",{className:"inspector-section",children:[i.jsx("div",{className:"inspector-section-heading",children:i.jsx("h3",{children:"Runtime"})}),i.jsxs("dl",{className:"diagnostic-list",children:[i.jsx(Pt,{label:"版本",value:n.bootstrap?.productVersion??"—"}),i.jsx(Pt,{label:"工作区",value:jp(n.workspace)||"—"}),i.jsx(Pt,{label:"会话",value:n.activeSessionId?.slice(0,12)??"未选择"}),i.jsx(Pt,{label:"模式",value:String(o?.agentMode??n.mode.baseMode)}),i.jsx(Pt,{label:"权限",value:String(o?.permissionMode??n.settings?.sections.permissions.toolConfirmation.effectiveValue??"—")}),i.jsx(Pt,{label:"事件游标",value:`${n.lastCursor}`}),i.jsx(Pt,{label:"事件 UUID",value:n.lastEventId?.slice(0,12)??"—"}),i.jsx(Pt,{label:"会话快照",value:a.status}),i.jsx(Pt,{label:"保留事件",value:`${o?.eventStream?.retained??"—"}`}),i.jsx(Pt,{label:"快照请求",value:o?.session?`${o.session.snapshotRequests} 次 / 失败 ${o.session.snapshotFailures}`:"—"}),i.jsx(Pt,{label:"快照时延",value:o?.session?`${o.session.snapshotLastMs} ms(累计 ${o.session.snapshotTotalMs} ms)`:"—"}),i.jsx(Pt,{label:"Session actor",value:o?.session?`${o.session.actors.actorsCreated} 分配 / ${o.session.actors.actorsEvicted} LRU 驱逐`:"—"}),i.jsx(Pt,{label:"control plane",value:o?.session?`${o.session.controlPlaneInstalls} 次装载 / ${o.session.controlPlaneShutdowns} 次关闭`:"—"}),i.jsx(Pt,{label:"浏览器切换",value:`${n.clientTelemetry.sessionSwitches} 次 / 缓存命中 ${n.clientTelemetry.snapshotCacheHits} / 加载 ${n.clientTelemetry.snapshotLoads}`})]})]}),o?.contextUsage?i.jsx(To,{title:"Context usage",value:o.contextUsage}):null,o?.tokenUsage?i.jsx(To,{title:"Token usage",value:o.tokenUsage}):null,o?.harness?i.jsx(To,{title:"Harness",value:o.harness}):null,n.loopStats?i.jsx(To,{title:"Loop statistics",value:n.loopStats}):null,i.jsxs("section",{className:"security-note",children:[i.jsx(G,{name:"check",size:16}),i.jsx("p",{title:"API Key、认证 Header 和环境值不会返回浏览器。",children:"诊断载荷由 Host 脱敏。"})]})]})}function Pt({label:n,value:r}){return i.jsxs("div",{children:[i.jsx("dt",{children:n}),i.jsx("dd",{title:r,children:r})]})}function To({title:n,value:r}){return i.jsxs("details",{className:"json-section",children:[i.jsx("summary",{children:n}),i.jsx("pre",{tabIndex:0,children:fc(r,12e3)})]})}function Do({text:n}){return i.jsxs("div",{className:"empty-small",children:[i.jsx("span",{className:"empty-line","aria-hidden":"true"}),i.jsx("p",{children:n})]})}function Hy(n){return/write|edit|patch|delete|move|rename|mkdir|create/i.test(n.name)}function jp(n){const r=n.replace(/[\\/]+$/,"");return r.split(/[\\/]/).filter(Boolean).at(-1)??r}function bf(n){return new Intl.NumberFormat("zh-CN",{notation:n>99999?"compact":"standard"}).format(n)}function Vy(n){return n<1e3?`${Math.round(n)}ms`:n<6e4?`${Math.round(n/1e3)}s`:`${Math.floor(n/6e4)}m ${Math.round(n%6e4/1e3)}s`}function Nf(n){return n<1024?`${n} B`:n<1048576?`${(n/1024).toFixed(1)} KB`:`${(n/1048576).toFixed(1)} MB`}function Ky(n){const r=Date.parse(n);return Number.isFinite(r)?new Date(r).toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit"}):""}function Gy(n){return n==="live"?"本地 Web Host 连接正常":n==="offline"?"浏览器离线":n==="replay-required"?"Web Host 事件流需要恢复":n==="closed"?"本地 Web Host 已关闭":n==="connecting"?"正在连接本地 Web Host":"正在重新连接本地 Web Host"}function Qy({width:n,onPreview:r,onCommit:o,maxWidth:a=ap}){return i.jsx(op,{side:"right",className:"work-panel-resize-handle",minWidth:vc,maxWidth:a,defaultWidth:yc,label:"拖动或按方向键调整工作面板宽度",width:n,controls:"work-panel-detail",onPreview:r,onCommit:o})}const Yy=["agent","review","terminal","files","git"],Xy=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"}}),Jy=new Map(Yy.map(n=>{const r=Xy[n];return[n,Object.freeze({id:n,label:r.label,icon:r.icon,kind:r.kind})]})),Zy=m.lazy(()=>tl(()=>import("./TerminalPanel-Cyns4uJt.js"),__vite__mapDeps([0,1])).then(n=>({default:n.TerminalPanel}))),ex=m.lazy(()=>tl(()=>import("./FilesPanel-CKeXPofZ.js"),__vite__mapDeps([2,3])).then(n=>({default:n.FilesPanel}))),tx=m.lazy(()=>tl(()=>import("./GitPanel-DollPxv0.js"),__vite__mapDeps([4,3])).then(n=>({default:n.GitPanel}))),nx=m.lazy(()=>tl(()=>import("./ReviewPanel-CNADacIn.js"),__vite__mapDeps([5,3])).then(n=>({default:n.ReviewPanel}))),rx=["focus-work-panel-1","focus-work-panel-2","focus-work-panel-3","focus-work-panel-4","focus-work-panel-5"],If=Object.freeze(Object.fromEntries([...Jy].map(([n,r])=>[n,{label:r.label,icon:r.icon}]))),sx=new Set(["starting","running","stopping","queued","waiting_approval","interrupted","failed"]);function ix(n,r){return n?sx.has(n)?n==="failed"||n==="interrupted"?"failed":n==="queued"||n==="waiting_approval"?"queued":"running":null:r?"running":null}const Ya=["system","light","dark"],ox={system:"monitor",light:"sun",dark:"moon"},_f={system:"跟随系统",light:"浅色",dark:"深色"};function lx(n){const r=n??"system",o=Ya.indexOf(r),a=Ya[(o+1)%Ya.length];return{current:r,next:a}}function ax({state:n,actions:r,mode:o,expanded:a,themePreference:d,onCycleTheme:f,onToggleInspector:p,onShowShortcutHelp:g,activePanel:x,panelOrder:w,agentPanel:R,onExpand:C,onCollapse:_,onPanelChange:P,onAgentPanelChange:$,onWidthPreview:O,onWidthCommit:W,width:te,maxWidthPx:z,revealFileRequest:oe,onRevealInFiles:J,onSendToComposer:re,resourceNavigatorWidths:N,onResourceNavigatorWidthCommit:L}){const se=m.useRef(null),Ne=m.useRef(null),we=m.useRef(a),Z=m.useId(),Q=m.useRef(new Set([x]));Q.current.add(x);const V=m.useRef(x==="terminal"||Q.current.has("terminal"));x==="terminal"&&(V.current=!0);const[je,A]=m.useState(!1),pe=w&&w.length===ac.length?w:ac,ge=n.workspaceResourceEpochs[n.workspaceId]??{files:0,git:0,review:0},q=n.sessionRuntimeById[n.activeSessionId??""]?.phase,ie=ix(q,n.processing),B=lx(d);m.useEffect(()=>{const ee=we.current;if(we.current=a,!(o!=="dock"||ee===a)){if(!a){requestAnimationFrame(()=>se.current?.querySelector(`[data-work-panel-id="${x}"]`)?.focus());return}je&&(A(!1),requestAnimationFrame(()=>Ne.current?.focus()))}},[x,a,o,je]),m.useEffect(()=>{const ee=Ho("toggle-work-panel"),he=Se=>{if(ee&&Uo(Se,ee.tokens)){Se.preventDefault(),a?_():(A(!0),C());return}const ae=rx.findIndex(He=>{const Ze=Ho(He);return Ze?Uo(Se,Ze.tokens):!1}),Me=pe[ae];Me&&(Se.preventDefault(),!(a&&x===Me)&&(P(Me),a||C()))};return window.addEventListener("keydown",he),()=>window.removeEventListener("keydown",he)},[a,o,_,C,P]);const v=ee=>{if(ee.key==="Escape"&&a&&!ee.target.closest('[role="alertdialog"], .terminal-host, input, textarea, [contenteditable]')){ee.preventDefault(),_();return}if(o!=="overlay"||!a||ee.key!=="Tab")return;const he=cx(se.current);if(!he.length){ee.preventDefault(),se.current?.focus();return}const Se=he.indexOf(document.activeElement);ee.shiftKey&&Se<=0?(ee.preventDefault(),he.at(-1)?.focus()):!ee.shiftKey&&(Se<0||Se===he.length-1)&&(ee.preventDefault(),he[0].focus())},M=ee=>{if(o==="overlay"){P(ee),a||(A(!0),C());return}if(a&&x===ee){_();return}a||A(!0),P(ee),C()},ce=(ee=!1)=>i.jsxs("nav",{className:ee?"work-panel-rail work-panel-rail-overlay":"work-panel-rail","aria-label":"工作面板快捷入口",children:[pe.map((he,Se)=>{const ae=If[he],Me=x===he;return i.jsxs("button",{type:"button",className:"work-panel-rail-button","data-work-panel-id":he,"aria-label":`打开${ae.label}面板`,"aria-current":Me?"page":void 0,title:`${ae.label} · ⌘⇧${Se+1}`,onClick:()=>M(he),children:[i.jsx(G,{name:ae.icon,size:17}),he==="terminal"&&ie?i.jsx(pc,{state:ie,className:"rail-status-dot",describe:!1}):null]},he)}),i.jsx("div",{className:"work-panel-rail-spacer"}),i.jsx("button",{type:"button",className:"icon-button shortcut-help-button",onClick:g,"aria-label":"查看键盘快捷键",title:"键盘快捷键(⌘/Ctrl+/)",children:i.jsx(G,{name:"keyboard",size:17})}),i.jsx("button",{type:"button",className:"icon-button theme-cycle-button",onClick:f,"aria-label":`主题:${_f[B.current]},点击切换为${_f[B.next]}`,children:i.jsx(G,{name:ox[B.current],size:17})}),i.jsx("button",{type:"button",className:"icon-button inspector-toggle",onClick:p,"aria-label":a?"关闭工作面板":"打开工作面板","aria-controls":"work-panel","aria-expanded":a,children:i.jsx(G,{name:"sidebar",size:17})})]}),de=ee=>i.jsxs("div",{id:`${Z}-${ee}`,className:"work-panel-pane",role:"tabpanel","aria-label":If[ee].label,hidden:ee!==x,children:[ee==="agent"?i.jsx($y,{state:n,actions:r,tab:R,onTabChange:$}):null,ee==="review"?i.jsx(nx,{workspaceId:n.workspaceId,refreshEpoch:ge.review,actions:r,onSendToComposer:re,navigatorWidthPx:N.review,onNavigatorWidthCommit:he=>L("review",he)}):null,ee==="terminal"?i.jsx(Zy,{workspaceId:n.workspaceId,workspacePath:n.workspace,styleNonce:n.bootstrap?.nonce??"",available:!!n.bootstrap?.capabilities.terminal,actions:r}):null,ee==="files"?i.jsx(ex,{workspaceId:n.workspaceId,refreshEpoch:ge.files,actions:r,revealRequest:oe??null,navigatorWidthPx:N.files,onNavigatorWidthCommit:he=>L("files",he)}):null,ee==="git"?i.jsx(tx,{workspaceId:n.workspaceId,refreshEpoch:ge.git,actions:r,onRevealInFiles:J,onSendToComposer:re,navigatorWidthPx:N.git,onNavigatorWidthCommit:he=>L("git",he)}):null]},ee),ke=x==="terminal"||!V.current?[x]:[x,"terminal"];return i.jsxs("aside",{ref:se,id:"work-panel",className:`work-panel work-panel-${o} ${a?"drawer-open work-panel-expanded":"work-panel-collapsed"}`,role:o==="overlay"?"dialog":void 0,"aria-modal":o==="overlay"&&a?!0:void 0,"aria-label":"工作面板","data-mode":o,"data-state":a?"expanded":"collapsed",tabIndex:o==="overlay"&&a?-1:void 0,onKeyDownCapture:v,children:[o==="dock"?i.jsxs("div",{className:"work-panel-dock-body",children:[a?i.jsx("section",{ref:Ne,id:"work-panel-detail",className:"work-panel-detail","aria-label":"工作面板内容",tabIndex:-1,children:i.jsx("div",{className:"work-panel-content",children:i.jsx(m.Suspense,{fallback:i.jsx("p",{className:"resource-loading",children:"正在加载工作面板…"}),children:ke.map(ee=>de(ee))})})}):null,ce()]}):i.jsxs("div",{id:"work-panel-detail",className:"work-panel-detail",hidden:!a,children:[ce(!0),i.jsx("div",{className:"work-panel-content",children:i.jsx(m.Suspense,{fallback:i.jsx("p",{className:"resource-loading",children:"正在加载工作面板…"}),children:ke.map(ee=>de(ee))})})]}),o==="dock"&&a?i.jsx(Qy,{width:te,maxWidth:z,onPreview:O,onCommit:W}):null]})}function cx(n){return n?Array.from(n.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 Sp="orion.web.right-workspace.v3",Vo=4,zo=300,Cp=160,bp=420,ux=280,dx=["files","git","review"],Ko=Object.freeze({files:zo,git:zo,review:zo});function Np(n){return Number.isFinite(n)?Math.min(bp,Math.max(Cp,Math.round(n))):zo}function pw(n){const r=Number.isFinite(n)?n:0,o=Math.min(bp,r*.48,r-ux);return Math.max(Cp,Math.floor(o))}const Ip=Object.freeze({expanded:!0,activePanel:"agent",detailWidthPx:560,taskSubview:"overview",resourceNavigatorWidthPx:Ko}),fx=Ip;function Ef(){return Object.freeze({schemaVersion:Vo,projectNavigation:Object.freeze({expanded:!0,widthPx:280}),workPanel:Object.freeze({byWorkspace:Object.freeze({}),fallback:fx})})}function px(n){const r=xc(n.agentPanel);return Object.freeze({expanded:n.expanded!==!1,activePanel:pi(n.activePanel)?n.activePanel:"agent",detailWidthPx:Math.max(320,fi(Number.isFinite(n.widthPx)?Number(n.widthPx)-rt:560)),taskSubview:r,resourceNavigatorWidthPx:Ko})}function hx(n,r){return n.workPanel.byWorkspace[r]??n.workPanel.fallback}function _p(n,r,o){const a=n.workPanel.byWorkspace[r]??n.workPanel.fallback,d=Object.freeze({...a,...o,resourceNavigatorWidthPx:o.resourceNavigatorWidthPx??a.resourceNavigatorWidthPx}),f={schemaVersion:Vo,projectNavigation:n.projectNavigation,workPanel:{...n.workPanel,byWorkspace:Object.freeze({...n.workPanel.byWorkspace,[r]:d})}};return Object.freeze(f)}function mx(n,r,o,a){const d=hx(n,r);return _p(n,r,{...d,resourceNavigatorWidthPx:Object.freeze({...d.resourceNavigatorWidthPx,[o]:Np(a)})})}function gx(n){if(!n)return null;try{const r=JSON.parse(n);if(!br(r))return null;const o=r.schemaVersion;if(o!==3&&o!==Vo)return null;const a=br(r.projectNavigation)?r.projectNavigation:{},d=br(r.workPanel)?r.workPanel:{},f=br(d.byWorkspace)?d.byWorkspace:{},p=br(d.fallback)?d.fallback:{},g={};for(const[x,w]of Object.entries(f))br(w)&&(g[x]=Rf(w));return Object.freeze({schemaVersion:Vo,projectNavigation:Object.freeze({expanded:a.expanded!==!1,widthPx:fi(Number(a.widthPx)||280)}),workPanel:Object.freeze({byWorkspace:Object.freeze(g),fallback:Rf(p)})})}catch{return null}}function Rf(n){return Object.freeze({expanded:n.expanded!==!1,activePanel:pi(n.activePanel)?n.activePanel:"agent",detailWidthPx:Ep(Number(n.detailWidthPx)),taskSubview:xc(n.taskSubview),resourceNavigatorWidthPx:vx(n.resourceNavigatorWidthPx)})}function vx(n){if(!br(n))return Ko;const r={...Ko};for(const o of dx){const a=Number(n[o]);Number.isFinite(a)&&(r[o]=Np(a))}return Object.freeze(r)}function Ep(n){return Number.isFinite(n)?Math.min(3200,Math.max(360,Math.round(n))):Ip.detailWidthPx}function xc(n){const r=String(n);return r==="goal"||r==="overview"?"overview":r==="activity"?"activity":r==="integrations"||r==="capabilities"?"capabilities":r==="diagnostics"?"diagnostics":"overview"}function yx(n){switch(n){case"overview":return"goal";case"activity":return"activity";case"capabilities":return"integrations";case"diagnostics":return"diagnostics"}}function br(n){return!!n&&typeof n=="object"&&!Array.isArray(n)}function xx(n){return["agent","review","terminal","files","git"].includes(n)}function wx(){const n=globalThis;try{return gx(n.window?.localStorage.getItem(Sp)??null)}catch{return null}}function Pf(n){const r=globalThis;try{r.window?.localStorage.setItem(Sp,JSON.stringify(n))}catch{}}function kx(n,r){const[o,a]=m.useState(wx),d=n??"__fallback__",f=m.useMemo(()=>px(r),[]),p=m.useMemo(()=>{const w=o?.workPanel.byWorkspace[d]??o?.workPanel.fallback??f;return{workspaceId:d,expanded:w.expanded,activePanel:xx(w.activePanel)?w.activePanel:"agent",agentPanel:yx(w.taskSubview),detailWidthPx:w.detailWidthPx,resourceNavigatorWidthPx:w.resourceNavigatorWidthPx}},[o,d,f]),g=m.useCallback(w=>{a(R=>{const C=R??Ef(),_=C.workPanel.byWorkspace[d]??C.workPanel.fallback??f,P={expanded:w.expanded??_.expanded,activePanel:w.activePanel??_.activePanel,detailWidthPx:w.detailWidthPx??_.detailWidthPx,taskSubview:w.agentPanel?xc(w.agentPanel):_.taskSubview,resourceNavigatorWidthPx:_.resourceNavigatorWidthPx},$=_p(C,d,P);return Pf($),$})},[d,f]),x=m.useCallback((w,R)=>{a(C=>{const _=C??Ef(),P=mx(_,d,w,R);return Pf(P),P})},[d]);return{value:p,update:g,setResourceNavigatorWidth:x}}const wc=320,Tf=360,jx=1024,Sx=768,Cx=.8;function Rp(n){return Number.isFinite(n)&&n>0?Math.round(n):1440}function Pp(n){const r=Math.floor(n*Cx),o=n-wc-rt;return Math.max(0,Math.min(r,o))}function Mf(n){const r=Rp(n.containerWidth),o=Math.max(0,Math.round(n.leftWidthPx)),a=Math.max(0,r-o);if(r<Sx)return Object.freeze({mode:"drawer",detailWidthPx:0,conversationWidthPx:a,canResize:!1});if(r<jx)return n.expanded?Object.freeze({mode:"drawer",detailWidthPx:0,conversationWidthPx:a,canResize:!0}):Object.freeze({mode:"rail",detailWidthPx:0,conversationWidthPx:a,canResize:!1});if(!n.expanded)return Object.freeze({mode:"rail",detailWidthPx:rt,conversationWidthPx:a-rt,canResize:!1});const d=Pp(a);if(d<Tf)return Object.freeze({mode:"rail",detailWidthPx:rt,conversationWidthPx:a-rt,canResize:!1});const f=Math.max(Tf,Math.min(Ep(n.storedDetailWidthPx),d)),p=a-f-rt;return p<wc?Object.freeze({mode:"rail",detailWidthPx:rt,conversationWidthPx:a-rt,canResize:!1}):Object.freeze({mode:"dock",detailWidthPx:f,conversationWidthPx:p,canResize:d>f})}function Of(n){const r=Rp(n.containerWidth),o=n.navigationExpanded?Math.max(240,Math.min(480,Math.round(n.navigationWidthPx))):rt;let a=Mf({containerWidth:r,leftWidthPx:o,expanded:n.workExpanded,storedDetailWidthPx:n.workDetailWidthPx});const d=Mf({containerWidth:r,leftWidthPx:rt,expanded:n.workExpanded,storedDetailWidthPx:n.workDetailWidthPx});return n.navigationExpanded&&(a.mode==="dock"&&a.conversationWidthPx<wc||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:n.navigationExpanded?"dock":"rail",widthPx:o}),conversationWidthPx:a.conversationWidthPx,workPanel:Object.freeze({mode:a.mode,widthPx:a.mode==="dock"?a.detailWidthPx+rt:a.detailWidthPx})})}function bx(n,r,o){const a=r==="light"||r==="system"&&o;return n==="orion-blocksmith"?a?"#d7d0c1":"#15191b":a?"#f4f5f8":"#090b10"}function tr(n,r){return n.some(o=>o.id===r.id)?n.map(o=>o.id===r.id?r:o):[r,...n]}const Go=1e4,Nx=256,Ix=256,_x=128,Ex=8,Tp=8*1024*1024,Rx=64;function Px(n=Jf,r){switch(r.type){case"baseline_loaded":{const o=n.workspaceId!==r.bootstrap.workspaceId||n.activeSessionId!==r.bootstrap.activeSessionId?di(n):n,a=Bf(r.diagnostics,o.mode);return{...o,boot:"ready",bootError:void 0,bootstrap:r.bootstrap,contextRevision:r.bootstrap.contextRevision,workspaceId:r.bootstrap.workspaceId,workspace:r.workspaces.activePath||r.bootstrap.workspace,workspaces:r.workspaces.workspaces,sessions:r.sessions,workspaceSessions:{...o.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?{...o.sessionSync,[r.bootstrap.activeSessionId]:{status:o.sessionProjectionById[r.bootstrap.activeSessionId]?"refreshing":"loading",requestId:null}}:o.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:o.notice?.domain==="session-snapshot"?null:o.notice,processing:!!r.diagnostics.processing,mode:a,statusMessage:r.bootstrap.configured?"本地 Web Host 已就绪":"模型尚未配置,任务提交已停用",announcement:r.bootstrap.configured?"本地 Web Host 已就绪":"Orion 尚未配置模型"}}case"boot_failed":return{...n,boot:"error",bootError:r.message,connection:Wx()?"reconnecting":"offline",announcement:`启动失败:${r.message}`};case"connection_changed":return n.connection==="replay-required"?n:{...n,connection:r.phase,connectionAttempt:r.attempt,announcement:Fx(r.phase,r.attempt)};case"event_received":return Tx(n,r.envelope);case"session_snapshot_started":return n.contextRevision!==r.contextRevision||n.workspaceId!==r.workspaceId?n:Mo(li(n,r.sessionId,{status:r.cached?"refreshing":"loading",requestId:r.requestId}),{snapshotLoads:1});case"session_snapshot_loaded":{const o=r.snapshot.session.id;return!qf(n,r.contextRevision,r.workspaceId)||!Ff(n,o,r.requestId)?n:n.activeSessionId!==o?r.requestId===void 0?n:Wf(Af(n,r.snapshot),o):Wf(Lf(n,r.snapshot,r.advanceEventCursor!==!1),o)}case"composer_loaded":return r.composer.sessionId!==n.activeSessionId||r.composer.workspaceId!==n.workspaceId||r.composer.contextRevision!==n.contextRevision?n:Mp(n,r.composer);case"model_catalog_loaded":return{...n,modelCatalog:r.catalog};case"durable_session_metadata_loaded":return n.contextRevision!==r.contextRevision||n.workspaceId!==r.workspaceId?n:n.activeSessionId!==r.snapshot.session.id?Af(n,r.snapshot):r.snapshot.runtime.active!==!0?n:Lx(n,r.snapshot);case"older_transcript_loaded":{if(n.activeSessionId!==r.snapshot.session.id||!n.sessionSnapshot)return n;const o=new Set(n.transcript.map(d=>d.id)),a=Op(r.snapshot).filter(d=>!o.has(d.id));return{...n,transcript:[...a,...n.transcript].sort((d,f)=>d.order-f.order).slice(-Go),sessionSnapshot:{...n.sessionSnapshot,transcript:{items:n.sessionSnapshot.transcript.items,nextCursor:r.snapshot.transcript.nextCursor}},announcement:`已加载 ${a.length} 条更早记录`}}case"sessions_loaded":return{...n,sessions:r.append?er(n.sessions,r.sessions,o=>o.id):r.sessions,sessionNextCursor:r.nextCursor,workspaceSessions:n.workspaceId?{...n.workspaceSessions,[n.workspaceId]:{status:"ready",items:r.append?er(n.sessions,r.sessions,o=>o.id):r.sessions,nextCursor:r.nextCursor}}:n.workspaceSessions};case"workspaces_loaded":return{...n,workspaceId:r.value.activeId||n.workspaceId,workspace:r.value.activePath||n.workspace,workspaces:r.append?er(n.workspaces,r.value.workspaces,o=>o.id):r.value.workspaces,workspaceNextCursor:r.value.nextCursor};case"workspace_sessions_loading":return{...n,workspaceSessions:{...n.workspaceSessions,[r.workspaceId]:{status:"loading",items:n.workspaceSessions[r.workspaceId]?.items??[],nextCursor:n.workspaceSessions[r.workspaceId]?.nextCursor??null}}};case"workspace_sessions_loaded":{const o=n.workspaceSessions[r.workspaceId],a=r.append?er(o?.items??[],r.sessions,d=>d.id):r.sessions;return{...n,sessions:r.workspaceId===n.workspaceId?a:n.sessions,sessionNextCursor:r.workspaceId===n.workspaceId?r.nextCursor:n.sessionNextCursor,workspaceSessions:{...n.workspaceSessions,[r.workspaceId]:{status:"ready",items:a,nextCursor:r.nextCursor}}}}case"workspace_sessions_failed":return{...n,workspaceSessions:{...n.workspaceSessions,[r.workspaceId]:{status:"error",items:n.workspaceSessions[r.workspaceId]?.items??[],nextCursor:n.workspaceSessions[r.workspaceId]?.nextCursor??null,error:r.detail}}};case"session_updated":return Df(n,a=>Ax(a,r.session));case"session_archived":{const o=$f(n,r.session.id),a=n.archivedSessions.items.some(d=>d.id===r.session.id);return{...o,archivedSessions:a?o.archivedSessions:{...o.archivedSessions,status:"ready",items:[r.session,...o.archivedSessions.items]}}}case"session_restored":{const o=Df(n,a=>[r.session,...a.filter(d=>d.id!==r.session.id)]);return{...o,archivedSessions:{...o.archivedSessions,items:o.archivedSessions.items.filter(a=>a.id!==r.session.id)}}}case"session_deleted":{const o={...n.sessionRuntimeById};return delete o[r.sessionId],{...$f(n,r.sessionId),sessionRuntimeById:o,archivedSessions:{...n.archivedSessions,items:n.archivedSessions.items.filter(a=>a.id!==r.sessionId)}}}case"archived_sessions_loading":return r.workspaceId!==n.workspaceId?n:{...n,archivedSessions:{status:"loading",items:n.archivedSessions.ownerWorkspaceId===r.workspaceId?n.archivedSessions.items:[],nextCursor:n.archivedSessions.nextCursor,ownerWorkspaceId:r.workspaceId}};case"archived_sessions_loaded":{if(r.workspaceId!==n.workspaceId)return n;const o=r.append?er(n.archivedSessions.items,r.sessions,a=>a.id):r.sessions;return{...n,archivedSessions:{status:"ready",items:o,nextCursor:r.nextCursor,ownerWorkspaceId:r.workspaceId}}}case"archived_sessions_failed":return r.workspaceId!==n.workspaceId?n:{...n,archivedSessions:{...n.archivedSessions,status:"error",ownerWorkspaceId:r.workspaceId,error:r.detail}};case"workspace_project_summary_loaded":return{...n,workspaceProjectSummaries:{...n.workspaceProjectSummaries,[r.summary.workspaceId]:r.summary}};case"settings_loaded":return{...n,settings:r.settings};case"settings_mirror_changed":return{...n,settings:r.snapshot.document??r.snapshot.lastGood,settingsMirror:r.snapshot};case"diagnostics_loaded":return{...n,diagnostics:r.diagnostics,processing:!!(r.diagnostics.processing??n.processing),mode:Bf(r.diagnostics,n.mode)};case"capabilities_loaded":return{...n,skills:r.append?er(n.skills,r.skills,o=>o.id):r.skills,skillNextCursor:r.skillNextCursor,mcpServers:r.append?er(n.mcpServers,r.mcpServers,o=>o.id):r.mcpServers,mcpNextCursor:r.mcpNextCursor};case"tool_details_loaded":return{...n,toolDetails:r.append?er(n.toolDetails,r.details,o=>`${o.sequence}:${o.callId}`):r.details,toolDetailNextCursor:r.nextCursor};case"pending_action":return{...n,pendingAction:r.label};case"notice":return{...n,notice:r.notice};case"approval_resolved":return n.permission?.id!==r.requestId?n:{...n,permission:null,announcement:r.approved?"工具权限已授予":"工具请求已拒绝"};case"snapshot_failed":{if(!qf(n,r.contextRevision,r.workspaceId))return n;if(!r.sessionId)return n.connection==="replay-required"?n:{...n,notice:{id:r.requestId??n.lastCursor,tone:"warning",title:"会话状态尚未同步",detail:r.detail},announcement:"会话状态尚未同步"};if(!Ff(n,r.sessionId,r.requestId)||r.sessionId!==n.activeSessionId&&r.requestId===void 0)return n;const o=Mo(li(n,r.sessionId,{status:"failed",requestId:r.requestId??n.sessionSync[r.sessionId]?.requestId??null,error:r.detail}),{snapshotFailures:1});return r.sessionId!==n.activeSessionId||n.connection==="replay-required"?o:{...o,statusMessage:n.sessionSnapshot?.session.id===r.sessionId?"会话刷新失败,当前显示最近状态":"会话快照加载失败",notice:{id:r.requestId??n.lastCursor,tone:"warning",title:"会话快照尚未同步",detail:r.detail,domain:"session-snapshot",sessionId:r.sessionId},announcement:"当前会话快照尚未同步,写操作已暂停"}}case"reset_session_view":{const o=!!r.activeSessionId&&r.activeSessionId!==n.activeSessionId,a=!!(r.activeSessionId&&n.sessionProjectionById[r.activeSessionId]),d={...o?{sessionSwitches:1}:{},...a?{snapshotCacheHits:1}:{}};if(r.activeSessionId&&n.sessionProjectionById[r.activeSessionId]){const g=r.activeSessionId,x=Lf({...n,activeSessionId:g},n.sessionProjectionById[g],!1);return Mo({...li(x,g,{status:"refreshing",requestId:n.sessionSync[g]?.requestId??null}),notice:n.notice?.domain==="session-snapshot"&&n.notice.sessionId!==g?null:n.notice,statusMessage:"已显示最近会话状态,正在同步…",announcement:"已切换到缓存会话,正在同步最新状态"},d)}const f={...di(n),activeSessionId:r.activeSessionId,notice:n.notice?.domain==="session-snapshot"&&n.notice.sessionId!==r.activeSessionId?null:n.notice,statusMessage:r.activeSessionId?"正在加载会话快照…":"请选择会话",announcement:r.activeSessionId?"正在加载会话快照":"会话已清除"},p=r.activeSessionId?li(f,r.activeSessionId,{status:"loading",requestId:n.sessionSync[r.activeSessionId]?.requestId??null}):f;return Mo(p,d)}case"recovering":return{...n,connection:"connecting",replayReason:void 0,notice:null,announcement:"正在重新加载会话状态"}}}function Tx(n,r){if(r.type==="replay_reset")return{...n,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(n.connection==="replay-required"||r.cursor<=n.lastCursor)return n;const o={...n,lastCursor:r.cursor,lastEventId:r.eventId};if(r.type==="settings_invalidated")return{...o,announcement:r.payload.revision===n.settings?.revision?"Host 设置已同步":r.payload.state==="invalid"?"设置文档无效,仍保留上一次可用值":"Host 设置已更新,正在刷新"};if(r.type==="workspace_resource_invalidated"){const d={...n.workspaceResourceEpochs[r.payload.workspaceId]??{files:0,git:0,review:0}};for(const f of r.payload.resources)d[f]=r.cursor;return{...o,workspaceResourceEpochs:{...n.workspaceResourceEpochs,[r.payload.workspaceId]:d},announcement:"项目资源已变化,可用面板正在刷新"}}if(r.type==="workbench_state"){const a=n.workspaceId!==""&&n.workspaceId!==r.payload.workspaceId||n.workspace!==""&&n.workspace!==r.payload.workspace;return{...a?di(o):o,contextRevision:r.payload.contextRevision,workspaceId:r.payload.workspaceId,workspace:r.payload.workspace,activeSessionId:a?null:n.activeSessionId}}if(r.type==="composer_state_changed"){const a=r.payload.state;return a.sessionId!==o.activeSessionId||a.workspaceId!==o.workspaceId||a.contextRevision!==o.contextRevision?o:Mp(o,a)}if(r.type==="session_runtime_changed"){const a=r.payload.runtime,d=o.sessionProjectionById[a.sessionId],f=rl(o.sessionRuntimeById,a),p=d?nl(o.sessionProjectionById,{...d,sessionRuntime:a}):o.sessionProjectionById;return a.sessionId!==o.activeSessionId?{...o,sessionProjectionById:p,sessionRuntimeById:f}:{...o,sessionProjectionById:p,sessionRuntimeById:f,processing:["running","waiting_approval","stopping"].includes(a.phase),sessionSnapshot:o.sessionSnapshot?.session.id===a.sessionId?{...o.sessionSnapshot,sessionRuntime:a}:o.sessionSnapshot,composer:o.composer?.sessionId===a.sessionId?{...o.composer,sessionRuntime:a}:o.composer}}if(r.type==="workspace_mutation_changed"){if(r.sessionId!==o.activeSessionId)return o;const a=o.tools.find(f=>f.callId===r.payload.state.callId);if(!a)return o;const d={phase:r.payload.state.phase,...r.payload.state.queuePosition===void 0?{}:{queuePosition:r.payload.state.queuePosition}};return{...o,tools:uc(o.tools,{...a,workspaceMutation:d}),announcement:d.phase==="queued"?`工具 ${a.name} 正在等待工作树写入`:d.phase==="running"?`工具 ${a.name} 已获得工作树写入权限`:o.announcement}}return r.sessionId!==null&&r.sessionId!==o.activeSessionId?o:r.type==="thread_event"?Mx(o,r.payload.value):Ox(o,r.payload.value,r.eventId,r.cursor,r.timestamp)}function Mx(n,r){const o=r.payload;switch(o.type){case"thread.started":case"thread.resumed":return{...n,statusMessage:"会话线程已就绪"};case"thread.forked":return{...n,statusMessage:"分支线程已就绪"};case"turn.started":return{...n,processing:!0,statusMessage:o.data.mode==="plan"?"正在制定计划…":"Orion 正在处理…",announcement:"新回合已开始"};case"turn.queued":return{...n,statusMessage:"消息已进入 Runtime 队列"};case"turn.queue_expired":return{...n,notice:{id:n.lastCursor,tone:"warning",title:"一条排队消息已过期",detail:`队列项 ${o.data.queueId} 未在时限内开始。`}};case"turn.steered":return{...n,statusMessage:"已将补充指令送入当前回合"};case"turn.interrupt_requested":return{...n,statusMessage:"正在中断当前回合…"};case"turn.committed":return{...n,statusMessage:"回合结果已持久化"};case"plan.review_requested":return{...n,processing:!1,statusMessage:"计划已保存,等待审核",announcement:"计划已准备好,请审核后再执行"};case"plan.review_resolved":return{...n,statusMessage:o.data.action==="approve"?"计划已批准,正在进入 BUILD":o.data.action==="continue"?"已提交继续规划反馈":"计划已取消"};case"turn.completed":return{...n,processing:!1,permission:null,statusMessage:"任务已完成",announcement:"当前回合已完成"};case"turn.failed":return{...n,processing:!1,permission:null,statusMessage:"当前回合失败",notice:{id:n.lastCursor,tone:"error",title:"当前回合失败",detail:o.data.error},announcement:"当前回合失败"};case"turn.interrupted":return{...n,processing:!1,permission:null,statusMessage:"当前回合已中断",announcement:"当前回合已中断"};case"compact.started":return{...n,statusMessage:"正在压缩上下文…"};case"compact.completed":return{...n,statusMessage:"上下文压缩完成"};case"compact.failed":return{...n,statusMessage:"上下文压缩失败",notice:{id:n.lastCursor,tone:"warning",title:"上下文压缩失败",detail:o.data.error}};case"approval.requested":return{...n,statusMessage:`等待确认:${o.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 n}}function Ox(n,r,o,a,d){switch(r.type){case"transcript_append":{const f={...r.entry,id:`web-entry-${a}`,eventId:o,order:a,receivedAt:d};return{...n,transcript:Wo(n.transcript,f,Go)}}case"transcript_update":if(r.contentDelta!==void 0){const f=n.transcript.find(p=>p.id===r.id);if(!f||r.contentStart===void 0||(f.content??"").length!==r.contentStart){const p="流式回复基线已变化,需要重新载入会话。";return{...n,connection:"replay-required",replayReason:p,notice:{id:a,tone:"warning",title:"需要重新载入会话",detail:p},announcement:p}}}return{...n,transcript:n.transcript.map(f=>f.id===r.id?{...f,...r.patch,...r.contentDelta===void 0?{}:{content:`${f.content??""}${r.contentDelta}`}}:f)};case"transcript_finalize":return{...n,transcript:n.transcript.map(f=>f.id===r.id?{...f,...r.patch,live:!1}:f)};case"transcript_remove":return{...n,transcript:n.transcript.filter(f=>f.id!==r.id)};case"transcript_replace":{const f=Math.max(1,r.entries.length);return{...n,transcript:r.entries.slice(-Go).map((p,g)=>({...p,eventId:`${o}:${g}`,order:a-1+(g+1)/(f+1),receivedAt:d,live:!1}))}}case"transcript_clear":return{...di(n),activeSessionId:n.activeSessionId,statusMessage:"新会话已就绪"};case"status_changed":return{...n,statusMessage:r.message};case"permission_requested":return{...n,permission:{...r.request,eventId:o},announcement:`需要确认工具权限:${r.request.name}`};case"tool_started":{const f={callId:r.event.callId,eventId:o,order:a,name:r.event.name,args:r.event.args,sequence:r.event.sequence,state:"running",startedAt:d};return{...n,tools:uc(n.tools,f),announcement:`工具 ${f.name} 已开始`}}case"tool_finished":{const f=n.tools.find(g=>g.callId===r.event.callId),p={callId:r.event.callId,eventId:f?.eventId??o,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{...n,tools:uc(n.tools,p),announcement:`工具 ${p.name} ${p.state==="success"?"已完成":p.state==="skipped"?"已跳过":"失败"}`}}case"edit_preview_requested":{const f={eventId:o,order:a,receivedAt:d,request:r.request};return{...n,edits:Wo(n.edits,f,Nx)}}case"session_restored":return{...n,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(" ")}:n.notice};case"loop_stats_updated":return{...n,loopStats:r.stats};case"trace_event_recorded":return{...n,traces:Wo(n.traces,r.event,Ix)};case"harness_diagnostics_updated":return{...n,diagnostics:{...n.diagnostics??{},harness:r.diagnostics}};case"subtask_event":{const f={...r.event,eventId:o,order:a,updatedAt:d},p=[...n.subtasks.filter(g=>g.taskId!==f.taskId),f].slice(-256);return{...n,subtasks:p}}case"research_event":return{...n,research:Dx(n.research,r.event,o,a,d)};case"goal_event":return $x(n,r.event,d);case"effort_event":return{...n,effort:r.event};case"followup_queue_changed":return{...n,queue:r.snapshot};case"processing_changed":return{...n,processing:r.processing,permission:r.processing?n.permission:null,announcement:r.processing?"Orion 开始处理任务":"Orion 已完成当前处理"};case"agent_mode_changed":return{...n,mode:r.snapshot};case"clear_view":return{...n,transcript:[],tools:[],edits:[]};case"shutdown_requested":return{...n,connection:"closed",processing:!1,permission:null,statusMessage:r.reason??"Web Host 已关闭",announcement:"Orion Web Host 已关闭"};case"session_picker_requested":case"model_picker_requested":return n}}function Lf(n,r,o=!0){const a=Op(r).slice(-Go),d=Ap(r.runtime.agentMode)?r.runtime.agentMode:n.mode.baseMode,f=r.pendingApprovals[0],p=Lp(r.goal);return{...di(n),lastCursor:o?Math.max(n.lastCursor,r.eventCursor):n.lastCursor,activeSessionId:r.session.id,sessionProjectionById:nl(n.sessionProjectionById,r),sessionRuntimeById:rl(n.sessionRuntimeById,r.sessionRuntime),sessions:tr(n.sessions,r.session),workspaceSessions:n.workspaceId?{...n.workspaceSessions,[n.workspaceId]:{status:"ready",items:tr(n.workspaceSessions[n.workspaceId]?.items??n.sessions,r.session),nextCursor:n.workspaceSessions[n.workspaceId]?.nextCursor??n.sessionNextCursor}}:n.workspaceSessions,transcript:a,permission:f?{id:f.id,name:f.toolName,reason:f.reason,args:{...f.sanitizedArguments},eventId:`snapshot:${f.id}`}:null,processing:r.runtime.processing,statusMessage:r.runtime.status,mode:r.composer.mode??{baseMode:d,pendingBaseMode:null},queue:{items:r.composer.queue.items.map(g=>({...g})),limit:r.composer.queue.limit},goal:p,plan:r.plan??null,composer:r.composer,sessionSnapshot:r,diagnostics:{...n.diagnostics??{},activeSessionId:r.session.id,processing:r.runtime.processing,agentMode:d,permissionMode:r.runtime.permissionMode,contextUsage:r.runtime.contextUsage,tokenUsage:r.runtime.tokenUsage,plan:r.plan?.body??null,recoveryDiagnostics:r.recoveryDiagnostics},announcement:"会话快照已同步"}}function Af(n,r){const o=n.workspaceId?{...n.workspaceSessions,[n.workspaceId]:{status:"ready",items:tr(n.workspaceSessions[n.workspaceId]?.items??n.sessions,r.session),nextCursor:n.workspaceSessions[n.workspaceId]?.nextCursor??n.sessionNextCursor}}:n.workspaceSessions;return{...n,sessionProjectionById:nl(n.sessionProjectionById,r),sessionRuntimeById:rl(n.sessionRuntimeById,r.sessionRuntime),sessions:tr(n.sessions,r.session),workspaceSessions:o}}function Mp(n,r){const o=n.sessionProjectionById[r.sessionId],a=o?nl(n.sessionProjectionById,{...o,sessionRuntime:r.sessionRuntime,composer:r}):n.sessionProjectionById;return{...n,composer:r,sessionSnapshot:n.sessionSnapshot?.session.id===r.sessionId?{...n.sessionSnapshot,sessionRuntime:r.sessionRuntime,composer:r}:n.sessionSnapshot,sessionProjectionById:a,sessionRuntimeById:rl(n.sessionRuntimeById,r.sessionRuntime),processing:r.processing,mode:r.mode,queue:{items:r.queue.items.map(d=>({...d})),limit:r.queue.limit},diagnostics:{...n.diagnostics??{},contextUsage:r.contextUsage,agentMode:r.mode.baseMode}}}function Lx(n,r){const o=tr(n.sessions,r.session),a=n.workspaceSessions[n.workspaceId],d=!n.composer||n.composer.controlRevision===r.composer.controlRevision?r.composer:n.composer;return{...n,sessions:o,workspaceSessions:{...n.workspaceSessions,[n.workspaceId]:{status:"ready",items:tr(a?.items??n.sessions,r.session),nextCursor:a?.nextCursor??n.sessionNextCursor}},goal:Lp(r.goal),plan:r.plan,composer:d,sessionSnapshot:n.sessionSnapshot?.session.id===r.session.id?{...n.sessionSnapshot,session:r.session,goal:r.goal,plan:r.plan,composer:d,recoveryDiagnostics:r.recoveryDiagnostics}:n.sessionSnapshot,diagnostics:{...n.diagnostics??{},plan:r.plan?.body??null,recoveryDiagnostics:r.recoveryDiagnostics}}}function Op(n){return n.transcript.items.map((r,o)=>{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:o),receivedAt:zx(r.timestamp),live:!1}})}function Lp(n){if(!n||!ii(n.state))return null;const r=n.state;if(typeof r.goalId!="string"||typeof r.objective!="string"||typeof r.status!="string")return null;const o=ii(r.budget)?r.budget:null,a=ii(r.lastStopDecision)?r.lastStopDecision:null,d=a&&ii(a.reason)?Oo(a.reason.message):Oo(r.stopReason),f=ii(r.criteria)?{passed:nn(r.criteria.passed),total:nn(r.criteria.total),failed:nn(r.criteria.failed),stale:nn(r.criteria.stale)}:void 0;return{goalId:r.goalId,revision:nn(r.revision,nn(r.generation,1)),objective:r.objective,status:r.status,tokenBudget:Xa(r.tokenBudget)??Xa(o?.maxTokens),tokensUsed:nn(r.tokensUsed),timeUsedMs:nn(r.timeUsedMs,nn(r.elapsedMs)),continuationCount:nn(r.continuationCount),updatedAt:nn(r.updatedAt),stopReason:d,criteria:f,planRevision:Xa(r.planRevision),planPhase:Oo(r.planPhase),nextAction:Oo(r.nextAction),auditRemaining:Array.isArray(r.auditRemaining)?r.auditRemaining.filter(p=>typeof p=="string"):void 0}}function er(n,r,o){const a=new Map(n.map(d=>[o(d),d]));for(const d of r)a.set(o(d),d);return[...a.values()]}function Ax(n,r){const o=n.findIndex(d=>d.id===r.id);if(o<0)return[r,...n];const a=[...n];return a[o]=r,a}function $f(n,r){const o=n.workspaceId,a=o?n.workspaceSessions[o]:void 0,d=(a?.items??n.sessions).filter(f=>f.id!==r);return{...n,sessions:o?d:n.sessions,workspaceSessions:o?{...n.workspaceSessions,[o]:{status:(a?.status??"ready")==="error"?"error":"ready",items:d,nextCursor:a?.nextCursor??null,error:a?.error}}:n.workspaceSessions}}function Df(n,r){const o=n.workspaceId,a=o?n.workspaceSessions[o]:void 0,d=a?.items??n.sessions,f=r(d),p=a?.status==="error"?"error":a?.status==="loading"?"loading":"ready";return{...n,sessions:o?f:n.sessions,workspaceSessions:o?{...n.workspaceSessions,[o]:{status:p,items:f,nextCursor:a?.nextCursor??null,error:a?.error}}:n.workspaceSessions}}function $x(n,r,o){switch(r.type){case"goal_updated":case"goal_restored":return{...n,goal:r.goal,goalActivity:is(n.goalActivity,r.type,"Goal 状态已更新",o)};case"goal_completed":return{...n,goal:r.goal,goalActivity:is(n.goalActivity,r.type,r.audit.verificationSummary,o),announcement:"Goal 已完成并通过运行时审计"};case"goal_cleared":return{...n,goal:null,goalEvidence:[],goalActivity:is(n.goalActivity,r.type,r.reason,o)};case"goal_plan_updated":return{...n,goal:n.goal?{...n.goal,planRevision:r.planRevision,planPhase:r.phase,nextAction:r.nextAction}:n.goal,goalActivity:is(n.goalActivity,r.type,r.nextAction??`Plan phase: ${r.phase}`,o)};case"goal_evidence_recorded":{const a=r.evidence;return{...n,goalEvidence:[...n.goalEvidence.filter(d=>d.id!==a.id),a].slice(-256)}}case"goal_continuation":return{...n,goalActivity:is(n.goalActivity,`${r.type}:${r.phase}`,r.reason,o)};case"goal_audit_failed":return{...n,goalActivity:is(n.goalActivity,r.type,r.summary,o),notice:{id:Date.parse(o),tone:"warning",title:"Goal 审计尚未通过",detail:r.summary}}}}function Dx(n,r,o,a,d){const p=n.find(x=>x.packetId===r.packetId)??{packetId:r.packetId,eventId:o,order:a,updatedAt:d,stage:"running",sources:[],conflicts:[]};let g;switch(r.type){case"research_started":g={...p,eventId:o,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:o,order:a,updatedAt:d,sources:[...p.sources.filter(w=>w.id!==x.id),x].slice(-64)};break}case"research_conflict":g={...p,eventId:o,order:a,updatedAt:d,conflicts:[...p.conflicts.filter(x=>x!==r.claimId),r.claimId].slice(-64)};break;case"research_completed":g={...p,eventId:o,order:a,updatedAt:d,stage:r.stage,auditStatus:r.auditStatus,conclusion:r.conclusion,summary:r.summary};break}return[...n.filter(x=>x.packetId!==r.packetId),g].slice(-128)}function uc(n,r){return[...n.filter(o=>o.callId!==r.callId),r].sort((o,a)=>o.order-a.order).slice(-1e3)}function nl(n,r){const o=Object.entries(n).filter(([d])=>d!==r.session.id);o.push([r.session.id,r]);let a=o.reduce((d,[,f])=>d+zf(f),0);for(;o.length>1&&(o.length>Ex||a>Tp);){const d=o.shift();d&&(a-=zf(d[1]))}return Object.freeze(Object.fromEntries(o))}function rl(n,r){const o=Object.entries(n).filter(([a])=>a!==r.sessionId);return o.push([r.sessionId,r]),Object.freeze(Object.fromEntries(o.slice(-64)))}function zf(n){try{return JSON.stringify(n).length*2}catch{return Tp}}function di(n){return{...n,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 li(n,r,o){const a={...n.sessionSync};delete a[r],a[r]=o;const d=Object.keys(a).length-Rx;return d>0&&Object.keys(a).filter(f=>f!==n.activeSessionId&&f!==r).slice(0,d).forEach(f=>delete a[f]),{...n,sessionSync:a}}function Mo(n,r){const o={sessionSwitches:n.clientTelemetry.sessionSwitches+(r.sessionSwitches??0),snapshotCacheHits:n.clientTelemetry.snapshotCacheHits+(r.snapshotCacheHits??0),snapshotLoads:n.clientTelemetry.snapshotLoads+(r.snapshotLoads??0),snapshotFailures:n.clientTelemetry.snapshotFailures+(r.snapshotFailures??0)};return{...n,clientTelemetry:o}}function Wf(n,r){const o=li(n,r,{status:"ready",requestId:n.sessionSync[r]?.requestId??null});return o.notice?.domain!=="session-snapshot"||o.notice.sessionId!==r?o:{...o,notice:null}}function Ff(n,r,o){return o===void 0||n.sessionSync[r]?.requestId===o}function qf(n,r,o){return(r===void 0||n.contextRevision===r)&&(o===void 0||n.workspaceId===o)}function is(n,r,o,a){return Wo(n,{type:r,message:o,timestamp:a},_x)}function Wo(n,r,o){const a=[...n,r];return a.length<=o?a:a.slice(a.length-o)}function Bf(n,r){const o=n.agentMode;return Ap(o)?{baseMode:o,pendingBaseMode:null}:r}function Ap(n){return n==="interactive"||n==="plan"||n==="auto"}function zx(n){const r=new Date(n);return Number.isFinite(r.getTime())?r.toISOString():new Date(0).toISOString()}function ii(n){return!!n&&typeof n=="object"&&!Array.isArray(n)}function nn(n,r=0){return typeof n=="number"&&Number.isFinite(n)?n:r}function Xa(n){return typeof n=="number"&&Number.isFinite(n)?n:void 0}function Oo(n){return typeof n=="string"&&n?n:void 0}function Wx(){return typeof navigator>"u"||navigator.onLine}function Fx(n,r){return n==="live"?"本地 Web Host 事件流已连接":n==="offline"?"浏览器已离线,本地 Web Host 将在网络恢复后重连":n==="reconnecting"?`正在重新连接本地 Web Host,第 ${Math.max(1,r)} 次尝试`:n==="connecting"?"正在连接本地 Web Host":n==="replay-required"?"本地 Web Host 事件历史需要重新载入":"本地 Web Host 已关闭"}const Uf="orion.web.theme",Hf="orion.web.motion";function qx(n){const r=Kf(Uf),o=Kf(Hf),a=Bx(r),d=Ux(o),f=[],p=[];return r!==null&&p.push(Uf),o!==null&&p.push(Hf),n.sections.appearance.theme.explicitValue===void 0&&a&&f.push({op:"set",key:"appearance.theme",value:a}),n.sections.appearance.motion.explicitValue===void 0&&d&&f.push({op:"set",key:"appearance.motion",value:d}),{operations:f,keysToClear:p}}function Vf(n){if(!(typeof window>"u"))for(const r of n)try{window.localStorage.removeItem(r)}catch{}}function Kf(n){if(typeof window>"u")return null;try{return window.localStorage.getItem(n)}catch{return null}}function Bx(n){return n==="system"||n==="light"||n==="dark"?n:null}function Ux(n){return n==="system"||n==="reduced"?n:null}class Hx{constructor(r){Ht(this,"read");Ht(this,"snapshot",Object.freeze({status:"idle",document:null,lastGood:null,stale:!1,error:null,generation:0}));Ht(this,"listeners",new Set);Ht(this,"inFlight",null);Ht(this,"rerun",!1);Ht(this,"generation",0);Ht(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,o){return this.snapshot.document?.revision===r&&(o==="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 o=await this.read();if(this.disposed)return this.snapshot;if(r!==this.generation)continue;this.publishDocument(o)}catch(o){if(this.disposed)return this.snapshot;if(r!==this.generation)continue;this.setSnapshot({...this.snapshot,status:this.snapshot.document?"ready":"unavailable",stale:!0,error:o instanceof Error?o.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 o=r.state==="ready"?r:this.snapshot.lastGood;return this.setSnapshot({status:"ready",document:r,lastGood:o,stale:!1,error:null,generation:this.generation}),this.snapshot}setSnapshot(r){this.snapshot=Object.freeze(r);for(const o of this.listeners)o()}}function Vx(n,r,o){if(n)return n;const a=new Set(r.map(d=>d.id));return o&&a.has(o)?o:r[0]?.id??null}const Kx=7,Gx=2;function Qx(){const n=m.useMemo(()=>new kg,[]),r=m.useMemo(()=>new Hx(()=>n.settings()),[n]),[o,a]=m.useReducer(Px,Jf),[d,f]=m.useState(0),p=m.useRef(o),g=m.useRef(null),x=m.useRef(0),w=m.useRef(0),R=m.useRef(new Map),C=m.useRef(0),_=m.useRef(0),P=m.useRef(new Map),$=m.useRef(()=>{}),O=m.useRef(!1);p.current=o,m.useEffect(()=>r.subscribe(()=>{a({type:"settings_mirror_changed",snapshot:r.getSnapshot()})}),[r]);const W=m.useCallback((k,b=ye(p.current),D={})=>{const ne=`${b.workspaceId}:${b.expectedContextRevision}:${k}`,xe=P.current.get(ne);if(xe&&!D.force)return xe.promise;const $e=++_.current;a({type:"session_snapshot_started",sessionId:k,requestId:$e,cached:!!p.current.sessionProjectionById[k],contextRevision:b.expectedContextRevision,workspaceId:b.workspaceId});const Ke=n.sessionSnapshot(k,b).then(at=>(Gf(at,k,b),a({type:"session_snapshot_loaded",snapshot:at,requestId:$e,contextRevision:b.expectedContextRevision,workspaceId:b.workspaceId,advanceEventCursor:g.current===null}),at)).catch(at=>{const st=ls(at);throw a({type:"snapshot_failed",sessionId:k,detail:st,requestId:$e,contextRevision:b.expectedContextRevision,workspaceId:b.workspaceId}),new Pe(st,at instanceof Pe?at.status:503,"session_snapshot_sync_failed",at instanceof Pe?at.type:void 0)}).finally(()=>{P.current.get(ne)?.requestId===$e&&P.current.delete(ne)});return P.current.set(ne,{requestId:$e,promise:Ke}),Ke},[n]),te=m.useCallback(async k=>{const b=++w.current;try{const D=await n.bootstrap(),ne={expectedContextRevision:D.contextRevision,workspaceId:D.workspaceId};r.reset(),r.accept(D.settings);const $e=k!==void 0&&k.activeId!==""&&k.activeId===D.workspaceId?k:void 0,Ke=$e?Promise.resolve($e):n.listWorkspaces(ne),[at,st,ji]=await Promise.all([Ke,n.listSessions(ne),r.refresh()]),gn=Xx(D.workspaceId,st.sessions,D.activeSessionId);oi(D.workspaceId,gn);const al=Object.freeze({...D,activeSessionId:gn}),Mr=await Yx(n,r,ji.document??ji.lastGood??D.settings,ne);if(b!==w.current)return;a({type:"baseline_loaded",bootstrap:al,workspaces:at,sessions:st.sessions,sessionNextCursor:st.nextCursor,diagnostics:{},settings:Mr,skills:[],skillNextCursor:null,mcpServers:[],mcpNextCursor:null,toolDetails:[],toolDetailNextCursor:null}),gn&&n.sessionSnapshot(gn,ne).then(tt=>{b===w.current&&(Gf(tt,gn,ne),a({type:"session_snapshot_loaded",snapshot:tt,contextRevision:ne.expectedContextRevision,workspaceId:ne.workspaceId}))}).catch(tt=>{b===w.current&&a({type:"snapshot_failed",sessionId:gn,detail:ls(tt),contextRevision:ne.expectedContextRevision,workspaceId:ne.workspaceId})}),$.current();const Or=st.sessions.map(tt=>tt.id).filter(tt=>tt!==gn).slice(0,Kx);$.current=sw(()=>{b===w.current&&iw(Or,Gx,async tt=>{b===w.current&&await W(tt,ne).catch(()=>{})})}),n.workspaceProjectSummary(D.workspaceId,ne).then(tt=>{b===w.current&&a({type:"workspace_project_summary_loaded",summary:tt})}).catch(()=>{}),Promise.all([n.diagnostics(ne).catch(()=>({})),n.skills(ne).catch(()=>({skills:[],nextCursor:null})),n.mcp(ne).catch(()=>({servers:[],nextCursor:null})),n.toolDetails(ne).catch(()=>({details:[],nextCursor:null}))]).then(([tt,ar,Si,Ci])=>{b===w.current&&(a({type:"diagnostics_loaded",diagnostics:tt}),a({type:"capabilities_loaded",skills:ar.skills,skillNextCursor:ar.nextCursor,mcpServers:Si.servers,mcpNextCursor:Si.nextCursor}),a({type:"tool_details_loaded",details:Ci.details,nextCursor:Ci.nextCursor}))})}catch(D){throw D}},[n,W,r]),z=m.useCallback(async k=>{let b;for(let D=0;D<3;D+=1)try{await te(k);return}catch(ne){if(b=ne,!nw(ne)||D===2)break;await rw(100*3**D)}throw a({type:"boot_failed",message:ls(b)}),b},[te]);m.useEffect(()=>{if(O.current)return;O.current=!0;let k=!0;return z().catch(()=>{}),()=>{k=!1}},[z]),m.useEffect(()=>()=>{$.current()},[]);const oe=o.bootstrap!==null;m.useEffect(()=>{if(!oe)return;const k=n.connectEvents({cursor:p.current.lastCursor,onEvent:b=>{if(a({type:"event_received",envelope:b}),ow(b)){const D=p.current;if(b.sessionId&&D.contextRevision&&D.workspaceId){const ne=b.sessionId,xe=++C.current;R.current.set(ne,xe);const $e=D.contextRevision,Ke=D.workspaceId;n.sessionSnapshot(ne,{expectedContextRevision:$e,workspaceId:Ke}).then(at=>{R.current.get(ne)===xe&&a({type:"durable_session_metadata_loaded",snapshot:at,contextRevision:$e,workspaceId:Ke})}).catch(()=>{}).finally(()=>{R.current.get(ne)===xe&&R.current.delete(ne)})}}b.type==="settings_invalidated"&&r.invalidate(b.payload.revision,b.payload.state)},onStatus:(b,D)=>a({type:"connection_changed",phase:b,attempt:D}),onProtocolError:b=>a({type:"notice",notice:{id:Date.now(),tone:"error",title:"收到无法识别的 Web Host 事件流消息",detail:b}})});return g.current=k,()=>{k.close(),g.current===k&&(g.current=null)}},[n,oe,r,d]);const J=m.useCallback(()=>{g.current?.close(),g.current=null},[]),re=m.useCallback(()=>{f(k=>k+1)},[]);m.useEffect(()=>{!o.workspace||o.boot!=="ready"||o.pendingAction||o.bootstrap?.workspace!==o.workspace&&(J(),z().catch(k=>Yf(a,"工作区刷新失败",k)).finally(re))},[z,J,re,o.boot,o.bootstrap?.workspace,o.pendingAction,o.workspace]),m.useEffect(()=>{o.boot==="ready"&&(o.pendingAction||!o.activeSessionId||o.bootstrap?.workspace===o.workspace&&o.sessionSnapshot?.session.id!==o.activeSessionId&&W(o.activeSessionId).catch(()=>{}))},[W,o.activeSessionId,o.boot,o.bootstrap?.workspace,o.pendingAction,o.sessionSnapshot,o.workspace]);const N=m.useCallback(async(k,b)=>{const D=++x.current;a({type:"pending_action",label:k});try{return await b()}catch(ne){throw tw(ne)||Yf(a,`${k}失败`,ne),ne}finally{x.current===D&&a({type:"pending_action",label:null})}},[]),L=m.useCallback(async(k,b)=>N(k,async()=>{if(p.current.connection!=="live")throw new Pe("本地 Web Host 连接尚未就绪,请在连接恢复后重试。",409,"session_not_synchronized");const D=p.current.activeSessionId;if(!D)throw new Pe("当前没有可接收命令的活动会话。",409,"active_session_changed");const ne=p.current.sessionSnapshot;if(!ne||!Ir(p.current))throw new Pe("当前会话快照尚未同步,请刷新后重试。",409,"session_runtime_revision_conflict");try{const xe=await n.command({...b,workspaceId:p.current.workspaceId,expectedContextRevision:p.current.contextRevision,expectedSessionId:D,expectedSessionRuntimeRevision:ne.sessionRuntime.runtimeRevision});return Zx(xe),xe}catch(xe){throw xe instanceof Pe&&["context_revision_conflict","active_session_changed","session_runtime_revision_conflict"].includes(xe.code??"")?(a({type:"snapshot_failed",sessionId:D,detail:xe.message,contextRevision:p.current.contextRevision,workspaceId:p.current.workspaceId}),new Pe(xe.message,xe.status,"session_runtime_revision_conflict",xe.type)):xe}}),[n,N]),se=m.useCallback(async(k,b)=>N(k,async()=>{const D=p.current,ne=D.composer;if(D.connection!=="live"||!D.activeSessionId||!Ir(D)||!ne||ne.sessionId!==D.activeSessionId)throw new Pe("Composer 控制状态尚未与活动会话同步。",409,"composer_control_conflict");try{const xe=await n.composerAction(D.activeSessionId,{...b,workspaceId:D.workspaceId,expectedContextRevision:D.contextRevision,expectedSessionId:D.activeSessionId,expectedSessionRuntimeRevision:ne.sessionRuntime.runtimeRevision,expectedControlRevision:ne.controlRevision});return a({type:"composer_loaded",composer:xe.state}),xe}catch(xe){throw xe instanceof Pe&&["composer_control_conflict","context_revision_conflict","active_session_changed","session_runtime_revision_conflict"].includes(xe.code??"")?(a({type:"snapshot_failed",sessionId:D.activeSessionId,detail:xe.message,contextRevision:D.contextRevision,workspaceId:D.workspaceId}),new Pe(xe.message,xe.status,"composer_control_conflict",xe.type)):xe}}),[n,N]),Ne=m.useCallback(()=>N("重新连接",z),[z,N]),we=m.useCallback(()=>N("刷新诊断",async()=>{const k=++w.current,b=await n.diagnostics(ye(p.current));k===w.current&&a({type:"diagnostics_loaded",diagnostics:b})}),[n,N]),Z=m.useCallback(()=>N("刷新工具详情",async()=>{const k=++w.current,b=await n.toolDetails(ye(p.current));k===w.current&&a({type:"tool_details_loaded",details:b.details,nextCursor:b.nextCursor})}),[n,N]),Q=m.useCallback(()=>N("加载更多工作区",async()=>{const k=ye(p.current),b=p.current.workspaceNextCursor;if(b)try{const D=await n.listWorkspaces(k,b);a({type:"workspaces_loaded",value:D,append:!0})}catch(D){if(!Lo(D))throw D;a({type:"workspaces_loaded",value:await n.listWorkspaces(k)})}}),[n,N]),V=m.useCallback(()=>N("加载更多会话",async()=>{const k=p.current.sessionNextCursor;if(!k)return;const b=ye(p.current);try{const D=await n.listSessions(b,k);a({type:"sessions_loaded",sessions:D.sessions,nextCursor:D.nextCursor,append:!0})}catch(D){if(!Lo(D))throw D;const ne=await n.listSessions(b);a({type:"sessions_loaded",sessions:ne.sessions,nextCursor:ne.nextCursor})}}),[n,N]),je=m.useCallback(async(k,b=!1)=>{const D=ye(p.current),ne=p.current.workspaceSessions[k],xe=b?ne?.nextCursor:void 0;if(b&&!xe)return;a({type:"workspace_sessions_loading",workspaceId:k});const $e=n.workspaceProjectSummary(k,D).catch(()=>null);try{const Ke=await n.listWorkspaceSessions(k,D,xe??void 0);a({type:"workspace_sessions_loaded",workspaceId:k,sessions:Ke.sessions,nextCursor:Ke.nextCursor,append:b});const at=await $e;at&&a({type:"workspace_project_summary_loaded",summary:at})}catch(Ke){throw a({type:"workspace_sessions_failed",workspaceId:k,detail:ls(Ke)}),Ke}},[n]),A=m.useCallback(async k=>{const b=await n.workspaceProjectSummary(k,ye(p.current));a({type:"workspace_project_summary_loaded",summary:b})},[n]),pe=m.useCallback(()=>N("加载更多能力",async()=>{const k=ye(p.current),b=p.current.skillNextCursor,D=p.current.mcpNextCursor;if(!(!b&&!D))try{const[ne,xe]=await Promise.all([b?n.skills(k,b):Promise.resolve({skills:[],nextCursor:null}),D?n.mcp(k,D):Promise.resolve({servers:[],nextCursor:null})]);a({type:"capabilities_loaded",skills:ne.skills,skillNextCursor:ne.nextCursor,mcpServers:xe.servers,mcpNextCursor:xe.nextCursor,append:!0})}catch(ne){if(!Lo(ne))throw ne;const[xe,$e]=await Promise.all([n.skills(k),n.mcp(k)]);a({type:"capabilities_loaded",skills:xe.skills,skillNextCursor:xe.nextCursor,mcpServers:$e.servers,mcpNextCursor:$e.nextCursor})}}),[n,N]),ge=m.useCallback(()=>N("加载更多工具详情",async()=>{const k=ye(p.current),b=p.current.toolDetailNextCursor;if(b)try{const D=await n.toolDetails(k,b);a({type:"tool_details_loaded",details:D.details,nextCursor:D.nextCursor,append:!0})}catch(D){if(!Lo(D))throw D;const ne=await n.toolDetails(k);a({type:"tool_details_loaded",details:ne.details,nextCursor:ne.nextCursor})}}),[n,N]),q=m.useCallback(async()=>{const k=p.current;if(k.connection!=="replay-required"){if(!k.activeSessionId)return;await W(k.activeSessionId,ye(k),{force:!0});return}await N("恢复本地 Web Host 事件流",async()=>{J(),a({type:"recovering"});try{await z()}finally{re()}})},[z,W,J,re,N]),ie=m.useCallback(k=>N("切换工作区",async()=>{J();try{const b=await n.activateWorkspace(k,ye(p.current));a({type:"workspaces_loaded",value:b}),a({type:"reset_session_view",activeSessionId:null}),await z(b)}finally{re()}}),[n,z,J,re,N]),B=m.useCallback(()=>n.pickDirectory({}),[n]),v=m.useCallback(()=>n.listWorkspaceRoots(),[n]),M=m.useCallback(k=>n.addWorkspaceRoot(k),[n]),ce=m.useCallback(k=>n.removeWorkspaceRoot(k),[n]),de=m.useCallback((k,b)=>n.discoverWorkspaceRoot(k,b),[n]),ke=m.useCallback(k=>n.inspectWorkspace(k,"picker"),[n]),ee=m.useCallback(k=>{const b=p.current;if(b.activeSessionId===k&&b.sessionSnapshot&&b.sessionSync[k]?.status==="ready")return Promise.resolve();const D=ye(b);return(async()=>{oi(D.workspaceId,k),a({type:"reset_session_view",activeSessionId:k}),await W(k,D)})()},[W]),he=m.useCallback((k,b)=>k===p.current.workspaceId&&b?ee(b):N("切换项目上下文",async()=>{const D=p.current,ne=D.contextRevision;if(!ne)throw new Pe("工作区上下文尚未完成同步。",409,"context_revision_conflict");if(k===D.workspaceId){oi(k,b),a({type:"reset_session_view",activeSessionId:b}),b&&await W(b,ye(D));return}oi(k,b),J(),++w.current;try{const xe=await n.activateContext({expectedContextRevision:ne,workspaceId:k,sessionId:b});if(xe.contextRevision!==xe.bootstrap.contextRevision||xe.bootstrap.workspaceId!==k)throw new Pe("Host 返回的项目上下文不一致。",502,"context_response_invalid");a({type:"reset_session_view",activeSessionId:b}),await z()}catch(xe){throw xe instanceof Pe&&(xe.code==="context_revision_conflict"||xe.code==="active_session_changed")&&a({type:"snapshot_failed",sessionId:null,detail:xe.message}),xe}finally{re()}}),[n,z,W,J,re,N,ee]),Se=m.useCallback((k,b)=>N(b?"置顶项目":"取消置顶",async()=>{await n.setWorkspacePinned(k,b,ye(p.current)),a({type:"workspaces_loaded",value:await n.listWorkspaces(ye(p.current))})}),[n,N]),ae=m.useCallback(k=>N("移除项目",async()=>{const b=p.current;if(!b.contextRevision)throw new Pe("工作区上下文尚未完成同步。",409,"context_revision_conflict");await n.removeWorkspace(k,ye(b)),Hm(k),a({type:"workspaces_loaded",value:await n.listWorkspaces(ye(p.current))})}),[n,N]),Me=m.useCallback(()=>N("创建会话",async()=>{const k=ye(p.current),b=await n.createSession(k);oi(k.workspaceId,b.id),a({type:"sessions_loaded",sessions:tr(p.current.sessions,b),nextCursor:p.current.sessionNextCursor}),a({type:"reset_session_view",activeSessionId:b.id}),await W(b.id,k)}),[n,W,N]),He=ee,Ze=m.useCallback(()=>N("加载更早记录",async()=>{const k=p.current.sessionSnapshot,b=p.current.activeSessionId,D=k?.transcript.nextCursor;if(!(!k||!b||!D))try{const ne=await n.sessionSnapshot(b,ye(p.current),D);if(ne.session.id!==k.session.id||ne.threadId!==k.threadId||ne.threadCursor!==k.threadCursor||ne.projectionDigest!==k.projectionDigest)throw new Pe("加载历史记录时会话快照发生变化,正在恢复最新快照。",409,"transcript_cursor_stale");a({type:"older_transcript_loaded",snapshot:ne})}catch(ne){if(!(ne instanceof Pe)||ne.code!=="transcript_cursor_stale")throw ne;J(),a({type:"recovering"});try{await W(b,ye(p.current),{force:!0})}finally{re()}}}),[n,W,J,re,N]),ft=m.useCallback((k,b)=>N("重命名会话",async()=>{const D=await n.renameSession(k,b,ye(p.current)),ne=tr(p.current.sessions,D);a({type:"sessions_loaded",sessions:ne,nextCursor:p.current.sessionNextCursor})}),[n,N]),lt=m.useCallback((k,b)=>N("更新会话标签",async()=>{const D=await n.updateSessionTags(k,b,ye(p.current));a({type:"session_updated",session:D})}),[n,N]),wt=m.useCallback(k=>N("归档会话",async()=>{const b=await n.archiveSession(k,ye(p.current));a({type:"session_archived",session:b})}),[n,N]),pt=m.useCallback(k=>N("还原会话",async()=>{const b=await n.restoreSession(k,ye(p.current));a({type:"session_restored",session:b})}),[n,N]),F=m.useCallback(k=>N("删除会话",async()=>{await n.deleteSession(k,ye(p.current)),a({type:"session_deleted",sessionId:k})}),[n,N]),Ee=m.useCallback(async(k,b=!1)=>{const D=ye(p.current),ne=p.current.archivedSessions,xe=b?ne?.nextCursor:void 0;if(!(b&&!xe)){a({type:"archived_sessions_loading",workspaceId:k});try{const $e=await n.listArchivedWorkspaceSessions(k,D,xe??void 0);a({type:"archived_sessions_loaded",workspaceId:k,sessions:$e.sessions,nextCursor:$e.nextCursor,append:b})}catch($e){throw a({type:"archived_sessions_failed",workspaceId:k,detail:ls($e)}),$e}}},[n]),Fe=m.useCallback((k,b)=>L("提交任务",{type:"submit",text:k,contextReferences:b}),[L]),et=m.useCallback((k,b)=>L("加入队列",{type:"queue_followup",text:k,contextReferences:b}),[L]),Ct=m.useCallback(async(k,b)=>{await se("移除排队消息",{type:"remove_queue_item",itemId:k,expectedItemRevision:b})},[se]),Pn=m.useCallback(async(k,b,D)=>{await se("编辑排队消息",{type:"edit_queue_item",itemId:k,expectedItemRevision:b,text:D})},[se]),nr=m.useCallback(async(k,b,D)=>{await se("移动排队消息",{type:"move_queue_item",itemId:k,expectedItemRevision:b,targetIndex:D})},[se]),rr=m.useCallback(async()=>{await L("清空队列",{type:"clear_followups"})},[L]),kt=m.useCallback(async()=>{const k=p.current.sessionSnapshot?.sessionRuntime;if(!k||k.phase!=="queued"||!k.queueId)throw new Pe("排队任务已变化,请等待状态同步后重试。",409,"session_queue_conflict");await L("取消排队任务",{type:"cancel_queued_turn",queueId:k.queueId})},[L]),sr=m.useCallback(async()=>{await L("中断任务",{type:"interrupt"})},[L]),Tn=m.useCallback(async k=>{p.current.mode.baseMode===k&&!p.current.mode.pendingBaseMode||await se("切换模式",{type:"set_agent_mode",mode:k})},[se]),Dt=m.useCallback(async k=>{await se(k===null?"继承项目权限":"切换会话权限",k===null?{type:"clear_permission_override"}:{type:"set_permission_override",value:k})},[se]),Mn=m.useCallback(()=>N("加载模型目录",async()=>{const k=p.current;if(!k.activeSessionId)return;const b=await n.modelCatalog(k.activeSessionId,ye(k));a({type:"model_catalog_loaded",catalog:b})}),[n,N]),on=m.useCallback(async(k,b)=>{await se("切换会话模型",{type:"select_model",modelId:k,...b?{effort:b}:{}})},[se]),Y=m.useCallback(async()=>{await se("压缩上下文",{type:"compact_context"})},[se]),Ie=m.useCallback(async(k,b,D)=>{await se("审核计划",{type:"review_plan",planDigest:k,action:b,...D?{feedback:D}:{}})},[se]),Re=m.useCallback(async(k,b="once")=>{const D=p.current.permission;D&&(await L(k?"确认工具权限":"拒绝工具权限",{type:"permission_decision",requestPermissionId:D.id,approved:k,scope:b}),a({type:"approval_resolved",requestId:D.id,approved:k}))},[L]),qe=m.useCallback(async(k,b)=>{await L("更新 Goal",{type:"goal_control",goalAction:k,objective:b});const D=++w.current;J();try{const ne=p.current.activeSessionId,xe=ye(p.current),[$e]=await Promise.all([n.diagnostics(xe),ne?W(ne,xe,{force:!0}):Promise.resolve()]);if(D!==w.current)return;a({type:"diagnostics_loaded",diagnostics:$e})}finally{re()}},[n,W,J,re,L]),Gt=m.useCallback(async()=>{const k=await r.refresh(),b=k.document??k.lastGood;if(!b)throw new Pe(k.error??"设置尚不可用。",503);return b},[r]),ln=m.useCallback(async(k,b,D)=>{if(b.length<1||b.length>20)throw new Pe("设置变更必须包含 1 到 20 个字段。",400,"settings_invalid_operation");const ne=await n.updateSettings(k,b,ye(p.current),D);return r.accept(ne.settings),ne},[n,r]),an=m.useCallback(async()=>{await n.openSettingsDocument()},[n]),Qt=m.useCallback((k,b=0)=>n.readToolDetail(k,ye(p.current),b),[n]),Er=m.useCallback((k,b)=>n.listFiles(ye(p.current),k,b),[n]),Rr=m.useCallback((k,b)=>n.readFileContent(k,ye(p.current),b),[n]),On=m.useCallback((k,b,D)=>n.writeFileContent(ye(p.current),k,b,D),[n]),mn=m.useCallback((k,b)=>n.gitStatus(ye(p.current),k,b),[n]),ps=m.useCallback(k=>n.gitLog(ye(p.current),k),[n]),hs=m.useCallback((k,b)=>n.gitDiff(k,ye(p.current),b),[n]),ms=m.useCallback((k,b,D,ne)=>n.gitDiffDocument(k,ye(p.current),b,D,ne),[n]),mi=m.useCallback(()=>n.gitRefs(ye(p.current)),[n]),gi=m.useCallback(k=>n.gitCompare(ye(p.current),k),[n]),gs=m.useCallback(k=>n.gitCompareFileDiff(ye(p.current),k),[n]),vi=m.useCallback(k=>n.gitHistory(ye(p.current),k),[n]),ir=m.useCallback((k,b=0)=>n.gitCommitDetail(ye(p.current),k,b),[n]),vs=m.useCallback((k,b=0)=>n.gitCommitFiles(ye(p.current),k,b),[n]),or=m.useCallback(k=>n.gitCommitDiff(ye(p.current),k),[n]),sl=m.useCallback(k=>n.gitFilesTarget(ye(p.current),k),[n]),lr=m.useCallback((k=200)=>n.gitGraph(ye(p.current),k),[n]),Pr=m.useCallback(k=>n.gitConflictVersions(ye(p.current),k),[n]),Tr=m.useCallback(k=>n.gitBlob(ye(p.current),k),[n]),ys=m.useCallback(()=>n.gitSubmodules(ye(p.current)),[n]),il=m.useCallback(k=>n.gitBlame(ye(p.current),k),[n]),ol=m.useCallback(k=>n.gitFileHistory(ye(p.current),k),[n]),yi=m.useCallback(()=>n.gitCommitPreview(ye(p.current)),[n]),cn=m.useCallback((k,b)=>n.gitStage(ye(p.current),k,b),[n]),xs=m.useCallback((k,b)=>n.gitUnstage(ye(p.current),k,b),[n]),ws=m.useCallback(k=>n.gitApplyPatch(ye(p.current),k),[n]),xi=m.useCallback(k=>n.gitCommit(ye(p.current),k),[n]),ks=m.useCallback(()=>n.review(ye(p.current)),[n]),js=m.useCallback(async()=>(await n.terminals(ye(p.current))).terminals,[n]),Ss=m.useCallback(async(k,b)=>{const D=p.current;if(!D.contextRevision||!D.workspaceId)throw new Pe("工作区上下文尚未完成同步。",409,"context_revision_conflict");return n.createTerminal({expectedContextRevision:D.contextRevision,workspaceId:D.workspaceId,cols:k,rows:b})},[n]),Cs=m.useCallback(async k=>{const b=p.current;if(!b.contextRevision||!b.workspaceId)throw new Pe("工作区上下文尚未完成同步。",409,"context_revision_conflict");return n.terminalAttachTicket(k,{expectedContextRevision:b.contextRevision,workspaceId:b.workspaceId})},[n]),wi=m.useCallback(async k=>{const b=p.current;if(!b.contextRevision||!b.workspaceId)throw new Pe("工作区上下文尚未完成同步。",409,"context_revision_conflict");await n.closeTerminal(k,{expectedContextRevision:b.contextRevision,workspaceId:b.workspaceId})},[n]),ki=m.useCallback(k=>n.terminalSocket(k),[n]),Ve=m.useCallback(()=>a({type:"notice",notice:null}),[]),ll=m.useMemo(()=>({retryBoot:Ne,refreshDiagnostics:we,refreshToolDetails:Z,loadMoreWorkspaces:Q,loadMoreSessions:V,loadWorkspaceSessions:je,refreshWorkspaceProjectSummary:A,loadMoreCapabilities:pe,loadMoreToolDetails:ge,recoverSession:q,switchWorkspace:ie,pickWorkspaceDirectory:B,inspectWorkspacePath:ke,listWorkspaceRoots:v,addWorkspaceRoot:M,removeWorkspaceRoot:ce,discoverWorkspaceRoot:de,activateContext:he,setWorkspacePinned:Se,removeWorkspace:ae,createSession:Me,activateSession:He,loadOlderTranscript:Ze,renameSession:ft,updateSessionTags:lt,archiveSession:wt,restoreSession:pt,deleteSession:F,loadArchivedWorkspaceSessions:Ee,submit:Fe,queue:et,removeQueued:Ct,editQueued:Pn,moveQueued:nr,clearQueue:rr,cancelQueuedTurn:kt,interrupt:sr,setMode:Tn,setPermissionOverride:Dt,loadModelCatalog:Mn,selectModel:on,compactContext:Y,reviewPlan:Ie,answerPermission:Re,controlGoal:qe,refreshSettings:Gt,updateSettings:ln,openSettingsDocument:an,readToolDetail:Qt,listFiles:Er,readFileContent:Rr,writeFileContent:On,gitStatus:mn,gitLog:ps,gitDiff:hs,gitDiffDocument:ms,gitCommitPreview:yi,gitRefs:mi,gitCompare:gi,gitCompareFileDiff:gs,gitHistory:vi,gitCommitDetail:ir,gitCommitFiles:vs,gitCommitDiff:or,gitFilesTarget:sl,gitGraph:lr,gitConflictVersions:Pr,gitBlob:Tr,gitSubmodules:ys,gitBlame:il,gitFileHistory:ol,gitStage:cn,gitUnstage:xs,gitApplyPatch:ws,gitCommit:xi,review:ks,terminals:js,createTerminal:Ss,terminalAttachTicket:Cs,closeTerminal:wi,terminalSocket:ki,dismissNotice:Ve}),[He,he,wi,Ss,hs,ms,yi,cn,xs,ws,xi,ps,mn,Er,Ze,pe,V,ge,Q,Mn,je,Re,rr,kt,Y,Ie,qe,Me,Ve,Pn,sr,et,Rr,Qt,ks,q,we,Gt,Z,A,Ct,ae,ft,pt,lt,wt,F,Ee,Ne,Tn,Dt,on,Se,Fe,ie,B,ke,v,M,ce,de,nr,Cs,ki,js,ln,an]);return{state:o,actions:ll}}async function Yx(n,r,o,a){let d=o;for(let f=0;f<2;f+=1){const p=qx(d);if(p.keysToClear.length===0||d.state!=="ready"||!d.writable)return d;if(p.operations.length===0)return Vf(p.keysToClear),d;try{const g=await n.updateSettings(d.revision,p.operations,a,Ae());return r.accept(g.settings),Vf(p.keysToClear),g.settings}catch(g){if(f===0&&g instanceof Pe&&g.code==="settings_revision_conflict"){const x=await r.refresh(),w=x.document??x.lastGood;if(w){d=w;continue}}return d}}return d}function ye(n){if(!n.contextRevision||!n.workspaceId)throw new Pe("工作区上下文尚未完成同步。",409,"context_revision_conflict");return{expectedContextRevision:n.contextRevision,workspaceId:n.workspaceId}}function Gf(n,r,o){if(!(n.session.id===r&&n.sessionRuntime.sessionId===r&&n.sessionRuntime.workspaceId===o.workspaceId&&n.composer.sessionId===r&&n.composer.workspaceId===o.workspaceId&&n.composer.contextRevision===o.expectedContextRevision))throw new Pe("Host 返回的会话快照身份与当前项目上下文不一致。",502,"session_snapshot_identity_mismatch")}const Qf="orion.web.view-id.v1",$p="orion.web.foreground-session.v1:";function Xx(n,r,o){const a=Dp(`${$p}${n}`);return Vx(a,r,o)}function oi(n,r){Jx();const o=`${$p}${n}`;try{r?globalThis.sessionStorage?.setItem(o,r):globalThis.sessionStorage?.removeItem(o)}catch{}}function Jx(){const n=Dp(Qf);if(n)return n;const r=globalThis.crypto?.randomUUID?.()??`view-${Date.now().toString(36)}`;try{globalThis.sessionStorage?.setItem(Qf,r)}catch{}return r}function Dp(n){try{return globalThis.sessionStorage?.getItem(n)??null}catch{return null}}function Zx(n){if(n.result.includes("failed")||n.result.includes("invalid")||n.result.includes("rejected")||n.result.includes("ignored")||n.result.includes("full")||n.result==="empty")throw new Pe(ew(n),409)}function ew(n){if(n.detail)try{const r=JSON.parse(n.detail);if(typeof r.reason=="string")return r.reason}catch{}return`Runtime 未接受操作:${n.result}`}function Yf(n,r,o,a="error"){n({type:"notice",notice:{id:Date.now(),tone:a,title:r,detail:ls(o)}})}function ls(n){return n instanceof Pe||n instanceof Error?n.message:"发生未知错误。"}function Lo(n){return n instanceof Pe&&n.code==="collection_cursor_stale"}function tw(n){return n instanceof Pe&&["composer_control_conflict","session_runtime_revision_conflict","session_snapshot_sync_failed"].includes(n.code??"")}function nw(n){return n instanceof Pe&&["context_revision_conflict","runtime_busy","active_session_changed"].includes(n.code??"")}function rw(n){return new Promise(r=>{globalThis.setTimeout(r,n)})}function sw(n){if(typeof window<"u"&&"requestIdleCallback"in window){const o=window.requestIdleCallback(n,{timeout:1500});return()=>window.cancelIdleCallback(o)}const r=globalThis.setTimeout(n,150);return()=>globalThis.clearTimeout(r)}async function iw(n,r,o){let a=0;const d=Array.from({length:Math.min(Math.max(1,r),n.length)},async()=>{for(;a<n.length;){const f=n[a];a+=1,f!==void 0&&await o(f)}});await Promise.all(d)}function ow(n){return n.sessionId?n.type==="runtime_event"?n.payload.value.type==="permission_requested":n.type!=="thread_event"?!1:["approval.requested","plan.review_requested","turn.completed","turn.failed","turn.interrupted"].includes(n.payload.value.payload.type):!1}const lw=5e3;function aw(n,r){return r||n.tone==="error"?null:lw}function cw({uid:n,notice:r,reconnectNeeded:o,snapshotRetryNeeded:a,pendingAction:d,onDismiss:f,onRecover:p}){const g=o||a,x=!g,w=m.useRef(f);m.useEffect(()=>{w.current=f},[f]);const R=aw(r,g);m.useEffect(()=>{if(R===null)return;const P=window.setTimeout(()=>w.current(n),R);return()=>window.clearTimeout(P)},[R,n]);const C=`notice-${n}`,_=r.tone==="success"?"check":r.tone==="info"?"info":"warning";return i.jsxs("aside",{className:`workbench-notice notice-${r.tone}`,role:r.tone==="error"?"alert":"status","aria-labelledby":C,children:[i.jsx("span",{className:"notice-icon","aria-hidden":"true",children:i.jsx(G,{name:_,size:17})}),i.jsxs("div",{children:[i.jsx("strong",{id:C,children:r.title}),r.detail?i.jsx("p",{children:r.detail}):null]}),o?i.jsx("button",{type:"button",className:"secondary-button",onClick:()=>p(n),disabled:d,children:"重建连接"}):null,a?i.jsx("button",{type:"button",className:"secondary-button",onClick:()=>p(n),disabled:d,children:"重试同步"}):null,x?i.jsx("button",{type:"button",className:"icon-button",onClick:()=>f(n),"aria-label":"关闭通知",children:i.jsx(G,{name:"close",size:15})}):null]})}function uw(){const{state:n,actions:r}=Qx(),[o,a]=m.useState(!1),[d,f]=m.useState(Pv),{value:p,update:g,setResourceNavigatorWidth:x}=kx(n.workspaceId,d.workPanel),[w,R]=m.useState(!1),[C,_]=m.useState(!1),[P,$]=m.useState(!1),[O,W]=m.useState(null),[te,z]=m.useState(null),[oe,J]=m.useState(null),[re,N]=m.useState(!1),[L,se]=m.useState([]),Ne=m.useRef(0),we=m.useRef(n.notice),Z=m.useRef(null),[Q,V]=m.useState(null),[je,A]=m.useState(null),pe=m.useRef(null),ge=m.useRef(!1),q=m.useRef(!1),ie=m.useRef(null),B=dw(ie),v=B>1180,M=v?Of({containerWidth:B,navigationExpanded:d.projectNavigation.expanded,navigationWidthPx:d.projectNavigation.widthPx,workExpanded:p.expanded,workDetailWidthPx:p.detailWidthPx}):Po(B,d),ce=M.projectNavigation.mode==="drawer",de=M.workPanel.mode==="drawer",ke=M.workPanel.mode==="rail"&&p.expanded,ee=de||ke&&w,he=de||ke?w:M.workPanel.mode==="dock",Se=ee&&w,ae=ce&&o,Me=ae||Se,He=n.settings?.state==="ready"?n.settings:n.settingsMirror.lastGood??n.settings,Ze=He?.sections.appearance.theme.effectiveValue,ft=He?.sections.appearance.motion.effectiveValue,lt=He?.sections.appearance.style.effectiveValue??"orion-blocksmith",wt=Qo(n),pt=m.useCallback(()=>{if(!n.workspace)return;const Y=He?.revision;if(!Y)return;const Ie=He?.sections.appearance.theme.effectiveValue??"system",Re=Ie==="system"?"light":Ie==="light"?"dark":"system";r.updateSettings(Y,[{op:"set",key:"appearance.theme",value:Re}],Ae()).catch(qe=>{console.warn("[theme] 主题切换写入失败",qe)})},[r,He,n.workspace]),F=m.useCallback(Y=>{f(Ie=>{const Re={...Ie,projectNavigation:{...Ie.projectNavigation,...Y}};return Tv(Re),Re})},[]),Ee=m.useCallback(Y=>{g({...Y,detailWidthPx:Y.widthPx===void 0?void 0:Math.max(360,Y.widthPx-rt)})},[g]),Fe=m.useCallback(()=>{pe.current=document.activeElement instanceof HTMLElement?document.activeElement:null},[]),et=m.useCallback(()=>{requestAnimationFrame(()=>document.querySelector(".project-search input")?.focus())},[]),Ct=m.useCallback(()=>{requestAnimationFrame(()=>document.querySelector('.workspace-rail [aria-label="打开设置"]')?.focus())},[]),Pn=m.useCallback(()=>{ce&&(Fe(),R(!1),a(!0)),Ct()},[Ct,ce,Fe]),nr=m.useCallback(()=>{ge.current=ae,ae&&(a(!1),R(!1),pe.current=null),_(!0)},[ae]),rr=m.useCallback(()=>{_(!1),ge.current&&(ge.current=!1,q.current=!0,a(!0))},[]),kt=m.useCallback(()=>{a(!1),R(!1),q.current=!1;const Y=pe.current;pe.current=null,Y&&requestAnimationFrame(()=>Y.focus())},[]);m.useLayoutEffect(()=>{document.documentElement.dataset.theme=Ze??"system",document.documentElement.dataset.motion=ft??"system",document.documentElement.dataset.uiStyle=lt},[ft,Ze,lt]),m.useEffect(()=>{we.current=n.notice;const Y=n.notice;Y&&Z.current!==Y.id&&(Z.current=Y.id,se(Ie=>Ie.some(Re=>Re.notice.id===Y.id)?Ie:[...Ie,{uid:++Ne.current,notice:Y}].slice(-4)))},[n.notice]),m.useEffect(()=>{const Y=n.workspaceId;if(!Y)return;const Ie=n.workspaceSessions[Y],Re=n.archivedSessions;Ie?.status==="ready"&&(Re.ownerWorkspaceId===Y&&Re.status!=="idle"||r.loadArchivedWorkspaceSessions(Y).catch(()=>{}))},[r,n.archivedSessions,n.workspaceId,n.workspaceSessions]);const sr=m.useCallback(Y=>{const Ie=L.find(Re=>Re.uid===Y);Ie&&(we.current?.id===Ie.notice.id&&r.dismissNotice(),se(Re=>Re.filter(qe=>qe.uid!==Y)))},[r,L]),Tn=m.useCallback(Y=>{const Ie=L.find(Re=>Re.uid===Y);Ie&&(we.current?.id===Ie.notice.id&&r.dismissNotice(),se(Re=>Re.filter(qe=>qe.uid!==Y)),r.recoverSession())},[r,L]);m.useEffect(()=>{const Y=window.matchMedia("(prefers-color-scheme: light)"),Ie=document.querySelector('meta[name="theme-color"]'),Re=()=>{Ie&&(Ie.content=bx(lt,Ze??"system",Y.matches))};return Re(),Y.addEventListener("change",Re),()=>Y.removeEventListener("change",Re)},[Ze,lt]),m.useEffect(()=>{a(!1),R(!1),pe.current=null,ge.current=!1,q.current=!1},[n.activeSessionId,n.workspace]),m.useLayoutEffect(()=>{a(!1),R(!1),pe.current=null,q.current=!1},[M.projectNavigation.mode,M.workPanel.mode,ce,de]),m.useEffect(()=>{const Y=Ie=>{const Re=Ho("toggle-project-navigation");if(Re&&Uo(Ie,Re.tokens)){if(Ie.preventDefault(),ce){if(o){kt();return}Fe(),R(!1),a(!0);return}const qe=!d.projectNavigation.expanded,Gt=!!(!qe&&document.activeElement?.closest(".workspace-rail")),ln=Po(B,{...d,projectNavigation:{...d.projectNavigation,expanded:qe}});if(qe&&ln.projectNavigation.mode==="drawer"){F({expanded:qe}),Fe(),R(!1),a(!0);return}F({expanded:qe}),qe?et():Gt&&requestAnimationFrame(()=>{(document.querySelector('.project-navigator-collapsed [aria-label="展开项目导航"]')??document.querySelector(".mobile-nav-toggle"))?.focus()})}};return window.addEventListener("keydown",Y),()=>window.removeEventListener("keydown",Y)},[kt,et,o,ce,d.projectNavigation,Fe,B,F]),m.useEffect(()=>{const Y=Ho("open-shortcut-help");if(!Y)return;const Ie=Re=>{Uo(Re,Y.tokens)&&(Re.preventDefault(),N(qe=>!qe))};return window.addEventListener("keydown",Ie),()=>window.removeEventListener("keydown",Ie)},[]),m.useEffect(()=>{if(!Me)return;const Y=document.querySelector(".conversation-column"),Ie=document.querySelector(".workspace-rail"),Re=document.querySelector(".work-panel"),qe=document.querySelector(".workbench-notice-stack"),Gt=document.querySelector(".skip-link");Y&&(Y.inert=!0),Ie&&(Ie.inert=Se),Re&&(Re.inert=o),qe&&(qe.inert=!0),Gt&&(Gt.inert=!0);const ln=window.setTimeout(()=>{const Qt=Se?Re?.querySelector('[aria-label="关闭工作面板"]'):q.current?Ie?.querySelector('[aria-label="打开设置"]'):Ie?.querySelector(".drawer-close");q.current=!1,Qt?.focus()},0),an=Qt=>{Qt.key==="Escape"&&Me&&!Qt.target?.closest?.('[role="alertdialog"], dialog')&&kt()};return window.addEventListener("keydown",an),()=>{Y&&(Y.inert=!1),Ie&&(Ie.inert=!1),Re&&(Re.inert=!1),qe&&(qe.inert=!1),Gt&&(Gt.inert=!1),window.clearTimeout(ln),window.removeEventListener("keydown",an)}},[kt,Me,o,Se,n.notice]);const Dt=m.useCallback(()=>{requestAnimationFrame(()=>document.querySelector("#main-content h1")?.focus())},[]),Mn=()=>{a(!1),r.createSession().then(Dt,Dt)},on=()=>{ge.current=!1,q.current=!1,_(!1),requestAnimationFrame(()=>document.querySelector("#orion-composer")?.focus())};return i.jsxs(i.Fragment,{children:[i.jsx("a",{className:"skip-link",href:"#main-content",children:"跳到主要内容"}),i.jsxs("div",{ref:ie,className:`workbench-shell project-navigation-${M.projectNavigation.mode} work-panel-mode-${M.workPanel.mode} ${ke&&w?"work-panel-transient-overlay":""}`,style:{"--project-navigation-width":`${M.projectNavigation.widthPx}px`,"--project-navigation-preferred-width":`${d.projectNavigation.widthPx}px`,"--work-panel-width":`${M.workPanel.widthPx}px`,"--work-panel-preferred-width":`${p.detailWidthPx+rt}px`},"aria-busy":n.boot==="loading",children:[i.jsx(zv,{state:n,drawerOpen:ae,dockVisible:!0,collapsed:M.projectNavigation.mode==="rail",resizable:M.projectNavigation.mode==="dock",width:M.projectNavigation.widthPx,onExpand:()=>{ce?(Fe(),R(!1),a(!0)):(F({expanded:!0}),et())},onCollapse:()=>{ce?kt():F({expanded:!1})},onOpenWorkspaceDialog:()=>$(!0),onOpenSettings:nr,onLoadMoreWorkspaces:()=>{r.loadMoreWorkspaces()},onCreateSession:Mn,onLoadWorkspaceSessions:(Y,Ie)=>{r.loadWorkspaceSessions(Y,Ie)},onActivateContext:(Y,Ie)=>{a(!1),r.activateContext(Y,Ie).then(Dt,Dt)},onSetPinned:(Y,Ie)=>{r.setWorkspacePinned(Y,Ie)},onRemoveWorkspace:Y=>{r.removeWorkspace(Y)},onRefreshSummary:Y=>{r.refreshWorkspaceProjectSummary(Y)},onRenameSession:W,onSessionTags:z,onArchiveSession:Y=>{r.archiveSession(Y.id)},onDeleteSession:J,onRestoreSession:Y=>{r.restoreSession(Y.id)},onWidthPreview:Y=>{const Ie=Po(B,{...d,projectNavigation:{...d.projectNavigation,widthPx:Y}});ie.current?.style.setProperty("--project-navigation-width",`${Ie.projectNavigation.widthPx}px`)},onWidthCommit:Y=>F({widthPx:Y})}),i.jsx(ov,{state:n,actions:r,navigationOpen:ae,navigationOverlay:ce,onOpenNavigation:()=>{Fe(),R(!1),a(!0)},onRevealSettings:Pn,onCreateSession:Mn,composerInsertion:je}),i.jsx(ax,{state:n,actions:r,mode:ee?"overlay":"dock",expanded:he,themePreference:Ze,onCycleTheme:pt,onShowShortcutHelp:()=>N(!0),onToggleInspector:()=>{if(de||ke){if(w){kt();return}Fe(),a(!1),R(!0);return}Ee({expanded:!p.expanded})},activePanel:p.activePanel,panelOrder:d.workPanel.order,agentPanel:p.agentPanel,onExpand:()=>{de||ke?(Fe(),R(!0)):Ee({expanded:!0})},onCollapse:()=>{ee?kt():Ee({expanded:!1})},onPanelChange:Y=>Ee({activePanel:Y}),onAgentPanelChange:Y=>Ee({agentPanel:Y}),onWidthPreview:Y=>{const Ie=v?Of({containerWidth:B,navigationExpanded:d.projectNavigation.expanded,navigationWidthPx:d.projectNavigation.widthPx,workExpanded:!0,workDetailWidthPx:Math.max(360,Y-rt)}):Po(B,{...d,workPanel:{...d.workPanel,widthPx:Y}});ie.current?.style.setProperty("--work-panel-width",`${Ie.workPanel.widthPx}px`)},onWidthCommit:Y=>Ee({widthPx:Y}),width:M.workPanel.widthPx,maxWidthPx:v?Pp(B-(d.projectNavigation.expanded?d.projectNavigation.widthPx:rt))+rt:void 0,revealFileRequest:Q,onRevealInFiles:Y=>{(de||ke)&&R(!0),V({id:Date.now(),fileId:Y.filesToken,displayPath:Y.path}),Ee({activePanel:"files"})},onSendToComposer:Y=>{A({id:Date.now(),text:Y}),de&&kt(),requestAnimationFrame(()=>document.querySelector("#orion-composer")?.focus())},resourceNavigatorWidths:p.resourceNavigatorWidthPx,onResourceNavigatorWidthCommit:x}),Me?i.jsx("button",{type:"button",className:"drawer-scrim","aria-label":"关闭侧边面板",tabIndex:-1,onClick:kt}):null,L.length>0?i.jsx("div",{className:"workbench-notice-stack","aria-live":"polite",children:L.map(Y=>i.jsx(cw,{uid:Y.uid,notice:Y.notice,reconnectNeeded:n.connection==="replay-required",snapshotRetryNeeded:Y.notice.domain==="session-snapshot"&&wt.status==="failed",pendingAction:!!n.pendingAction,onDismiss:sr,onRecover:Tn},Y.uid))}):null,n.boot!=="ready"?i.jsxs("section",{className:"boot-screen",role:n.boot==="error"?"alert":"status",children:[i.jsx(hp,{className:"boot-mark",size:34}),n.boot==="loading"?i.jsxs(i.Fragment,{children:[i.jsx("h1",{children:"正在启动 Orion Workbench"}),i.jsx("p",{children:"建立本地安全握手并恢复工作区状态…"}),i.jsx("span",{className:"boot-loader","aria-hidden":"true"})]}):i.jsxs(i.Fragment,{children:[i.jsx("h1",{children:"无法连接本地 Web Host"}),i.jsx("p",{children:n.bootError||"请确认 Orion Web Host 仍在运行。"}),i.jsxs("button",{type:"button",className:"primary-button",onClick:()=>{r.retryBoot()},disabled:!!n.pendingAction,children:[i.jsx(G,{name:"refresh",size:15}),"重新连接"]})]})]}):null,i.jsx("div",{className:"sr-only","aria-live":"polite","aria-atomic":"true",children:n.announcement})]}),i.jsx(hy,{open:C,onClose:rr,state:n,actions:r,onGoToSessionControls:on}),i.jsx(ey,{open:P,onClose:()=>$(!1),state:n,onSelect:r.switchWorkspace,onLoadMore:r.loadMoreWorkspaces,onPickDirectory:r.pickWorkspaceDirectory,onInspect:r.inspectWorkspacePath,onListRoots:r.listWorkspaceRoots,onAddRoot:r.addWorkspaceRoot,onRemoveRoot:r.removeWorkspaceRoot,onDiscoverRoot:r.discoverWorkspaceRoot}),i.jsx(ty,{open:!!O,onClose:()=>W(null),session:O,pending:!!n.pendingAction,onRename:r.renameSession}),i.jsx(ny,{open:!!te,onClose:()=>z(null),session:te,pending:!!n.pendingAction,onSave:r.updateSessionTags}),i.jsx(sy,{open:!!oe,onClose:()=>J(null),session:oe,pending:!!n.pendingAction,onConfirm:r.deleteSession}),i.jsx(Oy,{open:re,onClose:()=>N(!1)})]})}function dw(n){const[r,o]=m.useState(()=>typeof window>"u"?1440:Math.max(320,Math.round(window.innerWidth)));return m.useEffect(()=>{const a=n.current;if(!a)return;const d=()=>{const f=Math.max(320,Math.round(a.getBoundingClientRect().width));o(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)},[n]),r}const zp=document.getElementById("root");if(!zp)throw new Error("Orion Web root element was not found.");Pm.createRoot(zp).render(i.jsx(Cm.StrictMode,{children:i.jsx(uw,{})}));export{ry as C,G as I,op as P,zo as R,Pe as W,Ae as a,Cp as b,Np as c,pw as d,i as j,m as r,Rn as s};
|