@@ -4,7 +4,7 @@
< meta charset = "utf-8" >
< meta name = "viewport" content = "width=device-width, initial-scale=1" >
< title > Codex 命令台< / title >
< script type = "module" crossorigin > ( f u n c t i o n ( ) { c o n s t r = d o c u m e n t . c r e a t e E l e m e n t ( " l i n k " ) . r e l L i s t ; i f ( r & & r . s u p p o r t s & & r . s u p p o r t s ( " m o d u l e p r e l o a d " ) ) r e t u r n ; f o r ( c o n s t g o f d o c u m e n t . q u e r y S e l e c t o r A l l ( ' l i n k [ r e l = " m o d u l e p r e l o a d " ] ' ) ) f ( g ) ; n e w M u t a t i o n O b s e r v e r ( g = > { f o r ( c o n s t A o f g ) i f ( A . t y p e = = = " c h i l d L i s t " ) f o r ( c o n s t O o f A . a d d e d N o d e s ) O . t a g N a m e = = = " L I N K " & & O . r e l = = = " m o d u l e p r e l o a d " & & f ( O ) } ) . o b s e r v e ( d o c u m e n t , { c h i l d L i s t : ! 0 , s u b t r e e : ! 0 } ) ; f u n c t i o n h ( g ) { c o n s t A = { } ; r e t u r n g . i n t e g r i t y & & ( A . i n t e g r i t y = g . i n t e g r i t y ) , g . r e f e r r e r P o l i c y & & ( A . r e f e r r e r P o l i c y = g . r e f e r r e r P o l i c y ) , g . c r o s s O r i g i n = = = " u s e - c r e d e n t i a l s " ? A . c r e d e n t i a l s = " i n c l u d e " : g . c r o s s O r i g i n = = = " a n o n y m o u s " ? A . c r e d e n t i a l s = " o m i t " : A . c r e d e n t i a l s = " s a m e - o r i g i n " , A } f u n c t i o n f ( g ) { i f ( g . e p ) r e t u r n ; g . e p = ! 0 ; c o n s t A = h ( g ) ; f e t c h ( g . h r e f , A ) } } ) ( ) ; f u n c t i o n I h ( i ) { r e t u r n i & & i . _ _ e s M o d u l e & & O b j e c t . p r o t o t y p e . h a s O w n P r o p e r t y . c a l l ( i , " d e f a u l t " ) ? i . d e f a u l t : i } v a r f o = { e x p o r t s : { } } , c i = { } ; / * *
< script type = "module" crossorigin > ( f u n c t i o n ( ) { c o n s t r = d o c u m e n t . c r e a t e E l e m e n t ( " l i n k " ) . r e l L i s t ; i f ( r & & r . s u p p o r t s & & r . s u p p o r t s ( " m o d u l e p r e l o a d " ) ) r e t u r n ; f o r ( c o n s t g o f d o c u m e n t . q u e r y S e l e c t o r A l l ( ' l i n k [ r e l = " m o d u l e p r e l o a d " ] ' ) ) f ( g ) ; n e w M u t a t i o n O b s e r v e r ( g = > { f o r ( c o n s t A o f g ) i f ( A . t y p e = = = " c h i l d L i s t " ) f o r ( c o n s t O o f A . a d d e d N o d e s ) O . t a g N a m e = = = " L I N K " & & O . r e l = = = " m o d u l e p r e l o a d " & & f ( O ) } ) . o b s e r v e ( d o c u m e n t , { c h i l d L i s t : ! 0 , s u b t r e e : ! 0 } ) ; f u n c t i o n h ( g ) { c o n s t A = { } ; r e t u r n g . i n t e g r i t y & & ( A . i n t e g r i t y = g . i n t e g r i t y ) , g . r e f e r r e r P o l i c y & & ( A . r e f e r r e r P o l i c y = g . r e f e r r e r P o l i c y ) , g . c r o s s O r i g i n = = = " u s e - c r e d e n t i a l s " ? A . c r e d e n t i a l s = " i n c l u d e " : g . c r o s s O r i g i n = = = " a n o n y m o u s " ? A . c r e d e n t i a l s = " o m i t " : A . c r e d e n t i a l s = " s a m e - o r i g i n " , A } f u n c t i o n f ( g ) { i f ( g . e p ) r e t u r n ; g . e p = ! 0 ; c o n s t A = h ( g ) ; f e t c h ( g . h r e f , A ) } } ) ( ) ; f u n c t i o n P h ( i ) { r e t u r n i & & i . _ _ e s M o d u l e & & O b j e c t . p r o t o t y p e . h a s O w n P r o p e r t y . c a l l ( i , " d e f a u l t " ) ? i . d e f a u l t : i } v a r f o = { e x p o r t s : { } } , c i = { } ; / * *
* @license React
* react-jsx-runtime.production.js
*
@@ -12,7 +12,7 @@
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var U h;function G y(){if(U h)return ci;U h=1;var i=Symbol.for("react.transitional.element"),r=Symbol.for("react.fragment");function h(f,g,A){var O=null;if(A!==void 0& & (O=""+A),g.key!==void 0& & (O=""+g.key),"key"in g){A={};for(var b in g)b!=="key"& & (A[b]=g[b])}else A=g;return g=A.ref,{$$typeof:i,type:f,key:O,ref:g!==void 0?g:null,props:A}}return ci.Fragment=r,ci.jsx=h,ci.jsxs=h,ci}var H h;function Vy(){return H h||(H h=1,fo.exports=G y()),fo.exports}var c=Vy(),mo={exports:{}},St={};/**
*/var H h;function Q y(){if(H h)return ci;H h=1;var i=Symbol.for("react.transitional.element"),r=Symbol.for("react.fragment");function h(f,g,A){var O=null;if(A!==void 0& & (O=""+A),g.key!==void 0& & (O=""+g.key),"key"in g){A={};for(var b in g)b!=="key"& & (A[b]=g[b])}else A=g;return g=A.ref,{$$typeof:i,type:f,key:O,ref:g!==void 0?g:null,props:A}}return ci.Fragment=r,ci.jsx=h,ci.jsxs=h,ci}var B h;function Vy(){return B h||(B h=1,fo.exports=Q y()),fo.exports}var c=Vy(),mo={exports:{}},St={};/**
* @license React
* react.production.js
*
@@ -20,7 +20,7 @@
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var Bh;function Qy(){if(Bh)return St;Bh=1;var i=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),h=Symbol.for("react.fragment"),f=Symbol.for("react.strict_mode"),g=Symbol.for("react.profiler"),A=Symbol.for("react.consumer"),O=Symbol.for("react.context"),b=Symbol.for("react.forward_ref"),E=Symbol.for("react.suspense"),M=Symbol.for("react.memo"),q=Symbol.for("react.lazy"),p=Symbol.for("react.activity"),H=Symbol.for("react.view_transition"),Z=Symbol.iterator;function F(y){return y===null||typeof y!="object"?null:(y=Z& & y[Z]||y["@@iterator"],typeof y=="function"?y:null)}var it={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},ft=Object.assign,Et={};function st(y,k,nt){this.props=y,this.context=k,this.refs=Et,this.updater=nt||it}st.prototype.isReactComponent={},st.prototype.setState=function(y,k){if(typeof y!="object"& & typeof y!="function"& & y!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,y,k,"setState")},st.prototype.forceUpdate=function(y){this.updater.enqueueForceUpdate(this,y,"forceUpdate")};function Ht(){}Ht.prototype=st.prototype;function V(y,k,nt){this.props=y,this.context=k,this.refs=Et,this.updater=nt||it}var ct=V.prototype=new Ht;ct.constructor=V,ft(ct,st.prototype),ct.isPureReactComponent=!0;var z=Array.isArray;function L(){}var at={H:null,A:null,T:null,S:null},jt=Object.prototype.hasOwnProperty;function Mt(y,k,nt){var et=nt.ref;return{$$typeof:i,type:y,key:k,ref:et!==void 0?et:null,props:nt}}function yt(y,k){return Mt(y.type,k,y.props)}function bt(y){return typeof y=="object"& & y!==null& & y.$$typeof===i}function B(y){var k={"=":"=0",":":"=2"};return"$"+y.replace(/[=:]/g,function(nt){return k[nt]})}var mt=/\/+/g;function Ct(y,k){return typeof y=="object"& & y!==null& & y.key!=null?B(""+y.key):k.toString(36)}function Q(y){switch(y.status){case"fulfilled":return y.value;case"rejected":throw y.reason;default:switch(typeof y.status=="string"?y.then(L,L):(y.status="pending",y.then(function(k){y.status==="pending"& & (y.status="fulfilled",y.value=k)},function(k){y.status==="pending"& & (y.status="rejected",y.reason=k)})),y.status){case"fulfilled":return y.value;case"rejected":throw y.reason}}throw y}function Y(y,k,nt,et,xt){var Nt=typeof y;(Nt==="undefined"||Nt==="boolean")&&(y=null); var Ot=!1;if(y===null)Ot=!0;else switch(Nt){case"bigint":case"string":case"number":Ot=!0;break;case"object":switch(y.$$typeof){case i:case r:Ot=!0;break;case q:return Ot=y._init,Y(Ot(y._payload),k,nt,et,xt)}}if(Ot)return xt=xt(y),Ot=et===""?"."+Ct(y,0):et,z(xt)?(nt="",Ot!=null& & (nt=Ot.replace(mt,"$& /")+"/"),Y(xt,k,nt,"",function(Ne){return Ne})):xt!=null&&(bt(xt)&&(xt=yt(xt,nt+(xt.key==null||y&&y.key===xt.key?"":(""+xt.key).replace(mt,"$&/")+"/")+Ot)),k.push(xt)),1; Ot=0;var W=et===""?".":et+":";if(z(y))for(var ht=0;ht< y.length ; ht + + ) et = y[ht],Nt=W+Ct(et,ht),Ot+=Y(et,k,nt,Nt,xt);else if ( ht = F(y),typeof ht = ="function")for(y=ht.call(y),ht=0;!(et=y.next()).done;)et=et.value,Nt=W+Ct(et,ht++),Ot+=Y(et,k,nt,Nt,xt);else if ( Nt = =="object"){if(typeof y . then = ="function")return Y ( Q ( y ) , k , nt , et , xt ) ; throw k = String(y),Error("Objects are not valid as a React child ( found: " + ( k = =="[object Object ] " ? " object with keys { " + Object . keys ( y ) . join ( " , " ) + " } " :k ) + " ) . If you meant to render a collection of children , use an array instead . " ) } return Ot } function J ( y , k , nt ) { if ( y = =null)return y ; var et = [],xt=0;return Y ( y , et , " " , " " , function ( Nt ) { return k . call ( nt , Nt , xt + + ) } ) , et } function dt ( y ) { if ( y . _status = ==-1){var k = y._result,nt=k();nt.then(function(et){(y._status===0||y._status===-1)&&(y._status=1,y._result=et,nt.status===void 0 & & ( nt . status = "fulfilled" , nt . value = et))},function(et){(y._status===0||y._status===-1)&&(y._status=2,y._result=et,nt.status===void 0 & & ( nt . status = "rejected" , nt . reason = et))}),y._status===-1&&(y._status=0,y._result=nt)}if(y._status===1)return y . _result . default ; throw y . _result } var gt = typeof reportError = ="function"?reportError:function(y){if(typeof window = ="object"&&typeof window . ErrorEvent = ="function"){var k = new window . ErrorEvent ( " error " , { bubbles: ! 0 , cancelable: ! 0 , message:typeof y = ="object"&&y!==null&&typeof y . message = ="string"?String(y.message):String(y),error:y});if(!window.dispatchEvent(k))return}else if ( typeof process = ="object"&&typeof process . emit = ="function"){process.emit("uncaughtException",y);return}console.error(y)};function ee ( y ) { var k = at.T,nt={};nt.types=k!==null?k.types:null,at.T=nt;try{var et = y(),xt=at.S;xt!==null&&xt(nt,et),typeof et = ="object"&&et!==null&&typeof et . then = ="function"&&et.then(L,gt)}catch(Nt){gt(Nt)}finally{k!==null&&nt.types!==null&&(k.types=nt.types),at.T=k}}function fe ( y ) { var k = at.T;if(k!==null){var nt = k.types;nt===null?k.types=[y]:nt.indexOf(y)===-1&&nt.push(y)}else ee ( fe . bind ( null , y ) ) } var X = {map:J,forEach:function(y,k,nt){J(y,function(){k.apply(this,arguments)},nt)},count:function(y){var k = 0;return J ( y , function ( ) { k + + } ) , k } , toAr Line truncated
*/var qh;function Xy(){if(qh)return St;qh=1;var i=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),h=Symbol.for("react.fragment"),f=Symbol.for("react.strict_mode"),g=Symbol.for("react.profiler"),A=Symbol.for("react.consumer"),O=Symbol.for("react.context"),b=Symbol.for("react.forward_ref"),N=Symbol.for("react.suspense"),M=Symbol.for("react.memo"),q=Symbol.for("react.lazy"),p=Symbol.for("react.activity"),H=Symbol.for("react.view_transition"),Z=Symbol.iterator;function F(y){return y===null||typeof y!="object"?null:(y=Z& & y[Z]||y["@@iterator"],typeof y=="function"?y:null)}var it={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},ft=Object.assign,Et={};function st(y,k,nt){this.props=y,this.context=k,this.refs=Et,this.updater=nt||it}st.prototype.isReactComponent={},st.prototype.setState=function(y,k){if(typeof y!="object"& & typeof y!="function"& & y!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,y,k,"setState")},st.prototype.forceUpdate=function(y){this.updater.enqueueForceUpdate(this,y,"forceUpdate")};function Ht(){}Ht.prototype=st.prototype;function Q(y,k,nt){this.props=y,this.context=k,this.refs=Et,this.updater=nt||it}var ct=Q.prototype=new Ht;ct.constructor=Q,ft(ct,st.prototype),ct.isPureReactComponent=!0;var z=Array.isArray;function L(){}var at={H:null,A:null,T:null,S:null},jt=Object.prototype.hasOwnProperty;function Mt(y,k,nt){var et=nt.ref;return{$$typeof:i,type:y,key:k,ref:et!==void 0?et:null,props:nt}}function vt(y,k){return Mt(y.type,k,y.props)}function bt(y){return typeof y=="object"& & y!==null& & y.$$typeof===i}function B(y){var k={"=":"=0",":":"=2"};return"$"+y.replace(/[=:]/g,function(nt){return k[nt]})}var dt=/\/+/g;function Ct(y,k){return typeof y=="object"& & y!==null& & y.key!=null?B(""+y.key):k.toString(36)}function V(y){switch(y.status){case"fulfilled":return y.value;case"rejected":throw y.reason;default:switch(typeof y.status=="string"?y.then(L,L):(y.status="pending",y.then(function(k){y.status==="pending"& & (y.status="fulfilled",y.value=k)},function(k){y.status==="pending"& & (y.status="rejected",y.reason=k)})),y.status){case"fulfilled":return y.value;case"rejected":throw y.reason}}throw y}function Y(y,k,nt,et,xt){var Nt=typeof y;(Nt==="undefined"||Nt==="boolean")&&(y=null); var Ot=!1;if(y===null)Ot=!0;else switch(Nt){case"bigint":case"string":case"number":Ot=!0;break;case"object":switch(y.$$typeof){case i:case r:Ot=!0;break;case q:return Ot=y._init,Y(Ot(y._payload),k,nt,et,xt)}}if(Ot)return xt=xt(y),Ot=et===""?"."+Ct(y,0):et,z(xt)?(nt="",Ot!=null& & (nt=Ot.replace(dt,"$& /")+"/"),Y(xt,k,nt,"",function(Ne){return Ne})):xt!=null&&(bt(xt)&&(xt=vt(xt,nt+(xt.key==null||y&&y.key===xt.key?"":(""+xt.key).replace(dt,"$&/")+"/")+Ot)),k.push(xt)),1; Ot=0;var W=et===""?".":et+":";if(z(y))for(var mt=0;mt< y.length ; mt + + ) et = y[mt],Nt=W+Ct(et,mt),Ot+=Y(et,k,nt,Nt,xt);else if ( mt = F(y),typeof mt = ="function")for(y=mt.call(y),mt=0;!(et=y.next()).done;)et=et.value,Nt=W+Ct(et,mt++),Ot+=Y(et,k,nt,Nt,xt);else if ( Nt = =="object"){if(typeof y . then = ="function")return Y ( V ( y ) , k , nt , et , xt ) ; throw k = String(y),Error("Objects are not valid as a React child ( found: " + ( k = =="[object Object ] " ? " object with keys { " + Object . keys ( y ) . join ( " , " ) + " } " :k ) + " ) . If you meant to render a collection of children , use an array instead . " ) } return Ot } function J ( y , k , nt ) { if ( y = =null)return y ; var et = [],xt=0;return Y ( y , et , " " , " " , function ( Nt ) { return k . call ( nt , Nt , xt + + ) } ) , et } function pt ( y ) { if ( y . _status = ==-1){var k = y._result,nt=k();nt.then(function(et){(y._status===0||y._status===-1)&&(y._status=1,y._result=et,nt.status===void 0 & & ( nt . status = "fulfilled" , nt . value = et))},function(et){(y._status===0||y._status===-1)&&(y._status=2,y._result=et,nt.status===void 0 & & ( nt . status = "rejected" , nt . reason = et))}),y._status===-1&&(y._status=0,y._result=nt)}if(y._status===1)return y . _result . default ; throw y . _result } var yt = typeof reportError = ="function"?reportError:function(y){if(typeof window = ="object"&&typeof window . ErrorEvent = ="function"){var k = new window . ErrorEvent ( " error " , { bubbles: ! 0 , cancelable: ! 0 , message:typeof y = ="object"&&y!==null&&typeof y . message = ="string"?String(y.message):String(y),error:y});if(!window.dispatchEvent(k))return}else if ( typeof process = ="object"&&typeof process . emit = ="function"){process.emit("uncaughtException",y);return}console.error(y)};function ee ( y ) { var k = at.T,nt={};nt.types=k!==null?k.types:null,at.T=nt;try{var et = y(),xt=at.S;xt!==null&&xt(nt,et),typeof et = ="object"&&et!==null&&typeof et . then = ="function"&&et.then(L,yt)}catch(Nt){yt(Nt)}finally{k!==null&&nt.types!==null&&(k.types=nt.types),at.T=k}}function fe ( y ) { var k = at.T;if(k!==null){var nt = k.types;nt===null?k.types=[y]:nt.indexOf(y)===-1&&nt.push(y)}else ee ( fe . bind ( null , y ) ) } var X = {map:J,forEach:function(y,k,nt){J(y,function(){k.apply(this,arguments)},nt)},count:function(y){var k = 0;return J ( y , function ( ) { k + + } ) , k } , toAr Line truncated
* @license React
* scheduler.production.js
*
@@ -28,7 +28,7 @@
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var Y h;function L y(){return Y h||(Y h=1,(function(i){function r(Q ,Y){var J=Q .length;Q .push(Y);t:for(;0< J ; ) { var dt = J-1 > >>1,g t=Q[d t];if(0< g ( gt , Y ) ) Q [ dt ] = Y , Q [ J ] = gt , J = d t;else break t } } function h ( Q ) { return Q . length = ==0?null:Q [0]}function f ( Q ) { if ( Q . length = ==0)return null ; var Y = Q [0],J=Q .pop();if(J!==Y){Q [0]=J;t:for(var dt = 0,g t=Q .length,ee=g t > >>1;d t< ee ; ) { var fe = 2*(d t+1)-1,X=Q [fe],y=fe+1,k=Q [y];if(0 > g(X,J))y< gt & & 0 > g(k,X)?(Q[d t]=k,Q [y]=J,d t=y):(Q[d t]=X,Q [fe]=J,d t=fe);else if(y< gt & & 0 > g(k,J))Q[d t]=k,Q [y]=J,d t=y;else break t}}return Y}function g(Q ,Y){var J=Q .sortIndex-Y.sortIndex;return J!==0?J:Q .id-Y.id}if(i.unstable_now=void 0,typeof performance=="object"& & typeof performance.now=="function"){var A=performance;i.unstable_now=function(){return A.now()}}else{var O=Date,b=O.now();i.unstable_now=function(){return O.now()-b}}var E =[],M=[],q=1,p=null,H=3,Z=!1,F=!1,it=!1,ft=!1,Et=typeof setTimeout=="function"?setTimeout:null,st=typeof clearTimeout=="function"?clearTimeout:null,Ht=typeof setImmediate< "u"?setImmediate:null;function V(Q ){for(var Y=h(M);Y!==null;){if(Y.callback===null)f(M);else if(Y.startTime< =Q )f(M),Y.sortIndex=Y.expirationTime,r(E ,Y);else break;Y=h(M)}}function ct(Q ){if(it=!1,V(Q ),!F)if(h(E )!==null)F=!0,z||(z=!0,bt());else{var Y=h(M);Y!==null& & Ct(ct,Y.startTime-Q )}}var z=!1,L=-1,at=5,jt=-1;function Mt(){return ft?!0:!(i.unstable_now()-jt< at ) } function yt ( ) { if ( ft = !1,z){var Q = i.unstable_now();jt=Q ;var Y = !0;try{t:{F=!1,it&&(it=!1,st(L),L=-1),Z=!0;var J = H;try{e:{for(V(Q ),p=h(E );p!==null&&!(p.expirationTime > Q &&Mt()); ){var d t=p.callback;if(typeof d t=="function"){p.callback=null,H=p.priorityLevel;var g t=d t(p.expirationTime< =Q );if(Q =i.unstable_now(),typeof g t=="function"){p.callback=g t,V(Q ),Y=!0;break e}p===h(E )& & f(E ),V(Q )}else f(E );p=h(E )}if(p!==null)Y=!0;else{var ee=h(M);ee!==null& & Ct(ct,ee.startTime-Q ),Y=!1}}break t}finally{p=null,H=J,Z=!1}Y=void 0}}finally{Y?bt():z=!1}}}var bt;if(typeof Ht=="function")bt=function(){Ht(y t)};else if(typeof MessageChannel< "u"){var B=new MessageChannel,m t=B.port2;B.port1.onmessage=y t,bt=function(){m t.postMessage(null)}}else bt=function(){Et(y t,0)};function Ct(Q ,Y){L=Et(function(){Q (i.unstable_now())},Y)}i.unstable_IdlePriority=5,i.unstable_ImmediatePriority=1,i.unstable_LowPriority=4,i.unstable_NormalPriority=3,i.unstable_Profiling=null,i.unstable_UserBlockingPriority=2,i.unstable_cancelCallback=function(Q ){Q .callback=null},i.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 " ) :at = 0<Q ?Math.floor(1e3/Q ):5},i.unstable_getCurrentPriorityLevel=function(){return H } , i . unstable_next = function(Q ){switch(H){case 1:case 2:case 3:var Y = 3;break;default:Y=H}var J = H;H=Y;try{return Q ( ) } finally { H = J}},i.unstable_requestPaint=function(){ft=!0},i.unstable_runWithPriority=function(Q ,Y){switch(Q ){case 1:case 2:case 3:case 4:case 5:break ; default:Q = 3}var J = H;H=Q ;try{return Y ( ) } finally { H = J}},i.unstable_scheduleCallback=function(Q ,Y,J){var dt = i.unstable_now();switch(typeof J = ="object"&&J!==null?(J=J.delay,J=typeof J = ="number"&&0<J?d t+J:d t):J=d t,Q ){case 1:var gt = -1;break;case 2:g t = 250;break;case 5:g t = 1073741823;break;case 4:g t = 1e4;break;default:g t=5e3}return gt = J+g t,Q ={id:q++,callback:Y,priorityLevel:Q ,startTime:J,expirationTime:g t,sortIndex:-1},J > d t?(Q .sortIndex=J,r(M,Q ),h(E )===null& & Q ===h(M)& & (it?(st(L),L=-1):it=!0,Ct(ct,J-d t))):(Q .sortIndex=g t,r(E,Q ),F||Z||(F=!0,z||(z=!0,bt()))),Q },i.unstable_shouldYield=Mt,i.unstable_wrapCallback=function(Q ){var Y=H;return function(){var J=H;H=Y;try{return Q .apply(this,arguments)}finally{H=J}}}})(yo)),yo}var G h;function Z y(){return G h||(G h=1,vo.exports=L y()),vo.exports}var go={exports:{}},ke={};/**
*/var G h;function Z y(){return G h||(G h=1,(function(i){function r(V ,Y){var J=V .length;V .push(Y);t:for(;0< J ; ) { var pt = J-1 > >>1,y t=V[p t];if(0< g ( yt , Y ) ) V [ pt ] = Y , V [ J ] = yt , J = p t;else break t } } function h ( V ) { return V . length = ==0?null:V [0]}function f ( V ) { if ( V . length = ==0)return null ; var Y = V [0],J=V .pop();if(J!==Y){V [0]=J;t:for(var pt = 0,y t=V .length,ee=y t > >>1;p t< ee ; ) { var fe = 2*(p t+1)-1,X=V [fe],y=fe+1,k=V [y];if(0 > g(X,J))y< yt & & 0 > g(k,X)?(V[p t]=k,V [y]=J,p t=y):(V[p t]=X,V [fe]=J,p t=fe);else if(y< yt & & 0 > g(k,J))V[p t]=k,V [y]=J,p t=y;else break t}}return Y}function g(V ,Y){var J=V .sortIndex-Y.sortIndex;return J!==0?J:V .id-Y.id}if(i.unstable_now=void 0,typeof performance=="object"& & typeof performance.now=="function"){var A=performance;i.unstable_now=function(){return A.now()}}else{var O=Date,b=O.now();i.unstable_now=function(){return O.now()-b}}var N =[],M=[],q=1,p=null,H=3,Z=!1,F=!1,it=!1,ft=!1,Et=typeof setTimeout=="function"?setTimeout:null,st=typeof clearTimeout=="function"?clearTimeout:null,Ht=typeof setImmediate< "u"?setImmediate:null;function Q(V ){for(var Y=h(M);Y!==null;){if(Y.callback===null)f(M);else if(Y.startTime< =V )f(M),Y.sortIndex=Y.expirationTime,r(N ,Y);else break;Y=h(M)}}function ct(V ){if(it=!1,Q(V ),!F)if(h(N )!==null)F=!0,z||(z=!0,bt());else{var Y=h(M);Y!==null& & Ct(ct,Y.startTime-V )}}var z=!1,L=-1,at=5,jt=-1;function Mt(){return ft?!0:!(i.unstable_now()-jt< at ) } function vt ( ) { if ( ft = !1,z){var V = i.unstable_now();jt=V ;var Y = !0;try{t:{F=!1,it&&(it=!1,st(L),L=-1),Z=!0;var J = H;try{e:{for(Q(V ),p=h(N );p!==null&&!(p.expirationTime > V &&Mt()); ){var p t=p.callback;if(typeof p t=="function"){p.callback=null,H=p.priorityLevel;var y t=p t(p.expirationTime< =V );if(V =i.unstable_now(),typeof y t=="function"){p.callback=y t,Q(V ),Y=!0;break e}p===h(N )& & f(N ),Q(V )}else f(N );p=h(N )}if(p!==null)Y=!0;else{var ee=h(M);ee!==null& & Ct(ct,ee.startTime-V ),Y=!1}}break t}finally{p=null,H=J,Z=!1}Y=void 0}}finally{Y?bt():z=!1}}}var bt;if(typeof Ht=="function")bt=function(){Ht(v t)};else if(typeof MessageChannel< "u"){var B=new MessageChannel,d t=B.port2;B.port1.onmessage=v t,bt=function(){d t.postMessage(null)}}else bt=function(){Et(v t,0)};function Ct(V ,Y){L=Et(function(){V (i.unstable_now())},Y)}i.unstable_IdlePriority=5,i.unstable_ImmediatePriority=1,i.unstable_LowPriority=4,i.unstable_NormalPriority=3,i.unstable_Profiling=null,i.unstable_UserBlockingPriority=2,i.unstable_cancelCallback=function(V ){V .callback=null},i.unstable_forceFrameRate=function(V ){0>V ||125< V ? console . error ( " forceFrameRate takes a positive int between 0 and 125 , forcing frame rates higher than 125 fps is not supported " ) :at = 0<V ?Math.floor(1e3/V ):5},i.unstable_getCurrentPriorityLevel=function(){return H } , i . unstable_next = function(V ){switch(H){case 1:case 2:case 3:var Y = 3;break;default:Y=H}var J = H;H=Y;try{return V ( ) } finally { H = J}},i.unstable_requestPaint=function(){ft=!0},i.unstable_runWithPriority=function(V ,Y){switch(V ){case 1:case 2:case 3:case 4:case 5:break ; default:V = 3}var J = H;H=V ;try{return Y ( ) } finally { H = J}},i.unstable_scheduleCallback=function(V ,Y,J){var pt = i.unstable_now();switch(typeof J = ="object"&&J!==null?(J=J.delay,J=typeof J = ="number"&&0<J?p t+J:p t):J=p t,V ){case 1:var yt = -1;break;case 2:y t = 250;break;case 5:y t = 1073741823;break;case 4:y t = 1e4;break;default:y t=5e3}return yt = J+y t,V ={id:q++,callback:Y,priorityLevel:V ,startTime:J,expirationTime:y t,sortIndex:-1},J > p t?(V .sortIndex=J,r(M,V ),h(N )===null& & V ===h(M)& & (it?(st(L),L=-1):it=!0,Ct(ct,J-p t))):(V .sortIndex=y t,r(N,V ),F||Z||(F=!0,z||(z=!0,bt()))),V },i.unstable_shouldYield=Mt,i.unstable_wrapCallback=function(V ){var Y=H;return function(){var J=H;H=Y;try{return V .apply(this,arguments)}finally{H=J}}}})(yo)),yo}var Q h;function K y(){return Q h||(Q h=1,vo.exports=Z y()),vo.exports}var go={exports:{}},ke={};/**
* @license React
* react-dom.production.js
*
@@ -36,7 +36,7 @@
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var Vh;function K y(){if(Vh)return ke;Vh=1;var i=jo();function r(q){var p="https://react.dev/errors/"+q;if(1< arguments.length ) { p + = " ? args [ ] = " + encodeURIComponent ( arguments [ 1 ] ) ; for ( var H = 2;H<arguments.length;H++)p+="&args[]="+encodeURIComponent(arguments[H])}return"Minified React error # " + q + " ; visit " + p + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings . " } function h ( ) { } var f = {d:{f:h,r:function(){throw Error ( r ( 522 ) ) } , D:h , C:h , L:h , m:h , X:h , S:h , M:h } , p:0 , findDOMNode:null } , g = Symbol.for("react.portal"),A=Symbol.for("react.recoverable"),O=Symbol.for("react.optimistic_key");function b ( q , p , H ) { var Z = 3<arguments.length&&arguments[3]!==void 0 ? arguments [ 3 ] :null ; return { $ $ typeof:g , key:Z = =null?null:Z===O?O:""+Z,children:q,containerInfo:p,implementation:H}}var E = i.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function M ( q , p ) { if ( q = =="font")return"";if(typeof p = ="string")return p = =="use-credentials"?p:""}return ke . __DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = f,ke.browser=function(q){return{$$typeof:A,_reason:q}},ke.createPortal=function(q,p){var H = 2<arguments.length&&arguments[2]!==void 0 ? arguments [ 2 ] :null ; if ( ! p | | p . nodeType ! = = 1 & & p . nodeType ! = = 9 & & p . nodeType ! = = 11 ) throw Error ( r ( 299 ) ) ; return b ( q , p , null , H ) } , ke . flushSync = function(q){var p = E .T,H=f.p;try{if(E .T=null,f.p=2,q)return q ( ) } finally { E . T = p,f.p=H,f.d.f()}},ke.preconnect=function(q,p){typeof q = ="string"&&(p?(p=p.crossOrigin,p=typeof p = ="string"?p==="use-credentials"?p:"":void 0 ) :p = null,f.d.C(q,p))},ke.prefetchDNS=function(q){typeof q = ="string"&&f.d.D(q)},ke.preinit=function(q,p){if(typeof q = ="string"&&p&&typeof p . as = ="string"){var H = p.as,Z=M(H,p.crossOrigin),F=typeof p . integrity = ="string"?p.integrity:void 0 , it = typeof p . fetchPriority = ="string"?p.fetchPriority:void 0 ; H = =="style"?f.d.S(q,typeof p . precedence = ="string"?p.precedence:void 0 , { crossOrigin:Z , integrity:F , fetchPriority:it } ) :H = =="script"&&f.d.X(q,{crossOrigin:Z,integrity:F,fetchPriority:it,nonce:typeof p . nonce = ="string"?p.nonce:void 0 } ) } } , ke . preinitModule = function(q,p){if(typeof q = ="string")if(typeof p = ="object"&&p!==null){if(p.as==null||p.as==="script"){var H = M(p.as,p.crossOrigin);f.d.M(q,{crossOrigin:H,integrity:typeof p . integrity = ="string"?p.integrity:void 0 , nonce:typeof p . nonce = ="string"?p.nonce:void 0 , fetchPriority:typeof p . fetchPriority = ="string"?p.fetchPriority:void 0 } ) } } else p = =null&&f.d.M(q)},ke.preload=function(q,p){if(typeof q = ="string"&&typeof p = ="object"&&p!==null&&typeof p . as = ="string"){var H = p.as,Z=M(H,p.crossOrigin);f.d.L(q,H,{crossOrigin:Z,integrity:typeof p . integrity = ="string"?p.integrity:void 0 , nonce:typeof p . nonce = ="string"?p.nonce:void 0 , type:typeof p . type = ="string"?p.type:void 0 , fetchPriority:typeof p . fetchPriority = ="string"?p.fetchPriority:void 0 , referrerPolicy:typeof p . referrerPolicy = ="string"?p.referrerPolicy:void 0 , imageSrcSet:typeof p . imageSrcSet = ="string"?p.imageSrcSet:void 0 , imageSizes:typeof p . imageSizes = ="string"?p.imageSizes:void 0 , media:typeof p . media = ="string"?p.media:void 0 } ) } } , ke . preloadModule = function(q,p){if(typeof q = ="string")if(p){var H = M(p.as,p.crossOrigin);f.d.m(q,{as:typeof p . as = ="string"&&p.as!=="script"?p.as:void 0 , crossOrigin:H , integrity:typeof p . integrity = ="string"?p.integrity:void 0 , nonce:typeof p . nonce = ="string"?p.nonce:void 0 , fetchPriority:typeof p . fetchPriority = ="string"?p.fetchPriority:void 0 } ) } else f . d . m ( q ) } , ke . requestFormReset = function(q){f.d.r(q)},ke.unstable_batchedUpdates=function(q,p){return q ( p ) } , ke . useFormState = function(q,p,H){return E . H . useFormState ( q , p , H ) } , ke . useFormStatus = function(){return E . H . useHostTransitionStatus ( ) } , ke . version = "19.3.1" , ke } var Qh ; function Jy ( ) { if ( Qh ) return go . exports ; Qh = 1;function i ( ) { if ( ! ( typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ > "u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(i)}catch(r){console.error(r)}}return i(),go.exports=K y(),go.exports}/**
*/var Vh;function J y(){if(Vh)return ke;Vh=1;var i=jo();function r(q){var p="https://react.dev/errors/"+q;if(1< arguments.length ) { p + = " ? args [ ] = " + encodeURIComponent ( arguments [ 1 ] ) ; for ( var H = 2;H<arguments.length;H++)p+="&args[]="+encodeURIComponent(arguments[H])}return"Minified React error # " + q + " ; visit " + p + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings . " } function h ( ) { } var f = {d:{f:h,r:function(){throw Error ( r ( 522 ) ) } , D:h , C:h , L:h , m:h , X:h , S:h , M:h } , p:0 , findDOMNode:null } , g = Symbol.for("react.portal"),A=Symbol.for("react.recoverable"),O=Symbol.for("react.optimistic_key");function b ( q , p , H ) { var Z = 3<arguments.length&&arguments[3]!==void 0 ? arguments [ 3 ] :null ; return { $ $ typeof:g , key:Z = =null?null:Z===O?O:""+Z,children:q,containerInfo:p,implementation:H}}var N = i.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function M ( q , p ) { if ( q = =="font")return"";if(typeof p = ="string")return p = =="use-credentials"?p:""}return ke . __DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = f,ke.browser=function(q){return{$$typeof:A,_reason:q}},ke.createPortal=function(q,p){var H = 2<arguments.length&&arguments[2]!==void 0 ? arguments [ 2 ] :null ; if ( ! p | | p . nodeType ! = = 1 & & p . nodeType ! = = 9 & & p . nodeType ! = = 11 ) throw Error ( r ( 299 ) ) ; return b ( q , p , null , H ) } , ke . flushSync = function(q){var p = N .T,H=f.p;try{if(N .T=null,f.p=2,q)return q ( ) } finally { N . T = p,f.p=H,f.d.f()}},ke.preconnect=function(q,p){typeof q = ="string"&&(p?(p=p.crossOrigin,p=typeof p = ="string"?p==="use-credentials"?p:"":void 0 ) :p = null,f.d.C(q,p))},ke.prefetchDNS=function(q){typeof q = ="string"&&f.d.D(q)},ke.preinit=function(q,p){if(typeof q = ="string"&&p&&typeof p . as = ="string"){var H = p.as,Z=M(H,p.crossOrigin),F=typeof p . integrity = ="string"?p.integrity:void 0 , it = typeof p . fetchPriority = ="string"?p.fetchPriority:void 0 ; H = =="style"?f.d.S(q,typeof p . precedence = ="string"?p.precedence:void 0 , { crossOrigin:Z , integrity:F , fetchPriority:it } ) :H = =="script"&&f.d.X(q,{crossOrigin:Z,integrity:F,fetchPriority:it,nonce:typeof p . nonce = ="string"?p.nonce:void 0 } ) } } , ke . preinitModule = function(q,p){if(typeof q = ="string")if(typeof p = ="object"&&p!==null){if(p.as==null||p.as==="script"){var H = M(p.as,p.crossOrigin);f.d.M(q,{crossOrigin:H,integrity:typeof p . integrity = ="string"?p.integrity:void 0 , nonce:typeof p . nonce = ="string"?p.nonce:void 0 , fetchPriority:typeof p . fetchPriority = ="string"?p.fetchPriority:void 0 } ) } } else p = =null&&f.d.M(q)},ke.preload=function(q,p){if(typeof q = ="string"&&typeof p = ="object"&&p!==null&&typeof p . as = ="string"){var H = p.as,Z=M(H,p.crossOrigin);f.d.L(q,H,{crossOrigin:Z,integrity:typeof p . integrity = ="string"?p.integrity:void 0 , nonce:typeof p . nonce = ="string"?p.nonce:void 0 , type:typeof p . type = ="string"?p.type:void 0 , fetchPriority:typeof p . fetchPriority = ="string"?p.fetchPriority:void 0 , referrerPolicy:typeof p . referrerPolicy = ="string"?p.referrerPolicy:void 0 , imageSrcSet:typeof p . imageSrcSet = ="string"?p.imageSrcSet:void 0 , imageSizes:typeof p . imageSizes = ="string"?p.imageSizes:void 0 , media:typeof p . media = ="string"?p.media:void 0 } ) } } , ke . preloadModule = function(q,p){if(typeof q = ="string")if(p){var H = M(p.as,p.crossOrigin);f.d.m(q,{as:typeof p . as = ="string"&&p.as!=="script"?p.as:void 0 , crossOrigin:H , integrity:typeof p . integrity = ="string"?p.integrity:void 0 , nonce:typeof p . nonce = ="string"?p.nonce:void 0 , fetchPriority:typeof p . fetchPriority = ="string"?p.fetchPriority:void 0 } ) } else f . d . m ( q ) } , ke . requestFormReset = function(q){f.d.r(q)},ke.unstable_batchedUpdates=function(q,p){return q ( p ) } , ke . useFormState = function(q,p,H){return N . H . useFormState ( q , p , H ) } , ke . useFormStatus = function(){return N . H . useHostTransitionStatus ( ) } , ke . version = "19.3.1" , ke } var Xh ; function Fy ( ) { if ( Xh ) return go . exports ; Xh = 1;function i ( ) { if ( ! ( typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ > "u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(i)}catch(r){console.error(r)}}return i(),go.exports=J y(),go.exports}/**
* @license React
* react-dom-client.production.js
*
@@ -44,37 +44,37 @@
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var Xh;function Fy(){if(Xh)return si;Xh=1;var i=Zy(),r=jo(),h=Jy();function f(t){var e="https://react.dev/errors/"+t;if(1< arguments.length ) { e + = " ? args [ ] = " + encodeURIComponent ( arguments [ 1 ] ) ; for ( var l = 2;l<arguments.length;l++)e+="&args[]="+encodeURIComponent(arguments[l])}return"Minified React error # " + t + " ; visit " + e + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings . " } function g ( t ) { return ! ( ! t | | t . nodeType ! = = 1 & & t . nodeType ! = = 9 & & t . nodeType ! = = 11 ) } function A ( t ) { for ( var e = t,l=e;l&&!l.alternate;)e=l,(e.flags&4098)!==0&&(t=e.return),l=e.return;for(;e.return;)e=e.return;return e . tag = ==3?t:null}function O ( t ) { if ( t . tag = ==13){var e = t.memoizedState;if(e===null&&(t=t.alternate,t!==null&&(e=t.memoizedState)),e!==null)return e . dehydrated } return null } function b ( t ) { if ( t . tag = ==31){var e = t.memoizedState;if(e===null&&(t=t.alternate,t!==null&&(e=t.memoizedState)),e!==null)return e . dehydrated } return null } function E ( t ) { if ( A ( t ) ! = = t ) throw Error ( f ( 188 ) ) } function M ( t ) { var e = t.alternate;if(!e){if(e=A(t),e===null)throw Error ( f ( 188 ) ) ; return e ! = = t ? null:t } for ( var l = t,a=e;;){var n = l.return;if(n===null)break;var u = n.alternate;if(u===null){if(a=n.return,a!==null){l=a;continue}break}if(n.child===u.child){for(u=n.child;u;){if(u===l)return E ( n ) , t ; if ( u = ==a)return E ( n ) , e ; u = u.sibling}throw Error ( f ( 188 ) ) } if ( l . return ! = = a . return ) l = n,a=u;else{for(var s = !1,o=n.child;o;){if(o===l){s=!0,l=n,a=u;break}if(o===a){s=!0,a=n,l=u;break}o=o.sibling}if(!s){for(o=u.child;o;){if(o===l){s=!0,l=u,a=n;break}if(o===a){s=!0,a=u,l=n;break}o=o.sibling}if(!s)throw Error ( f ( 189 ) ) } } if ( l . alternate ! = = a ) throw Error ( f ( 190 ) ) } if ( l . tag ! = = 3 ) throw Error ( f ( 188 ) ) ; return l . stateNode . current = ==l?t:e}function q ( t ) { var e = t.tag;if(e===5||e===26||e===27||e===6)return t ; for ( t = t.child;t!==null;){if(e=q(t),e!==null)return e ; t = t.sibling}return null } function p ( t , e , l , a , n , u ) { for ( ; t ! = = null ; ) { if ( ( t . tag = ==5||t.tag===27||t.tag===6)&&l(t,a,n,u)||(t.tag!==22||t.memoizedState===null)&&(e||t.tag!==5&&t.tag!==27)&&p(t.child,e,l,a,n,u))return!0;t=t.sibling}return!1}function H ( t ) { for ( t = t.return;t!==null;){if(t.tag===3||t.tag===5||t.tag===27)return t ; t = t.return}return null } function Z ( t ) { var e = !1;for(t=t.return;t!==null&&(t.tag===4&&(e=!0),!(t.tag===3||t.tag===5||t.tag===27));)t=t.return;return e } function F ( t ) { var e = [null,null],l=H(t);return l = ==null||it(e,t,l.child,{foundSelf:!1}),e}function it ( t , e , l , a ) { for ( ; l ! = = null ; ) { if ( l = ==e)a.foundSelf=!0;else if ( l . tag = ==5||l.tag===27||l.tag===6){if(a.foundSelf)return t [ 1 ] = l , ! 0 ; t [ 0 ] = l } else if ( ( l . tag ! = = 22 | | l . memoizedState = ==null)&&it(t,e,l.child,a))return!0;l=l.sibling}return!1}function ft ( t ) { switch ( t . tag ) { case 5:case 27:case 6:return t . stateNode ; case 3:return t . stateNode . containerInfo ; default:throw Error ( f ( 559 ) ) } } var Et = null,st=null;function Ht ( t , e , l ) { return t = ==l?!0:t===e?(Et=t,!0):!1}function V ( t , e , l ) { return t = ==l?(st=t,!1):t===e?(st!==null&&(Et=t),!0):!1}function ct ( t ) { if ( t = ==null)return null ; do t = t===null?null:t.return;while(t&&t.tag!==5&&t.tag!==27&&t.tag!==3);return t | | null } function z ( t , e , l ) { for ( var a = 0,n=t;n;n=l(n))a++;n=0;for(var u = e;u;u=l(u))n++;for(;0<a-n;)t=l(t),a--;for(;0<n-a;)e=l(e),n--;for(;a--;){if(t===e||e!==null&&t===e.alternate)return t ; t = l(t),e=l(e)}return null } var L = Object.assign,at=Symbol.for("react.element"),jt=Symbol.for("react.transitional.element"),Mt=Symbol.for("react.portal"),yt=Symbol.for("react.fragment"),bt=Symbol.for("react.strict_mode"),B=Symbol.for("react.profiler"),mt=Symbol.for("react.consumer"),Ct=Symbol.for("react.context"),Q=Symbol.for("react.forward_ref"),Y=Symbol.for("react.suspense"),J=Symbol.for("react.suspense_list"),dt=Symbol.for("react.memo"),gt=Symbol.for("react.lazy"),ee=Symbol.for("react.activity"),fe=Symbol.for("react.legacy_hidden"),X=Symbol.for("react.memo_cache_sentinel"),y=Symbol.for("react.view_transition"),k=Symbol.for("react.recoverable"),nt=Symbol.iterator;function et ( t ) { return t = ==null||typeof t ! = " object " ? null: ( t = nt&&t[nt]||t["@@iterator"],typeof t = ="function"?t:null)}var xt = Symbol.for("react.client.reference");function Nt ( t ) { if ( t = =null)return null ; if ( typeof t = ="function")return t . $ $ typeof = ==xt?null:t.displayName||t.name||null;if(typeof t = ="string")return t ; switch ( t ) { case yt:return " Fragment " ; case B:return " Profiler " ; case bt:return " StrictMode " ; case Y:return " Suspense " ; case J:return " SuspenseList " ; case ee:return " Activity " ; case y:return " ViewTransition " } if ( typeof t = ="object")switch(t.$$typeof){case Mt:return " Portal " ; case Ct:return t . displayName | | " Context " ; case mt:return ( t . _context . displayName | | " Context " ) + " . Consumer " ; case Q:var e = t.render;return t = t.displayName,t||(t=e.displayName||e.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case dt:return e = t.displayName||null,e!==null?e:Nt(t.type)||"Memo";case gt:e = t._payload,t=t._init;try{return Nt ( t ( e ) ) } catch { } } return null } var Ot = Array.isArray,W=r.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,ht=h.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Ne={pending:!1,data:null,method:null,action: Line truncated
*/var Lh;function Wy(){if(Lh)return si;Lh=1;var i=Ky(),r=jo(),h=Fy();function f(t){var e="https://react.dev/errors/"+t;if(1< arguments.length ) { e + = " ? args [ ] = " + encodeURIComponent ( arguments [ 1 ] ) ; for ( var l = 2;l<arguments.length;l++)e+="&args[]="+encodeURIComponent(arguments[l])}return"Minified React error # " + t + " ; visit " + e + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings . " } function g ( t ) { return ! ( ! t | | t . nodeType ! = = 1 & & t . nodeType ! = = 9 & & t . nodeType ! = = 11 ) } function A ( t ) { for ( var e = t,l=e;l&&!l.alternate;)e=l,(e.flags&4098)!==0&&(t=e.return),l=e.return;for(;e.return;)e=e.return;return e . tag = ==3?t:null}function O ( t ) { if ( t . tag = ==13){var e = t.memoizedState;if(e===null&&(t=t.alternate,t!==null&&(e=t.memoizedState)),e!==null)return e . dehydrated } return null } function b ( t ) { if ( t . tag = ==31){var e = t.memoizedState;if(e===null&&(t=t.alternate,t!==null&&(e=t.memoizedState)),e!==null)return e . dehydrated } return null } function N ( t ) { if ( A ( t ) ! = = t ) throw Error ( f ( 188 ) ) } function M ( t ) { var e = t.alternate;if(!e){if(e=A(t),e===null)throw Error ( f ( 188 ) ) ; return e ! = = t ? null:t } for ( var l = t,a=e;;){var n = l.return;if(n===null)break;var u = n.alternate;if(u===null){if(a=n.return,a!==null){l=a;continue}break}if(n.child===u.child){for(u=n.child;u;){if(u===l)return N ( n ) , t ; if ( u = ==a)return N ( n ) , e ; u = u.sibling}throw Error ( f ( 188 ) ) } if ( l . return ! = = a . return ) l = n,a=u;else{for(var s = !1,o=n.child;o;){if(o===l){s=!0,l=n,a=u;break}if(o===a){s=!0,a=n,l=u;break}o=o.sibling}if(!s){for(o=u.child;o;){if(o===l){s=!0,l=u,a=n;break}if(o===a){s=!0,a=u,l=n;break}o=o.sibling}if(!s)throw Error ( f ( 189 ) ) } } if ( l . alternate ! = = a ) throw Error ( f ( 190 ) ) } if ( l . tag ! = = 3 ) throw Error ( f ( 188 ) ) ; return l . stateNode . current = ==l?t:e}function q ( t ) { var e = t.tag;if(e===5||e===26||e===27||e===6)return t ; for ( t = t.child;t!==null;){if(e=q(t),e!==null)return e ; t = t.sibling}return null } function p ( t , e , l , a , n , u ) { for ( ; t ! = = null ; ) { if ( ( t . tag = ==5||t.tag===27||t.tag===6)&&l(t,a,n,u)||(t.tag!==22||t.memoizedState===null)&&(e||t.tag!==5&&t.tag!==27)&&p(t.child,e,l,a,n,u))return!0;t=t.sibling}return!1}function H ( t ) { for ( t = t.return;t!==null;){if(t.tag===3||t.tag===5||t.tag===27)return t ; t = t.return}return null } function Z ( t ) { var e = !1;for(t=t.return;t!==null&&(t.tag===4&&(e=!0),!(t.tag===3||t.tag===5||t.tag===27));)t=t.return;return e } function F ( t ) { var e = [null,null],l=H(t);return l = ==null||it(e,t,l.child,{foundSelf:!1}),e}function it ( t , e , l , a ) { for ( ; l ! = = null ; ) { if ( l = ==e)a.foundSelf=!0;else if ( l . tag = ==5||l.tag===27||l.tag===6){if(a.foundSelf)return t [ 1 ] = l , ! 0 ; t [ 0 ] = l } else if ( ( l . tag ! = = 22 | | l . memoizedState = ==null)&&it(t,e,l.child,a))return!0;l=l.sibling}return!1}function ft ( t ) { switch ( t . tag ) { case 5:case 27:case 6:return t . stateNode ; case 3:return t . stateNode . containerInfo ; default:throw Error ( f ( 559 ) ) } } var Et = null,st=null;function Ht ( t , e , l ) { return t = ==l?!0:t===e?(Et=t,!0):!1}function Q ( t , e , l ) { return t = ==l?(st=t,!1):t===e?(st!==null&&(Et=t),!0):!1}function ct ( t ) { if ( t = ==null)return null ; do t = t===null?null:t.return;while(t&&t.tag!==5&&t.tag!==27&&t.tag!==3);return t | | null } function z ( t , e , l ) { for ( var a = 0,n=t;n;n=l(n))a++;n=0;for(var u = e;u;u=l(u))n++;for(;0<a-n;)t=l(t),a--;for(;0<n-a;)e=l(e),n--;for(;a--;){if(t===e||e!==null&&t===e.alternate)return t ; t = l(t),e=l(e)}return null } var L = Object.assign,at=Symbol.for("react.element"),jt=Symbol.for("react.transitional.element"),Mt=Symbol.for("react.portal"),vt=Symbol.for("react.fragment"),bt=Symbol.for("react.strict_mode"),B=Symbol.for("react.profiler"),dt=Symbol.for("react.consumer"),Ct=Symbol.for("react.context"),V=Symbol.for("react.forward_ref"),Y=Symbol.for("react.suspense"),J=Symbol.for("react.suspense_list"),pt=Symbol.for("react.memo"),yt=Symbol.for("react.lazy"),ee=Symbol.for("react.activity"),fe=Symbol.for("react.legacy_hidden"),X=Symbol.for("react.memo_cache_sentinel"),y=Symbol.for("react.view_transition"),k=Symbol.for("react.recoverable"),nt=Symbol.iterator;function et ( t ) { return t = ==null||typeof t ! = " object " ? null: ( t = nt&&t[nt]||t["@@iterator"],typeof t = ="function"?t:null)}var xt = Symbol.for("react.client.reference");function Nt ( t ) { if ( t = =null)return null ; if ( typeof t = ="function")return t . $ $ typeof = ==xt?null:t.displayName||t.name||null;if(typeof t = ="string")return t ; switch ( t ) { case vt:return " Fragment " ; case B:return " Profiler " ; case bt:return " StrictMode " ; case Y:return " Suspense " ; case J:return " SuspenseList " ; case ee:return " Activity " ; case y:return " ViewTransition " } if ( typeof t = ="object")switch(t.$$typeof){case Mt:return " Portal " ; case Ct:return t . displayName | | " Context " ; case dt:return ( t . _context . displayName | | " Context " ) + " . Consumer " ; case V:var e = t.render;return t = t.displayName,t||(t=e.displayName||e.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case pt:return e = t.displayName||null,e!==null?e:Nt(t.type)||"Memo";case yt:e = t._payload,t=t._init;try{return Nt ( t ( e ) ) } catch { } } return null } var Ot = Array.isArray,W=r.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,mt=h.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Ne={pending:!1,data:null,method:null,action: Line truncated
at`)?" (< anonymous > )":-1< l.stack.indexOf ( " @ " ) ? " @ unknown:0:0 " : " " } return `
`+xl+t+D l}var me=!1;function il(t,e){if(!t||me)return"";me=!0;var l=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var a={DetermineComponentFrameRoot:function(){try{if(e){var D =function(){throw Error()};if(Object.defineProperty(D .prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"& & Reflect.construct){try{Reflect.construct(D ,[])}catch(K){var S=K}Reflect.construct(t,[],D )}else{try{D .call()}catch(K){S=K}D =!1;try{var _=Object.getOwnPropertyDescriptor(t.prototype,"props");Object.defineProperty(t.prototype,"props",{configurable:!0,set:function(){throw Error()}}),D =!0,new t}finally{D & & (_!==void 0?Object.defineProperty(t.prototype,"props",_):delete t.prototype.props)}}}else{try{throw Error()}catch(K){S=K}(D =t())& & typeof D .catch=="function"& & D .catch(function(){})}}catch(K){if(K& & S& & typeof K.stack=="string")return[K.stack,S.stack]}return[null,null]}};a.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var n=Object.getOwnPropertyDescriptor(a.DetermineComponentFrameRoot,"name");n&&n.configurable&&Object.defineProperty(a.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"}); var u=a.DetermineComponentFrameRoot(),s=u[0],o=u[1];if(s& & o){var m=s.split(`
`+xl+t+R l}var me=!1;function il(t,e){if(!t||me)return"";me=!0;var l=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var a={DetermineComponentFrameRoot:function(){try{if(e){var R =function(){throw Error()};if(Object.defineProperty(R .prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"& & Reflect.construct){try{Reflect.construct(R ,[])}catch(K){var S=K}Reflect.construct(t,[],R )}else{try{R .call()}catch(K){S=K}R =!1;try{var _=Object.getOwnPropertyDescriptor(t.prototype,"props");Object.defineProperty(t.prototype,"props",{configurable:!0,set:function(){throw Error()}}),R =!0,new t}finally{R & & (_!==void 0?Object.defineProperty(t.prototype,"props",_):delete t.prototype.props)}}}else{try{throw Error()}catch(K){S=K}(R =t())& & typeof R .catch=="function"& & R .catch(function(){})}}catch(K){if(K& & S& & typeof K.stack=="string")return[K.stack,S.stack]}return[null,null]}};a.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var n=Object.getOwnPropertyDescriptor(a.DetermineComponentFrameRoot,"name");n&&n.configurable&&Object.defineProperty(a.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"}); var u=a.DetermineComponentFrameRoot(),s=u[0],o=u[1];if(s& & o){var m=s.split(`
`),j=o.split(`
`);for(n=a=0;a< m.length & & ! m [ a ] . includes ( " DetermineComponentFrameRoot " ) ; ) a + + ; for ( ; n < j . length & & ! j [ n ] . includes ( " DetermineComponentFrameRoot " ) ; ) n + + ; if ( a = ==m.length||n===j.length)for(a=m.length-1,n=j.length-1;1<=a&&0<=n&&m[a]!==j[n];)n--;for(;1<=a&&0<=n;a--,n--)if(m[a]!==j[n]){if(a!==1||n!==1)do if ( a-- , n-- , 0 > n||m[a]!==j[n]){var C=`
`+m[a].replace(" at new "," at ");return t.displayName&&C.includes("<anonymous>")&&(C=C.replace("<anonymous>",t.displayName)),C}while(1<=a&&0<=n); break}}}finally{me=!1,Error.prepareStackTrace=l}return(l=t?t.displayName||t.name:"")?de(l):""}function kl(t,e){switch(t.tag){case 26:case 27:case 5:return de(t.type);case 16:return de("Lazy");case 13:return t.child!==e& & e!==null?de("Suspense Fallback"):de("Suspense");case 19:return de("SuspenseList");case 0:case 15:return il(t.type,!1);case 11:return il(t.type.render,!1);case 1:return il(t.type,!0);case 31:return de("Activity");case 30:return de("ViewTransition");default:return""}}function Fl(t){try{var e="",l=null;do e+=kl(t,l),l=t,t=t.return;while(t);return e}catch(a){return`
Error generating stack: `+a.message+`
`+a.stack}}var ue=Object.prototype.hasOwnProperty,jl=i.unstable_scheduleCallback,wl=i.unstable_cancelCallback,Ul=i.unstable_shouldYield,cl=i.unstable_requestPaint,Xt=i.unstable_now,bl=i.unstable_getCurrentPriorityLevel,Tl=i.unstable_ImmediatePriority,_l=i.unstable_UserBlockingPriority,Se=i.unstable_NormalPriority,Wl=i.unstable_LowPriority,$l=i.unstable_IdlePriority,Il=i.log,du=i.unstable_setDisableYieldValue,Pl=null,Ce=null;function sl(t){if(typeof Il=="function"& & du(t),Ce& & typeof Ce.setStrictMode=="function")try{Ce.setStrictMode(Pl,t)}catch{}}var Ae=Math.clz32?Math.clz32:vu,mu=Math.log,hu=Math.LN2;function vu(t){return t>>>=0,t===0?32:31-(mu(t)/hu|0)|0}var pa=256,Sa=262144,xa=4194304;function U(t){var e=t&42; if(e!==0)return e;switch(t& -t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return t&-t; case 262144:case 524288:case 1048576:case 2097152:return t&3932160; case 4194304:case 8388608:case 16777216:case 33554432:return t&62914560; case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return t}}function w(t,e,l){var a=t.pendingLanes;if(a===0)return 0;var n=0,u=t.suspendedLanes,s=t.pingedLanes;t=t.warmLanes;var o=a&134217727; return o!==0?(a=o& ~u,a!==0?n=U(a):(s& =o,s!==0?n=U(s):l||(l=o& ~t,l!==0& & (n=U(l))))):(o=a& ~u,o!==0?n=U(o):s!==0?n=U(s):l||(l=a& ~t,l!==0& & (n=U(l)))),n===0?0:e!==0& & e!==n& & (e& u)===0& & (u=n& -n,l=e& -e,u>=l||u===32& & (l& 4194048)!==0)?e:n}function P(t,e){return(t.pendingLanes& ~(t.suspendedLanes& ~t.pingedLanes)& e)===0}function N(t,e){(e&8)!==0&&(e|=e&32); var l=t.entangledLanes;if(l!==0)for(t=t.entanglements,l&=e; 0< l ; ) { var a = 31-Ae(l),n=1<<a;e|=t[a],l&=~n}return e } function G ( t , e ) { switch ( t ) { case 1:case 2:case 4:case 8:case 64:return e + 250 ; case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e + 5e3 ; case 4194304:case 8388608:case 16777216:case 33554432:return-1 ; case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1 ; default:return-1 } } function lt ( ) { var t = xa;return xa < < = 1 , ( xa & 62914560 ) = = = 0 & & ( xa = 4194304),t}function Ut ( t ) { for ( var e = [],l=0;31 > l;l++)e.push(t);return e}function pt(t,e){t.pendingLanes|=e,e!==268435456& & (t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0)}function $t(t,e,l,a,n,u){var s=t.pendingLanes;t.pendingLanes=l,t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0,t.expiredLanes&=l,t.entangledLanes&=l,t.errorRecoveryDisabledLanes&=l,t.shellSuspendCounter=0; var o=t.entanglements,m=t.expirationTimes,j=t.hiddenUpdates;for(l=s&~l; 0< l ; ) { var C = 31-Ae(l),D=1<<C;o[C]=0,m[C]=-1;var S = j[C];if(S!==null)for(j[C]=null,C=0;C<S.length;C++){var _ = S[C];_!==null&&(_.lane&=-536870913)}l&=~D}a!==0&&rl(t,a,0),u!==0&&n===0&&t.tag!==0&&(t.suspendedLanes|=u&~(s&~e))}function rl ( t , e , l ) { t . pendingLanes | = e , t . suspendedLanes & = ~ e ; var a = 31-Ae(e);t.entangledLanes|=e,t.entanglements[a]=t.entanglements[a]|1073741824|l&261930}function ja ( t , e ) { var l = t.entangledLanes|=e;for(t=t.entanglements;l;){var a = 31-Ae(l),n=1<<a;n&e|t[a]&e&&(t[a]|=e),l&=~n}}function di ( t , e ) { var l = e&-e;return l = (l&42)!==0?1:yu(l),(l&(t.suspendedLanes|e))!==0?0:l}function yu ( t ) { switch ( t ) { case 2:t = 1;break;case 8:t = 4;break;case 32:t = 16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:t = 128;break;case 268435456:t = 134217728;break;default:t=0}return t } function Fa ( t ) { return t & = -t , 2 < t ? 8 < t ? ( t & 134217727 ) ! = = 0 ? 32:268435456:8:2 } function ta ( ) { var t = ht.p;return t ! = = 0 ? t: ( t = window.event,t===void 0 ? 32:Mh ( t . type ) ) } function ea ( t , e ) { var l = ht.p;try{return ht . p = t,e()}finally{ht.p=l}}var El = Math.random().toString(36).slice(2),he="__reactFiber$"+El,It="__reactProps$"+El,xe="__reactContainer$"+El,mi="__reactEvents$"+El,av="__reactListeners$"+El,nv="__reactHandles$"+El,_o="__reactResources$"+El,gu="__reactMarker$"+El,hi="__reactLoad$"+El;function vi ( t ) { delete t [ he ] , delete t [ It ] , delete t [ av ] , delete t [ nv ] } function Wa ( t ) { var e ; if ( e = t[he])return e ; for ( var l = t.parentNode;l;){if(e=l[xe]||l[he]){if(l=e.alternate,e.child!==null||l!==null&&l.child!==null)for(t=rh(t);t!==null;){if(l=t[he])return l ; t = rh(t)}return e } t = l,l=t.parentNode}return null } function xn ( t ) { if ( t = t[he]||t[xe]){var e = t.tag;if(e===5||e===6||e===13||e===31||e===26||e===27||e===3)return t } return null } function pu ( t ) { var e = t.tag;if(e===5||e===26||e===27||e===6)return t . stateNode ; throw Error ( f ( 33 ) ) } function jn ( t ) { var e = t[_o];return e | | ( e = t[_o]={hoistableStyles:new Map , hoistableScripts:new Map } ) , e } function be ( t ) { t [ gu ] = ! 0 } function Eo ( t ) { t [ hi ] = void 0 } var No = new Set , Co = {};function $ a ( t , e ) { bn ( t , e ) , bn ( t + " Capture " , e ) } function bn ( t , e ) Line truncated
`).replace(L0,"")}function Qm(t,e){return e=Vm(e),Vm(t)===e}function Kt(t,e,l,a,n,u){switch(l){case"children":if(typeof a=="string")e==="body"||e==="textarea"&&a===""||_n(t,a); else if(typeof a=="number"||typeof a=="bigint")e!=="body"&&_n(t,""+a); else return;break;case"className":gi(t,"class",a);break;case"tabIndex":gi(t,"tabindex",a);break;case"dir":case"role":case"viewBox":case"width":case"height":gi(t,l,a);break;case"style":Ho(t,a,u);return;case"data":if(e!=="object"){gi(t,"data",a);break}case"src":case"href":if(a===""&&(e!=="a"||l!=="href")){t.removeAttribute(l); break}if(a==null||typeof a=="function"||typeof a=="symbol"||typeof a=="boolean"){t.removeAttribute(l);break}a=pi(a),t.setAttribute(l,a);break;case"action":case"formAction":if(typeof a=="function"){t.setAttribute(l,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof u=="function"&&(l==="formAction"?(e!=="input"&&Kt(t,e,"name",n.name,n,null),Kt(t,e,"formEncType",n.formEncType,n,null),Kt(t,e,"formMethod",n.formMethod,n,null),Kt(t,e,"formTarget",n.formTarget,n,null)):(Kt(t,e,"encType",n.encType,n,null),Kt(t,e,"method",n.method,n,null),Kt(t,e,"target",n.target,n,null))); if(a==null||typeof a=="symbol"||typeof a=="boolean"){t.removeAttribute(l);break}a=pi(a),t.setAttribute(l,a);break;case"onClick":a!=null&&(t.onclick=Hl); return;case"onScroll":a!=null&&Dt("scroll",t); return;case"onScrollEnd":a!=null&&Dt("scrollend",t); return;case"dangerouslySetInnerHTML":if(a!=null){if(typeof a!="object"||!("__html"in a))throw Error(f(61));if(l=a.__html,l!=null){if(n.children!=null)throw Error(f(60));(u!=null?u.__html:void 0)!==l&&(t.innerHTML=l)}}break; case"multiple":t.multiple=a& & typeof a!="function"& & typeof a!="symbol";break;case"muted":t.muted=a& & typeof a!="function"& & typeof a!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(a==null||typeof a=="function"||typeof a=="boolean"||typeof a=="symbol"){t.removeAttribute("xlink:href");break}l=pi(a),t.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",l);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":a!=null& & typeof a!="function"& & typeof a!="symbol"?t.setAttribute(l,a):t.removeAttribute(l);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"credentialless":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":a& & typeof a!="function"& & typeof a!="symbol"?t.setAttribute(l,""):t.removeAttribute(l);break;case"capture":case"download":a===!0?t.setAttribute(l,""):a!==!1& & a!=null& & typeof a!="function"& & typeof a!="symbol"?t.setAttribute(l,a):t.removeAttribute(l);break;case"cols":case"rows":case"size":case"span":a!=null& & typeof a!="function"& & typeof a!="symbol"&&!isNaN(a)&&1<=a?t.setAttribute(l,a):t.removeAttribute(l); break;case"rowSpan":case"start":a==null||typeof a=="function"||typeof a=="symbol"||isNaN(a)?t.removeAttribute(l):t.setAttribute(l,a);break;case"popover":Dt("beforetoggle",t),Dt("toggle",t),yi(t,"popover",a);break;case"xlinkActuate":la(t,"http://www.w3.org/1999/xlink","xlink:actuate",a);break;case"xlinkArcrole":la(t,"http://www.w3.org/1999/xlink","xlink:arcrole",a);break;case"xlinkRole":la(t,"http://www.w3.org/1999/xlink","xlink:role",a);break;case"xlinkShow":la(t,"http://www.w3.org/1999/xlink","xlink:show",a);break;case"xlinkTitle":la(t,"http://www.w3.org/1999/xlink","xlink:title",a);break;case"xlinkType":la(t,"http://www.w3.org/1999/xlink","xlink:type",a);break;case"xmlBase":la(t,"http://www.w3.org/XML/1998/namespace","xml:base",a);break;case"xmlLang":la(t,"http://www.w3.org/XML/1998/namespace","xml:lang",a);break;case"xmlSpace":la(t,"http://www.w3.org/XML/1998/namespace","xml:space",a);break;case"is":yi(t,"is",a);break;case"innerText":case"textContent":return;default:if(!(2< l.length ) | | l [ 0 ] ! = = " o " & & l [ 0 ] ! = = " O " | | l [ 1 ] ! = = " n " & & l [ 1 ] ! = = " N " ) l = ov.get(l)||l,yi(t,l,a);else return } qt = !0}function Vr ( t , e , l , a , n , u ) { switch ( l ) { case " style " :Ho ( t , a , u ) ; return ; case " dangerouslySetInnerHTML " :if ( a ! = null ) { if ( typeof a ! = " object " | | ! ( " __html " in a ) ) throw Error ( f ( 61 ) ) ; if ( l = a.__html,l!=null){if(n.children!=null)throw Error ( f ( 60 ) ) ; ( u ! = null ? u . __html:void 0 ) ! = = l & & ( t . innerHTML = l)}}break;case"children":if(typeof a = ="string")_n(t,a);else if ( typeof a = ="number"||typeof a = ="bigint")_n(t,""+a);else return ; break ; case " onScroll " :a ! = null & & Dt ( " scroll " , t ) ; return ; case " onScrollEnd " :a ! = null & & Dt ( " scro Line truncated
`+a.stack}}var ue=Object.prototype.hasOwnProperty,jl=i.unstable_scheduleCallback,wl=i.unstable_cancelCallback,Ul=i.unstable_shouldYield,cl=i.unstable_requestPaint,Xt=i.unstable_now,bl=i.unstable_getCurrentPriorityLevel,Tl=i.unstable_ImmediatePriority,_l=i.unstable_UserBlockingPriority,Se=i.unstable_NormalPriority,Wl=i.unstable_LowPriority,$l=i.unstable_IdlePriority,Il=i.log,du=i.unstable_setDisableYieldValue,Pl=null,Ce=null;function sl(t){if(typeof Il=="function"& & du(t),Ce& & typeof Ce.setStrictMode=="function")try{Ce.setStrictMode(Pl,t)}catch{}}var Ae=Math.clz32?Math.clz32:vu,mu=Math.log,hu=Math.LN2;function vu(t){return t>>>=0,t===0?32:31-(mu(t)/hu|0)|0}var pa=256,Sa=262144,xa=4194304;function U(t){var e=t&42; if(e!==0)return e;switch(t& -t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return t&-t; case 262144:case 524288:case 1048576:case 2097152:return t&3932160; case 4194304:case 8388608:case 16777216:case 33554432:return t&62914560; case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return t}}function w(t,e,l){var a=t.pendingLanes;if(a===0)return 0;var n=0,u=t.suspendedLanes,s=t.pingedLanes;t=t.warmLanes;var o=a&134217727; return o!==0?(a=o& ~u,a!==0?n=U(a):(s& =o,s!==0?n=U(s):l||(l=o& ~t,l!==0& & (n=U(l))))):(o=a& ~u,o!==0?n=U(o):s!==0?n=U(s):l||(l=a& ~t,l!==0& & (n=U(l)))),n===0?0:e!==0& & e!==n& & (e& u)===0& & (u=n& -n,l=e& -e,u>=l||u===32& & (l& 4194048)!==0)?e:n}function P(t,e){return(t.pendingLanes& ~(t.suspendedLanes& ~t.pingedLanes)& e)===0}function E(t,e){(e&8)!==0&&(e|=e&32); var l=t.entangledLanes;if(l!==0)for(t=t.entanglements,l&=e; 0< l ; ) { var a = 31-Ae(l),n=1<<a;e|=t[a],l&=~n}return e } function G ( t , e ) { switch ( t ) { case 1:case 2:case 4:case 8:case 64:return e + 250 ; case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e + 5e3 ; case 4194304:case 8388608:case 16777216:case 33554432:return-1 ; case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1 ; default:return-1 } } function lt ( ) { var t = xa;return xa < < = 1 , ( xa & 62914560 ) = = = 0 & & ( xa = 4194304),t}function Ut ( t ) { for ( var e = [],l=0;31 > l;l++)e.push(t);return e}function gt(t,e){t.pendingLanes|=e,e!==268435456& & (t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0)}function $t(t,e,l,a,n,u){var s=t.pendingLanes;t.pendingLanes=l,t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0,t.expiredLanes&=l,t.entangledLanes&=l,t.errorRecoveryDisabledLanes&=l,t.shellSuspendCounter=0; var o=t.entanglements,m=t.expirationTimes,j=t.hiddenUpdates;for(l=s&~l; 0< l ; ) { var C = 31-Ae(l),R=1<<C;o[C]=0,m[C]=-1;var S = j[C];if(S!==null)for(j[C]=null,C=0;C<S.length;C++){var _ = S[C];_!==null&&(_.lane&=-536870913)}l&=~R}a!==0&&rl(t,a,0),u!==0&&n===0&&t.tag!==0&&(t.suspendedLanes|=u&~(s&~e))}function rl ( t , e , l ) { t . pendingLanes | = e , t . suspendedLanes & = ~ e ; var a = 31-Ae(e);t.entangledLanes|=e,t.entanglements[a]=t.entanglements[a]|1073741824|l&261930}function ja ( t , e ) { var l = t.entangledLanes|=e;for(t=t.entanglements;l;){var a = 31-Ae(l),n=1<<a;n&e|t[a]&e&&(t[a]|=e),l&=~n}}function di ( t , e ) { var l = e&-e;return l = (l&42)!==0?1:yu(l),(l&(t.suspendedLanes|e))!==0?0:l}function yu ( t ) { switch ( t ) { case 2:t = 1;break;case 8:t = 4;break;case 32:t = 16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:t = 128;break;case 268435456:t = 134217728;break;default:t=0}return t } function Fa ( t ) { return t & = -t , 2 < t ? 8 < t ? ( t & 134217727 ) ! = = 0 ? 32:268435456:8:2 } function ta ( ) { var t = mt.p;return t ! = = 0 ? t: ( t = window.event,t===void 0 ? 32:Oh ( t . type ) ) } function ea ( t , e ) { var l = mt.p;try{return mt . p = t,e()}finally{mt.p=l}}var El = Math.random().toString(36).slice(2),he="__reactFiber$"+El,It="__reactProps$"+El,xe="__reactContainer$"+El,mi="__reactEvents$"+El,nv="__reactListeners$"+El,uv="__reactHandles$"+El,Eo="__reactResources$"+El,gu="__reactMarker$"+El,hi="__reactLoad$"+El;function vi ( t ) { delete t [ he ] , delete t [ It ] , delete t [ nv ] , delete t [ uv ] } function Wa ( t ) { var e ; if ( e = t[he])return e ; for ( var l = t.parentNode;l;){if(e=l[xe]||l[he]){if(l=e.alternate,e.child!==null||l!==null&&l.child!==null)for(t=oh(t);t!==null;){if(l=t[he])return l ; t = oh(t)}return e } t = l,l=t.parentNode}return null } function xn ( t ) { if ( t = t[he]||t[xe]){var e = t.tag;if(e===5||e===6||e===13||e===31||e===26||e===27||e===3)return t } return null } function pu ( t ) { var e = t.tag;if(e===5||e===26||e===27||e===6)return t . stateNode ; throw Error ( f ( 33 ) ) } function jn ( t ) { var e = t[Eo];return e | | ( e = t[Eo]={hoistableStyles:new Map , hoistableScripts:new Map } ) , e } function be ( t ) { t [ gu ] = ! 0 } function No ( t ) { t [ hi ] = void 0 } var Co = new Set , Ao = {};function $ a ( t , e ) { bn ( t , e ) , bn ( t + " Capture " , e ) } function bn ( t , e ) Line truncated
`).replace(Z0,"")}function Xm(t,e){return e=Vm(e),Vm(t)===e}function Kt(t,e,l,a,n,u){switch(l){case"children":if(typeof a=="string")e==="body"||e==="textarea"&&a===""||_n(t,a); else if(typeof a=="number"||typeof a=="bigint")e!=="body"&&_n(t,""+a); else return;break;case"className":gi(t,"class",a);break;case"tabIndex":gi(t,"tabindex",a);break;case"dir":case"role":case"viewBox":case"width":case"height":gi(t,l,a);break;case"style":Bo(t,a,u);return;case"data":if(e!=="object"){gi(t,"data",a);break}case"src":case"href":if(a===""&&(e!=="a"||l!=="href")){t.removeAttribute(l); break}if(a==null||typeof a=="function"||typeof a=="symbol"||typeof a=="boolean"){t.removeAttribute(l);break}a=pi(a),t.setAttribute(l,a);break;case"action":case"formAction":if(typeof a=="function"){t.setAttribute(l,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof u=="function"&&(l==="formAction"?(e!=="input"&&Kt(t,e,"name",n.name,n,null),Kt(t,e,"formEncType",n.formEncType,n,null),Kt(t,e,"formMethod",n.formMethod,n,null),Kt(t,e,"formTarget",n.formTarget,n,null)):(Kt(t,e,"encType",n.encType,n,null),Kt(t,e,"method",n.method,n,null),Kt(t,e,"target",n.target,n,null))); if(a==null||typeof a=="symbol"||typeof a=="boolean"){t.removeAttribute(l);break}a=pi(a),t.setAttribute(l,a);break;case"onClick":a!=null&&(t.onclick=Hl); return;case"onScroll":a!=null&&Rt("scroll",t); return;case"onScrollEnd":a!=null&&Rt("scrollend",t); return;case"dangerouslySetInnerHTML":if(a!=null){if(typeof a!="object"||!("__html"in a))throw Error(f(61));if(l=a.__html,l!=null){if(n.children!=null)throw Error(f(60));(u!=null?u.__html:void 0)!==l&&(t.innerHTML=l)}}break; case"multiple":t.multiple=a& & typeof a!="function"& & typeof a!="symbol";break;case"muted":t.muted=a& & typeof a!="function"& & typeof a!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(a==null||typeof a=="function"||typeof a=="boolean"||typeof a=="symbol"){t.removeAttribute("xlink:href");break}l=pi(a),t.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",l);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":a!=null& & typeof a!="function"& & typeof a!="symbol"?t.setAttribute(l,a):t.removeAttribute(l);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"credentialless":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":a& & typeof a!="function"& & typeof a!="symbol"?t.setAttribute(l,""):t.removeAttribute(l);break;case"capture":case"download":a===!0?t.setAttribute(l,""):a!==!1& & a!=null& & typeof a!="function"& & typeof a!="symbol"?t.setAttribute(l,a):t.removeAttribute(l);break;case"cols":case"rows":case"size":case"span":a!=null& & typeof a!="function"& & typeof a!="symbol"&&!isNaN(a)&&1<=a?t.setAttribute(l,a):t.removeAttribute(l); break;case"rowSpan":case"start":a==null||typeof a=="function"||typeof a=="symbol"||isNaN(a)?t.removeAttribute(l):t.setAttribute(l,a);break;case"popover":Rt("beforetoggle",t),Rt("toggle",t),yi(t,"popover",a);break;case"xlinkActuate":la(t,"http://www.w3.org/1999/xlink","xlink:actuate",a);break;case"xlinkArcrole":la(t,"http://www.w3.org/1999/xlink","xlink:arcrole",a);break;case"xlinkRole":la(t,"http://www.w3.org/1999/xlink","xlink:role",a);break;case"xlinkShow":la(t,"http://www.w3.org/1999/xlink","xlink:show",a);break;case"xlinkTitle":la(t,"http://www.w3.org/1999/xlink","xlink:title",a);break;case"xlinkType":la(t,"http://www.w3.org/1999/xlink","xlink:type",a);break;case"xmlBase":la(t,"http://www.w3.org/XML/1998/namespace","xml:base",a);break;case"xmlLang":la(t,"http://www.w3.org/XML/1998/namespace","xml:lang",a);break;case"xmlSpace":la(t,"http://www.w3.org/XML/1998/namespace","xml:space",a);break;case"is":yi(t,"is",a);break;case"innerText":case"textContent":return;default:if(!(2< l.length ) | | l [ 0 ] ! = = " o " & & l [ 0 ] ! = = " O " | | l [ 1 ] ! = = " n " & & l [ 1 ] ! = = " N " ) l = fv.get(l)||l,yi(t,l,a);else return } qt = !0}function Qr ( t , e , l , a , n , u ) { switch ( l ) { case " style " :Bo ( t , a , u ) ; return ; case " dangerouslySetInnerHTML " :if ( a ! = null ) { if ( typeof a ! = " object " | | ! ( " __html " in a ) ) throw Error ( f ( 61 ) ) ; if ( l = a.__html,l!=null){if(n.children!=null)throw Error ( f ( 60 ) ) ; ( u ! = null ? u . __html:void 0 ) ! = = l & & ( t . innerHTML = l)}}break;case"children":if(typeof a = ="string")_n(t,a);else if ( typeof a = ="number"||typeof a = ="bigint")_n(t,""+a);else return ; break ; case " onScroll " :a ! = null & & Rt ( " scroll " , t ) ; return ; case " onScrollEnd " :a ! = null & & Rt ( " scro Line truncated
`;Ut& & ($t+=Ut+`
`),p t& & ($t+=(Array.isArray(p t)?p t.join(`
`):String(p t))+`
`),$t+=JSON.stringify(lt,null,2).slice(0,4e3),Ve($t),Ne("已返回登录信息,见下方")}catch(lt){Ne("发起失败:"+lt.message)}},[]),xa=d.useCallback(async()=>{const N=F.trim();if(!N){Z("请填要查配额的用户 id");return}try{const G=await I($.adminQuotaUser(N));Z("用户 "+N.slice(0,8)+":本月用量 "+su(G.used_usd_micros)+" / 配额 "+su(G.quota_usd_micros)+(G.remaining_usd_micros!==null& & G.remaining_usd_micros!==void 0?"(剩余 "+su(G.remaining_usd_micros)+") ":"")+" | 月份 "+(G.month||""))}catch(G){Z(Uc(G))}},[F]),U=d.useCallback(async(N,G)=>{const lt=N.trim();if(!lt){Z("请填要设置配额的用户 id");return}let Ut;if(!G.trim())Ut=null;else{const pt=Number(G.trim());if(!Number.isFinite(pt)||pt< 0 ) { Z ( " 配额金额无效 : 请输入 > = 0 的美元数,留空表示不限额");return}Ut=Math.round(pt*1e6)}try{const pt=await I($.adminQuotas,"POST",{user_id:lt,quota_usd_micros:Ut});Z("配额已设置:用户 "+lt.slice(0,8)+":本月用量 "+su(pt.used_usd_micros)+" / 配额 "+su(pt.quota_usd_micros)+(pt.remaining_usd_micros!==null& & pt.remaining_usd_micros!==void 0?"(剩余 "+su(pt.remaining_usd_micros)+") ":"")+" | 月份 "+(pt.month||""))}catch(pt){Z(Uc(pt))}},[]),w=d.useCallback(async()=>{if(window.confirm("确定手动触发 sweep 吗?超阈值的陈旧 running 任务会被标为 interrupted。"))try{const G=(await I($.adminSweep,"POST",{})).swept||[];Z("sweep 完成,清理 "+G.length+" 个任务"+(G.length?": "+G.join("、"):""))}catch(N){Z(Uc(N))}},[]),P=d.useCallback(async()=>{try{const N=await I($.adminBackup,"POST",{});Z("备份完成:backend="+N.backend+" | 路径 "+N.path+" | 大小 "+N.size_bytes+" 字节 | 任务 "+N.task_count+" 行")}catch(N){Z(Uc(N))}},[]);return{keySaved:i,keyState:h,quotaText:g,healthText:O,adminGate:E,adminBody:q,adminResult:H,adminUserId:F,setAdminUserId:it,projects:ft,projectId:st,setProjectId:Ht,projectMsg:V,githubRepos:z,workers:at,workersSummary:Mt,workersError:bt,members:mt,memberMsg:Q,memberError:J,skills:gt,apps:fe,mcpServers:y,skillMsg:nt,skillError:xt,mcpMsg:Ot,mcpOauthMsg:ht,mcpOauthBox:Ja,envs:Qe,envCount:Vt,envMsg:Jl,envRepoLine:ya,envRepoBar:Rl,envRepoMsg:ga,envSelect:Dl,setEnvSelect:de,models:me,modelCustomVisible:kl,refreshHealth:wl,loadQuota:Ul,probeAdmin:cl,refreshProjects:Xt,loadGithubRepos:bl,loadRelayModels:Tl,refreshWorkers:_l,refreshEnvs:Se,refreshMembers:Wl,refreshSkills:$l,saveKeyInput:Il,clearKeyInput:du,createProject:Pl,createEnv:Ce,archiveEnv:sl,saveEnvRepo:Ae,inviteMember:mu,changeMemberRole:hu,removeMember:vu,reloadMcp:pa,mcpOauth:Sa,adminQuota:xa,adminSetQuota:U,adminSweep:w,adminBackup:P}}const po=20;function cg(){const[i,r]=d.useState([]),[h,f]=d.useState(""),[g,A]=d.useState(""),[O,b]=d.useState(""),[E,M]=d.useState(""),[q,p]=d.useState(""),[H,Z]=d.useState(0),[F,it]=d.useState(0),[ft,Et]=d.useState({}),st=d.useRef(0),Ht=d.useRef({status:"",executor:"",q:"",kind:""});Ht.current={status:g,executor:O,q,kind:E};const V=d.useRef(""),ct=d.useCallback(async(Y,J,dt)=>{const gt=Y!==void 0?Y:J;if(!gt){r([]),it(0),Et({});return}V.current=gt;const ee=dt!==void 0?dt:st.current,fe=Ht.current;try{const X=await I($.tasksPage(gt,po,ee*po,fe.status,fe.executor,fe.q,fe.kind));r(X.tasks||[]),it(X.total??(X.tasks||[]).length),Et(X.status_counts||{}),f("")}catch(X){f("加载失败:"+X.message)}},[]),z=d.useCallback(Y=>{const J=Math.max(0,Y);st.current=J,Z(J)},[]),L=d.useCallback(Y=>{z(Y),ct(V.current||void 0,void 0,Y)},[ct,z]);d.useEffect(()=>{if(!V.current)return;const Y=setTimeout(()=>{ct(V.current,void 0,0)},300);return()=>clearTimeout(Y)},[g,O,q,E]);const at=d.useCallback(Y=>{A(Y),z(0)},[z]),jt=d.useCallback(Y=>{b(Y),z(0)},[z]),Mt=d.useCallback(Y=>{M(Y),z(0)},[z]),yt=d.useCallback(Y=>{p(Y),z(0)},[z]),bt=d.useCallback(async Y=>{z(0),await ct(Y,void 0,0)},[ct,z]),B=Math.max(1,Math.ceil(F/po)),mt=F===0?"共 0 个任务":"共 "+F+" 个任务,第 "+(H+1)+" / "+B+" 页",Ct=i,Q=d.useCallback(async(Y,J)=>{const dt={...Y};J.length& & (dt.upload_id=await ng(J));const gt=await I($.tasksCreate,"POST",dt);return"任务已建:"+se(gt.id)},[]);return{tasks:i,taskError:h,statusFilter:g,setStatusFilter:at,executorFilter:O,setExecutorFilter:jt,kindFilter:E,setKindFilter:Mt,searchText:q,setSearchText:yt,filteredTasks:Ct,taskCountText:mt,refreshTasks:ct,refreshTasksFirstPage:bt,page:H,totalPages:B,taskTotal:F,taskStatusCounts:ft,goToPage:L,dispatch:Q}}function sg(i,r){const[h,f]=d.useState(null),[g,A]=d.useState(""),[O,b]=d.useState(""),[E,M]=d.useState(""),[q,p]=d.useState(""),[H,Z]=d.useState(void 0),[F,it]=d.useState(!1),[ft,Et]=d.useState(""),[st,Ht]=d.useState([]),[V,ct]=d.useState([]),[z,L]=d.useState([]),[at,jt]=d.useState(""),[Mt,yt]=d.useState([]),[bt,B]=d.useState(""),[mt,Ct]=d.useState(""),[Q,Y]=d.useState([]),[J,dt]=d.useState(""),[gt,ee]=d.useState(""),[fe,X]=d.useState(""),[y,k]=d.useState(""),[nt,et]=d.useState([]),[xt,Nt]=d.useState([]),[Ot,W]=d.useState(""),[ht,Ne]=d.useState([]),[Ja,Ve]=d.useState(""),[Qe,Line truncated
`),g t& & ($t+=(Array.isArray(g t)?g t.join(`
`):String(g t))+`
`),$t+=JSON.stringify(lt,null,2).slice(0,4e3),Qe($t),Ne("已返回登录信息,见下方")}catch(lt){Ne("发起失败:"+lt.message)}},[]),xa=d.useCallback(async()=>{const E=F.trim();if(!E){Z("请填要查配额的用户 id");return}try{const G=await I($.adminQuotaUser(E));Z("用户 "+E.slice(0,8)+":本月用量 "+su(G.used_usd_micros)+" / 配额 "+su(G.quota_usd_micros)+(G.remaining_usd_micros!==null& & G.remaining_usd_micros!==void 0?"(剩余 "+su(G.remaining_usd_micros)+") ":"")+" | 月份 "+(G.month||""))}catch(G){Z(Uc(G))}},[F]),U=d.useCallback(async(E,G)=>{const lt=E.trim();if(!lt){Z("请填要设置配额的用户 id");return}let Ut;if(!G.trim())Ut=null;else{const gt=Number(G.trim());if(!Number.isFinite(gt)||gt< 0 ) { Z ( " 配额金额无效 : 请输入 > = 0 的美元数,留空表示不限额");return}Ut=Math.round(gt*1e6)}try{const gt=await I($.adminQuotas,"POST",{user_id:lt,quota_usd_micros:Ut});Z("配额已设置:用户 "+lt.slice(0,8)+":本月用量 "+su(gt.used_usd_micros)+" / 配额 "+su(gt.quota_usd_micros)+(gt.remaining_usd_micros!==null& & gt.remaining_usd_micros!==void 0?"(剩余 "+su(gt.remaining_usd_micros)+") ":"")+" | 月份 "+(gt.month||""))}catch(gt){Z(Uc(gt))}},[]),w=d.useCallback(async()=>{if(window.confirm("确定手动触发 sweep 吗?超阈值的陈旧 running 任务会被标为 interrupted。"))try{const G=(await I($.adminSweep,"POST",{})).swept||[];Z("sweep 完成,清理 "+G.length+" 个任务"+(G.length?": "+G.join("、"):""))}catch(E){Z(Uc(E))}},[]),P=d.useCallback(async()=>{try{const E=await I($.adminBackup,"POST",{});Z("备份完成:backend="+E.backend+" | 路径 "+E.path+" | 大小 "+E.size_bytes+" 字节 | 任务 "+E.task_count+" 行")}catch(E){Z(Uc(E))}},[]);return{keySaved:i,keyState:h,quotaText:g,healthText:O,adminGate:N,adminBody:q,adminResult:H,adminUserId:F,setAdminUserId:it,projects:ft,projectId:st,setProjectId:Ht,projectMsg:Q,githubRepos:z,workers:at,workersSummary:Mt,workersError:bt,members:dt,memberMsg:V,memberError:J,skills:yt,apps:fe,mcpServers:y,skillMsg:nt,skillError:xt,mcpMsg:Ot,mcpOauthMsg:mt,mcpOauthBox:Ja,envs:Ve,envCount:Qt,envMsg:Jl,envRepoLine:ya,envRepoBar:Dl,envRepoMsg:ga,envSelect:Rl,setEnvSelect:de,models:me,modelCustomVisible:kl,refreshHealth:wl,loadQuota:Ul,probeAdmin:cl,refreshProjects:Xt,loadGithubRepos:bl,loadRelayModels:Tl,refreshWorkers:_l,refreshEnvs:Se,refreshMembers:Wl,refreshSkills:$l,saveKeyInput:Il,clearKeyInput:du,createProject:Pl,createEnv:Ce,archiveEnv:sl,saveEnvRepo:Ae,inviteMember:mu,changeMemberRole:hu,removeMember:vu,reloadMcp:pa,mcpOauth:Sa,adminQuota:xa,adminSetQuota:U,adminSweep:w,adminBackup:P}}const po=20;function sg(){const[i,r]=d.useState([]),[h,f]=d.useState(""),[g,A]=d.useState(""),[O,b]=d.useState(""),[N,M]=d.useState(""),[q,p]=d.useState(""),[H,Z]=d.useState(0),[F,it]=d.useState(0),[ft,Et]=d.useState({}),st=d.useRef(0),Ht=d.useRef({status:"",executor:"",q:"",kind:""});Ht.current={status:g,executor:O,q,kind:N};const Q=d.useRef(""),ct=d.useCallback(async(Y,J,pt)=>{const yt=Y!==void 0?Y:J;if(!yt){r([]),it(0),Et({});return}Q.current=yt;const ee=pt!==void 0?pt:st.current,fe=Ht.current;try{const X=await I($.tasksPage(yt,po,ee*po,fe.status,fe.executor,fe.q,fe.kind));r(X.tasks||[]),it(X.total??(X.tasks||[]).length),Et(X.status_counts||{}),f("")}catch(X){f("加载失败:"+X.message)}},[]),z=d.useCallback(Y=>{const J=Math.max(0,Y);st.current=J,Z(J)},[]),L=d.useCallback(Y=>{z(Y),ct(Q.current||void 0,void 0,Y)},[ct,z]);d.useEffect(()=>{if(!Q.current)return;const Y=setTimeout(()=>{ct(Q.current,void 0,0)},300);return()=>clearTimeout(Y)},[g,O,q,N]);const at=d.useCallback(Y=>{A(Y),z(0)},[z]),jt=d.useCallback(Y=>{b(Y),z(0)},[z]),Mt=d.useCallback(Y=>{M(Y),z(0)},[z]),vt=d.useCallback(Y=>{p(Y),z(0)},[z]),bt=d.useCallback(async Y=>{z(0),await ct(Y,void 0,0)},[ct,z]),B=Math.max(1,Math.ceil(F/po)),dt=F===0?"共 0 个任务":"共 "+F+" 个任务,第 "+(H+1)+" / "+B+" 页",Ct=i,V=d.useCallback(async(Y,J)=>{const pt={...Y};J.length& & (pt.upload_id=await ug(J));const yt=await I($.tasksCreate,"POST",pt);return"任务已建:"+se(yt.id)},[]);return{tasks:i,taskError:h,statusFilter:g,setStatusFilter:at,executorFilter:O,setExecutorFilter:jt,kindFilter:N,setKindFilter:Mt,searchText:q,setSearchText:vt,filteredTasks:Ct,taskCountText:dt,refreshTasks:ct,refreshTasksFirstPage:bt,page:H,totalPages:B,taskTotal:F,taskStatusCounts:ft,goToPage:L,dispatch:V}}function rg(i,r){const[h,f]=d.useState(null),[g,A]=d.useState(""),[O,b]=d.useState(""),[N,M]=d.useState(""),[q,p]=d.useState(""),[H,Z]=d.useState(void 0),[F,it]=d.useState(!1),[ft,Et]=d.useState(""),[st,Ht]=d.useState([]),[Q,ct]=d.useState([]),[z,L]=d.useState([]),[at,jt]=d.useState(""),[Mt,vt]=d.useState([]),[bt,B]=d.useState(""),[dt,Ct]=d.useState(""),[V,Y]=d.useState([]),[J,pt]=d.useState(""),[yt,ee]=d.useState(""),[fe,X]=d.useState(""),[y,k]=d.useState(""),[nt,et]=d.useState([]),[xt,Nt]=d.useState([]),[Ot,W]=d.useState(""),[mt,Ne]=d.useState([]),[Ja,Qe]=d.useState(""),[Ve,Line truncated
`);Fa=ea.pop()||"";for(const El of ea){const he=El.split(`
`).filter(It=>It.indexOf("data: ")===0).map(It=>It.slice(6)).join(`
`);if(he)try{const It=JSON.parse(he);if(It.type==="snapshot")N =It.entries||[],Object.keys(G).forEach(xe=>delete G[xe]),N .forEach((xe,mi)=>{xe.id&&(G[xe.id]=mi)}),lt=It.note||"",Y([...N ]),d t(lt),Fl(U); else if(It.type==="entry"){const xe=It.entry;xe.id& & xe.id in G?N [G[xe.id]]=xe:(xe.id& & (G[xe.id]=N .length),N .push(xe)),Y([...N ]),Fl(U)}else It.type==="done"&&(Ut=!0,p t=It.status,ee(p t))}catch{}}if(Ut)break}}catch($t){if($t&&$t.name==="AbortError")return; d t("链路流中断:"+$t.message);return}Ut& & r()},[il,Fl,r]),Il=d.useCallback(async U=>{il();try{const w=await I($.task(U));f(w);let P="";w.result_text& & (P+=`=== result ===
`);if(he)try{const It=JSON.parse(he);if(It.type==="snapshot")E =It.entries||[],Object.keys(G).forEach(xe=>delete G[xe]),E .forEach((xe,mi)=>{xe.id&&(G[xe.id]=mi)}),lt=It.note||"",Y([...E ]),p t(lt),Fl(U); else if(It.type==="entry"){const xe=It.entry;xe.id& & xe.id in G?E [G[xe.id]]=xe:(xe.id& & (G[xe.id]=E .length),E .push(xe)),Y([...E ]),Fl(U)}else It.type==="done"&&(Ut=!0,g t=It.status,ee(g t))}catch{}}if(Ut)break}}catch($t){if($t&&$t.name==="AbortError")return; p t("链路流中断:"+$t.message);return}Ut& & r()},[il,Fl,r]),Il=d.useCallback(async U=>{il();try{const w=await I($.task(U));f(w);let P="";w.result_text& & (P+=`=== result ===
`+w.result_text.slice(0,8e3)+`
`),w.error_text& & (P+=`=== error ===
`+w.error_text.slice(0,8e3)+`
`),P||(P="(暂无 result/error 输出)"),A(P),p(""),Z(void 0),wl(U),it(!1),Et(""),V e(""),re(""),Wl(w.status);const N =i(w.project_id),G=N ==="maintainer"||N ==="owner",lt=N ==="contributor"||G,Ut=ou.includes(w.status),p t=[];["failed","interrupted","merge-failed"].includes(w.status)& & G||p t.push("重试:不可用——仅 failed/interrupted/merge-failed 可重试"+(G?"":",且仅 maintainer 可重试")),!Ut& & lt||p t.push("取消:不可用——"+(Ut?"终态任务不可取消":"仅项目成员(contributor 及以上)可取消")),w.status==="completed"& & G||p t.push("合并:不可用——仅 completed 可合并"+(G?"":",且仅 maintainer 可合并")),w.status==="merged"& & G||p t.push("提 PR:不可用——仅 merged 可提 PR"+(G?"":",且仅 maintainer 可提 PR")),M(p t.join("; ")),b(""),$l(U,w.status),kl(U),ue(w),jl(w),cl(U),Ul(U),Tl(U),_l(U),Se(U),Xt(U),bl(U)}catch(w){f(null),A("加载失败:"+w.message)}},[il,$l,kl,ue,jl,cl,Ul,Tl,_l,Se,Xt,bl,wl,i]),du=d.useCallback(async()=>{const U=me.current;if(U){try{const w=await I($.task(U.id));f(w);let P="";w.result_text& & (P+=`=== result ===
`),P||(P="(暂无 result/error 输出)"),A(P),p(""),Z(void 0),wl(U),it(!1),Et(""),Q e(""),re(""),Wl(w.status);const E =i(w.project_id),G=E ==="maintainer"||E ==="owner",lt=E ==="contributor"||G,Ut=ou.includes(w.status),g t=[];["failed","interrupted","merge-failed"].includes(w.status)& & G||g t.push("重试:不可用——仅 failed/interrupted/merge-failed 可重试"+(G?"":",且仅 maintainer 可重试")),!Ut& & lt||g t.push("取消:不可用——"+(Ut?"终态任务不可取消":"仅项目成员(contributor 及以上)可取消")),w.status==="completed"& & G||g t.push("合并:不可用——仅 completed 可合并"+(G?"":",且仅 maintainer 可合并")),w.status==="merged"& & G||g t.push("提 PR:不可用——仅 merged 可提 PR"+(G?"":",且仅 maintainer 可提 PR")),M(g t.join("; ")),b(""),$l(U,w.status),kl(U),ue(w),jl(w),cl(U),Ul(U),Tl(U),_l(U),Se(U),Xt(U),bl(U)}catch(w){f(null),A("加载失败:"+w.message)}},[il,$l,kl,ue,jl,cl,Ul,Tl,_l,Se,Xt,bl,wl,i]),du=d.useCallback(async()=>{const U=me.current;if(U){try{const w=await I($.task(U.id));f(w);let P="";w.result_text& & (P+=`=== result ===
`+w.result_text.slice(0,8e3)+`
`),w.error_text& & (P+=`=== error ===
`+w.error_text.slice(0,8e3)+`
`),A(P||"(暂无 result/error 输出)")}catch{}Ul(U.id),cl(U.id),Xt(U.id),bl(U.id),ue(U),jl(U),kl(U.id),Tl(U.id),_l(U.id),Se(U.id),wl(U.id)}},[Ul,cl,Xt,bl,ue,jl,kl,Tl,_l,Se,wl]),Pl=d.useCallback(async U=>{const w=me.current;if(!w)return;const P={cancel:"确定取消该任务吗?",merge:"确定把 completed 任务标为 merged 吗?",pr:"确定为该任务提 PR 吗?(会在仓库真实建 PR) "};if(!(P[U]& & !window.confirm(P[U])))try{const N=await I($.taskAction(w.id,U),"POST",{});b(U+" 已提交:"+JSON.stringify(N).slice(0,300)),r(),await Il(w.id)}catch(N){b(U+" 失败:"+N.message)}},[Il,r]),Ce=d.useCallback(async()=>{const U=me.current;if(U)try{const w=await I($.taskCost(U.id));p(JSON.stringify(w,null,2).slice(0,4e3))}catch(w){p("查成本失败:"+w.message)}},[]),sl=d.useCallback(async U=>{const w=me.current;if(w){if(!U.trim()){Et("分支消息必填");return}if(!ou.includes(w.status)){Et("仅终态任务可分支");return}try{const P=await I($.taskFork(w.id),"POST",{message:U.trim()});Et("分支任务已建:"+P.id.slice(0,8)),r()}catch(P){Et("分支失败:"+P.message)}}},[r]),Ae=d.useCallback(async U=>{const w=me.current;if(w)try{await I($.taskReviews(w.id),"POST",U),B("评审已登记(requested) "),await Xt(w.id)}catch(P){B("登记评审需求失败:"+P.message)}},[Xt]),mu=d.useCallback(U=>{const w=me.current;if(!w)return;const P=window.prompt("输入该条评审的 findings(将写回记录并标为 completed):");P!==null& & I($.taskReviewFindings(w.id,U),"POST",{findings:P}).then(()=>void Xt(w.id)).catch(N=>B("写 findings 失败:"+N.message))},[Xt]),hu=d.useCallback((U,w)=>{const P=me.current;if(!P)return;const N=w==="approved"?"approve":"deny";I($.taskApprovalDecision(P.id,U,N),"POST",{}).then(()=>{W("已记录"+(w==="approved"?"允许":"拒绝")+"(当前版本只留回执,不拦截实时行为)"),bl(P.id)}).catch(G=>W("决定失败:"+G.message))},[bl]),vu=d.useCallback(async(U,w,P)=>{const N=me.current;if(N){if(!w.trim()){Ve("目标任务 id 不能为空");return}if(!P.trim()){Ve("消息正文不能为空");return}try{const G=await I($.taskMessagesTo(w.trim()),"POST",{from_task_id:N.id,body:P.trim(),mode:U});Ve("已发送("+G.delivery+") "),await Tl(N.id)}catch(G){Ve("发送失败:"+G.message)}}},[Tl]),pa=d.useCallback((U,w)=>{const P=me.current;if(!P)return;if(!["completed","failed","interrupted"].includes(P.status)){re("仅 completed/failed/interrupted 任务可操作线程(merged/merge-failed 不可改,服务端同样 409) ");return}const N={};if(U==="rename"){if(!w.trim()){re("新线程名不能为空");return}N.name=w.trim()}I($.taskThreadAction(P.id,U),"POST",N).then(G=>{re(U+" 已提交:"+JSON.stringify(G).slice(0,300)),_l(P.id),Se(P.id)}).catch(G=>re(U+" 失败:"+G.message))},[_l,Se]),Sa=d.useCallback(async U=>{const w=me.current;if(!w)return;const P=U.trim();if(!P){Fe("消息不能为空");return}try{ou.includes(w.status)& & w.status!=="merged"?(await I($.taskContinue(w.id),"POST",{message:P}),Fe("已重新排队,同一会话继续"),r(),await Il(w.id)):["queued","running"].includes(w.status)?(await I($.taskFollowups(w.id),"POST",{body:P,mode:"direct"}),Fe("已直接发送"),await Ul(w.id),await cl(w.id)):Fe("merged/merge-failed 任务不可继续,也不可发后续消息")}catch(N){Fe("发送失败:"+N.message)}},[Il,r,Ul,cl]),xa=d.useCallback(async()=>{const U=me.current;if(!U){k("先选一个任务");return}try{const w=await I($.taskTrace(U.id)),P=new Blob([JSON.stringify({task_id:U.id,status:w.status,note:w.note||"",count:(w.entries||[]).length,entries:w.entries||[]},null,2)],{type:"application/json"}),N=document.createElement("a");N.href=URL.createObjectURL(P),N.download="trace-"+U.id.slice(0,8)+".json",document.body.appendChild(N),N.click(),N.remove(),setTimeout(()=>URL.revokeObjectURL(N.href),1e3),k("已下载完整链路 "+(w.entries||[]).length+" 条")}catch(w){k("下载失败:"+w.message)}},[]);return d.useEffect(()=>()=>il(),[il]),{currentTask:h,detailBody:g,actionMsg:O,actionReasons:E,costBox:q,costSummary:H,forkVisible:F,setForkVisible:it,forkMsg:ft,coordChildren:st,sideThreads:V,agents:z,agentsNote:at,reviews:Mt,reviewMsg:bt,reviewError:mt,traceEntries:Q,traceNote:J,traceDone:gt,traceKind:fe,setTraceKind:X,traceMsg:y,followups:nt,approvals:xt,approvalMsg:Ot,peerMessages:ht,peerMsg:Ja,threadText:Qe,threadGateNote:Vt,threadMsg:Jl,threadList:ya,chatMsg:Rl,chatHistory:ga,showDetail:Il,refreshDetailLists:du,doAction:Pl,taskCost:Ce,forkTask:sl,postReview:Ae,submitFindings:mu,decideApproval:hu,postPeer:vu,threadAction:pa,sendChatMessage:Sa,downloadTrace:xa,refreshReviews:()=>void Xt(),refreshApprovals:()=>void bl()}}function rg(i){const[r,h]=d.useState([]),[f,g]=d.useState(""),[A,O]=d.useState(null),[b,E]=d.useState(""),[M,q]=d.useState(null),[p,H]=d.useState(""),Z=d.useCallback(async V=>{const ct=V!==void 0?V:i();if(!ct){h([]);return}try{const z=await I($.projectAutomations(ct));h(z.automations||[])}catch(z){g("自动化Line truncated
(链路摘要已截断至 300 字,完整回复见右侧任务结果)`:f,label:"助手"}}if(i.kind==="exec"||i.kind==="file"||i.kind==="tool"||i.kind==="call"){const f=i.kind==="exec"?"命令":i.kind==="file"?"文件":i.kind==="tool"?"工具":"调用";return{id:h,role:"tool",kind:i.kind,text:xo(i),label:f}}return i.kind==="plan"?{id:h,role:"status",kind:i.kind,text:i.text||""}:i.kind==="reasoning"?{id:h,role:"status",kind:i.kind,text:"思考:"+(i.summary||"")}:i.kind==="agent-start"?{id:h,role:"status",kind:i.kind,text:"子代理开始:"+(i.name||"")+(i.prompt?"( "+i.prompt+") ":"")}:i.kind==="agent-done"?{id:h,role:"status",kind:i.kind,text:"子代理结束:"+(i.name||"")+" "+(i.status||"")}:{id:h,role:"status",kind:i.kind,text:xo(i)}}function Ng(){const i=Gt(),r=i.currentTask,h=d.useMemo(()=>{if(!r)return[];let E;if(i.chatHistory){E=i.chatHistory.messages.map(F=>({id:F.id,role:F.role,text:F.text,label:F.label,kind:F.kind}));const H=new Set(E.map(F=>F.id)),Z=i.traceEntries.filter(F=>F.id&&!H.has(F.id)&&!String(F.id).startsWith("fu-")).map((F,it)=>Jh(F,it)); E=[...E,...Z]}else{const H=r.prompt?[{id:"task-prompt",role:"user",text:r.prompt}]:[],Z=i.traceEntries.filter(it=>!String(it.id||"").startsWith("fu-")).map((it,ft)=>Jh(it,ft)),F=i.followups.map((it,ft)=>({id:"followup-"+ft,role:"user",text:String(it.body||""),label:"后续消息"}));E=[...H,...Z,...F]}const M=i.traceKind,q=M?E.filter(H=>H.role==="user"||!H.kind||H.kind===M):E,p=i.traceDone?[{id:"trace-done",role:"status",text:"链路已结束("+i.traceDone+") "}]:[];return[...q,...p]},[r,i.chatHistory,i.traceEntries,i.followups,i.traceKind,i.traceDone]);if(!r)return c.jsx("div",{className:"muted",children:"点任务行查看详情后,这里显示继续会话"});const f=ou.includes(r.status),g=["queued","running"].includes(r.status),A=f||g,O=f?"终态任务:发送走继续接口(同一会话再跑一轮)":g?"运行中/排队中:发送走后续消息直接发送(跑完当前轮后优先执行)":"merged/merge-failed 任务不可继续,也不可发后续消息",b=i.chatHistory?i.chatHistory.legacy_continue_count??null:null;return c.jsxs("div",{className:"chat-column",children:[c.jsx("div",{className:"muted",children:"实时对话"}),c.jsxs(zt,{children:[c.jsxs("select",{"aria-label":"链路类型",value:i.traceKind,onChange:E=>i.setTraceKind(E.target.value),children:[c.jsx("option",{value:"",children:"链路类型:全部"}),["exec","file","call","tool","message","reasoning","plan","agent-start","agent-done"].map(E=>c.jsx("option",{value:E,children:E==="exec"?"命令":E==="file"?"文件":E==="call"?"调用":E==="tool"?"工具":E==="message"?"消息":E==="reasoning"?"思考":E==="plan"?"计划":"子代理"},E))]}),c.jsx("button",{onClick:i.downloadTrace,children:"下载完整链路"}),c.jsx("span",{className:"muted",children:i.traceMsg})]}),i.traceNote?c.jsx("div",{children:c.jsx("span",{className:"err",children:i.traceNote})}):null,b!==null& & b>0?c.jsxs("div",{className:"muted",children:["此前有 ",b," 条继续消息发生在持久化之前,未入库,上面历史不完整;部署后新发的继续消息会正常显示。"]}):null,i.chatHistory& & i.chatHistory.trace_note?c.jsx("div",{className:"muted",children:i.chatHistory.trace_note}):null,c.jsx(_g,{messages:h,empty:"(暂无会话消息)"}),c.jsx(Eg,{disabled:!A,placeholder:"消息",onSend:E=>void i.sendChatMessage(E)}),c.jsxs("div",{className:"muted",children:[O,"。",i.chatMsg]}),c.jsx("div",{className:"muted",children:"对话时间线:首条是本任务 prompt(用户);助手回复、命令/文件/工具/调用、计划/思考/子代理开始结束都在同一列里,不再另起一份链路名单。流式进行中时新条目实时追加;你在底部时自动跟随,往上翻时暂停跟随,点“回到最新”恢复。"})]})}function Cg(){return Gt().currentTask?c.jsx("div",{className:"conversation",children:c.jsx(Ng,{})}):c.jsx("div",{className:"conversation",children:c.jsx("div",{className:"muted",children:"在任务列表里点一条任务,对话和详情就切到该任务;也可以在上面派发一个新任务。"})})}function Ag(){const i=Gt(),r=i.currentTask,[h,f]=d.useState("");if(!r)return null;const g=ou.includes(r.status),A=["failed","interrupted","merge-failed"].includes(r.status),O=r.kind==="side";return c.jsxs(c.Fragment,{children:[c.jsxs(zt,{children:[c.jsx("button",{disabled:!A,title:A?"":"仅 failed/interrupted/merge-failed 可重试",onClick:()=>i.doAction("retry"),children:"重试"}),c.jsx("button",{className:"danger",disabled:g,title:g?"终态任务不可取消":"",onClick:()=>i.doAction("cancel"),children:"取消"}),O?null:c.jsxs(c.Fragment,{children:[c.jsx("button",{disabled:r.status!=="completed",title:r.status!=="completed"?"仅 completed 可合并":"",onClick:()=>i.doAction("merge"),children:"合并(completed → merged) "}),c.jsx("button",{disabled:r.status!=="merged",title:r.status!=="merged"?"仅 merged 可提 Line truncated
`),A(P||"(暂无 result/error 输出)")}catch{}Ul(U.id),cl(U.id),Xt(U.id),bl(U.id),ue(U),jl(U),kl(U.id),Tl(U.id),_l(U.id),Se(U.id),wl(U.id)}},[Ul,cl,Xt,bl,ue,jl,kl,Tl,_l,Se,wl]),Pl=d.useCallback(async U=>{const w=me.current;if(!w)return;const P={cancel:"确定取消该任务吗?",merge:"确定把 completed 任务标为 merged 吗?",pr:"确定为该任务提 PR 吗?(会在仓库真实建 PR) "};if(!(P[U]& & !window.confirm(P[U])))try{const E=await I($.taskAction(w.id,U),"POST",{});b(U+" 已提交:"+JSON.stringify(E).slice(0,300)),r(),await Il(w.id)}catch(E){b(U+" 失败:"+E.message)}},[Il,r]),Ce=d.useCallback(async()=>{const U=me.current;if(U)try{const w=await I($.taskCost(U.id));p(JSON.stringify(w,null,2).slice(0,4e3))}catch(w){p("查成本失败:"+w.message)}},[]),sl=d.useCallback(async U=>{const w=me.current;if(w){if(!U.trim()){Et("分支消息必填");return}if(!ou.includes(w.status)){Et("仅终态任务可分支");return}try{const P=await I($.taskFork(w.id),"POST",{message:U.trim()});Et("分支任务已建:"+P.id.slice(0,8)),r()}catch(P){Et("分支失败:"+P.message)}}},[r]),Ae=d.useCallback(async U=>{const w=me.current;if(w)try{await I($.taskReviews(w.id),"POST",U),B("评审已登记(requested) "),await Xt(w.id)}catch(P){B("登记评审需求失败:"+P.message)}},[Xt]),mu=d.useCallback(U=>{const w=me.current;if(!w)return;const P=window.prompt("输入该条评审的 findings(将写回记录并标为 completed):");P!==null& & I($.taskReviewFindings(w.id,U),"POST",{findings:P}).then(()=>void Xt(w.id)).catch(E=>B("写 findings 失败:"+E.message))},[Xt]),hu=d.useCallback((U,w)=>{const P=me.current;if(!P)return;const E=w==="approved"?"approve":"deny";I($.taskApprovalDecision(P.id,U,E),"POST",{}).then(()=>{W("已记录"+(w==="approved"?"允许":"拒绝")+"(当前版本只留回执,不拦截实时行为)"),bl(P.id)}).catch(G=>W("决定失败:"+G.message))},[bl]),vu=d.useCallback(async(U,w,P)=>{const E=me.current;if(E){if(!w.trim()){Qe("目标任务 id 不能为空");return}if(!P.trim()){Qe("消息正文不能为空");return}try{const G=await I($.taskMessagesTo(w.trim()),"POST",{from_task_id:E.id,body:P.trim(),mode:U});Qe("已发送("+G.delivery+") "),await Tl(E.id)}catch(G){Qe("发送失败:"+G.message)}}},[Tl]),pa=d.useCallback((U,w)=>{const P=me.current;if(!P)return;if(!["completed","failed","interrupted"].includes(P.status)){re("仅 completed/failed/interrupted 任务可操作线程(merged/merge-failed 不可改,服务端同样 409) ");return}const E={};if(U==="rename"){if(!w.trim()){re("新线程名不能为空");return}E.name=w.trim()}I($.taskThreadAction(P.id,U),"POST",E).then(G=>{re(U+" 已提交:"+JSON.stringify(G).slice(0,300)),_l(P.id),Se(P.id)}).catch(G=>re(U+" 失败:"+G.message))},[_l,Se]),Sa=d.useCallback(async U=>{const w=me.current;if(!w)return;const P=U.trim();if(!P){Fe("消息不能为空");return}try{ou.includes(w.status)& & w.status!=="merged"?(await I($.taskContinue(w.id),"POST",{message:P}),Fe("已重新排队,同一会话继续"),r(),await Il(w.id)):["queued","running"].includes(w.status)?(await I($.taskFollowups(w.id),"POST",{body:P,mode:"direct"}),Fe("已直接发送"),await Ul(w.id),await cl(w.id)):Fe("merged/merge-failed 任务不可继续,也不可发后续消息")}catch(E){Fe("发送失败:"+E.message)}},[Il,r,Ul,cl]),xa=d.useCallback(async()=>{const U=me.current;if(!U){k("先选一个任务");return}try{const w=await I($.taskTrace(U.id)),P=new Blob([JSON.stringify({task_id:U.id,status:w.status,note:w.note||"",count:(w.entries||[]).length,entries:w.entries||[]},null,2)],{type:"application/json"}),E=document.createElement("a");E.href=URL.createObjectURL(P),E.download="trace-"+U.id.slice(0,8)+".json",document.body.appendChild(E),E.click(),E.remove(),setTimeout(()=>URL.revokeObjectURL(E.href),1e3),k("已下载完整链路 "+(w.entries||[]).length+" 条")}catch(w){k("下载失败:"+w.message)}},[]);return d.useEffect(()=>()=>il(),[il]),{currentTask:h,detailBody:g,actionMsg:O,actionReasons:N,costBox:q,costSummary:H,forkVisible:F,setForkVisible:it,forkMsg:ft,coordChildren:st,sideThreads:Q,agents:z,agentsNote:at,reviews:Mt,reviewMsg:bt,reviewError:dt,traceEntries:V,traceNote:J,traceDone:yt,traceKind:fe,setTraceKind:X,traceMsg:y,followups:nt,approvals:xt,approvalMsg:Ot,peerMessages:mt,peerMsg:Ja,threadText:Ve,threadGateNote:Qt,threadMsg:Jl,threadList:ya,chatMsg:Dl,chatHistory:ga,showDetail:Il,refreshDetailLists:du,doAction:Pl,taskCost:Ce,forkTask:sl,postReview:Ae,submitFindings:mu,decideApproval:hu,postPeer:vu,threadAction:pa,sendChatMessage:Sa,downloadTrace:xa,refreshReviews:()=>void Xt(),refreshApprovals:()=>void bl()}}function og(i){const[r,h]=d.useState([]),[f,g]=d.useState(""),[A,O]=d.useState(null),[b,N]=d.useState(""),[M,q]=d.useState(null),[p,H]=d.useState(""),Z=d.useCallback(async Q=>{const ct=Q!==void 0?Q:i();if(!ct){h([]);return}try{const z=await I($.projectAutomations(ct));h(z.automations||[])}catch(z){g("自动化Line truncated
(链路摘要已截断至 300 字,完整回复见右侧任务结果)`:f,label:"助手"}}if(i.kind==="exec"||i.kind==="file"||i.kind==="tool"||i.kind==="call"){const f=i.kind==="exec"?"命令":i.kind==="file"?"文件":i.kind==="tool"?"工具":"调用";return{id:h,role:"tool",kind:i.kind,text:xo(i),label:f}}return i.kind==="plan"?{id:h,role:"status",kind:i.kind,text:i.text||""}:i.kind==="reasoning"?{id:h,role:"status",kind:i.kind,text:"思考:"+(i.summary||"")}:i.kind==="agent-start"?{id:h,role:"status",kind:i.kind,text:"子代理开始:"+(i.name||"")+(i.prompt?"( "+i.prompt+") ":"")}:i.kind==="agent-done"?{id:h,role:"status",kind:i.kind,text:"子代理结束:"+(i.name||"")+" "+(i.status||"")}:{id:h,role:"status",kind:i.kind,text:xo(i)}}function Cg(){const i=Gt(),r=i.currentTask,h=d.useMemo(()=>{if(!r)return[];let N;if(i.chatHistory){N=i.chatHistory.messages.map(F=>({id:F.id,role:F.role,text:F.text,label:F.label,kind:F.kind}));const H=new Set(N.map(F=>F.id)),Z=i.traceEntries.filter(F=>F.id&&!H.has(F.id)&&!String(F.id).startsWith("fu-")).map((F,it)=>Fh(F,it)); N=[...N,...Z]}else{const H=r.prompt?[{id:"task-prompt",role:"user",text:r.prompt}]:[],Z=i.traceEntries.filter(it=>!String(it.id||"").startsWith("fu-")).map((it,ft)=>Fh(it,ft)),F=i.followups.map((it,ft)=>({id:"followup-"+ft,role:"user",text:String(it.body||""),label:"后续消息"}));N=[...H,...Z,...F]}const M=i.traceKind,q=M?N.filter(H=>H.role==="user"||!H.kind||H.kind===M):N,p=i.traceDone?[{id:"trace-done",role:"status",text:"链路已结束("+i.traceDone+") "}]:[];return[...q,...p]},[r,i.chatHistory,i.traceEntries,i.followups,i.traceKind,i.traceDone]);if(!r)return c.jsx("div",{className:"muted",children:"点任务行查看详情后,这里显示继续会话"});const f=ou.includes(r.status),g=["queued","running"].includes(r.status),A=f||g,O=f?"终态任务:发送走继续接口(同一会话再跑一轮)":g?"运行中/排队中:发送走后续消息直接发送(跑完当前轮后优先执行)":"merged/merge-failed 任务不可继续,也不可发后续消息",b=i.chatHistory?i.chatHistory.legacy_continue_count??null:null;return c.jsxs("div",{className:"chat-column",children:[c.jsx("div",{className:"muted",children:"实时对话"}),c.jsxs(zt,{children:[c.jsxs("select",{"aria-label":"链路类型",value:i.traceKind,onChange:N=>i.setTraceKind(N.target.value),children:[c.jsx("option",{value:"",children:"链路类型:全部"}),["exec","file","call","tool","message","reasoning","plan","agent-start","agent-done"].map(N=>c.jsx("option",{value:N,children:N==="exec"?"命令":N==="file"?"文件":N==="call"?"调用":N==="tool"?"工具":N==="message"?"消息":N==="reasoning"?"思考":N==="plan"?"计划":"子代理"},N))]}),c.jsx("button",{onClick:i.downloadTrace,children:"下载完整链路"}),c.jsx("span",{className:"muted",children:i.traceMsg})]}),i.traceNote?c.jsx("div",{children:c.jsx("span",{className:"err",children:i.traceNote})}):null,b!==null& & b>0?c.jsxs("div",{className:"muted",children:["此前有 ",b," 条继续消息发生在持久化之前,未入库,上面历史不完整;部署后新发的继续消息会正常显示。"]}):null,i.chatHistory& & i.chatHistory.trace_note?c.jsx("div",{className:"muted",children:i.chatHistory.trace_note}):null,c.jsx(Eg,{messages:h,empty:"(暂无会话消息)"}),c.jsx(Ng,{disabled:!A,placeholder:"消息",onSend:N=>void i.sendChatMessage(N)}),c.jsxs("div",{className:"muted",children:[O,"。",i.chatMsg]}),c.jsx("div",{className:"muted",children:"对话时间线:首条是本任务 prompt(用户);助手回复、命令/文件/工具/调用、计划/思考/子代理开始结束都在同一列里,不再另起一份链路名单。流式进行中时新条目实时追加;你在底部时自动跟随,往上翻时暂停跟随,点“回到最新”恢复。"})]})}function Ag(){return Gt().currentTask?c.jsx("div",{className:"conversation",children:c.jsx(Cg,{})}):c.jsx("div",{className:"conversation",children:c.jsx("div",{className:"muted",children:"在任务列表里点一条任务,对话和详情就切到该任务;也可以在上面派发一个新任务。"})})}function Mg(){const i=Gt(),r=i.currentTask,[h,f]=d.useState("");if(!r)return null;const g=ou.includes(r.status),A=["failed","interrupted","merge-failed"].includes(r.status),O=r.kind==="side";return c.jsxs(c.Fragment,{children:[c.jsxs(zt,{children:[c.jsx("button",{disabled:!A,title:A?"":"仅 failed/interrupted/merge-failed 可重试",onClick:()=>i.doAction("retry"),children:"重试"}),c.jsx("button",{className:"danger",disabled:g,title:g?"终态任务不可取消":"",onClick:()=>i.doAction("cancel"),children:"取消"}),O?null:c.jsxs(c.Fragment,{children:[c.jsx("button",{disabled:r.status!=="completed",title:r.status!=="completed"?"仅 completed 可合并":"",onClick:()=>i.doAction("merge"),children:"合并(completed → merged) "}),c.jsx("button",{disabled:r.status!=="merged",title:r.status!=="merged"?"仅 merged 可提 Line truncated
`);for(;m t>=0;){const Ct=y t.slice(0,m t);y t=y t.slice(m t+2);for(const Q of Ct.split(`
`))if(Q .startsWith("data: "))try{const Y=JSON.parse(Q .slice(6));Y.waiting?b(Y.task_status==="interrupted"?"任务已中断,等待续跑…":Y.task_status==="paused"?"任务已暂停…":"等待会话…"):Y.image&&(f("data:image/jpeg; base64,"+Y.image),b("直播中"));const J={};Y.holder& & (J.holder=Y.holder),Y.url& & (J.url=Y.url),Y.title!==void 0& & (J.title=Y.title),Object.keys(J).length>0& & A(d t=>({...d t||{},...J}))}catch{}m t=y t.indexOf(`
`);for(;d t>=0;){const Ct=v t.slice(0,d t);v t=v t.slice(d t+2);for(const V of Ct.split(`
`))if(V .startsWith("data: "))try{const Y=JSON.parse(V .slice(6));Y.waiting?b(Y.task_status==="interrupted"?"任务已中断,等待续跑…":Y.task_status==="paused"?"任务已暂停…":"等待会话…"):Y.image&&(f("data:image/jpeg; base64,"+Y.image),b("直播中"));const J={};Y.holder& & (J.holder=Y.holder),Y.url& & (J.url=Y.url),Y.title!==void 0& & (J.title=Y.title),Object.keys(J).length>0& & A(p t=>({...p t||{},...J}))}catch{}d t=v t.indexOf(`
`)}}b("流已断开")}catch(at){if(at.name==="AbortError")return;M(at instanceof Error?at.message:String(at)),b("未开始")}finally{p(!1)}},[r]),ft=d.useCallback(()=>{var z;(z=H.current)==null||z.abort(),p(!1),b("已停止")},[]),Et=d.useCallback(async z=>{if(r)try{const L=await I($.taskBrowserControl(r.id),"POST",{holder:z});A(L),M("")}catch(L){M(L instanceof Error?L.message:String(L))}},[r]),st=d.useCallback(async z=>{if(!r||(g==null?void 0:g.holder)!=="user"||!Z.current)return;const L=Z.current.getBoundingClientRect(),at=Math.round((z.clientX-L.left)/L.width*1280),jt=Math.round((z.clientY-L.top)/L.height*800);try{await I($.taskBrowserInput(r.id),"POST",{type:"mouse_click",x:at,y:jt})}catch(Mt){M(Mt instanceof Error?Mt.message:String(Mt))}},[r,g]),Ht=d.useCallback(async z=>{if(!(!r||(g==null?void 0:g.holder)!=="user")){z.preventDefault();try{z.key.length===1?await I($.taskBrowserInput(r.id),"POST",{type:"type",text:z.key}):await I($.taskBrowserInput(r.id),"POST",{type:"key",key:z.key})}catch(L){M(L instanceof Error?L.message:String(L))}}},[r,g]);if(!r)return c.jsx("div",{className:"muted",children:"点任务行查看详情"});const V=(g==null?void 0:g.holder)||"—",ct=g!==null;return c.jsxs("div",{children:[c.jsxs("div",{style:{display:"flex",gap:8,flexWrap:"wrap",alignItems:"center"},children:[c.jsxs("span",{children:["状态 ",c.jsx("b",{children:O})]}),c.jsxs("span",{className:"muted",children:["会话 ",ct?"活跃":"未激活(轮次结束即消失)"]}),c.jsxs("span",{className:"muted",children:["控制权 ",V]}),g!=null& & g.url?c.jsx("span",{className:"muted",title:g.url,children:g.url.slice(0,80)}):null]}),c.jsxs("div",{style:{display:"flex",gap:8,flexWrap:"wrap",marginTop:8},children:[q?c.jsx("button",{type:"button",onClick:ft,children:"停止观看"}):c.jsx("button",{type:"button",onClick:()=>void it(),children:"开始观看"}),c.jsx("button",{type:"button",onClick:()=>void F(),children:"刷新状态"}),V!=="user"?c.jsx("button",{type:"button",onClick:()=>void Et("user"),disabled:!ct,children:"接管"}):c.jsx("button",{type:"button",onClick:()=>void Et("agent"),children:"交还给 Agent"})]}),E?c.jsx("div",{className:"muted",style:{marginTop:8},children:E}):null,V==="user"?c.jsx("div",{className:"muted",style:{marginTop:8},children:"你已接管:点画面即点击,键盘输入直达页面。交还后 Agent 续跑前会先快照确认你的改动。"}):null,c.jsx("div",{style:{marginTop:8},children:h?c.jsx("img",{ref:Z,src:h,alt:"浏览器实时画面",tabIndex:0,onClick:z=>void st(z),onKeyDown:z=>void Ht(z),style:{width:"100%",maxWidth:1280,cursor:V==="user"?"crosshair":"default",border:"1px solid var(--border, #ccc)"}}):c.jsx("div",{className:"muted",children:ct?"点“开始观看”接入画面流(接管后点画面即点击)":"浏览器会话未激活:任务本轮未开浏览器,或轮次已结束。"})})]})}function Og(){const i=Gt(),[r,h]=d.useState("uncommittedChanges"),[f,g]=d.useState(""),[A,O]=d.useState(""),[b,E]=d.useState("");return c.jsxs(c.Fragment,{children:[c.jsx("h3",{children:"评审队列"}),c.jsxs("select",{"aria-label":"评审目标",value:r,onChange:M=>h(M.target.value),children:[c.jsx("option",{value:"uncommittedChanges",children:"未提交改动(工作区)"}),c.jsx("option",{value:"baseBranch",children:"与分支的差异"}),c.jsx("option",{value:"commit",children:"指定提交"}),c.jsx("option",{value:"custom",children:"自定义评审指令"})]}),c.jsx("input",{className:"stacked",placeholder:"与分支的差异用:分支名(如 main) ",style:{width:"100%"},value:f,onChange:M=>g(M.target.value)}),c.jsx("input",{className:"stacked",placeholder:"指定提交用:提交 sha",style:{width:"100%"},value:A,onChange:M=>O(M.target.value)}),c.jsx("textarea",{placeholder:"自定义评审指令用:评审指令正文",value:b,onChange:M=>E(M.target.value)}),c.jsxs(zt,{children:[c.jsx("button",{className:"primary",onClick:()=>void i.postReview({target_type:r,branch:f.trim()||void 0,sha:A.trim()||void 0,instructions:b.trim()||void 0}),children:"登记评审需求"}),c.jsx("button",{onClick:i.refreshReviews,children:"刷新队列"}),c.jsx("span",{className:"muted",children:i.reviewMsg})]}),c.jsx("div",{className:"muted",children:"本基线只登记评审需求(requested),不自动跑评审;评审是否执行、结果如何,以评审队列里的记录为准。"}),i.reviewError?c.jsx("div",{className:"muted",children:i.reviewError}):i.reviews.length===0?c.jsx("div",{className:"muted",children:"点任务行查看详情后,点“刷新队列”查看评审记录"}):c.jsx(Sn,{children:i.reviews.map(M=>{let q=M.target_type||"";return M.branch& & (q+=": "+M.branch),M.sha& & (q+=": "+String(M.sha).slice(0,12)),M.instructions& & (q+=": "+String(M.instructions).slice(0,80)),c.jsxs("li",{children:[c.jsxs("span",{className:"row-main",children:[c.jsx("b",{children:"评审"})," ",se(M.id)," | ",q," | ",c.jsx("span",{className:"st-"+(M.status||""),children:M.Line truncated
`)}}b("流已断开")}catch(at){if(at.name==="AbortError")return;M(at instanceof Error?at.message:String(at)),b("未开始")}finally{p(!1)}},[r]),ft=d.useCallback(()=>{var z;(z=H.current)==null||z.abort(),p(!1),b("已停止")},[]),Et=d.useCallback(async z=>{if(r)try{const L=await I($.taskBrowserControl(r.id),"POST",{holder:z});A(L),M("")}catch(L){M(L instanceof Error?L.message:String(L))}},[r]),st=d.useCallback(async z=>{if(!r||(g==null?void 0:g.holder)!=="user"||!Z.current)return;const L=Z.current.getBoundingClientRect(),at=Math.round((z.clientX-L.left)/L.width*1280),jt=Math.round((z.clientY-L.top)/L.height*800);try{await I($.taskBrowserInput(r.id),"POST",{type:"mouse_click",x:at,y:jt})}catch(Mt){M(Mt instanceof Error?Mt.message:String(Mt))}},[r,g]),Ht=d.useCallback(async z=>{if(!(!r||(g==null?void 0:g.holder)!=="user")){z.preventDefault();try{z.key.length===1?await I($.taskBrowserInput(r.id),"POST",{type:"type",text:z.key}):await I($.taskBrowserInput(r.id),"POST",{type:"key",key:z.key})}catch(L){M(L instanceof Error?L.message:String(L))}}},[r,g]);if(!r)return c.jsx("div",{className:"muted",children:"点任务行查看详情"});const Q=(g==null?void 0:g.holder)||"—",ct=g!==null;return c.jsxs("div",{children:[c.jsxs("div",{style:{display:"flex",gap:8,flexWrap:"wrap",alignItems:"center"},children:[c.jsxs("span",{children:["状态 ",c.jsx("b",{children:O})]}),c.jsxs("span",{className:"muted",children:["会话 ",ct?"活跃":"未激活(轮次结束即消失)"]}),c.jsxs("span",{className:"muted",children:["控制权 ",Q]}),g!=null& & g.url?c.jsx("span",{className:"muted",title:g.url,children:g.url.slice(0,80)}):null]}),c.jsxs("div",{style:{display:"flex",gap:8,flexWrap:"wrap",marginTop:8},children:[q?c.jsx("button",{type:"button",onClick:ft,children:"停止观看"}):c.jsx("button",{type:"button",onClick:()=>void it(),children:"开始观看"}),c.jsx("button",{type:"button",onClick:()=>void F(),children:"刷新状态"}),Q!=="user"?c.jsx("button",{type:"button",onClick:()=>void Et("user"),disabled:!ct,children:"接管"}):c.jsx("button",{type:"button",onClick:()=>void Et("agent"),children:"交还给 Agent"})]}),N?c.jsx("div",{className:"muted",style:{marginTop:8},children:N}):null,Q==="user"?c.jsx("div",{className:"muted",style:{marginTop:8},children:"你已接管:点画面即点击,键盘输入直达页面。交还后 Agent 续跑前会先快照确认你的改动。"}):null,c.jsx("div",{style:{marginTop:8},children:h?c.jsx("img",{ref:Z,src:h,alt:"浏览器实时画面",tabIndex:0,onClick:z=>void st(z),onKeyDown:z=>void Ht(z),style:{width:"100%",maxWidth:1280,cursor:Q==="user"?"crosshair":"default",border:"1px solid var(--border, #ccc)"}}):c.jsx("div",{className:"muted",children:ct?"点“开始观看”接入画面流(接管后点画面即点击)":"浏览器会话未激活:任务本轮未开浏览器,或轮次已结束。"})})]})}function zg(){const i=Gt(),[r,h]=d.useState("uncommittedChanges"),[f,g]=d.useState(""),[A,O]=d.useState(""),[b,N]=d.useState("");return c.jsxs(c.Fragment,{children:[c.jsx("h3",{children:"评审队列"}),c.jsxs("select",{"aria-label":"评审目标",value:r,onChange:M=>h(M.target.value),children:[c.jsx("option",{value:"uncommittedChanges",children:"未提交改动(工作区)"}),c.jsx("option",{value:"baseBranch",children:"与分支的差异"}),c.jsx("option",{value:"commit",children:"指定提交"}),c.jsx("option",{value:"custom",children:"自定义评审指令"})]}),c.jsx("input",{className:"stacked",placeholder:"与分支的差异用:分支名(如 main) ",style:{width:"100%"},value:f,onChange:M=>g(M.target.value)}),c.jsx("input",{className:"stacked",placeholder:"指定提交用:提交 sha",style:{width:"100%"},value:A,onChange:M=>O(M.target.value)}),c.jsx("textarea",{placeholder:"自定义评审指令用:评审指令正文",value:b,onChange:M=>N(M.target.value)}),c.jsxs(zt,{children:[c.jsx("button",{className:"primary",onClick:()=>void i.postReview({target_type:r,branch:f.trim()||void 0,sha:A.trim()||void 0,instructions:b.trim()||void 0}),children:"登记评审需求"}),c.jsx("button",{onClick:i.refreshReviews,children:"刷新队列"}),c.jsx("span",{className:"muted",children:i.reviewMsg})]}),c.jsx("div",{className:"muted",children:"本基线只登记评审需求(requested),不自动跑评审;评审是否执行、结果如何,以评审队列里的记录为准。"}),i.reviewError?c.jsx("div",{className:"muted",children:i.reviewError}):i.reviews.length===0?c.jsx("div",{className:"muted",children:"点任务行查看详情后,点“刷新队列”查看评审记录"}):c.jsx(Sn,{children:i.reviews.map(M=>{let q=M.target_type||"";return M.branch& & (q+=": "+M.branch),M.sha& & (q+=": "+String(M.sha).slice(0,12)),M.instructions& & (q+=": "+String(M.instructions).slice(0,80)),c.jsxs("li",{children:[c.jsxs("span",{className:"row-main",children:[c.jsx("b",{children:"评审"})," ",se(M.id)," | ",q," | ",c.jsx("span",{className:"st-"+(M.status||""),children:M.Line truncated
< style rel = "stylesheet" crossorigin > : r o o t { - - t e x t : # 1 f 2 3 2 8 ; - - m u t e d : # 6 5 6 d 7 6 ; - - s u b t l e : # 6 e 7 7 8 1 ; - - l i n e : # d 0 d 7 d e ; - - l i n e - m u t e d : # d 8 d e e 4 ; - - p a p e r : # f f f f f f ; - - c a r d : # f f f f f f ; - - s u b t l e - b g : # f 6 f 8 f a ; - - i n s e t - b g : # f 6 f 8 f a ; - - a c c e n t : # 0 9 6 9 d a ; - - a c c e n t - e m p h a s i s : # 0 9 6 9 d a ; - - g r e e n : # 2 d a 4 4 e ; - - g r e e n - h o v e r : # 2 c 9 7 4 b ; - - s u c c e s s : # 1 a 7 f 3 7 ; - - d a n g e r : # d 1 2 4 2 f ; - - d a n g e r - b g : # f f e b e 9 ; - - a t t e n t i o n : # 9 a 6 7 0 0 ; - - d o n e : # 8 2 5 0 d f ; - - s e l e c t e d - b g : # d d f 4 f f ; - - r a d i u s : 6 p x ; - - s h a d o w : 0 1 p x 0 r g b a ( 2 7 , 3 1 , 3 6 , . 0 4 ) ; - - s a n s : - a p p l e - s y s t e m , B l i n k M a c S y s t e m F o n t , " S e g o e U I " , " N o t o S a n s " , H e l v e t i c a , A r i a l , s a n s - s e r i f ; - - m o n o : u i - m o n o s p a c e , S F M o n o - R e g u l a r , S F M o n o - R e g u l a r , M e n l o , C o n s o l a s , " L i b e r a t i o n M o n o " , m o n o s p a c e ; - - c t l : 3 2 p x } * { b o x - s i z i n g : b o r d e r - b o x } h t m l , b o d y , # r o o t { h e i g h t : 1 0 0 % } b o d y { f o n t - f a m i l y : v a r ( - - s a n s ) ; m a r g i n : 0 ; c o l o r : v a r ( - - t e x t ) ; b a c k g r o u n d : # f f f ; l i n e - h e i g h t : 1 . 5 ; f o n t - s i z e : 1 4 p x } a { c o l o r : v a r ( - - a c c e n t ) ; t e x t - u n d e r l i n e - o f f s e t : 3 p x } : f o c u s - v i s i b l e { o u t l i n e : 2 p x s o l i d v a r ( - - a c c e n t ) ; o u t l i n e - o f f s e t : 2 p x } @ m e d i a ( p r e f e r s - r e d u c e d - m o t i o n : r e d u c e ) { * { s c r o l l - b e h a v i o r : a u t o ! i m p o r t a n t ; t r a n s i t i o n : n o n e ! i m p o r t a n t } } . m u t e d { c o l o r : v a r ( - - m u t e d ) ; f o n t - s i z e : 1 2 p x ; l i n e - h e i g h t : 1 . 5 } . e r r { c o l o r : v a r ( - - d a n g e r ) } . o k { c o l o r : v a r ( - - s u c c e s s ) } b u t t o n { c u r s o r : p o i n t e r ; f o n t - w e i g h t : 5 0 0 ; b o r d e r - r a d i u s : v a r ( - - r a d i u s ) ; b o r d e r : 1 p x s o l i d v a r ( - - l i n e ) ; b a c k g r o u n d : # f f f ; c o l o r : v a r ( - - t e x t ) ; b o x - s h a d o w : v a r ( - - s h a d o w ) } b u t t o n : h o v e r { b a c k g r o u n d : v a r ( - - s u b t l e - b g ) } b u t t o n : d i s a b l e d { o p a c i t y : . 4 5 ; c u r s o r : n o t - a l l o w e d ; b o x - s h a d o w : n o n e } b u t t o n . p r i m a r y , b u t t o n . s e a l { b a c k g r o u n d : v a r ( - - g r e e n ) ; b o r d e r - c o l o r : # 1 b 1 f 2 4 2 6 ; c o l o r : # f f f } b u t t o n . p r i m a r y : h o v e r , b u t t o n . s e a l : h o v e r { b a c k g r o u n d : v a r ( - - g r e e n - h o v e r ) } b u t t o n . d a n g e r { c o l o r : v a r ( - - d a n g e r ) ; b o r d e r - c o l o r : v a r ( - - l i n e ) ; b a c k g r o u n d : # f f f } b u t t o n . d a n g e r : h o v e r { b a c k g r o u n d : v a r ( - - d a n g e r - b g ) ; c o l o r : v a r ( - - d a n g e r ) } . i c o n - b t n { w i d t h : 3 2 p x ; h e i g h t : 3 2 p x ; p a d d i n g : 0 ; d i s p l a y : g r i d ; p l a c e - i t e m s : c e n t e r ; b o r d e r : 1 p x s o l i d v a r ( - - l i n e ) ; b o r d e r - r a d i u s : v a r ( - - r a d i u s ) ; b a c k g r o u n d : # f f f ; c o l o r : v a r ( - - t e x t ) ; f o n t - s i z e : 1 6 p x ; l i n e - h e i g h t : 1 } . i c o n - b t n : h o v e r { b a c k g r o u n d : v a r ( - - s u b t l e - b g ) } . d a s h - t o p b a r { p o s i t i o n : s t i c k y ; t o p : 0 ; z - i n d e x : 1 0 ; b a c k g r o u n d : # 2 4 2 9 2 f ; c o l o r : # f f f ; b o r d e r - b o t t o m : 1 p x s o l i d r g b a ( 2 5 5 , 2 5 5 , 2 5 5 , . 1 5 ) ; p a d d i n g : 1 0 p x 2 0 p x 8 p x } . d a s h - t o p b a r . m u t e d { c o l o r : # f f f f f f b f } . d a s h - t o p b a r - r o w { d i s p l a y : f l e x ; g a p : 1 4 p x ; a l i g n - i t e m s : c e n t e r ; f l e x - w r a p : w r a p } . d a s h - b r a n d { f o n t - w e i g h t : 6 0 0 ; f o n t - s i z e : 1 6 p x ; c o l o r : # f f f } . d a s h - s t a t u s { f o n t - s i z e : 1 3 p x ; f o n t - w e i g h t : 6 0 0 ; c o l o r : # f f f f f f b f } . d a s h - s t a t u s . o k { c o l o r : # 2 d a 4 4 e } . d a s h - s t a m p { m a r g i n - l e f t : a u t o } . d a s h - n a v { d i s p l a y : f l e x ; g a p : 4 p x ; f l e x - w r a p : w r a p ; m a r g i n - t o p : 8 p x } . d a s h - n a v a { c o l o r : # f f f ; t e x t - d e c o r a t i o n : n o n e ; f o n t - s i z e : 1 3 p x ; f o n t - w e i g h t : 6 0 0 ; p a d d i n g : 6 p x 1 2 p x ; b o r d e r - r a d i u s : v a r ( - - r a d i u s ) } . d a s h - n a v a : h o v e r { b a c k g r o u n d : # f f f f f f 1 f ; t e x t - d e c o r a t i o n : n o n e } . t a b - n a v b u t t o n { b a c k g r o u n d : t r a n s p a r e n t ; b o r d e r : 0 ; b o x - s h a d o w : n o n e ; c o l o r : # f f f ; f o n t - s i z e : 1 3 p x ; f o n t - w e i g h t : 6 0 0 ; p a d d i n g : 6 p x 1 2 p x ; b o r d e r - r a d i u s : v a r ( - - r a d i u s ) } . t a b - n a v b u t t o n : h o v e r { b a c k g r o u n d : # f f f f f f 1 f } . t a b - n a v b u t t o n . a c t i v e { b a c k g r o u n d : # f f f f f f 2 e } . d a s h - p a g e - t a b s { d i s p l a y : f l e x } . d a s h - p a g e - t a b s > . t a b - c o n t e n t { g r i d - c o l u m n : 1 / - 1 ; m i n - w i d t h : 0 ; d i s p l a y : f l e x ; f l e x - d i r e c t i o n : c o l u m n ; g a p : 2 0 p x } . t a b - w o r k b e n c h { d i s p l a y : g r i d ; g r i d - t e m p l a t e - c o l u m n s : 3 2 0 p x m i n m a x ( 0 , 1 f r ) ; g a p : 2 0 p x ; a l i g n - i t e m s : s t a r t } . t a b - w o r k b e n c h > * { m i n - w i d t h : 0 } @ m e d i a ( m a x - w i d t h : 8 9 9 p x ) { . t a b - w o r k b e n c h { g r i d - t e m p l a t e - c o l u m n s : 1 f r } . t a b - w o r k b e n c h # s e c - d i s p a t c h { o r d e r : 1 } . t a b - w o r k b e n c h # s e c - t a s k s { o r d e r : 2 } . t a b - w o r k b e n c h # s e c - c o n v { o r d e r : 3 } } . d a s h - p a g e { m a x - w i d t h : 1 1 8 0 p x ; m a r g i n : 0 a u t o ; p a d d i n g : 2 0 p x ; d i s p l a y : f l e x ; f l e x - d i r e c t i o n : c o l u m n ; g a p : 2 0 p x } . d a s h - p a g e > * { m i n - w i d t h : 0 } . d a s h - s e c t i o n > * { m i n - w i d t h : 0 } . d a s h - s e c t i o n { s c r o l l - m a r g i n - t o p : 1 3 0 p x ; d i s p l a y : f l e x ; f l e x - d i r e c t i o n : c o l u m n ; g a p : 1 6 p x } . d a s h - s e c t i o n . c a r d { p a d d i n g : 1 6 p x } . d a s h - c a r d s { d i s p l a y : g r i d ; g r i d - t e m p l a t e - c o l u m n s : r e p e a t ( 3 , 1 f r ) ; g a p : 1 2 p x } . d a s h - c a r d { b a c k g r o u n d : # f f f ; b o r d e r : 1 p x s o l i d v a r ( - - l i n e ) ; b o r d e r - r a d i u s : v a r ( - - r a d i u s ) ; p a d d i n g : 1 6 p x ; m i n - w i d t h : 0 } . d a s h - c a r d - l a b e l { c o l o r : v a r ( - - m u t e d ) ; f o n t - s i z e : 1 2 p x ; f o n t - w e i g h t : 6 0 0 } . d a s h - c a r d - v a l u e { f o n t - s i z e : 2 4 p x ; f o n t - w e i g h t : 6 0 0 ; l i n e - h e i g h t : 1 . 3 ; o v e r f l o w - w r a p : a n y w h e r e } . c a r d { b a c k g r o u n d : v a r ( - - c a r d ) ; b o r d e r : 1 p x s o l i d v a r ( - - l i n e ) ; b o r d e r - r a d i u s : v a r ( - - r a d i u s ) ; b o x - s h a d o w : n o n e ; p a d d i n g : 1 6 p x } . c a r d h 2 { f o n t - s i z e : 1 4 p x ; m a r g i n : 0 0 1 2 p x ; f o n t - w e i g h t : 6 0 0 } . c a r d h 3 { f o n t - s i z e : 1 4 p x ; m a r g i n : 2 4 p x 0 1 2 p x ; p a d d i n g - t o p : 1 6 p x ; b o r d e r - t o p : 1 p x s o l i d v a r ( - - l i n e ) ; f o n t - w e i g h t : 6 0 0 } . c a r d h 3 : f i r s t - o f - t y p e { b o r d e r - t o p : 0 ; p a d d i n g - t o p : 0 } . c o m p o s e r h 2 { f o n t - s i z e : 1 6 p x } . c o m p o s e r t e x t a r e a . p r o m p t { m i n - h e i g h t : 1 4 8 p x ; f o n t - s i z e : 1 4 p x ; p a d d i n g : 1 2 p x ; b o r d e r - r a d i u s : v a r ( - - r a d i u s ) } . c o m p o s e r t e x t a r e a . c o o r d { f o n t - f a m i l y : v a r ( - - m o n o ) ; f o n t - s i z e : 1 3 p x } . b a r { d i s p l a y : f l e x ; g a p : 8 p x ; f l e x - w r a p : w r a p ; a l i g n - i t e m s : c e n t e r ; m a r g i n : 1 2 p x 0 } . b a r > b u t t o n , . b a r > l a b e l { d i s p l a y : i n l i n e - f l e x ; a l i g n - i t e m s : c e n t e r ; h e i g h t : v a r ( - - c t l ) ; m i n - h e i g h t : v a r ( - - c t l ) ; p a d d i n g : 0 1 6 p x ; b o x - s i z i n g : b o r d e r - b o x ; w h i t e - s p a c e : n o w r a p } . b a r > i n p u t , . b a r > s e l e c t { h e i g h t : v a r ( - - c t l ) ; m i n - h e i g h t : v a r ( - - c t l ) } i n p u t , s e l e c t , t e x t a r e a , b u t t o n { f o n t : i n h e r i t ; f o n t - s i z e : 1 4 p x ; p a d d i n g : 5 p x 1 2 p x ; b o r d e r - r a d i u s : v a r ( - - r a d i u s ) ; b o r d e r : 1 p x s o l i d v a r ( - - l i n e ) ; b a c k g r o u n d : # f f f ; c o l o r : v a r ( - - t e x t ) } i n p u t : f o c u s , s e l e c t : f o c u s , t e x t a r e a : f o c u s { o u t l i n e : n o n e ; b o r d e r - c o l o r : v a r ( - - a c c e n t ) ; b o x - s h a d o w : 0 0 0 3 p x # 0 9 6 9 d a 4 d } s e l e c t { - m o z - a p p e a r a n c e : n o n e ; a p p e a r a n c e : n o n e ; - w e b k i t - a p p e a r a n c e : n o n e ; c u r s Line truncated
< / head >
< body >