@jeffusion/tianshu 0.1.0 → 0.1.1

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.
@@ -47,7 +47,7 @@ Error generating stack: `+e.message+`
47
47
  .block-interactivity-${e} {pointer-events: none;}
48
48
  .allow-interactivity-${e} {pointer-events: all;}
49
49
  `},hs=0,gs=[];function _s(e){var t=D.useRef([]),n=D.useRef([0,0]),r=D.useRef(),i=D.useState(hs++)[0],a=D.useState(Bo)[0],o=D.useRef(e);D.useEffect(function(){o.current=e},[e]),D.useEffect(function(){if(e.inert){document.body.classList.add(`block-interactivity-${i}`);var t=go([e.lockRef.current],(e.shards||[]).map(fs),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add(`allow-interactivity-${i}`)}),function(){document.body.classList.remove(`block-interactivity-${i}`),t.forEach(function(e){return e.classList.remove(`allow-interactivity-${i}`)})}}},[e.inert,e.lockRef.current,e.shards]);var s=D.useCallback(function(e,t){if(`touches`in e&&e.touches.length===2||e.type===`wheel`&&e.ctrlKey)return!o.current.allowPinchZoom;var i=us(e),a=n.current,s=`deltaX`in e?e.deltaX:a[0]-i[0],c=`deltaY`in e?e.deltaY:a[1]-i[1],l,u=e.target,d=Math.abs(s)>Math.abs(c)?`h`:`v`;if(`touches`in e&&d===`h`&&u.type===`range`)return!1;var f=window.getSelection(),p=f&&f.anchorNode;if(p&&(p===u||p.contains(u)))return!1;var m=rs(d,u);if(!m)return!0;if(m?l=d:(l=d===`v`?`h`:`v`,m=rs(d,u)),!m)return!1;if(!r.current&&`changedTouches`in e&&(s||c)&&(r.current=l),!l)return!0;var h=r.current||l;return ls(h,t,e,h===`h`?s:c,!0)},[]),c=D.useCallback(function(e){var n=e;if(gs.length&&gs[gs.length-1]===a){var r=`deltaY`in n?ds(n):us(n),i=t.current.filter(function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&ps(e.delta,r)})[0];if(i&&i.should)n.cancelable&&n.preventDefault();else if(!i){var c=(o.current.shards||[]).map(fs).filter(Boolean).filter(function(e){return e.contains(n.target)});(c.length>0?s(n,c[0]):!o.current.noIsolation)&&n.cancelable&&n.preventDefault()}}},[]),l=D.useCallback(function(e,n,r,i){var a={name:e,delta:n,target:r,should:i,shadowParent:vs(r)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),u=D.useCallback(function(e){n.current=us(e),r.current=void 0},[]),d=D.useCallback(function(t){l(t.type,ds(t),t.target,s(t,e.lockRef.current))},[]),f=D.useCallback(function(t){l(t.type,us(t),t.target,s(t,e.lockRef.current))},[]);D.useEffect(function(){return gs.push(a),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:f}),document.addEventListener(`wheel`,c,Qo),document.addEventListener(`touchmove`,c,Qo),document.addEventListener(`touchstart`,u,Qo),function(){gs=gs.filter(function(e){return e!==a}),document.removeEventListener(`wheel`,c,Qo),document.removeEventListener(`touchmove`,c,Qo),document.removeEventListener(`touchstart`,u,Qo)}},[]);var p=e.removeScrollBar,m=e.inert;return D.createElement(D.Fragment,null,m?D.createElement(a,{styles:ms(i)}):null,p?D.createElement(Xo,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function vs(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}var ys=Ao(jo,_s),bs=D.forwardRef(function(e,t){return D.createElement(No,mo({},e,{ref:t,sideCar:ys}))});bs.classNames=No.classNames;var xs=Object.defineProperty,Ss=(e,t)=>xs(e,`name`,{value:t,configurable:!0}),Cs={ItemAligned:`item-aligned`,Popper:`popper`},ws={LTR:`ltr`,RTL:`rtl`},Ts=[` `,`Enter`,`ArrowUp`,`ArrowDown`],Es=[` `,`Enter`],Ds=`Select`,[Os,ks,As]=Nt(Ds),[js,Ms]=ot(Ds,[As,_a]),Ns=_a(),[Ps,Fs]=js(Ds),[Is,Ls]=js(Ds);function Rs(e){let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:s,onValueChange:c,dir:l,name:u,autoComplete:d,disabled:f,required:p,form:m,internal_do_not_use_render:h}=e,g=Ns(t),[_,v]=D.useState(null),[y,b]=D.useState(null),[x,S]=D.useState(!1),C=Yt(l),[ee,w]=Ya({prop:r,defaultProp:i??!1,onChange:a,caller:Ds}),[te,T]=Ya({prop:o,defaultProp:s,onChange:c,caller:Ds}),ne=D.useRef(null),E=D.useRef(!1),[re,ie]=D.useState(null),ae=Ss(e=>{ie({value:e,hasConsumerStoppedPropagation:E.current}),T(e)},`handleUserSelect`),O=D.useRef(te);D.useEffect(()=>{let e=m?_?.ownerDocument.getElementById(m):_?.form;if(e instanceof HTMLFormElement){let t=Ss(()=>T(O.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[m,_,T]);let oe=!_||!!m||!!_.closest(`form`),[se,ce]=D.useState(new Set),le=Zn(),ue=Array.from(se).map(e=>e.props.value).join(`;`),de=D.useCallback(e=>{ce(t=>new Set(t).add(e))},[]),fe=D.useCallback(e=>{ce(t=>{let n=new Set(t);return n.delete(e),n})},[]),pe={required:p,trigger:_,onTriggerChange:v,valueNode:y,onValueNodeChange:b,valueNodeHasChildren:x,onValueNodeHasChildrenChange:S,contentId:le,value:te,onValueChange:T,hasConsumerStoppedPropagationRef:E,userSelection:re,onUserSelect:ae,open:ee,onOpenChange:w,dir:C,triggerPointerDownPosRef:ne,disabled:f,name:u,autoComplete:d,form:m,nativeOptions:se,nativeSelectKey:ue,isFormControl:oe};return(0,A.jsx)(ba,{...g,children:(0,A.jsx)(Ps,{scope:t,...pe,children:(0,A.jsx)(Os.Provider,{scope:t,children:(0,A.jsx)(Is,{scope:t,onNativeOptionAdd:de,onNativeOptionRemove:fe,children:bc(h)?h(pe):n})})})})}Ss(Rs,`SelectProvider`);var zs=Ss(e=>{let{__scopeSelect:t,children:n,...r}=e;return(0,A.jsx)(Rs,{__scopeSelect:t,...r,internal_do_not_use_render:({isFormControl:e})=>(0,A.jsxs)(A.Fragment,{children:[n,e?(0,A.jsx)(yc,{__scopeSelect:t}):null]})})},`Select`),Bs=`SelectTrigger`,Vs=D.forwardRef(Ss(function(e,t){let{__scopeSelect:n,disabled:r=!1,...i}=e,a=Ns(n),o=Fs(Bs,n),s=o.disabled||r,c=ft(t,o.onTriggerChange),l=ks(n),u=D.useRef(`touch`),[d,f,p]=Sc(e=>{let t=l().filter(e=>!e.disabled),n=Cc(t,e,t.find(e=>e.value===o.value));n!==void 0&&o.onUserSelect(n.value)}),m=Ss(e=>{s||(o.onOpenChange(!0),p()),e&&(o.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})},`handleOpen`);return(0,A.jsx)(Sa,{asChild:!0,...a,children:(0,A.jsx)(Qt.button,{type:`button`,role:`combobox`,"aria-controls":o.open?o.contentId:void 0,"aria-expanded":o.open,"aria-required":o.required,"aria-autocomplete":`none`,dir:o.dir,"data-state":o.open?`open`:`closed`,disabled:s,"data-disabled":s?``:void 0,"data-placeholder":xc(o.value)?``:void 0,...i,ref:c,onClick:Ze(i.onClick,e=>{e.currentTarget.focus(),u.current!==`mouse`&&m(e)}),onPointerDown:Ze(i.onPointerDown,e=>{u.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(m(e),e.preventDefault())}),onKeyDown:Ze(i.onKeyDown,e=>{let t=d.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&(o.hasConsumerStoppedPropagationRef.current=e.isPropagationStopped(),f(e.key)),t&&e.key===` `||Ts.includes(e.key)&&(m(),e.preventDefault())})})})},`SelectTrigger`)),Hs=`SelectValue`,Us=D.forwardRef(Ss(function(e,t){let{__scopeSelect:n,className:r,style:i,children:a,placeholder:o=``,...s}=e,c=Fs(Hs,n),{onValueNodeHasChildrenChange:l}=c,u=a!==void 0,d=ft(t,c.onValueNodeChange);At(()=>{l(u)},[l,u]);let f=xc(c.value);return(0,A.jsx)(Qt.span,{...s,asChild:!f&&s.asChild,ref:d,style:{pointerEvents:`none`},children:(0,A.jsx)(D.Fragment,{children:f?o:a},f?`placeholder`:`value`)})},`SelectValue`)),Ws=D.forwardRef(Ss(function(e,t){let{__scopeSelect:n,children:r,...i}=e;return(0,A.jsx)(Qt.span,{"aria-hidden":!0,...i,ref:t,children:r||`▼`})},`SelectIcon`)),[Gs,Ks]=js(`SelectPortal`,{forceMount:void 0}),qs=Ss(e=>{let{__scopeSelect:t,forceMount:n,...r}=e;return(0,A.jsx)(Gs,{scope:e.__scopeSelect,forceMount:n,children:(0,A.jsx)(ja,{asChild:!0,...r})})},`SelectPortal`),Js=`SelectContent`,Ys=D.forwardRef(Ss(function(e,t){let n=Ks(Js,e.__scopeSelect),{forceMount:r=n.forceMount,...i}=e,a=Fs(Js,e.__scopeSelect),[o,s]=D.useState();return At(()=>{s(new DocumentFragment)},[]),(0,A.jsx)(Fa,{present:r||a.open,children:({present:e})=>e?(0,A.jsx)(tc,{...i,ref:t}):(0,A.jsx)(Xs,{...i,fragment:o})})},`SelectContent`)),Xs=D.forwardRef(Ss(function(e,t){let{__scopeSelect:n,children:r,fragment:i}=e;return i?Ue.createPortal((0,A.jsx)(Qs,{scope:n,children:(0,A.jsx)(Os.Slot,{scope:n,children:(0,A.jsx)(`div`,{ref:t,children:r})})}),i):null},`SelectContentFragment`)),Zs=10,[Qs,$s]=js(Js),ec=ht(`SelectContent.RemoveScroll`),tc=D.forwardRef(Ss(function(e,t){let{__scopeSelect:n}=e,{position:r=Cs.ItemAligned,onCloseAutoFocus:i,onEscapeKeyDown:a,onPointerDownOutside:o,side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:p,sticky:m,hideWhenDetached:h,avoidCollisions:g,..._}=e,v=Fs(Js,n),[y,b]=D.useState(null),[x,S]=D.useState(null),C=ft(t,b),[ee,w]=D.useState(null),[te,T]=D.useState(null),ne=ks(n),[E,re]=D.useState(!1),ie=D.useRef(!1),ae=D.useRef(!1),O=D.useRef(!1);D.useEffect(()=>{if(y)return po(y)},[y]),wn();let oe=D.useCallback(e=>{let[t,...n]=ne().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&x&&(x.scrollTop=0),n===r&&x&&(x.scrollTop=x.scrollHeight),n?.focus(),document.activeElement!==i))return},[ne,x]),se=D.useCallback(()=>oe([ee,y]),[oe,ee,y]);D.useEffect(()=>{E&&se()},[E,se]);let{onOpenChange:ce,triggerPointerDownPosRef:le}=v;D.useEffect(()=>{if(y){let e={x:0,y:0},t=Ss(t=>{e={x:Math.abs(Math.round(t.pageX)-(le.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(le.current?.y??0))}},`handlePointerMove`),n=Ss(n=>{e.x<=10&&e.y<=10?n.preventDefault():n.composedPath().includes(y)||ce(!1),document.removeEventListener(`pointermove`,t),le.current=null},`handlePointerUp`);return le.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[y,ce,le]),D.useEffect(()=>{let e=Ss(()=>ce(!1),`close`);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[ce]);let[ue,de]=Sc(e=>{let t=ne().filter(e=>!e.disabled),n=Cc(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current?.focus())}),fe=D.useCallback((e,t,n)=>{let r=!ae.current;r&&(ae.current=!0);let i=!ie.current&&!n;v.value!==void 0&&v.value===t||i?(w(e),i&&(ie.current=!0)):r&&w(e)},[v.value]),pe=D.useCallback(()=>y?.focus(),[y]),me=D.useCallback((e,t,n)=>{if(!e)return;let r=!O.current;r&&(O.current=!0);let i=!ie.current&&!n;(v.value!==void 0&&v.value===t||i||r)&&T(e)},[v.value]),he=r===Cs.Popper?rc:nc,ge=he===rc?{side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:p,sticky:m,hideWhenDetached:h,avoidCollisions:g}:{};return(0,A.jsx)(Qs,{scope:n,content:y,viewport:x,onViewportChange:S,itemRefCallback:fe,selectedItem:ee,onItemLeave:pe,itemTextRefCallback:me,focusSelectedItem:se,selectedItemText:te,position:r,isPositioned:E,searchRef:ue,children:(0,A.jsx)(bs,{as:ec,allowPinchZoom:!0,children:(0,A.jsx)(jn,{asChild:!0,trapped:v.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:Ze(i,e=>{v.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,A.jsx)(fn,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>v.onOpenChange(!1),children:(0,A.jsx)(he,{role:`listbox`,id:v.contentId,"data-state":v.open?`open`:`closed`,dir:v.dir,onContextMenu:e=>e.preventDefault(),..._,...ge,onPlaced:()=>re(!0),ref:C,style:{display:`flex`,flexDirection:`column`,outline:`none`,..._.style},onKeyDown:Ze(_.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&de(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=ne().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>oe(t)),e.preventDefault()}})})})})})})},`SelectContentImpl`)),nc=D.forwardRef(Ss(function(e,t){let{__scopeSelect:n,onPlaced:r,...i}=e,a=Fs(Js,n),o=$s(Js,n),[s,c]=D.useState(null),[l,u]=D.useState(null),d=ft(t,u),f=ks(n),p=D.useRef(!1),m=D.useRef(!0),{viewport:h,selectedItem:g,selectedItemText:_,focusSelectedItem:v}=o,y=D.useCallback(()=>{if(a.trigger&&a.valueNode&&s&&l&&h&&g&&_){let e=a.trigger.getBoundingClientRect(),t=l.getBoundingClientRect(),n=a.valueNode.getBoundingClientRect(),i=_.getBoundingClientRect();if(a.dir!==ws.RTL){let r=i.left-t.left,a=n.left-r,o=e.left-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-Zs,d=qe(a,[Zs,Math.max(Zs,u-l)]);s.style.minWidth=c+`px`,s.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-Zs,d=qe(a,[Zs,Math.max(Zs,u-l)]);s.style.minWidth=c+`px`,s.style.right=d+`px`}let o=f(),c=window.innerHeight-Zs*2,u=h.scrollHeight,d=window.getComputedStyle(l),m=parseInt(d.borderTopWidth,10),v=parseInt(d.paddingTop,10),y=parseInt(d.borderBottomWidth,10),b=parseInt(d.paddingBottom,10),x=m+v+u+b+y,S=Math.min(g.offsetHeight*5,x),C=window.getComputedStyle(h),ee=parseInt(C.paddingTop,10),w=parseInt(C.paddingBottom,10),te=e.top+e.height/2-Zs,T=c-te,ne=g.offsetHeight/2,E=g.offsetTop+ne,D=m+v+E,re=x-D;if(D<=te){let e=o.length>0&&g===o[o.length-1].ref.current;s.style.bottom=`0px`;let t=l.clientHeight-h.offsetTop-h.offsetHeight,n=D+Math.max(T,ne+(e?w:0)+t+y);s.style.height=n+`px`}else{let e=o.length>0&&g===o[0].ref.current;s.style.top=`0px`;let t=Math.max(te,m+h.offsetTop+(e?ee:0)+ne)+re;s.style.height=t+`px`,h.scrollTop=D-te+h.offsetTop}s.style.margin=`${Zs}px 0`,s.style.minHeight=S+`px`,s.style.maxHeight=c+`px`,r?.(),requestAnimationFrame(()=>p.current=!0)}},[f,a.trigger,a.valueNode,s,l,h,g,_,a.dir,r]);At(()=>y(),[y]);let[b,x]=D.useState();At(()=>{l&&x(window.getComputedStyle(l).zIndex)},[l]);let S=D.useCallback(e=>{e&&m.current===!0&&(y(),v?.(),m.current=!1)},[y,v]);return(0,A.jsx)(ic,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:p,onScrollButtonChange:S,children:(0,A.jsx)(`div`,{ref:c,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:b},children:(0,A.jsx)(Qt.div,{...i,ref:d,style:{boxSizing:`border-box`,maxHeight:`100%`,...i.style}})})})},`SelectItemAlignedPosition`)),rc=D.forwardRef(Ss(function(e,t){let{__scopeSelect:n,align:r=`start`,collisionPadding:i=Zs,...a}=e,o=Ns(n);return(0,A.jsx)(Ea,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})},`SelectPopperPosition`)),[ic,ac]=js(Js,{}),oc=`SelectViewport`,sc=D.forwardRef(Ss(function(e,t){let{__scopeSelect:n,nonce:r,...i}=e,a=$s(oc,n),o=ac(oc,n),s=ft(t,a.onViewportChange),c=D.useRef(0);return(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:r}),(0,A.jsx)(Os.Slot,{scope:n,children:(0,A.jsx)(Qt.div,{"data-radix-select-viewport":``,role:`presentation`,...i,ref:s,style:{position:`relative`,flex:1,overflow:`hidden auto`,...i.style},onScroll:Ze(i.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=o;if(r?.current&&n){let e=Math.abs(c.current-t.scrollTop);if(e>0){let r=window.innerHeight-Zs*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}c.current=t.scrollTop})})})]})},`SelectViewport`)),[cc,lc]=js(`SelectGroup`),uc=`SelectItem`,[dc,fc]=js(uc),pc=D.forwardRef(Ss(function(e,t){let{__scopeSelect:n,value:r,disabled:i=!1,textValue:a,...o}=e,s=Fs(uc,n),c=$s(uc,n),l=s.value===r,[u,d]=D.useState(a??``),[f,p]=D.useState(!1),m=ft(t,rn(e=>c.itemRefCallback?.(e,r,i))),h=Zn(),g=D.useRef(`touch`);function _(e){s.hasConsumerStoppedPropagationRef.current=e.isPropagationStopped(),s.onUserSelect(r),s.onOpenChange(!1)}return Ss(_,`handleSelect`),(0,A.jsx)(dc,{scope:n,value:r,disabled:i,textId:h,isSelected:l,onItemTextChange:D.useCallback(e=>{d(t=>t||(e?.textContent??``).trim())},[]),children:(0,A.jsx)(Os.ItemSlot,{scope:n,value:r,disabled:i,textValue:u,children:(0,A.jsx)(Qt.div,{role:`option`,"aria-labelledby":h,"data-highlighted":f?``:void 0,"aria-selected":l&&f,"data-state":l?`checked`:`unchecked`,"aria-disabled":i||void 0,"data-disabled":i?``:void 0,tabIndex:i?void 0:-1,...o,ref:m,onFocus:Ze(o.onFocus,()=>p(!0)),onBlur:Ze(o.onBlur,()=>p(!1)),onClick:Ze(o.onClick,e=>{i||g.current!==`mouse`&&_(e)}),onPointerUp:Ze(o.onPointerUp,e=>{i||g.current===`mouse`&&_(e)}),onPointerDown:Ze(o.onPointerDown,e=>{g.current=e.pointerType}),onPointerMove:Ze(o.onPointerMove,e=>{g.current=e.pointerType,i?c.onItemLeave?.():g.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:Ze(o.onPointerLeave,e=>{e.currentTarget===document.activeElement&&c.onItemLeave?.()}),onKeyDown:Ze(o.onKeyDown,e=>{i||e.target!==e.currentTarget||(c.searchRef?.current===``||e.key!==` `)&&(Es.includes(e.key)&&_(e),e.key===` `&&e.preventDefault())})})})})},`SelectItem`)),mc=`SelectItemText`,hc=D.forwardRef(Ss(function(e,t){let{__scopeSelect:n,className:r,style:i,...a}=e,o=Fs(mc,n),s=$s(mc,n),c=fc(mc,n),l=Ls(mc,n),[u,d]=D.useState(null),f=rn(e=>s.itemTextRefCallback?.(e,c.value,c.disabled)),p=ft(t,d,c.onItemTextChange,f),m=u?.textContent,h=D.useMemo(()=>(0,A.jsx)(`option`,{value:c.value,disabled:c.disabled,children:m},c.value),[c.disabled,c.value,m]),{onNativeOptionAdd:g,onNativeOptionRemove:_}=l;return At(()=>(g(h),()=>_(h)),[g,_,h]),(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(Qt.span,{id:c.textId,...a,ref:p}),c.isSelected&&o.valueNode&&!o.valueNodeHasChildren&&!xc(o.value)?Ue.createPortal(a.children,o.valueNode):null]})},`SelectItemText`)),gc=`SelectItemIndicator`,_c=D.forwardRef(Ss(function(e,t){let{__scopeSelect:n,...r}=e;return fc(gc,n).isSelected?(0,A.jsx)(Qt.span,{"aria-hidden":!0,...r,ref:t}):null},`SelectItemIndicator`)),vc=`SelectBubbleInput`,yc=D.forwardRef(Ss(function({__scopeSelect:e,...t},n){let r=Fs(vc,e),{value:i,onValueChange:a,required:o,disabled:s,name:c,autoComplete:l,form:u,userSelection:d}=r,{nativeOptions:f,nativeSelectKey:p}=r,m=D.useRef(null),h=ft(n,m),g=i??``,_=D.useRef(g),v=D.useRef(d),y=D.useRef(!1),b=Array.from(f).some(e=>(e.props.value??``)===``);return D.useEffect(()=>{let e=m.current;if(!e)return;let t=window.HTMLSelectElement.prototype,n=Object.getOwnPropertyDescriptor(t,`value`).set,r=d!==null&&d!==v.current;v.current=d;let i=_.current!==g;_.current=g;let a=r&&i;if(r&&!i&&d.value!==g&&!d.hasConsumerStoppedPropagation&&n){y.current=!0;try{n.call(e,d.value),e.dispatchEvent(new Event(`change`,{bubbles:!0}))}finally{y.current=!1,n.call(e,g)}return}let o=a&&!d.hasConsumerStoppedPropagation;if(i&&n){let t=new Event(`change`,{bubbles:o});n.call(e,g),e.dispatchEvent(t)}},[g,d]),(0,A.jsxs)(Qt.select,{"aria-hidden":!0,required:o,tabIndex:-1,name:c,autoComplete:l,disabled:s,form:u,onChange:e=>{y.current||a(e.target.value)},...t,style:{...no,...t.style},ref:h,defaultValue:g,children:[xc(i)&&!b?(0,A.jsx)(`option`,{value:``}):null,Array.from(f)]},p)},`SelectBubbleInput`));function bc(e){return typeof e==`function`}Ss(bc,`isFunction`);function xc(e){return e===``||e===void 0}Ss(xc,`shouldShowPlaceholder`);function Sc(e){let t=rn(e),n=D.useRef(``),r=D.useRef(0),i=D.useCallback(e=>{let i=n.current+e;t(i);function a(e){n.current=e,window.clearTimeout(r.current),e!==``&&(r.current=window.setTimeout(()=>a(``),1e3))}Ss(a,`updateSearch`),a(i)},[t]),a=D.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return D.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}Ss(Sc,`useTypeaheadSearch`);function Cc(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=wc(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}Ss(Cc,`findNextItem`);function wc(e,t){return e.map((n,r)=>e[(t+r)%e.length])}Ss(wc,`wrapArray`);var Tc=Object.defineProperty,Ec=(e,t)=>Tc(e,`name`,{value:t,configurable:!0}),Dc=`Collapsible`,[Oc,kc]=ot(Dc),[Ac,jc]=Oc(Dc),Mc=D.forwardRef(Ec(function(e,t){let{__scopeCollapsible:n,open:r,defaultOpen:i,disabled:a,onOpenChange:o,...s}=e,[c,l]=Ya({prop:r,defaultProp:i??!1,onChange:o,caller:Dc});return(0,A.jsx)(Ac,{scope:n,disabled:a,contentId:Zn(),open:c,onOpenToggle:D.useCallback(()=>l(e=>!e),[l]),children:(0,A.jsx)(Qt.div,{"data-state":Rc(c),"data-disabled":a?``:void 0,...s,ref:t})})},`Collapsible`)),Nc=`CollapsibleTrigger`,Pc=D.forwardRef(Ec(function(e,t){let{__scopeCollapsible:n,...r}=e,i=jc(Nc,n);return(0,A.jsx)(Qt.button,{type:`button`,"aria-controls":i.open?i.contentId:void 0,"aria-expanded":i.open||!1,"data-state":Rc(i.open),"data-disabled":i.disabled?``:void 0,disabled:i.disabled,...r,ref:t,onClick:Ze(e.onClick,i.onOpenToggle)})},`CollapsibleTrigger`)),Fc=`CollapsibleContent`,Ic=D.forwardRef(Ec(function(e,t){let{forceMount:n,...r}=e,i=jc(Fc,e.__scopeCollapsible);return(0,A.jsx)(Fa,{present:n||i.open,children:({present:e})=>(0,A.jsx)(Lc,{...r,ref:t,present:e})})},`CollapsibleContent`)),Lc=D.forwardRef(Ec(function(e,t){let{__scopeCollapsible:n,present:r,children:i,...a}=e,o=jc(Fc,n),[s,c]=D.useState(r),l=D.useRef(null),u=ft(t,l),d=D.useRef(0),f=d.current,p=D.useRef(0),m=p.current,h=o.open||s,g=D.useRef(h),_=D.useRef(void 0);return D.useEffect(()=>{let e=requestAnimationFrame(()=>g.current=!1);return()=>cancelAnimationFrame(e)},[]),At(()=>{let e=l.current;if(e){_.current=_.current||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration=`0s`,e.style.animationName=`none`;let t=e.getBoundingClientRect();d.current=t.height,p.current=t.width,g.current||(e.style.transitionDuration=_.current.transitionDuration,e.style.animationName=_.current.animationName),c(r)}},[o.open,r]),(0,A.jsx)(Qt.div,{"data-state":Rc(o.open),"data-disabled":o.disabled?``:void 0,id:o.contentId,hidden:!h,...a,ref:u,style:{"--radix-collapsible-content-height":f?`${f}px`:void 0,"--radix-collapsible-content-width":m?`${m}px`:void 0,...e.style},children:h&&i})},`CollapsibleContentImpl`));function Rc(e){return e?`open`:`closed`}Ec(Rc,`getState`);var zc=Object.defineProperty,Bc=(e,t)=>zc(e,`name`,{value:t,configurable:!0}),Vc={Single:`single`,Multiple:`multiple`},Hc={Vertical:`vertical`,Horizontal:`horizontal`},Uc={LTR:`ltr`,RTL:`rtl`},Wc=`Accordion`,Gc=[`Home`,`End`,`ArrowDown`,`ArrowUp`,`ArrowLeft`,`ArrowRight`],[Kc,{useGetCollection:qc,createCollectionScope:Jc}]=zt(Wc),[Yc,Xc]=ot(Wc,[Jc,kc]),Zc=kc(),Qc=D.forwardRef(Bc(function(e,t){let{type:n,...r}=e,i=r,a=r;return(0,A.jsx)(Kc.Provider,{scope:e.__scopeAccordion,children:n===Vc.Multiple?(0,A.jsx)(il,{...a,ref:t}):(0,A.jsx)(rl,{...i,ref:t})})},`Accordion`)),[$c,el]=Yc(Wc),[tl,nl]=Yc(Wc,{collapsible:!1}),rl=D.forwardRef(Bc(function(e,t){let{value:n,defaultValue:r,onValueChange:i=Bc(()=>{},`onValueChange`),collapsible:a=!1,...o}=e,[s,c]=Ya({prop:n,defaultProp:r??``,onChange:i,caller:Wc});return(0,A.jsx)($c,{scope:e.__scopeAccordion,value:D.useMemo(()=>s?[s]:[],[s]),onItemOpen:c,onItemClose:D.useCallback(()=>a&&c(``),[a,c]),children:(0,A.jsx)(tl,{scope:e.__scopeAccordion,collapsible:a,children:(0,A.jsx)(sl,{...o,ref:t})})})},`AccordionImplSingle`)),il=D.forwardRef(Bc(function(e,t){let{value:n,defaultValue:r,onValueChange:i=Bc(()=>{},`onValueChange`),...a}=e,[o,s]=Ya({prop:n,defaultProp:r??[],onChange:i,caller:Wc}),c=D.useCallback(e=>s((t=[])=>[...t,e]),[s]),l=D.useCallback(e=>s((t=[])=>t.filter(t=>t!==e)),[s]);return(0,A.jsx)($c,{scope:e.__scopeAccordion,value:o,onItemOpen:c,onItemClose:l,children:(0,A.jsx)(tl,{scope:e.__scopeAccordion,collapsible:!0,children:(0,A.jsx)(sl,{...a,ref:t})})})},`AccordionImplMultiple`)),[al,ol]=Yc(Wc),sl=D.forwardRef(Bc(function(e,t){let{__scopeAccordion:n,disabled:r,dir:i,orientation:a=Hc.Vertical,...o}=e,s=ft(D.useRef(null),t),c=qc(n),l=Yt(i)===Uc.LTR,u=Ze(e.onKeyDown,e=>{if(!Gc.includes(e.key))return;let t=c(),n=e.target,r=t.filter(([,e])=>!e.element.disabled),i=r.findIndex(([,e])=>e.element===n),o=r.size;if(i===-1)return;e.preventDefault();let s=i,u=o-1,d=Bc(()=>{s=i+1,s>u&&(s=0)},`moveNext`),f=Bc(()=>{s=i-1,s<0&&(s=u)},`movePrev`);switch(e.key){case`Home`:s=0;break;case`End`:s=u;break;case`ArrowRight`:a===Hc.Horizontal&&(l?d():f());break;case`ArrowDown`:a===Hc.Vertical&&d();break;case`ArrowLeft`:a===Hc.Horizontal&&(l?f():d());break;case`ArrowUp`:a===Hc.Vertical&&f()}let p=s%o;r.at(p)?.element.focus()});return(0,A.jsx)(al,{scope:n,disabled:r,direction:i,orientation:a,children:(0,A.jsx)(Kc.Slot,{scope:n,children:(0,A.jsx)(Qt.div,{...o,"data-orientation":a,ref:s,onKeyDown:r?void 0:u})})})},`AccordionImpl`)),cl=`AccordionItem`,[ll,ul]=Yc(cl),dl=D.forwardRef(Bc(function(e,t){let{__scopeAccordion:n,value:r,...i}=e,a=ol(cl,n),o=el(cl,n),s=Zc(n),c=Zn(),l=r&&o.value.includes(r)||!1,u=a.disabled||e.disabled;return(0,A.jsx)(ll,{scope:n,open:l,disabled:u,triggerId:c,children:(0,A.jsx)(Mc,{"data-orientation":a.orientation,"data-state":vl(l),...s,...i,ref:t,disabled:u,open:l,onOpenChange:e=>{e?o.onItemOpen(r):o.onItemClose(r)}})})},`AccordionItem`)),fl=`AccordionHeader`,pl=D.forwardRef(Bc(function(e,t){let{__scopeAccordion:n,...r}=e,i=ol(Wc,n),a=ul(fl,n);return(0,A.jsx)(Qt.h3,{"data-orientation":i.orientation,"data-state":vl(a.open),"data-disabled":a.disabled?``:void 0,...r,ref:t})},`AccordionHeader`)),ml=`AccordionTrigger`,hl=D.forwardRef(Bc(function(e,t){let{__scopeAccordion:n,...r}=e,i=ol(Wc,n),a=ul(ml,n),o=nl(ml,n),s=Zc(n);return(0,A.jsx)(Kc.ItemSlot,{scope:n,children:(0,A.jsx)(Pc,{"aria-disabled":a.open&&!o.collapsible||void 0,"data-orientation":i.orientation,id:a.triggerId,...s,...r,ref:t})})},`AccordionTrigger`)),gl=`AccordionContent`,_l=D.forwardRef(Bc(function(e,t){let{__scopeAccordion:n,...r}=e,i=ol(Wc,n),a=ul(gl,n),o=Zc(n);return(0,A.jsx)(Ic,{role:`region`,"aria-labelledby":a.triggerId,"data-orientation":i.orientation,...o,...r,ref:t,style:{"--radix-accordion-content-height":`var(--radix-collapsible-content-height)`,"--radix-accordion-content-width":`var(--radix-collapsible-content-width)`,...e.style}})},`AccordionContent`));function vl(e){return e?`open`:`closed`}Bc(vl,`getState`);var yl=Object.defineProperty,bl=(e,t)=>yl(e,`name`,{value:t,configurable:!0}),[xl,Sl]=ot(`Tooltip`,[_a]),Cl=_a(),wl=`TooltipProvider`,Tl=700,El=`tooltip.open`,[Dl,Ol]=xl(wl),kl=bl(e=>{let{__scopeTooltip:t,delayDuration:n=Tl,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:a}=e,o=D.useRef(!0),s=D.useRef(!1),c=D.useRef(0);return D.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,A.jsx)(Dl,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:D.useCallback(()=>{r<=0||(window.clearTimeout(c.current),o.current=!1)},[r]),onClose:D.useCallback(()=>{r<=0||(window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,r))},[r]),isPointerInTransitRef:s,onPointerInTransitChange:D.useCallback(e=>{s.current=e},[]),disableHoverableContent:i,children:a})},`TooltipProvider`),Al=`Tooltip`,[jl,Ml]=xl(Al),Nl=bl(e=>{let{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:a,disableHoverableContent:o,delayDuration:s}=e,c=Ol(Al,e.__scopeTooltip),l=Cl(t),[u,d]=D.useState(null),[f,p]=D.useState(void 0),m=Zn(),h=D.useRef(0),g=o??c.disableHoverableContent,_=s??c.delayDuration,v=D.useRef(!1),[y,b]=Ya({prop:r,defaultProp:i??!1,onChange:bl(e=>{e?(c.onOpen(),document.dispatchEvent(new CustomEvent(El))):c.onClose(),a?.(e)},`onChange`),caller:Al}),x=D.useMemo(()=>y?v.current?`delayed-open`:`instant-open`:`closed`,[y]),S=D.useCallback(()=>{window.clearTimeout(h.current),h.current=0,v.current=!1,b(!0)},[b]),C=D.useCallback(()=>{window.clearTimeout(h.current),h.current=0,b(!1)},[b]),ee=D.useCallback(()=>{window.clearTimeout(h.current),h.current=window.setTimeout(()=>{v.current=!0,b(!0),h.current=0},_)},[_,b]);D.useEffect(()=>()=>{h.current&&=(window.clearTimeout(h.current),0)},[]);let w=f??m;return(0,A.jsx)(ba,{...l,children:(0,A.jsx)(jl,{scope:t,contentId:w,setContentId:p,open:y,stateAttribute:x,trigger:u,onTriggerChange:d,onTriggerEnter:D.useCallback(()=>{c.isOpenDelayedRef.current?ee():S()},[c.isOpenDelayedRef,ee,S]),onTriggerLeave:D.useCallback(()=>{g?C():(window.clearTimeout(h.current),h.current=0)},[C,g]),onOpen:S,onClose:C,disableHoverableContent:g,children:n})})},`Tooltip`),Pl=`TooltipTrigger`,Fl=D.forwardRef(bl(function(e,t){let{__scopeTooltip:n,"aria-describedby":r,...i}=e,a=Ml(Pl,n),o=Ol(Pl,n),s=Cl(n),c=ft(t,D.useRef(null),a.onTriggerChange),l=D.useRef(!1),u=D.useRef(!1),d=D.useCallback(()=>l.current=!1,[]);return D.useEffect(()=>()=>document.removeEventListener(`pointerup`,d),[d]),(0,A.jsx)(Sa,{asChild:!0,...s,children:(0,A.jsx)(Qt.button,{"aria-describedby":a.open?Zl(r,a.contentId):r,"data-state":a.stateAttribute,...i,ref:c,onPointerMove:Ze(e.onPointerMove,e=>{e.pointerType!==`touch`&&!u.current&&!o.isPointerInTransitRef.current&&(a.onTriggerEnter(),u.current=!0)}),onPointerLeave:Ze(e.onPointerLeave,()=>{a.onTriggerLeave(),u.current=!1}),onPointerDown:Ze(e.onPointerDown,()=>{a.open&&a.onClose(),l.current=!0,document.addEventListener(`pointerup`,d,{once:!0})}),onFocus:Ze(e.onFocus,()=>{l.current||a.onOpen()}),onBlur:Ze(e.onBlur,a.onClose),onClick:Ze(e.onClick,a.onClose)})})},`TooltipTrigger`)),Il=`TooltipPortal`,[Ll,Rl]=xl(Il,{forceMount:void 0}),zl=bl(e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=Ml(Il,t);return(0,A.jsx)(Ll,{scope:t,forceMount:n,children:(0,A.jsx)(Fa,{present:n||a.open,children:(0,A.jsx)(ja,{asChild:!0,container:i,children:r})})})},`TooltipPortal`),Bl=`TooltipContent`,Vl=D.forwardRef(bl(function(e,t){let n=Rl(Bl,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=Ml(Bl,e.__scopeTooltip);return(0,A.jsx)(Fa,{present:r||o.open,children:o.disableHoverableContent?(0,A.jsx)(Wl,{side:i,...a,ref:t}):(0,A.jsx)(Hl,{side:i,...a,ref:t})})},`TooltipContent`)),Hl=D.forwardRef(bl(function(e,t){let n=Ml(Bl,e.__scopeTooltip),r=Ol(Bl,e.__scopeTooltip),i=D.useRef(null),a=ft(t,i),[o,s]=D.useState(null),{trigger:c,onClose:l}=n,u=i.current,{onPointerInTransitChange:d}=r,f=D.useCallback(()=>{s(null),d(!1)},[d]),p=D.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=Kl(r,Gl(r,n.getBoundingClientRect())),a=ql(t.getBoundingClientRect()),o=Yl([...i,...a]);s(o),d(!0)},[d]);return D.useEffect(()=>()=>f(),[f]),D.useEffect(()=>{if(c&&u){let e=bl(e=>p(e,u),`handleTriggerLeave`),t=bl(e=>p(e,c),`handleContentLeave`);return c.addEventListener(`pointerleave`,e),u.addEventListener(`pointerleave`,t),()=>{c.removeEventListener(`pointerleave`,e),u.removeEventListener(`pointerleave`,t)}}},[c,u,p,f]),D.useEffect(()=>{if(o){let e=bl(e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=c?.contains(t)||u?.contains(t),i=!Jl(n,o);r?f():i&&(f(),l())},`handleTrackPointerGrace`);return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[c,u,o,l,f]),(0,A.jsx)(Wl,{...e,ref:a})},`TooltipContentHoverable`)),Ul=_t(`TooltipContent`),Wl=D.forwardRef(bl(function(e,t){let{__scopeTooltip:n,children:r,"aria-label":i,id:a,onEscapeKeyDown:o,onPointerDownOutside:s,...c}=e,l=Ml(Bl,n),u=Cl(n),{onClose:d}=l,[f,p]=D.useState(null),m=ft(t,p);Fn(f),D.useEffect(()=>(document.addEventListener(El,d),()=>document.removeEventListener(El,d)),[d]),D.useEffect(()=>{if(l.trigger){let e=bl(e=>{e.target instanceof Node&&e.target.contains(l.trigger)&&d()},`handleScroll`);return window.addEventListener(`scroll`,e,{capture:!0}),()=>window.removeEventListener(`scroll`,e,{capture:!0})}},[l.trigger,d]);let{setContentId:h}=l;return At(()=>(h(a),()=>{h(void 0)}),[a,h]),(0,A.jsx)(fn,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:o,onPointerDownOutside:s,onFocusOutside:e=>e.preventDefault(),onDismiss:d,children:(0,A.jsxs)(Ea,{"data-state":l.stateAttribute,role:i?void 0:`tooltip`,id:i?void 0:l.contentId,...u,...c,ref:m,style:{...c.style,"--radix-tooltip-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-tooltip-content-available-width":`var(--radix-popper-available-width)`,"--radix-tooltip-content-available-height":`var(--radix-popper-available-height)`,"--radix-tooltip-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-tooltip-trigger-height":`var(--radix-popper-anchor-height)`},children:[(0,A.jsx)(Ul,{children:r}),i?(0,A.jsx)(ro,{id:l.contentId,role:`tooltip`,children:i}):null]})})},`TooltipContentImpl`));function Gl(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}bl(Gl,`getExitSideFromRect`);function Kl(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n})}return r}bl(Kl,`getPaddedExitPoints`);function ql(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}bl(ql,`getPointsFromRect`);function Jl(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}bl(Jl,`isPointInPolygon`);function Yl(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),Xl(t)}bl(Yl,`getHull`);function Xl(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t[t.length-1],n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n[n.length-1],t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}bl(Xl,`getHullPresorted`);function Zl(...e){let t=new Set;for(let n of e)if(typeof n==`string`)for(let e of String(n).trim().split(/\s+/))e&&t.add(e);return t.size>0?Array.from(t).join(` `):void 0}bl(Zl,`concatAriaDescribedby`);function Ql({className:e=``,...t}){return(0,A.jsx)(`button`,{type:`button`,className:`button ${e}`,...t})}function $l({label:e,children:t,...n}){return(0,A.jsxs)(Nl,{children:[(0,A.jsx)(Fl,{asChild:!0,children:(0,A.jsx)(Ql,{className:`icon-button`,"aria-label":e,...n,children:t})}),(0,A.jsx)(zl,{children:(0,A.jsx)(Vl,{className:`tooltip`,sideOffset:8,children:e})})]})}var eu=[{value:`all`,label:`全部状态`},{value:`attention`,label:`待处理`},{value:`active`,label:`执行中`},{value:`done`,label:`已结束`}];function tu({value:e,onChange:t}){return(0,A.jsx)(nu,{label:`筛选任务状态`,value:e,onChange:e=>t(e),options:eu})}function nu({label:e,value:t,onChange:n,options:r}){return(0,A.jsxs)(zs,{value:t,onValueChange:n,children:[(0,A.jsxs)(Vs,{className:`select-trigger`,"aria-label":e,children:[(0,A.jsx)(Us,{}),(0,A.jsx)(Ws,{children:(0,A.jsx)(pe,{size:16})})]}),(0,A.jsx)(qs,{children:(0,A.jsx)(Ys,{className:`select-content`,position:`popper`,align:`end`,sideOffset:8,collisionPadding:12,children:(0,A.jsx)(sc,{children:r.map(e=>(0,A.jsxs)(pc,{className:`select-item`,value:e.value,children:[(0,A.jsx)(hc,{children:e.label}),(0,A.jsx)(_c,{className:`select-indicator`,children:(0,A.jsx)(de,{size:16})})]},e.value))})})})]})}function ru({value:e,title:t,children:n}){return(0,A.jsxs)(dl,{className:`accordion-item`,value:e,children:[(0,A.jsx)(pl,{children:(0,A.jsxs)(hl,{className:`accordion-trigger`,children:[t,(0,A.jsx)(pe,{size:16})]})}),(0,A.jsx)(_l,{className:`accordion-content`,children:(0,A.jsx)(`div`,{children:n})})]})}var iu={queued:`待派发`,running:`执行中`,waiting_human:`待你回答`,waiting_external:`等待外部`,ready:`待验收`,accepted:`已验收`,failed:`失败`,stopped:`已停止`},au={direction_drift:`执行方向偏移`,authorization_gap:`授权范围待确认`,execution_failure:`执行失败`,observation_unavailable:`无法持续读取进度`},ou={watching:`正在跟进`,waiting_decision:`等待决定,可恢复跟进`,stopped:`跟进已停止`},su=e=>[`ready`,`waiting_human`,`failed`].includes(e.state)||e.incident?.status===`open`,cu=e=>`${e.key}|${e.revision}|${e.mandate_version}`;function lu(e){return{content:[{type:`text`,text:[`天枢选择的任务快照(仅作背景,不新增执行授权;具体操作由用户在聊天中提出):`,`任务:${e.id}`,`目标:${e.objective}`,`业务状态:${iu[e.state]||e.state}`,`来源:${e.source_label}`,`主机/会话:${e.host_id||`未绑定`} / ${e.thread_id||`未绑定`}`,`台账版本:${e.revision};授权版本:${e.mandate_version}`,`最近观测:${e.observed_at||`无`};台账更新:${e.updated_at||`无`}`,`异常:${e.incident?`${au[e.incident.category]||e.incident.category} / ${e.incident.status} / ${e.incident.summary}`:`无已登记异常`}`,`跟进:${e.monitor?`${ou[e.monitor.status]||e.monitor.status} / ${e.monitor.reason}`:`未登记跟进状态`}`,`允许:${e.allowed.join(`;`)}`,`禁止:${e.forbidden.join(`;`)}`,`最新记录:${e.summary||`无`}`,`验收条件:${e.acceptance.join(`;`)}`,`证据索引:${e.evidence.join(`;`)}`].join(`
50
- `),_meta:{"openai/title":`任务:${e.id}`,"openai/group":{title:`天枢`}}}],structuredContent:{selectedTask:{key:e.key,id:e.id,revision:e.revision,mandate_version:e.mandate_version}}}}var uu=e=>e?new Date(e).toLocaleString(`zh-CN`,{hour12:!1}):`尚无记录`,du=e=>[`accepted`,`stopped`].includes(e.state),fu=e=>e.display?.title||e.objective,pu=e=>e.display?.project||`未分配项目`,mu=e=>e.state===`stopped`?`已结束`:iu[e.state];function hu(e){return du(e)?e.display?.final_summary||(e.state===`accepted`?`已通过验收,核验依据已保留。`:`任务已结束,历史记录已保留。`):e.summary||`还没有新的进度记录。`}var gu=e=>e.display?.final_at||[...e.transitions].reverse().find(e=>e.state===`accepted`||e.state===`stopped`)?.at||e.updated_at;function _u(e){return e?new Date(e).toLocaleString(`zh-CN`,{month:`numeric`,day:`numeric`,hour:`2-digit`,minute:`2-digit`,hour12:!1}):`暂无时间`}function vu({task:e}){return(0,A.jsxs)(`span`,{className:`status-badge ${e.state}`,children:[(0,A.jsx)(`span`,{className:`status-dot`}),mu(e)]})}function yu({title:e,items:t}){return t?.length?(0,A.jsxs)(`section`,{className:`evidence-group`,children:[(0,A.jsx)(`h4`,{children:e}),(0,A.jsx)(`ul`,{children:t.map((e,t)=>(0,A.jsx)(`li`,{children:e},t))})]}):null}function bu({task:e,onAttach:t,canAttach:n,attaching:r,feedback:i}){let a=du(e);return(0,A.jsxs)(`article`,{className:`task-detail`,"aria-label":`任务详情`,children:[(0,A.jsxs)(`div`,{className:`detail-toolbar`,children:[(0,A.jsxs)(`span`,{className:`detail-breadcrumb`,children:[(0,A.jsx)(`span`,{children:`所属项目`}),(0,A.jsx)(`strong`,{children:pu(e)})]}),(0,A.jsx)(vu,{task:e})]}),(0,A.jsxs)(`div`,{className:`detail-heading`,children:[(0,A.jsx)(`h2`,{tabIndex:-1,children:fu(e)}),(0,A.jsxs)(Ql,{className:`primary`,disabled:!n||r,onClick:t,children:[r?`正在添加…`:`带到聊天`,(0,A.jsx)(le,{size:15})]})]}),(0,A.jsxs)(`div`,{className:`detail-timestamp`,children:[a?`结束于`:`最近进展`,` `,uu(a?gu(e):e.observed_at)]}),(0,A.jsx)(`div`,{className:`attachment-feedback`,role:`status`,"aria-live":`polite`,children:i}),(0,A.jsxs)(`section`,{className:`progress-block ${a?`final-result`:``}`,children:[(0,A.jsx)(`div`,{className:`section-label`,children:(0,A.jsx)(`h3`,{children:a?`任务结果`:`当前进展`})}),(0,A.jsx)(`p`,{children:hu(e)})]}),e.incident?.status===`open`&&(0,A.jsxs)(`section`,{className:`notice`,children:[(0,A.jsx)(_e,{size:17}),(0,A.jsxs)(`div`,{children:[(0,A.jsx)(`strong`,{children:au[e.incident.category]||`需要关注`}),(0,A.jsx)(`p`,{children:e.incident.summary})]})]}),(0,A.jsxs)(Qc,{type:`multiple`,className:`detail-sections`,children:[(0,A.jsxs)(ru,{value:`evidence`,title:`交付与验收`,children:[(0,A.jsxs)(`div`,{className:`section-caption`,children:[(0,A.jsx)(Se,{size:16}),e.verification?.by?`核验者:${e.verification.by}`:`任务的交付与核验依据`]}),(0,A.jsx)(yu,{title:`结果依据`,items:e.display?.evidence}),(0,A.jsx)(yu,{title:`交付证据`,items:e.evidence}),(0,A.jsx)(yu,{title:`验收依据`,items:e.verification?.evidence}),(0,A.jsx)(yu,{title:`异常依据`,items:e.incident?.evidence}),(0,A.jsx)(yu,{title:`恢复核验`,items:e.incident?.verification_evidence})]}),(0,A.jsxs)(ru,{value:`scope`,title:`目标与边界`,children:[(0,A.jsxs)(`div`,{className:`section-caption`,children:[(0,A.jsx)(Re,{size:16}),`任务要求、授权范围与验收条件`]}),(0,A.jsx)(yu,{title:`任务目标`,items:[e.objective]}),(0,A.jsx)(yu,{title:`允许范围`,items:e.allowed}),(0,A.jsx)(yu,{title:`禁止事项`,items:e.forbidden}),(0,A.jsx)(yu,{title:`验收条件`,items:e.acceptance})]}),(0,A.jsxs)(ru,{value:`history`,title:`执行记录`,children:[(0,A.jsxs)(`div`,{className:`section-caption`,children:[(0,A.jsx)(xe,{size:16}),`历史记录仅供追溯,不代表当前状态`]}),e.summary&&(0,A.jsxs)(`section`,{className:`history-observation`,children:[(0,A.jsx)(`time`,{children:uu(e.observed_at)}),(0,A.jsx)(`p`,{children:e.summary})]}),(0,A.jsx)(`ol`,{className:`timeline`,children:e.transitions?.map((e,t)=>(0,A.jsxs)(`li`,{children:[(0,A.jsx)(`span`,{children:uu(e.at)}),(0,A.jsx)(`strong`,{children:iu[e.state]}),(0,A.jsx)(`p`,{children:e.reason})]},t))}),e.incident&&(0,A.jsx)(yu,{title:`异常记录`,items:[`${e.incident.status}:${e.incident.summary}`]})]}),(0,A.jsxs)(ru,{value:`metadata`,title:`任务信息`,children:[(0,A.jsxs)(`div`,{className:`section-caption`,children:[(0,A.jsx)(Me,{size:16}),`任务标识与执行信息`]}),(0,A.jsx)(`dl`,{className:`metadata`,children:[[`任务 ID`,e.id],[`来源`,e.source_label],[`执行主机`,e.host_id||`尚未绑定`],[`授权版本`,e.mandate_version],[`记录版本`,e.revision],[`记录更新`,uu(e.updated_at)]].map(([e,t])=>(0,A.jsxs)(`div`,{children:[(0,A.jsx)(`dt`,{children:e}),(0,A.jsx)(`dd`,{children:t})]},e))}),e.monitor&&(0,A.jsxs)(`p`,{className:`metadata-note`,children:[ou[e.monitor.status],`:`,e.monitor.reason,`。跟进状态不代表执行聊天已停止。`]})]})]})]},e.key)}var xu={id:`tianshu`,version:{name:`@jeffusion/tianshu`,version:`0.1.0`,type:`module`,scripts:{dev:`node scripts/dev.mjs`,check:`npm run build && npm test && npm run test:ledger && npm run test:package`,build:`npm run typecheck && node scripts/build.mjs`,test:`node --test tests/context.test.mjs tests/deletion.test.mjs tests/protocol.test.mjs`,"test:ledger":`python3 -m unittest discover -s tests -p 'test_*.py'`,typecheck:`tsc --noEmit`,"sync:local":`node scripts/sync-local.mjs`,demo:`node scripts/demo.mjs`,"demo:prepare":`node scripts/demo.mjs --prepare-only`,"demo:check":`node scripts/check-demo.mjs`,prepack:`npm run build`,"test:package":`node --test tests/package.test.mjs`},overrides:{zod:`$zod`},devDependencies:{"@modelcontextprotocol/ext-apps":`1.7.5`,"@modelcontextprotocol/sdk":`1.32.2`,"@openai/mcp-extensions":`0.2.1`,"@radix-ui/react-accordion":`1.3.1`,"@radix-ui/react-select":`2.4.1`,"@radix-ui/react-tooltip":`1.4.1`,esbuild:`0.28.2`,"lucide-react":`1.66.0`,react:`19.3.1`,"react-dom":`19.3.1`,zod:`4.6.7`,"@types/node":`26.6.6`,"@types/react":`19.3.0`,"@types/react-dom":`19.3.0`,"@vitejs/plugin-react":`6.1.2`,typescript:`7.0.2`,vite:`8.3.5`,"vite-plugin-singlefile":`2.3.4`},description:`天枢:面向长期目标的智能协作工作台`,license:`MIT`,author:`Jeffusion`,repository:{type:`git`,url:`git+https://github.com/jeffusion/tianshu.git`},homepage:`https://github.com/jeffusion/tianshu#readme`,bugs:{url:`https://github.com/jeffusion/tianshu/issues`},engines:{node:`>=24 <27`},keywords:[`codex`,`mcp`,`agent`,`task-coordination`],bin:{tianshu:`bin/tianshu.mjs`},files:[`bin/`,`cli/`,`dist/plugin/`,`dist/build-info.json`,`LICENSE`,`README.md`,`docs/npm-distribution.md`],publishConfig:{access:`public`,registry:`https://registry.npmjs.org/`}}.version,name:`天枢`,englishName:`Tianshu`,workspace:`任务中心`,marketplace:`tianshu`,skill:`coordinator`,resourceUri:`ui://tianshu/task-center`,developerName:`Jeffusion`,category:`Productivity`,capabilities:[`Read`,`Write`]},Su={name:xu.name,englishName:xu.englishName,workspace:xu.workspace};function Cu({bridge:e,preview:t=!1}){(0,D.useEffect)(()=>{let e=document.documentElement,t=t=>{[`Tab`,`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`,`Enter`,` `].includes(t.key)&&(e.dataset.inputModality=`keyboard`)},n=()=>{e.dataset.inputModality=`pointer`};return document.addEventListener(`keydown`,t,!0),document.addEventListener(`pointerdown`,n,!0),()=>{document.removeEventListener(`keydown`,t,!0),document.removeEventListener(`pointerdown`,n,!0)}},[]);let[n,r]=(0,D.useState)(document.documentElement.dataset.theme||`dark`),[i,a]=(0,D.useState)(null),[o,s]=(0,D.useState)(null),[c,l]=(0,D.useState)(`all`),[u,d]=(0,D.useState)(``),[f,p]=(0,D.useState)(`all`),[m,h]=(0,D.useState)(``),[g,_]=(0,D.useState)(!1),[v,y]=(0,D.useState)(!1),[b,x]=(0,D.useState)(!1),[S,C]=(0,D.useState)(!1),[ee,w]=(0,D.useState)(null),[te,T]=(0,D.useState)(null),[ne,E]=(0,D.useState)(!1);(0,D.useEffect)(()=>{let t=!0;return e.start(e=>{t&&a(e)},e=>{t&&(_(!0),y(e))}).catch(e=>{t&&h(String(e.message||e))}),()=>{t=!1,e.close()}},[e]);let re=(0,D.useRef)(null),ie=(0,D.useRef)(null),ae=(0,D.useRef)(!1),O=i?.tasks||[],oe=[{value:`all`,label:`全部项目`},...[...new Set(O.map(pu))].sort((e,t)=>e.localeCompare(t,`zh-CN`)).map(e=>({value:`project:`+e,label:e}))];c!==`all`&&!oe.some(e=>e.value===c)&&oe.push({value:c,label:c.slice(8)+`(暂无任务)`});let ce=(0,D.useMemo)(()=>O.filter(e=>c===`all`||`project:`+pu(e)===c).filter(e=>(e.id+` `+e.objective+` `+fu(e)+` `+pu(e)).toLowerCase().includes(u.trim().toLowerCase())).filter(e=>f===`all`||(f===`attention`?su(e):f===`done`?[`accepted`,`stopped`].includes(e.state):e.state===`running`)),[i,u,f,c]),le=ce.find(e=>e.key===o)||ce[0];(0,D.useEffect)(()=>{ne?re.current?.querySelector(`h2`)?.focus():ae.current&&ie.current?.querySelector(`[aria-pressed=true]`)?.focus(),ae.current=ne},[ne,le?.key]);let ue=O.filter(su).length,de=O.filter(e=>e.state===`running`).length,fe=(te?.key===le?.key?te?.message:``)||(le&&ee?.key===le.key?ee?.signature===cu(le)?`已带到聊天,在输入框继续提出你的要求。`:`任务已有更新,请重新带到聊天。`:``);async function pe(){if(g&&!b){x(!0),h(``);try{a(await e.refresh())}catch(e){h(e.message)}finally{x(!1)}}}async function me(t){if(!S){C(!0),T(null);try{await e.attach(t),w({key:t.key,signature:cu(t)})}catch(e){T({key:t.key,message:`添加失败:`+e.message})}finally{C(!1)}}}let ge=i?.sources.filter(e=>!e.ok).map(e=>`${e.label}:${e.error}`).join(`;`);return(0,A.jsx)(kl,{delayDuration:350,children:(0,A.jsxs)(`main`,{className:`task-center`,children:[(0,A.jsxs)(`header`,{className:`app-header`,children:[(0,A.jsxs)(`div`,{className:`app-heading`,children:[(0,A.jsxs)(`div`,{className:`brand-name`,children:[(0,A.jsx)(`h1`,{children:Su.name}),(0,A.jsx)(`span`,{children:Su.englishName})]}),(0,A.jsx)(`span`,{className:`workspace-name`,children:Su.workspace}),(0,A.jsxs)(`span`,{className:`header-count`,children:[O.length,` 项任务`]})]}),(0,A.jsxs)(`div`,{className:`header-actions`,children:[t&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(`span`,{className:`preview-label`,children:`预览 · 未安装`}),(0,A.jsx)($l,{label:n===`dark`?`查看浅色预览`:`查看深色预览`,onClick:()=>{let e=n===`dark`?`light`:`dark`;r(e),document.documentElement.dataset.theme=e},children:n===`dark`?(0,A.jsx)(Be,{size:16}):(0,A.jsx)(Oe,{size:16})})]}),(0,A.jsx)($l,{label:`刷新任务`,disabled:!g||b,onClick:pe,children:(0,A.jsx)(Ae,{className:b?`spinning`:``,size:17})})]})]}),(0,A.jsxs)(`div`,{className:`toolbar`,children:[(0,A.jsxs)(`div`,{className:`search-field`,children:[(0,A.jsx)(Pe,{size:17}),(0,A.jsx)(`input`,{"aria-label":`搜索任务`,value:u,onChange:e=>{d(e.target.value),E(!1)},placeholder:`搜索任务`}),u&&(0,A.jsx)($l,{label:`清除搜索`,onClick:()=>d(``),children:(0,A.jsx)(He,{size:14})})]}),(0,A.jsx)(nu,{label:`筛选所属项目`,value:c,options:oe,onChange:e=>{l(e),E(!1)}}),(0,A.jsx)(tu,{value:f,onChange:e=>{p(e),E(!1)}})]}),(m||ge)&&(0,A.jsx)(`div`,{className:`error-banner`,role:`alert`,children:m||ge}),i?(0,A.jsxs)(`div`,{className:`task-workspace`,"data-mobile-detail":ne,children:[(0,A.jsxs)(`aside`,{ref:ie,className:`list-pane`,"aria-label":`任务列表`,children:[(0,A.jsx)(`div`,{className:`list-label`,children:(0,A.jsx)(`span`,{children:de?`${de} 项执行中`:ue?`${ue} 项待处理`:O.length&&O.every(du)?`所有任务均已结束`:`${O.length} 项任务`})}),[...new Set(ce.map(pu))].map(e=>(0,A.jsxs)(`section`,{className:`project-group`,"aria-label":`${e} 项目`,children:[(0,A.jsxs)(`div`,{className:`project-label`,children:[(0,A.jsx)(we,{size:14}),(0,A.jsxs)(`h2`,{children:[(0,A.jsx)(`span`,{children:`项目 · `}),e]}),(0,A.jsxs)(`span`,{children:[ce.filter(t=>pu(t)===e).length,` 项任务`]})]}),(0,A.jsx)(`div`,{className:`task-list`,children:ce.filter(t=>pu(t)===e).map(e=>(0,A.jsxs)(`button`,{type:`button`,className:`task-row`,"aria-pressed":le?.key===e.key,"aria-label":`选择任务 ${e.id}`,onClick:()=>{s(e.key),T(null),E(!0)},children:[(0,A.jsxs)(`div`,{className:`task-row-top`,children:[(0,A.jsx)(`h2`,{children:fu(e)}),(0,A.jsx)(vu,{task:e})]}),(0,A.jsx)(`p`,{children:hu(e)}),(0,A.jsxs)(`div`,{className:`task-row-footer`,children:[(0,A.jsx)(`time`,{children:_u(du(e)?gu(e):e.observed_at)}),(0,A.jsx)(he,{size:14})]})]},e.key))})]},e)),!ce.length&&(0,A.jsxs)(`div`,{className:`list-empty`,children:[(0,A.jsx)(Ie,{size:25}),(0,A.jsx)(`strong`,{children:`没有匹配的任务`}),(0,A.jsx)(`p`,{children:`试试其他项目、关键词或状态`})]})]}),(0,A.jsxs)(`section`,{ref:re,className:`detail-pane`,children:[(0,A.jsxs)(Ql,{className:`back-button`,onClick:()=>E(!1),children:[(0,A.jsx)(se,{size:16}),`返回任务列表`]}),le?(0,A.jsx)(bu,{task:le,canAttach:v,attaching:S,onAttach:()=>void me(le),feedback:fe},le.key):(0,A.jsxs)(`div`,{className:`detail-empty`,children:[(0,A.jsx)(`div`,{children:(0,A.jsx)(ye,{size:26})}),(0,A.jsx)(`h2`,{children:`从一个任务开始`}),(0,A.jsxs)(`p`,{children:[`在左侧选择任务,查看进度与交付。`,(0,A.jsx)(`br`,{}),`带到聊天后,直接说出你的要求。`]})]})]})]}):(0,A.jsxs)(`div`,{className:`loading-state`,children:[(0,A.jsx)(Ee,{className:`spinning`,size:22}),(0,A.jsx)(`p`,{children:m?`暂时无法读取任务`:`正在读取任务台账`}),m&&(0,A.jsx)(Ql,{onClick:pe,disabled:!g,children:`重试`})]}),(0,A.jsxs)(`footer`,{className:`app-footer`,children:[(0,A.jsxs)(`span`,{className:`sync-state`,children:[(0,A.jsx)(`span`,{className:`sync-dot`}),i?`最近同步 ${uu(i.read_at)}`:`连接中`]}),(0,A.jsx)(`span`,{children:t?`只读预览 · 不修改任务、不发送附件`:`在聊天中 @天枢,继续推进任务`})]})]})})}var wu=c({BIGINT_FORMAT_RANGES:()=>Yd,CONSTANT_CATCH:()=>tf,Class:()=>Zd,NUMBER_FORMAT_RANGES:()=>Jd,aborted:()=>hd,allowsEval:()=>Wd,assert:()=>Au,assertEqual:()=>Tu,assertIs:()=>Ou,assertNever:()=>ku,assertNotEqual:()=>Eu,assignProp:()=>zu,attachSchema:()=>bd,base64ToUint8Array:()=>Dd,base64urlToUint8Array:()=>kd,cached:()=>Nu,captureStackTrace:()=>Ud,cleanEnum:()=>Ed,cleanRegex:()=>Fu,clone:()=>id,cloneDef:()=>qu,codePointLength:()=>Cd,constantCatch:()=>Bd,createTransparentProxy:()=>ad,defineLazy:()=>Lu,defineLazyInternal:()=>R,derived:()=>Id,esc:()=>Zu,escapeRegex:()=>rd,explicitlyAborted:()=>gd,extend:()=>ud,finalizeIssue:()=>xd,floatSafeRemainder:()=>Iu,getElementAtPath:()=>Ju,getEnumValues:()=>ju,getLengthableOrigin:()=>wd,getParsedType:()=>Gd,getSizableOrigin:()=>Sd,hexToUint8Array:()=>jd,hide:()=>Fd,installLazyProp:()=>zd,isObject:()=>$u,isPlainObject:()=>ed,issue:()=>Td,joinValues:()=>N,jsonStringifyReplacer:()=>Mu,members:()=>Nd,merge:()=>fd,mergeDefs:()=>Ku,normalizeParams:()=>P,nullish:()=>Pu,numKeys:()=>nd,objectClone:()=>Ru,omit:()=>ld,optionalKeys:()=>od,own:()=>Pd,parsedType:()=>L,partial:()=>pd,pick:()=>sd,prefixIssues:()=>_d,primitiveTypes:()=>qd,promiseAllObject:()=>Yu,propertyKeyTypes:()=>Kd,randomString:()=>Xu,rawShape:()=>Bu,required:()=>md,safeExtend:()=>I,shallowClone:()=>td,sizeCaps:()=>yd,slugify:()=>Qu,stringifyPrimitive:()=>F,toZod:()=>Du,uint8ArrayToBase64:()=>Od,uint8ArrayToBase64url:()=>Ad,uint8ArrayToHex:()=>Md,unwrapMessage:()=>vd});function Tu(e){return e}function Eu(e){return e}function Du(){return e=>e}function Ou(e){}function ku(e){throw Error(`Unexpected value in exhaustive check`)}function Au(e){}function ju(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function N(e,t=`|`){return e.map(e=>F(e)).join(t)}function Mu(e,t){return typeof t==`bigint`?t.toString():t}function Nu(e){return new Vd(e)}function Pu(e){return e==null}function Fu(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function Iu(e,t){let n=e/t,r=Math.round(n),i=4*2**-52*Math.max(Math.abs(n),1);return Math.abs(n-r)<i?0:n-r}function Lu(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==Hd)return r===void 0&&(r=Hd,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function Ru(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function zu(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function Bu(e){let t=Object.getOwnPropertyDescriptor(e,`shape`);return t?.get?t.get.raw:t?.value}function Vu(e){return Bu(e._zod.def)??e._zod.def.shape}function Hu(e,t,n){Object.defineProperty(e,t,{get(){let e=n();return zu(this,t,e),e},enumerable:!0,configurable:!0})}function Uu(e,t,n){t in e?zu(e,t,n):e[t]=n}function Wu(e,t,n,r){let i=Vu(t);for(let a of n){let n=Object.getOwnPropertyDescriptor(i,a);n.enumerable&&(n.get?Hu(e,a,()=>{let e=t._zod.def.shape[a];return r?r(e,a):e}):Uu(e,a,r?r(n.value,a):n.value))}}function Gu(e,t){for(let n of Reflect.ownKeys(t)){let r=Object.getOwnPropertyDescriptor(t,n);r.enumerable&&(r.get?Hu(e,n,()=>t[n]):Uu(e,n,r.value))}}function Ku(...e){let t={};for(let n of e){let e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function qu(e){return Ku(e._zod.def)}function Ju(e,t){return t?t.reduce((e,t)=>e?.[t],e):e}function Yu(e){let t=Object.keys(e),n=t.map(t=>e[t]);return Promise.all(n).then(e=>{let n={};for(let r=0;r<t.length;r++)n[t[r]]=e[r];return n})}function Xu(e=10){let t=``;for(let n=0;n<e;n++)t+=`abcdefghijklmnopqrstuvwxyz`[Math.floor(Math.random()*26)];return t}function Zu(e){return JSON.stringify(e)}function Qu(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}function $u(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function ed(e){if($u(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return $u(n)!==!1&&Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)!==!1}function td(e){return ed(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}function nd(e){let t=0;for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&t++;return t}function rd(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function id(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function P(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function ad(e){let t;return new Proxy({},{get(n,r,i){return t??=e(),Reflect.get(t,r,i)},set(n,r,i,a){return t??=e(),Reflect.set(t,r,i,a)},has(n,r){return t??=e(),Reflect.has(t,r)},deleteProperty(n,r){return t??=e(),Reflect.deleteProperty(t,r)},ownKeys(n){return t??=e(),Reflect.ownKeys(t)},getOwnPropertyDescriptor(n,r){return t??=e(),Reflect.getOwnPropertyDescriptor(t,r)},defineProperty(n,r,i){return t??=e(),Reflect.defineProperty(t,r,i)}})}function F(e){return typeof e==`bigint`?e.toString()+`n`:typeof e==`string`?`"${e}"`:`${e}`}function od(e){return Object.keys(e).filter(t=>e[t]._zod.optin!==void 0&&e[t]._zod.optout===`optional`)}function sd(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.pick() cannot be used on object schemas containing refinements`);let i={};return Wu(i,e,cd(e,t)),id(e,Ku(n,{shape:i,checks:[]}))}function cd(e,t){let n=Vu(e),r=[];for(let e of Reflect.ownKeys(t)){if(!Object.getOwnPropertyDescriptor(n,e)?.enumerable)throw Error(`Unrecognized key: "${String(e)}"`);t[e]&&r.push(e)}return r}function ld(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.omit() cannot be used on object schemas containing refinements`);let i=new Set(cd(e,t)),a={};return Wu(a,e,Reflect.ownKeys(Vu(e)).filter(e=>!i.has(e))),id(e,Ku(n,{shape:a,checks:[]}))}function ud(e,t){if(!ed(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0){let n=Vu(e);for(let e of Reflect.ownKeys(t))if(Object.getOwnPropertyDescriptor(n,e)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return id(e,Ku(e._zod.def,{shape:dd(e,t)}))}function dd(e,t){let n={};return Wu(n,e,Reflect.ownKeys(Vu(e))),Gu(n,t),n}function I(e,t){if(!ed(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return id(e,Ku(e._zod.def,{shape:dd(e,t)}))}function fd(e,t){if(!t?._zod?.def)throw Error("Invalid input to merge: expected an object schema. To merge a plain shape, use `.extend()`.");if(e._zod.def.checks?.length)throw Error(`.merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.`);let n={};return Wu(n,e,Reflect.ownKeys(Vu(e))),Wu(n,t,Reflect.ownKeys(Vu(t))),id(e,Ku(e._zod.def,{shape:n,get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}function pd(e,t,n,r=`partial`){let i=t._zod.def.checks;if(i&&i.length>0)throw Error(`.${r}() cannot be used on object schemas containing refinements`);let a=n?new Set(cd(t,n)):void 0,o={};return Wu(o,t,Reflect.ownKeys(Vu(t)),e&&((t,n)=>a&&!a.has(n)?t:new e({type:`optional`,innerType:t}))),id(t,Ku(t._zod.def,{shape:o,checks:[]}))}function md(e,t,n){let r=n?new Set(cd(t,n)):void 0,i={};return Wu(i,t,Reflect.ownKeys(Vu(t)),(t,n)=>r&&!r.has(n)?t:new e({type:`nonoptional`,innerType:t})),id(t,Ku(t._zod.def,{shape:i}))}function hd(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function gd(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue===!1)return!0;return!1}function _d(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function vd(e){return typeof e==`string`?e:e?.message}function yd(e){let t=[];for(let n of e??[]){let e=n._zod.def;if(!/_(length|size)$|_equals$/.test(e.check))break;let r=e.maximum??e.length??e.size;r>=0&&t.push([r,n])}return t}function bd(e,t,n){var r;for(let i=t;i<e.length;i++)(r=e[i]).schema??(r.schema=n)}function xd(e,t,n){var r;let i=e.inst?._zod?.traits;i?.has(`$ZodType`)&&(i.has(`$ZodCheck`)?(r=e).schema??(r.schema=e.inst):e.schema=e.inst);let a=e.schema===e.inst?void 0:e.schema?._zod.def?.error,o=e.message?e.message:vd(e.inst?._zod.def?.error?.(e))??vd(a?.(e))??vd(t?.error?.(e))??vd(n.customError?.(e))??vd(n.localeError?.(e))??`Invalid input`,s={};for(let t of Object.keys(e))t!==`inst`&&t!==`schema`&&t!==`continue`&&t!==`input`&&t!==`__proto__`&&(s[t]=e[t]);return s.path??=[],s.message=o,t?.reportInput&&(s.input=e.input),s}function Sd(e){return e instanceof Set?`set`:e instanceof Map?`map`:e instanceof File?`file`:`unknown`}function Cd(e){let t=e.length;if(!Xd.test(e))return t;let n=t;for(let r=0;r<t-1;r++)(e.charCodeAt(r)&64512)==55296&&(e.charCodeAt(r+1)&64512)==56320&&(n--,r++);return n}function wd(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function L(e){let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`nan`:`number`;case`object`:{if(e===null)return`null`;if(Array.isArray(e))return`array`;let t=e;if(t&&Object.getPrototypeOf(t)!==Object.prototype&&`constructor`in t&&t.constructor)return t.constructor.name}}return t}function Td(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}function Ed(e){return Object.entries(e).filter(([e,t])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}function Dd(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}function Od(e){let t=``;for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t)}function kd(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`);return Dd(t+`=`.repeat((4-t.length%4)%4))}function Ad(e){return Od(e).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=/g,``)}function jd(e){let t=e.replace(/^0x/,``);if(t.length%2!=0)throw Error(`Invalid hex string length`);let n=new Uint8Array(t.length/2);for(let e=0;e<t.length;e+=2)n[e/2]=Number.parseInt(t.slice(e,e+2),16);return n}function Md(e){return Array.from(e).map(e=>e.toString(16).padStart(2,`0`)).join(``)}function Nd(e,t){for(let n in t){let r=Object.getOwnPropertyDescriptor(t,n);r.get?Object.defineProperty(e,n,{...r,enumerable:!1}):Ld(e,n,r.value)}}function Pd(e,t,n,r=!0){return Object.defineProperty(e,t,{configurable:!0,writable:!0,enumerable:r,value:n}),n}function Fd(e,t,n){return Pd(e,t,n,!1)}function Id(e,t){for(let n in e){let r=e[n];Object.defineProperty(t,n,{configurable:!0,enumerable:!0,get(){return Pd(this,n,r(this))},set(e){Pd(this,n,e)}})}return t}function Ld(e,t,n){Object.defineProperty(e,t,{configurable:!0,get(){return this==null?n:Pd(this,t,n.bind(this))},set(e){Pd(this,t,e)}})}function Rd(e,t){let n=Object.getPrototypeOf(e);return t in n?void 0:n}function R(e,t,n){let r=Object.getPrototypeOf(e._zod);t in r&&Qd!==e._zod?Qd=void 0:(Qd=e._zod,Object.defineProperty(r,t,{configurable:!0,get(){Object.defineProperty(this,t,ef);let e=$d;$d=!1;try{let r=n(this);return $d?delete this[t]:Object.defineProperty(this,t,{configurable:!0,writable:!0,value:r}),$d||=e,r}catch(n){throw delete this[t],$d||=e,n}},set(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:e})}}))}function zd(e,t,n,r){let i=Rd(e,t);i&&Object.defineProperty(i,t,{configurable:!0,get(){let e={configurable:!0,writable:!0,enumerable:r,value:void 0};return Object.defineProperty(this,t,e),e.value=n(this),Object.defineProperty(this,t,e),e.value},set(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,enumerable:r,value:e})}})}function Bd(e){let t=()=>e;return t[tf]=!0,t}var Vd,Hd,Ud,Wd,Gd,Kd,qd,Jd,Yd,Xd,Zd,Qd,$d,ef,tf,z=o((()=>{pf(),Vd=class{constructor(e){this._getter=e,this._value=void 0}get value(){let e=this._getter;return e!==void 0&&(this._value=e(),this._getter=void 0),this._value}},Hd=Symbol(`evaluating`),Ud=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{},Wd=Nu(()=>{if(ff.jitless||typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}}),Gd=e=>{let t=typeof e;switch(t){case`undefined`:return`undefined`;case`string`:return`string`;case`number`:return Number.isNaN(e)?`nan`:`number`;case`boolean`:return`boolean`;case`function`:return`function`;case`bigint`:return`bigint`;case`symbol`:return`symbol`;case`object`:return Array.isArray(e)?`array`:e===null?`null`:e.then&&typeof e.then==`function`&&e.catch&&typeof e.catch==`function`?`promise`:typeof Map<`u`&&e instanceof Map?`map`:typeof Set<`u`&&e instanceof Set?`set`:typeof Date<`u`&&e instanceof Date?`date`:typeof File<`u`&&e instanceof File?`file`:`object`;default:throw Error(`Unknown data type: ${t}`)}},Kd=new Set([`string`,`number`,`symbol`]),qd=new Set([`string`,`number`,`bigint`,`boolean`,`symbol`,`undefined`]),Jd={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},Yd={int64:[BigInt(`-9223372036854775808`),BigInt(`9223372036854775807`)],uint64:[BigInt(0),BigInt(`18446744073709551615`)]},Xd=/[\uD800-\uDBFF]/,Zd=class{constructor(...e){}},$d=!1,ef={configurable:!0,get(){$d=!0}},tf=`~constantCatch`}));function nf(e){let t=cf;if(t){let n=t.stackTraceLimit;if(typeof n==`number`){try{t.stackTraceLimit=0}catch{return cf=null,new e}try{return new e}finally{t.stackTraceLimit=n}}}return new e}function B(e,t,n,r){let i={};function a(e){this.def=e,this.constr=d,this.traits=new Set}a.prototype=i;let o=n,s=o&&new WeakSet;function c(n,r){if(!n._zod){sf.value=new a(r);try{Object.defineProperty(n,"_zod",sf)}finally{sf.value=void 0}}else if(n._zod.traits.has(e))return;if(n._zod.traits.add(e),t(n,r),s){let e=Object.getPrototypeOf(n),t=n._zod.constr.prototype,r=e;for(;r&&r!==t;)r=Object.getPrototypeOf(r);let i=r??e;s.has(i)||(s.add(i),Nd(i,o))}let i=d.prototype;for(let e in i)Object.prototype.hasOwnProperty.call(i,e)&&(e in n||(n[e]=i[e].bind(n)))}let l=r?.Parent??Object;class u extends l{}Object.defineProperty(u,"name",{value:e});function d(e){let t=r?.Parent?nf(u):this;c(t,e);let n=t._zod.deferred;if(n){for(let e of n)e();t._zod.deferred=void 0}let i=globalThis.__zod_globalConfig?.postProcessor;return i&&i(t),t}return Object.defineProperty(d,"init",{value:c}),Object.defineProperty(d,Symbol.hasInstance,{value:t=>r?.Parent&&t instanceof r.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(d,"name",{value:e}),d}function rf(e){return e&&Object.assign(ff,e),ff}var af,of,sf,cf,lf,uf,df,ff,pf=o((()=>{z(),of=Object.freeze({status:`aborted`}),sf={value:void 0,enumerable:!1},cf=`captureStackTrace`in Error?Error:null,lf=Symbol(`zod_brand`),uf=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},df=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}},(af=globalThis).__zod_globalConfig??(af.__zod_globalConfig={}),ff=globalThis.__zod_globalConfig}));function mf(){let e=this._zod;return e.message??=JSON.stringify(e.def,Mu,2),e.message}function hf(e){this._zod.message=e}function gf(e,t,n){return Object.prototype.hasOwnProperty.call(e,t)||(t===`__proto__`?Object.defineProperty(e,t,{value:n(),writable:!0,enumerable:!0,configurable:!0}):e[t]=n()),e[t]}function _f(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?gf(n,i.path[0],()=>[]).push(t(i)):r.push(t(i));return{formErrors:r,fieldErrors:n}}function vf(e,t=e=>e.message){let n={_errors:[]},r=(e,i=[])=>{for(let a of e.issues)if(a.code===`invalid_union`&&a.errors.length)a.errors.map(e=>r({issues:e},[...i,...a.path]));else if(a.code===`invalid_key`)r({issues:a.issues},[...i,...a.path]);else if(a.code===`invalid_element`)r({issues:a.issues},[...i,...a.path]);else{let e=[...i,...a.path];if(e.length===0)n._errors.push(t(a));else{let r=n,i=0;for(;i<e.length;){let n=e[i],o=i===e.length-1;if(n===`_errors`){o&&r._errors.push(t(a)),i++;continue}Object.prototype.hasOwnProperty.call(r,n)||Object.defineProperty(r,n,{value:{_errors:[]},enumerable:!0,writable:!0,configurable:!0});let s=r[n];o&&s._errors.push(t(a)),r=s,i++}}}};return r(e),n}function yf(e,t=e=>e.message){let n={errors:[]},r=(e,i=[])=>{var a;for(let o of e.issues)if(o.code===`invalid_union`&&o.errors.length)o.errors.map(e=>r({issues:e},[...i,...o.path]));else if(o.code===`invalid_key`)r({issues:o.issues},[...i,...o.path]);else if(o.code===`invalid_element`)r({issues:o.issues},[...i,...o.path]);else{let e=[...i,...o.path];if(e.length===0){n.errors.push(t(o));continue}let r=n,s=0;for(;s<e.length;){let n=e[s],i=s===e.length-1;typeof n==`string`?(r.properties??(r.properties={}),Object.prototype.hasOwnProperty.call(r.properties,n)||Object.defineProperty(r.properties,n,{value:{errors:[]},enumerable:!0,writable:!0,configurable:!0}),r=r.properties[n]):(r.items??(r.items=[]),(a=r.items)[n]??(a[n]={errors:[]}),r=r.items[n]),i&&r.errors.push(t(o)),s++}}};return r(e),n}function bf(e){let t=[],n=e.map(e=>typeof e==`object`?e.key:e);for(let e of n)typeof e==`number`?t.push(`[${e}]`):typeof e==`symbol`?t.push(`[${JSON.stringify(String(e))}]`):/[^\w$]/.test(e)?t.push(`[${JSON.stringify(e)}]`):(t.length&&t.push(`.`),t.push(e));return t.join(``)}function xf(e){let t=[],n=[...e.issues].sort((e,t)=>(e.path??[]).length-(t.path??[]).length);for(let e of n)t.push(`✖ ${e.message}`),e.path?.length&&t.push(` → at ${bf(e.path)}`);return t.join(`
50
+ `),_meta:{"openai/title":`任务:${e.id}`,"openai/group":{title:`天枢`}}}],structuredContent:{selectedTask:{key:e.key,id:e.id,revision:e.revision,mandate_version:e.mandate_version}}}}var uu=e=>e?new Date(e).toLocaleString(`zh-CN`,{hour12:!1}):`尚无记录`,du=e=>[`accepted`,`stopped`].includes(e.state),fu=e=>e.display?.title||e.objective,pu=e=>e.display?.project||`未分配项目`,mu=e=>e.state===`stopped`?`已结束`:iu[e.state];function hu(e){return du(e)?e.display?.final_summary||(e.state===`accepted`?`已通过验收,核验依据已保留。`:`任务已结束,历史记录已保留。`):e.summary||`还没有新的进度记录。`}var gu=e=>e.display?.final_at||[...e.transitions].reverse().find(e=>e.state===`accepted`||e.state===`stopped`)?.at||e.updated_at;function _u(e){return e?new Date(e).toLocaleString(`zh-CN`,{month:`numeric`,day:`numeric`,hour:`2-digit`,minute:`2-digit`,hour12:!1}):`暂无时间`}function vu({task:e}){return(0,A.jsxs)(`span`,{className:`status-badge ${e.state}`,children:[(0,A.jsx)(`span`,{className:`status-dot`}),mu(e)]})}function yu({title:e,items:t}){return t?.length?(0,A.jsxs)(`section`,{className:`evidence-group`,children:[(0,A.jsx)(`h4`,{children:e}),(0,A.jsx)(`ul`,{children:t.map((e,t)=>(0,A.jsx)(`li`,{children:e},t))})]}):null}function bu({task:e,onAttach:t,canAttach:n,attaching:r,feedback:i}){let a=du(e);return(0,A.jsxs)(`article`,{className:`task-detail`,"aria-label":`任务详情`,children:[(0,A.jsxs)(`div`,{className:`detail-toolbar`,children:[(0,A.jsxs)(`span`,{className:`detail-breadcrumb`,children:[(0,A.jsx)(`span`,{children:`所属项目`}),(0,A.jsx)(`strong`,{children:pu(e)})]}),(0,A.jsx)(vu,{task:e})]}),(0,A.jsxs)(`div`,{className:`detail-heading`,children:[(0,A.jsx)(`h2`,{tabIndex:-1,children:fu(e)}),(0,A.jsxs)(Ql,{className:`primary`,disabled:!n||r,onClick:t,children:[r?`正在添加…`:`带到聊天`,(0,A.jsx)(le,{size:15})]})]}),(0,A.jsxs)(`div`,{className:`detail-timestamp`,children:[a?`结束于`:`最近进展`,` `,uu(a?gu(e):e.observed_at)]}),(0,A.jsx)(`div`,{className:`attachment-feedback`,role:`status`,"aria-live":`polite`,children:i}),(0,A.jsxs)(`section`,{className:`progress-block ${a?`final-result`:``}`,children:[(0,A.jsx)(`div`,{className:`section-label`,children:(0,A.jsx)(`h3`,{children:a?`任务结果`:`当前进展`})}),(0,A.jsx)(`p`,{children:hu(e)})]}),e.incident?.status===`open`&&(0,A.jsxs)(`section`,{className:`notice`,children:[(0,A.jsx)(_e,{size:17}),(0,A.jsxs)(`div`,{children:[(0,A.jsx)(`strong`,{children:au[e.incident.category]||`需要关注`}),(0,A.jsx)(`p`,{children:e.incident.summary})]})]}),(0,A.jsxs)(Qc,{type:`multiple`,className:`detail-sections`,children:[(0,A.jsxs)(ru,{value:`evidence`,title:`交付与验收`,children:[(0,A.jsxs)(`div`,{className:`section-caption`,children:[(0,A.jsx)(Se,{size:16}),e.verification?.by?`核验者:${e.verification.by}`:`任务的交付与核验依据`]}),(0,A.jsx)(yu,{title:`结果依据`,items:e.display?.evidence}),(0,A.jsx)(yu,{title:`交付证据`,items:e.evidence}),(0,A.jsx)(yu,{title:`验收依据`,items:e.verification?.evidence}),(0,A.jsx)(yu,{title:`异常依据`,items:e.incident?.evidence}),(0,A.jsx)(yu,{title:`恢复核验`,items:e.incident?.verification_evidence})]}),(0,A.jsxs)(ru,{value:`scope`,title:`目标与边界`,children:[(0,A.jsxs)(`div`,{className:`section-caption`,children:[(0,A.jsx)(Re,{size:16}),`任务要求、授权范围与验收条件`]}),(0,A.jsx)(yu,{title:`任务目标`,items:[e.objective]}),(0,A.jsx)(yu,{title:`允许范围`,items:e.allowed}),(0,A.jsx)(yu,{title:`禁止事项`,items:e.forbidden}),(0,A.jsx)(yu,{title:`验收条件`,items:e.acceptance})]}),(0,A.jsxs)(ru,{value:`history`,title:`执行记录`,children:[(0,A.jsxs)(`div`,{className:`section-caption`,children:[(0,A.jsx)(xe,{size:16}),`历史记录仅供追溯,不代表当前状态`]}),e.summary&&(0,A.jsxs)(`section`,{className:`history-observation`,children:[(0,A.jsx)(`time`,{children:uu(e.observed_at)}),(0,A.jsx)(`p`,{children:e.summary})]}),(0,A.jsx)(`ol`,{className:`timeline`,children:e.transitions?.map((e,t)=>(0,A.jsxs)(`li`,{children:[(0,A.jsx)(`span`,{children:uu(e.at)}),(0,A.jsx)(`strong`,{children:iu[e.state]}),(0,A.jsx)(`p`,{children:e.reason})]},t))}),e.incident&&(0,A.jsx)(yu,{title:`异常记录`,items:[`${e.incident.status}:${e.incident.summary}`]})]}),(0,A.jsxs)(ru,{value:`metadata`,title:`任务信息`,children:[(0,A.jsxs)(`div`,{className:`section-caption`,children:[(0,A.jsx)(Me,{size:16}),`任务标识与执行信息`]}),(0,A.jsx)(`dl`,{className:`metadata`,children:[[`任务 ID`,e.id],[`来源`,e.source_label],[`执行主机`,e.host_id||`尚未绑定`],[`授权版本`,e.mandate_version],[`记录版本`,e.revision],[`记录更新`,uu(e.updated_at)]].map(([e,t])=>(0,A.jsxs)(`div`,{children:[(0,A.jsx)(`dt`,{children:e}),(0,A.jsx)(`dd`,{children:t})]},e))}),e.monitor&&(0,A.jsxs)(`p`,{className:`metadata-note`,children:[ou[e.monitor.status],`:`,e.monitor.reason,`。跟进状态不代表执行聊天已停止。`]})]})]})]},e.key)}var xu={id:`tianshu`,version:{name:`@jeffusion/tianshu`,version:`0.1.1`,type:`module`,scripts:{dev:`node scripts/dev.mjs`,check:`npm run build && npm test && npm run test:ledger && npm run test:package`,build:`npm run typecheck && node scripts/build.mjs`,test:`node --test tests/context.test.mjs tests/deletion.test.mjs tests/protocol.test.mjs`,"test:ledger":`python3 -m unittest discover -s tests -p 'test_*.py'`,typecheck:`tsc --noEmit`,demo:`node scripts/demo.mjs`,"demo:prepare":`node scripts/demo.mjs --prepare-only`,"demo:check":`node scripts/check-demo.mjs`,"test:package":`node --test tests/package.test.mjs`,"test:native":`node scripts/test-native.mjs`,"pack:release":`npm run build && npm pack ./dist/package --ignore-scripts --pack-destination .local`},overrides:{zod:`$zod`},devDependencies:{"@modelcontextprotocol/ext-apps":`1.7.5`,"@modelcontextprotocol/sdk":`1.32.2`,"@openai/mcp-extensions":`0.2.1`,"@radix-ui/react-accordion":`1.3.1`,"@radix-ui/react-select":`2.4.1`,"@radix-ui/react-tooltip":`1.4.1`,esbuild:`0.28.2`,"lucide-react":`1.66.0`,react:`19.3.1`,"react-dom":`19.3.1`,zod:`4.6.7`,"@types/node":`26.6.6`,"@types/react":`19.3.0`,"@types/react-dom":`19.3.0`,"@vitejs/plugin-react":`6.1.2`,typescript:`7.0.2`,vite:`8.3.5`,"vite-plugin-singlefile":`2.3.4`},description:`天枢:面向长期目标的智能协作工作台`,license:`MIT`,author:`Jeffusion`,repository:{type:`git`,url:`git+https://github.com/jeffusion/tianshu.git`},homepage:`https://github.com/jeffusion/tianshu#readme`,bugs:{url:`https://github.com/jeffusion/tianshu/issues`},engines:{node:`>=24 <27`},keywords:[`codex`,`mcp`,`agent`,`task-coordination`],bin:{tianshu:`bin/tianshu.mjs`},publishConfig:{access:`public`,registry:`https://registry.npmjs.org/`},private:!0}.version,name:`天枢`,englishName:`Tianshu`,workspace:`任务中心`,marketplace:`jeffusion`,skill:`coordinator`,resourceUri:`ui://tianshu/task-center`,developerName:`Jeffusion`,category:`Productivity`,capabilities:[`Read`,`Write`]},Su={name:xu.name,englishName:xu.englishName,workspace:xu.workspace};function Cu({bridge:e,preview:t=!1}){(0,D.useEffect)(()=>{let e=document.documentElement,t=t=>{[`Tab`,`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`,`Enter`,` `].includes(t.key)&&(e.dataset.inputModality=`keyboard`)},n=()=>{e.dataset.inputModality=`pointer`};return document.addEventListener(`keydown`,t,!0),document.addEventListener(`pointerdown`,n,!0),()=>{document.removeEventListener(`keydown`,t,!0),document.removeEventListener(`pointerdown`,n,!0)}},[]);let[n,r]=(0,D.useState)(document.documentElement.dataset.theme||`dark`),[i,a]=(0,D.useState)(null),[o,s]=(0,D.useState)(null),[c,l]=(0,D.useState)(`all`),[u,d]=(0,D.useState)(``),[f,p]=(0,D.useState)(`all`),[m,h]=(0,D.useState)(``),[g,_]=(0,D.useState)(!1),[v,y]=(0,D.useState)(!1),[b,x]=(0,D.useState)(!1),[S,C]=(0,D.useState)(!1),[ee,w]=(0,D.useState)(null),[te,T]=(0,D.useState)(null),[ne,E]=(0,D.useState)(!1);(0,D.useEffect)(()=>{let t=!0;return e.start(e=>{t&&a(e)},e=>{t&&(_(!0),y(e))}).catch(e=>{t&&h(String(e.message||e))}),()=>{t=!1,e.close()}},[e]);let re=(0,D.useRef)(null),ie=(0,D.useRef)(null),ae=(0,D.useRef)(!1),O=i?.tasks||[],oe=[{value:`all`,label:`全部项目`},...[...new Set(O.map(pu))].sort((e,t)=>e.localeCompare(t,`zh-CN`)).map(e=>({value:`project:`+e,label:e}))];c!==`all`&&!oe.some(e=>e.value===c)&&oe.push({value:c,label:c.slice(8)+`(暂无任务)`});let ce=(0,D.useMemo)(()=>O.filter(e=>c===`all`||`project:`+pu(e)===c).filter(e=>(e.id+` `+e.objective+` `+fu(e)+` `+pu(e)).toLowerCase().includes(u.trim().toLowerCase())).filter(e=>f===`all`||(f===`attention`?su(e):f===`done`?[`accepted`,`stopped`].includes(e.state):e.state===`running`)),[i,u,f,c]),le=ce.find(e=>e.key===o)||ce[0];(0,D.useEffect)(()=>{ne?re.current?.querySelector(`h2`)?.focus():ae.current&&ie.current?.querySelector(`[aria-pressed=true]`)?.focus(),ae.current=ne},[ne,le?.key]);let ue=O.filter(su).length,de=O.filter(e=>e.state===`running`).length,fe=(te?.key===le?.key?te?.message:``)||(le&&ee?.key===le.key?ee?.signature===cu(le)?`已带到聊天,在输入框继续提出你的要求。`:`任务已有更新,请重新带到聊天。`:``);async function pe(){if(g&&!b){x(!0),h(``);try{a(await e.refresh())}catch(e){h(e.message)}finally{x(!1)}}}async function me(t){if(!S){C(!0),T(null);try{await e.attach(t),w({key:t.key,signature:cu(t)})}catch(e){T({key:t.key,message:`添加失败:`+e.message})}finally{C(!1)}}}let ge=i?.sources.filter(e=>!e.ok).map(e=>`${e.label}:${e.error}`).join(`;`);return(0,A.jsx)(kl,{delayDuration:350,children:(0,A.jsxs)(`main`,{className:`task-center`,children:[(0,A.jsxs)(`header`,{className:`app-header`,children:[(0,A.jsxs)(`div`,{className:`app-heading`,children:[(0,A.jsxs)(`div`,{className:`brand-name`,children:[(0,A.jsx)(`h1`,{children:Su.name}),(0,A.jsx)(`span`,{children:Su.englishName})]}),(0,A.jsx)(`span`,{className:`workspace-name`,children:Su.workspace}),(0,A.jsxs)(`span`,{className:`header-count`,children:[O.length,` 项任务`]})]}),(0,A.jsxs)(`div`,{className:`header-actions`,children:[t&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(`span`,{className:`preview-label`,children:`预览 · 未安装`}),(0,A.jsx)($l,{label:n===`dark`?`查看浅色预览`:`查看深色预览`,onClick:()=>{let e=n===`dark`?`light`:`dark`;r(e),document.documentElement.dataset.theme=e},children:n===`dark`?(0,A.jsx)(Be,{size:16}):(0,A.jsx)(Oe,{size:16})})]}),(0,A.jsx)($l,{label:`刷新任务`,disabled:!g||b,onClick:pe,children:(0,A.jsx)(Ae,{className:b?`spinning`:``,size:17})})]})]}),(0,A.jsxs)(`div`,{className:`toolbar`,children:[(0,A.jsxs)(`div`,{className:`search-field`,children:[(0,A.jsx)(Pe,{size:17}),(0,A.jsx)(`input`,{"aria-label":`搜索任务`,value:u,onChange:e=>{d(e.target.value),E(!1)},placeholder:`搜索任务`}),u&&(0,A.jsx)($l,{label:`清除搜索`,onClick:()=>d(``),children:(0,A.jsx)(He,{size:14})})]}),(0,A.jsx)(nu,{label:`筛选所属项目`,value:c,options:oe,onChange:e=>{l(e),E(!1)}}),(0,A.jsx)(tu,{value:f,onChange:e=>{p(e),E(!1)}})]}),(m||ge)&&(0,A.jsx)(`div`,{className:`error-banner`,role:`alert`,children:m||ge}),i?(0,A.jsxs)(`div`,{className:`task-workspace`,"data-mobile-detail":ne,children:[(0,A.jsxs)(`aside`,{ref:ie,className:`list-pane`,"aria-label":`任务列表`,children:[(0,A.jsx)(`div`,{className:`list-label`,children:(0,A.jsx)(`span`,{children:de?`${de} 项执行中`:ue?`${ue} 项待处理`:O.length&&O.every(du)?`所有任务均已结束`:`${O.length} 项任务`})}),[...new Set(ce.map(pu))].map(e=>(0,A.jsxs)(`section`,{className:`project-group`,"aria-label":`${e} 项目`,children:[(0,A.jsxs)(`div`,{className:`project-label`,children:[(0,A.jsx)(we,{size:14}),(0,A.jsxs)(`h2`,{children:[(0,A.jsx)(`span`,{children:`项目 · `}),e]}),(0,A.jsxs)(`span`,{children:[ce.filter(t=>pu(t)===e).length,` 项任务`]})]}),(0,A.jsx)(`div`,{className:`task-list`,children:ce.filter(t=>pu(t)===e).map(e=>(0,A.jsxs)(`button`,{type:`button`,className:`task-row`,"aria-pressed":le?.key===e.key,"aria-label":`选择任务 ${e.id}`,onClick:()=>{s(e.key),T(null),E(!0)},children:[(0,A.jsxs)(`div`,{className:`task-row-top`,children:[(0,A.jsx)(`h2`,{children:fu(e)}),(0,A.jsx)(vu,{task:e})]}),(0,A.jsx)(`p`,{children:hu(e)}),(0,A.jsxs)(`div`,{className:`task-row-footer`,children:[(0,A.jsx)(`time`,{children:_u(du(e)?gu(e):e.observed_at)}),(0,A.jsx)(he,{size:14})]})]},e.key))})]},e)),!ce.length&&(0,A.jsxs)(`div`,{className:`list-empty`,children:[(0,A.jsx)(Ie,{size:25}),(0,A.jsx)(`strong`,{children:`没有匹配的任务`}),(0,A.jsx)(`p`,{children:`试试其他项目、关键词或状态`})]})]}),(0,A.jsxs)(`section`,{ref:re,className:`detail-pane`,children:[(0,A.jsxs)(Ql,{className:`back-button`,onClick:()=>E(!1),children:[(0,A.jsx)(se,{size:16}),`返回任务列表`]}),le?(0,A.jsx)(bu,{task:le,canAttach:v,attaching:S,onAttach:()=>void me(le),feedback:fe},le.key):(0,A.jsxs)(`div`,{className:`detail-empty`,children:[(0,A.jsx)(`div`,{children:(0,A.jsx)(ye,{size:26})}),(0,A.jsx)(`h2`,{children:`从一个任务开始`}),(0,A.jsxs)(`p`,{children:[`在左侧选择任务,查看进度与交付。`,(0,A.jsx)(`br`,{}),`带到聊天后,直接说出你的要求。`]})]})]})]}):(0,A.jsxs)(`div`,{className:`loading-state`,children:[(0,A.jsx)(Ee,{className:`spinning`,size:22}),(0,A.jsx)(`p`,{children:m?`暂时无法读取任务`:`正在读取任务台账`}),m&&(0,A.jsx)(Ql,{onClick:pe,disabled:!g,children:`重试`})]}),(0,A.jsxs)(`footer`,{className:`app-footer`,children:[(0,A.jsxs)(`span`,{className:`sync-state`,children:[(0,A.jsx)(`span`,{className:`sync-dot`}),i?`最近同步 ${uu(i.read_at)}`:`连接中`]}),(0,A.jsx)(`span`,{children:t?`只读预览 · 不修改任务、不发送附件`:`在聊天中 @天枢,继续推进任务`})]})]})})}var wu=c({BIGINT_FORMAT_RANGES:()=>Yd,CONSTANT_CATCH:()=>tf,Class:()=>Zd,NUMBER_FORMAT_RANGES:()=>Jd,aborted:()=>hd,allowsEval:()=>Wd,assert:()=>Au,assertEqual:()=>Tu,assertIs:()=>Ou,assertNever:()=>ku,assertNotEqual:()=>Eu,assignProp:()=>zu,attachSchema:()=>bd,base64ToUint8Array:()=>Dd,base64urlToUint8Array:()=>kd,cached:()=>Nu,captureStackTrace:()=>Ud,cleanEnum:()=>Ed,cleanRegex:()=>Fu,clone:()=>id,cloneDef:()=>qu,codePointLength:()=>Cd,constantCatch:()=>Bd,createTransparentProxy:()=>ad,defineLazy:()=>Lu,defineLazyInternal:()=>R,derived:()=>Id,esc:()=>Zu,escapeRegex:()=>rd,explicitlyAborted:()=>gd,extend:()=>ud,finalizeIssue:()=>xd,floatSafeRemainder:()=>Iu,getElementAtPath:()=>Ju,getEnumValues:()=>ju,getLengthableOrigin:()=>wd,getParsedType:()=>Gd,getSizableOrigin:()=>Sd,hexToUint8Array:()=>jd,hide:()=>Fd,installLazyProp:()=>zd,isObject:()=>$u,isPlainObject:()=>ed,issue:()=>Td,joinValues:()=>N,jsonStringifyReplacer:()=>Mu,members:()=>Nd,merge:()=>fd,mergeDefs:()=>Ku,normalizeParams:()=>P,nullish:()=>Pu,numKeys:()=>nd,objectClone:()=>Ru,omit:()=>ld,optionalKeys:()=>od,own:()=>Pd,parsedType:()=>L,partial:()=>pd,pick:()=>sd,prefixIssues:()=>_d,primitiveTypes:()=>qd,promiseAllObject:()=>Yu,propertyKeyTypes:()=>Kd,randomString:()=>Xu,rawShape:()=>Bu,required:()=>md,safeExtend:()=>I,shallowClone:()=>td,sizeCaps:()=>yd,slugify:()=>Qu,stringifyPrimitive:()=>F,toZod:()=>Du,uint8ArrayToBase64:()=>Od,uint8ArrayToBase64url:()=>Ad,uint8ArrayToHex:()=>Md,unwrapMessage:()=>vd});function Tu(e){return e}function Eu(e){return e}function Du(){return e=>e}function Ou(e){}function ku(e){throw Error(`Unexpected value in exhaustive check`)}function Au(e){}function ju(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function N(e,t=`|`){return e.map(e=>F(e)).join(t)}function Mu(e,t){return typeof t==`bigint`?t.toString():t}function Nu(e){return new Vd(e)}function Pu(e){return e==null}function Fu(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function Iu(e,t){let n=e/t,r=Math.round(n),i=4*2**-52*Math.max(Math.abs(n),1);return Math.abs(n-r)<i?0:n-r}function Lu(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==Hd)return r===void 0&&(r=Hd,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function Ru(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function zu(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function Bu(e){let t=Object.getOwnPropertyDescriptor(e,`shape`);return t?.get?t.get.raw:t?.value}function Vu(e){return Bu(e._zod.def)??e._zod.def.shape}function Hu(e,t,n){Object.defineProperty(e,t,{get(){let e=n();return zu(this,t,e),e},enumerable:!0,configurable:!0})}function Uu(e,t,n){t in e?zu(e,t,n):e[t]=n}function Wu(e,t,n,r){let i=Vu(t);for(let a of n){let n=Object.getOwnPropertyDescriptor(i,a);n.enumerable&&(n.get?Hu(e,a,()=>{let e=t._zod.def.shape[a];return r?r(e,a):e}):Uu(e,a,r?r(n.value,a):n.value))}}function Gu(e,t){for(let n of Reflect.ownKeys(t)){let r=Object.getOwnPropertyDescriptor(t,n);r.enumerable&&(r.get?Hu(e,n,()=>t[n]):Uu(e,n,r.value))}}function Ku(...e){let t={};for(let n of e){let e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function qu(e){return Ku(e._zod.def)}function Ju(e,t){return t?t.reduce((e,t)=>e?.[t],e):e}function Yu(e){let t=Object.keys(e),n=t.map(t=>e[t]);return Promise.all(n).then(e=>{let n={};for(let r=0;r<t.length;r++)n[t[r]]=e[r];return n})}function Xu(e=10){let t=``;for(let n=0;n<e;n++)t+=`abcdefghijklmnopqrstuvwxyz`[Math.floor(Math.random()*26)];return t}function Zu(e){return JSON.stringify(e)}function Qu(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}function $u(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function ed(e){if($u(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return $u(n)!==!1&&Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)!==!1}function td(e){return ed(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}function nd(e){let t=0;for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&t++;return t}function rd(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function id(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function P(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function ad(e){let t;return new Proxy({},{get(n,r,i){return t??=e(),Reflect.get(t,r,i)},set(n,r,i,a){return t??=e(),Reflect.set(t,r,i,a)},has(n,r){return t??=e(),Reflect.has(t,r)},deleteProperty(n,r){return t??=e(),Reflect.deleteProperty(t,r)},ownKeys(n){return t??=e(),Reflect.ownKeys(t)},getOwnPropertyDescriptor(n,r){return t??=e(),Reflect.getOwnPropertyDescriptor(t,r)},defineProperty(n,r,i){return t??=e(),Reflect.defineProperty(t,r,i)}})}function F(e){return typeof e==`bigint`?e.toString()+`n`:typeof e==`string`?`"${e}"`:`${e}`}function od(e){return Object.keys(e).filter(t=>e[t]._zod.optin!==void 0&&e[t]._zod.optout===`optional`)}function sd(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.pick() cannot be used on object schemas containing refinements`);let i={};return Wu(i,e,cd(e,t)),id(e,Ku(n,{shape:i,checks:[]}))}function cd(e,t){let n=Vu(e),r=[];for(let e of Reflect.ownKeys(t)){if(!Object.getOwnPropertyDescriptor(n,e)?.enumerable)throw Error(`Unrecognized key: "${String(e)}"`);t[e]&&r.push(e)}return r}function ld(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.omit() cannot be used on object schemas containing refinements`);let i=new Set(cd(e,t)),a={};return Wu(a,e,Reflect.ownKeys(Vu(e)).filter(e=>!i.has(e))),id(e,Ku(n,{shape:a,checks:[]}))}function ud(e,t){if(!ed(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0){let n=Vu(e);for(let e of Reflect.ownKeys(t))if(Object.getOwnPropertyDescriptor(n,e)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return id(e,Ku(e._zod.def,{shape:dd(e,t)}))}function dd(e,t){let n={};return Wu(n,e,Reflect.ownKeys(Vu(e))),Gu(n,t),n}function I(e,t){if(!ed(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return id(e,Ku(e._zod.def,{shape:dd(e,t)}))}function fd(e,t){if(!t?._zod?.def)throw Error("Invalid input to merge: expected an object schema. To merge a plain shape, use `.extend()`.");if(e._zod.def.checks?.length)throw Error(`.merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.`);let n={};return Wu(n,e,Reflect.ownKeys(Vu(e))),Wu(n,t,Reflect.ownKeys(Vu(t))),id(e,Ku(e._zod.def,{shape:n,get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}function pd(e,t,n,r=`partial`){let i=t._zod.def.checks;if(i&&i.length>0)throw Error(`.${r}() cannot be used on object schemas containing refinements`);let a=n?new Set(cd(t,n)):void 0,o={};return Wu(o,t,Reflect.ownKeys(Vu(t)),e&&((t,n)=>a&&!a.has(n)?t:new e({type:`optional`,innerType:t}))),id(t,Ku(t._zod.def,{shape:o,checks:[]}))}function md(e,t,n){let r=n?new Set(cd(t,n)):void 0,i={};return Wu(i,t,Reflect.ownKeys(Vu(t)),(t,n)=>r&&!r.has(n)?t:new e({type:`nonoptional`,innerType:t})),id(t,Ku(t._zod.def,{shape:i}))}function hd(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function gd(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue===!1)return!0;return!1}function _d(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function vd(e){return typeof e==`string`?e:e?.message}function yd(e){let t=[];for(let n of e??[]){let e=n._zod.def;if(!/_(length|size)$|_equals$/.test(e.check))break;let r=e.maximum??e.length??e.size;r>=0&&t.push([r,n])}return t}function bd(e,t,n){var r;for(let i=t;i<e.length;i++)(r=e[i]).schema??(r.schema=n)}function xd(e,t,n){var r;let i=e.inst?._zod?.traits;i?.has(`$ZodType`)&&(i.has(`$ZodCheck`)?(r=e).schema??(r.schema=e.inst):e.schema=e.inst);let a=e.schema===e.inst?void 0:e.schema?._zod.def?.error,o=e.message?e.message:vd(e.inst?._zod.def?.error?.(e))??vd(a?.(e))??vd(t?.error?.(e))??vd(n.customError?.(e))??vd(n.localeError?.(e))??`Invalid input`,s={};for(let t of Object.keys(e))t!==`inst`&&t!==`schema`&&t!==`continue`&&t!==`input`&&t!==`__proto__`&&(s[t]=e[t]);return s.path??=[],s.message=o,t?.reportInput&&(s.input=e.input),s}function Sd(e){return e instanceof Set?`set`:e instanceof Map?`map`:e instanceof File?`file`:`unknown`}function Cd(e){let t=e.length;if(!Xd.test(e))return t;let n=t;for(let r=0;r<t-1;r++)(e.charCodeAt(r)&64512)==55296&&(e.charCodeAt(r+1)&64512)==56320&&(n--,r++);return n}function wd(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function L(e){let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`nan`:`number`;case`object`:{if(e===null)return`null`;if(Array.isArray(e))return`array`;let t=e;if(t&&Object.getPrototypeOf(t)!==Object.prototype&&`constructor`in t&&t.constructor)return t.constructor.name}}return t}function Td(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}function Ed(e){return Object.entries(e).filter(([e,t])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}function Dd(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}function Od(e){let t=``;for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t)}function kd(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`);return Dd(t+`=`.repeat((4-t.length%4)%4))}function Ad(e){return Od(e).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=/g,``)}function jd(e){let t=e.replace(/^0x/,``);if(t.length%2!=0)throw Error(`Invalid hex string length`);let n=new Uint8Array(t.length/2);for(let e=0;e<t.length;e+=2)n[e/2]=Number.parseInt(t.slice(e,e+2),16);return n}function Md(e){return Array.from(e).map(e=>e.toString(16).padStart(2,`0`)).join(``)}function Nd(e,t){for(let n in t){let r=Object.getOwnPropertyDescriptor(t,n);r.get?Object.defineProperty(e,n,{...r,enumerable:!1}):Ld(e,n,r.value)}}function Pd(e,t,n,r=!0){return Object.defineProperty(e,t,{configurable:!0,writable:!0,enumerable:r,value:n}),n}function Fd(e,t,n){return Pd(e,t,n,!1)}function Id(e,t){for(let n in e){let r=e[n];Object.defineProperty(t,n,{configurable:!0,enumerable:!0,get(){return Pd(this,n,r(this))},set(e){Pd(this,n,e)}})}return t}function Ld(e,t,n){Object.defineProperty(e,t,{configurable:!0,get(){return this==null?n:Pd(this,t,n.bind(this))},set(e){Pd(this,t,e)}})}function Rd(e,t){let n=Object.getPrototypeOf(e);return t in n?void 0:n}function R(e,t,n){let r=Object.getPrototypeOf(e._zod);t in r&&Qd!==e._zod?Qd=void 0:(Qd=e._zod,Object.defineProperty(r,t,{configurable:!0,get(){Object.defineProperty(this,t,ef);let e=$d;$d=!1;try{let r=n(this);return $d?delete this[t]:Object.defineProperty(this,t,{configurable:!0,writable:!0,value:r}),$d||=e,r}catch(n){throw delete this[t],$d||=e,n}},set(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:e})}}))}function zd(e,t,n,r){let i=Rd(e,t);i&&Object.defineProperty(i,t,{configurable:!0,get(){let e={configurable:!0,writable:!0,enumerable:r,value:void 0};return Object.defineProperty(this,t,e),e.value=n(this),Object.defineProperty(this,t,e),e.value},set(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,enumerable:r,value:e})}})}function Bd(e){let t=()=>e;return t[tf]=!0,t}var Vd,Hd,Ud,Wd,Gd,Kd,qd,Jd,Yd,Xd,Zd,Qd,$d,ef,tf,z=o((()=>{pf(),Vd=class{constructor(e){this._getter=e,this._value=void 0}get value(){let e=this._getter;return e!==void 0&&(this._value=e(),this._getter=void 0),this._value}},Hd=Symbol(`evaluating`),Ud=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{},Wd=Nu(()=>{if(ff.jitless||typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}}),Gd=e=>{let t=typeof e;switch(t){case`undefined`:return`undefined`;case`string`:return`string`;case`number`:return Number.isNaN(e)?`nan`:`number`;case`boolean`:return`boolean`;case`function`:return`function`;case`bigint`:return`bigint`;case`symbol`:return`symbol`;case`object`:return Array.isArray(e)?`array`:e===null?`null`:e.then&&typeof e.then==`function`&&e.catch&&typeof e.catch==`function`?`promise`:typeof Map<`u`&&e instanceof Map?`map`:typeof Set<`u`&&e instanceof Set?`set`:typeof Date<`u`&&e instanceof Date?`date`:typeof File<`u`&&e instanceof File?`file`:`object`;default:throw Error(`Unknown data type: ${t}`)}},Kd=new Set([`string`,`number`,`symbol`]),qd=new Set([`string`,`number`,`bigint`,`boolean`,`symbol`,`undefined`]),Jd={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},Yd={int64:[BigInt(`-9223372036854775808`),BigInt(`9223372036854775807`)],uint64:[BigInt(0),BigInt(`18446744073709551615`)]},Xd=/[\uD800-\uDBFF]/,Zd=class{constructor(...e){}},$d=!1,ef={configurable:!0,get(){$d=!0}},tf=`~constantCatch`}));function nf(e){let t=cf;if(t){let n=t.stackTraceLimit;if(typeof n==`number`){try{t.stackTraceLimit=0}catch{return cf=null,new e}try{return new e}finally{t.stackTraceLimit=n}}}return new e}function B(e,t,n,r){let i={};function a(e){this.def=e,this.constr=d,this.traits=new Set}a.prototype=i;let o=n,s=o&&new WeakSet;function c(n,r){if(!n._zod){sf.value=new a(r);try{Object.defineProperty(n,"_zod",sf)}finally{sf.value=void 0}}else if(n._zod.traits.has(e))return;if(n._zod.traits.add(e),t(n,r),s){let e=Object.getPrototypeOf(n),t=n._zod.constr.prototype,r=e;for(;r&&r!==t;)r=Object.getPrototypeOf(r);let i=r??e;s.has(i)||(s.add(i),Nd(i,o))}let i=d.prototype;for(let e in i)Object.prototype.hasOwnProperty.call(i,e)&&(e in n||(n[e]=i[e].bind(n)))}let l=r?.Parent??Object;class u extends l{}Object.defineProperty(u,"name",{value:e});function d(e){let t=r?.Parent?nf(u):this;c(t,e);let n=t._zod.deferred;if(n){for(let e of n)e();t._zod.deferred=void 0}let i=globalThis.__zod_globalConfig?.postProcessor;return i&&i(t),t}return Object.defineProperty(d,"init",{value:c}),Object.defineProperty(d,Symbol.hasInstance,{value:t=>r?.Parent&&t instanceof r.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(d,"name",{value:e}),d}function rf(e){return e&&Object.assign(ff,e),ff}var af,of,sf,cf,lf,uf,df,ff,pf=o((()=>{z(),of=Object.freeze({status:`aborted`}),sf={value:void 0,enumerable:!1},cf=`captureStackTrace`in Error?Error:null,lf=Symbol(`zod_brand`),uf=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},df=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}},(af=globalThis).__zod_globalConfig??(af.__zod_globalConfig={}),ff=globalThis.__zod_globalConfig}));function mf(){let e=this._zod;return e.message??=JSON.stringify(e.def,Mu,2),e.message}function hf(e){this._zod.message=e}function gf(e,t,n){return Object.prototype.hasOwnProperty.call(e,t)||(t===`__proto__`?Object.defineProperty(e,t,{value:n(),writable:!0,enumerable:!0,configurable:!0}):e[t]=n()),e[t]}function _f(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?gf(n,i.path[0],()=>[]).push(t(i)):r.push(t(i));return{formErrors:r,fieldErrors:n}}function vf(e,t=e=>e.message){let n={_errors:[]},r=(e,i=[])=>{for(let a of e.issues)if(a.code===`invalid_union`&&a.errors.length)a.errors.map(e=>r({issues:e},[...i,...a.path]));else if(a.code===`invalid_key`)r({issues:a.issues},[...i,...a.path]);else if(a.code===`invalid_element`)r({issues:a.issues},[...i,...a.path]);else{let e=[...i,...a.path];if(e.length===0)n._errors.push(t(a));else{let r=n,i=0;for(;i<e.length;){let n=e[i],o=i===e.length-1;if(n===`_errors`){o&&r._errors.push(t(a)),i++;continue}Object.prototype.hasOwnProperty.call(r,n)||Object.defineProperty(r,n,{value:{_errors:[]},enumerable:!0,writable:!0,configurable:!0});let s=r[n];o&&s._errors.push(t(a)),r=s,i++}}}};return r(e),n}function yf(e,t=e=>e.message){let n={errors:[]},r=(e,i=[])=>{var a;for(let o of e.issues)if(o.code===`invalid_union`&&o.errors.length)o.errors.map(e=>r({issues:e},[...i,...o.path]));else if(o.code===`invalid_key`)r({issues:o.issues},[...i,...o.path]);else if(o.code===`invalid_element`)r({issues:o.issues},[...i,...o.path]);else{let e=[...i,...o.path];if(e.length===0){n.errors.push(t(o));continue}let r=n,s=0;for(;s<e.length;){let n=e[s],i=s===e.length-1;typeof n==`string`?(r.properties??(r.properties={}),Object.prototype.hasOwnProperty.call(r.properties,n)||Object.defineProperty(r.properties,n,{value:{errors:[]},enumerable:!0,writable:!0,configurable:!0}),r=r.properties[n]):(r.items??(r.items=[]),(a=r.items)[n]??(a[n]={errors:[]}),r=r.items[n]),i&&r.errors.push(t(o)),s++}}};return r(e),n}function bf(e){let t=[],n=e.map(e=>typeof e==`object`?e.key:e);for(let e of n)typeof e==`number`?t.push(`[${e}]`):typeof e==`symbol`?t.push(`[${JSON.stringify(String(e))}]`):/[^\w$]/.test(e)?t.push(`[${JSON.stringify(e)}]`):(t.length&&t.push(`.`),t.push(e));return t.join(``)}function xf(e){let t=[],n=[...e.issues].sort((e,t)=>(e.path??[]).length-(t.path??[]).length);for(let e of n)t.push(`✖ ${e.message}`),e.path?.length&&t.push(` → at ${bf(e.path)}`);return t.join(`
51
51
  `)}var Sf,Cf,wf,Tf,Ef,Df,Of=o((()=>{pf(),z(),Sf={get:mf,set:hf,enumerable:!0,configurable:!0},Cf={value:void 0,enumerable:!1},wf=new WeakSet([Object.prototype,Error.prototype]),Tf=(e,t)=>{e.name=`$ZodError`,Cf.value=t,Object.defineProperty(e,"issues",Cf),Cf.value=void 0,Object.defineProperty(e,"message",Sf);let n=Object.getPrototypeOf(e);wf.has(n)||(wf.add(n),Object.defineProperty(n,"toString",{configurable:!0,enumerable:!1,get(){let e=()=>this.message;return Object.defineProperty(this,"toString",{value:e,configurable:!0,writable:!0}),e},set(e){Object.defineProperty(this,"toString",{value:e,configurable:!0,writable:!0})}}))},Ef=B(`$ZodError`,Tf),Df=B(`$ZodError`,Tf,void 0,{Parent:Error})}));function kf(e,t){return{callee:t?.callee??e,Err:t?.Err}}function Af(e,t,n){let r;return{success:!1,get error(){return r||(r=new e(t.map(e=>xd(e,n,rf()))),t=void 0,n=void 0),r},set error(e){r=e,t=void 0,n=void 0}}}function jf(e,t,n){let r=n?{...n,async:!1,abortEarly:!0}:{async:!1,abortEarly:!0},i=e._zod.bag.fallbackRun,a;if(i?(r[Vf]=!0,a=i({value:t,issues:[]},r)):a=e._zod.run({value:t,issues:[]},r),a instanceof Promise)throw new uf;return a.issues.length===0}var Mf,Nf,Pf,Ff,If,Lf,Rf,zf,Bf,Vf,Hf,Uf,Wf,Gf,Kf,qf,Jf,Yf,Xf,Zf,Qf,V,$f,ep,tp,np,rp,ip,ap=o((()=>{pf(),Of(),z(),Mf=e=>{let t=(n,r,i,a)=>{let o=i?{...i,async:!1}:{async:!1},s=n._zod.run({value:r,issues:[]},o);if(s instanceof Promise)throw new uf;if(s.issues.length){let n=new((a?.Err)??e)(s.issues.map(e=>xd(e,o,rf())));throw Ud(n,a?.callee??t),n}return s.value};return t},Nf=Mf(Df),Pf=e=>{let t=async(n,r,i,a)=>{let o=i?{...i,async:!0}:{async:!0},s=n._zod.run({value:r,issues:[]},o);if(s instanceof Promise&&(s=await s),s.issues.length){let n=new((a?.Err)??e)(s.issues.map(e=>xd(e,o,rf())));throw Ud(n,a?.callee??t),n}return s.value};return t},Ff=Pf(Df),If=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new uf;return a.issues.length?Af(e,a.issues,i):{success:!0,data:a.value}},Lf=If(Df),Rf=e=>async(t,n,r)=>{let i=r?{...r,async:!0}:{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?Af(e,a.issues,i):{success:!0,data:a.value}},zf=Rf(Df),Bf=Symbol.for(`zod.compile.invalid`),Vf=Symbol.for(`zod.compile.fallback`),Hf=((e,t,n)=>{let r=e._zod.bag.validator;if(r!==void 0){if(r(t)!==Bf)return!0;if(r.definite===!0&&n===void 0)return!1}return jf(e,t,n)}),Uf=async(e,t,n)=>{let r=n?{...n,async:!0,abortEarly:!0}:{async:!0,abortEarly:!0},i=e._zod.run({value:t,issues:[]},r);return i instanceof Promise&&(i=await i),i.issues.length===0},Wf=e=>{let t=Mf(e),n=(e,r,i,a)=>{let o=i?{...i,direction:`backward`}:{direction:`backward`};return t(e,r,o,kf(n,a))};return n},Gf=Wf(Df),Kf=e=>{let t=Mf(e),n=(e,r,i,a)=>t(e,r,i,kf(n,a));return n},qf=Kf(Df),Jf=e=>{let t=Pf(e),n=async(e,r,i,a)=>{let o=i?{...i,direction:`backward`}:{direction:`backward`};return await t(e,r,o,kf(n,a))};return n},Yf=Jf(Df),Xf=e=>{let t=Pf(e),n=async(e,r,i,a)=>await t(e,r,i,kf(n,a));return n},Zf=Xf(Df),Qf=e=>(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return If(e)(t,n,i)},V=Qf(Df),$f=e=>(t,n,r)=>If(e)(t,n,r),ep=$f(Df),tp=e=>async(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return Rf(e)(t,n,i)},np=tp(Df),rp=e=>async(t,n,r)=>Rf(e)(t,n,r),ip=rp(Df)})),op=c({anyString:()=>Zp,base64:()=>Bp,base64url:()=>Vp,bigint:()=>$p,boolean:()=>nm,browserEmail:()=>Np,cidrv4:()=>Rp,cidrv6:()=>zp,creditCard:()=>Kp,cuid:()=>hp,cuid2:()=>gp,currencyCode:()=>qp,date:()=>Xp,datetime:()=>fp,domain:()=>Up,duration:()=>xp,e164:()=>Gp,email:()=>Op,emoji:()=>cp,extendedDuration:()=>Sp,guid:()=>Cp,hex:()=>sm,hostname:()=>Hp,html5Email:()=>kp,httpProtocol:()=>Wp,iban:()=>Jp,idnEmail:()=>Mp,integer:()=>em,ipv4:()=>Fp,ipv6:()=>Ip,ksuid:()=>yp,lowercase:()=>am,mac:()=>Lp,md5_base64:()=>lm,md5_base64url:()=>um,md5_hex:()=>cm,nanoid:()=>bp,nanoidOfLength:()=>sp,null:()=>rm,number:()=>tm,rfc5322Email:()=>Ap,sha1_base64:()=>fm,sha1_base64url:()=>pm,sha1_hex:()=>dm,sha256_base64:()=>hm,sha256_base64url:()=>gm,sha256_hex:()=>mm,sha384_base64:()=>vm,sha384_base64url:()=>ym,sha384_hex:()=>_m,sha512_base64:()=>xm,sha512_base64url:()=>Sm,sha512_hex:()=>bm,string:()=>Qp,time:()=>dp,ulid:()=>_p,undefined:()=>im,unicodeEmail:()=>jp,uppercase:()=>om,uuid:()=>wp,uuid4:()=>Tp,uuid6:()=>Ep,uuid7:()=>Dp,xid:()=>vp});function sp(e){return RegExp(`^[a-zA-Z0-9_-]{${e}}$`)}function cp(){return new RegExp(Pp,`u`)}function lp(e){return RegExp(`^${e}$`)}function up(e){let t=`(?:[01]\\d|2[0-3]):[0-5]\\d`;return typeof e.precision==`number`?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:e.seconds?`${t}:[0-5]\\d(?:\\.\\d+)?`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function dp(e){return RegExp(`^${up(e)}$`)}function fp(e){let t=[`Z`];e.offset&&t.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let n=`${up({precision:e.precision,seconds:!0})}(?:${t.join(`|`)})`,r=e.local?`${n}|${up({precision:e.precision})}`:n;return RegExp(`^${Yp}T(?:${r})$`)}function pp(e,t){return RegExp(`^[A-Za-z0-9+/]{${e}}${t}$`)}function mp(e){return RegExp(`^[A-Za-z0-9_-]{${e}}$`)}var hp,gp,_p,vp,yp,bp,xp,Sp,Cp,wp,Tp,Ep,Dp,Op,kp,Ap,jp,Mp,Np,Pp,Fp,Ip,Lp,Rp,zp,Bp,Vp,Hp,Up,Wp,Gp,Kp,qp,Jp,Yp,Xp,Zp,Qp,$p,em,tm,nm,rm,im,am,om,sm,cm,lm,um,dm,fm,pm,mm,hm,gm,_m,vm,ym,bm,xm,Sm,Cm=o((()=>{z(),hp=/^[cC][0-9a-z]{6,}$/,gp=/^[0-9a-z]+$/,_p=/^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/,vp=/^[0-9a-vA-V]{20}$/,yp=/^[A-Za-z0-9]{27}$/,bp=/^[a-zA-Z0-9_-]{21}$/,xp=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Sp=/^[-+]?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)?)??$/,Cp=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,wp=e=>e?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Tp=wp(4),Ep=wp(6),Dp=wp(7),Op=/^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,kp=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Ap=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,jp=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,Mp=jp,Np=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Pp=`^(?=[\\s\\S]*[\\p{Extended_Pictographic}\\p{Regional_Indicator}\\u20E3])[\\p{Extended_Pictographic}\\p{Emoji_Component}]+$`,Fp=/^(?:(?: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])$/,Ip=/^(([0-9a-fA-F]{1,4}:){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}|:))$/,Lp=e=>{let t=rd(e??`:`);return RegExp(`^(?:[0-9A-F]{2}${t}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${t}){5}[0-9a-f]{2}$`)},Rp=/^((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])\/([0-9]|[1-2][0-9]|3[0-2])$/,zp=/^(([0-9a-fA-F]{1,4}:){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}|:))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Bp=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Vp=/^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2,3})?$/,Hp=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,Up=/^(?=.{1,253}$)([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,63}$/,Wp=/^https?$/,Gp=/^\+[1-9]\d{6,14}$/,Kp=/^\d(?:[ -]?\d){11,18}$/,qp=/^(?:AED|AFN|ALL|AMD|AOA|ARS|AUD|AWG|AZN|BAM|BBD|BDT|BHD|BIF|BMD|BND|BOB|BOV|BRL|BSD|BTN|BWP|BYN|BZD|CAD|CDF|CHE|CHF|CHW|CLF|CLP|CNY|COP|COU|CRC|CUP|CVE|CZK|DJF|DKK|DOP|DZD|EGP|ERN|ETB|EUR|FJD|FKP|GBP|GEL|GHS|GIP|GMD|GNF|GTQ|GYD|HKD|HNL|HTG|HUF|IDR|ILS|INR|IQD|IRR|ISK|JMD|JOD|JPY|KES|KGS|KHR|KMF|KPW|KRW|KWD|KYD|KZT|LAK|LBP|LKR|LRD|LSL|LYD|MAD|MDL|MGA|MKD|MMK|MNT|MOP|MRU|MUR|MVR|MWK|MXN|MXV|MYR|MZN|NAD|NGN|NIO|NOK|NPR|NZD|OMR|PAB|PEN|PGK|PHP|PKR|PLN|PYG|QAR|RON|RSD|RUB|RWF|SAR|SBD|SCR|SDG|SEK|SGD|SHP|SLE|SOS|SRD|SSP|STN|SVC|SYP|SZL|THB|TJS|TMT|TND|TOP|TRY|TTD|TWD|TZS|UAH|UGX|USD|USN|UYI|UYU|UYW|UZS|VED|VES|VND|VUV|WST|XAD|XAF|XAG|XAU|XBA|XBB|XBC|XBD|XCD|XCG|XDR|XOF|XPD|XPF|XPT|XSU|XTS|XUA|XXX|YER|ZAR|ZMW|ZWG)$/,Jp=/^[A-Z]{2}(?!00|01|99)\d{2}[A-Z0-9]{11,30}$/,Yp=`(?:(?:\\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])))`,Xp=lp(Yp),Zp=/^[\s\S]{0,}$/,Qp=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??``}}`:`[\\s\\S]*`;return RegExp(`^${t}$`)},$p=/^-?\d+n?$/,em=/^-?\d+$/,tm=/^-?\d+(?:\.\d+)?$/,nm=/^(?:true|false)$/i,rm=/^null$/i,im=/^undefined$/i,am=/^[^A-Z]*$/,om=/^[^a-z]*$/,sm=/^[0-9a-fA-F]*$/,cm=/^[0-9a-fA-F]{32}$/,lm=pp(22,`==`),um=mp(22),dm=/^[0-9a-fA-F]{40}$/,fm=pp(27,`=`),pm=mp(27),mm=/^[0-9a-fA-F]{64}$/,hm=pp(43,`=`),gm=mp(43),_m=/^[0-9a-fA-F]{96}$/,vm=pp(64,``),ym=mp(64),bm=/^[0-9a-fA-F]{128}$/,xm=pp(86,`==`),Sm=mp(86)}));function wm(e,t,n){e.issues.length&&t.issues.push(..._d(n,e.issues))}var Tm,Em,Dm,Om,km,Am,jm,Mm,Nm,Pm,Fm,Im,Lm,Rm,zm,Bm,Vm,Hm,Um,Wm,Gm,Km,qm,Jm,Ym,Xm,Zm=o((()=>{pf(),Cm(),z(),Tm=B(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),Em=e=>{let t=e.value;return!Pu(t)&&t.size!==void 0},Dm=e=>{let t=e.value;return!Pu(t)&&t.length!==void 0},Om={number:`number`,bigint:`bigint`,object:`date`},km=B(`$ZodCheckLessThan`,(e,t)=>{Tm.init(e,t);let n=Om[typeof t.value];e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:Om[typeof r.value]??n,code:`too_big`,maximum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Am=B(`$ZodCheckGreaterThan`,(e,t)=>{Tm.init(e,t);let n=Om[typeof t.value];e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:Om[typeof r.value]??n,code:`too_small`,minimum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),jm=B(`$ZodCheckMultipleOf`,(e,t)=>{Tm.init(e,t),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof n.value==`bigint`?t.value!==BigInt(0)&&n.value%t.value===BigInt(0):Iu(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),Mm=B(`$ZodCheckNumberFormat`,(e,t)=>{Tm.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=Jd[t.format];e._zod.check=o=>{let s=o.value;if(n){if(!Number.isInteger(s)){o.issues.push({expected:r,format:t.format,code:`invalid_type`,continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort}):o.issues.push({input:s,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort});return}}s<i&&o.issues.push({origin:`number`,input:s,code:`too_small`,minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>a&&o.issues.push({origin:`number`,input:s,code:`too_big`,maximum:a,inclusive:!0,inst:e,continue:!t.abort})}}),Nm=B(`$ZodCheckBigIntFormat`,(e,t)=>{Tm.init(e,t);let[n,r]=Yd[t.format];e._zod.check=i=>{let a=i.value;a<n&&i.issues.push({origin:`bigint`,input:a,code:`too_small`,minimum:n,inclusive:!0,inst:e,continue:!t.abort}),a>r&&i.issues.push({origin:`bigint`,input:a,code:`too_big`,maximum:r,inclusive:!0,inst:e,continue:!t.abort})}}),Pm=B(`$ZodCheckMaxSize`,(e,t)=>{var n;Tm.init(e,t),(n=e._zod.def).when??(n.when=Em),e._zod.check=n=>{let r=n.value;r.size<=t.maximum||n.issues.push({origin:Sd(r),code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Fm=B(`$ZodCheckMinSize`,(e,t)=>{var n;Tm.init(e,t),(n=e._zod.def).when??(n.when=Em),e._zod.check=n=>{let r=n.value;r.size>=t.minimum||n.issues.push({origin:Sd(r),code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Im=B(`$ZodCheckSizeEquals`,(e,t)=>{var n;Tm.init(e,t),(n=e._zod.def).when??(n.when=Em),e._zod.check=n=>{let r=n.value,i=r.size;if(i===t.size)return;let a=i>t.size;n.issues.push({origin:Sd(r),...a?{code:`too_big`,maximum:t.size}:{code:`too_small`,minimum:t.size},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Lm=B(`$ZodCheckMaxLength`,(e,t)=>{var n;Tm.init(e,t),(n=e._zod.def).when??(n.when=Dm),e._zod.check=n=>{let r=n.value,i=r.length;if((typeof r==`string`&&i>t.maximum?Cd(r):i)<=t.maximum)return;let a=wd(r);n.issues.push({origin:a,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Rm=B(`$ZodCheckMinLength`,(e,t)=>{var n;Tm.init(e,t),(n=e._zod.def).when??(n.when=Dm),e._zod.check=n=>{let r=n.value,i=r.length;if((typeof r==`string`&&i>=t.minimum&&i<t.minimum*2?Cd(r):i)>=t.minimum)return;let a=wd(r);n.issues.push({origin:a,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),zm=B(`$ZodCheckLengthEquals`,(e,t)=>{var n;Tm.init(e,t),(n=e._zod.def).when??(n.when=Dm),e._zod.check=n=>{let r=n.value,i=r.length,a=typeof r==`string`&&i>=t.length&&i<=t.length*2?Cd(r):i;if(a===t.length)return;let o=wd(r),s=a>t.length;n.issues.push({origin:o,...s?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Bm=B(`$ZodCheckStringFormat`,(e,t)=>{var n,r;Tm.init(e,t),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),Vm=B(`$ZodCheckRegex`,(e,t)=>{Bm.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),Hm=B(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=am,Bm.init(e,t)}),Um=B(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=om,Bm.init(e,t)}),Wm=B(`$ZodCheckIncludes`,(e,t)=>{Tm.init(e,t);let n=rd(t.includes);t.pattern=new RegExp(typeof t.position==`number`?`^.{${t.position},}${n}`:n),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),Gm=B(`$ZodCheckStartsWith`,(e,t)=>{Tm.init(e,t);let n=RegExp(`^${rd(t.prefix)}.*`);t.pattern??=n,e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`starts_with`,prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),Km=B(`$ZodCheckEndsWith`,(e,t)=>{Tm.init(e,t);let n=RegExp(`.*${rd(t.suffix)}$`);t.pattern??=n,e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`ends_with`,suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),qm=B(`$ZodCheckProperty`,(e,t)=>{Tm.init(e,t),e._zod.check=e=>{let n=t.schema._zod.run({value:e.value[t.property],issues:[]},{});if(n instanceof Promise)return n.then(n=>wm(n,e,t.property));wm(n,e,t.property)}}),Jm=B(`$ZodCheckProperties`,(e,t)=>{Tm.init(e,t),Fd(e,Symbol.iterator,function*(){yield e});let n;e._zod.check=r=>{if(r.value==null){r.issues.push({expected:`object`,code:`invalid_type`,input:r.value,inst:e});return}n??=Reflect.ownKeys(t.shape).map(e=>[e,t.shape[e]]);let i=r.value,a;for(let[e,t]of n){let n=t._zod.run({value:i[e],issues:[]},{});n instanceof Promise?(a??=[],a.push(n.then(t=>wm(t,r,e)))):wm(n,r,e)}if(a)return Promise.all(a).then(()=>void 0)}}),Ym=B(`$ZodCheckMimeType`,(e,t)=>{Tm.init(e,t);let n=new Set(t.mime);e._zod.check=r=>{n.has(r.value.type)||r.issues.push({code:`invalid_value`,values:t.mime,input:r.value.type,inst:e,continue:!t.abort})}}),Xm=B(`$ZodCheckOverwrite`,(e,t)=>{Tm.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}})})),Qm,$m=o((()=>{Qm=class{constructor(e=[],t={}){this.content=[],this.indent=0,this.args=e,this.closed=t}indented(e){this.indent+=1;try{e(this)}finally{--this.indent}}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e.split(`
52
52
  `).filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),r=t.map(e=>e.slice(n)).map(e=>` `.repeat(this.indent*2)+e);for(let e of r)this.content.push(e)}compile(){let e=Function,t=this?.content??[``];return new e(...Object.keys(this.closed),`return function (${this.args.join(`, `)}) {\n${t.join(`
53
53
  `)}\n};`)(...Object.values(this.closed))}}})),eh,th=o((()=>{eh={major:4,minor:6,patch:7}}));async function nh(e,t){let n={async:!0};return Kh(await e._zod.run({value:t,issues:[]},n),n)}function rh(e){return{validate:t=>{let n={async:!1};try{let r=e._zod.run({value:t,issues:[]},n);if(!(r instanceof Promise))return Kh(r,n)}catch{}return nh(e,t)},vendor:`zod`,version:1}}function ih(e){try{return typeof URL<`u`&&typeof URL.canParse==`function`?URL.canParse(e):(new URL(e),!0)}catch{return!1}}function ah(e,t){return!(`normalize`in t)&&!(`hostname`in t)&&!(`protocol`in t)?ih(e)||2:oh(e,t)}function oh(e,t){if(!t.normalize&&t.protocol?.source===Wp.source&&!/^https?:\/\//i.test(e))return 1;try{if(typeof URL<`u`){let t=URL;if(typeof t.parse==`function`)return t.parse(e)??2}return new URL(e)}catch{return 2}}function sh(e){return e.replace(Qh,``)}function ch(e,t){return t.lastIndex=0,t.test(e.hostname)}function lh(e,t){return t.lastIndex=0,t.test(e.protocol.endsWith(`:`)?e.protocol.slice(0,-1):e.protocol)}function uh(e){return fg.test(e)?ih(`http://[${e}]`):!1}function dh(e){let t=e.split(`/`);if(t.length!==2)return!1;let[n,r]=t;if(!r)return!1;let i=Number(r);return`${i}`!==r||i<0||i>128?!1:uh(n)}function fh(e){if(e===``)return!0;if(/\s/.test(e)||e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}function ph(e){if(!yg.test(e))return!1;let t=e.replace(/[-_]/g,e=>e===`-`?`+`:`/`);return fh(t.padEnd(Math.ceil(t.length/4)*4,`=`))}function mh(e){let t=e.length,n=1,r=0;for(;t;){let i=e.charCodeAt(--t)-48;n^=1,r+=n?[0,2,4,6,8,1,3,5,7,9][i]:i}return r%10==0}function hh(e){return Kp.test(e)?mh(e.replace(Sg,``)):!1}function gh(e){let t=0,n=e.length;for(let r=4;r<n;r++){let n=e.charCodeAt(r);t=(n>=65?t*100+(n-55):t*10+(n-48))%97}for(let n=0;n<4;n++){let r=e.charCodeAt(n);t=(r>=65?t*100+(r-55):t*10+(r-48))%97}return t===1}function _h(e){return Jp.test(e)?gh(e):!1}function vh(e,t=null){try{let n=e.split(`.`);if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!(`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&(!(`alg`in i)||i.alg!==t))}catch{return!1}}function yh(e,t){let n=yd(e._zod.def.checks);if(!n.length)return;let r=Math.min(...n.map(e=>e[0])),i=e._zod.parse;e._zod.parse=(n,a)=>{let o=t(n.value);if(o>r&&!a?.skipChecks&&a?.direction!==`backward`){for(let[t,r]of yd(e._zod.def.checks))if(o>t&&r._zod.def.when(n)){let t=n.issues.length;return r._zod.check(n),n.issues[t].continue=!1,bd(n.issues,t,e),n}}return i(n,a)}}function bh(e,t,n){e.issues.length&&t.issues.push(..._d(n,e.issues)),t.value[n]=e.value}function xh(e,t,n,r,i,a){let o=n in r,s=a===`optional`;if(o||!s||i!==`optional`){if(e.issues.length){if(i!==void 0&&s&&!o)return;t.issues.push(..._d(n,e.issues))}!o&&i===void 0?e.issues.length||t.issues.push({code:`invalid_type`,expected:`nonoptional`,input:void 0,path:[n]}):e.value===void 0?(o||i===`defaulted`&&!s)&&(t.value[n]=void 0):t.value[n]=e.value}}function Sh(e){let t=Object.keys(e.shape),n=Object.getOwnPropertySymbols(e.shape),r=n.length?n:Wg,i=r.length?[...t,...r]:t;for(let t of i)if(!e.shape?.[t]?._zod?.traits?.has(`$ZodType`))throw Error(`Invalid element at key "${String(t)}": expected a Zod schema`);let a=od(e.shape);return{...e,allKeys:i,symbolKeys:r,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(a)}}function Ch(e,t,n,r,i,a,o){let s=[],c=i.keySet,l=i.catchall._zod,u=l.def.type,d=l.optin,f=l.optout,p=0;for(let i in t){if(o&&n.issues.length!==p){if(hd(n,p))break;p=n.issues.length}if(c.has(i))continue;if(i===`__proto__`){u===`never`&&s.push(i);continue}if(u===`never`){s.push(i);continue}let a=l.run({value:t[i],issues:[]},r);a instanceof Promise?e.push(a.then(e=>xh(e,n,i,t,d,f))):xh(a,n,i,t,d,f)}return s.length&&n.issues.push({code:`unrecognized_keys`,keys:s,input:t,inst:a,continue:!0}),e.length?Promise.all(e).then(()=>n):n}function wh(e,t,n,r){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let i=e.filter(e=>!hd(e));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>xd(e,r,rf())))}),t)}function Th(e,t,n,r){let i=[];for(let t=0;t<e.length;t++)e[t].issues.length===0&&i.push(t);return i.length===1?(t.value=e[i[0]].value,t):(i.length===0?t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>xd(e,r,rf())))}):t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:[],inclusive:!1,matches:i}),t)}function Eh(e,t){let n=e._zod,r=n.bag.optionsMap;r||(r=Dh(n.def),n.bag.optionsMap=r);let i=r.get(t);if(i===null)throw Error(`Ambiguous discriminator value "${String(t)}"`);return i}function Dh(e){let t=new Map;for(let n of e.options){let r=n._zod.propValues?.[e.discriminator];if(!r||r.size===0)throw Error(`Invalid discriminated union option at index "${e.options.indexOf(n)}"`);for(let e of r)if(t.has(e)){if(e!==void 0)throw Error(`Duplicate discriminator value "${String(e)}"`);t.set(e,null)}else t.set(e,n)}return t}function Oh(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(ed(e)&&ed(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};Object.prototype.hasOwnProperty.call(i,`__proto__`)&&delete i.__proto__;for(let n of r){if(n===`__proto__`)continue;let r=Oh(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=Oh(i,a);if(!o.valid)return{valid:!1,mergeErrorPath:[r,...o.mergeErrorPath]};n.push(o.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function kh(e,t,n){let r=new Map,i,a=new Map,o=(e,t)=>{let n;if(e.code===`unrecognized_keys`&&!e.path?.length)i??=e,n=e.keys;else if(e.code===`invalid_key`&&e.origin===`record`&&e.path?.length===1){let t=String(e.path[0]);a.has(t)||a.set(t,e),n=[t]}else return!1;for(let e of n)r.has(e)||r.set(e,{}),r.get(e)[t]=!0;return!0};for(let n of t.issues)o(n,`l`)||e.issues.push(n);for(let t of n.issues)o(t,`r`)||e.issues.push(t);let s=[...r].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(s.length){let t=i?s.filter(e=>i.keys.includes(e)):[];t.length&&e.issues.push({...i,keys:t});for(let n of s)!t.includes(n)&&a.has(n)&&e.issues.push(a.get(n))}let c=Oh(t.value,n.value);if(!c.valid){if(hd(e))return e;throw Error(`Unmergable intersection. Error path: ${JSON.stringify(c.mergeErrorPath)}`)}return e.value=c.data,e}function Ah(e,t){for(let n=e.length-1;n>=0;n--)if(!(t===`optin`?e[n]._zod.optin!==void 0:e[n]._zod.optout===`optional`))return n+1;return 0}function jh(e,t,n){e.issues.length&&t.issues.push(..._d(n,e.issues)),t.value[n]=e.value}function Mh(e,t,n,r,i){for(let a=0;a<n.length;a++){let o=e[a],s=a<r.length;if(!s&&a>=i&&n[a]._zod.optin===`optional`){t.value.length=a;break}if(o.issues.length){if(!s&&a>=i){t.value.length=a;break}t.issues.push(..._d(a,o.issues))}t.value[a]=o.value}for(let e=t.value.length-1;e>=r.length&&n[e]._zod.optout===`optional`&&t.value[e]===void 0;e--)t.value.length=e;return t}function Nh(e,t,n,r,i,a,o){e.issues.length&&(Kd.has(typeof r)?n.issues.push(..._d(r,e.issues)):n.issues.push({code:`invalid_key`,origin:`map`,input:i,inst:a,issues:e.issues.map(e=>xd(e,o,rf()))})),t.issues.length&&(Kd.has(typeof r)?n.issues.push(..._d(r,t.issues)):n.issues.push({origin:`map`,code:`invalid_element`,input:i,inst:a,key:r,issues:t.issues.map(e=>xd(e,o,rf()))})),n.value.set(e.value,t.value)}function Ph(e,t){e.issues.length&&t.issues.push(...e.issues),t.value.add(e.value)}function Fh(e,t){return e.value=t.issues.length?void 0:t.value,e}function Ih(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}function Lh(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}function Rh(e,t,n,r){return t.issues.length?(e.value=n.catchValue({...t,value:e.value,error:{issues:t.issues.map(e=>xd(e,r,rf()))},input:e.value}),e):(e.value=t.value,t.memo&&(e.memo=!0),e)}function zh(e,t,n){return e.issues.some(e=>e.code!==`unrecognized_keys`)?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}function Bh(e,t,n){if(e.issues.length)return e.aborted=!0,e;if((n.direction||`forward`)===`forward`){let r=t.transform(e.value,e);return r instanceof Promise?r.then(r=>Vh(e,r,t.out,n)):Vh(e,r,t.out,n)}{let r=t.reverseTransform(e.value,e);return r instanceof Promise?r.then(r=>Vh(e,r,t.in,n)):Vh(e,r,t.in,n)}}function Vh(e,t,n,r){return e.issues.length?(e.aborted=!0,e):n._zod.run({value:t,issues:e.issues},r)}function Hh(e){return e.memo||(e.value=Object.freeze(e.value)),e}function Uh(e){let t=e._zod.def,n=t.pattern,r=!!t.format?.includes(`int`),i,a;for(let e of t.checks??[]){let t=e._zod.def;t.pattern&&(n=t.pattern),r||=!!t.format?.includes(`int`);let o=t.minimum??t.length,s=t.maximum??t.length;o!==void 0&&(i===void 0||o>i)&&(i=o),s!==void 0&&(a===void 0||s<a)&&(a=s)}if(n)return n.source;if(i!==void 0&&a!==void 0&&i>a)return`(?!)`;if(i!==void 0||a!==void 0)return Qp({minimum:i,maximum:a}).source;let o=e._zod.pattern;return(r&&o===tm?em:o)?.source}function Wh(e){let t=e._zod.def,n=e._zod.pattern?.source,r=t.innerType??e._zod.innerType;if(r){let e=r._zod.pattern?.source,t=Wh(r);return n&&e&&t&&t!==e?n.replace(Fu(e),()=>Fu(t)):n}if(t.options){let e=t.options.map(Wh);if(e.every(Boolean))return`^(${e.map(e=>Fu(e)).join(`|`)})$`}return Uh(e)}function Gh(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(Td(e))}}var H,Kh,qh,Jh,Yh,Xh,Zh,Qh,$h,eg,tg,ng,rg,ig,ag,og,sg,cg,lg,ug,dg,fg,pg,mg,hg,gg,_g,vg,yg,bg,xg,Sg,Cg,wg,Tg,Eg,Dg,Og,kg,Ag,jg,Mg,Ng,Pg,Fg,Ig,Lg,Rg,zg,Bg,Vg,Hg,Ug,Wg,Gg,Kg,qg,Jg,Yg,Xg,Zg,Qg,$g,e_,t_,n_,r_,i_,a_,o_,s_,c_,l_,u_,d_,f_,p_,m_,h_,g_,__,v_,y_,b_,x_,S_,C_=o((()=>{Zm(),pf(),$m(),ap(),Cm(),z(),th(),H=B(`$ZodType`,(e,t)=>{var n;e??={},e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=eh;let r=e._zod.def.checks,i=e._zod.traits.has(`$ZodCheck`)?[e,...r??[]]:r?.length?[...r]:[];for(let t of i)for(let n of t._zod.onattach)n(e);if(i.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let t=(t,n,r)=>{if(t.memo)return t;let i=hd(t),a;for(let o of n){if(o._zod.def.when){if(gd(t)||!o._zod.def.when(t))continue}else if(i)continue;let n=t.issues.length,s=o._zod.check(t);if(s instanceof Promise&&r?.async===!1)throw new uf;if(a||s instanceof Promise)a=(a??Promise.resolve()).then(async()=>{await s,t.issues.length!==n&&(bd(t.issues,n,e),i||=hd(t,n))});else{if(t.issues.length===n)continue;bd(t.issues,n,e),i||=hd(t,n)}}return a?a.then(()=>t):t},n=(n,r,a)=>{if(hd(n))return n.aborted=!0,n;let o=t(r,i,a);if(o instanceof Promise){if(a.async===!1)throw new uf;return o.then(t=>e._zod.parse(t,a))}return e._zod.parse(o,a)};e._zod.run=(r,a)=>{if(a.skipChecks)return e._zod.parse(r,a);if(a.direction===`backward`){let t=e._zod.parse({value:r.value,issues:[]},{...a,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,r,a)):n(t,r,a)}let o=e._zod.parse(r,a);if(o instanceof Promise){if(a.async===!1)throw new uf;return o.then(e=>t(e,i,a))}return t(o,i,a)}}},{get"~standard"(){return Fd(this,`~standard`,rh(this))},set"~standard"(e){Pd(this,`~standard`,e)}}),Kh=(e,t)=>e.issues.length?{issues:e.issues.map(e=>xd(e,t,rf()))}:{value:e.value},qh=B(`$ZodString`,(e,t)=>{H.init(e,t),e._zod.pattern=t.pattern??Zp,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value==`string`||n.issues.push({expected:`string`,code:`invalid_type`,input:n.value,inst:e}),n}}),Jh=B(`$ZodStringFormat`,(e,t)=>{Bm.init(e,t),qh.init(e,t)}),Yh=B(`$ZodGUID`,(e,t)=>{t.pattern??=Cp,Jh.init(e,t)}),Xh=B(`$ZodUUID`,(e,t)=>{if(t.version){let e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(e===void 0)throw Error(`Invalid UUID version: "${t.version}"`);t.pattern??=wp(e)}else t.pattern??=wp();Jh.init(e,t)}),Zh=B(`$ZodEmail`,(e,t)=>{t.pattern??=Op,Jh.init(e,t)}),Qh=/[\t\n\r]/g,$h=B(`$ZodURL`,(e,t)=>{Jh.init(e,t),e._zod.check=n=>{try{let r=n.value.trim(),i=ah(r,t);if(i===1){n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid URL format`,input:n.value,inst:e,continue:!t.abort});return}if(i===2){n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort});return}if(i===!0){n.value=sh(r);return}t.hostname&&!ch(i,t.hostname)&&n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid hostname`,pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort}),t.protocol&&!lh(i,t.protocol)&&n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid protocol`,pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort}),n.value=t.normalize?i.href:sh(r);return}catch{n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort})}}}),eg=B(`$ZodEmoji`,(e,t)=>{t.pattern??=cp(),Jh.init(e,t)}),tg=B(`$ZodNanoID`,(e,t)=>{if(t.length!==void 0&&(!Number.isInteger(t.length)||t.length<1))throw Error(`Invalid nanoid length: ${t.length}`);t.pattern??=t.length===void 0?bp:sp(t.length),Jh.init(e,t)}),ng=B(`$ZodCUID`,(e,t)=>{t.pattern??=hp,Jh.init(e,t)}),rg=B(`$ZodCUID2`,(e,t)=>{t.pattern??=gp,Jh.init(e,t)}),ig=B(`$ZodULID`,(e,t)=>{t.pattern??=_p,Jh.init(e,t)}),ag=B(`$ZodXID`,(e,t)=>{t.pattern??=vp,Jh.init(e,t)}),og=B(`$ZodKSUID`,(e,t)=>{t.pattern??=yp,Jh.init(e,t)}),sg=B(`$ZodISODateTime`,(e,t)=>{t.pattern??=fp(t),Jh.init(e,t)}),cg=B(`$ZodISODate`,(e,t)=>{t.pattern??=Xp,Jh.init(e,t)}),lg=B(`$ZodISOTime`,(e,t)=>{t.pattern??=dp(t),Jh.init(e,t)}),ug=B(`$ZodISODuration`,(e,t)=>{t.pattern??=xp,Jh.init(e,t)}),dg=B(`$ZodIPv4`,(e,t)=>{t.pattern??=Fp,Jh.init(e,t)}),fg=/^[0-9a-fA-F:.]+$/,pg=B(`$ZodIPv6`,(e,t)=>{t.pattern??=Ip,Jh.init(e,t),e._zod.check=n=>{uh(n.value)||n.issues.push({code:`invalid_format`,format:`ipv6`,input:n.value,inst:e,continue:!t.abort})}}),mg=B(`$ZodMAC`,(e,t)=>{t.pattern??=Lp(t.delimiter),Jh.init(e,t)}),hg=B(`$ZodCIDRv4`,(e,t)=>{t.pattern??=Rp,Jh.init(e,t)}),gg=B(`$ZodCIDRv6`,(e,t)=>{t.pattern??=zp,Jh.init(e,t),e._zod.check=n=>{dh(n.value)||n.issues.push({code:`invalid_format`,format:`cidrv6`,input:n.value,inst:e,continue:!t.abort})}}),_g=/^[0-9a-zA-Z+/]*={0,2}$/,vg=B(`$ZodBase64`,(e,t)=>{t.pattern??=_g,Jh.init(e,t),e._zod.check=n=>{fh(n.value)||n.issues.push({code:`invalid_format`,format:`base64`,input:n.value,inst:e,continue:!t.abort})}}),yg=/^[A-Za-z0-9_-]*$/,bg=B(`$ZodBase64URL`,(e,t)=>{t.pattern??=yg,Jh.init(e,t),e._zod.check=n=>{ph(n.value)||n.issues.push({code:`invalid_format`,format:`base64url`,input:n.value,inst:e,continue:!t.abort})}}),xg=B(`$ZodE164`,(e,t)=>{t.pattern??=Gp,Jh.init(e,t)}),Sg=/[- ]/g,Cg=B(`$ZodCreditCard`,(e,t)=>{t.pattern??=Kp,Jh.init(e,t),e._zod.check=n=>{hh(n.value)||n.issues.push({code:`invalid_format`,format:`credit_card`,input:n.value,inst:e,continue:!t.abort})}}),wg=B(`$ZodIBAN`,(e,t)=>{t.pattern??=Jp,Jh.init(e,t),e._zod.check=n=>{_h(n.value)||n.issues.push({code:`invalid_format`,format:`iban`,input:n.value,inst:e,continue:!t.abort})}}),Tg=B(`$ZodJWT`,(e,t)=>{Jh.init(e,t),e._zod.check=n=>{vh(n.value,t.alg)||n.issues.push({code:`invalid_format`,format:`jwt`,input:n.value,inst:e,continue:!t.abort})}}),Eg=B(`$ZodCustomStringFormat`,(e,t)=>{Jh.init(e,t),e._zod.check=n=>{t.fn(n.value)||n.issues.push({code:`invalid_format`,format:t.format,input:n.value,inst:e,continue:!t.abort})}}),Dg=B(`$ZodNumber`,(e,t)=>{H.init(e,t),e._zod.pattern=tm,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i==`number`&&!Number.isNaN(i)&&Number.isFinite(i))return n;let a=typeof i==`number`?Number.isNaN(i)?`NaN`:Number.isFinite(i)?void 0:String(i):void 0;return n.issues.push({expected:`number`,code:`invalid_type`,input:i,inst:e,...a?{received:a}:{}}),n}}),Og=B(`$ZodNumberFormat`,(e,t)=>{Mm.init(e,t),Dg.init(e,t)}),kg=B(`$ZodBoolean`,(e,t)=>{H.init(e,t),e._zod.pattern=nm,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i==`boolean`||n.issues.push({expected:`boolean`,code:`invalid_type`,input:i,inst:e}),n}}),Ag=B(`$ZodBigInt`,(e,t)=>{H.init(e,t),e._zod.pattern=$p,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=BigInt(n.value)}catch{}return typeof n.value==`bigint`||n.issues.push({expected:`bigint`,code:`invalid_type`,input:n.value,inst:e}),n}}),jg=B(`$ZodBigIntFormat`,(e,t)=>{Nm.init(e,t),Ag.init(e,t)}),Mg=B(`$ZodSymbol`,(e,t)=>{H.init(e,t),e._zod.parse=(t,n)=>{let r=t.value;return typeof r==`symbol`||t.issues.push({expected:`symbol`,code:`invalid_type`,input:r,inst:e}),t}}),Ng=B(`$ZodUndefined`,(e,t)=>{H.init(e,t),e._zod.pattern=im,e._zod.values=new Set([void 0]),e._zod.parse=(t,n)=>{let r=t.value;return r===void 0||t.issues.push({expected:`undefined`,code:`invalid_type`,input:r,inst:e}),t}}),Pg=B(`$ZodNull`,(e,t)=>{H.init(e,t),e._zod.pattern=rm,e._zod.values=new Set([null]),e._zod.parse=(t,n)=>{let r=t.value;return r===null||t.issues.push({expected:`null`,code:`invalid_type`,input:r,inst:e}),t}}),Fg=B(`$ZodAny`,(e,t)=>{H.init(e,t),e._zod.parse=e=>e}),Ig=B(`$ZodUnknown`,(e,t)=>{H.init(e,t),e._zod.parse=e=>e}),Lg=B(`$ZodNever`,(e,t)=>{H.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:`never`,code:`invalid_type`,input:t.value,inst:e}),t)}),Rg=B(`$ZodVoid`,(e,t)=>{H.init(e,t),e._zod.parse=(t,n)=>{let r=t.value;return r===void 0||t.issues.push({expected:`void`,code:`invalid_type`,input:r,inst:e}),t}}),zg=B(`$ZodDate`,(e,t)=>{H.init(e,t),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=new Date(n.value)}catch{}let i=n.value,a=i instanceof Date;return a&&!Number.isNaN(i.getTime())||n.issues.push({expected:`date`,code:`invalid_type`,input:i,...a?{received:`Invalid Date`}:{},inst:e}),n}}),Bg=e=>Array.isArray(e)?e.length:-1,Vg=e=>e instanceof Map?e.size:-1,Hg=e=>e instanceof Set?e.size:-1,Ug=B(`$ZodArray`,(e,t)=>{H.init(e,t);let n=ff.memoizer;n?.attach(e),e._zod.parse=(r,i)=>{let a=r.value;if(!Array.isArray(a))return r.issues.push({expected:`array`,code:`invalid_type`,input:a,inst:e}),r;r.value=n?n.alloc(e,r,Array(a.length),i):Array(a.length);let o=[],s=i?.abortEarly;for(let e=0;e<a.length;e++){let n=a[e],c=t.element._zod.run({value:n,issues:[]},i);if(c instanceof Promise)o.push(c.then(t=>bh(t,r,e)));else if(bh(c,r,e),s&&c.issues.length!==0&&hd(c))break}return o.length?Promise.all(o).then(()=>r):r},yh(e,Bg)}),Wg=[],Gg=B(`$ZodObject`,(e,t)=>{H.init(e,t);let n=Object.getOwnPropertyDescriptor(t,`shape`),r=n?.get?n.get.raw:t.shape??{};if(r){let e=()=>{let n={...r};return Object.defineProperty(t,"shape",{value:n}),e.raw=n,n};e.raw=r,Object.defineProperty(t,"shape",{get:e})}let i=Nu(()=>Sh(t));R(e,`propValues`,e=>{let t=e.def.shape,n={};for(let e in t){let r=t[e]._zod;if(r.values){Object.prototype.hasOwnProperty.call(n,e)||zu(n,e,new Set);for(let t of r.values)n[e].add(t);r.optin!==void 0&&n[e].add(void 0)}}return n});let a=$u,o=t.catchall,s,c=ff.memoizer;c?.attach(e),e._zod.parse=(t,n)=>{s??=i.value;let r=t.value;if(!a(r))return t.issues.push({expected:`object`,code:`invalid_type`,input:r,inst:e}),t;t.value=c?c.alloc(e,t,{},n):{};let l=[],u=s.shape,d=n?.abortEarly,f=t.issues.length;for(let e of s.allKeys){if(d&&t.issues.length!==f){if(hd(t,f))break;f=t.issues.length}if(e===`__proto__`)continue;let i=u[e],a=i._zod.optin,o=i._zod.optout,s=i._zod.run({value:r[e],issues:[]},n);s instanceof Promise?l.push(s.then(n=>xh(n,t,e,r,a,o))):xh(s,t,e,r,a,o)}return o?Ch(l,r,t,n,i.value,e,d===!0):l.length?Promise.all(l).then(()=>t):t}}),Kg=B(`$ZodObjectJIT`,(e,t)=>{Gg.init(e,t);let n=e._zod.parse,r=Nu(()=>Sh(t)),i=ff.memoizer,a=t=>{let n=r.value,a=n.symbolKeys,o=new Qm([`payload`,`ctx`],{shape:t,inst:e,memo:i,syms:a}),s=e=>`shape[${e}]._zod.run({ value: input[${e}], issues: [] }, ctx)`,c=(e,t)=>`
@@ -152,5 +152,5 @@ Boolean requesting whether a visible border and background is provided by the ho
152
152
  container holding the app. Specify either width or maxWidth, and either height or maxHeight.`),locale:G().optional().describe(`User's language and region preference in BCP 47 format.`),timeZone:G().optional().describe(`User's timezone in IANA format.`),userAgent:G().optional().describe(`Host application identifier.`),platform:Y([Z(`web`),Z(`desktop`),Z(`mobile`)]).optional().describe(`Platform type for responsive design decisions.`),deviceCapabilities:J({touch:iO().optional().describe(`Whether the device supports touch input.`),hover:iO().optional().describe(`Whether the device supports hover interactions.`)}).optional().describe(`Device input capabilities.`),safeAreaInsets:J({top:K().describe(`Top safe area inset in pixels.`),right:K().describe(`Right safe area inset in pixels.`),bottom:K().describe(`Bottom safe area inset in pixels.`),left:K().describe(`Left safe area inset in pixels.`)}).optional().describe(`Mobile safe area boundaries in pixels.`)}).passthrough(),VP=J({method:Z(`ui/notifications/host-context-changed`),params:BP.describe(`Partial context update containing only changed fields.`)});J({method:Z(`ui/update-model-context`),params:J({content:q(lN).optional().describe(`Context content blocks (text, image, etc.).`),structuredContent:X(G(),fO().describe(`Structured content for machine-readable context data.`)).optional().describe(`Structured content for machine-readable context data.`)})}),J({method:Z(`ui/initialize`),params:J({appInfo:$j.describe(`App identification (name and version).`),appCapabilities:IP.describe(`Features and capabilities this app provides.`),protocolVersion:G().describe(`Protocol version this app supports.`)})});var HP=J({protocolVersion:G().describe(`Negotiated protocol version string (e.g., "2025-11-21").`),hostInfo:$j.describe(`Host application identification and version.`),hostCapabilities:FP.describe(`Features and capabilities provided by the host.`),hostContext:BP.describe(`Rich context about the host environment.`)}).passthrough(),UP={target:`draft-2020-12`};async function WP(e,t){let n=e[`~standard`];if(n.jsonSchema)return n.jsonSchema[t](UP);if(n.vendor===`zod`){let{z:n}=await gP(async()=>{let{z:e}=await Promise.resolve().then(()=>(Sj(),xj));return{z:e}},void 0,import.meta.url);return n.toJSONSchema(e,{io:t})}throw Error(`Schema (vendor: ${n.vendor}) does not implement Standard JSON Schema (~standard.jsonSchema). Use a library that does (zod v4, ArkType, Valibot) or wrap your schema accordingly.`)}async function GP(e,t,n=``){let r=await e[`~standard`].validate(t);if(r.issues){let e=r.issues.map(e=>{let t=e.path?.map(e=>typeof e==`object`?e.key:e).join(`.`);return t?`${t}: ${e.message}`:e.message}).join(`; `);throw Error(n+e)}return r.value}function KP(e){let t=document.documentElement;t.setAttribute(`data-theme`,e),t.style.colorScheme=e}function qP(e,t=document.documentElement){for(let[n,r]of Object.entries(e))r!==void 0&&t.style.setProperty(n,r)}var JP=class e extends _P{_appInfo;_capabilities;options;_hostCapabilities;_hostInfo;_hostContext;_registeredTools={};_initializedSent=!1;_assertInitialized(e){if(this._initializedSent)return;let t=`[ext-apps] App.${e}() called before connect() completed the ui/initialize handshake. Await app.connect() before calling this method, or move data loading to an ontoolresult handler.`;if(this.options?.strict)throw Error(t);console.warn(`${t}. This will throw in a future release.`)}eventSchemas={toolinput:OP,toolinputpartial:kP,toolresult:zP,toolcancelled:AP,hostcontextchanged:VP};static ONE_SHOT_EVENTS=new Set([`toolinput`,`toolinputpartial`,`toolresult`,`toolcancelled`]);_everHadListener=new Set;_assertHandlerTiming(t){if(!e.ONE_SHOT_EVENTS.has(t)||this._everHadListener.has(t)||(this._everHadListener.add(t),!this._initializedSent))return;let n=`[ext-apps] "${String(t)}" handler registered after connect() completed the ui/initialize handshake. The host may have already sent this notification. Register handlers before calling app.connect().`;if(this.options?.strict)throw Error(n);console.warn(n)}setEventHandler(e,t){t&&this._assertHandlerTiming(e),super.setEventHandler(e,t)}addEventListener(e,t){this._assertHandlerTiming(e),super.addEventListener(e,t)}onEventDispatch(e,t){e===`hostcontextchanged`&&(this._hostContext={...this._hostContext,...t})}constructor(e,t={},n={autoResize:!0}){super(n),this._appInfo=e,this._capabilities=t,this.options=n,n.allowUnsafeEval||rf({jitless:!0}),this.setRequestHandler(lM,e=>(console.log(`Received ping:`,e.params),{})),this.setEventHandler(`hostcontextchanged`,void 0)}registerCapabilities(e){if(this.transport)throw Error(`Cannot register capabilities after transport is established`);this._capabilities=uP(this._capabilities,e)}registerTool(e,t,n){if(this._registeredTools[e])throw Error(`Tool ${e} is already registered`);let r=this,i=()=>{r._initializedSent&&r._capabilities.tools?.listChanged&&r.sendToolListChanged()},a=t.inputSchema!==void 0,o={title:t.title,description:t.description,inputSchema:t.inputSchema,outputSchema:t.outputSchema,annotations:t.annotations,_meta:t._meta,enabled:!0,enable(){this.enabled=!0,i()},disable(){this.enabled=!1,i()},update(e){Object.assign(this,e),i()},remove(){r._registeredTools[e]===o&&(delete r._registeredTools[e],i())},handler:async(t,r)=>{if(!o.enabled)throw Error(`Tool ${e} is disabled`);let i;if(a){let a=o.inputSchema;i=await n(a?await GP(a,t??{},`Invalid input for tool ${e}: `):t??{},r)}else i=await n(r);return o.outputSchema&&!i.isError&&(i.structuredContent=await GP(o.outputSchema,i.structuredContent,`Invalid output for tool ${e}: `)),i}};return this._registeredTools[e]=o,!this._capabilities.tools&&!this.transport&&this.registerCapabilities({tools:{listChanged:!0}}),this.ensureToolHandlersInitialized(),i(),o}_toolHandlersInitialized=!1;ensureToolHandlersInitialized(){this._toolHandlersInitialized||(this._toolHandlersInitialized=!0,this.oncalltool=async(e,t)=>{let n=this._registeredTools[e.name];if(!n)throw Error(`Tool ${e.name} not found`);return n.handler(e.arguments,t)},this.onlisttools=async(e,t)=>({tools:await Promise.all(Object.entries(this._registeredTools).filter(([e,t])=>t.enabled).map(async([e,t])=>{let n={name:e,title:t.title,description:t.description,inputSchema:t.inputSchema?await WP(t.inputSchema,`input`):{type:`object`,properties:{}}};return t.outputSchema&&(n.outputSchema=await WP(t.outputSchema,`output`)),t.annotations&&(n.annotations=t.annotations),t._meta&&(n._meta=t._meta),n}))}))}async sendToolListChanged(e={}){this._assertInitialized(`sendToolListChanged`),await this.notification({method:`notifications/tools/list_changed`,params:e})}getHostCapabilities(){return this._hostCapabilities}getHostVersion(){return this._hostInfo}getHostContext(){return this._hostContext}get ontoolinput(){return this.getEventHandler(`toolinput`)}set ontoolinput(e){this.setEventHandler(`toolinput`,e)}get ontoolinputpartial(){return this.getEventHandler(`toolinputpartial`)}set ontoolinputpartial(e){this.setEventHandler(`toolinputpartial`,e)}get ontoolresult(){return this.getEventHandler(`toolresult`)}set ontoolresult(e){this.setEventHandler(`toolresult`,e)}get ontoolcancelled(){return this.getEventHandler(`toolcancelled`)}set ontoolcancelled(e){this.setEventHandler(`toolcancelled`,e)}get onhostcontextchanged(){return this.getEventHandler(`hostcontextchanged`)}set onhostcontextchanged(e){this.setEventHandler(`hostcontextchanged`,e)}_onteardown;get onteardown(){return this._onteardown}set onteardown(e){this.warnIfRequestHandlerReplaced(`onteardown`,this._onteardown,e),this._onteardown=e,this.replaceRequestHandler(NP,(e,t)=>{if(!this._onteardown)throw Error(`No onteardown handler set`);return this._onteardown(e.params,t)})}_oncalltool;get oncalltool(){return this._oncalltool}set oncalltool(e){this.warnIfRequestHandlerReplaced(`oncalltool`,this._oncalltool,e),this._oncalltool=e,this.replaceRequestHandler(bN,(e,t)=>{if(!this._oncalltool)throw Error(`No oncalltool handler set`);return this._oncalltool(e.params,t)})}_onlisttools;get onlisttools(){return this._onlisttools}set onlisttools(e){this.warnIfRequestHandlerReplaced(`onlisttools`,this._onlisttools,e),this._onlisttools=e,this.replaceRequestHandler(gN,(e,t)=>{if(!this._onlisttools)throw Error(`No onlisttools handler set`);return this._onlisttools(e.params,t)})}assertCapabilityForMethod(e){if(e===`sampling/createMessage`&&!this._hostCapabilities?.sampling)throw Error(`Host does not support sampling (required for ${e})`)}assertRequestHandlerCapability(e){switch(e){case`tools/call`:case`tools/list`:if(!this._capabilities.tools)throw Error(`Client does not support tool capability (required for ${e})`);return;case`ping`:case`ui/resource-teardown`:return;default:throw Error(`No handler for method ${e} registered`)}}assertNotificationCapability(e){}assertTaskCapability(e){throw Error(`Tasks are not supported in MCP Apps`)}assertTaskHandlerCapability(e){throw Error(`Task handlers are not supported in MCP Apps`)}async callServerTool(e,t){if(this._assertInitialized(`callServerTool`),typeof e==`string`)throw Error(`callServerTool() expects an object as its first argument, but received a string ("${e}"). Did you mean: callServerTool({ name: "${e}", arguments: { ... } })?`);return await this.request({method:`tools/call`,params:e},vN,{onprogress:()=>{},resetTimeoutOnProgress:!0,...t})}async readServerResource(e,t){return this._assertInitialized(`readServerResource`),await this.request({method:`resources/read`,params:e},UM,t)}async listServerResources(e,t){return this._assertInitialized(`listServerResources`),await this.request({method:`resources/list`,params:e},LM,t)}async createSamplingMessage(e,t){this._assertInitialized(`createSamplingMessage`);let n=e.tools?IN:FN;return await this.request({method:`sampling/createMessage`,params:e},n,t)}sendMessage(e,t){return this._assertInitialized(`sendMessage`),this.request({method:`ui/message`,params:e},TP,t)}sendLog(e){return this.notification({method:`notifications/message`,params:e})}updateModelContext(e,t){return this._assertInitialized(`updateModelContext`),this.request({method:`ui/update-model-context`,params:e},Jj,t)}openLink(e,t){return this._assertInitialized(`openLink`),this.request({method:`ui/open-link`,params:e},CP,t)}sendOpenLink=this.openLink;downloadFile(e,t){return this._assertInitialized(`downloadFile`),this.request({method:`ui/download-file`,params:e},wP,t)}requestTeardown(e={}){return this.notification({method:`ui/notifications/request-teardown`,params:e})}requestDisplayMode(e,t){return this._assertInitialized(`requestDisplayMode`),this.request({method:`ui/request-display-mode`,params:e},LP,t)}sendSizeChanged(e){return this.notification({method:`ui/notifications/size-changed`,params:e})}setupSizeChangedNotifications(){let e=!1,t=0,n=0,r=()=>{e||(e=!0,requestAnimationFrame(()=>{e=!1;let r=document.documentElement,i=r.style.height;r.style.height=`max-content`;let a=Math.ceil(r.getBoundingClientRect().height);r.style.height=i;let o=Math.ceil(window.innerWidth);(o!==t||a!==n)&&(t=o,n=a,this.sendSizeChanged({width:o,height:a}))}))};r();let i=new ResizeObserver(r);return i.observe(document.documentElement),i.observe(document.body),()=>i.disconnect()}async connect(e=new yP(window.parent,window.parent),t){if(this.transport)throw Error(`App is already connected. Call close() before connecting again.`);this._initializedSent=!1,await super.connect(e);try{let e=await this.request({method:`ui/initialize`,params:{appCapabilities:this._capabilities,appInfo:this._appInfo,protocolVersion:vP}},HP,t);if(e===void 0)throw Error(`Server sent invalid initialize result: ${e}`);this._hostCapabilities=e.hostCapabilities,this._hostInfo=e.hostInfo,this._hostContext=e.hostContext,await this.notification({method:`ui/notifications/initialized`}),this._initializedSent=!0,this.options?.autoResize&&this.setupSizeChangedNotifications()}catch(e){throw this.close(),e}}};DA();var YP=`openai/resource`;J({[YP]:J({path:G().describe(`Path in the MCP server host filesystem namespace.`)}).optional()}),DA();var XP=`openai/deepLink`,ZP=Y([J({url:G()}),J({path:q(G()),query:q(SO([G(),G()]))}).transform(({path:e,query:t})=>{let n=new URLSearchParams(t).toString();return{url:`/${e.map(encodeURIComponent).join(`/`)}${n?`?${n}`:``}`}})]);function QP(e){return{getCurrent:()=>{let t=ZP.safeParse(e.getHostContext()?.[XP]);return t.success?t.data:void 0}}}DA();var $P=`openai/files/open`,eF=_O({path:G().min(1)});function tF(e){let t=e;return{open:e=>t.request({method:$P,params:eF.parse({path:e})},Jj)}}DA();var nF=`openai/message`,rF=J({target:DO([`active`,`new`]).optional(),send:iO().optional()}).strict(),iF=Nj.shape.params.unwrap().extend({role:Z(`user`),content:q(lN),_meta:Nj.shape.params.unwrap().shape._meta.unwrap().extend({[nF]:rF.optional()}).optional()});function aF(e){return{send:(t,n)=>e.sendMessage(iF.parse(t),n)}}DA();var oF=`openai/modelContext`,sF=G().min(1),cF=J({[oF]:J({updateId:sF})}),lF=Y([J({content:q(lN).optional(),structuredContent:X(G(),fO()).optional(),updateId:sF}),uO()]);function uF(e){return{getCurrent:()=>{let t=lF.safeParse(e.getHostContext()?.[oF]);return t.success?t.data:void 0},update:async(t,n)=>{let r=await e.updateModelContext(t,n),i=cF.safeParse(r._meta);return i.success?i.data[oF]:void 0}}}DA();var dF=G().regex(/\S/);DA();var fF=`openai/resources/write`,pF={ifMatch:G().min(1).optional(),uri:dF},mF=_O({...pF,blob:HD(),text:pO().optional()}),hF=_O({...pF,blob:pO().optional(),text:G()}),gF=DO([`blob`,`text`]);J({[YP]:J({representation:gF.optional()}).optional()});var _F=J({etag:G().optional(),writable:iO().optional()}),vF=J({[YP]:_F.optional()}),yF=Y([mF,hF]),bF=bO(`outcome`,[J({etag:G(),outcome:DO([`conflict`,`saved`])}),J({maxBytes:K(),outcome:Z(`too-large`)})]);function xF(e){return async({representation:t,...n},r)=>{let i=await e.readServerResource(t==null?n:{...n,_meta:{...n._meta,[YP]:{...n._meta?.[YP],representation:t}}},r);return{...i,contents:i.contents.map(e=>({...e,openaiMetadata:CF(e._meta)}))}}}function SF(e){let t=e,n=new Set,r=!1;return{addUpdateHandler:e=>(r||=(t.setNotificationHandler(XM,async e=>{await Promise.all(Array.from(n,async t=>t(e)))}),!0),n.add(e),()=>{n.delete(e)}),read:xF(e),subscribe:(e,n)=>t.request({method:`resources/subscribe`,params:e},Jj,n),unsubscribe:(e,n)=>t.request({method:`resources/unsubscribe`,params:e},Jj,n),write:(e,n,r)=>t.request({method:fF,params:yF.parse({uri:e,...n})},bF,r)}}function CF(e){let t=vF.safeParse(e??{});if(t.success)return t.data[YP]}DA();var wF=DO([`default`,`pointer`]).catch(`pointer`),TF=class{deepLink;app;fileApi;messageApi;modelContextApi;resourcesApi;get files(){return this.app.getHostCapabilities()?.experimental?.[`openai/files`]?this.fileApi:void 0}get message(){return this.app.getHostCapabilities()?.experimental?.[`openai/message`]==null?void 0:this.messageApi}get modelContext(){return this.app.getHostCapabilities()?.experimental?.[`openai/modelContext`]==null?void 0:this.modelContextApi}get resources(){return this.app.getHostCapabilities()?.experimental?.[`openai/resource`]==null?void 0:this.resourcesApi}constructor(e){if(this.app=e,this.deepLink=QP(e),this.fileApi=tF(e),this.messageApi=aF(e),this.modelContextApi=uF(e),this.resourcesApi=SF(e),typeof document<`u`){let t=()=>{document.documentElement.style.setProperty(`--cursor-interaction`,wF.parse(e.getHostContext()?.[`openai/interactionCursor`]))};e.addEventListener(`hostcontextchanged`,t);let n=e.connect.bind(e);e.connect=async(...e)=>{await n(...e),t()},t()}}};function EF(){let e=new JP({name:xu.name,version:xu.version},{},{autoResize:!0}),t=new TF(e),n=()=>{let t=e.getHostContext();t?.theme&&(KP(t.theme),document.documentElement.dataset.theme=t.theme),t?.styles?.variables&&qP(t.styles.variables)};return{async start(t,r){e.ontoolresult=e=>{let n=e.structuredContent;n?.tasks&&n?.sources&&t(n)},e.onhostcontextchanged=n,await e.connect(),n(),r(!!e.getHostCapabilities()?.updateModelContext);let i=await e.callServerTool({name:`list_tasks`,arguments:{}});if(i.isError)throw Error(`台账暂不可读,请重试`);t(i.structuredContent)},async refresh(){let t=await e.callServerTool({name:`list_tasks`,arguments:{}});if(t.isError)throw Error(`刷新失败,请稍后重试`);return t.structuredContent},async attach(n){let r=lu(n),i={...r,content:r.content.map(e=>({...e,type:`text`}))};t.modelContext?await t.modelContext.update(i):await e.updateModelContext(i)},close(){e.close()}}}var DF=EF();(0,We.createRoot)(document.getElementById(`root`)).render((0,A.jsx)(Cu,{bridge:DF}));</script>
153
153
  <style rel="stylesheet" crossorigin>:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--surface:#f7f7f8;--hover:#f3f3f3;--selected:#eee;--text:#202123;--muted:#6b6c70;--line:#e8e8eb;--inverse:#fff;--control-bg:#f7f7f8;--control-hover:#eee;--control-line:#d4d4d4;--menu-bg:#fff;--success:#168568;--danger:#bd3c3c;--focus:#8a8a91;font:14px/1.6 var(--font-sans,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#212121;--surface:#292929;--hover:#2f2f2f;--selected:#303030;--text:#ececec;--muted:#aaa;--line:#383838;--inverse:#181818;--control-bg:#292929;--control-hover:#333;--control-line:#505050;--menu-bg:#2b2b2b;--success:#71bfa7;--danger:#f7a6a6;--focus:#999}@media (prefers-color-scheme:dark){html:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#212121;--surface:#292929;--hover:#2f2f2f;--selected:#303030;--text:#ececec;--muted:#aaa;--line:#383838;--inverse:#181818;--control-bg:#292929;--control-hover:#333;--control-line:#505050;--menu-bg:#2b2b2b;--success:#71bfa7;--danger:#f7a6a6;--focus:#999}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}button,input{font:inherit;color:inherit}button{cursor:pointer;border:0}button:disabled{cursor:default;opacity:.45}button,input{outline:none}button:focus-visible,input:focus-visible,h2[tabindex="-1"]:focus-visible{outline:2px solid var(--focus);outline-offset:3px}button{transition:background .15s,color .15s,box-shadow .15s}svg{stroke-width:1.6px;flex-shrink:0}p,h1,h2,h3,h4{margin:0}ul,ol{margin:0;padding-left:19px}li{overflow-wrap:anywhere}.task-center{width:100%;max-width:1120px;margin:auto;padding:24px 28px 16px}.app-header{justify-content:space-between;align-items:center;gap:20px;margin-bottom:21px;display:flex}.app-heading{align-items:center;gap:9px;display:flex}.brand-name{align-items:baseline;gap:8px;display:flex}.brand-name>span{letter-spacing:.3px;color:var(--muted);font-size:11px}.workspace-name{border-left:1px solid var(--line);color:var(--muted);margin-left:6px;padding-left:15px;font-size:13px}.app-heading h1{letter-spacing:-.4px;font-size:20px;font-weight:600}.header-count{color:var(--muted);background:var(--surface);border-radius:5px;padding:1px 6px;font-size:12px}.header-actions{align-items:center;gap:12px;display:flex}.preview-label{color:var(--muted);font-size:11px}.button{background:0 0;border-radius:9px;justify-content:center;align-items:center;gap:7px;min-height:34px;padding:8px 12px;font-size:12px;line-height:1.4;display:inline-flex}.button:hover:not(:disabled){background:var(--hover)}.icon-button{width:34px;height:34px;color:var(--muted);padding:0}.toolbar{align-items:center;gap:10px;margin-bottom:23px;display:flex}.search-field{background:var(--control-bg);border:1px solid var(--control-line);min-width:0;height:38px;color:var(--muted);border-radius:10px;flex:1;align-items:center;gap:9px;padding:0 12px;display:flex}.search-field:focus-within{border-color:var(--focus);box-shadow:0 0 0 2px color-mix(in srgb,var(--focus) 12%,transparent)}.search-field input{background:0 0;border:0;outline:0;flex:1;min-width:0;padding:0;font-size:13px}.search-field input::placeholder{color:var(--muted)}.search-field .icon-button{width:23px;height:23px;min-height:23px}.select-trigger{background:var(--control-bg);border:1px solid var(--control-line);white-space:nowrap;border-radius:10px;justify-content:space-between;align-items:center;gap:18px;min-width:124px;height:38px;padding:0 12px 0 14px;font-size:12px;display:flex}.select-trigger:hover,.select-trigger[data-state=open]{background:var(--control-hover)}html:not([data-input-modality=keyboard]) .select-trigger:focus-visible{outline:none}.select-trigger>span{align-items:center;display:flex}.select-content{z-index:100;min-width:max(166px,var(--radix-select-trigger-width));max-height:var(--radix-select-content-available-height);background:var(--menu-bg);color:var(--text);border:1px solid var(--line);transform-origin:var(--radix-select-content-transform-origin);border-radius:12px;padding:5px;animation:.12s ease-out popup-in;overflow:hidden;box-shadow:0 8px 34px #0003,0 2px 8px #0001}.select-item{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:7px;outline:0;justify-content:space-between;align-items:center;gap:24px;padding:9px 11px;font-size:13px;display:flex;position:relative}.select-item[data-highlighted]{background:var(--control-hover)}.select-indicator{display:flex}.tooltip{z-index:120;background:var(--text);color:var(--inverse);border-radius:7px;padding:6px 9px;font-size:11px;box-shadow:0 3px 12px #0002}.task-workspace{grid-template-columns:minmax(225px,.8fr) minmax(0,1.7fr);min-height:430px;display:grid}.list-pane{min-width:0;padding-right:22px}.list-label{color:var(--muted);padding:0 10px 17px;font-size:11px}.project-group+.project-group{margin-top:22px}.project-label{align-items:center;gap:7px;padding:0 10px 9px;font-size:12px;font-weight:500;display:flex}.project-label>svg{color:var(--muted)}.project-label h2{font-size:12px;font-weight:600}.project-label h2>span{color:var(--muted);font-weight:400}.project-label>span:last-child{color:var(--muted);margin-left:auto;font-size:10px;font-weight:400}.task-list{border-left:1px solid var(--line);flex-direction:column;gap:5px;margin-left:16px;padding-left:8px;display:flex}.task-row{text-align:left;width:100%;color:var(--text);background:0 0;border:1px solid #0000;border-radius:10px;min-width:0;padding:13px 12px;display:block}.task-row:hover{background:var(--hover)}.task-row[aria-pressed=true]{background:var(--selected);border-color:var(--line)}.task-row-top{justify-content:space-between;align-items:center;gap:9px;display:flex}.task-row h2{overflow-wrap:anywhere;font-size:13px;font-weight:550;line-height:1.55}.status-badge{white-space:nowrap;color:var(--muted);align-items:center;gap:5px;font-size:10px;font-weight:400;display:inline-flex}.status-dot{background:currentColor;border-radius:50%;width:4px;height:4px}.status-badge.running{color:var(--success)}.status-badge.ready,.status-badge.waiting_human{color:#bd9859}.status-badge.failed{color:var(--danger)}.task-row>p{color:var(--muted);-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;margin-top:8px;font-size:12px;line-height:1.7;display:-webkit-box;overflow:hidden}.task-row-footer{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;margin-top:10px;font-size:10px;display:flex}.task-row-footer>svg{opacity:0;transition:opacity .15s}.task-row[aria-pressed=true] .task-row-footer>svg,.task-row:hover .task-row-footer>svg{opacity:1}.detail-pane{border-left:1px solid var(--line);min-width:0;padding:2px 0 0 30px}.detail-toolbar{justify-content:space-between;align-items:center;gap:14px;margin-bottom:20px;display:flex}.detail-breadcrumb{color:var(--muted);gap:8px;font-size:11px;display:flex}.detail-breadcrumb>span{color:var(--muted)}.detail-breadcrumb>strong{color:var(--text);font-weight:500}.detail-heading{justify-content:space-between;align-items:center;gap:18px;display:flex}.task-detail h2{letter-spacing:-.4px;overflow-wrap:anywhere;font-size:22px;font-weight:550;line-height:1.4}.primary{background:var(--text);color:var(--inverse);flex-shrink:0;padding:9px 12px;font-weight:500}.primary:hover:not(:disabled){background:var(--text);opacity:.88}.detail-timestamp{color:var(--muted);margin-top:8px;font-size:11px}.attachment-feedback{color:var(--muted);font-size:12px}.attachment-feedback:not(:empty){padding:12px 0 0}.progress-block{max-width:65ch;margin:25px 0 30px}.section-label{color:var(--muted);margin-bottom:9px}.section-label h3{font-size:11px;font-weight:500}.progress-block>p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px;line-height:1.85}.detail-sections{border-top:1px solid var(--line)}.accordion-item{border-bottom:1px solid var(--line)}.accordion-item h3{font-size:inherit;font-weight:400}.accordion-trigger{width:100%;color:var(--text);text-align:left;background:0 0;justify-content:space-between;align-items:center;gap:14px;padding:14px 0;font-size:12px;display:flex}.accordion-trigger>svg{color:var(--muted);transition:transform .15s}.accordion-trigger[data-state=open]>svg{transform:rotate(180deg)}.accordion-content{font-size:12px;line-height:1.8;overflow:hidden}.accordion-content>div{padding:0 0 18px}.section-caption{color:var(--muted);overflow-wrap:anywhere;align-items:flex-start;gap:7px;margin-bottom:15px;font-size:11px;display:flex}.section-caption>svg{margin-top:2px}.evidence-group+.evidence-group{margin-top:15px}.evidence-group h4{color:var(--muted);margin-bottom:6px;font-size:11px;font-weight:500}.evidence-group li{margin:5px 0}.history-observation{background:var(--surface);border-radius:8px;padding:12px 14px}.history-observation time{color:var(--muted);font-size:10px}.history-observation p{overflow-wrap:anywhere;white-space:pre-wrap;margin-top:6px;font-size:12px;line-height:1.85}.metadata{flex-direction:column;gap:7px;margin:0;display:flex}.metadata>div{grid-template-columns:76px minmax(0,1fr);gap:10px;display:grid}.metadata dt{color:var(--muted);font-size:11px}.metadata dd{overflow-wrap:anywhere;margin:0;font-size:11px}.metadata-note{color:var(--muted);margin:15px 0;font-size:11px}.timeline{margin-top:22px;padding:0;list-style:none}.timeline li{border-left:1px solid var(--line);padding:0 0 16px 15px;position:relative}.timeline li:before{content:"";background:var(--muted);border-radius:50%;width:5px;height:5px;position:absolute;top:7px;left:-3px}.timeline li>span{color:var(--muted);font-size:10px;display:block}.timeline li>strong{font-size:11px;font-weight:500}.timeline li>p{color:var(--muted);margin-top:2px;font-size:11px}.notice{background:var(--surface);border:1px solid var(--line);border-radius:10px;gap:10px;margin:20px 0;padding:12px;font-size:12px;display:flex}.notice svg{color:#bd9859;margin-top:2px}.notice strong{font-weight:500}.notice p{margin-top:4px}.app-footer{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:24px;padding-top:13px;font-size:10px;display:flex}.app-footer>span{align-items:center;gap:6px;display:flex}.sync-dot{background:var(--muted);opacity:.7;border-radius:50%;width:4px;height:4px}.list-empty,.detail-empty,.loading-state{text-align:center;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;display:flex}.list-empty{gap:9px;padding:40px 10px;font-size:12px}.list-empty strong{color:var(--text);font-weight:500}.list-empty p{font-size:11px}.detail-empty{gap:12px;min-height:290px}.detail-empty>div{background:var(--surface);border-radius:18px;place-items:center;width:62px;height:62px;display:grid}.detail-empty h2{color:var(--text);font-size:16px;font-weight:500}.detail-empty p{font-size:12px;line-height:1.8}.loading-state{gap:14px;min-height:350px;font-size:13px}.error-banner{border:1px solid var(--line);background:var(--surface);color:var(--danger);border-radius:9px;margin-bottom:20px;padding:11px 14px;font-size:12px}.back-button{display:none}.spinning{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes popup-in{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}@media (max-width:760px){.task-center{padding:21px 22px 16px}.task-workspace{grid-template-columns:minmax(215px,.9fr) minmax(0,1.4fr)}.detail-pane{padding-left:22px}.list-pane{padding-right:16px}.task-detail h2{font-size:20px}.detail-heading{gap:10px}}@media (max-width:600px){.task-center{padding:20px 18px 15px}.app-header{margin-bottom:18px}.brand-name{align-items:baseline;gap:8px;display:flex}.brand-name>span{letter-spacing:.3px;color:var(--muted);font-size:11px}.workspace-name{border-left:1px solid var(--line);color:var(--muted);margin-left:6px;padding-left:15px;font-size:13px}.app-heading h1{font-size:19px}.preview-label{font-size:10px}.app-heading{flex-wrap:wrap;gap:7px}.brand-name{gap:5px}.brand-name>span{display:none}.workspace-name{margin-left:1px;padding-left:9px;font-size:12px}.header-count{font-size:10px}.header-actions{gap:5px}.app-header{gap:10px}.toolbar{flex-wrap:wrap;margin-bottom:19px}.search-field{flex-basis:100%}.toolbar>.select-trigger{flex:1;min-width:0}.task-workspace{min-height:350px;display:block}.list-pane{padding:0}.task-row{padding:15px}.task-row h2{font-size:14px}.task-row>p{font-size:13px}.task-row-footer{font-size:11px}.detail-pane{border:0;padding:0;display:none}.task-workspace[data-mobile-detail=true] .list-pane{display:none}.task-workspace[data-mobile-detail=true] .detail-pane{display:block}.back-button{color:var(--muted);margin-bottom:18px;padding-left:0;display:inline-flex}.task-detail h2{font-size:21px}.detail-toolbar{margin-bottom:16px}.select-trigger{gap:10px;min-width:111px}.progress-block>p{font-size:15px}.app-footer{gap:8px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
154
154
  /*$vite$:1*/</style>
155
- <meta name="tianshu-build" content="c1a359e812cd60471640">
155
+ <meta name="tianshu-build" content="e2f64d01ba77022f91e4">
156
156
  </head><body><div id="root"></div></body></html>
@@ -37480,15 +37480,14 @@ function N3(Z, $, J, X, V) {
37480
37480
 
37481
37481
  // src/mcp/server.mjs
37482
37482
  import { execFileSync } from "node:child_process";
37483
- import { readFileSync, existsSync } from "node:fs";
37483
+ import { readFileSync } from "node:fs";
37484
37484
  import { fileURLToPath } from "node:url";
37485
- import { dirname, join } from "node:path";
37486
- import { homedir } from "node:os";
37485
+ import { dirname, join as join2 } from "node:path";
37487
37486
 
37488
37487
  // package.json
37489
37488
  var package_default = {
37490
37489
  name: "@jeffusion/tianshu",
37491
- version: "0.1.0",
37490
+ version: "0.1.1",
37492
37491
  type: "module",
37493
37492
  scripts: {
37494
37493
  dev: "node scripts/dev.mjs",
@@ -37497,12 +37496,12 @@ var package_default = {
37497
37496
  test: "node --test tests/context.test.mjs tests/deletion.test.mjs tests/protocol.test.mjs",
37498
37497
  "test:ledger": "python3 -m unittest discover -s tests -p 'test_*.py'",
37499
37498
  typecheck: "tsc --noEmit",
37500
- "sync:local": "node scripts/sync-local.mjs",
37501
37499
  demo: "node scripts/demo.mjs",
37502
37500
  "demo:prepare": "node scripts/demo.mjs --prepare-only",
37503
37501
  "demo:check": "node scripts/check-demo.mjs",
37504
- prepack: "npm run build",
37505
- "test:package": "node --test tests/package.test.mjs"
37502
+ "test:package": "node --test tests/package.test.mjs",
37503
+ "test:native": "node scripts/test-native.mjs",
37504
+ "pack:release": "npm run build && npm pack ./dist/package --ignore-scripts --pack-destination .local"
37506
37505
  },
37507
37506
  overrides: {
37508
37507
  zod: "$zod"
@@ -37550,19 +37549,11 @@ var package_default = {
37550
37549
  bin: {
37551
37550
  tianshu: "bin/tianshu.mjs"
37552
37551
  },
37553
- files: [
37554
- "bin/",
37555
- "cli/",
37556
- "dist/plugin/",
37557
- "dist/build-info.json",
37558
- "LICENSE",
37559
- "README.md",
37560
- "docs/npm-distribution.md"
37561
- ],
37562
37552
  publishConfig: {
37563
37553
  access: "public",
37564
37554
  registry: "https://registry.npmjs.org/"
37565
- }
37555
+ },
37556
+ private: true
37566
37557
  };
37567
37558
 
37568
37559
  // src/contracts/product.mjs
@@ -37572,7 +37563,7 @@ var product = {
37572
37563
  name: "\u5929\u67A2",
37573
37564
  englishName: "Tianshu",
37574
37565
  workspace: "\u4EFB\u52A1\u4E2D\u5FC3",
37575
- marketplace: "tianshu",
37566
+ marketplace: "jeffusion",
37576
37567
  skill: "coordinator",
37577
37568
  resourceUri: "ui://tianshu/task-center",
37578
37569
  developerName: "Jeffusion",
@@ -37580,25 +37571,36 @@ var product = {
37580
37571
  capabilities: ["Read", "Write"]
37581
37572
  };
37582
37573
 
37574
+ // src/contracts/config-path.mjs
37575
+ import { homedir } from "node:os";
37576
+ import { isAbsolute, join } from "node:path";
37577
+ function dataHome() {
37578
+ return process.env.TIANSHU_HOME || (process.platform === "darwin" ? join(homedir(), "Library/Application Support/Tianshu") : join(process.env.XDG_DATA_HOME || join(homedir(), ".local/share"), "tianshu"));
37579
+ }
37580
+ function configPath(explicit) {
37581
+ const path = explicit || process.env.TIANSHU_CONFIG || join(dataHome(), "config.json");
37582
+ if (!isAbsolute(path)) throw new Error("Config path must be absolute");
37583
+ return path;
37584
+ }
37585
+
37583
37586
  // src/mcp/server.mjs
37584
37587
  var root = dirname(dirname(fileURLToPath(import.meta.url)));
37585
37588
  var uri = product.resourceUri;
37586
37589
  var server = new McpServer({ name: product.id, version: product.version });
37587
- var location = join(root, "runtime-config.json");
37588
- var configPath = process.env.TIANSHU_CONFIG || (existsSync(location) ? JSON.parse(readFileSync(location, "utf8")).config_path : join(homedir(), "Library/Application Support/Tianshu/config.json"));
37590
+ var configPath2 = configPath();
37589
37591
  var python = process.env.TIANSHU_PYTHON || "python3";
37590
37592
  var snapshot = () => JSON.parse(execFileSync(
37591
37593
  python,
37592
- [join(root, "ledger/read_ledger.py"), "--config", configPath],
37594
+ [join2(root, "ledger/read_ledger.py"), "--config", configPath2],
37593
37595
  { encoding: "utf8", timeout: 12e3, maxBuffer: 4 * 1024 * 1024 }
37594
37596
  ));
37595
- var buildInfo = () => JSON.parse(readFileSync(join(root, "build-info.json"), "utf8"));
37597
+ var buildInfo = () => JSON.parse(readFileSync(join2(root, "build-info.json"), "utf8"));
37596
37598
  var readonly2 = { readOnlyHint: true, destructiveHint: false, openWorldHint: false, idempotentHint: true };
37597
37599
  var result = (data) => ({ content: [{ type: "text", text: `\u5929\u67A2\uFF1A${data.tasks.length} \u9879\u4EFB\u52A1\uFF0C\u6570\u636E\u53EA\u8BFB\u3002` }], structuredContent: { ...data, build: buildInfo() } });
37598
37600
  N3(server, "workspace", uri, {}, async () => ({ contents: [{
37599
37601
  uri,
37600
37602
  mimeType: p,
37601
- text: readFileSync(join(root, "dist/panel.html"), "utf8"),
37603
+ text: readFileSync(join2(root, "dist/panel.html"), "utf8"),
37602
37604
  _meta: {
37603
37605
  ui: { prefersBorder: true, csp: { connectDomains: [], resourceDomains: [] } },
37604
37606
  "openai/ui": { preferredDisplayMode: "fullscreen", availableDisplayModes: ["inline", "fullscreen"] },
@@ -37650,7 +37652,7 @@ server.registerTool("delete_task", {
37650
37652
  try {
37651
37653
  const reply = JSON.parse(execFileSync(
37652
37654
  python,
37653
- [join(root, "ledger/cli.py"), "--config", configPath, "--source", sourceId, "task-delete", "--input", "-"],
37655
+ [join2(root, "ledger/cli.py"), "--config", configPath2, "--source", sourceId, "task-delete", "--input", "-"],
37654
37656
  { input: JSON.stringify({ ...request, task_id }), encoding: "utf8", timeout: 12e3, maxBuffer: 4 * 1024 * 1024 }
37655
37657
  ));
37656
37658
  return { content: [{ type: "text", text: "\u4EFB\u52A1\u5DF2\u5220\u9664\uFF0C\u9A8C\u6536\u5FEB\u7167\u548C\u5220\u9664\u56DE\u6267\u5DF2\u4FDD\u7559\u3002" }], structuredContent: { ...reply.result, key } };