@clawos-dev/clawd 0.2.745 → 0.2.746
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/a2a/mcp-server.cjs +2 -0
- package/dist/app-builder-plugin/mcp-server.cjs +2 -0
- package/dist/cli.cjs +3 -1
- package/dist/cloud-persona-conversations.html +1 -1
- package/dist/owner-ui/assets/{owner-1FXAbqne.js → owner-4xj9PxLW.js} +2 -2
- package/dist/owner-ui/owner.html +1 -1
- package/dist/persona-defaults/persona-app-builder/mcp/clawd-app-builder/mcp-server.cjs +2 -0
- package/dist/persona-defaults/persona-dataclaw-builder/mcp/clawd-app-builder/mcp-server.cjs +2 -0
- package/dist/share-ui/assets/{guest-D6stIexZ.js → guest-BjkTT2JV.js} +1 -1
- package/dist/share-ui/guest.html +1 -1
- package/package.json +1 -1
|
@@ -92,7 +92,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
92
92
|
0 -6px 16px 0 rgba(0, 0, 0, 0.08),
|
|
93
93
|
0 -3px 6px -4px rgba(0, 0, 0, 0.12),
|
|
94
94
|
0 -9px 28px 8px rgba(0, 0, 0, 0.05)
|
|
95
|
-
`,boxShadowTabsOverflowLeft:"inset 10px 0 8px -8px rgba(0, 0, 0, 0.08)",boxShadowTabsOverflowRight:"inset -10px 0 8px -8px rgba(0, 0, 0, 0.08)",boxShadowTabsOverflowTop:"inset 0 10px 8px -8px rgba(0, 0, 0, 0.08)",boxShadowTabsOverflowBottom:"inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08)"}),r)}var oA=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,r=Object.getOwnPropertySymbols(e);s<r.length;s++)t.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(e,r[s])&&(n[r[s]]=e[r[s]]);return n};const Hae={lineHeight:!0,lineHeightSM:!0,lineHeightLG:!0,lineHeightHeading1:!0,lineHeightHeading2:!0,lineHeightHeading3:!0,lineHeightHeading4:!0,lineHeightHeading5:!0,opacityLoading:!0,fontWeightStrong:!0,zIndexPopupBase:!0,zIndexBase:!0,opacityImage:!0},Uae={motionBase:!0,motionUnit:!0},Wae={screenXS:!0,screenXSMin:!0,screenXSMax:!0,screenSM:!0,screenSMMin:!0,screenSMMax:!0,screenMD:!0,screenMDMin:!0,screenMDMax:!0,screenLG:!0,screenLGMin:!0,screenLGMax:!0,screenXL:!0,screenXLMin:!0,screenXLMax:!0,screenXXL:!0,screenXXLMin:!0},u7=(e,t,n)=>{const r=n.getDerivativeToken(e),{override:s}=t,i=oA(t,["override"]);let o=Object.assign(Object.assign({},r),{override:s});return o=c7(o),i&&Object.entries(i).forEach(([l,c])=>{const{theme:u}=c,d=oA(c,["theme"]);let h=d;u&&(h=u7(Object.assign(Object.assign({},o),d),{override:d},u)),o[l]=h}),o};function d7(){const{token:e,hashed:t,theme:n,override:r,cssVar:s}=K.useContext(a7),i=`${Fae}-${t||""}`,o=n||o7,[l,c,u]=Roe(o,[_g,e],{salt:i,override:r,getComputedToken:u7,formatToken:c7,cssVar:s&&{prefix:s.prefix,key:s.key,unitless:Hae,ignore:Uae,preserve:Wae}});return[o,u,t?c:"",l,s]}const Vae=()=>({display:"inline-flex",alignItems:"center",color:"inherit",fontStyle:"normal",lineHeight:0,textAlign:"center",textTransform:"none",verticalAlign:"-0.125em",textRendering:"optimizeLegibility","-webkit-font-smoothing":"antialiased","-moz-osx-font-smoothing":"grayscale","> *":{lineHeight:1},svg:{display:"inline-block"}}),qae=e=>({[`.${e}`]:Object.assign(Object.assign({},Vae()),{[`.${e} .${e}-icon`]:{display:"block"}})}),Kae=(e,t)=>{const[n,r]=d7();return iae({token:r,hashId:"",path:["ant-design-icons",e],nonce:()=>t==null?void 0:t.nonce,layer:{name:"antd"}},()=>qae(e))},Gae=Object.assign({},Nf),{useId:aA}=Gae,Yae=()=>"",Xae=typeof aA>"u"?Yae:aA;function Zae(e,t,n){var r;const s=e||{},i=s.inherit===!1||!t?Object.assign(Object.assign({},Eb),{hashed:(r=t==null?void 0:t.hashed)!==null&&r!==void 0?r:Eb.hashed,cssVar:t==null?void 0:t.cssVar}):t,o=Xae();return T9(()=>{var l,c;if(!e)return t;const u=Object.assign({},i.components);Object.keys(e.components||{}).forEach(f=>{u[f]=Object.assign(Object.assign({},u[f]),e.components[f])});const d=`css-var-${o.replace(/:/g,"")}`,h=((l=s.cssVar)!==null&&l!==void 0?l:i.cssVar)&&Object.assign(Object.assign(Object.assign({prefix:n==null?void 0:n.prefixCls},typeof i.cssVar=="object"?i.cssVar:{}),typeof s.cssVar=="object"?s.cssVar:{}),{key:typeof s.cssVar=="object"&&((c=s.cssVar)===null||c===void 0?void 0:c.key)||d});return Object.assign(Object.assign(Object.assign({},i),s),{token:Object.assign(Object.assign({},i.token),s.token),components:u,cssVar:h})},[s,i],(l,c)=>l.some((u,d)=>{const h=c[d];return!ioe(u,h,!0)}))}var Qae=["children"],h7=p.createContext({});function Jae(e){var t=e.children,n=ci(e,Qae);return p.createElement(h7.Provider,{value:n},t)}var ele=function(e){Ar(n,e);var t=P9(n);function n(){return Tn(this,n),t.apply(this,arguments)}return Rn(n,[{key:"render",value:function(){return this.props.children}}]),n}(p.Component);function tle(e){var t=p.useReducer(function(l){return l+1},0),n=kt(t,2),r=n[1],s=p.useRef(e),i=YN(function(){return s.current}),o=YN(function(l){s.current=typeof l=="function"?l(s.current):l,r()});return[i,o]}var Ll="none",r0="appear",s0="enter",i0="leave",lA="none",vo="prepare",ch="start",uh="active",$5="end",f7="prepared";function cA(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit".concat(e)]="webkit".concat(t),n["Moz".concat(e)]="moz".concat(t),n["ms".concat(e)]="MS".concat(t),n["O".concat(e)]="o".concat(t.toLowerCase()),n}function nle(e,t){var n={animationend:cA("Animation","AnimationEnd"),transitionend:cA("Transition","TransitionEnd")};return e&&("AnimationEvent"in t||delete n.animationend.animation,"TransitionEvent"in t||delete n.transitionend.transition),n}var rle=nle(pl(),typeof window<"u"?window:{}),p7={};if(pl()){var sle=document.createElement("div");p7=sle.style}var o0={};function m7(e){if(o0[e])return o0[e];var t=rle[e];if(t)for(var n=Object.keys(t),r=n.length,s=0;s<r;s+=1){var i=n[s];if(Object.prototype.hasOwnProperty.call(t,i)&&i in p7)return o0[e]=t[i],o0[e]}return""}var g7=m7("animationend"),x7=m7("transitionend"),v7=!!(g7&&x7),uA=g7||"animationend",dA=x7||"transitionend";function hA(e,t){if(!e)return null;if(In(e)==="object"){var n=t.replace(/-\w/g,function(r){return r[1].toUpperCase()});return e[n]}return"".concat(e,"-").concat(t)}const ile=function(e){var t=p.useRef();function n(s){s&&(s.removeEventListener(dA,e),s.removeEventListener(uA,e))}function r(s){t.current&&t.current!==s&&n(t.current),s&&s!==t.current&&(s.addEventListener(dA,e),s.addEventListener(uA,e),t.current=s)}return p.useEffect(function(){return function(){n(t.current)}},[]),[r,n]};var y7=pl()?p.useLayoutEffect:p.useEffect;const ole=function(){var e=p.useRef(null);function t(){NN.cancel(e.current)}function n(r){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:2;t();var i=NN(function(){s<=1?r({isCanceled:function(){return i!==e.current}}):n(r,s-1)});e.current=i}return p.useEffect(function(){return function(){t()}},[]),[n,t]};var ale=[vo,ch,uh,$5],lle=[vo,f7],b7=!1,cle=!0;function w7(e){return e===uh||e===$5}const ule=function(e,t,n){var r=XN(lA),s=kt(r,2),i=s[0],o=s[1],l=ole(),c=kt(l,2),u=c[0],d=c[1];function h(){o(vo,!0)}var f=t?lle:ale;return y7(function(){if(i!==lA&&i!==$5){var m=f.indexOf(i),g=f[m+1],x=n(i);x===b7?o(g,!0):g&&u(function(b){function y(){b.isCanceled()||o(g,!0)}x===!0?y():Promise.resolve(x).then(y)})}},[e,i]),p.useEffect(function(){return function(){d()}},[]),[h,i]};function dle(e,t,n,r){var s=r.motionEnter,i=s===void 0?!0:s,o=r.motionAppear,l=o===void 0?!0:o,c=r.motionLeave,u=c===void 0?!0:c,d=r.motionDeadline,h=r.motionLeaveImmediately,f=r.onAppearPrepare,m=r.onEnterPrepare,g=r.onLeavePrepare,x=r.onAppearStart,b=r.onEnterStart,y=r.onLeaveStart,v=r.onAppearActive,w=r.onEnterActive,_=r.onLeaveActive,S=r.onAppearEnd,k=r.onEnterEnd,C=r.onLeaveEnd,j=r.onVisibleChanged,T=XN(),E=kt(T,2),R=E[0],P=E[1],M=tle(Ll),$=kt(M,2),B=$[0],z=$[1],W=XN(null),L=kt(W,2),A=L[0],I=L[1],q=B(),H=p.useRef(!1),O=p.useRef(null);function V(){return n()}var X=p.useRef(!1);function Y(){z(Ll),I(null,!0)}var ee=YN(function(Le){var Pe=B();if(Pe!==Ll){var Ve=V();if(!(Le&&!Le.deadline&&Le.target!==Ve)){var yt=X.current,_t;Pe===r0&&yt?_t=S==null?void 0:S(Ve,Le):Pe===s0&&yt?_t=k==null?void 0:k(Ve,Le):Pe===i0&&yt&&(_t=C==null?void 0:C(Ve,Le)),yt&&_t!==!1&&Y()}}}),ue=ile(ee),Q=kt(ue,1),he=Q[0],we=function(Pe){switch(Pe){case r0:return Ze(Ze(Ze({},vo,f),ch,x),uh,v);case s0:return Ze(Ze(Ze({},vo,m),ch,b),uh,w);case i0:return Ze(Ze(Ze({},vo,g),ch,y),uh,_);default:return{}}},oe=p.useMemo(function(){return we(q)},[q]),ce=ule(q,!e,function(Le){if(Le===vo){var Pe=oe[vo];return Pe?Pe(V()):b7}if(ve in oe){var Ve;I(((Ve=oe[ve])===null||Ve===void 0?void 0:Ve.call(oe,V(),null))||null)}return ve===uh&&q!==Ll&&(he(V()),d>0&&(clearTimeout(O.current),O.current=setTimeout(function(){ee({deadline:!0})},d))),ve===f7&&Y(),cle}),ne=kt(ce,2),te=ne[0],ve=ne[1],Oe=w7(ve);X.current=Oe;var Qe=p.useRef(null);y7(function(){if(!(H.current&&Qe.current===t)){P(t);var Le=H.current;H.current=!0;var Pe;!Le&&t&&l&&(Pe=r0),Le&&t&&i&&(Pe=s0),(Le&&!t&&u||!Le&&h&&!t&&u)&&(Pe=i0);var Ve=we(Pe);Pe&&(e||Ve[vo])?(z(Pe),te()):z(Ll),Qe.current=t}},[t]),p.useEffect(function(){(q===r0&&!l||q===s0&&!i||q===i0&&!u)&&z(Ll)},[l,i,u]),p.useEffect(function(){return function(){H.current=!1,clearTimeout(O.current)}},[]);var ge=p.useRef(!1);p.useEffect(function(){R&&(ge.current=!0),R!==void 0&&q===Ll&&((ge.current||R)&&(j==null||j(R)),ge.current=!0)},[R,q]);var Ne=A;return oe[vo]&&ve===ch&&(Ne=Ot({transition:"none"},Ne)),[q,ve,Ne,R??t]}function hle(e){var t=e;In(e)==="object"&&(t=e.transitionSupport);function n(s,i){return!!(s.motionName&&t&&i!==!1)}var r=p.forwardRef(function(s,i){var o=s.visible,l=o===void 0?!0:o,c=s.removeOnLeave,u=c===void 0?!0:c,d=s.forceRender,h=s.children,f=s.motionName,m=s.leavedClassName,g=s.eventProps,x=p.useContext(h7),b=x.motion,y=n(s,b),v=p.useRef(),w=p.useRef();function _(){try{return v.current instanceof HTMLElement?v.current:Wie(w.current)}catch{return null}}var S=dle(y,l,_,s),k=kt(S,4),C=k[0],j=k[1],T=k[2],E=k[3],R=p.useRef(E);E&&(R.current=!0);var P=p.useCallback(function(L){v.current=L,Gie(i,L)},[i]),M,$=Ot(Ot({},g),{},{visible:l});if(!h)M=null;else if(C===Ll)E?M=h(Ot({},$),P):!u&&R.current&&m?M=h(Ot(Ot({},$),{},{className:m}),P):d||!u&&!m?M=h(Ot(Ot({},$),{},{style:{display:"none"}}),P):M=null;else{var B;j===vo?B="prepare":w7(j)?B="active":j===ch&&(B="start");var z=hA(f,"".concat(C,"-").concat(B));M=h(Ot(Ot({},$),{},{className:Mie(hA(f,C),Ze(Ze({},z,z&&B),f,typeof f=="string")),style:T}),P)}if(p.isValidElement(M)&&Yie(M)){var W=Xie(M);W||(M=p.cloneElement(M,{ref:P}))}return p.createElement(ele,{ref:w},M)});return r.displayName="CSSMotion",r}const fle=hle(v7);var ZN="add",QN="keep",JN="remove",Nk="removed";function ple(e){var t;return e&&In(e)==="object"&&"key"in e?t=e:t={key:e},Ot(Ot({},t),{},{key:String(t.key)})}function ej(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return e.map(ple)}function mle(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],n=[],r=0,s=t.length,i=ej(e),o=ej(t);i.forEach(function(u){for(var d=!1,h=r;h<s;h+=1){var f=o[h];if(f.key===u.key){r<h&&(n=n.concat(o.slice(r,h).map(function(m){return Ot(Ot({},m),{},{status:ZN})})),r=h),n.push(Ot(Ot({},f),{},{status:QN})),r+=1,d=!0;break}}d||n.push(Ot(Ot({},u),{},{status:JN}))}),r<s&&(n=n.concat(o.slice(r).map(function(u){return Ot(Ot({},u),{},{status:ZN})})));var l={};n.forEach(function(u){var d=u.key;l[d]=(l[d]||0)+1});var c=Object.keys(l).filter(function(u){return l[u]>1});return c.forEach(function(u){n=n.filter(function(d){var h=d.key,f=d.status;return h!==u||f!==JN}),n.forEach(function(d){d.key===u&&(d.status=QN)})}),n}var gle=["component","children","onVisibleChanged","onAllRemoved"],xle=["status"],vle=["eventProps","visible","children","motionName","motionAppear","motionEnter","motionLeave","motionLeaveImmediately","motionDeadline","removeOnLeave","leavedClassName","onAppearPrepare","onAppearStart","onAppearActive","onAppearEnd","onEnterStart","onEnterActive","onEnterEnd","onLeaveStart","onLeaveActive","onLeaveEnd"];function yle(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:fle,n=function(r){Ar(i,r);var s=P9(i);function i(){var o;Tn(this,i);for(var l=arguments.length,c=new Array(l),u=0;u<l;u++)c[u]=arguments[u];return o=s.call.apply(s,[this].concat(c)),Ze(kN(o),"state",{keyEntities:[]}),Ze(kN(o),"removeKey",function(d){o.setState(function(h){var f=h.keyEntities.map(function(m){return m.key!==d?m:Ot(Ot({},m),{},{status:Nk})});return{keyEntities:f}},function(){var h=o.state.keyEntities,f=h.filter(function(m){var g=m.status;return g!==Nk}).length;f===0&&o.props.onAllRemoved&&o.props.onAllRemoved()})}),o}return Rn(i,[{key:"render",value:function(){var l=this,c=this.state.keyEntities,u=this.props,d=u.component,h=u.children,f=u.onVisibleChanged;u.onAllRemoved;var m=ci(u,gle),g=d||p.Fragment,x={};return vle.forEach(function(b){x[b]=m[b],delete m[b]}),delete m.keys,p.createElement(g,m,c.map(function(b,y){var v=b.status,w=ci(b,xle),_=v===ZN||v===QN;return p.createElement(t,St({},x,{key:w.key,visible:_,eventProps:w,onVisibleChanged:function(k){f==null||f(k,{key:w.key}),k||l.removeKey(w.key)}}),function(S,k){return h(Ot(Ot({},S),{},{index:y}),k)})}))}}],[{key:"getDerivedStateFromProps",value:function(l,c){var u=l.keys,d=c.keyEntities,h=ej(u),f=mle(d,h);return{keyEntities:f.filter(function(m){var g=d.find(function(x){var b=x.key;return m.key===b});return!(g&&g.status===Nk&&m.status===JN)})}}}]),i}(p.Component);return Ze(n,"defaultProps",{component:"div"}),n}yle(v7);const fA=p.createContext(!0);function ble(e){const t=p.useContext(fA),{children:n}=e,[,r]=d7(),{motion:s}=r,i=p.useRef(!1);return i.current||(i.current=t!==s),i.current?p.createElement(fA.Provider,{value:s},p.createElement(Jae,{motion:s},n)):n}const wle=()=>null;var _le=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,r=Object.getOwnPropertySymbols(e);s<r.length;s++)t.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(e,r[s])&&(n[r[s]]=e[r[s]]);return n};const Sle=["getTargetContainer","getPopupContainer","renderEmpty","input","pagination","form","select","button"];let _7;function kle(){return _7||KN}function Cle(e){return Object.keys(e).some(t=>t.endsWith("Color"))}const Nle=e=>{const{prefixCls:t,iconPrefixCls:n,theme:r,holderRender:s}=e;t!==void 0&&(_7=t),r&&Cle(r)&&Aae(kle(),r)},jle=e=>{const{children:t,csp:n,autoInsertSpaceInButton:r,alert:s,anchor:i,form:o,locale:l,componentSize:c,direction:u,space:d,splitter:h,virtual:f,dropdownMatchSelectWidth:m,popupMatchSelectWidth:g,popupOverflow:x,legacyLocale:b,parentContext:y,iconPrefixCls:v,theme:w,componentDisabled:_,segmented:S,statistic:k,spin:C,calendar:j,carousel:T,cascader:E,collapse:R,typography:P,checkbox:M,descriptions:$,divider:B,drawer:z,skeleton:W,steps:L,image:A,layout:I,list:q,mentions:H,modal:O,progress:V,result:X,slider:Y,breadcrumb:ee,menu:ue,pagination:Q,input:he,textArea:we,empty:oe,badge:ce,radio:ne,rate:te,switch:ve,transfer:Oe,avatar:Qe,message:ge,tag:Ne,table:Le,card:Pe,tabs:Ve,timeline:yt,timePicker:_t,upload:ie,notification:le,tree:me,colorPicker:Ke,datePicker:qe,rangePicker:ft,flex:nn,wave:Wt,dropdown:Ge,warning:je,tour:Re,tooltip:ct,popover:Ct,popconfirm:sn,floatButton:be,floatButtonGroup:re,variant:Me,inputNumber:it,treeSelect:ut}=e,ht=p.useCallback((Rt,Ht)=>{const{prefixCls:$r}=e;if(Ht)return Ht;const rr=$r||y.getPrefixCls("");return Rt?`${rr}-${Rt}`:rr},[y.getPrefixCls,e.prefixCls]),Et=v||y.iconPrefixCls||l7,Lt=n||y.csp;Kae(Et,Lt);const on=Zae(w,y.theme,{prefixCls:ht("")}),Yn={csp:Lt,autoInsertSpaceInButton:r,alert:s,anchor:i,locale:l||b,direction:u,space:d,splitter:h,virtual:f,popupMatchSelectWidth:g??m,popupOverflow:x,getPrefixCls:ht,iconPrefixCls:Et,theme:on,segmented:S,statistic:k,spin:C,calendar:j,carousel:T,cascader:E,collapse:R,typography:P,checkbox:M,descriptions:$,divider:B,drawer:z,skeleton:W,steps:L,image:A,input:he,textArea:we,layout:I,list:q,mentions:H,modal:O,progress:V,result:X,slider:Y,breadcrumb:ee,menu:ue,pagination:Q,empty:oe,badge:ce,radio:ne,rate:te,switch:ve,transfer:Oe,avatar:Qe,message:ge,tag:Ne,table:Le,card:Pe,tabs:Ve,timeline:yt,timePicker:_t,upload:ie,notification:le,tree:me,colorPicker:Ke,datePicker:qe,rangePicker:ft,flex:nn,wave:Wt,dropdown:Ge,warning:je,tour:Re,tooltip:ct,popover:Ct,popconfirm:sn,floatButton:be,floatButtonGroup:re,variant:Me,inputNumber:it,treeSelect:ut},Tt=Object.assign({},y);Object.keys(Yn).forEach(Rt=>{Yn[Rt]!==void 0&&(Tt[Rt]=Yn[Rt])}),Sle.forEach(Rt=>{const Ht=e[Rt];Ht&&(Tt[Rt]=Ht)}),typeof r<"u"&&(Tt.button=Object.assign({autoInsertSpace:r},Tt.button));const _n=T9(()=>Tt,Tt,(Rt,Ht)=>{const $r=Object.keys(Rt),rr=Object.keys(Ht);return $r.length!==rr.length||$r.some(Xn=>Rt[Xn]!==Ht[Xn])}),{layer:fn}=p.useContext(Sw),Dn=p.useMemo(()=>({prefixCls:Et,csp:Lt,layer:fn?"antd":void 0}),[Et,Lt,fn]);let zt=p.createElement(p.Fragment,null,p.createElement(wle,{dropdownMatchSelectWidth:m}),t);const _e=p.useMemo(()=>{var Rt,Ht,$r,rr;return hae(((Rt=Nw.Form)===null||Rt===void 0?void 0:Rt.defaultValidateMessages)||{},(($r=(Ht=_n.locale)===null||Ht===void 0?void 0:Ht.Form)===null||$r===void 0?void 0:$r.defaultValidateMessages)||{},((rr=_n.form)===null||rr===void 0?void 0:rr.validateMessages)||{},(o==null?void 0:o.validateMessages)||{})},[_n,o==null?void 0:o.validateMessages]);Object.keys(_e).length>0&&(zt=p.createElement(pae.Provider,{value:_e},zt)),l&&(zt=p.createElement(xae,{locale:l,_ANT_MARK__:gae},zt)),zt=p.createElement(cae.Provider,{value:Dn},zt),c&&(zt=p.createElement(Dae,{size:c},zt)),zt=p.createElement(ble,null,zt);const pt=p.useMemo(()=>{const Rt=on||{},{algorithm:Ht,token:$r,components:rr,cssVar:Xn}=Rt,ro=_le(Rt,["algorithm","token","components","cssVar"]),wi=Ht&&(!Array.isArray(Ht)||Ht.length>0)?IN(Ht):o7,_i={};Object.entries(rr||{}).forEach(([so,Si])=>{const Gt=Object.assign({},Si);"algorithm"in Gt&&(Gt.algorithm===!0?Gt.theme=wi:(Array.isArray(Gt.algorithm)||typeof Gt.algorithm=="function")&&(Gt.theme=IN(Gt.algorithm)),delete Gt.algorithm),_i[so]=Gt});const wl=Object.assign(Object.assign({},_g),$r);return Object.assign(Object.assign({},ro),{theme:wi,token:wl,components:_i,override:Object.assign({override:wl},_i),cssVar:Xn})},[on]);return w&&(zt=p.createElement(a7.Provider,{value:pt},zt)),_n.warning&&(zt=p.createElement(fae.Provider,{value:_n.warning},zt)),_!==void 0&&(zt=p.createElement(Oae,{disabled:_},zt)),p.createElement(jw.Provider,{value:_n},zt)},Tf=e=>{const t=p.useContext(jw),n=p.useContext(n7);return p.createElement(jle,Object.assign({parentContext:t,legacyLocale:n},e))};Tf.ConfigContext=jw;Tf.SizeContext=Sg;Tf.config=Nle;Tf.useConfig=$ae;Object.defineProperty(Tf,"SizeContext",{get:()=>Sg});var S7={exports:{}};(function(e,t){(function(n,r){e.exports=r()})(Hr,function(){var n=1e3,r=6e4,s=36e5,i="millisecond",o="second",l="minute",c="hour",u="day",d="week",h="month",f="quarter",m="year",g="date",x="Invalid Date",b=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|YYYY|YY|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,v={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function($){var B=["th","st","nd","rd"],z=$%100;return"["+$+(B[(z-20)%10]||B[z]||B[0])+"]"}},w=function($,B,z){var W=String($);return!W||W.length>=B?$:""+Array(B+1-W.length).join(z)+$},_={s:w,z:function($){var B=-$.utcOffset(),z=Math.abs(B),W=Math.floor(z/60),L=z%60;return(B<=0?"+":"-")+w(W,2,"0")+":"+w(L,2,"0")},m:function $(B,z){if(B.date()<z.date())return-$(z,B);var W=12*(z.year()-B.year())+(z.month()-B.month()),L=B.clone().add(W,h),A=z-L<0,I=B.clone().add(W+(A?-1:1),h);return+(-(W+(z-L)/(A?L-I:I-L))||0)},a:function($){return $<0?Math.ceil($)||0:Math.floor($)},p:function($){return{M:h,y:m,w:d,d:u,D:g,h:c,m:l,s:o,ms:i,Q:f}[$]||String($||"").toLowerCase().replace(/s$/,"")},u:function($){return $===void 0}},S="en",k={};k[S]=v;var C="$isDayjsObject",j=function($){return $ instanceof P||!(!$||!$[C])},T=function $(B,z,W){var L;if(!B)return S;if(typeof B=="string"){var A=B.toLowerCase();k[A]&&(L=A),z&&(k[A]=z,L=A);var I=B.split("-");if(!L&&I.length>1)return $(I[0])}else{var q=B.name;k[q]=B,L=q}return!W&&L&&(S=L),L||!W&&S},E=function($,B){if(j($))return $.clone();var z=typeof B=="object"?B:{};return z.date=$,z.args=arguments,new P(z)},R=_;R.l=T,R.i=j,R.w=function($,B){return E($,{locale:B.$L,utc:B.$u,x:B.$x,$offset:B.$offset})};var P=function(){function $(z){this.$L=T(z.locale,null,!0),this.parse(z),this.$x=this.$x||z.x||{},this[C]=!0}var B=$.prototype;return B.parse=function(z){this.$d=function(W){var L=W.date,A=W.utc;if(L===null)return new Date(NaN);if(R.u(L))return new Date;if(L instanceof Date)return new Date(L);if(typeof L=="string"&&!/Z$/i.test(L)){var I=L.match(b);if(I){var q=I[2]-1||0,H=(I[7]||"0").substring(0,3);return A?new Date(Date.UTC(I[1],q,I[3]||1,I[4]||0,I[5]||0,I[6]||0,H)):new Date(I[1],q,I[3]||1,I[4]||0,I[5]||0,I[6]||0,H)}}return new Date(L)}(z),this.init()},B.init=function(){var z=this.$d;this.$y=z.getFullYear(),this.$M=z.getMonth(),this.$D=z.getDate(),this.$W=z.getDay(),this.$H=z.getHours(),this.$m=z.getMinutes(),this.$s=z.getSeconds(),this.$ms=z.getMilliseconds()},B.$utils=function(){return R},B.isValid=function(){return this.$d.toString()!==x},B.isSame=function(z,W){var L=E(z);return this.startOf(W)<=L&&L<=this.endOf(W)},B.isAfter=function(z,W){return E(z)<this.startOf(W)},B.isBefore=function(z,W){return this.endOf(W)<E(z)},B.$g=function(z,W,L){return R.u(z)?this[W]:this.set(L,z)},B.unix=function(){return Math.floor(this.valueOf()/1e3)},B.valueOf=function(){return this.$d.getTime()},B.startOf=function(z,W){var L=this,A=!!R.u(W)||W,I=R.p(z),q=function(Q,he){var we=R.w(L.$u?Date.UTC(L.$y,he,Q):new Date(L.$y,he,Q),L);return A?we:we.endOf(u)},H=function(Q,he){return R.w(L.toDate()[Q].apply(L.toDate("s"),(A?[0,0,0,0]:[23,59,59,999]).slice(he)),L)},O=this.$W,V=this.$M,X=this.$D,Y="set"+(this.$u?"UTC":"");switch(I){case m:return A?q(1,0):q(31,11);case h:return A?q(1,V):q(0,V+1);case d:var ee=this.$locale().weekStart||0,ue=(O<ee?O+7:O)-ee;return q(A?X-ue:X+(6-ue),V);case u:case g:return H(Y+"Hours",0);case c:return H(Y+"Minutes",1);case l:return H(Y+"Seconds",2);case o:return H(Y+"Milliseconds",3);default:return this.clone()}},B.endOf=function(z){return this.startOf(z,!1)},B.$set=function(z,W){var L,A=R.p(z),I="set"+(this.$u?"UTC":""),q=(L={},L[u]=I+"Date",L[g]=I+"Date",L[h]=I+"Month",L[m]=I+"FullYear",L[c]=I+"Hours",L[l]=I+"Minutes",L[o]=I+"Seconds",L[i]=I+"Milliseconds",L)[A],H=A===u?this.$D+(W-this.$W):W;if(A===h||A===m){var O=this.clone().set(g,1);O.$d[q](H),O.init(),this.$d=O.set(g,Math.min(this.$D,O.daysInMonth())).$d}else q&&this.$d[q](H);return this.init(),this},B.set=function(z,W){return this.clone().$set(z,W)},B.get=function(z){return this[R.p(z)]()},B.add=function(z,W){var L,A=this;z=Number(z);var I=R.p(W),q=function(V){var X=E(A);return R.w(X.date(X.date()+Math.round(V*z)),A)};if(I===h)return this.set(h,this.$M+z);if(I===m)return this.set(m,this.$y+z);if(I===u)return q(1);if(I===d)return q(7);var H=(L={},L[l]=r,L[c]=s,L[o]=n,L)[I]||1,O=this.$d.getTime()+z*H;return R.w(O,this)},B.subtract=function(z,W){return this.add(-1*z,W)},B.format=function(z){var W=this,L=this.$locale();if(!this.isValid())return L.invalidDate||x;var A=z||"YYYY-MM-DDTHH:mm:ssZ",I=R.z(this),q=this.$H,H=this.$m,O=this.$M,V=L.weekdays,X=L.months,Y=L.meridiem,ee=function(he,we,oe,ce){return he&&(he[we]||he(W,A))||oe[we].slice(0,ce)},ue=function(he){return R.s(q%12||12,he,"0")},Q=Y||function(he,we,oe){var ce=he<12?"AM":"PM";return oe?ce.toLowerCase():ce};return A.replace(y,function(he,we){return we||function(oe){switch(oe){case"YY":return String(W.$y).slice(-2);case"YYYY":return R.s(W.$y,4,"0");case"M":return O+1;case"MM":return R.s(O+1,2,"0");case"MMM":return ee(L.monthsShort,O,X,3);case"MMMM":return ee(X,O);case"D":return W.$D;case"DD":return R.s(W.$D,2,"0");case"d":return String(W.$W);case"dd":return ee(L.weekdaysMin,W.$W,V,2);case"ddd":return ee(L.weekdaysShort,W.$W,V,3);case"dddd":return V[W.$W];case"H":return String(q);case"HH":return R.s(q,2,"0");case"h":return ue(1);case"hh":return ue(2);case"a":return Q(q,H,!0);case"A":return Q(q,H,!1);case"m":return String(H);case"mm":return R.s(H,2,"0");case"s":return String(W.$s);case"ss":return R.s(W.$s,2,"0");case"SSS":return R.s(W.$ms,3,"0");case"Z":return I}return null}(he)||I.replace(":","")})},B.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},B.diff=function(z,W,L){var A,I=this,q=R.p(W),H=E(z),O=(H.utcOffset()-this.utcOffset())*r,V=this-H,X=function(){return R.m(I,H)};switch(q){case m:A=X()/12;break;case h:A=X();break;case f:A=X()/3;break;case d:A=(V-O)/6048e5;break;case u:A=(V-O)/864e5;break;case c:A=V/s;break;case l:A=V/r;break;case o:A=V/n;break;default:A=V}return L?A:R.a(A)},B.daysInMonth=function(){return this.endOf(h).$D},B.$locale=function(){return k[this.$L]},B.locale=function(z,W){if(!z)return this.$L;var L=this.clone(),A=T(z,W,!0);return A&&(L.$L=A),L},B.clone=function(){return R.w(this.$d,this)},B.toDate=function(){return new Date(this.valueOf())},B.toJSON=function(){return this.isValid()?this.toISOString():null},B.toISOString=function(){return this.$d.toISOString()},B.toString=function(){return this.$d.toUTCString()},$}(),M=P.prototype;return E.prototype=M,[["$ms",i],["$s",o],["$m",l],["$H",c],["$W",u],["$M",h],["$y",m],["$D",g]].forEach(function($){M[$[1]]=function(B){return this.$g(B,$[0],$[1])}}),E.extend=function($,B){return $.$i||($(B,P,E),$.$i=!0),E},E.locale=T,E.isDayjs=j,E.unix=function($){return E(1e3*$)},E.en=k[S],E.Ls=k,E.p={},E})})(S7);var Ele=S7.exports;const tj=vn(Ele);var k7={exports:{}};(function(e,t){(function(n,r){e.exports=r()})(Hr,function(){return function(n,r,s){var i=r.prototype,o=function(h){return h&&(h.indexOf?h:h.s)},l=function(h,f,m,g,x){var b=h.name?h:h.$locale(),y=o(b[f]),v=o(b[m]),w=y||v.map(function(S){return S.slice(0,g)});if(!x)return w;var _=b.weekStart;return w.map(function(S,k){return w[(k+(_||0))%7]})},c=function(){return s.Ls[s.locale()]},u=function(h,f){return h.formats[f]||function(m){return m.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(g,x,b){return x||b.slice(1)})}(h.formats[f.toUpperCase()])},d=function(){var h=this;return{months:function(f){return f?f.format("MMMM"):l(h,"months")},monthsShort:function(f){return f?f.format("MMM"):l(h,"monthsShort","months",3)},firstDayOfWeek:function(){return h.$locale().weekStart||0},weekdays:function(f){return f?f.format("dddd"):l(h,"weekdays")},weekdaysMin:function(f){return f?f.format("dd"):l(h,"weekdaysMin","weekdays",2)},weekdaysShort:function(f){return f?f.format("ddd"):l(h,"weekdaysShort","weekdays",3)},longDateFormat:function(f){return u(h.$locale(),f)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};i.localeData=function(){return d.bind(this)()},s.localeData=function(){var h=c();return{firstDayOfWeek:function(){return h.weekStart||0},weekdays:function(){return s.weekdays()},weekdaysShort:function(){return s.weekdaysShort()},weekdaysMin:function(){return s.weekdaysMin()},months:function(){return s.months()},monthsShort:function(){return s.monthsShort()},longDateFormat:function(f){return u(h,f)},meridiem:h.meridiem,ordinal:h.ordinal}},s.months=function(){return l(c(),"months")},s.monthsShort=function(){return l(c(),"monthsShort","months",3)},s.weekdays=function(h){return l(c(),"weekdays",null,null,h)},s.weekdaysShort=function(h){return l(c(),"weekdaysShort","weekdays",3,h)},s.weekdaysMin=function(h){return l(c(),"weekdaysMin","weekdays",2,h)}}})})(k7);var Ile=k7.exports;const Tle=vn(Ile),Ei=(e,t)=>new Hn(e).setA(t).toRgbString(),Id=(e,t)=>new Hn(e).lighten(t).toHexString(),Rle=e=>{const t=Hh(e,{theme:"dark"});return{1:t[0],2:t[1],3:t[2],4:t[3],5:t[6],6:t[5],7:t[4],8:t[6],9:t[5],10:t[4]}},Mle=(e,t)=>{const n=e||"#000",r=t||"#fff";return{colorBgBase:n,colorTextBase:r,colorText:Ei(r,.85),colorTextSecondary:Ei(r,.65),colorTextTertiary:Ei(r,.45),colorTextQuaternary:Ei(r,.25),colorFill:Ei(r,.18),colorFillSecondary:Ei(r,.12),colorFillTertiary:Ei(r,.08),colorFillQuaternary:Ei(r,.04),colorBgSolid:Ei(r,.95),colorBgSolidHover:Ei(r,1),colorBgSolidActive:Ei(r,.9),colorBgElevated:Id(n,12),colorBgContainer:Id(n,8),colorBgLayout:Id(n,0),colorBgSpotlight:Id(n,26),colorBgBlur:Ei(r,.04),colorBorder:Id(n,26),colorBorderSecondary:Id(n,19)}},Ple=(e,t)=>{const n=Object.keys(O5).map(i=>{const o=Hh(e[i],{theme:"dark"});return Array.from({length:10},()=>1).reduce((l,c,u)=>(l[`${i}-${u+1}`]=o[u],l[`${i}${u+1}`]=o[u],l),{})}).reduce((i,o)=>(i=Object.assign(Object.assign({},i),o),i),{}),r=t??D5(e),s=i7(e,{generateColorPalettes:Rle,generateNeutralColorPalettes:Mle});return Object.assign(Object.assign(Object.assign(Object.assign({},r),n),s),{colorPrimaryBg:s.colorPrimaryBorder,colorPrimaryBgHover:s.colorPrimaryBorderHover})},pA={defaultSeed:Eb.token,defaultAlgorithm:D5,darkAlgorithm:Ple};function Ale({children:e}){const t=fl(),[n,r]=p.useState(t.theme);return p.useEffect(()=>t.onThemeChange(r),[t]),a.jsx(Tf,{theme:{algorithm:n.mode==="dark"?pA.darkAlgorithm:pA.defaultAlgorithm,token:{colorPrimary:n.colorPrimary,colorBgContainer:n.colorBgContainer,colorText:n.colorText,colorBorder:n.colorBorder}},children:e})}var Yt;(function(e){e.assertEqual=s=>{};function t(s){}e.assertIs=t;function n(s){throw new Error}e.assertNever=n,e.arrayToEnum=s=>{const i={};for(const o of s)i[o]=o;return i},e.getValidEnumValues=s=>{const i=e.objectKeys(s).filter(l=>typeof s[s[l]]!="number"),o={};for(const l of i)o[l]=s[l];return e.objectValues(o)},e.objectValues=s=>e.objectKeys(s).map(function(i){return s[i]}),e.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{const i=[];for(const o in s)Object.prototype.hasOwnProperty.call(s,o)&&i.push(o);return i},e.find=(s,i)=>{for(const o of s)if(i(o))return o},e.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&Number.isFinite(s)&&Math.floor(s)===s;function r(s,i=" | "){return s.map(o=>typeof o=="string"?`'${o}'`:o).join(i)}e.joinValues=r,e.jsonStringifyReplacer=(s,i)=>typeof i=="bigint"?i.toString():i})(Yt||(Yt={}));var mA;(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(mA||(mA={}));const Xe=Yt.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Hl=e=>{switch(typeof e){case"undefined":return Xe.undefined;case"string":return Xe.string;case"number":return Number.isNaN(e)?Xe.nan:Xe.number;case"boolean":return Xe.boolean;case"function":return Xe.function;case"bigint":return Xe.bigint;case"symbol":return Xe.symbol;case"object":return Array.isArray(e)?Xe.array:e===null?Xe.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?Xe.promise:typeof Map<"u"&&e instanceof Map?Xe.map:typeof Set<"u"&&e instanceof Set?Xe.set:typeof Date<"u"&&e instanceof Date?Xe.date:Xe.object;default:return Xe.unknown}},Se=Yt.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class il extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};const n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}format(t){const n=t||function(i){return i.message},r={_errors:[]},s=i=>{for(const o of i.issues)if(o.code==="invalid_union")o.unionErrors.map(s);else if(o.code==="invalid_return_type")s(o.returnTypeError);else if(o.code==="invalid_arguments")s(o.argumentsError);else if(o.path.length===0)r._errors.push(n(o));else{let l=r,c=0;for(;c<o.path.length;){const u=o.path[c];c===o.path.length-1?(l[u]=l[u]||{_errors:[]},l[u]._errors.push(n(o))):l[u]=l[u]||{_errors:[]},l=l[u],c++}}};return s(this),r}static assert(t){if(!(t instanceof il))throw new Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Yt.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=n=>n.message){const n={},r=[];for(const s of this.issues)if(s.path.length>0){const i=s.path[0];n[i]=n[i]||[],n[i].push(t(s))}else r.push(t(s));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}}il.create=e=>new il(e);const nj=(e,t)=>{let n;switch(e.code){case Se.invalid_type:e.received===Xe.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case Se.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,Yt.jsonStringifyReplacer)}`;break;case Se.unrecognized_keys:n=`Unrecognized key(s) in object: ${Yt.joinValues(e.keys,", ")}`;break;case Se.invalid_union:n="Invalid input";break;case Se.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${Yt.joinValues(e.options)}`;break;case Se.invalid_enum_value:n=`Invalid enum value. Expected ${Yt.joinValues(e.options)}, received '${e.received}'`;break;case Se.invalid_arguments:n="Invalid function arguments";break;case Se.invalid_return_type:n="Invalid function return type";break;case Se.invalid_date:n="Invalid date";break;case Se.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:Yt.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case Se.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case Se.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case Se.custom:n="Invalid input";break;case Se.invalid_intersection_types:n="Intersection results could not be merged";break;case Se.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case Se.not_finite:n="Number must be finite";break;default:n=t.defaultError,Yt.assertNever(e)}return{message:n}};let Ole=nj;function Dle(){return Ole}const $le=e=>{const{data:t,path:n,errorMaps:r,issueData:s}=e,i=[...n,...s.path||[]],o={...s,path:i};if(s.message!==void 0)return{...s,path:i,message:s.message};let l="";const c=r.filter(u=>!!u).slice().reverse();for(const u of c)l=u(o,{data:t,defaultError:l}).message;return{...s,path:i,message:l}};function Fe(e,t){const n=Dle(),r=$le({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===nj?void 0:nj].filter(s=>!!s)});e.common.issues.push(r)}class vs{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){const r=[];for(const s of n){if(s.status==="aborted")return xt;s.status==="dirty"&&t.dirty(),r.push(s.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){const r=[];for(const s of n){const i=await s.key,o=await s.value;r.push({key:i,value:o})}return vs.mergeObjectSync(t,r)}static mergeObjectSync(t,n){const r={};for(const s of n){const{key:i,value:o}=s;if(i.status==="aborted"||o.status==="aborted")return xt;i.status==="dirty"&&t.dirty(),o.status==="dirty"&&t.dirty(),i.value!=="__proto__"&&(typeof o.value<"u"||s.alwaysSet)&&(r[i.value]=o.value)}return{status:t.value,value:r}}}const xt=Object.freeze({status:"aborted"}),lm=e=>({status:"dirty",value:e}),Zi=e=>({status:"valid",value:e}),gA=e=>e.status==="aborted",xA=e=>e.status==="dirty",Uh=e=>e.status==="valid",Ib=e=>typeof Promise<"u"&&e instanceof Promise;var rt;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t==null?void 0:t.message})(rt||(rt={}));class pa{constructor(t,n,r,s){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=s}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const vA=(e,t)=>{if(Uh(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const n=new il(e.common.issues);return this._error=n,this._error}}};function jt(e){if(!e)return{};const{errorMap:t,invalid_type_error:n,required_error:r,description:s}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:s}:{errorMap:(o,l)=>{const{message:c}=e;return o.code==="invalid_enum_value"?{message:c??l.defaultError}:typeof l.data>"u"?{message:c??r??l.defaultError}:o.code!=="invalid_type"?{message:l.defaultError}:{message:c??n??l.defaultError}},description:s}}class Ft{get description(){return this._def.description}_getType(t){return Hl(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:Hl(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new vs,ctx:{common:t.parent.common,data:t.data,parsedType:Hl(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){const n=this._parse(t);if(Ib(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){const n=this._parse(t);return Promise.resolve(n)}parse(t,n){const r=this.safeParse(t,n);if(r.success)return r.data;throw r.error}safeParse(t,n){const r={common:{issues:[],async:(n==null?void 0:n.async)??!1,contextualErrorMap:n==null?void 0:n.errorMap},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Hl(t)},s=this._parseSync({data:t,path:r.path,parent:r});return vA(r,s)}"~validate"(t){var r,s;const n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Hl(t)};if(!this["~standard"].async)try{const i=this._parseSync({data:t,path:[],parent:n});return Uh(i)?{value:i.value}:{issues:n.common.issues}}catch(i){(s=(r=i==null?void 0:i.message)==null?void 0:r.toLowerCase())!=null&&s.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:n}).then(i=>Uh(i)?{value:i.value}:{issues:n.common.issues})}async parseAsync(t,n){const r=await this.safeParseAsync(t,n);if(r.success)return r.data;throw r.error}async safeParseAsync(t,n){const r={common:{issues:[],contextualErrorMap:n==null?void 0:n.errorMap,async:!0},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Hl(t)},s=this._parse({data:t,path:r.path,parent:r}),i=await(Ib(s)?s:Promise.resolve(s));return vA(r,i)}refine(t,n){const r=s=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(s):n;return this._refinement((s,i)=>{const o=t(s),l=()=>i.addIssue({code:Se.custom,...r(s)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(l(),!1)):o?!0:(l(),!1)})}refinement(t,n){return this._refinement((r,s)=>t(r)?!0:(s.addIssue(typeof n=="function"?n(r,s):n),!1))}_refinement(t){return new vc({schema:this,typeName:vt.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return Qa.create(this,this._def)}nullable(){return Tu.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return la.create(this)}promise(){return Ob.create(this,this._def)}or(t){return Rb.create([this,t],this._def)}and(t){return Mb.create(this,t,this._def)}transform(t){return new vc({...jt(this._def),schema:this,typeName:vt.ZodEffects,effect:{type:"transform",transform:t}})}default(t){const n=typeof t=="function"?t:()=>t;return new Db({...jt(this._def),innerType:this,defaultValue:n,typeName:vt.ZodDefault})}brand(){return new E7({typeName:vt.ZodBranded,type:this,...jt(this._def)})}catch(t){const n=typeof t=="function"?t:()=>t;return new $b({...jt(this._def),innerType:this,catchValue:n,typeName:vt.ZodCatch})}describe(t){const n=this.constructor;return new n({...this._def,description:t})}pipe(t){return B5.create(this,t)}readonly(){return Lb.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const Lle=/^c[^\s-]{8,}$/i,Ble=/^[0-9a-z]+$/,Fle=/^[0-9A-HJKMNP-TV-Z]{26}$/i,zle=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Hle=/^[a-z0-9_-]{21}$/i,Ule=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Wle=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Vle=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,qle="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let jk;const Kle=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Gle=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Yle=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Xle=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Zle=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Qle=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,C7="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Jle=new RegExp(`^${C7}$`);function N7(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);const n=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function ece(e){return new RegExp(`^${N7(e)}$`)}function tce(e){let t=`${C7}T${N7(e)}`;const n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function nce(e,t){return!!((t==="v4"||!t)&&Kle.test(e)||(t==="v6"||!t)&&Yle.test(e))}function rce(e,t){if(!Ule.test(e))return!1;try{const[n]=e.split(".");if(!n)return!1;const r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),s=JSON.parse(atob(r));return!(typeof s!="object"||s===null||"typ"in s&&(s==null?void 0:s.typ)!=="JWT"||!s.alg||t&&s.alg!==t)}catch{return!1}}function sce(e,t){return!!((t==="v4"||!t)&&Gle.test(e)||(t==="v6"||!t)&&Xle.test(e))}class Ka extends Ft{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==Xe.string){const i=this._getOrReturnCtx(t);return Fe(i,{code:Se.invalid_type,expected:Xe.string,received:i.parsedType}),xt}const r=new vs;let s;for(const i of this._def.checks)if(i.kind==="min")t.data.length<i.value&&(s=this._getOrReturnCtx(t,s),Fe(s,{code:Se.too_small,minimum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),r.dirty());else if(i.kind==="max")t.data.length>i.value&&(s=this._getOrReturnCtx(t,s),Fe(s,{code:Se.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),r.dirty());else if(i.kind==="length"){const o=t.data.length>i.value,l=t.data.length<i.value;(o||l)&&(s=this._getOrReturnCtx(t,s),o?Fe(s,{code:Se.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!0,message:i.message}):l&&Fe(s,{code:Se.too_small,minimum:i.value,type:"string",inclusive:!0,exact:!0,message:i.message}),r.dirty())}else if(i.kind==="email")Vle.test(t.data)||(s=this._getOrReturnCtx(t,s),Fe(s,{validation:"email",code:Se.invalid_string,message:i.message}),r.dirty());else if(i.kind==="emoji")jk||(jk=new RegExp(qle,"u")),jk.test(t.data)||(s=this._getOrReturnCtx(t,s),Fe(s,{validation:"emoji",code:Se.invalid_string,message:i.message}),r.dirty());else if(i.kind==="uuid")zle.test(t.data)||(s=this._getOrReturnCtx(t,s),Fe(s,{validation:"uuid",code:Se.invalid_string,message:i.message}),r.dirty());else if(i.kind==="nanoid")Hle.test(t.data)||(s=this._getOrReturnCtx(t,s),Fe(s,{validation:"nanoid",code:Se.invalid_string,message:i.message}),r.dirty());else if(i.kind==="cuid")Lle.test(t.data)||(s=this._getOrReturnCtx(t,s),Fe(s,{validation:"cuid",code:Se.invalid_string,message:i.message}),r.dirty());else if(i.kind==="cuid2")Ble.test(t.data)||(s=this._getOrReturnCtx(t,s),Fe(s,{validation:"cuid2",code:Se.invalid_string,message:i.message}),r.dirty());else if(i.kind==="ulid")Fle.test(t.data)||(s=this._getOrReturnCtx(t,s),Fe(s,{validation:"ulid",code:Se.invalid_string,message:i.message}),r.dirty());else if(i.kind==="url")try{new URL(t.data)}catch{s=this._getOrReturnCtx(t,s),Fe(s,{validation:"url",code:Se.invalid_string,message:i.message}),r.dirty()}else i.kind==="regex"?(i.regex.lastIndex=0,i.regex.test(t.data)||(s=this._getOrReturnCtx(t,s),Fe(s,{validation:"regex",code:Se.invalid_string,message:i.message}),r.dirty())):i.kind==="trim"?t.data=t.data.trim():i.kind==="includes"?t.data.includes(i.value,i.position)||(s=this._getOrReturnCtx(t,s),Fe(s,{code:Se.invalid_string,validation:{includes:i.value,position:i.position},message:i.message}),r.dirty()):i.kind==="toLowerCase"?t.data=t.data.toLowerCase():i.kind==="toUpperCase"?t.data=t.data.toUpperCase():i.kind==="startsWith"?t.data.startsWith(i.value)||(s=this._getOrReturnCtx(t,s),Fe(s,{code:Se.invalid_string,validation:{startsWith:i.value},message:i.message}),r.dirty()):i.kind==="endsWith"?t.data.endsWith(i.value)||(s=this._getOrReturnCtx(t,s),Fe(s,{code:Se.invalid_string,validation:{endsWith:i.value},message:i.message}),r.dirty()):i.kind==="datetime"?tce(i).test(t.data)||(s=this._getOrReturnCtx(t,s),Fe(s,{code:Se.invalid_string,validation:"datetime",message:i.message}),r.dirty()):i.kind==="date"?Jle.test(t.data)||(s=this._getOrReturnCtx(t,s),Fe(s,{code:Se.invalid_string,validation:"date",message:i.message}),r.dirty()):i.kind==="time"?ece(i).test(t.data)||(s=this._getOrReturnCtx(t,s),Fe(s,{code:Se.invalid_string,validation:"time",message:i.message}),r.dirty()):i.kind==="duration"?Wle.test(t.data)||(s=this._getOrReturnCtx(t,s),Fe(s,{validation:"duration",code:Se.invalid_string,message:i.message}),r.dirty()):i.kind==="ip"?nce(t.data,i.version)||(s=this._getOrReturnCtx(t,s),Fe(s,{validation:"ip",code:Se.invalid_string,message:i.message}),r.dirty()):i.kind==="jwt"?rce(t.data,i.alg)||(s=this._getOrReturnCtx(t,s),Fe(s,{validation:"jwt",code:Se.invalid_string,message:i.message}),r.dirty()):i.kind==="cidr"?sce(t.data,i.version)||(s=this._getOrReturnCtx(t,s),Fe(s,{validation:"cidr",code:Se.invalid_string,message:i.message}),r.dirty()):i.kind==="base64"?Zle.test(t.data)||(s=this._getOrReturnCtx(t,s),Fe(s,{validation:"base64",code:Se.invalid_string,message:i.message}),r.dirty()):i.kind==="base64url"?Qle.test(t.data)||(s=this._getOrReturnCtx(t,s),Fe(s,{validation:"base64url",code:Se.invalid_string,message:i.message}),r.dirty()):Yt.assertNever(i);return{status:r.value,value:t.data}}_regex(t,n,r){return this.refinement(s=>t.test(s),{validation:n,code:Se.invalid_string,...rt.errToObj(r)})}_addCheck(t){return new Ka({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...rt.errToObj(t)})}url(t){return this._addCheck({kind:"url",...rt.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...rt.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...rt.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...rt.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...rt.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...rt.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...rt.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...rt.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...rt.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...rt.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...rt.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...rt.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof(t==null?void 0:t.precision)>"u"?null:t==null?void 0:t.precision,offset:(t==null?void 0:t.offset)??!1,local:(t==null?void 0:t.local)??!1,...rt.errToObj(t==null?void 0:t.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof(t==null?void 0:t.precision)>"u"?null:t==null?void 0:t.precision,...rt.errToObj(t==null?void 0:t.message)})}duration(t){return this._addCheck({kind:"duration",...rt.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...rt.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n==null?void 0:n.position,...rt.errToObj(n==null?void 0:n.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...rt.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...rt.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...rt.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...rt.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...rt.errToObj(n)})}nonempty(t){return this.min(1,rt.errToObj(t))}trim(){return new Ka({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Ka({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Ka({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}}Ka.create=e=>new Ka({checks:[],typeName:vt.ZodString,coerce:(e==null?void 0:e.coerce)??!1,...jt(e)});function ice(e,t){const n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,s=n>r?n:r,i=Number.parseInt(e.toFixed(s).replace(".","")),o=Number.parseInt(t.toFixed(s).replace(".",""));return i%o/10**s}class Wh extends Ft{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==Xe.number){const i=this._getOrReturnCtx(t);return Fe(i,{code:Se.invalid_type,expected:Xe.number,received:i.parsedType}),xt}let r;const s=new vs;for(const i of this._def.checks)i.kind==="int"?Yt.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),Fe(r,{code:Se.invalid_type,expected:"integer",received:"float",message:i.message}),s.dirty()):i.kind==="min"?(i.inclusive?t.data<i.value:t.data<=i.value)&&(r=this._getOrReturnCtx(t,r),Fe(r,{code:Se.too_small,minimum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),s.dirty()):i.kind==="max"?(i.inclusive?t.data>i.value:t.data>=i.value)&&(r=this._getOrReturnCtx(t,r),Fe(r,{code:Se.too_big,maximum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),s.dirty()):i.kind==="multipleOf"?ice(t.data,i.value)!==0&&(r=this._getOrReturnCtx(t,r),Fe(r,{code:Se.not_multiple_of,multipleOf:i.value,message:i.message}),s.dirty()):i.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),Fe(r,{code:Se.not_finite,message:i.message}),s.dirty()):Yt.assertNever(i);return{status:s.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,rt.toString(n))}gt(t,n){return this.setLimit("min",t,!1,rt.toString(n))}lte(t,n){return this.setLimit("max",t,!0,rt.toString(n))}lt(t,n){return this.setLimit("max",t,!1,rt.toString(n))}setLimit(t,n,r,s){return new Wh({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:rt.toString(s)}]})}_addCheck(t){return new Wh({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:rt.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:rt.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:rt.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:rt.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:rt.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:rt.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:rt.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:rt.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:rt.toString(t)})}get minValue(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}get isInt(){return!!this._def.checks.find(t=>t.kind==="int"||t.kind==="multipleOf"&&Yt.isInteger(t.value))}get isFinite(){let t=null,n=null;for(const r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(t===null||r.value<t)&&(t=r.value)}return Number.isFinite(n)&&Number.isFinite(t)}}Wh.create=e=>new Wh({checks:[],typeName:vt.ZodNumber,coerce:(e==null?void 0:e.coerce)||!1,...jt(e)});class kg extends Ft{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==Xe.bigint)return this._getInvalidInput(t);let r;const s=new vs;for(const i of this._def.checks)i.kind==="min"?(i.inclusive?t.data<i.value:t.data<=i.value)&&(r=this._getOrReturnCtx(t,r),Fe(r,{code:Se.too_small,type:"bigint",minimum:i.value,inclusive:i.inclusive,message:i.message}),s.dirty()):i.kind==="max"?(i.inclusive?t.data>i.value:t.data>=i.value)&&(r=this._getOrReturnCtx(t,r),Fe(r,{code:Se.too_big,type:"bigint",maximum:i.value,inclusive:i.inclusive,message:i.message}),s.dirty()):i.kind==="multipleOf"?t.data%i.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),Fe(r,{code:Se.not_multiple_of,multipleOf:i.value,message:i.message}),s.dirty()):Yt.assertNever(i);return{status:s.value,value:t.data}}_getInvalidInput(t){const n=this._getOrReturnCtx(t);return Fe(n,{code:Se.invalid_type,expected:Xe.bigint,received:n.parsedType}),xt}gte(t,n){return this.setLimit("min",t,!0,rt.toString(n))}gt(t,n){return this.setLimit("min",t,!1,rt.toString(n))}lte(t,n){return this.setLimit("max",t,!0,rt.toString(n))}lt(t,n){return this.setLimit("max",t,!1,rt.toString(n))}setLimit(t,n,r,s){return new kg({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:rt.toString(s)}]})}_addCheck(t){return new kg({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:rt.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:rt.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:rt.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:rt.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:rt.toString(n)})}get minValue(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}}kg.create=e=>new kg({checks:[],typeName:vt.ZodBigInt,coerce:(e==null?void 0:e.coerce)??!1,...jt(e)});class rj extends Ft{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==Xe.boolean){const r=this._getOrReturnCtx(t);return Fe(r,{code:Se.invalid_type,expected:Xe.boolean,received:r.parsedType}),xt}return Zi(t.data)}}rj.create=e=>new rj({typeName:vt.ZodBoolean,coerce:(e==null?void 0:e.coerce)||!1,...jt(e)});class Tb extends Ft{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==Xe.date){const i=this._getOrReturnCtx(t);return Fe(i,{code:Se.invalid_type,expected:Xe.date,received:i.parsedType}),xt}if(Number.isNaN(t.data.getTime())){const i=this._getOrReturnCtx(t);return Fe(i,{code:Se.invalid_date}),xt}const r=new vs;let s;for(const i of this._def.checks)i.kind==="min"?t.data.getTime()<i.value&&(s=this._getOrReturnCtx(t,s),Fe(s,{code:Se.too_small,message:i.message,inclusive:!0,exact:!1,minimum:i.value,type:"date"}),r.dirty()):i.kind==="max"?t.data.getTime()>i.value&&(s=this._getOrReturnCtx(t,s),Fe(s,{code:Se.too_big,message:i.message,inclusive:!0,exact:!1,maximum:i.value,type:"date"}),r.dirty()):Yt.assertNever(i);return{status:r.value,value:new Date(t.data.getTime())}}_addCheck(t){return new Tb({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:rt.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:rt.toString(n)})}get minDate(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t!=null?new Date(t):null}}Tb.create=e=>new Tb({checks:[],coerce:(e==null?void 0:e.coerce)||!1,typeName:vt.ZodDate,...jt(e)});class yA extends Ft{_parse(t){if(this._getType(t)!==Xe.symbol){const r=this._getOrReturnCtx(t);return Fe(r,{code:Se.invalid_type,expected:Xe.symbol,received:r.parsedType}),xt}return Zi(t.data)}}yA.create=e=>new yA({typeName:vt.ZodSymbol,...jt(e)});class sj extends Ft{_parse(t){if(this._getType(t)!==Xe.undefined){const r=this._getOrReturnCtx(t);return Fe(r,{code:Se.invalid_type,expected:Xe.undefined,received:r.parsedType}),xt}return Zi(t.data)}}sj.create=e=>new sj({typeName:vt.ZodUndefined,...jt(e)});class ij extends Ft{_parse(t){if(this._getType(t)!==Xe.null){const r=this._getOrReturnCtx(t);return Fe(r,{code:Se.invalid_type,expected:Xe.null,received:r.parsedType}),xt}return Zi(t.data)}}ij.create=e=>new ij({typeName:vt.ZodNull,...jt(e)});class bA extends Ft{constructor(){super(...arguments),this._any=!0}_parse(t){return Zi(t.data)}}bA.create=e=>new bA({typeName:vt.ZodAny,...jt(e)});class oj extends Ft{constructor(){super(...arguments),this._unknown=!0}_parse(t){return Zi(t.data)}}oj.create=e=>new oj({typeName:vt.ZodUnknown,...jt(e)});class xc extends Ft{_parse(t){const n=this._getOrReturnCtx(t);return Fe(n,{code:Se.invalid_type,expected:Xe.never,received:n.parsedType}),xt}}xc.create=e=>new xc({typeName:vt.ZodNever,...jt(e)});class wA extends Ft{_parse(t){if(this._getType(t)!==Xe.undefined){const r=this._getOrReturnCtx(t);return Fe(r,{code:Se.invalid_type,expected:Xe.void,received:r.parsedType}),xt}return Zi(t.data)}}wA.create=e=>new wA({typeName:vt.ZodVoid,...jt(e)});class la extends Ft{_parse(t){const{ctx:n,status:r}=this._processInputParams(t),s=this._def;if(n.parsedType!==Xe.array)return Fe(n,{code:Se.invalid_type,expected:Xe.array,received:n.parsedType}),xt;if(s.exactLength!==null){const o=n.data.length>s.exactLength.value,l=n.data.length<s.exactLength.value;(o||l)&&(Fe(n,{code:o?Se.too_big:Se.too_small,minimum:l?s.exactLength.value:void 0,maximum:o?s.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:s.exactLength.message}),r.dirty())}if(s.minLength!==null&&n.data.length<s.minLength.value&&(Fe(n,{code:Se.too_small,minimum:s.minLength.value,type:"array",inclusive:!0,exact:!1,message:s.minLength.message}),r.dirty()),s.maxLength!==null&&n.data.length>s.maxLength.value&&(Fe(n,{code:Se.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((o,l)=>s.type._parseAsync(new pa(n,o,n.path,l)))).then(o=>vs.mergeArray(r,o));const i=[...n.data].map((o,l)=>s.type._parseSync(new pa(n,o,n.path,l)));return vs.mergeArray(r,i)}get element(){return this._def.type}min(t,n){return new la({...this._def,minLength:{value:t,message:rt.toString(n)}})}max(t,n){return new la({...this._def,maxLength:{value:t,message:rt.toString(n)}})}length(t,n){return new la({...this._def,exactLength:{value:t,message:rt.toString(n)}})}nonempty(t){return this.min(1,t)}}la.create=(e,t)=>new la({type:e,minLength:null,maxLength:null,exactLength:null,typeName:vt.ZodArray,...jt(t)});function Kd(e){if(e instanceof or){const t={};for(const n in e.shape){const r=e.shape[n];t[n]=Qa.create(Kd(r))}return new or({...e._def,shape:()=>t})}else return e instanceof la?new la({...e._def,type:Kd(e.element)}):e instanceof Qa?Qa.create(Kd(e.unwrap())):e instanceof Tu?Tu.create(Kd(e.unwrap())):e instanceof Eu?Eu.create(e.items.map(t=>Kd(t))):e}class or extends Ft{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const t=this._def.shape(),n=Yt.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==Xe.object){const u=this._getOrReturnCtx(t);return Fe(u,{code:Se.invalid_type,expected:Xe.object,received:u.parsedType}),xt}const{status:r,ctx:s}=this._processInputParams(t),{shape:i,keys:o}=this._getCached(),l=[];if(!(this._def.catchall instanceof xc&&this._def.unknownKeys==="strip"))for(const u in s.data)o.includes(u)||l.push(u);const c=[];for(const u of o){const d=i[u],h=s.data[u];c.push({key:{status:"valid",value:u},value:d._parse(new pa(s,h,s.path,u)),alwaysSet:u in s.data})}if(this._def.catchall instanceof xc){const u=this._def.unknownKeys;if(u==="passthrough")for(const d of l)c.push({key:{status:"valid",value:d},value:{status:"valid",value:s.data[d]}});else if(u==="strict")l.length>0&&(Fe(s,{code:Se.unrecognized_keys,keys:l}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const u=this._def.catchall;for(const d of l){const h=s.data[d];c.push({key:{status:"valid",value:d},value:u._parse(new pa(s,h,s.path,d)),alwaysSet:d in s.data})}}return s.common.async?Promise.resolve().then(async()=>{const u=[];for(const d of c){const h=await d.key,f=await d.value;u.push({key:h,value:f,alwaysSet:d.alwaysSet})}return u}).then(u=>vs.mergeObjectSync(r,u)):vs.mergeObjectSync(r,c)}get shape(){return this._def.shape()}strict(t){return rt.errToObj,new or({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{var i,o;const s=((o=(i=this._def).errorMap)==null?void 0:o.call(i,n,r).message)??r.defaultError;return n.code==="unrecognized_keys"?{message:rt.errToObj(t).message??s}:{message:s}}}:{}})}strip(){return new or({...this._def,unknownKeys:"strip"})}passthrough(){return new or({...this._def,unknownKeys:"passthrough"})}extend(t){return new or({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new or({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:vt.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new or({...this._def,catchall:t})}pick(t){const n={};for(const r of Yt.objectKeys(t))t[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new or({...this._def,shape:()=>n})}omit(t){const n={};for(const r of Yt.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new or({...this._def,shape:()=>n})}deepPartial(){return Kd(this)}partial(t){const n={};for(const r of Yt.objectKeys(this.shape)){const s=this.shape[r];t&&!t[r]?n[r]=s:n[r]=s.optional()}return new or({...this._def,shape:()=>n})}required(t){const n={};for(const r of Yt.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let i=this.shape[r];for(;i instanceof Qa;)i=i._def.innerType;n[r]=i}return new or({...this._def,shape:()=>n})}keyof(){return j7(Yt.objectKeys(this.shape))}}or.create=(e,t)=>new or({shape:()=>e,unknownKeys:"strip",catchall:xc.create(),typeName:vt.ZodObject,...jt(t)});or.strictCreate=(e,t)=>new or({shape:()=>e,unknownKeys:"strict",catchall:xc.create(),typeName:vt.ZodObject,...jt(t)});or.lazycreate=(e,t)=>new or({shape:e,unknownKeys:"strip",catchall:xc.create(),typeName:vt.ZodObject,...jt(t)});class Rb extends Ft{_parse(t){const{ctx:n}=this._processInputParams(t),r=this._def.options;function s(i){for(const l of i)if(l.result.status==="valid")return l.result;for(const l of i)if(l.result.status==="dirty")return n.common.issues.push(...l.ctx.common.issues),l.result;const o=i.map(l=>new il(l.ctx.common.issues));return Fe(n,{code:Se.invalid_union,unionErrors:o}),xt}if(n.common.async)return Promise.all(r.map(async i=>{const o={...n,common:{...n.common,issues:[]},parent:null};return{result:await i._parseAsync({data:n.data,path:n.path,parent:o}),ctx:o}})).then(s);{let i;const o=[];for(const c of r){const u={...n,common:{...n.common,issues:[]},parent:null},d=c._parseSync({data:n.data,path:n.path,parent:u});if(d.status==="valid")return d;d.status==="dirty"&&!i&&(i={result:d,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(i)return n.common.issues.push(...i.ctx.common.issues),i.result;const l=o.map(c=>new il(c));return Fe(n,{code:Se.invalid_union,unionErrors:l}),xt}}get options(){return this._def.options}}Rb.create=(e,t)=>new Rb({options:e,typeName:vt.ZodUnion,...jt(t)});const Ha=e=>e instanceof lj?Ha(e.schema):e instanceof vc?Ha(e.innerType()):e instanceof Ab?[e.value]:e instanceof Iu?e.options:e instanceof cj?Yt.objectValues(e.enum):e instanceof Db?Ha(e._def.innerType):e instanceof sj?[void 0]:e instanceof ij?[null]:e instanceof Qa?[void 0,...Ha(e.unwrap())]:e instanceof Tu?[null,...Ha(e.unwrap())]:e instanceof E7||e instanceof Lb?Ha(e.unwrap()):e instanceof $b?Ha(e._def.innerType):[];class L5 extends Ft{_parse(t){const{ctx:n}=this._processInputParams(t);if(n.parsedType!==Xe.object)return Fe(n,{code:Se.invalid_type,expected:Xe.object,received:n.parsedType}),xt;const r=this.discriminator,s=n.data[r],i=this.optionsMap.get(s);return i?n.common.async?i._parseAsync({data:n.data,path:n.path,parent:n}):i._parseSync({data:n.data,path:n.path,parent:n}):(Fe(n,{code:Se.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),xt)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){const s=new Map;for(const i of n){const o=Ha(i.shape[t]);if(!o.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(const l of o){if(s.has(l))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(l)}`);s.set(l,i)}}return new L5({typeName:vt.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:s,...jt(r)})}}function aj(e,t){const n=Hl(e),r=Hl(t);if(e===t)return{valid:!0,data:e};if(n===Xe.object&&r===Xe.object){const s=Yt.objectKeys(t),i=Yt.objectKeys(e).filter(l=>s.indexOf(l)!==-1),o={...e,...t};for(const l of i){const c=aj(e[l],t[l]);if(!c.valid)return{valid:!1};o[l]=c.data}return{valid:!0,data:o}}else if(n===Xe.array&&r===Xe.array){if(e.length!==t.length)return{valid:!1};const s=[];for(let i=0;i<e.length;i++){const o=e[i],l=t[i],c=aj(o,l);if(!c.valid)return{valid:!1};s.push(c.data)}return{valid:!0,data:s}}else return n===Xe.date&&r===Xe.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}class Mb extends Ft{_parse(t){const{status:n,ctx:r}=this._processInputParams(t),s=(i,o)=>{if(gA(i)||gA(o))return xt;const l=aj(i.value,o.value);return l.valid?((xA(i)||xA(o))&&n.dirty(),{status:n.value,value:l.data}):(Fe(r,{code:Se.invalid_intersection_types}),xt)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([i,o])=>s(i,o)):s(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}}Mb.create=(e,t,n)=>new Mb({left:e,right:t,typeName:vt.ZodIntersection,...jt(n)});class Eu extends Ft{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Xe.array)return Fe(r,{code:Se.invalid_type,expected:Xe.array,received:r.parsedType}),xt;if(r.data.length<this._def.items.length)return Fe(r,{code:Se.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),xt;!this._def.rest&&r.data.length>this._def.items.length&&(Fe(r,{code:Se.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());const i=[...r.data].map((o,l)=>{const c=this._def.items[l]||this._def.rest;return c?c._parse(new pa(r,o,r.path,l)):null}).filter(o=>!!o);return r.common.async?Promise.all(i).then(o=>vs.mergeArray(n,o)):vs.mergeArray(n,i)}get items(){return this._def.items}rest(t){return new Eu({...this._def,rest:t})}}Eu.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Eu({items:e,typeName:vt.ZodTuple,rest:null,...jt(t)})};class Pb extends Ft{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Xe.object)return Fe(r,{code:Se.invalid_type,expected:Xe.object,received:r.parsedType}),xt;const s=[],i=this._def.keyType,o=this._def.valueType;for(const l in r.data)s.push({key:i._parse(new pa(r,l,r.path,l)),value:o._parse(new pa(r,r.data[l],r.path,l)),alwaysSet:l in r.data});return r.common.async?vs.mergeObjectAsync(n,s):vs.mergeObjectSync(n,s)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof Ft?new Pb({keyType:t,valueType:n,typeName:vt.ZodRecord,...jt(r)}):new Pb({keyType:Ka.create(),valueType:t,typeName:vt.ZodRecord,...jt(n)})}}class _A extends Ft{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Xe.map)return Fe(r,{code:Se.invalid_type,expected:Xe.map,received:r.parsedType}),xt;const s=this._def.keyType,i=this._def.valueType,o=[...r.data.entries()].map(([l,c],u)=>({key:s._parse(new pa(r,l,r.path,[u,"key"])),value:i._parse(new pa(r,c,r.path,[u,"value"]))}));if(r.common.async){const l=new Map;return Promise.resolve().then(async()=>{for(const c of o){const u=await c.key,d=await c.value;if(u.status==="aborted"||d.status==="aborted")return xt;(u.status==="dirty"||d.status==="dirty")&&n.dirty(),l.set(u.value,d.value)}return{status:n.value,value:l}})}else{const l=new Map;for(const c of o){const u=c.key,d=c.value;if(u.status==="aborted"||d.status==="aborted")return xt;(u.status==="dirty"||d.status==="dirty")&&n.dirty(),l.set(u.value,d.value)}return{status:n.value,value:l}}}}_A.create=(e,t,n)=>new _A({valueType:t,keyType:e,typeName:vt.ZodMap,...jt(n)});class Cg extends Ft{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Xe.set)return Fe(r,{code:Se.invalid_type,expected:Xe.set,received:r.parsedType}),xt;const s=this._def;s.minSize!==null&&r.data.size<s.minSize.value&&(Fe(r,{code:Se.too_small,minimum:s.minSize.value,type:"set",inclusive:!0,exact:!1,message:s.minSize.message}),n.dirty()),s.maxSize!==null&&r.data.size>s.maxSize.value&&(Fe(r,{code:Se.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),n.dirty());const i=this._def.valueType;function o(c){const u=new Set;for(const d of c){if(d.status==="aborted")return xt;d.status==="dirty"&&n.dirty(),u.add(d.value)}return{status:n.value,value:u}}const l=[...r.data.values()].map((c,u)=>i._parse(new pa(r,c,r.path,u)));return r.common.async?Promise.all(l).then(c=>o(c)):o(l)}min(t,n){return new Cg({...this._def,minSize:{value:t,message:rt.toString(n)}})}max(t,n){return new Cg({...this._def,maxSize:{value:t,message:rt.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}}Cg.create=(e,t)=>new Cg({valueType:e,minSize:null,maxSize:null,typeName:vt.ZodSet,...jt(t)});class lj extends Ft{get schema(){return this._def.getter()}_parse(t){const{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}}lj.create=(e,t)=>new lj({getter:e,typeName:vt.ZodLazy,...jt(t)});class Ab extends Ft{_parse(t){if(t.data!==this._def.value){const n=this._getOrReturnCtx(t);return Fe(n,{received:n.data,code:Se.invalid_literal,expected:this._def.value}),xt}return{status:"valid",value:t.data}}get value(){return this._def.value}}Ab.create=(e,t)=>new Ab({value:e,typeName:vt.ZodLiteral,...jt(t)});function j7(e,t){return new Iu({values:e,typeName:vt.ZodEnum,...jt(t)})}class Iu extends Ft{_parse(t){if(typeof t.data!="string"){const n=this._getOrReturnCtx(t),r=this._def.values;return Fe(n,{expected:Yt.joinValues(r),received:n.parsedType,code:Se.invalid_type}),xt}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){const n=this._getOrReturnCtx(t),r=this._def.values;return Fe(n,{received:n.data,code:Se.invalid_enum_value,options:r}),xt}return Zi(t.data)}get options(){return this._def.values}get enum(){const t={};for(const n of this._def.values)t[n]=n;return t}get Values(){const t={};for(const n of this._def.values)t[n]=n;return t}get Enum(){const t={};for(const n of this._def.values)t[n]=n;return t}extract(t,n=this._def){return Iu.create(t,{...this._def,...n})}exclude(t,n=this._def){return Iu.create(this.options.filter(r=>!t.includes(r)),{...this._def,...n})}}Iu.create=j7;class cj extends Ft{_parse(t){const n=Yt.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==Xe.string&&r.parsedType!==Xe.number){const s=Yt.objectValues(n);return Fe(r,{expected:Yt.joinValues(s),received:r.parsedType,code:Se.invalid_type}),xt}if(this._cache||(this._cache=new Set(Yt.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){const s=Yt.objectValues(n);return Fe(r,{received:r.data,code:Se.invalid_enum_value,options:s}),xt}return Zi(t.data)}get enum(){return this._def.values}}cj.create=(e,t)=>new cj({values:e,typeName:vt.ZodNativeEnum,...jt(t)});class Ob extends Ft{unwrap(){return this._def.type}_parse(t){const{ctx:n}=this._processInputParams(t);if(n.parsedType!==Xe.promise&&n.common.async===!1)return Fe(n,{code:Se.invalid_type,expected:Xe.promise,received:n.parsedType}),xt;const r=n.parsedType===Xe.promise?n.data:Promise.resolve(n.data);return Zi(r.then(s=>this._def.type.parseAsync(s,{path:n.path,errorMap:n.common.contextualErrorMap})))}}Ob.create=(e,t)=>new Ob({type:e,typeName:vt.ZodPromise,...jt(t)});class vc extends Ft{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===vt.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){const{status:n,ctx:r}=this._processInputParams(t),s=this._def.effect||null,i={addIssue:o=>{Fe(r,o),o.fatal?n.abort():n.dirty()},get path(){return r.path}};if(i.addIssue=i.addIssue.bind(i),s.type==="preprocess"){const o=s.transform(r.data,i);if(r.common.async)return Promise.resolve(o).then(async l=>{if(n.value==="aborted")return xt;const c=await this._def.schema._parseAsync({data:l,path:r.path,parent:r});return c.status==="aborted"?xt:c.status==="dirty"||n.value==="dirty"?lm(c.value):c});{if(n.value==="aborted")return xt;const l=this._def.schema._parseSync({data:o,path:r.path,parent:r});return l.status==="aborted"?xt:l.status==="dirty"||n.value==="dirty"?lm(l.value):l}}if(s.type==="refinement"){const o=l=>{const c=s.refinement(l,i);if(r.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return l};if(r.common.async===!1){const l=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return l.status==="aborted"?xt:(l.status==="dirty"&&n.dirty(),o(l.value),{status:n.value,value:l.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(l=>l.status==="aborted"?xt:(l.status==="dirty"&&n.dirty(),o(l.value).then(()=>({status:n.value,value:l.value}))))}if(s.type==="transform")if(r.common.async===!1){const o=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!Uh(o))return xt;const l=s.transform(o.value,i);if(l instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:l}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(o=>Uh(o)?Promise.resolve(s.transform(o.value,i)).then(l=>({status:n.value,value:l})):xt);Yt.assertNever(s)}}vc.create=(e,t,n)=>new vc({schema:e,typeName:vt.ZodEffects,effect:t,...jt(n)});vc.createWithPreprocess=(e,t,n)=>new vc({schema:t,effect:{type:"preprocess",transform:e},typeName:vt.ZodEffects,...jt(n)});class Qa extends Ft{_parse(t){return this._getType(t)===Xe.undefined?Zi(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}}Qa.create=(e,t)=>new Qa({innerType:e,typeName:vt.ZodOptional,...jt(t)});class Tu extends Ft{_parse(t){return this._getType(t)===Xe.null?Zi(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}}Tu.create=(e,t)=>new Tu({innerType:e,typeName:vt.ZodNullable,...jt(t)});class Db extends Ft{_parse(t){const{ctx:n}=this._processInputParams(t);let r=n.data;return n.parsedType===Xe.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}}Db.create=(e,t)=>new Db({innerType:e,typeName:vt.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...jt(t)});class $b extends Ft{_parse(t){const{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},s=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return Ib(s)?s.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new il(r.common.issues)},input:r.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new il(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}}$b.create=(e,t)=>new $b({innerType:e,typeName:vt.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...jt(t)});class SA extends Ft{_parse(t){if(this._getType(t)!==Xe.nan){const r=this._getOrReturnCtx(t);return Fe(r,{code:Se.invalid_type,expected:Xe.nan,received:r.parsedType}),xt}return{status:"valid",value:t.data}}}SA.create=e=>new SA({typeName:vt.ZodNaN,...jt(e)});class E7 extends Ft{_parse(t){const{ctx:n}=this._processInputParams(t),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}}class B5 extends Ft{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{const i=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return i.status==="aborted"?xt:i.status==="dirty"?(n.dirty(),lm(i.value)):this._def.out._parseAsync({data:i.value,path:r.path,parent:r})})();{const s=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?xt:s.status==="dirty"?(n.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:r.path,parent:r})}}static create(t,n){return new B5({in:t,out:n,typeName:vt.ZodPipeline})}}class Lb extends Ft{_parse(t){const n=this._def.innerType._parse(t),r=s=>(Uh(s)&&(s.value=Object.freeze(s.value)),s);return Ib(n)?n.then(s=>r(s)):r(n)}unwrap(){return this._def.innerType}}Lb.create=(e,t)=>new Lb({innerType:e,typeName:vt.ZodReadonly,...jt(t)});var vt;(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(vt||(vt={}));const N=Ka.create,Z=Wh.create,Ee=rj.create,Ja=oj.create;xc.create;const pe=la.create,F=or.create,oce=Rb.create,zs=L5.create;Mb.create;Eu.create;const Qi=Pb.create,fe=Ab.create,He=Iu.create;Ob.create;Qa.create;Tu.create;const ace=vc.createWithPreprocess,lce=["head","index"],I7=N().regex(/^[A-Za-z0-9][A-Za-z0-9-]{0,127}$/),Bb=N().regex(/^[1-9][0-9]*$/),Fb=N().regex(/^[A-Za-z0-9_.-]+$/),Ng=N().min(1).max(255).refine(e=>!e.startsWith("-")&&e!=="HEAD"&&!e.startsWith("/")&&!e.endsWith("/")&&!e.endsWith(".")&&!/[\s~^:?*\[\\\x00-\x1f\x7f]/.test(e)&&!e.includes("..")&&!e.includes("@{")&&!e.includes("//")&&e.split("/").every(t=>!t.startsWith(".")&&!t.endsWith(".lock")),"Invalid Git branch"),F5=N().min(1).max(4096).refine(e=>!e.startsWith("/")&&!e.includes("\0")&&!e.split(/[\\/]/).includes("..")),Ew=F({workspaceId:I7,repoId:Bb,owner:Fb,name:Fb,sourceBranch:Ng,defaultBranch:Ng}).strict(),cce=F({repoId:Bb,owner:Fb,name:Fb,defaultBranch:N(),private:Ee(),description:N().nullable()}),uce=Ew.extend({initialCommit:N(),head:N(),actualBranch:N().nullable(),branches:pe(N()).optional(),files:pe(F({path:F5,previousPath:N().optional(),comparison:He(lce).optional(),status:N(),added:Z().nonnegative(),removed:Z().nonnegative(),binary:Ee(),untracked:Ee().optional()})),totalFiles:Z().int().nonnegative().optional(),filesTruncated:Ee().optional(),added:Z().nonnegative(),removed:Z().nonnegative(),dirty:Ee(),conflicted:Ee(),version:N(),measuredAt:Z()}),Td=F({sessionId:I7});zs("action",[Td.extend({action:fe("repositories"),page:Z().int().min(1).max(1e3).optional(),search:N().max(100).optional()}).strict(),Td.extend({action:fe("branches"),repoId:Bb,page:Z().int().min(1).max(1e3).optional(),search:N().max(100).optional(),cursor:N().min(1).max(1024).optional()}).strict(),Td.extend({action:fe("bind"),repoId:Bb,branch:Ng}).strict(),Td.extend({action:fe("status")}).strict(),Td.extend({action:fe("intend"),branch:Ng.optional()}).strict(),Td.extend({action:fe("diff"),filePath:F5}).strict()]);F({binding:Ew.nullable().optional(),workspace:uce.nullable().optional(),repositories:pe(cce).optional(),branches:pe(N()).optional(),hasMore:Ee().optional(),nextCursor:N().min(1).max(1024).optional(),diff:F({path:F5,patch:N(),binary:Ee(),truncated:Ee(),notStored:Ee().optional()}).optional()});F({threadId:N().min(1),conversationId:N().min(1),workspace:Ew.optional()});new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");F({id:N().min(1),name:N().min(1),baseUrl:N().min(1),apiKey:N().min(1),remark:N().optional(),createdAt:Z(),updatedAt:Z()}).strict();const dce=F({id:N().min(1),name:N().min(1),baseUrl:N().min(1),remark:N().optional(),keyMasked:N(),hasKey:Ee(),createdAt:Z(),updatedAt:Z()}).strict();F({activeChannelId:N().nullable(),channels:pe(dce)}).strict();F({}).strict();F({id:N().min(1).optional(),name:N().min(1),baseUrl:N().min(1),apiKey:N().optional(),remark:N().optional()}).strict();F({id:N().min(1)}).strict();F({id:N().min(1).nullable()}).strict();F({channelId:N().min(1).optional(),updatedAt:Z().optional()}).strict().refine(e=>e.updatedAt===void 0||e.channelId!==void 0,{message:"updatedAt requires channelId"});F({channelId:N().nullable(),models:pe(F({id:N().min(1),ownedBy:N().optional()}).strict())}).strict();const hce=["owner"],fce=["agent","owner","user-upload"],T7=F({id:N().min(1),relPath:N().min(1),from:He(fce),label:N().optional(),size:Z().int().nonnegative(),mime:N().min(1),addedAt:Z().int().nonnegative(),lastEditedAt:Z().int().nonnegative().optional(),stale:Ee().optional()});F({sessionId:N().min(1),relPath:N().min(1),ttlSeconds:Z().int().positive().nullable().optional(),view:He(["raw","md-rendered"]).optional()});F({url:N().min(1),expiresAt:Z().int().nonnegative().nullable()});F({sessionId:N().min(1),relPath:N().min(1),label:N().optional(),origin:fe("agent").optional()});F({entry:T7});F({sessionId:N().min(1),relPath:N().min(1)});F({removed:fe(!0)});F({sessionId:N().min(1)});F({entries:pe(T7)});F({attachmentId:N().min(1),url:N().min(1),relPath:N().min(1),sizeBytes:Z().int().nonnegative(),mimeType:N().min(1)});const pce=zs("type",[F({type:fe("persona"),id:N().min(1)}).strict(),F({type:fe("chat"),id:N().min(1)}).strict(),F({type:fe("*")}).strict()]),mce=He(["read","send","admin"]),z5=F({resource:pce,actions:pe(mce).min(1)}).strict(),gce=F({id:N().min(1),secretHash:N().regex(/^[a-f0-9]{64}$/),displayName:N(),grants:pe(z5),issuedAt:Z().int().nonnegative(),expiresAt:Z().int().positive().optional(),maxUses:Z().int().positive().optional(),usedCount:Z().int().nonnegative(),peerOwnerId:N().min(1).optional(),firstUsedByPeerAt:Z().int().positive().optional(),peerDisplayName:N().optional()}).strict(),xce=gce.omit({secretHash:!0});F({type:fe("whoami:ok"),owner:F({id:N(),kind:He(["owner","guest"]),displayName:N(),ownerId:N(),provider:N()}).strict(),capability:xce,grantedPersonas:pe(F({id:N().min(1),displayName:N()}).strict())}).strict();const vce="PEER_LOGIN_EXPIRED";F({selfUrl:N().min(1)});F({type:fe("contact:handshake:ok"),owner:F({id:N(),ownerId:N(),provider:N(),displayName:N()}),grants:pe(z5)});const yce=zs("status",[F({status:fe("authorized"),login:N().min(1),source:He(["git","file"])}).strict(),F({status:fe("missing")}).strict(),F({status:fe("invalid"),message:N().min(1)}).strict(),F({status:fe("pending"),authUrl:N().url()}).strict()]);F({token:N().min(1)}).strict();F({returnTo:N().url().optional()}).strict();const bce=F({url:N().url(),bin:N(),sha256:N().regex(/^[0-9a-f]{64}$/),size:Z().int().positive()}),wce={label:"Debian 13"},R7=["node","npm"],_ce=["claude","codex","git","lark-cli","pi","pi-mcp-bridge","pi-cliproxyapi-provider","python3","jq","rsync","psql","go","chromium","fonts-wqy-microhei","openssh-server","pnpm","whiteboard-cli","s","supabase-mcp","mcp-server-kibana","aliyun"],Sce=F({name:N().min(1),from:N().optional(),version:N().optional(),min:N().optional(),library:Ee().optional(),localVersion:N().optional(),artifact:bce.optional(),aptMissing:fe(!0).optional(),aptVersion:N().optional()}),H5=N().regex(/^[a-z0-9-]+$/,"连接器名只能是小写字母、数字和短横线"),M7=["proxy","env"],P7=["mcp","cli"],kce=["bearer","lark-sidecar"],A7=["none","shared","personal"],U5=["oauth","fields"],Iw=N().regex(/^[A-Z][A-Z0-9_]*$/,"要填的变量名只能是大写字母、数字和下划线,且以字母开头"),Cce=F({name:N().min(1),env:pe(Iw).min(1)}),O7=F({name:H5,kind:He(M7),runner:He(P7),protocol:He(kce).optional(),id:N().min(1),credentialSource:He(A7).optional(),auth:He(U5).optional(),publisherUnionId:N().regex(/^on_[A-Za-z0-9_-]+$/).optional(),fields:pe(Iw).default([]),http:F({url:N().min(1),headers:Qi(N(),N())}).optional()}),D7=["LARKSUITE_CLI_APP_ID","LARKSUITE_CLI_APP_SECRET"];function W5(e){return e.name==="feishu"&&e.runner==="cli"&&e.kind==="env"&&e.credentialSource==="shared"}function Nce(e){return e.name==="feishu"&&e.id==="feishu"&&e.runner==="cli"&&e.kind==="proxy"&&e.protocol==="lark-sidecar"&&e.credentialSource==="shared"&&e.auth==="oauth"&&e.fields.length===0}function $7(e){if(!e.credentialSource)return[`连接器 ${e.name} 还没选用谁的账号`];const t=[];return Nce(e)?t:e.protocol==="lark-sidecar"&&e.credentialSource==="shared"?["连接器 feishu 的发布者 OAuth 配置不完整,请重新选择账号身份"]:W5(e)?D7.filter(n=>!e.fields.includes(n)).map(n=>`连接器 feishu 的 Lark App Bot 缺少 ${n==="LARKSUITE_CLI_APP_ID"?"App ID":"App Secret"}`):(e.credentialSource==="personal"&&(e.auth?e.auth==="oauth"&&e.kind==="env"?t.push(`连接器 ${e.name} 是进程型(stdio MCP / CLI),只能粘贴 API key,走不了 OAuth`):e.auth==="fields"&&e.fields.length===0&&t.push(`连接器 ${e.name} 要填的变量还没列`):t.push(`连接器 ${e.name} 还没选用户怎么关联账号`)),e.credentialSource==="shared"&&e.fields.length===0&&t.push(`连接器 ${e.name} 选了发布者的账号,但要填的变量还没列`),t)}const jce=/^([A-Za-z0-9._/-]+)@([A-Za-z0-9._-]+)(?:\?tags=([A-Za-z0-9_,]+))?$/,Ece=["main","master","HEAD","latest"];function Ice(e){const t=jce.exec(e);return!!t&&!Ece.includes(t[2])}function L7(e){var n,r;return R7.includes(e.name)||_ce.includes(e.name)?[]:(n=e.from)!=null&&n.startsWith("github:")&&!e.artifact?[`${e.name} 还没钉下载资产(github: 要具体到哪个文件)——重新扫描`]:(r=e.from)!=null&&r.startsWith("go:")&&!Ice(e.from.slice(3))?[`${e.name} 还没钉版本(go: 要写成 <module>@<tag>,不收 latest / main 这类移动引用)——重新扫描`]:[]}function V5(e){return e.connectors.filter(t=>t.credentialSource==="shared"&&t.fields.length>0).map(t=>({name:t.name,env:[...t.fields]}))}function Tce(e){return[...new Set([...e.envVars.flatMap(t=>t.env),...V5(e).flatMap(t=>t.env)])]}function Rce(e){const t=new Set(e.connectors.flatMap(n=>n.fields));return[...new Set(e.envVars.flatMap(n=>n.env))].filter(n=>t.has(n)).map(n=>`${n} 同时是环境变量和连接器的字段,只能留一处——重新扫描`)}const Mce=e=>{if(!e||typeof e!="object")return e;let t=e;if("clis"in t&&Array.isArray(t.clis)){const{clis:n,...r}=t;t="packages"in r?r:{...r,packages:n}}if("assets"in t&&Array.isArray(t.assets)&&t.assets.length===0){const{assets:n,...r}=t;t=r}if("secrets"in t&&Array.isArray(t.secrets)){const{secrets:n,...r}=t,s=new Set((Array.isArray(r.connectors)?r.connectors:[]).flatMap(o=>Array.isArray(o==null?void 0:o.fields)?o.fields:[])),i=n.map(o=>({...o,env:Array.isArray(o==null?void 0:o.env)?o.env.filter(l=>!s.has(l)):o==null?void 0:o.env})).filter(o=>!Array.isArray(o.env)||o.env.length>0);t={...r,envVars:[...Array.isArray(r.envVars)?r.envVars:[],...i]}}return t},Pce="Publisher test: ",B7=F({version:fe(1),entry:N().max(240).regex(/^[A-Za-z0-9_.-]+(?:\/[A-Za-z0-9_.-]+)*\.mjs$/).refine(e=>!e.split("/").some(t=>[".",".."].includes(t))),timeoutSeconds:Z().int().min(1).max(600),checks:pe(N().regex(/^[a-z0-9][a-z0-9-]{0,63}$/)).min(1).max(64).refine(e=>new Set(e).size===e.length)}).strict(),F7={test:B7.optional(),packages:pe(Sce),envVars:pe(Cce).default([]),connectors:pe(O7).default([])};F(F7);const q5=ace(Mce,F({version:fe(1),...F7}).strict()),Ace=F({target:N().min(1),reason:N().min(1),file:N().min(1),quote:N().min(1)}),Oce=["integration","production"],Hs=He(Oce),yc=N().regex(/^[a-z0-9.-]+(?::[0-9]+)?\/[a-z0-9._/-]+@sha256:[a-f0-9]{64}$/),uj=N().regex(/^[a-f0-9]{40}$/),Dce=N().refine(e=>{try{const t=new URL(e);return t.protocol==="https:"&&!t.username&&!t.password&&!t.search&&!t.hash&&t.pathname==="/"&&/(^|[.-])int([.-]|$)/.test(t.hostname)}catch{return!1}},"测试验证地址必须明确指向 int HTTPS 环境"),$ce=F({version:fe(1),runId:N().regex(/^[A-Za-z0-9_-]{1,128}$/),status:fe("passed"),exitCode:fe(0),result:F({version:fe(1),runId:N().regex(/^[A-Za-z0-9_-]{1,128}$/),checks:pe(F({name:N().regex(/^[a-z0-9][a-z0-9-]{0,63}$/),status:fe("passed"),reason:N().max(1024).optional()}).strict()).min(1).max(64)}).strict(),execution:F({image:yc,imageID:N().min(1).max(512),engine:He(["codex","pi"]),podUid:N().min(1).max(512),jobUid:N().min(1).max(512)}).strict()}).strict(),z7=F({status:fe("passed"),fingerprint:N().regex(/^[a-f0-9]{64}$/),checks:pe(N().regex(/^[a-z0-9-]+$/)),endpoint:Dce,verifiedAt:N().refine(e=>Number.isFinite(Date.parse(e))),test:$ce.optional()}).strict(),H7=F({engine:N().min(1),model:N(),effort:N(),size:N().min(1),cpu:Z().positive(),taskConcurrency:Z().int().positive(),minPods:Z().int().nonnegative().safe().optional()}).strict(),U7=F({version:fe(1),environment:fe("integration"),component:fe("persona"),image:yc,commit:uj,baseImage:yc,pipelineCommit:uj,repository:N().regex(/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/),config:H7.optional(),verification:z7.refine(e=>e.checks.includes("persona-smoke")),test:B7.optional()}).strict().refine(e=>{if(!e.test)return e.verification.test===void 0;const t=e.verification.test;return["persona-dialogue","persona-task","persona-custom-test"].every(n=>e.verification.checks.includes(n))&&t!==void 0&&t.execution.image===e.image&&t.runId===t.result.runId&&t.result.checks.length===e.test.checks.length&&new Set(t.result.checks.map(n=>n.name)).size===e.test.checks.length&&t.result.checks.every(n=>e.test.checks.includes(n.name))},"Declared publisher acceptance requires complete candidate runtime evidence");F({version:fe(1),environment:fe("integration"),component:fe("base"),image:yc,commit:uj,verification:z7.refine(e=>e.checks.includes("base-smoke"))}).strict();const jg="-cloud",K5=`codex${jg}`,Eg={standard:"default",fast:"priority"},Lce=`claude${jg}`;function W7(e){return e==="codex"||e===K5}const V7="pi",Bce=`${V7}${jg}`;function q7(e){return e===V7||e===Bce}function xu(e){return typeof e=="string"&&e.length>jg.length&&e.endsWith(jg)}const K7=He([Eg.standard,Eg.fast]),G5=["tiny","small","medium","large","xlarge"],Fce=He(G5),zb="medium",Hb=[.5,1,2],zce=Z().refine(e=>Hb.includes(e),"Unsupported CPU"),dj={tiny:.5,small:1,medium:2,large:2,xlarge:2},G7=F({model:N().optional(),effort:N().optional()}).strict(),Dm=F({personaId:N(),label:N(),model:N().optional(),effort:N().optional(),serviceTier:K7.optional(),public:Ee(),iconKey:N().optional(),tool:N().optional(),size:N().optional(),cpu:Z().finite().optional(),taskConcurrency:Z().int().positive().optional(),minPods:Z().int().nonnegative().safe().optional(),cloudEngine:G7.optional(),createdAt:Z(),updatedAt:Z(),cloud:F({gatewayUrl:N().min(1),personaId:N().min(1),publishedByMe:Ee().optional(),collaboratedByMe:Ee().optional(),label:N().optional(),environment:Hs.optional(),expectedImage:yc.optional(),testReleaseId:N().optional()}).strict().optional()}).strict(),Hce=F({name:N().min(1),description:N().optional()}),Uce=F({id:N().min(1)}),Y7=F({writableRoots:pe(N()).optional(),denyRead:pe(N()).optional(),network:Ee().optional()}).strict(),Wce=F({permissions:F({defaultMode:N().optional(),allow:pe(N()).optional(),deny:pe(N()).optional()}).optional(),sandbox:F({enabled:Ee().optional(),autoAllowBashIfSandboxed:Ee().optional(),allowUnsandboxedCommands:Ee().optional(),excludedCommands:pe(N()).optional(),filesystem:F({denyRead:pe(N()).optional(),allowRead:pe(N()).optional(),denyWrite:pe(N()).optional(),allowWrite:pe(N()).optional()}).optional(),network:F({allowedDomains:pe(N()).optional(),allowLocalBinding:Ee().optional()}).optional()}).optional()});Dm.extend({personality:N().optional(),personalityLocal:N().optional(),personalityManaged:Ee().optional(),skills:pe(Hce).optional(),plugins:pe(Uce).optional(),sandboxSettings:Wce.nullable().optional(),codexSandbox:Y7.nullable().optional()});F({slug:N().regex(/^[a-z0-9]+(-[a-z0-9]+)*$/).max(32),label:N().min(1),personality:N(),model:N().optional(),effort:N().optional(),serviceTier:Dm.shape.serviceTier,tool:N().optional(),public:Ee().optional(),iconKey:N().optional()}).strict();F({personaId:N().min(1)});F({personaId:N().min(1),patch:F({label:N().min(1).optional(),model:N().optional(),effort:N().optional(),serviceTier:Dm.shape.serviceTier,tool:N().optional(),size:Fce.optional(),cpu:zce.optional(),taskConcurrency:Dm.shape.taskConcurrency,minPods:Dm.shape.minPods,cloudEngine:G7.optional(),personality:N().optional(),personalityLocal:N().optional(),public:Ee().optional(),iconKey:N().nullable().optional(),codexSandbox:Y7.optional()}).strict()}).strict();F({version:fe(1),manifest:q5}).strict();const Vce=["hard","soft"],X7=He(Vce),qce=He(["scanning","done","failed"]),Z7=F({id:N().min(1),manifest:q5,scanSessionId:N().optional(),status:qce,evidence:pe(Ace).default([]),notes:pe(N()).default([]),head:N().min(1).optional(),baseKind:X7.default("hard"),base:N().min(1).optional(),startedAt:Z(),finishedAt:Z().optional(),error:N().optional()}).strict(),Y5=F({id:N().min(1).optional(),environment:Hs.optional(),legacy:Ee().optional(),head:N().min(1),contentHead:N().min(1),scanId:N().min(1),at:Z(),pushed:Ee().optional(),runId:Z().int().positive().optional(),runAttempt:Z().int().positive().optional(),artifactId:Z().int().positive().optional(),verified:U7.optional(),config:H7.optional(),reconfigOf:N().min(1).optional(),workflowVersion:Z().int().positive().optional(),confirmation:F({fingerprint:N().regex(/^[a-f0-9]{64}$/),runId:Z().int().positive(),runAttempt:Z().int().positive(),at:Z()}).strict().optional()}).strict(),Kce=["prepared","main-pushed","dispatching","dispatched","completed","failed"],X5=F({id:N().min(1),releaseId:N().min(1),at:Z(),verified:U7.optional(),phase:He(Kce),expectedMain:N().optional(),runId:Z().int().positive().optional(),runAttempt:Z().int().positive().optional(),error:N().optional()}).strict(),kA=F({channelId:N().min(1),updatedAt:Z()}).strict(),Z5=F({integration:kA.nullable().optional(),production:kA.nullable().optional()}).strict();F({version:fe(4),engineChannels:Z5.optional(),scans:pe(Z7),releases:pe(Y5),promotions:pe(X5).default([])}).strict();const Gce=F({url:N().min(1),branch:N().min(1),head:N().min(1),dirty:Ee(),ahead:Z()}).strict(),ky=F({env:N().min(1),setAt:Z().optional()}).strict(),CA={baseUrl:"CLAWD_ENGINE_BASE_URL",apiKey:"CLAWD_ENGINE_API_KEY"},Yce="模型订阅只写进去一半——重填或改回平台默认";function Ub(e){if(!e)return;const t=r=>e.some(s=>s.env===r&&s.setAt!==void 0),n=[CA.baseUrl,CA.apiKey].filter(t).length;return n===2?"own":n===0?"platform":"partial"}function Xce(e){const t=e.trim();let n;try{n=new URL(t)}catch{throw new Error("订阅地址要以 http:// 或 https:// 开头,形如 https://cpa.example.com")}if(n.protocol!=="http:"&&n.protocol!=="https:"||!n.hostname)throw new Error("订阅地址要以 http:// 或 https:// 开头,形如 https://cpa.example.com");const r=`${n.origin}${n.pathname}`.replace(/\/+$/,"");return r.endsWith("/v1")?r:`${r}/v1`}const Zce=["pending","running","done","failed","waiting","skipped"],Qce=He(Zce),wo="verify",$m=["build","smoke","deploy",wo],Jce=He($m),eue=F({key:Jce,status:Qce,url:N().optional(),jobId:Z().optional(),startedAt:Z().optional(),completedAt:Z().optional(),cliWarnings:pe(N()).optional()}).strict(),Cy=F({runId:Z(),headSha:N().min(1),status:He(["queued","running","completed"]),htmlUrl:N().min(1),jobs:pe(eue),environment:Hs.optional(),branch:N().optional(),event:N().optional(),runAttempt:Z().int().positive().optional(),conclusion:He(["success","failure"]).optional(),promotionId:N().optional()}).strict();function Q7(e,t){return t&&e.head===t.head?t.contentHead:e.head}function Tw(e,t,n){return!e||!t||e.status!=="done"?!1:e.head===Q7(t,n)&&!t.dirty}function Q5(e,t,n){return!e||!t||e.status!=="done"||!e.head?!1:e.head!==Q7(t,n)}function NA(e,t,n){return Tw(e,t,n)||Q5(e,t,n)}function tue(e,t){return!t||!e.head?!1:t.contentHead===e.head||t.at>=e.startedAt}const J7=["codex","pi","claude"];function ml(e){return J7.includes(e||"claude")}const eH={codex:"0.163.0",pi:"1.3.0",claude:"0.3.304"},nue="2.1.304";function rue(e,t){if(!e||!ml(e)||!t)return null;const n=e==="claude"?nue:eH[e];return n===t?null:{tool:e,cloud:n,local:t}}function tH(e){const t=e.tool||"claude",n=t==="claude"?e.cloudEngine??{}:e;return{tool:t,model:n.model??"",effort:n.effort??""}}const Ek=F({runId:Z(),status:Cy.shape.status,conclusion:He(["success","failure"]).optional(),htmlUrl:N().min(1)}).strict(),sue=F({desired:Z().int().nonnegative().safe(),ready:Z().int().nonnegative().safe(),bound:Z().int().nonnegative().safe(),starting:Z().int().nonnegative().safe(),retiring:Z().int().nonnegative().safe(),observedAt:Z(),error:N().nullable()}).strict(),jA=F({online:Ee().optional(),image:yc.optional(),minPods:Z().int().nonnegative().safe().optional(),reservation:sue.nullable().optional(),reservationError:N().optional()}).strict(),nH=F({personaId:N().min(1),engineChannels:Z5.optional(),github:yce.optional(),publisherFeishuAuth:F({integration:F({connected:Ee(),authUrl:N().optional(),error:N().optional()}).strict(),production:F({connected:Ee(),authUrl:N().optional(),error:N().optional()}).strict()}).strict().optional(),repo:Gce.optional(),scans:pe(Z7).default([]),releases:pe(Y5).default([]),promotions:pe(X5).optional(),targets:F({integration:jA.extend({run:Cy.optional(),secrets:pe(ky).optional(),unpublish:Ek.optional()}).optional(),production:jA.extend({run:Cy.optional(),secrets:pe(ky).optional(),unpublish:Ek.optional()}).optional()}).strict().optional(),secrets:pe(ky).optional(),run:Cy.optional(),online:Ee().optional(),unpublish:Ek.optional(),historyError:N().optional()}).strict();F({before:Z().nullable()}).strict();nH.pick({personaId:!0,github:!0,repo:!0,scans:!0,releases:!0,promotions:!0,engineChannels:!0,historyError:!0});nH.pick({scans:!0});F({environment:Hs,secrets:pe(ky).optional(),engineChannels:Z5.optional()}).strict();const iue=e=>e.includes("minPods")?3:2,Ig=1,oue=["engine","model","effort","size","cpu","taskConcurrency","minPods"];function aue(e){const{tool:t,model:n,effort:r}=tH(e),s=(e.size??"").trim()||zb,i=e.cpu??dj[s]??dj[zb];return{engine:t,model:n.trim(),effort:r.trim(),size:s,cpu:i,taskConcurrency:e.taskConcurrency??Ig,minPods:e.minPods??0}}function rH(e,t){return!e||!t?null:oue.filter(n=>n==="minPods"?(e.minPods??0)!==(t.minPods??0):e[n]!==t[n])}F({sha:N().min(1),actionsUrl:N().min(1),releaseId:N().optional()}).strict();const Ic=F({personaId:N().min(1)}).strict(),lue=He(["owner","editor","admin"]),sH=F({displayName:N(),mine:Ee(),acquiredAt:N(),expiresAt:N()}).strict(),cue=He(["invited","active"]),uue=F({unionId:N(),displayName:N(),githubLogin:N().nullable(),createdAt:N(),repoAccess:cue.optional()}).strict(),due=F({role:lue,collaborators:pe(uue),lock:sH.nullable(),lockRequired:Ee()}).strict();due.extend({production:F({ok:Ee(),reason:N().optional()}).strict()}).strict();Ic.extend({deviceId:N().min(1)}).strict();Ic.extend({unionId:N().min(1)}).strict();Ic.extend({action:He(["acquire","renew","release"])}).strict();F({required:Ee(),lock:sH.nullable()}).strict();F({personaId:N().min(1)}).strict();Ic.extend({releaseHead:N().min(1).optional(),releaseId:N().min(1).optional(),environment:Hs.optional()}).strict();Ic.extend({scanBase:X7.optional()}).strict();Ic.extend({scanId:N().min(1)}).strict();Ic.extend({releaseId:N().min(1)}).strict();Ic.extend({environment:Hs.default("production")}).strict();F({confirmation:Y5.shape.confirmation.unwrap()}).strict();F({promotion:X5}).strict();F({personaId:N().min(1),expectedImage:yc}).strict();F({personaId:N().min(1),scanId:N().min(1),patch:F({manifest:q5.optional(),connector:O7.optional()}).strict()}).strict();F({personaId:N().min(1),environment:Hs.default("production"),scanId:N().min(1),name:N().min(1),values:Qi(N(),N())}).strict();F({personaId:N().min(1),environment:Hs.default("production"),channelId:N().min(1).optional(),auth:F({baseUrl:N(),apiKey:N()}).strict().nullable().optional()}).strict().refine(e=>e.channelId!==void 0||e.auth!==void 0,{message:"Either channelId or auth must be provided"});F({personaId:N().min(1),environment:Hs.default("production"),releaseId:N().optional(),jobId:Z()}).strict();const hue="底座已更新,重试仍会用旧底座构建——请重新发布测试环境";F({personaId:N().min(1),kind:He(["package","env","connector"]),item:Qi(N(),Ja()),evidence:F({reason:N().min(1),file:N().min(1),quote:N().min(1)})}).strict();F({personaId:N().min(1),notes:pe(N()).default([])}).strict();const iH="ottin4ttc";function Vh(e){return e.trim().replace(/^git@[^:]+:/,"").replace(/^https?:\/\/[^/]+\//,"").replace(/\.git$/,"")}F({environment:Hs.default("production")}).strict();const fue="LOGIN_EXPIRED",pue=F({deviceId:N().min(1),name:N().min(1),url:N().min(1)});F({type:fe("device:list:ok"),devices:pe(pue)});F({deviceId:N().min(1),url:N().min(1).optional(),name:N().optional()});F({type:fe("device:connect:ok"),deviceId:N(),name:N(),url:N()});const oH=F({ownerId:N().min(1),provider:N().min(1),displayName:N().min(1),avatarUrl:N().optional(),unionId:N().optional()});F({type:fe("auth:login:start:ok"),environment:Hs.optional(),authUrl:N().min(1),state:N().min(1)});F({type:fe("auth:getIdentity:ok"),identity:oH.nullable(),deviceId:N().min(1)});F({type:fe("auth:logout:ok")});const aH=N().nullable();F({type:fe("auth:apiKey:get:ok"),apiKey:N().nullable(),createdAt:N().nullable(),gatewayUrl:aH});F({type:fe("auth:apiKey:regenerate:ok"),apiKey:N().min(1),createdAt:N().min(1),gatewayUrl:aH});F({type:fe("auth:apiKey:revoke:ok"),revoked:Ee()});F({type:fe("auth:login:done"),environment:Hs.optional(),identity:oH});F({type:fe("auth:login:failed"),environment:Hs.optional(),reason:N()});F({deviceId:N().min(1),remoteAccessAllowed:Ee()}).strict();F({type:fe("contact:setRemoteAccess:ok"),deviceId:N().min(1),remoteAccessAllowed:Ee()}).strict();F({type:fe("contact:remote-access-updated"),deviceId:N().min(1),remoteAccessAllowed:Ee()}).strict();F({personaId:N().min(1)}).strict();const mue=["connected","missing","reauth"],gue=["link","fill"],xue=F({name:H5,id:N().min(1),kind:He(M7),runner:He(P7),auth:He(U5),status:He(mue),action:He(gue),authUrl:N().optional(),fields:pe(Iw)}).strict();F({connectors:pe(xue)}).strict();F({personaId:N().min(1),name:H5,values:Qi(Iw,N().min(1))}).strict();const vue=F({deviceId:N().min(1),ownerId:N().min(1),provider:N().min(1),displayName:N(),remoteUrl:N().min(1),connectToken:N(),grants:pe(z5),addedAt:Z().int().nonnegative(),pinnedAt:Z().int().nullable().default(null),remoteAccessAllowed:Ee().default(!1),note:N().default("")}).strict(),lH=vue;F({deviceId:N().min(1)}).strict();F({type:fe("contact:remove:ok"),deviceId:N().min(1)}).strict();F({type:fe("contact:list:ok"),contacts:pe(lH)}).strict();F({type:fe("contact:added"),contact:lH}).strict();F({type:fe("contact:removed"),deviceId:N().min(1)}).strict();F({deviceId:N().min(1),pinned:Ee()}).strict();F({deviceId:N().min(1),note:N()}).strict();F({type:fe("contact:setNote:ok"),deviceId:N().min(1),note:N()}).strict();F({type:fe("contact:pin:ok"),deviceId:N().min(1),pinnedAt:Z().int().nullable()}).strict();F({type:fe("contact:pinned"),deviceId:N().min(1),pinnedAt:Z().int().nullable()}).strict();const cH=8,yue=["submitted","working","input_required","completed","failed","canceled","rejected"],J5=He(yue),bue=/^[A-Za-z0-9_.-]{1,128}$/,Ik=/^[a-z0-9-]{1,128}$/;function wue(e){if(e.startsWith("cloud:")){const s=e.slice(6);return Ik.test(s)?{kind:"cloud",personaId:s}:null}const t=e.indexOf("@");if(t<0)return Ik.test(e)?{kind:"here",personaId:e}:null;const n=e.slice(0,t),r=e.slice(t+1);return Ik.test(n)&&bue.test(r)?{kind:"device",personaId:n,deviceId:r}:null}const _ue=F({target:N().refine(e=>wue(e)!==null,{message:"target must be <personaId>, <personaId>@<deviceId> or cloud:<personaId>"}),text:N().min(1),brief:N().optional(),contextId:N().min(1).optional(),taskId:N().min(1).optional(),sessionLabel:N().min(1).max(60).optional(),model:N().min(1).optional(),tool:N().min(1).optional(),meta:Qi(Ja()).optional()}).refine(e=>!(e.contextId&&e.taskId),{message:"contextId (new round) and taskId (answer) are mutually exclusive"}).refine(e=>!((e.contextId||e.taskId)&&(e.model||e.tool)),{message:"a follow-up cannot change engine or model (contextId / taskId exclude model / tool); start a new line instead"});F({calls:pe(_ue).min(1).max(cH),sessionId:N().min(1).optional()});const Sue=6e4;F({taskIds:pe(N().min(1)).min(1).max(cH),timeoutMs:Z().int().min(0).max(Sue)});F({taskId:N().min(1),text:N().trim().min(1)});F({taskId:N().min(1)});F({contextId:N().min(1).optional(),state:J5.optional(),sessionId:N().min(1).optional(),relatedSessionId:N().min(1).optional()});F({contextId:N().min(1),state:He(["completed","failed","input_required"]),text:N(),brief:N().optional(),filePaths:pe(N().min(1)).optional()});const eT=F({taskId:N().min(1),contextId:N().min(1),round:Z().int().positive(),state:J5,stale:Ee(),reason:N().nullable(),depth:Z().int().min(0),tenant:N(),targetPersonaId:N(),targetDeviceId:N().nullable(),initiator:F({host:N(),personaId:N(),sessionRef:N().nullable()}),executorSessionRef:N().nullable(),executorThreadId:N().nullable(),workerSessionId:N().optional(),sessionLabel:N().optional(),taskText:N(),brief:N().nullable(),resultText:N().nullable(),filePaths:pe(N()),line:Qi(Ja()),deliveredAt:N().nullable(),createdAt:N(),updatedAt:N(),finishedAt:N().nullable()}),kue=zs("ok",[F({ok:fe(!0),task:eT}),F({ok:fe(!1),error:F({code:N(),message:N()})})]);F({results:pe(kue)});F({tasks:pe(eT)});F({tasks:pe(eT),done:Ee()});const Cue=/^[a-z0-9][a-z0-9-]*$/;He(["stopped","starting","running","crashed","invalid"]);const Nue=new Set(["localhost","127.0.0.1"]);function jue(e){let t;try{t=new URL(e)}catch{return!1}return!!(t.protocol==="https:"||t.protocol==="http:"&&Nue.has(t.hostname))}const a0=F({id:N().regex(Cue),name:N().min(1),version:N().min(1),apiVersion:fe("1"),runtime:F({startCommand:N().min(1)}).passthrough().optional(),entry:F({url:N().url().refine(jue,{message:"INVALID_URL_SCHEME: only https or http://localhost is allowed"})}).strict().optional()}).passthrough().superRefine((e,t)=>{var s;const n=!!e.runtime,r=!!((s=e.entry)!=null&&s.url);n&&r&&t.addIssue({code:Se.custom,message:"INVALID_MANIFEST: entry.url and runtime cannot coexist"}),!n&&!r&&t.addIssue({code:Se.custom,message:"INVALID_MANIFEST: must have either entry.url or runtime"})}),Eue=zs("kind",[F({kind:fe("local"),port:Z().int().min(1).max(65535)}),F({kind:fe("hosted"),url:N().url()})]);zs("state",[F({extId:N(),manifest:a0,state:fe("stopped")}),F({extId:N(),manifest:a0,state:fe("starting")}),F({extId:N(),manifest:a0,state:fe("running"),target:Eue}),F({extId:N(),manifest:a0,state:fe("crashed")}),F({extId:N(),manifest:Ja().nullable(),state:fe("invalid"),invalidReason:N().min(1)})]);F({snapshotHash:N().min(1),version:N().min(1),publishedAt:Z()});const Iue=zs("kind",[F({kind:fe("p2p-tunnel"),ownerPrincipalId:N().min(1),extId:N().min(1)})]);zs("kind",[F({kind:fe("p2p-tunnel"),ownerPrincipalId:N().min(1),extId:N().min(1),snapshotHash:N().min(1)})]);F({extId:N().min(1),name:N().min(1),version:N().min(1),contentHash:N().min(1),publishedAt:Z()});const Tue=zs("kind",[F({kind:fe("clean")}),F({kind:fe("ready-new-version"),fromVersion:N().min(1),toVersion:N().min(1)}),F({kind:fe("error-same-hash"),version:N().min(1)}),F({kind:fe("error-version-not-bumped"),localVersion:N().min(1),publishedVersion:N().min(1)}),F({kind:fe("error-version-regression"),localVersion:N().min(1),publishedVersion:N().min(1)})]);function Rue(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619)>>>0;return(t>>>0).toString(16).padStart(8,"0")}function tT(e,t){return`${e}-${Rue(t)}`}function nT(e){if(typeof e!="string")return{ok:!1,reason:"version must be a string"};const t=e.split(".");if(t.length!==3)return{ok:!1,reason:`"${e}" — only MAJOR.MINOR.PATCH allowed`};for(const n of t)if(!/^\d+$/.test(n))return{ok:!1,reason:`"${e}" — only numeric segments allowed`};return{ok:!0}}function uH(e,t){const n=EA(e),r=EA(t);for(let s=0;s<3;s++){if(n[s]<r[s])return-1;if(n[s]>r[s])return 1}return 0}function EA(e){const t=nT(e);if(!t.ok)throw new Error(t.reason);const[n,r,s]=e.split(".").map(i=>parseInt(i,10));return[n,r,s]}F({localManifest:F({name:N().min(1),version:N().min(1),contentHash:N().min(1)}),publishState:zs("kind",[F({kind:fe("unpublished")}),F({kind:fe("published"),version:N().min(1),contentHash:N().min(1),publishedAt:Z()})]),check:Tue});F({extId:N().min(1),newVersion:N().min(1).nullish()});F({extId:N().min(1)});F({extId:N().min(1),snapshotHash:N().min(1)});F({channelRef:Iue,snapshotHash:N().min(1),zipBase64:N().min(1)});F({id:N().min(1),peerDeviceId:N().min(1),senderDeviceId:N().min(1),text:N().min(1),createdAt:Z().int().nonnegative(),readBy:Qi(N().min(1),Z().int().positive()).default({}),origin:F({kind:fe("persona"),personaId:N().min(1)}).optional()}).strict();F({peerDeviceId:N().min(1).optional(),id:N().min(1),text:N().min(1),createdAt:Z().int().nonnegative(),origin:F({kind:fe("persona"),personaId:N().min(1)}).optional()}).strict();F({peerDeviceId:N().min(1),sinceCreatedAt:Z().int().nonnegative().optional()}).strict();F({peerDeviceId:N().min(1),upToCreatedAt:Z().int().nonnegative()}).strict();F({peerDeviceId:N().min(1).optional(),text:N().min(1)});F({peerDeviceId:N().min(1).optional(),command:N().min(1),timeoutMs:Z().int().positive().optional()}).strict();F({type:fe("peerExec:run:ok"),stdout:N(),stderr:N(),exitCode:Z().int().nullable(),timedOut:Ee(),stdoutTruncated:Ee(),stderrTruncated:Ee()}).strict();const dH=zs("kind",[F({kind:fe("at"),at:N().min(1)}),F({kind:fe("every"),everyMs:Z().int().positive(),anchorMs:Z().int().nonnegative().optional()}),F({kind:fe("cron"),expr:N().min(1),tz:N().min(1).optional()})]),gx=N().trim().min(1);F({personaId:gx,name:N().min(1),schedule:dH,prompt:N().min(1),targetPersona:N().min(1).optional(),timeoutMs:Z().int().positive().optional()});F({personaId:gx,onlyMine:Ee().optional()});F({personaId:gx,shiftId:N().min(1)});const Mue=F({name:N().min(1).optional(),schedule:dH.optional(),prompt:N().min(1).optional(),targetPersona:N().min(1).optional(),timeoutMs:Z().int().positive().optional(),enabled:Ee().optional()});F({personaId:gx,shiftId:N().min(1),patch:Mue});F({personaId:gx,shiftId:N().min(1),limit:Z().int().positive().optional()});const Hi="persona-master",rT=F({personaId:N().min(1),deviceId:N().min(1).optional()}),hH=F({id:N().min(1),name:N().min(1),memberPersonas:pe(rT),memberContactDeviceIds:pe(N().min(1)),createdAt:N().min(1),updatedAt:N().min(1)}),fH=N().trim().min(1);F({name:fH,memberPersonas:pe(rT).default([]),memberContactDeviceIds:pe(N().min(1)).default([])});F({channelId:N().min(1),name:fH.optional(),memberPersonas:pe(rT).optional(),memberContactDeviceIds:pe(N().min(1)).optional()});F({channelId:N().min(1)});F({channels:pe(hH)});F({channel:hH});F({ok:fe(!0),removedTopics:Z().int().min(0)});const dr=N().trim().min(1),sT=["master-confirmed","owner-needed"],iT=["open","resolved"],Pue=sT[0],pH=sT[1],mH=iT[0],Aue=iT[1],Oue=He(sT),Due=He(iT),$ue=F({id:dr.optional(),resolves:dr.optional(),type:Oue,status:Due,question:dr,recommendation:dr}).superRefine((e,t)=>{e.type===Pue&&e.status!==Aue&&t.addIssue({code:Se.custom,path:["status"],message:"master-confirmed decisions must be resolved"})}),Lue=["planning","running","done"],Bue=He(Lue),gH=F({at:N().min(1),actor:N().min(1),action:N().min(1),target:N().optional(),reason:N().min(1),artifacts:pe(dr).optional(),decision:$ue.optional()}),Fue=F({rejectCount:Z().int().min(0),accepted:Ee().default(!1),ordinal:Z().int().min(1).optional(),overrideCount:Z().int().min(0).optional()}),oT=F({id:N().min(1),channelId:N().min(1),title:N(),masterSessionId:N().min(1),goal:N(),boundaries:N(),acceptanceCriteria:pe(N()),activity:pe(gH),lineMeta:Qi(Fue),nextLineOrdinal:Z().int().min(1).optional(),state:Bue,createdAt:N().min(1),updatedAt:N().min(1)}),zue=F({lineId:N().min(1),contextId:N().min(1),taskId:N().min(1),workerSessionId:N().optional(),assignee:N().min(1),focus:N(),status:J5,acceptance:pe(N()),rejectCount:Z().int().min(0),accepted:Ee(),ordinal:Z().int().min(1).nullable()});F({channelId:N().min(1)});F({topicId:N().min(1).optional(),sessionId:N().min(1).optional()}).refine(e=>e.topicId!==void 0||e.sessionId!==void 0,{message:"either topicId or sessionId is required"});F({channelId:N().min(1),title:dr.optional()});F({topicId:N().min(1),title:dr.optional(),goal:dr,boundaries:N(),acceptanceCriteria:pe(dr).min(1)});F({topicId:N().min(1),action:dr,target:dr.optional(),reason:dr,artifacts:pe(dr).optional(),decision:gH.shape.decision});F({topicId:N().min(1),lineId:dr,reason:dr});F({topicId:N().min(1),lineId:dr,reason:dr,artifacts:pe(dr).optional(),watcherVerdict:He(["pass","fail"]),overrideReason:dr.optional()}).refine(e=>e.watcherVerdict!=="fail"||!!e.overrideReason,{message:"watcherVerdict=fail 时必须给 overrideReason(推翻 watcher 的理由)",path:["overrideReason"]});F({topicId:N().min(1),state:He(["done"])});F({topicId:N().min(1),title:dr});F({topicId:N().min(1)});const Hue=oT.extend({lineCount:Z().int().min(0)});F({topics:pe(Hue)});F({topic:oT,lines:pe(zue)});F({topicId:N().min(1),masterSessionId:N().min(1)});F({rejectCount:Z().int().min(1),needsOwnerAttention:Ee()});F({acceptedLines:Z().int().min(1),totalLines:Z().int().min(1),allAccepted:Ee(),overrides:Z().int().min(0),needsOwnerAttention:Ee()});F({topic:oT});F({ok:fe(!0),removedMasterSessionId:N().min(1).nullable(),removedWorkerSessionIds:pe(N().min(1))});const Uue=["ask","allow","deny"],xH=He(Uue),Wue=F({id:N().min(1),desc:N().min(1),action:xH});F({rules:pe(Wue)});F({ruleId:N().min(1)});F({action:xH,desc:N(),source:N().min(1)});const Vue=["created","review-requested"],vH=/^[A-Za-z0-9._-]+$/,Rf=N().min(1).regex(vH),Mf=N().min(1).regex(vH),xx=Z().int().positive();F({role:He(Vue)});F({owner:Rf,repo:Mf,number:xx});F({owner:Rf,repo:Mf,number:xx,expectedHeadSha:N().min(1)});F({owner:Rf,repo:Mf,number:xx,body:N().min(1)});F({owner:Rf,repo:Mf,number:xx,ready:Ee()});F({owner:Rf,repo:Mf});F({owner:Rf,repo:Mf,number:xx,reviewers:pe(N().min(1)).min(1)});F({page:Z().int().min(1).max(1e3).optional(),search:N().max(100).optional()});F({personaId:N().min(1)});F({personaId:N().min(1)});const que=["expired","cancelled","access_denied","lark_protocol_error","cloud_unreachable","internal_error"],Kue=He(que);F({personaId:N().min(1),appId:N().min(1),appSecret:N().min(1),botName:N().min(1).optional()});const Gue=F({chatId:N().min(1),chatName:N().optional(),lastActiveAt:Z().int().optional()}),Yue=F({state:He(["unbound","provisioning","bound","broken"]),appId:N().optional(),botName:N().optional(),brokenReason:N().optional(),qrUrl:N().optional(),provisionId:N().optional(),errorReason:Kue.optional(),groups:pe(Gue),needsUpgrade:Ee().optional(),upgradeQrUrl:N().optional()});Yue.extend({personaId:N().min(1)});F({});F({onboardingCompletedAt:Z()});const qh=["claude","codex","pi"];F({});F({tools:pe(F({id:He(qh),available:Ee(),version:N().optional(),path:N().optional()}))});F({});const Xue=F({tool:He(qh),cwd:N(),toolSessionId:N(),label:N().optional(),createdAt:N(),updatedAt:N(),turns:Z()});F({candidates:pe(Xue)});F({});F({registered:Ee()});const Zue=F({kind:He(["rpc","file"]),ref:N().min(1).max(300)});F({question:N().min(1).max(500),status:He(["unanswered","answered_unverified"]),answer:N().max(4e3).optional(),resolvedBy:He(["rpc","source"]).optional(),evidence:pe(Zue).max(20).optional(),docsChecked:pe(N().max(200)).max(20).optional(),unansweredReason:He(["no_source_access","user_declined","not_found"]).optional()}).superRefine((e,t)=>{var n;e.status==="answered_unverified"?(e.answer||t.addIssue({code:"custom",path:["answer"],message:"answered_unverified 需要 answer"}),e.resolvedBy||t.addIssue({code:"custom",path:["resolvedBy"],message:"answered_unverified 需要 resolvedBy"}),(n=e.evidence)!=null&&n.length||t.addIssue({code:"custom",path:["evidence"],message:"answered_unverified 需要至少一项 evidence"})):e.unansweredReason||t.addIssue({code:"custom",path:["unansweredReason"],message:"unanswered 需要 unansweredReason"})});F({id:N()});F({tool:He(qh)});const IA=F({usedPercent:Z(),windowDurationMins:Z().optional(),resetsAt:Z().optional()}).strict(),Que=zs("kind",[F({kind:fe("claude"),loggedIn:Ee(),authMethod:N().optional(),apiProvider:N().optional(),apiKeySource:N().optional(),email:N().optional(),orgName:N().optional(),subscriptionType:N().optional()}).strict(),F({kind:fe("codex"),login:zs("type",[F({type:fe("none")}).strict(),F({type:fe("apiKey")}).strict(),F({type:fe("chatgpt"),email:N(),planType:N()}).strict()]),provider:F({name:N(),baseUrl:N().optional()}).strict(),rateLimits:F({primary:IA.optional(),secondary:IA.optional()}).strict().optional()}).strict(),F({kind:fe("pi"),providers:pe(F({id:N(),modelCount:Z(),credential:He(["api_key","oauth"]).optional(),oauthExpiresAt:Z().optional()}).strict())}).strict()]);F({tool:He(qh),installed:Ee(),version:N().optional(),path:N().optional(),account:Que.optional(),error:N().optional(),modelsLoadedAt:Z().optional()}).strict();const aT="https://cpa-portal-d417.app.clawos.chat";F({apiKey:N().min(1)}).strict();F({ok:fe(!0)}).strict();const yH=["cloud-persona-metrics","cloud-persona-conversations","cloud-persona-schedules"],Jue=He(yH);F({page:Jue}).strict();F({url:N(),expiresAt:Z().int()}).strict();const bH=["ready","session:info","session:status","session:event","session:deleted","session:rewound","session:cleared","session:queue","permission:request","session:question","session:question:cleared","pong","error","subscribed","unsubscribed","auth:ok","tunnel:ready","tunnel:exited","tunnel:unavailable","session:control","session:pty","contact:added","contact:pinned","contact:removed","contact:remote-access-updated","contact:note-updated","org-mesh:progress","channel:changed","inbox:event","friend:reverseTokenOffered","auth:login:done","auth:login:failed","larkBot:state"],ede="cloud_history_refresh",lT=["idle","running","running-idle","stopped","error","observing"],tde=["task-notification","slash-command","local-command","system-reminder","skill-hint","meta-text","attachment-skills","attachment-deferred-tools","a2a-task","a2a-result","dispatch-task","dispatch-result"],nde=["a2a-task","a2a-result","dispatch-task","dispatch-result"];function Rw(e){return nde.includes(e??"")}function rde(e,t){return`${t?"dispatch":"a2a"}-${e}`}const sde=["builtin","global","project","plugin"],ide=["builtin","global","project","policy","plugin"],wH=He(["owner","guest"]);F({id:N().min(1),kind:wH,displayName:N(),feishuUnionId:N().optional()}).strict();const ode=F({did:N().min(1),displayName:N(),feishuUnionId:N().optional(),principal:wH}).strict(),ade=He(lT),lde=F({inputTokens:Z().int().nonnegative(),outputTokens:Z().int().nonnegative(),cacheReadTokens:Z().int().nonnegative().optional(),cacheCreateTokens:Z().int().nonnegative().optional()}),_H={gitBranch:N().optional(),resolvedModel:N().optional(),resolvedEffort:N().optional(),contextUsage:lde.optional(),contextWindowSize:Z().int().positive().optional(),aiLabel:N().optional()},cde=F(_H),SH=F({value:N(),label:N(),description:N().optional()}),ude=F({id:N().min(1),label:N().min(1),description:N().optional(),contextWindowSize:Z().int().positive().optional(),default:Ee().optional(),efforts:pe(SH).optional(),defaultEffort:N().optional(),group:N().optional()}),dde=F({id:N().min(1),label:N().min(1),description:N().optional()}),hde=F({name:N().min(1),type:He(["string","select","toggle"]),label:N().min(1),description:N().optional(),options:pe(SH).optional(),default:Ja().optional(),scope:He(["core","tool-specific"])});F({tool:N().min(1),refresh:Ee().optional()});const fde=F({rewind:Ee(),subagents:Ee(),tui:Ee(),observe:Ee(),fileSharing:Ee(),fork:Ee()});F({tool:N().min(1),toolSessionIdLabel:N().optional(),models:pe(ude),permissionModes:pe(dde),configSchema:pe(hde),features:fde});const pde=F({tool:N().min(1),pattern:N().min(1),createdAt:N().min(1).optional()});F({cloudEnvironment:Hs.optional(),cloudExpectedImage:yc.optional(),testReleaseId:N().optional(),sessionId:N().min(1),cloudConversationId:N().min(1).optional(),cloudWorkspace:Ew.optional(),cloudPendingTurns:pe(F({id:N().min(1),text:N(),prepared:Ee().optional()})).optional(),cloudBranchIntent:Ng.optional(),cwd:N().min(1),tool:fe("claude").or(N().min(1)).default("claude"),toolSessionId:N().optional(),label:N().optional(),model:N().optional(),permissionMode:N().optional(),effort:N().optional(),serviceTier:N().optional(),..._H,aiLabelGeneratedAt:N().optional(),permissionRules:pe(pde).optional(),pinnedAt:Z().int().nonnegative().nullable().optional(),archivedAt:Z().int().nonnegative().nullable().optional(),pinSortOrder:Z().int().nullable().optional(),unreadAt:N().min(1).nullable().optional(),iconKey:N().optional(),forkedFromSessionId:N().min(1).optional(),ephemeral:Ee().optional(),deployId:N().min(1).optional(),ownerPersonaId:N().min(1).optional(),projectPath:N().min(1).optional(),chatId:N().min(1).optional(),creatorPrincipalId:N().min(1).optional(),creatorDisplayName:N().min(1).optional(),creatorFeishuUnionId:N().min(1).optional(),originOwnerPrincipalId:N().min(1).optional(),originOwnerPersonaId:N().min(1).optional(),dispatchedFromSessionId:N().min(1).optional(),a2aContextId:N().min(1).optional(),shiftFiredFromSessionId:N().min(1).optional(),larkChatId:N().min(1).optional(),larkChatName:N().min(1).optional(),larkChatType:He(["p2p","group"]).optional(),createdAt:N().min(1),updatedAt:N().min(1)});const Es={turnId:N().min(1).optional(),seq:Z().int().nonnegative().optional(),ts:N().optional(),uuid:N().optional()},mde=He(tde),gde=F({readCount:Z().int().nonnegative().optional(),searchCount:Z().int().nonnegative().optional(),bashCount:Z().int().nonnegative().optional(),editFileCount:Z().int().nonnegative().optional(),linesAdded:Z().int().nonnegative().optional(),linesRemoved:Z().int().nonnegative().optional(),otherToolCount:Z().int().nonnegative().optional()}),xde=F({oldStart:Z().int().nonnegative(),oldLines:Z().int().nonnegative(),newStart:Z().int().nonnegative(),newLines:Z().int().nonnegative(),lines:pe(N())}),vde=F({agentId:N().optional(),agentType:N().optional(),status:N().optional(),prompt:N().optional(),filePath:N().optional(),structuredPatch:pe(xde).optional(),stats:F({durationMs:Z().int().nonnegative().optional(),tokens:Z().int().nonnegative().optional(),toolUseCount:Z().int().nonnegative().optional(),toolStats:gde.optional()}).optional()}),yde=F({path:N(),content:N(),mtimeMs:Z().optional()}),bde=F({label:N().min(1),description:N().optional()}),kH=F({question:N().min(1),multiSelect:Ee(),options:pe(bde).min(1)}),wde=["completed","interrupted"];zs("kind",[F({...Es,kind:fe("session_init"),toolSessionId:N().optional()}),F({...Es,kind:fe("thinking"),text:N(),partialId:N().optional()}),F({...Es,kind:fe("text"),text:N(),partialId:N().optional()}),F({...Es,kind:fe("user_text"),text:N(),meta:mde.optional(),taskId:N().optional(),parentToolUseId:N().optional(),sender:ode.optional()}),F({...Es,kind:fe("tool_call"),toolUseId:N(),tool:N(),toolKind:N().optional(),input:Ja()}),F({...Es,kind:fe("tool_result"),toolUseId:N(),output:Ja().optional(),error:N().optional(),toolResultExtra:vde.optional(),sourceToolAssistantUUID:N().optional(),askQuestionAnswers:Qi(N(),N()).optional()}),F({...Es,kind:fe("attachment_memories"),memories:pe(yde)}),F({...Es,kind:fe("permission_request"),requestId:N(),tool:N(),input:Ja(),toolUseId:N().optional()}),F({...Es,kind:fe("ask_user_question"),toolUseId:N(),questions:pe(kH)}),F({...Es,kind:fe("turn_end"),durationMs:Z().int().nonnegative().optional(),reason:He(wde).optional(),turnId:N().min(1).optional()}),F({...Es,kind:fe("subagent_progress"),toolUseId:N(),agentId:N(),status:He(["started","running","completed","failed"]),description:N().optional(),lastToolName:N().optional(),prompt:N().optional(),stats:F({durationMs:Z().int().nonnegative().optional(),tokens:Z().int().nonnegative().optional(),toolUseCount:Z().int().nonnegative().optional()}).optional()}),F({...Es,kind:fe("error"),message:N()}),F({...Es,kind:fe("meta_update"),patch:cde}),F({...Es,kind:fe("meta-text"),text:N(),metaSource:He(["cc","owner"]).optional()})]);F({cwd:N().min(1).optional(),tool:N().optional(),label:N().optional(),aiLabel:N().optional(),model:N().optional(),permissionMode:N().optional(),effort:N().optional(),serviceTier:K7.optional(),iconKey:N().optional(),forkedFromSessionId:N().min(1).optional(),forkAt:oce([F({messageUuid:N().min(1)}).strict(),F({turnId:N().min(1)}).strict()]).optional(),ephemeral:Ee().optional(),ownerPersonaId:N().min(1).optional(),projectPath:N().min(1).optional()}).refine(e=>e.cwd!=null||e.ownerPersonaId!=null||e.projectPath!=null,{message:"cwd / ownerPersonaId / projectPath 至少传一个"});F({path:N().min(1),name:N().min(1),createdAt:N().datetime(),pinnedAt:Z().optional()});F({path:N().min(1),pinnedAt:Z().nullable()});F({path:N().min(1)});F({path:N().min(1).optional(),name:N().min(1).optional()}).refine(e=>e.path!=null||e.name!=null,{message:"path 与 name 至少给一个"});F({cwd:N().min(1),tool:N().min(1),toolSessionId:N().min(1),label:N().optional(),aiLabel:N().optional(),iconKey:N().optional(),createdAt:N().datetime(),updatedAt:N().datetime(),ownerPersonaId:N().min(1).optional()});F({originOnly:Ee().optional(),ownerPersonaId:N().min(1).optional(),limit:Z().int().positive().optional(),offset:Z().int().nonnegative().optional()});F({sessionId:N().min(1)});F({sessionId:N().min(1),patch:F({label:N().optional(),tool:N().min(1).optional(),model:N().optional(),permissionMode:N().optional(),effort:N().optional(),cwd:N().optional(),iconKey:N().optional(),ephemeral:fe(!1).optional()})});F({id:N().min(1),text:N(),queuedAt:Z(),senderDisplayName:N().optional()});F({sessionId:N().min(1),text:N(),queueWhileRunning:Ee().optional()});F({sessionId:N().min(1),id:N().min(1).optional()});F({sessionId:N().min(1),userMessageId:N().min(1),dryRun:Ee().optional()});F({canRewind:Ee(),error:N().optional(),filesChanged:pe(N()).optional(),insertions:Z().int().nonnegative().optional(),deletions:Z().int().nonnegative().optional()});F({sessionId:N().min(1),userMessageId:N().min(1)});const _de=F({oldStart:Z().int().nonnegative(),oldLines:Z().int().nonnegative(),newStart:Z().int().nonnegative(),newLines:Z().int().nonnegative(),lines:pe(N())}),Sde=F({filePath:N().min(1),hunks:pe(_de),insertions:Z().int().nonnegative(),deletions:Z().int().nonnegative(),status:He(["modified","added","deleted"]).optional()});F({canRewind:Ee(),error:N().optional(),files:pe(Sde),totalInsertions:Z().int().nonnegative(),totalDeletions:Z().int().nonnegative()});F({userMessageIds:pe(N())});F({sessionId:N().min(1),toolSessionId:N().min(1)});F({cwd:N().min(1),toolSessionId:N().min(1),messageUuid:N().min(1).optional(),turnId:N().min(1).optional(),sourceSessionId:N().min(1).optional(),targetCwd:N().min(1).optional()}).refine(e=>!!(e.messageUuid||e.turnId),"messageUuid or turnId required");F({forkedToolSessionId:N().min(1),forkedFilePath:N().min(1)});F({sessionId:N().min(1),toolSessionId:N().min(1),jsonlPath:N().optional()});F({sessionId:N().min(1),afterSeq:Z().int().min(-1)});F({sessionId:N().min(1),permissionRequestId:N().min(1),allow:Ee(),permanent:Ee().optional(),pattern:N().optional()});F({projectPath:N().min(1)});F({sessionId:N().min(1),limit:Z().int().positive().max(5e3).optional(),offset:Z().int().nonnegative().optional(),snapshotId:N().uuid().optional(),slim:Ee().optional(),view:He(["turns","items"]).optional(),cursor:N().min(1).max(16384).optional(),turnId:N().min(1).max(256).optional()}).superRefine((e,t)=>{e.view==="items"&&!e.turnId&&t.addIssue({code:Se.custom,path:["turnId"],message:"items requires turnId"}),e.view&&(e.offset!==void 0||e.slim!==void 0)&&t.addIssue({code:Se.custom,message:"native views do not accept offset or slim"}),!e.view&&(e.cursor!==void 0||e.turnId!==void 0)&&t.addIssue({code:Se.custom,message:"cursor and turnId require a native view"}),e.view==="turns"&&e.turnId!==void 0&&t.addIssue({code:Se.custom,path:["turnId"],message:"turns does not accept turnId"}),e.view&&e.limit!==void 0&&e.limit>100&&t.addIssue({code:Se.custom,path:["limit"],message:"native page limit is 100"})});F({cwd:N().min(1),toolSessionId:N().min(1)});F({cwd:N().min(1),toolSessionId:N().min(1),subagentId:N().min(1)});F({cwd:N().min(1).optional(),path:N().optional(),showHidden:Ee().optional()});F({cwd:N().min(1),path:N().min(1)});F({cwd:N().min(1),tool:N().optional()});F({name:N().min(1),source:He(sde),path:N().optional(),description:N().optional(),plugin:N().optional()});const kde=F({name:N().min(1),source:He(ide),path:N().optional(),description:N().optional(),whenToUse:N().optional(),plugin:N().optional()});F({cwd:N().min(1),tool:N().optional()});F({agents:pe(kde)});F({sessionId:N().optional()});F({sessionId:N().min(1).optional()});F({sessionId:N().min(1),pinned:Ee()});F({sessionId:N().min(1),archived:Ee()});F({query:N().min(1),sessionIds:pe(N().min(1)),limit:Z().int().positive().max(50).optional()});const Cde=F({sessionId:N().min(1),snippet:N()});F({type:fe("session:searchContent"),matches:pe(Cde)});F({type:fe("peerSession:upsert:ok")});F({sessionId:N().min(1)});F({type:fe("peerSession:remove:ok")});F({orderedIds:pe(N().min(1)).min(1)});F({cwd:N().min(1)});F({isGitRoot:Ee(),gitRoot:N().nullable()});F({cwd:N().min(1)});F({branch:N().nullable()});F({cwd:N().min(1)});F({branches:pe(N()),head:N().nullable()});const Nde=F({cwd:N().min(1),updatedAt:N().min(1)});F({dirs:pe(Nde)});F({type:fe("session:question"),sessionId:N().min(1),toolUseId:N().min(1),requestId:N().min(1),questions:pe(kH).min(1)});F({type:fe("session:question:cleared"),sessionId:N().min(1),toolUseId:N().min(1),answers:Qi(N(),N()).optional()});F({sessionId:N().min(1),toolUseId:N().min(1),answers:Qi(N(),N())});F({ok:fe(!0)});F({sessionId:N().min(1),toolUseId:N().min(1)});F({ok:fe(!0)});const CH=F({name:N().min(1),version:N().min(1),instanceId:N().min(1),deviceLabel:N().transform(e=>e.trim().slice(0,64)).optional()});F({type:fe("auth"),token:N().min(1),scheme:fe("bearer").optional(),clientInfo:CH.optional()});F({type:fe("auth:ok"),version:N().min(1).optional(),protocolVersion:Z().int().nonnegative().optional()});const jde=F({clientId:N().min(1),connectedAt:Z().int().nonnegative(),self:Ee(),clientInfo:CH.optional()});F({type:fe("device:connections:ok"),connections:pe(jde)});F({type:fe("tunnel:ready"),url:N().min(1),subdomain:N().min(1)});F({type:fe("tunnel:exited"),code:Z().int().nullable(),subdomain:N().nullable(),url:N().nullable()});F({type:fe("tunnel:unavailable"),reason:N().min(1),failedAt:N().min(1)});const Ede=F({sessionId:N().min(1),status:ade,freshSpawn:Ee(),pendingPermissionRequestIds:pe(N().min(1)),pendingQuestionToolUseIds:pe(N().min(1))});F({type:fe("info"),version:N(),protocolVersion:Z(),hostname:N(),os:N(),tools:pe(F({id:N(),available:Ee()})),runningSessions:pe(Ede),tokenRole:He(hce).optional(),isLoopback:Ee().optional(),httpBaseUrl:N().optional(),httpToken:N().optional(),daemonSource:He(["ota","packaged"]).optional(),globalCliVersion:N().nullable().optional()});F({});F({method:N().min(1).optional()});const Ide=["allowed","conditional","denied"],Tde=He(Ide),Rde=F({name:N().min(1),status:Tde,description:N().min(1),args:pe(F({name:N(),required:Ee()})).nullable(),argsSchema:Qi(Ja()).optional(),reason:N().optional()});F({type:fe("meta:methods"),methods:pe(Rde)});const TA=1,Mde=F({usedBytes:Z().int().nonnegative(),sizeBytes:Z().int().positive(),measuredAt:Z().int().nonnegative()}).strict();F({volume:Mde.nullable()}).strict();const RA=25*1024*1024,cT={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".pdf":"application/pdf",".txt":"text/plain",".md":"text/plain",".markdown":"text/plain",".csv":"text/plain",".log":"text/plain",".json":"application/json",".xml":"application/xml",".yaml":"application/yaml",".yml":"application/yaml",".html":"text/html",".conf":"text/plain",".cfg":"text/plain",".ini":"text/plain",".toml":"text/plain"},NH=new Set([...Object.values(cT),"application/x-yaml"]),jH=[...NH,"text/*",...Object.keys(cT)].join(",");function EH(e,t){const n=t.split(";",1)[0].trim().toLowerCase();if(n===""||n==="application/octet-stream"){const r=e.lastIndexOf("."),s=r>0?e.slice(r).toLowerCase():"";return cT[s]??null}return NH.has(n)||n.startsWith("text/")?n:null}const Pde=["daemon","main","renderer"],Ade=He(Pde),Ode=["debug","info","warn","error"],Dde=He(Ode);F({ts:Z().int(),source:Ade,level:Dde,msg:N(),ownerPrincipalId:N(),deviceId:N(),appVersion:N(),daemonVersion:N().optional(),os:N(),meta_json:N().optional(),sessionId:N().optional()});F({v:fe(1),visitorId:N().min(1),displayName:N(),provider:N(),iat:Z(),exp:Z()});const $de=F({visitorId:N(),displayName:N(),avatarUrl:N().optional(),provider:N(),firstSeen:Z(),lastSeen:Z()});F({visitors:pe($de)});F({type:fe("web:open"),url:N().min(1),expiresAt:Z()});F({ticket:N().min(1)}).strict();F({token:N().min(1),expiresAt:Z()});const Lde=/<system-reminder>此消息来自飞书群成员 (.+?)<\/system-reminder>\s*$/,IH=/<system-reminder>此消息来自 (owner|guest):(.+?)<\/system-reminder>\s*$/,Bde="clawd-a2a-task",Fde="clawd-a2a-result",zde="clawd-dispatch-task",Hde="clawd-dispatch-result",Ude=["completed","failed","input_required","canceled","rejected"],MA=120,TH=[{tag:Bde,kind:"task",legacy:!1},{tag:Fde,kind:"result",legacy:!1},{tag:zde,kind:"task",legacy:!0},{tag:Hde,kind:"result",legacy:!0}];function Wde(e){if(!e)return null;let t=null;for(const n of TH){const r=e.search(Jde(n.tag));r>=0&&(t===null||r<t.at)&&(t={at:r,kind:n.kind,legacy:n.legacy})}return t?{kind:t.kind,legacy:t.legacy}:null}function Vde(e){if(!e)return[];const t=[];for(const n of TH){const r=new RegExp(`<${n.tag}\\b([^>]*)>([\\s\\S]*?)</${n.tag}>`,"gi");for(let s=r.exec(e);s!==null;s=r.exec(e))t.push({at:s.index,block:qde(n.kind,n.legacy,s[1]??"",s[2]??"")})}return t.sort((n,r)=>n.at-r.at).map(n=>n.block)}function qde(e,t,n,r){var h;const s=ehe(n),i=hj(Qde(Tk(r,"detail")??r)),o=(h=Tk(r,"brief"))==null?void 0:h.trim(),l=o&&o.length>0?hj(o):Kde(i),c=s.round!==void 0?Number.parseInt(s.round,10):void 0,u=s.status,d=t?u==="success"?"completed":u==="failure"?"failed":void 0:Ude.find(f=>f===u);return{kind:e,contextId:(t?s["dispatch-id"]:s["context-id"])??"",...!t&&s["task-id"]?{taskId:s["task-id"]}:{},...s.from?{from:s.from}:{},...e==="task"&&c!==void 0&&Number.isFinite(c)?{round:c}:{},...e==="result"&&d?{status:d}:{},brief:l,briefIsDerived:!(o&&o.length>0),detail:i,filePaths:Zde(Tk(r,"files")),legacy:t}}function Kde(e){const t=e.split(/\n\s*\n/).map(r=>r.trim()).find(r=>r.length>0);if(!t)return"";const n=t.replace(/\s+/g," ");return n.length>MA?`${n.slice(0,MA)}…`:n}const Gde="clawd-a2a-task|clawd-a2a-result|clawd-dispatch-task|clawd-dispatch-result|brief|detail|files",Yde=new RegExp(`<\\\\(\\\\*)(/?)(${Gde})\\b`,"g");function Xde(e){return hj(e)}function hj(e){return e.replace(Yde,"<$1$2$3")}function Tk(e,t){const n=new RegExp(`<${t}>([\\s\\S]*?)</${t}>`,"i").exec(e);return n?n[1]??"":null}function Zde(e){return e?e.split(`
|
|
95
|
+
`,boxShadowTabsOverflowLeft:"inset 10px 0 8px -8px rgba(0, 0, 0, 0.08)",boxShadowTabsOverflowRight:"inset -10px 0 8px -8px rgba(0, 0, 0, 0.08)",boxShadowTabsOverflowTop:"inset 0 10px 8px -8px rgba(0, 0, 0, 0.08)",boxShadowTabsOverflowBottom:"inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08)"}),r)}var oA=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,r=Object.getOwnPropertySymbols(e);s<r.length;s++)t.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(e,r[s])&&(n[r[s]]=e[r[s]]);return n};const Hae={lineHeight:!0,lineHeightSM:!0,lineHeightLG:!0,lineHeightHeading1:!0,lineHeightHeading2:!0,lineHeightHeading3:!0,lineHeightHeading4:!0,lineHeightHeading5:!0,opacityLoading:!0,fontWeightStrong:!0,zIndexPopupBase:!0,zIndexBase:!0,opacityImage:!0},Uae={motionBase:!0,motionUnit:!0},Wae={screenXS:!0,screenXSMin:!0,screenXSMax:!0,screenSM:!0,screenSMMin:!0,screenSMMax:!0,screenMD:!0,screenMDMin:!0,screenMDMax:!0,screenLG:!0,screenLGMin:!0,screenLGMax:!0,screenXL:!0,screenXLMin:!0,screenXLMax:!0,screenXXL:!0,screenXXLMin:!0},u7=(e,t,n)=>{const r=n.getDerivativeToken(e),{override:s}=t,i=oA(t,["override"]);let o=Object.assign(Object.assign({},r),{override:s});return o=c7(o),i&&Object.entries(i).forEach(([l,c])=>{const{theme:u}=c,d=oA(c,["theme"]);let h=d;u&&(h=u7(Object.assign(Object.assign({},o),d),{override:d},u)),o[l]=h}),o};function d7(){const{token:e,hashed:t,theme:n,override:r,cssVar:s}=K.useContext(a7),i=`${Fae}-${t||""}`,o=n||o7,[l,c,u]=Roe(o,[_g,e],{salt:i,override:r,getComputedToken:u7,formatToken:c7,cssVar:s&&{prefix:s.prefix,key:s.key,unitless:Hae,ignore:Uae,preserve:Wae}});return[o,u,t?c:"",l,s]}const Vae=()=>({display:"inline-flex",alignItems:"center",color:"inherit",fontStyle:"normal",lineHeight:0,textAlign:"center",textTransform:"none",verticalAlign:"-0.125em",textRendering:"optimizeLegibility","-webkit-font-smoothing":"antialiased","-moz-osx-font-smoothing":"grayscale","> *":{lineHeight:1},svg:{display:"inline-block"}}),qae=e=>({[`.${e}`]:Object.assign(Object.assign({},Vae()),{[`.${e} .${e}-icon`]:{display:"block"}})}),Kae=(e,t)=>{const[n,r]=d7();return iae({token:r,hashId:"",path:["ant-design-icons",e],nonce:()=>t==null?void 0:t.nonce,layer:{name:"antd"}},()=>qae(e))},Gae=Object.assign({},Nf),{useId:aA}=Gae,Yae=()=>"",Xae=typeof aA>"u"?Yae:aA;function Zae(e,t,n){var r;const s=e||{},i=s.inherit===!1||!t?Object.assign(Object.assign({},Eb),{hashed:(r=t==null?void 0:t.hashed)!==null&&r!==void 0?r:Eb.hashed,cssVar:t==null?void 0:t.cssVar}):t,o=Xae();return T9(()=>{var l,c;if(!e)return t;const u=Object.assign({},i.components);Object.keys(e.components||{}).forEach(f=>{u[f]=Object.assign(Object.assign({},u[f]),e.components[f])});const d=`css-var-${o.replace(/:/g,"")}`,h=((l=s.cssVar)!==null&&l!==void 0?l:i.cssVar)&&Object.assign(Object.assign(Object.assign({prefix:n==null?void 0:n.prefixCls},typeof i.cssVar=="object"?i.cssVar:{}),typeof s.cssVar=="object"?s.cssVar:{}),{key:typeof s.cssVar=="object"&&((c=s.cssVar)===null||c===void 0?void 0:c.key)||d});return Object.assign(Object.assign(Object.assign({},i),s),{token:Object.assign(Object.assign({},i.token),s.token),components:u,cssVar:h})},[s,i],(l,c)=>l.some((u,d)=>{const h=c[d];return!ioe(u,h,!0)}))}var Qae=["children"],h7=p.createContext({});function Jae(e){var t=e.children,n=ci(e,Qae);return p.createElement(h7.Provider,{value:n},t)}var ele=function(e){Ar(n,e);var t=P9(n);function n(){return Tn(this,n),t.apply(this,arguments)}return Rn(n,[{key:"render",value:function(){return this.props.children}}]),n}(p.Component);function tle(e){var t=p.useReducer(function(l){return l+1},0),n=kt(t,2),r=n[1],s=p.useRef(e),i=YN(function(){return s.current}),o=YN(function(l){s.current=typeof l=="function"?l(s.current):l,r()});return[i,o]}var Ll="none",r0="appear",s0="enter",i0="leave",lA="none",vo="prepare",ch="start",uh="active",$5="end",f7="prepared";function cA(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit".concat(e)]="webkit".concat(t),n["Moz".concat(e)]="moz".concat(t),n["ms".concat(e)]="MS".concat(t),n["O".concat(e)]="o".concat(t.toLowerCase()),n}function nle(e,t){var n={animationend:cA("Animation","AnimationEnd"),transitionend:cA("Transition","TransitionEnd")};return e&&("AnimationEvent"in t||delete n.animationend.animation,"TransitionEvent"in t||delete n.transitionend.transition),n}var rle=nle(pl(),typeof window<"u"?window:{}),p7={};if(pl()){var sle=document.createElement("div");p7=sle.style}var o0={};function m7(e){if(o0[e])return o0[e];var t=rle[e];if(t)for(var n=Object.keys(t),r=n.length,s=0;s<r;s+=1){var i=n[s];if(Object.prototype.hasOwnProperty.call(t,i)&&i in p7)return o0[e]=t[i],o0[e]}return""}var g7=m7("animationend"),x7=m7("transitionend"),v7=!!(g7&&x7),uA=g7||"animationend",dA=x7||"transitionend";function hA(e,t){if(!e)return null;if(In(e)==="object"){var n=t.replace(/-\w/g,function(r){return r[1].toUpperCase()});return e[n]}return"".concat(e,"-").concat(t)}const ile=function(e){var t=p.useRef();function n(s){s&&(s.removeEventListener(dA,e),s.removeEventListener(uA,e))}function r(s){t.current&&t.current!==s&&n(t.current),s&&s!==t.current&&(s.addEventListener(dA,e),s.addEventListener(uA,e),t.current=s)}return p.useEffect(function(){return function(){n(t.current)}},[]),[r,n]};var y7=pl()?p.useLayoutEffect:p.useEffect;const ole=function(){var e=p.useRef(null);function t(){NN.cancel(e.current)}function n(r){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:2;t();var i=NN(function(){s<=1?r({isCanceled:function(){return i!==e.current}}):n(r,s-1)});e.current=i}return p.useEffect(function(){return function(){t()}},[]),[n,t]};var ale=[vo,ch,uh,$5],lle=[vo,f7],b7=!1,cle=!0;function w7(e){return e===uh||e===$5}const ule=function(e,t,n){var r=XN(lA),s=kt(r,2),i=s[0],o=s[1],l=ole(),c=kt(l,2),u=c[0],d=c[1];function h(){o(vo,!0)}var f=t?lle:ale;return y7(function(){if(i!==lA&&i!==$5){var m=f.indexOf(i),g=f[m+1],x=n(i);x===b7?o(g,!0):g&&u(function(b){function y(){b.isCanceled()||o(g,!0)}x===!0?y():Promise.resolve(x).then(y)})}},[e,i]),p.useEffect(function(){return function(){d()}},[]),[h,i]};function dle(e,t,n,r){var s=r.motionEnter,i=s===void 0?!0:s,o=r.motionAppear,l=o===void 0?!0:o,c=r.motionLeave,u=c===void 0?!0:c,d=r.motionDeadline,h=r.motionLeaveImmediately,f=r.onAppearPrepare,m=r.onEnterPrepare,g=r.onLeavePrepare,x=r.onAppearStart,b=r.onEnterStart,y=r.onLeaveStart,v=r.onAppearActive,w=r.onEnterActive,_=r.onLeaveActive,S=r.onAppearEnd,k=r.onEnterEnd,C=r.onLeaveEnd,j=r.onVisibleChanged,T=XN(),E=kt(T,2),R=E[0],P=E[1],M=tle(Ll),$=kt(M,2),B=$[0],z=$[1],W=XN(null),L=kt(W,2),A=L[0],I=L[1],q=B(),H=p.useRef(!1),O=p.useRef(null);function V(){return n()}var X=p.useRef(!1);function Y(){z(Ll),I(null,!0)}var ee=YN(function(Le){var Pe=B();if(Pe!==Ll){var Ve=V();if(!(Le&&!Le.deadline&&Le.target!==Ve)){var yt=X.current,_t;Pe===r0&&yt?_t=S==null?void 0:S(Ve,Le):Pe===s0&&yt?_t=k==null?void 0:k(Ve,Le):Pe===i0&&yt&&(_t=C==null?void 0:C(Ve,Le)),yt&&_t!==!1&&Y()}}}),ue=ile(ee),Q=kt(ue,1),he=Q[0],we=function(Pe){switch(Pe){case r0:return Ze(Ze(Ze({},vo,f),ch,x),uh,v);case s0:return Ze(Ze(Ze({},vo,m),ch,b),uh,w);case i0:return Ze(Ze(Ze({},vo,g),ch,y),uh,_);default:return{}}},oe=p.useMemo(function(){return we(q)},[q]),ce=ule(q,!e,function(Le){if(Le===vo){var Pe=oe[vo];return Pe?Pe(V()):b7}if(ve in oe){var Ve;I(((Ve=oe[ve])===null||Ve===void 0?void 0:Ve.call(oe,V(),null))||null)}return ve===uh&&q!==Ll&&(he(V()),d>0&&(clearTimeout(O.current),O.current=setTimeout(function(){ee({deadline:!0})},d))),ve===f7&&Y(),cle}),ne=kt(ce,2),te=ne[0],ve=ne[1],Oe=w7(ve);X.current=Oe;var Qe=p.useRef(null);y7(function(){if(!(H.current&&Qe.current===t)){P(t);var Le=H.current;H.current=!0;var Pe;!Le&&t&&l&&(Pe=r0),Le&&t&&i&&(Pe=s0),(Le&&!t&&u||!Le&&h&&!t&&u)&&(Pe=i0);var Ve=we(Pe);Pe&&(e||Ve[vo])?(z(Pe),te()):z(Ll),Qe.current=t}},[t]),p.useEffect(function(){(q===r0&&!l||q===s0&&!i||q===i0&&!u)&&z(Ll)},[l,i,u]),p.useEffect(function(){return function(){H.current=!1,clearTimeout(O.current)}},[]);var ge=p.useRef(!1);p.useEffect(function(){R&&(ge.current=!0),R!==void 0&&q===Ll&&((ge.current||R)&&(j==null||j(R)),ge.current=!0)},[R,q]);var Ne=A;return oe[vo]&&ve===ch&&(Ne=Ot({transition:"none"},Ne)),[q,ve,Ne,R??t]}function hle(e){var t=e;In(e)==="object"&&(t=e.transitionSupport);function n(s,i){return!!(s.motionName&&t&&i!==!1)}var r=p.forwardRef(function(s,i){var o=s.visible,l=o===void 0?!0:o,c=s.removeOnLeave,u=c===void 0?!0:c,d=s.forceRender,h=s.children,f=s.motionName,m=s.leavedClassName,g=s.eventProps,x=p.useContext(h7),b=x.motion,y=n(s,b),v=p.useRef(),w=p.useRef();function _(){try{return v.current instanceof HTMLElement?v.current:Wie(w.current)}catch{return null}}var S=dle(y,l,_,s),k=kt(S,4),C=k[0],j=k[1],T=k[2],E=k[3],R=p.useRef(E);E&&(R.current=!0);var P=p.useCallback(function(L){v.current=L,Gie(i,L)},[i]),M,$=Ot(Ot({},g),{},{visible:l});if(!h)M=null;else if(C===Ll)E?M=h(Ot({},$),P):!u&&R.current&&m?M=h(Ot(Ot({},$),{},{className:m}),P):d||!u&&!m?M=h(Ot(Ot({},$),{},{style:{display:"none"}}),P):M=null;else{var B;j===vo?B="prepare":w7(j)?B="active":j===ch&&(B="start");var z=hA(f,"".concat(C,"-").concat(B));M=h(Ot(Ot({},$),{},{className:Mie(hA(f,C),Ze(Ze({},z,z&&B),f,typeof f=="string")),style:T}),P)}if(p.isValidElement(M)&&Yie(M)){var W=Xie(M);W||(M=p.cloneElement(M,{ref:P}))}return p.createElement(ele,{ref:w},M)});return r.displayName="CSSMotion",r}const fle=hle(v7);var ZN="add",QN="keep",JN="remove",Nk="removed";function ple(e){var t;return e&&In(e)==="object"&&"key"in e?t=e:t={key:e},Ot(Ot({},t),{},{key:String(t.key)})}function ej(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return e.map(ple)}function mle(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],n=[],r=0,s=t.length,i=ej(e),o=ej(t);i.forEach(function(u){for(var d=!1,h=r;h<s;h+=1){var f=o[h];if(f.key===u.key){r<h&&(n=n.concat(o.slice(r,h).map(function(m){return Ot(Ot({},m),{},{status:ZN})})),r=h),n.push(Ot(Ot({},f),{},{status:QN})),r+=1,d=!0;break}}d||n.push(Ot(Ot({},u),{},{status:JN}))}),r<s&&(n=n.concat(o.slice(r).map(function(u){return Ot(Ot({},u),{},{status:ZN})})));var l={};n.forEach(function(u){var d=u.key;l[d]=(l[d]||0)+1});var c=Object.keys(l).filter(function(u){return l[u]>1});return c.forEach(function(u){n=n.filter(function(d){var h=d.key,f=d.status;return h!==u||f!==JN}),n.forEach(function(d){d.key===u&&(d.status=QN)})}),n}var gle=["component","children","onVisibleChanged","onAllRemoved"],xle=["status"],vle=["eventProps","visible","children","motionName","motionAppear","motionEnter","motionLeave","motionLeaveImmediately","motionDeadline","removeOnLeave","leavedClassName","onAppearPrepare","onAppearStart","onAppearActive","onAppearEnd","onEnterStart","onEnterActive","onEnterEnd","onLeaveStart","onLeaveActive","onLeaveEnd"];function yle(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:fle,n=function(r){Ar(i,r);var s=P9(i);function i(){var o;Tn(this,i);for(var l=arguments.length,c=new Array(l),u=0;u<l;u++)c[u]=arguments[u];return o=s.call.apply(s,[this].concat(c)),Ze(kN(o),"state",{keyEntities:[]}),Ze(kN(o),"removeKey",function(d){o.setState(function(h){var f=h.keyEntities.map(function(m){return m.key!==d?m:Ot(Ot({},m),{},{status:Nk})});return{keyEntities:f}},function(){var h=o.state.keyEntities,f=h.filter(function(m){var g=m.status;return g!==Nk}).length;f===0&&o.props.onAllRemoved&&o.props.onAllRemoved()})}),o}return Rn(i,[{key:"render",value:function(){var l=this,c=this.state.keyEntities,u=this.props,d=u.component,h=u.children,f=u.onVisibleChanged;u.onAllRemoved;var m=ci(u,gle),g=d||p.Fragment,x={};return vle.forEach(function(b){x[b]=m[b],delete m[b]}),delete m.keys,p.createElement(g,m,c.map(function(b,y){var v=b.status,w=ci(b,xle),_=v===ZN||v===QN;return p.createElement(t,St({},x,{key:w.key,visible:_,eventProps:w,onVisibleChanged:function(k){f==null||f(k,{key:w.key}),k||l.removeKey(w.key)}}),function(S,k){return h(Ot(Ot({},S),{},{index:y}),k)})}))}}],[{key:"getDerivedStateFromProps",value:function(l,c){var u=l.keys,d=c.keyEntities,h=ej(u),f=mle(d,h);return{keyEntities:f.filter(function(m){var g=d.find(function(x){var b=x.key;return m.key===b});return!(g&&g.status===Nk&&m.status===JN)})}}}]),i}(p.Component);return Ze(n,"defaultProps",{component:"div"}),n}yle(v7);const fA=p.createContext(!0);function ble(e){const t=p.useContext(fA),{children:n}=e,[,r]=d7(),{motion:s}=r,i=p.useRef(!1);return i.current||(i.current=t!==s),i.current?p.createElement(fA.Provider,{value:s},p.createElement(Jae,{motion:s},n)):n}const wle=()=>null;var _le=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,r=Object.getOwnPropertySymbols(e);s<r.length;s++)t.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(e,r[s])&&(n[r[s]]=e[r[s]]);return n};const Sle=["getTargetContainer","getPopupContainer","renderEmpty","input","pagination","form","select","button"];let _7;function kle(){return _7||KN}function Cle(e){return Object.keys(e).some(t=>t.endsWith("Color"))}const Nle=e=>{const{prefixCls:t,iconPrefixCls:n,theme:r,holderRender:s}=e;t!==void 0&&(_7=t),r&&Cle(r)&&Aae(kle(),r)},jle=e=>{const{children:t,csp:n,autoInsertSpaceInButton:r,alert:s,anchor:i,form:o,locale:l,componentSize:c,direction:u,space:d,splitter:h,virtual:f,dropdownMatchSelectWidth:m,popupMatchSelectWidth:g,popupOverflow:x,legacyLocale:b,parentContext:y,iconPrefixCls:v,theme:w,componentDisabled:_,segmented:S,statistic:k,spin:C,calendar:j,carousel:T,cascader:E,collapse:R,typography:P,checkbox:M,descriptions:$,divider:B,drawer:z,skeleton:W,steps:L,image:A,layout:I,list:q,mentions:H,modal:O,progress:V,result:X,slider:Y,breadcrumb:ee,menu:ue,pagination:Q,input:he,textArea:we,empty:oe,badge:ce,radio:ne,rate:te,switch:ve,transfer:Oe,avatar:Qe,message:ge,tag:Ne,table:Le,card:Pe,tabs:Ve,timeline:yt,timePicker:_t,upload:ie,notification:le,tree:me,colorPicker:Ke,datePicker:qe,rangePicker:ft,flex:nn,wave:Wt,dropdown:Ge,warning:je,tour:Re,tooltip:ct,popover:Ct,popconfirm:sn,floatButton:be,floatButtonGroup:re,variant:Me,inputNumber:it,treeSelect:ut}=e,ht=p.useCallback((Rt,Ht)=>{const{prefixCls:$r}=e;if(Ht)return Ht;const rr=$r||y.getPrefixCls("");return Rt?`${rr}-${Rt}`:rr},[y.getPrefixCls,e.prefixCls]),Et=v||y.iconPrefixCls||l7,Lt=n||y.csp;Kae(Et,Lt);const on=Zae(w,y.theme,{prefixCls:ht("")}),Yn={csp:Lt,autoInsertSpaceInButton:r,alert:s,anchor:i,locale:l||b,direction:u,space:d,splitter:h,virtual:f,popupMatchSelectWidth:g??m,popupOverflow:x,getPrefixCls:ht,iconPrefixCls:Et,theme:on,segmented:S,statistic:k,spin:C,calendar:j,carousel:T,cascader:E,collapse:R,typography:P,checkbox:M,descriptions:$,divider:B,drawer:z,skeleton:W,steps:L,image:A,input:he,textArea:we,layout:I,list:q,mentions:H,modal:O,progress:V,result:X,slider:Y,breadcrumb:ee,menu:ue,pagination:Q,empty:oe,badge:ce,radio:ne,rate:te,switch:ve,transfer:Oe,avatar:Qe,message:ge,tag:Ne,table:Le,card:Pe,tabs:Ve,timeline:yt,timePicker:_t,upload:ie,notification:le,tree:me,colorPicker:Ke,datePicker:qe,rangePicker:ft,flex:nn,wave:Wt,dropdown:Ge,warning:je,tour:Re,tooltip:ct,popover:Ct,popconfirm:sn,floatButton:be,floatButtonGroup:re,variant:Me,inputNumber:it,treeSelect:ut},Tt=Object.assign({},y);Object.keys(Yn).forEach(Rt=>{Yn[Rt]!==void 0&&(Tt[Rt]=Yn[Rt])}),Sle.forEach(Rt=>{const Ht=e[Rt];Ht&&(Tt[Rt]=Ht)}),typeof r<"u"&&(Tt.button=Object.assign({autoInsertSpace:r},Tt.button));const _n=T9(()=>Tt,Tt,(Rt,Ht)=>{const $r=Object.keys(Rt),rr=Object.keys(Ht);return $r.length!==rr.length||$r.some(Xn=>Rt[Xn]!==Ht[Xn])}),{layer:fn}=p.useContext(Sw),Dn=p.useMemo(()=>({prefixCls:Et,csp:Lt,layer:fn?"antd":void 0}),[Et,Lt,fn]);let zt=p.createElement(p.Fragment,null,p.createElement(wle,{dropdownMatchSelectWidth:m}),t);const _e=p.useMemo(()=>{var Rt,Ht,$r,rr;return hae(((Rt=Nw.Form)===null||Rt===void 0?void 0:Rt.defaultValidateMessages)||{},(($r=(Ht=_n.locale)===null||Ht===void 0?void 0:Ht.Form)===null||$r===void 0?void 0:$r.defaultValidateMessages)||{},((rr=_n.form)===null||rr===void 0?void 0:rr.validateMessages)||{},(o==null?void 0:o.validateMessages)||{})},[_n,o==null?void 0:o.validateMessages]);Object.keys(_e).length>0&&(zt=p.createElement(pae.Provider,{value:_e},zt)),l&&(zt=p.createElement(xae,{locale:l,_ANT_MARK__:gae},zt)),zt=p.createElement(cae.Provider,{value:Dn},zt),c&&(zt=p.createElement(Dae,{size:c},zt)),zt=p.createElement(ble,null,zt);const pt=p.useMemo(()=>{const Rt=on||{},{algorithm:Ht,token:$r,components:rr,cssVar:Xn}=Rt,ro=_le(Rt,["algorithm","token","components","cssVar"]),wi=Ht&&(!Array.isArray(Ht)||Ht.length>0)?IN(Ht):o7,_i={};Object.entries(rr||{}).forEach(([so,Si])=>{const Gt=Object.assign({},Si);"algorithm"in Gt&&(Gt.algorithm===!0?Gt.theme=wi:(Array.isArray(Gt.algorithm)||typeof Gt.algorithm=="function")&&(Gt.theme=IN(Gt.algorithm)),delete Gt.algorithm),_i[so]=Gt});const wl=Object.assign(Object.assign({},_g),$r);return Object.assign(Object.assign({},ro),{theme:wi,token:wl,components:_i,override:Object.assign({override:wl},_i),cssVar:Xn})},[on]);return w&&(zt=p.createElement(a7.Provider,{value:pt},zt)),_n.warning&&(zt=p.createElement(fae.Provider,{value:_n.warning},zt)),_!==void 0&&(zt=p.createElement(Oae,{disabled:_},zt)),p.createElement(jw.Provider,{value:_n},zt)},Tf=e=>{const t=p.useContext(jw),n=p.useContext(n7);return p.createElement(jle,Object.assign({parentContext:t,legacyLocale:n},e))};Tf.ConfigContext=jw;Tf.SizeContext=Sg;Tf.config=Nle;Tf.useConfig=$ae;Object.defineProperty(Tf,"SizeContext",{get:()=>Sg});var S7={exports:{}};(function(e,t){(function(n,r){e.exports=r()})(Hr,function(){var n=1e3,r=6e4,s=36e5,i="millisecond",o="second",l="minute",c="hour",u="day",d="week",h="month",f="quarter",m="year",g="date",x="Invalid Date",b=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|YYYY|YY|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,v={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function($){var B=["th","st","nd","rd"],z=$%100;return"["+$+(B[(z-20)%10]||B[z]||B[0])+"]"}},w=function($,B,z){var W=String($);return!W||W.length>=B?$:""+Array(B+1-W.length).join(z)+$},_={s:w,z:function($){var B=-$.utcOffset(),z=Math.abs(B),W=Math.floor(z/60),L=z%60;return(B<=0?"+":"-")+w(W,2,"0")+":"+w(L,2,"0")},m:function $(B,z){if(B.date()<z.date())return-$(z,B);var W=12*(z.year()-B.year())+(z.month()-B.month()),L=B.clone().add(W,h),A=z-L<0,I=B.clone().add(W+(A?-1:1),h);return+(-(W+(z-L)/(A?L-I:I-L))||0)},a:function($){return $<0?Math.ceil($)||0:Math.floor($)},p:function($){return{M:h,y:m,w:d,d:u,D:g,h:c,m:l,s:o,ms:i,Q:f}[$]||String($||"").toLowerCase().replace(/s$/,"")},u:function($){return $===void 0}},S="en",k={};k[S]=v;var C="$isDayjsObject",j=function($){return $ instanceof P||!(!$||!$[C])},T=function $(B,z,W){var L;if(!B)return S;if(typeof B=="string"){var A=B.toLowerCase();k[A]&&(L=A),z&&(k[A]=z,L=A);var I=B.split("-");if(!L&&I.length>1)return $(I[0])}else{var q=B.name;k[q]=B,L=q}return!W&&L&&(S=L),L||!W&&S},E=function($,B){if(j($))return $.clone();var z=typeof B=="object"?B:{};return z.date=$,z.args=arguments,new P(z)},R=_;R.l=T,R.i=j,R.w=function($,B){return E($,{locale:B.$L,utc:B.$u,x:B.$x,$offset:B.$offset})};var P=function(){function $(z){this.$L=T(z.locale,null,!0),this.parse(z),this.$x=this.$x||z.x||{},this[C]=!0}var B=$.prototype;return B.parse=function(z){this.$d=function(W){var L=W.date,A=W.utc;if(L===null)return new Date(NaN);if(R.u(L))return new Date;if(L instanceof Date)return new Date(L);if(typeof L=="string"&&!/Z$/i.test(L)){var I=L.match(b);if(I){var q=I[2]-1||0,H=(I[7]||"0").substring(0,3);return A?new Date(Date.UTC(I[1],q,I[3]||1,I[4]||0,I[5]||0,I[6]||0,H)):new Date(I[1],q,I[3]||1,I[4]||0,I[5]||0,I[6]||0,H)}}return new Date(L)}(z),this.init()},B.init=function(){var z=this.$d;this.$y=z.getFullYear(),this.$M=z.getMonth(),this.$D=z.getDate(),this.$W=z.getDay(),this.$H=z.getHours(),this.$m=z.getMinutes(),this.$s=z.getSeconds(),this.$ms=z.getMilliseconds()},B.$utils=function(){return R},B.isValid=function(){return this.$d.toString()!==x},B.isSame=function(z,W){var L=E(z);return this.startOf(W)<=L&&L<=this.endOf(W)},B.isAfter=function(z,W){return E(z)<this.startOf(W)},B.isBefore=function(z,W){return this.endOf(W)<E(z)},B.$g=function(z,W,L){return R.u(z)?this[W]:this.set(L,z)},B.unix=function(){return Math.floor(this.valueOf()/1e3)},B.valueOf=function(){return this.$d.getTime()},B.startOf=function(z,W){var L=this,A=!!R.u(W)||W,I=R.p(z),q=function(Q,he){var we=R.w(L.$u?Date.UTC(L.$y,he,Q):new Date(L.$y,he,Q),L);return A?we:we.endOf(u)},H=function(Q,he){return R.w(L.toDate()[Q].apply(L.toDate("s"),(A?[0,0,0,0]:[23,59,59,999]).slice(he)),L)},O=this.$W,V=this.$M,X=this.$D,Y="set"+(this.$u?"UTC":"");switch(I){case m:return A?q(1,0):q(31,11);case h:return A?q(1,V):q(0,V+1);case d:var ee=this.$locale().weekStart||0,ue=(O<ee?O+7:O)-ee;return q(A?X-ue:X+(6-ue),V);case u:case g:return H(Y+"Hours",0);case c:return H(Y+"Minutes",1);case l:return H(Y+"Seconds",2);case o:return H(Y+"Milliseconds",3);default:return this.clone()}},B.endOf=function(z){return this.startOf(z,!1)},B.$set=function(z,W){var L,A=R.p(z),I="set"+(this.$u?"UTC":""),q=(L={},L[u]=I+"Date",L[g]=I+"Date",L[h]=I+"Month",L[m]=I+"FullYear",L[c]=I+"Hours",L[l]=I+"Minutes",L[o]=I+"Seconds",L[i]=I+"Milliseconds",L)[A],H=A===u?this.$D+(W-this.$W):W;if(A===h||A===m){var O=this.clone().set(g,1);O.$d[q](H),O.init(),this.$d=O.set(g,Math.min(this.$D,O.daysInMonth())).$d}else q&&this.$d[q](H);return this.init(),this},B.set=function(z,W){return this.clone().$set(z,W)},B.get=function(z){return this[R.p(z)]()},B.add=function(z,W){var L,A=this;z=Number(z);var I=R.p(W),q=function(V){var X=E(A);return R.w(X.date(X.date()+Math.round(V*z)),A)};if(I===h)return this.set(h,this.$M+z);if(I===m)return this.set(m,this.$y+z);if(I===u)return q(1);if(I===d)return q(7);var H=(L={},L[l]=r,L[c]=s,L[o]=n,L)[I]||1,O=this.$d.getTime()+z*H;return R.w(O,this)},B.subtract=function(z,W){return this.add(-1*z,W)},B.format=function(z){var W=this,L=this.$locale();if(!this.isValid())return L.invalidDate||x;var A=z||"YYYY-MM-DDTHH:mm:ssZ",I=R.z(this),q=this.$H,H=this.$m,O=this.$M,V=L.weekdays,X=L.months,Y=L.meridiem,ee=function(he,we,oe,ce){return he&&(he[we]||he(W,A))||oe[we].slice(0,ce)},ue=function(he){return R.s(q%12||12,he,"0")},Q=Y||function(he,we,oe){var ce=he<12?"AM":"PM";return oe?ce.toLowerCase():ce};return A.replace(y,function(he,we){return we||function(oe){switch(oe){case"YY":return String(W.$y).slice(-2);case"YYYY":return R.s(W.$y,4,"0");case"M":return O+1;case"MM":return R.s(O+1,2,"0");case"MMM":return ee(L.monthsShort,O,X,3);case"MMMM":return ee(X,O);case"D":return W.$D;case"DD":return R.s(W.$D,2,"0");case"d":return String(W.$W);case"dd":return ee(L.weekdaysMin,W.$W,V,2);case"ddd":return ee(L.weekdaysShort,W.$W,V,3);case"dddd":return V[W.$W];case"H":return String(q);case"HH":return R.s(q,2,"0");case"h":return ue(1);case"hh":return ue(2);case"a":return Q(q,H,!0);case"A":return Q(q,H,!1);case"m":return String(H);case"mm":return R.s(H,2,"0");case"s":return String(W.$s);case"ss":return R.s(W.$s,2,"0");case"SSS":return R.s(W.$ms,3,"0");case"Z":return I}return null}(he)||I.replace(":","")})},B.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},B.diff=function(z,W,L){var A,I=this,q=R.p(W),H=E(z),O=(H.utcOffset()-this.utcOffset())*r,V=this-H,X=function(){return R.m(I,H)};switch(q){case m:A=X()/12;break;case h:A=X();break;case f:A=X()/3;break;case d:A=(V-O)/6048e5;break;case u:A=(V-O)/864e5;break;case c:A=V/s;break;case l:A=V/r;break;case o:A=V/n;break;default:A=V}return L?A:R.a(A)},B.daysInMonth=function(){return this.endOf(h).$D},B.$locale=function(){return k[this.$L]},B.locale=function(z,W){if(!z)return this.$L;var L=this.clone(),A=T(z,W,!0);return A&&(L.$L=A),L},B.clone=function(){return R.w(this.$d,this)},B.toDate=function(){return new Date(this.valueOf())},B.toJSON=function(){return this.isValid()?this.toISOString():null},B.toISOString=function(){return this.$d.toISOString()},B.toString=function(){return this.$d.toUTCString()},$}(),M=P.prototype;return E.prototype=M,[["$ms",i],["$s",o],["$m",l],["$H",c],["$W",u],["$M",h],["$y",m],["$D",g]].forEach(function($){M[$[1]]=function(B){return this.$g(B,$[0],$[1])}}),E.extend=function($,B){return $.$i||($(B,P,E),$.$i=!0),E},E.locale=T,E.isDayjs=j,E.unix=function($){return E(1e3*$)},E.en=k[S],E.Ls=k,E.p={},E})})(S7);var Ele=S7.exports;const tj=vn(Ele);var k7={exports:{}};(function(e,t){(function(n,r){e.exports=r()})(Hr,function(){return function(n,r,s){var i=r.prototype,o=function(h){return h&&(h.indexOf?h:h.s)},l=function(h,f,m,g,x){var b=h.name?h:h.$locale(),y=o(b[f]),v=o(b[m]),w=y||v.map(function(S){return S.slice(0,g)});if(!x)return w;var _=b.weekStart;return w.map(function(S,k){return w[(k+(_||0))%7]})},c=function(){return s.Ls[s.locale()]},u=function(h,f){return h.formats[f]||function(m){return m.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(g,x,b){return x||b.slice(1)})}(h.formats[f.toUpperCase()])},d=function(){var h=this;return{months:function(f){return f?f.format("MMMM"):l(h,"months")},monthsShort:function(f){return f?f.format("MMM"):l(h,"monthsShort","months",3)},firstDayOfWeek:function(){return h.$locale().weekStart||0},weekdays:function(f){return f?f.format("dddd"):l(h,"weekdays")},weekdaysMin:function(f){return f?f.format("dd"):l(h,"weekdaysMin","weekdays",2)},weekdaysShort:function(f){return f?f.format("ddd"):l(h,"weekdaysShort","weekdays",3)},longDateFormat:function(f){return u(h.$locale(),f)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};i.localeData=function(){return d.bind(this)()},s.localeData=function(){var h=c();return{firstDayOfWeek:function(){return h.weekStart||0},weekdays:function(){return s.weekdays()},weekdaysShort:function(){return s.weekdaysShort()},weekdaysMin:function(){return s.weekdaysMin()},months:function(){return s.months()},monthsShort:function(){return s.monthsShort()},longDateFormat:function(f){return u(h,f)},meridiem:h.meridiem,ordinal:h.ordinal}},s.months=function(){return l(c(),"months")},s.monthsShort=function(){return l(c(),"monthsShort","months",3)},s.weekdays=function(h){return l(c(),"weekdays",null,null,h)},s.weekdaysShort=function(h){return l(c(),"weekdaysShort","weekdays",3,h)},s.weekdaysMin=function(h){return l(c(),"weekdaysMin","weekdays",2,h)}}})})(k7);var Ile=k7.exports;const Tle=vn(Ile),Ei=(e,t)=>new Hn(e).setA(t).toRgbString(),Id=(e,t)=>new Hn(e).lighten(t).toHexString(),Rle=e=>{const t=Hh(e,{theme:"dark"});return{1:t[0],2:t[1],3:t[2],4:t[3],5:t[6],6:t[5],7:t[4],8:t[6],9:t[5],10:t[4]}},Mle=(e,t)=>{const n=e||"#000",r=t||"#fff";return{colorBgBase:n,colorTextBase:r,colorText:Ei(r,.85),colorTextSecondary:Ei(r,.65),colorTextTertiary:Ei(r,.45),colorTextQuaternary:Ei(r,.25),colorFill:Ei(r,.18),colorFillSecondary:Ei(r,.12),colorFillTertiary:Ei(r,.08),colorFillQuaternary:Ei(r,.04),colorBgSolid:Ei(r,.95),colorBgSolidHover:Ei(r,1),colorBgSolidActive:Ei(r,.9),colorBgElevated:Id(n,12),colorBgContainer:Id(n,8),colorBgLayout:Id(n,0),colorBgSpotlight:Id(n,26),colorBgBlur:Ei(r,.04),colorBorder:Id(n,26),colorBorderSecondary:Id(n,19)}},Ple=(e,t)=>{const n=Object.keys(O5).map(i=>{const o=Hh(e[i],{theme:"dark"});return Array.from({length:10},()=>1).reduce((l,c,u)=>(l[`${i}-${u+1}`]=o[u],l[`${i}${u+1}`]=o[u],l),{})}).reduce((i,o)=>(i=Object.assign(Object.assign({},i),o),i),{}),r=t??D5(e),s=i7(e,{generateColorPalettes:Rle,generateNeutralColorPalettes:Mle});return Object.assign(Object.assign(Object.assign(Object.assign({},r),n),s),{colorPrimaryBg:s.colorPrimaryBorder,colorPrimaryBgHover:s.colorPrimaryBorderHover})},pA={defaultSeed:Eb.token,defaultAlgorithm:D5,darkAlgorithm:Ple};function Ale({children:e}){const t=fl(),[n,r]=p.useState(t.theme);return p.useEffect(()=>t.onThemeChange(r),[t]),a.jsx(Tf,{theme:{algorithm:n.mode==="dark"?pA.darkAlgorithm:pA.defaultAlgorithm,token:{colorPrimary:n.colorPrimary,colorBgContainer:n.colorBgContainer,colorText:n.colorText,colorBorder:n.colorBorder}},children:e})}var Yt;(function(e){e.assertEqual=s=>{};function t(s){}e.assertIs=t;function n(s){throw new Error}e.assertNever=n,e.arrayToEnum=s=>{const i={};for(const o of s)i[o]=o;return i},e.getValidEnumValues=s=>{const i=e.objectKeys(s).filter(l=>typeof s[s[l]]!="number"),o={};for(const l of i)o[l]=s[l];return e.objectValues(o)},e.objectValues=s=>e.objectKeys(s).map(function(i){return s[i]}),e.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{const i=[];for(const o in s)Object.prototype.hasOwnProperty.call(s,o)&&i.push(o);return i},e.find=(s,i)=>{for(const o of s)if(i(o))return o},e.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&Number.isFinite(s)&&Math.floor(s)===s;function r(s,i=" | "){return s.map(o=>typeof o=="string"?`'${o}'`:o).join(i)}e.joinValues=r,e.jsonStringifyReplacer=(s,i)=>typeof i=="bigint"?i.toString():i})(Yt||(Yt={}));var mA;(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(mA||(mA={}));const Xe=Yt.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Hl=e=>{switch(typeof e){case"undefined":return Xe.undefined;case"string":return Xe.string;case"number":return Number.isNaN(e)?Xe.nan:Xe.number;case"boolean":return Xe.boolean;case"function":return Xe.function;case"bigint":return Xe.bigint;case"symbol":return Xe.symbol;case"object":return Array.isArray(e)?Xe.array:e===null?Xe.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?Xe.promise:typeof Map<"u"&&e instanceof Map?Xe.map:typeof Set<"u"&&e instanceof Set?Xe.set:typeof Date<"u"&&e instanceof Date?Xe.date:Xe.object;default:return Xe.unknown}},Se=Yt.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class il extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};const n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}format(t){const n=t||function(i){return i.message},r={_errors:[]},s=i=>{for(const o of i.issues)if(o.code==="invalid_union")o.unionErrors.map(s);else if(o.code==="invalid_return_type")s(o.returnTypeError);else if(o.code==="invalid_arguments")s(o.argumentsError);else if(o.path.length===0)r._errors.push(n(o));else{let l=r,c=0;for(;c<o.path.length;){const u=o.path[c];c===o.path.length-1?(l[u]=l[u]||{_errors:[]},l[u]._errors.push(n(o))):l[u]=l[u]||{_errors:[]},l=l[u],c++}}};return s(this),r}static assert(t){if(!(t instanceof il))throw new Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Yt.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=n=>n.message){const n={},r=[];for(const s of this.issues)if(s.path.length>0){const i=s.path[0];n[i]=n[i]||[],n[i].push(t(s))}else r.push(t(s));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}}il.create=e=>new il(e);const nj=(e,t)=>{let n;switch(e.code){case Se.invalid_type:e.received===Xe.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case Se.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,Yt.jsonStringifyReplacer)}`;break;case Se.unrecognized_keys:n=`Unrecognized key(s) in object: ${Yt.joinValues(e.keys,", ")}`;break;case Se.invalid_union:n="Invalid input";break;case Se.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${Yt.joinValues(e.options)}`;break;case Se.invalid_enum_value:n=`Invalid enum value. Expected ${Yt.joinValues(e.options)}, received '${e.received}'`;break;case Se.invalid_arguments:n="Invalid function arguments";break;case Se.invalid_return_type:n="Invalid function return type";break;case Se.invalid_date:n="Invalid date";break;case Se.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:Yt.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case Se.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case Se.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case Se.custom:n="Invalid input";break;case Se.invalid_intersection_types:n="Intersection results could not be merged";break;case Se.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case Se.not_finite:n="Number must be finite";break;default:n=t.defaultError,Yt.assertNever(e)}return{message:n}};let Ole=nj;function Dle(){return Ole}const $le=e=>{const{data:t,path:n,errorMaps:r,issueData:s}=e,i=[...n,...s.path||[]],o={...s,path:i};if(s.message!==void 0)return{...s,path:i,message:s.message};let l="";const c=r.filter(u=>!!u).slice().reverse();for(const u of c)l=u(o,{data:t,defaultError:l}).message;return{...s,path:i,message:l}};function Fe(e,t){const n=Dle(),r=$le({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===nj?void 0:nj].filter(s=>!!s)});e.common.issues.push(r)}class vs{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){const r=[];for(const s of n){if(s.status==="aborted")return xt;s.status==="dirty"&&t.dirty(),r.push(s.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){const r=[];for(const s of n){const i=await s.key,o=await s.value;r.push({key:i,value:o})}return vs.mergeObjectSync(t,r)}static mergeObjectSync(t,n){const r={};for(const s of n){const{key:i,value:o}=s;if(i.status==="aborted"||o.status==="aborted")return xt;i.status==="dirty"&&t.dirty(),o.status==="dirty"&&t.dirty(),i.value!=="__proto__"&&(typeof o.value<"u"||s.alwaysSet)&&(r[i.value]=o.value)}return{status:t.value,value:r}}}const xt=Object.freeze({status:"aborted"}),lm=e=>({status:"dirty",value:e}),Zi=e=>({status:"valid",value:e}),gA=e=>e.status==="aborted",xA=e=>e.status==="dirty",Uh=e=>e.status==="valid",Ib=e=>typeof Promise<"u"&&e instanceof Promise;var rt;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t==null?void 0:t.message})(rt||(rt={}));class pa{constructor(t,n,r,s){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=s}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const vA=(e,t)=>{if(Uh(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const n=new il(e.common.issues);return this._error=n,this._error}}};function jt(e){if(!e)return{};const{errorMap:t,invalid_type_error:n,required_error:r,description:s}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:s}:{errorMap:(o,l)=>{const{message:c}=e;return o.code==="invalid_enum_value"?{message:c??l.defaultError}:typeof l.data>"u"?{message:c??r??l.defaultError}:o.code!=="invalid_type"?{message:l.defaultError}:{message:c??n??l.defaultError}},description:s}}class Ft{get description(){return this._def.description}_getType(t){return Hl(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:Hl(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new vs,ctx:{common:t.parent.common,data:t.data,parsedType:Hl(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){const n=this._parse(t);if(Ib(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){const n=this._parse(t);return Promise.resolve(n)}parse(t,n){const r=this.safeParse(t,n);if(r.success)return r.data;throw r.error}safeParse(t,n){const r={common:{issues:[],async:(n==null?void 0:n.async)??!1,contextualErrorMap:n==null?void 0:n.errorMap},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Hl(t)},s=this._parseSync({data:t,path:r.path,parent:r});return vA(r,s)}"~validate"(t){var r,s;const n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Hl(t)};if(!this["~standard"].async)try{const i=this._parseSync({data:t,path:[],parent:n});return Uh(i)?{value:i.value}:{issues:n.common.issues}}catch(i){(s=(r=i==null?void 0:i.message)==null?void 0:r.toLowerCase())!=null&&s.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:n}).then(i=>Uh(i)?{value:i.value}:{issues:n.common.issues})}async parseAsync(t,n){const r=await this.safeParseAsync(t,n);if(r.success)return r.data;throw r.error}async safeParseAsync(t,n){const r={common:{issues:[],contextualErrorMap:n==null?void 0:n.errorMap,async:!0},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Hl(t)},s=this._parse({data:t,path:r.path,parent:r}),i=await(Ib(s)?s:Promise.resolve(s));return vA(r,i)}refine(t,n){const r=s=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(s):n;return this._refinement((s,i)=>{const o=t(s),l=()=>i.addIssue({code:Se.custom,...r(s)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(l(),!1)):o?!0:(l(),!1)})}refinement(t,n){return this._refinement((r,s)=>t(r)?!0:(s.addIssue(typeof n=="function"?n(r,s):n),!1))}_refinement(t){return new vc({schema:this,typeName:vt.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return Qa.create(this,this._def)}nullable(){return Tu.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return la.create(this)}promise(){return Ob.create(this,this._def)}or(t){return Rb.create([this,t],this._def)}and(t){return Mb.create(this,t,this._def)}transform(t){return new vc({...jt(this._def),schema:this,typeName:vt.ZodEffects,effect:{type:"transform",transform:t}})}default(t){const n=typeof t=="function"?t:()=>t;return new Db({...jt(this._def),innerType:this,defaultValue:n,typeName:vt.ZodDefault})}brand(){return new E7({typeName:vt.ZodBranded,type:this,...jt(this._def)})}catch(t){const n=typeof t=="function"?t:()=>t;return new $b({...jt(this._def),innerType:this,catchValue:n,typeName:vt.ZodCatch})}describe(t){const n=this.constructor;return new n({...this._def,description:t})}pipe(t){return B5.create(this,t)}readonly(){return Lb.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const Lle=/^c[^\s-]{8,}$/i,Ble=/^[0-9a-z]+$/,Fle=/^[0-9A-HJKMNP-TV-Z]{26}$/i,zle=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Hle=/^[a-z0-9_-]{21}$/i,Ule=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Wle=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Vle=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,qle="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let jk;const Kle=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Gle=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Yle=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Xle=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Zle=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Qle=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,C7="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Jle=new RegExp(`^${C7}$`);function N7(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);const n=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function ece(e){return new RegExp(`^${N7(e)}$`)}function tce(e){let t=`${C7}T${N7(e)}`;const n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function nce(e,t){return!!((t==="v4"||!t)&&Kle.test(e)||(t==="v6"||!t)&&Yle.test(e))}function rce(e,t){if(!Ule.test(e))return!1;try{const[n]=e.split(".");if(!n)return!1;const r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),s=JSON.parse(atob(r));return!(typeof s!="object"||s===null||"typ"in s&&(s==null?void 0:s.typ)!=="JWT"||!s.alg||t&&s.alg!==t)}catch{return!1}}function sce(e,t){return!!((t==="v4"||!t)&&Gle.test(e)||(t==="v6"||!t)&&Xle.test(e))}class Ka extends Ft{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==Xe.string){const i=this._getOrReturnCtx(t);return Fe(i,{code:Se.invalid_type,expected:Xe.string,received:i.parsedType}),xt}const r=new vs;let s;for(const i of this._def.checks)if(i.kind==="min")t.data.length<i.value&&(s=this._getOrReturnCtx(t,s),Fe(s,{code:Se.too_small,minimum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),r.dirty());else if(i.kind==="max")t.data.length>i.value&&(s=this._getOrReturnCtx(t,s),Fe(s,{code:Se.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),r.dirty());else if(i.kind==="length"){const o=t.data.length>i.value,l=t.data.length<i.value;(o||l)&&(s=this._getOrReturnCtx(t,s),o?Fe(s,{code:Se.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!0,message:i.message}):l&&Fe(s,{code:Se.too_small,minimum:i.value,type:"string",inclusive:!0,exact:!0,message:i.message}),r.dirty())}else if(i.kind==="email")Vle.test(t.data)||(s=this._getOrReturnCtx(t,s),Fe(s,{validation:"email",code:Se.invalid_string,message:i.message}),r.dirty());else if(i.kind==="emoji")jk||(jk=new RegExp(qle,"u")),jk.test(t.data)||(s=this._getOrReturnCtx(t,s),Fe(s,{validation:"emoji",code:Se.invalid_string,message:i.message}),r.dirty());else if(i.kind==="uuid")zle.test(t.data)||(s=this._getOrReturnCtx(t,s),Fe(s,{validation:"uuid",code:Se.invalid_string,message:i.message}),r.dirty());else if(i.kind==="nanoid")Hle.test(t.data)||(s=this._getOrReturnCtx(t,s),Fe(s,{validation:"nanoid",code:Se.invalid_string,message:i.message}),r.dirty());else if(i.kind==="cuid")Lle.test(t.data)||(s=this._getOrReturnCtx(t,s),Fe(s,{validation:"cuid",code:Se.invalid_string,message:i.message}),r.dirty());else if(i.kind==="cuid2")Ble.test(t.data)||(s=this._getOrReturnCtx(t,s),Fe(s,{validation:"cuid2",code:Se.invalid_string,message:i.message}),r.dirty());else if(i.kind==="ulid")Fle.test(t.data)||(s=this._getOrReturnCtx(t,s),Fe(s,{validation:"ulid",code:Se.invalid_string,message:i.message}),r.dirty());else if(i.kind==="url")try{new URL(t.data)}catch{s=this._getOrReturnCtx(t,s),Fe(s,{validation:"url",code:Se.invalid_string,message:i.message}),r.dirty()}else i.kind==="regex"?(i.regex.lastIndex=0,i.regex.test(t.data)||(s=this._getOrReturnCtx(t,s),Fe(s,{validation:"regex",code:Se.invalid_string,message:i.message}),r.dirty())):i.kind==="trim"?t.data=t.data.trim():i.kind==="includes"?t.data.includes(i.value,i.position)||(s=this._getOrReturnCtx(t,s),Fe(s,{code:Se.invalid_string,validation:{includes:i.value,position:i.position},message:i.message}),r.dirty()):i.kind==="toLowerCase"?t.data=t.data.toLowerCase():i.kind==="toUpperCase"?t.data=t.data.toUpperCase():i.kind==="startsWith"?t.data.startsWith(i.value)||(s=this._getOrReturnCtx(t,s),Fe(s,{code:Se.invalid_string,validation:{startsWith:i.value},message:i.message}),r.dirty()):i.kind==="endsWith"?t.data.endsWith(i.value)||(s=this._getOrReturnCtx(t,s),Fe(s,{code:Se.invalid_string,validation:{endsWith:i.value},message:i.message}),r.dirty()):i.kind==="datetime"?tce(i).test(t.data)||(s=this._getOrReturnCtx(t,s),Fe(s,{code:Se.invalid_string,validation:"datetime",message:i.message}),r.dirty()):i.kind==="date"?Jle.test(t.data)||(s=this._getOrReturnCtx(t,s),Fe(s,{code:Se.invalid_string,validation:"date",message:i.message}),r.dirty()):i.kind==="time"?ece(i).test(t.data)||(s=this._getOrReturnCtx(t,s),Fe(s,{code:Se.invalid_string,validation:"time",message:i.message}),r.dirty()):i.kind==="duration"?Wle.test(t.data)||(s=this._getOrReturnCtx(t,s),Fe(s,{validation:"duration",code:Se.invalid_string,message:i.message}),r.dirty()):i.kind==="ip"?nce(t.data,i.version)||(s=this._getOrReturnCtx(t,s),Fe(s,{validation:"ip",code:Se.invalid_string,message:i.message}),r.dirty()):i.kind==="jwt"?rce(t.data,i.alg)||(s=this._getOrReturnCtx(t,s),Fe(s,{validation:"jwt",code:Se.invalid_string,message:i.message}),r.dirty()):i.kind==="cidr"?sce(t.data,i.version)||(s=this._getOrReturnCtx(t,s),Fe(s,{validation:"cidr",code:Se.invalid_string,message:i.message}),r.dirty()):i.kind==="base64"?Zle.test(t.data)||(s=this._getOrReturnCtx(t,s),Fe(s,{validation:"base64",code:Se.invalid_string,message:i.message}),r.dirty()):i.kind==="base64url"?Qle.test(t.data)||(s=this._getOrReturnCtx(t,s),Fe(s,{validation:"base64url",code:Se.invalid_string,message:i.message}),r.dirty()):Yt.assertNever(i);return{status:r.value,value:t.data}}_regex(t,n,r){return this.refinement(s=>t.test(s),{validation:n,code:Se.invalid_string,...rt.errToObj(r)})}_addCheck(t){return new Ka({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...rt.errToObj(t)})}url(t){return this._addCheck({kind:"url",...rt.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...rt.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...rt.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...rt.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...rt.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...rt.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...rt.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...rt.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...rt.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...rt.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...rt.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...rt.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof(t==null?void 0:t.precision)>"u"?null:t==null?void 0:t.precision,offset:(t==null?void 0:t.offset)??!1,local:(t==null?void 0:t.local)??!1,...rt.errToObj(t==null?void 0:t.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof(t==null?void 0:t.precision)>"u"?null:t==null?void 0:t.precision,...rt.errToObj(t==null?void 0:t.message)})}duration(t){return this._addCheck({kind:"duration",...rt.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...rt.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n==null?void 0:n.position,...rt.errToObj(n==null?void 0:n.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...rt.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...rt.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...rt.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...rt.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...rt.errToObj(n)})}nonempty(t){return this.min(1,rt.errToObj(t))}trim(){return new Ka({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Ka({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Ka({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}}Ka.create=e=>new Ka({checks:[],typeName:vt.ZodString,coerce:(e==null?void 0:e.coerce)??!1,...jt(e)});function ice(e,t){const n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,s=n>r?n:r,i=Number.parseInt(e.toFixed(s).replace(".","")),o=Number.parseInt(t.toFixed(s).replace(".",""));return i%o/10**s}class Wh extends Ft{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==Xe.number){const i=this._getOrReturnCtx(t);return Fe(i,{code:Se.invalid_type,expected:Xe.number,received:i.parsedType}),xt}let r;const s=new vs;for(const i of this._def.checks)i.kind==="int"?Yt.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),Fe(r,{code:Se.invalid_type,expected:"integer",received:"float",message:i.message}),s.dirty()):i.kind==="min"?(i.inclusive?t.data<i.value:t.data<=i.value)&&(r=this._getOrReturnCtx(t,r),Fe(r,{code:Se.too_small,minimum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),s.dirty()):i.kind==="max"?(i.inclusive?t.data>i.value:t.data>=i.value)&&(r=this._getOrReturnCtx(t,r),Fe(r,{code:Se.too_big,maximum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),s.dirty()):i.kind==="multipleOf"?ice(t.data,i.value)!==0&&(r=this._getOrReturnCtx(t,r),Fe(r,{code:Se.not_multiple_of,multipleOf:i.value,message:i.message}),s.dirty()):i.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),Fe(r,{code:Se.not_finite,message:i.message}),s.dirty()):Yt.assertNever(i);return{status:s.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,rt.toString(n))}gt(t,n){return this.setLimit("min",t,!1,rt.toString(n))}lte(t,n){return this.setLimit("max",t,!0,rt.toString(n))}lt(t,n){return this.setLimit("max",t,!1,rt.toString(n))}setLimit(t,n,r,s){return new Wh({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:rt.toString(s)}]})}_addCheck(t){return new Wh({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:rt.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:rt.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:rt.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:rt.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:rt.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:rt.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:rt.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:rt.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:rt.toString(t)})}get minValue(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}get isInt(){return!!this._def.checks.find(t=>t.kind==="int"||t.kind==="multipleOf"&&Yt.isInteger(t.value))}get isFinite(){let t=null,n=null;for(const r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(t===null||r.value<t)&&(t=r.value)}return Number.isFinite(n)&&Number.isFinite(t)}}Wh.create=e=>new Wh({checks:[],typeName:vt.ZodNumber,coerce:(e==null?void 0:e.coerce)||!1,...jt(e)});class kg extends Ft{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==Xe.bigint)return this._getInvalidInput(t);let r;const s=new vs;for(const i of this._def.checks)i.kind==="min"?(i.inclusive?t.data<i.value:t.data<=i.value)&&(r=this._getOrReturnCtx(t,r),Fe(r,{code:Se.too_small,type:"bigint",minimum:i.value,inclusive:i.inclusive,message:i.message}),s.dirty()):i.kind==="max"?(i.inclusive?t.data>i.value:t.data>=i.value)&&(r=this._getOrReturnCtx(t,r),Fe(r,{code:Se.too_big,type:"bigint",maximum:i.value,inclusive:i.inclusive,message:i.message}),s.dirty()):i.kind==="multipleOf"?t.data%i.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),Fe(r,{code:Se.not_multiple_of,multipleOf:i.value,message:i.message}),s.dirty()):Yt.assertNever(i);return{status:s.value,value:t.data}}_getInvalidInput(t){const n=this._getOrReturnCtx(t);return Fe(n,{code:Se.invalid_type,expected:Xe.bigint,received:n.parsedType}),xt}gte(t,n){return this.setLimit("min",t,!0,rt.toString(n))}gt(t,n){return this.setLimit("min",t,!1,rt.toString(n))}lte(t,n){return this.setLimit("max",t,!0,rt.toString(n))}lt(t,n){return this.setLimit("max",t,!1,rt.toString(n))}setLimit(t,n,r,s){return new kg({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:rt.toString(s)}]})}_addCheck(t){return new kg({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:rt.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:rt.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:rt.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:rt.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:rt.toString(n)})}get minValue(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}}kg.create=e=>new kg({checks:[],typeName:vt.ZodBigInt,coerce:(e==null?void 0:e.coerce)??!1,...jt(e)});class rj extends Ft{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==Xe.boolean){const r=this._getOrReturnCtx(t);return Fe(r,{code:Se.invalid_type,expected:Xe.boolean,received:r.parsedType}),xt}return Zi(t.data)}}rj.create=e=>new rj({typeName:vt.ZodBoolean,coerce:(e==null?void 0:e.coerce)||!1,...jt(e)});class Tb extends Ft{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==Xe.date){const i=this._getOrReturnCtx(t);return Fe(i,{code:Se.invalid_type,expected:Xe.date,received:i.parsedType}),xt}if(Number.isNaN(t.data.getTime())){const i=this._getOrReturnCtx(t);return Fe(i,{code:Se.invalid_date}),xt}const r=new vs;let s;for(const i of this._def.checks)i.kind==="min"?t.data.getTime()<i.value&&(s=this._getOrReturnCtx(t,s),Fe(s,{code:Se.too_small,message:i.message,inclusive:!0,exact:!1,minimum:i.value,type:"date"}),r.dirty()):i.kind==="max"?t.data.getTime()>i.value&&(s=this._getOrReturnCtx(t,s),Fe(s,{code:Se.too_big,message:i.message,inclusive:!0,exact:!1,maximum:i.value,type:"date"}),r.dirty()):Yt.assertNever(i);return{status:r.value,value:new Date(t.data.getTime())}}_addCheck(t){return new Tb({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:rt.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:rt.toString(n)})}get minDate(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t!=null?new Date(t):null}}Tb.create=e=>new Tb({checks:[],coerce:(e==null?void 0:e.coerce)||!1,typeName:vt.ZodDate,...jt(e)});class yA extends Ft{_parse(t){if(this._getType(t)!==Xe.symbol){const r=this._getOrReturnCtx(t);return Fe(r,{code:Se.invalid_type,expected:Xe.symbol,received:r.parsedType}),xt}return Zi(t.data)}}yA.create=e=>new yA({typeName:vt.ZodSymbol,...jt(e)});class sj extends Ft{_parse(t){if(this._getType(t)!==Xe.undefined){const r=this._getOrReturnCtx(t);return Fe(r,{code:Se.invalid_type,expected:Xe.undefined,received:r.parsedType}),xt}return Zi(t.data)}}sj.create=e=>new sj({typeName:vt.ZodUndefined,...jt(e)});class ij extends Ft{_parse(t){if(this._getType(t)!==Xe.null){const r=this._getOrReturnCtx(t);return Fe(r,{code:Se.invalid_type,expected:Xe.null,received:r.parsedType}),xt}return Zi(t.data)}}ij.create=e=>new ij({typeName:vt.ZodNull,...jt(e)});class bA extends Ft{constructor(){super(...arguments),this._any=!0}_parse(t){return Zi(t.data)}}bA.create=e=>new bA({typeName:vt.ZodAny,...jt(e)});class oj extends Ft{constructor(){super(...arguments),this._unknown=!0}_parse(t){return Zi(t.data)}}oj.create=e=>new oj({typeName:vt.ZodUnknown,...jt(e)});class xc extends Ft{_parse(t){const n=this._getOrReturnCtx(t);return Fe(n,{code:Se.invalid_type,expected:Xe.never,received:n.parsedType}),xt}}xc.create=e=>new xc({typeName:vt.ZodNever,...jt(e)});class wA extends Ft{_parse(t){if(this._getType(t)!==Xe.undefined){const r=this._getOrReturnCtx(t);return Fe(r,{code:Se.invalid_type,expected:Xe.void,received:r.parsedType}),xt}return Zi(t.data)}}wA.create=e=>new wA({typeName:vt.ZodVoid,...jt(e)});class la extends Ft{_parse(t){const{ctx:n,status:r}=this._processInputParams(t),s=this._def;if(n.parsedType!==Xe.array)return Fe(n,{code:Se.invalid_type,expected:Xe.array,received:n.parsedType}),xt;if(s.exactLength!==null){const o=n.data.length>s.exactLength.value,l=n.data.length<s.exactLength.value;(o||l)&&(Fe(n,{code:o?Se.too_big:Se.too_small,minimum:l?s.exactLength.value:void 0,maximum:o?s.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:s.exactLength.message}),r.dirty())}if(s.minLength!==null&&n.data.length<s.minLength.value&&(Fe(n,{code:Se.too_small,minimum:s.minLength.value,type:"array",inclusive:!0,exact:!1,message:s.minLength.message}),r.dirty()),s.maxLength!==null&&n.data.length>s.maxLength.value&&(Fe(n,{code:Se.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((o,l)=>s.type._parseAsync(new pa(n,o,n.path,l)))).then(o=>vs.mergeArray(r,o));const i=[...n.data].map((o,l)=>s.type._parseSync(new pa(n,o,n.path,l)));return vs.mergeArray(r,i)}get element(){return this._def.type}min(t,n){return new la({...this._def,minLength:{value:t,message:rt.toString(n)}})}max(t,n){return new la({...this._def,maxLength:{value:t,message:rt.toString(n)}})}length(t,n){return new la({...this._def,exactLength:{value:t,message:rt.toString(n)}})}nonempty(t){return this.min(1,t)}}la.create=(e,t)=>new la({type:e,minLength:null,maxLength:null,exactLength:null,typeName:vt.ZodArray,...jt(t)});function Kd(e){if(e instanceof or){const t={};for(const n in e.shape){const r=e.shape[n];t[n]=Qa.create(Kd(r))}return new or({...e._def,shape:()=>t})}else return e instanceof la?new la({...e._def,type:Kd(e.element)}):e instanceof Qa?Qa.create(Kd(e.unwrap())):e instanceof Tu?Tu.create(Kd(e.unwrap())):e instanceof Eu?Eu.create(e.items.map(t=>Kd(t))):e}class or extends Ft{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const t=this._def.shape(),n=Yt.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==Xe.object){const u=this._getOrReturnCtx(t);return Fe(u,{code:Se.invalid_type,expected:Xe.object,received:u.parsedType}),xt}const{status:r,ctx:s}=this._processInputParams(t),{shape:i,keys:o}=this._getCached(),l=[];if(!(this._def.catchall instanceof xc&&this._def.unknownKeys==="strip"))for(const u in s.data)o.includes(u)||l.push(u);const c=[];for(const u of o){const d=i[u],h=s.data[u];c.push({key:{status:"valid",value:u},value:d._parse(new pa(s,h,s.path,u)),alwaysSet:u in s.data})}if(this._def.catchall instanceof xc){const u=this._def.unknownKeys;if(u==="passthrough")for(const d of l)c.push({key:{status:"valid",value:d},value:{status:"valid",value:s.data[d]}});else if(u==="strict")l.length>0&&(Fe(s,{code:Se.unrecognized_keys,keys:l}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const u=this._def.catchall;for(const d of l){const h=s.data[d];c.push({key:{status:"valid",value:d},value:u._parse(new pa(s,h,s.path,d)),alwaysSet:d in s.data})}}return s.common.async?Promise.resolve().then(async()=>{const u=[];for(const d of c){const h=await d.key,f=await d.value;u.push({key:h,value:f,alwaysSet:d.alwaysSet})}return u}).then(u=>vs.mergeObjectSync(r,u)):vs.mergeObjectSync(r,c)}get shape(){return this._def.shape()}strict(t){return rt.errToObj,new or({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{var i,o;const s=((o=(i=this._def).errorMap)==null?void 0:o.call(i,n,r).message)??r.defaultError;return n.code==="unrecognized_keys"?{message:rt.errToObj(t).message??s}:{message:s}}}:{}})}strip(){return new or({...this._def,unknownKeys:"strip"})}passthrough(){return new or({...this._def,unknownKeys:"passthrough"})}extend(t){return new or({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new or({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:vt.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new or({...this._def,catchall:t})}pick(t){const n={};for(const r of Yt.objectKeys(t))t[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new or({...this._def,shape:()=>n})}omit(t){const n={};for(const r of Yt.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new or({...this._def,shape:()=>n})}deepPartial(){return Kd(this)}partial(t){const n={};for(const r of Yt.objectKeys(this.shape)){const s=this.shape[r];t&&!t[r]?n[r]=s:n[r]=s.optional()}return new or({...this._def,shape:()=>n})}required(t){const n={};for(const r of Yt.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let i=this.shape[r];for(;i instanceof Qa;)i=i._def.innerType;n[r]=i}return new or({...this._def,shape:()=>n})}keyof(){return j7(Yt.objectKeys(this.shape))}}or.create=(e,t)=>new or({shape:()=>e,unknownKeys:"strip",catchall:xc.create(),typeName:vt.ZodObject,...jt(t)});or.strictCreate=(e,t)=>new or({shape:()=>e,unknownKeys:"strict",catchall:xc.create(),typeName:vt.ZodObject,...jt(t)});or.lazycreate=(e,t)=>new or({shape:e,unknownKeys:"strip",catchall:xc.create(),typeName:vt.ZodObject,...jt(t)});class Rb extends Ft{_parse(t){const{ctx:n}=this._processInputParams(t),r=this._def.options;function s(i){for(const l of i)if(l.result.status==="valid")return l.result;for(const l of i)if(l.result.status==="dirty")return n.common.issues.push(...l.ctx.common.issues),l.result;const o=i.map(l=>new il(l.ctx.common.issues));return Fe(n,{code:Se.invalid_union,unionErrors:o}),xt}if(n.common.async)return Promise.all(r.map(async i=>{const o={...n,common:{...n.common,issues:[]},parent:null};return{result:await i._parseAsync({data:n.data,path:n.path,parent:o}),ctx:o}})).then(s);{let i;const o=[];for(const c of r){const u={...n,common:{...n.common,issues:[]},parent:null},d=c._parseSync({data:n.data,path:n.path,parent:u});if(d.status==="valid")return d;d.status==="dirty"&&!i&&(i={result:d,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(i)return n.common.issues.push(...i.ctx.common.issues),i.result;const l=o.map(c=>new il(c));return Fe(n,{code:Se.invalid_union,unionErrors:l}),xt}}get options(){return this._def.options}}Rb.create=(e,t)=>new Rb({options:e,typeName:vt.ZodUnion,...jt(t)});const Ha=e=>e instanceof lj?Ha(e.schema):e instanceof vc?Ha(e.innerType()):e instanceof Ab?[e.value]:e instanceof Iu?e.options:e instanceof cj?Yt.objectValues(e.enum):e instanceof Db?Ha(e._def.innerType):e instanceof sj?[void 0]:e instanceof ij?[null]:e instanceof Qa?[void 0,...Ha(e.unwrap())]:e instanceof Tu?[null,...Ha(e.unwrap())]:e instanceof E7||e instanceof Lb?Ha(e.unwrap()):e instanceof $b?Ha(e._def.innerType):[];class L5 extends Ft{_parse(t){const{ctx:n}=this._processInputParams(t);if(n.parsedType!==Xe.object)return Fe(n,{code:Se.invalid_type,expected:Xe.object,received:n.parsedType}),xt;const r=this.discriminator,s=n.data[r],i=this.optionsMap.get(s);return i?n.common.async?i._parseAsync({data:n.data,path:n.path,parent:n}):i._parseSync({data:n.data,path:n.path,parent:n}):(Fe(n,{code:Se.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),xt)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){const s=new Map;for(const i of n){const o=Ha(i.shape[t]);if(!o.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(const l of o){if(s.has(l))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(l)}`);s.set(l,i)}}return new L5({typeName:vt.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:s,...jt(r)})}}function aj(e,t){const n=Hl(e),r=Hl(t);if(e===t)return{valid:!0,data:e};if(n===Xe.object&&r===Xe.object){const s=Yt.objectKeys(t),i=Yt.objectKeys(e).filter(l=>s.indexOf(l)!==-1),o={...e,...t};for(const l of i){const c=aj(e[l],t[l]);if(!c.valid)return{valid:!1};o[l]=c.data}return{valid:!0,data:o}}else if(n===Xe.array&&r===Xe.array){if(e.length!==t.length)return{valid:!1};const s=[];for(let i=0;i<e.length;i++){const o=e[i],l=t[i],c=aj(o,l);if(!c.valid)return{valid:!1};s.push(c.data)}return{valid:!0,data:s}}else return n===Xe.date&&r===Xe.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}class Mb extends Ft{_parse(t){const{status:n,ctx:r}=this._processInputParams(t),s=(i,o)=>{if(gA(i)||gA(o))return xt;const l=aj(i.value,o.value);return l.valid?((xA(i)||xA(o))&&n.dirty(),{status:n.value,value:l.data}):(Fe(r,{code:Se.invalid_intersection_types}),xt)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([i,o])=>s(i,o)):s(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}}Mb.create=(e,t,n)=>new Mb({left:e,right:t,typeName:vt.ZodIntersection,...jt(n)});class Eu extends Ft{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Xe.array)return Fe(r,{code:Se.invalid_type,expected:Xe.array,received:r.parsedType}),xt;if(r.data.length<this._def.items.length)return Fe(r,{code:Se.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),xt;!this._def.rest&&r.data.length>this._def.items.length&&(Fe(r,{code:Se.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());const i=[...r.data].map((o,l)=>{const c=this._def.items[l]||this._def.rest;return c?c._parse(new pa(r,o,r.path,l)):null}).filter(o=>!!o);return r.common.async?Promise.all(i).then(o=>vs.mergeArray(n,o)):vs.mergeArray(n,i)}get items(){return this._def.items}rest(t){return new Eu({...this._def,rest:t})}}Eu.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Eu({items:e,typeName:vt.ZodTuple,rest:null,...jt(t)})};class Pb extends Ft{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Xe.object)return Fe(r,{code:Se.invalid_type,expected:Xe.object,received:r.parsedType}),xt;const s=[],i=this._def.keyType,o=this._def.valueType;for(const l in r.data)s.push({key:i._parse(new pa(r,l,r.path,l)),value:o._parse(new pa(r,r.data[l],r.path,l)),alwaysSet:l in r.data});return r.common.async?vs.mergeObjectAsync(n,s):vs.mergeObjectSync(n,s)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof Ft?new Pb({keyType:t,valueType:n,typeName:vt.ZodRecord,...jt(r)}):new Pb({keyType:Ka.create(),valueType:t,typeName:vt.ZodRecord,...jt(n)})}}class _A extends Ft{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Xe.map)return Fe(r,{code:Se.invalid_type,expected:Xe.map,received:r.parsedType}),xt;const s=this._def.keyType,i=this._def.valueType,o=[...r.data.entries()].map(([l,c],u)=>({key:s._parse(new pa(r,l,r.path,[u,"key"])),value:i._parse(new pa(r,c,r.path,[u,"value"]))}));if(r.common.async){const l=new Map;return Promise.resolve().then(async()=>{for(const c of o){const u=await c.key,d=await c.value;if(u.status==="aborted"||d.status==="aborted")return xt;(u.status==="dirty"||d.status==="dirty")&&n.dirty(),l.set(u.value,d.value)}return{status:n.value,value:l}})}else{const l=new Map;for(const c of o){const u=c.key,d=c.value;if(u.status==="aborted"||d.status==="aborted")return xt;(u.status==="dirty"||d.status==="dirty")&&n.dirty(),l.set(u.value,d.value)}return{status:n.value,value:l}}}}_A.create=(e,t,n)=>new _A({valueType:t,keyType:e,typeName:vt.ZodMap,...jt(n)});class Cg extends Ft{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Xe.set)return Fe(r,{code:Se.invalid_type,expected:Xe.set,received:r.parsedType}),xt;const s=this._def;s.minSize!==null&&r.data.size<s.minSize.value&&(Fe(r,{code:Se.too_small,minimum:s.minSize.value,type:"set",inclusive:!0,exact:!1,message:s.minSize.message}),n.dirty()),s.maxSize!==null&&r.data.size>s.maxSize.value&&(Fe(r,{code:Se.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),n.dirty());const i=this._def.valueType;function o(c){const u=new Set;for(const d of c){if(d.status==="aborted")return xt;d.status==="dirty"&&n.dirty(),u.add(d.value)}return{status:n.value,value:u}}const l=[...r.data.values()].map((c,u)=>i._parse(new pa(r,c,r.path,u)));return r.common.async?Promise.all(l).then(c=>o(c)):o(l)}min(t,n){return new Cg({...this._def,minSize:{value:t,message:rt.toString(n)}})}max(t,n){return new Cg({...this._def,maxSize:{value:t,message:rt.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}}Cg.create=(e,t)=>new Cg({valueType:e,minSize:null,maxSize:null,typeName:vt.ZodSet,...jt(t)});class lj extends Ft{get schema(){return this._def.getter()}_parse(t){const{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}}lj.create=(e,t)=>new lj({getter:e,typeName:vt.ZodLazy,...jt(t)});class Ab extends Ft{_parse(t){if(t.data!==this._def.value){const n=this._getOrReturnCtx(t);return Fe(n,{received:n.data,code:Se.invalid_literal,expected:this._def.value}),xt}return{status:"valid",value:t.data}}get value(){return this._def.value}}Ab.create=(e,t)=>new Ab({value:e,typeName:vt.ZodLiteral,...jt(t)});function j7(e,t){return new Iu({values:e,typeName:vt.ZodEnum,...jt(t)})}class Iu extends Ft{_parse(t){if(typeof t.data!="string"){const n=this._getOrReturnCtx(t),r=this._def.values;return Fe(n,{expected:Yt.joinValues(r),received:n.parsedType,code:Se.invalid_type}),xt}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){const n=this._getOrReturnCtx(t),r=this._def.values;return Fe(n,{received:n.data,code:Se.invalid_enum_value,options:r}),xt}return Zi(t.data)}get options(){return this._def.values}get enum(){const t={};for(const n of this._def.values)t[n]=n;return t}get Values(){const t={};for(const n of this._def.values)t[n]=n;return t}get Enum(){const t={};for(const n of this._def.values)t[n]=n;return t}extract(t,n=this._def){return Iu.create(t,{...this._def,...n})}exclude(t,n=this._def){return Iu.create(this.options.filter(r=>!t.includes(r)),{...this._def,...n})}}Iu.create=j7;class cj extends Ft{_parse(t){const n=Yt.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==Xe.string&&r.parsedType!==Xe.number){const s=Yt.objectValues(n);return Fe(r,{expected:Yt.joinValues(s),received:r.parsedType,code:Se.invalid_type}),xt}if(this._cache||(this._cache=new Set(Yt.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){const s=Yt.objectValues(n);return Fe(r,{received:r.data,code:Se.invalid_enum_value,options:s}),xt}return Zi(t.data)}get enum(){return this._def.values}}cj.create=(e,t)=>new cj({values:e,typeName:vt.ZodNativeEnum,...jt(t)});class Ob extends Ft{unwrap(){return this._def.type}_parse(t){const{ctx:n}=this._processInputParams(t);if(n.parsedType!==Xe.promise&&n.common.async===!1)return Fe(n,{code:Se.invalid_type,expected:Xe.promise,received:n.parsedType}),xt;const r=n.parsedType===Xe.promise?n.data:Promise.resolve(n.data);return Zi(r.then(s=>this._def.type.parseAsync(s,{path:n.path,errorMap:n.common.contextualErrorMap})))}}Ob.create=(e,t)=>new Ob({type:e,typeName:vt.ZodPromise,...jt(t)});class vc extends Ft{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===vt.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){const{status:n,ctx:r}=this._processInputParams(t),s=this._def.effect||null,i={addIssue:o=>{Fe(r,o),o.fatal?n.abort():n.dirty()},get path(){return r.path}};if(i.addIssue=i.addIssue.bind(i),s.type==="preprocess"){const o=s.transform(r.data,i);if(r.common.async)return Promise.resolve(o).then(async l=>{if(n.value==="aborted")return xt;const c=await this._def.schema._parseAsync({data:l,path:r.path,parent:r});return c.status==="aborted"?xt:c.status==="dirty"||n.value==="dirty"?lm(c.value):c});{if(n.value==="aborted")return xt;const l=this._def.schema._parseSync({data:o,path:r.path,parent:r});return l.status==="aborted"?xt:l.status==="dirty"||n.value==="dirty"?lm(l.value):l}}if(s.type==="refinement"){const o=l=>{const c=s.refinement(l,i);if(r.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return l};if(r.common.async===!1){const l=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return l.status==="aborted"?xt:(l.status==="dirty"&&n.dirty(),o(l.value),{status:n.value,value:l.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(l=>l.status==="aborted"?xt:(l.status==="dirty"&&n.dirty(),o(l.value).then(()=>({status:n.value,value:l.value}))))}if(s.type==="transform")if(r.common.async===!1){const o=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!Uh(o))return xt;const l=s.transform(o.value,i);if(l instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:l}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(o=>Uh(o)?Promise.resolve(s.transform(o.value,i)).then(l=>({status:n.value,value:l})):xt);Yt.assertNever(s)}}vc.create=(e,t,n)=>new vc({schema:e,typeName:vt.ZodEffects,effect:t,...jt(n)});vc.createWithPreprocess=(e,t,n)=>new vc({schema:t,effect:{type:"preprocess",transform:e},typeName:vt.ZodEffects,...jt(n)});class Qa extends Ft{_parse(t){return this._getType(t)===Xe.undefined?Zi(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}}Qa.create=(e,t)=>new Qa({innerType:e,typeName:vt.ZodOptional,...jt(t)});class Tu extends Ft{_parse(t){return this._getType(t)===Xe.null?Zi(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}}Tu.create=(e,t)=>new Tu({innerType:e,typeName:vt.ZodNullable,...jt(t)});class Db extends Ft{_parse(t){const{ctx:n}=this._processInputParams(t);let r=n.data;return n.parsedType===Xe.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}}Db.create=(e,t)=>new Db({innerType:e,typeName:vt.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...jt(t)});class $b extends Ft{_parse(t){const{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},s=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return Ib(s)?s.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new il(r.common.issues)},input:r.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new il(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}}$b.create=(e,t)=>new $b({innerType:e,typeName:vt.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...jt(t)});class SA extends Ft{_parse(t){if(this._getType(t)!==Xe.nan){const r=this._getOrReturnCtx(t);return Fe(r,{code:Se.invalid_type,expected:Xe.nan,received:r.parsedType}),xt}return{status:"valid",value:t.data}}}SA.create=e=>new SA({typeName:vt.ZodNaN,...jt(e)});class E7 extends Ft{_parse(t){const{ctx:n}=this._processInputParams(t),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}}class B5 extends Ft{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{const i=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return i.status==="aborted"?xt:i.status==="dirty"?(n.dirty(),lm(i.value)):this._def.out._parseAsync({data:i.value,path:r.path,parent:r})})();{const s=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?xt:s.status==="dirty"?(n.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:r.path,parent:r})}}static create(t,n){return new B5({in:t,out:n,typeName:vt.ZodPipeline})}}class Lb extends Ft{_parse(t){const n=this._def.innerType._parse(t),r=s=>(Uh(s)&&(s.value=Object.freeze(s.value)),s);return Ib(n)?n.then(s=>r(s)):r(n)}unwrap(){return this._def.innerType}}Lb.create=(e,t)=>new Lb({innerType:e,typeName:vt.ZodReadonly,...jt(t)});var vt;(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(vt||(vt={}));const N=Ka.create,Z=Wh.create,Ee=rj.create,Ja=oj.create;xc.create;const pe=la.create,F=or.create,oce=Rb.create,zs=L5.create;Mb.create;Eu.create;const Qi=Pb.create,fe=Ab.create,He=Iu.create;Ob.create;Qa.create;Tu.create;const ace=vc.createWithPreprocess,lce=["head","index"],I7=N().regex(/^[A-Za-z0-9][A-Za-z0-9-]{0,127}$/),Bb=N().regex(/^[1-9][0-9]*$/),Fb=N().regex(/^[A-Za-z0-9_.-]+$/),Ng=N().min(1).max(255).refine(e=>!e.startsWith("-")&&e!=="HEAD"&&!e.startsWith("/")&&!e.endsWith("/")&&!e.endsWith(".")&&!/[\s~^:?*\[\\\x00-\x1f\x7f]/.test(e)&&!e.includes("..")&&!e.includes("@{")&&!e.includes("//")&&e.split("/").every(t=>!t.startsWith(".")&&!t.endsWith(".lock")),"Invalid Git branch"),F5=N().min(1).max(4096).refine(e=>!e.startsWith("/")&&!e.includes("\0")&&!e.split(/[\\/]/).includes("..")),Ew=F({workspaceId:I7,repoId:Bb,owner:Fb,name:Fb,sourceBranch:Ng,defaultBranch:Ng}).strict(),cce=F({repoId:Bb,owner:Fb,name:Fb,defaultBranch:N(),private:Ee(),description:N().nullable()}),uce=Ew.extend({initialCommit:N(),head:N(),actualBranch:N().nullable(),branches:pe(N()).optional(),files:pe(F({path:F5,previousPath:N().optional(),comparison:He(lce).optional(),status:N(),added:Z().nonnegative(),removed:Z().nonnegative(),binary:Ee(),untracked:Ee().optional()})),totalFiles:Z().int().nonnegative().optional(),filesTruncated:Ee().optional(),added:Z().nonnegative(),removed:Z().nonnegative(),dirty:Ee(),conflicted:Ee(),version:N(),measuredAt:Z()}),Td=F({sessionId:I7});zs("action",[Td.extend({action:fe("repositories"),page:Z().int().min(1).max(1e3).optional(),search:N().max(100).optional()}).strict(),Td.extend({action:fe("branches"),repoId:Bb,page:Z().int().min(1).max(1e3).optional(),search:N().max(100).optional(),cursor:N().min(1).max(1024).optional()}).strict(),Td.extend({action:fe("bind"),repoId:Bb,branch:Ng}).strict(),Td.extend({action:fe("status")}).strict(),Td.extend({action:fe("intend"),branch:Ng.optional()}).strict(),Td.extend({action:fe("diff"),filePath:F5}).strict()]);F({binding:Ew.nullable().optional(),workspace:uce.nullable().optional(),repositories:pe(cce).optional(),branches:pe(N()).optional(),hasMore:Ee().optional(),nextCursor:N().min(1).max(1024).optional(),diff:F({path:F5,patch:N(),binary:Ee(),truncated:Ee(),notStored:Ee().optional()}).optional()});F({threadId:N().min(1),conversationId:N().min(1),workspace:Ew.optional()});new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");F({id:N().min(1),name:N().min(1),baseUrl:N().min(1),apiKey:N().min(1),remark:N().optional(),createdAt:Z(),updatedAt:Z()}).strict();const dce=F({id:N().min(1),name:N().min(1),baseUrl:N().min(1),remark:N().optional(),keyMasked:N(),hasKey:Ee(),createdAt:Z(),updatedAt:Z()}).strict();F({activeChannelId:N().nullable(),channels:pe(dce)}).strict();F({}).strict();F({id:N().min(1).optional(),name:N().min(1),baseUrl:N().min(1),apiKey:N().optional(),remark:N().optional()}).strict();F({id:N().min(1)}).strict();F({id:N().min(1).nullable()}).strict();F({channelId:N().min(1).optional(),updatedAt:Z().optional()}).strict().refine(e=>e.updatedAt===void 0||e.channelId!==void 0,{message:"updatedAt requires channelId"});F({channelId:N().nullable(),models:pe(F({id:N().min(1),ownedBy:N().optional()}).strict())}).strict();const hce=["owner"],fce=["agent","owner","user-upload"],T7=F({id:N().min(1),relPath:N().min(1),from:He(fce),label:N().optional(),size:Z().int().nonnegative(),mime:N().min(1),addedAt:Z().int().nonnegative(),lastEditedAt:Z().int().nonnegative().optional(),stale:Ee().optional()});F({sessionId:N().min(1),relPath:N().min(1),ttlSeconds:Z().int().positive().nullable().optional(),view:He(["raw","md-rendered"]).optional()});F({url:N().min(1),expiresAt:Z().int().nonnegative().nullable()});F({sessionId:N().min(1),relPath:N().min(1),label:N().optional(),origin:fe("agent").optional()});F({entry:T7});F({sessionId:N().min(1),relPath:N().min(1)});F({removed:fe(!0)});F({sessionId:N().min(1)});F({entries:pe(T7)});F({attachmentId:N().min(1),url:N().min(1),relPath:N().min(1),sizeBytes:Z().int().nonnegative(),mimeType:N().min(1)});const pce=zs("type",[F({type:fe("persona"),id:N().min(1)}).strict(),F({type:fe("chat"),id:N().min(1)}).strict(),F({type:fe("*")}).strict()]),mce=He(["read","send","admin"]),z5=F({resource:pce,actions:pe(mce).min(1)}).strict(),gce=F({id:N().min(1),secretHash:N().regex(/^[a-f0-9]{64}$/),displayName:N(),grants:pe(z5),issuedAt:Z().int().nonnegative(),expiresAt:Z().int().positive().optional(),maxUses:Z().int().positive().optional(),usedCount:Z().int().nonnegative(),peerOwnerId:N().min(1).optional(),firstUsedByPeerAt:Z().int().positive().optional(),peerDisplayName:N().optional()}).strict(),xce=gce.omit({secretHash:!0});F({type:fe("whoami:ok"),owner:F({id:N(),kind:He(["owner","guest"]),displayName:N(),ownerId:N(),provider:N()}).strict(),capability:xce,grantedPersonas:pe(F({id:N().min(1),displayName:N()}).strict())}).strict();const vce="PEER_LOGIN_EXPIRED";F({selfUrl:N().min(1)});F({type:fe("contact:handshake:ok"),owner:F({id:N(),ownerId:N(),provider:N(),displayName:N()}),grants:pe(z5)});const yce=zs("status",[F({status:fe("authorized"),login:N().min(1),source:He(["git","file"])}).strict(),F({status:fe("missing")}).strict(),F({status:fe("invalid"),message:N().min(1)}).strict(),F({status:fe("pending"),authUrl:N().url()}).strict()]);F({token:N().min(1)}).strict();F({returnTo:N().url().optional()}).strict();const bce=F({url:N().url(),bin:N(),sha256:N().regex(/^[0-9a-f]{64}$/),size:Z().int().positive()}),wce={label:"Debian 13"},R7=["node","npm"],_ce=["claude","codex","git","lark-cli","pi","pi-mcp-bridge","pi-cliproxyapi-provider","python3","jq","rsync","psql","go","chromium","fonts-wqy-microhei","openssh-server","pnpm","whiteboard-cli","s","supabase-mcp","mcp-server-kibana","aliyun"],Sce=F({name:N().min(1),from:N().optional(),version:N().optional(),min:N().optional(),library:Ee().optional(),localVersion:N().optional(),artifact:bce.optional(),aptMissing:fe(!0).optional(),aptVersion:N().optional()}),H5=N().regex(/^[a-z0-9-]+$/,"连接器名只能是小写字母、数字和短横线"),M7=["proxy","env"],P7=["mcp","cli"],kce=["bearer","lark-sidecar"],A7=["none","shared","personal"],U5=["oauth","fields"],Iw=N().regex(/^[A-Z][A-Z0-9_]*$/,"要填的变量名只能是大写字母、数字和下划线,且以字母开头"),Cce=F({name:N().min(1),env:pe(Iw).min(1)}),O7=F({name:H5,kind:He(M7),runner:He(P7),protocol:He(kce).optional(),id:N().min(1),credentialSource:He(A7).optional(),auth:He(U5).optional(),publisherUnionId:N().regex(/^on_[A-Za-z0-9_-]+$/).optional(),fields:pe(Iw).default([]),http:F({url:N().min(1),headers:Qi(N(),N())}).optional()}),D7=["LARKSUITE_CLI_APP_ID","LARKSUITE_CLI_APP_SECRET"];function W5(e){return e.name==="feishu"&&e.runner==="cli"&&e.kind==="env"&&e.credentialSource==="shared"}function Nce(e){return e.name==="feishu"&&e.id==="feishu"&&e.runner==="cli"&&e.kind==="proxy"&&e.protocol==="lark-sidecar"&&e.credentialSource==="shared"&&e.auth==="oauth"&&e.fields.length===0}function $7(e){if(!e.credentialSource)return[`连接器 ${e.name} 还没选用谁的账号`];const t=[];return Nce(e)?t:e.protocol==="lark-sidecar"&&e.credentialSource==="shared"?["连接器 feishu 的发布者 OAuth 配置不完整,请重新选择账号身份"]:W5(e)?D7.filter(n=>!e.fields.includes(n)).map(n=>`连接器 feishu 的 Lark App Bot 缺少 ${n==="LARKSUITE_CLI_APP_ID"?"App ID":"App Secret"}`):(e.credentialSource==="personal"&&(e.auth?e.auth==="oauth"&&e.kind==="env"?t.push(`连接器 ${e.name} 是进程型(stdio MCP / CLI),只能粘贴 API key,走不了 OAuth`):e.auth==="fields"&&e.fields.length===0&&t.push(`连接器 ${e.name} 要填的变量还没列`):t.push(`连接器 ${e.name} 还没选用户怎么关联账号`)),e.credentialSource==="shared"&&e.fields.length===0&&t.push(`连接器 ${e.name} 选了发布者的账号,但要填的变量还没列`),t)}const jce=/^([A-Za-z0-9._/-]+)@([A-Za-z0-9._-]+)(?:\?tags=([A-Za-z0-9_,]+))?$/,Ece=["main","master","HEAD","latest"];function Ice(e){const t=jce.exec(e);return!!t&&!Ece.includes(t[2])}function L7(e){var n,r;return R7.includes(e.name)||_ce.includes(e.name)?[]:(n=e.from)!=null&&n.startsWith("github:")&&!e.artifact?[`${e.name} 还没钉下载资产(github: 要具体到哪个文件)——重新扫描`]:(r=e.from)!=null&&r.startsWith("go:")&&!Ice(e.from.slice(3))?[`${e.name} 还没钉版本(go: 要写成 <module>@<tag>,不收 latest / main 这类移动引用)——重新扫描`]:[]}function V5(e){return e.connectors.filter(t=>t.credentialSource==="shared"&&t.fields.length>0).map(t=>({name:t.name,env:[...t.fields]}))}function Tce(e){return[...new Set([...e.envVars.flatMap(t=>t.env),...V5(e).flatMap(t=>t.env)])]}function Rce(e){const t=new Set(e.connectors.flatMap(n=>n.fields));return[...new Set(e.envVars.flatMap(n=>n.env))].filter(n=>t.has(n)).map(n=>`${n} 同时是环境变量和连接器的字段,只能留一处——重新扫描`)}const Mce=e=>{if(!e||typeof e!="object")return e;let t=e;if("clis"in t&&Array.isArray(t.clis)){const{clis:n,...r}=t;t="packages"in r?r:{...r,packages:n}}if("assets"in t&&Array.isArray(t.assets)&&t.assets.length===0){const{assets:n,...r}=t;t=r}if("secrets"in t&&Array.isArray(t.secrets)){const{secrets:n,...r}=t,s=new Set((Array.isArray(r.connectors)?r.connectors:[]).flatMap(o=>Array.isArray(o==null?void 0:o.fields)?o.fields:[])),i=n.map(o=>({...o,env:Array.isArray(o==null?void 0:o.env)?o.env.filter(l=>!s.has(l)):o==null?void 0:o.env})).filter(o=>!Array.isArray(o.env)||o.env.length>0);t={...r,envVars:[...Array.isArray(r.envVars)?r.envVars:[],...i]}}return t},Pce="Publisher test: ",B7=F({version:fe(1),entry:N().max(240).regex(/^[A-Za-z0-9_.-]+(?:\/[A-Za-z0-9_.-]+)*\.mjs$/).refine(e=>!e.split("/").some(t=>[".",".."].includes(t))),timeoutSeconds:Z().int().min(1).max(600),checks:pe(N().regex(/^[a-z0-9][a-z0-9-]{0,63}$/)).min(1).max(64).refine(e=>new Set(e).size===e.length)}).strict(),F7={test:B7.optional(),packages:pe(Sce),envVars:pe(Cce).default([]),connectors:pe(O7).default([])};F(F7);const q5=ace(Mce,F({version:fe(1),...F7}).strict()),Ace=F({target:N().min(1),reason:N().min(1),file:N().min(1),quote:N().min(1)}),Oce=["integration","production"],Hs=He(Oce),yc=N().regex(/^[a-z0-9.-]+(?::[0-9]+)?\/[a-z0-9._/-]+@sha256:[a-f0-9]{64}$/),uj=N().regex(/^[a-f0-9]{40}$/),Dce=N().refine(e=>{try{const t=new URL(e);return t.protocol==="https:"&&!t.username&&!t.password&&!t.search&&!t.hash&&t.pathname==="/"&&/(^|[.-])int([.-]|$)/.test(t.hostname)}catch{return!1}},"测试验证地址必须明确指向 int HTTPS 环境"),$ce=F({version:fe(1),runId:N().regex(/^[A-Za-z0-9_-]{1,128}$/),status:fe("passed"),exitCode:fe(0),result:F({version:fe(1),runId:N().regex(/^[A-Za-z0-9_-]{1,128}$/),checks:pe(F({name:N().regex(/^[a-z0-9][a-z0-9-]{0,63}$/),status:fe("passed"),reason:N().max(1024).optional()}).strict()).min(1).max(64)}).strict(),execution:F({image:yc,imageID:N().min(1).max(512),engine:He(["codex","pi"]),podUid:N().min(1).max(512),jobUid:N().min(1).max(512)}).strict()}).strict(),z7=F({status:fe("passed"),fingerprint:N().regex(/^[a-f0-9]{64}$/),checks:pe(N().regex(/^[a-z0-9-]+$/)),endpoint:Dce,verifiedAt:N().refine(e=>Number.isFinite(Date.parse(e))),test:$ce.optional()}).strict(),H7=F({engine:N().min(1),model:N(),effort:N(),size:N().min(1),cpu:Z().positive(),taskConcurrency:Z().int().positive(),minPods:Z().int().nonnegative().safe().optional()}).strict(),U7=F({version:fe(1),environment:fe("integration"),component:fe("persona"),image:yc,commit:uj,baseImage:yc,pipelineCommit:uj,repository:N().regex(/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/),config:H7.optional(),verification:z7.refine(e=>e.checks.includes("persona-smoke")),test:B7.optional()}).strict().refine(e=>{if(!e.test)return e.verification.test===void 0;const t=e.verification.test;return["persona-dialogue","persona-task","persona-custom-test"].every(n=>e.verification.checks.includes(n))&&t!==void 0&&t.execution.image===e.image&&t.runId===t.result.runId&&t.result.checks.length===e.test.checks.length&&new Set(t.result.checks.map(n=>n.name)).size===e.test.checks.length&&t.result.checks.every(n=>e.test.checks.includes(n.name))},"Declared publisher acceptance requires complete candidate runtime evidence");F({version:fe(1),environment:fe("integration"),component:fe("base"),image:yc,commit:uj,verification:z7.refine(e=>e.checks.includes("base-smoke"))}).strict();const jg="-cloud",K5=`codex${jg}`,Eg={standard:"default",fast:"priority"},Lce=`claude${jg}`;function W7(e){return e==="codex"||e===K5}const V7="pi",Bce=`${V7}${jg}`;function q7(e){return e===V7||e===Bce}function xu(e){return typeof e=="string"&&e.length>jg.length&&e.endsWith(jg)}const K7=He([Eg.standard,Eg.fast]),G5=["tiny","small","medium","large","xlarge"],Fce=He(G5),zb="medium",Hb=[.5,1,2],zce=Z().refine(e=>Hb.includes(e),"Unsupported CPU"),dj={tiny:.5,small:1,medium:2,large:2,xlarge:2},G7=F({model:N().optional(),effort:N().optional()}).strict(),Dm=F({personaId:N(),label:N(),model:N().optional(),effort:N().optional(),serviceTier:K7.optional(),public:Ee(),iconKey:N().optional(),tool:N().optional(),size:N().optional(),cpu:Z().finite().optional(),taskConcurrency:Z().int().positive().optional(),minPods:Z().int().nonnegative().safe().optional(),cloudEngine:G7.optional(),createdAt:Z(),updatedAt:Z(),cloud:F({gatewayUrl:N().min(1),personaId:N().min(1),publishedByMe:Ee().optional(),collaboratedByMe:Ee().optional(),label:N().optional(),environment:Hs.optional(),expectedImage:yc.optional(),testReleaseId:N().optional()}).strict().optional()}).strict(),Hce=F({name:N().min(1),description:N().optional()}),Uce=F({id:N().min(1)}),Y7=F({writableRoots:pe(N()).optional(),denyRead:pe(N()).optional(),network:Ee().optional()}).strict(),Wce=F({permissions:F({defaultMode:N().optional(),allow:pe(N()).optional(),deny:pe(N()).optional()}).optional(),sandbox:F({enabled:Ee().optional(),autoAllowBashIfSandboxed:Ee().optional(),allowUnsandboxedCommands:Ee().optional(),excludedCommands:pe(N()).optional(),filesystem:F({denyRead:pe(N()).optional(),allowRead:pe(N()).optional(),denyWrite:pe(N()).optional(),allowWrite:pe(N()).optional()}).optional(),network:F({allowedDomains:pe(N()).optional(),allowLocalBinding:Ee().optional()}).optional()}).optional()});Dm.extend({personality:N().optional(),personalityLocal:N().optional(),personalityManaged:Ee().optional(),skills:pe(Hce).optional(),plugins:pe(Uce).optional(),sandboxSettings:Wce.nullable().optional(),codexSandbox:Y7.nullable().optional()});F({slug:N().regex(/^[a-z0-9]+(-[a-z0-9]+)*$/).max(32),label:N().min(1),personality:N(),model:N().optional(),effort:N().optional(),serviceTier:Dm.shape.serviceTier,tool:N().optional(),public:Ee().optional(),iconKey:N().optional()}).strict();F({personaId:N().min(1)});F({personaId:N().min(1),patch:F({label:N().min(1).optional(),model:N().optional(),effort:N().optional(),serviceTier:Dm.shape.serviceTier,tool:N().optional(),size:Fce.optional(),cpu:zce.optional(),taskConcurrency:Dm.shape.taskConcurrency,minPods:Dm.shape.minPods,cloudEngine:G7.optional(),personality:N().optional(),personalityLocal:N().optional(),public:Ee().optional(),iconKey:N().nullable().optional(),codexSandbox:Y7.optional()}).strict()}).strict();F({version:fe(1),manifest:q5}).strict();const Vce=["hard","soft"],X7=He(Vce),qce=He(["scanning","done","failed"]),Z7=F({id:N().min(1),manifest:q5,scanSessionId:N().optional(),status:qce,evidence:pe(Ace).default([]),notes:pe(N()).default([]),head:N().min(1).optional(),baseKind:X7.default("hard"),base:N().min(1).optional(),startedAt:Z(),finishedAt:Z().optional(),error:N().optional()}).strict(),Y5=F({id:N().min(1).optional(),environment:Hs.optional(),legacy:Ee().optional(),head:N().min(1),contentHead:N().min(1),scanId:N().min(1),at:Z(),pushed:Ee().optional(),runId:Z().int().positive().optional(),runAttempt:Z().int().positive().optional(),artifactId:Z().int().positive().optional(),verified:U7.optional(),config:H7.optional(),reconfigOf:N().min(1).optional(),workflowVersion:Z().int().positive().optional(),confirmation:F({fingerprint:N().regex(/^[a-f0-9]{64}$/),runId:Z().int().positive(),runAttempt:Z().int().positive(),at:Z()}).strict().optional()}).strict(),Kce=["prepared","main-pushed","dispatching","dispatched","completed","failed"],X5=F({id:N().min(1),releaseId:N().min(1),at:Z(),verified:U7.optional(),phase:He(Kce),expectedMain:N().optional(),runId:Z().int().positive().optional(),runAttempt:Z().int().positive().optional(),error:N().optional()}).strict(),kA=F({channelId:N().min(1),updatedAt:Z()}).strict(),Z5=F({integration:kA.nullable().optional(),production:kA.nullable().optional()}).strict();F({version:fe(4),engineChannels:Z5.optional(),scans:pe(Z7),releases:pe(Y5),promotions:pe(X5).default([])}).strict();const Gce=F({url:N().min(1),branch:N().min(1),head:N().min(1),dirty:Ee(),ahead:Z()}).strict(),ky=F({env:N().min(1),setAt:Z().optional()}).strict(),CA={baseUrl:"CLAWD_ENGINE_BASE_URL",apiKey:"CLAWD_ENGINE_API_KEY"},Yce="模型订阅只写进去一半——重填或改回平台默认";function Ub(e){if(!e)return;const t=r=>e.some(s=>s.env===r&&s.setAt!==void 0),n=[CA.baseUrl,CA.apiKey].filter(t).length;return n===2?"own":n===0?"platform":"partial"}function Xce(e){const t=e.trim();let n;try{n=new URL(t)}catch{throw new Error("订阅地址要以 http:// 或 https:// 开头,形如 https://cpa.example.com")}if(n.protocol!=="http:"&&n.protocol!=="https:"||!n.hostname)throw new Error("订阅地址要以 http:// 或 https:// 开头,形如 https://cpa.example.com");const r=`${n.origin}${n.pathname}`.replace(/\/+$/,"");return r.endsWith("/v1")?r:`${r}/v1`}const Zce=["pending","running","done","failed","waiting","skipped"],Qce=He(Zce),wo="verify",$m=["build","smoke","deploy",wo],Jce=He($m),eue=F({key:Jce,status:Qce,url:N().optional(),jobId:Z().optional(),startedAt:Z().optional(),completedAt:Z().optional(),cliWarnings:pe(N()).optional()}).strict(),Cy=F({runId:Z(),headSha:N().min(1),status:He(["queued","running","completed"]),htmlUrl:N().min(1),jobs:pe(eue),environment:Hs.optional(),branch:N().optional(),event:N().optional(),runAttempt:Z().int().positive().optional(),conclusion:He(["success","failure"]).optional(),promotionId:N().optional()}).strict();function Q7(e,t){return t&&e.head===t.head?t.contentHead:e.head}function Tw(e,t,n){return!e||!t||e.status!=="done"?!1:e.head===Q7(t,n)&&!t.dirty}function Q5(e,t,n){return!e||!t||e.status!=="done"||!e.head?!1:e.head!==Q7(t,n)}function NA(e,t,n){return Tw(e,t,n)||Q5(e,t,n)}function tue(e,t){return!t||!e.head?!1:t.contentHead===e.head||t.at>=e.startedAt}const J7=["codex","pi","claude"];function ml(e){return J7.includes(e||"claude")}const eH={codex:"0.163.0",pi:"1.3.0",claude:"0.3.304"},nue="2.1.304";function rue(e,t){if(!e||!ml(e)||!t)return null;const n=e==="claude"?nue:eH[e];return n===t?null:{tool:e,cloud:n,local:t}}function tH(e){const t=e.tool||"claude",n=t==="claude"?e.cloudEngine??{}:e;return{tool:t,model:n.model??"",effort:n.effort??""}}const Ek=F({runId:Z(),status:Cy.shape.status,conclusion:He(["success","failure"]).optional(),htmlUrl:N().min(1)}).strict(),sue=F({desired:Z().int().nonnegative().safe(),ready:Z().int().nonnegative().safe(),bound:Z().int().nonnegative().safe(),starting:Z().int().nonnegative().safe(),retiring:Z().int().nonnegative().safe(),observedAt:Z(),error:N().nullable()}).strict(),jA=F({online:Ee().optional(),image:yc.optional(),minPods:Z().int().nonnegative().safe().optional(),reservation:sue.nullable().optional(),reservationError:N().optional()}).strict(),nH=F({personaId:N().min(1),engineChannels:Z5.optional(),github:yce.optional(),publisherFeishuAuth:F({integration:F({connected:Ee(),authUrl:N().optional(),error:N().optional()}).strict(),production:F({connected:Ee(),authUrl:N().optional(),error:N().optional()}).strict()}).strict().optional(),repo:Gce.optional(),scans:pe(Z7).default([]),releases:pe(Y5).default([]),promotions:pe(X5).optional(),targets:F({integration:jA.extend({run:Cy.optional(),secrets:pe(ky).optional(),unpublish:Ek.optional()}).optional(),production:jA.extend({run:Cy.optional(),secrets:pe(ky).optional(),unpublish:Ek.optional()}).optional()}).strict().optional(),secrets:pe(ky).optional(),run:Cy.optional(),online:Ee().optional(),unpublish:Ek.optional(),historyError:N().optional()}).strict();F({before:Z().nullable()}).strict();nH.pick({personaId:!0,github:!0,repo:!0,scans:!0,releases:!0,promotions:!0,engineChannels:!0,historyError:!0});nH.pick({scans:!0});F({environment:Hs,secrets:pe(ky).optional(),engineChannels:Z5.optional()}).strict();const iue=e=>e.includes("minPods")?3:2,Ig=1,oue=["engine","model","effort","size","cpu","taskConcurrency","minPods"];function aue(e){const{tool:t,model:n,effort:r}=tH(e),s=(e.size??"").trim()||zb,i=e.cpu??dj[s]??dj[zb];return{engine:t,model:n.trim(),effort:r.trim(),size:s,cpu:i,taskConcurrency:e.taskConcurrency??Ig,minPods:e.minPods??0}}function rH(e,t){return!e||!t?null:oue.filter(n=>n==="minPods"?(e.minPods??0)!==(t.minPods??0):e[n]!==t[n])}F({sha:N().min(1),actionsUrl:N().min(1),releaseId:N().optional()}).strict();const Ic=F({personaId:N().min(1)}).strict(),lue=He(["owner","editor","admin"]),sH=F({displayName:N(),mine:Ee(),acquiredAt:N(),expiresAt:N()}).strict(),cue=He(["invited","active"]),uue=F({unionId:N(),displayName:N(),githubLogin:N().nullable(),createdAt:N(),repoAccess:cue.optional()}).strict(),due=F({role:lue,collaborators:pe(uue),lock:sH.nullable(),lockRequired:Ee()}).strict();due.extend({production:F({ok:Ee(),reason:N().optional()}).strict()}).strict();Ic.extend({deviceId:N().min(1)}).strict();Ic.extend({unionId:N().min(1)}).strict();Ic.extend({action:He(["acquire","renew","release"])}).strict();F({required:Ee(),lock:sH.nullable()}).strict();F({personaId:N().min(1)}).strict();Ic.extend({releaseHead:N().min(1).optional(),releaseId:N().min(1).optional(),environment:Hs.optional()}).strict();Ic.extend({scanBase:X7.optional()}).strict();Ic.extend({scanId:N().min(1)}).strict();Ic.extend({releaseId:N().min(1)}).strict();Ic.extend({environment:Hs.default("production")}).strict();F({confirmation:Y5.shape.confirmation.unwrap()}).strict();F({promotion:X5}).strict();F({personaId:N().min(1),expectedImage:yc}).strict();F({personaId:N().min(1),scanId:N().min(1),patch:F({manifest:q5.optional(),connector:O7.optional()}).strict()}).strict();F({personaId:N().min(1),environment:Hs.default("production"),scanId:N().min(1),name:N().min(1),values:Qi(N(),N())}).strict();F({personaId:N().min(1),environment:Hs.default("production"),channelId:N().min(1).optional(),auth:F({baseUrl:N(),apiKey:N()}).strict().nullable().optional()}).strict().refine(e=>e.channelId!==void 0||e.auth!==void 0,{message:"Either channelId or auth must be provided"});F({personaId:N().min(1),environment:Hs.default("production"),releaseId:N().optional(),jobId:Z()}).strict();const hue="底座已更新,重试仍会用旧底座构建——请重新发布测试环境";F({personaId:N().min(1),kind:He(["package","env","connector"]),item:Qi(N(),Ja()),evidence:F({reason:N().min(1),file:N().min(1),quote:N().min(1)})}).strict();F({personaId:N().min(1),notes:pe(N()).default([])}).strict();const iH="ottin4ttc";function Vh(e){return e.trim().replace(/^git@[^:]+:/,"").replace(/^https?:\/\/[^/]+\//,"").replace(/\.git$/,"")}F({environment:Hs.default("production")}).strict();const fue="LOGIN_EXPIRED",pue=F({deviceId:N().min(1),name:N().min(1),url:N().min(1)});F({type:fe("device:list:ok"),devices:pe(pue)});F({deviceId:N().min(1),url:N().min(1).optional(),name:N().optional()});F({type:fe("device:connect:ok"),deviceId:N(),name:N(),url:N()});const oH=F({ownerId:N().min(1),provider:N().min(1),displayName:N().min(1),avatarUrl:N().optional(),unionId:N().optional()});F({type:fe("auth:login:start:ok"),environment:Hs.optional(),authUrl:N().min(1),state:N().min(1)});F({type:fe("auth:getIdentity:ok"),identity:oH.nullable(),deviceId:N().min(1)});F({type:fe("auth:logout:ok")});const aH=N().nullable();F({type:fe("auth:apiKey:get:ok"),apiKey:N().nullable(),createdAt:N().nullable(),gatewayUrl:aH});F({type:fe("auth:apiKey:regenerate:ok"),apiKey:N().min(1),createdAt:N().min(1),gatewayUrl:aH});F({type:fe("auth:apiKey:revoke:ok"),revoked:Ee()});F({type:fe("auth:login:done"),environment:Hs.optional(),identity:oH});F({type:fe("auth:login:failed"),environment:Hs.optional(),reason:N()});F({deviceId:N().min(1),remoteAccessAllowed:Ee()}).strict();F({type:fe("contact:setRemoteAccess:ok"),deviceId:N().min(1),remoteAccessAllowed:Ee()}).strict();F({type:fe("contact:remote-access-updated"),deviceId:N().min(1),remoteAccessAllowed:Ee()}).strict();F({personaId:N().min(1)}).strict();const mue=["connected","missing","reauth"],gue=["link","fill"],xue=F({name:H5,id:N().min(1),kind:He(M7),runner:He(P7),auth:He(U5),status:He(mue),action:He(gue),authUrl:N().optional(),note:N().optional(),fields:pe(Iw)}).strict();F({connectors:pe(xue)}).strict();F({personaId:N().min(1),name:H5,values:Qi(Iw,N().min(1))}).strict();const vue=F({deviceId:N().min(1),ownerId:N().min(1),provider:N().min(1),displayName:N(),remoteUrl:N().min(1),connectToken:N(),grants:pe(z5),addedAt:Z().int().nonnegative(),pinnedAt:Z().int().nullable().default(null),remoteAccessAllowed:Ee().default(!1),note:N().default("")}).strict(),lH=vue;F({deviceId:N().min(1)}).strict();F({type:fe("contact:remove:ok"),deviceId:N().min(1)}).strict();F({type:fe("contact:list:ok"),contacts:pe(lH)}).strict();F({type:fe("contact:added"),contact:lH}).strict();F({type:fe("contact:removed"),deviceId:N().min(1)}).strict();F({deviceId:N().min(1),pinned:Ee()}).strict();F({deviceId:N().min(1),note:N()}).strict();F({type:fe("contact:setNote:ok"),deviceId:N().min(1),note:N()}).strict();F({type:fe("contact:pin:ok"),deviceId:N().min(1),pinnedAt:Z().int().nullable()}).strict();F({type:fe("contact:pinned"),deviceId:N().min(1),pinnedAt:Z().int().nullable()}).strict();const cH=8,yue=["submitted","working","input_required","completed","failed","canceled","rejected"],J5=He(yue),bue=/^[A-Za-z0-9_.-]{1,128}$/,Ik=/^[a-z0-9-]{1,128}$/;function wue(e){if(e.startsWith("cloud:")){const s=e.slice(6);return Ik.test(s)?{kind:"cloud",personaId:s}:null}const t=e.indexOf("@");if(t<0)return Ik.test(e)?{kind:"here",personaId:e}:null;const n=e.slice(0,t),r=e.slice(t+1);return Ik.test(n)&&bue.test(r)?{kind:"device",personaId:n,deviceId:r}:null}const _ue=F({target:N().refine(e=>wue(e)!==null,{message:"target must be <personaId>, <personaId>@<deviceId> or cloud:<personaId>"}),text:N().min(1),brief:N().optional(),contextId:N().min(1).optional(),taskId:N().min(1).optional(),sessionLabel:N().min(1).max(60).optional(),model:N().min(1).optional(),tool:N().min(1).optional(),meta:Qi(Ja()).optional()}).refine(e=>!(e.contextId&&e.taskId),{message:"contextId (new round) and taskId (answer) are mutually exclusive"}).refine(e=>!((e.contextId||e.taskId)&&(e.model||e.tool)),{message:"a follow-up cannot change engine or model (contextId / taskId exclude model / tool); start a new line instead"});F({calls:pe(_ue).min(1).max(cH),sessionId:N().min(1).optional()});const Sue=6e4;F({taskIds:pe(N().min(1)).min(1).max(cH),timeoutMs:Z().int().min(0).max(Sue)});F({taskId:N().min(1),text:N().trim().min(1)});F({taskId:N().min(1)});F({contextId:N().min(1).optional(),state:J5.optional(),sessionId:N().min(1).optional(),relatedSessionId:N().min(1).optional()});F({contextId:N().min(1),state:He(["completed","failed","input_required"]),text:N(),brief:N().optional(),filePaths:pe(N().min(1)).optional()});const eT=F({taskId:N().min(1),contextId:N().min(1),round:Z().int().positive(),state:J5,stale:Ee(),reason:N().nullable(),depth:Z().int().min(0),tenant:N(),targetPersonaId:N(),targetDeviceId:N().nullable(),initiator:F({host:N(),personaId:N(),sessionRef:N().nullable()}),executorSessionRef:N().nullable(),executorThreadId:N().nullable(),workerSessionId:N().optional(),sessionLabel:N().optional(),taskText:N(),brief:N().nullable(),resultText:N().nullable(),filePaths:pe(N()),line:Qi(Ja()),deliveredAt:N().nullable(),createdAt:N(),updatedAt:N(),finishedAt:N().nullable()}),kue=zs("ok",[F({ok:fe(!0),task:eT}),F({ok:fe(!1),error:F({code:N(),message:N()})})]);F({results:pe(kue)});F({tasks:pe(eT)});F({tasks:pe(eT),done:Ee()});const Cue=/^[a-z0-9][a-z0-9-]*$/;He(["stopped","starting","running","crashed","invalid"]);const Nue=new Set(["localhost","127.0.0.1"]);function jue(e){let t;try{t=new URL(e)}catch{return!1}return!!(t.protocol==="https:"||t.protocol==="http:"&&Nue.has(t.hostname))}const a0=F({id:N().regex(Cue),name:N().min(1),version:N().min(1),apiVersion:fe("1"),runtime:F({startCommand:N().min(1)}).passthrough().optional(),entry:F({url:N().url().refine(jue,{message:"INVALID_URL_SCHEME: only https or http://localhost is allowed"})}).strict().optional()}).passthrough().superRefine((e,t)=>{var s;const n=!!e.runtime,r=!!((s=e.entry)!=null&&s.url);n&&r&&t.addIssue({code:Se.custom,message:"INVALID_MANIFEST: entry.url and runtime cannot coexist"}),!n&&!r&&t.addIssue({code:Se.custom,message:"INVALID_MANIFEST: must have either entry.url or runtime"})}),Eue=zs("kind",[F({kind:fe("local"),port:Z().int().min(1).max(65535)}),F({kind:fe("hosted"),url:N().url()})]);zs("state",[F({extId:N(),manifest:a0,state:fe("stopped")}),F({extId:N(),manifest:a0,state:fe("starting")}),F({extId:N(),manifest:a0,state:fe("running"),target:Eue}),F({extId:N(),manifest:a0,state:fe("crashed")}),F({extId:N(),manifest:Ja().nullable(),state:fe("invalid"),invalidReason:N().min(1)})]);F({snapshotHash:N().min(1),version:N().min(1),publishedAt:Z()});const Iue=zs("kind",[F({kind:fe("p2p-tunnel"),ownerPrincipalId:N().min(1),extId:N().min(1)})]);zs("kind",[F({kind:fe("p2p-tunnel"),ownerPrincipalId:N().min(1),extId:N().min(1),snapshotHash:N().min(1)})]);F({extId:N().min(1),name:N().min(1),version:N().min(1),contentHash:N().min(1),publishedAt:Z()});const Tue=zs("kind",[F({kind:fe("clean")}),F({kind:fe("ready-new-version"),fromVersion:N().min(1),toVersion:N().min(1)}),F({kind:fe("error-same-hash"),version:N().min(1)}),F({kind:fe("error-version-not-bumped"),localVersion:N().min(1),publishedVersion:N().min(1)}),F({kind:fe("error-version-regression"),localVersion:N().min(1),publishedVersion:N().min(1)})]);function Rue(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619)>>>0;return(t>>>0).toString(16).padStart(8,"0")}function tT(e,t){return`${e}-${Rue(t)}`}function nT(e){if(typeof e!="string")return{ok:!1,reason:"version must be a string"};const t=e.split(".");if(t.length!==3)return{ok:!1,reason:`"${e}" — only MAJOR.MINOR.PATCH allowed`};for(const n of t)if(!/^\d+$/.test(n))return{ok:!1,reason:`"${e}" — only numeric segments allowed`};return{ok:!0}}function uH(e,t){const n=EA(e),r=EA(t);for(let s=0;s<3;s++){if(n[s]<r[s])return-1;if(n[s]>r[s])return 1}return 0}function EA(e){const t=nT(e);if(!t.ok)throw new Error(t.reason);const[n,r,s]=e.split(".").map(i=>parseInt(i,10));return[n,r,s]}F({localManifest:F({name:N().min(1),version:N().min(1),contentHash:N().min(1)}),publishState:zs("kind",[F({kind:fe("unpublished")}),F({kind:fe("published"),version:N().min(1),contentHash:N().min(1),publishedAt:Z()})]),check:Tue});F({extId:N().min(1),newVersion:N().min(1).nullish()});F({extId:N().min(1)});F({extId:N().min(1),snapshotHash:N().min(1)});F({channelRef:Iue,snapshotHash:N().min(1),zipBase64:N().min(1)});F({id:N().min(1),peerDeviceId:N().min(1),senderDeviceId:N().min(1),text:N().min(1),createdAt:Z().int().nonnegative(),readBy:Qi(N().min(1),Z().int().positive()).default({}),origin:F({kind:fe("persona"),personaId:N().min(1)}).optional()}).strict();F({peerDeviceId:N().min(1).optional(),id:N().min(1),text:N().min(1),createdAt:Z().int().nonnegative(),origin:F({kind:fe("persona"),personaId:N().min(1)}).optional()}).strict();F({peerDeviceId:N().min(1),sinceCreatedAt:Z().int().nonnegative().optional()}).strict();F({peerDeviceId:N().min(1),upToCreatedAt:Z().int().nonnegative()}).strict();F({peerDeviceId:N().min(1).optional(),text:N().min(1)});F({peerDeviceId:N().min(1).optional(),command:N().min(1),timeoutMs:Z().int().positive().optional()}).strict();F({type:fe("peerExec:run:ok"),stdout:N(),stderr:N(),exitCode:Z().int().nullable(),timedOut:Ee(),stdoutTruncated:Ee(),stderrTruncated:Ee()}).strict();const dH=zs("kind",[F({kind:fe("at"),at:N().min(1)}),F({kind:fe("every"),everyMs:Z().int().positive(),anchorMs:Z().int().nonnegative().optional()}),F({kind:fe("cron"),expr:N().min(1),tz:N().min(1).optional()})]),gx=N().trim().min(1);F({personaId:gx,name:N().min(1),schedule:dH,prompt:N().min(1),targetPersona:N().min(1).optional(),timeoutMs:Z().int().positive().optional()});F({personaId:gx,onlyMine:Ee().optional()});F({personaId:gx,shiftId:N().min(1)});const Mue=F({name:N().min(1).optional(),schedule:dH.optional(),prompt:N().min(1).optional(),targetPersona:N().min(1).optional(),timeoutMs:Z().int().positive().optional(),enabled:Ee().optional()});F({personaId:gx,shiftId:N().min(1),patch:Mue});F({personaId:gx,shiftId:N().min(1),limit:Z().int().positive().optional()});const Hi="persona-master",rT=F({personaId:N().min(1),deviceId:N().min(1).optional()}),hH=F({id:N().min(1),name:N().min(1),memberPersonas:pe(rT),memberContactDeviceIds:pe(N().min(1)),createdAt:N().min(1),updatedAt:N().min(1)}),fH=N().trim().min(1);F({name:fH,memberPersonas:pe(rT).default([]),memberContactDeviceIds:pe(N().min(1)).default([])});F({channelId:N().min(1),name:fH.optional(),memberPersonas:pe(rT).optional(),memberContactDeviceIds:pe(N().min(1)).optional()});F({channelId:N().min(1)});F({channels:pe(hH)});F({channel:hH});F({ok:fe(!0),removedTopics:Z().int().min(0)});const dr=N().trim().min(1),sT=["master-confirmed","owner-needed"],iT=["open","resolved"],Pue=sT[0],pH=sT[1],mH=iT[0],Aue=iT[1],Oue=He(sT),Due=He(iT),$ue=F({id:dr.optional(),resolves:dr.optional(),type:Oue,status:Due,question:dr,recommendation:dr}).superRefine((e,t)=>{e.type===Pue&&e.status!==Aue&&t.addIssue({code:Se.custom,path:["status"],message:"master-confirmed decisions must be resolved"})}),Lue=["planning","running","done"],Bue=He(Lue),gH=F({at:N().min(1),actor:N().min(1),action:N().min(1),target:N().optional(),reason:N().min(1),artifacts:pe(dr).optional(),decision:$ue.optional()}),Fue=F({rejectCount:Z().int().min(0),accepted:Ee().default(!1),ordinal:Z().int().min(1).optional(),overrideCount:Z().int().min(0).optional()}),oT=F({id:N().min(1),channelId:N().min(1),title:N(),masterSessionId:N().min(1),goal:N(),boundaries:N(),acceptanceCriteria:pe(N()),activity:pe(gH),lineMeta:Qi(Fue),nextLineOrdinal:Z().int().min(1).optional(),state:Bue,createdAt:N().min(1),updatedAt:N().min(1)}),zue=F({lineId:N().min(1),contextId:N().min(1),taskId:N().min(1),workerSessionId:N().optional(),assignee:N().min(1),focus:N(),status:J5,acceptance:pe(N()),rejectCount:Z().int().min(0),accepted:Ee(),ordinal:Z().int().min(1).nullable()});F({channelId:N().min(1)});F({topicId:N().min(1).optional(),sessionId:N().min(1).optional()}).refine(e=>e.topicId!==void 0||e.sessionId!==void 0,{message:"either topicId or sessionId is required"});F({channelId:N().min(1),title:dr.optional()});F({topicId:N().min(1),title:dr.optional(),goal:dr,boundaries:N(),acceptanceCriteria:pe(dr).min(1)});F({topicId:N().min(1),action:dr,target:dr.optional(),reason:dr,artifacts:pe(dr).optional(),decision:gH.shape.decision});F({topicId:N().min(1),lineId:dr,reason:dr});F({topicId:N().min(1),lineId:dr,reason:dr,artifacts:pe(dr).optional(),watcherVerdict:He(["pass","fail"]),overrideReason:dr.optional()}).refine(e=>e.watcherVerdict!=="fail"||!!e.overrideReason,{message:"watcherVerdict=fail 时必须给 overrideReason(推翻 watcher 的理由)",path:["overrideReason"]});F({topicId:N().min(1),state:He(["done"])});F({topicId:N().min(1),title:dr});F({topicId:N().min(1)});const Hue=oT.extend({lineCount:Z().int().min(0)});F({topics:pe(Hue)});F({topic:oT,lines:pe(zue)});F({topicId:N().min(1),masterSessionId:N().min(1)});F({rejectCount:Z().int().min(1),needsOwnerAttention:Ee()});F({acceptedLines:Z().int().min(1),totalLines:Z().int().min(1),allAccepted:Ee(),overrides:Z().int().min(0),needsOwnerAttention:Ee()});F({topic:oT});F({ok:fe(!0),removedMasterSessionId:N().min(1).nullable(),removedWorkerSessionIds:pe(N().min(1))});const Uue=["ask","allow","deny"],xH=He(Uue),Wue=F({id:N().min(1),desc:N().min(1),action:xH});F({rules:pe(Wue)});F({ruleId:N().min(1)});F({action:xH,desc:N(),source:N().min(1)});const Vue=["created","review-requested"],vH=/^[A-Za-z0-9._-]+$/,Rf=N().min(1).regex(vH),Mf=N().min(1).regex(vH),xx=Z().int().positive();F({role:He(Vue)});F({owner:Rf,repo:Mf,number:xx});F({owner:Rf,repo:Mf,number:xx,expectedHeadSha:N().min(1)});F({owner:Rf,repo:Mf,number:xx,body:N().min(1)});F({owner:Rf,repo:Mf,number:xx,ready:Ee()});F({owner:Rf,repo:Mf});F({owner:Rf,repo:Mf,number:xx,reviewers:pe(N().min(1)).min(1)});F({page:Z().int().min(1).max(1e3).optional(),search:N().max(100).optional()});F({personaId:N().min(1)});F({personaId:N().min(1)});const que=["expired","cancelled","access_denied","lark_protocol_error","cloud_unreachable","internal_error"],Kue=He(que);F({personaId:N().min(1),appId:N().min(1),appSecret:N().min(1),botName:N().min(1).optional()});const Gue=F({chatId:N().min(1),chatName:N().optional(),lastActiveAt:Z().int().optional()}),Yue=F({state:He(["unbound","provisioning","bound","broken"]),appId:N().optional(),botName:N().optional(),brokenReason:N().optional(),qrUrl:N().optional(),provisionId:N().optional(),errorReason:Kue.optional(),groups:pe(Gue),needsUpgrade:Ee().optional(),upgradeQrUrl:N().optional()});Yue.extend({personaId:N().min(1)});F({});F({onboardingCompletedAt:Z()});const qh=["claude","codex","pi"];F({});F({tools:pe(F({id:He(qh),available:Ee(),version:N().optional(),path:N().optional()}))});F({});const Xue=F({tool:He(qh),cwd:N(),toolSessionId:N(),label:N().optional(),createdAt:N(),updatedAt:N(),turns:Z()});F({candidates:pe(Xue)});F({});F({registered:Ee()});const Zue=F({kind:He(["rpc","file"]),ref:N().min(1).max(300)});F({question:N().min(1).max(500),status:He(["unanswered","answered_unverified"]),answer:N().max(4e3).optional(),resolvedBy:He(["rpc","source"]).optional(),evidence:pe(Zue).max(20).optional(),docsChecked:pe(N().max(200)).max(20).optional(),unansweredReason:He(["no_source_access","user_declined","not_found"]).optional()}).superRefine((e,t)=>{var n;e.status==="answered_unverified"?(e.answer||t.addIssue({code:"custom",path:["answer"],message:"answered_unverified 需要 answer"}),e.resolvedBy||t.addIssue({code:"custom",path:["resolvedBy"],message:"answered_unverified 需要 resolvedBy"}),(n=e.evidence)!=null&&n.length||t.addIssue({code:"custom",path:["evidence"],message:"answered_unverified 需要至少一项 evidence"})):e.unansweredReason||t.addIssue({code:"custom",path:["unansweredReason"],message:"unanswered 需要 unansweredReason"})});F({id:N()});F({tool:He(qh)});const IA=F({usedPercent:Z(),windowDurationMins:Z().optional(),resetsAt:Z().optional()}).strict(),Que=zs("kind",[F({kind:fe("claude"),loggedIn:Ee(),authMethod:N().optional(),apiProvider:N().optional(),apiKeySource:N().optional(),email:N().optional(),orgName:N().optional(),subscriptionType:N().optional()}).strict(),F({kind:fe("codex"),login:zs("type",[F({type:fe("none")}).strict(),F({type:fe("apiKey")}).strict(),F({type:fe("chatgpt"),email:N(),planType:N()}).strict()]),provider:F({name:N(),baseUrl:N().optional()}).strict(),rateLimits:F({primary:IA.optional(),secondary:IA.optional()}).strict().optional()}).strict(),F({kind:fe("pi"),providers:pe(F({id:N(),modelCount:Z(),credential:He(["api_key","oauth"]).optional(),oauthExpiresAt:Z().optional()}).strict())}).strict()]);F({tool:He(qh),installed:Ee(),version:N().optional(),path:N().optional(),account:Que.optional(),error:N().optional(),modelsLoadedAt:Z().optional()}).strict();const aT="https://cpa-portal-d417.app.clawos.chat";F({apiKey:N().min(1)}).strict();F({ok:fe(!0)}).strict();const yH=["cloud-persona-metrics","cloud-persona-conversations","cloud-persona-schedules"],Jue=He(yH);F({page:Jue}).strict();F({url:N(),expiresAt:Z().int()}).strict();const bH=["ready","session:info","session:status","session:event","session:deleted","session:rewound","session:cleared","session:queue","permission:request","session:question","session:question:cleared","pong","error","subscribed","unsubscribed","auth:ok","tunnel:ready","tunnel:exited","tunnel:unavailable","session:control","session:pty","contact:added","contact:pinned","contact:removed","contact:remote-access-updated","contact:note-updated","org-mesh:progress","channel:changed","inbox:event","friend:reverseTokenOffered","auth:login:done","auth:login:failed","larkBot:state"],ede="cloud_history_refresh",lT=["idle","running","running-idle","stopped","error","observing"],tde=["task-notification","slash-command","local-command","system-reminder","skill-hint","meta-text","attachment-skills","attachment-deferred-tools","a2a-task","a2a-result","dispatch-task","dispatch-result"],nde=["a2a-task","a2a-result","dispatch-task","dispatch-result"];function Rw(e){return nde.includes(e??"")}function rde(e,t){return`${t?"dispatch":"a2a"}-${e}`}const sde=["builtin","global","project","plugin"],ide=["builtin","global","project","policy","plugin"],wH=He(["owner","guest"]);F({id:N().min(1),kind:wH,displayName:N(),feishuUnionId:N().optional()}).strict();const ode=F({did:N().min(1),displayName:N(),feishuUnionId:N().optional(),principal:wH}).strict(),ade=He(lT),lde=F({inputTokens:Z().int().nonnegative(),outputTokens:Z().int().nonnegative(),cacheReadTokens:Z().int().nonnegative().optional(),cacheCreateTokens:Z().int().nonnegative().optional()}),_H={gitBranch:N().optional(),resolvedModel:N().optional(),resolvedEffort:N().optional(),contextUsage:lde.optional(),contextWindowSize:Z().int().positive().optional(),aiLabel:N().optional()},cde=F(_H),SH=F({value:N(),label:N(),description:N().optional()}),ude=F({id:N().min(1),label:N().min(1),description:N().optional(),contextWindowSize:Z().int().positive().optional(),default:Ee().optional(),efforts:pe(SH).optional(),defaultEffort:N().optional(),group:N().optional()}),dde=F({id:N().min(1),label:N().min(1),description:N().optional()}),hde=F({name:N().min(1),type:He(["string","select","toggle"]),label:N().min(1),description:N().optional(),options:pe(SH).optional(),default:Ja().optional(),scope:He(["core","tool-specific"])});F({tool:N().min(1),refresh:Ee().optional()});const fde=F({rewind:Ee(),subagents:Ee(),tui:Ee(),observe:Ee(),fileSharing:Ee(),fork:Ee()});F({tool:N().min(1),toolSessionIdLabel:N().optional(),models:pe(ude),permissionModes:pe(dde),configSchema:pe(hde),features:fde});const pde=F({tool:N().min(1),pattern:N().min(1),createdAt:N().min(1).optional()});F({cloudEnvironment:Hs.optional(),cloudExpectedImage:yc.optional(),testReleaseId:N().optional(),sessionId:N().min(1),cloudConversationId:N().min(1).optional(),cloudWorkspace:Ew.optional(),cloudPendingTurns:pe(F({id:N().min(1),text:N(),prepared:Ee().optional()})).optional(),cloudBranchIntent:Ng.optional(),cwd:N().min(1),tool:fe("claude").or(N().min(1)).default("claude"),toolSessionId:N().optional(),label:N().optional(),model:N().optional(),permissionMode:N().optional(),effort:N().optional(),serviceTier:N().optional(),..._H,aiLabelGeneratedAt:N().optional(),permissionRules:pe(pde).optional(),pinnedAt:Z().int().nonnegative().nullable().optional(),archivedAt:Z().int().nonnegative().nullable().optional(),pinSortOrder:Z().int().nullable().optional(),unreadAt:N().min(1).nullable().optional(),iconKey:N().optional(),forkedFromSessionId:N().min(1).optional(),ephemeral:Ee().optional(),deployId:N().min(1).optional(),ownerPersonaId:N().min(1).optional(),projectPath:N().min(1).optional(),chatId:N().min(1).optional(),creatorPrincipalId:N().min(1).optional(),creatorDisplayName:N().min(1).optional(),creatorFeishuUnionId:N().min(1).optional(),originOwnerPrincipalId:N().min(1).optional(),originOwnerPersonaId:N().min(1).optional(),dispatchedFromSessionId:N().min(1).optional(),a2aContextId:N().min(1).optional(),shiftFiredFromSessionId:N().min(1).optional(),larkChatId:N().min(1).optional(),larkChatName:N().min(1).optional(),larkChatType:He(["p2p","group"]).optional(),createdAt:N().min(1),updatedAt:N().min(1)});const Es={turnId:N().min(1).optional(),seq:Z().int().nonnegative().optional(),ts:N().optional(),uuid:N().optional()},mde=He(tde),gde=F({readCount:Z().int().nonnegative().optional(),searchCount:Z().int().nonnegative().optional(),bashCount:Z().int().nonnegative().optional(),editFileCount:Z().int().nonnegative().optional(),linesAdded:Z().int().nonnegative().optional(),linesRemoved:Z().int().nonnegative().optional(),otherToolCount:Z().int().nonnegative().optional()}),xde=F({oldStart:Z().int().nonnegative(),oldLines:Z().int().nonnegative(),newStart:Z().int().nonnegative(),newLines:Z().int().nonnegative(),lines:pe(N())}),vde=F({agentId:N().optional(),agentType:N().optional(),status:N().optional(),prompt:N().optional(),filePath:N().optional(),structuredPatch:pe(xde).optional(),stats:F({durationMs:Z().int().nonnegative().optional(),tokens:Z().int().nonnegative().optional(),toolUseCount:Z().int().nonnegative().optional(),toolStats:gde.optional()}).optional()}),yde=F({path:N(),content:N(),mtimeMs:Z().optional()}),bde=F({label:N().min(1),description:N().optional()}),kH=F({question:N().min(1),multiSelect:Ee(),options:pe(bde).min(1)}),wde=["completed","interrupted"];zs("kind",[F({...Es,kind:fe("session_init"),toolSessionId:N().optional()}),F({...Es,kind:fe("thinking"),text:N(),partialId:N().optional()}),F({...Es,kind:fe("text"),text:N(),partialId:N().optional()}),F({...Es,kind:fe("user_text"),text:N(),meta:mde.optional(),taskId:N().optional(),parentToolUseId:N().optional(),sender:ode.optional()}),F({...Es,kind:fe("tool_call"),toolUseId:N(),tool:N(),toolKind:N().optional(),input:Ja()}),F({...Es,kind:fe("tool_result"),toolUseId:N(),output:Ja().optional(),error:N().optional(),toolResultExtra:vde.optional(),sourceToolAssistantUUID:N().optional(),askQuestionAnswers:Qi(N(),N()).optional()}),F({...Es,kind:fe("attachment_memories"),memories:pe(yde)}),F({...Es,kind:fe("permission_request"),requestId:N(),tool:N(),input:Ja(),toolUseId:N().optional()}),F({...Es,kind:fe("ask_user_question"),toolUseId:N(),questions:pe(kH)}),F({...Es,kind:fe("turn_end"),durationMs:Z().int().nonnegative().optional(),reason:He(wde).optional(),turnId:N().min(1).optional()}),F({...Es,kind:fe("subagent_progress"),toolUseId:N(),agentId:N(),status:He(["started","running","completed","failed"]),description:N().optional(),lastToolName:N().optional(),prompt:N().optional(),stats:F({durationMs:Z().int().nonnegative().optional(),tokens:Z().int().nonnegative().optional(),toolUseCount:Z().int().nonnegative().optional()}).optional()}),F({...Es,kind:fe("error"),message:N()}),F({...Es,kind:fe("meta_update"),patch:cde}),F({...Es,kind:fe("meta-text"),text:N(),metaSource:He(["cc","owner"]).optional()})]);F({cwd:N().min(1).optional(),tool:N().optional(),label:N().optional(),aiLabel:N().optional(),model:N().optional(),permissionMode:N().optional(),effort:N().optional(),serviceTier:K7.optional(),iconKey:N().optional(),forkedFromSessionId:N().min(1).optional(),forkAt:oce([F({messageUuid:N().min(1)}).strict(),F({turnId:N().min(1)}).strict()]).optional(),ephemeral:Ee().optional(),ownerPersonaId:N().min(1).optional(),projectPath:N().min(1).optional()}).refine(e=>e.cwd!=null||e.ownerPersonaId!=null||e.projectPath!=null,{message:"cwd / ownerPersonaId / projectPath 至少传一个"});F({path:N().min(1),name:N().min(1),createdAt:N().datetime(),pinnedAt:Z().optional()});F({path:N().min(1),pinnedAt:Z().nullable()});F({path:N().min(1)});F({path:N().min(1).optional(),name:N().min(1).optional()}).refine(e=>e.path!=null||e.name!=null,{message:"path 与 name 至少给一个"});F({cwd:N().min(1),tool:N().min(1),toolSessionId:N().min(1),label:N().optional(),aiLabel:N().optional(),iconKey:N().optional(),createdAt:N().datetime(),updatedAt:N().datetime(),ownerPersonaId:N().min(1).optional()});F({originOnly:Ee().optional(),ownerPersonaId:N().min(1).optional(),limit:Z().int().positive().optional(),offset:Z().int().nonnegative().optional()});F({sessionId:N().min(1)});F({sessionId:N().min(1),patch:F({label:N().optional(),tool:N().min(1).optional(),model:N().optional(),permissionMode:N().optional(),effort:N().optional(),cwd:N().optional(),iconKey:N().optional(),ephemeral:fe(!1).optional()})});F({id:N().min(1),text:N(),queuedAt:Z(),senderDisplayName:N().optional()});F({sessionId:N().min(1),text:N(),queueWhileRunning:Ee().optional()});F({sessionId:N().min(1),id:N().min(1).optional()});F({sessionId:N().min(1),userMessageId:N().min(1),dryRun:Ee().optional()});F({canRewind:Ee(),error:N().optional(),filesChanged:pe(N()).optional(),insertions:Z().int().nonnegative().optional(),deletions:Z().int().nonnegative().optional()});F({sessionId:N().min(1),userMessageId:N().min(1)});const _de=F({oldStart:Z().int().nonnegative(),oldLines:Z().int().nonnegative(),newStart:Z().int().nonnegative(),newLines:Z().int().nonnegative(),lines:pe(N())}),Sde=F({filePath:N().min(1),hunks:pe(_de),insertions:Z().int().nonnegative(),deletions:Z().int().nonnegative(),status:He(["modified","added","deleted"]).optional()});F({canRewind:Ee(),error:N().optional(),files:pe(Sde),totalInsertions:Z().int().nonnegative(),totalDeletions:Z().int().nonnegative()});F({userMessageIds:pe(N())});F({sessionId:N().min(1),toolSessionId:N().min(1)});F({cwd:N().min(1),toolSessionId:N().min(1),messageUuid:N().min(1).optional(),turnId:N().min(1).optional(),sourceSessionId:N().min(1).optional(),targetCwd:N().min(1).optional()}).refine(e=>!!(e.messageUuid||e.turnId),"messageUuid or turnId required");F({forkedToolSessionId:N().min(1),forkedFilePath:N().min(1)});F({sessionId:N().min(1),toolSessionId:N().min(1),jsonlPath:N().optional()});F({sessionId:N().min(1),afterSeq:Z().int().min(-1)});F({sessionId:N().min(1),permissionRequestId:N().min(1),allow:Ee(),permanent:Ee().optional(),pattern:N().optional()});F({projectPath:N().min(1)});F({sessionId:N().min(1),limit:Z().int().positive().max(5e3).optional(),offset:Z().int().nonnegative().optional(),snapshotId:N().uuid().optional(),slim:Ee().optional(),view:He(["turns","items"]).optional(),cursor:N().min(1).max(16384).optional(),turnId:N().min(1).max(256).optional()}).superRefine((e,t)=>{e.view==="items"&&!e.turnId&&t.addIssue({code:Se.custom,path:["turnId"],message:"items requires turnId"}),e.view&&(e.offset!==void 0||e.slim!==void 0)&&t.addIssue({code:Se.custom,message:"native views do not accept offset or slim"}),!e.view&&(e.cursor!==void 0||e.turnId!==void 0)&&t.addIssue({code:Se.custom,message:"cursor and turnId require a native view"}),e.view==="turns"&&e.turnId!==void 0&&t.addIssue({code:Se.custom,path:["turnId"],message:"turns does not accept turnId"}),e.view&&e.limit!==void 0&&e.limit>100&&t.addIssue({code:Se.custom,path:["limit"],message:"native page limit is 100"})});F({cwd:N().min(1),toolSessionId:N().min(1)});F({cwd:N().min(1),toolSessionId:N().min(1),subagentId:N().min(1)});F({cwd:N().min(1).optional(),path:N().optional(),showHidden:Ee().optional()});F({cwd:N().min(1),path:N().min(1)});F({cwd:N().min(1),tool:N().optional()});F({name:N().min(1),source:He(sde),path:N().optional(),description:N().optional(),plugin:N().optional()});const kde=F({name:N().min(1),source:He(ide),path:N().optional(),description:N().optional(),whenToUse:N().optional(),plugin:N().optional()});F({cwd:N().min(1),tool:N().optional()});F({agents:pe(kde)});F({sessionId:N().optional()});F({sessionId:N().min(1).optional()});F({sessionId:N().min(1),pinned:Ee()});F({sessionId:N().min(1),archived:Ee()});F({query:N().min(1),sessionIds:pe(N().min(1)),limit:Z().int().positive().max(50).optional()});const Cde=F({sessionId:N().min(1),snippet:N()});F({type:fe("session:searchContent"),matches:pe(Cde)});F({type:fe("peerSession:upsert:ok")});F({sessionId:N().min(1)});F({type:fe("peerSession:remove:ok")});F({orderedIds:pe(N().min(1)).min(1)});F({cwd:N().min(1)});F({isGitRoot:Ee(),gitRoot:N().nullable()});F({cwd:N().min(1)});F({branch:N().nullable()});F({cwd:N().min(1)});F({branches:pe(N()),head:N().nullable()});const Nde=F({cwd:N().min(1),updatedAt:N().min(1)});F({dirs:pe(Nde)});F({type:fe("session:question"),sessionId:N().min(1),toolUseId:N().min(1),requestId:N().min(1),questions:pe(kH).min(1)});F({type:fe("session:question:cleared"),sessionId:N().min(1),toolUseId:N().min(1),answers:Qi(N(),N()).optional()});F({sessionId:N().min(1),toolUseId:N().min(1),answers:Qi(N(),N())});F({ok:fe(!0)});F({sessionId:N().min(1),toolUseId:N().min(1)});F({ok:fe(!0)});const CH=F({name:N().min(1),version:N().min(1),instanceId:N().min(1),deviceLabel:N().transform(e=>e.trim().slice(0,64)).optional()});F({type:fe("auth"),token:N().min(1),scheme:fe("bearer").optional(),clientInfo:CH.optional()});F({type:fe("auth:ok"),version:N().min(1).optional(),protocolVersion:Z().int().nonnegative().optional()});const jde=F({clientId:N().min(1),connectedAt:Z().int().nonnegative(),self:Ee(),clientInfo:CH.optional()});F({type:fe("device:connections:ok"),connections:pe(jde)});F({type:fe("tunnel:ready"),url:N().min(1),subdomain:N().min(1)});F({type:fe("tunnel:exited"),code:Z().int().nullable(),subdomain:N().nullable(),url:N().nullable()});F({type:fe("tunnel:unavailable"),reason:N().min(1),failedAt:N().min(1)});const Ede=F({sessionId:N().min(1),status:ade,freshSpawn:Ee(),pendingPermissionRequestIds:pe(N().min(1)),pendingQuestionToolUseIds:pe(N().min(1))});F({type:fe("info"),version:N(),protocolVersion:Z(),hostname:N(),os:N(),tools:pe(F({id:N(),available:Ee()})),runningSessions:pe(Ede),tokenRole:He(hce).optional(),isLoopback:Ee().optional(),httpBaseUrl:N().optional(),httpToken:N().optional(),daemonSource:He(["ota","packaged"]).optional(),globalCliVersion:N().nullable().optional()});F({});F({method:N().min(1).optional()});const Ide=["allowed","conditional","denied"],Tde=He(Ide),Rde=F({name:N().min(1),status:Tde,description:N().min(1),args:pe(F({name:N(),required:Ee()})).nullable(),argsSchema:Qi(Ja()).optional(),reason:N().optional()});F({type:fe("meta:methods"),methods:pe(Rde)});const TA=1,Mde=F({usedBytes:Z().int().nonnegative(),sizeBytes:Z().int().positive(),measuredAt:Z().int().nonnegative()}).strict();F({volume:Mde.nullable()}).strict();const RA=25*1024*1024,cT={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".pdf":"application/pdf",".txt":"text/plain",".md":"text/plain",".markdown":"text/plain",".csv":"text/plain",".log":"text/plain",".json":"application/json",".xml":"application/xml",".yaml":"application/yaml",".yml":"application/yaml",".html":"text/html",".conf":"text/plain",".cfg":"text/plain",".ini":"text/plain",".toml":"text/plain"},NH=new Set([...Object.values(cT),"application/x-yaml"]),jH=[...NH,"text/*",...Object.keys(cT)].join(",");function EH(e,t){const n=t.split(";",1)[0].trim().toLowerCase();if(n===""||n==="application/octet-stream"){const r=e.lastIndexOf("."),s=r>0?e.slice(r).toLowerCase():"";return cT[s]??null}return NH.has(n)||n.startsWith("text/")?n:null}const Pde=["daemon","main","renderer"],Ade=He(Pde),Ode=["debug","info","warn","error"],Dde=He(Ode);F({ts:Z().int(),source:Ade,level:Dde,msg:N(),ownerPrincipalId:N(),deviceId:N(),appVersion:N(),daemonVersion:N().optional(),os:N(),meta_json:N().optional(),sessionId:N().optional()});F({v:fe(1),visitorId:N().min(1),displayName:N(),provider:N(),iat:Z(),exp:Z()});const $de=F({visitorId:N(),displayName:N(),avatarUrl:N().optional(),provider:N(),firstSeen:Z(),lastSeen:Z()});F({visitors:pe($de)});F({type:fe("web:open"),url:N().min(1),expiresAt:Z()});F({ticket:N().min(1)}).strict();F({token:N().min(1),expiresAt:Z()});const Lde=/<system-reminder>此消息来自飞书群成员 (.+?)<\/system-reminder>\s*$/,IH=/<system-reminder>此消息来自 (owner|guest):(.+?)<\/system-reminder>\s*$/,Bde="clawd-a2a-task",Fde="clawd-a2a-result",zde="clawd-dispatch-task",Hde="clawd-dispatch-result",Ude=["completed","failed","input_required","canceled","rejected"],MA=120,TH=[{tag:Bde,kind:"task",legacy:!1},{tag:Fde,kind:"result",legacy:!1},{tag:zde,kind:"task",legacy:!0},{tag:Hde,kind:"result",legacy:!0}];function Wde(e){if(!e)return null;let t=null;for(const n of TH){const r=e.search(Jde(n.tag));r>=0&&(t===null||r<t.at)&&(t={at:r,kind:n.kind,legacy:n.legacy})}return t?{kind:t.kind,legacy:t.legacy}:null}function Vde(e){if(!e)return[];const t=[];for(const n of TH){const r=new RegExp(`<${n.tag}\\b([^>]*)>([\\s\\S]*?)</${n.tag}>`,"gi");for(let s=r.exec(e);s!==null;s=r.exec(e))t.push({at:s.index,block:qde(n.kind,n.legacy,s[1]??"",s[2]??"")})}return t.sort((n,r)=>n.at-r.at).map(n=>n.block)}function qde(e,t,n,r){var h;const s=ehe(n),i=hj(Qde(Tk(r,"detail")??r)),o=(h=Tk(r,"brief"))==null?void 0:h.trim(),l=o&&o.length>0?hj(o):Kde(i),c=s.round!==void 0?Number.parseInt(s.round,10):void 0,u=s.status,d=t?u==="success"?"completed":u==="failure"?"failed":void 0:Ude.find(f=>f===u);return{kind:e,contextId:(t?s["dispatch-id"]:s["context-id"])??"",...!t&&s["task-id"]?{taskId:s["task-id"]}:{},...s.from?{from:s.from}:{},...e==="task"&&c!==void 0&&Number.isFinite(c)?{round:c}:{},...e==="result"&&d?{status:d}:{},brief:l,briefIsDerived:!(o&&o.length>0),detail:i,filePaths:Zde(Tk(r,"files")),legacy:t}}function Kde(e){const t=e.split(/\n\s*\n/).map(r=>r.trim()).find(r=>r.length>0);if(!t)return"";const n=t.replace(/\s+/g," ");return n.length>MA?`${n.slice(0,MA)}…`:n}const Gde="clawd-a2a-task|clawd-a2a-result|clawd-dispatch-task|clawd-dispatch-result|brief|detail|files",Yde=new RegExp(`<\\\\(\\\\*)(/?)(${Gde})\\b`,"g");function Xde(e){return hj(e)}function hj(e){return e.replace(Yde,"<$1$2$3")}function Tk(e,t){const n=new RegExp(`<${t}>([\\s\\S]*?)</${t}>`,"i").exec(e);return n?n[1]??"":null}function Zde(e){return e?e.split(`
|
|
96
96
|
`).map(t=>t.trim()).filter(t=>t.startsWith("- ")).map(t=>t.slice(2).trim()).filter(t=>t.length>0):[]}function Qde(e){return e.replace(/^\n/,"").replace(/\n$/,"")}function Jde(e){return new RegExp(`<${e}\\b[^>]*>`,"i")}function ehe(e){const t={},n=/([a-z-]+)="([^"]*)"/gi;for(let r=n.exec(e);r!==null;r=n.exec(e))t[r[1]]=the(r[2]??"");return t}function the(e){return e.replace(/"/g,'"').replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&")}/**
|
|
97
97
|
* @license lucide-react v0.577.0 - ISC
|
|
98
98
|
*
|
|
@@ -939,7 +939,7 @@ ${l.trim()}`:l.trim(),ht=Cq(ut,z);await r.sessionSend(T.current,ht),X({tool:h,mo
|
|
|
939
939
|
@keyframes ob-rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
|
|
940
940
|
.ob-rise { opacity: 0; animation: ob-rise 0.5s cubic-bezier(0.2, 0.7, 0.2, 1) forwards; }
|
|
941
941
|
}
|
|
942
|
-
`;function vst({personas:e,onFinish:t}){const n=e.find(s=>s.personaId===ei),r=e.filter(s=>s.personaId!==ei);return a.jsxs("div",{"data-testid":"onboarding-done-step",className:"flex flex-col items-center text-center pt-10 pb-2",children:[a.jsx("style",{children:xst}),a.jsx("div",{className:"ob-rise text-[11px] tracking-[0.3em] text-text-500 mb-5",children:"初始化完成"}),a.jsxs("h2",{className:"ob-rise text-[26px] font-semibold text-text-100 tracking-tight mb-3",style:{animationDelay:"0.08s"},children:[(n==null?void 0:n.label)??"clawd 管家","随时候命"]}),a.jsxs("p",{className:"ob-rise text-sm text-text-400 max-w-sm leading-relaxed mx-auto",style:{animationDelay:"0.16s"},children:["建 persona、导会话、管配置——",a.jsx("br",{}),"对 clawd 有任何想法,直接跟它说。"]}),a.jsx("button",{type:"button","data-testid":"onboarding-done-finish",onClick:t,className:"ob-rise mt-8 px-8 py-2.5 rounded-lg text-sm bg-accent text-accent-contrast hover:bg-accent-hover transition-colors",style:{animationDelay:"0.24s"},children:"和管家开始"}),r.length>0&&a.jsxs("div",{className:"ob-rise w-full mt-12 pt-5 border-t border-border",style:{animationDelay:"0.4s"},children:[a.jsx("p",{className:"text-[13px] text-text-400 leading-relaxed select-none",children:r.map((s,i)=>a.jsxs("span",{children:[s.label,i<r.length-1&&a.jsx("span",{className:"mx-2 text-text-500",children:"·"})]},s.personaId))}),a.jsx("p",{className:"text-[11px] text-text-500 mt-2",children:"其余分身已就位,之后管家会带你认识它们"})]})]})}function yst({api:e,feishuIdentity:t,feishuError:n,onFeishuLogin:r,personas:s,onFinished:i}){var v;const[o,l]=p.useState(0),c=vte(e),u=nst(e),d=void 0,h=(v=c.probeResult)==null?void 0:v.find(w=>w.id==="codex"),m=["env","login",...c.probeResult===null||(h==null?void 0:h.available)===!0?["pool"]:[],"import","mobile","done"],g=m[o]??"env",x=w=>l(m.indexOf(w)),b=()=>l(w=>Math.min(w+1,m.length-1));p.useEffect(()=>{c.probe()},[]),p.useEffect(()=>{g==="import"&&c.candidates===null&&!c.scanning&&c.scan()},[g]);const y=w=>{if(w==="skip"||!c.candidates){x("mobile");return}const _=w==="all"?c.candidates:wte(c.candidates);if(_.length===0){x("mobile");return}c.importSessions(_)};return a.jsxs(sst,{step:o,steps:m.map(w=>yte[w]),children:[g==="env"&&a.jsx(ust,{probes:c.probeResult,probing:c.probing,probeError:c.probeError,onRecheck:()=>void c.probe(),onNext:b,remoteHosts:d}),g==="login"&&a.jsx(dst,{identity:t,error:n,onLogin:r,onNext:b}),g==="pool"&&a.jsx(pst,{...h!=null&&h.version?{codexVersion:h.version}:{},portalUrl:aT,onConnect:u.connect,connecting:u.connecting,connected:u.connected,error:u.error,onNext:b}),g==="import"&&a.jsx(_te,{candidates:c.candidates,scanError:c.scanError,onRetryScan:()=>void c.scan(),progress:c.importProgress,onChoose:y,onNext:b}),g==="mobile"&&a.jsx(gst,{iosState:c.iosState,onIosInterest:()=>void c.registerIos(),onNext:b}),g==="done"&&a.jsx(vst,{personas:s,onFinish:i})]})}const Ste=p.forwardRef(({className:e,...t},n)=>a.jsx("textarea",{ref:n,className:J("flex min-h-[60px] w-full rounded-md border border-border bg-elevated px-3 py-2 text-sm text-text-100","placeholder:text-text-400","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:border-accent","disabled:cursor-not-allowed disabled:opacity-50 resize-none",e),...t}));Ste.displayName="Textarea";const bst=[{value:"general",label:"普通",hint:"问答、整理、跑流程"},{value:"coding",label:"编码",hint:"在一个代码仓库里开发"}];function wst({open:e,onOpenChange:t,onCreate:n,submitting:r,submitError:s,loadRepos:i,githubLink:o}){const[l,c]=p.useState("general"),[u,d]=p.useState(""),[h,f]=p.useState(!1),[m,g]=p.useState(""),x=p.useRef(null),b=m.trim().length>0&&(l==="general"||u.trim().length>0)&&!r,y=()=>{b&&n(l==="coding"?{kind:l,repo:u.trim(),requirement:m.trim()}:{kind:l,requirement:m.trim()})},v=vi(y,()=>t(!1)),w=async(_,S)=>{try{const k=await i(_,S);return f(!1),k}catch(k){throw k instanceof Error&&k.message.startsWith("UNAUTHORIZED")?(f(!0),new Error("请先关联 GitHub")):k}};return a.jsx(Kr,{open:e,onOpenChange:t,children:a.jsxs(Mr,{className:"max-w-md max-h-[85vh] overflow-y-auto",onOpenAutoFocus:_=>{var S;_.preventDefault(),(S=x.current)==null||S.focus()},children:[a.jsxs(ws,{children:[a.jsx(Pr,{children:"新建 Persona"}),a.jsx(fi,{children:"选类型、说说想要什么样的助手,提交后管家会按标准把它建好。"})]}),a.jsxs("div",{className:"flex flex-col gap-4",children:[a.jsx(S2,{label:"类型",required:!0,group:!0,children:a.jsx("div",{role:"radiogroup",className:"flex gap-2",children:bst.map(_=>a.jsxs("button",{type:"button",role:"radio","aria-checked":l===_.value,"data-testid":`new-persona-kind-${_.value}`,onClick:()=>c(_.value),className:J("flex flex-1 flex-col items-start gap-0.5 rounded-md border px-3 py-2 text-left",l===_.value?"border-accent bg-accent/10 text-accent":"border-bg-300 text-text-300"),children:[a.jsx("span",{className:"text-[13px] font-medium",children:_.label}),a.jsx("span",{className:"text-[11px] text-text-400",children:_.hint})]},_.value))})}),l==="coding"?a.jsx(S2,{label:"仓库",required:!0,group:!0,children:h&&o?a.jsx("div",{"data-testid":"new-persona-github-link",children:o(()=>f(!1))}):a.jsxs(a.Fragment,{children:[a.jsx(yX,{load:w,onPick:_=>d(`${_.owner}/${_.name}`),align:"start",contentClassName:"w-[var(--radix-popover-trigger-width)] p-1.5",trigger:a.jsxs("button",{type:"button","data-testid":"new-persona-repo",className:"flex h-9 w-full items-center gap-2 rounded-md border border-bg-300 bg-transparent px-3 text-left text-[13px]",children:[a.jsx(Wb,{className:"h-4 w-4 shrink-0 text-text-400"}),a.jsx("span",{className:J("flex-1 truncate",u?"text-text-100":"text-text-400"),children:u||"从 GitHub 选择仓库"}),a.jsx(Qt,{className:"h-3.5 w-3.5 shrink-0 text-text-400"})]})}),a.jsx("span",{className:"text-[11px] text-text-400",children:"只绑定一个仓库;其它相关仓库可以写在需求里。"})]})}):null,a.jsx(S2,{label:"需求",required:!0,children:a.jsx(Ste,{ref:x,"data-testid":"new-persona-requirement",value:m,onChange:_=>g(_.target.value),...v,placeholder:"想要一个什么样的助手:帮谁、做什么、有什么不能碰",rows:6})})]}),s?a.jsx("div",{"data-testid":"new-persona-error",className:"rounded-md border border-error bg-error-dim px-3 py-2 text-[12px] text-error",children:s}):null,a.jsxs(ba,{children:[a.jsx($e,{variant:"outline",onClick:()=>t(!1),disabled:r,children:"取消"}),a.jsx($e,{"data-testid":"new-persona-submit",disabled:!b,onClick:y,children:r?"提交中...":"交给管家"})]})]})})}function S2({label:e,required:t,group:n,children:r}){const s=n?"div":"label";return a.jsxs(s,{className:"flex flex-col gap-1.5",children:[a.jsxs("span",{className:"text-[12px] font-medium text-text-200",children:[e,t?a.jsx("span",{className:"ml-0.5 text-error",children:"*"}):null]}),r]})}function kr({label:e,children:t}){return a.jsxs("div",{className:"flex items-center justify-between gap-3",children:[a.jsx("span",{className:"text-text-400 text-sm shrink-0",children:e}),t]})}const _st=[{value:"claude",label:"Claude Code"},{value:"codex",label:"Codex"},{value:"pi",label:"pi"}];function Sst({tool:e,model:t,effort:n,fastMode:r,modelList:s,configSchema:i,isPublic:o,guestShareUrl:l,guestNetwork:c,larkBot:u,onChangeTool:d,onChangeModel:h,onChangeEffort:f,onToggleFastMode:m,onTogglePublic:g,onToggleGuestNetwork:x,onOpenLarkBot:b,onOpenMore:y}){const v=s.models,w=D_(t),_=O_(w,v,i),S=_.options,{value:k,label:C}=cZ(n,_);return a.jsx("div",{className:"px-5 py-4","data-testid":"persona-card-settings",children:a.jsxs("div",{className:"max-w-[480px] space-y-3",children:[a.jsx("div",{className:"text-text-400 text-sm",children:"新建会话默认"}),a.jsx(kr,{label:"引擎",children:a.jsx(Cst,{ariaLabel:"引擎",testid:"persona-card-tool",options:_st,value:e||"claude",onSelect:d})}),a.jsx(kr,{label:"模型",children:a.jsxs("div",{className:"flex items-center gap-2 justify-end",children:[t?null:a.jsx("span",{className:"text-[11px] text-warning","data-testid":"persona-card-model-unset",children:"还没选模型"}),a.jsx(bM,{testid:"persona-card-model",list:s,current:w,align:"end",onSelect:h,trigger:a.jsx(M_,{testid:"persona-card-model",label:yM(v,w),needsAttention:!t})})]})}),S.length>0?a.jsx(kr,{label:"推理强度",children:a.jsx(KX,{testid:"persona-card-effort",label:C,current:k,items:S.map(j=>({value:j.value,label:j.label,description:j.description})),onSelect:f})}):null,e==="codex"?a.jsx(kr,{label:"Fast 模式",children:a.jsx(k2,{testid:"persona-card-fast-toggle",ariaLabel:"Fast 模式",checked:r,onChange:m})}):null,a.jsx(kr,{label:"公开访问",children:a.jsx(k2,{testid:"persona-card-public-toggle",ariaLabel:"公开访问",checked:o,onChange:g})}),e==="pi"?a.jsx(kr,{label:"访客链接",children:a.jsxs("span",{className:"text-xs text-text-400",children:["pi 引擎不支持访客会话(无沙箱)",o?",请关闭公开访问":""]})}):o?a.jsx(kr,{label:"访客链接",children:l?a.jsxs("div",{className:"flex items-center gap-2 min-w-0 justify-end",children:[a.jsx("span",{className:"truncate text-xs text-text-200",title:l,children:l}),a.jsxs("button",{type:"button","data-testid":"persona-card-copy-share",onClick:()=>void navigator.clipboard.writeText(l),className:"flex shrink-0 items-center gap-1 rounded border border-border bg-bg-50 px-2 py-1 text-xs text-text-200 transition-colors hover:bg-text-100/5 hover:text-text-100",children:[a.jsx(Lo,{className:"h-3 w-3"}),"复制"]})]}):a.jsx("span",{className:"text-xs text-text-400",children:"需先开 tunnel"})}):null,e==="codex"?a.jsx(kr,{label:"访客联网",children:a.jsxs("div",{className:"flex items-center gap-2 justify-end",children:[a.jsx(hi,{delayDuration:200,children:a.jsxs(eo,{children:[a.jsx(to,{asChild:!0,children:a.jsx("button",{type:"button","aria-label":"访客联网说明","data-testid":"persona-card-guest-network-info",className:"shrink-0 text-text-400 transition-colors hover:text-text-200",children:a.jsx(Pu,{className:"h-3.5 w-3.5"})})}),a.jsxs(xi,{align:"end",className:"max-w-[260px] leading-relaxed",children:["仅影响",a.jsx("strong",{className:"text-text-100",children:"别人借用"}),"此 persona 时,你自己使用不受限。",a.jsx("br",{}),"开启:访客可访问外网,",a.jsx("code",{children:"git clone"}),"、",a.jsx("code",{children:"npm install"})," 等命令才能运行。",a.jsx("br",{}),"关闭:访客完全断网。",a.jsx("br",{}),"文件访问始终受限——访客只能写此 persona 目录和其专属工作目录。"]})]})}),a.jsx(k2,{testid:"persona-card-guest-network-toggle",ariaLabel:"访客联网",checked:c,onChange:x})]})}):null,a.jsx(kr,{label:"飞书 Bot",children:a.jsxs("div",{className:"flex items-center gap-2 min-w-0 justify-end",children:[(u==null?void 0:u.state)==="bound"&&u.needsUpgrade?a.jsx("span",{className:"shrink-0 h-1.5 w-1.5 rounded-full bg-warning","data-testid":"persona-card-lark-upgrade-dot","aria-label":"bot 权限配置待更新"}):null,a.jsx("span",{className:"truncate text-xs text-text-400",children:kst(u)}),a.jsx("button",{type:"button","data-testid":"persona-card-lark",onClick:b,className:"shrink-0 rounded border border-border bg-bg-50 px-2 py-1 text-xs text-text-200 transition-colors hover:bg-text-100/5 hover:text-text-100",children:(u==null?void 0:u.state)==="bound"?"管理":(u==null?void 0:u.state)==="broken"?"修复":"关联"})]})}),a.jsx(kr,{label:"更多设置",children:a.jsx("button",{type:"button","data-testid":"persona-card-more",onClick:y,className:"shrink-0 rounded border border-border bg-bg-50 px-2 py-1 text-xs text-text-200 transition-colors hover:bg-text-100/5 hover:text-text-100",children:"打开"})})]})})}function kst(e){if(!e)return"加载中…";switch(e.state){case"bound":return e.needsUpgrade?`${e.botName??e.appId??"已关联"}·待更新授权`:`${e.botName??e.appId??"已关联"}·${e.groups.length} 个群`;case"provisioning":return"等待扫码…";case"broken":return e.brokenReason??"凭证失效";default:return"未关联"}}function Cst({ariaLabel:e,testid:t,options:n,value:r,onSelect:s}){return a.jsx("div",{role:"radiogroup","aria-label":e,"data-testid":t,className:"inline-flex items-center rounded-md border border-border bg-bg-50 p-0.5",children:n.map(i=>{const o=i.value===r;return a.jsx("button",{type:"button",role:"radio","aria-checked":o,"data-testid":`${t}-${i.value}`,onClick:()=>{o||s(i.value)},className:J("rounded px-2.5 py-1 text-xs font-medium transition-colors",o?"bg-elevated text-text-100 shadow-sm":"text-text-400 hover:text-text-200"),children:i.label},i.value)})})}function k2({testid:e,ariaLabel:t,checked:n,onChange:r}){return a.jsx("button",{type:"button",role:"switch","aria-checked":n,"aria-label":t,onClick:()=>r(!n),"data-testid":e,className:J("relative inline-flex h-5 w-9 shrink-0 items-center rounded-full transition-colors",n?"bg-success":"bg-bg-300"),children:a.jsx("span",{className:J("inline-block h-4 w-4 rounded-full bg-bg-0 shadow transition-transform",n?"translate-x-[18px]":"translate-x-0.5")})})}function Nst({personaId:e,onOpenMore:t,onOpenLarkBot:n}){var i;const r=nX(e),s=P_(((i=r.persona)==null?void 0:i.tool)??"claude");return r.persona?a.jsx(Sst,{tool:r.persona.tool??"claude",model:r.persona.model??"",effort:r.persona.effort??"",fastMode:r.persona.serviceTier===Eg.fast,modelList:s,configSchema:r.configSchema,isPublic:r.persona.public??!1,guestShareUrl:r.guestShareUrl,guestNetwork:r.guestNetwork,onToggleGuestNetwork:r.toggleGuestNetwork,larkBot:r.larkBot.status,onChangeTool:r.changeTool,onChangeModel:r.changeModel,onChangeEffort:r.changeEffort,onToggleFastMode:r.toggleFastMode,onTogglePublic:r.togglePublic,onOpenLarkBot:n,onOpenMore:t}):null}function jst({cloudPersonaId:e,onTakeover:t}){const[n,r]=p.useState(!1),[s,i]=p.useState(null),[o,l]=p.useState(!1),c=async()=>{r(!0),i(null);try{await t(e),l(!0)}catch(u){i(u instanceof Error?u.message.replace(/^(VALIDATION_ERROR|INTERNAL):\s*/,""):String(u))}finally{r(!1)}};return a.jsxs("div",{className:"space-y-2 px-3 py-3 text-sm","data-testid":"cloud-persona-takeover",children:[a.jsxs("div",{className:"flex items-center justify-between gap-3",children:[a.jsx("span",{className:"text-text-400",children:"你是这个 persona 的协作者,本机还没有它"}),a.jsx($e,{size:"sm",disabled:n||o,onClick:()=>void c(),"data-testid":"cloud-persona-takeover-pull",children:n?a.jsxs(a.Fragment,{children:[a.jsx(nt,{className:"mr-1.5 size-3.5 animate-spin"}),"拉取中"]}):o?"已拉取":"拉取到本机"})]}),o&&a.jsx("div",{className:"text-xs text-text-400",children:"已拉取到本机,列表刷新后在本机 persona 里打开它的「发布到云上」页。"}),s&&a.jsx("div",{className:"text-error","data-testid":"cloud-persona-takeover-error",children:s}),!o&&a.jsx("div",{className:"text-xs text-text-400",children:"需要本机已关联 GitHub,并已接受 owner 发来的仓库邀请。"})]})}function Est({personaId:e}){const t=Vn(),n=tX(t,e,"cloud");return a.jsx(Ist,{bot:n})}function Ist({bot:e}){const[t,n]=p.useState(!1),r=e.status,s=r?r.state==="bound"?`${r.botName??"已关联"}${r.needsUpgrade?" · 待更新授权":""}`:r.state==="broken"?r.brokenReason??"凭证失效":r.state==="provisioning"?"等待扫码…":"未关联":"加载中…";return a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"px-3 py-3","data-testid":"cloud-persona-lark-bot",children:a.jsx(kr,{label:"飞书 Bot",children:a.jsxs("div",{className:"flex items-center gap-2 justify-end min-w-0",children:[a.jsx("span",{className:"truncate text-xs text-text-400",children:s}),a.jsx("button",{type:"button",className:"shrink-0 rounded border border-border bg-bg-50 px-2 py-1 text-xs text-text-200",onClick:()=>n(!0),"data-testid":"cloud-persona-lark-bot-open",children:(r==null?void 0:r.state)==="bound"?"管理":(r==null?void 0:r.state)==="broken"?"修复":"关联"})]})})}),a.jsx(Kr,{open:t,onOpenChange:n,children:a.jsxs(Mr,{className:"max-h-[85vh] overflow-y-auto","aria-describedby":void 0,children:[a.jsx(ws,{children:a.jsx(Pr,{children:"关联飞书 Bot"})}),a.jsx(ZY,{runtime:"cloud",status:e.status,onProvision:e.provision,onCancelProvision:e.cancelProvision,onBindManual:e.bindManual,onUnbind:e.unbind,onUpgrade:e.upgrade})]})})]})}function Tst({state:e}){const t=Oc(e==null?void 0:e.scans);return!(e!=null&&e.repo)||(t==null?void 0:t.status)!=="done"||Tw(t,e.repo,Ea(e.releases))?null:a.jsx("span",{"data-testid":"persona-detail-deploy-status",className:"text-[11px] text-warning",children:"有新改动,可重新上云"})}function Rst({personaId:e,tool:t}){const{state:n}=xM(ml(t)?e:null,{mode:"local"});return a.jsx(Tst,{state:n})}function Mst(e){const t=e.releases??[],n=t.map((d,h)=>({r:d,n:h+1})).reverse(),[r,s]=p.useState(!1),i=mM(t,e.runs,e.online),o=Ea(t),l=d=>d===o||d===i||ZX(d,e.runs),c=r?n:n.filter(({r:d})=>l(d)),u=n.length-c.length;return a.jsxs(Xr,{onOpenChange:e.onOpenChange,children:[a.jsx(Zr,{asChild:!0,children:a.jsx("button",{type:"button","aria-label":"发布历史","data-testid":"persona-detail-deploy-history",className:e.className,children:a.jsx(Qt,{className:"size-3.5"})})}),a.jsxs(Dr,{align:"end",className:"min-w-[300px]",children:[a.jsx("div",{className:"px-2 py-1 text-[11px] text-text-400",children:"发布历史 · 点一条看它的只读页"}),e.releases===void 0&&a.jsxs("div",{className:"inline-flex items-center gap-1.5 px-2 pb-1.5 text-xs text-text-400",children:[a.jsx(nt,{className:"size-3 animate-spin"}),"读取中…"]}),e.releases!==void 0&&c.length===0&&a.jsx("div",{className:"px-2 pb-1.5 text-xs text-text-400",children:"还没发布过"}),c.map(({r:d,n:h})=>a.jsx(It,{onSelect:()=>e.onOpenRelease(gn(d)),children:a.jsxs("span",{className:"inline-flex w-full items-center gap-2 text-xs",children:[a.jsxs("span",{className:"w-6 shrink-0 font-mono text-text-400",children:["#",h]}),a.jsx("span",{className:"shrink-0 tabular-nums text-text-200",children:pf(d.at)}),a.jsx("span",{className:"shrink-0 font-mono text-text-400",children:d.head.slice(0,7)}),d.environment&&a.jsx("span",{className:"shrink-0 text-xs text-text-400",children:d.environment==="integration"?"测试":"线上发布"}),i&&gn(i)===gn(d)&&a.jsx("span",{className:"shrink-0 rounded-full bg-success-dim px-1.5 py-0.5 text-[10px] font-medium text-success",children:"线上"}),a.jsx("span",{className:"ml-auto shrink-0",children:a.jsx(mZ,{slot:e.runs[gn(d)]})})]})},gn(d))),u>0&&a.jsx(It,{onSelect:d=>{d.preventDefault(),s(!0)},children:a.jsxs("span",{className:"inline-flex items-center gap-1.5 text-xs text-text-400",children:[a.jsx(Qt,{className:"size-3.5"}),"还有 ",u," 次发布"]})})]})]})}const HF=[];function Pst(e){const t=Vn(),[n,r]=p.useState(void 0),[s,i]=p.useState(void 0),[o,l]=p.useState(void 0),[c,u]=p.useState(!1),d=p.useCallback(g=>{u(g),g&&new qt(t).deployGet(e.personaId).then(x=>{r(x.releases),i(x.run),l(x.online)},()=>{r(HF),i(void 0),l(void 0)})},[t,e.personaId]),h=pZ(e.personaId,n??HF,c),f=Ea(n),m=f&&Vu(f,s)?{...h,[f.head]:s}:h;return a.jsx(Mst,{releases:n,runs:m,className:znt(e.tool),onOpenRelease:e.onOpenRelease,onOpenChange:d,...o!==void 0?{online:o}:{}})}function Ast(e){return!e.loading&&!e.error&&e.connectors.length===0?null:a.jsxs("div",{className:"px-3 py-3","data-testid":"cloud-connectors",children:[a.jsxs("div",{className:"flex items-center gap-2 px-2 pb-1.5",children:[a.jsx(Aw,{className:"size-3.5 text-text-400"}),a.jsx("span",{className:"text-sm text-text-400",children:"连接器"}),a.jsx("span",{className:"text-[11px] text-text-500",children:"要你本人授权的;授权一次全局共用"}),a.jsx("button",{type:"button","aria-label":"刷新连接器状态",title:"关联完回来点一下",className:"ml-auto rounded p-1 text-text-400 hover:bg-text-100/10 hover:text-text-100",onClick:e.onRefresh,children:e.loading?a.jsx(nt,{className:"size-3.5 animate-spin"}):a.jsx(Pf,{className:"size-3.5"})})]}),e.error&&a.jsx("div",{className:"px-2 text-xs text-error",children:e.error}),e.connectors.map(t=>a.jsx(Dst,{connector:t,onLink:e.onLink,onFill:e.onFill},t.name))]})}function Ost(e){return e.status==="connected"?a.jsxs(dc,{variant:"secondary",className:"gap-1",children:[a.jsx(Ut,{className:"size-3"}),e.action==="link"?"已关联":"已填 key"]}):e.status==="reauth"?a.jsx(dc,{variant:"destructive",children:"需重新关联"}):a.jsx(dc,{variant:"outline",children:e.action==="link"?"未关联":"未填 key"})}function Dst(e){const t=e.connector,[n,r]=p.useState(!1),[s,i]=p.useState({}),[o,l]=p.useState(!1),[c,u]=p.useState(null),d=t.fields.every(f=>(s[f]??"").length>0),h=async()=>{l(!0),u(null);try{await e.onFill(t.name,s),i({}),r(!1)}catch(f){u(f instanceof Error?f.message:String(f))}finally{l(!1)}};return a.jsxs("div",{className:"px-2 py-1.5","data-testid":`cloud-connector-${t.name}`,children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("span",{className:"font-mono text-[13px] text-text-100",children:t.name}),Ost(t),a.jsx("span",{className:"min-w-0 flex-1 truncate font-mono text-[11px] text-text-500",title:t.id,children:t.id}),t.action==="link"?a.jsxs($e,{size:"sm",variant:t.status==="connected"?"outline":"default",disabled:!t.authUrl,title:t.authUrl?"在浏览器里完成授权,回来点刷新":"这家服务现在给不出授权链接(不按 MCP 规范,或暂时打不通)",onClick:()=>e.onLink(t),children:[a.jsx(Rr,{className:"size-3.5"}),t.status==="connected"?"重新关联":"关联"]}):a.jsx($e,{size:"sm",variant:t.status==="connected"?"outline":"default",onClick:()=>r(f=>!f),children:t.status==="connected"?"重新粘贴 API key":"粘贴 API key"})]}),n&&t.action==="fill"&&a.jsxs("div",{className:"mt-2 space-y-1.5 rounded-md border border-border p-2",children:[t.fields.map(f=>a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("label",{htmlFor:`${t.name}-${f}`,className:"w-48 shrink-0 font-mono text-xs text-text-400",children:f}),a.jsx(yr,{id:`${t.name}-${f}`,type:"password",autoComplete:"off",placeholder:"粘贴值",value:s[f]??"",onChange:m=>i({...s,[f]:m.target.value})})]},f)),a.jsxs("div",{className:"flex items-center gap-3 pt-0.5",children:[a.jsx($e,{size:"sm",disabled:!d||o,onClick:()=>void h(),children:o?"保存中…":"保存"}),a.jsx("span",{className:"text-xs text-text-500",children:"值加密存在中心,只进你自己的云上任务;不进对话记录、不落本机"})]}),c&&a.jsx("div",{className:"text-xs text-error",children:c})]})]})}function $st({personaId:e,render:t}){const n=Vn(),r=p.useMemo(()=>new qt(n),[n]),s=j3(r,e);return t({blockedReason:fS(s),connectors:a.jsx(Ast,{connectors:s.connectors??[],loading:s.loading,error:s.error,onLink:i=>{i.authUrl&&window.open(i.authUrl,"_blank","noopener")},onFill:async(i,o)=>{await r.cloudConnectorFill(e,i,o),await s.reload()},onRefresh:()=>void s.reload()})})}function Lst({state:e}){const t=Bst(e);return a.jsxs("span",{className:J("inline-flex items-center gap-1.5 rounded-sm px-2 py-0.5 text-xs font-medium",t.className),title:t.title,"data-testid":"connection-badge","data-state":e.kind,children:[a.jsx(t.Icon,{className:J("w-3 h-3",t.iconClassName),"aria-hidden":"true"}),a.jsx("span",{children:t.label})]})}function Bst(e){switch(e.kind){case"connected":{const t=e.mode==="remote"?" · 远程":e.mode==="localhost"?" · 本机":"";return{Icon:ui,iconClassName:"text-success",label:`已连接${t}`,title:e.mode==="remote"?`daemon ${e.daemonVersion??""} (proto v${e.protocolVersion??"?"}) — ${e.url}`:`daemon ${e.daemonVersion??""} (proto v${e.protocolVersion??"?"})`,className:"bg-success-dim text-success"}}case"connecting":return{Icon:DA,iconClassName:"animate-spin",label:"连接中",title:"connecting to daemon",className:"bg-bg-200 text-text-300"};case"reconnecting":return{Icon:DA,iconClassName:"animate-spin text-warning",label:"重连中",title:`第 ${e.attempt} 次,${Math.round(e.nextDelayMs/1e3)}s 后重连`,className:"bg-warning-dim text-warning"};case"disconnected":return{Icon:dT,iconClassName:"text-error",label:"未连接",title:e.reason??"daemon disconnected",className:"bg-error-dim text-error"};case"auth-failed":return{Icon:Pg,iconClassName:"text-error",label:"Token 错误",title:e.reason??"auth failed",className:"bg-error-dim text-error"};case"version-mismatch":return{Icon:Pg,iconClassName:"text-warning",label:"协议版本不匹配",title:`daemon v${e.daemonProtocol} > 支持 v${e.supportedProtocol}`,className:"bg-warning-dim text-warning"};case"idle":default:return{Icon:LH,iconClassName:"text-text-400",label:"初始化",title:"idle",className:"bg-bg-200 text-text-300"}}}function Fst({state:e,api:t,onStateChange:n,onAddHost:r,onError:s,className:i}){const o=e.pairedHosts,l=e.mode==="remote"?e.activeHostId:void 0;return a.jsxs("div",{className:J("flex flex-col gap-2.5 py-1",i),"data-testid":"remote-hosts-list",children:[o.length===0&&a.jsx("div",{className:"text-sm text-text-300 py-4 text-center",children:"还没有配对过主机"}),o.map(c=>{const u=c.deviceId===l;return a.jsxs("div",{"data-testid":`remote-host-${c.deviceId}`,className:J("flex items-center gap-3 rounded-xl border p-3.5",u?"border-accent bg-bg-200":"border-border bg-elevated"),children:[a.jsx("div",{className:"flex h-9 w-9 items-center justify-center rounded-lg bg-bg-300 text-text-200 shrink-0",children:a.jsx(KH,{className:"h-4.5 w-4.5"})}),a.jsxs("div",{className:"min-w-0 flex-1",children:[a.jsxs("div",{className:"flex items-center gap-1.5 text-sm font-medium text-text-100",children:[a.jsx("span",{className:"truncate",children:c.displayName}),u&&a.jsxs("span",{className:"flex items-center gap-1 text-[10px] text-emerald-500 shrink-0",children:[a.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-500"})," 已连接"]})]}),a.jsx("div",{className:"text-xs text-text-400 truncate",children:c.wssUrl.replace(/^wss:\/\//,"")})]}),!u&&a.jsx($e,{variant:"outline",size:"sm","data-testid":`remote-host-switch-${c.deviceId}`,onClick:()=>void t.setActive(c.deviceId),children:"切换"}),a.jsx("button",{type:"button",title:"移除","data-testid":`remote-host-remove-${c.deviceId}`,className:"p-1.5 rounded text-text-400 hover:text-destructive hover:bg-bg-300 transition-colors",onClick:()=>{t.remove(c.deviceId).then(()=>t.get()).then(n).catch(d=>{if(!s)throw d;s(d instanceof Error?d:new Error(String(d)))})},children:a.jsx(bs,{className:"h-3.5 w-3.5"})})]},c.deviceId)}),a.jsxs("div",{className:"flex items-center justify-center gap-2 pt-1",children:[a.jsx($e,{variant:"ghost",size:"sm",className:"text-text-300","data-testid":"remote-hosts-add",onClick:r,children:"+ 添加主机"}),e.mode==="remote"&&a.jsx($e,{variant:"outline",size:"sm","data-testid":"remote-hosts-leave",onClick:()=>void t.leave(),children:"回到本机模式"})]})]})}const II="ws://127.0.0.1:18790",zst=(e="localhost")=>({editingId:null,name:e==="remote"?"远程":"本机",mode:e,url:e==="remote"?"":II,token:""}),Hst=e=>({editingId:e.id,name:e.name,mode:e.mode,url:e.url,token:""});function Ust({state:e}){const t=fte(e);return a.jsx("p",{className:"text-[11px] text-text-400 mt-3","data-testid":"daemon-reconnect-hint",children:t})}function Wst({state:e,onClose:t,remoteHosts:n,pairProbe:r}){var q;const s=eW(),[i,o]=p.useState(!1),[l,c]=p.useState([]),[u,d]=p.useState(null),[h,f]=p.useState(null),[m,g]=p.useState(null),[x,b]=p.useState(null),[y,v]=p.useState(null),w=n??null,[_,S]=p.useState(null),[k,C]=p.useState(null),[j,T]=p.useState(!1),E=async()=>{if(w)try{S(await w.get()),C(null)}catch(H){C(H.message)}};p.useEffect(()=>{E()},[w]);const R=async()=>{try{const H=await s.snapshot();c(Array.isArray(H==null?void 0:H.profiles)?H.profiles:[]),d((H==null?void 0:H.activeId)??null)}catch(H){b(`读取 profile 列表失败:${H.message}`)}};p.useEffect(()=>(R(),s.subscribe(O=>{c(O.profiles),d(O.activeId)})),[s]);const P=H=>{g(H),b(null),setTimeout(()=>g(O=>O===H?null:O),3e3)},M=async()=>{o(!0),b(null);try{u?(await s.activate(u),P("重连中…")):P("还没有 profile,请先添加一个")}finally{o(!1)}},$=H=>{f(zst(H)),b(null)},B=H=>{f(Hst(H)),b(null)},z=H=>{f(O=>O&&{...O,mode:H,url:H==="localhost"?II:"",name:O.name||(H==="remote"?"远程":"本机")}),b(null)},W=async H=>{if(H!==u){o(!0),b(null);try{await s.activate(H),P("已切换 profile")}catch(O){b(`切换失败:${O.message}`)}finally{o(!1)}}},L=async H=>{if(y!==H.id){v(H.id),b(null);return}v(null),o(!0),b(null);try{await s.delete(H.id),f(O=>(O==null?void 0:O.editingId)===H.id?null:O),P("已删除")}catch(O){b(`删除失败:${O.message}`)}finally{o(!1)}},A=async H=>{if(H.preventDefault(),b(null),!h)return;let O=h.url.trim(),V=h.token.trim();if(h.mode==="remote"&&O.includes("#token=")){const X=PT(O);O=X.url,!V&&X.token&&(V=X.token)}if(!O){b("URL 必填");return}if(h.mode==="remote"&&!V){const X=l.find(Y=>Y.id===h.editingId);if(!(X!=null&&X.token)){b("远程模式需要填 token(粘 Connect 整行也行)");return}}o(!0);try{await s.upsert({id:h.editingId??void 0,name:h.name.trim()||(h.mode==="remote"?"远程":"本机"),mode:h.mode,url:O,token:V||void 0}),f(null),P("已保存,连接中…")}catch(X){b(X.message)}finally{o(!1)}},I=(_==null?void 0:_.mode)==="remote"?_.pairedHosts.find(H=>H.deviceId===_.activeHostId)??null:null;return a.jsxs("div",{className:"flex flex-col items-center px-6 pt-12 pb-12 min-h-full relative","data-testid":"daemon-setup",children:[t?a.jsx("button",{type:"button",onClick:t,className:"absolute right-3 top-3 p-1.5 rounded-md text-text-400 hover:text-text-100 hover:bg-bg-200","aria-label":"关闭","data-testid":"daemon-setup-close",children:a.jsx(Jt,{className:"w-4 h-4"})}):null,a.jsxs("div",{className:"w-full max-w-md space-y-6",children:[a.jsxs("div",{className:"rounded-lg border border-border bg-elevated p-6 shadow-md",children:[a.jsx("h2",{className:"text-lg font-semibold text-text-100 mb-1",children:"Clawd 连接"}),w?a.jsx("p",{className:"text-sm text-text-300 mb-4","data-testid":"daemon-setup-intro",children:I?a.jsxs(a.Fragment,{children:["这台电脑作为「",I.displayName,"」的远程界面运行,当前连不上主机。",a.jsx("br",{}),((_==null?void 0:_.pairedHosts.length)??0)>1?"主机不在线或凭证已失效时,可以切到其他已配对主机,或回到本机模式。":"主机不在线或凭证已失效时,可以回到本机模式,或配对另一台主机。"]}):a.jsxs(a.Fragment,{children:["本机 daemon 由 Clawd 自动启动和管理,无需手动安装或运行。",a.jsx("br",{}),"连不上时点「重新检查连接」;也可以把这台电脑连到另一台主机。"]})}):a.jsxs(a.Fragment,{children:[a.jsx("p",{className:"text-sm text-text-300 mb-4","data-testid":"daemon-setup-intro",children:"这个界面需要连接一个正在运行的 clawd daemon。先在终端启动它,再在下面选 / 加连接:"}),a.jsx("pre",{className:"text-xs font-mono text-text-200 bg-bg-100 rounded-md p-3 mb-4 overflow-x-auto","data-testid":"daemon-setup-npx-hint",children:`npx @clawos-dev/clawd@latest # 本机
|
|
942
|
+
`;function vst({personas:e,onFinish:t}){const n=e.find(s=>s.personaId===ei),r=e.filter(s=>s.personaId!==ei);return a.jsxs("div",{"data-testid":"onboarding-done-step",className:"flex flex-col items-center text-center pt-10 pb-2",children:[a.jsx("style",{children:xst}),a.jsx("div",{className:"ob-rise text-[11px] tracking-[0.3em] text-text-500 mb-5",children:"初始化完成"}),a.jsxs("h2",{className:"ob-rise text-[26px] font-semibold text-text-100 tracking-tight mb-3",style:{animationDelay:"0.08s"},children:[(n==null?void 0:n.label)??"clawd 管家","随时候命"]}),a.jsxs("p",{className:"ob-rise text-sm text-text-400 max-w-sm leading-relaxed mx-auto",style:{animationDelay:"0.16s"},children:["建 persona、导会话、管配置——",a.jsx("br",{}),"对 clawd 有任何想法,直接跟它说。"]}),a.jsx("button",{type:"button","data-testid":"onboarding-done-finish",onClick:t,className:"ob-rise mt-8 px-8 py-2.5 rounded-lg text-sm bg-accent text-accent-contrast hover:bg-accent-hover transition-colors",style:{animationDelay:"0.24s"},children:"和管家开始"}),r.length>0&&a.jsxs("div",{className:"ob-rise w-full mt-12 pt-5 border-t border-border",style:{animationDelay:"0.4s"},children:[a.jsx("p",{className:"text-[13px] text-text-400 leading-relaxed select-none",children:r.map((s,i)=>a.jsxs("span",{children:[s.label,i<r.length-1&&a.jsx("span",{className:"mx-2 text-text-500",children:"·"})]},s.personaId))}),a.jsx("p",{className:"text-[11px] text-text-500 mt-2",children:"其余分身已就位,之后管家会带你认识它们"})]})]})}function yst({api:e,feishuIdentity:t,feishuError:n,onFeishuLogin:r,personas:s,onFinished:i}){var v;const[o,l]=p.useState(0),c=vte(e),u=nst(e),d=void 0,h=(v=c.probeResult)==null?void 0:v.find(w=>w.id==="codex"),m=["env","login",...c.probeResult===null||(h==null?void 0:h.available)===!0?["pool"]:[],"import","mobile","done"],g=m[o]??"env",x=w=>l(m.indexOf(w)),b=()=>l(w=>Math.min(w+1,m.length-1));p.useEffect(()=>{c.probe()},[]),p.useEffect(()=>{g==="import"&&c.candidates===null&&!c.scanning&&c.scan()},[g]);const y=w=>{if(w==="skip"||!c.candidates){x("mobile");return}const _=w==="all"?c.candidates:wte(c.candidates);if(_.length===0){x("mobile");return}c.importSessions(_)};return a.jsxs(sst,{step:o,steps:m.map(w=>yte[w]),children:[g==="env"&&a.jsx(ust,{probes:c.probeResult,probing:c.probing,probeError:c.probeError,onRecheck:()=>void c.probe(),onNext:b,remoteHosts:d}),g==="login"&&a.jsx(dst,{identity:t,error:n,onLogin:r,onNext:b}),g==="pool"&&a.jsx(pst,{...h!=null&&h.version?{codexVersion:h.version}:{},portalUrl:aT,onConnect:u.connect,connecting:u.connecting,connected:u.connected,error:u.error,onNext:b}),g==="import"&&a.jsx(_te,{candidates:c.candidates,scanError:c.scanError,onRetryScan:()=>void c.scan(),progress:c.importProgress,onChoose:y,onNext:b}),g==="mobile"&&a.jsx(gst,{iosState:c.iosState,onIosInterest:()=>void c.registerIos(),onNext:b}),g==="done"&&a.jsx(vst,{personas:s,onFinish:i})]})}const Ste=p.forwardRef(({className:e,...t},n)=>a.jsx("textarea",{ref:n,className:J("flex min-h-[60px] w-full rounded-md border border-border bg-elevated px-3 py-2 text-sm text-text-100","placeholder:text-text-400","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:border-accent","disabled:cursor-not-allowed disabled:opacity-50 resize-none",e),...t}));Ste.displayName="Textarea";const bst=[{value:"general",label:"普通",hint:"问答、整理、跑流程"},{value:"coding",label:"编码",hint:"在一个代码仓库里开发"}];function wst({open:e,onOpenChange:t,onCreate:n,submitting:r,submitError:s,loadRepos:i,githubLink:o}){const[l,c]=p.useState("general"),[u,d]=p.useState(""),[h,f]=p.useState(!1),[m,g]=p.useState(""),x=p.useRef(null),b=m.trim().length>0&&(l==="general"||u.trim().length>0)&&!r,y=()=>{b&&n(l==="coding"?{kind:l,repo:u.trim(),requirement:m.trim()}:{kind:l,requirement:m.trim()})},v=vi(y,()=>t(!1)),w=async(_,S)=>{try{const k=await i(_,S);return f(!1),k}catch(k){throw k instanceof Error&&k.message.startsWith("UNAUTHORIZED")?(f(!0),new Error("请先关联 GitHub")):k}};return a.jsx(Kr,{open:e,onOpenChange:t,children:a.jsxs(Mr,{className:"max-w-md max-h-[85vh] overflow-y-auto",onOpenAutoFocus:_=>{var S;_.preventDefault(),(S=x.current)==null||S.focus()},children:[a.jsxs(ws,{children:[a.jsx(Pr,{children:"新建 Persona"}),a.jsx(fi,{children:"选类型、说说想要什么样的助手,提交后管家会按标准把它建好。"})]}),a.jsxs("div",{className:"flex flex-col gap-4",children:[a.jsx(S2,{label:"类型",required:!0,group:!0,children:a.jsx("div",{role:"radiogroup",className:"flex gap-2",children:bst.map(_=>a.jsxs("button",{type:"button",role:"radio","aria-checked":l===_.value,"data-testid":`new-persona-kind-${_.value}`,onClick:()=>c(_.value),className:J("flex flex-1 flex-col items-start gap-0.5 rounded-md border px-3 py-2 text-left",l===_.value?"border-accent bg-accent/10 text-accent":"border-bg-300 text-text-300"),children:[a.jsx("span",{className:"text-[13px] font-medium",children:_.label}),a.jsx("span",{className:"text-[11px] text-text-400",children:_.hint})]},_.value))})}),l==="coding"?a.jsx(S2,{label:"仓库",required:!0,group:!0,children:h&&o?a.jsx("div",{"data-testid":"new-persona-github-link",children:o(()=>f(!1))}):a.jsxs(a.Fragment,{children:[a.jsx(yX,{load:w,onPick:_=>d(`${_.owner}/${_.name}`),align:"start",contentClassName:"w-[var(--radix-popover-trigger-width)] p-1.5",trigger:a.jsxs("button",{type:"button","data-testid":"new-persona-repo",className:"flex h-9 w-full items-center gap-2 rounded-md border border-bg-300 bg-transparent px-3 text-left text-[13px]",children:[a.jsx(Wb,{className:"h-4 w-4 shrink-0 text-text-400"}),a.jsx("span",{className:J("flex-1 truncate",u?"text-text-100":"text-text-400"),children:u||"从 GitHub 选择仓库"}),a.jsx(Qt,{className:"h-3.5 w-3.5 shrink-0 text-text-400"})]})}),a.jsx("span",{className:"text-[11px] text-text-400",children:"只绑定一个仓库;其它相关仓库可以写在需求里。"})]})}):null,a.jsx(S2,{label:"需求",required:!0,children:a.jsx(Ste,{ref:x,"data-testid":"new-persona-requirement",value:m,onChange:_=>g(_.target.value),...v,placeholder:"想要一个什么样的助手:帮谁、做什么、有什么不能碰",rows:6})})]}),s?a.jsx("div",{"data-testid":"new-persona-error",className:"rounded-md border border-error bg-error-dim px-3 py-2 text-[12px] text-error",children:s}):null,a.jsxs(ba,{children:[a.jsx($e,{variant:"outline",onClick:()=>t(!1),disabled:r,children:"取消"}),a.jsx($e,{"data-testid":"new-persona-submit",disabled:!b,onClick:y,children:r?"提交中...":"交给管家"})]})]})})}function S2({label:e,required:t,group:n,children:r}){const s=n?"div":"label";return a.jsxs(s,{className:"flex flex-col gap-1.5",children:[a.jsxs("span",{className:"text-[12px] font-medium text-text-200",children:[e,t?a.jsx("span",{className:"ml-0.5 text-error",children:"*"}):null]}),r]})}function kr({label:e,children:t}){return a.jsxs("div",{className:"flex items-center justify-between gap-3",children:[a.jsx("span",{className:"text-text-400 text-sm shrink-0",children:e}),t]})}const _st=[{value:"claude",label:"Claude Code"},{value:"codex",label:"Codex"},{value:"pi",label:"pi"}];function Sst({tool:e,model:t,effort:n,fastMode:r,modelList:s,configSchema:i,isPublic:o,guestShareUrl:l,guestNetwork:c,larkBot:u,onChangeTool:d,onChangeModel:h,onChangeEffort:f,onToggleFastMode:m,onTogglePublic:g,onToggleGuestNetwork:x,onOpenLarkBot:b,onOpenMore:y}){const v=s.models,w=D_(t),_=O_(w,v,i),S=_.options,{value:k,label:C}=cZ(n,_);return a.jsx("div",{className:"px-5 py-4","data-testid":"persona-card-settings",children:a.jsxs("div",{className:"max-w-[480px] space-y-3",children:[a.jsx("div",{className:"text-text-400 text-sm",children:"新建会话默认"}),a.jsx(kr,{label:"引擎",children:a.jsx(Cst,{ariaLabel:"引擎",testid:"persona-card-tool",options:_st,value:e||"claude",onSelect:d})}),a.jsx(kr,{label:"模型",children:a.jsxs("div",{className:"flex items-center gap-2 justify-end",children:[t?null:a.jsx("span",{className:"text-[11px] text-warning","data-testid":"persona-card-model-unset",children:"还没选模型"}),a.jsx(bM,{testid:"persona-card-model",list:s,current:w,align:"end",onSelect:h,trigger:a.jsx(M_,{testid:"persona-card-model",label:yM(v,w),needsAttention:!t})})]})}),S.length>0?a.jsx(kr,{label:"推理强度",children:a.jsx(KX,{testid:"persona-card-effort",label:C,current:k,items:S.map(j=>({value:j.value,label:j.label,description:j.description})),onSelect:f})}):null,e==="codex"?a.jsx(kr,{label:"Fast 模式",children:a.jsx(k2,{testid:"persona-card-fast-toggle",ariaLabel:"Fast 模式",checked:r,onChange:m})}):null,a.jsx(kr,{label:"公开访问",children:a.jsx(k2,{testid:"persona-card-public-toggle",ariaLabel:"公开访问",checked:o,onChange:g})}),e==="pi"?a.jsx(kr,{label:"访客链接",children:a.jsxs("span",{className:"text-xs text-text-400",children:["pi 引擎不支持访客会话(无沙箱)",o?",请关闭公开访问":""]})}):o?a.jsx(kr,{label:"访客链接",children:l?a.jsxs("div",{className:"flex items-center gap-2 min-w-0 justify-end",children:[a.jsx("span",{className:"truncate text-xs text-text-200",title:l,children:l}),a.jsxs("button",{type:"button","data-testid":"persona-card-copy-share",onClick:()=>void navigator.clipboard.writeText(l),className:"flex shrink-0 items-center gap-1 rounded border border-border bg-bg-50 px-2 py-1 text-xs text-text-200 transition-colors hover:bg-text-100/5 hover:text-text-100",children:[a.jsx(Lo,{className:"h-3 w-3"}),"复制"]})]}):a.jsx("span",{className:"text-xs text-text-400",children:"需先开 tunnel"})}):null,e==="codex"?a.jsx(kr,{label:"访客联网",children:a.jsxs("div",{className:"flex items-center gap-2 justify-end",children:[a.jsx(hi,{delayDuration:200,children:a.jsxs(eo,{children:[a.jsx(to,{asChild:!0,children:a.jsx("button",{type:"button","aria-label":"访客联网说明","data-testid":"persona-card-guest-network-info",className:"shrink-0 text-text-400 transition-colors hover:text-text-200",children:a.jsx(Pu,{className:"h-3.5 w-3.5"})})}),a.jsxs(xi,{align:"end",className:"max-w-[260px] leading-relaxed",children:["仅影响",a.jsx("strong",{className:"text-text-100",children:"别人借用"}),"此 persona 时,你自己使用不受限。",a.jsx("br",{}),"开启:访客可访问外网,",a.jsx("code",{children:"git clone"}),"、",a.jsx("code",{children:"npm install"})," 等命令才能运行。",a.jsx("br",{}),"关闭:访客完全断网。",a.jsx("br",{}),"文件访问始终受限——访客只能写此 persona 目录和其专属工作目录。"]})]})}),a.jsx(k2,{testid:"persona-card-guest-network-toggle",ariaLabel:"访客联网",checked:c,onChange:x})]})}):null,a.jsx(kr,{label:"飞书 Bot",children:a.jsxs("div",{className:"flex items-center gap-2 min-w-0 justify-end",children:[(u==null?void 0:u.state)==="bound"&&u.needsUpgrade?a.jsx("span",{className:"shrink-0 h-1.5 w-1.5 rounded-full bg-warning","data-testid":"persona-card-lark-upgrade-dot","aria-label":"bot 权限配置待更新"}):null,a.jsx("span",{className:"truncate text-xs text-text-400",children:kst(u)}),a.jsx("button",{type:"button","data-testid":"persona-card-lark",onClick:b,className:"shrink-0 rounded border border-border bg-bg-50 px-2 py-1 text-xs text-text-200 transition-colors hover:bg-text-100/5 hover:text-text-100",children:(u==null?void 0:u.state)==="bound"?"管理":(u==null?void 0:u.state)==="broken"?"修复":"关联"})]})}),a.jsx(kr,{label:"更多设置",children:a.jsx("button",{type:"button","data-testid":"persona-card-more",onClick:y,className:"shrink-0 rounded border border-border bg-bg-50 px-2 py-1 text-xs text-text-200 transition-colors hover:bg-text-100/5 hover:text-text-100",children:"打开"})})]})})}function kst(e){if(!e)return"加载中…";switch(e.state){case"bound":return e.needsUpgrade?`${e.botName??e.appId??"已关联"}·待更新授权`:`${e.botName??e.appId??"已关联"}·${e.groups.length} 个群`;case"provisioning":return"等待扫码…";case"broken":return e.brokenReason??"凭证失效";default:return"未关联"}}function Cst({ariaLabel:e,testid:t,options:n,value:r,onSelect:s}){return a.jsx("div",{role:"radiogroup","aria-label":e,"data-testid":t,className:"inline-flex items-center rounded-md border border-border bg-bg-50 p-0.5",children:n.map(i=>{const o=i.value===r;return a.jsx("button",{type:"button",role:"radio","aria-checked":o,"data-testid":`${t}-${i.value}`,onClick:()=>{o||s(i.value)},className:J("rounded px-2.5 py-1 text-xs font-medium transition-colors",o?"bg-elevated text-text-100 shadow-sm":"text-text-400 hover:text-text-200"),children:i.label},i.value)})})}function k2({testid:e,ariaLabel:t,checked:n,onChange:r}){return a.jsx("button",{type:"button",role:"switch","aria-checked":n,"aria-label":t,onClick:()=>r(!n),"data-testid":e,className:J("relative inline-flex h-5 w-9 shrink-0 items-center rounded-full transition-colors",n?"bg-success":"bg-bg-300"),children:a.jsx("span",{className:J("inline-block h-4 w-4 rounded-full bg-bg-0 shadow transition-transform",n?"translate-x-[18px]":"translate-x-0.5")})})}function Nst({personaId:e,onOpenMore:t,onOpenLarkBot:n}){var i;const r=nX(e),s=P_(((i=r.persona)==null?void 0:i.tool)??"claude");return r.persona?a.jsx(Sst,{tool:r.persona.tool??"claude",model:r.persona.model??"",effort:r.persona.effort??"",fastMode:r.persona.serviceTier===Eg.fast,modelList:s,configSchema:r.configSchema,isPublic:r.persona.public??!1,guestShareUrl:r.guestShareUrl,guestNetwork:r.guestNetwork,onToggleGuestNetwork:r.toggleGuestNetwork,larkBot:r.larkBot.status,onChangeTool:r.changeTool,onChangeModel:r.changeModel,onChangeEffort:r.changeEffort,onToggleFastMode:r.toggleFastMode,onTogglePublic:r.togglePublic,onOpenLarkBot:n,onOpenMore:t}):null}function jst({cloudPersonaId:e,onTakeover:t}){const[n,r]=p.useState(!1),[s,i]=p.useState(null),[o,l]=p.useState(!1),c=async()=>{r(!0),i(null);try{await t(e),l(!0)}catch(u){i(u instanceof Error?u.message.replace(/^(VALIDATION_ERROR|INTERNAL):\s*/,""):String(u))}finally{r(!1)}};return a.jsxs("div",{className:"space-y-2 px-3 py-3 text-sm","data-testid":"cloud-persona-takeover",children:[a.jsxs("div",{className:"flex items-center justify-between gap-3",children:[a.jsx("span",{className:"text-text-400",children:"你是这个 persona 的协作者,本机还没有它"}),a.jsx($e,{size:"sm",disabled:n||o,onClick:()=>void c(),"data-testid":"cloud-persona-takeover-pull",children:n?a.jsxs(a.Fragment,{children:[a.jsx(nt,{className:"mr-1.5 size-3.5 animate-spin"}),"拉取中"]}):o?"已拉取":"拉取到本机"})]}),o&&a.jsx("div",{className:"text-xs text-text-400",children:"已拉取到本机,列表刷新后在本机 persona 里打开它的「发布到云上」页。"}),s&&a.jsx("div",{className:"text-error","data-testid":"cloud-persona-takeover-error",children:s}),!o&&a.jsx("div",{className:"text-xs text-text-400",children:"需要本机已关联 GitHub,并已接受 owner 发来的仓库邀请。"})]})}function Est({personaId:e}){const t=Vn(),n=tX(t,e,"cloud");return a.jsx(Ist,{bot:n})}function Ist({bot:e}){const[t,n]=p.useState(!1),r=e.status,s=r?r.state==="bound"?`${r.botName??"已关联"}${r.needsUpgrade?" · 待更新授权":""}`:r.state==="broken"?r.brokenReason??"凭证失效":r.state==="provisioning"?"等待扫码…":"未关联":"加载中…";return a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"px-3 py-3","data-testid":"cloud-persona-lark-bot",children:a.jsx(kr,{label:"飞书 Bot",children:a.jsxs("div",{className:"flex items-center gap-2 justify-end min-w-0",children:[a.jsx("span",{className:"truncate text-xs text-text-400",children:s}),a.jsx("button",{type:"button",className:"shrink-0 rounded border border-border bg-bg-50 px-2 py-1 text-xs text-text-200",onClick:()=>n(!0),"data-testid":"cloud-persona-lark-bot-open",children:(r==null?void 0:r.state)==="bound"?"管理":(r==null?void 0:r.state)==="broken"?"修复":"关联"})]})})}),a.jsx(Kr,{open:t,onOpenChange:n,children:a.jsxs(Mr,{className:"max-h-[85vh] overflow-y-auto","aria-describedby":void 0,children:[a.jsx(ws,{children:a.jsx(Pr,{children:"关联飞书 Bot"})}),a.jsx(ZY,{runtime:"cloud",status:e.status,onProvision:e.provision,onCancelProvision:e.cancelProvision,onBindManual:e.bindManual,onUnbind:e.unbind,onUpgrade:e.upgrade})]})})]})}function Tst({state:e}){const t=Oc(e==null?void 0:e.scans);return!(e!=null&&e.repo)||(t==null?void 0:t.status)!=="done"||Tw(t,e.repo,Ea(e.releases))?null:a.jsx("span",{"data-testid":"persona-detail-deploy-status",className:"text-[11px] text-warning",children:"有新改动,可重新上云"})}function Rst({personaId:e,tool:t}){const{state:n}=xM(ml(t)?e:null,{mode:"local"});return a.jsx(Tst,{state:n})}function Mst(e){const t=e.releases??[],n=t.map((d,h)=>({r:d,n:h+1})).reverse(),[r,s]=p.useState(!1),i=mM(t,e.runs,e.online),o=Ea(t),l=d=>d===o||d===i||ZX(d,e.runs),c=r?n:n.filter(({r:d})=>l(d)),u=n.length-c.length;return a.jsxs(Xr,{onOpenChange:e.onOpenChange,children:[a.jsx(Zr,{asChild:!0,children:a.jsx("button",{type:"button","aria-label":"发布历史","data-testid":"persona-detail-deploy-history",className:e.className,children:a.jsx(Qt,{className:"size-3.5"})})}),a.jsxs(Dr,{align:"end",className:"min-w-[300px]",children:[a.jsx("div",{className:"px-2 py-1 text-[11px] text-text-400",children:"发布历史 · 点一条看它的只读页"}),e.releases===void 0&&a.jsxs("div",{className:"inline-flex items-center gap-1.5 px-2 pb-1.5 text-xs text-text-400",children:[a.jsx(nt,{className:"size-3 animate-spin"}),"读取中…"]}),e.releases!==void 0&&c.length===0&&a.jsx("div",{className:"px-2 pb-1.5 text-xs text-text-400",children:"还没发布过"}),c.map(({r:d,n:h})=>a.jsx(It,{onSelect:()=>e.onOpenRelease(gn(d)),children:a.jsxs("span",{className:"inline-flex w-full items-center gap-2 text-xs",children:[a.jsxs("span",{className:"w-6 shrink-0 font-mono text-text-400",children:["#",h]}),a.jsx("span",{className:"shrink-0 tabular-nums text-text-200",children:pf(d.at)}),a.jsx("span",{className:"shrink-0 font-mono text-text-400",children:d.head.slice(0,7)}),d.environment&&a.jsx("span",{className:"shrink-0 text-xs text-text-400",children:d.environment==="integration"?"测试":"线上发布"}),i&&gn(i)===gn(d)&&a.jsx("span",{className:"shrink-0 rounded-full bg-success-dim px-1.5 py-0.5 text-[10px] font-medium text-success",children:"线上"}),a.jsx("span",{className:"ml-auto shrink-0",children:a.jsx(mZ,{slot:e.runs[gn(d)]})})]})},gn(d))),u>0&&a.jsx(It,{onSelect:d=>{d.preventDefault(),s(!0)},children:a.jsxs("span",{className:"inline-flex items-center gap-1.5 text-xs text-text-400",children:[a.jsx(Qt,{className:"size-3.5"}),"还有 ",u," 次发布"]})})]})]})}const HF=[];function Pst(e){const t=Vn(),[n,r]=p.useState(void 0),[s,i]=p.useState(void 0),[o,l]=p.useState(void 0),[c,u]=p.useState(!1),d=p.useCallback(g=>{u(g),g&&new qt(t).deployGet(e.personaId).then(x=>{r(x.releases),i(x.run),l(x.online)},()=>{r(HF),i(void 0),l(void 0)})},[t,e.personaId]),h=pZ(e.personaId,n??HF,c),f=Ea(n),m=f&&Vu(f,s)?{...h,[f.head]:s}:h;return a.jsx(Mst,{releases:n,runs:m,className:znt(e.tool),onOpenRelease:e.onOpenRelease,onOpenChange:d,...o!==void 0?{online:o}:{}})}function Ast(e){return!e.loading&&!e.error&&e.connectors.length===0?null:a.jsxs("div",{className:"px-3 py-3","data-testid":"cloud-connectors",children:[a.jsxs("div",{className:"flex items-center gap-2 px-2 pb-1.5",children:[a.jsx(Aw,{className:"size-3.5 text-text-400"}),a.jsx("span",{className:"text-sm text-text-400",children:"连接器"}),a.jsx("span",{className:"text-[11px] text-text-500",children:"要你本人授权的;授权一次全局共用"}),a.jsx("button",{type:"button","aria-label":"刷新连接器状态",title:"关联完回来点一下",className:"ml-auto rounded p-1 text-text-400 hover:bg-text-100/10 hover:text-text-100",onClick:e.onRefresh,children:e.loading?a.jsx(nt,{className:"size-3.5 animate-spin"}):a.jsx(Pf,{className:"size-3.5"})})]}),e.error&&a.jsx("div",{className:"px-2 text-xs text-error",children:e.error}),e.connectors.map(t=>a.jsx(Dst,{connector:t,onLink:e.onLink,onFill:e.onFill},t.name))]})}function Ost(e){return e.status==="connected"?a.jsxs(dc,{variant:"secondary",className:"gap-1",children:[a.jsx(Ut,{className:"size-3"}),e.action==="link"?"已关联":"已填 key"]}):e.status==="reauth"?a.jsx(dc,{variant:"destructive",children:"需重新关联"}):a.jsx(dc,{variant:"outline",children:e.action==="link"?"未关联":"未填 key"})}function Dst(e){const t=e.connector,[n,r]=p.useState(!1),[s,i]=p.useState({}),[o,l]=p.useState(!1),[c,u]=p.useState(null),d=t.fields.every(f=>(s[f]??"").length>0),h=async()=>{l(!0),u(null);try{await e.onFill(t.name,s),i({}),r(!1)}catch(f){u(f instanceof Error?f.message:String(f))}finally{l(!1)}};return a.jsxs("div",{className:"px-2 py-1.5","data-testid":`cloud-connector-${t.name}`,children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("span",{className:"font-mono text-[13px] text-text-100",children:t.name}),Ost(t),a.jsx("span",{className:"min-w-0 flex-1 truncate font-mono text-[11px] text-text-500",title:t.id,children:t.id}),t.action==="link"?a.jsxs($e,{size:"sm",variant:t.status==="connected"?"outline":"default",disabled:!t.authUrl,title:t.authUrl?"在浏览器里完成授权,回来点刷新":"这家服务现在给不出授权链接(不按 MCP 规范,或暂时打不通)",onClick:()=>e.onLink(t),children:[a.jsx(Rr,{className:"size-3.5"}),t.status==="connected"?"重新关联":"关联"]}):a.jsx($e,{size:"sm",variant:t.status==="connected"?"outline":"default",onClick:()=>r(f=>!f),children:t.status==="connected"?"重新粘贴 API key":"粘贴 API key"})]}),t.note&&a.jsx("div",{className:"mt-1 text-[11px] text-text-400","data-testid":`cloud-connector-note-${t.name}`,children:t.note}),n&&t.action==="fill"&&a.jsxs("div",{className:"mt-2 space-y-1.5 rounded-md border border-border p-2",children:[t.fields.map(f=>a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("label",{htmlFor:`${t.name}-${f}`,className:"w-48 shrink-0 font-mono text-xs text-text-400",children:f}),a.jsx(yr,{id:`${t.name}-${f}`,type:"password",autoComplete:"off",placeholder:"粘贴值",value:s[f]??"",onChange:m=>i({...s,[f]:m.target.value})})]},f)),a.jsxs("div",{className:"flex items-center gap-3 pt-0.5",children:[a.jsx($e,{size:"sm",disabled:!d||o,onClick:()=>void h(),children:o?"保存中…":"保存"}),a.jsx("span",{className:"text-xs text-text-500",children:"值加密存在中心,只进你自己的云上任务;不进对话记录、不落本机"})]}),c&&a.jsx("div",{className:"text-xs text-error",children:c})]})]})}function $st({personaId:e,render:t}){const n=Vn(),r=p.useMemo(()=>new qt(n),[n]),s=j3(r,e);return t({blockedReason:fS(s),connectors:a.jsx(Ast,{connectors:s.connectors??[],loading:s.loading,error:s.error,onLink:i=>{i.authUrl&&window.open(i.authUrl,"_blank","noopener")},onFill:async(i,o)=>{await r.cloudConnectorFill(e,i,o),await s.reload()},onRefresh:()=>void s.reload()})})}function Lst({state:e}){const t=Bst(e);return a.jsxs("span",{className:J("inline-flex items-center gap-1.5 rounded-sm px-2 py-0.5 text-xs font-medium",t.className),title:t.title,"data-testid":"connection-badge","data-state":e.kind,children:[a.jsx(t.Icon,{className:J("w-3 h-3",t.iconClassName),"aria-hidden":"true"}),a.jsx("span",{children:t.label})]})}function Bst(e){switch(e.kind){case"connected":{const t=e.mode==="remote"?" · 远程":e.mode==="localhost"?" · 本机":"";return{Icon:ui,iconClassName:"text-success",label:`已连接${t}`,title:e.mode==="remote"?`daemon ${e.daemonVersion??""} (proto v${e.protocolVersion??"?"}) — ${e.url}`:`daemon ${e.daemonVersion??""} (proto v${e.protocolVersion??"?"})`,className:"bg-success-dim text-success"}}case"connecting":return{Icon:DA,iconClassName:"animate-spin",label:"连接中",title:"connecting to daemon",className:"bg-bg-200 text-text-300"};case"reconnecting":return{Icon:DA,iconClassName:"animate-spin text-warning",label:"重连中",title:`第 ${e.attempt} 次,${Math.round(e.nextDelayMs/1e3)}s 后重连`,className:"bg-warning-dim text-warning"};case"disconnected":return{Icon:dT,iconClassName:"text-error",label:"未连接",title:e.reason??"daemon disconnected",className:"bg-error-dim text-error"};case"auth-failed":return{Icon:Pg,iconClassName:"text-error",label:"Token 错误",title:e.reason??"auth failed",className:"bg-error-dim text-error"};case"version-mismatch":return{Icon:Pg,iconClassName:"text-warning",label:"协议版本不匹配",title:`daemon v${e.daemonProtocol} > 支持 v${e.supportedProtocol}`,className:"bg-warning-dim text-warning"};case"idle":default:return{Icon:LH,iconClassName:"text-text-400",label:"初始化",title:"idle",className:"bg-bg-200 text-text-300"}}}function Fst({state:e,api:t,onStateChange:n,onAddHost:r,onError:s,className:i}){const o=e.pairedHosts,l=e.mode==="remote"?e.activeHostId:void 0;return a.jsxs("div",{className:J("flex flex-col gap-2.5 py-1",i),"data-testid":"remote-hosts-list",children:[o.length===0&&a.jsx("div",{className:"text-sm text-text-300 py-4 text-center",children:"还没有配对过主机"}),o.map(c=>{const u=c.deviceId===l;return a.jsxs("div",{"data-testid":`remote-host-${c.deviceId}`,className:J("flex items-center gap-3 rounded-xl border p-3.5",u?"border-accent bg-bg-200":"border-border bg-elevated"),children:[a.jsx("div",{className:"flex h-9 w-9 items-center justify-center rounded-lg bg-bg-300 text-text-200 shrink-0",children:a.jsx(KH,{className:"h-4.5 w-4.5"})}),a.jsxs("div",{className:"min-w-0 flex-1",children:[a.jsxs("div",{className:"flex items-center gap-1.5 text-sm font-medium text-text-100",children:[a.jsx("span",{className:"truncate",children:c.displayName}),u&&a.jsxs("span",{className:"flex items-center gap-1 text-[10px] text-emerald-500 shrink-0",children:[a.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-500"})," 已连接"]})]}),a.jsx("div",{className:"text-xs text-text-400 truncate",children:c.wssUrl.replace(/^wss:\/\//,"")})]}),!u&&a.jsx($e,{variant:"outline",size:"sm","data-testid":`remote-host-switch-${c.deviceId}`,onClick:()=>void t.setActive(c.deviceId),children:"切换"}),a.jsx("button",{type:"button",title:"移除","data-testid":`remote-host-remove-${c.deviceId}`,className:"p-1.5 rounded text-text-400 hover:text-destructive hover:bg-bg-300 transition-colors",onClick:()=>{t.remove(c.deviceId).then(()=>t.get()).then(n).catch(d=>{if(!s)throw d;s(d instanceof Error?d:new Error(String(d)))})},children:a.jsx(bs,{className:"h-3.5 w-3.5"})})]},c.deviceId)}),a.jsxs("div",{className:"flex items-center justify-center gap-2 pt-1",children:[a.jsx($e,{variant:"ghost",size:"sm",className:"text-text-300","data-testid":"remote-hosts-add",onClick:r,children:"+ 添加主机"}),e.mode==="remote"&&a.jsx($e,{variant:"outline",size:"sm","data-testid":"remote-hosts-leave",onClick:()=>void t.leave(),children:"回到本机模式"})]})]})}const II="ws://127.0.0.1:18790",zst=(e="localhost")=>({editingId:null,name:e==="remote"?"远程":"本机",mode:e,url:e==="remote"?"":II,token:""}),Hst=e=>({editingId:e.id,name:e.name,mode:e.mode,url:e.url,token:""});function Ust({state:e}){const t=fte(e);return a.jsx("p",{className:"text-[11px] text-text-400 mt-3","data-testid":"daemon-reconnect-hint",children:t})}function Wst({state:e,onClose:t,remoteHosts:n,pairProbe:r}){var q;const s=eW(),[i,o]=p.useState(!1),[l,c]=p.useState([]),[u,d]=p.useState(null),[h,f]=p.useState(null),[m,g]=p.useState(null),[x,b]=p.useState(null),[y,v]=p.useState(null),w=n??null,[_,S]=p.useState(null),[k,C]=p.useState(null),[j,T]=p.useState(!1),E=async()=>{if(w)try{S(await w.get()),C(null)}catch(H){C(H.message)}};p.useEffect(()=>{E()},[w]);const R=async()=>{try{const H=await s.snapshot();c(Array.isArray(H==null?void 0:H.profiles)?H.profiles:[]),d((H==null?void 0:H.activeId)??null)}catch(H){b(`读取 profile 列表失败:${H.message}`)}};p.useEffect(()=>(R(),s.subscribe(O=>{c(O.profiles),d(O.activeId)})),[s]);const P=H=>{g(H),b(null),setTimeout(()=>g(O=>O===H?null:O),3e3)},M=async()=>{o(!0),b(null);try{u?(await s.activate(u),P("重连中…")):P("还没有 profile,请先添加一个")}finally{o(!1)}},$=H=>{f(zst(H)),b(null)},B=H=>{f(Hst(H)),b(null)},z=H=>{f(O=>O&&{...O,mode:H,url:H==="localhost"?II:"",name:O.name||(H==="remote"?"远程":"本机")}),b(null)},W=async H=>{if(H!==u){o(!0),b(null);try{await s.activate(H),P("已切换 profile")}catch(O){b(`切换失败:${O.message}`)}finally{o(!1)}}},L=async H=>{if(y!==H.id){v(H.id),b(null);return}v(null),o(!0),b(null);try{await s.delete(H.id),f(O=>(O==null?void 0:O.editingId)===H.id?null:O),P("已删除")}catch(O){b(`删除失败:${O.message}`)}finally{o(!1)}},A=async H=>{if(H.preventDefault(),b(null),!h)return;let O=h.url.trim(),V=h.token.trim();if(h.mode==="remote"&&O.includes("#token=")){const X=PT(O);O=X.url,!V&&X.token&&(V=X.token)}if(!O){b("URL 必填");return}if(h.mode==="remote"&&!V){const X=l.find(Y=>Y.id===h.editingId);if(!(X!=null&&X.token)){b("远程模式需要填 token(粘 Connect 整行也行)");return}}o(!0);try{await s.upsert({id:h.editingId??void 0,name:h.name.trim()||(h.mode==="remote"?"远程":"本机"),mode:h.mode,url:O,token:V||void 0}),f(null),P("已保存,连接中…")}catch(X){b(X.message)}finally{o(!1)}},I=(_==null?void 0:_.mode)==="remote"?_.pairedHosts.find(H=>H.deviceId===_.activeHostId)??null:null;return a.jsxs("div",{className:"flex flex-col items-center px-6 pt-12 pb-12 min-h-full relative","data-testid":"daemon-setup",children:[t?a.jsx("button",{type:"button",onClick:t,className:"absolute right-3 top-3 p-1.5 rounded-md text-text-400 hover:text-text-100 hover:bg-bg-200","aria-label":"关闭","data-testid":"daemon-setup-close",children:a.jsx(Jt,{className:"w-4 h-4"})}):null,a.jsxs("div",{className:"w-full max-w-md space-y-6",children:[a.jsxs("div",{className:"rounded-lg border border-border bg-elevated p-6 shadow-md",children:[a.jsx("h2",{className:"text-lg font-semibold text-text-100 mb-1",children:"Clawd 连接"}),w?a.jsx("p",{className:"text-sm text-text-300 mb-4","data-testid":"daemon-setup-intro",children:I?a.jsxs(a.Fragment,{children:["这台电脑作为「",I.displayName,"」的远程界面运行,当前连不上主机。",a.jsx("br",{}),((_==null?void 0:_.pairedHosts.length)??0)>1?"主机不在线或凭证已失效时,可以切到其他已配对主机,或回到本机模式。":"主机不在线或凭证已失效时,可以回到本机模式,或配对另一台主机。"]}):a.jsxs(a.Fragment,{children:["本机 daemon 由 Clawd 自动启动和管理,无需手动安装或运行。",a.jsx("br",{}),"连不上时点「重新检查连接」;也可以把这台电脑连到另一台主机。"]})}):a.jsxs(a.Fragment,{children:[a.jsx("p",{className:"text-sm text-text-300 mb-4","data-testid":"daemon-setup-intro",children:"这个界面需要连接一个正在运行的 clawd daemon。先在终端启动它,再在下面选 / 加连接:"}),a.jsx("pre",{className:"text-xs font-mono text-text-200 bg-bg-100 rounded-md p-3 mb-4 overflow-x-auto","data-testid":"daemon-setup-npx-hint",children:`npx @clawos-dev/clawd@latest # 本机
|
|
943
943
|
npx @clawos-dev/clawd@latest --tunnel # 远程(输出 Connect: 一行整粘到下面)`})]}),w&&e.kind==="auth-failed"?a.jsx("p",{className:"text-xs text-warning mb-4","data-testid":"daemon-setup-auth-hint",children:I?"主机凭证已失效:移除该主机后粘贴 connect-code 重新配对。":"本机连接凭证不匹配:重启 Clawd 会重新拉起 daemon 并刷新凭证。"}):null,a.jsxs("div",{className:"flex items-center justify-between gap-3",children:[a.jsx($e,{disabled:i||h!==null,onClick:M,"data-testid":"daemon-recheck",children:i?"检查中…":"重新检查连接"}),a.jsx(Lst,{state:e})]}),e.kind==="reconnecting"?a.jsx(Ust,{state:e}):null]}),w?a.jsxs("div",{className:"rounded-lg border border-border bg-elevated p-4","data-testid":"daemon-remote-hosts",children:[a.jsx("h3",{className:"text-sm font-semibold text-text-200 mb-3",children:"已配对主机"}),k?a.jsxs("div",{className:"flex items-center justify-between gap-2 text-xs text-error","data-testid":"daemon-remote-hosts-error",children:[a.jsxs("span",{children:["读取已配对主机失败:",k]}),a.jsx("button",{type:"button",className:"underline shrink-0",onClick:()=>void E(),children:"重试"})]}):_?a.jsxs(a.Fragment,{children:[a.jsx(Fst,{state:_,api:w,onStateChange:S,onAddHost:()=>T(H=>!H),onError:H=>b(`移除主机失败:${H.message}`)}),j?a.jsxs("div",{className:"mt-3 rounded-xl border border-accent bg-bg-50 p-4","data-testid":"daemon-pair-form",children:[a.jsx("div",{className:"text-sm font-medium text-text-100 mb-1",children:"连接另一台电脑"}),a.jsx(EI,{api:w,probe:r})]}):null]}):a.jsx("p",{className:"text-xs text-text-400",children:"读取中…"})]}):a.jsxs("div",{className:"rounded-lg border border-border bg-elevated p-4","data-testid":"daemon-profiles",children:[a.jsxs("div",{className:"flex items-center justify-between mb-3",children:[a.jsx("h3",{className:"text-sm font-semibold text-text-200",children:"已保存的连接"}),a.jsxs("div",{className:"flex gap-2",children:[a.jsx("button",{type:"button",className:"text-[11px] text-text-300 hover:text-text-100 underline-offset-2 hover:underline",onClick:()=>$("localhost"),"data-testid":"daemon-new-localhost",children:"+ 本机"}),a.jsx("button",{type:"button",className:"text-[11px] text-text-300 hover:text-text-100 underline-offset-2 hover:underline",onClick:()=>$("remote"),"data-testid":"daemon-new-remote",children:"+ 远程"})]})]}),l.length===0?a.jsx("p",{className:"text-xs text-text-400",children:"还没有 profile。点击右上角 + 本机 / + 远程 新建一个。"}):a.jsx("ul",{className:"space-y-1.5",children:l.map(H=>{const O=H.id===u,V=H.id===(h==null?void 0:h.editingId);return a.jsxs("li",{className:`flex items-center justify-between gap-3 rounded-md px-2.5 py-2 text-xs ${V?"bg-bg-200":"hover:bg-bg-200"}`,"data-testid":`daemon-profile-${H.id}`,children:[a.jsxs("button",{type:"button",className:"flex-1 min-w-0 text-left",onClick:()=>B(H),"data-testid":`daemon-profile-edit-${H.id}`,children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("span",{className:"font-medium text-text-100 truncate",children:H.name}),O?a.jsx("span",{className:`text-[10px] tracking-wide px-1.5 py-0.5 rounded ${e.kind==="connected"?"text-success bg-success-dim":"text-text-300 bg-bg-200"}`,"data-testid":`daemon-profile-active-chip-${H.id}`,children:e.kind==="connected"?"已连接":"已选中"}):null,a.jsx("span",{className:"text-[10px] text-text-400",children:H.mode})]}),a.jsx("div",{className:"text-[11px] text-text-400 truncate",children:H.url})]}),a.jsxs("div",{className:"flex items-center gap-1.5 shrink-0",children:[a.jsx("button",{type:"button",className:`text-[11px] ${V?"text-text-100 font-semibold":"text-text-300 hover:text-text-100"}`,onClick:()=>B(H),disabled:i,"data-testid":`daemon-profile-edit-btn-${H.id}`,children:V?"编辑中":"编辑"}),O?null:a.jsx("button",{type:"button",className:"text-[11px] text-text-300 hover:text-text-100",onClick:()=>W(H.id),disabled:i,"data-testid":`daemon-profile-activate-${H.id}`,children:"切换"}),a.jsx("button",{type:"button",className:`text-[11px] ${y===H.id?"text-error font-semibold":"text-text-400 hover:text-error"}`,onClick:()=>L(H),onBlur:()=>{y===H.id&&v(null)},disabled:i,"data-testid":`daemon-profile-delete-${H.id}`,children:y===H.id?"再点确认":"删除"})]})]},H.id)})})]}),h?a.jsxs("form",{onSubmit:A,className:"rounded-lg border border-border bg-elevated p-4 space-y-3","data-testid":"daemon-config-form",children:[a.jsx("h3",{className:"text-sm font-semibold text-text-200",children:h.editingId?`编辑:${h.name||h.editingId}`:"新建 profile"}),a.jsxs("div",{className:"space-y-1.5",children:[a.jsx("label",{htmlFor:"daemon-name",className:"text-xs text-text-300",children:"名称"}),a.jsx(yr,{id:"daemon-name",value:h.name,onChange:H=>f(O=>O&&{...O,name:H.target.value}),"data-testid":"daemon-name-input"})]}),a.jsxs("div",{className:"flex gap-4 text-sm","data-testid":"daemon-mode",children:[a.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[a.jsx("input",{type:"radio",name:"daemon-mode",value:"localhost",checked:h.mode==="localhost",onChange:()=>z("localhost"),"data-testid":"daemon-mode-localhost"}),a.jsx("span",{children:"Localhost"})]}),a.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[a.jsx("input",{type:"radio",name:"daemon-mode",value:"remote",checked:h.mode==="remote",onChange:()=>z("remote"),"data-testid":"daemon-mode-remote"}),a.jsx("span",{children:"Remote (frp tunnel)"})]})]}),a.jsxs("div",{className:"space-y-1.5",children:[a.jsx("label",{htmlFor:"daemon-url-input",className:"text-xs text-text-300",children:h.mode==="remote"?"连接码 (URL 或 URL#token=...)":"URL"}),a.jsx(yr,{id:"daemon-url-input",value:h.url,onChange:H=>f(O=>O&&{...O,url:H.target.value}),placeholder:h.mode==="remote"?"wss://<subdomain>.tunnel.clawos.chat#token=...":II,required:!0,"data-testid":h.mode==="remote"?"daemon-remote-url-input":"daemon-url-input"}),h.mode==="remote"?a.jsxs("p",{className:"text-[11px] text-text-400",children:["在终端跑 ",a.jsx("code",{children:"clawd --tunnel"}),",把 stdout 里 ",a.jsx("code",{children:"Connect:"})," 整行粘进来即可。"]}):null]}),a.jsxs("div",{className:"space-y-1.5",children:[a.jsxs("label",{htmlFor:"daemon-token",className:"text-xs text-text-300",children:["Auth Token ",h.mode==="remote"?"(必填,或粘 Connect 整行自动拆)":"(可选)"]}),a.jsx(yr,{id:"daemon-token",type:"password",value:h.token,onChange:H=>f(O=>O&&{...O,token:H.target.value}),placeholder:h.editingId&&((q=l.find(H=>H.id===h.editingId))!=null&&q.token)?"已保存(留空保持不变)":h.mode==="remote"?"未含 #token= 时单独填":"daemon --tunnel 启动时填,否则留空","data-testid":"daemon-token-input"})]}),a.jsxs("div",{className:"flex items-center justify-between gap-3 pt-1",children:[a.jsx($e,{type:"submit",disabled:i,"data-testid":"daemon-submit",children:i?"应用中…":"保存并切换"}),a.jsx("button",{type:"button",className:"text-[11px] text-text-300 hover:text-text-100 underline-offset-2 hover:underline",onClick:()=>f(null),"data-testid":"daemon-cancel-edit",children:"取消"})]})]}):null,m?a.jsx("div",{className:"rounded-md border border-border bg-elevated px-3 py-2 text-xs text-text-200",role:"status","data-testid":"daemon-setup-msg",children:m}):null,x?a.jsx("div",{className:"rounded-md border border-red-400 bg-red-50 px-3 py-2 text-xs text-red-700",role:"alert","data-testid":"daemon-setup-error",children:x}):null]})]})}function Vst({open:e,onOpenChange:t,session:n,embedded:r=!1}){const{capabilities:s}=Io(e?n.tool||"claude":null),i=(s==null?void 0:s.toolSessionIdLabel)??"Tool Session ID";if(!e)return null;const o=a.jsxs("div",{className:"flex-1 min-h-0 flex flex-col px-4 py-4 gap-6 overflow-y-auto",children:[a.jsxs("div",{className:"shrink-0",children:[a.jsx("div",{className:"text-[11px] font-semibold uppercase tracking-wider text-text-400/70 mb-1",children:"Working Directory"}),a.jsx("div",{className:"text-[12px] font-mono text-text-300 bg-bg-100 rounded-lg px-3 py-2 truncate","data-testid":"config-cwd",title:n.cwd,children:n.cwd})]}),a.jsx("div",{className:"shrink-0",children:a.jsx(UF,{testId:"config-session-id",label:"Clawd Session ID",value:n.sessionId})}),n.toolSessionId?a.jsx("div",{className:"shrink-0",children:a.jsx(UF,{testId:"config-tool-session-id",label:i,value:n.toolSessionId})}):null]});return r?a.jsxs("div",{"data-testid":"config-drawer",className:"h-full w-full flex flex-col",children:[a.jsx("div",{className:"flex items-center px-4 py-3 border-b border-bg-300/30 shrink-0",children:a.jsx("span",{className:"text-[14px] font-semibold text-text-100",children:"Session Info"})}),o]}):a.jsxs("div",{"data-testid":"config-drawer",className:"h-full w-full flex flex-col border-l border-bg-300/40 bg-bg-0 min-w-0",children:[a.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-b border-bg-300/30 shrink-0",children:[a.jsx("span",{className:"text-[14px] font-semibold text-text-100",children:"Session Info"}),a.jsx("button",{type:"button",onClick:()=>t(!1),"data-testid":"config-drawer-close",className:"flex items-center justify-center w-7 h-7 rounded-md text-text-400 hover:text-text-100 hover:bg-text-100/5 transition-colors cursor-pointer","aria-label":"Close",children:a.jsx(Jt,{className:"w-4 h-4"})})]}),o]})}function UF({testId:e,label:t,value:n}){const[r,s]=p.useState(!1),i=p.useRef(null);p.useEffect(()=>()=>{i.current&&clearTimeout(i.current)},[]);const o=()=>{typeof navigator>"u"||!navigator.clipboard||navigator.clipboard.writeText(n).then(()=>{s(!0),i.current&&clearTimeout(i.current),i.current=setTimeout(()=>s(!1),2e3)},()=>{})};return a.jsxs("div",{"data-testid":e,children:[a.jsx("div",{className:"text-[11px] font-semibold uppercase tracking-wider text-text-400/70 mb-1",children:t}),a.jsxs("button",{type:"button",onClick:o,"data-testid":`${e}-copy`,title:r?"Copied":`Copy: ${n}`,className:"w-full flex items-center gap-2 text-[12px] font-mono text-text-300 bg-bg-100 hover:bg-bg-200 rounded-lg px-3 py-2 transition-colors cursor-pointer text-left group",children:[a.jsx("span",{className:"truncate flex-1 min-w-0","data-testid":`${e}-value`,children:n}),r?a.jsx(Ut,{className:"w-3.5 h-3.5 shrink-0 text-accent"}):a.jsx(Lo,{className:"w-3.5 h-3.5 shrink-0 opacity-60 group-hover:opacity-100 transition-opacity"})]})]})}function qst(e){const[t,n]=p.useState("loading"),[r,s]=p.useState(null),[i,o]=p.useState(null),[l,c]=p.useState(0),[u,d]=p.useState(!1),[h,f]=p.useState(null),m=p.useCallback(async()=>{try{const[v,w]=await Promise.all([e.getVersionInfo(),e.checkForUpdate()]);s(v),o(w),f(null),w.downloadState==="downloaded"?n("downloaded"):w.downloadState==="downloading"?n("downloading"):w.hasUpdate?n("has-update"):n("idle")}catch(v){f(v instanceof Error?v.message:String(v)),n("error")}},[e]),g=m,x=m,b=p.useCallback(async()=>{n("downloading"),c(0),d(!1);try{await e.downloadUpdate()}catch(v){f(v instanceof Error?v.message:String(v)),n("error")}},[e]),y=p.useCallback(async()=>{n("applying");try{await e.applyUpdate()}catch(v){f(v instanceof Error?v.message:String(v)),n("error")}},[e]);return p.useEffect(()=>{m();const v=e.onDownloadProgress(_=>{c(_.percent),d(_.stage==="finalizing")}),w=e.onDownloadComplete(()=>{d(!1),m()});return()=>{v(),w()}},[e,m]),{state:t,version:r,info:i,progress:l,finalizing:u,error:h,check:g,download:b,apply:y,retry:x}}const E3=p.createContext(null);function Kst({api:e,children:t}){return e?a.jsx(Gst,{api:e,children:t}):a.jsx(E3.Provider,{value:null,children:t})}function Gst({api:e,children:t}){const n=qst(e);return a.jsx(E3.Provider,{value:n,children:t})}function mS(){return p.useContext(E3)}function Yst({info:e,onKill:t,killing:n}){return a.jsxs("div",{className:"rounded-md border border-neutral-200 p-3 flex items-center justify-between gap-3 text-sm",children:[a.jsxs("div",{className:"flex flex-col gap-0.5",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsxs("span",{className:"font-mono",children:["pid ",e.pid]}),a.jsx("span",{className:e.kind==="desktop"?"text-xs rounded bg-blue-100 text-blue-700 px-1.5 py-0.5":"text-xs rounded bg-neutral-100 text-neutral-700 px-1.5 py-0.5",children:e.kind})]}),a.jsxs("div",{className:"text-xs text-neutral-500",children:[e.bundleVersion?`bundle ${e.bundleVersion}`:"no bundle version",e.port!=null?` · port ${e.port}`:""]}),a.jsxs("div",{className:"text-xs text-neutral-400",children:["started ",e.startedAt]})]}),a.jsx("div",{className:"flex gap-2",children:a.jsx("button",{type:"button",disabled:n,onClick:t,className:"rounded border border-red-300 text-red-600 px-2 py-1 disabled:opacity-50",children:n?"Killing…":"Kill"})})]})}function Xst({api:e}){const[t,n]=p.useState(null),[r,s]=p.useState(!1),[i,o]=p.useState(null);async function l(){s(!0);try{n(await e.scan())}finally{s(!1)}}async function c(u){o(u);try{await e.kill(u),await l()}finally{o(null)}}return a.jsxs("section",{className:"flex flex-col gap-3",children:[a.jsxs("div",{className:"flex items-center justify-between",children:[a.jsx("h3",{className:"text-sm font-semibold",children:"Daemon"}),a.jsx("button",{type:"button",onClick:l,disabled:r,className:"rounded border border-neutral-300 px-2 py-1 text-sm disabled:opacity-50",children:r?"Scanning…":"Scan daemon"})]}),t===null&&a.jsx("p",{className:"text-xs text-neutral-500",children:"Click Scan to list daemon processes."}),t!==null&&t.length===0&&a.jsx("p",{className:"text-xs text-neutral-500",children:"No daemon found."}),t!==null&&t.length>0&&a.jsx("div",{className:"flex flex-col gap-2",children:t.map(u=>a.jsx(Yst,{info:u,killing:i===u.pid,onKill:()=>c(u.pid)},u.pid))})]})}const kte=[{value:"tui",label:"终端(TUI)"},{value:"sdk",label:"消息流(SDK)"}];function WF(e){var t;return((t=kte.find(n=>n.value===e))==null?void 0:t.label)??e}function Zst({ccMode:e,effectiveMode:t,onChangeCcMode:n,onAddMobile:r,onImportExternalSessions:s,daemonScanApi:i}){const[o,l]=p.useState(null),[c,u]=p.useState(null),[d,h]=p.useState(!1),f=e!==null&&t!==void 0&&t!==e;return a.jsxs("div",{className:"space-y-3",children:[e!==null&&a.jsxs(a.Fragment,{children:[a.jsx(kr,{label:"CC 运行模式",children:a.jsx("div",{role:"radiogroup","aria-label":"CC 运行模式","data-testid":"cc-mode-selector",className:"inline-flex items-center rounded-md border border-border bg-bg-50 p-0.5",children:kte.map(m=>{const g=m.value===e;return a.jsx("button",{type:"button",role:"radio","aria-checked":g,"data-testid":`cc-mode-option-${m.value}`,onClick:()=>{g||l(m.value)},className:J("rounded px-2.5 py-1 text-xs font-medium transition-colors",g?"bg-accent text-white shadow-sm":"text-text-400 hover:text-text-200"),children:m.label},m.value)})})}),a.jsx("p",{className:"text-xs text-text-400 leading-relaxed",children:"终端模式在会话页内嵌 CC 原生终端界面;消息流模式以结构化消息驱动 CC。切换需重启应用。"}),f&&a.jsxs("p",{"data-testid":"cc-mode-mismatch-hint",className:"text-xs leading-relaxed text-amber-600 dark:text-amber-500",children:["当前实际生效:",WF(t),"。设置可能被环境变量 CLAWD_CC_MODE 覆盖,或本次连接的 daemon 不是由本应用启动的。"]})]}),r&&a.jsx(kr,{label:"设备",children:a.jsxs("button",{type:"button","data-testid":"about-add-mobile",onClick:r,className:"flex items-center gap-1 px-2 py-1 rounded border border-border bg-bg-50 hover:bg-text-100/5 text-xs text-text-200 hover:text-text-100 transition-colors",children:[a.jsx(qH,{className:"h-3.5 w-3.5"}),"管理设备"]})}),s&&a.jsx(kr,{label:"外部会话",children:a.jsxs("button",{type:"button","data-testid":"advanced-import-external",onClick:s,className:"flex items-center gap-1 px-2 py-1 rounded border border-border bg-bg-50 hover:bg-text-100/5 text-xs text-text-200 hover:text-text-100 transition-colors",children:[a.jsx(ffe,{className:"h-3.5 w-3.5"}),"扫描关联"]})}),i&&a.jsx("div",{className:"pt-3 border-t border-border",children:a.jsx(Xst,{api:i})}),a.jsx(Kr,{open:o!==null,onOpenChange:m=>{m||(l(null),u(null))},children:a.jsxs(Mr,{className:"max-w-sm","data-testid":"cc-mode-confirm-dialog",children:[a.jsxs(ws,{children:[a.jsx(Pr,{children:"切换 CC 运行模式"}),a.jsxs(fi,{children:["切换到",o?WF(o):"","需要重启应用才能生效。 正在进行中的回合会被中断,会话记录不会丢失。"]})]}),c&&a.jsxs("p",{"data-testid":"cc-mode-confirm-error",className:"text-xs text-red-500",children:["保存失败:",c,"。可重试或取消。"]}),a.jsxs(ba,{children:[a.jsx("button",{type:"button","data-testid":"cc-mode-confirm-cancel",disabled:d,onClick:()=>{l(null),u(null)},className:"px-3 py-1.5 rounded-md bg-bg-200 text-text-200 text-xs font-medium hover:bg-bg-300 transition-colors disabled:opacity-50",children:"取消"}),a.jsx("button",{type:"button","data-testid":"cc-mode-confirm-restart",disabled:d,onClick:()=>{var m;o&&(u(null),h(!0),(m=n==null?void 0:n(o))==null||m.catch(g=>{h(!1);const x=g instanceof Error?g.message:String(g);u(x.replace(/^Error invoking remote method '[^']+': (Error: )?/,""))}))},className:"px-3 py-1.5 rounded-md bg-accent text-white text-xs font-medium hover:opacity-90 transition-opacity disabled:opacity-50",children:d?"正在重启…":"重启并切换"})]})]})})]})}function Cte({text:e}){return e==="…"?a.jsx("span",{className:"text-[11px] text-text-400 px-0.5",children:"…"}):a.jsx("span",{className:"inline-flex items-center justify-center min-w-[22px] h-[20px] px-1.5 rounded-[5px] border border-border bg-bg-200/70 text-[11px] text-text-200 font-medium leading-none",children:e})}function Qst({open:e}){const t=p.useMemo(()=>Zee(dv()),[]),n=p.useRef(null),[r,s]=p.useState(!1),i=e&&!r;if(p.useEffect(()=>{e||s(!1)},[e]),p.useEffect(()=>{if(!i)return;const l=u=>{u.key==="Escape"&&(u.stopPropagation(),s(!0))},c=u=>{const d=n.current;d&&u.target instanceof Node&&d.contains(u.target)||s(!0)};return window.addEventListener("keydown",l,!0),window.addEventListener("pointerdown",c,!0),()=>{window.removeEventListener("keydown",l,!0),window.removeEventListener("pointerdown",c,!0)}},[i]),!i)return null;const o=Qee.map(l=>[l,t.filter(c=>c.group===l)]).filter(([,l])=>l.length>0);return a.jsxs("div",{ref:n,"data-testid":"shortcut-overlay",className:"fixed top-4 right-4 z-50 w-[300px] rounded-xl border border-border bg-bg-100 shadow-2xl p-4 select-none",children:[a.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[a.jsx(HH,{className:"w-4 h-4 text-text-300"}),a.jsx("span",{className:"text-[13px] font-semibold text-text-100",children:"键盘快捷键"})]}),a.jsx("div",{className:"flex flex-col gap-3",children:o.map(([l,c])=>a.jsxs("div",{children:[a.jsx("div",{className:"text-[11px] text-text-400 mb-1.5",children:l}),a.jsx("div",{className:"flex flex-col gap-1.5",children:c.map(u=>a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("span",{className:"flex-1 text-[12px] text-text-200 truncate",children:u.label}),a.jsx("span",{className:"flex items-center gap-1 shrink-0",children:u.keys.map((d,h)=>a.jsx(Cte,{text:d},h))})]},u.id))})]},l))})]})}function Jst(){const[e,t]=p.useState(""),n=p.useMemo(()=>Zee(dv()),[]),r=e.trim().toLowerCase(),s=r?n.filter(o=>o.label.toLowerCase().includes(r)||(o.description??"").toLowerCase().includes(r)||o.keys.some(l=>l.toLowerCase().includes(r))):n,i=Qee.map(o=>[o,s.filter(l=>l.group===o)]).filter(([,o])=>o.length>0);return a.jsxs("div",{children:[a.jsxs("div",{className:"relative mb-4",children:[a.jsx(di,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-text-400"}),a.jsx("input",{type:"text",value:e,onChange:o=>t(o.target.value),placeholder:"搜索快捷键","data-testid":"shortcuts-search",className:"w-full h-9 pl-9 pr-3 rounded-lg border border-border bg-bg-0 text-[13px] text-text-100 placeholder:text-text-400 outline-none focus:border-accent/50"})]}),i.length===0?a.jsx("div",{className:"px-1 py-6 text-[13px] text-text-400",children:"没有匹配的快捷键"}):a.jsx("div",{className:"rounded-xl border border-border overflow-hidden",children:i.map(([o,l],c)=>a.jsxs("div",{children:[a.jsx("div",{className:`px-4 pt-3 pb-1 text-[11px] text-text-400 ${c>0?"border-t border-border":""}`,children:o}),l.map(u=>a.jsxs("div",{"data-testid":`shortcut-row-${u.id}`,className:"flex items-center gap-4 px-4 py-3",children:[a.jsxs("div",{className:"flex-1 min-w-0",children:[a.jsx("div",{className:"text-[13px] text-text-100 font-medium",children:u.label}),u.description?a.jsx("div",{className:"text-[12px] text-text-400 mt-0.5",children:u.description}):null]}),a.jsx("div",{className:"flex items-center gap-1 shrink-0",children:u.keys.map((d,h)=>a.jsx(Cte,{text:d},h))})]},u.id))]},o))}),a.jsx("div",{className:"mt-3 px-1 text-[12px] text-text-400",children:"长按 ⌘ 可随时在右上角查看此速查表。部分组合键在浏览器中被浏览器保留,桌面端可完整使用。"})]})}function eit(){const e=fl(),[t,n]=p.useState(()=>{var s;return((s=e.getThemeSource)==null?void 0:s.call(e))??"light"}),r=p.useCallback(s=>{var i;n(s),(i=e.setThemeSource)==null||i.call(e,s)},[e]);return[t,r]}const tit=[{value:"light",label:"浅色"},{value:"dark",label:"深色"},{value:"system",label:"跟随系统"}];function nit(){const[e,t]=eit();return a.jsx("div",{role:"radiogroup","aria-label":"主题","data-testid":"theme-mode-selector",className:"inline-flex items-center rounded-md border border-border bg-bg-50 p-0.5",children:tit.map(n=>{const r=n.value===e;return a.jsx("button",{type:"button",role:"radio","aria-checked":r,"data-testid":`theme-option-${n.value}`,onClick:()=>t(n.value),className:J("rounded px-2.5 py-1 text-xs font-medium transition-colors",r?"bg-elevated text-text-100 shadow-sm":"text-text-400 hover:text-text-200"),children:n.label},n.value)})})}const VF="npm i -g @clawos-dev/clawd@latest",rit=[{key:"about",label:"关于",icon:a.jsx(Pu,{className:"w-4 h-4"})},{key:"account",label:"账号",icon:a.jsx(eU,{className:"w-4 h-4"})},{key:"dashboard",label:"Dashboard",icon:a.jsx(mT,{className:"w-4 h-4"})},{key:"advanced",label:"高级",icon:a.jsx(Gpe,{className:"w-4 h-4"})},{key:"shortcuts",label:"快捷键",icon:a.jsx(HH,{className:"w-4 h-4"})},{key:"archived",label:"已归档的聊天",icon:a.jsx(Ru,{className:"w-4 h-4"})},{key:"archived-topics",label:"已归档的话题",icon:a.jsx(yT,{className:"w-4 h-4"})}];function sit({onBack:e,initialNav:t="about",api:n,ownerPrincipalId:r,daemonScanApi:s,daemonVersion:i,daemonSource:o,globalCliVersion:l,onAddMobile:c,onImportExternalSessions:u,ccMode:d=null,effectiveCcMode:h,onChangeCcMode:f,archivedSlot:m,archivedTopicsSlot:g,feishuSlot:x,cloudApiKeySlot:b,githubSlot:y,poolSlot:v,channelsSlot:w,engineSlot:_,dashboardSlot:S}){const[k,C]=p.useState(t),j=rit.filter(E=>E.key!=="dashboard"||S),T=(E,R)=>a.jsxs("button",{type:"button",onClick:()=>C(E.key),"data-testid":R?`settings-tab-${E.key}`:`settings-nav-${E.key}`,className:J(R?"flex items-center gap-1.5 px-3 py-1.5 rounded-md text-[13px] whitespace-nowrap":"flex items-center gap-2.5 px-3 py-[6px] rounded-md text-[13px] text-left",k===E.key?"bg-text-100/10 text-text-100":"text-text-200 hover:bg-text-100/5"),children:[a.jsx("span",{className:"text-text-300",children:E.icon}),E.label]},E.key);return a.jsxs("div",{className:`fixed inset-0 z-50 bg-bg-100 text-text-100 flex flex-col md:flex-row ${Ax}`,children:[a.jsxs("div",{className:"md:hidden shrink-0 border-b border-border px-2 pt-2 pb-2 flex items-center gap-2",children:[a.jsx("button",{type:"button",onClick:e,"data-testid":"about-back","aria-label":"返回应用",className:"flex items-center gap-1.5 px-2 py-1.5 text-[13px] text-text-300 hover:text-text-100",children:a.jsx(fj,{className:"w-4 h-4"})}),j.map(E=>T(E,!0))]}),a.jsxs("div",{className:"hidden md:flex w-[220px] shrink-0 border-r border-border bg-bg-50/60 flex-col",children:[a.jsxs("button",{type:"button",onClick:e,"data-testid":"about-back-desktop",className:"flex items-center gap-2 px-4 pt-4 pb-3 text-[13px] text-text-300 hover:text-text-100 text-left",children:[a.jsx(fj,{className:"w-4 h-4"})," 返回应用"]}),a.jsx("div",{className:"px-2 flex flex-col gap-px",children:j.map(E=>T(E,!1))})]}),a.jsx("div",{className:"flex-1 min-w-0 overflow-y-auto",children:k==="about"?a.jsxs("div",{className:"max-w-[640px] mx-auto px-6 md:px-8 py-8 md:py-10",children:[a.jsx("h1",{className:"text-[22px] font-semibold mb-6",children:"关于 Claw"}),a.jsx(iit,{api:n,ownerPrincipalId:r,daemonVersion:i,daemonSource:o,globalCliVersion:l})]}):k==="account"?a.jsxs("div",{className:"max-w-[640px] mx-auto px-6 md:px-8 py-8 md:py-10",children:[a.jsx("h1",{className:"text-[22px] font-semibold mb-6",children:"账号"}),a.jsxs("div",{className:"space-y-6",children:[x&&a.jsxs("section",{"data-testid":"settings-account-feishu",children:[a.jsx("h2",{className:"mb-2 text-sm font-medium text-text-100",children:"飞书"}),x]}),b&&a.jsxs("section",{"data-testid":"settings-account-cloud-api-key",children:[a.jsx("h2",{className:"mb-2 text-sm font-medium text-text-100",children:"云 persona"}),b]}),y&&a.jsxs("section",{"data-testid":"settings-account-github",children:[a.jsx("h2",{className:"mb-2 text-sm font-medium text-text-100",children:"GitHub"}),a.jsx("div",{className:"mb-3 text-[13px] text-text-300",children:"关联一次 GitHub,app-builder 建仓推代码、persona 上云、PR 收件箱、persona 里的 git push 都用这一个账号。"}),y]}),w??v,_&&a.jsxs("section",{"data-testid":"settings-account-engines",children:[a.jsx("h2",{className:"mb-2 text-sm font-medium text-text-100",children:"引擎"}),a.jsx("div",{className:"mb-3 text-[13px] text-text-300",children:"本机三个引擎各自登的谁、模型表里有哪些。自定义 provider 加了模型,点「刷新模型」就能在选择器里选到,不用重启。"}),_]})]})]}):k==="dashboard"?a.jsxs("div",{className:"max-w-[640px] mx-auto px-6 md:px-8 py-8 md:py-10",children:[a.jsx("h1",{className:"text-[22px] font-semibold mb-6",children:"Dashboard"}),S]}):k==="advanced"?a.jsxs("div",{className:"max-w-[640px] mx-auto px-6 md:px-8 py-8 md:py-10",children:[a.jsx("h1",{className:"text-[22px] font-semibold mb-6",children:"高级"}),a.jsx(Zst,{ccMode:d,effectiveMode:h,onChangeCcMode:f,onAddMobile:c,onImportExternalSessions:u,daemonScanApi:s})]}):k==="shortcuts"?a.jsxs("div",{className:"max-w-[640px] mx-auto px-6 md:px-8 py-8 md:py-10",children:[a.jsx("h1",{className:"text-[22px] font-semibold mb-6",children:"键盘快捷键"}),a.jsx(Jst,{})]}):k==="archived-topics"?a.jsx("div",{className:"max-w-[760px] mx-auto px-6 md:px-8 py-8 md:py-10",children:g}):a.jsx("div",{className:"max-w-[760px] mx-auto px-6 md:px-8 py-8 md:py-10",children:m})})]})}function iit({api:e,ownerPrincipalId:t,daemonVersion:n,daemonSource:r,globalCliVersion:s}){const[i,o]=p.useState(null),[l,c]=p.useState(null),[u,d]=p.useState(!1),[h,f]=p.useState(!1),m=mS();p.useEffect(()=>{if(!e)return;let b=!1;return e.getVersionInfo().then(y=>{b||(o(y.appVersion),c(y.bundleVersion))}).catch(()=>{}),()=>{b=!0}},[e]);const g=m==null?void 0:m.check;p.useEffect(()=>{g&&g()},[g]);const x=async()=>{if(t)try{await navigator.clipboard.writeText(t),f(!0),setTimeout(()=>f(!1),1500)}catch{}};return a.jsxs("div",{className:"space-y-3",children:[a.jsx(kr,{label:"版本",children:a.jsxs("div",{className:"flex items-center gap-2 justify-end min-w-0",children:[a.jsx("span",{"data-testid":"about-app-version",className:"text-text-100 text-sm font-medium",children:e?l??"…":"—"}),a.jsxs("button",{type:"button","data-testid":"about-installer-version-trigger",onClick:()=>d(b=>!b),"aria-label":"查看安装包版本",className:"relative text-text-400 hover:text-text-200 transition-colors shrink-0",children:[a.jsx(Pu,{className:"w-3.5 h-3.5"}),u&&a.jsxs("span",{role:"tooltip","data-testid":"about-installer-version-tooltip",className:"absolute right-0 top-5 z-10 whitespace-nowrap rounded border border-border bg-elevated px-2 py-1 text-xs text-text-200 shadow-md flex flex-col gap-0.5 items-end",children:[a.jsxs("span",{children:["安装包版本 ",i??"—"]}),n&&a.jsxs("span",{children:["daemon ",n,r?`(${r})`:""]})]})]}),a.jsx(ait,{})]})}),a.jsx(oit,{installedVersion:s}),a.jsx(kr,{label:"主题",children:a.jsx(nit,{})}),a.jsx(kr,{label:"本机设备 ID",children:a.jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1 justify-end",children:[a.jsx("code",{"data-testid":"about-owner-id",title:t??void 0,className:"min-w-0 truncate font-mono text-[11px] text-text-200 bg-bg-50 border border-border rounded px-2 py-1",children:t??"加载中…"}),a.jsxs("button",{type:"button",onClick:()=>void x(),disabled:!t,"data-testid":"about-owner-id-copy","aria-label":"复制本机设备 ID",className:"shrink-0 flex items-center gap-1 px-2 py-1 rounded border border-border bg-bg-50 hover:bg-text-100/5 text-xs text-text-200 disabled:opacity-50 disabled:hover:bg-bg-50",children:[h?a.jsx(Ut,{className:"h-3.5 w-3.5"}):a.jsx(Lo,{className:"h-3.5 w-3.5"}),h?"已复制":"复制"]})]})})]})}function oit({installedVersion:e}){var l;const t=mS(),[n,r]=p.useState(!1),s=((l=t==null?void 0:t.info)==null?void 0:l.manifestVersion)??null,i=async()=>{try{await navigator.clipboard.writeText(VF),r(!0),setTimeout(()=>r(!1),1500)}catch{}},o=s!==null&&e!==s;return a.jsx(kr,{label:"命令行版本",children:a.jsxs("div",{className:"flex items-center gap-2 justify-end min-w-0",children:[a.jsx("span",{"data-testid":"about-cli-version",className:e?"text-text-100 text-sm font-medium":"text-text-400 text-sm",children:e??"未安装"}),o&&a.jsxs("span",{"data-testid":"about-cli-inline",className:"contents",children:[a.jsxs("span",{className:"text-text-200 text-sm whitespace-nowrap",children:["发现 ",s]}),a.jsx("button",{type:"button",onClick:()=>void i(),title:VF,className:"shrink-0 px-3 py-1 rounded-md bg-accent text-white text-xs font-medium hover:opacity-90 transition-opacity",children:n?"已复制":"复制命令"})]})]})})}function ait(){const e=mS();if(!e)return null;const{state:t,info:n,progress:r,finalizing:s}=e,i=(n==null?void 0:n.latestVersion)??null,o=(n==null?void 0:n.downloadedVersion)??null;return t==="loading"||t==="idle"&&!(n!=null&&n.hasUpdate)?null:a.jsxs("span",{"data-testid":"about-ota-inline",className:"contents",children:[t==="has-update"&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:"text-text-200 text-sm whitespace-nowrap",children:i?`发现 ${i}`:"发现新版本"}),a.jsx("button",{type:"button",onClick:()=>void e.download(),className:"shrink-0 px-3 py-1 rounded-md bg-accent text-white text-xs font-medium hover:opacity-90 transition-opacity",children:"下载更新"})]}),t==="downloading"&&(s?a.jsxs("span",{className:"text-text-200 text-sm whitespace-nowrap",children:["正在准备安装 ",i??""]}):a.jsxs(a.Fragment,{children:[a.jsxs("span",{className:"text-text-200 text-sm whitespace-nowrap",children:["下载中 ",i??""]}),a.jsxs("span",{className:"text-text-400 text-xs shrink-0",children:[r,"%"]})]})),t==="downloaded"&&a.jsxs(a.Fragment,{children:[a.jsxs("span",{className:"text-text-200 text-sm whitespace-nowrap",children:[o??i??""," 已就绪"]}),a.jsx("button",{type:"button",onClick:()=>void e.apply(),className:"shrink-0 px-3 py-1 rounded-md bg-accent text-white text-xs font-medium hover:opacity-90 transition-opacity",children:"重启应用更新"})]}),t==="error"&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:"text-red-500 text-sm whitespace-nowrap",children:"下载失败"}),a.jsx("button",{type:"button",onClick:()=>void e.retry(),className:"shrink-0 px-3 py-1 rounded-md bg-bg-200 text-text-200 text-xs font-medium hover:bg-bg-300 transition-colors",children:"重试"})]})]})}const qF={claude:"Claude Code",codex:"Codex",pi:"pi"};function Nte(e,t=Date.now()){const n=Math.round((e*1e3-t)/6e4);if(n<=0)return"即将重置";if(n<60)return`${n} 分钟后重置`;const r=Math.floor(n/60);return r<48?`${r} 小时后重置`:`${Math.round(r/24)} 天后重置`}function lit(e){const t=new Date(e);return`${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}`}function KF(e,t){return e.windowDurationMins?e.windowDurationMins%(24*60)===0?`${e.windowDurationMins/(24*60)} 天窗`:e.windowDurationMins%60===0?`${e.windowDurationMins/60} 小时窗`:`${e.windowDurationMins} 分钟窗`:t}function mo({label:e,children:t}){return a.jsxs("div",{className:"flex items-baseline gap-3 text-[13px]",children:[a.jsx("span",{className:"w-[88px] shrink-0 text-text-400",children:e}),a.jsx("span",{className:"min-w-0 break-all text-text-200",children:t})]})}function GF({label:e,w:t}){const n=Math.max(0,Math.min(100,Math.round(t.usedPercent)));return a.jsxs("div",{className:"flex items-center gap-3 text-[13px]",children:[a.jsx("span",{className:"w-[88px] shrink-0 text-text-400",children:e}),a.jsx("div",{className:"h-1.5 w-[120px] shrink-0 overflow-hidden rounded-full bg-bg-300",children:a.jsx("div",{className:J("h-full rounded-full",n>=90?"bg-error":"bg-accent"),style:{width:`${n}%`}})}),a.jsxs("span",{className:"text-text-200",children:["已用 ",n,"%",t.resetsAt?a.jsxs("span",{className:"text-text-400",children:[" · ",Nte(t.resetsAt)]}):null]})]})}function cit({models:e,added:t}){if(e.length===0)return a.jsx("span",{className:"text-text-400",children:"空"});const n=[];for(const r of e){const s=n[n.length-1];s&&s.title===r.group?s.items.push(r):n.push({title:r.group,items:[r]})}return a.jsx("div",{className:"space-y-1.5",children:n.map((r,s)=>a.jsxs("div",{children:[r.title?a.jsx("div",{className:"mb-1 text-[11px] font-semibold text-text-400",children:r.title}):null,a.jsx("div",{className:"flex flex-wrap gap-1",children:r.items.map(i=>{const o=t.has(i.id);return a.jsxs("span",{title:i.label&&i.label!==i.id?i.label:void 0,"data-testid":o?"engine-model-new":"engine-model",className:J("inline-flex items-center gap-1 rounded border px-1.5 py-0.5 font-mono text-[11px]",o?"border-accent/60 bg-accent/10 text-text-100":"border-border text-text-300"),children:[i.id||"由 config 决定",o?a.jsx("span",{className:"rounded-sm bg-accent px-1 text-[10px] font-sans text-accent-contrast",children:"新"}):null]},i.id)})})]},`${r.title??""}#${s}`))})}function uit({a:e}){var t,n;switch(e.kind){case"claude":return a.jsxs(a.Fragment,{children:[a.jsx(mo,{label:"登录方式",children:e.apiKeySource?`API key(${e.apiKeySource})`:e.loggedIn?e.authMethod??"已登录":"未登录"}),e.apiProvider?a.jsx(mo,{label:"接入方",children:e.apiProvider}):null,e.email?a.jsx(mo,{label:"账号",children:e.email}):null,e.orgName?a.jsx(mo,{label:"组织",children:e.orgName}):null,e.subscriptionType?a.jsx(mo,{label:"订阅",children:e.subscriptionType}):null]});case"codex":return a.jsxs(a.Fragment,{children:[a.jsx(mo,{label:"登录方式",children:e.login.type==="chatgpt"?`ChatGPT · ${e.login.planType} · ${e.login.email}`:e.login.type==="apiKey"?"API key":"未登录"}),a.jsxs(mo,{label:"Provider",children:[e.provider.name,e.provider.baseUrl?a.jsxs("span",{className:"text-text-400",children:[" · ",e.provider.baseUrl]}):null]}),(t=e.rateLimits)!=null&&t.primary?a.jsx(GF,{label:KF(e.rateLimits.primary,"短窗"),w:e.rateLimits.primary}):null,(n=e.rateLimits)!=null&&n.secondary?a.jsx(GF,{label:KF(e.rateLimits.secondary,"长窗"),w:e.rateLimits.secondary}):null]});case"pi":return a.jsxs(a.Fragment,{children:[e.providers.length===0?a.jsx(mo,{label:"Provider",children:"没有配置任何 provider"}):null,e.providers.map(r=>a.jsxs(mo,{label:r.id,children:[r.modelCount," 个模型",r.credential?a.jsxs("span",{className:"text-text-400",children:[" · ",r.credential==="oauth"?`OAuth${r.oauthExpiresAt?`(${r.oauthExpiresAt*1e3<Date.now()?"已过期":`${Nte(r.oauthExpiresAt).replace("重置","过期")}`})`:""}`:"API key"]}):null]},r.id))]})}}function dit({e,expanded:t,onToggle:n,onRefresh:r}){const[s,i]=p.useState(!1),[o,l]=p.useState(null),[c,u]=p.useState(()=>new Set),d=async()=>{i(!0),l(null);const h=new Set(e.models.list.map(f=>f.id));try{const f=await r(),m=f.filter(b=>!h.has(b.id)),g=new Set(f.map(b=>b.id)),x=[...h].filter(b=>!g.has(b));u(new Set(m.map(b=>b.id))),l({ok:!0,text:m.length===0&&x.length===0?"已刷新,没有变化":`已刷新:${[m.length?`新增 ${m.length}`:"",x.length?`移除 ${x.length}`:""].filter(Boolean).join(" · ")}`})}catch(f){l({ok:!1,text:f instanceof Error?f.message:String(f)})}finally{i(!1)}};return a.jsxs("div",{"data-testid":`engine-row-${e.tool}`,className:J("rounded-lg border border-border bg-surface-card",!e.installed&&"opacity-60"),children:[a.jsxs("div",{className:"flex items-center gap-2 px-3 py-2.5",children:[a.jsxs("button",{type:"button",onClick:()=>{t&&u(new Set),n()},"aria-expanded":t,className:"flex min-w-0 flex-1 cursor-pointer items-center gap-2 text-left","data-testid":`engine-row-${e.tool}-toggle`,children:[a.jsx(nr,{className:J("size-4 shrink-0 text-text-400 transition-transform",t&&"rotate-90")}),a.jsx("span",{className:"text-sm font-medium leading-none text-text-100",children:qF[e.tool]}),e.version?a.jsx("span",{className:"font-mono text-[11px] leading-none text-text-400",children:e.version}):null,e.installed?null:a.jsx("span",{className:"text-xs text-text-400",children:e.tool==="codex"?"本机依赖不可用":"未安装"})]}),a.jsxs($e,{type:"button",size:"sm",variant:"outline",disabled:!e.installed||s,onClick:()=>void d(),"data-testid":`engine-row-${e.tool}-refresh`,children:[s?a.jsx(nt,{className:"size-3.5 animate-spin"}):a.jsx(Ro,{className:"size-3.5"}),a.jsx("span",{className:"ml-1.5",children:s?"刷新中…":"刷新模型"})]})]}),t?a.jsxs("div",{className:"space-y-1.5 border-t border-border px-3 py-3","data-testid":`engine-row-${e.tool}-details`,children:[e.installed?e.error?a.jsx("div",{className:"text-[13px] text-error",children:e.error}):e.account?a.jsx(uit,{a:e.account}):null:a.jsx("div",{className:"text-[13px] text-text-300",children:e.tool==="codex"?"未找到可执行的本机 Codex,与订阅 API 鉴权无关,不影响保存通道。请安装 Codex 桌面版,或运行 npm install -g @openai/codex;已有 CLI 可将其目录加入 PATH,或为 clawd 设置 CODEX_BIN 为可执行文件的绝对路径,随后重启 clawd。":`本机没装 ${qF[e.tool]},装好后重启 clawd 才能识别。`}),e.installed?a.jsxs(a.Fragment,{children:[a.jsxs(mo,{label:"模型表",children:[e.models.list.length," 个",e.models.refreshedAt?a.jsxs("span",{className:"text-text-400",children:[" · 上次刷新 ",lit(e.models.refreshedAt)]}):null,o?a.jsx("span",{className:J("ml-2",o.ok?"text-success":"text-error"),"data-testid":`engine-row-${e.tool}-note`,children:o.text}):null]}),a.jsx("div",{className:"pl-[100px]",children:a.jsx(cit,{models:e.models.list,added:c})})]}):null,e.path?a.jsx(mo,{label:"路径",children:a.jsx("span",{className:"font-mono text-xs",children:e.path})}):null]}):null]})}function hit({engines:e,onRefreshModels:t,defaultExpanded:n=[]}){const[r,s]=p.useState(()=>new Set(n));return e?a.jsx("div",{className:"space-y-2","data-testid":"engine-section",children:e.map(i=>a.jsx(dit,{e:i,expanded:r.has(i.tool),onToggle:()=>s(o=>{const l=new Set(o);return l.has(i.tool)?l.delete(i.tool):l.add(i.tool),l}),onRefresh:()=>t(i.tool)},i.tool))}):a.jsxs("div",{className:"flex items-center gap-2 text-[13px] text-text-400","data-testid":"engine-section-loading",children:[a.jsx(nt,{className:"size-4 animate-spin"}),"正在查各引擎…"]})}const YF=e=>(e??[]).map(t=>({id:t.id,label:t.label,...t.group?{group:t.group}:{}}));function fit(){const e=Vn(),t=Ws(),n=p.useMemo(()=>new qt(e),[e]),r=Io("claude"),s=Io("codex"),i=Io("pi"),o={claude:r.capabilities,codex:s.capabilities,pi:i.capabilities},[l,c]=p.useState(null),[u,d]=p.useState({});p.useEffect(()=>{let m=!1;return Promise.all(qh.map(async g=>{try{return[g,await n.engineStatus(g)]}catch(x){return[g,{tool:g,installed:!0,error:x instanceof Error?x.message:String(x)}]}})).then(g=>{m||c(Object.fromEntries(g))}),()=>{m=!0}},[n]);const h=p.useCallback(async m=>{const g=await n.capabilitiesGet(m,{refresh:!0});t.setData(`capabilities/${m}`,()=>g);try{const x=await n.engineStatus(m);c(b=>b&&{...b,[m]:x})}catch{}return d(x=>({...x,[m]:Date.now()})),YF(g.models)},[n,t]),f=l?qh.map(m=>{var y;const{modelsLoadedAt:g,...x}=l[m]??{tool:m,installed:!1},b=u[m]??g;return{...x,models:{list:YF((y=o[m])==null?void 0:y.models),...b?{refreshedAt:b}:{}}}}):null;return a.jsx(hit,{engines:f,onRefreshModels:h})}function pit(e){const t=Ws(),[n,r]=p.useState([]),[s,i]=p.useState(null),[o,l]=p.useState(!0),[c,u]=p.useState(null),[d,h]=p.useState(!1),[f,m]=p.useState(null),[g,x]=p.useState(null),b=p.useRef(0),y=p.useRef({active:!0});p.useEffect(()=>{const C={active:!0};return y.current=C,()=>{C.active=!1,b.current++}},[e,t]);const v=p.useCallback(C=>{if(!e||!C.active)return;const j=++b.current;for(const T of["codex","claude","pi"])e.capabilitiesGet(T).then(E=>{C.active&&j===b.current&&t.setData("capabilities/"+T,()=>E)}).catch(()=>{})},[e,t]),w=p.useCallback(async()=>{if(e){x(null);try{const C=await e.subscriptionChannelGet();r(C.channels),i(C.activeChannelId)}catch(C){x((C instanceof Error?C.message:String(C)).replace(/^[A-Z_]+: /,""))}finally{l(!1)}}},[e]);p.useEffect(()=>{w()},[w]);const _=p.useCallback(async C=>{var T;if(!e)return;const j=y.current;h(!0),x(null);try{const E=await e.subscriptionChannelSave(C);r(E.channels),i(E.activeChannelId);const R=C.id??((T=E.channels.find(P=>!n.some(M=>M.id===P.id)))==null?void 0:T.id);R!==void 0&&E.activeChannelId===R&&v(j)}catch(E){const R=(E instanceof Error?E.message:String(E)).replace(/^[A-Z_]+: /,"");throw x(R),new Error(R)}finally{h(!1)}},[e,v,n]),S=p.useCallback(async C=>{if(!e)return;const j=y.current;m(C),x(null);const T=s===C;try{await e.subscriptionChannelDelete(C),await w(),T&&v(j)}catch(E){const R=(E instanceof Error?E.message:String(E)).replace(/^[A-Z_]+: /,"");throw x(R),new Error(R)}finally{m(null)}},[e,w,s,v]),k=p.useCallback(async C=>{if(!e)return;const j=y.current;u(C??"__none__"),x(null);try{await e.subscriptionChannelActivate(C),i(C),v(j)}catch(T){const E=(T instanceof Error?T.message:String(T)).replace(/^[A-Z_]+: /,"");throw x(E),new Error(E)}finally{u(null)}},[e,v]);return{channels:n,activeChannelId:s,loading:o,activatingId:c,saving:d,deletingId:f,error:g,reload:w,saveChannel:_,deleteChannel:S,activateChannel:k}}function mit({channels:e,activeChannelId:t,loading:n=!1,activatingId:r=null,saving:s=!1,deletingId:i=null,error:o=null,onSave:l,onDelete:c,onActivate:u,portalUrl:d=aT}){const[h,f]=p.useState(!1),[m,g]=p.useState(null),[x,b]=p.useState(null),[y,v]=p.useState(null),w=()=>{g(null),f(!0)},_=C=>{g(C),f(!0)},S=async()=>{if(x){v(null);try{await c(x.id),b(null)}catch(C){v(C instanceof Error?C.message:String(C)),b(null)}}},k=async C=>{v(null);try{await u(C)}catch(j){v(j instanceof Error?j.message:String(j))}};return a.jsxs("section",{"data-testid":"settings-account-channels",className:"space-y-3",children:[a.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[a.jsxs("div",{children:[a.jsx("h2",{className:"text-sm font-medium text-text-100",children:"订阅通道"}),a.jsx("div",{className:"text-[13px] text-text-300",children:"切换通道会同时影响 Clawd 和终端 CLI。选择「使用原生订阅」可恢复 Codex、Claude Code 各自的订阅。已运行的会话需重新启动。"})]}),a.jsxs($e,{type:"button",size:"sm",variant:"outline",onClick:w,"data-testid":"add-channel-btn",className:"shrink-0",children:[a.jsx(ys,{className:"size-3.5 mr-1"}),"添加通道"]})]}),(o||y)&&a.jsxs("div",{"data-testid":"channels-error",className:"rounded-md bg-error/10 border border-error/20 p-2.5 text-xs text-error flex items-start gap-2",children:[a.jsx(Sa,{className:"size-4 shrink-0 mt-0.5"}),a.jsx("span",{className:"flex-1 break-all",children:o||y})]}),!n&&a.jsxs("div",{"data-testid":"native-subscription-card","data-active":t===null?"true":"false",className:"rounded-lg border border-border bg-surface-card p-3 flex items-center justify-between gap-3",children:[a.jsxs("div",{children:[a.jsx("div",{className:"text-sm font-medium text-text-100",children:"使用原生订阅"}),a.jsx("div",{className:"text-xs text-text-300 mt-1",children:"停用订阅通道,保留已保存的通道和 CLI 登录。"})]}),t===null?a.jsx("span",{className:"text-xs text-emerald-600 dark:text-emerald-400 shrink-0",children:"当前使用"}):a.jsxs($e,{type:"button",size:"sm",variant:"outline",disabled:!!r||s||!!i,onClick:()=>void k(null),"data-testid":"activate-native-subscription",children:[r==="__none__"&&a.jsx(nt,{className:"size-3 animate-spin mr-1"}),"切回原生订阅"]})]}),n?a.jsxs("div",{className:"flex items-center justify-center py-8 text-xs text-text-400 gap-2",children:[a.jsx(nt,{className:"size-4 animate-spin"}),"加载通道列表中…"]}):e.length===0?a.jsxs("div",{"data-testid":"channels-empty",className:"rounded-lg border border-border bg-surface-card p-6 text-center",children:[a.jsx(xT,{className:"size-8 text-text-400 mx-auto mb-2 opacity-50"}),a.jsx("div",{className:"text-sm font-medium text-text-200 mb-1",children:"暂无订阅通道"}),a.jsx("div",{className:"text-xs text-text-400 max-w-sm mx-auto mb-4",children:"您可以添加自定义模型代理通道(如团队号池、私有反向代理等),并在本地随时切换生效。"}),a.jsxs("div",{className:"flex items-center justify-center gap-3",children:[a.jsxs($e,{size:"sm",onClick:w,"data-testid":"empty-add-btn",children:[a.jsx(ys,{className:"size-3.5 mr-1"}),"添加第一个通道"]}),d&&a.jsxs($e,{size:"sm",variant:"outline",onClick:()=>window.open(d,"_blank","noopener"),children:[a.jsx(Rr,{className:"size-3.5 mr-1"}),"领官方号池 Key"]})]})]}):a.jsx("div",{className:"space-y-2.5","data-testid":"channel-list",children:e.map(C=>{const j=t===C.id,T=r===C.id;return a.jsxs("div",{"data-testid":`channel-card-${C.id}`,"data-active":j?"true":"false",className:J("rounded-lg border p-3 transition-colors",j?"border-emerald-500/40 bg-surface-card shadow-sm":"border-border bg-surface-card hover:border-border/80"),children:[a.jsxs("div",{className:"flex items-start justify-between gap-3",children:[a.jsxs("div",{className:"flex flex-wrap items-center gap-2 min-w-0",children:[j?a.jsxs("span",{className:"inline-flex items-center gap-1 rounded border border-emerald-500/30 bg-emerald-500/10 px-2 py-0.5 text-xs font-medium text-emerald-600 dark:text-emerald-400 shrink-0",children:[a.jsx(ui,{className:"size-3"}),"当前使用"]}):a.jsxs($e,{type:"button",size:"sm",variant:"outline",disabled:!!r||s,onClick:()=>k(C.id),"data-testid":`activate-channel-${C.id}`,className:"h-6 px-2 text-xs shrink-0",children:[T?a.jsx(nt,{className:"size-3 animate-spin mr-1"}):null,"设为当前"]}),a.jsx("span",{className:"text-sm font-medium text-text-100 truncate",title:C.name,children:C.name}),C.remark&&a.jsx("span",{className:"text-xs text-text-300 bg-surface-muted border border-border/60 px-2 py-0.5 rounded truncate max-w-[220px]",title:C.remark,"data-testid":`channel-remark-${C.id}`,children:C.remark})]}),a.jsxs("div",{className:"flex items-center gap-1 shrink-0",children:[a.jsx($e,{type:"button",size:"sm",variant:"ghost",onClick:()=>_(C),"data-testid":`edit-channel-${C.id}`,title:"编辑通道",className:"h-7 w-7 p-0 text-text-400 hover:text-text-100",children:a.jsx(Au,{className:"size-3.5"})}),a.jsx($e,{type:"button",size:"sm",variant:"ghost",onClick:()=>b(C),"data-testid":`delete-channel-${C.id}`,title:"删除通道",className:"h-7 w-7 p-0 text-text-400 hover:text-error",children:a.jsx(bs,{className:"size-3.5"})})]})]}),a.jsxs("div",{className:"mt-2 flex flex-wrap items-center gap-x-4 gap-y-1 text-xs text-text-400 font-mono",children:[a.jsxs("div",{className:"flex items-center gap-1 truncate max-w-[340px]",title:C.baseUrl,children:[a.jsx("span",{className:"text-text-500",children:"URL:"}),a.jsx("span",{className:"truncate",children:C.baseUrl})]}),a.jsxs("div",{className:"flex items-center gap-1",children:[a.jsx("span",{className:"text-text-500",children:"Key:"}),a.jsx("span",{children:C.keyMasked||"(未设置)"})]})]})]},C.id)})}),h&&a.jsx(GX,{channel:m,saving:s,onSave:l,onClose:()=>f(!1)}),a.jsx(Kr,{open:!!x,onOpenChange:C=>{C||b(null)},children:a.jsxs(Mr,{className:"max-w-sm","data-testid":"channel-delete-modal",children:[a.jsxs(ws,{children:[a.jsx(Pr,{children:"删除订阅通道"}),a.jsxs(fi,{children:["确定要删除通道「",x==null?void 0:x.name,"」吗?该操作不可撤销。",x&&t===x.id&&a.jsx("span",{className:"block mt-1 text-error font-medium",children:"注意:该通道当前处于激活使用状态,删除后将自动激活列表中的第一个通道;若没有其他通道,将停用订阅通道。"})]})]}),a.jsxs(ba,{className:"mt-4",children:[a.jsx($e,{type:"button",variant:"outline",size:"sm",onClick:()=>b(null),disabled:!!i,children:"取消"}),a.jsx($e,{type:"button",variant:"destructive",size:"sm",onClick:S,disabled:!!i,"data-testid":"confirm-delete-btn",children:i?"删除中…":"删除"})]})]})})]})}function git(){const e=Vn(),t=p.useMemo(()=>new qt(e),[e]),n=pit(t);return a.jsx(mit,{channels:n.channels,activeChannelId:n.activeChannelId,loading:n.loading,activatingId:n.activatingId,saving:n.saving,deletingId:n.deletingId,error:n.error,onSave:n.saveChannel,onDelete:n.deleteChannel,onActivate:n.activateChannel,portalUrl:aT})}function xit({toast:e,onOpenArchived:t,onClose:n}){if(!e)return null;const r=e.kind==="error";return a.jsxs("div",{role:"status","aria-live":"polite","data-testid":"session-toast","data-tone":r?"error":e.kind==="progress"?"progress":"success",className:`fixed top-14 left-1/2 -translate-x-1/2 z-50 flex max-w-[min(90vw,32rem)] items-center gap-2 rounded-lg px-4 py-2.5 text-[13px] text-white shadow-lg ${r?"bg-rose-600":e.kind==="progress"?"bg-slate-700":"bg-emerald-600"}`,children:[e.kind==="progress"?a.jsxs(a.Fragment,{children:[a.jsx(nt,{className:"w-3.5 h-3.5 animate-spin"}),a.jsx("span",{children:e.text})]}):e.kind==="archived"?a.jsxs("span",{children:["会话已归档,可在"," ",a.jsx("button",{type:"button","data-testid":"session-toast-archived-link",onClick:t,className:"underline underline-offset-2 cursor-pointer font-medium text-white hover:opacity-80",children:"设置"})," ","中查看"]}):a.jsxs(a.Fragment,{children:[a.jsx("span",{children:e.text}),e.action?a.jsx("button",{type:"button","data-testid":"session-toast-action",onClick:e.action.onClick,className:"underline underline-offset-2 cursor-pointer font-medium text-white hover:opacity-80",children:e.action.label}):null]}),a.jsx("button",{type:"button","aria-label":"关闭","data-testid":"session-toast-close",onClick:n,className:"p-0.5 rounded cursor-pointer text-white/70 hover:text-white hover:bg-white/10",children:a.jsx(Jt,{className:"w-3.5 h-3.5"})})]})}function vit(e){return e.includes("NOT_CONNECTED")||e.includes("connection closed")||e.includes("request timeout")}function yit(e,t,n){const r=`${e?`${e}的设备`:"对方设备"}连不上,${t}没生效`;if(n==null)return r;const s=n instanceof Error?n.message:String(n);return vit(s)?r:`${t}没生效:${s}`}function iy(e){return e.originOwnerPrincipalId?"mirror":e.larkChatId!=null?"lark":"native"}const bit={native:"本机",mirror:"朋友设备",lark:"飞书群"};function wit(e){return e.originOwnerPrincipalId?`mirror:${e.originOwnerPrincipalId}`:e.ownerPersonaId?`persona:${e.ownerPersonaId}`:"other"}function _it({sessions:e,childrenByRoot:t,personaLabelOf:n,contactNameOf:r,onUnarchive:s,onDelete:i}){const[o,l]=p.useState(""),[c,u]=p.useState("all"),[d,h]=p.useState("all"),[f,m]=p.useState(null),[g,x]=p.useState(!1),b=p.useMemo(()=>{const _=new Map;for(const S of e)S.ownerPersonaId&&!S.originOwnerPrincipalId&&_.set(S.ownerPersonaId,n(S.ownerPersonaId)??S.ownerPersonaId);return[..._.entries()]},[e,n]),y=p.useMemo(()=>e.filter(_=>(c==="all"||iy(_)===c)&&(d==="all"||!_.originOwnerPrincipalId&&_.ownerPersonaId===d)&&tW(kh(_),o)),[e,c,d,o]),v=p.useMemo(()=>{const _=new Map;for(const S of y){const k=wit(S),C=_.get(k)??[];C.push(S),_.set(k,C)}return[..._.entries()]},[y]),w=_=>{if(_==="other")return"其他";if(_.startsWith("mirror:")){const k=_.slice(7);return`@${r(k)??k.slice(-8)}`}const S=_.slice(8);return n(S)??S};return a.jsxs("div",{"data-testid":"archived-chats-view",children:[a.jsxs("div",{className:"flex items-center justify-between mb-6",children:[a.jsx("h1",{className:"text-[22px] font-semibold",children:"已归档的聊天"}),e.length>0&&(g?a.jsxs("span",{className:"flex items-center gap-2 text-[12px]",children:[a.jsxs("span",{className:"text-text-300",children:["删除全部 ",e.length," 条?不可恢复"]}),a.jsx("button",{type:"button","data-testid":"archived-delete-all-confirm",onClick:()=>{for(const _ of e)i(_.sessionId);x(!1)},className:"px-2.5 py-1 rounded-md bg-error text-white",children:"确认删除"}),a.jsx("button",{type:"button",onClick:()=>x(!1),className:"px-2.5 py-1 rounded-md bg-bg-200 text-text-200",children:"取消"})]}):a.jsxs("button",{type:"button","data-testid":"archived-delete-all",onClick:()=>x(!0),className:"flex items-center gap-1.5 px-2.5 py-1 rounded-md text-[12px] text-error hover:bg-error/10",children:[a.jsx(bs,{className:"w-3.5 h-3.5"})," 全部删除"]}))]}),e.length>0?a.jsxs("div",{className:"flex items-center gap-3 mb-8",children:[a.jsxs("div",{className:"flex-1 flex items-center gap-2 px-3 py-2 rounded-full border border-border bg-bg-50",children:[a.jsx(di,{className:"w-4 h-4 text-text-400 shrink-0"}),a.jsx("input",{value:o,onChange:_=>l(_.target.value),placeholder:"搜索已归档聊天","data-testid":"archived-search-input",className:"flex-1 bg-transparent outline-none text-[13px] text-text-100 placeholder:text-text-400"})]}),a.jsxs("select",{value:c,onChange:_=>u(_.target.value),"data-testid":"archived-kind-filter",className:"px-3 py-2 rounded-lg border border-border bg-bg-50 text-[13px] text-text-200",children:[a.jsx("option",{value:"all",children:"全部聊天"}),a.jsx("option",{value:"native",children:"本机"}),a.jsx("option",{value:"mirror",children:"朋友设备"}),a.jsx("option",{value:"lark",children:"飞书群"})]}),a.jsxs("select",{value:d,onChange:_=>h(_.target.value),"data-testid":"archived-persona-filter",className:"px-3 py-2 rounded-lg border border-border bg-bg-50 text-[13px] text-text-200",children:[a.jsx("option",{value:"all",children:"所有 persona"}),b.map(([_,S])=>a.jsx("option",{value:_,children:S},_))]})]}):null,e.length===0?a.jsxs("div",{"data-testid":"archived-empty",className:"rounded-lg border border-dashed border-border px-5 py-14 text-center text-[13px] text-text-400",children:[a.jsx(Ru,{className:"w-6 h-6 mx-auto mb-3 opacity-50"}),"没有已归档的聊天。在 sidebar「最近」hover 会话行即可归档。"]}):v.length===0?a.jsx("div",{"data-testid":"archived-no-match",className:"px-1 py-10 text-center text-[13px] text-text-400",children:"没有匹配的结果"}):v.map(([_,S])=>a.jsxs("div",{"data-testid":`archived-group-${_}`,className:"mb-8",children:[a.jsxs("div",{className:"flex items-center gap-2 px-1 mb-2",children:[a.jsx(Tg,{className:"w-4 h-4 text-text-300"}),a.jsx("span",{className:"text-[14px] font-medium",children:w(_)}),a.jsxs("span",{className:"ml-auto text-[12px] text-text-400",children:[S.length," 个聊天"]})]}),a.jsx("div",{className:"rounded-xl border border-border divide-y divide-border bg-bg-50/40",children:S.map(k=>a.jsxs("div",{children:[a.jsxs("div",{"data-testid":`archived-row-${k.sessionId}`,className:"flex items-center gap-3 px-4 py-3",children:[a.jsxs("div",{className:"flex-1 min-w-0",children:[a.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[a.jsx("span",{className:"text-[13px] text-text-100 truncate",children:kh(k)||k.sessionId}),iy(k)==="mirror"&&k.originOwnerPrincipalId?a.jsxs("span",{className:"shrink-0 px-1.5 rounded text-[10px] bg-accent-dim/40 text-accent border border-accent/20",children:["@",r(k.originOwnerPrincipalId)??k.originOwnerPrincipalId.slice(-8)]}):iy(k)==="lark"?a.jsx(yT,{className:"w-3 h-3 text-accent shrink-0"}):null]}),a.jsxs("div",{className:"text-[11px] text-text-400 mt-0.5",children:[k.archivedAt!=null?lM(new Date(k.archivedAt).toISOString()):""," ","· ",bit[iy(k)]]})]}),f===k.sessionId?a.jsxs("span",{className:"flex items-center gap-2 shrink-0 text-[12px]",children:[a.jsx("span",{className:"text-text-300",children:"确认删除?"}),a.jsx("button",{type:"button","data-testid":`archived-delete-confirm-${k.sessionId}`,onClick:()=>{i(k.sessionId),m(null)},className:"px-2.5 py-1 rounded-md bg-error text-white",children:"删除"}),a.jsx("button",{type:"button","data-testid":`archived-delete-cancel-${k.sessionId}`,onClick:()=>m(null),className:"px-2.5 py-1 rounded-md bg-bg-200 text-text-200",children:"取消"})]}):a.jsxs("span",{className:"flex items-center gap-1.5 shrink-0",children:[a.jsx("button",{type:"button",title:"删除","data-testid":`archived-delete-${k.sessionId}`,onClick:()=>m(k.sessionId),className:"p-1.5 rounded hover:bg-text-100/10 text-text-400 hover:text-error",children:a.jsx(bs,{className:"w-4 h-4"})}),a.jsxs("button",{type:"button","data-testid":`archived-unarchive-${k.sessionId}`,onClick:()=>s(k.sessionId),className:"flex items-center gap-1.5 px-3 py-1.5 rounded-lg border border-border bg-bg-50 hover:bg-text-100/5 text-[12px] text-text-200",children:[a.jsx(PH,{className:"w-3.5 h-3.5"})," 取消归档"]})]})]}),((t==null?void 0:t.get(k.sessionId))??[]).map(C=>a.jsxs("div",{"data-testid":`archived-child-${C.sessionId}`,className:"flex items-center gap-2 pl-10 pr-4 py-2 text-[12px] text-text-300",children:[C.forkedFromSessionId?a.jsx(vfe,{className:"w-3 h-3 text-text-400 shrink-0"}):C.dispatchedFromSessionId?a.jsx(fT,{className:"w-3 h-3 text-text-400 shrink-0"}):a.jsx(MH,{className:"w-3 h-3 text-text-400 shrink-0"}),a.jsx("span",{className:"truncate",children:kh(C)||C.sessionId})]},C.sessionId))]},k.sessionId))})]},_))]})}function Sit({topic:e,onUnarchive:t,onDelete:n}){const[r,s]=p.useState(!1);return a.jsxs("div",{children:[a.jsxs("div",{"data-testid":`archived-topic-row-${e.topicId}`,className:"flex items-center gap-3 px-4 py-3",children:[a.jsxs("div",{className:"min-w-0 flex-1",children:[a.jsx("div",{className:"flex min-w-0 items-center gap-2",children:a.jsx("span",{className:"truncate text-[13px] text-text-100",children:e.title})}),a.jsxs("div",{className:"mt-0.5 text-[11px] text-text-400",children:[e.archivedAt!=null?lM(new Date(e.archivedAt).toISOString()):"",e.sessions.length>0?` · ${e.sessions.length} 条线`:""]})]}),r?a.jsxs("span",{className:"flex shrink-0 items-center gap-2 text-[12px]",children:[a.jsx("span",{className:"text-text-300",children:"确认删除?"}),a.jsx("button",{type:"button","data-testid":`archived-topic-delete-confirm-${e.topicId}`,onClick:()=>{n(e.topicId),s(!1)},className:"rounded-md bg-error px-2.5 py-1 text-white",children:"删除"}),a.jsx("button",{type:"button","data-testid":`archived-topic-delete-cancel-${e.topicId}`,onClick:()=>s(!1),className:"rounded-md bg-bg-200 px-2.5 py-1 text-text-200",children:"取消"})]}):a.jsxs("span",{className:"flex shrink-0 items-center gap-1.5",children:[a.jsx("button",{type:"button",title:"删除","data-testid":`archived-topic-delete-${e.topicId}`,onClick:()=>s(!0),className:"rounded p-1.5 text-text-400 hover:bg-text-100/10 hover:text-error",children:a.jsx(bs,{className:"h-4 w-4"})}),a.jsxs("button",{type:"button","data-testid":`archived-topic-unarchive-${e.topicId}`,onClick:()=>t(e.masterSessionId),className:"flex items-center gap-1.5 rounded-lg border border-border bg-bg-50 px-3 py-1.5 text-[12px] text-text-200 hover:bg-text-100/5",children:[a.jsx(PH,{className:"h-3.5 w-3.5"})," 取消归档"]})]})]}),e.sessions.map(i=>a.jsxs("div",{"data-testid":`archived-topic-child-${i.sessionId}`,className:"flex items-center gap-2 py-2 pl-10 pr-4 text-[12px] text-text-300",children:[a.jsx(fT,{className:"h-3 w-3 shrink-0 text-text-400"}),a.jsx("span",{className:"truncate",children:i.label}),a.jsx("span",{className:"ml-auto shrink-0 truncate text-[11px] text-text-400",children:i.assignee})]},i.sessionId))]})}function kit({groups:e,onUnarchive:t,onDelete:n}){const[r,s]=p.useState(""),i=p.useMemo(()=>e.map(l=>({...l,topics:l.topics.filter(c=>tW(c.title,r))})).filter(l=>l.topics.length>0),[e,r]),o=e.reduce((l,c)=>l+c.topics.length,0);return a.jsxs("div",{"data-testid":"archived-topics-view",children:[a.jsx("h1",{className:"mb-6 text-[22px] font-semibold",children:"已归档的话题"}),o>0?a.jsx("div",{className:"mb-8 flex items-center gap-3",children:a.jsxs("div",{className:"flex flex-1 items-center gap-2 rounded-full border border-border bg-bg-50 px-3 py-2",children:[a.jsx(di,{className:"h-4 w-4 shrink-0 text-text-400"}),a.jsx("input",{value:r,onChange:l=>s(l.target.value),placeholder:"搜索已归档话题","data-testid":"archived-topics-search",className:"flex-1 bg-transparent text-[13px] text-text-100 outline-none placeholder:text-text-400"})]})}):null,o===0?a.jsxs("div",{"data-testid":"archived-topics-empty",className:"rounded-lg border border-dashed border-border px-5 py-14 text-center text-[13px] text-text-400",children:[a.jsx(Ru,{className:"mx-auto mb-3 h-6 w-6 opacity-50"}),"没有已归档的话题。在 sidebar「频道」分区 hover 话题行即可归档。"]}):i.length===0?a.jsx("div",{"data-testid":"archived-topics-no-match",className:"px-1 py-10 text-center text-[13px] text-text-400",children:"没有匹配的结果"}):i.map(l=>a.jsxs("div",{"data-testid":`archived-topic-group-${l.channelId}`,className:"mb-8",children:[a.jsxs("div",{className:"mb-2 flex items-center gap-2 px-1",children:[a.jsx(Tg,{className:"h-4 w-4 text-text-300"}),a.jsx("span",{className:"text-[14px] font-medium",children:l.channelName}),a.jsxs("span",{className:"ml-auto text-[12px] text-text-400",children:[l.topics.length," 个话题"]})]}),a.jsx("div",{className:"divide-y divide-border rounded-xl border border-border bg-bg-50/40",children:l.topics.map(c=>a.jsx(Sit,{topic:c,onUnarchive:t,onDelete:n},c.topicId))})]},l.channelId))]})}function Cit({onClick:e}){return a.jsxs("button",{type:"button",onClick:e,"data-testid":"sidebar-settings",title:"设置","aria-label":"设置",className:J("flex items-center w-full px-3 py-2 rounded-md","text-[13px] cursor-pointer transition-colors","text-text-300 hover:text-text-100 hover:bg-text-100/5"),children:[a.jsx(Ow,{className:"w-4 h-4 shrink-0"}),a.jsx("span",{className:"ml-2 whitespace-nowrap",children:"设置"})]})}function Nit(){const e=mS();if(!e)return null;const{state:t,info:n,progress:r,finalizing:s}=e;if(t!=="has-update"&&t!=="downloading"&&t!=="downloaded"&&t!=="applying"&&t!=="error")return null;const i=n!=null&&n.latestVersion?` v${n.latestVersion}`:"",o=t==="has-update"?`下载更新${i}`:t==="downloading"?s?"正在准备安装…":`下载中… ${r}%`:t==="downloaded"?`重启应用更新${i}`:t==="applying"?"正在应用更新…":`更新失败${i},点击重试`,l=t==="downloading"?s?a.jsx(nt,{className:"w-3.5 h-3.5 animate-spin"}):a.jsxs("span",{className:"text-[10px] leading-none font-medium tabular-nums",children:[r,"%"]}):t==="downloaded"?a.jsx(Ro,{className:"w-3.5 h-3.5"}):t==="applying"?a.jsx(nt,{className:"w-3.5 h-3.5 animate-spin"}):t==="error"?a.jsx(En,{className:"w-3.5 h-3.5"}):a.jsx(dhe,{className:"w-3.5 h-3.5"}),c=t==="downloaded"?"bg-emerald-500 text-white":t==="error"?"bg-red-500 text-white":"bg-accent text-white",u=t==="downloading"?"px-1.5 h-6 min-w-6":"w-6 h-6",d=t==="downloading"||t==="applying";return a.jsx(hi,{delayDuration:200,children:a.jsxs(eo,{children:[a.jsx(to,{asChild:!0,children:a.jsx("button",{type:"button","data-testid":"sidebar-ota-button","data-state":t,"aria-label":o,disabled:d,onClick:()=>{t==="has-update"?e.download():t==="downloaded"?e.apply():t==="error"&&e.retry()},className:`flex shrink-0 items-center justify-center rounded-full cursor-pointer hover:opacity-90 disabled:opacity-60 disabled:cursor-default ${c} ${u}`,children:l})}),a.jsx(xi,{side:"top",children:o})]})})}function jit({identity:e,loading:t,error:n,onLogin:r}){const[s,i]=p.useState(!1);if(t||e)return null;const o=async()=>{i(!0);try{await Fee(r)}finally{i(!1)}},l=s?"请在浏览器中完成授权…":n?"登录失败,点击重试":"飞书登录",c=n?"bg-error text-white hover:opacity-90":"bg-accent text-accent-contrast hover:bg-accent-hover";return a.jsxs("button",{type:"button","data-testid":"sidebar-feishu-login",title:n?`登录失败:${n}`:"登录后远程连接将使用你的飞书身份",disabled:s,onClick:()=>void o(),className:`flex items-center justify-center gap-1 px-2 py-1.5 mb-1 text-[11px] font-medium rounded-md transition-colors max-w-full disabled:opacity-60 disabled:cursor-default ${c}`,children:[n?a.jsx(En,{className:"h-3 w-3 shrink-0"}):a.jsx(Zfe,{className:"h-3 w-3 shrink-0"}),a.jsx("span",{className:"truncate",children:l})]})}let Eit=null;function Iit(){return Eit}let Tit=null;function Rit(){return Tit}let Mit=null;function Pit(){return Mit}function Ait(e){const[t,n]=p.useState([]),r=p.useCallback(async()=>{if(e)try{const s=await e.projectList();n(s.projects??[])}catch{n([])}},[e]);return p.useEffect(()=>{r()},[r]),{projects:t,reload:r}}function Oit({open:e,onSubmit:t,onCancel:n,submitting:r,error:s}){const[i,o]=p.useState("");p.useEffect(()=>{e&&o("")},[e]);const l=i.trim(),c=l.length>0&&!r,u=()=>{c&&t(l)},d=vi(u,n);return e?Ur.createPortal(a.jsx("div",{className:"fixed inset-0 z-[10000] flex items-center justify-center bg-bg-0/40 backdrop-blur-[2px]",onClick:n,"data-testid":"new-project-dialog-overlay",children:a.jsxs("div",{"data-testid":"new-project-dialog",className:"w-[420px] max-w-[calc(100vw-32px)] rounded-2xl border border-text-100/[0.12] flex flex-col gap-4 p-5",style:{backgroundColor:"var(--bg-0)",boxShadow:"0 12px 40px rgba(0,0,0,0.04)"},onClick:h=>h.stopPropagation(),children:[a.jsx("div",{className:"text-[15px] font-semibold text-text-100",children:"新建项目"}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-[12px] font-semibold text-text-200 mb-1",children:"项目名"}),a.jsx("input",{autoFocus:!0,type:"text",value:i,disabled:r,onChange:h=>o(h.target.value),...d,placeholder:"my-app","data-testid":"new-project-dialog-name",className:"w-full px-3 py-2 text-[13px] bg-bg-50 border border-bg-300 rounded-lg focus:outline-none focus:border-text-300 transition-colors disabled:opacity-60"}),a.jsx("div",{className:"mt-1.5 text-[11px] text-text-400",children:"将在 ~/Documents/ChatGPT/ 下创建同名目录并 git init(与 Codex 一致)"}),s&&a.jsx("div",{className:"mt-1.5 text-[11px] text-red-500","data-testid":"new-project-dialog-error",children:s})]}),a.jsxs("div",{className:"flex justify-end gap-2 pt-1",children:[a.jsx("button",{type:"button",onClick:n,className:"px-4 py-1.5 text-[12px] text-text-300 rounded-lg hover:bg-text-100/5 transition-colors cursor-pointer",children:"取消"}),a.jsx("button",{type:"button",onClick:u,disabled:!c,"data-testid":"new-project-dialog-submit",className:"px-4 py-1.5 text-[12px] font-medium text-bg-0 rounded-lg bg-text-100 hover:bg-text-200 transition-colors cursor-pointer disabled:opacity-40 disabled:cursor-not-allowed",children:r?"创建中…":"创建"})]})]})}),document.body):null}function Dit(e,{ownerPrincipalId:t,sortMode:n,attention:r,projectPaths:s,topicSessionIds:i}){const o=e.filter(w=>aS(w,t)),l=Cc(o),c=new Set(l.map(w=>w.session.sessionId)),u=l.filter(w=>typeof w.session.pinnedAt=="number"),d=u.filter(w=>!w.session.originOwnerPrincipalId),h=u.filter(w=>w.session.originOwnerPrincipalId),f=o.filter(w=>typeof w.pinnedAt=="number"&&!c.has(w.sessionId)),m=[...d.map(w=>w.session.sessionId),...h.map(w=>w.session.sessionId),...f.map(w=>w.sessionId)],g=Cc(hS(e,t,s,i)),b=(n==="recency"?cS(g):Wee(g,r)).filter(w=>w.session.pinnedAt==null).map(w=>w.session.sessionId),y=new Set,v=[];for(const w of[...m,...b])y.has(w)||(y.add(w),v.push(w));return v}const jte="tabs",Ete="focus";function $it(e){switch(e.kind){case"session":return`session:${e.sid}`;case"dm":return`dm:${e.peerDeviceId}`;case"ext":return`ext:${e.extId}`;case"topic":return`topic:${e.topicId}`;case"shift":return"shift:";case"prs":return"prs:";case"exts":return"exts:";case"landing":return"landing:";case"deploy":return`deploy:${e.personaId}`;case"deploy-history":return`deploy-history:${e.personaId}:${e.head}`}}function Lit(e){const t=e.indexOf(":");if(t<0)return null;const n=e.slice(0,t),r=e.slice(t+1);if(!mve.includes(n))return null;switch(n){case"session":return r?{kind:"session",sid:r}:null;case"dm":return r?{kind:"dm",peerDeviceId:r}:null;case"ext":return r?{kind:"ext",extId:r}:null;case"topic":return r?{kind:"topic",topicId:r}:null;case"shift":return{kind:"shift"};case"prs":return{kind:"prs"};case"exts":return{kind:"exts"};case"landing":return{kind:"landing"};case"deploy":return r?{kind:"deploy",personaId:r}:null;case"deploy-history":{const i=r.lastIndexOf(":");return i<=0||i===r.length-1?null:{kind:"deploy-history",personaId:r.slice(0,i),head:r.slice(i+1)}}}}function Ite(e){if(!e)return null;const t=e.replace(/^#/,"");if(!t)return null;const n=new URLSearchParams(t),r=n.get(jte);if(r===null)return null;const s=r.split(",").map(h=>h.trim()).filter(Boolean);if(s.length===0)return null;const i=[],o=[];for(let h=0;h<s.length;h++){const f=s[h],m=f.slice(0,Math.max(0,f.indexOf(":")));if(gve.has(m)){o.push(h);continue}const g=Lit(f);if(!g)return null;i.push(g)}if(i.length===0)return null;const l=n.get(Ete),c=l==null?0:parseInt(l,10),u=Number.isFinite(c)?c-o.filter(h=>h<c).length:0,d=u>=0&&u<i.length?u:0;return{tabs:i,focused:d}}function Tte(e){if(e.tabs.length===0)return"";const t=new URLSearchParams;return t.set(jte,e.tabs.map($it).join(",")),t.set(Ete,String(e.focused)),t.toString()}const XF="main-view-hash";function Bit(){return typeof window>"u"?null:Ite(window.location.hash)}function Fit(e){if(typeof window>"u")return;const t=Tte(e),n=t?`#${t}`:"";if(n!==window.location.hash)try{window.history.replaceState(null,"",n||`${window.location.pathname}${window.location.search}`)}catch{}}const zit={"clawd-mobile-android":"Android 手机","clawd-mobile-ios":"iPhone","clawd-desktop":"Mac 桌面","clawd-web":"浏览器"};function Hit(e){return e!=null&&e.startsWith("clawd-mobile")?"mobile":"desktop"}function Uit(e){var r,s,i;if(e.self)return"此电脑";const t=(s=(r=e.clientInfo)==null?void 0:r.deviceLabel)==null?void 0:s.trim();if(t)return t;const n=(i=e.clientInfo)==null?void 0:i.name;return(n&&zit[n])??n??"未知设备"}function Wit(e,t){const n=Math.max(0,e-t);return n<6e4?"刚刚":n<36e5?`${Math.floor(n/6e4)} 分钟`:n<864e5?`${Math.floor(n/36e5)} 小时`:`${Math.floor(n/864e5)} 天`}function Vit(e,t){return`${e}#token=${t}`}function qit({entry:e}){var r,s,i;const n=Hit((r=e.clientInfo)==null?void 0:r.name)==="mobile"?Xpe:UH;return a.jsxs("div",{className:"flex items-center gap-3 px-3 py-2 rounded-lg hover:bg-bg-200 transition-colors","data-testid":"devices-dialog-row",children:[a.jsx("div",{className:"flex h-8 w-8 items-center justify-center rounded-md bg-bg-300 text-text-200 shrink-0",children:a.jsx(n,{className:"h-4 w-4"})}),a.jsxs("div",{className:"min-w-0 flex-1",children:[a.jsxs("div",{className:"flex items-center gap-1.5 text-sm text-text-100",children:[a.jsx("span",{className:"truncate",children:Uit(e)}),e.self&&a.jsx("span",{className:"text-[10px] leading-none px-1.5 py-0.5 rounded bg-bg-300 text-text-300 shrink-0",children:"本机"})]}),a.jsxs("div",{className:"text-xs text-text-400 truncate",children:[((s=e.clientInfo)==null?void 0:s.name)??"未知客户端",(i=e.clientInfo)!=null&&i.version?` · ${e.clientInfo.version}`:""]})]}),a.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-text-300 shrink-0",children:[a.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-500"}),"在线 · ",Wit(Date.now(),e.connectedAt)]})]})}function Kit(e){const{open:t,onClose:n,tunnelUrl:r,token:s,connections:i,onOpenRemoteHosts:o}=e,l=r&&s?Vit(r,s):null,[c,u]=p.useState(null),[d,h]=p.useState(!1);p.useEffect(()=>{if(!l){u(null);return}let m=!0;return cd.toDataURL(l,{width:320,margin:1}).then(g=>{m&&u(g)}),()=>{m=!1}},[l]);const f=[...i].sort((m,g)=>Number(g.self)-Number(m.self)||m.connectedAt-g.connectedAt);return a.jsx(Kr,{open:t,onOpenChange:m=>{m||n()},children:a.jsxs(Mr,{children:[a.jsxs(ws,{children:[a.jsxs(Pr,{className:"flex items-center gap-2",children:[a.jsx(qH,{className:"h-4 w-4"})," 设备"]}),a.jsx(fi,{children:"手机扫码,或在另一台电脑的 clawd 里选「连接另一台电脑」后粘贴 connect-code"})]}),l?a.jsxs("div",{className:"flex flex-col items-center gap-2 py-1",children:[c&&a.jsx("img",{src:c,alt:"配对二维码","data-testid":"add-mobile-qr",className:"w-44 h-44 rounded-lg bg-white p-2"}),a.jsxs("button",{type:"button",className:"flex items-center gap-1.5 text-xs text-text-300 hover:text-text-100 transition-colors",onClick:()=>{navigator.clipboard.writeText(l),h(!0),setTimeout(()=>h(!1),1500)},children:[d?a.jsx(Ut,{className:"h-3.5 w-3.5"}):a.jsx(Lo,{className:"h-3.5 w-3.5"}),"复制 connect-code"]})]}):a.jsxs("div",{className:"text-sm text-text-300 py-4 text-center leading-relaxed",children:["隧道未就绪——其他设备需要通过公网隧道连接本机。",a.jsx("br",{}),"请确认 daemon 以 --tunnel 启动且隧道已连上。"]}),a.jsxs("div",{className:"mt-2 border-t border-border pt-3",children:[a.jsxs("div",{className:"px-3 pb-1.5 text-xs font-medium text-text-300",children:["当前连接(",f.length,")"]}),a.jsx("div",{className:"flex flex-col",children:f.map(m=>a.jsx(qit,{entry:m},m.clientId))})]}),o&&a.jsx("div",{className:"border-t border-border pt-2 flex justify-center",children:a.jsx("button",{type:"button","data-testid":"devices-dialog-open-remote-hosts",className:"text-xs text-text-300 hover:text-text-100 transition-colors",onClick:()=>{n(),o()},children:"把这台电脑连到另一台主机…"})})]})})}function Git({api:e,onClose:t}){const n=vte(e);p.useEffect(()=>{n.scan()},[]);const r=s=>{if(s==="skip"||!n.candidates){t();return}const i=s==="all"?n.candidates:wte(n.candidates);if(i.length===0){t();return}n.importSessions(i)};return a.jsx(Kr,{open:!0,onOpenChange:s=>{s||t()},children:a.jsxs(Mr,{className:"max-w-md","data-testid":"session-import-dialog",children:[a.jsx(Pr,{className:"sr-only",children:"关联外部会话"}),a.jsx(_te,{candidates:n.candidates,scanError:n.scanError,onRetryScan:()=>void n.scan(),progress:n.importProgress,onChoose:r,onNext:t})]})})}const Yit=34;function C2(e){const t=e.split(/[/\\]/).filter(Boolean);return t[t.length-1]??e}function Ms(e,t=Yit){const n=e.replace(/\s+/g," ").trim();return n.length>t?`${n.slice(0,t)}…`:n}function za(e,t){if(typeof e!="object"||e===null)return;const n=e[t];return typeof n=="string"&&n.length>0?n:void 0}function oy(e){return(e.split(/[。!?\n]/)[0]??e).trim()}function Xit(e,t){switch(e){case"Edit":case"NotebookEdit":{const n=za(t,"file_path");return{verb:"edit",target:n?C2(n):void 0}}case"Write":{const n=za(t,"file_path");return{verb:"write",target:n?C2(n):void 0}}case"Read":{const n=za(t,"file_path");return{verb:"read",target:n?C2(n):void 0}}case"Bash":{const n=za(t,"command");return{verb:"bash",target:n?Ms(n):void 0}}case"Grep":return{verb:"grep",target:Ms(za(t,"pattern")??"")||void 0};case"Glob":return{verb:"glob",target:Ms(za(t,"pattern")??"")||void 0};case"WebFetch":return{verb:"fetch",target:Ms(za(t,"url")??"")||void 0};case"WebSearch":return{verb:"search",target:Ms(za(t,"query")??"")||void 0};case"Skill":return{verb:"skill",target:za(t,"skill")};default:return{verb:e.toLowerCase(),target:void 0}}}function Zit(e){var t;switch(e.kind){case"tool-call":return Xit(e.tool,e.input);case"assistant-text":{const n=oy(e.text);return n?{verb:"says",target:Ms(n)}:null}case"assistant-thinking":return{verb:"thinking"};case"agent-call":return{verb:"agent",target:Ms(e.description)};case"agent-progress":return e.status==="failed"?{verb:"agent failed",target:Ms(e.description??""),tone:"error"}:{verb:e.status==="completed"?"agent done":"agent",target:Ms(e.description??e.lastToolName??"")||void 0};case"todo-checklist":{const n=e.todos.filter(s=>s.status==="completed").length,r=e.todos.find(s=>s.status==="in_progress");return{verb:"todo",target:r?`${Ms(r.activeForm??r.content,22)} · ${n}/${e.todos.length}`:`${n}/${e.todos.length}`}}case"task-event":return{verb:"task",target:e.name};case"memory-callout":return{verb:"memory",target:`${e.memories.length} entries`};case"permission-inline":return{verb:"needs approval",target:e.tool,tone:"warn"};case"question-card":return{verb:"asks you",target:Ms(((t=e.questions[0])==null?void 0:t.question)??""),tone:"warn"};case"error":return{verb:"error",target:Ms(oy(e.message)),tone:"error"};case"tool-result":return e.error?{verb:"failed",target:Ms(oy(e.error)),tone:"error"}:null;case"turn-end":return{verb:"done",target:e.durationMs?`${Math.round(e.durationMs/1e3)}s`:void 0};case"user-text":return{verb:"you",target:Ms(oy(e.text))};case"session-init":return{verb:"start",target:void 0};case"user-meta":case"meta-text":case"agent-notification":return null}}const Rte=56,Qit=.9,Jit=.5,eot=.12,Mte=12;function TI(){return{energy:0,wave:new Array(Rte).fill(0),phrase:null,pending:null,lastSwitchTick:-Mte,flashUntilTick:-1,flashing:!1}}function tot(e){return e.kind==="text"||e.kind==="thinking"?e.partialId===void 0:!0}function not(e){const t=e.kind==="permission_request"?e.requestId:void 0;return Um([e],t)[0]??null}function rot(e,t){const n=tot(t),r=Math.min(1,e.energy+(n?Jit:eot));if(!n)return{...e,energy:r};const s=not(t),i=s?Zit(s):null;return{...e,energy:r,pending:i??e.pending}}function sot(e,t,n=Math.random){const r=e.energy*Qit,s=r>.02?.75+n()*.5:0,i=e.wave.slice(1);i.push(r*s);let{phrase:o,pending:l,lastSwitchTick:c,flashUntilTick:u}=e;return l&&t-c>=Mte&&(o=l,l=null,c=t,u=t+8),{energy:r,wave:i,phrase:o,pending:l,lastSwitchTick:c,flashUntilTick:u,flashing:t<=u}}function iot(e){return e.energy<=.02}const oot=60;function aot(e,t,n,r){for(const i of t)e.request("session:subscribe",{sessionId:i}).catch(()=>{});return e.on("session:event",i=>{const o=i;!o||typeof o.sessionId!="string"||n.current.has(o.sessionId)&&o.event&&r(o.sessionId,o.event)})}function lot(e,t){const n=p.useRef(new Map),r=p.useRef(0),[,s]=p.useState(0),i=p.useMemo(()=>e.filter(u=>u.phase==="turn-running").map(u=>({sid:u.sessionId,owner:u.originOwnerPrincipalId??null})),[e]),o=p.useMemo(()=>i.map(u=>`${u.owner??""}::${u.sid}`).sort().join("|"),[i]),l=p.useMemo(()=>{const u=new Map;for(const d of i){let h=u.get(d.owner);h||(h=new Set,u.set(d.owner,h)),h.add(d.sid)}return u},[o]),c=p.useRef(new Map);return p.useEffect(()=>{for(const[u,d]of l){let h=c.current.get(u);h||(h={current:new Set},c.current.set(u,h)),h.current=d}for(const u of Array.from(c.current.keys()))l.has(u)||c.current.delete(u)}),p.useEffect(()=>{if(l.size===0)return;const u=[],d=(h,f)=>{const m=n.current.get(h)??TI();n.current.set(h,rot(m,f))};for(const[h,f]of l){const m=h===null?t.local:t.getRemoteForDevice(h);if(!m)continue;const g=c.current.get(h);g&&u.push(aot(m,f,g,d))}return()=>{for(const h of u)h()}},[t,o]),p.useEffect(()=>{const u=setInterval(()=>{const d=++r.current;for(const[h,f]of n.current)n.current.set(h,sot(f,d));s(h=>h+1)},oot);return()=>clearInterval(u)},[]),p.useEffect(()=>{const u=new Set(e.map(d=>d.sessionId));for(const d of e)n.current.has(d.sessionId)||n.current.set(d.sessionId,TI());for(const d of Array.from(n.current.keys()))u.has(d)||n.current.delete(d)},[e]),n.current}const Pte=["error","awaiting","running","idle","done"];function cot(e,t,n){return e==="crashed"?"error":e==="exited"?"done":t?"awaiting":e==="turn-running"?"running":e==="turn-idle"?"idle":n?"done":"idle"}const uot=new Set(["running","awaiting","error"]);function dot(e,t){const n=new Date(e);if(Number.isNaN(n.getTime()))return!1;const r=new Date(t);return n.getFullYear()===r.getFullYear()&&n.getMonth()===r.getMonth()&&n.getDate()===r.getDate()}function hot(e,t,n){const r=e.ownerPersonaId?t.get(e.ownerPersonaId):void 0;return r||((e.originOwnerPrincipalId?n==null?void 0:n.get(e.originOwnerPrincipalId):void 0)??e.tool)}function fot({sessions:e,phases:t,awaitingIds:n,unreadIds:r,personaNames:s,deviceNames:i,now:o=Date.now()}){const c=e.map(d=>{const h=t.get(d.sessionId)??"idle",f=n.has(d.sessionId);return{sessionId:d.sessionId,title:cv(d),subtitle:hot(d,s,i),engine:d.tool,model:d.model,gitBranch:d.gitBranch,phase:h,awaiting:f,status:cot(h,f,d.toolSessionId!==void 0),unread:(r==null?void 0:r.has(d.sessionId))??!1,contextPct:gq(d),createdAt:d.createdAt,updatedAt:d.updatedAt,remote:d.originOwnerPrincipalId!==void 0,originOwnerPrincipalId:d.originOwnerPrincipalId}}).filter(d=>uot.has(d.status)||dot(d.updatedAt,o)),u=new Map(Pte.map((d,h)=>[d,h]));return c.sort((d,h)=>{const f=(u.get(d.status)??99)-(u.get(h.status)??99);return f!==0?f:d.unread!==h.unread?d.unread?-1:1:h.updatedAt.localeCompare(d.updatedAt)})}function pot(e){if(e.status==="running")return;const t=new Date(e.updatedAt).getTime();return Number.isNaN(t)?void 0:t}function mot(e){let t=0,n=0,r=0;for(const i of e)i.status==="running"?t++:i.status==="awaiting"&&n++,i.unread&&r++;const s=t>0?{kind:"running",n:t}:n>0?{kind:"awaiting",n}:{kind:"none",n:0};return{running:t,awaiting:n,unread:r,hero:s}}function got(e,t,n,r){const s=p.useMemo(()=>e.map(u=>({sid:u.sessionId,originOwnerPrincipalId:u.originOwnerPrincipalId??null})),[e]),i=zee(s,t),o=Hee(s,t),{personas:l}=C_(),c=p.useMemo(()=>new Map(l.map(u=>[u.personaId,u.label])),[l]);return p.useMemo(()=>fot({sessions:e,phases:i,awaitingIds:o,unreadIds:r,personaNames:c,deviceNames:n}),[e,i,o,r,c,n])}const xot=()=>{};function vot(e){const t=p.useMemo(()=>typeof window<"u"&&typeof window.matchMedia=="function"?window.matchMedia(e):null,[e]),n=p.useMemo(()=>({subscribe:r=>t?(t.addEventListener("change",r),()=>t.removeEventListener("change",r)):xot,getSnapshot:()=>(t==null?void 0:t.matches)??!1}),[t]);return p.useSyncExternalStore(n.subscribe,n.getSnapshot,()=>!1)}const bo={error:{color:"var(--error-color)",label:"error"},awaiting:{color:"var(--warning-color)",label:"awaiting"},running:{color:"var(--success-color)",label:"running"},idle:{color:"110 116 122",label:"idle"},done:{color:"74 79 85",label:"done"}};function yot(e){return e==="claude"?"var(--engine-claude-color)":e==="codex"?"var(--engine-codex-color)":e==="codex-cloud"?"var(--engine-codex-cloud-color)":e==="pi"?"var(--engine-pi-color)":e==="pi-cloud"?"var(--engine-pi-cloud-color)":e==="claude-cloud"?"var(--engine-claude-cloud-color)":"122 128 135"}const V1=160,bot=62/V1,wot=17/V1;function Ate({rows:e,size:t=V1}){const n=t,r=t*bot,s=t*wot,i=2*Math.PI*r,o=e.filter(x=>x.unread).length,[l,c]=p.useState(!1),u=new Map;for(const x of e)u.set(x.status,(u.get(x.status)??0)+1);const d=Pte.filter(x=>(u.get(x)??0)>0),h=e.length,f=d.length>1?5*(t/V1):0;let m=0;const g=d.map(x=>{const b=u.get(x)??0,y=i*(b/Math.max(h,1)),v={key:x,n:b,len:Math.max(y-f,1.5),offset:-m};return m+=y,v});return a.jsxs("div",{"data-testid":"hive-status-ring",className:"relative shrink-0",style:{width:n,height:n},onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),children:[a.jsx("div",{className:"pointer-events-none absolute rounded-full",style:{inset:"24%",border:"1px solid rgb(255 255 255 / .07)"}}),a.jsx("div",{className:"pointer-events-none absolute rounded-full",style:{inset:"36%",border:"1px solid rgb(255 255 255 / .05)"}}),a.jsx("div",{className:"pointer-events-none absolute inset-0 rounded-full",style:{background:`conic-gradient(from 0deg,
|
|
944
944
|
rgb(255 255 255 / .30) 0deg,
|
|
945
945
|
rgb(255 255 255 / .14) 6deg,
|