@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.
- package/{dist/plugin/.codex-plugin → .codex-plugin}/plugin.json +1 -1
- package/{dist/plugin/.mcp.json → .mcp.json} +3 -2
- package/README.md +17 -10
- package/{dist/plugin/THIRD_PARTY_NOTICES.txt → THIRD_PARTY_NOTICES.txt} +2 -30
- package/build-info.json +5 -0
- package/cli/main.mjs +130 -183
- package/dist/{plugin/dist/panel.html → panel.html} +2 -2
- package/dist/{plugin/dist/server.mjs → server.mjs} +26 -24
- package/docs/npm-distribution.md +30 -47
- package/{dist/plugin/ledger → ledger}/config.py +5 -5
- package/package.json +1 -47
- package/{dist/plugin/skills → skills}/coordinator/references/task-center.md +1 -1
- package/cli/probe.mjs +0 -37
- package/dist/build-info.json +0 -23
- package/dist/plugin/build-info.json +0 -5
- /package/{dist/plugin/ledger → ledger}/cli.py +0 -0
- /package/{dist/plugin/ledger → ledger}/coordinator.py +0 -0
- /package/{dist/plugin/ledger → ledger}/read_ledger.py +0 -0
- /package/{dist/plugin/skills → skills}/coordinator/SKILL.md +0 -0
- /package/{dist/plugin/skills → skills}/coordinator/agents/openai.yaml +0 -0
- /package/{dist/plugin/skills → skills}/coordinator/references/commands.md +0 -0
- /package/{dist/plugin/skills → skills}/coordinator/references/recovery.md +0 -0
- /package/{dist/plugin/skills → skills}/coordinator/scripts/coordinator.py +0 -0
|
@@ -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="
|
|
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
|
|
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.
|
|
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
|
-
|
|
37505
|
-
"test:
|
|
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: "
|
|
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
|
|
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
|
-
[
|
|
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(
|
|
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(
|
|
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
|
-
[
|
|
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 } };
|