@xfey/tutti 0.1.125 → 0.1.126
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.
|
@@ -46,7 +46,7 @@ Error generating stack: `+e.message+`
|
|
|
46
46
|
`},qE=function(){var e=parseInt(document.body.getAttribute(`data-scroll-locked`)||`0`,10);return isFinite(e)?e:0},JE=function(){I.useEffect(function(){return document.body.setAttribute(GE,(qE()+1).toString()),function(){var e=qE()-1;e<=0?document.body.removeAttribute(GE):document.body.setAttribute(GE,e.toString())}},[])},YE=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,i=r===void 0?`margin`:r;JE();var a=I.useMemo(function(){return UE(i)},[i]);return I.createElement(WE,{styles:KE(a,!t,i,n?``:`!important`)})},XE=!1;if(typeof window<`u`)try{var ZE=Object.defineProperty({},`passive`,{get:function(){return XE=!0,!0}});window.addEventListener(`test`,ZE,ZE),window.removeEventListener(`test`,ZE,ZE)}catch{XE=!1}var QE=XE?{passive:!1}:!1,$E=function(e){return e.tagName===`TEXTAREA`},eD=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!==`hidden`&&!(n.overflowY===n.overflowX&&!$E(e)&&n[t]===`visible`)},tD=function(e){return eD(e,`overflowY`)},nD=function(e){return eD(e,`overflowX`)},rD=function(e,t){var n=t.ownerDocument,r=t;do{if(typeof ShadowRoot<`u`&&r instanceof ShadowRoot&&(r=r.host),oD(e,r)){var i=sD(e,r);if(i[1]>i[2])return!0}r=r.parentNode}while(r&&r!==n.body);return!1},iD=function(e){return[e.scrollTop,e.scrollHeight,e.clientHeight]},aD=function(e){return[e.scrollLeft,e.scrollWidth,e.clientWidth]},oD=function(e,t){return e===`v`?tD(t):nD(t)},sD=function(e,t){return e===`v`?iD(t):aD(t)},cD=function(e,t){return e===`h`&&t===`rtl`?-1:1},lD=function(e,t,n,r,i){var a=cD(e,window.getComputedStyle(t).direction),o=a*r,s=n.target,c=t.contains(s),l=!1,u=o>0,d=0,f=0;do{if(!s)break;var p=sD(e,s),m=p[0],h=p[1]-p[2]-a*m;(m||h)&&oD(e,s)&&(d+=h,f+=m);var g=s.parentNode;s=g&&g.nodeType===Node.DOCUMENT_FRAGMENT_NODE?g.host:g}while(!c&&s!==document.body||c&&(t.contains(s)||t===s));return(u&&(i&&Math.abs(d)<1||!i&&o>d)||!u&&(i&&Math.abs(f)<1||!i&&-o>f))&&(l=!0),l},uD=function(e){return`changedTouches`in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},dD=function(e){return[e.deltaX,e.deltaY]},fD=function(e){return e&&`current`in e?e.current:e},pD=function(e,t){return e[0]===t[0]&&e[1]===t[1]},mD=function(e){return`
|
|
47
47
|
.block-interactivity-${e} {pointer-events: none;}
|
|
48
48
|
.allow-interactivity-${e} {pointer-events: all;}
|
|
49
|
-
`},hD=0,gD=[];function _D(e){var t=I.useRef([]),n=I.useRef([0,0]),r=I.useRef(),i=I.useState(hD++)[0],a=I.useState(zE)[0],o=I.useRef(e);I.useEffect(function(){o.current=e},[e]),I.useEffect(function(){if(e.inert){document.body.classList.add(`block-interactivity-${i}`);var t=mE([e.lockRef.current],(e.shards||[]).map(fD),!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=I.useCallback(function(e,t){if(`touches`in e&&e.touches.length===2||e.type===`wheel`&&e.ctrlKey)return!o.current.allowPinchZoom;var i=uD(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=rD(d,u);if(!m)return!0;if(m?l=d:(l=d===`v`?`h`:`v`,m=rD(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 lD(h,t,e,h===`h`?s:c,!0)},[]),c=I.useCallback(function(e){var n=e;if(!(!gD.length||gD[gD.length-1]!==a)){var r=`deltaY`in n?dD(n):uD(n),i=t.current.filter(function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&pD(e.delta,r)})[0];if(i&&i.should){n.cancelable&&n.preventDefault();return}if(!i){var c=(o.current.shards||[]).map(fD).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=I.useCallback(function(e,n,r,i){var a={name:e,delta:n,target:r,should:i,shadowParent:vD(r)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),u=I.useCallback(function(e){n.current=uD(e),r.current=void 0},[]),d=I.useCallback(function(t){l(t.type,dD(t),t.target,s(t,e.lockRef.current))},[]),f=I.useCallback(function(t){l(t.type,uD(t),t.target,s(t,e.lockRef.current))},[]);I.useEffect(function(){return gD.push(a),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:f}),document.addEventListener(`wheel`,c,QE),document.addEventListener(`touchmove`,c,QE),document.addEventListener(`touchstart`,u,QE),function(){gD=gD.filter(function(e){return e!==a}),document.removeEventListener(`wheel`,c,QE),document.removeEventListener(`touchmove`,c,QE),document.removeEventListener(`touchstart`,u,QE)}},[]);var p=e.removeScrollBar,m=e.inert;return I.createElement(I.Fragment,null,m?I.createElement(a,{styles:mD(i)}):null,p?I.createElement(YE,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function vD(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}var yD=OE(kE,_D),bD=I.forwardRef(function(e,t){return I.createElement(jE,fE({},e,{ref:t,sideCar:yD}))});bD.classNames=jE.classNames;var xD=function(e){return typeof document>`u`?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},SD=new WeakMap,CD=new WeakMap,wD={},TD=0,ED=function(e){return e&&(e.host||ED(e.parentNode))},DD=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=ED(t);return n&&e.contains(n)?n:(console.error(`aria-hidden`,t,`in not contained inside`,e,`. Doing nothing`),null)}).filter(function(e){return!!e})},OD=function(e,t,n,r){var i=DD(t,Array.isArray(e)?e:[e]);wD[n]||(wD[n]=new WeakMap);var a=wD[n],o=[],s=new Set,c=new Set(i),l=function(e){!e||s.has(e)||(s.add(e),l(e.parentNode))};i.forEach(l);var u=function(e){!e||c.has(e)||Array.prototype.forEach.call(e.children,function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),i=t!==null&&t!==`false`,c=(SD.get(e)||0)+1,l=(a.get(e)||0)+1;SD.set(e,c),a.set(e,l),o.push(e),c===1&&i&&CD.set(e,!0),l===1&&e.setAttribute(n,`true`),i||e.setAttribute(r,`true`)}catch(t){console.error(`aria-hidden: cannot operate on `,e,t)}})};return u(t),s.clear(),TD++,function(){o.forEach(function(e){var t=SD.get(e)-1,i=a.get(e)-1;SD.set(e,t),a.set(e,i),t||(CD.has(e)||e.removeAttribute(r),CD.delete(e)),i||e.removeAttribute(n)}),TD--,TD||(SD=new WeakMap,SD=new WeakMap,CD=new WeakMap,wD={})}},kD=function(e,t,n){n===void 0&&(n=`data-aria-hidden`);var r=Array.from(Array.isArray(e)?e:[e]),i=t||xD(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll(`[aria-live], script`))),OD(r,i,n,`aria-hidden`)):function(){return null}},AD=Object.defineProperty,jD=(e,t)=>AD(e,`name`,{value:t,configurable:!0}),MD=`Dialog`,[ND,PD]=Uw(MD),[FD,ID]=ND(MD),LD=jD(e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!0}=e,s=I.useRef(null),c=I.useRef(null),[l,u]=aT({prop:r,defaultProp:i??!1,onChange:a,caller:MD}),[d,f]=I.useState(0),[p,m]=I.useState(0);return(0,L.jsx)(FD,{scope:t,triggerRef:s,contentRef:c,contentId:Xw(),titleId:Xw(),descriptionId:Xw(),titlePresent:d>0,descriptionPresent:p>0,setTitleCount:f,setDescriptionCount:m,open:l,onOpenChange:u,onOpenToggle:I.useCallback(()=>u(e=>!e),[u]),modal:o,children:n})},`Dialog`),RD=`DialogPortal`,[zD,BD]=ND(RD,{forceMount:void 0}),VD=jD(e=>{let{__scopeDialog:t,forceMount:n,children:r,container:i}=e,a=ID(RD,t);return(0,L.jsx)(zD,{scope:t,forceMount:n,children:I.Children.map(r,e=>(0,L.jsx)($T,{present:n||a.open,children:(0,L.jsx)(YT,{asChild:!0,container:i,children:e})}))})},`DialogPortal`),HD=`DialogOverlay`,UD=I.forwardRef(jD(function(e,t){let n=BD(HD,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=ID(HD,e.__scopeDialog);return a.modal?(0,L.jsx)($T,{present:r||a.open,children:(0,L.jsx)(GD,{...i,ref:t})}):null},`DialogOverlay`)),WD=XC(`DialogOverlay.RemoveScroll`),GD=I.forwardRef(jD(function(e,t){let{__scopeDialog:n,...r}=e,i=ID(HD,n),a=qC(t,TT());return(0,L.jsx)(bD,{as:WD,allowPinchZoom:!0,shards:[i.contentRef],children:(0,L.jsx)(fT.div,{"data-state":rO(i.open),...r,ref:a,style:{pointerEvents:`auto`,...r.style}})})},`DialogOverlayImpl`)),KD=`DialogContent`,qD=I.forwardRef(jD(function(e,t){let n=BD(KD,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=ID(KD,e.__scopeDialog);return(0,L.jsx)($T,{present:r||a.open,children:a.modal?(0,L.jsx)(JD,{...i,ref:t}):(0,L.jsx)(YD,{...i,ref:t})})},`DialogContent`)),JD=I.forwardRef(jD(function(e,t){let n=ID(KD,e.__scopeDialog),r=I.useRef(null),i=qC(t,n.contentRef,r);return I.useEffect(()=>{let e=r.current;if(e)return kD(e)},[]),(0,L.jsx)(XD,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,onCloseAutoFocus:Fw(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:Fw(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()}),onFocusOutside:Fw(e.onFocusOutside,e=>e.preventDefault())})},`DialogContentModal`)),YD=I.forwardRef(jD(function(e,t){let n=ID(KD,e.__scopeDialog),r=I.useRef(!1),i=I.useRef(!1);return(0,L.jsx)(XD,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})},`DialogContentNonModal`)),XD=I.forwardRef(jD(function(e,t){let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,...o}=e,s=ID(KD,n);return uE(),(0,L.jsx)(L.Fragment,{children:(0,L.jsx)(IT,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,L.jsx)(wT,{role:`dialog`,id:s.contentId,"aria-describedby":s.descriptionPresent?s.descriptionId:void 0,"aria-labelledby":s.titlePresent?s.titleId:void 0,"data-state":rO(s.open),...o,ref:t,deferPointerDownOutside:!0,onDismiss:()=>s.onOpenChange(!1)})})})},`DialogContentImpl`)),ZD=`DialogTitle`,QD=I.forwardRef(jD(function(e,t){let{__scopeDialog:n,...r}=e,i=ID(ZD,n),{setTitleCount:a}=i;return Gw(()=>(a(e=>e+1),()=>a(e=>e-1)),[a]),(0,L.jsx)(fT.h2,{id:i.titleId,...r,ref:t})},`DialogTitle`)),$D=`DialogDescription`,eO=I.forwardRef(jD(function(e,t){let{__scopeDialog:n,...r}=e,i=ID($D,n),{setDescriptionCount:a}=i;return Gw(()=>(a(e=>e+1),()=>a(e=>e-1)),[a]),(0,L.jsx)(fT.p,{id:i.descriptionId,...r,ref:t})},`DialogDescription`)),tO=`DialogClose`,nO=I.forwardRef(jD(function(e,t){let{__scopeDialog:n,...r}=e,i=ID(tO,n);return(0,L.jsx)(fT.button,{type:`button`,...r,ref:t,onClick:Fw(e.onClick,()=>i.onOpenChange(!1))})},`DialogClose`));function rO(e){return e?`open`:`closed`}jD(rO,`getState`);function iO({brand:e,visual:t,auth:n,mobileAuth:r,footer:i,className:a,...o}){return(0,L.jsxs)(`section`,{className:q(`homepage-entry`,a),...o,children:[(0,L.jsxs)(`div`,{className:`homepage-entry-desktop`,children:[(0,L.jsxs)(`section`,{className:`homepage-entry-visual-column`,"aria-label":`Tutti product preview`,children:[(0,L.jsx)(`div`,{className:`homepage-entry-brand`,children:e}),(0,L.jsx)(`div`,{className:`homepage-entry-visual`,children:t})]}),(0,L.jsxs)(`aside`,{className:`homepage-entry-auth-rail`,"aria-label":`Sign in to Tutti`,children:[(0,L.jsx)(`div`,{className:`homepage-entry-auth-content`,children:n}),i===void 0?null:(0,L.jsx)(`div`,{className:`homepage-entry-auth-footnote`,children:i})]})]}),(0,L.jsxs)(`section`,{className:`homepage-entry-mobile`,"aria-label":`Sign in to Tutti`,children:[(0,L.jsx)(`div`,{className:`product-appbar`,children:e}),(0,L.jsx)(`div`,{className:`auth-shell`,children:r}),i===void 0?null:(0,L.jsx)(`div`,{className:`homepage-entry-mobile-footnote`,children:i})]})]})}function aO({className:e,...t}){return(0,L.jsx)(`p`,{className:q(`product-entry-footnote`,e),...t})}function oO({title:e,description:t,children:n,action:r,feedback:i,secondaryAction:a,className:o,...s}){return(0,L.jsxs)(`form`,{className:q(`product-entry-auth-form`,o),...s,children:[(0,L.jsxs)(`header`,{className:`product-entry-auth-header`,children:[(0,L.jsx)(`h1`,{children:e}),(0,L.jsx)(`p`,{children:t})]}),(0,L.jsx)(`div`,{className:`product-entry-auth-body`,children:n}),a===void 0?null:(0,L.jsx)(`div`,{className:`product-entry-auth-secondary`,children:a}),i===void 0?null:(0,L.jsx)(`div`,{className:`product-entry-auth-feedback`,children:i}),(0,L.jsx)(`footer`,{className:`product-entry-auth-footer`,children:r})]})}var sO=40.1,cO=sO+.6,lO={openingFadeEnd:1.05,chatEnd:7.45,scratchpadPanEnd:8.8,scratchpadEnd:17.8,runCursorStart:17.95,runCursorArrive:18.65,runClickStart:18.67,runEnd:18.9,executionPrepareEnd:20.35,executionImplementEnd:24.55,executionValidateEnd:26.35,executionComplete:28.15,executionEnd:28.95,fullWorkspace:30.95,artifactLive:30.55,artifactClick:32.65,artifactScroll:36.1,artifactScrollEnd:39.55,finalHoldEnd:sO,fadeEnd:cO},uO={centerX:.325,centerY:.25,scale:1.62},dO={centerX:.325,centerY:.47,scale:1.64},fO={centerX:.855,centerY:.23,scale:1.72},pO={centerX:.855,centerY:.35,scale:1.72},mO={centerX:.855,centerY:.79,scale:1.72},hO={centerX:.5,centerY:.5,scale:1},gO=[{start:1.35,end:5.95,from:uO,to:dO,linearPosition:!0},{start:7.45,end:8.8,from:dO,to:fO},{start:8.8,end:14.3,from:fO,to:pO,linearPosition:!0},{start:14.6,end:17.8,from:pO,to:mO},{start:lO.executionEnd,end:lO.fullWorkspace,from:mO,to:hO}];function _O(e,t=0,n=1){return Math.min(n,Math.max(t,e))}function vO(e){return 1-(1-_O(e))**3}function yO(e){let t=_O(e);return t<.5?4*t*t*t:1-(-2*t+2)**3/2}function bO(e){let t=_O(e);return t<.5?16*t**5:1-(-2*t+2)**5/2}function xO(e,t,n,r=vO){let i=Math.max(.001,n-t);return r(_O((e-t)/i))}function SO(e,t,n){return e+(t-e)*n}function CO(e,t){let n=_O((t-e.start)/Math.max(.001,e.end-e.start)),r=e.linearPosition?n:bO(n);return{centerX:SO(e.from.centerX,e.to.centerX,r),centerY:SO(e.from.centerY,e.to.centerY,r),scale:SO(e.from.scale,e.to.scale,e.linearPosition?n:yO(n))}}function wO(e){if(e<gO[0].start)return uO;for(let t of gO)if(e<=t.end)return e<t.start?t.from:CO(t,e);return hO}function TO(e){return e>=lO.executionComplete?{id:`complete`,label:`Task completed`}:e>=lO.executionValidateEnd?{id:`update`,label:`Synchronizing project`}:e>=lO.executionImplementEnd?{id:`validate`,label:`Validating result`}:e>=lO.executionPrepareEnd?{id:`implement`,label:`Implementing with Codex`}:{id:`prepare`,label:`Preparing workspace`}}function EO(e){return xO(e,lO.artifactScroll,lO.artifactScrollEnd,yO)}function DO(e){return 1-xO(e,sO,cO,yO)}var OO=1500,kO=1e3,AO=2.5,jO=`(min-width: 980px) and (prefers-reduced-motion: no-preference)`,MO=(0,I.lazy)(async()=>({default:(await lS(()=>import(`./homepage-motion-scene-Ctt45F9o.js`),[])).HomepageMotionScene}));function NO(e){let[t,n]=(0,I.useState)(()=>typeof window>`u`||typeof window.matchMedia!=`function`?!0:window.matchMedia(e).matches);return(0,I.useEffect)(()=>{if(typeof window.matchMedia!=`function`)return;let t=window.matchMedia(e),r=()=>n(t.matches);return r(),t.addEventListener(`change`,r),()=>t.removeEventListener(`change`,r)},[e]),t}function PO(){return NO(jO)}function FO(e,t){let[n,r]=(0,I.useState)({elapsed:0,cycle:0}),i=(0,I.useRef)(null),a=cO+t;return(0,I.useEffect)(()=>{if(!e){i.current=null;return}let t=0,n=e=>{let o=i.current??e;i.current=e;let s=Math.min(.1,(e-o)/1e3);r(e=>{let t=e.elapsed+s;return t<a?{...e,elapsed:t}:{elapsed:t%a,cycle:e.cycle+1}}),t=window.requestAnimationFrame(n)};return t=window.requestAnimationFrame(n),()=>window.cancelAnimationFrame(t)},[a,e]),{cycle:n.cycle,time:Math.min(n.elapsed,cO)}}function IO(e,t){let[n,r]=(0,I.useState)(0),i=(0,I.useRef)(t),a=(0,I.useRef)(!1);return i.current=t,(0,I.useEffect)(()=>{if(r(0),a.current=!1,!e)return;let t=0,n=null,o=e=>{n??=e;let s=Math.min((e-n)/1e3,cO);if(r(s),s>=cO){a.current||(a.current=!0,i.current());return}t=window.requestAnimationFrame(o)};return t=window.requestAnimationFrame(o),()=>window.cancelAnimationFrame(t)},[e]),n}function LO(e){let t=(0,I.useRef)(null),[n,r]=(0,I.useState)(0);return(0,I.useLayoutEffect)(()=>{if(!e)return;let n=t.current;if(n===null)return;let i=()=>{let e=n.getBoundingClientRect(),t=Math.min(e.width/OO,e.height/kO);r(Number.isFinite(t)?t:0)};if(i(),typeof ResizeObserver>`u`)return;let a=new ResizeObserver(i);return a.observe(n),()=>a.disconnect()},[e]),{frameRef:t,masterScale:n}}function RO({assets:e,enabled:t,sceneKey:n,time:r,className:i,...a}){let{frameRef:o,masterScale:s}=LO(t);return t?(0,L.jsx)(`div`,{ref:o,className:q(`homepage-motion-frame`,i),...a,children:(0,L.jsx)(`div`,{className:`homepage-motion-master`,style:{"--homepage-motion-scale":s},children:(0,L.jsx)(I.Suspense,{fallback:null,children:(0,L.jsx)(MO,{time:r,assets:e},n)})})}):null}function zO({assets:e,idleSeconds:t=AO,className:n,...r}){let i=PO(),a=FO(i,Math.max(0,t));return(0,L.jsx)(RO,{...r,assets:e,enabled:i,sceneKey:a.cycle,time:a.time,className:n})}function BO({assets:e,onComplete:t,className:n,...r}){let i=PO(),a=IO(i,(0,I.useCallback)(()=>t(),[t]));return(0,L.jsx)(RO,{...r,assets:e,enabled:i,time:a,className:n})}function VO({onOpen:e,onDismiss:t,className:n,...r}){return(0,L.jsxs)(`aside`,{className:q(`product-tour-pill`,n),"aria-label":`Product tour`,...r,children:[(0,L.jsxs)(J,{type:`button`,className:`product-tour-pill-open`,onClick:e,children:[(0,L.jsx)(`span`,{className:`product-tour-pill-icon`,"aria-hidden":`true`,children:(0,L.jsx)(Yb,{})}),(0,L.jsxs)(`span`,{className:`product-tour-pill-copy`,children:[(0,L.jsx)(`strong`,{children:`New to Tutti?`}),(0,L.jsx)(`span`,{children:`Take a tour`})]})]}),(0,L.jsx)(fw,{type:`button`,className:`product-tour-pill-dismiss`,label:`Dismiss product tour`,icon:(0,L.jsx)(qx,{"aria-hidden":`true`}),onClick:t})]})}function HO({assets:e,open:t,onOpenChange:n}){let r=PO();return(0,I.useEffect)(()=>{t&&!r&&n(!1)},[r,n,t]),r?(0,L.jsx)(LD,{open:t,onOpenChange:n,children:(0,L.jsxs)(VD,{children:[(0,L.jsx)(UD,{className:`product-tour-dialog-overlay`}),(0,L.jsxs)(qD,{className:`product-tour-dialog-content`,onInteractOutside:e=>e.preventDefault(),onPointerDownOutside:e=>e.preventDefault(),children:[(0,L.jsx)(QD,{className:`product-tour-dialog-title`,children:`Welcome to Tutti`}),(0,L.jsx)(nO,{asChild:!0,children:(0,L.jsx)(fw,{type:`button`,className:`product-tour-dialog-close`,label:`Close product tour`,icon:(0,L.jsx)(qx,{"aria-hidden":`true`})})}),t?(0,L.jsx)(BO,{className:`product-tour-dialog-motion`,assets:e,onComplete:()=>n(!1)}):null]})]})}):null}function UO({status:e,className:t,...n}){let r=e===`online`?`Online`:e===`connecting`?`Connecting`:e===`stopped`?`Stopped`:e===`offline`?`Offline`:`Status unknown`,i=e===`online`?(0,L.jsx)(Ox,{"aria-hidden":`true`}):e===`connecting`?(0,L.jsx)(kx,{"aria-hidden":`true`}):e===`stopped`?(0,L.jsx)(Ex,{"aria-hidden":`true`}):e===`offline`?(0,L.jsx)(Gx,{"aria-hidden":`true`}):(0,L.jsx)(Yb,{"aria-hidden":`true`});return(0,L.jsx)(`span`,{className:q(`project-list-status-icon`,`is-${e}`,t),"aria-label":r,role:`img`,...n,children:i})}function WO(e){let t=(0,I.useId)();return(0,L.jsxs)(`fieldset`,{className:`product-choice-cards`,disabled:e.disabled,children:[(0,L.jsx)(`legend`,{children:e.legend}),(0,L.jsx)(`div`,{children:e.options.map(n=>(0,L.jsxs)(`label`,{className:q(`product-choice-card`,n.value===e.value&&`is-selected`),children:[(0,L.jsx)(`input`,{type:`radio`,name:t,value:n.value,checked:n.value===e.value,disabled:n.disabled,onChange:()=>e.onValueChange(n.value)}),(0,L.jsx)(`span`,{className:`product-choice-icon`,"aria-hidden":`true`,children:n.icon}),(0,L.jsx)(`strong`,{children:n.title}),(0,L.jsx)(`small`,{children:n.description}),n.note===void 0?null:(0,L.jsx)(`small`,{className:`product-choice-note`,"aria-live":`polite`,children:n.note})]},n.value))})]})}function GO(e){let t=[{value:`managed`,title:`Tutti credit`,description:`Use Tutti credit for this project`,icon:e.tuttiLogo,note:e.creditNote},{value:`byok`,title:`Custom endpoint`,description:`Use your own API key and model`,icon:e.customIcon,disabled:e.customDisabled}];return(0,L.jsx)(WO,{legend:`Model access`,value:e.value,onValueChange:e.onValueChange,disabled:e.disabled,options:t})}function KO(e){return(0,L.jsx)(WO,{legend:`Where will this project be used?`,value:e.value,onValueChange:e.onValueChange,disabled:e.disabled,options:[{value:`standalone`,title:`Tutti Workspace`,description:`Collaborate in Tutti's own workspace`,icon:e.tuttiLogo},{value:`feishu`,title:`Feishu`,description:`Collaborate in your Feishu group`,icon:e.feishuIcon}]})}function qO({className:e,...t}){return(0,L.jsx)(`div`,{className:q(`product-card-body`,e),...t})}function JO({items:e}){return(0,L.jsx)(`dl`,{className:`product-entry-summary`,children:e.map(e=>(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:e.label}),(0,L.jsx)(`dd`,{className:e.mono?`is-mono`:void 0,children:e.value})]},e.label))})}function YO({items:e}){return(0,L.jsx)(`dl`,{className:`product-metric-list`,children:e.map(e=>(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:e.label}),(0,L.jsx)(`dd`,{children:e.value})]},e.label))})}function XO({title:e,description:t,children:n,action:r}){return(0,L.jsxs)(`div`,{className:`product-access-row`,children:[(0,L.jsxs)(`div`,{className:`product-access-identity`,children:[(0,L.jsx)(`strong`,{children:e}),t===void 0?null:(0,L.jsx)(`small`,{children:t}),n]}),r===void 0?null:(0,L.jsx)(`div`,{className:`product-access-action`,children:r})]})}function ZO(e){return(0,L.jsxs)(`div`,{className:`product-account-actions`,"aria-label":`Account actions`,children:[(0,L.jsx)(J,{type:`button`,disabled:e.disabled,onClick:e.onCredit,"aria-label":`View credits`,children:e.credit}),(0,L.jsxs)(J,{type:`button`,disabled:e.disabled,onClick:e.onAccount,"aria-label":`Account settings`,children:[(0,L.jsx)(`span`,{className:`product-account-name`,children:e.name}),(0,L.jsx)(Kb,{"aria-hidden":`true`})]})]})}function QO({brand:e,account:t,actions:n,toolbar:r,children:i,rail:a}){let o=(0,I.useId)(),s=r.connected&&r.local;return(0,L.jsxs)(`div`,{className:`project-studio`,children:[(0,L.jsxs)(`header`,{className:`studio-header`,children:[e,(0,L.jsx)(`div`,{className:`studio-account`,children:t})]}),(0,L.jsxs)(`main`,{className:`studio-main`,"aria-label":`Project Center`,children:[(0,L.jsxs)(`header`,{className:`studio-heading`,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`p`,{className:`studio-eyebrow`,children:`One place to begin`}),(0,L.jsxs)(`h1`,{children:[`Projects`,(0,L.jsx)(`span`,{children:`.`})]})]}),(0,L.jsx)(`div`,{className:`studio-heading-actions`,children:n})]}),(0,L.jsxs)(`div`,{className:`studio-grid${s?` is-computer-scope`:``}`,children:[(0,L.jsxs)(`section`,{className:`studio-projects`,"aria-label":`Projects`,children:[(0,L.jsx)($O,{...r,panelId:o}),(0,L.jsx)(`div`,{id:o,role:r.connected?`tabpanel`:`region`,"aria-labelledby":r.connected?`${o}-${s?`computer`:`account`}`:void 0,"aria-label":r.connected?void 0:`Your projects`,tabIndex:r.connected?0:void 0,className:`studio-project-panel`,children:i})]}),a]})]})]})}function $O({local:e,onLocalChange:t,search:n,onSearchChange:r,connected:i,panelId:a}){return(0,L.jsxs)(`div`,{className:`studio-toolbar`,children:[i?(0,L.jsx)(`div`,{className:`studio-filters`,role:`tablist`,"aria-label":`Project scope`,onKeyDown:n=>{let r=n.key===`Home`?!1:n.key===`End`?!0:n.key===`ArrowLeft`||n.key===`ArrowRight`?!e:null;r!==null&&(n.preventDefault(),t(r),n.currentTarget.querySelectorAll(`[role="tab"]`)[Number(r)]?.focus())},children:[!1,!0].map(n=>(0,L.jsxs)(`button`,{type:`button`,role:`tab`,id:`${a}-${n?`computer`:`account`}`,"aria-controls":a,"aria-selected":e===n,tabIndex:e===n?0:-1,onClick:()=>t(n),children:[n?(0,L.jsx)(xx,{"aria-hidden":`true`}):(0,L.jsx)(ox,{"aria-hidden":`true`}),n?`This computer`:`Your projects`]},String(n)))}):null,(0,L.jsxs)(`label`,{className:`studio-search`,children:[(0,L.jsx)(Nx,{"aria-hidden":`true`}),(0,L.jsx)(`input`,{type:`search`,"aria-label":`Find a project`,placeholder:`Find a project`,value:n,onChange:e=>r(e.target.value)})]})]})}function ek({count:e,open:t,onOpenChange:n,children:r}){let i=(0,I.useId)();return(0,L.jsxs)(`div`,{className:`studio-unavailable`,children:[(0,L.jsxs)(`button`,{type:`button`,"aria-expanded":t,"aria-controls":i,onClick:()=>n(!t),children:[(0,L.jsx)(Kb,{"aria-hidden":`true`}),`Currently unavailable `,(0,L.jsxs)(`span`,{children:[`(`,e,`)`]})]}),(0,L.jsx)(`div`,{id:i,children:t?r:null})]})}function tk({children:e}){return(0,L.jsx)(`div`,{className:`studio-computer-controls`,children:e})}function nk({title:e,status:t,meta:n,local:r,selected:i,onSelect:a,action:o}){return(0,L.jsxs)(`div`,{className:`studio-project-row${i?` is-selected`:``}`,children:[(0,L.jsxs)(`button`,{type:`button`,className:`studio-project-select`,onClick:a,"aria-expanded":i,"aria-label":`Details for ${e}`,children:[(0,L.jsx)(`span`,{className:`studio-monogram`,"aria-hidden":`true`,children:Array.from(e)[0]}),(0,L.jsxs)(`span`,{className:`studio-project-copy`,children:[(0,L.jsx)(`strong`,{children:e}),(0,L.jsxs)(`span`,{children:[n,r?(0,L.jsxs)(`span`,{className:`studio-local-label`,children:[(0,L.jsx)(xx,{"aria-hidden":`true`}),`This computer`]}):null]})]})]}),(0,L.jsx)(`span`,{className:`studio-project-status`,children:(0,L.jsx)(UO,{status:t})}),(0,L.jsx)(`div`,{className:`studio-row-actions`,children:o})]})}function rk({title:e,children:t,actions:n}){return(0,L.jsxs)(`section`,{className:`studio-details`,"aria-label":`Selected project: ${e}`,children:[(0,L.jsx)(`h2`,{children:e}),(0,L.jsx)(`div`,{className:`studio-detail-copy`,children:t}),(0,L.jsx)(`div`,{className:`studio-detail-actions`,children:n})]})}function ik({state:e,version:t,children:n}){return(0,L.jsxs)(`aside`,{className:`studio-computer`,"aria-label":`This computer`,children:[(0,L.jsxs)(`header`,{children:[(0,L.jsx)(`h2`,{children:`This computer`}),(0,L.jsx)(`span`,{className:`studio-connection ${e===`connected`?`is-connected`:``}`,children:e===`connected`?`Connected`:e===`lost`?`Connection lost`:`Not connected`})]}),(0,L.jsx)(`div`,{className:`studio-computer-drawing`,"aria-hidden":`true`,children:(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`span`,{children:`> tutti`}),(0,L.jsx)(`small`,{children:e===`connected`?`Connected to your projects.`:`Ready to connect.`}),(0,L.jsx)(`span`,{children:`_`})]})}),(0,L.jsx)(`h3`,{children:e===`connected`?(0,L.jsxs)(L.Fragment,{children:[`Your computer.`,(0,L.jsx)(`br`,{}),(0,L.jsx)(`em`,{children:`Your workspace.`})]}):(0,L.jsxs)(L.Fragment,{children:[`Bring your`,(0,L.jsx)(`br`,{}),(0,L.jsx)(`em`,{children:`projects closer.`})]})}),(0,L.jsx)(`p`,{children:e===`connected`?`Manage local projects without leaving this page.`:e===`lost`?`Reconnect to manage local projects. Your hosts may still be running.`:`Connect Tutti on this computer to manage your local projects here.`}),(0,L.jsx)(`div`,{className:`studio-computer-actions`,children:n}),t?(0,L.jsxs)(`small`,{className:`studio-version`,children:[`Tutti `,t]}):null]})}function ak({asChild:e=!1,className:t,...n}){return(0,L.jsx)(e?ZC:`section`,{className:q(`product-card`,t),...n})}function ok({children:e,className:t,...n}){return(0,L.jsx)(`div`,{className:q(`product-card-header`,t),...n,children:e})}function sk({children:e,className:t,...n}){return(0,L.jsx)(`div`,{className:q(`product-card-body`,t),...n,children:e})}function ck({children:e,className:t,...n}){return(0,L.jsx)(`div`,{className:q(`product-card-feedback`,t),...n,children:e})}function lk({children:e,className:t,...n}){return(0,L.jsx)(`div`,{className:q(`product-card-footer`,t),...n,children:e})}function uk({title:e,description:t,children:n,action:r,feedback:i,secondaryAction:a,size:o=`standard`,className:s,...c}){return(0,L.jsx)(ak,{className:q(`entry-card auth-card`,o===`wide`?`is-wide`:void 0,s),asChild:!0,children:(0,L.jsxs)(`form`,{...c,children:[(0,L.jsx)(`section`,{className:`auth-card-intro`,children:(0,L.jsxs)(ok,{className:`auth-card-header`,children:[(0,L.jsx)(`h1`,{children:e}),(0,L.jsx)(`p`,{children:t})]})}),(0,L.jsx)(`section`,{className:`auth-card-action`,children:(0,L.jsxs)(`div`,{className:`auth-card-action-content`,children:[(0,L.jsx)(sk,{children:n}),a===void 0?null:(0,L.jsx)(`div`,{className:`auth-card-secondary`,children:a}),i===void 0?null:(0,L.jsx)(ck,{children:i}),(0,L.jsx)(lk,{children:r})]})})]})})}function dk({projectName:e,hostLabel:t,hostOnline:n=!1,members:r,invitedBy:i,className:a,...o}){return(0,L.jsxs)(`section`,{className:q(`invite-summary`,a),"aria-label":`Project invitation`,...o,children:[(0,L.jsxs)(`div`,{className:`invite-project`,children:[(0,L.jsx)(`h2`,{children:e}),(0,L.jsxs)(`p`,{className:q(`project-line`,n?`is-online`:`is-offline`),children:[(0,L.jsx)(`span`,{className:`status-dot`,"aria-hidden":`true`}),t]})]}),r===void 0?null:(0,L.jsx)(`div`,{className:`invite-members`,children:r}),i===void 0?null:(0,L.jsxs)(`div`,{className:`invite-meta`,children:[(0,L.jsx)(`span`,{children:`Invited by`}),(0,L.jsx)(`strong`,{children:i})]})]})}function fk({label:e,value:t,action:n,className:r,...i}){return(0,L.jsxs)(`div`,{className:q(`account-row`,r),...i,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`span`,{children:e}),(0,L.jsx)(`strong`,{children:t})]}),n]})}function pk({title:e,accountName:t,accountAction:n,children:r,className:i,...a}){return(0,L.jsxs)(ak,{className:q(`project-center-card`,i),...a,children:[(0,L.jsxs)(`header`,{className:`project-center-card-header`,children:[(0,L.jsx)(`h1`,{children:e}),t===void 0&&n===void 0?null:(0,L.jsxs)(`div`,{className:`project-center-account`,"aria-label":t===void 0?`Page actions`:`Signed in user`,children:[t===void 0?null:(0,L.jsx)(`span`,{className:`project-center-account-name`,children:t}),n]})]}),r]})}function mk({action:e,description:t,descriptionId:n,disabledTrigger:r=!1,className:i,...a}){return(0,L.jsx)(`div`,{className:q(`project-center-header-action`,i),...a,children:t===void 0?e:(0,L.jsx)(_w,{content:t,disabledTrigger:r,side:`bottom`,...n===void 0?{}:{contentId:n},children:e})})}function hk({items:e,className:t,...n}){return(0,L.jsx)(`nav`,{className:q(`project-scope-navigation`,t),"aria-label":`Project scope`,...n,children:(0,L.jsx)(`ul`,{children:e.map(e=>(0,L.jsx)(`li`,{children:(0,L.jsx)(`a`,{href:e.href,"aria-current":e.current===!0?`page`:void 0,...e.current!==!0&&e.onClick===void 0?{}:{onClick:t=>{e.current===!0&&t.preventDefault(),e.onClick?.(t)}},children:e.label})},e.id))})})}function gk({items:e,action:t,className:n,...r}){return(0,L.jsxs)(`section`,{className:q(`project-scope-toolbar`,n),...r,children:[(0,L.jsx)(hk,{items:e}),(0,L.jsx)(`div`,{className:`project-scope-toolbar-action`,children:t})]})}function _k({command:e,terminalLabel:t=`Install and start in your terminal`,copyLabel:n=`Copy`,copyAriaLabel:r=`Copy launch command`,commandAriaLabel:i=`Launch command`,onCopyCommand:a,className:o,...s}){return(0,L.jsxs)(`section`,{className:q(`project-launch-terminal`,o),...s,children:[(0,L.jsxs)(`div`,{className:`project-launch-terminal-bar`,children:[(0,L.jsx)(`span`,{children:t}),a===void 0?null:(0,L.jsxs)(J,{className:`project-launch-copy-button`,type:`button`,"aria-label":r,onClick:()=>a(e),children:[(0,L.jsx)(ex,{"aria-hidden":`true`}),n]})]}),(0,L.jsx)(`pre`,{className:`project-launch-command-block`,"aria-label":i,children:(0,L.jsx)(`code`,{children:(0,L.jsxs)(`span`,{className:`project-launch-command-line`,children:[(0,L.jsx)(`span`,{className:`project-launch-command-prompt`,"aria-hidden":`true`,children:`>`}),(0,L.jsx)(`span`,{children:e})]})})})]})}function vk({open:e,onOpenChange:t,status:n=`opening`,description:r,command:i,onCopyCommand:a,retryHref:o,onRetry:s}){return(0,L.jsx)(Ck,{open:e,onOpenChange:t,title:`Projects on this computer`,description:n===`opening`?`Opening Tutti…`:`Tutti did not open in this tab.`,className:`project-local-handoff-dialog-card`,children:(0,L.jsxs)(`div`,{className:`project-local-handoff-dialog-body`,children:[(0,L.jsxs)(`div`,{className:`project-local-handoff-intro`,children:[(0,L.jsx)(`span`,{className:`project-local-handoff-icon`,"aria-hidden":`true`,children:(0,L.jsx)(Hx,{})}),(0,L.jsx)(`p`,{children:r})]}),(0,L.jsx)(_k,{command:i,...a===void 0?{}:{onCopyCommand:a}}),n!==`failed`||o===void 0?null:(0,L.jsx)(`div`,{className:`project-local-handoff-actions`,children:(0,L.jsx)(pw,{asChild:!0,children:(0,L.jsxs)(`a`,{href:o,...s===void 0?{}:{onClick:s},children:[(0,L.jsx)(kx,{"aria-hidden":`true`}),`Retry`]})})})]})})}function yk({open:e,onOpenChange:t,projectName:n,state:r,command:i,unavailableMessage:a,onCopyCommand:o}){let s=r===`loading`?{icon:(0,L.jsx)(kx,{"aria-hidden":`true`}),message:`Reading the connection state from the running Host…`}:r===`pairing_required`?{icon:(0,L.jsx)(Hx,{"aria-hidden":`true`}),message:`In the target Feishu group, send this command once.`}:r===`connected`?{icon:(0,L.jsx)(Ox,{"aria-hidden":`true`}),message:`This project is connected to its Feishu project group.`}:r===`not_recoverable`?{icon:(0,L.jsx)(Yb,{"aria-hidden":`true`}),message:`The previous pairing command is no longer available. Stop and Resume this project to issue a new one.`}:r===`account_handoff_required`?{icon:(0,L.jsx)(Yb,{"aria-hidden":`true`}),message:`This Host needs a fresh Tutti account handoff. Sign in to Local Console again, then Stop and Resume the project.`}:{icon:(0,L.jsx)(Yb,{"aria-hidden":`true`}),message:a??`The Feishu connection state is temporarily unavailable. Try again from Connect.`};return(0,L.jsx)(Ck,{open:e,onOpenChange:t,title:`Feishu connection`,description:`Connect ${n} to a Feishu project group.`,className:`project-local-handoff-dialog-card`,children:(0,L.jsxs)(`div`,{className:`project-local-handoff-dialog-body`,children:[(0,L.jsxs)(`div`,{className:`project-local-handoff-intro`,"aria-live":`polite`,children:[(0,L.jsx)(`span`,{className:`project-local-handoff-icon`,"aria-hidden":`true`,children:s.icon}),(0,L.jsx)(`p`,{children:s.message})]}),r===`pairing_required`&&i!==void 0?(0,L.jsx)(_k,{command:i,terminalLabel:`Send in the target Feishu group`,copyAriaLabel:`Copy connection command`,commandAriaLabel:`Connection command`,...o===void 0?{}:{onCopyCommand:o}}):null]})})}function bk({children:e,className:t,...n}){return(0,L.jsx)(`ul`,{className:q(`project-list`,t),"aria-label":`Recent projects`,...n,children:e})}function xk({children:e,className:t,...n}){return(0,L.jsx)(`section`,{className:q(`project-list-surface`,t),...n,children:(0,L.jsx)(bk,{children:e})})}function Sk({children:e,className:t,...n}){return(0,L.jsx)(`li`,{className:q(`project-list-item project-list-state-row`,t),...n,children:e})}function Ck({open:e,onOpenChange:t,title:n,description:r,headerAction:i,children:a,closeDisabled:o=!1,explicitCloseOnly:s=!1,className:c}){return(0,L.jsxs)(LD,{open:e,onOpenChange:e=>{(e||!o)&&t(e)},children:[(0,L.jsx)(UD,{className:`product-entry-dialog-overlay`}),(0,L.jsx)(qD,{asChild:!0,...r===void 0?{"aria-describedby":void 0}:{},onEscapeKeyDown:e=>{(o||s)&&e.preventDefault()},onInteractOutside:e=>{(o||s)&&e.preventDefault()},onPointerDownOutside:e=>{(o||s)&&e.preventDefault()},children:(0,L.jsxs)(ak,{className:q(`product-entry-dialog-card`,c),children:[(0,L.jsxs)(`header`,{className:`product-entry-dialog-header`,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(QD,{children:n}),r===void 0?null:(0,L.jsx)(eO,{children:r})]}),(0,L.jsxs)(`div`,{className:`product-entry-dialog-actions`,children:[i,(0,L.jsx)(nO,{asChild:!0,children:(0,L.jsx)(fw,{type:`button`,label:`Close`,icon:(0,L.jsx)(qx,{"aria-hidden":`true`}),disabled:o})})]})]}),a]})})]})}function wk({open:e,onOpenChange:t,inputLabel:n,placeholder:r,value:i,error:a,actionLabel:o=`Continue`,onValueChange:s,className:c,...l}){return(0,L.jsx)(Ck,{open:e,onOpenChange:t,title:`Join a project`,description:`Paste an invitation link or the full invitation message.`,className:`project-join-dialog-card`,children:(0,L.jsxs)(`form`,{className:q(`project-join-dialog-form`,c),...l,children:[(0,L.jsxs)(`div`,{className:`project-join-dialog-body`,children:[(0,L.jsx)(xw,{type:`text`,"aria-label":n,value:i,onChange:e=>s(e.target.value),autoFocus:!0,...r===void 0?{}:{placeholder:r}}),a==null?null:(0,L.jsx)(Ew,{children:a})]}),(0,L.jsx)(`footer`,{className:`project-join-dialog-actions`,children:(0,L.jsxs)(pw,{type:`submit`,disabled:i.trim()===``,children:[o,(0,L.jsx)(Vb,{"aria-hidden":`true`})]})})]})})}function Tk({open:e,onOpenChange:t,steps:n,currentStep:r,children:i,action:a,backAction:o,feedback:s,closeDisabled:c=!1,explicitCloseOnly:l=!1,className:u,...d}){return(0,L.jsxs)(Ck,{open:e,onOpenChange:t,title:`New project`,description:`Step ${r+1} of ${n.length}`,closeDisabled:c,explicitCloseOnly:l,className:`local-console-create-card`,children:[(0,L.jsx)(`ol`,{className:`local-console-create-steps`,"aria-label":`New project steps`,children:n.map((e,t)=>(0,L.jsxs)(`li`,{className:q(t===r?`is-current`:void 0,t<r?`is-complete`:void 0),"aria-current":t===r?`step`:void 0,children:[(0,L.jsx)(`span`,{"aria-hidden":`true`,children:t+1}),(0,L.jsx)(`small`,{children:e})]},e))}),(0,L.jsxs)(`form`,{className:q(`local-console-create-form`,u),...d,children:[(0,L.jsx)(`div`,{className:`local-console-create-body`,children:i}),s===void 0?null:(0,L.jsx)(`div`,{className:`local-console-create-feedback`,children:s}),(0,L.jsxs)(`footer`,{className:`local-console-create-actions`,children:[(0,L.jsx)(`div`,{children:o}),(0,L.jsx)(`div`,{children:a})]})]})]})}function Ek({children:e,className:t,...n}){return(0,L.jsx)(`div`,{className:q(`local-console-form-grid`,t),...n,children:e})}function Dk({children:e,className:t,...n}){return(0,L.jsx)(`div`,{className:q(`local-console-inline-actions`,t),...n,children:e})}function Ok({title:e,children:t}){return(0,L.jsxs)(`details`,{className:`local-console-field-group product-disclosure`,children:[(0,L.jsx)(`summary`,{children:e}),(0,L.jsx)(`div`,{className:`local-console-field-group-body`,children:t})]})}function kk({title:e,description:t,children:n,className:r,...i}){return(0,L.jsxs)(`section`,{className:q(`local-console-field-group`,r),...i,children:[(0,L.jsxs)(`header`,{children:[(0,L.jsx)(`strong`,{children:e}),t===void 0?null:(0,L.jsx)(`small`,{children:t})]}),(0,L.jsx)(`div`,{className:`local-console-field-group-body`,children:n})]})}function Ak({path:e,className:t,...n}){let r=Math.max(e.lastIndexOf(`/`),e.lastIndexOf(`\\`)),i=r>0&&r<e.length-1;return(0,L.jsx)(`span`,{className:q(`local-console-project-path`,t),title:e,...n,children:i?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`span`,{className:`local-console-project-path-prefix`,children:e.slice(0,r)}),(0,L.jsx)(`span`,{className:`local-console-project-path-separator`,children:e[r]}),(0,L.jsx)(`span`,{className:`local-console-project-path-name`,children:e.slice(r+1)})]}):(0,L.jsx)(`span`,{className:`local-console-project-path-name`,children:e})})}function jk({title:e,status:t,path:n,createdLabel:r,modelLabel:i,surfaceLabel:a,actions:o,className:s,...c}){return(0,L.jsx)(`li`,{className:q(`project-list-item`,`local-console-project-item`,s),...c,children:(0,L.jsxs)(`div`,{className:q(`local-console-project-row`,t===`stopped`?`is-inactive`:`is-active`),children:[(0,L.jsx)(UO,{status:t}),(0,L.jsxs)(`span`,{className:`project-list-identity`,children:[(0,L.jsx)(`span`,{className:`local-console-project-title`,children:(0,L.jsx)(`strong`,{children:e})}),i===void 0&&a===void 0?null:(0,L.jsxs)(`span`,{className:`local-console-project-signals`,children:[i===void 0?null:(0,L.jsx)(`small`,{className:`local-console-provider-model`,children:i}),a===void 0?null:(0,L.jsx)(`small`,{className:`local-console-project-surface`,children:a})]})]}),(0,L.jsxs)(`span`,{className:`local-console-project-metadata`,children:[(0,L.jsx)(`strong`,{className:`local-console-project-date`,children:r}),(0,L.jsx)(Ak,{path:n})]}),(0,L.jsx)(`span`,{className:`local-console-project-actions`,children:o})]})})}function Mk(e,t){let n=t||{};return(e[e.length-1]===``?[...e,``]:e).join((n.padRight?` `:``)+`,`+(n.padLeft===!1?``:` `)).trim()}var Nk=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Pk=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Fk={};function Ik(e,t){return((t||Fk).jsx?Pk:Nk).test(e)}var Lk=/[ \t\n\f\r]/g;function Rk(e){return typeof e==`object`?e.type===`text`?zk(e.value):!1:zk(e)}function zk(e){return e.replace(Lk,``)===``}var Bk=class{constructor(e,t,n){this.normal=t,this.property=e,n&&(this.space=n)}};Bk.prototype.normal={},Bk.prototype.property={},Bk.prototype.space=void 0;function Vk(e,t){let n={},r={};for(let t of e)Object.assign(n,t.property),Object.assign(r,t.normal);return new Bk(n,r,t)}function Hk(e){return e.toLowerCase()}var Uk=class{constructor(e,t){this.attribute=t,this.property=e}};Uk.prototype.attribute=``,Uk.prototype.booleanish=!1,Uk.prototype.boolean=!1,Uk.prototype.commaOrSpaceSeparated=!1,Uk.prototype.commaSeparated=!1,Uk.prototype.defined=!1,Uk.prototype.mustUseProperty=!1,Uk.prototype.number=!1,Uk.prototype.overloadedBoolean=!1,Uk.prototype.property=``,Uk.prototype.spaceSeparated=!1,Uk.prototype.space=void 0;var Wk=s({boolean:()=>Kk,booleanish:()=>qk,commaOrSpaceSeparated:()=>Zk,commaSeparated:()=>Xk,number:()=>Y,overloadedBoolean:()=>Jk,spaceSeparated:()=>Yk}),Gk=0,Kk=Qk(),qk=Qk(),Jk=Qk(),Y=Qk(),Yk=Qk(),Xk=Qk(),Zk=Qk();function Qk(){return 2**++Gk}var $k=Object.keys(Wk),eA=class extends Uk{constructor(e,t,n,r){let i=-1;if(super(e,t),tA(this,`space`,r),typeof n==`number`)for(;++i<$k.length;){let e=$k[i];tA(this,$k[i],(n&Wk[e])===Wk[e])}}};eA.prototype.defined=!0;function tA(e,t,n){n&&(e[t]=n)}function nA(e){let t={},n={};for(let[r,i]of Object.entries(e.properties)){let a=new eA(r,e.transform(e.attributes||{},r),i,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(a.mustUseProperty=!0),t[r]=a,n[Hk(r)]=r,n[Hk(a.attribute)]=r}return new Bk(t,n,e.space)}var rA=nA({properties:{ariaActiveDescendant:null,ariaAtomic:qk,ariaAutoComplete:null,ariaBusy:qk,ariaChecked:qk,ariaColCount:Y,ariaColIndex:Y,ariaColSpan:Y,ariaControls:Yk,ariaCurrent:null,ariaDescribedBy:Yk,ariaDetails:null,ariaDisabled:qk,ariaDropEffect:Yk,ariaErrorMessage:null,ariaExpanded:qk,ariaFlowTo:Yk,ariaGrabbed:qk,ariaHasPopup:null,ariaHidden:qk,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:Yk,ariaLevel:Y,ariaLive:null,ariaModal:qk,ariaMultiLine:qk,ariaMultiSelectable:qk,ariaOrientation:null,ariaOwns:Yk,ariaPlaceholder:null,ariaPosInSet:Y,ariaPressed:qk,ariaReadOnly:qk,ariaRelevant:null,ariaRequired:qk,ariaRoleDescription:Yk,ariaRowCount:Y,ariaRowIndex:Y,ariaRowSpan:Y,ariaSelected:qk,ariaSetSize:Y,ariaSort:null,ariaValueMax:Y,ariaValueMin:Y,ariaValueNow:Y,ariaValueText:null,role:null},transform(e,t){return t===`role`?t:`aria-`+t.slice(4).toLowerCase()}});function iA(e,t){return t in e?e[t]:t}function aA(e,t){return iA(e,t.toLowerCase())}var oA=nA({attributes:{acceptcharset:`accept-charset`,classname:`class`,htmlfor:`for`,httpequiv:`http-equiv`},mustUseProperty:[`checked`,`multiple`,`muted`,`selected`],properties:{abbr:null,accept:Xk,acceptCharset:Yk,accessKey:Yk,action:null,allow:null,allowFullScreen:Kk,allowPaymentRequest:Kk,allowUserMedia:Kk,alt:null,as:null,async:Kk,autoCapitalize:null,autoComplete:Yk,autoFocus:Kk,autoPlay:Kk,blocking:Yk,capture:null,charSet:null,checked:Kk,cite:null,className:Yk,cols:Y,colSpan:null,content:null,contentEditable:qk,controls:Kk,controlsList:Yk,coords:Y|Xk,crossOrigin:null,data:null,dateTime:null,decoding:null,default:Kk,defer:Kk,dir:null,dirName:null,disabled:Kk,download:Jk,draggable:qk,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:Kk,formTarget:null,headers:Yk,height:Y,hidden:Jk,high:Y,href:null,hrefLang:null,htmlFor:Yk,httpEquiv:Yk,id:null,imageSizes:null,imageSrcSet:null,inert:Kk,inputMode:null,integrity:null,is:null,isMap:Kk,itemId:null,itemProp:Yk,itemRef:Yk,itemScope:Kk,itemType:Yk,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:Kk,low:Y,manifest:null,max:null,maxLength:Y,media:null,method:null,min:null,minLength:Y,multiple:Kk,muted:Kk,name:null,nonce:null,noModule:Kk,noValidate:Kk,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:Kk,optimum:Y,pattern:null,ping:Yk,placeholder:null,playsInline:Kk,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:Kk,referrerPolicy:null,rel:Yk,required:Kk,reversed:Kk,rows:Y,rowSpan:Y,sandbox:Yk,scope:null,scoped:Kk,seamless:Kk,selected:Kk,shadowRootClonable:Kk,shadowRootDelegatesFocus:Kk,shadowRootMode:null,shape:null,size:Y,sizes:null,slot:null,span:Y,spellCheck:qk,src:null,srcDoc:null,srcLang:null,srcSet:null,start:Y,step:null,style:null,tabIndex:Y,target:null,title:null,translate:null,type:null,typeMustMatch:Kk,useMap:null,value:qk,width:Y,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:Yk,axis:null,background:null,bgColor:null,border:Y,borderColor:null,bottomMargin:Y,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:Kk,declare:Kk,event:null,face:null,frame:null,frameBorder:null,hSpace:Y,leftMargin:Y,link:null,longDesc:null,lowSrc:null,marginHeight:Y,marginWidth:Y,noResize:Kk,noHref:Kk,noShade:Kk,noWrap:Kk,object:null,profile:null,prompt:null,rev:null,rightMargin:Y,rules:null,scheme:null,scrolling:qk,standby:null,summary:null,text:null,topMargin:Y,valueType:null,version:null,vAlign:null,vLink:null,vSpace:Y,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:Kk,disableRemotePlayback:Kk,prefix:null,property:null,results:Y,security:null,unselectable:null},space:`html`,transform:aA}),sA=nA({attributes:{accentHeight:`accent-height`,alignmentBaseline:`alignment-baseline`,arabicForm:`arabic-form`,baselineShift:`baseline-shift`,capHeight:`cap-height`,className:`class`,clipPath:`clip-path`,clipRule:`clip-rule`,colorInterpolation:`color-interpolation`,colorInterpolationFilters:`color-interpolation-filters`,colorProfile:`color-profile`,colorRendering:`color-rendering`,crossOrigin:`crossorigin`,dataType:`datatype`,dominantBaseline:`dominant-baseline`,enableBackground:`enable-background`,fillOpacity:`fill-opacity`,fillRule:`fill-rule`,floodColor:`flood-color`,floodOpacity:`flood-opacity`,fontFamily:`font-family`,fontSize:`font-size`,fontSizeAdjust:`font-size-adjust`,fontStretch:`font-stretch`,fontStyle:`font-style`,fontVariant:`font-variant`,fontWeight:`font-weight`,glyphName:`glyph-name`,glyphOrientationHorizontal:`glyph-orientation-horizontal`,glyphOrientationVertical:`glyph-orientation-vertical`,hrefLang:`hreflang`,horizAdvX:`horiz-adv-x`,horizOriginX:`horiz-origin-x`,horizOriginY:`horiz-origin-y`,imageRendering:`image-rendering`,letterSpacing:`letter-spacing`,lightingColor:`lighting-color`,markerEnd:`marker-end`,markerMid:`marker-mid`,markerStart:`marker-start`,navDown:`nav-down`,navDownLeft:`nav-down-left`,navDownRight:`nav-down-right`,navLeft:`nav-left`,navNext:`nav-next`,navPrev:`nav-prev`,navRight:`nav-right`,navUp:`nav-up`,navUpLeft:`nav-up-left`,navUpRight:`nav-up-right`,onAbort:`onabort`,onActivate:`onactivate`,onAfterPrint:`onafterprint`,onBeforePrint:`onbeforeprint`,onBegin:`onbegin`,onCancel:`oncancel`,onCanPlay:`oncanplay`,onCanPlayThrough:`oncanplaythrough`,onChange:`onchange`,onClick:`onclick`,onClose:`onclose`,onCopy:`oncopy`,onCueChange:`oncuechange`,onCut:`oncut`,onDblClick:`ondblclick`,onDrag:`ondrag`,onDragEnd:`ondragend`,onDragEnter:`ondragenter`,onDragExit:`ondragexit`,onDragLeave:`ondragleave`,onDragOver:`ondragover`,onDragStart:`ondragstart`,onDrop:`ondrop`,onDurationChange:`ondurationchange`,onEmptied:`onemptied`,onEnd:`onend`,onEnded:`onended`,onError:`onerror`,onFocus:`onfocus`,onFocusIn:`onfocusin`,onFocusOut:`onfocusout`,onHashChange:`onhashchange`,onInput:`oninput`,onInvalid:`oninvalid`,onKeyDown:`onkeydown`,onKeyPress:`onkeypress`,onKeyUp:`onkeyup`,onLoad:`onload`,onLoadedData:`onloadeddata`,onLoadedMetadata:`onloadedmetadata`,onLoadStart:`onloadstart`,onMessage:`onmessage`,onMouseDown:`onmousedown`,onMouseEnter:`onmouseenter`,onMouseLeave:`onmouseleave`,onMouseMove:`onmousemove`,onMouseOut:`onmouseout`,onMouseOver:`onmouseover`,onMouseUp:`onmouseup`,onMouseWheel:`onmousewheel`,onOffline:`onoffline`,onOnline:`ononline`,onPageHide:`onpagehide`,onPageShow:`onpageshow`,onPaste:`onpaste`,onPause:`onpause`,onPlay:`onplay`,onPlaying:`onplaying`,onPopState:`onpopstate`,onProgress:`onprogress`,onRateChange:`onratechange`,onRepeat:`onrepeat`,onReset:`onreset`,onResize:`onresize`,onScroll:`onscroll`,onSeeked:`onseeked`,onSeeking:`onseeking`,onSelect:`onselect`,onShow:`onshow`,onStalled:`onstalled`,onStorage:`onstorage`,onSubmit:`onsubmit`,onSuspend:`onsuspend`,onTimeUpdate:`ontimeupdate`,onToggle:`ontoggle`,onUnload:`onunload`,onVolumeChange:`onvolumechange`,onWaiting:`onwaiting`,onZoom:`onzoom`,overlinePosition:`overline-position`,overlineThickness:`overline-thickness`,paintOrder:`paint-order`,panose1:`panose-1`,pointerEvents:`pointer-events`,referrerPolicy:`referrerpolicy`,renderingIntent:`rendering-intent`,shapeRendering:`shape-rendering`,stopColor:`stop-color`,stopOpacity:`stop-opacity`,strikethroughPosition:`strikethrough-position`,strikethroughThickness:`strikethrough-thickness`,strokeDashArray:`stroke-dasharray`,strokeDashOffset:`stroke-dashoffset`,strokeLineCap:`stroke-linecap`,strokeLineJoin:`stroke-linejoin`,strokeMiterLimit:`stroke-miterlimit`,strokeOpacity:`stroke-opacity`,strokeWidth:`stroke-width`,tabIndex:`tabindex`,textAnchor:`text-anchor`,textDecoration:`text-decoration`,textRendering:`text-rendering`,transformOrigin:`transform-origin`,typeOf:`typeof`,underlinePosition:`underline-position`,underlineThickness:`underline-thickness`,unicodeBidi:`unicode-bidi`,unicodeRange:`unicode-range`,unitsPerEm:`units-per-em`,vAlphabetic:`v-alphabetic`,vHanging:`v-hanging`,vIdeographic:`v-ideographic`,vMathematical:`v-mathematical`,vectorEffect:`vector-effect`,vertAdvY:`vert-adv-y`,vertOriginX:`vert-origin-x`,vertOriginY:`vert-origin-y`,wordSpacing:`word-spacing`,writingMode:`writing-mode`,xHeight:`x-height`,playbackOrder:`playbackorder`,timelineBegin:`timelinebegin`},properties:{about:Zk,accentHeight:Y,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:Y,amplitude:Y,arabicForm:null,ascent:Y,attributeName:null,attributeType:null,azimuth:Y,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:Y,by:null,calcMode:null,capHeight:Y,className:Yk,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:Y,diffuseConstant:Y,direction:null,display:null,dur:null,divisor:Y,dominantBaseline:null,download:Kk,dx:null,dy:null,edgeMode:null,editable:null,elevation:Y,enableBackground:null,end:null,event:null,exponent:Y,externalResourcesRequired:null,fill:null,fillOpacity:Y,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:Xk,g2:Xk,glyphName:Xk,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:Y,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:Y,horizOriginX:Y,horizOriginY:Y,id:null,ideographic:Y,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:Y,k:Y,k1:Y,k2:Y,k3:Y,k4:Y,kernelMatrix:Zk,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:Y,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:Y,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:Y,overlineThickness:Y,paintOrder:null,panose1:null,path:null,pathLength:Y,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:Yk,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:Y,pointsAtY:Y,pointsAtZ:Y,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:Zk,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:Zk,rev:Zk,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:Zk,requiredFeatures:Zk,requiredFonts:Zk,requiredFormats:Zk,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:Y,specularExponent:Y,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:Y,strikethroughThickness:Y,string:null,stroke:null,strokeDashArray:Zk,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:Y,strokeOpacity:Y,strokeWidth:null,style:null,surfaceScale:Y,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:Zk,tabIndex:Y,tableValues:null,target:null,targetX:Y,targetY:Y,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:Zk,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:Y,underlineThickness:Y,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:Y,values:null,vAlphabetic:Y,vMathematical:Y,vectorEffect:null,vHanging:Y,vIdeographic:Y,version:null,vertAdvY:Y,vertOriginX:Y,vertOriginY:Y,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:Y,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:`svg`,transform:iA}),cA=nA({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:`xlink`,transform(e,t){return`xlink:`+t.slice(5).toLowerCase()}}),lA=nA({attributes:{xmlnsxlink:`xmlns:xlink`},properties:{xmlnsXLink:null,xmlns:null},space:`xmlns`,transform:aA}),uA=nA({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:`xml`,transform(e,t){return`xml:`+t.slice(3).toLowerCase()}}),dA={classId:`classID`,dataType:`datatype`,itemId:`itemID`,strokeDashArray:`strokeDasharray`,strokeDashOffset:`strokeDashoffset`,strokeLineCap:`strokeLinecap`,strokeLineJoin:`strokeLinejoin`,strokeMiterLimit:`strokeMiterlimit`,typeOf:`typeof`,xLinkActuate:`xlinkActuate`,xLinkArcRole:`xlinkArcrole`,xLinkHref:`xlinkHref`,xLinkRole:`xlinkRole`,xLinkShow:`xlinkShow`,xLinkTitle:`xlinkTitle`,xLinkType:`xlinkType`,xmlnsXLink:`xmlnsXlink`},fA=/[A-Z]/g,pA=/-[a-z]/g,mA=/^data[-\w.:]+$/i;function hA(e,t){let n=Hk(t),r=t,i=Uk;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)===`data`&&mA.test(t)){if(t.charAt(4)===`-`){let e=t.slice(5).replace(pA,_A);r=`data`+e.charAt(0).toUpperCase()+e.slice(1)}else{let e=t.slice(4);if(!pA.test(e)){let n=e.replace(fA,gA);n.charAt(0)!==`-`&&(n=`-`+n),t=`data`+n}}i=eA}return new i(r,t)}function gA(e){return`-`+e.toLowerCase()}function _A(e){return e.charAt(1).toUpperCase()}var vA=Vk([rA,oA,cA,lA,uA],`html`),yA=Vk([rA,sA,cA,lA,uA],`svg`);function bA(e){return e.join(` `).trim()}var xA=o(((e,t)=>{var n=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,r=/\n/g,i=/^\s*/,a=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,o=/^:\s*/,s=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,c=/^[;\s]*/,l=/^\s+|\s+$/g,u=`
|
|
49
|
+
`},hD=0,gD=[];function _D(e){var t=I.useRef([]),n=I.useRef([0,0]),r=I.useRef(),i=I.useState(hD++)[0],a=I.useState(zE)[0],o=I.useRef(e);I.useEffect(function(){o.current=e},[e]),I.useEffect(function(){if(e.inert){document.body.classList.add(`block-interactivity-${i}`);var t=mE([e.lockRef.current],(e.shards||[]).map(fD),!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=I.useCallback(function(e,t){if(`touches`in e&&e.touches.length===2||e.type===`wheel`&&e.ctrlKey)return!o.current.allowPinchZoom;var i=uD(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=rD(d,u);if(!m)return!0;if(m?l=d:(l=d===`v`?`h`:`v`,m=rD(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 lD(h,t,e,h===`h`?s:c,!0)},[]),c=I.useCallback(function(e){var n=e;if(!(!gD.length||gD[gD.length-1]!==a)){var r=`deltaY`in n?dD(n):uD(n),i=t.current.filter(function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&pD(e.delta,r)})[0];if(i&&i.should){n.cancelable&&n.preventDefault();return}if(!i){var c=(o.current.shards||[]).map(fD).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=I.useCallback(function(e,n,r,i){var a={name:e,delta:n,target:r,should:i,shadowParent:vD(r)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),u=I.useCallback(function(e){n.current=uD(e),r.current=void 0},[]),d=I.useCallback(function(t){l(t.type,dD(t),t.target,s(t,e.lockRef.current))},[]),f=I.useCallback(function(t){l(t.type,uD(t),t.target,s(t,e.lockRef.current))},[]);I.useEffect(function(){return gD.push(a),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:f}),document.addEventListener(`wheel`,c,QE),document.addEventListener(`touchmove`,c,QE),document.addEventListener(`touchstart`,u,QE),function(){gD=gD.filter(function(e){return e!==a}),document.removeEventListener(`wheel`,c,QE),document.removeEventListener(`touchmove`,c,QE),document.removeEventListener(`touchstart`,u,QE)}},[]);var p=e.removeScrollBar,m=e.inert;return I.createElement(I.Fragment,null,m?I.createElement(a,{styles:mD(i)}):null,p?I.createElement(YE,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function vD(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}var yD=OE(kE,_D),bD=I.forwardRef(function(e,t){return I.createElement(jE,fE({},e,{ref:t,sideCar:yD}))});bD.classNames=jE.classNames;var xD=function(e){return typeof document>`u`?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},SD=new WeakMap,CD=new WeakMap,wD={},TD=0,ED=function(e){return e&&(e.host||ED(e.parentNode))},DD=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=ED(t);return n&&e.contains(n)?n:(console.error(`aria-hidden`,t,`in not contained inside`,e,`. Doing nothing`),null)}).filter(function(e){return!!e})},OD=function(e,t,n,r){var i=DD(t,Array.isArray(e)?e:[e]);wD[n]||(wD[n]=new WeakMap);var a=wD[n],o=[],s=new Set,c=new Set(i),l=function(e){!e||s.has(e)||(s.add(e),l(e.parentNode))};i.forEach(l);var u=function(e){!e||c.has(e)||Array.prototype.forEach.call(e.children,function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),i=t!==null&&t!==`false`,c=(SD.get(e)||0)+1,l=(a.get(e)||0)+1;SD.set(e,c),a.set(e,l),o.push(e),c===1&&i&&CD.set(e,!0),l===1&&e.setAttribute(n,`true`),i||e.setAttribute(r,`true`)}catch(t){console.error(`aria-hidden: cannot operate on `,e,t)}})};return u(t),s.clear(),TD++,function(){o.forEach(function(e){var t=SD.get(e)-1,i=a.get(e)-1;SD.set(e,t),a.set(e,i),t||(CD.has(e)||e.removeAttribute(r),CD.delete(e)),i||e.removeAttribute(n)}),TD--,TD||(SD=new WeakMap,SD=new WeakMap,CD=new WeakMap,wD={})}},kD=function(e,t,n){n===void 0&&(n=`data-aria-hidden`);var r=Array.from(Array.isArray(e)?e:[e]),i=t||xD(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll(`[aria-live], script`))),OD(r,i,n,`aria-hidden`)):function(){return null}},AD=Object.defineProperty,jD=(e,t)=>AD(e,`name`,{value:t,configurable:!0}),MD=`Dialog`,[ND,PD]=Uw(MD),[FD,ID]=ND(MD),LD=jD(e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!0}=e,s=I.useRef(null),c=I.useRef(null),[l,u]=aT({prop:r,defaultProp:i??!1,onChange:a,caller:MD}),[d,f]=I.useState(0),[p,m]=I.useState(0);return(0,L.jsx)(FD,{scope:t,triggerRef:s,contentRef:c,contentId:Xw(),titleId:Xw(),descriptionId:Xw(),titlePresent:d>0,descriptionPresent:p>0,setTitleCount:f,setDescriptionCount:m,open:l,onOpenChange:u,onOpenToggle:I.useCallback(()=>u(e=>!e),[u]),modal:o,children:n})},`Dialog`),RD=`DialogPortal`,[zD,BD]=ND(RD,{forceMount:void 0}),VD=jD(e=>{let{__scopeDialog:t,forceMount:n,children:r,container:i}=e,a=ID(RD,t);return(0,L.jsx)(zD,{scope:t,forceMount:n,children:I.Children.map(r,e=>(0,L.jsx)($T,{present:n||a.open,children:(0,L.jsx)(YT,{asChild:!0,container:i,children:e})}))})},`DialogPortal`),HD=`DialogOverlay`,UD=I.forwardRef(jD(function(e,t){let n=BD(HD,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=ID(HD,e.__scopeDialog);return a.modal?(0,L.jsx)($T,{present:r||a.open,children:(0,L.jsx)(GD,{...i,ref:t})}):null},`DialogOverlay`)),WD=XC(`DialogOverlay.RemoveScroll`),GD=I.forwardRef(jD(function(e,t){let{__scopeDialog:n,...r}=e,i=ID(HD,n),a=qC(t,TT());return(0,L.jsx)(bD,{as:WD,allowPinchZoom:!0,shards:[i.contentRef],children:(0,L.jsx)(fT.div,{"data-state":rO(i.open),...r,ref:a,style:{pointerEvents:`auto`,...r.style}})})},`DialogOverlayImpl`)),KD=`DialogContent`,qD=I.forwardRef(jD(function(e,t){let n=BD(KD,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=ID(KD,e.__scopeDialog);return(0,L.jsx)($T,{present:r||a.open,children:a.modal?(0,L.jsx)(JD,{...i,ref:t}):(0,L.jsx)(YD,{...i,ref:t})})},`DialogContent`)),JD=I.forwardRef(jD(function(e,t){let n=ID(KD,e.__scopeDialog),r=I.useRef(null),i=qC(t,n.contentRef,r);return I.useEffect(()=>{let e=r.current;if(e)return kD(e)},[]),(0,L.jsx)(XD,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,onCloseAutoFocus:Fw(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:Fw(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()}),onFocusOutside:Fw(e.onFocusOutside,e=>e.preventDefault())})},`DialogContentModal`)),YD=I.forwardRef(jD(function(e,t){let n=ID(KD,e.__scopeDialog),r=I.useRef(!1),i=I.useRef(!1);return(0,L.jsx)(XD,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})},`DialogContentNonModal`)),XD=I.forwardRef(jD(function(e,t){let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,...o}=e,s=ID(KD,n);return uE(),(0,L.jsx)(L.Fragment,{children:(0,L.jsx)(IT,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,L.jsx)(wT,{role:`dialog`,id:s.contentId,"aria-describedby":s.descriptionPresent?s.descriptionId:void 0,"aria-labelledby":s.titlePresent?s.titleId:void 0,"data-state":rO(s.open),...o,ref:t,deferPointerDownOutside:!0,onDismiss:()=>s.onOpenChange(!1)})})})},`DialogContentImpl`)),ZD=`DialogTitle`,QD=I.forwardRef(jD(function(e,t){let{__scopeDialog:n,...r}=e,i=ID(ZD,n),{setTitleCount:a}=i;return Gw(()=>(a(e=>e+1),()=>a(e=>e-1)),[a]),(0,L.jsx)(fT.h2,{id:i.titleId,...r,ref:t})},`DialogTitle`)),$D=`DialogDescription`,eO=I.forwardRef(jD(function(e,t){let{__scopeDialog:n,...r}=e,i=ID($D,n),{setDescriptionCount:a}=i;return Gw(()=>(a(e=>e+1),()=>a(e=>e-1)),[a]),(0,L.jsx)(fT.p,{id:i.descriptionId,...r,ref:t})},`DialogDescription`)),tO=`DialogClose`,nO=I.forwardRef(jD(function(e,t){let{__scopeDialog:n,...r}=e,i=ID(tO,n);return(0,L.jsx)(fT.button,{type:`button`,...r,ref:t,onClick:Fw(e.onClick,()=>i.onOpenChange(!1))})},`DialogClose`));function rO(e){return e?`open`:`closed`}jD(rO,`getState`);function iO({brand:e,visual:t,auth:n,mobileAuth:r,footer:i,className:a,...o}){return(0,L.jsxs)(`section`,{className:q(`homepage-entry`,a),...o,children:[(0,L.jsxs)(`div`,{className:`homepage-entry-desktop`,children:[(0,L.jsxs)(`section`,{className:`homepage-entry-visual-column`,"aria-label":`Tutti product preview`,children:[(0,L.jsx)(`div`,{className:`homepage-entry-brand`,children:e}),(0,L.jsx)(`div`,{className:`homepage-entry-visual`,children:t})]}),(0,L.jsxs)(`aside`,{className:`homepage-entry-auth-rail`,"aria-label":`Sign in to Tutti`,children:[(0,L.jsx)(`div`,{className:`homepage-entry-auth-content`,children:n}),i===void 0?null:(0,L.jsx)(`div`,{className:`homepage-entry-auth-footnote`,children:i})]})]}),(0,L.jsxs)(`section`,{className:`homepage-entry-mobile`,"aria-label":`Sign in to Tutti`,children:[(0,L.jsx)(`div`,{className:`product-appbar`,children:e}),(0,L.jsx)(`div`,{className:`auth-shell`,children:r}),i===void 0?null:(0,L.jsx)(`div`,{className:`homepage-entry-mobile-footnote`,children:i})]})]})}function aO({className:e,...t}){return(0,L.jsx)(`p`,{className:q(`product-entry-footnote`,e),...t})}function oO({title:e,description:t,children:n,action:r,feedback:i,secondaryAction:a,className:o,...s}){return(0,L.jsxs)(`form`,{className:q(`product-entry-auth-form`,o),...s,children:[(0,L.jsxs)(`header`,{className:`product-entry-auth-header`,children:[(0,L.jsx)(`h1`,{children:e}),(0,L.jsx)(`p`,{children:t})]}),(0,L.jsx)(`div`,{className:`product-entry-auth-body`,children:n}),a===void 0?null:(0,L.jsx)(`div`,{className:`product-entry-auth-secondary`,children:a}),i===void 0?null:(0,L.jsx)(`div`,{className:`product-entry-auth-feedback`,children:i}),(0,L.jsx)(`footer`,{className:`product-entry-auth-footer`,children:r})]})}var sO=40.1,cO=sO+.6,lO={openingFadeEnd:1.05,chatEnd:7.45,scratchpadPanEnd:8.8,scratchpadEnd:17.8,runCursorStart:17.95,runCursorArrive:18.65,runClickStart:18.67,runEnd:18.9,executionPrepareEnd:20.35,executionImplementEnd:24.55,executionValidateEnd:26.35,executionComplete:28.15,executionEnd:28.95,fullWorkspace:30.95,artifactLive:30.55,artifactClick:32.65,artifactScroll:36.1,artifactScrollEnd:39.55,finalHoldEnd:sO,fadeEnd:cO},uO={centerX:.325,centerY:.25,scale:1.62},dO={centerX:.325,centerY:.47,scale:1.64},fO={centerX:.855,centerY:.23,scale:1.72},pO={centerX:.855,centerY:.35,scale:1.72},mO={centerX:.855,centerY:.79,scale:1.72},hO={centerX:.5,centerY:.5,scale:1},gO=[{start:1.35,end:5.95,from:uO,to:dO,linearPosition:!0},{start:7.45,end:8.8,from:dO,to:fO},{start:8.8,end:14.3,from:fO,to:pO,linearPosition:!0},{start:14.6,end:17.8,from:pO,to:mO},{start:lO.executionEnd,end:lO.fullWorkspace,from:mO,to:hO}];function _O(e,t=0,n=1){return Math.min(n,Math.max(t,e))}function vO(e){return 1-(1-_O(e))**3}function yO(e){let t=_O(e);return t<.5?4*t*t*t:1-(-2*t+2)**3/2}function bO(e){let t=_O(e);return t<.5?16*t**5:1-(-2*t+2)**5/2}function xO(e,t,n,r=vO){let i=Math.max(.001,n-t);return r(_O((e-t)/i))}function SO(e,t,n){return e+(t-e)*n}function CO(e,t){let n=_O((t-e.start)/Math.max(.001,e.end-e.start)),r=e.linearPosition?n:bO(n);return{centerX:SO(e.from.centerX,e.to.centerX,r),centerY:SO(e.from.centerY,e.to.centerY,r),scale:SO(e.from.scale,e.to.scale,e.linearPosition?n:yO(n))}}function wO(e){if(e<gO[0].start)return uO;for(let t of gO)if(e<=t.end)return e<t.start?t.from:CO(t,e);return hO}function TO(e){return e>=lO.executionComplete?{id:`complete`,label:`Task completed`}:e>=lO.executionValidateEnd?{id:`update`,label:`Synchronizing project`}:e>=lO.executionImplementEnd?{id:`validate`,label:`Validating result`}:e>=lO.executionPrepareEnd?{id:`implement`,label:`Implementing with Codex`}:{id:`prepare`,label:`Preparing workspace`}}function EO(e){return xO(e,lO.artifactScroll,lO.artifactScrollEnd,yO)}function DO(e){return 1-xO(e,sO,cO,yO)}var OO=1500,kO=1e3,AO=2.5,jO=`(min-width: 980px) and (prefers-reduced-motion: no-preference)`,MO=(0,I.lazy)(async()=>({default:(await lS(()=>import(`./homepage-motion-scene-DyEmWwvt.js`),[])).HomepageMotionScene}));function NO(e){let[t,n]=(0,I.useState)(()=>typeof window>`u`||typeof window.matchMedia!=`function`?!0:window.matchMedia(e).matches);return(0,I.useEffect)(()=>{if(typeof window.matchMedia!=`function`)return;let t=window.matchMedia(e),r=()=>n(t.matches);return r(),t.addEventListener(`change`,r),()=>t.removeEventListener(`change`,r)},[e]),t}function PO(){return NO(jO)}function FO(e,t){let[n,r]=(0,I.useState)({elapsed:0,cycle:0}),i=(0,I.useRef)(null),a=cO+t;return(0,I.useEffect)(()=>{if(!e){i.current=null;return}let t=0,n=e=>{let o=i.current??e;i.current=e;let s=Math.min(.1,(e-o)/1e3);r(e=>{let t=e.elapsed+s;return t<a?{...e,elapsed:t}:{elapsed:t%a,cycle:e.cycle+1}}),t=window.requestAnimationFrame(n)};return t=window.requestAnimationFrame(n),()=>window.cancelAnimationFrame(t)},[a,e]),{cycle:n.cycle,time:Math.min(n.elapsed,cO)}}function IO(e,t){let[n,r]=(0,I.useState)(0),i=(0,I.useRef)(t),a=(0,I.useRef)(!1);return i.current=t,(0,I.useEffect)(()=>{if(r(0),a.current=!1,!e)return;let t=0,n=null,o=e=>{n??=e;let s=Math.min((e-n)/1e3,cO);if(r(s),s>=cO){a.current||(a.current=!0,i.current());return}t=window.requestAnimationFrame(o)};return t=window.requestAnimationFrame(o),()=>window.cancelAnimationFrame(t)},[e]),n}function LO(e){let t=(0,I.useRef)(null),[n,r]=(0,I.useState)(0);return(0,I.useLayoutEffect)(()=>{if(!e)return;let n=t.current;if(n===null)return;let i=()=>{let e=n.getBoundingClientRect(),t=Math.min(e.width/OO,e.height/kO);r(Number.isFinite(t)?t:0)};if(i(),typeof ResizeObserver>`u`)return;let a=new ResizeObserver(i);return a.observe(n),()=>a.disconnect()},[e]),{frameRef:t,masterScale:n}}function RO({assets:e,enabled:t,sceneKey:n,time:r,className:i,...a}){let{frameRef:o,masterScale:s}=LO(t);return t?(0,L.jsx)(`div`,{ref:o,className:q(`homepage-motion-frame`,i),...a,children:(0,L.jsx)(`div`,{className:`homepage-motion-master`,style:{"--homepage-motion-scale":s},children:(0,L.jsx)(I.Suspense,{fallback:null,children:(0,L.jsx)(MO,{time:r,assets:e},n)})})}):null}function zO({assets:e,idleSeconds:t=AO,className:n,...r}){let i=PO(),a=FO(i,Math.max(0,t));return(0,L.jsx)(RO,{...r,assets:e,enabled:i,sceneKey:a.cycle,time:a.time,className:n})}function BO({assets:e,onComplete:t,className:n,...r}){let i=PO(),a=IO(i,(0,I.useCallback)(()=>t(),[t]));return(0,L.jsx)(RO,{...r,assets:e,enabled:i,time:a,className:n})}function VO({onOpen:e,onDismiss:t,className:n,...r}){return(0,L.jsxs)(`aside`,{className:q(`product-tour-pill`,n),"aria-label":`Product tour`,...r,children:[(0,L.jsxs)(J,{type:`button`,className:`product-tour-pill-open`,onClick:e,children:[(0,L.jsx)(`span`,{className:`product-tour-pill-icon`,"aria-hidden":`true`,children:(0,L.jsx)(Yb,{})}),(0,L.jsxs)(`span`,{className:`product-tour-pill-copy`,children:[(0,L.jsx)(`strong`,{children:`New to Tutti?`}),(0,L.jsx)(`span`,{children:`Take a tour`})]})]}),(0,L.jsx)(fw,{type:`button`,className:`product-tour-pill-dismiss`,label:`Dismiss product tour`,icon:(0,L.jsx)(qx,{"aria-hidden":`true`}),onClick:t})]})}function HO({assets:e,open:t,onOpenChange:n}){let r=PO();return(0,I.useEffect)(()=>{t&&!r&&n(!1)},[r,n,t]),r?(0,L.jsx)(LD,{open:t,onOpenChange:n,children:(0,L.jsxs)(VD,{children:[(0,L.jsx)(UD,{className:`product-tour-dialog-overlay`}),(0,L.jsxs)(qD,{className:`product-tour-dialog-content`,onInteractOutside:e=>e.preventDefault(),onPointerDownOutside:e=>e.preventDefault(),children:[(0,L.jsx)(QD,{className:`product-tour-dialog-title`,children:`Welcome to Tutti`}),(0,L.jsx)(nO,{asChild:!0,children:(0,L.jsx)(fw,{type:`button`,className:`product-tour-dialog-close`,label:`Close product tour`,icon:(0,L.jsx)(qx,{"aria-hidden":`true`})})}),t?(0,L.jsx)(BO,{className:`product-tour-dialog-motion`,assets:e,onComplete:()=>n(!1)}):null]})]})}):null}function UO({status:e,className:t,...n}){let r=e===`online`?`Online`:e===`connecting`?`Connecting`:e===`stopped`?`Stopped`:e===`offline`?`Offline`:`Status unknown`,i=e===`online`?(0,L.jsx)(Ox,{"aria-hidden":`true`}):e===`connecting`?(0,L.jsx)(kx,{"aria-hidden":`true`}):e===`stopped`?(0,L.jsx)(Ex,{"aria-hidden":`true`}):e===`offline`?(0,L.jsx)(Gx,{"aria-hidden":`true`}):(0,L.jsx)(Yb,{"aria-hidden":`true`});return(0,L.jsx)(`span`,{className:q(`project-list-status-icon`,`is-${e}`,t),"aria-label":r,role:`img`,...n,children:i})}function WO(e){let t=(0,I.useId)();return(0,L.jsxs)(`fieldset`,{className:`product-choice-cards`,disabled:e.disabled,children:[(0,L.jsx)(`legend`,{children:e.legend}),(0,L.jsx)(`div`,{children:e.options.map(n=>(0,L.jsxs)(`label`,{className:q(`product-choice-card`,n.value===e.value&&`is-selected`),children:[(0,L.jsx)(`input`,{type:`radio`,name:t,value:n.value,checked:n.value===e.value,disabled:n.disabled,onChange:()=>e.onValueChange(n.value)}),(0,L.jsx)(`span`,{className:`product-choice-icon`,"aria-hidden":`true`,children:n.icon}),(0,L.jsx)(`strong`,{children:n.title}),(0,L.jsx)(`small`,{children:n.description}),n.note===void 0?null:(0,L.jsx)(`small`,{className:`product-choice-note`,"aria-live":`polite`,children:n.note})]},n.value))})]})}function GO(e){let t=[{value:`managed`,title:`Tutti credit`,description:`Use Tutti credit for this project`,icon:e.tuttiLogo,note:e.creditNote},{value:`byok`,title:`Custom endpoint`,description:`Use your own API key and model`,icon:e.customIcon,disabled:e.customDisabled}];return(0,L.jsx)(WO,{legend:`Model access`,value:e.value,onValueChange:e.onValueChange,disabled:e.disabled,options:t})}function KO(e){return(0,L.jsx)(WO,{legend:`Where will this project be used?`,value:e.value,onValueChange:e.onValueChange,disabled:e.disabled,options:[{value:`standalone`,title:`Tutti Workspace`,description:`Collaborate in Tutti's own workspace`,icon:e.tuttiLogo},{value:`feishu`,title:`Feishu`,description:`Collaborate in your Feishu group`,icon:e.feishuIcon}]})}function qO({className:e,...t}){return(0,L.jsx)(`div`,{className:q(`product-card-body`,e),...t})}function JO({items:e}){return(0,L.jsx)(`dl`,{className:`product-entry-summary`,children:e.map(e=>(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:e.label}),(0,L.jsx)(`dd`,{className:e.mono?`is-mono`:void 0,children:e.value})]},e.label))})}function YO({items:e}){return(0,L.jsx)(`dl`,{className:`product-metric-list`,children:e.map(e=>(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:e.label}),(0,L.jsx)(`dd`,{children:e.value})]},e.label))})}function XO({title:e,description:t,children:n,action:r}){return(0,L.jsxs)(`div`,{className:`product-access-row`,children:[(0,L.jsxs)(`div`,{className:`product-access-identity`,children:[(0,L.jsx)(`strong`,{children:e}),t===void 0?null:(0,L.jsx)(`small`,{children:t}),n]}),r===void 0?null:(0,L.jsx)(`div`,{className:`product-access-action`,children:r})]})}function ZO(e){return(0,L.jsxs)(`div`,{className:`product-account-actions`,"aria-label":`Account actions`,children:[(0,L.jsx)(J,{type:`button`,disabled:e.disabled,onClick:e.onCredit,"aria-label":`View credits`,children:e.credit}),(0,L.jsxs)(J,{type:`button`,disabled:e.disabled,onClick:e.onAccount,"aria-label":`Account settings`,children:[(0,L.jsx)(`span`,{className:`product-account-name`,children:e.name}),(0,L.jsx)(Kb,{"aria-hidden":`true`})]})]})}function QO({brand:e,account:t,actions:n,toolbar:r,children:i,rail:a}){let o=(0,I.useId)(),s=r.connected&&r.local;return(0,L.jsxs)(`div`,{className:`project-studio`,children:[(0,L.jsxs)(`header`,{className:`studio-header`,children:[e,(0,L.jsx)(`div`,{className:`studio-account`,children:t})]}),(0,L.jsxs)(`main`,{className:`studio-main`,"aria-label":`Project Center`,children:[(0,L.jsxs)(`header`,{className:`studio-heading`,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`p`,{className:`studio-eyebrow`,children:`One place to begin`}),(0,L.jsxs)(`h1`,{children:[`Projects`,(0,L.jsx)(`span`,{children:`.`})]})]}),(0,L.jsx)(`div`,{className:`studio-heading-actions`,children:n})]}),(0,L.jsxs)(`div`,{className:`studio-grid${s?` is-computer-scope`:``}`,children:[(0,L.jsxs)(`section`,{className:`studio-projects`,"aria-label":`Projects`,children:[(0,L.jsx)($O,{...r,panelId:o}),(0,L.jsx)(`div`,{id:o,role:r.connected?`tabpanel`:`region`,"aria-labelledby":r.connected?`${o}-${s?`computer`:`account`}`:void 0,"aria-label":r.connected?void 0:`Your projects`,tabIndex:r.connected?0:void 0,className:`studio-project-panel`,children:i})]}),a]})]})]})}function $O({local:e,onLocalChange:t,search:n,onSearchChange:r,connected:i,panelId:a}){return(0,L.jsxs)(`div`,{className:`studio-toolbar`,children:[i?(0,L.jsx)(`div`,{className:`studio-filters`,role:`tablist`,"aria-label":`Project scope`,onKeyDown:n=>{let r=n.key===`Home`?!1:n.key===`End`?!0:n.key===`ArrowLeft`||n.key===`ArrowRight`?!e:null;r!==null&&(n.preventDefault(),t(r),n.currentTarget.querySelectorAll(`[role="tab"]`)[Number(r)]?.focus())},children:[!1,!0].map(n=>(0,L.jsxs)(`button`,{type:`button`,role:`tab`,id:`${a}-${n?`computer`:`account`}`,"aria-controls":a,"aria-selected":e===n,tabIndex:e===n?0:-1,onClick:()=>t(n),children:[n?(0,L.jsx)(xx,{"aria-hidden":`true`}):(0,L.jsx)(ox,{"aria-hidden":`true`}),n?`This computer`:`Your projects`]},String(n)))}):null,(0,L.jsxs)(`label`,{className:`studio-search`,children:[(0,L.jsx)(Nx,{"aria-hidden":`true`}),(0,L.jsx)(`input`,{type:`search`,"aria-label":`Find a project`,placeholder:`Find a project`,value:n,onChange:e=>r(e.target.value)})]})]})}function ek({count:e,open:t,onOpenChange:n,children:r}){let i=(0,I.useId)();return(0,L.jsxs)(`div`,{className:`studio-unavailable`,children:[(0,L.jsxs)(`button`,{type:`button`,"aria-expanded":t,"aria-controls":i,onClick:()=>n(!t),children:[(0,L.jsx)(Kb,{"aria-hidden":`true`}),`Currently unavailable `,(0,L.jsxs)(`span`,{children:[`(`,e,`)`]})]}),(0,L.jsx)(`div`,{id:i,children:t?r:null})]})}function tk({children:e}){return(0,L.jsx)(`div`,{className:`studio-computer-controls`,children:e})}function nk({title:e,status:t,meta:n,local:r,selected:i,onSelect:a,action:o,children:s}){let c=(0,I.useId)(),l=(0,I.useRef)(null);return(0,I.useEffect)(()=>{if(!i)return;let e=requestAnimationFrame(()=>{let e=l.current;if(!e)return;let t=e.getBoundingClientRect();t.top>=16&&t.bottom<=window.innerHeight-16||e.scrollIntoView({block:`nearest`,inline:`nearest`,behavior:window.matchMedia(`(prefers-reduced-motion: reduce)`).matches?`instant`:`smooth`})});return()=>cancelAnimationFrame(e)},[i]),(0,L.jsxs)(`div`,{ref:l,className:`studio-project-item${i?` is-selected`:``}`,children:[(0,L.jsxs)(`div`,{className:`studio-project-row`,children:[(0,L.jsxs)(`button`,{type:`button`,className:`studio-project-select`,onClick:a,"aria-expanded":i,"aria-controls":c,"aria-label":`Details for ${e}`,children:[(0,L.jsx)(`span`,{className:`studio-monogram`,"aria-hidden":`true`,children:Array.from(e)[0]}),(0,L.jsxs)(`span`,{className:`studio-project-copy`,children:[(0,L.jsx)(`strong`,{children:e}),(0,L.jsxs)(`span`,{children:[n,r?(0,L.jsxs)(`span`,{className:`studio-local-label`,children:[(0,L.jsx)(xx,{"aria-hidden":`true`}),`This computer`]}):null]})]}),(0,L.jsx)(Kb,{className:`studio-project-chevron`,"aria-hidden":`true`})]}),(0,L.jsx)(`span`,{className:`studio-project-status`,children:(0,L.jsx)(UO,{status:t})}),(0,L.jsx)(`div`,{className:`studio-row-actions`,children:o})]}),(0,L.jsx)(`div`,{id:c,hidden:!i,children:i?s:null})]})}function rk({title:e,children:t,actions:n}){return(0,L.jsxs)(`section`,{className:`studio-details`,"aria-label":`Selected project: ${e}`,children:[(0,L.jsx)(`div`,{className:`studio-detail-copy`,children:t}),(0,L.jsx)(`div`,{className:`studio-detail-actions`,children:n})]})}function ik({state:e,version:t,children:n}){return(0,L.jsxs)(`aside`,{className:`studio-computer`,"aria-label":`This computer`,children:[(0,L.jsxs)(`header`,{children:[(0,L.jsx)(`h2`,{children:`This computer`}),(0,L.jsx)(`span`,{className:`studio-connection ${e===`connected`?`is-connected`:``}`,children:e===`connected`?`Connected`:e===`lost`?`Connection lost`:`Not connected`})]}),(0,L.jsx)(`div`,{className:`studio-computer-drawing`,"aria-hidden":`true`,children:(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`span`,{children:`> tutti`}),(0,L.jsx)(`small`,{children:e===`connected`?`Connected to your projects.`:`Ready to connect.`}),(0,L.jsx)(`span`,{children:`_`})]})}),(0,L.jsx)(`h3`,{children:e===`connected`?(0,L.jsxs)(L.Fragment,{children:[`Your computer.`,(0,L.jsx)(`br`,{}),(0,L.jsx)(`em`,{children:`Your workspace.`})]}):(0,L.jsxs)(L.Fragment,{children:[`Bring your`,(0,L.jsx)(`br`,{}),(0,L.jsx)(`em`,{children:`projects closer.`})]})}),(0,L.jsx)(`p`,{children:e===`connected`?`Manage local projects without leaving this page.`:e===`lost`?`Reconnect to manage local projects. Your hosts may still be running.`:`Connect Tutti on this computer to manage your local projects here.`}),(0,L.jsx)(`div`,{className:`studio-computer-actions`,children:n}),t?(0,L.jsxs)(`small`,{className:`studio-version`,children:[`Tutti `,t]}):null]})}function ak({asChild:e=!1,className:t,...n}){return(0,L.jsx)(e?ZC:`section`,{className:q(`product-card`,t),...n})}function ok({children:e,className:t,...n}){return(0,L.jsx)(`div`,{className:q(`product-card-header`,t),...n,children:e})}function sk({children:e,className:t,...n}){return(0,L.jsx)(`div`,{className:q(`product-card-body`,t),...n,children:e})}function ck({children:e,className:t,...n}){return(0,L.jsx)(`div`,{className:q(`product-card-feedback`,t),...n,children:e})}function lk({children:e,className:t,...n}){return(0,L.jsx)(`div`,{className:q(`product-card-footer`,t),...n,children:e})}function uk({title:e,description:t,children:n,action:r,feedback:i,secondaryAction:a,size:o=`standard`,className:s,...c}){return(0,L.jsx)(ak,{className:q(`entry-card auth-card`,o===`wide`?`is-wide`:void 0,s),asChild:!0,children:(0,L.jsxs)(`form`,{...c,children:[(0,L.jsx)(`section`,{className:`auth-card-intro`,children:(0,L.jsxs)(ok,{className:`auth-card-header`,children:[(0,L.jsx)(`h1`,{children:e}),(0,L.jsx)(`p`,{children:t})]})}),(0,L.jsx)(`section`,{className:`auth-card-action`,children:(0,L.jsxs)(`div`,{className:`auth-card-action-content`,children:[(0,L.jsx)(sk,{children:n}),a===void 0?null:(0,L.jsx)(`div`,{className:`auth-card-secondary`,children:a}),i===void 0?null:(0,L.jsx)(ck,{children:i}),(0,L.jsx)(lk,{children:r})]})})]})})}function dk({projectName:e,hostLabel:t,hostOnline:n=!1,members:r,invitedBy:i,className:a,...o}){return(0,L.jsxs)(`section`,{className:q(`invite-summary`,a),"aria-label":`Project invitation`,...o,children:[(0,L.jsxs)(`div`,{className:`invite-project`,children:[(0,L.jsx)(`h2`,{children:e}),(0,L.jsxs)(`p`,{className:q(`project-line`,n?`is-online`:`is-offline`),children:[(0,L.jsx)(`span`,{className:`status-dot`,"aria-hidden":`true`}),t]})]}),r===void 0?null:(0,L.jsx)(`div`,{className:`invite-members`,children:r}),i===void 0?null:(0,L.jsxs)(`div`,{className:`invite-meta`,children:[(0,L.jsx)(`span`,{children:`Invited by`}),(0,L.jsx)(`strong`,{children:i})]})]})}function fk({label:e,value:t,action:n,className:r,...i}){return(0,L.jsxs)(`div`,{className:q(`account-row`,r),...i,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`span`,{children:e}),(0,L.jsx)(`strong`,{children:t})]}),n]})}function pk({title:e,accountName:t,accountAction:n,children:r,className:i,...a}){return(0,L.jsxs)(ak,{className:q(`project-center-card`,i),...a,children:[(0,L.jsxs)(`header`,{className:`project-center-card-header`,children:[(0,L.jsx)(`h1`,{children:e}),t===void 0&&n===void 0?null:(0,L.jsxs)(`div`,{className:`project-center-account`,"aria-label":t===void 0?`Page actions`:`Signed in user`,children:[t===void 0?null:(0,L.jsx)(`span`,{className:`project-center-account-name`,children:t}),n]})]}),r]})}function mk({action:e,description:t,descriptionId:n,disabledTrigger:r=!1,className:i,...a}){return(0,L.jsx)(`div`,{className:q(`project-center-header-action`,i),...a,children:t===void 0?e:(0,L.jsx)(_w,{content:t,disabledTrigger:r,side:`bottom`,...n===void 0?{}:{contentId:n},children:e})})}function hk({items:e,className:t,...n}){return(0,L.jsx)(`nav`,{className:q(`project-scope-navigation`,t),"aria-label":`Project scope`,...n,children:(0,L.jsx)(`ul`,{children:e.map(e=>(0,L.jsx)(`li`,{children:(0,L.jsx)(`a`,{href:e.href,"aria-current":e.current===!0?`page`:void 0,...e.current!==!0&&e.onClick===void 0?{}:{onClick:t=>{e.current===!0&&t.preventDefault(),e.onClick?.(t)}},children:e.label})},e.id))})})}function gk({items:e,action:t,className:n,...r}){return(0,L.jsxs)(`section`,{className:q(`project-scope-toolbar`,n),...r,children:[(0,L.jsx)(hk,{items:e}),(0,L.jsx)(`div`,{className:`project-scope-toolbar-action`,children:t})]})}function _k({command:e,terminalLabel:t=`Install and start in your terminal`,copyLabel:n=`Copy`,copyAriaLabel:r=`Copy launch command`,commandAriaLabel:i=`Launch command`,onCopyCommand:a,className:o,...s}){return(0,L.jsxs)(`section`,{className:q(`project-launch-terminal`,o),...s,children:[(0,L.jsxs)(`div`,{className:`project-launch-terminal-bar`,children:[(0,L.jsx)(`span`,{children:t}),a===void 0?null:(0,L.jsxs)(J,{className:`project-launch-copy-button`,type:`button`,"aria-label":r,onClick:()=>a(e),children:[(0,L.jsx)(ex,{"aria-hidden":`true`}),n]})]}),(0,L.jsx)(`pre`,{className:`project-launch-command-block`,"aria-label":i,children:(0,L.jsx)(`code`,{children:(0,L.jsxs)(`span`,{className:`project-launch-command-line`,children:[(0,L.jsx)(`span`,{className:`project-launch-command-prompt`,"aria-hidden":`true`,children:`>`}),(0,L.jsx)(`span`,{children:e})]})})})]})}function vk({open:e,onOpenChange:t,status:n=`opening`,description:r,command:i,onCopyCommand:a,retryHref:o,onRetry:s}){return(0,L.jsx)(Ck,{open:e,onOpenChange:t,title:`Projects on this computer`,description:n===`opening`?`Opening Tutti…`:`Tutti did not open in this tab.`,className:`project-local-handoff-dialog-card`,children:(0,L.jsxs)(`div`,{className:`project-local-handoff-dialog-body`,children:[(0,L.jsxs)(`div`,{className:`project-local-handoff-intro`,children:[(0,L.jsx)(`span`,{className:`project-local-handoff-icon`,"aria-hidden":`true`,children:(0,L.jsx)(Hx,{})}),(0,L.jsx)(`p`,{children:r})]}),(0,L.jsx)(_k,{command:i,...a===void 0?{}:{onCopyCommand:a}}),n!==`failed`||o===void 0?null:(0,L.jsx)(`div`,{className:`project-local-handoff-actions`,children:(0,L.jsx)(pw,{asChild:!0,children:(0,L.jsxs)(`a`,{href:o,...s===void 0?{}:{onClick:s},children:[(0,L.jsx)(kx,{"aria-hidden":`true`}),`Retry`]})})})]})})}function yk({open:e,onOpenChange:t,projectName:n,state:r,command:i,unavailableMessage:a,onCopyCommand:o}){let s=r===`loading`?{icon:(0,L.jsx)(kx,{"aria-hidden":`true`}),message:`Reading the connection state from the running Host…`}:r===`pairing_required`?{icon:(0,L.jsx)(Hx,{"aria-hidden":`true`}),message:`In the target Feishu group, send this command once.`}:r===`connected`?{icon:(0,L.jsx)(Ox,{"aria-hidden":`true`}),message:`This project is connected to its Feishu project group.`}:r===`not_recoverable`?{icon:(0,L.jsx)(Yb,{"aria-hidden":`true`}),message:`The previous pairing command is no longer available. Stop and Resume this project to issue a new one.`}:r===`account_handoff_required`?{icon:(0,L.jsx)(Yb,{"aria-hidden":`true`}),message:`This Host needs a fresh Tutti account handoff. Sign in to Local Console again, then Stop and Resume the project.`}:{icon:(0,L.jsx)(Yb,{"aria-hidden":`true`}),message:a??`The Feishu connection state is temporarily unavailable. Try again from Connect.`};return(0,L.jsx)(Ck,{open:e,onOpenChange:t,title:`Feishu connection`,description:`Connect ${n} to a Feishu project group.`,className:`project-local-handoff-dialog-card`,children:(0,L.jsxs)(`div`,{className:`project-local-handoff-dialog-body`,children:[(0,L.jsxs)(`div`,{className:`project-local-handoff-intro`,"aria-live":`polite`,children:[(0,L.jsx)(`span`,{className:`project-local-handoff-icon`,"aria-hidden":`true`,children:s.icon}),(0,L.jsx)(`p`,{children:s.message})]}),r===`pairing_required`&&i!==void 0?(0,L.jsx)(_k,{command:i,terminalLabel:`Send in the target Feishu group`,copyAriaLabel:`Copy connection command`,commandAriaLabel:`Connection command`,...o===void 0?{}:{onCopyCommand:o}}):null]})})}function bk({children:e,className:t,...n}){return(0,L.jsx)(`ul`,{className:q(`project-list`,t),"aria-label":`Recent projects`,...n,children:e})}function xk({children:e,className:t,...n}){return(0,L.jsx)(`section`,{className:q(`project-list-surface`,t),...n,children:(0,L.jsx)(bk,{children:e})})}function Sk({children:e,className:t,...n}){return(0,L.jsx)(`li`,{className:q(`project-list-item project-list-state-row`,t),...n,children:e})}function Ck({open:e,onOpenChange:t,title:n,description:r,headerAction:i,children:a,closeDisabled:o=!1,explicitCloseOnly:s=!1,className:c}){return(0,L.jsxs)(LD,{open:e,onOpenChange:e=>{(e||!o)&&t(e)},children:[(0,L.jsx)(UD,{className:`product-entry-dialog-overlay`}),(0,L.jsx)(qD,{asChild:!0,...r===void 0?{"aria-describedby":void 0}:{},onEscapeKeyDown:e=>{(o||s)&&e.preventDefault()},onInteractOutside:e=>{(o||s)&&e.preventDefault()},onPointerDownOutside:e=>{(o||s)&&e.preventDefault()},children:(0,L.jsxs)(ak,{className:q(`product-entry-dialog-card`,c),children:[(0,L.jsxs)(`header`,{className:`product-entry-dialog-header`,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(QD,{children:n}),r===void 0?null:(0,L.jsx)(eO,{children:r})]}),(0,L.jsxs)(`div`,{className:`product-entry-dialog-actions`,children:[i,(0,L.jsx)(nO,{asChild:!0,children:(0,L.jsx)(fw,{type:`button`,label:`Close`,icon:(0,L.jsx)(qx,{"aria-hidden":`true`}),disabled:o})})]})]}),a]})})]})}function wk({open:e,onOpenChange:t,inputLabel:n,placeholder:r,value:i,error:a,actionLabel:o=`Continue`,onValueChange:s,className:c,...l}){return(0,L.jsx)(Ck,{open:e,onOpenChange:t,title:`Join a project`,description:`Paste an invitation link or the full invitation message.`,className:`project-join-dialog-card`,children:(0,L.jsxs)(`form`,{className:q(`project-join-dialog-form`,c),...l,children:[(0,L.jsxs)(`div`,{className:`project-join-dialog-body`,children:[(0,L.jsx)(xw,{type:`text`,"aria-label":n,value:i,onChange:e=>s(e.target.value),autoFocus:!0,...r===void 0?{}:{placeholder:r}}),a==null?null:(0,L.jsx)(Ew,{children:a})]}),(0,L.jsx)(`footer`,{className:`project-join-dialog-actions`,children:(0,L.jsxs)(pw,{type:`submit`,disabled:i.trim()===``,children:[o,(0,L.jsx)(Vb,{"aria-hidden":`true`})]})})]})})}function Tk({open:e,onOpenChange:t,steps:n,currentStep:r,children:i,action:a,backAction:o,feedback:s,closeDisabled:c=!1,explicitCloseOnly:l=!1,className:u,...d}){return(0,L.jsxs)(Ck,{open:e,onOpenChange:t,title:`New project`,description:`Step ${r+1} of ${n.length}`,closeDisabled:c,explicitCloseOnly:l,className:`local-console-create-card`,children:[(0,L.jsx)(`ol`,{className:`local-console-create-steps`,"aria-label":`New project steps`,children:n.map((e,t)=>(0,L.jsxs)(`li`,{className:q(t===r?`is-current`:void 0,t<r?`is-complete`:void 0),"aria-current":t===r?`step`:void 0,children:[(0,L.jsx)(`span`,{"aria-hidden":`true`,children:t+1}),(0,L.jsx)(`small`,{children:e})]},e))}),(0,L.jsxs)(`form`,{className:q(`local-console-create-form`,u),...d,children:[(0,L.jsx)(`div`,{className:`local-console-create-body`,children:i}),s===void 0?null:(0,L.jsx)(`div`,{className:`local-console-create-feedback`,children:s}),(0,L.jsxs)(`footer`,{className:`local-console-create-actions`,children:[(0,L.jsx)(`div`,{children:o}),(0,L.jsx)(`div`,{children:a})]})]})]})}function Ek({children:e,className:t,...n}){return(0,L.jsx)(`div`,{className:q(`local-console-form-grid`,t),...n,children:e})}function Dk({children:e,className:t,...n}){return(0,L.jsx)(`div`,{className:q(`local-console-inline-actions`,t),...n,children:e})}function Ok({title:e,children:t}){return(0,L.jsxs)(`details`,{className:`local-console-field-group product-disclosure`,children:[(0,L.jsx)(`summary`,{children:e}),(0,L.jsx)(`div`,{className:`local-console-field-group-body`,children:t})]})}function kk({title:e,description:t,children:n,className:r,...i}){return(0,L.jsxs)(`section`,{className:q(`local-console-field-group`,r),...i,children:[(0,L.jsxs)(`header`,{children:[(0,L.jsx)(`strong`,{children:e}),t===void 0?null:(0,L.jsx)(`small`,{children:t})]}),(0,L.jsx)(`div`,{className:`local-console-field-group-body`,children:n})]})}function Ak({path:e,className:t,...n}){let r=Math.max(e.lastIndexOf(`/`),e.lastIndexOf(`\\`)),i=r>0&&r<e.length-1;return(0,L.jsx)(`span`,{className:q(`local-console-project-path`,t),title:e,...n,children:i?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`span`,{className:`local-console-project-path-prefix`,children:e.slice(0,r)}),(0,L.jsx)(`span`,{className:`local-console-project-path-separator`,children:e[r]}),(0,L.jsx)(`span`,{className:`local-console-project-path-name`,children:e.slice(r+1)})]}):(0,L.jsx)(`span`,{className:`local-console-project-path-name`,children:e})})}function jk({title:e,status:t,path:n,createdLabel:r,modelLabel:i,surfaceLabel:a,actions:o,className:s,...c}){return(0,L.jsx)(`li`,{className:q(`project-list-item`,`local-console-project-item`,s),...c,children:(0,L.jsxs)(`div`,{className:q(`local-console-project-row`,t===`stopped`?`is-inactive`:`is-active`),children:[(0,L.jsx)(UO,{status:t}),(0,L.jsxs)(`span`,{className:`project-list-identity`,children:[(0,L.jsx)(`span`,{className:`local-console-project-title`,children:(0,L.jsx)(`strong`,{children:e})}),i===void 0&&a===void 0?null:(0,L.jsxs)(`span`,{className:`local-console-project-signals`,children:[i===void 0?null:(0,L.jsx)(`small`,{className:`local-console-provider-model`,children:i}),a===void 0?null:(0,L.jsx)(`small`,{className:`local-console-project-surface`,children:a})]})]}),(0,L.jsxs)(`span`,{className:`local-console-project-metadata`,children:[(0,L.jsx)(`strong`,{className:`local-console-project-date`,children:r}),(0,L.jsx)(Ak,{path:n})]}),(0,L.jsx)(`span`,{className:`local-console-project-actions`,children:o})]})})}function Mk(e,t){let n=t||{};return(e[e.length-1]===``?[...e,``]:e).join((n.padRight?` `:``)+`,`+(n.padLeft===!1?``:` `)).trim()}var Nk=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Pk=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Fk={};function Ik(e,t){return((t||Fk).jsx?Pk:Nk).test(e)}var Lk=/[ \t\n\f\r]/g;function Rk(e){return typeof e==`object`?e.type===`text`?zk(e.value):!1:zk(e)}function zk(e){return e.replace(Lk,``)===``}var Bk=class{constructor(e,t,n){this.normal=t,this.property=e,n&&(this.space=n)}};Bk.prototype.normal={},Bk.prototype.property={},Bk.prototype.space=void 0;function Vk(e,t){let n={},r={};for(let t of e)Object.assign(n,t.property),Object.assign(r,t.normal);return new Bk(n,r,t)}function Hk(e){return e.toLowerCase()}var Uk=class{constructor(e,t){this.attribute=t,this.property=e}};Uk.prototype.attribute=``,Uk.prototype.booleanish=!1,Uk.prototype.boolean=!1,Uk.prototype.commaOrSpaceSeparated=!1,Uk.prototype.commaSeparated=!1,Uk.prototype.defined=!1,Uk.prototype.mustUseProperty=!1,Uk.prototype.number=!1,Uk.prototype.overloadedBoolean=!1,Uk.prototype.property=``,Uk.prototype.spaceSeparated=!1,Uk.prototype.space=void 0;var Wk=s({boolean:()=>Kk,booleanish:()=>qk,commaOrSpaceSeparated:()=>Zk,commaSeparated:()=>Xk,number:()=>Y,overloadedBoolean:()=>Jk,spaceSeparated:()=>Yk}),Gk=0,Kk=Qk(),qk=Qk(),Jk=Qk(),Y=Qk(),Yk=Qk(),Xk=Qk(),Zk=Qk();function Qk(){return 2**++Gk}var $k=Object.keys(Wk),eA=class extends Uk{constructor(e,t,n,r){let i=-1;if(super(e,t),tA(this,`space`,r),typeof n==`number`)for(;++i<$k.length;){let e=$k[i];tA(this,$k[i],(n&Wk[e])===Wk[e])}}};eA.prototype.defined=!0;function tA(e,t,n){n&&(e[t]=n)}function nA(e){let t={},n={};for(let[r,i]of Object.entries(e.properties)){let a=new eA(r,e.transform(e.attributes||{},r),i,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(a.mustUseProperty=!0),t[r]=a,n[Hk(r)]=r,n[Hk(a.attribute)]=r}return new Bk(t,n,e.space)}var rA=nA({properties:{ariaActiveDescendant:null,ariaAtomic:qk,ariaAutoComplete:null,ariaBusy:qk,ariaChecked:qk,ariaColCount:Y,ariaColIndex:Y,ariaColSpan:Y,ariaControls:Yk,ariaCurrent:null,ariaDescribedBy:Yk,ariaDetails:null,ariaDisabled:qk,ariaDropEffect:Yk,ariaErrorMessage:null,ariaExpanded:qk,ariaFlowTo:Yk,ariaGrabbed:qk,ariaHasPopup:null,ariaHidden:qk,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:Yk,ariaLevel:Y,ariaLive:null,ariaModal:qk,ariaMultiLine:qk,ariaMultiSelectable:qk,ariaOrientation:null,ariaOwns:Yk,ariaPlaceholder:null,ariaPosInSet:Y,ariaPressed:qk,ariaReadOnly:qk,ariaRelevant:null,ariaRequired:qk,ariaRoleDescription:Yk,ariaRowCount:Y,ariaRowIndex:Y,ariaRowSpan:Y,ariaSelected:qk,ariaSetSize:Y,ariaSort:null,ariaValueMax:Y,ariaValueMin:Y,ariaValueNow:Y,ariaValueText:null,role:null},transform(e,t){return t===`role`?t:`aria-`+t.slice(4).toLowerCase()}});function iA(e,t){return t in e?e[t]:t}function aA(e,t){return iA(e,t.toLowerCase())}var oA=nA({attributes:{acceptcharset:`accept-charset`,classname:`class`,htmlfor:`for`,httpequiv:`http-equiv`},mustUseProperty:[`checked`,`multiple`,`muted`,`selected`],properties:{abbr:null,accept:Xk,acceptCharset:Yk,accessKey:Yk,action:null,allow:null,allowFullScreen:Kk,allowPaymentRequest:Kk,allowUserMedia:Kk,alt:null,as:null,async:Kk,autoCapitalize:null,autoComplete:Yk,autoFocus:Kk,autoPlay:Kk,blocking:Yk,capture:null,charSet:null,checked:Kk,cite:null,className:Yk,cols:Y,colSpan:null,content:null,contentEditable:qk,controls:Kk,controlsList:Yk,coords:Y|Xk,crossOrigin:null,data:null,dateTime:null,decoding:null,default:Kk,defer:Kk,dir:null,dirName:null,disabled:Kk,download:Jk,draggable:qk,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:Kk,formTarget:null,headers:Yk,height:Y,hidden:Jk,high:Y,href:null,hrefLang:null,htmlFor:Yk,httpEquiv:Yk,id:null,imageSizes:null,imageSrcSet:null,inert:Kk,inputMode:null,integrity:null,is:null,isMap:Kk,itemId:null,itemProp:Yk,itemRef:Yk,itemScope:Kk,itemType:Yk,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:Kk,low:Y,manifest:null,max:null,maxLength:Y,media:null,method:null,min:null,minLength:Y,multiple:Kk,muted:Kk,name:null,nonce:null,noModule:Kk,noValidate:Kk,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:Kk,optimum:Y,pattern:null,ping:Yk,placeholder:null,playsInline:Kk,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:Kk,referrerPolicy:null,rel:Yk,required:Kk,reversed:Kk,rows:Y,rowSpan:Y,sandbox:Yk,scope:null,scoped:Kk,seamless:Kk,selected:Kk,shadowRootClonable:Kk,shadowRootDelegatesFocus:Kk,shadowRootMode:null,shape:null,size:Y,sizes:null,slot:null,span:Y,spellCheck:qk,src:null,srcDoc:null,srcLang:null,srcSet:null,start:Y,step:null,style:null,tabIndex:Y,target:null,title:null,translate:null,type:null,typeMustMatch:Kk,useMap:null,value:qk,width:Y,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:Yk,axis:null,background:null,bgColor:null,border:Y,borderColor:null,bottomMargin:Y,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:Kk,declare:Kk,event:null,face:null,frame:null,frameBorder:null,hSpace:Y,leftMargin:Y,link:null,longDesc:null,lowSrc:null,marginHeight:Y,marginWidth:Y,noResize:Kk,noHref:Kk,noShade:Kk,noWrap:Kk,object:null,profile:null,prompt:null,rev:null,rightMargin:Y,rules:null,scheme:null,scrolling:qk,standby:null,summary:null,text:null,topMargin:Y,valueType:null,version:null,vAlign:null,vLink:null,vSpace:Y,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:Kk,disableRemotePlayback:Kk,prefix:null,property:null,results:Y,security:null,unselectable:null},space:`html`,transform:aA}),sA=nA({attributes:{accentHeight:`accent-height`,alignmentBaseline:`alignment-baseline`,arabicForm:`arabic-form`,baselineShift:`baseline-shift`,capHeight:`cap-height`,className:`class`,clipPath:`clip-path`,clipRule:`clip-rule`,colorInterpolation:`color-interpolation`,colorInterpolationFilters:`color-interpolation-filters`,colorProfile:`color-profile`,colorRendering:`color-rendering`,crossOrigin:`crossorigin`,dataType:`datatype`,dominantBaseline:`dominant-baseline`,enableBackground:`enable-background`,fillOpacity:`fill-opacity`,fillRule:`fill-rule`,floodColor:`flood-color`,floodOpacity:`flood-opacity`,fontFamily:`font-family`,fontSize:`font-size`,fontSizeAdjust:`font-size-adjust`,fontStretch:`font-stretch`,fontStyle:`font-style`,fontVariant:`font-variant`,fontWeight:`font-weight`,glyphName:`glyph-name`,glyphOrientationHorizontal:`glyph-orientation-horizontal`,glyphOrientationVertical:`glyph-orientation-vertical`,hrefLang:`hreflang`,horizAdvX:`horiz-adv-x`,horizOriginX:`horiz-origin-x`,horizOriginY:`horiz-origin-y`,imageRendering:`image-rendering`,letterSpacing:`letter-spacing`,lightingColor:`lighting-color`,markerEnd:`marker-end`,markerMid:`marker-mid`,markerStart:`marker-start`,navDown:`nav-down`,navDownLeft:`nav-down-left`,navDownRight:`nav-down-right`,navLeft:`nav-left`,navNext:`nav-next`,navPrev:`nav-prev`,navRight:`nav-right`,navUp:`nav-up`,navUpLeft:`nav-up-left`,navUpRight:`nav-up-right`,onAbort:`onabort`,onActivate:`onactivate`,onAfterPrint:`onafterprint`,onBeforePrint:`onbeforeprint`,onBegin:`onbegin`,onCancel:`oncancel`,onCanPlay:`oncanplay`,onCanPlayThrough:`oncanplaythrough`,onChange:`onchange`,onClick:`onclick`,onClose:`onclose`,onCopy:`oncopy`,onCueChange:`oncuechange`,onCut:`oncut`,onDblClick:`ondblclick`,onDrag:`ondrag`,onDragEnd:`ondragend`,onDragEnter:`ondragenter`,onDragExit:`ondragexit`,onDragLeave:`ondragleave`,onDragOver:`ondragover`,onDragStart:`ondragstart`,onDrop:`ondrop`,onDurationChange:`ondurationchange`,onEmptied:`onemptied`,onEnd:`onend`,onEnded:`onended`,onError:`onerror`,onFocus:`onfocus`,onFocusIn:`onfocusin`,onFocusOut:`onfocusout`,onHashChange:`onhashchange`,onInput:`oninput`,onInvalid:`oninvalid`,onKeyDown:`onkeydown`,onKeyPress:`onkeypress`,onKeyUp:`onkeyup`,onLoad:`onload`,onLoadedData:`onloadeddata`,onLoadedMetadata:`onloadedmetadata`,onLoadStart:`onloadstart`,onMessage:`onmessage`,onMouseDown:`onmousedown`,onMouseEnter:`onmouseenter`,onMouseLeave:`onmouseleave`,onMouseMove:`onmousemove`,onMouseOut:`onmouseout`,onMouseOver:`onmouseover`,onMouseUp:`onmouseup`,onMouseWheel:`onmousewheel`,onOffline:`onoffline`,onOnline:`ononline`,onPageHide:`onpagehide`,onPageShow:`onpageshow`,onPaste:`onpaste`,onPause:`onpause`,onPlay:`onplay`,onPlaying:`onplaying`,onPopState:`onpopstate`,onProgress:`onprogress`,onRateChange:`onratechange`,onRepeat:`onrepeat`,onReset:`onreset`,onResize:`onresize`,onScroll:`onscroll`,onSeeked:`onseeked`,onSeeking:`onseeking`,onSelect:`onselect`,onShow:`onshow`,onStalled:`onstalled`,onStorage:`onstorage`,onSubmit:`onsubmit`,onSuspend:`onsuspend`,onTimeUpdate:`ontimeupdate`,onToggle:`ontoggle`,onUnload:`onunload`,onVolumeChange:`onvolumechange`,onWaiting:`onwaiting`,onZoom:`onzoom`,overlinePosition:`overline-position`,overlineThickness:`overline-thickness`,paintOrder:`paint-order`,panose1:`panose-1`,pointerEvents:`pointer-events`,referrerPolicy:`referrerpolicy`,renderingIntent:`rendering-intent`,shapeRendering:`shape-rendering`,stopColor:`stop-color`,stopOpacity:`stop-opacity`,strikethroughPosition:`strikethrough-position`,strikethroughThickness:`strikethrough-thickness`,strokeDashArray:`stroke-dasharray`,strokeDashOffset:`stroke-dashoffset`,strokeLineCap:`stroke-linecap`,strokeLineJoin:`stroke-linejoin`,strokeMiterLimit:`stroke-miterlimit`,strokeOpacity:`stroke-opacity`,strokeWidth:`stroke-width`,tabIndex:`tabindex`,textAnchor:`text-anchor`,textDecoration:`text-decoration`,textRendering:`text-rendering`,transformOrigin:`transform-origin`,typeOf:`typeof`,underlinePosition:`underline-position`,underlineThickness:`underline-thickness`,unicodeBidi:`unicode-bidi`,unicodeRange:`unicode-range`,unitsPerEm:`units-per-em`,vAlphabetic:`v-alphabetic`,vHanging:`v-hanging`,vIdeographic:`v-ideographic`,vMathematical:`v-mathematical`,vectorEffect:`vector-effect`,vertAdvY:`vert-adv-y`,vertOriginX:`vert-origin-x`,vertOriginY:`vert-origin-y`,wordSpacing:`word-spacing`,writingMode:`writing-mode`,xHeight:`x-height`,playbackOrder:`playbackorder`,timelineBegin:`timelinebegin`},properties:{about:Zk,accentHeight:Y,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:Y,amplitude:Y,arabicForm:null,ascent:Y,attributeName:null,attributeType:null,azimuth:Y,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:Y,by:null,calcMode:null,capHeight:Y,className:Yk,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:Y,diffuseConstant:Y,direction:null,display:null,dur:null,divisor:Y,dominantBaseline:null,download:Kk,dx:null,dy:null,edgeMode:null,editable:null,elevation:Y,enableBackground:null,end:null,event:null,exponent:Y,externalResourcesRequired:null,fill:null,fillOpacity:Y,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:Xk,g2:Xk,glyphName:Xk,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:Y,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:Y,horizOriginX:Y,horizOriginY:Y,id:null,ideographic:Y,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:Y,k:Y,k1:Y,k2:Y,k3:Y,k4:Y,kernelMatrix:Zk,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:Y,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:Y,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:Y,overlineThickness:Y,paintOrder:null,panose1:null,path:null,pathLength:Y,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:Yk,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:Y,pointsAtY:Y,pointsAtZ:Y,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:Zk,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:Zk,rev:Zk,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:Zk,requiredFeatures:Zk,requiredFonts:Zk,requiredFormats:Zk,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:Y,specularExponent:Y,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:Y,strikethroughThickness:Y,string:null,stroke:null,strokeDashArray:Zk,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:Y,strokeOpacity:Y,strokeWidth:null,style:null,surfaceScale:Y,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:Zk,tabIndex:Y,tableValues:null,target:null,targetX:Y,targetY:Y,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:Zk,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:Y,underlineThickness:Y,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:Y,values:null,vAlphabetic:Y,vMathematical:Y,vectorEffect:null,vHanging:Y,vIdeographic:Y,version:null,vertAdvY:Y,vertOriginX:Y,vertOriginY:Y,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:Y,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:`svg`,transform:iA}),cA=nA({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:`xlink`,transform(e,t){return`xlink:`+t.slice(5).toLowerCase()}}),lA=nA({attributes:{xmlnsxlink:`xmlns:xlink`},properties:{xmlnsXLink:null,xmlns:null},space:`xmlns`,transform:aA}),uA=nA({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:`xml`,transform(e,t){return`xml:`+t.slice(3).toLowerCase()}}),dA={classId:`classID`,dataType:`datatype`,itemId:`itemID`,strokeDashArray:`strokeDasharray`,strokeDashOffset:`strokeDashoffset`,strokeLineCap:`strokeLinecap`,strokeLineJoin:`strokeLinejoin`,strokeMiterLimit:`strokeMiterlimit`,typeOf:`typeof`,xLinkActuate:`xlinkActuate`,xLinkArcRole:`xlinkArcrole`,xLinkHref:`xlinkHref`,xLinkRole:`xlinkRole`,xLinkShow:`xlinkShow`,xLinkTitle:`xlinkTitle`,xLinkType:`xlinkType`,xmlnsXLink:`xmlnsXlink`},fA=/[A-Z]/g,pA=/-[a-z]/g,mA=/^data[-\w.:]+$/i;function hA(e,t){let n=Hk(t),r=t,i=Uk;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)===`data`&&mA.test(t)){if(t.charAt(4)===`-`){let e=t.slice(5).replace(pA,_A);r=`data`+e.charAt(0).toUpperCase()+e.slice(1)}else{let e=t.slice(4);if(!pA.test(e)){let n=e.replace(fA,gA);n.charAt(0)!==`-`&&(n=`-`+n),t=`data`+n}}i=eA}return new i(r,t)}function gA(e){return`-`+e.toLowerCase()}function _A(e){return e.charAt(1).toUpperCase()}var vA=Vk([rA,oA,cA,lA,uA],`html`),yA=Vk([rA,sA,cA,lA,uA],`svg`);function bA(e){return e.join(` `).trim()}var xA=o(((e,t)=>{var n=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,r=/\n/g,i=/^\s*/,a=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,o=/^:\s*/,s=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,c=/^[;\s]*/,l=/^\s+|\s+$/g,u=`
|
|
50
50
|
`,d=`/`,f=`*`,p=``,m=`comment`,h=`declaration`;function g(e,t){if(typeof e!=`string`)throw TypeError(`First argument must be a string`);if(!e)return[];t||={};var l=1,g=1;function v(e){var t=e.match(r);t&&(l+=t.length);var n=e.lastIndexOf(u);g=~n?e.length-n:g+e.length}function y(){var e={line:l,column:g};return function(t){return t.position=new b(e),C(),t}}function b(e){this.start=e,this.end={line:l,column:g},this.source=t.source}b.prototype.content=e;function x(n){var r=Error(t.source+`:`+l+`:`+g+`: `+n);if(r.reason=n,r.filename=t.source,r.line=l,r.column=g,r.source=e,!t.silent)throw r}function S(t){var n=t.exec(e);if(n){var r=n[0];return v(r),e=e.slice(r.length),n}}function C(){S(i)}function w(e){var t;for(e||=[];t=T();)t!==!1&&e.push(t);return e}function T(){var t=y();if(!(d!=e.charAt(0)||f!=e.charAt(1))){for(var n=2;p!=e.charAt(n)&&(f!=e.charAt(n)||d!=e.charAt(n+1));)++n;if(n+=2,p===e.charAt(n-1))return x(`End of comment missing`);var r=e.slice(2,n-2);return g+=2,v(r),e=e.slice(n),g+=2,t({type:m,comment:r})}}function E(){var e=y(),t=S(a);if(t){if(T(),!S(o))return x(`property missing ':'`);var r=S(s),i=e({type:h,property:_(t[0].replace(n,p)),value:r?_(r[0].replace(n,p)):p});return S(c),i}}function D(){var e=[];w(e);for(var t;t=E();)t!==!1&&(e.push(t),w(e));return e}return C(),D()}function _(e){return e?e.replace(l,p):p}t.exports=g})),SA=o((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,`__esModule`,{value:!0}),e.default=r;var n=t(xA());function r(e,t){let r=null;if(!e||typeof e!=`string`)return r;let i=(0,n.default)(e),a=typeof t==`function`;return i.forEach(e=>{if(e.type!==`declaration`)return;let{property:n,value:i}=e;a?t(n,i,e):i&&(r||={},r[n]=i)}),r}})),CA=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.camelCase=void 0;var t=/^--[a-zA-Z0-9_-]+$/,n=/-([a-z])/g,r=/^[^-]+$/,i=/^-(webkit|moz|ms|o|khtml)-/,a=/^-(ms)-/,o=function(e){return!e||r.test(e)||t.test(e)},s=function(e,t){return t.toUpperCase()},c=function(e,t){return`${t}-`};e.camelCase=function(e,t){return t===void 0&&(t={}),o(e)?e:(e=e.toLowerCase(),e=t.reactCompat?e.replace(a,c):e.replace(i,c),e.replace(n,s))}})),wA=o(((e,t)=>{var n=(e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}})(SA()),r=CA();function i(e,t){var i={};return!e||typeof e!=`string`||(0,n.default)(e,function(e,n){e&&n&&(i[(0,r.camelCase)(e,t)]=n)}),i}i.default=i,t.exports=i})),TA=DA(`end`),EA=DA(`start`);function DA(e){return t;function t(t){let n=t&&t.position&&t.position[e]||{};if(typeof n.line==`number`&&n.line>0&&typeof n.column==`number`&&n.column>0)return{line:n.line,column:n.column,offset:typeof n.offset==`number`&&n.offset>-1?n.offset:void 0}}}function OA(e){let t=EA(e),n=TA(e);if(t&&n)return{start:t,end:n}}function kA(e){return!e||typeof e!=`object`?``:`position`in e||`type`in e?jA(e.position):`start`in e||`end`in e?jA(e):`line`in e||`column`in e?AA(e):``}function AA(e){return MA(e&&e.line)+`:`+MA(e&&e.column)}function jA(e){return AA(e&&e.start)+`-`+AA(e&&e.end)}function MA(e){return e&&typeof e==`number`?e:1}var NA=class extends Error{constructor(e,t,n){super(),typeof t==`string`&&(n=t,t=void 0);let r=``,i={},a=!1;if(t&&(i=`line`in t&&`column`in t||`start`in t&&`end`in t?{place:t}:`type`in t?{ancestors:[t],place:t.position}:{...t}),typeof e==`string`?r=e:!i.cause&&e&&(a=!0,r=e.message,i.cause=e),!i.ruleId&&!i.source&&typeof n==`string`){let e=n.indexOf(`:`);e===-1?i.ruleId=n:(i.source=n.slice(0,e),i.ruleId=n.slice(e+1))}if(!i.place&&i.ancestors&&i.ancestors){let e=i.ancestors[i.ancestors.length-1];e&&(i.place=e.position)}let o=i.place&&`start`in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=o?o.column:void 0,this.fatal=void 0,this.file=``,this.message=r,this.line=o?o.line:void 0,this.name=kA(i.place)||`1:1`,this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=a&&i.cause&&typeof i.cause.stack==`string`?i.cause.stack:``,this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}};NA.prototype.file=``,NA.prototype.name=``,NA.prototype.reason=``,NA.prototype.message=``,NA.prototype.stack=``,NA.prototype.column=void 0,NA.prototype.line=void 0,NA.prototype.ancestors=void 0,NA.prototype.cause=void 0,NA.prototype.fatal=void 0,NA.prototype.place=void 0,NA.prototype.ruleId=void 0,NA.prototype.source=void 0;var PA=l(wA(),1),FA={}.hasOwnProperty,IA=new Map,LA=/[A-Z]/g,RA=new Set([`table`,`tbody`,`thead`,`tfoot`,`tr`]),zA=new Set([`td`,`th`]),BA=`https://github.com/syntax-tree/hast-util-to-jsx-runtime`;function VA(e,t){if(!t||t.Fragment===void 0)throw TypeError("Expected `Fragment` in options");let n=t.filePath||void 0,r;if(t.development){if(typeof t.jsxDEV!=`function`)throw TypeError("Expected `jsxDEV` in options when `development: true`");r=QA(n,t.jsxDEV)}else{if(typeof t.jsx!=`function`)throw TypeError("Expected `jsx` in production options");if(typeof t.jsxs!=`function`)throw TypeError("Expected `jsxs` in production options");r=ZA(n,t.jsx,t.jsxs)}let i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||`react`,evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space===`svg`?yA:vA,stylePropertyNameCase:t.stylePropertyNameCase||`dom`,tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},a=HA(i,e,void 0);return a&&typeof a!=`string`?a:i.create(e,i.Fragment,{children:a||void 0},void 0)}function HA(e,t,n){if(t.type===`element`)return UA(e,t,n);if(t.type===`mdxFlowExpression`||t.type===`mdxTextExpression`)return WA(e,t);if(t.type===`mdxJsxFlowElement`||t.type===`mdxJsxTextElement`)return KA(e,t,n);if(t.type===`mdxjsEsm`)return GA(e,t);if(t.type===`root`)return qA(e,t,n);if(t.type===`text`)return JA(e,t)}function UA(e,t,n){let r=e.schema,i=r;t.tagName.toLowerCase()===`svg`&&r.space===`html`&&(i=yA,e.schema=i),e.ancestors.push(t);let a=ij(e,t.tagName,!1),o=$A(e,t),s=tj(e,t);return RA.has(t.tagName)&&(s=s.filter(function(e){return typeof e==`string`?!Rk(e):!0})),YA(e,o,a,t),XA(o,s),e.ancestors.pop(),e.schema=r,e.create(t,a,o,n)}function WA(e,t){if(t.data&&t.data.estree&&e.evaluater){let n=t.data.estree.body[0];return n.type,e.evaluater.evaluateExpression(n.expression)}aj(e,t.position)}function GA(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);aj(e,t.position)}function KA(e,t,n){let r=e.schema,i=r;t.name===`svg`&&r.space===`html`&&(i=yA,e.schema=i),e.ancestors.push(t);let a=t.name===null?e.Fragment:ij(e,t.name,!0),o=ej(e,t),s=tj(e,t);return YA(e,o,a,t),XA(o,s),e.ancestors.pop(),e.schema=r,e.create(t,a,o,n)}function qA(e,t,n){let r={};return XA(r,tj(e,t)),e.create(t,e.Fragment,r,n)}function JA(e,t){return t.value}function YA(e,t,n,r){typeof n!=`string`&&n!==e.Fragment&&e.passNode&&(t.node=r)}function XA(e,t){if(t.length>0){let n=t.length>1?t:t[0];n&&(e.children=n)}}function ZA(e,t,n){return r;function r(e,r,i,a){let o=Array.isArray(i.children)?n:t;return a?o(r,i,a):o(r,i)}}function QA(e,t){return n;function n(n,r,i,a){let o=Array.isArray(i.children),s=EA(n);return t(r,i,a,o,{columnNumber:s?s.column-1:void 0,fileName:e,lineNumber:s?s.line:void 0},void 0)}}function $A(e,t){let n={},r,i;for(i in t.properties)if(i!==`children`&&FA.call(t.properties,i)){let a=nj(e,i,t.properties[i]);if(a){let[i,o]=a;e.tableCellAlignToStyle&&i===`align`&&typeof o==`string`&&zA.has(t.tagName)?r=o:n[i]=o}}if(r){let t=n.style||={};t[e.stylePropertyNameCase===`css`?`text-align`:`textAlign`]=r}return n}function ej(e,t){let n={};for(let r of t.attributes)if(r.type===`mdxJsxExpressionAttribute`)if(r.data&&r.data.estree&&e.evaluater){let t=r.data.estree.body[0];t.type;let i=t.expression;i.type;let a=i.properties[0];a.type,Object.assign(n,e.evaluater.evaluateExpression(a.argument))}else aj(e,t.position);else{let i=r.name,a;if(r.value&&typeof r.value==`object`)if(r.value.data&&r.value.data.estree&&e.evaluater){let t=r.value.data.estree.body[0];t.type,a=e.evaluater.evaluateExpression(t.expression)}else aj(e,t.position);else a=r.value===null?!0:r.value;n[i]=a}return n}function tj(e,t){let n=[],r=-1,i=e.passKeys?new Map:IA;for(;++r<t.children.length;){let a=t.children[r],o;if(e.passKeys){let e=a.type===`element`?a.tagName:a.type===`mdxJsxFlowElement`||a.type===`mdxJsxTextElement`?a.name:void 0;if(e){let t=i.get(e)||0;o=e+`-`+t,i.set(e,t+1)}}let s=HA(e,a,o);s!==void 0&&n.push(s)}return n}function nj(e,t,n){let r=hA(e.schema,t);if(!(n==null||typeof n==`number`&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?Mk(n):bA(n)),r.property===`style`){let t=typeof n==`object`?n:rj(e,String(n));return e.stylePropertyNameCase===`css`&&(t=oj(t)),[`style`,t]}return[e.elementAttributeNameCase===`react`&&r.space?dA[r.property]||r.property:r.attribute,n]}}function rj(e,t){try{return(0,PA.default)(t,{reactCompat:!0})}catch(t){if(e.ignoreInvalidStyle)return{};let n=t,r=new NA("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:n,ruleId:`style`,source:`hast-util-to-jsx-runtime`});throw r.file=e.filePath||void 0,r.url=BA+`#cannot-parse-style-attribute`,r}}function ij(e,t,n){let r;if(!n)r={type:`Literal`,value:t};else if(t.includes(`.`)){let e=t.split(`.`),n=-1,i;for(;++n<e.length;){let t=Ik(e[n])?{type:`Identifier`,name:e[n]}:{type:`Literal`,value:e[n]};i=i?{type:`MemberExpression`,object:i,property:t,computed:!!(n&&t.type===`Literal`),optional:!1}:t}r=i}else r=Ik(t)&&!/^[a-z]/.test(t)?{type:`Identifier`,name:t}:{type:`Literal`,value:t};if(r.type===`Literal`){let t=r.value;return FA.call(e.components,t)?e.components[t]:t}if(e.evaluater)return e.evaluater.evaluateExpression(r);aj(e)}function aj(e,t){let n=new NA("Cannot handle MDX estrees without `createEvaluater`",{ancestors:e.ancestors,place:t,ruleId:`mdx-estree`,source:`hast-util-to-jsx-runtime`});throw n.file=e.filePath||void 0,n.url=BA+`#cannot-handle-mdx-estrees-without-createevaluater`,n}function oj(e){let t={},n;for(n in e)FA.call(e,n)&&(t[sj(n)]=e[n]);return t}function sj(e){let t=e.replace(LA,cj);return t.slice(0,3)===`ms-`&&(t=`-`+t),t}function cj(e){return`-`+e.toLowerCase()}var lj={action:[`form`],cite:[`blockquote`,`del`,`ins`,`q`],data:[`object`],formAction:[`button`,`input`],href:[`a`,`area`,`base`,`link`],icon:[`menuitem`],itemId:null,manifest:[`html`],ping:[`a`,`area`],poster:[`video`],src:[`audio`,`embed`,`iframe`,`img`,`input`,`script`,`source`,`track`,`video`]},uj={};function dj(e,t){let n=t||uj;return fj(e,typeof n.includeImageAlt==`boolean`?n.includeImageAlt:!0,typeof n.includeHtml==`boolean`?n.includeHtml:!0)}function fj(e,t,n){if(mj(e)){if(`value`in e)return e.type===`html`&&!n?``:e.value;if(t&&`alt`in e&&e.alt)return e.alt;if(`children`in e)return pj(e.children,t,n)}return Array.isArray(e)?pj(e,t,n):``}function pj(e,t,n){let r=[],i=-1;for(;++i<e.length;)r[i]=fj(e[i],t,n);return r.join(``)}function mj(e){return!!(e&&typeof e==`object`)}var hj=document.createElement(`i`);function gj(e){let t=`&`+e+`;`;hj.innerHTML=t;let n=hj.textContent;return n.charCodeAt(n.length-1)===59&&e!==`semi`||n===t?!1:n}function _j(e,t,n,r){let i=e.length,a=0,o;if(t=t<0?-t>i?0:i+t:t>i?i:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);a<r.length;)o=r.slice(a,a+1e4),o.unshift(t,0),e.splice(...o),a+=1e4,t+=1e4}function vj(e,t){return e.length>0?(_j(e,e.length,0,t),e):t}var yj={}.hasOwnProperty;function bj(e){let t={},n=-1;for(;++n<e.length;)xj(t,e[n]);return t}function xj(e,t){let n;for(n in t){let r=(yj.call(e,n)?e[n]:void 0)||(e[n]={}),i=t[n],a;if(i)for(a in i){yj.call(r,a)||(r[a]=[]);let e=i[a];Sj(r[a],Array.isArray(e)?e:e?[e]:[])}}}function Sj(e,t){let n=-1,r=[];for(;++n<t.length;)(t[n].add===`after`?e:r).push(t[n]);_j(e,0,0,r)}function Cj(e,t){let n=Number.parseInt(e,t);return n<9||n===11||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)==65535||(n&65535)==65534||n>1114111?`�`:String.fromCodePoint(n)}function wj(e){return e.replace(/[\t\n\r ]+/g,` `).replace(/^ | $/g,``).toLowerCase().toUpperCase()}var Tj=Lj(/[A-Za-z]/),Ej=Lj(/[\dA-Za-z]/),Dj=Lj(/[#-'*+\--9=?A-Z^-~]/);function Oj(e){return e!==null&&(e<32||e===127)}var kj=Lj(/\d/),Aj=Lj(/[\dA-Fa-f]/),jj=Lj(/[!-/:-@[-`{-~]/);function Mj(e){return e!==null&&e<-2}function Nj(e){return e!==null&&(e<0||e===32)}function Pj(e){return e===-2||e===-1||e===32}var Fj=Lj(/\p{P}|\p{S}/u),Ij=Lj(/\s/);function Lj(e){return t;function t(t){return t!==null&&t>-1&&e.test(String.fromCharCode(t))}}function Rj(e){let t=[],n=-1,r=0,i=0;for(;++n<e.length;){let a=e.charCodeAt(n),o=``;if(a===37&&Ej(e.charCodeAt(n+1))&&Ej(e.charCodeAt(n+2)))i=2;else if(a<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(a))||(o=String.fromCharCode(a));else if(a>55295&&a<57344){let t=e.charCodeAt(n+1);a<56320&&t>56319&&t<57344?(o=String.fromCharCode(a,t),i=1):o=`�`}else o=String.fromCharCode(a);o&&=(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+i+1,``),i&&=(n+=i,0)}return t.join(``)+e.slice(r)}function zj(e,t,n,r){let i=r?r-1:1/0,a=0;return o;function o(r){return Pj(r)?(e.enter(n),s(r)):t(r)}function s(r){return Pj(r)&&a++<i?(e.consume(r),s):(e.exit(n),t(r))}}var Bj={tokenize:Vj};function Vj(e){let t=e.attempt(this.parser.constructs.contentInitial,r,i),n;return t;function r(n){if(n===null){e.consume(n);return}return e.enter(`lineEnding`),e.consume(n),e.exit(`lineEnding`),zj(e,t,`linePrefix`)}function i(t){return e.enter(`paragraph`),a(t)}function a(t){let r=e.enter(`chunkText`,{contentType:`text`,previous:n});return n&&(n.next=r),n=r,o(t)}function o(t){if(t===null){e.exit(`chunkText`),e.exit(`paragraph`),e.consume(t);return}return Mj(t)?(e.consume(t),e.exit(`chunkText`),a):(e.consume(t),o)}}var Hj={tokenize:Wj},Uj={tokenize:Gj};function Wj(e){let t=this,n=[],r=0,i,a,o;return s;function s(i){if(r<n.length){let a=n[r];return t.containerState=a[1],e.attempt(a[0].continuation,c,l)(i)}return l(i)}function c(e){if(r++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,i&&v();let n=t.events.length,a=n,o;for(;a--;)if(t.events[a][0]===`exit`&&t.events[a][1].type===`chunkFlow`){o=t.events[a][1].end;break}_(r);let s=n;for(;s<t.events.length;)t.events[s][1].end={...o},s++;return _j(t.events,a+1,0,t.events.slice(n)),t.events.length=s,l(e)}return s(e)}function l(a){if(r===n.length){if(!i)return f(a);if(i.currentConstruct&&i.currentConstruct.concrete)return m(a);t.interrupt=!!(i.currentConstruct&&!i._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(Uj,u,d)(a)}function u(e){return i&&v(),_(r),f(e)}function d(e){return t.parser.lazy[t.now().line]=r!==n.length,o=t.now().offset,m(e)}function f(n){return t.containerState={},e.attempt(Uj,p,m)(n)}function p(e){return r++,n.push([t.currentConstruct,t.containerState]),f(e)}function m(n){if(n===null){i&&v(),_(0),e.consume(n);return}return i||=t.parser.flow(t.now()),e.enter(`chunkFlow`,{_tokenizer:i,contentType:`flow`,previous:a}),h(n)}function h(n){if(n===null){g(e.exit(`chunkFlow`),!0),_(0),e.consume(n);return}return Mj(n)?(e.consume(n),g(e.exit(`chunkFlow`)),r=0,t.interrupt=void 0,s):(e.consume(n),h)}function g(e,n){let s=t.sliceStream(e);if(n&&s.push(null),e.previous=a,a&&(a.next=e),a=e,i.defineSkip(e.start),i.write(s),t.parser.lazy[e.start.line]){let e=i.events.length;for(;e--;)if(i.events[e][1].start.offset<o&&(!i.events[e][1].end||i.events[e][1].end.offset>o))return;let n=t.events.length,a=n,s,c;for(;a--;)if(t.events[a][0]===`exit`&&t.events[a][1].type===`chunkFlow`){if(s){c=t.events[a][1].end;break}s=!0}for(_(r),e=n;e<t.events.length;)t.events[e][1].end={...c},e++;_j(t.events,a+1,0,t.events.slice(n)),t.events.length=e}}function _(r){let i=n.length;for(;i-- >r;){let r=n[i];t.containerState=r[1],r[0].exit.call(t,e)}n.length=r}function v(){i.write([null]),a=void 0,i=void 0,t.containerState._closeFlow=void 0}}function Gj(e,t,n){return zj(e,e.attempt(this.parser.constructs.document,t,n),`linePrefix`,this.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)}function Kj(e){if(e===null||Nj(e)||Ij(e))return 1;if(Fj(e))return 2}function qj(e,t,n){let r=[],i=-1;for(;++i<e.length;){let a=e[i].resolveAll;a&&!r.includes(a)&&(t=a(t,n),r.push(a))}return t}var Jj={name:`attention`,resolveAll:Yj,tokenize:Xj};function Yj(e,t){let n=-1,r,i,a,o,s,c,l,u;for(;++n<e.length;)if(e[n][0]===`enter`&&e[n][1].type===`attentionSequence`&&e[n][1]._close){for(r=n;r--;)if(e[r][0]===`exit`&&e[r][1].type===`attentionSequence`&&e[r][1]._open&&t.sliceSerialize(e[r][1]).charCodeAt(0)===t.sliceSerialize(e[n][1]).charCodeAt(0)){if((e[r][1]._close||e[n][1]._open)&&(e[n][1].end.offset-e[n][1].start.offset)%3&&!((e[r][1].end.offset-e[r][1].start.offset+e[n][1].end.offset-e[n][1].start.offset)%3))continue;c=e[r][1].end.offset-e[r][1].start.offset>1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;let d={...e[r][1].end},f={...e[n][1].start};Zj(d,-c),Zj(f,c),o={type:c>1?`strongSequence`:`emphasisSequence`,start:d,end:{...e[r][1].end}},s={type:c>1?`strongSequence`:`emphasisSequence`,start:{...e[n][1].start},end:f},a={type:c>1?`strongText`:`emphasisText`,start:{...e[r][1].end},end:{...e[n][1].start}},i={type:c>1?`strong`:`emphasis`,start:{...o.start},end:{...s.end}},e[r][1].end={...o.start},e[n][1].start={...s.end},l=[],e[r][1].end.offset-e[r][1].start.offset&&(l=vj(l,[[`enter`,e[r][1],t],[`exit`,e[r][1],t]])),l=vj(l,[[`enter`,i,t],[`enter`,o,t],[`exit`,o,t],[`enter`,a,t]]),l=vj(l,qj(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),l=vj(l,[[`exit`,a,t],[`enter`,s,t],[`exit`,s,t],[`exit`,i,t]]),e[n][1].end.offset-e[n][1].start.offset?(u=2,l=vj(l,[[`enter`,e[n][1],t],[`exit`,e[n][1],t]])):u=0,_j(e,r-1,n-r+3,l),n=r+l.length-u-2;break}}for(n=-1;++n<e.length;)e[n][1].type===`attentionSequence`&&(e[n][1].type=`data`);return e}function Xj(e,t){let n=this.parser.constructs.attentionMarkers.null,r=this.previous,i=Kj(r),a;return o;function o(t){return a=t,e.enter(`attentionSequence`),s(t)}function s(o){if(o===a)return e.consume(o),s;let c=e.exit(`attentionSequence`),l=Kj(o),u=!l||l===2&&i||n.includes(o),d=!i||i===2&&l||n.includes(r);return c._open=!!(a===42?u:u&&(i||!d)),c._close=!!(a===42?d:d&&(l||!u)),t(o)}}function Zj(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}var Qj={name:`autolink`,tokenize:$j};function $j(e,t,n){let r=0;return i;function i(t){return e.enter(`autolink`),e.enter(`autolinkMarker`),e.consume(t),e.exit(`autolinkMarker`),e.enter(`autolinkProtocol`),a}function a(t){return Tj(t)?(e.consume(t),o):t===64?n(t):l(t)}function o(e){return e===43||e===45||e===46||Ej(e)?(r=1,s(e)):l(e)}function s(t){return t===58?(e.consume(t),r=0,c):(t===43||t===45||t===46||Ej(t))&&r++<32?(e.consume(t),s):(r=0,l(t))}function c(r){return r===62?(e.exit(`autolinkProtocol`),e.enter(`autolinkMarker`),e.consume(r),e.exit(`autolinkMarker`),e.exit(`autolink`),t):r===null||r===32||r===60||Oj(r)?n(r):(e.consume(r),c)}function l(t){return t===64?(e.consume(t),u):Dj(t)?(e.consume(t),l):n(t)}function u(e){return Ej(e)?d(e):n(e)}function d(n){return n===46?(e.consume(n),r=0,u):n===62?(e.exit(`autolinkProtocol`).type=`autolinkEmail`,e.enter(`autolinkMarker`),e.consume(n),e.exit(`autolinkMarker`),e.exit(`autolink`),t):f(n)}function f(t){if((t===45||Ej(t))&&r++<63){let n=t===45?f:d;return e.consume(t),n}return n(t)}}var eM={partial:!0,tokenize:tM};function tM(e,t,n){return r;function r(t){return Pj(t)?zj(e,i,`linePrefix`)(t):i(t)}function i(e){return e===null||Mj(e)?t(e):n(e)}}var nM={continuation:{tokenize:iM},exit:aM,name:`blockQuote`,tokenize:rM};function rM(e,t,n){let r=this;return i;function i(t){if(t===62){let n=r.containerState;return n.open||=(e.enter(`blockQuote`,{_container:!0}),!0),e.enter(`blockQuotePrefix`),e.enter(`blockQuoteMarker`),e.consume(t),e.exit(`blockQuoteMarker`),a}return n(t)}function a(n){return Pj(n)?(e.enter(`blockQuotePrefixWhitespace`),e.consume(n),e.exit(`blockQuotePrefixWhitespace`),e.exit(`blockQuotePrefix`),t):(e.exit(`blockQuotePrefix`),t(n))}}function iM(e,t,n){let r=this;return i;function i(t){return Pj(t)?zj(e,a,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):a(t)}function a(r){return e.attempt(nM,t,n)(r)}}function aM(e){e.exit(`blockQuote`)}var oM={name:`characterEscape`,tokenize:sM};function sM(e,t,n){return r;function r(t){return e.enter(`characterEscape`),e.enter(`escapeMarker`),e.consume(t),e.exit(`escapeMarker`),i}function i(r){return jj(r)?(e.enter(`characterEscapeValue`),e.consume(r),e.exit(`characterEscapeValue`),e.exit(`characterEscape`),t):n(r)}}var cM={name:`characterReference`,tokenize:lM};function lM(e,t,n){let r=this,i=0,a,o;return s;function s(t){return e.enter(`characterReference`),e.enter(`characterReferenceMarker`),e.consume(t),e.exit(`characterReferenceMarker`),c}function c(t){return t===35?(e.enter(`characterReferenceMarkerNumeric`),e.consume(t),e.exit(`characterReferenceMarkerNumeric`),l):(e.enter(`characterReferenceValue`),a=31,o=Ej,u(t))}function l(t){return t===88||t===120?(e.enter(`characterReferenceMarkerHexadecimal`),e.consume(t),e.exit(`characterReferenceMarkerHexadecimal`),e.enter(`characterReferenceValue`),a=6,o=Aj,u):(e.enter(`characterReferenceValue`),a=7,o=kj,u(t))}function u(s){if(s===59&&i){let i=e.exit(`characterReferenceValue`);return o===Ej&&!gj(r.sliceSerialize(i))?n(s):(e.enter(`characterReferenceMarker`),e.consume(s),e.exit(`characterReferenceMarker`),e.exit(`characterReference`),t)}return o(s)&&i++<a?(e.consume(s),u):n(s)}}var uM={partial:!0,tokenize:pM},dM={concrete:!0,name:`codeFenced`,tokenize:fM};function fM(e,t,n){let r=this,i={partial:!0,tokenize:x},a=0,o=0,s;return c;function c(e){return l(e)}function l(t){let n=r.events[r.events.length-1];return a=n&&n[1].type===`linePrefix`?n[2].sliceSerialize(n[1],!0).length:0,s=t,e.enter(`codeFenced`),e.enter(`codeFencedFence`),e.enter(`codeFencedFenceSequence`),u(t)}function u(t){return t===s?(o++,e.consume(t),u):o<3?n(t):(e.exit(`codeFencedFenceSequence`),Pj(t)?zj(e,d,`whitespace`)(t):d(t))}function d(n){return n===null||Mj(n)?(e.exit(`codeFencedFence`),r.interrupt?t(n):e.check(uM,h,b)(n)):(e.enter(`codeFencedFenceInfo`),e.enter(`chunkString`,{contentType:`string`}),f(n))}function f(t){return t===null||Mj(t)?(e.exit(`chunkString`),e.exit(`codeFencedFenceInfo`),d(t)):Pj(t)?(e.exit(`chunkString`),e.exit(`codeFencedFenceInfo`),zj(e,p,`whitespace`)(t)):t===96&&t===s?n(t):(e.consume(t),f)}function p(t){return t===null||Mj(t)?d(t):(e.enter(`codeFencedFenceMeta`),e.enter(`chunkString`,{contentType:`string`}),m(t))}function m(t){return t===null||Mj(t)?(e.exit(`chunkString`),e.exit(`codeFencedFenceMeta`),d(t)):t===96&&t===s?n(t):(e.consume(t),m)}function h(t){return e.attempt(i,b,g)(t)}function g(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),_}function _(t){return a>0&&Pj(t)?zj(e,v,`linePrefix`,a+1)(t):v(t)}function v(t){return t===null||Mj(t)?e.check(uM,h,b)(t):(e.enter(`codeFlowValue`),y(t))}function y(t){return t===null||Mj(t)?(e.exit(`codeFlowValue`),v(t)):(e.consume(t),y)}function b(n){return e.exit(`codeFenced`),t(n)}function x(e,t,n){let i=0;return a;function a(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),c}function c(t){return e.enter(`codeFencedFence`),Pj(t)?zj(e,l,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):l(t)}function l(t){return t===s?(e.enter(`codeFencedFenceSequence`),u(t)):n(t)}function u(t){return t===s?(i++,e.consume(t),u):i>=o?(e.exit(`codeFencedFenceSequence`),Pj(t)?zj(e,d,`whitespace`)(t):d(t)):n(t)}function d(r){return r===null||Mj(r)?(e.exit(`codeFencedFence`),t(r)):n(r)}}}function pM(e,t,n){let r=this;return i;function i(t){return t===null?n(t):(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),a)}function a(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}var mM={name:`codeIndented`,tokenize:gM},hM={partial:!0,tokenize:_M};function gM(e,t,n){let r=this;return i;function i(t){return e.enter(`codeIndented`),zj(e,a,`linePrefix`,5)(t)}function a(e){let t=r.events[r.events.length-1];return t&&t[1].type===`linePrefix`&&t[2].sliceSerialize(t[1],!0).length>=4?o(e):n(e)}function o(t){return t===null?c(t):Mj(t)?e.attempt(hM,o,c)(t):(e.enter(`codeFlowValue`),s(t))}function s(t){return t===null||Mj(t)?(e.exit(`codeFlowValue`),o(t)):(e.consume(t),s)}function c(n){return e.exit(`codeIndented`),t(n)}}function _M(e,t,n){let r=this;return i;function i(t){return r.parser.lazy[r.now().line]?n(t):Mj(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),i):zj(e,a,`linePrefix`,5)(t)}function a(e){let a=r.events[r.events.length-1];return a&&a[1].type===`linePrefix`&&a[2].sliceSerialize(a[1],!0).length>=4?t(e):Mj(e)?i(e):n(e)}}var vM={name:`codeText`,previous:bM,resolve:yM,tokenize:xM};function yM(e){let t=e.length-4,n=3,r,i;if((e[n][1].type===`lineEnding`||e[n][1].type===`space`)&&(e[t][1].type===`lineEnding`||e[t][1].type===`space`)){for(r=n;++r<t;)if(e[r][1].type===`codeTextData`){e[n][1].type=`codeTextPadding`,e[t][1].type=`codeTextPadding`,n+=2,t-=2;break}}for(r=n-1,t++;++r<=t;)i===void 0?r!==t&&e[r][1].type!==`lineEnding`&&(i=r):(r===t||e[r][1].type===`lineEnding`)&&(e[i][1].type=`codeTextData`,r!==i+2&&(e[i][1].end=e[r-1][1].end,e.splice(i+2,r-i-2),t-=r-i-2,r=i+2),i=void 0);return e}function bM(e){return e!==96||this.events[this.events.length-1][1].type===`characterEscape`}function xM(e,t,n){let r=0,i,a;return o;function o(t){return e.enter(`codeText`),e.enter(`codeTextSequence`),s(t)}function s(t){return t===96?(e.consume(t),r++,s):(e.exit(`codeTextSequence`),c(t))}function c(t){return t===null?n(t):t===32?(e.enter(`space`),e.consume(t),e.exit(`space`),c):t===96?(a=e.enter(`codeTextSequence`),i=0,u(t)):Mj(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),c):(e.enter(`codeTextData`),l(t))}function l(t){return t===null||t===32||t===96||Mj(t)?(e.exit(`codeTextData`),c(t)):(e.consume(t),l)}function u(n){return n===96?(e.consume(n),i++,u):i===r?(e.exit(`codeTextSequence`),e.exit(`codeText`),t(n)):(a.type=`codeTextData`,l(n))}}var SM=class{constructor(e){this.left=e?[...e]:[],this.right=[]}get(e){if(e<0||e>=this.left.length+this.right.length)throw RangeError("Cannot access index `"+e+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return e<this.left.length?this.left[e]:this.right[this.right.length-e+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(e,t){let n=t??1/0;return n<this.left.length?this.left.slice(e,n):e>this.left.length?this.right.slice(this.right.length-n+this.left.length,this.right.length-e+this.left.length).reverse():this.left.slice(e).concat(this.right.slice(this.right.length-n+this.left.length).reverse())}splice(e,t,n){let r=t||0;this.setCursor(Math.trunc(e));let i=this.right.splice(this.right.length-r,1/0);return n&&CM(this.left,n),i.reverse()}pop(){return this.setCursor(1/0),this.left.pop()}push(e){this.setCursor(1/0),this.left.push(e)}pushMany(e){this.setCursor(1/0),CM(this.left,e)}unshift(e){this.setCursor(0),this.right.push(e)}unshiftMany(e){this.setCursor(0),CM(this.right,e.reverse())}setCursor(e){if(!(e===this.left.length||e>this.left.length&&this.right.length===0||e<0&&this.left.length===0))if(e<this.left.length){let t=this.left.splice(e,1/0);CM(this.right,t.reverse())}else{let t=this.right.splice(this.left.length+this.right.length-e,1/0);CM(this.left,t.reverse())}}};function CM(e,t){let n=0;if(t.length<1e4)e.push(...t);else for(;n<t.length;)e.push(...t.slice(n,n+1e4)),n+=1e4}function wM(e){let t={},n=-1,r,i,a,o,s,c,l,u=new SM(e);for(;++n<u.length;){for(;n in t;)n=t[n];if(r=u.get(n),n&&r[1].type===`chunkFlow`&&u.get(n-1)[1].type===`listItemPrefix`&&(c=r[1]._tokenizer.events,a=0,a<c.length&&c[a][1].type===`lineEndingBlank`&&(a+=2),a<c.length&&c[a][1].type===`content`))for(;++a<c.length&&c[a][1].type!==`content`;)c[a][1].type===`chunkText`&&(c[a][1]._isInFirstContentOfListItem=!0,a++);if(r[0]===`enter`)r[1].contentType&&(Object.assign(t,TM(u,n)),n=t[n],l=!0);else if(r[1]._container){for(a=n,i=void 0;a--;)if(o=u.get(a),o[1].type===`lineEnding`||o[1].type===`lineEndingBlank`)o[0]===`enter`&&(i&&(u.get(i)[1].type=`lineEndingBlank`),o[1].type=`lineEnding`,i=a);else if(!(o[1].type===`linePrefix`||o[1].type===`listItemIndent`))break;i&&(r[1].end={...u.get(i)[1].start},s=u.slice(i,n),s.unshift(r),u.splice(i,n-i+1,s))}}return _j(e,0,1/0,u.slice(0)),!l}function TM(e,t){let n=e.get(t)[1],r=e.get(t)[2],i=t-1,a=[],o=n._tokenizer;o||(o=r.parser[n.contentType](n.start),n._contentTypeTextTrailing&&(o._contentTypeTextTrailing=!0));let s=o.events,c=[],l={},u,d,f=-1,p=n,m=0,h=0,g=[h];for(;p;){for(;e.get(++i)[1]!==p;);a.push(i),p._tokenizer||(u=r.sliceStream(p),p.next||u.push(null),d&&o.defineSkip(p.start),p._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=!0),o.write(u),p._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=void 0)),d=p,p=p.next}for(p=n;++f<s.length;)s[f][0]===`exit`&&s[f-1][0]===`enter`&&s[f][1].type===s[f-1][1].type&&s[f][1].start.line!==s[f][1].end.line&&(h=f+1,g.push(h),p._tokenizer=void 0,p.previous=void 0,p=p.next);for(o.events=[],p?(p._tokenizer=void 0,p.previous=void 0):g.pop(),f=g.length;f--;){let t=s.slice(g[f],g[f+1]),n=a.pop();c.push([n,n+t.length-1]),e.splice(n,2,t)}for(c.reverse(),f=-1;++f<c.length;)l[m+c[f][0]]=m+c[f][1],m+=c[f][1]-c[f][0]-1;return l}var EM={resolve:OM,tokenize:kM},DM={partial:!0,tokenize:AM};function OM(e){return wM(e),e}function kM(e,t){let n;return r;function r(t){return e.enter(`content`),n=e.enter(`chunkContent`,{contentType:`content`}),i(t)}function i(t){return t===null?a(t):Mj(t)?e.check(DM,o,a)(t):(e.consume(t),i)}function a(n){return e.exit(`chunkContent`),e.exit(`content`),t(n)}function o(t){return e.consume(t),e.exit(`chunkContent`),n.next=e.enter(`chunkContent`,{contentType:`content`,previous:n}),n=n.next,i}}function AM(e,t,n){let r=this;return i;function i(t){return e.exit(`chunkContent`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),zj(e,a,`linePrefix`)}function a(i){if(i===null||Mj(i))return n(i);let a=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes(`codeIndented`)&&a&&a[1].type===`linePrefix`&&a[2].sliceSerialize(a[1],!0).length>=4?t(i):e.interrupt(r.parser.constructs.flow,n,t)(i)}}function jM(e,t,n,r,i,a,o,s,c){let l=c||1/0,u=0;return d;function d(t){return t===60?(e.enter(r),e.enter(i),e.enter(a),e.consume(t),e.exit(a),f):t===null||t===32||t===41||Oj(t)?n(t):(e.enter(r),e.enter(o),e.enter(s),e.enter(`chunkString`,{contentType:`string`}),h(t))}function f(n){return n===62?(e.enter(a),e.consume(n),e.exit(a),e.exit(i),e.exit(r),t):(e.enter(s),e.enter(`chunkString`,{contentType:`string`}),p(n))}function p(t){return t===62?(e.exit(`chunkString`),e.exit(s),f(t)):t===null||t===60||Mj(t)?n(t):(e.consume(t),t===92?m:p)}function m(t){return t===60||t===62||t===92?(e.consume(t),p):p(t)}function h(i){return!u&&(i===null||i===41||Nj(i))?(e.exit(`chunkString`),e.exit(s),e.exit(o),e.exit(r),t(i)):u<l&&i===40?(e.consume(i),u++,h):i===41?(e.consume(i),u--,h):i===null||i===32||i===40||Oj(i)?n(i):(e.consume(i),i===92?g:h)}function g(t){return t===40||t===41||t===92?(e.consume(t),h):h(t)}}function MM(e,t,n,r,i,a){let o=this,s=0,c;return l;function l(t){return e.enter(r),e.enter(i),e.consume(t),e.exit(i),e.enter(a),u}function u(l){return s>999||l===null||l===91||l===93&&!c||l===94&&!s&&`_hiddenFootnoteSupport`in o.parser.constructs?n(l):l===93?(e.exit(a),e.enter(i),e.consume(l),e.exit(i),e.exit(r),t):Mj(l)?(e.enter(`lineEnding`),e.consume(l),e.exit(`lineEnding`),u):(e.enter(`chunkString`,{contentType:`string`}),d(l))}function d(t){return t===null||t===91||t===93||Mj(t)||s++>999?(e.exit(`chunkString`),u(t)):(e.consume(t),c||=!Pj(t),t===92?f:d)}function f(t){return t===91||t===92||t===93?(e.consume(t),s++,d):d(t)}}function NM(e,t,n,r,i,a){let o;return s;function s(t){return t===34||t===39||t===40?(e.enter(r),e.enter(i),e.consume(t),e.exit(i),o=t===40?41:t,c):n(t)}function c(n){return n===o?(e.enter(i),e.consume(n),e.exit(i),e.exit(r),t):(e.enter(a),l(n))}function l(t){return t===o?(e.exit(a),c(o)):t===null?n(t):Mj(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),zj(e,l,`linePrefix`)):(e.enter(`chunkString`,{contentType:`string`}),u(t))}function u(t){return t===o||t===null||Mj(t)?(e.exit(`chunkString`),l(t)):(e.consume(t),t===92?d:u)}function d(t){return t===o||t===92?(e.consume(t),u):u(t)}}function PM(e,t){let n;return r;function r(i){return Mj(i)?(e.enter(`lineEnding`),e.consume(i),e.exit(`lineEnding`),n=!0,r):Pj(i)?zj(e,r,n?`linePrefix`:`lineSuffix`)(i):t(i)}}var FM={name:`definition`,tokenize:LM},IM={partial:!0,tokenize:RM};function LM(e,t,n){let r=this,i;return a;function a(t){return e.enter(`definition`),o(t)}function o(t){return MM.call(r,e,s,n,`definitionLabel`,`definitionLabelMarker`,`definitionLabelString`)(t)}function s(t){return i=wj(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),c):n(t)}function c(t){return Nj(t)?PM(e,l)(t):l(t)}function l(t){return jM(e,u,n,`definitionDestination`,`definitionDestinationLiteral`,`definitionDestinationLiteralMarker`,`definitionDestinationRaw`,`definitionDestinationString`)(t)}function u(t){return e.attempt(IM,d,d)(t)}function d(t){return Pj(t)?zj(e,f,`whitespace`)(t):f(t)}function f(a){return a===null||Mj(a)?(e.exit(`definition`),r.parser.defined.push(i),t(a)):n(a)}}function RM(e,t,n){return r;function r(t){return Nj(t)?PM(e,i)(t):n(t)}function i(t){return NM(e,a,n,`definitionTitle`,`definitionTitleMarker`,`definitionTitleString`)(t)}function a(t){return Pj(t)?zj(e,o,`whitespace`)(t):o(t)}function o(e){return e===null||Mj(e)?t(e):n(e)}}var zM={name:`hardBreakEscape`,tokenize:BM};function BM(e,t,n){return r;function r(t){return e.enter(`hardBreakEscape`),e.consume(t),i}function i(r){return Mj(r)?(e.exit(`hardBreakEscape`),t(r)):n(r)}}var VM={name:`headingAtx`,resolve:HM,tokenize:UM};function HM(e,t){let n=e.length-2,r=3,i,a;return e[r][1].type===`whitespace`&&(r+=2),n-2>r&&e[n][1].type===`whitespace`&&(n-=2),e[n][1].type===`atxHeadingSequence`&&(r===n-1||n-4>r&&e[n-2][1].type===`whitespace`)&&(n-=r+1===n?2:4),n>r&&(i={type:`atxHeadingText`,start:e[r][1].start,end:e[n][1].end},a={type:`chunkText`,start:e[r][1].start,end:e[n][1].end,contentType:`text`},_j(e,r,n-r+1,[[`enter`,i,t],[`enter`,a,t],[`exit`,a,t],[`exit`,i,t]])),e}function UM(e,t,n){let r=0;return i;function i(t){return e.enter(`atxHeading`),a(t)}function a(t){return e.enter(`atxHeadingSequence`),o(t)}function o(t){return t===35&&r++<6?(e.consume(t),o):t===null||Nj(t)?(e.exit(`atxHeadingSequence`),s(t)):n(t)}function s(n){return n===35?(e.enter(`atxHeadingSequence`),c(n)):n===null||Mj(n)?(e.exit(`atxHeading`),t(n)):Pj(n)?zj(e,s,`whitespace`)(n):(e.enter(`atxHeadingText`),l(n))}function c(t){return t===35?(e.consume(t),c):(e.exit(`atxHeadingSequence`),s(t))}function l(t){return t===null||t===35||Nj(t)?(e.exit(`atxHeadingText`),s(t)):(e.consume(t),l)}}var WM=`address.article.aside.base.basefont.blockquote.body.caption.center.col.colgroup.dd.details.dialog.dir.div.dl.dt.fieldset.figcaption.figure.footer.form.frame.frameset.h1.h2.h3.h4.h5.h6.head.header.hr.html.iframe.legend.li.link.main.menu.menuitem.nav.noframes.ol.optgroup.option.p.param.search.section.summary.table.tbody.td.tfoot.th.thead.title.tr.track.ul`.split(`.`),GM=[`pre`,`script`,`style`,`textarea`],KM={concrete:!0,name:`htmlFlow`,resolveTo:YM,tokenize:XM},qM={partial:!0,tokenize:QM},JM={partial:!0,tokenize:ZM};function YM(e){let t=e.length;for(;t--&&!(e[t][0]===`enter`&&e[t][1].type===`htmlFlow`););return t>1&&e[t-2][1].type===`linePrefix`&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function XM(e,t,n){let r=this,i,a,o,s,c;return l;function l(e){return u(e)}function u(t){return e.enter(`htmlFlow`),e.enter(`htmlFlowData`),e.consume(t),d}function d(s){return s===33?(e.consume(s),f):s===47?(e.consume(s),a=!0,h):s===63?(e.consume(s),i=3,r.interrupt?t:N):Tj(s)?(e.consume(s),o=String.fromCharCode(s),g):n(s)}function f(a){return a===45?(e.consume(a),i=2,p):a===91?(e.consume(a),i=5,s=0,m):Tj(a)?(e.consume(a),i=4,r.interrupt?t:N):n(a)}function p(i){return i===45?(e.consume(i),r.interrupt?t:N):n(i)}function m(i){return i===`CDATA[`.charCodeAt(s++)?(e.consume(i),s===6?r.interrupt?t:O:m):n(i)}function h(t){return Tj(t)?(e.consume(t),o=String.fromCharCode(t),g):n(t)}function g(s){if(s===null||s===47||s===62||Nj(s)){let c=s===47,l=o.toLowerCase();return!c&&!a&&GM.includes(l)?(i=1,r.interrupt?t(s):O(s)):WM.includes(o.toLowerCase())?(i=6,c?(e.consume(s),_):r.interrupt?t(s):O(s)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(s):a?v(s):y(s))}return s===45||Ej(s)?(e.consume(s),o+=String.fromCharCode(s),g):n(s)}function _(i){return i===62?(e.consume(i),r.interrupt?t:O):n(i)}function v(t){return Pj(t)?(e.consume(t),v):E(t)}function y(t){return t===47?(e.consume(t),E):t===58||t===95||Tj(t)?(e.consume(t),b):Pj(t)?(e.consume(t),y):E(t)}function b(t){return t===45||t===46||t===58||t===95||Ej(t)?(e.consume(t),b):x(t)}function x(t){return t===61?(e.consume(t),S):Pj(t)?(e.consume(t),x):y(t)}function S(t){return t===null||t===60||t===61||t===62||t===96?n(t):t===34||t===39?(e.consume(t),c=t,C):Pj(t)?(e.consume(t),S):w(t)}function C(t){return t===c?(e.consume(t),c=null,T):t===null||Mj(t)?n(t):(e.consume(t),C)}function w(t){return t===null||t===34||t===39||t===47||t===60||t===61||t===62||t===96||Nj(t)?x(t):(e.consume(t),w)}function T(e){return e===47||e===62||Pj(e)?y(e):n(e)}function E(t){return t===62?(e.consume(t),D):n(t)}function D(t){return t===null||Mj(t)?O(t):Pj(t)?(e.consume(t),D):n(t)}function O(t){return t===45&&i===2?(e.consume(t),te):t===60&&i===1?(e.consume(t),j):t===62&&i===4?(e.consume(t),P):t===63&&i===3?(e.consume(t),N):t===93&&i===5?(e.consume(t),M):Mj(t)&&(i===6||i===7)?(e.exit(`htmlFlowData`),e.check(qM,re,k)(t)):t===null||Mj(t)?(e.exit(`htmlFlowData`),k(t)):(e.consume(t),O)}function k(t){return e.check(JM,A,re)(t)}function A(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),ee}function ee(t){return t===null||Mj(t)?k(t):(e.enter(`htmlFlowData`),O(t))}function te(t){return t===45?(e.consume(t),N):O(t)}function j(t){return t===47?(e.consume(t),o=``,ne):O(t)}function ne(t){if(t===62){let n=o.toLowerCase();return GM.includes(n)?(e.consume(t),P):O(t)}return Tj(t)&&o.length<8?(e.consume(t),o+=String.fromCharCode(t),ne):O(t)}function M(t){return t===93?(e.consume(t),N):O(t)}function N(t){return t===62?(e.consume(t),P):t===45&&i===2?(e.consume(t),N):O(t)}function P(t){return t===null||Mj(t)?(e.exit(`htmlFlowData`),re(t)):(e.consume(t),P)}function re(n){return e.exit(`htmlFlow`),t(n)}}function ZM(e,t,n){let r=this;return i;function i(t){return Mj(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),a):n(t)}function a(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}function QM(e,t,n){return r;function r(r){return e.enter(`lineEnding`),e.consume(r),e.exit(`lineEnding`),e.attempt(eM,t,n)}}var $M={name:`htmlText`,tokenize:eN};function eN(e,t,n){let r=this,i,a,o;return s;function s(t){return e.enter(`htmlText`),e.enter(`htmlTextData`),e.consume(t),c}function c(t){return t===33?(e.consume(t),l):t===47?(e.consume(t),x):t===63?(e.consume(t),y):Tj(t)?(e.consume(t),w):n(t)}function l(t){return t===45?(e.consume(t),u):t===91?(e.consume(t),a=0,m):Tj(t)?(e.consume(t),v):n(t)}function u(t){return t===45?(e.consume(t),p):n(t)}function d(t){return t===null?n(t):t===45?(e.consume(t),f):Mj(t)?(o=d,j(t)):(e.consume(t),d)}function f(t){return t===45?(e.consume(t),p):d(t)}function p(e){return e===62?te(e):e===45?f(e):d(e)}function m(t){return t===`CDATA[`.charCodeAt(a++)?(e.consume(t),a===6?h:m):n(t)}function h(t){return t===null?n(t):t===93?(e.consume(t),g):Mj(t)?(o=h,j(t)):(e.consume(t),h)}function g(t){return t===93?(e.consume(t),_):h(t)}function _(t){return t===62?te(t):t===93?(e.consume(t),_):h(t)}function v(t){return t===null||t===62?te(t):Mj(t)?(o=v,j(t)):(e.consume(t),v)}function y(t){return t===null?n(t):t===63?(e.consume(t),b):Mj(t)?(o=y,j(t)):(e.consume(t),y)}function b(e){return e===62?te(e):y(e)}function x(t){return Tj(t)?(e.consume(t),S):n(t)}function S(t){return t===45||Ej(t)?(e.consume(t),S):C(t)}function C(t){return Mj(t)?(o=C,j(t)):Pj(t)?(e.consume(t),C):te(t)}function w(t){return t===45||Ej(t)?(e.consume(t),w):t===47||t===62||Nj(t)?T(t):n(t)}function T(t){return t===47?(e.consume(t),te):t===58||t===95||Tj(t)?(e.consume(t),E):Mj(t)?(o=T,j(t)):Pj(t)?(e.consume(t),T):te(t)}function E(t){return t===45||t===46||t===58||t===95||Ej(t)?(e.consume(t),E):D(t)}function D(t){return t===61?(e.consume(t),O):Mj(t)?(o=D,j(t)):Pj(t)?(e.consume(t),D):T(t)}function O(t){return t===null||t===60||t===61||t===62||t===96?n(t):t===34||t===39?(e.consume(t),i=t,k):Mj(t)?(o=O,j(t)):Pj(t)?(e.consume(t),O):(e.consume(t),A)}function k(t){return t===i?(e.consume(t),i=void 0,ee):t===null?n(t):Mj(t)?(o=k,j(t)):(e.consume(t),k)}function A(t){return t===null||t===34||t===39||t===60||t===61||t===96?n(t):t===47||t===62||Nj(t)?T(t):(e.consume(t),A)}function ee(e){return e===47||e===62||Nj(e)?T(e):n(e)}function te(r){return r===62?(e.consume(r),e.exit(`htmlTextData`),e.exit(`htmlText`),t):n(r)}function j(t){return e.exit(`htmlTextData`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),ne}function ne(t){return Pj(t)?zj(e,M,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):M(t)}function M(t){return e.enter(`htmlTextData`),o(t)}}var tN={name:`labelEnd`,resolveAll:aN,resolveTo:oN,tokenize:sN},nN={tokenize:cN},rN={tokenize:lN},iN={tokenize:uN};function aN(e){let t=-1,n=[];for(;++t<e.length;){let r=e[t][1];if(n.push(e[t]),r.type===`labelImage`||r.type===`labelLink`||r.type===`labelEnd`){let e=r.type===`labelImage`?4:2;r.type=`data`,t+=e}}return e.length!==n.length&&_j(e,0,e.length,n),e}function oN(e,t){let n=e.length,r=0,i,a,o,s;for(;n--;)if(i=e[n][1],a){if(i.type===`link`||i.type===`labelLink`&&i._inactive)break;e[n][0]===`enter`&&i.type===`labelLink`&&(i._inactive=!0)}else if(o){if(e[n][0]===`enter`&&(i.type===`labelImage`||i.type===`labelLink`)&&!i._balanced&&(a=n,i.type!==`labelLink`)){r=2;break}}else i.type===`labelEnd`&&(o=n);let c={type:e[a][1].type===`labelLink`?`link`:`image`,start:{...e[a][1].start},end:{...e[e.length-1][1].end}},l={type:`label`,start:{...e[a][1].start},end:{...e[o][1].end}},u={type:`labelText`,start:{...e[a+r+2][1].end},end:{...e[o-2][1].start}};return s=[[`enter`,c,t],[`enter`,l,t]],s=vj(s,e.slice(a+1,a+r+3)),s=vj(s,[[`enter`,u,t]]),s=vj(s,qj(t.parser.constructs.insideSpan.null,e.slice(a+r+4,o-3),t)),s=vj(s,[[`exit`,u,t],e[o-2],e[o-1],[`exit`,l,t]]),s=vj(s,e.slice(o+1)),s=vj(s,[[`exit`,c,t]]),_j(e,a,e.length,s),e}function sN(e,t,n){let r=this,i=r.events.length,a,o;for(;i--;)if((r.events[i][1].type===`labelImage`||r.events[i][1].type===`labelLink`)&&!r.events[i][1]._balanced){a=r.events[i][1];break}return s;function s(t){return a?a._inactive?d(t):(o=r.parser.defined.includes(wj(r.sliceSerialize({start:a.end,end:r.now()}))),e.enter(`labelEnd`),e.enter(`labelMarker`),e.consume(t),e.exit(`labelMarker`),e.exit(`labelEnd`),c):n(t)}function c(t){return t===40?e.attempt(nN,u,o?u:d)(t):t===91?e.attempt(rN,u,o?l:d)(t):o?u(t):d(t)}function l(t){return e.attempt(iN,u,d)(t)}function u(e){return t(e)}function d(e){return a._balanced=!0,n(e)}}function cN(e,t,n){return r;function r(t){return e.enter(`resource`),e.enter(`resourceMarker`),e.consume(t),e.exit(`resourceMarker`),i}function i(t){return Nj(t)?PM(e,a)(t):a(t)}function a(t){return t===41?u(t):jM(e,o,s,`resourceDestination`,`resourceDestinationLiteral`,`resourceDestinationLiteralMarker`,`resourceDestinationRaw`,`resourceDestinationString`,32)(t)}function o(t){return Nj(t)?PM(e,c)(t):u(t)}function s(e){return n(e)}function c(t){return t===34||t===39||t===40?NM(e,l,n,`resourceTitle`,`resourceTitleMarker`,`resourceTitleString`)(t):u(t)}function l(t){return Nj(t)?PM(e,u)(t):u(t)}function u(r){return r===41?(e.enter(`resourceMarker`),e.consume(r),e.exit(`resourceMarker`),e.exit(`resource`),t):n(r)}}function lN(e,t,n){let r=this;return i;function i(t){return MM.call(r,e,a,o,`reference`,`referenceMarker`,`referenceString`)(t)}function a(e){return r.parser.defined.includes(wj(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(e):n(e)}function o(e){return n(e)}}function uN(e,t,n){return r;function r(t){return e.enter(`reference`),e.enter(`referenceMarker`),e.consume(t),e.exit(`referenceMarker`),i}function i(r){return r===93?(e.enter(`referenceMarker`),e.consume(r),e.exit(`referenceMarker`),e.exit(`reference`),t):n(r)}}var dN={name:`labelStartImage`,resolveAll:tN.resolveAll,tokenize:fN};function fN(e,t,n){let r=this;return i;function i(t){return e.enter(`labelImage`),e.enter(`labelImageMarker`),e.consume(t),e.exit(`labelImageMarker`),a}function a(t){return t===91?(e.enter(`labelMarker`),e.consume(t),e.exit(`labelMarker`),e.exit(`labelImage`),o):n(t)}function o(e){return e===94&&`_hiddenFootnoteSupport`in r.parser.constructs?n(e):t(e)}}var pN={name:`labelStartLink`,resolveAll:tN.resolveAll,tokenize:mN};function mN(e,t,n){let r=this;return i;function i(t){return e.enter(`labelLink`),e.enter(`labelMarker`),e.consume(t),e.exit(`labelMarker`),e.exit(`labelLink`),a}function a(e){return e===94&&`_hiddenFootnoteSupport`in r.parser.constructs?n(e):t(e)}}var hN={name:`lineEnding`,tokenize:gN};function gN(e,t){return n;function n(n){return e.enter(`lineEnding`),e.consume(n),e.exit(`lineEnding`),zj(e,t,`linePrefix`)}}var _N={name:`thematicBreak`,tokenize:vN};function vN(e,t,n){let r=0,i;return a;function a(t){return e.enter(`thematicBreak`),o(t)}function o(e){return i=e,s(e)}function s(a){return a===i?(e.enter(`thematicBreakSequence`),c(a)):r>=3&&(a===null||Mj(a))?(e.exit(`thematicBreak`),t(a)):n(a)}function c(t){return t===i?(e.consume(t),r++,c):(e.exit(`thematicBreakSequence`),Pj(t)?zj(e,s,`whitespace`)(t):s(t))}}var yN={continuation:{tokenize:CN},exit:TN,name:`list`,tokenize:SN},bN={partial:!0,tokenize:EN},xN={partial:!0,tokenize:wN};function SN(e,t,n){let r=this,i=r.events[r.events.length-1],a=i&&i[1].type===`linePrefix`?i[2].sliceSerialize(i[1],!0).length:0,o=0;return s;function s(t){let i=r.containerState.type||(t===42||t===43||t===45?`listUnordered`:`listOrdered`);if(i===`listUnordered`?!r.containerState.marker||t===r.containerState.marker:kj(t)){if(r.containerState.type||(r.containerState.type=i,e.enter(i,{_container:!0})),i===`listUnordered`)return e.enter(`listItemPrefix`),t===42||t===45?e.check(_N,n,l)(t):l(t);if(!r.interrupt||t===49)return e.enter(`listItemPrefix`),e.enter(`listItemValue`),c(t)}return n(t)}function c(t){return kj(t)&&++o<10?(e.consume(t),c):(!r.interrupt||o<2)&&(r.containerState.marker?t===r.containerState.marker:t===41||t===46)?(e.exit(`listItemValue`),l(t)):n(t)}function l(t){return e.enter(`listItemMarker`),e.consume(t),e.exit(`listItemMarker`),r.containerState.marker=r.containerState.marker||t,e.check(eM,r.interrupt?n:u,e.attempt(bN,f,d))}function u(e){return r.containerState.initialBlankLine=!0,a++,f(e)}function d(t){return Pj(t)?(e.enter(`listItemPrefixWhitespace`),e.consume(t),e.exit(`listItemPrefixWhitespace`),f):n(t)}function f(n){return r.containerState.size=a+r.sliceSerialize(e.exit(`listItemPrefix`),!0).length,t(n)}}function CN(e,t,n){let r=this;return r.containerState._closeFlow=void 0,e.check(eM,i,a);function i(n){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,zj(e,t,`listItemIndent`,r.containerState.size+1)(n)}function a(n){return r.containerState.furtherBlankLines||!Pj(n)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(n)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(xN,t,o)(n))}function o(i){return r.containerState._closeFlow=!0,r.interrupt=void 0,zj(e,e.attempt(yN,t,n),`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(i)}}function wN(e,t,n){let r=this;return zj(e,i,`listItemIndent`,r.containerState.size+1);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`listItemIndent`&&i[2].sliceSerialize(i[1],!0).length===r.containerState.size?t(e):n(e)}}function TN(e){e.exit(this.containerState.type)}function EN(e,t,n){let r=this;return zj(e,i,`listItemPrefixWhitespace`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:5);function i(e){let i=r.events[r.events.length-1];return!Pj(e)&&i&&i[1].type===`listItemPrefixWhitespace`?t(e):n(e)}}var DN={name:`setextUnderline`,resolveTo:ON,tokenize:kN};function ON(e,t){let n=e.length,r,i,a;for(;n--;)if(e[n][0]===`enter`){if(e[n][1].type===`content`){r=n;break}e[n][1].type===`paragraph`&&(i=n)}else e[n][1].type===`content`&&e.splice(n,1),!a&&e[n][1].type===`definition`&&(a=n);let o={type:`setextHeading`,start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type=`setextHeadingText`,a?(e.splice(i,0,[`enter`,o,t]),e.splice(a+1,0,[`exit`,e[r][1],t]),e[r][1].end={...e[a][1].end}):e[r][1]=o,e.push([`exit`,o,t]),e}function kN(e,t,n){let r=this,i;return a;function a(t){let a=r.events.length,s;for(;a--;)if(r.events[a][1].type!==`lineEnding`&&r.events[a][1].type!==`linePrefix`&&r.events[a][1].type!==`content`){s=r.events[a][1].type===`paragraph`;break}return!r.parser.lazy[r.now().line]&&(r.interrupt||s)?(e.enter(`setextHeadingLine`),i=t,o(t)):n(t)}function o(t){return e.enter(`setextHeadingLineSequence`),s(t)}function s(t){return t===i?(e.consume(t),s):(e.exit(`setextHeadingLineSequence`),Pj(t)?zj(e,c,`lineSuffix`)(t):c(t))}function c(r){return r===null||Mj(r)?(e.exit(`setextHeadingLine`),t(r)):n(r)}}var AN={tokenize:jN};function jN(e){let t=this,n=e.attempt(eM,r,e.attempt(this.parser.constructs.flowInitial,i,zj(e,e.attempt(this.parser.constructs.flow,i,e.attempt(EM,i)),`linePrefix`)));return n;function r(r){if(r===null){e.consume(r);return}return e.enter(`lineEndingBlank`),e.consume(r),e.exit(`lineEndingBlank`),t.currentConstruct=void 0,n}function i(r){if(r===null){e.consume(r);return}return e.enter(`lineEnding`),e.consume(r),e.exit(`lineEnding`),t.currentConstruct=void 0,n}}var MN={resolveAll:IN()},NN=FN(`string`),PN=FN(`text`);function FN(e){return{resolveAll:IN(e===`text`?LN:void 0),tokenize:t};function t(t){let n=this,r=this.parser.constructs[e],i=t.attempt(r,a,o);return a;function a(e){return c(e)?i(e):o(e)}function o(e){if(e===null){t.consume(e);return}return t.enter(`data`),t.consume(e),s}function s(e){return c(e)?(t.exit(`data`),i(e)):(t.consume(e),s)}function c(e){if(e===null)return!0;let t=r[e],i=-1;if(t)for(;++i<t.length;){let e=t[i];if(!e.previous||e.previous.call(n,n.previous))return!0}return!1}}}function IN(e){return t;function t(t,n){let r=-1,i;for(;++r<=t.length;)i===void 0?t[r]&&t[r][1].type===`data`&&(i=r,r++):(!t[r]||t[r][1].type!==`data`)&&(r!==i+2&&(t[i][1].end=t[r-1][1].end,t.splice(i+2,r-i-2),r=i+2),i=void 0);return e?e(t,n):t}}function LN(e,t){let n=0;for(;++n<=e.length;)if((n===e.length||e[n][1].type===`lineEnding`)&&e[n-1][1].type===`data`){let r=e[n-1][1],i=t.sliceStream(r),a=i.length,o=-1,s=0,c;for(;a--;){let e=i[a];if(typeof e==`string`){for(o=e.length;e.charCodeAt(o-1)===32;)s++,o--;if(o)break;o=-1}else if(e===-2)c=!0,s++;else if(e!==-1){a++;break}}if(t._contentTypeTextTrailing&&n===e.length&&(s=0),s){let i={type:n===e.length||c||s<2?`lineSuffix`:`hardBreakTrailing`,start:{_bufferIndex:a?o:r.start._bufferIndex+o,_index:r.start._index+a,line:r.end.line,column:r.end.column-s,offset:r.end.offset-s},end:{...r.end}};r.end={...i.start},r.start.offset===r.end.offset?Object.assign(r,i):(e.splice(n,0,[`enter`,i,t],[`exit`,i,t]),n+=2)}n++}return e}var RN=s({attentionMarkers:()=>KN,contentInitial:()=>BN,disable:()=>qN,document:()=>zN,flow:()=>HN,flowInitial:()=>VN,insideSpan:()=>GN,string:()=>UN,text:()=>WN}),zN={42:yN,43:yN,45:yN,48:yN,49:yN,50:yN,51:yN,52:yN,53:yN,54:yN,55:yN,56:yN,57:yN,62:nM},BN={91:FM},VN={[-2]:mM,[-1]:mM,32:mM},HN={35:VM,42:_N,45:[DN,_N],60:KM,61:DN,95:_N,96:dM,126:dM},UN={38:cM,92:oM},WN={[-5]:hN,[-4]:hN,[-3]:hN,33:dN,38:cM,42:Jj,60:[Qj,$M],91:pN,92:[zM,oM],93:tN,95:Jj,96:vM},GN={null:[Jj,MN]},KN={null:[42,95]},qN={null:[]};function JN(e,t,n){let r={_bufferIndex:-1,_index:0,line:n&&n.line||1,column:n&&n.column||1,offset:n&&n.offset||0},i={},a=[],o=[],s=[],c={attempt:C(x),check:C(S),consume:v,enter:y,exit:b,interrupt:C(S,{interrupt:!0})},l={code:null,containerState:{},defineSkip:h,events:[],now:m,parser:e,previous:null,sliceSerialize:f,sliceStream:p,write:d},u=t.tokenize.call(l,c);return t.resolveAll&&a.push(t),l;function d(e){return o=vj(o,e),g(),o[o.length-1]===null?(w(t,0),l.events=qj(a,l.events,l),l.events):[]}function f(e,t){return XN(p(e),t)}function p(e){return YN(o,e)}function m(){let{_bufferIndex:e,_index:t,line:n,column:i,offset:a}=r;return{_bufferIndex:e,_index:t,line:n,column:i,offset:a}}function h(e){i[e.line]=e.column,E()}function g(){let e;for(;r._index<o.length;){let t=o[r._index];if(typeof t==`string`)for(e=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===e&&r._bufferIndex<t.length;)_(t.charCodeAt(r._bufferIndex));else _(t)}}function _(e){u=u(e)}function v(e){Mj(e)?(r.line++,r.column=1,r.offset+=e===-3?2:1,E()):e!==-1&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===o[r._index].length&&(r._bufferIndex=-1,r._index++)),l.previous=e}function y(e,t){let n=t||{};return n.type=e,n.start=m(),l.events.push([`enter`,n,l]),s.push(n),n}function b(e){let t=s.pop();return t.end=m(),l.events.push([`exit`,t,l]),t}function x(e,t){w(e,t.from)}function S(e,t){t.restore()}function C(e,t){return n;function n(n,r,i){let a,o,s,u;return Array.isArray(n)?f(n):`tokenize`in n?f([n]):d(n);function d(e){return t;function t(t){let n=t!==null&&e[t],r=t!==null&&e.null;return f([...Array.isArray(n)?n:n?[n]:[],...Array.isArray(r)?r:r?[r]:[]])(t)}}function f(e){return a=e,o=0,e.length===0?i:p(e[o])}function p(e){return n;function n(n){return u=T(),s=e,e.partial||(l.currentConstruct=e),e.name&&l.parser.constructs.disable.null.includes(e.name)?h(n):e.tokenize.call(t?Object.assign(Object.create(l),t):l,c,m,h)(n)}}function m(t){return e(s,u),r}function h(e){return u.restore(),++o<a.length?p(a[o]):i}}}function w(e,t){e.resolveAll&&!a.includes(e)&&a.push(e),e.resolve&&_j(l.events,t,l.events.length-t,e.resolve(l.events.slice(t),l)),e.resolveTo&&(l.events=e.resolveTo(l.events,l))}function T(){let e=m(),t=l.previous,n=l.currentConstruct,i=l.events.length,a=Array.from(s);return{from:i,restore:o};function o(){r=e,l.previous=t,l.currentConstruct=n,l.events.length=i,s=a,E()}}function E(){r.line in i&&r.column<2&&(r.column=i[r.line],r.offset+=i[r.line]-1)}}function YN(e,t){let n=t.start._index,r=t.start._bufferIndex,i=t.end._index,a=t.end._bufferIndex,o;if(n===i)o=[e[n].slice(r,a)];else{if(o=e.slice(n,i),r>-1){let e=o[0];typeof e==`string`?o[0]=e.slice(r):o.shift()}a>0&&o.push(e[i].slice(0,a))}return o}function XN(e,t){let n=-1,r=[],i;for(;++n<e.length;){let a=e[n],o;if(typeof a==`string`)o=a;else switch(a){case-5:o=`\r`;break;case-4:o=`
|
|
51
51
|
`;break;case-3:o=`\r
|
|
52
52
|
`;break;case-2:o=t?` `:` `;break;case-1:if(!t&&i)continue;o=` `;break;default:o=String.fromCharCode(a)}i=a===-2,r.push(o)}return r.join(``)}function ZN(e){let t={constructs:bj([RN,...(e||{}).extensions||[]]),content:n(Bj),defined:[],document:n(Hj),flow:n(AN),lazy:{},string:n(NN),text:n(PN)};return t;function n(e){return n;function n(n){return JN(t,e,n)}}}function QN(e){for(;!wM(e););return e}var $N=/[\0\t\n\r]/g;function eP(){let e=1,t=``,n=!0,r;return i;function i(i,a,o){let s=[],c,l,u,d,f;for(i=t+(typeof i==`string`?i.toString():new TextDecoder(a||void 0).decode(i)),u=0,t=``,n&&=(i.charCodeAt(0)===65279&&u++,void 0);u<i.length;){if($N.lastIndex=u,c=$N.exec(i),d=c&&c.index!==void 0?c.index:i.length,f=i.charCodeAt(d),!c){t=i.slice(u);break}if(f===10&&u===d&&r)s.push(-3),r=void 0;else switch(r&&=(s.push(-5),void 0),u<d&&(s.push(i.slice(u,d)),e+=d-u),f){case 0:s.push(65533),e++;break;case 9:for(l=Math.ceil(e/4)*4,s.push(-2);e++<l;)s.push(-1);break;case 10:s.push(-4),e=1;break;default:r=!0,e=1}u=d+1}return o&&(r&&s.push(-5),t&&s.push(t),s.push(null)),s}}var tP=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function nP(e){return e.replace(tP,rP)}function rP(e,t,n){if(t)return t;if(n.charCodeAt(0)===35){let e=n.charCodeAt(1),t=e===120||e===88;return Cj(n.slice(t?2:1),t?16:10)}return gj(n)||e}var iP={}.hasOwnProperty;function aP(e,t,n){return t&&typeof t==`object`&&(n=t,t=void 0),oP(n)(QN(ZN(n).document().write(eP()(e,t,!0))))}function oP(e){let t={transforms:[],canContainEols:[`emphasis`,`fragment`,`heading`,`paragraph`,`strong`],enter:{autolink:a(ye),autolinkProtocol:T,autolinkEmail:T,atxHeading:a(ge),blockQuote:a(de),characterEscape:T,characterReference:T,codeFenced:a(fe),codeFencedFenceInfo:o,codeFencedFenceMeta:o,codeIndented:a(fe,o),codeText:a(pe,o),codeTextData:T,data:T,codeFlowValue:T,definition:a(me),definitionDestinationString:o,definitionLabelString:o,definitionTitleString:o,emphasis:a(he),hardBreakEscape:a(_e),hardBreakTrailing:a(_e),htmlFlow:a(F,o),htmlFlowData:T,htmlText:a(F,o),htmlTextData:T,image:a(ve),label:o,link:a(ye),listItem:a(xe),listItemValue:f,listOrdered:a(be,d),listUnordered:a(be),paragraph:a(Se),reference:ie,referenceString:o,resourceDestinationString:o,resourceTitleString:o,setextHeading:a(ge),strong:a(Ce),thematicBreak:a(Te)},exit:{atxHeading:c(),atxHeadingSequence:x,autolink:c(),autolinkEmail:ue,autolinkProtocol:le,blockQuote:c(),characterEscapeValue:E,characterReferenceMarkerHexadecimal:oe,characterReferenceMarkerNumeric:oe,characterReferenceValue:se,characterReference:ce,codeFenced:c(g),codeFencedFence:h,codeFencedFenceInfo:p,codeFencedFenceMeta:m,codeFlowValue:E,codeIndented:c(_),codeText:c(ee),codeTextData:E,data:E,definition:c(),definitionDestinationString:b,definitionLabelString:v,definitionTitleString:y,emphasis:c(),hardBreakEscape:c(O),hardBreakTrailing:c(O),htmlFlow:c(k),htmlFlowData:E,htmlText:c(A),htmlTextData:E,image:c(j),label:M,labelText:ne,lineEnding:D,link:c(te),listItem:c(),listOrdered:c(),listUnordered:c(),paragraph:c(),referenceString:ae,resourceDestinationString:N,resourceTitleString:P,resource:re,setextHeading:c(w),setextHeadingLineSequence:C,setextHeadingText:S,strong:c(),thematicBreak:c()}};cP(t,(e||{}).mdastExtensions||[]);let n={};return r;function r(e){let r={type:`root`,children:[]},a={stack:[r],tokenStack:[],config:t,enter:s,exit:l,buffer:o,resume:u,data:n},c=[],d=-1;for(;++d<e.length;)(e[d][1].type===`listOrdered`||e[d][1].type===`listUnordered`)&&(e[d][0]===`enter`?c.push(d):d=i(e,c.pop(),d));for(d=-1;++d<e.length;){let n=t[e[d][0]];iP.call(n,e[d][1].type)&&n[e[d][1].type].call(Object.assign({sliceSerialize:e[d][2].sliceSerialize},a),e[d][1])}if(a.tokenStack.length>0){let e=a.tokenStack[a.tokenStack.length-1];(e[1]||uP).call(a,void 0,e[0])}for(r.position={start:sP(e.length>0?e[0][1].start:{line:1,column:1,offset:0}),end:sP(e.length>0?e[e.length-2][1].end:{line:1,column:1,offset:0})},d=-1;++d<t.transforms.length;)r=t.transforms[d](r)||r;return r}function i(e,t,n){let r=t-1,i=-1,a=!1,o,s,c,l;for(;++r<=n;){let t=e[r];switch(t[1].type){case`listUnordered`:case`listOrdered`:case`blockQuote`:t[0]===`enter`?i++:i--,l=void 0;break;case`lineEndingBlank`:t[0]===`enter`&&(o&&!l&&!i&&!c&&(c=r),l=void 0);break;case`linePrefix`:case`listItemValue`:case`listItemMarker`:case`listItemPrefix`:case`listItemPrefixWhitespace`:break;default:l=void 0}if(!i&&t[0]===`enter`&&t[1].type===`listItemPrefix`||i===-1&&t[0]===`exit`&&(t[1].type===`listUnordered`||t[1].type===`listOrdered`)){if(o){let i=r;for(s=void 0;i--;){let t=e[i];if(t[1].type===`lineEnding`||t[1].type===`lineEndingBlank`){if(t[0]===`exit`)continue;s&&(e[s][1].type=`lineEndingBlank`,a=!0),t[1].type=`lineEnding`,s=i}else if(!(t[1].type===`linePrefix`||t[1].type===`blockQuotePrefix`||t[1].type===`blockQuotePrefixWhitespace`||t[1].type===`blockQuoteMarker`||t[1].type===`listItemIndent`))break}c&&(!s||c<s)&&(o._spread=!0),o.end=Object.assign({},s?e[s][1].start:t[1].end),e.splice(s||r,0,[`exit`,o,t[2]]),r++,n++}if(t[1].type===`listItemPrefix`){let i={type:`listItem`,_spread:!1,start:Object.assign({},t[1].start),end:void 0};o=i,e.splice(r,0,[`enter`,i,t[2]]),r++,n++,c=void 0,l=!0}}}return e[t][1]._spread=a,n}function a(e,t){return n;function n(n){s.call(this,e(n),n),t&&t.call(this,n)}}function o(){this.stack.push({type:`fragment`,children:[]})}function s(e,t,n){this.stack[this.stack.length-1].children.push(e),this.stack.push(e),this.tokenStack.push([t,n||void 0]),e.position={start:sP(t.start),end:void 0}}function c(e){return t;function t(t){e&&e.call(this,t),l.call(this,t)}}function l(e,t){let n=this.stack.pop(),r=this.tokenStack.pop();if(r)r[0].type!==e.type&&(t?t.call(this,e,r[0]):(r[1]||uP).call(this,e,r[0]));else throw Error("Cannot close `"+e.type+"` ("+kA({start:e.start,end:e.end})+`): it’s not open`);n.position.end=sP(e.end)}function u(){return dj(this.stack.pop())}function d(){this.data.expectingFirstListItemValue=!0}function f(e){if(this.data.expectingFirstListItemValue){let t=this.stack[this.stack.length-2];t.start=Number.parseInt(this.sliceSerialize(e),10),this.data.expectingFirstListItemValue=void 0}}function p(){let e=this.resume(),t=this.stack[this.stack.length-1];t.lang=e}function m(){let e=this.resume(),t=this.stack[this.stack.length-1];t.meta=e}function h(){this.data.flowCodeInside||(this.buffer(),this.data.flowCodeInside=!0)}function g(){let e=this.resume(),t=this.stack[this.stack.length-1];t.value=e.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,``),this.data.flowCodeInside=void 0}function _(){let e=this.resume(),t=this.stack[this.stack.length-1];t.value=e.replace(/(\r?\n|\r)$/g,``)}function v(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.label=t,n.identifier=wj(this.sliceSerialize(e)).toLowerCase()}function y(){let e=this.resume(),t=this.stack[this.stack.length-1];t.title=e}function b(){let e=this.resume(),t=this.stack[this.stack.length-1];t.url=e}function x(e){let t=this.stack[this.stack.length-1];t.depth||=this.sliceSerialize(e).length}function S(){this.data.setextHeadingSlurpLineEnding=!0}function C(e){let t=this.stack[this.stack.length-1];t.depth=this.sliceSerialize(e).codePointAt(0)===61?1:2}function w(){this.data.setextHeadingSlurpLineEnding=void 0}function T(e){let t=this.stack[this.stack.length-1].children,n=t[t.length-1];(!n||n.type!==`text`)&&(n=we(),n.position={start:sP(e.start),end:void 0},t.push(n)),this.stack.push(n)}function E(e){let t=this.stack.pop();t.value+=this.sliceSerialize(e),t.position.end=sP(e.end)}function D(e){let n=this.stack[this.stack.length-1];if(this.data.atHardBreak){let t=n.children[n.children.length-1];t.position.end=sP(e.end),this.data.atHardBreak=void 0;return}!this.data.setextHeadingSlurpLineEnding&&t.canContainEols.includes(n.type)&&(T.call(this,e),E.call(this,e))}function O(){this.data.atHardBreak=!0}function k(){let e=this.resume(),t=this.stack[this.stack.length-1];t.value=e}function A(){let e=this.resume(),t=this.stack[this.stack.length-1];t.value=e}function ee(){let e=this.resume(),t=this.stack[this.stack.length-1];t.value=e}function te(){let e=this.stack[this.stack.length-1];if(this.data.inReference){let t=this.data.referenceType||`shortcut`;e.type+=`Reference`,e.referenceType=t,delete e.url,delete e.title}else delete e.identifier,delete e.label;this.data.referenceType=void 0}function j(){let e=this.stack[this.stack.length-1];if(this.data.inReference){let t=this.data.referenceType||`shortcut`;e.type+=`Reference`,e.referenceType=t,delete e.url,delete e.title}else delete e.identifier,delete e.label;this.data.referenceType=void 0}function ne(e){let t=this.sliceSerialize(e),n=this.stack[this.stack.length-2];n.label=nP(t),n.identifier=wj(t).toLowerCase()}function M(){let e=this.stack[this.stack.length-1],t=this.resume(),n=this.stack[this.stack.length-1];this.data.inReference=!0,n.type===`link`?n.children=e.children:n.alt=t}function N(){let e=this.resume(),t=this.stack[this.stack.length-1];t.url=e}function P(){let e=this.resume(),t=this.stack[this.stack.length-1];t.title=e}function re(){this.data.inReference=void 0}function ie(){this.data.referenceType=`collapsed`}function ae(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.label=t,n.identifier=wj(this.sliceSerialize(e)).toLowerCase(),this.data.referenceType=`full`}function oe(e){this.data.characterReferenceType=e.type}function se(e){let t=this.sliceSerialize(e),n=this.data.characterReferenceType,r;n?(r=Cj(t,n===`characterReferenceMarkerNumeric`?10:16),this.data.characterReferenceType=void 0):r=gj(t);let i=this.stack[this.stack.length-1];i.value+=r}function ce(e){let t=this.stack.pop();t.position.end=sP(e.end)}function le(e){E.call(this,e);let t=this.stack[this.stack.length-1];t.url=this.sliceSerialize(e)}function ue(e){E.call(this,e);let t=this.stack[this.stack.length-1];t.url=`mailto:`+this.sliceSerialize(e)}function de(){return{type:`blockquote`,children:[]}}function fe(){return{type:`code`,lang:null,meta:null,value:``}}function pe(){return{type:`inlineCode`,value:``}}function me(){return{type:`definition`,identifier:``,label:null,title:null,url:``}}function he(){return{type:`emphasis`,children:[]}}function ge(){return{type:`heading`,depth:0,children:[]}}function _e(){return{type:`break`}}function F(){return{type:`html`,value:``}}function ve(){return{type:`image`,title:null,url:``,alt:null}}function ye(){return{type:`link`,title:null,url:``,children:[]}}function be(e){return{type:`list`,ordered:e.type===`listOrdered`,start:null,spread:e._spread,children:[]}}function xe(e){return{type:`listItem`,spread:e._spread,checked:null,children:[]}}function Se(){return{type:`paragraph`,children:[]}}function Ce(){return{type:`strong`,children:[]}}function we(){return{type:`text`,value:``}}function Te(){return{type:`thematicBreak`}}}function sP(e){return{line:e.line,column:e.column,offset:e.offset}}function cP(e,t){let n=-1;for(;++n<t.length;){let r=t[n];Array.isArray(r)?cP(e,r):lP(e,r)}}function lP(e,t){let n;for(n in t)if(iP.call(t,n))switch(n){case`canContainEols`:{let r=t[n];r&&e[n].push(...r);break}case`transforms`:{let r=t[n];r&&e[n].push(...r);break}case`enter`:case`exit`:{let r=t[n];r&&Object.assign(e[n],r);break}}}function uP(e,t){throw Error(e?"Cannot close `"+e.type+"` ("+kA({start:e.start,end:e.end})+"): a different token (`"+t.type+"`, "+kA({start:t.start,end:t.end})+`) is open`:"Cannot close document, a token (`"+t.type+"`, "+kA({start:t.start,end:t.end})+`) is still open`)}function dP(e){let t=this;t.parser=n;function n(n){return aP(n,{...t.data(`settings`),...e,extensions:t.data(`micromarkExtensions`)||[],mdastExtensions:t.data(`fromMarkdownExtensions`)||[]})}}function fP(e,t){let n={type:`element`,tagName:`blockquote`,properties:{},children:e.wrap(e.all(t),!0)};return e.patch(t,n),e.applyData(t,n)}function pP(e,t){let n={type:`element`,tagName:`br`,properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:`text`,value:`
|
|
@@ -67,4 +67,4 @@ Error generating stack: `+e.message+`
|
|
|
67
67
|
`){n.preventDefault(),y.current=null,b.current=null,le(`${e.slice(0,t.start-1)}${e.slice(t.start)}`,t.start-1);return}if(n.key===`Delete`&&e[t.start]===`
|
|
68
68
|
`){n.preventDefault(),y.current=null,b.current=null,le(`${e.slice(0,t.start)}${e.slice(t.start+1)}`,t.start);return}let r=AI(e).find(r=>n.key===`Backspace`?t.start>r.start&&t.start<=r.end||t.start===r.end+1&&e[r.end]===` `:t.start>=r.start&&t.start<r.end);if(r!==void 0){n.preventDefault(),y.current=null,b.current=null;let i=n.key===`Backspace`&&t.start===r.end+1&&e[r.end]===` `?r.end+1:r.end;le(`${e.slice(0,r.start)}${e.slice(i)}`,r.start);return}if(n.key===`Backspace`&&t.start>0){n.preventDefault(),y.current=null,b.current=null,le(`${e.slice(0,t.start-1)}${e.slice(t.start)}`,t.start-1);return}if(n.key===`Delete`&&t.start<e.length){n.preventDefault(),y.current=null,b.current=null,le(`${e.slice(0,t.start)}${e.slice(t.start+1)}`,t.start);return}}if(t&&n.key===`Enter`){if(n.preventDefault(),r&&!n.shiftKey&&!n.metaKey){i?.closest(`form`)?.requestSubmit();return}de();return}if(!t&&n.key===`Enter`){n.preventDefault(),i?.closest(`form`)?.requestSubmit();return}f?.(n)},_e=t=>{if(v.current||FI(t))return;let n=h.current;if(n===null)return;let r=P(n),i=ae(n).end,a=fe(r,i),o=a?.nextValue??r,s=a?.nextCaret??i,c=II(t);if(c.inputType===`insertText`&&LI(c.data)){let t=s-c.data.length,n=`${o.slice(0,t)}${o.slice(s)}`;y.current=t>=0&&n===e?{data:c.data,start:t,end:s,valueBefore:n,createdAt:Date.now()}:null}else y.current=null;let l=pe(o,s,void 0,!0);le(l.nextValue,l.nextCaret)},F=e=>{if(v.current||FI(e))return;let t=II(e);if(t.inputType===`insertParagraph`||t.inputType===`insertLineBreak`){de()&&e.preventDefault();return}y.current=null},ve=t=>{t.preventDefault();let n=t.clipboardData.getData(`text/plain`),r=h.current;if(r===null)return;let i=ae(r);le(`${e.slice(0,i.start)}${n}${e.slice(i.end)}`,i.start+n.length)},ye=()=>{let e=h.current;e===null||!re(e)||E(ae(e).end)},be=q(`mention-input-editor`,t?`is-multiline`:`is-singleline`,c),xe=te?(0,L.jsx)(`div`,{className:`mention-menu`,id:S,role:`listbox`,"aria-label":`Mention people`,children:ee.map((e,t)=>(0,L.jsx)(`button`,{className:q(`mention-option`,t===j?`is-selected`:void 0),type:`button`,role:`option`,id:`${S}-option-${t}`,"aria-selected":t===j,onMouseEnter:()=>O(t),onMouseDown:t=>{t.preventDefault(),ce(e)},children:(0,L.jsxs)(`span`,{className:`mention-option-text`,children:[`@`,e.handle]})},e.id))}):null,Se=a?.current;return(0,L.jsxs)(`span`,{className:q(`mention-input`,t?`is-multiline`:void 0),children:[(0,L.jsx)(`div`,{className:be,contentEditable:!M,role:`textbox`,"aria-label":N,"aria-multiline":t,"aria-disabled":M,"aria-expanded":te,...te?{"aria-controls":S}:{},...ne===void 0?{}:{"aria-activedescendant":ne},"data-placeholder":m.placeholder,"data-max-rows":n,onBlur:e=>{w(!1),l?.(e)},onClick:e=>{ye(),u?.(e)},onFocus:e=>{w(!0),ye(),d?.(e)},onCompositionStart:()=>{v.current=!0;let e=h.current,t=y.current;if(y.current=null,e!==null&&t!==null&&Date.now()-t.createdAt<500&&P(e).slice(t.start,t.end)===t.data){b.current=t,_.current=null,E(t.start),s(t.valueBefore);let n=kI(t.valueBefore,null);PI(e,n),x.current=MI(n),oe(e,t.start)}else b.current=null},onCompositionEnd:e=>{v.current=!1;let t=II(e);he(t.data===null?{}:{compositionData:t.data})},onBeforeInput:F,onInput:_e,onKeyDown:ge,onKeyUp:e=>{!v.current&&!FI(e)&&ye(),p?.(e)},onPaste:ve,ref:h,suppressContentEditableWarning:!0}),Se==null?xe:(0,Jx.createPortal)(xe,Se)]})}function VI(e){return(0,L.jsx)(vx,{...e})}function HI({avatar:e,author:t,time:n,children:r,system:i=!1,className:a,...o}){return(0,L.jsxs)(`article`,{className:q(`message`,i?`is-system`:void 0,a),...o,children:[(0,L.jsxs)(`div`,{className:`message-byline`,children:[e,(0,L.jsxs)(`div`,{className:`message-meta`,children:[(0,L.jsx)(`span`,{className:`message-author`,children:t}),n===void 0?null:(0,L.jsx)(`span`,{className:`message-time`,children:n})]})]}),(0,L.jsx)(`div`,{className:`message-content`,children:(0,L.jsx)(`div`,{className:`message-card`,children:r})})]})}function UI({children:e,className:t,...n}){return(0,L.jsx)(`div`,{className:q(`message-markdown`,t),...n,children:(0,L.jsx)(mI,{components:eL,children:e})})}function WI({children:e}){return(0,L.jsx)(`p`,{children:RI(e)})}function GI({children:e}){return(0,L.jsx)(`li`,{children:RI(e)})}function KI({children:e}){return(0,L.jsx)(`strong`,{children:RI(e)})}function qI({children:e}){return(0,L.jsx)(`em`,{children:RI(e)})}function JI({children:e}){return(0,L.jsx)(`h1`,{children:RI(e)})}function YI({children:e}){return(0,L.jsx)(`h2`,{children:RI(e)})}function XI({children:e}){return(0,L.jsx)(`h3`,{children:RI(e)})}function ZI({children:e}){return(0,L.jsx)(`h4`,{children:RI(e)})}function QI({children:e}){return(0,L.jsx)(`h5`,{children:RI(e)})}function $I({children:e}){return(0,L.jsx)(`h6`,{children:RI(e)})}var eL={p:WI,li:GI,strong:KI,em:qI,h1:JI,h2:YI,h3:XI,h4:ZI,h5:QI,h6:$I};function tL({name:e,category:t,imageUrl:n,className:r,"aria-label":i,...a}){let o=t===`image`&&n!==void 0;return(0,L.jsx)(`button`,{type:`button`,"aria-label":i??`Open ${t===`image`?`image`:`file`} ${e}`,className:q(`reference-message-card`,t===`image`?`is-image`:`is-file`,r),...a,children:o?(0,L.jsx)(`img`,{className:`reference-message-image`,src:n,alt:e,loading:`lazy`,decoding:`async`}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`span`,{className:`reference-message-icon`,"aria-hidden":`true`,children:t===`image`?(0,L.jsx)(cx,{}):(0,L.jsx)(ax,{})}),(0,L.jsx)(`span`,{className:`reference-message-main`,children:(0,L.jsx)(`strong`,{children:e})})]})})}function nL({children:e,composer:t,empty:n,title:r=`Chat`,subtitle:i,actions:a,streamRef:o,streamOverlay:s,onStreamScroll:c,dropUploadPending:l=!1,onDropFiles:u,className:d,...f}){return(0,L.jsxs)(xI,{className:q(`panel chat-panel chat-primary`,d),"aria-label":`Group chat`,dropLabel:`Drop references to upload`,pending:l,onFilesUpload:u,...f,children:[(0,L.jsxs)(`div`,{className:`panel-header`,children:[(0,L.jsxs)(`div`,{className:`panel-title`,children:[(0,L.jsx)(aS,{icon:(0,L.jsx)(VI,{"aria-hidden":`true`})}),(0,L.jsxs)(`div`,{className:`panel-title-copy`,children:[(0,L.jsx)(`h3`,{children:r}),i===void 0?null:(0,L.jsx)(`div`,{className:`panel-subtitle`,children:i})]})]}),a===void 0?null:(0,L.jsx)(`div`,{className:`panel-actions`,children:a})]}),(0,L.jsxs)(`div`,{className:`chat-stream-frame`,children:[(0,L.jsx)(`div`,{className:`chat-stream`,ref:o,onScroll:c,children:e??n}),s===void 0?null:(0,L.jsx)(`div`,{className:`chat-stream-overlay`,children:s})]}),t]})}function rL({value:e,placeholder:t,ariaLabel:n,maxLength:r,saving:i=!1,disabled:a=!1,allowEmpty:o=!1,onUpdate:s,className:c,...l}){let u=(0,I.useRef)(null),[d,f]=(0,I.useState)(!1),[p,m]=(0,I.useState)(e),[h,g]=(0,I.useState)(!1),_=i||h,v=!a&&!_&&s!==void 0,y=e.trim(),b=y.length===0;(0,I.useEffect)(()=>{d||m(e)},[d,e]),(0,I.useEffect)(()=>{d&&(u.current?.focus(),u.current?.select())},[d]);let x=()=>{m(e),f(!1)},S=()=>{let e=p.trim();if(!o&&e.length===0){x();return}if(e===y){f(!1);return}s===void 0||_||(g(!0),Promise.resolve(s(e)).then(()=>{f(!1)}).catch(()=>void 0).finally(()=>{g(!1)}))},C=e=>{if(e.key===`Enter`){e.preventDefault(),S();return}e.key===`Escape`&&(e.preventDefault(),x())};return(0,L.jsx)(`span`,{className:q(`inline-editable-text`,b?`is-empty`:void 0,d?`is-editing`:void 0,v?void 0:`is-disabled`,c),...l,children:d?(0,L.jsx)(`input`,{ref:u,className:`inline-editable-text-input`,"aria-label":n,value:p,maxLength:r,disabled:_,onBlur:S,onChange:e=>m(e.currentTarget.value),onKeyDown:C}):(0,L.jsx)(`button`,{className:`inline-editable-text-button`,type:`button`,"aria-label":n,disabled:!v,onClick:()=>f(!0),children:b?t:y})})}var iL={bare:``,quiet:`quiet-button`,pill:`pill-action`,action:`action-button`};function aL({variant:e=`pill`,label:t,pendingLabel:n=t,pending:r=!1,disabled:i=!1,iconOnly:a=!1,accept:o,icon:s,onFileUpload:c,className:l,...u}){let d=i||r||c===void 0,f=r?n:t,p=e=>{let t=e.currentTarget.files?.[0];e.currentTarget.value=``,t!==void 0&&c?.(t)};return(0,L.jsxs)(`label`,{...u,className:q(iL[e],d?`is-disabled`:void 0,l),"aria-disabled":d,"aria-busy":r,"aria-label":u[`aria-label`]??f,title:u.title??f,children:[(0,L.jsx)(`input`,{type:`file`,accept:o,disabled:d,onChange:p}),s??(r?(0,L.jsx)(px,{className:`is-spinning`,"aria-hidden":`true`}):(0,L.jsx)($b,{"aria-hidden":`true`})),a?null:(0,L.jsx)(`span`,{children:f})]})}function oL({value:e,pending:t=!1,uploadPending:n=!1,placeholder:r=`Write a message`,mentionOptions:i,onValueChange:a,onComposerSubmit:o,onFileUpload:s,className:c,...l}){let[u,d]=(0,I.useState)(0),f=(0,I.useRef)(null);return(0,L.jsx)(`form`,{className:q(`composer`,c),"aria-label":`Message composer`,onSubmit:o,...l,children:(0,L.jsxs)(`div`,{className:`composer-input-shell`,ref:f,children:[(0,L.jsx)(BI,{"aria-label":`Message`,placeholder:r,value:e,multiline:!0,maxRows:8,submitOnEnter:!0,mentionRequestKey:u,menuPortalTargetRef:f,...i===void 0?{}:{mentionOptions:i},onValueChange:a}),(0,L.jsxs)(`div`,{className:`composer-tools`,"aria-label":`Message tools`,children:[(0,L.jsx)(`button`,{className:`composer-tool-button composer-mention-button`,type:`button`,"aria-label":`Mention people`,title:`Mention people`,onClick:()=>d(e=>e+1),children:(0,L.jsx)(Hb,{"aria-hidden":`true`})}),(0,L.jsx)(aL,{variant:`bare`,className:`composer-tool-button composer-upload-button`,label:`Upload image`,pendingLabel:`Uploading image`,pending:n,accept:`image/*`,icon:(0,L.jsx)(cx,{"aria-hidden":`true`}),iconOnly:!0,onFileUpload:s}),(0,L.jsx)(aL,{variant:`bare`,className:`composer-tool-button composer-upload-button`,label:`Upload file`,pendingLabel:`Uploading file`,pending:n,icon:(0,L.jsx)(ax,{"aria-hidden":`true`}),iconOnly:!0,onFileUpload:s}),(0,L.jsx)(`button`,{className:`composer-tool-button composer-send-button`,type:`submit`,disabled:e.trim()===``||t,"aria-label":t?`Sending message`:`Send message`,title:t?`Sending message`:`Send message`,children:(0,L.jsx)(Px,{"aria-hidden":`true`})})]})]})})}function sL(e){return(0,L.jsx)(Sx,{...e})}var cL={confirmed:(0,L.jsx)(Gb,{"aria-hidden":`true`}),question:(0,L.jsx)(Yb,{"aria-hidden":`true`}),"task-change":(0,L.jsx)(zx,{"aria-hidden":`true`})};function lL({kind:e,children:t,className:n,...r}){return(0,L.jsxs)(`div`,{className:q(`scratchpad-row`,`is-${e}`,n),...r,children:[(0,L.jsx)(`span`,{className:`scratchpad-marker`,"aria-hidden":`true`,children:cL[e]}),(0,L.jsx)(`p`,{children:t})]})}function uL({compiledTasks:e=[],onOpenCompiledTask:t}){return(0,L.jsxs)(`section`,{className:`scratchpad-submitted-receipt`,"aria-label":`Submitted to Worklist`,children:[(0,L.jsxs)(`div`,{className:`scratchpad-submitted-receipt-header`,children:[(0,L.jsx)(`strong`,{children:`Submitted to Worklist`}),(0,L.jsx)(Gb,{className:`scratchpad-submitted-receipt-check`,"aria-hidden":`true`})]}),e.length===0?(0,L.jsxs)(`div`,{className:`scratchpad-submitted-empty`,role:`status`,children:[(0,L.jsx)(zx,{"aria-hidden":`true`}),(0,L.jsxs)(`span`,{className:`scratchpad-submitted-empty-copy`,children:[(0,L.jsx)(`span`,{children:`No new task created`}),(0,L.jsx)(`small`,{children:`This Scratchpad was submitted, but no Worklist task was added.`})]})]}):(0,L.jsx)(`div`,{className:`scratchpad-submitted-task-list`,children:e.map(e=>(0,L.jsxs)(`button`,{className:`scratchpad-submitted-task`,disabled:t===void 0,onClick:()=>t?.(e.taskId),type:`button`,children:[(0,L.jsxs)(`span`,{className:`scratchpad-submitted-task-copy`,children:[(0,L.jsx)(`span`,{children:e.title}),(0,L.jsx)(`small`,{children:e.moduleName})]}),(0,L.jsx)(qb,{"aria-hidden":`true`})]},e.taskId))})]})}function dL({title:e,summary:t,sections:n,updatedLabel:r,updatedLabelPrefix:i=`Updated`,footerNote:a,submitAvailable:o,pages:s,empty:c,actionsDisabled:l=!1,showSubmitAction:u=!0,compact:d=!1,presentation:f=`panel`,syncPending:p=!1,submitPending:m=!1,onSubmitScratchpad:h,onOpenCompiledTask:g,className:_,...v}){let y=s!==void 0&&s.length>0,b=(0,I.useMemo)(()=>s!==void 0&&s.length>0?s:[{key:`current`,title:e,summary:t,sections:n,...r===void 0?{}:{updatedLabel:r},updatedLabelPrefix:i,...a===void 0?{}:{footerNote:a},...o===void 0?{}:{submitAvailable:o}}],[a,s,n,o,t,e,r,i]),x=Math.max(0,b.length-1),S=b[x]?.key,[C,w]=(0,I.useState)(x);(0,I.useEffect)(()=>{w(x)},[x,S]);let T=Math.min(C,Math.max(0,b.length-1)),E=b[T]??{key:`current`,title:e,summary:t,sections:n,...r===void 0?{}:{updatedLabel:r},updatedLabelPrefix:i,...a===void 0?{}:{footerNote:a},...o===void 0?{}:{submitAvailable:o}},D=p||m,O=m?`Running`:p?`Refreshing`:`Run`,k=E.submitAvailable??E.sections.length>0,A=l||D||!k||E.submitted===!0;return(0,L.jsx)(iS,{title:`Scratchpad`,frameless:f===`document`,icon:(0,L.jsx)(sL,{"aria-hidden":`true`}),className:q(`scratchpad-panel`,d?`is-compact`:void 0,f===`document`?`is-document`:void 0,_),"aria-busy":D,...v,children:(0,L.jsxs)(`div`,{className:`scratchpad-panel-body scratchpad`,children:[!y&&E.sections.length===0?c??(0,L.jsx)(`div`,{}):(0,L.jsxs)(`div`,{className:q(`scratchpad-content`,E.submitted===!0?`is-submitted`:void 0),children:[(0,L.jsx)(`div`,{className:`scratchpad-head`,children:(0,L.jsx)(`div`,{children:(0,L.jsx)(`h4`,{children:E.title})})}),(0,L.jsx)(`p`,{className:`scratchpad-summary`,children:E.summary}),E.sections.map(e=>(0,L.jsxs)(`section`,{className:`scratchpad-section`,"aria-labelledby":e.id,children:[(0,L.jsx)(`span`,{className:`scratchpad-label`,id:e.id,children:e.label}),(0,L.jsx)(`div`,{className:`scratchpad-list`,children:e.rows.map(t=>(0,L.jsx)(lL,{kind:t.kind,children:t.text},`${e.id}:${t.text}`))})]},e.id)),E.submitted===!0?(0,L.jsx)(uL,{compiledTasks:E.compiledTasks??[],...g===void 0?{}:{onOpenCompiledTask:g}}):null]},E.key),!d&&b.length>1?(0,L.jsx)(`div`,{className:`scratchpad-history-nav`,children:(0,L.jsx)(rS,{"aria-label":`Scratchpad history`,currentPage:T,maxVisible:7,pageAriaLabel:e=>`Scratchpad page ${e+1}`,pageCount:b.length,onPageChange:w})}):null,(0,L.jsxs)(`div`,{className:`scratchpad-footer`,children:[E.footerNote===void 0?null:(0,L.jsx)(`p`,{className:q(`scratchpad-footer-note`,E.footerNote.tone===`error`?`is-error`:void 0),title:E.footerNote.text,children:E.footerNote.text}),d?null:(0,L.jsx)(`div`,{className:`scratchpad-submit-context`,children:E.updatedLabel===void 0?null:(0,L.jsxs)(`span`,{className:`scratchpad-updated-at`,children:[(0,L.jsx)(`span`,{children:E.updatedLabelPrefix??`Updated`}),(0,L.jsx)(`span`,{children:E.updatedLabel})]})}),u?(0,L.jsx)(`div`,{className:`scratchpad-footer-actions`,children:(0,L.jsxs)(pw,{className:q(`scratchpad-submit-button`,D?`is-pending`:void 0),type:`button`,"aria-busy":D,disabled:A,onClick:h,children:[D?(0,L.jsx)(px,{"aria-hidden":`true`}):(0,L.jsx)(Cx,{"aria-hidden":`true`}),(0,L.jsx)(`span`,{children:O})]})}):null]})]})})}function fL(e){return e===`done`?(0,L.jsx)(Gb,{"aria-hidden":`true`}):e===`failed`?(0,L.jsx)(Xb,{"aria-hidden":`true`}):e===`pending`?(0,L.jsx)(Wx,{"aria-hidden":`true`}):e===`running`?(0,L.jsx)(px,{"aria-hidden":`true`}):(0,L.jsx)(Zb,{"aria-hidden":`true`})}function pL(e){return e===`complete`?`Complete`:e===`failed`?`Failed`:e===`pending`?`Needs input`:`Running`}function mL(e){return(0,L.jsx)(Kx,{"aria-hidden":`true`,"data-tone":e})}function hL({title:e,summary:t,tone:n,steps:r,metaLabel:i,className:a,...o}){let s=i??pL(n),c=o[`aria-label`]??`${e}. ${s}. ${t}`;return(0,L.jsx)(iS,{title:e,icon:mL(n),className:q(`execution-progress-panel`,`is-${n}`,a),"aria-label":c,...o,children:(0,L.jsx)(`div`,{className:`execution-progress-body`,children:(0,L.jsx)(`div`,{className:`execution-progress-list`,children:r.map(e=>(0,L.jsxs)(`div`,{className:q(`execution-progress-step`,`is-${e.status}`),children:[(0,L.jsx)(`span`,{className:q(`execution-progress-marker`,`is-${e.status}`),"aria-hidden":`true`,children:fL(e.status)}),(0,L.jsxs)(`span`,{className:`execution-progress-step-content`,children:[(0,L.jsxs)(`span`,{className:`execution-progress-step-title`,children:[(0,L.jsx)(`span`,{className:`execution-progress-step-label`,children:e.label}),e.elapsedLabel===void 0?null:(0,L.jsxs)(`span`,{className:`execution-progress-step-elapsed`,children:[` (`,e.elapsedLabel,`)`]})]}),e.detail===void 0&&e.detailPrefix===void 0?null:(0,L.jsxs)(`span`,{className:`execution-progress-step-detail`,children:[e.detailPrefix===void 0?null:(0,L.jsx)(`span`,{className:`execution-progress-step-detail-prefix`,children:e.detailPrefix}),e.detailPrefix===void 0||e.detail===void 0?null:(0,L.jsx)(`span`,{className:`execution-progress-step-detail-separator`,"aria-hidden":`true`,children:` · `}),e.detail]}),e.activityLabel===void 0?null:(0,L.jsx)(`span`,{className:`execution-progress-step-activity`,children:e.activityLabel}),e.metrics===void 0||e.metrics.length===0?null:(0,L.jsx)(`span`,{className:`execution-progress-step-metrics`,children:e.metrics.map(e=>(0,L.jsx)(`span`,{className:`execution-progress-step-metric`,children:e},e))})]})]},e.id))})})})}function gL({brand:e,projectName:t,showProjectName:n=!0,meta:r,actions:i,activeTab:a,refreshing:o=!1,onSelectTab:s,onRefresh:c,children:l,className:u,...d}){return(0,L.jsx)(`main`,{className:q(`embedded-project-page`,u),...d,children:(0,L.jsxs)(`section`,{className:`embedded-project-surface`,children:[(0,L.jsxs)(`header`,{className:`embedded-project-header`,children:[(0,L.jsx)(`div`,{className:`embedded-project-brand`,children:e}),!n&&r===void 0?null:(0,L.jsxs)(`div`,{className:`embedded-project-identity`,children:[n?(0,L.jsx)(`h1`,{children:t}):null,r===void 0?null:(0,L.jsx)(`p`,{children:r})]}),i===void 0&&c===void 0?null:(0,L.jsxs)(`div`,{className:`embedded-project-actions`,children:[i,c===void 0?null:(0,L.jsx)(J,{"aria-label":o?`Refreshing project`:`Refresh project`,className:`embedded-project-refresh`,disabled:o,onClick:c,type:`button`,children:o?(0,L.jsx)(px,{"aria-hidden":`true`,className:`is-spinning`}):(0,L.jsx)(kx,{"aria-hidden":`true`})})]})]}),a===void 0?null:(0,L.jsx)(`nav`,{className:`embedded-project-tabs`,"aria-label":`Project sections`,children:[`project`,`work`,`artifacts`,`timeline`].map(e=>(0,L.jsx)(`button`,{"aria-current":a===e?`page`:void 0,className:a===e?`is-active`:void 0,onClick:()=>s?.(e),type:`button`,children:e===`project`?`Project`:e===`work`?`Tasks`:e===`timeline`?`Timeline`:`Artifacts`},e))}),(0,L.jsx)(`div`,{className:`embedded-project-body`,children:l})]})})}function _L({message:e,diagnosticId:t,rows:n,onCopy:r}){let[i,a]=(0,I.useState)(`idle`);return(0,L.jsxs)(`div`,{className:`embedded-project-diagnostic`,children:[e===void 0?null:(0,L.jsx)(`p`,{children:e}),(0,L.jsxs)(`p`,{className:`embedded-project-diagnostic-id`,children:[`Diagnostic ID `,(0,L.jsx)(`code`,{children:t})]}),(0,L.jsxs)(`details`,{children:[(0,L.jsx)(`summary`,{children:`Diagnostic details`}),(0,L.jsx)(`dl`,{"aria-label":`Feishu diagnostic details`,children:n.map(([e,t])=>(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:e}),(0,L.jsx)(`dd`,{children:t})]},e))})]}),(0,L.jsx)(J,{type:`button`,disabled:i===`pending`,onClick:()=>{a(`pending`),Promise.resolve().then(r).then(()=>a(`copied`),()=>a(`failed`))},children:`Copy diagnostics`}),(0,L.jsx)(`span`,{"aria-live":`polite`,children:i===`copied`?`Copied.`:i===`failed`?`Copy unavailable. Select and copy the details above.`:null})]})}function vL({open:e,title:t,onClose:n,children:r}){let i=(0,I.useRef)(null);return(0,L.jsx)(LD,{open:e,onOpenChange:e=>{e||n()},children:(0,L.jsxs)(VD,{children:[(0,L.jsx)(UD,{className:`bottom-sheet-overlay`}),(0,L.jsxs)(qD,{className:`bottom-sheet`,"aria-describedby":void 0,onOpenAutoFocus:()=>{i.current=document.activeElement instanceof HTMLElement?document.activeElement:null},onCloseAutoFocus:e=>{e.preventDefault(),i.current?.isConnected&&i.current.focus()},children:[(0,L.jsxs)(`header`,{className:`bottom-sheet-header`,children:[(0,L.jsx)(QD,{children:t}),(0,L.jsx)(nO,{asChild:!0,children:(0,L.jsx)(J,{className:`bottom-sheet-close`,type:`button`,"aria-label":`Close details`,children:(0,L.jsx)(qx,{"aria-hidden":`true`})})})]}),(0,L.jsx)(`div`,{className:`bottom-sheet-body`,children:r})]})]})})}function yL({tone:e=`neutral`,compact:t=!1,asChild:n=!1,className:r,...i}){return(0,L.jsx)(n?ZC:`div`,{className:q(`chat-event-card`,`is-${e}`,t?`is-compact`:void 0,r),...i})}function bL({as:e=`div`,icon:t,title:n,meta:r,action:i,className:a,...o}){return(0,L.jsxs)(e,{className:q(`chat-event-card-header`,a),...o,children:[(0,L.jsx)(xL,{children:t}),(0,L.jsxs)(`span`,{className:`chat-event-card-title`,children:[(0,L.jsx)(`strong`,{children:n}),r===void 0?null:(0,L.jsx)(`span`,{className:`chat-event-card-meta`,children:r})]}),i]})}function xL({className:e,...t}){return(0,L.jsx)(`span`,{className:q(`chat-event-card-status-icon`,e),...t})}function SL({className:e,...t}){return(0,L.jsx)(`div`,{className:q(`chat-event-card-body`,e),...t})}function CL({className:e,...t}){return(0,L.jsx)(`footer`,{className:q(`chat-event-card-footer`,e),...t})}function wL(e){return e===`done`?`success`:e===`failed`?`danger`:e===`pending`?`warning`:`neutral`}function TL(e){return e===`done`?(0,L.jsx)(Gb,{"aria-hidden":`true`}):e===`failed`?(0,L.jsx)(qx,{"aria-hidden":`true`}):(0,L.jsx)(gx,{"aria-hidden":`true`})}function EL({title:e,summary:t,request:n,messages:r,draft:i,contextLabel:a,defaultOpen:o,readOnly:s=!1,replyCount:c,status:l,statusLabel:u,mentionOptions:d,sendPending:f=!1,submitPending:p=!1,onDraftChange:m,onSendMessage:h,onSubmitRound:g,className:_,...v}){let y=t.trim()===``?n:t,b=a===void 0?y:`${y} (${a})`,[x,S]=(0,I.useState)(o??!0),C=l??(s?`done`:`pending`),w=u??(s?`submitted`:`needs input`),T=c??r.length,E=p||T===0,D=T===0?`No replies`:`${T} ${T===1?`reply`:`replies`}`,O=wL(C),k=`${w} · ${D}`,A=(0,L.jsxs)(SL,{className:`chat-clarification-card-body`,children:[(0,L.jsx)(`div`,{className:`chat-event-thread`,children:r.map(e=>(0,L.jsxs)(`article`,{className:`chat-event-message`,children:[e.avatar,(0,L.jsxs)(`div`,{className:`chat-event-message-copy`,children:[(0,L.jsxs)(`div`,{className:`message-meta`,children:[(0,L.jsx)(`span`,{className:`message-author`,children:e.author}),e.time===void 0?null:(0,L.jsx)(`span`,{className:`message-time`,children:e.time})]}),(0,L.jsx)(`p`,{children:(0,L.jsx)(zI,{children:e.body})})]})]},e.id))}),s?null:(0,L.jsx)(`form`,{className:`chat-event-composer`,"aria-label":`Round reply`,onSubmit:h,children:(0,L.jsxs)(`div`,{className:`composer-input-shell chat-event-composer-input-shell`,children:[(0,L.jsx)(BI,{type:`text`,"aria-label":`Round message`,value:i,placeholder:`Reply in this round`,multiline:!0,maxRows:4,submitOnEnter:!0,...d===void 0?{}:{mentionOptions:d},onValueChange:m}),(0,L.jsx)(`div`,{className:`composer-tools chat-event-composer-tools`,"aria-label":`Round message tools`,children:(0,L.jsx)(`button`,{className:`composer-tool-button composer-send-button chat-event-send-button`,type:`submit`,disabled:i.trim()===``||f,"aria-label":f?`Sending round message`:`Send round message`,title:f?`Sending round message`:`Send round message`,children:(0,L.jsx)(Px,{"aria-hidden":`true`})})})]})})]});return(0,L.jsx)(`article`,{className:q(`message is-chat-event`,_),...v,children:s?(0,L.jsx)(yL,{tone:O,asChild:!0,children:(0,L.jsxs)(`details`,{className:`chat-clarification-card`,open:x,"aria-label":b,onToggle:e=>S(e.currentTarget.open),children:[(0,L.jsx)(bL,{as:`summary`,icon:TL(C),title:e,meta:k,action:(0,L.jsx)(`span`,{className:`chat-event-card-toggle`,"aria-hidden":`true`,children:(0,L.jsx)(Kb,{})})}),A]})}):(0,L.jsx)(yL,{tone:O,asChild:!0,children:(0,L.jsxs)(`section`,{className:`chat-clarification-card is-fixed-open`,"aria-label":b,children:[(0,L.jsx)(bL,{icon:TL(C),title:e,meta:k,tabIndex:-1,action:(0,L.jsxs)(pw,{className:`chat-event-primary-action`,type:`button`,"aria-label":T===0?`Reply before submitting round`:`Submit round`,"aria-busy":p,disabled:E,title:T===0?`Reply before submitting round`:`Submit round`,onClick:g,children:[p?(0,L.jsx)(px,{"aria-hidden":`true`}):(0,L.jsx)(Gb,{"aria-hidden":`true`}),(0,L.jsx)(`span`,{className:`button-label`,children:p?`Submitting`:`Submit`})]})}),A]})})})}function DL({decision:e,disabled:t,onDecide:n}){let r=e.tone===`primary`?pw:J,i=e.decisionId.startsWith(`allow`)?(0,L.jsx)(Gb,{"aria-hidden":`true`}):(0,L.jsx)(qx,{"aria-hidden":`true`});return(0,L.jsxs)(r,{type:`button`,className:q(`chat-approval-card-decision`,e.tone===`primary`?`is-primary`:void 0,e.tone===`danger`?`is-danger`:void 0),disabled:t,onClick:()=>n(e.decisionId),children:[i,(0,L.jsx)(`span`,{className:`button-label`,children:e.label})]})}function OL(e,t){return e===`pending`?`warning`:e===`resolved`?`success`:/expired|cancelled/iu.test(t)?`neutral`:`danger`}function kL(e){return e===`success`?(0,L.jsx)(Gb,{"aria-hidden":`true`}):e===`danger`?(0,L.jsx)(qx,{"aria-hidden":`true`}):e===`neutral`?(0,L.jsx)(Qb,{"aria-hidden":`true`}):(0,L.jsx)(Lx,{"aria-hidden":`true`})}function AL({title:e,summary:t,reason:n,status:r,statusLabel:i,detailLabel:a,detail:o,detailCode:s=!1,decisions:c=[],decisionPending:l=!1,resolutionLabel:u,defaultOpen:d,onDecide:f,className:p,...m}){let[h,g]=(0,I.useState)(d??r===`pending`),_=OL(r,i),v=[...c].sort((e,t)=>e.tone===t.tone?0:e.tone===`primary`?-1:+(t.tone===`primary`)),y=r===`pending`&&f!==void 0?(0,L.jsx)(CL,{className:`chat-approval-card-actions`,children:v.map(e=>(0,L.jsx)(DL,{decision:e,disabled:l,onDecide:f},e.decisionId))}):null,b=(0,L.jsx)(SL,{className:`chat-approval-card-body`,children:(0,L.jsxs)(`div`,{className:`chat-approval-card-content`,children:[(0,L.jsx)(`p`,{className:`chat-approval-card-summary`,children:t}),n===void 0?null:(0,L.jsx)(`p`,{className:`chat-approval-card-reason`,children:n}),o===void 0?null:(0,L.jsxs)(`div`,{className:`chat-approval-card-detail`,children:[a===void 0?null:(0,L.jsx)(`span`,{className:`chat-approval-card-detail-label`,children:a}),s?(0,L.jsx)(`code`,{className:`chat-approval-card-detail-code`,children:o}):(0,L.jsx)(`span`,{className:`chat-approval-card-detail-text`,children:o})]}),r===`pending`||u===void 0?null:(0,L.jsx)(`p`,{className:`chat-approval-card-resolution`,children:u})]})});return(0,L.jsx)(`article`,{className:q(`message is-chat-event`,p),...m,children:r===`pending`?(0,L.jsx)(yL,{tone:_,asChild:!0,children:(0,L.jsxs)(`section`,{className:`chat-approval-card is-fixed-open`,"aria-label":t,children:[(0,L.jsx)(bL,{icon:kL(_),title:e,meta:i,tabIndex:-1}),b,y]})}):(0,L.jsx)(yL,{tone:_,asChild:!0,children:(0,L.jsxs)(`details`,{className:`chat-approval-card`,open:h,"aria-label":t,onToggle:e=>g(e.currentTarget.open),children:[(0,L.jsx)(bL,{as:`summary`,icon:kL(_),title:e,meta:i,action:(0,L.jsx)(`span`,{className:`chat-event-card-toggle`,"aria-hidden":`true`,children:(0,L.jsx)(Kb,{})})}),b]})})})}function jL({state:e,className:t,disabled:n,onClick:r,...i}){let a=e===`retrying`,o=e===`retried`,s=a?`Retrying`:o?`Retried`:`Retry`;return(0,L.jsxs)(J,{...i,onClick:r,className:q(`task-retry-action`,t),disabled:n===!0||r===void 0||a||o,"aria-label":s,"aria-busy":a?`true`:void 0,type:`button`,children:[a?(0,L.jsx)(px,{className:`is-spinning`,"aria-hidden":`true`}):o?(0,L.jsx)(Gb,{"aria-hidden":`true`}):(0,L.jsx)(jx,{"aria-hidden":`true`}),(0,L.jsx)(`span`,{children:s})]})}function ML({status:e,title:t,taskId:n,taskTitle:r,summary:i,moduleName:a,finalNote:o,generatedFiles:s=[],errorCode:c,onOpenTask:l,retryState:u,onRetry:d,className:f,...p}){let m=o?.trim()??``,h=i.trim(),g=m.length>0?m:h,_=e===`completed`?`Task completed`:`Task failed`;return(0,L.jsx)(`article`,{className:q(`message is-chat-event is-task-result`,f),...p,children:(0,L.jsxs)(yL,{tone:e===`completed`?`success`:`danger`,className:q(`chat-task-result-card`,`is-${e}`),children:[(0,L.jsxs)(`button`,{className:`chat-task-result-card-open`,disabled:l===void 0,onClick:()=>l?.(n),type:`button`,"aria-label":`${t}: ${r}`,children:[(0,L.jsx)(xL,{"aria-hidden":`true`,children:e===`completed`?(0,L.jsx)(Gb,{}):(0,L.jsx)(qx,{})}),(0,L.jsxs)(`span`,{className:`chat-task-result-card-main`,children:[(0,L.jsx)(`span`,{className:`chat-task-result-card-state`,children:_}),(0,L.jsx)(`strong`,{children:r}),a===void 0?null:(0,L.jsx)(`span`,{className:`chat-task-result-card-module`,children:a}),g.length===0?null:(0,L.jsx)(`span`,{className:`chat-task-result-card-summary`,children:g}),c===void 0?null:(0,L.jsx)(`span`,{className:`chat-task-result-card-error-code`,children:c}),s.length===0?null:(0,L.jsx)(`span`,{className:`chat-task-result-card-files`,"aria-label":`Generated files`,children:s.map(e=>(0,L.jsxs)(`span`,{className:`chat-task-result-card-file`,children:[(0,L.jsx)(ax,{"aria-hidden":`true`}),(0,L.jsx)(`span`,{children:e.name})]},e.path))})]}),(0,L.jsx)(`span`,{className:`chat-task-result-card-arrow`,"aria-hidden":`true`,children:(0,L.jsx)(qb,{})})]}),u===void 0?null:(0,L.jsx)(`footer`,{className:`chat-task-result-card-actions`,children:(0,L.jsx)(jL,{state:u,onClick:d})})]})})}function NL({status:e}){return e===`done`?(0,L.jsx)(`span`,{className:`task-check`,"aria-hidden":`true`,children:(0,L.jsx)(Gb,{})}):e===`pending`?(0,L.jsx)(`span`,{className:`task-check`,"aria-hidden":`true`,children:(0,L.jsx)(yx,{})}):e===`failed`?(0,L.jsx)(`span`,{className:`task-check`,"aria-hidden":`true`,children:(0,L.jsx)(qx,{})}):e===`running`?(0,L.jsx)(`span`,{className:`task-check`,"aria-hidden":`true`,children:(0,L.jsx)(px,{})}):(0,L.jsx)(`span`,{className:`task-check`,"aria-hidden":`true`})}function PL({title:e,status:t,selected:n=!1,className:r,type:i=`button`,...a}){return(0,L.jsxs)(`button`,{className:q(`task-row`,n?`is-selected`:void 0,`is-${t}`,r),type:i,"aria-current":n?`true`:void 0,...a,children:[(0,L.jsx)(NL,{status:t}),(0,L.jsx)(`div`,{className:`task-row-main`,children:(0,L.jsx)(`div`,{className:`task-title-line`,children:(0,L.jsx)(`strong`,{children:e})})})]})}function FL({label:e,value:t,code:n=!1,status:r}){return(0,L.jsxs)(`div`,{className:`detail-row`,children:[(0,L.jsx)(`span`,{children:e}),r===void 0?n?(0,L.jsx)(`code`,{children:t}):(0,L.jsx)(`strong`,{children:t}):(0,L.jsx)(`strong`,{children:(0,L.jsx)(gw,{status:r,children:t})})]})}function IL({rows:e}){return(0,L.jsx)(L.Fragment,{children:e.map((e,t)=>(0,I.createElement)(FL,{...e,key:`${e.label}-${t}`}))})}function LL({...e}){return(0,L.jsx)(PL,{...e})}function RL({detail:e,placeholder:t,missingTaskId:n,stacked:r=!1}){if(e===void 0){let e=t?.title??(n===void 0?`No task selected`:`Task not found`),i=t?.description??(n===void 0?`Select a task to inspect its contract, latest result, and run history.`:`No task exists for ${n}. Select another task from the Worklist.`);return(0,L.jsxs)(`aside`,{className:q(`task-detail-card`,r?`is-stacked`:void 0),"aria-label":`Selected task details`,children:[(0,L.jsx)(`div`,{className:`task-detail-head`,children:(0,L.jsx)(`h4`,{children:e})}),(0,L.jsx)(`p`,{children:i})]})}return(0,L.jsxs)(`aside`,{className:q(`task-detail-card`,r?`is-stacked`:void 0),"aria-label":`Selected task details`,children:[(0,L.jsxs)(`div`,{className:`task-detail-head`,children:[(0,L.jsx)(gw,{status:e.status,children:e.status}),(0,L.jsx)(`h4`,{children:e.title})]}),(0,L.jsx)(`p`,{children:e.summary}),(0,L.jsxs)(`section`,{className:`task-detail-section`,"aria-label":`Task contract`,children:[(0,L.jsx)(`span`,{className:`task-section-label`,children:`Task contract`}),(0,L.jsx)(IL,{rows:e.contractRows})]}),(0,L.jsxs)(`section`,{className:`task-detail-section task-evidence-section`,"aria-label":`Evidence`,children:[(0,L.jsx)(`span`,{className:`task-section-label`,children:`Evidence`}),(0,L.jsx)(IL,{rows:e.evidenceRows??e.resultRows})]}),e.retryAction===void 0?null:(0,L.jsx)(`div`,{className:`task-detail-retry-row`,children:(0,L.jsx)(jL,{state:e.retryAction.state,onClick:e.retryAction.onRetry})}),(0,L.jsxs)(`section`,{className:`task-detail-section`,"aria-label":`Run result history`,children:[(0,L.jsx)(`span`,{className:`task-section-label`,children:`Run result history`}),e.runResults.length===0?(0,L.jsx)(`p`,{children:`No run result yet.`}):(0,L.jsx)(`div`,{className:`run-result-list`,children:e.runResults.map(e=>(0,L.jsx)(`article`,{className:`run-result-item`,children:(0,L.jsxs)(`div`,{className:`run-result-item-head`,children:[(0,L.jsxs)(`span`,{children:[(0,L.jsx)(`strong`,{children:e.title}),e.meta===void 0?null:(0,L.jsx)(`small`,{children:e.meta})]}),e.status===void 0?null:(0,L.jsx)(gw,{status:e.status,children:e.status})]})},e.id))})]})]})}function zL({modules:e,taskCount:t,detail:n,detailPlaceholder:r,layout:i=`split`,detailOpen:a=!1,onCloseDetail:o,missingTaskId:s,runNote:c,onSelectTask:l,empty:u,className:d,...f}){let p=i!==`split`,m=(0,L.jsx)(RL,{...n===void 0?{}:{detail:n},placeholder:r,...s===void 0?{}:{missingTaskId:s},stacked:p});return(0,L.jsxs)(iS,{title:`Worklist`,frameless:i===`sheet`,icon:(0,L.jsx)(fx,{"aria-hidden":`true`}),action:(0,L.jsx)(`div`,{className:`worklist-header-summary`,children:(0,L.jsx)(`span`,{className:`mini-meta`,children:t===1?`1 task`:`${t} tasks`})}),className:q(`tasks worklist-page-panel`,d),...f,children:[(0,L.jsxs)(`div`,{className:q(`worklist-page-body`,p?`is-stacked`:void 0),children:[c===void 0?null:(0,L.jsx)(`p`,{className:`worklist-run-note`,children:c}),e.length===0?(0,L.jsx)(`div`,{className:`worklist-page-empty`,children:u??(0,L.jsx)(`div`,{className:`reference-empty`,children:`No compiled tasks`})}):(0,L.jsxs)(`div`,{className:q(`task-board-body`,p?`is-stacked`:void 0),children:[(0,L.jsx)(`div`,{className:q(`task-list`,p?`is-stacked`:void 0),"aria-label":`Tasks`,children:e.map(e=>(0,L.jsxs)(`div`,{className:`task-section`,children:[(0,L.jsx)(`span`,{className:`task-section-label`,children:e.label}),e.rows.map(e=>(0,L.jsx)(LL,{title:e.title,status:e.status,onClick:()=>l?.(e.id),...e.selected===void 0?{}:{selected:e.selected}},e.id))]},e.label))}),i===`sheet`?null:m]})]}),i===`sheet`?(0,L.jsx)(vL,{open:a,title:`Details`,onClose:()=>o?.(),children:m}):null]})}function BL({sections:e,statuses:t=[],className:n,...r}){return(0,L.jsxs)(`section`,{className:q(`settings-sheet`,n),"aria-labelledby":`settings-title`,...r,children:[(0,L.jsxs)(`header`,{className:`settings-sheet-head`,children:[(0,L.jsxs)(`div`,{className:`panel-title`,children:[(0,L.jsx)(aS,{icon:(0,L.jsx)(Ix,{"aria-hidden":`true`})}),(0,L.jsx)(`h3`,{id:`settings-title`,children:`Settings`})]}),t.length===0?null:(0,L.jsx)(`div`,{className:`panel-actions`,children:t.map(e=>(0,L.jsx)(mw,{className:`task-tag`,tone:e.tone,children:e.label},e.label))})]}),e.map(e=>(0,L.jsxs)(`section`,{className:`settings-section`,id:e.id,"aria-label":e.title,children:[(0,L.jsx)(`div`,{className:`settings-section-title`,children:(0,L.jsx)(`h4`,{children:e.title})}),(0,L.jsx)(`div`,{className:`settings-section-body`,children:e.rows.map(e=>(0,L.jsxs)(`div`,{className:`settings-row`,children:[(0,L.jsx)(`span`,{className:`field-label`,children:e.label}),e.value===void 0?(0,L.jsx)(`span`,{}):e.plain===!0?(0,L.jsx)(`div`,{className:`settings-row-value`,children:e.value}):(0,L.jsx)(`strong`,{children:e.value})]},e.label))})]},e.id))]})}function VL({value:e,options:t,maxLength:n,canEdit:r=!1,discovering:i=!1,saving:a=!1,onDiscover:o,onUpdate:s}){let[c,l]=(0,I.useState)(!1),[u,d]=(0,I.useState)(e),[f,p]=(0,I.useState)(e),m=u.trim(),h=i||a;return(0,I.useEffect)(()=>{c||(d(e),p(e))},[c,e]),!r||s===void 0?(0,L.jsx)(`span`,{className:`settings-model-readonly`,children:e}):c?(0,L.jsxs)(`form`,{className:`settings-model-editor`,"aria-label":`Change model`,onSubmit:e=>{e.preventDefault(),!(m.length===0||m===f||s===void 0)&&Promise.resolve(s(m,f)).then(e=>{e.kind===`saved`?l(!1):e.kind===`stale`&&p(e.currentValue)}).catch(()=>void 0)},children:[(0,L.jsx)(Cw,{autoComplete:`off`,"aria-label":`Model`,value:u,options:t,maxLength:n,maxVisibleOptions:8,disabled:a,onValueChange:d,placeholder:`Choose or enter a model`,autoFocus:!0}),(0,L.jsxs)(`div`,{className:`settings-model-editor-footer`,children:[(0,L.jsx)(`span`,{className:`settings-model-editor-status`,"aria-live":`polite`,children:i?`Loading models…`:`Choose a model or enter its name.`}),(0,L.jsxs)(`div`,{className:`settings-model-editor-actions`,children:[(0,L.jsx)(J,{className:`settings-model-editor-action`,type:`button`,disabled:a,onClick:()=>{d(e),p(e),l(!1)},children:`Cancel`}),(0,L.jsx)(pw,{className:`settings-model-editor-action`,type:`submit`,disabled:h||m.length===0||m===f,children:a?`Saving…`:`Save`})]})]})]}):(0,L.jsx)(`button`,{"aria-label":`Change model from ${e}`,className:`settings-value-button settings-model-change-button`,type:`button`,onClick:()=>{d(e),p(e),l(!0),Promise.resolve(o?.()).catch(()=>void 0)},children:e})}function HL({row:e}){return e.category===`image`?(0,L.jsx)(cx,{"aria-hidden":`true`}):e.canPreview===!1?(0,L.jsx)(rx,{"aria-hidden":`true`}):e.selected===!0?(0,L.jsx)(nx,{"aria-hidden":`true`}):e.extension===`md`||e.extension===`txt`?(0,L.jsx)(ix,{"aria-hidden":`true`}):(0,L.jsx)(ax,{"aria-hidden":`true`})}function UL({row:e,onSelectFile:t}){return(0,L.jsxs)(`button`,{className:q(`reference-row`,e.selected===!0?`is-selected`:void 0),type:`button`,"aria-current":e.selected===!0?`true`:void 0,onClick:()=>t?.(e.path),children:[(0,L.jsx)(`span`,{className:`reference-file-icon`,"aria-hidden":`true`,children:(0,L.jsx)(HL,{row:e})}),(0,L.jsxs)(`span`,{className:`reference-row-main`,children:[(0,L.jsx)(`strong`,{children:e.name}),(0,L.jsx)(`span`,{children:e.meta})]})]})}function WL({name:e,rows:t,onSelectFile:n}){return(0,L.jsxs)(`details`,{className:`reference-folder-group`,children:[(0,L.jsxs)(`summary`,{className:`reference-folder-head`,children:[(0,L.jsx)(`span`,{className:`reference-file-icon`,"aria-hidden":`true`,children:(0,L.jsx)(sx,{})}),(0,L.jsxs)(`span`,{className:`reference-row-main`,children:[(0,L.jsx)(`strong`,{children:e}),(0,L.jsxs)(`span`,{children:[t.length,` `,t.length===1?`file`:`files`]})]})]}),(0,L.jsx)(`div`,{className:`reference-folder-files`,children:t.map(e=>(0,L.jsx)(UL,{row:e,...n===void 0?{}:{onSelectFile:n}},e.path))})]})}function GL(e){let t=new Map;for(let n of e){if(n.folderGroup===void 0)continue;let e=t.get(n.folderGroup)??[];e.push(n),t.set(n.folderGroup,e)}return[...t.entries()].map(([e,t])=>({name:e,rows:t}))}function KL({title:e=`References`,description:t,files:n,detail:r,uploadPending:i=!1,fileSortMode:a=`time`,empty:o,onSelectFile:s,onUploadFile:c,onDropFiles:l,onFileSortModeChange:u,className:d,...f}){let p=n.filter(e=>e.category===`image`),m=n.filter(e=>e.category!==`image`),h=m.filter(e=>e.folderGroup===void 0),g=GL(m),_=e=>(0,L.jsx)(`div`,{className:`reference-image-strip`,role:`list`,"aria-label":`Reference images`,onWheel:e=>{Math.abs(e.deltaY)>Math.abs(e.deltaX)&&(e.currentTarget.scrollLeft+=e.deltaY,e.preventDefault())},children:e.map(e=>(0,L.jsxs)(`button`,{className:q(`reference-image-tile`,e.selected===!0?`is-selected`:void 0),type:`button`,"aria-current":e.selected===!0?`true`:void 0,"aria-label":`Open ${e.name}`,onClick:()=>s?.(e.path),children:[e.thumbnailUrl===void 0?(0,L.jsx)(`span`,{className:`reference-image-tile-fallback`,"aria-hidden":`true`,children:(0,L.jsx)(cx,{})}):(0,L.jsx)(`img`,{src:e.thumbnailUrl,alt:e.name,loading:`lazy`,decoding:`async`}),(0,L.jsx)(`span`,{children:e.name})]},e.path))}),v=e=>e.map(e=>(0,L.jsx)(UL,{row:e,...s===void 0?{}:{onSelectFile:s}},e.path)),y=l??(c===void 0?void 0:e=>{for(let t of e)c(t)});return(0,L.jsxs)(xI,{className:q(`panel references-panel`,t===void 0?void 0:`has-description`,d),"aria-label":e,dropLabel:`Drop reference files to upload`,pending:i,onFilesUpload:y,...f,children:[(0,L.jsxs)(`div`,{className:`panel-header`,children:[(0,L.jsxs)(`div`,{className:`panel-title`,children:[(0,L.jsx)(aS,{icon:(0,L.jsx)(ix,{"aria-hidden":`true`})}),(0,L.jsx)(`h3`,{children:e})]}),c===void 0?null:(0,L.jsx)(`div`,{className:`panel-actions`,children:(0,L.jsx)(aL,{variant:`action`,className:`reference-upload-button`,label:`Upload`,pendingLabel:`Uploading`,pending:i,onFileUpload:c})})]}),t===void 0?null:(0,L.jsx)(`p`,{className:`reference-panel-description`,children:t}),(0,L.jsx)(`div`,{className:`reference-board-body`,children:n.length===0?(0,L.jsx)(`div`,{className:`reference-board-empty`,children:o??(0,L.jsx)(`div`,{className:`reference-empty`,children:`No reference files`})}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`div`,{className:`reference-list`,"aria-label":`Reference file list`,children:[p.length===0?null:(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`div`,{className:`reference-section-label`,children:`Images`}),_(p)]}),m.length===0?null:(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`div`,{className:`reference-files-head`,children:[(0,L.jsx)(`div`,{className:`reference-section-label`,children:`Files`}),u===void 0?null:(0,L.jsxs)(`div`,{className:`reference-list-toolbar`,role:`toolbar`,"aria-label":`Sort files`,children:[(0,L.jsx)(`button`,{className:q(`reference-sort-button`,a===`time`?`is-active`:void 0),type:`button`,"aria-label":`Sort files by upload time`,"aria-pressed":a===`time`,onClick:()=>u(`time`),children:(0,L.jsx)(Qb,{"aria-hidden":`true`})}),(0,L.jsx)(`button`,{className:q(`reference-sort-button`,a===`type`?`is-active`:void 0),type:`button`,"aria-label":`Sort files by type`,"aria-pressed":a===`type`,onClick:()=>u(`type`),children:(0,L.jsx)(Vx,{"aria-hidden":`true`})})]})]}),v(h),g.map(e=>(0,L.jsx)(WL,{name:e.name,rows:e.rows,...s===void 0?{}:{onSelectFile:s}},e.name))]})]}),(0,L.jsxs)(`aside`,{className:`reference-detail-card`,"aria-label":`Selected reference content`,children:[(0,L.jsxs)(`div`,{className:`reference-detail-head`,children:[(0,L.jsx)(`h4`,{children:r?.title??`No file selected`}),r?.meta===void 0?null:(0,L.jsx)(`p`,{children:r.meta})]}),(0,L.jsxs)(`div`,{className:`reference-detail-section`,children:[(0,L.jsx)(`span`,{className:`task-section-label`,children:`Summary`}),(0,L.jsx)(`p`,{className:`reference-summary`,children:r?.summary??`Summary not available yet`}),r?.summaryStatus===void 0?null:(0,L.jsx)(`p`,{className:`reference-summary-status`,children:r.summaryStatus})]}),(0,L.jsxs)(`div`,{className:`reference-detail-section`,children:[(0,L.jsx)(`span`,{className:`task-section-label`,children:`Content`}),r?.content===void 0?r?.imageUrl===void 0?(0,L.jsx)(`p`,{className:`reference-content`,children:r?.unavailableReason??`Select a reference file`}):(0,L.jsx)(`img`,{className:`reference-image-preview`,src:r.imageUrl,alt:r.title,decoding:`async`}):(0,L.jsx)(`pre`,{className:`reference-content`,children:(0,L.jsx)(`code`,{children:r.content})})]})]})]})})]})}function qL(e){return e.status===`loading`?{status:`running`,label:`Loading`}:e.status===`not_declared`?{status:`todo`,label:`No artifact`}:e.status===`invalid`?{status:`failed`,label:`Invalid`}:e.status===`updating`?{status:`running`,label:`Updating`}:e.previewStatus===`ready`?null:e.previewStatus===`starting`?{status:`running`,label:`Starting`}:e.previewStatus===`failed`?{status:`failed`,label:`Failed`}:{status:`todo`,label:`Idle`}}function JL({state:e,empty:t,emptyWatermark:n,iframeRef:r,onPreviewLoad:i}){if(e.status===`declared`&&e.previewStatus===`ready`&&e.previewUrl!==void 0)return(0,L.jsx)(`iframe`,{className:`artifact-iframe`,src:e.previewUrl,title:`${e.title} artifact preview`,sandbox:`allow-scripts allow-forms allow-same-origin`,referrerPolicy:`no-referrer`,ref:r,onLoad:i});let a,o=`neutral`;return e.status===`loading`?a=`Loading artifact`:e.status===`updating`?a=`Artifact is updating`:e.status===`not_declared`?a=`No artifact`:e.status===`invalid`?(o=`error`,a=`Invalid artifact. ${e.message}`):e.previewStatus===`starting`?a=`Preview is starting`:e.previewStatus===`failed`?(o=`error`,a=e.errorMessage??`Preview failed`):a=`Preview is idle`,(0,L.jsx)(`div`,{className:`artifact-empty-preview`,role:e.status===`invalid`?`alert`:void 0,children:t??(0,L.jsx)(Yx,{tone:o,watermark:n,children:a})})}function YL({state:e,presentation:t=`panel`,error:n=null,empty:r,emptyWatermark:i,headerAction:a,iframeRef:o,onPreviewLoad:s,className:c,...l}){let u=n===null?e:{status:`invalid`,message:n},d=qL(u);return(0,L.jsxs)(`section`,{className:q(`panel artifacts-panel`,t===`preview`&&`is-frameless`,c),"aria-label":`Artifacts`,...l,children:[t===`preview`?null:(0,L.jsxs)(`div`,{className:`panel-header`,children:[(0,L.jsxs)(`div`,{className:`panel-title`,children:[(0,L.jsx)(aS,{icon:(0,L.jsx)(bx,{"aria-hidden":`true`})}),(0,L.jsx)(`h3`,{children:`Artifacts`})]}),(0,L.jsxs)(`div`,{className:`panel-actions`,children:[a,d===null?null:(0,L.jsx)(gw,{status:d.status,children:d.label})]})]}),(0,L.jsx)(`div`,{className:`artifact-board-body`,children:(0,L.jsx)(`div`,{className:`artifact-preview-frame`,"aria-label":`Current artifact`,children:(0,L.jsx)(JL,{state:u,empty:r,emptyWatermark:i,...o===void 0?{}:{iframeRef:o},...s===void 0?{}:{onPreviewLoad:s}})})})]})}function XL(e){return e.accessibleName?.trim()||e.textExcerpt?.trim()||void 0}function ZL(e){let t=e.role?.trim()||e.tagName.trim()||e.elementKind,n=XL(e);return n===void 0?t:`${t} “${n}”`}function QL({active:e,pending:t=!1,className:n,...r}){let i=(0,L.jsxs)(L.Fragment,{children:[e?(0,L.jsx)(Gb,{"aria-hidden":`true`}):(0,L.jsx)(Tx,{"aria-hidden":`true`}),t?`Submitting…`:e?`Submit comments`:`Comments`]});return e?(0,L.jsx)(pw,{className:q(`artifact-comments-action`,`is-active`,n),type:`button`,...r,children:i}):(0,L.jsx)(J,{className:q(`artifact-comments-action`,n),type:`button`,...r,children:i})}function $L({author:e,avatar:t,comment:n,annotations:r,selectedTarget:i,selectedTime:a,stale:o=!1,bridgeUnavailableReason:s,sendDisabledReason:c,onCommentChange:l,onAddAnnotation:u,onCancelSelection:d,onRemoveAnnotation:f,onReset:p,className:m,...h}){let g=i!==void 0&&n.trim().length>0&&!o;function _(e){e.preventDefault(),g&&u()}function v(e){e.key!==`Enter`||e.shiftKey||e.metaKey||e.nativeEvent.isComposing||(e.preventDefault(),g&&u())}return(0,L.jsxs)(`aside`,{className:q(`artifact-comments-rail`,m),"aria-label":`Artifact comments`,...h,children:[o?(0,L.jsxs)(`div`,{className:`artifact-comments-state is-warning`,role:`status`,children:[(0,L.jsx)(`strong`,{children:`Artifact updated`}),(0,L.jsx)(`span`,{children:`These comments belong to an earlier preview.`}),(0,L.jsx)(J,{type:`button`,onClick:p,children:`Start over`})]}):null,s===void 0?null:(0,L.jsxs)(`div`,{className:`artifact-comments-state is-warning`,role:`status`,children:[(0,L.jsx)(`strong`,{children:`Comments unavailable`}),(0,L.jsx)(`span`,{children:s})]}),c===void 0?null:(0,L.jsxs)(`div`,{className:`artifact-comments-state is-warning`,role:`status`,children:[(0,L.jsx)(`strong`,{children:`Comments cannot be submitted yet`}),(0,L.jsx)(`span`,{children:c})]}),r.map((n,r)=>(0,L.jsxs)(HI,{"aria-label":`Comment ${r+1} on ${ZL(n.target)}`,author:e,avatar:t,className:`artifact-comment-card is-sent`,...n.time===void 0?{}:{time:n.time},children:[(0,L.jsx)(`p`,{children:n.comment}),(0,L.jsx)(fw,{className:`artifact-comment-dismiss`,label:`Remove comment ${r+1}`,icon:(0,L.jsx)(qx,{"aria-hidden":`true`}),type:`button`,onClick:()=>f(r)})]},n.key)),i===void 0||o?null:(0,L.jsxs)(HI,{"aria-label":`Comment on ${ZL(i)}`,author:e,avatar:t,className:`artifact-comment-card is-composing`,...a===void 0?{}:{time:a},children:[(0,L.jsx)(fw,{className:`artifact-comment-dismiss`,label:`Cancel selected element`,icon:(0,L.jsx)(qx,{"aria-hidden":`true`}),type:`button`,onClick:d}),(0,L.jsx)(`form`,{className:`artifact-comment-composer composer`,onSubmit:_,children:(0,L.jsxs)(`div`,{className:`composer-input-shell`,children:[(0,L.jsx)(`textarea`,{"aria-label":`Comment for selected element`,autoFocus:!0,maxLength:1e3,placeholder:`Write a comment`,rows:1,value:n,onChange:e=>l(e.target.value),onKeyDown:v}),(0,L.jsx)(`div`,{className:`composer-tools`,children:(0,L.jsx)(`button`,{"aria-label":`Add comment`,className:`composer-tool-button composer-send-button`,disabled:!g,title:`Add comment`,type:`submit`,children:(0,L.jsx)(Px,{"aria-hidden":`true`})})})]})})]})]})}function eR({artifactTitle:e,summary:t,annotations:n,onViewAnnotation:r,className:i,...a}){let o=t?.trim()||n[0]?.comment.trim()||`Artifact feedback`;return(0,L.jsxs)(`details`,{className:q(`artifact-feedback-card`,i),...a,children:[(0,L.jsxs)(`summary`,{children:[(0,L.jsx)(_x,{"aria-hidden":`true`}),(0,L.jsxs)(`span`,{className:`artifact-feedback-card-heading`,children:[(0,L.jsx)(`strong`,{children:e}),(0,L.jsxs)(`span`,{children:[n.length,` `,n.length===1?`note`:`notes`]}),(0,L.jsx)(`small`,{children:o})]}),(0,L.jsx)(Kb,{className:`artifact-feedback-card-chevron`,"aria-hidden":`true`})]}),(0,L.jsxs)(`div`,{className:`artifact-feedback-card-body`,children:[t?.trim()?(0,L.jsx)(`p`,{className:`artifact-feedback-card-summary`,children:t}):null,(0,L.jsx)(`ol`,{children:n.map((e,t)=>(0,L.jsxs)(`li`,{children:[(0,L.jsx)(`span`,{className:`artifact-feedback-note-index`,children:t+1}),(0,L.jsxs)(`span`,{className:`artifact-feedback-note-copy`,children:[(0,L.jsx)(`strong`,{children:ZL(e.target)}),(0,L.jsx)(`small`,{children:e.documentUrl}),(0,L.jsx)(`span`,{children:e.comment}),e.canView&&r!==void 0?(0,L.jsxs)(`button`,{type:`button`,onClick:()=>r(t),children:[(0,L.jsx)(mx,{"aria-hidden":`true`}),`View in Artifact`]}):null]})]},`${e.documentUrl}:${t}`))})]})]})}function tR({row:e}){return e.selected===!0?(0,L.jsx)(nx,{"aria-hidden":`true`}):(0,L.jsx)(Rx,{"aria-hidden":`true`})}function nR({skills:e,communityLinks:t=[],detail:n,readOnly:r=!1,detailFeedback:i,uploadPending:a=!1,deletePending:o=!1,empty:s,onSelectSkill:c,onUploadSkill:l,onDeleteSkill:u,className:d,...f}){let p=e.find(e=>e.selected===!0)?.name,m=t.length>0;return(0,L.jsxs)(`section`,{className:q(`panel references-panel skills-panel`,d),"aria-label":`Skills`,...f,children:[(0,L.jsxs)(`div`,{className:`panel-header`,children:[(0,L.jsxs)(`div`,{className:`panel-title`,children:[(0,L.jsx)(aS,{icon:(0,L.jsx)(Rx,{"aria-hidden":`true`})}),(0,L.jsx)(`h3`,{children:`Skills`})]}),r?null:(0,L.jsx)(`div`,{className:`panel-actions`,children:(0,L.jsx)(aL,{variant:`action`,className:`reference-upload-button`,label:`Upload`,pendingLabel:`Uploading`,pending:a,accept:`.zip,application/zip,application/x-zip-compressed`,onFileUpload:l})})]}),(0,L.jsx)(`div`,{className:`reference-board-body`,children:e.length===0&&!m?(0,L.jsx)(`div`,{className:`reference-board-empty`,children:s??(0,L.jsx)(`div`,{className:`reference-empty`,children:`No skills`})}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`div`,{className:`reference-list`,"aria-label":`Skill list`,children:[m?(0,L.jsxs)(`div`,{className:`skill-community-section`,"aria-label":`Skill communities`,children:[(0,L.jsx)(`div`,{className:`reference-section-label`,children:`Skill communities`}),(0,L.jsx)(`div`,{className:`skill-community-grid`,children:t.map(e=>(0,L.jsxs)(`a`,{className:`skill-community-card`,href:e.href,target:`_blank`,rel:`noreferrer`,children:[(0,L.jsx)(`span`,{className:`skill-community-card-icon`,"aria-hidden":`true`,children:(0,L.jsx)(dx,{})}),(0,L.jsx)(`span`,{className:`skill-community-card-main`,children:(0,L.jsx)(`strong`,{children:e.title})})]},e.href))})]}):null,e.length===0?null:(0,L.jsx)(`div`,{className:`reference-section-label`,children:`User skills`}),e.map(e=>(0,L.jsxs)(`button`,{className:q(`reference-row`,e.selected===!0?`is-selected`:void 0),type:`button`,"aria-label":`Select skill ${e.name}`,"aria-current":e.selected===!0?`true`:void 0,onClick:()=>c?.(e.name),children:[(0,L.jsx)(`span`,{className:`reference-file-icon`,"aria-hidden":`true`,children:(0,L.jsx)(tR,{row:e})}),(0,L.jsxs)(`span`,{className:`reference-row-main`,children:[(0,L.jsx)(`strong`,{children:e.name}),(0,L.jsx)(`span`,{children:e.shortDescription??e.description})]})]},e.name))]}),(0,L.jsx)(`aside`,{className:`reference-detail-card`,"aria-label":`Selected skill content`,children:e.length===0?(0,L.jsx)(`div`,{className:`reference-board-empty`,children:s??(0,L.jsx)(`div`,{className:`reference-empty`,children:`No skills`})}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`div`,{className:`reference-detail-head skill-detail-head`,children:[(0,L.jsxs)(`div`,{className:`skill-detail-title`,children:[(0,L.jsx)(`h4`,{children:n?.title??`No skill selected`}),n?.description===void 0?null:(0,L.jsx)(`p`,{children:n.description}),n?.updatedLabel===void 0?null:(0,L.jsx)(`p`,{children:n.updatedLabel})]}),r||p===void 0||u===void 0?null:(0,L.jsxs)(J,{className:`skill-delete-button`,type:`button`,disabled:o,"aria-busy":o,onClick:()=>u(p),children:[(0,L.jsx)(Ux,{"aria-hidden":`true`}),(0,L.jsx)(`span`,{children:o?`Deleting`:`Delete`})]})]}),(0,L.jsxs)(`div`,{className:`reference-detail-section`,children:[i,(0,L.jsx)(`span`,{className:`task-section-label`,children:`SKILL.md`}),n?.skillMd===void 0?(0,L.jsx)(`p`,{className:`reference-content`,children:n?.unavailableReason??`Select a skill`}):(0,L.jsx)(`pre`,{className:`reference-content`,children:(0,L.jsx)(`code`,{"aria-label":`Skill markdown for ${n.title}`,children:n.skillMd})})]})]})})]})})]})}function rR({label:e,children:t}){return(0,L.jsxs)(`section`,{className:`timeline-trace-section`,children:[(0,L.jsx)(`span`,{className:`timeline-trace-label`,children:e}),(0,L.jsx)(`div`,{className:`timeline-trace-section-body`,children:t})]})}function iR(e){return e.replaceAll(`_`,` `)}function aR(e){return e===`passed`?`success`:e===`failed`?`error`:`warning`}function oR(e){return e.status===`promoted`?`success`:e.status===`not_promoted`?`error`:`neutral`}function sR(e){if(e.skipReasonSummary!==void 0)return e.skipReasonSummary;switch(e.checks){case`passed`:return`All validation checks passed.`;case`failed`:return`Validation checks failed.`;case`skipped`:return`Validation was skipped.`}}function cR(e){if(e.summary!==void 0)return e.summary;switch(e.status){case`promoted`:return`Changes were promoted after verification.`;case`not_promoted`:return`Changes were not promoted.`;case`not_attempted`:return`Promotion was not attempted.`}}function lR(e){switch(e){case`added`:return`+`;case`modified`:return`~`;case`deleted`:return`-`;case`renamed`:return`~`;case`unknown`:return`?`}}var uR=3;function dR({expanded:e,collapsedLabel:t,expandedLabel:n,onClick:r}){return(0,L.jsxs)(`button`,{"aria-expanded":e,className:q(`timeline-trace-more`,e&&`is-expanded`),onClick:r,type:`button`,children:[(0,L.jsx)(`span`,{children:e?n:t}),(0,L.jsx)(Kb,{"aria-hidden":`true`})]})}function fR({expanded:e,hiddenCount:t,label:n,onClick:r}){return t<=0?null:(0,L.jsx)(dR,{collapsedLabel:`Show ${t} more ${n}${t===1?``:`s`}`,expanded:e,expandedLabel:`Show fewer ${n}s`,onClick:r})}function pR(e){let t=[];return(e.origin!==void 0||e.decisions!==void 0||e.clarification!==void 0)&&t.push({id:`context`,label:`Context`,tone:`neutral`}),e.contract!==void 0&&t.push({id:`contract`,label:`Contract`,tone:`neutral`}),(e.result!==void 0||e.changes!==void 0)&&t.push({id:`result`,label:`Result`,tone:e.tone}),e.verification!==void 0&&t.push({id:`checks`,label:`Checks`,tone:aR(e.verification.checks)}),e.promotion!==void 0&&t.push({id:`promotion`,label:`Promotion`,tone:oR(e.promotion)}),e.checkpoint!==void 0&&t.push({id:`checkpoint`,label:`Checkpoint`,tone:e.tone}),t}function mR({trace:e}){let t=pR(e),n=e.links.filter(e=>e.onClick!==void 0),[r,i]=(0,I.useState)(()=>new Set),a=r.has(`origin`),o=r.has(`decisions`),s=r.has(`clarification-answers`),c=r.has(`scope`),l=r.has(`changes`),u=r.has(`checkpoint`),d=r.has(`generated-files`),f=e.origin?.snippets??[],p=e.decisions===void 0||o?e.decisions??[]:e.decisions.slice(0,uR),m=e.clarification?.answers===void 0||s?e.clarification?.answers??[]:e.clarification.answers.slice(0,uR),h=e.contract===void 0||c?e.contract?.scope??[]:e.contract.scope.slice(0,uR),g=e.checkpoint===void 0||u?e.checkpoint?.items??[]:e.checkpoint.items.slice(0,uR),_=e.checkpoint?.generatedFiles===void 0||d?e.checkpoint?.generatedFiles??[]:e.checkpoint.generatedFiles.slice(0,uR);function v(e){i(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}return(0,L.jsxs)(`div`,{className:q(`timeline-trace-card`,`is-${e.tone}`),children:[e.summary===void 0||e.result!==void 0?null:(0,L.jsx)(`p`,{className:`timeline-trace-summary`,children:e.summary}),t.length===0?null:(0,L.jsx)(`ol`,{className:`timeline-trace-path`,"aria-label":`Recorded task trace`,children:t.map(e=>(0,L.jsxs)(`li`,{className:`is-${e.tone}`,children:[(0,L.jsx)(`span`,{"aria-hidden":`true`}),(0,L.jsx)(`strong`,{children:e.label})]},e.id))}),e.origin===void 0?null:(0,L.jsxs)(rR,{label:`Origin`,children:[e.origin.title===void 0?null:(0,L.jsx)(`strong`,{className:`timeline-trace-title`,children:e.origin.title}),e.origin.summary===void 0?null:(0,L.jsx)(`p`,{children:e.origin.summary}),e.origin.unavailableReason===void 0?null:(0,L.jsx)(`small`,{className:`timeline-trace-muted`,children:e.origin.unavailableReason}),f.length>0?(0,L.jsx)(dR,{collapsedLabel:`Show ${f.length} source message${f.length===1?``:`s`}`,expanded:a,expandedLabel:`Show fewer source messages`,onClick:()=>v(`origin`)}):e.origin.sourceCount===void 0?null:(0,L.jsxs)(`small`,{className:`timeline-trace-muted`,children:[e.origin.sourceCount,` source message`,e.origin.sourceCount===1?``:`s`]}),!a||f.length===0?null:(0,L.jsx)(`ul`,{className:`timeline-trace-snippet-list`,children:f.map(e=>(0,L.jsx)(`li`,{className:`timeline-trace-snippet`,children:e.onClick===void 0?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`span`,{children:[e.author,` · `,e.createdAt]}),(0,L.jsx)(`p`,{children:e.body})]}):(0,L.jsxs)(`button`,{className:`timeline-trace-snippet-button`,onClick:e.onClick,type:`button`,children:[(0,L.jsxs)(`span`,{children:[e.author,` · `,e.createdAt]}),(0,L.jsx)(`p`,{children:e.body})]})},e.id))})]}),e.decisions===void 0||e.decisions.length===0?null:(0,L.jsxs)(rR,{label:`Accepted Context`,children:[(0,L.jsx)(`ul`,{className:`timeline-trace-list`,children:p.map(e=>(0,L.jsxs)(`li`,{children:[e.title===void 0?null:(0,L.jsx)(mw,{tone:`neutral`,children:e.title}),(0,L.jsx)(`span`,{children:e.summary})]},e.id))}),(0,L.jsx)(fR,{expanded:o,hiddenCount:Math.max(e.decisions.length-uR,0),label:`context item`,onClick:()=>v(`decisions`)})]}),e.clarification===void 0?null:(0,L.jsxs)(rR,{label:`Clarification`,children:[e.clarification.title===void 0?null:(0,L.jsx)(`strong`,{className:`timeline-trace-title`,children:e.clarification.title}),e.clarification.summary===void 0?null:(0,L.jsx)(`p`,{children:e.clarification.summary}),e.clarification.request===void 0?null:(0,L.jsx)(`p`,{children:e.clarification.request}),e.clarification.status===void 0&&e.clarification.answerCount===void 0?null:(0,L.jsxs)(`div`,{className:`timeline-trace-inline`,children:[e.clarification.status===void 0?null:(0,L.jsx)(mw,{tone:e.clarification.status===`active`?`warning`:`success`,children:e.clarification.status===`active`?`needs input`:`resolved`}),e.clarification.answerCount===void 0?null:(0,L.jsxs)(`small`,{className:`timeline-trace-muted`,children:[e.clarification.answerCount,` answer`,e.clarification.answerCount===1?``:`s`]})]}),e.clarification.answers===void 0||e.clarification.answers.length===0?null:(0,L.jsx)(`ul`,{className:`timeline-trace-snippet-list`,children:m.map(e=>(0,L.jsx)(`li`,{className:`timeline-trace-snippet`,children:e.onClick===void 0?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`span`,{children:[e.author,` · `,e.createdAt]}),(0,L.jsx)(`p`,{children:e.body})]}):(0,L.jsxs)(`button`,{className:`timeline-trace-snippet-button`,onClick:e.onClick,type:`button`,children:[(0,L.jsxs)(`span`,{children:[e.author,` · `,e.createdAt]}),(0,L.jsx)(`p`,{children:e.body})]})},e.id))}),e.clarification.answers===void 0?null:(0,L.jsx)(fR,{expanded:s,hiddenCount:Math.max(e.clarification.answers.length-uR,0),label:`answer`,onClick:()=>v(`clarification-answers`)})]}),e.contract===void 0?null:(0,L.jsxs)(rR,{label:`Contract`,children:[(0,L.jsx)(`p`,{children:e.contract.goal}),h.length===0?null:(0,L.jsx)(`ul`,{className:`timeline-trace-list is-bulleted`,children:h.map((e,t)=>(0,L.jsx)(`li`,{children:(0,L.jsx)(`span`,{children:e})},`scope-${t}`))}),(0,L.jsx)(fR,{expanded:c,hiddenCount:Math.max(e.contract.scope.length-uR,0),label:`scope item`,onClick:()=>v(`scope`)}),c&&e.contract.truncated===!0?(0,L.jsx)(`small`,{className:`timeline-trace-muted`,children:`Additional scope items are outside this bounded audit preview.`}):null]}),e.result===void 0?null:(0,L.jsxs)(rR,{label:`Result`,children:[(0,L.jsx)(`p`,{children:e.result.summary}),e.result.errorCode===void 0?null:(0,L.jsx)(`code`,{className:`timeline-trace-code`,children:e.result.errorCode})]}),e.changes===void 0?null:(0,L.jsxs)(rR,{label:`Changes`,children:[e.changes.items.length===0?(0,L.jsx)(`p`,{className:`timeline-trace-muted`,children:`No repo changes recorded.`}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(dR,{collapsedLabel:`Show ${e.changes.items.length} file change${e.changes.items.length===1?``:`s`}`,expanded:l,expandedLabel:`Show fewer file changes`,onClick:()=>v(`changes`)}),l?(0,L.jsx)(`ul`,{className:`timeline-trace-diff-list`,children:e.changes.items.map(e=>(0,L.jsxs)(`li`,{className:`is-${e.status}`,children:[(0,L.jsx)(`span`,{className:`timeline-trace-diff-mark`,children:lR(e.status)}),(0,L.jsx)(`code`,{children:e.previousPath===void 0?e.path:`${e.previousPath} -> ${e.path}`})]},`${e.status}:${e.path}`))}):null]}),l&&e.changes.totalCount>e.changes.items.length?(0,L.jsxs)(`small`,{className:`timeline-trace-muted`,children:[e.changes.totalCount-e.changes.items.length,` additional files are outside this bounded audit preview.`]}):null]}),e.verification===void 0?null:(0,L.jsx)(rR,{label:`Verification`,children:(0,L.jsxs)(`div`,{className:`timeline-trace-inline`,children:[(0,L.jsx)(mw,{tone:aR(e.verification.checks),children:iR(e.verification.checks)}),(0,L.jsx)(`p`,{children:sR(e.verification)})]})}),e.promotion===void 0?null:(0,L.jsx)(rR,{label:`Promotion`,children:(0,L.jsxs)(`div`,{className:`timeline-trace-inline`,children:[(0,L.jsx)(mw,{tone:oR(e.promotion),children:iR(e.promotion.status)}),(0,L.jsx)(`p`,{children:cR(e.promotion)})]})}),e.checkpoint===void 0?null:(0,L.jsxs)(rR,{label:`Checkpoint`,children:[(0,L.jsxs)(`div`,{className:`timeline-trace-counters`,children:[(0,L.jsxs)(`span`,{children:[e.checkpoint.counters.completed,` completed`]}),(0,L.jsxs)(`span`,{children:[e.checkpoint.counters.failed,` failed`]}),(0,L.jsxs)(`span`,{children:[e.checkpoint.counters.remaining,` remaining`]})]}),(0,L.jsx)(`ul`,{className:`timeline-trace-list`,children:g.map(e=>(0,L.jsxs)(`li`,{children:[(0,L.jsx)(mw,{tone:e.status===`done`?`success`:`error`,children:e.status===`done`?`done`:`failed`}),(0,L.jsx)(`strong`,{children:e.title}),(0,L.jsx)(`span`,{children:e.summary})]},e.id))}),(0,L.jsx)(fR,{expanded:u,hiddenCount:Math.max(e.checkpoint.items.length-uR,0),label:`checkpoint item`,onClick:()=>v(`checkpoint`)}),e.checkpoint.generatedFiles===void 0||e.checkpoint.generatedFiles.length===0?null:(0,L.jsx)(`ul`,{className:`timeline-trace-file-list`,children:_.map(e=>(0,L.jsxs)(`li`,{children:[(0,L.jsx)(`strong`,{children:e.name}),(0,L.jsx)(`code`,{children:e.path})]},e.id))}),e.checkpoint.generatedFiles===void 0?null:(0,L.jsx)(fR,{expanded:d,hiddenCount:Math.max(e.checkpoint.generatedFiles.length-uR,0),label:`generated file`,onClick:()=>v(`generated-files`)}),(u||d)&&e.checkpoint.truncated===!0?(0,L.jsx)(`small`,{className:`timeline-trace-muted`,children:`Additional checkpoint evidence is outside this bounded audit preview.`}):null]}),n.length===0?null:(0,L.jsx)(rR,{label:`Links`,children:(0,L.jsx)(`div`,{className:`timeline-trace-links`,children:n.map(e=>(0,L.jsxs)(J,{className:`timeline-trace-link`,onClick:e.onClick,type:`button`,children:[(0,L.jsx)(tx,{"aria-hidden":`true`}),(0,L.jsx)(`span`,{children:e.label})]},e.id))})})]})}function hR({item:e,presentation:t=`panel`,expanded:n,active:r,onActivate:i,onToggle:a}){let o=e.trace,s=o!==void 0,c=e.tone??`neutral`,l=c===`error`?(0,L.jsx)(qx,{"aria-hidden":`true`}):c===`warning`?(0,L.jsx)(yx,{"aria-hidden":`true`}):c===`sync`?(0,L.jsx)(px,{"aria-hidden":`true`}):(0,L.jsx)(Gb,{"aria-hidden":`true`});return(0,L.jsxs)(`li`,{className:q(`timeline-event-item`,s?`has-trace`:void 0,n?`is-expanded`:void 0,r?`is-current`:void 0,e.tone===void 0?void 0:`is-${e.tone}`),id:`timeline-event-${e.id}`,children:[t===`sheet`?null:(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`time`,{className:`timeline-event-time`,children:e.occurredAt}),(0,L.jsx)(`div`,{className:`timeline-event-marker`,"aria-hidden":`true`})]}),(0,L.jsxs)(`div`,{className:`timeline-event-main`,children:[(0,L.jsxs)(`button`,{"aria-expanded":s&&t===`panel`?n:void 0,"aria-haspopup":s&&t===`sheet`?`dialog`:void 0,className:`timeline-event-toggle`,disabled:!s,onClick:()=>{i(),a?.()},type:`button`,children:[(0,L.jsx)(`span`,{className:q(`timeline-event-status-icon`,`is-${c}`),"aria-hidden":`true`,children:l}),(0,L.jsxs)(`span`,{className:`timeline-event-copy`,children:[(0,L.jsx)(`span`,{className:`timeline-event-stage`,children:e.stageLabel??(e.kind===`checkpoint`?`Checkpoint`:`Task event`)}),(0,L.jsxs)(`span`,{className:`timeline-event-title-line`,children:[(0,L.jsx)(`h4`,{children:e.taskTitle??e.title}),e.tokenLabel===void 0?null:(0,L.jsx)(`span`,{className:`timeline-event-token`,children:e.tokenLabel})]}),t===`sheet`?(0,L.jsx)(`time`,{className:`timeline-event-time`,children:e.occurredAt}):null]}),s?t===`sheet`?(0,L.jsx)(qb,{className:`timeline-event-chevron`,"aria-hidden":`true`}):(0,L.jsx)(Kb,{className:`timeline-event-chevron`,"aria-hidden":`true`}):null]}),o!==void 0&&n?(0,L.jsx)(mR,{trace:o}):null]})]})}function gR(e){let t=new Map;for(let n of e){let e=n.taskId===void 0?`event:${n.id}`:`task:${n.taskId}`,r=t.get(e);r===void 0?t.set(e,{id:e,title:n.taskTitle??n.title,...n.taskId===void 0?{}:{taskId:n.taskId},items:[n]}):r.items.push(n)}return[...t.values()]}function _R({items:e,empty:t,className:n,...r}){let[i,a]=(0,I.useState)(),o=e.find(e=>e.id===i);return(0,L.jsxs)(iS,{title:`Timeline`,frameless:!0,className:q(`timeline-panel is-sheet`,n),...r,children:[(0,L.jsx)(`section`,{className:`timeline-events`,"aria-label":`Project timeline`,children:e.length===0?t:(0,L.jsx)(`ol`,{className:`timeline-event-list`,children:e.map(e=>(0,L.jsx)(hR,{item:e,presentation:`sheet`,expanded:!1,active:o?.id===e.id,onActivate:()=>a(e.id)},e.id))})}),(0,L.jsx)(vL,{open:o?.trace!==void 0,title:`Details`,onClose:()=>a(void 0),children:o?.trace===void 0?null:(0,L.jsxs)(`div`,{className:`timeline-sheet-detail`,children:[(0,L.jsxs)(`header`,{className:`timeline-sheet-detail-header`,children:[(0,L.jsx)(`h3`,{children:o.taskTitle??o.title}),(0,L.jsx)(`span`,{children:o.stageLabel??o.title}),(0,L.jsx)(`time`,{children:o.occurredAt})]}),(0,L.jsx)(mR,{trace:o.trace})]},o.id)})]})}function vR({presentation:e=`panel`,tokenOverview:t,scoreUnits:n=[],defaultExpandedItemIds:r=[],...i}){return e===`sheet`?(0,L.jsx)(_R,{...i}):(0,L.jsx)(yR,{...i,tokenOverview:t,scoreUnits:n,defaultExpandedItemIds:r})}function yR({tokenOverview:e,items:t,scoreUnits:n=[],empty:r,defaultExpandedItemIds:i,className:a,...o}){let[s,c]=(0,I.useState)(()=>new Set(i??[])),[l,u]=(0,I.useState)(()=>n.at(-1)?.id),[d,f]=(0,I.useState)(0),p=(0,I.useRef)(null),m=gR(t),h=new Set(t.flatMap(e=>e.taskId===void 0?[]:[e.taskId])).size;(0,I.useEffect)(()=>{if(n.length===0){u(void 0);return}(l===void 0||!n.some(e=>e.id===l))&&u(n.at(-1)?.id)},[l,n]),(0,I.useEffect)(()=>{let e=p.current;if(e===null)return;let t=e;t.scrollLeft=t.scrollWidth;function n(e){if(Math.abs(e.deltaY)<=Math.abs(e.deltaX))return;let n=Math.max(0,t.scrollWidth-t.clientWidth),r=Math.min(n,Math.max(0,t.scrollLeft+e.deltaY));r!==t.scrollLeft&&(e.preventDefault(),t.scrollLeft=r)}return t.addEventListener(`wheel`,n,{passive:!1}),()=>t.removeEventListener(`wheel`,n)},[n.length]),(0,I.useEffect)(()=>{let e=p.current;if(e===null)return;let t=()=>f(e.clientWidth);if(t(),typeof ResizeObserver>`u`)return window.addEventListener(`resize`,t),()=>window.removeEventListener(`resize`,t);let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[n.length]);function g(e,t=!1){u(e),t&&(c(t=>new Set(t).add(e)),window.requestAnimationFrame(()=>{document.getElementById(`timeline-event-${e}`)?.scrollIntoView({behavior:`smooth`,block:`center`})}))}function _(e){c(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}return(0,L.jsx)(iS,{className:q(`timeline-panel`,a),title:`Timeline`,icon:(0,L.jsx)(Wb,{"aria-hidden":`true`}),...o,children:(0,L.jsxs)(`div`,{className:`timeline-board-body`,children:[(0,L.jsxs)(`section`,{className:`timeline-events`,"aria-label":`Project timeline`,children:[(0,L.jsx)(`div`,{className:`timeline-audit-header`,children:(0,L.jsxs)(`div`,{className:`timeline-audit-intro`,children:[(0,L.jsx)(`h4`,{children:`Task traceability`}),(0,L.jsxs)(`div`,{className:`timeline-audit-meta`,"aria-label":`Timeline record summary`,children:[(0,L.jsx)(`span`,{children:h===1?`1 task`:`${h} tasks`}),(0,L.jsx)(`span`,{children:t.length===1?`1 record`:`${t.length} records`})]})]})}),t.length===0?r:(0,L.jsx)(`div`,{className:`timeline-task-groups`,children:m.map(e=>(0,L.jsxs)(`section`,{className:`timeline-task-group`,"aria-label":e.title,children:[(0,L.jsxs)(`header`,{className:`timeline-task-group-head`,children:[(0,L.jsx)(`span`,{children:e.taskId===void 0?`Project record`:`Task trace`}),(0,L.jsx)(`strong`,{children:e.title})]}),(0,L.jsx)(`ol`,{className:`timeline-event-list`,children:e.items.map(e=>(0,L.jsx)(hR,{active:l===e.id,expanded:s.has(e.id),item:e,onActivate:()=>g(e.id),onToggle:()=>_(e.id)},e.id))})]},e.id))})]}),(0,L.jsxs)(`section`,{className:`timeline-overview`,"aria-label":`Timeline score and token usage`,children:[n.length===0?null:(0,L.jsx)(`div`,{className:`timeline-score-index`,ref:p,role:`group`,"aria-label":`Timeline score index`,children:(0,L.jsx)($S,{"aria-label":`Timeline event score`,...l===void 0?{}:{activeUnitId:l},edgePadding:0,minimumWidth:d,onUnitSelect:e=>g(e,!0),openingBarline:`double`,openingClef:`treble`,horizontalSpacingScale:iC,reveal:!0,scale:nC,units:n})}),(0,L.jsxs)(`div`,{className:`timeline-overview-token`,"aria-label":`Total tokens`,children:[(0,L.jsx)(`span`,{children:`Total tokens`}),(0,L.jsx)(`strong`,{children:e.totalLabel})]})]})]})})}function bR({value:e,pending:t,canSubmit:n,onChange:r,onSubmit:i,feedback:a}){let o=(0,I.useId)();return(0,L.jsxs)(`form`,{className:`embedded-connection-form`,onSubmit:e=>{e.preventDefault(),n&&!t&&i()},children:[(0,L.jsx)(`h2`,{children:`Connect Tutti`}),(0,L.jsx)(Tw,{label:`Connection code or command`,htmlFor:o,children:(0,L.jsx)(xw,{id:o,name:`connection`,value:e,onChange:e=>r(e.target.value),placeholder:`Paste from Local Console`,autoComplete:`off`,autoCapitalize:`off`,spellCheck:!1,maxLength:256,disabled:t,required:!0})}),(0,L.jsx)(pw,{type:`submit`,disabled:t||!n,children:t?`Connecting…`:`Connect`}),a]})}var xR=`/assets/Tutti-square-BqFU7F0D.png`,SR=`/assets/Tutti-B7gEyTp1.png`,CR=`/assets/tutti_avatar-_0Yc-cMJ.png`,wR=`/assets/avatar-avery-CkLXb185.svg`,TR=`data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2080%2080'%20fill='none'%20shape-rendering='auto'%20aria-hidden='true'%3e%3c!--%20Generated%20by%20DiceBear%20(https://dicebear.com)%20--%3e%3cmetadata%20xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns%23'%20xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'%20xmlns:dc='http://purl.org/dc/elements/1.1/'%20xmlns:dcterms='http://purl.org/dc/terms/'%3e%3crdf:RDF%3e%3crdf:Description%3e%3cdc:title%3eDylan!%20The%20Avatar%20Generator%3c/dc:title%3e%3cdc:creator%3eNatalia%20Spivak%3c/dc:creator%3e%3cdc:source%20xsi:type='dcterms:URI'%3ehttps://www.figma.com/community/file/1356575240759683500%3c/dc:source%3e%3cdcterms:license%20xsi:type='dcterms:URI'%3ehttps://creativecommons.org/licenses/by/4.0/%3c/dcterms:license%3e%3cdc:rights%3eRemix%20of%20“Dylan!%20The%20Avatar%20Generator”%20(https://www.figma.com/community/file/1356575240759683500)%20by%20“Natalia%20Spivak”,%20licensed%20under%20“CC%20BY%204.0”%20(https://creativecommons.org/licenses/by/4.0/)%3c/dc:rights%3e%3c/rdf:Description%3e%3c/rdf:RDF%3e%3c/metadata%3e%3cdefs%3e%3cg%20id='mood-happy-7dff0831'%3e%3cpath%20d='M.04%2017.04c2.41%209.29%2015.16%2012.28%2022.34%206.67a14%2014%200%200%200%204.7-7.22c.36-1.28-1.57-1.8-1.93-.57-1.24%204.23-4.33%207.4-8.68%208.33-3.77.8-8.03-.1-11.05-2.52a10%2010%200%200%201-3.45-5.26c-.32-1.25-2.25-.72-1.93.53'%20fill='black'/%3e%3c/g%3e%3cg%20id='hair-shortCurls-7dff0831'%3e%3cpath%20d='m15.3%2027.49%201.58%204.38%201.06-9.52s2.27%201.27%203.44-.26.16-3.47.16-3.47%201.81.55%203.31-.8c1.87-1.67%201.26-3.46%201.26-3.46s1.71%201.9%204.5%201.1c2.77-.8%203.14-2.76%203.14-2.76s.56%202.18%203.4%202.12%203.2-2.01%203.2-2.01%200%202.43%202.43%203.14%203.43-1.24%203.43-1.24c0%20.02-.9%202.39.66%203.76%201.44%201.26%203.5.35%203.5.35s-.73%202.3.77%203.62c1.6%201.4%203.48.6%203.48.6l.77%208.34%201.8-3.8s1.4-.13%202.72.15c0%20.01%202.58-2.78%201.15-5.9s-3.64-2.86-3.64-2.86%201.95-3.05.13-5.65-4.94-1.96-4.94-1.96%201.18-3.52-1.68-5.27-5.92.46-5.92.46-.1-3.7-3.2-4.16c-3.26-.48-4.58%202.66-4.58%202.66s-1.35-2.89-4.14-2.44c-2.8.44-3.32%203.53-3.32%203.53S27.32%203.57%2024.92%205s-1.8%204.51-1.8%204.51-2.98-2.24-5.32-.23-.14%205.1-.14%205.1-3.87-1.12-5.04%201.8%201.66%204.95%201.66%204.95-5.35%201.16-2.82%207.33c0%200%20.6-.27%202.02-.62s1.8-.38%201.8-.38z'%20fill='%23000000'/%3e%3c/g%3e%3cclipPath%20id='clip-7dff0831'%3e%3crect%20width='80'%20height='80'%20rx='0'%20ry='0'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20clip-path='url(%23clip-7dff0831)'%3e%3crect%20width='80'%20height='80'%20fill='%23e5f4ec'/%3e%3cpath%20d='M19.07%2030.47s1.57-20.23%2021.59-20.23S62.3%2030.55%2062.3%2030.55s9.43-.8%209.43%207.6c0%208.42-9.28%207.13-9.28%207.13S60.9%2067.15%2042.03%2067.15c-21.11%200-23.4-20.8-23.4-20.8s-9%20.72-9.93-6.25c-1.08-8.2%2010.37-9.64%2010.37-9.64'%20fill='%23c26450'/%3e%3cpath%20d='m64.3%2039.49.46-.41.1-.09c.12-.1-.13.1-.02.02l.24-.17q.5-.35%201.06-.62l.26-.12.05-.02.05-.02.58-.21q.6-.18%201.2-.28c.52-.08.85-.76.7-1.23-.18-.56-.67-.8-1.23-.7a9.3%209.3%200%200%200-4.87%202.43c-.38.36-.4%201.06%200%201.4.4.36%201%20.4%201.4%200zm-51.8-1.16.14.01c-.27-.02-.11-.01-.04%200l.3.05.52.14.28.09.12.05c.02%200%20.22.09.06.02-.14-.1%200-.04.03-.03l.15.06.26.13.47.3.27.22q.47.38.83.83c.33.4%201.07.37%201.41%200%20.4-.43.36-.98%200-1.4a7.3%207.3%200%200%200-4.84-2.53c-.52-.06-1.02.5-1%201%20.03.59.44.94%201%201m18.3-1.9v4.54c0%20.52.46%201.02%201%201s1-.44%201-1V36.4c0-.52-.46-1.02-1-1s-1%20.44-1%201M49.2%2036l-.15%204.81a1%201%200%200%200%201%201c.56-.02.98-.44%201-1l.15-4.8a1%201%200%200%200-1-1%201%201%200%200%200-1%201'%20fill='black'/%3e%3cuse%20transform='translate(27.82%2026.75)'%20href='%23mood-happy-7dff0831'/%3e%3cuse%20transform='translate(3.78%202.95)'%20href='%23hair-shortCurls-7dff0831'/%3e%3c/g%3e%3c/svg%3e`,ER=`data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2080%2080'%20fill='none'%20shape-rendering='auto'%20aria-hidden='true'%3e%3c!--%20Generated%20by%20DiceBear%20(https://dicebear.com)%20--%3e%3cmetadata%20xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns%23'%20xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'%20xmlns:dc='http://purl.org/dc/elements/1.1/'%20xmlns:dcterms='http://purl.org/dc/terms/'%3e%3crdf:RDF%3e%3crdf:Description%3e%3cdc:title%3eDylan!%20The%20Avatar%20Generator%3c/dc:title%3e%3cdc:creator%3eNatalia%20Spivak%3c/dc:creator%3e%3cdc:source%20xsi:type='dcterms:URI'%3ehttps://www.figma.com/community/file/1356575240759683500%3c/dc:source%3e%3cdcterms:license%20xsi:type='dcterms:URI'%3ehttps://creativecommons.org/licenses/by/4.0/%3c/dcterms:license%3e%3cdc:rights%3eRemix%20of%20“Dylan!%20The%20Avatar%20Generator”%20(https://www.figma.com/community/file/1356575240759683500)%20by%20“Natalia%20Spivak”,%20licensed%20under%20“CC%20BY%204.0”%20(https://creativecommons.org/licenses/by/4.0/)%3c/dc:rights%3e%3c/rdf:Description%3e%3c/rdf:RDF%3e%3c/metadata%3e%3cdefs%3e%3cg%20id='mood-happy-46c131e2'%3e%3cpath%20d='M.04%2017.04c2.41%209.29%2015.16%2012.28%2022.34%206.67a14%2014%200%200%200%204.7-7.22c.36-1.28-1.57-1.8-1.93-.57-1.24%204.23-4.33%207.4-8.68%208.33-3.77.8-8.03-.1-11.05-2.52a10%2010%200%200%201-3.45-5.26c-.32-1.25-2.25-.72-1.93.53'%20fill='black'/%3e%3c/g%3e%3cg%20id='hair-fluffy-46c131e2'%3e%3cpath%20d='M16.45%2029.48s13.74%2023.53%203.86%2028.24C9.05%2063.08-1.2%2048.01.1%2036.77s10.96-16.35%2010.96-16.35-.58-9.5%209.2-15.04c9.78-5.55%2016.64.44%2016.64.44s8.06-5.9%2015.5-1.37c7.46%204.53%207.26%2014.68%207.26%2014.68s13.74-.56%2013.65%2016.47c-.08%2015.17-10.03%2022.94-16.8%2021.6-10.45-2.07%201.27-29.22%201.27-29.22s-14.4%201.04-20.14-9.75c0%200-4%205.95-9.7%208.62a32%2032%200%200%201-11.47%202.64z'%20fill='%231d5dff'/%3e%3c/g%3e%3cclipPath%20id='clip-46c131e2'%3e%3crect%20width='80'%20height='80'%20rx='0'%20ry='0'/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20clip-path='url(%23clip-46c131e2)'%3e%3crect%20width='80'%20height='80'%20fill='%23fbf0d1'/%3e%3cpath%20d='M19.07%2030.47s1.57-20.23%2021.59-20.23S62.3%2030.55%2062.3%2030.55s9.43-.8%209.43%207.6c0%208.42-9.28%207.13-9.28%207.13S60.9%2067.15%2042.03%2067.15c-21.11%200-23.4-20.8-23.4-20.8s-9%20.72-9.93-6.25c-1.08-8.2%2010.37-9.64%2010.37-9.64'%20fill='%23c26450'/%3e%3cpath%20d='m64.3%2039.49.46-.41.1-.09c.12-.1-.13.1-.02.02l.24-.17q.5-.35%201.06-.62l.26-.12.05-.02.05-.02.58-.21q.6-.18%201.2-.28c.52-.08.85-.76.7-1.23-.18-.56-.67-.8-1.23-.7a9.3%209.3%200%200%200-4.87%202.43c-.38.36-.4%201.06%200%201.4.4.36%201%20.4%201.4%200zm-51.8-1.16.14.01c-.27-.02-.11-.01-.04%200l.3.05.52.14.28.09.12.05c.02%200%20.22.09.06.02-.14-.1%200-.04.03-.03l.15.06.26.13.47.3.27.22q.47.38.83.83c.33.4%201.07.37%201.41%200%20.4-.43.36-.98%200-1.4a7.3%207.3%200%200%200-4.84-2.53c-.52-.06-1.02.5-1%201%20.03.59.44.94%201%201m18.3-1.9v4.54c0%20.52.46%201.02%201%201s1-.44%201-1V36.4c0-.52-.46-1.02-1-1s-1%20.44-1%201M49.2%2036l-.15%204.81a1%201%200%200%200%201%201c.56-.02.98-.44%201-1l.15-4.8a1%201%200%200%200-1-1%201%201%200%200%200-1%201'%20fill='black'/%3e%3cuse%20transform='translate(27.82%2026.75)'%20href='%23mood-happy-46c131e2'/%3e%3cuse%20transform='translate(3.78%202.95)'%20href='%23hair-fluffy-46c131e2'/%3e%3c/g%3e%3c/svg%3e`,DR=`/assets/ode-to-joy-SNBUPr3-.svg`,OR=xR,kR=SR,AR=CR,jR={logoSrc:SR,tuttiAvatarSrc:CR,scoreSrc:DR,humanAvatars:{fey:TR,avery:wR,jun:ER}};function MR({onClick:e}){let t=(0,L.jsx)(vw,{src:kR,label:`Tutti`});return e===void 0?t:(0,L.jsx)(bw,{logo:t,label:`Tutti Project Center`,onClick:e})}function NR({onClick:e,label:t}){return(0,L.jsx)(bw,{logo:(0,L.jsx)(vw,{src:kR,className:`tutti-logo`}),...t===void 0?{}:{label:t},onClick:e})}function PR({diagnostic:e,showMessage:t=!0}){let n=[[`Diagnostic ID`,e.diagnosticId],[`Web release`,e.webRelease],[`Stage`,e.stage],[`Request`,e.stage===`document_input_validation`?`Local validation (not sent)`:void 0],[`Error kind`,e.errorKind],[`HTTP status`,e.httpStatus?.toString()],[`Reason code`,e.reasonCode],[`Platform stage`,e.platformStage],[`Platform code`,e.platformCode?.toString()]].filter(e=>e[1]!==void 0);return(0,L.jsx)(_L,{...t?{message:e.message}:{},diagnosticId:e.diagnosticId,rows:n.filter(([e])=>e!==`Diagnostic ID`),onCopy:()=>navigator.clipboard.writeText([e.message,...n.map(([e,t])=>`${e}: ${t}`)].join(`
|
|
69
69
|
`))},e.diagnosticId)}function FR({loading:e,pending:t,unbound:n,value:r,canSubmit:i,error:a,onChange:o,onConnect:s,onRefresh:c}){let l=a===void 0?void 0:(0,L.jsx)(PR,{diagnostic:a});return(0,L.jsx)(gL,{brand:(0,L.jsx)(NR,{label:`Tutti`}),projectName:`Connect Tutti`,showProjectName:!1,refreshing:e||t,onRefresh:c,children:e?(0,L.jsx)(Xx,{count:3}):n?(0,L.jsx)(bR,{value:r,pending:t,canSubmit:i,onChange:o,onSubmit:s,feedback:l}):(0,L.jsx)(Yx,{details:l,children:`Connection entry unavailable.`})})}var IR=`https://lf1-cdn-tos.bytegoofy.com/goofy/lark/op/h5-js-sdk-1.5.48.js`,LR=15e3,RR=[Xm],zR=class extends Error{constructor(e,t,n,r){super(e.replaceAll(`_`,` `)),this.code=e,this.stage=t,this.errno=n,this.platformDetail=r,this.name=`FeishuH5AuthorizationError`}};function BR(e){let t=[];typeof e.errCode==`number`&&Number.isSafeInteger(e.errCode)&&t.push(`errCode ${e.errCode}`);for(let n of[e.errString,e.errMsg]){if(typeof n!=`string`)continue;let e=Array.from(n,e=>{let t=e.charCodeAt(0);return t<=31||t===127?` `:e}).join(``).replace(/\s+/gu,` `).trim();e!==``&&!t.includes(e)&&t.push(e)}if(t.length===0)return;let n=t.join(` · `);return n.length<=180?n:`${n.slice(0,177)}...`}function VR(e){return typeof e.errno==`number`&&Number.isSafeInteger(e.errno)?e.errno:void 0}function HR(e,t){return new Promise((n,r)=>{let i=!1,a=!1,o=!1,s=e=>{i||(i=!0,clearTimeout(c),`error`in e?r(e.error):n(e.code))},c=setTimeout(()=>s({error:new zR(`client_unavailable`)}),t.timeoutMs??LR),l=()=>{if(!(a||i)){if(a=!0,e.allowLegacyFallback===!1){s({error:new zR(`request_failed`,`request_access`)});return}if(t.client.requestAuthCode===void 0){s({error:new zR(o?`request_failed`:`client_unavailable`,o?`request_access`:`request_auth_code`)});return}t.client.requestAuthCode({appId:e.appId,success:e=>{typeof e.code!=`string`||e.code.trim()===``?s({error:new zR(`request_failed`,`request_auth_code`)}):s({code:e.code})},fail:e=>s({error:new zR(`request_failed`,`request_auth_code`,VR(e),BR(e))})})}},u=()=>{if(!(o||i)){if(o=!0,t.client.requestAccess===void 0){l();return}t.client.requestAccess({appID:e.appId,scopeList:[...e.scopes??RR],state:e.state,success:t=>{if(typeof t.code!=`string`||t.code.trim()===``){s({error:new zR(`request_failed`,`request_access`)});return}if(t.state!==void 0&&t.state!==e.state){s({error:new zR(`state_mismatch`,`request_access`)});return}s({code:t.code})},fail:e=>{let t=VR(e);if(t===103){l();return}s({error:new zR(`request_failed`,`request_access`,t,BR(e))})}})}};t.sdk===void 0?u():(t.sdk.error(e=>{s({error:new zR(`request_failed`,`sdk`,VR(e))})}),t.sdk.ready(u))})}var UR=null;function WR(e){return e.tt===void 0?null:{client:e.tt,...e.h5sdk===void 0?{}:{sdk:e.h5sdk}}}function GR(e=window,t=document){let n=WR(e);if(n!==null)return Promise.resolve(n);if(UR!==null)return UR;let r=new Promise((n,r)=>{let i=t.createElement(`script`),a=setTimeout(()=>{i.remove(),r(new zR(`client_unavailable`))},LR);i.async=!0,i.crossOrigin=`anonymous`,i.src=IR,i.onload=()=>{clearTimeout(a);let t=WR(e);t===null?r(new zR(`client_unavailable`)):n(t)},i.onerror=()=>{clearTimeout(a),r(new zR(`client_unavailable`))},t.head.append(i)}).catch(e=>{throw UR=null,e});return UR=r,r}async function KR(e){return await HR(e,await GR())}var qR=`scratchpad-submit-1`,JR=class extends Error{constructor(e,t,n){super(e.replaceAll(`_`,` `)),this.stage=e,this.cause=t,this.diagnostics=n,this.name=`FeishuProjectOpenError`}};function YR(){if(typeof globalThis.crypto?.randomUUID==`function`)return globalThis.crypto.randomUUID().replaceAll(`-`,``);if(typeof globalThis.crypto?.getRandomValues==`function`){let e=new Uint8Array(16);return globalThis.crypto.getRandomValues(e),Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``)}return`${Date.now().toString(36)}${Math.random().toString(36).slice(2)}`.padEnd(16,`0`)}function XR(){let e={diagnosticId:`fdiag_${YR()}`,webRelease:qR};if(!kn(e.diagnosticId)||!An(e.webRelease))throw Error(`Feishu diagnostics could not be initialized`);return e}function ZR(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function QR(e){return typeof e==`string`&&/^[a-z][a-z0-9_]{0,95}$/u.test(e)?e:void 0}function $R(e){let t=e,n=new Set;for(;t instanceof JR&&!n.has(t);)n.add(t),t=t.cause;return t}function ez(e){if(e instanceof JR){if(e.cause instanceof zR){if(e.stage===`document_authorization_request_access`)return e.stage;if(e.cause.stage===`sdk`)return`h5_sdk`;if(e.cause.stage===`request_auth_code`)return`h5_request_auth_code`;if(e.cause.stage===`request_access`)return`h5_request_access`}return e.stage}return e instanceof zR?e.stage===`sdk`?`h5_sdk`:e.stage===`request_auth_code`?`h5_request_auth_code`:`h5_request_access`:`browser_runtime`}function tz(e,t){return e instanceof JR&&e.diagnostics!==void 0?e.diagnostics:t}function nz(e){return ZR(e.details)?QR(e.details.reason_code)??e.code:e.code}function rz(e){let t=$R(e);if(e instanceof JR&&e.stage.startsWith(`connection_`)){let e=t instanceof Gt?nz(t):void 0;return e===`connection_input_invalid`?`Paste a connection code or the full /tutti connect command.`:e===`pairing_code_invalid_or_expired`||e===`pairing_code_already_consumed`?`Get a current connection code from Local Console and try again.`:e===`connection_state_invalid_or_expired`?`This authorization attempt expired. Click Connect to try again.`:e===`connection_entry_unavailable`?`This group entry is unavailable. Send /tutti connect in the group to request the current entry.`:e?.includes(`bound`)||e?.includes(`binding`)?`This group or project already has a connection, or its connection is unavailable. Refresh to check. Existing connections will not be replaced.`:`Tutti could not verify or connect this group. Refresh to check its current connection; share the diagnostics if it persists.`}if(e instanceof JR&&e.stage===`reference_authorization_status`){let e=t instanceof Gt?nz(t):void 0;return e===`reference_owner_required`?`Ask the project owner to open this access request.`:e===`reference_authorization_not_found`?`This access request is no longer available. Ask Tutti to try reading again.`:`Document access could not be checked. Refresh this entry and share the diagnostics if it persists.`}if(t instanceof Gt&&t.code===`response_parse_error`)return`Tutti received an unexpected server response. Refresh to try again; if it persists, share the diagnostics.`;if(e instanceof JR){if([`skills_list`,`skill_detail`,`project_timeline`].includes(e.stage)){let t=$R(e),n=t instanceof Gt?nz(t):void 0;return n===`host_read_surfaces_unsupported`?`Update the project's local Tutti runtime to view this section.`:n===`skill_read_limit_exceeded`?`These skills exceed the sidebar read limit. No partial instructions are shown.`:t instanceof Gt&&t.statusCode===503?`The project’s local Tutti runtime is offline or temporarily unavailable.`:t instanceof Gt&&(t.statusCode===401||t.statusCode===403)?`Project access could not be verified. Reopen the project from Feishu.`:t instanceof Gt&&t.statusCode===404&&t.code!==`response_parse_error`?`This content is no longer available. Refresh this section to check again.`:`This section could not be loaded. Refresh to try again.`}if(e.stage===`external_reference_register`||e.stage===`external_reference_list`){let t=e.cause instanceof Gt?nz(e.cause):void 0;return e.stage===`external_reference_list`&&e.cause instanceof Gt&&[401,403].includes(e.cause.statusCode)?`Project access could not be verified. Reopen the project from Feishu.`:t?.startsWith(`reference_submission_`)?`This Reference request is no longer available. Reload References; submit the link again if the request expired.`:t===`reference_source_limit_reached`?`The project has reached its Reference source limit. Existing sources are unchanged.`:t===`reference_owner_required`?`Only the project Owner can add References.`:t===`reference_link_invalid`?`Use a standard Feishu Docx, Wiki or cloud file link.`:t===`feishu_user_drive_scope_missing`?`Authorize cloud file downloads and try again.`:t===`feishu_user_authorization_required`?`The Owner needs to authorize access, then retry this request.`:t===`document_wiki_type_unsupported`?`This Wiki node is not a Docx document. Use a direct cloud file link for ordinary files.`:`The Reference request could not be completed. Reload the list and try again; existing sources are unchanged.`}if(e.stage===`reference_summary_refresh`)return`The summary retry could not be requested. Your document connection and local snapshot are unchanged. Try again.`;if([`document_list`,`document_connect`,`document_refresh`].includes(e.stage)){let t=e.cause instanceof Gt?nz(e.cause):void 0;return t===`document_link_invalid`?`Use a Feishu Docx or Wiki link, or the actual Docx document ID.`:t===`document_wiki_authorization_required`?`Authorize Wiki node access and Feishu Docs, then try connecting again.`:t===`document_wiki_type_unsupported`?`This Wiki node is not a Docx document. Sheets and other resource types are not supported yet.`:t===`document_wiki_not_found`?`The Wiki node could not be found. Check the copied link.`:t===`document_wiki_access_denied`?`Your Feishu account cannot read this Wiki node. Check its sharing settings.`:t===`document_wiki_busy`?`Another Wiki connection is being checked. Try again shortly.`:t===`document_owner_required`?`Only the project Owner can connect or refresh documents.`:t===`document_authorization_required`?`Authorize Feishu Docs and try again.`:t===`document_source_limit_reached`?`This project has reached its document connection limit.`:t===`document_source_not_found`?`This document connection is no longer available. Reload the list.`:`The document request could not be completed. Your existing reference snapshots are unchanged. Try again.`}return(e.stage===`document_authorization_bootstrap`||e.stage===`document_authorization_exchange`)&&e.cause instanceof Gt?`Feishu could not authorize document access. Reopen this entry and try again.`:e.stage===`authorization_exchange`&&e.cause instanceof Gt&&(e.cause.statusCode===401||e.cause.statusCode===403||e.cause.statusCode===503)?`Feishu could not verify your identity or project group access. Try again after the app permissions are available.`:e.stage===`host_bootstrap`&&e.cause instanceof Gt&&e.cause.statusCode===503?`The project’s local Tutti runtime is offline or temporarily unavailable.`:e.stage===`browser_session_restore`?`This browser session expired. Reopen the project from Feishu and start the browser fallback again.`:e.stage===`browser_handoff_consume`?`This browser handoff expired or was already used. Reopen the project from Feishu and try again.`:rz(e.cause)}if(e instanceof zR){if(e.code===`client_unavailable`)return`Open this project through the Feishu app entry, not a regular browser link.`;if(e.code===`state_mismatch`)return`This Feishu authorization request expired. Try again.`;let t=[e.stage,e.errno===void 0?void 0:`errno ${e.errno}`,e.platformDetail].filter(e=>e!==void 0).join(`, `);return`Feishu could not authorize this app${t===``?``:` (${t})`}. Reopen it from Feishu and try again.`}return e instanceof Gt&&e.statusCode===403?`Your Feishu account must belong to the project group.`:e instanceof Gt&&e.statusCode===401?`Your project session expired. Reopen the project from Feishu.`:e instanceof Gt&&e.statusCode===429?`Too many requests. Wait a moment, then try again.`:e instanceof Gt&&e.statusCode===503?`The project’s local Tutti runtime is offline or temporarily unavailable.`:e instanceof Gt&&e.statusCode===404?`This project is no longer connected to the current Feishu group.`:e instanceof Gt&&e.statusCode>=500?`Tutti could not complete this request. Try again; if it persists, share the diagnostics.`:`Check your Feishu connection and try again.`}function iz(e,t){let n=oz(e,t);return`${n.message} Diagnostic ID: ${n.diagnosticId} · ${n.webRelease} · ${n.stage} · ${n.reasonCode??n.errorKind}${n.httpStatus===void 0?``:` · HTTP ${n.httpStatus}`}`}async function az(e,t){let n=XR();try{return await t(n)}catch(t){throw new JR(e,t,n)}}function oz(e,t){let n=$R(e),r={...tz(e,t),message:rz(e),stage:ez(e)};if(n instanceof Gt){let e=ZR(n.details)?n.details:void 0,t=QR(e?.authorization_stage),i=e?.platform_code;return{...r,errorKind:n.code,...n.statusCode<=0?{}:{httpStatus:n.statusCode},reasonCode:nz(n),...t===void 0?{}:{platformStage:t},...typeof i==`number`&&Number.isSafeInteger(i)?{platformCode:i}:{}}}return n instanceof zR?{...r,errorKind:n.code,reasonCode:n.code,...n.errno===void 0?{}:{platformCode:n.errno}}:n instanceof TypeError?{...r,errorKind:`unexpected_type_error`,reasonCode:`unexpected_type_error`}:{...r,errorKind:`unexpected_error`,reasonCode:`unexpected_error`}}var sz={success:3e3,error:9e3,warning:6e3,info:4500},cz=5,lz=(0,I.createContext)(null);function uz(e){return e.persistent===!0||e.tone===`loading`?e.durationMs:e.durationMs??sz[e.tone]}function dz(e){return e.persistent??e.tone===`loading`}function fz(e){return e.dismissible??e.tone!==`loading`}function pz(e,t){let n=uz(t);return{id:e,tone:t.tone,title:t.title,persistent:dz(t),dismissible:fz(t),...t.message===void 0?{}:{message:t.message},...n===void 0?{}:{durationMs:n}}}function mz(e,t){let n=t.tone===void 0,r={tone:t.tone??e.tone,title:t.title??e.title,...t.message===void 0?e.message===void 0?{}:{message:e.message}:{message:t.message},...t.durationMs===void 0?!n||e.durationMs===void 0?{}:{durationMs:e.durationMs}:{durationMs:t.durationMs},...t.persistent===void 0?!n||e.persistent===void 0?{}:{persistent:e.persistent}:{persistent:t.persistent},...t.dismissible===void 0?!n||e.dismissible===void 0?{}:{dismissible:e.dismissible}:{dismissible:t.dismissible}};return pz(e.id,r)}function hz(e){return[e.id,e.tone,e.title,e.message??``,e.durationMs??``,e.persistent===!0?`persistent`:`timed`].join(`:`)}function gz({children:e}){let[t,n]=(0,I.useState)([]),r=(0,I.useRef)(new Map),i=(0,I.useCallback)(e=>{n(t=>t.filter(t=>t.id!==e))},[]),a=(0,I.useCallback)(e=>{let t=Ht(),r=pz(t,e);return n(e=>[...e,r].slice(-cz)),t},[]),o=(0,I.useCallback)((e,t)=>{if(e===void 0){a(t);return}n(n=>n.map(n=>n.id===e?mz(n,t):n))},[a]);(0,I.useEffect)(()=>{let e=new Set(t.map(e=>e.id));for(let[t,n]of r.current)e.has(t)||(window.clearTimeout(n.timeout),r.current.delete(t));for(let e of t){let t=r.current.get(e.id),n=hz(e);if(t!==void 0&&t.key!==n&&(window.clearTimeout(t.timeout),r.current.delete(e.id)),e.persistent===!0||e.durationMs===void 0||r.current.has(e.id))continue;let a=window.setTimeout(()=>i(e.id),e.durationMs);r.current.set(e.id,{key:n,timeout:a})}},[i,t]),(0,I.useEffect)(()=>()=>{for(let e of r.current.values())window.clearTimeout(e.timeout);r.current.clear()},[]);let s=(0,I.useMemo)(()=>({notify:a,update:o,dismiss:i}),[i,a,o]);return(0,L.jsxs)(lz.Provider,{value:s,children:[e,(0,L.jsx)(tS,{notices:t,onDismiss:i})]})}function _z(){let e=(0,I.useContext)(lz);if(e===null)throw Error(`useNotify must be used inside NotificationProvider`);return e}var vz=`en-US`;function yz(e){if(e===void 0)return`Never`;let t=new Date(e);return Number.isFinite(t.getTime())?t.toLocaleString(vz,{month:`short`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`}):e}function bz(e){if(e===void 0)return`Unknown`;let t=new Date(e);return Number.isFinite(t.getTime())?t.toLocaleDateString(vz,{month:`short`,day:`numeric`,year:`numeric`}):`Unknown`}function xz(e,t=new Date){let n=new Date(e);if(!Number.isFinite(n.getTime()))return e;if(n.getFullYear()===t.getFullYear()&&n.getMonth()===t.getMonth()&&n.getDate()===t.getDate()){let e=Math.max(0,Math.floor((t.getTime()-n.getTime())/6e4));return e<1?`now`:e<60?`${e}m`:`${Math.floor(e/60)}h`}return n.toLocaleString(vz,{month:`short`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`})}function Sz(e){return e.toString().padStart(2,`0`)}function Cz(e){if(e===void 0)return`Never`;let t=new Date(e);return Number.isFinite(t.getTime())?`${t.getFullYear()}-${Sz(t.getMonth()+1)}-${Sz(t.getDate())} ${Sz(t.getHours())}:${Sz(t.getMinutes())}`:e}function wz(e){let t=new Date(e);return Number.isFinite(t.getTime())?t.toLocaleTimeString(vz,{hour:`2-digit`,minute:`2-digit`}):``}function Tz(e){switch(e){case`online`:return`Host online`;case`offline`:return`Host offline`;case`unknown`:return`Host unknown`}}function Ez(e){return{...{running:{label:`Running`,tone:`sync`},pending:{label:`Needs input`,tone:`warning`},failed:{label:`Needs attention`,tone:`error`},idle:{label:`Idle`,tone:`neutral`}}[e.status],summary:e.summary}}function Dz(e){return{relayProjectRef:e.relay_project_ref,displayName:e.display_name,hostStatus:e.host_status,surface:e.surface,membershipLabel:e.role===`owner`?`Owner`:`Member`,lastOpenedLabel:yz(e.last_opened_at),canOpen:e.surface===`standalone`&&e.host_status===`online`}}function Oz(e){return{elementKind:e.element_kind,tagName:e.tag_name,...e.role===void 0?{}:{role:e.role},...e.accessible_name===void 0?{}:{accessibleName:e.accessible_name},...e.text_excerpt===void 0?{}:{textExcerpt:e.text_excerpt},...e.context.length===0?{}:{context:e.context.map(e=>e.accessible_name??e.role??e.tag_name)}}}function kz(e,t,n={}){let r=n.runActive??!1;if(e===void 0)return r?{status:`updating`}:{status:`loading`};if(e.status===`not_declared`)return r?{status:`updating`}:{status:`not_declared`};if(e.status===`invalid`)return r?{status:`updating`}:{status:`invalid`,message:e.error.message};let i={status:`declared`,title:e.artifact.title,previewStatus:e.preview.status,...e.preview.error_message===void 0?{}:{errorMessage:e.preview.error_message}};return e.preview.status===`ready`?t.previewUrl===void 0?r?{status:`updating`}:t.errorMessage===void 0?{...i,previewStatus:t.pending?`starting`:`failed`,...t.pending?{}:{errorMessage:`Preview session is unavailable`}}:{...i,previewStatus:`failed`,errorMessage:t.errorMessage}:{...i,previewUrl:t.previewUrl}:r?{status:`updating`}:i}function Az(e){return e?.status===`declared`&&e.preview.status===`ready`?{status:`live`}:{status:`hidden`}}function jz(e){return e.status===`declared`&&e.previewStatus===`ready`?{status:`live`}:{status:`hidden`}}function Mz(e){return{kind:`initials`,initials:pg(Pz(e)),color:`blue`}}function Nz(e){return e.author.ref===void 0||!Rt(e.author.ref,Pt.relayAccount)?null:{kind:`image`,image_url:`/api/v1/accounts/${encodeURIComponent(e.author.ref)}/avatar`,initials:pg(Pz(e)),color:`blue`}}function Pz(e){return wn(e)===`operator`?`${e.author.display_name??`Dev Observer`} (operator)`:e.author.display_name??(e.author.kind===`human`?`Member`:`Tutti`)}function Fz(e,t={}){if(e.author.kind===`agent`||e.author.kind===`system`&&wn(e)!==`operator`)return{avatarKind:`tutti`,online:!1};if(e.author.avatar!==void 0)return{avatarKind:`member`,avatar:e.author.avatar,online:t[e.author.ref??``]?.online??!1};let n=e.author.ref===void 0?void 0:t[e.author.ref];return n===void 0?{avatarKind:`member`,avatar:Nz(e)??Mz(e),online:!1}:{avatarKind:`member`,avatar:n.avatar,online:n.online??!1}}function Iz(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function Lz(e,t={}){let n={id:e.id,messageKind:e.message_kind,isClarificationAnswer:wn(e)!==null,author:Pz(e),body:e.body,createdAt:e.created_at,time:wz(e.created_at),...Fz(e,t.authorProfiles)};if(e.refs?.workflow_ref!==void 0&&(n.workflowRef=e.refs.workflow_ref),e.refs?.reference_file!==void 0){let r=e.refs.reference_file;n.referenceFile={path:r.path,name:r.name,category:r.category,...r.media_type===void 0?{}:{mediaType:r.media_type},sizeBytes:r.size_bytes,...r.category===`image`&&r.blob_oid!==void 0&&t.referenceAssetUrl!==void 0?{imageUrl:t.referenceAssetUrl(r.path,`thumbnail`,r.blob_oid)}:{}}}if(e.clarification_card!==void 0&&(n.clarificationCard={threadId:e.clarification_card.thread_id,roundId:e.clarification_card.round_id,...e.clarification_card.title===void 0?{}:{title:e.clarification_card.title},summary:e.clarification_card.summary,status:e.clarification_card.status,isCurrentRound:e.clarification_card.is_current_round}),e.refs?.task_result!==void 0){let r=e.refs.task_result,i=r.latest_run_result_id===void 0?r.retry_action:t.taskRetryState?.(r.task_id,r.latest_run_result_id,r.retry_action)??r.retry_action;n.taskResult={title:r.title,status:r.status,taskId:r.task_id,taskTitle:r.task_title,summary:r.summary,...r.module_name===void 0?{}:{moduleName:r.module_name},...r.latest_run_result_id===void 0?{}:{latestRunResultId:r.latest_run_result_id},...r.final_note===void 0?{}:{finalNote:r.final_note},...r.generated_files===void 0?{}:{generatedFiles:r.generated_files.map(e=>({path:e.path,name:e.name,meta:e.media_type===void 0?Iz(e.size_bytes):`${e.media_type} · ${Iz(e.size_bytes)}`,...e.group===void 0?{}:{group:e.group}}))},...r.error_code===void 0?{}:{errorCode:r.error_code},...i===void 0?{}:{retryState:i}}}if(e.refs?.artifact_feedback!==void 0){let r=e.refs.artifact_feedback,i=r.preview_generation===t.artifactFeedbackPreviewGeneration;n.artifactFeedback={artifactTitle:r.artifact_title,...r.summary===void 0?{}:{summary:r.summary},annotations:r.annotations.map(e=>({documentUrl:e.document_url,comment:e.comment,target:Oz(e.target.snapshot),canView:i}))}}return n}function Rz(e){return e.state===`none`?null:{threadId:e.thread.id,roundId:e.round.id,...e.round.answer_revision===void 0?{}:{answerRevision:e.round.answer_revision},cardMessageId:e.round.card_message_id,title:e.round.request_payload.title??`Clarification`,summary:e.round.request_payload.summary,request:e.round.request_payload.request,ownerLabel:e.thread.owner.kind===`task`?`Task-bound clarification ${e.thread.owner.task_id}`:`Workflow clarification`,status:e.round.status}}function zz(e){let t=e.resolution.decided_by,n=t===void 0?``:` by ${t.display_name}`;return`${e.resolution.label}${n}`}function Bz(e){return e.resolution.outcome===`accepted`?{status:`resolved`,statusLabel:`resolved`}:{status:`expired`,statusLabel:e.resolution.outcome}}function Vz(e){return e.reason??e.summary}function Hz(e){if(e===void 0||e.state===`none`)return null;let t=e.request;return e.state===`pending`?{approvalId:t.approval_id,title:t.title,summary:Vz(t),requestedAt:t.requested_at,...t.command?.text===void 0?{}:{detailLabel:`Codex wants to run`,detail:t.command.text,detailCode:!0},status:`pending`,statusLabel:`needs approval`,decisions:t.decisions.map(e=>({decisionId:e.decision_id,label:e.label,tone:e.tone}))}:{approvalId:t.approval_id,title:t.title,summary:Vz(t),requestedAt:t.requested_at,...t.command?.text===void 0?{}:{detailLabel:`Codex wants to run`,detail:t.command.text,detailCode:!0},...Bz(e),decisions:[],resolutionLabel:zz(e)}}function Uz(e){return e.state===`ready`?[e.topic,e.background_summary,...e.current_consensus,...e.open_questions,...e.task_changes].some(e=>e.trim().length>0):!1}function Wz(e){let t=e.map(e=>e.trim()).filter(e=>e.length>0).join(`; `);return t.length===0?void 0:t}function Gz(e){return[{id:`scratchpad-confirmed`,label:`CONFIRMED`,rows:e.current_consensus.map(e=>({kind:`confirmed`,text:e}))},{id:`scratchpad-questions`,label:`OPEN QUESTIONS`,rows:e.open_questions.map(e=>({kind:`question`,text:e}))}].filter(e=>e.rows.length>0)}function Kz(e){let t=Wz(e.task_changes);return{key:`current:${e.updated_at??`unknown`}`,title:e.topic||`Current Scratchpad`,summary:e.background_summary||`No background summary`,submitAvailable:Uz(e),sections:Gz(e),...e.updated_at===void 0?{}:{updatedLabel:xz(e.updated_at)},...t===void 0?{}:{footerNote:{text:t,tone:`neutral`}}}}function qz(e){return{key:`submitted:${e.submitted_by_workflow_ref??e.submitted_at??`current`}`,title:e.topic||`Current Scratchpad`,summary:e.background_summary||`No background summary`,submitAvailable:!1,sections:Gz(e),submitted:!0,updatedLabelPrefix:`Submitted`,...e.submitted_at===void 0?e.updated_at===void 0?{}:{updatedLabel:xz(e.updated_at)}:{updatedLabel:xz(e.submitted_at)}}}function Jz(e){return{key:`receipt:${e.workflow_ref}`,title:e.topic||`Current Scratchpad`,summary:e.background_summary||`No background summary`,submitAvailable:!1,sections:Gz(e),submitted:!0,updatedLabelPrefix:`Submitted`,updatedLabel:xz(e.submitted_at),...e.compiled_tasks===void 0||e.compiled_tasks.length===0?{}:{compiledTasks:e.compiled_tasks.map(e=>({taskId:e.task_id,title:e.title,moduleName:e.module_name,status:e.status}))}}}function Yz(e){return[...e].reverse().map(Jz)}function Xz(e){let t=Yz(e.receipts);return e.state===`ready`?[...t,Kz(e)]:e.state===`submitted`&&t.length===0?[qz(e)]:t}function Zz(e){let t=e.refs?.scratchpad_source;return t===void 0?e.scope.kind===`main_chat`?e.message_kind===`user_text`&&e.author.kind===`human`?!0:e.message_kind===`agent_text`&&e.author.kind===`agent`?e.refs?.workflow_ref===void 0&&e.refs?.activity_ref===void 0:!1:!1:t===`include`}function Qz(e,t){let n=e.updated_at??(e.state===`submitted`?e.submitted_at:void 0);return t.some(e=>Zz(e)?n===void 0||e.created_at>n:!1)}function $z(e,t=[]){let n=Qz(e,t),r=Xz(e),i=n?r.map((e,t)=>t===r.length-1?{...e,submitAvailable:!0}:e):r;if(i.length>0){let e=i[i.length-1];if(e===void 0)throw Error(`Scratchpad pages unexpectedly empty`);return{title:e.title,summary:e.summary,submitAvailable:e.submitAvailable,sections:e.sections,...e.updatedLabel===void 0?{}:{updatedLabel:e.updatedLabel},...e.updatedLabelPrefix===void 0?{}:{updatedLabelPrefix:e.updatedLabelPrefix},...e.footerNote===void 0?{}:{footerNote:e.footerNote},pages:i}}if(e.state!==`ready`)return{title:`Current Scratchpad`,summary:`Scratchpad empty. Discuss more, tutti together!.`,sections:[],submitAvailable:n};let a=Kz(e);return{...a,submitAvailable:a.submitAvailable||n}}function eB(e,t){let n=e.modules.map(e=>({label:e.module.name,rows:e.tasks.map(e=>({id:e.id,title:e.title,status:e.status,selected:e.id===t}))})).filter(e=>e.rows.length>0);return{modules:n,taskCount:n.reduce((e,t)=>e+t.rows.length,0)}}function tB(e){return e.modules.flatMap(e=>e.tasks)}function nB(e){return e.replace(/\s+/gu,` `).trim()}function rB(e,t=`None`){let n=nB(e??``);return n.length===0?t:n}function iB(e){let t=e.map(nB).filter(e=>e.length>0);return t.length===0?`None`:t.join(`
|
|
70
|
-
`)}function aB(e){return e.status===`promoted`?`promoted`:e.status===`not_promoted`?`not promoted`:`not attempted`}function oB(e){return e.result_kind===`needs_human`?`needs human`:e.result_kind===`failed`?`failed`:e.result_kind===`finished`?e.outcome??`finished`:`none`}function sB(e){if(e.result_kind===`needs_human`)return`pending`;if(e.result_kind===`failed`)return`failed`;if(e.result_kind===`finished`)return e.outcome===`completed`?`done`:`failed`}function cB(e){return e.result_kind===`needs_human`?`pending`:e.result_kind===`failed`?`failed`:e.outcome===`completed`?`done`:`failed`}function lB(e){return e.result_kind===`needs_human`?`Needs human`:e.result_kind===`failed`?`Failed`:e.outcome===`completed`?`Finished`:`Finished with failure`}function uB(e){return{id:e.id,title:lB(e),meta:Cz(e.created_at),status:cB(e)}}function dB(e,t,n={}){if(e===void 0)return;let r=e.detail.result,i=e.detail.contract,a=sB(r),o=[a===void 0?{label:`STATUS`,value:oB(r)}:{label:`STATUS`,value:oB(r),status:a}];return r.updated_at!==void 0&&o.push({label:`UPDATED`,value:Cz(r.updated_at)}),o.push({label:`RESULT`,value:rB(r.summary,`No run result yet.`)}),r.checks!==void 0&&o.push({label:`CHECKS`,value:r.checks}),r.docs!==void 0&&o.push({label:`DOCS`,value:r.docs}),r.promotion!==void 0&&o.push({label:`PROMOTE`,value:aB(r.promotion)}),r.error_code!==void 0&&o.push({label:`ERROR`,value:r.error_code}),r.retryable!==void 0&&o.push({label:`RETRY`,value:r.retryable?`can retry`:`needs new scope`}),{taskId:e.task.id,title:e.task.title,status:e.task.status,summary:rB(e.task.summary),contractRows:[{label:`GOAL`,value:i.goal||`None`},{label:`SCOPE`,value:iB(i.scope)}],resultRows:o,evidenceRows:o,runResults:(t?.items??[]).map(uB),...r.retry_action===void 0||n.includeRetryAction===!1?{}:{retryAction:{state:r.retry_action}}}}var fB=new Intl.DateTimeFormat(vz,{year:`numeric`,month:`short`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,hour12:!1}),pB={connected:`Connected`,reconnecting:`Reconnecting`,unavailable:`Unavailable`},mB={configured:`Configured`,invalid:`Needs attention`,not_configured:`Not configured`,managed:`Tutti trial`},hB={provider_auth_invalid:`API key is invalid`,provider_quota_or_billing_required:`Quota or billing needs attention`,provider_rate_limited:`Provider rate limit reached`,provider_model_unavailable:`Selected model is unavailable`,provider_network_error:`Provider could not be reached`,unknown:`Provider validation failed`};function gB(e){let t=new Date(e);return Number.isFinite(t.getTime())?fB.format(t):e}function _B(e){return e===`owner`?`Owner`:`Member`}function vB(e){return e.status===`managed`?{status:mB.managed,model:`Tutti`}:e.status===`not_configured`?{status:mB[e.status]}:{status:mB[e.status],...e.default_model===void 0?{}:{model:e.default_model},...e.validated_at===void 0?{}:{lastValidated:gB(e.validated_at)},...e.status!==`invalid`||e.invalid_reason_code===void 0?{}:{issue:hB[e.invalid_reason_code]}}}function yB(e,t){let n=(t?.members??[]).map(e=>({key:e.account_ref,displayName:e.display_name,avatar:e.avatar}));return n.some(t=>t.key===e.account.account_ref)?n:[...n,{key:e.account.account_ref,displayName:e.account.display_name,avatar:e.account.avatar}]}function bB(e,t,n,r){return{connectionStatus:{label:pB[e.relay.status],tone:e.relay.status===`connected`?`live`:`warning`},project:{displayName:e.project.display_name,description:e.project.description??``,members:yB(t,r)},access:{...e.relay.join_url===void 0?{}:{inviteLink:e.relay.join_url},...e.relay.join_token_expires_at===void 0?{}:{inviteExpires:gB(e.relay.join_token_expires_at)},signedInAs:{displayName:t.account.display_name,avatar:t.account.avatar},role:_B(t.membership.label),joined:gB(t.membership.joined_at)},provider:vB(n),tutti:{version:e.server.version}}}var xB=new Intl.NumberFormat(`en-US`),SB=NC(`beethoven-ode-to-joy`);function CB(e){return[...e].reverse().map((e,t)=>{let n=SB.units[t%SB.units.length];if(n===void 0)throw Error(`Timeline score theme unexpectedly has no units`);return{...n,id:e.id,label:`Open ${e.stageLabel??e.title}`}})}function wB(e){return xB.format(e)}function TB(e){if(e!==void 0)switch(e){case`completed`:return`success`;case`failed`:return`error`;case`needs_human`:return`warning`}}function EB(e){if(e.kind===`task_accepted`)return`Task accepted`;if(e.kind===`checkpoint`)return`Checkpoint`;switch(e.update_state){case`completed`:return`Task completed`;case`failed`:return`Task failed`;case`needs_input`:return`Needs input`;default:return`Task update`}}function DB(e,t){let n=Date.parse(e.occurred_at),r=Date.parse(t.occurred_at),i=Number.isFinite(n)&&Number.isFinite(r)?r-n:t.occurred_at.localeCompare(e.occurred_at);return i===0?t.id.localeCompare(e.id):i}function OB(e,t={}){let n=e.token_usage?.total_tokens??0,r=TB(e.status),i={id:e.id,title:e.task_title??e.title,occurredAt:Cz(e.occurred_at),kind:e.kind,stageLabel:EB(e)};return r!==void 0&&(i.tone=r),n>0&&(i.tokenLabel=`${wB(n)} tokens`),e.task_id!==void 0&&(i.taskId=e.task_id),e.task_title!==void 0&&(i.taskTitle=e.task_title),e.trace_card!==void 0&&(i.trace=AB(e.trace_card,t)),i}function kB(e,t){if(e.kind===`worklist_task`&&e.task_id!==void 0){let n=t.onOpenWorklistTask,r=e.task_id;return n===void 0?void 0:()=>n(r)}if(e.kind===`chat_message`&&e.message_id!==void 0){let n=t.onOpenChatMessage,r=e.message_id;return n===void 0?void 0:()=>n(r)}if(e.kind===`reference_file`&&e.path!==void 0){let n=t.onOpenReferenceFile,r=e.path;return n===void 0?void 0:()=>n(r)}}function AB(e,t={}){return{tone:e.tone,...e.summary===void 0?{}:{summary:e.summary},...e.origin===void 0?{}:{origin:{...e.origin.title===void 0?{}:{title:e.origin.title},...e.origin.summary===void 0?{}:{summary:e.origin.summary},...e.origin.unavailable_reason===void 0?{}:{unavailableReason:e.origin.unavailable_reason},...e.origin.source_count===void 0?{}:{sourceCount:e.origin.source_count},...e.origin.snippets===void 0?{}:{snippets:e.origin.snippets.map(e=>({id:e.message_id,author:e.author,body:e.body,createdAt:Cz(e.created_at),...t.onOpenChatMessage===void 0?{}:{onClick:()=>t.onOpenChatMessage?.(e.message_id)}}))}}},...e.decisions===void 0?{}:{decisions:e.decisions.map((e,t)=>({id:`${t}:${e.source??`decision`}`,...e.title===void 0?{}:{title:e.title},summary:e.summary}))},...e.clarification===void 0?{}:{clarification:{...e.clarification.title===void 0?{}:{title:e.clarification.title},...e.clarification.summary===void 0?{}:{summary:e.clarification.summary},...e.clarification.request===void 0?{}:{request:e.clarification.request},...e.clarification.status===void 0?{}:{status:e.clarification.status},...e.clarification.answer_count===void 0?{}:{answerCount:e.clarification.answer_count},...e.clarification.answers===void 0?{}:{answers:e.clarification.answers.map(e=>({id:e.message_id,author:e.author,body:e.body,createdAt:Cz(e.created_at),...t.onOpenChatMessage===void 0?{}:{onClick:()=>t.onOpenChatMessage?.(e.message_id)}}))}}},...e.contract===void 0?{}:{contract:{goal:e.contract.goal,scope:e.contract.scope,...e.contract.truncated===void 0?{}:{truncated:e.contract.truncated}}},...e.result===void 0?{}:{result:{summary:e.result.summary,...e.result.error_code===void 0?{}:{errorCode:e.result.error_code}}},...e.changes===void 0?{}:{changes:{items:e.changes.items.map(e=>({status:e.status,path:e.path,...e.previous_path===void 0?{}:{previousPath:e.previous_path}})),totalCount:e.changes.total_count,truncated:e.changes.truncated}},...e.verification===void 0?{}:{verification:{checks:e.verification.checks,...e.verification.skip_reason_code===void 0?{}:{skipReasonCode:e.verification.skip_reason_code},...e.verification.skip_reason_summary===void 0?{}:{skipReasonSummary:e.verification.skip_reason_summary}}},...e.promotion===void 0?{}:{promotion:{status:e.promotion.status,...e.promotion.commit_short_oid===void 0?{}:{commitShortOid:e.promotion.commit_short_oid},...e.promotion.summary===void 0?{}:{summary:e.promotion.summary},...e.promotion.reason_code===void 0?{}:{reasonCode:e.promotion.reason_code}}},...e.checkpoint===void 0?{}:{checkpoint:{counters:e.checkpoint.counters,items:e.checkpoint.items.map(e=>({id:e.task_id,title:e.title,status:e.status,summary:e.summary})),...e.checkpoint.generated_files===void 0?{}:{generatedFiles:e.checkpoint.generated_files.map(e=>({id:e.path,name:e.name,path:e.path}))},...e.checkpoint.truncated===void 0?{}:{truncated:e.checkpoint.truncated}}},links:e.links.flatMap(e=>{let n=e.task_id??e.message_id??e.path,r=kB(e,t);return r===void 0?[]:[{id:`${e.kind}:${n??e.label}`,label:e.label,onClick:r}]})}}function jB(e,t={}){let n=e.usage_overview,r=[...e.items].sort(DB).map(e=>OB(e,t));return{tokenOverview:{totalLabel:wB(n.total_tokens)},items:r,scoreUnits:CB(r)}}var MB=[{id:`prepare`,label:`Preparing workspace`},{id:`implement`,label:`Implementing with Codex`},{id:`validate`,label:`Validating result`},{id:`save`,label:`Saving result`}],NB=[{id:`workspace_inspect`,summary:`inspecting the persistent project workspace`,displayStageId:`prepare`},{id:`artifact_candidate_validate`,summary:`validating the candidate Artifact preview`,displayStageId:`validate`},{id:`provider_task_run`,summary:`running Codex task implementation`,displayStageId:`implement`},{id:`provider_retry`,summary:`retrying Codex task after a transient provider failure`,displayStageId:`implement`},{id:`candidate_diff_collect`,summary:`collecting candidate changes`,displayStageId:`validate`},{id:`checks`,summary:`running project checks`,displayStageId:`validate`},{id:`post_checks_diff_collect`,summary:`rechecking candidate changes after checks`,displayStageId:`validate`},{id:`accepted_checkpoint`,summary:`saving the validated project state as an accepted checkpoint`,displayStageId:`save`},{id:`promotion_reconcile`,summary:`reconciling promotion after mainline changed`,displayStageId:`save`},{id:`self_correction`,summary:`retrying task implementation after pipeline feedback`,displayStageId:`implement`}],PB={scratchpad_refresh:{key:`scratchpad_refresh`,label:`Refreshing Scratchpad`,target:{kind:`scratchpad`}},project_context_bootstrap:{key:`project_context_bootstrap`,label:`Preparing project context`,target:{kind:`scratchpad`}},task_compile:{key:`task_compile`,label:`Compiling Worklist tasks`,target:{kind:`scratchpad`}},context_sync:{key:`context_sync`,label:`Synchronizing project context`,target:{kind:`worklist`}},reference_summary_refresh:{key:`reference_summary_refresh`,label:`Processing reference`,target:{kind:`references`}},recovery_check:{key:`recovery_check`,label:`Recovering workspace`,target:{kind:`worklist`}},follow_up_check:{key:`follow_up_check`,label:`Checking follow-up`,target:{kind:`worklist`}}},FB=`Tutti is working on`,IB=new Set([`scratchpad_refresh`]),LB=`task_compile`,RB=`project_context_bootstrap`,zB=3,BB={analyzing_task:`Analyzing the task`,searching_codebase:`Searching the codebase`,reading_files:`Reading project files`,planning:`Planning the next change`,editing_files:`Editing project files`,running_checks:`Running project checks`,running_command:`Running a project command`,using_tool:`Using a project tool`,waiting_for_approval:`Waiting for approval`,preparing_result:`Preparing the result`,reading_context:`Reading project context`,finalizing:`Preparing the result`};function VB(e){if(e===void 0)return null;if(typeof e==`number`)return Number.isFinite(e)?e:null;if(e instanceof Date)return e.getTime();let t=Date.parse(e);return Number.isNaN(t)?null:t}function HB(e){return VB(e.now)??Date.now()}function UB(e){if(e<60)return`${e}s`;let t=Math.floor(e/60),n=e%60;if(t<60)return`${t}m${n}s`;let r=Math.floor(t/60),i=t%60;return`${r}h${String(i).padStart(2,`0`)}m`}function WB(e,t){let n=VB(e);if(n!==null)return UB(Math.max(0,Math.floor((HB(t)-n)/1e3)))}function GB(e,t){return WB(e.active_activity?.started_at??e.runtime?.started_at,t)}function KB(e){let t=e.runtime;if(t===void 0)return;let n=e.active_activity?.activity_ref;if(!(n!==void 0&&t.activity_ref!==n))return t}function qB(e){if(e<1e3)return String(e);if(e<1e6){let t=e/1e3;return`${e<1e5?t.toFixed(1).replace(/\.0$/u,``):String(Math.round(t))}k`}return`${(e/1e6).toFixed(1).replace(/\.0$/u,``)}m`}function JB(e){let t=YB(e);return t===void 0?[]:[t]}function YB(e){let t=e?.token_usage?.total_tokens;return t===void 0?void 0:`${qB(t)} tokens`}function XB(e){if(e?.current_action_detail!==void 0)return e.current_action_detail;let t=e?.current_action;return t===void 0?e?.token_usage===void 0?void 0:BB.analyzing_task:BB[t]}function ZB(e,t){if(e?.current_action!==`analyzing_task`||e.current_action_started_at===void 0)return;let n=VB(e.current_action_started_at);if(n===null)return;let r=Math.max(0,Math.floor((HB(t)-n)/1e3));if(!(r<zB))return`Thinking for ${UB(r)}`}function QB(e){let t={};return e.active_activity?.activity_ref!==void 0&&(t.activityRef=e.active_activity.activity_ref),e.active_activity?.workflow_ref!==void 0&&(t.workflowRef=e.active_activity.workflow_ref),e.active_task?.id!==void 0&&(t.taskId=e.active_task.id),Object.keys(t).length===0?void 0:t}function $B(e,t,n){return e===`context_sync`&&t.last_conclusion?.task_id!==void 0?{kind:`task`,taskId:t.last_conclusion.task_id}:n.target}function eV(e){return NB[oV(e)]??NB[0]}function tV(e){return MB.findIndex(t=>t.id===e)}function nV(e){return MB[tV(eV(e).displayStageId)]??MB[0]}function rV(e){if(e.status!==`running`||e.active_activity?.activity_kind!==`procedure`)return null;let t=e.active_activity.workflow_kind;if(t===void 0||IB.has(t))return null;let n=PB[t],r=$B(t,e,n);return{key:`procedure:${n.key}`,label:n.label,title:n.label,tone:`running`,target:r}}function iV(e,t){if(e.status!==`running`||e.active_activity?.activity_kind!==`procedure`)return null;let n=e.active_activity.workflow_kind;if(n===void 0||IB.has(n))return null;let r=PB[n],i=$B(n,e,r),a=QB(e),o=KB(e),s=n===LB?JB(o):[],c=n===RB?`Creating project context for the first time`:void 0,l=WB(e.active_activity?.started_at??o?.started_at,t);return{key:`procedure:${r.key}`,title:FB,summary:e.summary,tone:`running`,metaLabel:r.label,completionTarget:i,...a===void 0?{}:{completionSource:a},steps:[{id:`procedure:${r.key}:active`,label:r.label,status:`running`,...l===void 0?{}:{elapsedLabel:l},...c===void 0?{}:{detail:c},...s.length===0?{}:{metrics:s}}]}}function aV(e){let t=e.indexOf(` - `);return t===-1?``:e.slice(t+3).trim().replace(/\.$/u,``)}function oV(e){let t=aV(e).toLocaleLowerCase();if(t===``)return 0;let n=NB.findIndex(e=>t.includes(e.summary.toLocaleLowerCase()));return n===-1?0:n}function sV(e,t){if(e.status!==`running`||e.active_task===void 0)return null;let n=tV(eV(e.summary).displayStageId),r=nV(e.summary),i=QB(e),a=KB(e),o=GB(e,t);return{key:`run:${e.active_task.id}`,title:FB,summary:e.active_task.title,tone:`running`,metaLabel:r.label,completionTarget:{kind:`task`,taskId:e.active_task.id},...i===void 0?{}:{completionSource:i},steps:MB.map((e,r)=>{let i=r<n?`done`:r===n?`running`:`waiting`,s=r===n,c=e.id===`implement`,l=s&&c?XB(a):void 0,u=s&&c?YB(a):void 0,d=s&&c?ZB(a,t):void 0;return{id:e.id,label:e.label,status:i,...s&&o!==void 0?{elapsedLabel:o}:{},...u===void 0?{}:{detailPrefix:u},...l===void 0?{}:{detail:l},...d===void 0?{}:{activityLabel:d}}})}}function cV(e,t){if(e.status!==`running`||e.active_activity?.workflow_kind!==`context_sync`||e.last_conclusion?.kind!==`completed`||e.last_conclusion.task_id===void 0)return null;let n=QB(e),r=GB(e,t);return{key:`context-sync:${e.last_conclusion.task_id}`,title:FB,summary:e.summary,tone:`running`,metaLabel:`Synchronizing context`,completionTarget:{kind:`task`,taskId:e.last_conclusion.task_id},...n===void 0?{}:{completionSource:n},steps:[{id:`task_complete`,label:`Task completed`,status:`done`},{id:`context_sync`,label:`Synchronizing project context`,status:`running`,...r===void 0?{}:{elapsedLabel:r}}]}}function lV(e){let t=e.blocked_by?.kind===`approval`?{kind:`approval`}:{kind:`clarification`};return{key:`pending:${e.blocked_by?.kind===`approval`?e.blocked_by.approval_id:e.blocked_by?.kind===`clarification`?e.blocked_by.round_id:e.updated_at}`,title:FB,summary:e.summary,tone:`pending`,metaLabel:`Needs input`,completionTarget:t,steps:[{id:`waiting_for_input`,label:`Needs input`,status:`pending`}]}}function uV(e){let t=e.last_conclusion?.task_id??(e.status===`failed`?e.active_task?.id:void 0);return t===void 0&&e.status!==`failed`?null:{key:`failed:${t??e.updated_at}`,title:FB,summary:e.last_conclusion?.summary??e.summary,tone:`failed`,metaLabel:`Failed`,...t===void 0?{}:{completionTarget:{kind:`task`,taskId:t}},steps:[{id:`run_failed`,label:`Run failed`,status:`failed`}]}}function dV(e,t={}){let n=sV(e,t);if(n!==null)return n;let r=cV(e,t);if(r!==null)return r;let i=iV(e,t);return i===null?e.status===`pending`?lV(e):e.status===`failed`?uV(e):null:i}function fV(e){let t=e.activeTaskCompileClarification&&!e.activeScratchpadRefreshFromSubmit&&!e.activeProjectContextBootstrap&&!e.activeTaskCompile,n=[],r=WB(e.startedAt,e);if(e.activeProjectContextBootstrap)n.push({id:`scratchpad_submit:project_context`,label:`Preparing project context`,status:`running`,...r===void 0?{}:{elapsedLabel:r},detail:`Creating project context for the first time`});else if(e.activeTaskCompile||e.activeScratchpadRefreshFromSubmit){let t=e.activeTaskCompile?JB(e.runtime):[];n.push({id:`scratchpad_submit:task_compile`,label:`Compiling Worklist tasks`,status:`running`,...r===void 0?{}:{elapsedLabel:r},...t.length===0?{}:{metrics:t}})}else n.push({id:`scratchpad_submit:task_compile`,label:`Compiling Worklist tasks`,status:t?`done`:`running`});t&&n.push({id:`scratchpad_submit:needs_input`,label:`Needs input`,status:`pending`});let i=n.find(e=>e.status===`running`||e.status===`pending`)?.label??`Compiling Worklist tasks`;return{key:`scratchpad-submit`,title:FB,summary:t?`Task compilation needs a decision before Worklist can update.`:`Preparing the Scratchpad for formal tasks.`,tone:t?`pending`:`running`,metaLabel:t?`Needs input`:i,completionTarget:t?{kind:`clarification`}:{kind:`scratchpad`},steps:n}}function pV(e,t){return{...e,key:`${e.key}:complete`,title:FB,summary:t,tone:`complete`,metaLabel:`Complete`,steps:e.steps.map(e=>({...e,status:`done`}))}}function mV(e,t){let n=e.completionSource;return n===void 0?!0:n.activityRef===void 0?n.workflowRef===void 0?n.taskId===void 0?!0:t.task_id===n.taskId:t.workflow_ref===n.workflowRef:t.activity_ref===n.activityRef}function hV(e){if(e.status===`idle`)return[];let t=[];if(e.status===`pending`){let n=e.blocked_by?.kind===`approval`?{kind:`approval`}:{kind:`clarification`};t.push({key:`pending`,label:`Needs input`,title:`Needs input`,tone:`pending`,target:n})}let n=e.last_conclusion?.kind===`failed`?e.last_conclusion.task_id:e.status===`failed`?e.active_task?.id??e.last_conclusion?.task_id:void 0;if(n!==void 0&&t.push({key:`failed`,label:`Run failed`,tone:`failed`,target:{kind:`task`,taskId:n}}),e.status===`running`&&e.active_task!==void 0){let n=nV(e.summary);t.push({key:`running`,label:n.label,title:n.label,tone:`running`,target:{kind:`task`,taskId:e.active_task.id}})}let r=rV(e);return r!==null&&t.push(r),t}var gV=`http://127.0.0.1:4370`;function _V(){return typeof window<`u`?window.location.origin:gV}function vV(){let e=`https://tutti.now`;return typeof e==`string`?e:_V()}var yV=vV(),X={relayBaseUrl:yV},bV=3e4,Z={relayRoot:[`relay`],me:[`relay`,`me`],recentProjects:[`relay`,`projects`,`recent`],accountProjects:[`relay`,`account-projects`],projectPresence:e=>[`relay`,`projects`,e,`presence`],relayJoinRoot:[`relay`,`join`],join:e=>[`relay`,`join`,e],bootstrap:e=>[`host`,e,`bootstrap`],hostRoot:e=>[`host`,e],hostSession:e=>[`host`,e,`session`],hostWorkspace:e=>[`host`,e,`workspace`],messages:e=>[`host`,e,`messages`,`main_chat`],messagesWindow:(e,t)=>[...Z.messages(e),{limit:t}],messagesAround:(e,t,n)=>[...Z.messages(e),{around:t,limit:n}],messageHistory:(e,t,n)=>[...Z.messages(e),{history:t,limit:n}],scratchpad:e=>[`host`,e,`scratchpad`],worklist:e=>[`host`,e,`worklist`],readState:e=>[`host`,e,`read-state`],activeClarification:e=>[`host`,e,`clarification`,`active`],activeApproval:e=>[`host`,e,`approval`,`active`],noActiveClarificationRoundMessages:e=>[`host`,e,`clarification-round-messages`,`none`],clarificationRoundMessages:(e,t)=>[`host`,e,`clarification-round-messages`,t],task:(e,t)=>[`host`,e,`task`,t],taskDetail:(e,t)=>[`host`,e,`task-detail`,t],taskRunResults:(e,t)=>[`host`,e,`task-run-results`,t],executionStatus:e=>[`host`,e,`execution-status`],providerConfig:e=>[`host`,e,`provider-config`],providerUsage:e=>[`host`,e,`provider-usage`],projectTimeline:e=>[`host`,e,`project-timeline`],viewerRoot:e=>[`host`,e,`viewer`],viewerFile:(e,t)=>[`host`,e,`viewer`,`file`,t],referenceFiles:e=>[`host`,e,`references`,`files`],artifacts:e=>[`host`,e,`artifacts`],artifactPreviewSession:(e,t)=>[`relay`,e,`artifact-preview-session`,t],skills:e=>[`host`,e,`skills`],skillDetail:(e,t)=>[`host`,e,`skills`,t]};function xV(){return`${window.location.pathname}${window.location.search}${window.location.hash}`}function Q(e,t={}){t.replace===!0?window.history.replaceState(null,``,e):window.history.pushState(null,``,e),window.dispatchEvent(new PopStateEvent(`popstate`))}function SV(e){let t=new URL(e,window.location.origin);Q(`${t.pathname}${t.search}${t.hash}`)}function CV(){let[e,t]=(0,I.useState)(xV);return(0,I.useEffect)(()=>{let e=()=>{t(xV())};return window.addEventListener(`popstate`,e),e(),()=>{window.removeEventListener(`popstate`,e)}},[]),(0,I.useMemo)(()=>{let t=new URL(e,window.location.origin);return Eb(t.pathname,t.search)},[e])}function $(e){return e instanceof Error?e.message:`Request failed`}function wV(e){e.invalidateQueries({queryKey:Z.me}),e.invalidateQueries({queryKey:Z.recentProjects}),e.invalidateQueries({queryKey:Z.accountProjects})}function TV(e,t){if(t!==void 0)for(let n of t)switch(n.kind){case`all`:e.invalidateQueries({queryKey:Z.relayRoot});break;case`me`:e.invalidateQueries({queryKey:Z.me});break;case`recent_projects`:e.invalidateQueries({queryKey:Z.recentProjects}),e.invalidateQueries({queryKey:Z.accountProjects});break;case`join_entries`:e.invalidateQueries({queryKey:Z.relayJoinRoot});break;case`project_presence`:Rt(n.relay_project_ref,Pt.relayProject)&&e.invalidateQueries({queryKey:Z.projectPresence(n.relay_project_ref)});break}}function EV(e){let t=et(),n=(0,I.useMemo)(()=>Un(X),[]);(0,I.useEffect)(()=>{if(e)try{let e=n.connectEvents({onReady:e=>{e.payload.replay.status===`missed`&&t.invalidateQueries({queryKey:Z.relayRoot})},onInvalidate:e=>{TV(t,e)}});return()=>{e.close()}}catch{return}},[e,t,n])}function DV(e,t,n){if(n!==void 0)for(let r of n)switch(r.kind){case`all`:e.invalidateQueries({queryKey:Z.hostRoot(t)});break;case`workspace`:e.invalidateQueries({queryKey:Z.hostWorkspace(t)}),e.invalidateQueries({queryKey:Z.projectTimeline(t)});break;case`session`:e.invalidateQueries({queryKey:Z.hostSession(t)});break;case`bootstrap`:e.invalidateQueries({queryKey:Z.bootstrap(t)});break;case`messages`:r.scope===`main_chat`?e.invalidateQueries({queryKey:Z.messages(t)}):e.invalidateQueries({queryKey:Z.clarificationRoundMessages(t,r.round_id)});break;case`scratchpad`:e.invalidateQueries({queryKey:Z.scratchpad(t)});break;case`worklist`:e.invalidateQueries({queryKey:Z.worklist(t)});break;case`read_state`:e.invalidateQueries({queryKey:Z.readState(t)});break;case`task`:e.invalidateQueries({queryKey:Z.task(t,r.task_id)});break;case`task_detail`:e.invalidateQueries({queryKey:Z.taskDetail(t,r.task_id)});break;case`task_run_results`:e.invalidateQueries({queryKey:Z.taskRunResults(t,r.task_id)}),e.invalidateQueries({queryKey:Z.projectTimeline(t)});break;case`execution_status`:e.invalidateQueries({queryKey:Z.executionStatus(t)});break;case`approval`:e.invalidateQueries({queryKey:Z.activeApproval(t)});break;case`provider_config`:e.invalidateQueries({queryKey:Z.providerConfig(t)});break;case`provider_usage`:e.invalidateQueries({queryKey:Z.providerUsage(t)}),e.invalidateQueries({queryKey:Z.projectTimeline(t)});break;case`project_timeline`:e.invalidateQueries({queryKey:Z.projectTimeline(t)});break;case`viewer`:e.invalidateQueries({queryKey:Z.viewerRoot(t)}),e.invalidateQueries({queryKey:Z.projectTimeline(t)}),(r.path===void 0||r.path.startsWith(`docs/reference`))&&e.invalidateQueries({queryKey:Z.referenceFiles(t)}),r.path!==void 0&&e.invalidateQueries({queryKey:Z.viewerFile(t,r.path)});break;case`skills`:e.invalidateQueries({queryKey:Z.skills(t)});break;case`artifacts`:e.invalidateQueries({queryKey:Z.artifacts(t)});break;case`recovery_summaries`:e.invalidateQueries({queryKey:Z.projectTimeline(t)});break;case`activity`:break;case`clarification`:e.invalidateQueries({queryKey:Z.activeClarification(t)}),e.invalidateQueries({queryKey:Z.projectTimeline(t)}),r.round_id!==void 0&&e.invalidateQueries({queryKey:Z.clarificationRoundMessages(t,r.round_id)});break}}function OV(){return{items:[],window:{has_older:!1,has_newer:!1,limit:50}}}function kV(){return{modules:[]}}function AV(){return{id:`current`,state:`empty`,topic:``,background_summary:``,current_consensus:[],open_questions:[],task_changes:[],receipts:[]}}function jV(e){return{chat:e?.scopes.chat.has_unread===!0,worklist:e?.scopes.worklist.has_unread===!0,references:e?.scopes.references.has_unread===!0,skills:e?.scopes.skills.has_unread===!0}}function MV({enabled:e,hostClient:t,relayProjectRef:n,readState:r,scope:i}){let a=et(),o=(0,I.useRef)(null),s=gt({mutationFn:e=>t.markRead({scope:i,up_to_event_cursor:e}),onSuccess:e=>{DV(a,n,e.invalidates)},onError:()=>{o.current=null}});(0,I.useEffect)(()=>{if(!e||r===void 0)return;let t=r.scopes[i];if(!t.has_unread){t.read_event_cursor>=t.latest_event_cursor&&(o.current=null);return}let n=`${i}:${t.latest_event_cursor}`;o.current===n||s.isPending||(o.current=n,s.mutate(t.latest_event_cursor))},[e,s,r,i])}function NV(){return{state:`none`}}function PV(e){return{status:`idle`,summary:`Idle`,updated_at:e}}function FV(e){return e.active_activities??(e.active_activity===void 0?[]:[e.active_activity])}function IV(e,t,n){return FV(e).some(e=>e.workflow_kind===t?n===void 0||(e.lane??`foreground`)===n:!1)}function LV(e){return e.blocked_by?.kind===`clarification`||e.blocked_by?.kind===`approval`?!0:FV(e).some(e=>e.activity_kind===`run`?!0:(e.lane??`foreground`)===`foreground`)}function RV(e,t){let n=`/projects/${encodeURIComponent(zt(e))}/references`;return t===void 0?n:`${n}?path=${encodeURIComponent(t)}`}function zV(e){return`/projects/${encodeURIComponent(zt(e))}/artifacts`}function BV(e,t){let n=`/projects/${encodeURIComponent(zt(e))}/worklist`;return t===void 0?n:`${n}?task=${encodeURIComponent(t)}`}function VV(e,t){return`${en(e)}?message=${encodeURIComponent(t)}`}function HV(e){return`/projects/${encodeURIComponent(zt(e))}/settings`}function UV(e){return`/projects/${encodeURIComponent(zt(e))}/timeline`}function WV(e,t){let n=`/projects/${encodeURIComponent(zt(e))}/skills`;return t===void 0?n:`${n}?skill=${encodeURIComponent(t)}`}function GV(e,t){switch(t.target.kind){case`approval`:case`clarification`:case`scratchpad`:return en(e);case`worklist`:return BV(e);case`references`:return RV(e);case`task`:return BV(e,t.target.taskId)}}function KV(e,t){Q(GV(e,t))}function qV(e,t){let n=tB(e);if(t!==void 0&&n.some(e=>e.id===t))return t;for(let e of[`running`,`pending`,`failed`,`todo`,`done`]){let t=n.find(t=>t.status===e);if(t!==void 0)return t.id}}function JV(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function YV(e){switch(e){case`binary`:return`Binary file`;case`too_large`:return`File too large`;case`unsupported_encoding`:return`Unsupported encoding`;case`restricted_path`:case`secret_like`:return`Restricted file`;default:return`Preview unavailable`}}function XV(e){if(!(e===void 0||e.kind===`text`))return YV(e.reason)}function ZV(e){return Array.from(new Uint8Array(e)).map(e=>e.toString(16).padStart(2,`0`)).join(``)}async function QV(e){if(globalThis.crypto?.subtle===void 0)throw Error(`This browser does not support file upload hashing.`);return`sha256:${ZV(await globalThis.crypto.subtle.digest(`SHA-256`,await e.arrayBuffer()))}`}async function $V(e){if(e.file.size<=0)throw Error(`Upload file cannot be empty.`);let t=Ph(e.purpose);if(e.file.size>t)throw Error(`Upload file cannot exceed ${JV(t)}.`);let n=await QV(e.file),r=e.file.type===``?void 0:e.file.type,i=Un(X),a=e.purpose===`skill_zip`?{relay_project_ref:e.relayProjectRef,purpose:`skill_zip`,file_name:e.file.name,size_bytes:e.file.size,sha256:n,...r===void 0?{}:{media_type:r}}:{relay_project_ref:e.relayProjectRef,purpose:`reference_file`,file_name:e.file.name,size_bytes:e.file.size,sha256:n,...r===void 0?{}:{media_type:r}},o=await i.startUpload(a);if(o.result===void 0)throw Error(`Upload session could not be started.`);let s=new Headers(o.result.put.headers??{});r!==void 0&&!s.has(`content-type`)&&s.set(`content-type`,r);let c;try{c=await fetch(o.result.put.url,{method:o.result.put.method,headers:s,body:e.file})}catch{throw Error(`File upload failed while sending the file to upload storage. Check that R2 CORS allows PUT from this Web origin.`)}if(!c.ok)throw Error(`File upload failed while sending the file to upload storage (${c.status}).`);return{upload_id:o.result.upload.upload_id,file_name:o.result.upload.file_name,size_bytes:o.result.upload.size_bytes,sha256:o.result.upload.sha256,...o.result.upload.media_type===void 0?{}:{media_type:o.result.upload.media_type}}}function eH(e){let t=et(),n=_z(),[r,i]=(0,I.useState)(`identity`),[a,o]=(0,I.useState)(null),[s,c]=(0,I.useState)({email:``,displayName:``,code:``}),l=gt({mutationFn:async()=>{let e=s.email.trim(),t=await Jn(X,{email:e});if(t.result===void 0)throw Error(`Login challenge was not returned`);return{challenge:t.result.challenge,disposition:t.disposition,email:e}},onSuccess:({challenge:e,disposition:t,email:r})=>{o(e),c(e=>({...e,code:``})),i(`code`),n.notify({tone:`success`,title:t.kind===`otp_already_pending`?`Verification email already sent`:`Verification email sent`,message:t.kind===`otp_already_pending`?`Verification email already sent to ${r}.`:`Verification email sent to ${r}.`})}}),u=gt({mutationFn:async()=>{if(a===null)throw Error(`Login challenge is missing`);return nr(X,{challenge_ref:a.challenge_ref,code:s.code.trim()},s.email)},onSuccess:n=>{if(!n.account.profile_complete){t.invalidateQueries({queryKey:Z.me}),c(e=>({...e,displayName:``})),i(`profile`);return}wV(t),e?.()}}),d=gt({mutationFn:async()=>{let e=await Yn(X,{display_name:s.displayName.trim()});if(e.result===void 0)throw Error(`Profile response was not returned`);return e.result.account},onSuccess:()=>{wV(t),e?.()}}),f=e=>{if(e.preventDefault(),r===`identity`&&s.email.trim()!==``){l.mutate();return}if(r===`code`&&a!==null&&s.code.trim()!==``){u.mutate();return}r===`profile`&&s.displayName.trim()!==``&&d.mutate()},p=l.isPending||u.isPending||d.isPending,m=r===`identity`?l.error:r===`code`?u.error??l.error:d.error;return{phase:r,form:s,pending:p,submitDisabled:r===`identity`?s.email.trim()===``:r===`code`?a===null||s.code.replace(/\s+/gu,``).length!==6:s.displayName.trim()===``,challengeEmailHint:a?.email_hint??null,error:m===null?null:$(m),onChange:e=>{c(t=>({...t,...e,...e.code===void 0?{}:{code:e.code.replace(/\D/gu,``).slice(0,6)}}))},onSubmit:f,onBack:()=>{l.reset(),u.reset(),d.reset(),o(null),c(e=>({...e,code:``})),i(`identity`)}}}function tH(e){let t=et(),[n,r]=(0,I.useState)({email:``,displayName:``,code:``}),i=gt({mutationFn:async()=>{let e=await Yn(X,{display_name:n.displayName.trim()});if(e.result===void 0)throw Error(`Profile response was not returned`);return e.result.account},onSuccess:()=>{wV(t),e?.()}});return{phase:`profile`,form:n,pending:i.isPending,submitDisabled:n.displayName.trim()===``,challengeEmailHint:null,error:i.error===null?null:$(i.error),onChange:e=>{r(t=>({...t,...e,...e.code===void 0?{}:{code:e.code.replace(/\D/gu,``).slice(0,6)}}))},onSubmit:e=>{e.preventDefault(),n.displayName.trim()!==``&&i.mutate()}}}var nH=ib(X);function rH({entryRef:e}){let[t,n]=(0,I.useState)(``),[r,i]=(0,I.useState)(!0),[a,o]=(0,I.useState)(!1),[s,c]=(0,I.useState)(!1),[l,u]=(0,I.useState)(),[d,f]=(0,I.useState)(0),p=(0,I.useRef)(!1),m=(0,I.useRef)(void 0);(0,I.useEffect)(()=>n(``),[e]),(0,I.useEffect)(()=>{let t=new AbortController;return m.current=t,p.current=!1,o(!1),i(!0),u(void 0),c(!1),az(`connection_resolve`,async n=>{if(e===null||window.location.hash!==``)throw new Gt({message:`Invalid group entry`,code:`bad_request`,statusCode:0,retryable:!1,details:{reason_code:`connection_entry_unavailable`}});return nH.resolve(e,{signal:t.signal,diagnostics:n})}).then(e=>{t.signal.aborted||(e.kind===`bound`?Q(tn(e.relay_project_ref),{replace:!0}):c(!0))}).catch(e=>{t.signal.aborted||u(oz(e,XR()))}).finally(()=>{t.signal.aborted||i(!1)}),()=>t.abort()},[e,d]);async function h(){if(p.current||e===null||Wy(t)===null)return;p.current=!0,o(!0),u(void 0);let r=m.current.signal;try{let i=await az(`connection_resolve`,t=>nH.resolve(e,{signal:r,diagnostics:t}));if(r.aborted)return;if(i.kind===`bound`){n(``),Q(tn(i.relay_project_ref),{replace:!0});return}let a=await az(`connection_bootstrap`,t=>nH.bootstrap(e,{signal:r,diagnostics:t}));if(r.aborted)return;let o=XR(),s;try{s=await KR({appId:a.app_id,state:a.state})}catch(e){throw new JR(`h5_request_access`,e,o)}if(r.aborted)return;let c=await az(`connection_connect`,n=>nH.connect({entry_ref:e,state:a.state,authorization_code:s,input:t},{signal:r,diagnostics:n}));if(r.aborted)return;if(c.kind!==`bound`)throw new JR(`connection_connect`,Error(`connection_not_established`));n(``),Q(tn(c.relay_project_ref),{replace:!0})}catch(e){r.aborted||u(oz(e,XR()))}finally{m.current?.signal===r&&(p.current=!1,r.aborted||o(!1))}}return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(Ab,{route:{kind:`feishu_connection`,entryRef:e}}),(0,L.jsx)(FR,{loading:r,pending:a,unbound:s,value:t,canSubmit:Wy(t)!==null,...l===void 0?{}:{error:l},onChange:n,onConnect:()=>void h(),onRefresh:()=>{p.current||f(e=>e+1)}})]})}var iH=`/assets/beethoven-symphony-5-opening-ypVy5SB4.svg`,aH=`/assets/beethoven-symphony-7-allegretto-B3bc-cZD.svg`,oH=`/assets/dvorak-symphony-9-largo-BEgNL3HB.svg`,sH=`/assets/mozart-symphony-18-allegro-B5-MrLL1.svg`,cH=`https://lets.tutti.now`,lH=`${cH}/start/create-a-project#connect-a-provider-and-choose-a-model`,uH={href:cH,target:`_blank`,rel:`noopener noreferrer`};function dH(){return(0,L.jsxs)(aO,{children:[`New to Tutti?`,` `,(0,L.jsx)(`a`,{...uH,"aria-label":`Read the Tutti documentation (opens in a new tab)`,children:`Read the docs`}),`.`]})}function fH(){return(0,L.jsx)(kw,{...uH,label:`Support Center`,icon:(0,L.jsx)(Yb,{"aria-hidden":`true`})})}var pH=[iH,aH,oH,sH];function mH(){return pH[Math.min(pH.length-1,Math.floor(Math.random()*pH.length))]}function hH({backgroundPattern:e,children:t,...n}){let[r]=(0,I.useState)(mH);return(0,L.jsx)(PC,{...e===void 0?{backgroundImageSrc:r}:{backgroundPattern:e},...n,children:t})}function gH({actions:e,children:t,onBrandClick:n}){return(0,L.jsxs)(hH,{children:[(0,L.jsx)(FC,{brand:(0,L.jsx)(NR,{onClick:n}),actions:e}),t]})}function _H({children:e,label:t,onBrandClick:n}){return(0,L.jsx)(gH,{onBrandClick:n,children:(0,L.jsx)(LC,{"aria-label":t,children:e})})}function vH({auth:e,mobileAuth:t,onBrandClick:n}){return(0,L.jsx)(hH,{backgroundPattern:`dots`,className:`homepage-entry-page`,children:(0,L.jsx)(iO,{brand:(0,L.jsx)(NR,{onClick:n}),visual:(0,L.jsx)(zO,{assets:jR}),auth:e,mobileAuth:t,footer:(0,L.jsx)(dH,{})})})}function yH({phase:e,form:t,onChange:n}){return e===`code`?(0,L.jsx)(`div`,{className:`form-stack`,children:(0,L.jsx)(Tw,{label:`Email verification code`,children:(0,L.jsx)(xw,{autoComplete:`one-time-code`,inputMode:`numeric`,type:`text`,value:t.code,onChange:e=>n({code:e.target.value}),placeholder:`Enter email code`,maxLength:6})})}):e===`profile`?(0,L.jsxs)(`div`,{className:`form-stack`,children:[(0,L.jsx)(Tw,{label:`Display name`,children:(0,L.jsx)(xw,{autoComplete:`name`,type:`text`,value:t.displayName,onChange:e=>n({displayName:e.target.value}),placeholder:`username`})}),(0,L.jsx)(`p`,{className:`form-note`,children:`This name cannot be changed yet.`})]}):(0,L.jsx)(`div`,{className:`form-stack`,children:(0,L.jsx)(Tw,{label:`Email`,children:(0,L.jsx)(xw,{autoComplete:`email`,type:`email`,value:t.email,onChange:e=>n({email:e.target.value}),placeholder:`alex@example.com`})})})}function bH({surface:e,phase:t,form:n,pending:r,error:i,submitDisabled:a,submitLabel:o,pendingLabel:s,onChange:c,onSubmit:l,onBack:u}){let d={title:t===`profile`?`Choose display name`:`Sign in`,description:t===`profile`?`Set the name your teammates will see.`:t===`code`?`Enter your email verification code.`:`Use your email to continue.`,onSubmit:l,action:(0,L.jsxs)(pw,{type:`submit`,disabled:a||r,children:[r?s??(t===`profile`?`Saving`:t===`code`?`Verifying`:`Sending code`):o??(t===`profile`?`Save name`:t===`code`?`Verify email code`:`Send code`),(0,L.jsx)(Vb,{"aria-hidden":`true`})]}),secondaryAction:t===`code`&&u!==void 0?(0,L.jsxs)(J,{type:`button`,onClick:u,disabled:r,children:[(0,L.jsx)(Bb,{"aria-hidden":`true`}),`Change email`]}):void 0,feedback:i===null?void 0:(0,L.jsx)(Ew,{children:i}),children:(0,L.jsx)(yH,{phase:t,form:n,onChange:c})};return e===`card`?(0,L.jsx)(uk,{...d}):(0,L.jsx)(oO,{...d})}function xH(e){return(0,L.jsx)(bH,{...e,surface:`card`})}function SH(e){return(0,L.jsx)(bH,{...e,surface:`rail`})}function CH({onBrandClick:e,...t}){return(0,L.jsx)(vH,{onBrandClick:e,auth:(0,L.jsx)(SH,{...t}),mobileAuth:(0,L.jsx)(xH,{...t})})}function wH({nextKind:e,actionPending:t,loginForm:n,onRetry:r,onAccept:i,onOpen:a}){if(e===`loading`)return(0,L.jsx)(J,{type:`button`,disabled:!0,children:`Loading`});if(e===`error`)return(0,L.jsx)(J,{type:`button`,onClick:r,children:`Retry`});if(e===`invalid_or_expired`)return(0,L.jsxs)(J,{type:`button`,disabled:!0,children:[(0,L.jsx)(Wx,{"aria-hidden":`true`}),`Invalid invite`]});if(e===`login_required`){let e=n?.phase===`profile`?`Save name`:n?.phase===`code`?`Verify email code`:`Send code`,r=n?.phase===`profile`?`Saving`:n?.phase===`code`?`Verifying`:`Sending code`;return(0,L.jsxs)(pw,{type:`submit`,disabled:t||n?.submitDisabled===!0,children:[t?r:e,(0,L.jsx)(Vb,{"aria-hidden":`true`})]})}return e===`accept_join`?(0,L.jsxs)(pw,{type:`button`,disabled:t,onClick:i,children:[t?`Joining`:`Accept and open workspace`,(0,L.jsx)(Vb,{"aria-hidden":`true`})]}):e===`open_workspace`?(0,L.jsxs)(pw,{type:`button`,disabled:t,onClick:a,children:[t?`Opening`:`Open workspace`,(0,L.jsx)(Vb,{"aria-hidden":`true`})]}):(0,L.jsxs)(J,{type:`button`,disabled:!0,children:[(0,L.jsx)(Dx,{"aria-hidden":`true`}),`Host offline`]})}function TH({nextKind:e,error:t}){return e===`loading`?null:e===`error`?(0,L.jsx)(Yx,{tone:`error`,icon:(0,L.jsx)(Wx,{"aria-hidden":`true`}),children:t??`Invite unavailable`}):e===`invalid_or_expired`?(0,L.jsx)(Yx,{tone:`error`,icon:(0,L.jsx)(Wx,{"aria-hidden":`true`}),children:`Join token is invalid or expired`}):e===`host_offline`?(0,L.jsx)(Yx,{tone:`warning`,icon:(0,L.jsx)(Dx,{"aria-hidden":`true`}),children:`Host is offline`}):null}function EH({projectName:e,description:t,hostLabel:n,hostOnline:r,nextKind:i,accountLabel:a,membershipLabel:o,actionPending:s,error:c,loginForm:l,onBrandClick:u,onRetry:d,onAccept:f,onOpen:p}){let m=i===`login_required`&&l!==void 0;return(0,L.jsx)(_H,{label:`Join project`,onBrandClick:u,children:(0,L.jsxs)(uk,{title:`Join project`,description:t,onSubmit:e=>{if(m){l.onSubmit(e);return}e.preventDefault()},action:(0,L.jsx)(wH,{nextKind:i,actionPending:m?l.pending:s,...m?{loginForm:l}:{},onAccept:f,onOpen:p,...d===void 0?{}:{onRetry:d}}),secondaryAction:m&&l.phase===`code`&&l.onBack!==void 0?(0,L.jsxs)(J,{type:`button`,onClick:l.onBack,disabled:l.pending,children:[(0,L.jsx)(Bb,{"aria-hidden":`true`}),`Change email`]}):void 0,feedback:(0,L.jsxs)(L.Fragment,{children:[m&&l.error!==null?(0,L.jsx)(Ew,{children:l.error}):null,(0,L.jsx)(TH,{nextKind:i,error:c}),c===null||i===`error`?null:(0,L.jsx)(Ew,{children:c})]}),children:[(0,L.jsx)(dk,{projectName:e,hostLabel:n,hostOnline:r}),m?(0,L.jsx)(L.Fragment,{children:(0,L.jsx)(yH,{phase:l.phase,form:l.form,onChange:l.onChange})}):(0,L.jsx)(fk,{label:a===null?`Account`:`Signed in as`,value:a??`Sign in required`,action:o===null?null:(0,L.jsx)(`span`,{className:`quiet-link`,children:o})})]})})}var DH=`http://127.0.0.1:4370`;function OH(){let e=`https://tutti.now`;return typeof e==`string`?e:typeof window<`u`&&window.location.port!==`4372`?window.location.origin:DH}function kH(e){try{return new URL(e,OH()).toString()}catch{return e}}function AH({avatar:e,label:t,plain:n=!1,online:r=!1}){return(0,L.jsx)(VC,{label:t,tone:e.color,plain:n,online:r,initials:e.initials,...e.kind===`image`?{imageUrl:kH(e.image_url)}:{}})}function jH({label:e=`Tutti`}){return(0,L.jsx)(VC,{label:e,tone:`green`,className:`is-system`,imageUrl:AR,icon:(0,L.jsx)(Ub,{"aria-hidden":`true`})})}function MH({message:e}){return e.avatarKind===`tutti`?(0,L.jsx)(jH,{label:e.author}):(0,L.jsx)(AH,{avatar:e.avatar??{kind:`initials`,initials:pg(e.author),color:`blue`},label:e.author})}function NH({supportingContent:e,state:t,onRetry:n,onBrandClick:r,onSelectTab:i,onSelectTask:a,onCloseTask:o,onSubmitScratchpad:s,onRoundDraftChange:c,onSendRoundMessage:l,onSubmitRound:u,onDecideApproval:d,onOpenInBrowser:f,browserOpenUrl:p,onBrowserOpenLinkClick:m,scratchpadSubmitPending:h=!1,scratchpadSyncPending:g=!1,scratchpadActionsDisabled:_=!1,roundSendPending:v=!1,roundSubmitPending:y=!1,approvalDecisionPending:b=!1,browserOpenPending:x=!1}){let[S,C]=(0,I.useState)(!1);if(t.kind===`loading`)return(0,L.jsx)(gL,{brand:(0,L.jsx)(NR,{label:`Reload Tutti project`,onClick:r}),projectName:`Opening Tutti`,meta:`Feishu project`,children:(0,L.jsx)(Xx,{count:3})});if(t.kind===`error`)return(0,L.jsx)(gL,{brand:(0,L.jsx)(NR,{label:`Reload Tutti project`,onClick:r}),projectName:`Tutti isn’t available`,meta:`Feishu project`,onRefresh:n,children:(0,L.jsx)(Yx,{icon:(0,L.jsx)(Wx,{"aria-hidden":`true`}),tone:`warning`,details:(0,L.jsx)(PR,{diagnostic:t,showMessage:!1}),children:t.message})});let w=t.activeClarification??null,T=t.clarificationMessages??[],E=t.activeApproval??null;return(0,L.jsxs)(gL,{activeTab:t.activeTab,actions:w!==null||E!==null?(0,L.jsx)(J,{className:`embedded-project-status-action`,"aria-label":`Review required input`,onClick:()=>C(!0),children:(0,L.jsx)(mw,{tone:t.projectStatus.tone??`neutral`,children:t.projectStatus.label})}):(0,L.jsx)(mw,{tone:t.projectStatus.tone??`neutral`,children:t.projectStatus.label}),brand:(0,L.jsx)(NR,{label:`Reload Tutti project`,onClick:r}),projectName:t.projectName,showProjectName:!1,refreshing:t.refreshing,onRefresh:n,onSelectTab:i,children:[t.refreshMessage===void 0?null:(0,L.jsx)(`div`,{className:`embedded-project-refresh-message`,role:`status`,children:(0,L.jsx)(PR,{diagnostic:t.refreshMessage})}),(0,L.jsxs)(vL,{open:S&&(w!==null||E!==null),title:`Needs your input`,onClose:()=>C(!1),children:[w===null?null:(0,L.jsx)(EL,{title:w.title,summary:w.summary,request:w.request,contextLabel:w.ownerLabel,messages:T.map(e=>({id:e.id,author:e.author,body:e.body,time:e.time,avatar:(0,L.jsx)(MH,{message:e})})),replyCount:w.answerRevision??T.filter(e=>e.isClarificationAnswer??e.messageKind===`user_text`).length,draft:t.roundDraft??``,defaultOpen:!0,readOnly:w.status!==`writable`,status:w.status===`writable`?`pending`:`done`,statusLabel:w.status===`writable`?`needs input`:`submitted`,sendPending:v,submitPending:y,onDraftChange:e=>c?.(e),onSendMessage:e=>{e.preventDefault(),l?.()},onSubmitRound:()=>u?.()}),E===null?null:(0,L.jsx)(AL,{title:E.title,summary:E.summary,...E.reason===void 0?{}:{reason:E.reason},...E.detail===void 0?{}:{detail:E.detail,...E.detailLabel===void 0?{}:{detailLabel:E.detailLabel},...E.detailCode===void 0?{}:{detailCode:E.detailCode}},status:E.status,statusLabel:E.statusLabel,decisions:E.decisions,decisionPending:b,...E.resolutionLabel===void 0?{}:{resolutionLabel:E.resolutionLabel},onDecide:e=>d?.(E.approvalId,e)})]}),t.activeTab===`timeline`?(0,L.jsx)(`div`,{className:`embedded-project-supporting`,children:e}):t.activeTab===`project`?(0,L.jsx)(`div`,{className:`embedded-project-stack`,children:(0,L.jsx)(dL,{...t.scratchpad,presentation:`document`,compact:!0,empty:(0,L.jsx)(Yx,{children:`Start with a conversation in the group.`}),showSubmitAction:!0,submitPending:h,syncPending:g,actionsDisabled:_||s===void 0,...s===void 0?{}:{onSubmitScratchpad:s},onOpenCompiledTask:a})}):t.activeTab===`work`?(0,L.jsx)(`div`,{className:`embedded-project-work`,children:(0,L.jsx)(zL,{layout:`sheet`,detailOpen:t.worklist.detailOpen??!1,...o===void 0?{}:{onCloseDetail:o},modules:t.worklist.modules,taskCount:t.worklist.taskCount,...t.worklist.detail===void 0?{}:{detail:t.worklist.detail},...t.worklist.detailPlaceholder===void 0?{}:{detailPlaceholder:t.worklist.detailPlaceholder},empty:(0,L.jsx)(Yx,{children:`No tasks yet.`}),onSelectTask:a})}):(0,L.jsxs)(`div`,{className:`embedded-project-artifacts`,children:[(0,L.jsx)(YL,{presentation:`preview`,state:t.artifacts,error:t.artifactError??null}),(0,L.jsx)(`footer`,{className:`embedded-project-artifact-actions`,children:f===void 0?void 0:p===void 0?(0,L.jsxs)(dw,{"aria-label":x?`Opening in browser`:`Open in browser`,className:`embedded-project-browser-action`,disabled:x,onClick:f,type:`button`,variant:`quiet`,children:[x?(0,L.jsx)(px,{"aria-hidden":`true`,className:`is-spinning`}):(0,L.jsx)(tx,{"aria-hidden":`true`}),(0,L.jsx)(`span`,{children:x?`Opening`:`Open in browser`})]}):(0,L.jsx)(dw,{asChild:!0,className:`embedded-project-browser-action`,variant:`quiet`,children:(0,L.jsxs)(`a`,{"aria-label":`Open in browser`,href:p,onClick:m,rel:`noopener noreferrer`,target:`_blank`,children:[(0,L.jsx)(tx,{"aria-hidden":`true`}),(0,L.jsx)(`span`,{children:`Open in browser`})]})})})]})]})}function PH(e){let{form:t,onChange:n,pending:r,models:i}=e;return(0,L.jsx)(kk,{title:`Configure your model`,description:(0,L.jsxs)(L.Fragment,{children:[`Use an`,` `,(0,L.jsx)(Dw,{href:lH,icon:(0,L.jsx)(Yb,{"aria-hidden":`true`}),children:`OpenAI Responses API`}),` `,`endpoint. Credentials stay on this computer.`]}),children:(0,L.jsxs)(Ek,{children:[(0,L.jsx)(Tw,{label:`Base URL`,children:(0,L.jsx)(xw,{type:`url`,autoComplete:`off`,disabled:r,value:t.baseUrl,onChange:e=>n({baseUrl:e.target.value}),placeholder:`Enter Provider Base URL`})}),(0,L.jsx)(Tw,{label:`API key`,children:(0,L.jsx)(xw,{type:`password`,autoComplete:`off`,disabled:r,value:t.apiKey,onChange:e=>n({apiKey:e.target.value}),placeholder:`Enter API key`})}),(0,L.jsx)(Tw,{label:`Model`,children:(0,L.jsx)(Cw,{"aria-label":`Model`,autoComplete:`off`,value:t.model,options:i,maxVisibleOptions:8,disabled:r,onValueChange:e=>n({model:e}),placeholder:`Choose or enter a model`})}),(0,L.jsx)(J,{type:`button`,disabled:r||!t.baseUrl.trim()||!t.apiKey.trim(),onClick:e.onDiscover,children:r?`Checking models`:`Check models`})]})})}function FH({pending:e,onSignOut:t}){return(0,L.jsxs)(J,{type:`button`,onClick:t,disabled:e,children:[(0,L.jsx)(hx,{"aria-hidden":`true`}),`Sign out`]})}function IH(e){return e.existingProjectId===void 0?[`surface`,`folder`,...e.surface===`standalone`?[`details`]:[],`provider`,...e.accessMode===`byok`?[`model`]:[]]:[`provider`]}function LH(e,t){switch(e){case`folder`:return t.workspacePath.trim()!==``;case`details`:return t.displayName.trim()!==``;case`model`:return!!(t.baseUrl.trim()&&t.apiKey.trim()&&t.model.trim());default:return!0}}function RH(e){return(e.status===`online`||e.status===`reconnecting`)&&(e.provider_status===`configured`||e.provider_status===`managed`)}function zH(e){return(e.status===`stopped`||e.status===`stale`||e.status===`relay-unavailable`)&&(e.provider_status===`configured`||e.provider_status===`managed`)}function BH(e){return e.status===`online`?`online`:e.status===`reconnecting`?`connecting`:`stopped`}function VH(e,t){let n=Date.parse(e.activity_at??``),r=Date.parse(t.activity_at??``),i=Number.isNaN(n)?0:n;return(Number.isNaN(r)?0:r)-i||e.display_name.localeCompare(t.display_name,`en`)||e.project_id.localeCompare(t.project_id,`en`)}function HH({project:e,pending:t,onLaunch:n,onOpen:r,onCopyInvite:i,onConnectFeishu:a,onStop:o,onAuthorize:s}){return e.status===`online`||e.status===`reconnecting`?e.surface_profile.kind===`feishu`?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(pw,{type:`button`,disabled:t,onClick:a,children:[(0,L.jsx)(dx,{"aria-hidden":`true`}),`Connect`]}),(0,L.jsxs)(J,{type:`button`,disabled:t,onClick:o,children:[(0,L.jsx)(Bx,{"aria-hidden":`true`}),`Stop`]})]}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(pw,{type:`button`,disabled:t||e.open_url===void 0,onClick:r,children:[(0,L.jsx)(Vb,{"aria-hidden":`true`}),`Open`]}),(0,L.jsxs)(J,{type:`button`,disabled:t,onClick:i,children:[(0,L.jsx)(dx,{"aria-hidden":`true`}),`Invite`]}),(0,L.jsxs)(J,{type:`button`,disabled:t,onClick:o,children:[(0,L.jsx)(Bx,{"aria-hidden":`true`}),`Stop`]})]}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(J,{type:`button`,disabled:t||!zH(e),onClick:n,children:[(0,L.jsx)(Ax,{"aria-hidden":`true`}),`Resume`]}),s===void 0||e.relay_project_ref===void 0?null:(0,L.jsx)(J,{type:`button`,disabled:t,onClick:s,children:e.provider_status===`managed`?`Authorize again`:`Use Tutti trial`})]})}function UH({createDisabled:e,packageUpdateAction:t,projectsLoading:n,onCreate:r,onPackageUpdate:i,onRefresh:a}){return(0,L.jsxs)(L.Fragment,{children:[t===void 0?null:(0,L.jsx)(mk,{description:t.description,descriptionId:`local-console-package-update-description`,disabledTrigger:t.disabled,"aria-live":`polite`,action:(0,L.jsx)(J,{type:`button`,disabled:t.disabled,onClick:i,children:t.label})}),(0,L.jsx)(fw,{type:`button`,label:`Refresh projects`,icon:(0,L.jsx)(kx,{"aria-hidden":`true`}),disabled:n,onClick:a}),(0,L.jsxs)(pw,{type:`button`,disabled:e,onClick:r,children:[(0,L.jsx)(Tx,{"aria-hidden":`true`}),`New project`]})]})}function WH({version:e,accountName:t,projectCenterHref:n,form:r,models:i,projects:a,projectsLoading:o,sessionLoading:s,sessionError:c,createOpen:l,createStep:u,modelDiscoveryPending:d,launchPending:f,projectActionPending:p,signOutPending:m,packageUpdateAction:h,onChange:g,onCreateOpenChange:_,onCreateSubmit:v,onCreateBack:y,onChooseFolder:b,onRefresh:x,onLaunchExisting:S,onAuthorizeExisting:C,onOpenProject:w,onCopyInvite:T,onConnectFeishu:E,onFeishuConnectionOpenChange:D,onCopyFeishuCommand:O,onStopProject:k,onPackageUpdate:A,onSignOut:ee,feishuConnection:te,managedPrepared:j=!1,managedStage:ne,creditNote:M,onDiscoverModels:N,renderSurface:P}){let re=IH(r),ie=j,ae=re.indexOf(u),oe=ae===re.length-1,se=d||f,ce=LH(u,r),le=a.filter(RH).sort(VH),ue=a.filter(zH).sort(VH),de=[...le,...ue],fe=e=>(0,I.createElement)(jk,{title:e.display_name,status:BH(e),path:e.workspace_path,createdLabel:bz(e.created_at),...e.provider_model?.trim()?{modelLabel:e.provider_model.trim()}:{},...e.surface_profile.kind===`feishu`?{surfaceLabel:`Feishu`}:{},actions:(0,L.jsx)(HH,{project:e,pending:p===e.project_id,onLaunch:()=>S(e),onOpen:()=>w(e),onCopyInvite:()=>T(e),onConnectFeishu:()=>E(e),onStop:()=>k(e),...C===void 0?{}:{onAuthorize:()=>C(e)}}),key:e.project_id}),pe=(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(Tk,{open:l,onOpenChange:_,steps:re.map(e=>e[0].toUpperCase()+e.slice(1)),currentStep:Math.max(0,ae),closeDisabled:se,explicitCloseOnly:!0,onSubmit:v,backAction:ie||ae===0?void 0:(0,L.jsxs)(J,{type:`button`,disabled:se,onClick:y,children:[(0,L.jsx)(Bb,{"aria-hidden":`true`}),`Back`]}),action:(0,L.jsxs)(pw,{type:`submit`,disabled:!ce||se||s||ne===`checking`,children:[oe?(0,L.jsx)(Ax,{"aria-hidden":`true`}):(0,L.jsx)(Vb,{"aria-hidden":`true`}),ie?ne===`checking`?`Checking access`:ne===`validating`?`Checking model access`:ne===`launching`?`Starting project`:`Check and continue`:oe?f?`Preparing`:`Launch and continue`:r.existingProjectId===void 0?`Continue`:`Launch and continue`]}),children:[u===`folder`?(0,L.jsx)(kk,{title:`Project folder`,description:`Choose an existing folder on this machine. It can be empty or contain an existing project.`,children:(0,L.jsxs)(Dk,{children:[(0,L.jsx)(xw,{"aria-label":`Project folder`,autoComplete:`off`,value:r.workspacePath,onChange:e=>g({workspacePath:e.target.value}),placeholder:`Enter an absolute project folder path`,autoFocus:!0}),(0,L.jsxs)(J,{type:`button`,onClick:b,children:[(0,L.jsx)(ox,{"aria-hidden":`true`}),`Choose folder`]})]})}):null,u===`details`?(0,L.jsx)(kk,{title:`Project details`,description:`Describe what you want to build with this project.`,children:(0,L.jsxs)(Ek,{children:[(0,L.jsx)(Tw,{label:`Project name`,className:`local-console-field-wide`,children:(0,L.jsx)(xw,{autoComplete:`off`,value:r.displayName,maxLength:80,onChange:e=>g({displayName:e.target.value}),placeholder:`Enter a project name`,autoFocus:!0})}),(0,L.jsx)(Tw,{label:`Project description (optional)`,className:`local-console-field-wide`,children:(0,L.jsx)(Sw,{value:r.description,maxLength:160,onChange:e=>g({description:e.target.value}),placeholder:`A short project description helps Tutti produce better code`})})]})}):null,u===`provider`&&!ie?(0,L.jsxs)(L.Fragment,{children:[r.existingProjectId===void 0?null:(0,L.jsxs)(`p`,{children:[`Enable trial access for `,r.displayName,`. Files and collaboration surface stay unchanged. Switching from a custom endpoint starts new model sessions; existing sessions are not moved to another model.`]}),(0,L.jsx)(GO,{value:r.accessMode,onValueChange:e=>g({accessMode:e}),tuttiLogo:(0,L.jsx)(yw,{src:kR}),customIcon:(0,L.jsx)(wx,{"aria-hidden":`true`}),creditNote:M,disabled:se,customDisabled:r.existingProjectId!==void 0}),r.accessMode===`managed`?(0,L.jsx)(GH,{}):null]}):null,u===`model`?(0,L.jsx)(PH,{form:r,models:i,pending:se,onChange:g,onDiscover:N}):null,ie?(0,L.jsx)(kk,{title:`Starting your project`,description:`Tutti will check model access and start this project. If a check fails, your setup is kept here.`,children:(0,L.jsx)(JO,{items:[{label:`Project`,value:r.displayName},{label:`Folder`,value:r.workspacePath,mono:!0},{label:`Model access`,value:`Tutti credit`}]})}):null,u===`surface`&&!ie?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(KO,{value:r.surface,disabled:se,onValueChange:e=>g({surface:e}),tuttiLogo:(0,L.jsx)(yw,{src:kR}),feishuIcon:(0,L.jsx)(vx,{"aria-hidden":`true`})}),(0,L.jsx)(`p`,{children:`Each project uses one collaboration surface. This choice cannot be changed later.`})]}):null]}),te===null?null:(0,L.jsx)(yk,{open:!0,onOpenChange:D,projectName:te.projectName,state:te.state,...te.command===void 0?{}:{command:te.command},...te.unavailableMessage===void 0?{}:{unavailableMessage:te.unavailableMessage},onCopyCommand:O})]});return P?P(pe):(0,L.jsx)(gH,{onBrandClick:x,children:(0,L.jsxs)(IC,{children:[(0,L.jsxs)(pk,{className:`local-console-card`,title:`Projects`,accountName:t,accountAction:(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(J,{asChild:!0,children:(0,L.jsx)(`a`,{href:new URL(`/projects?panel=credits`,n).toString(),target:`_blank`,rel:`noopener noreferrer`,children:`Credits`})}),(0,L.jsx)(FH,{pending:m,onSignOut:ee})]}),"aria-label":`Tutti Local Console`,children:[(0,L.jsx)(gk,{items:[{id:`joined`,label:`Your projects`,href:n},{id:`local`,label:`This computer`,href:`/console`,current:!0}],action:(0,L.jsx)(UH,{createDisabled:s||c!==null,projectsLoading:o,onCreate:()=>_(!0),onPackageUpdate:A,onRefresh:x,...h===void 0?{}:{packageUpdateAction:h}})}),(0,L.jsx)(xk,{"aria-label":`Projects on this computer`,children:o||s?(0,L.jsx)(Sk,{"aria-label":`Loading local projects`,children:(0,L.jsx)(Xx,{})}):c===null?de.length===0?(0,L.jsx)(Sk,{children:(0,L.jsx)(Yx,{children:`No available projects on this computer.`})}):de.map(fe):(0,L.jsx)(Sk,{children:(0,L.jsx)(Yx,{children:c})})}),e===void 0?null:(0,L.jsxs)(`footer`,{className:`local-console-version`,"aria-label":`Tutti version ${e}`,children:[`Tutti `,e]})]}),pe]})})}function GH(){return(0,L.jsx)(`p`,{children:`Launching uses your signed-in account's Tutti credit for this team's AI work, including background tasks on this computer. You can revoke access in Account. Test credit only; no payment is enabled.`})}function KH({onBrandClick:e,sessionError:t=null,...n}){let r={...n,error:n.error??t};return(0,L.jsx)(vH,{onBrandClick:e,auth:(0,L.jsx)(SH,{...r}),mobileAuth:(0,L.jsx)(xH,{...r})})}function qH(e,t,n){let r=n.trim().toLocaleLowerCase(`en`),i=e.filter(e=>(t===`account`?e.account!==void 0:e.local!==void 0)&&e.title.toLocaleLowerCase(`en`).includes(r));return{available:i.filter(e=>t===`computer`||e.account?.hostStatus===`online`),unavailable:i.filter(e=>t===`account`&&e.account?.hostStatus!==`online`)}}function JH(e,t,n){let r=t.filter(e=>![`workspace-missing`,`workspace-replaced`,`invalid`].includes(e.status)&&(e.provider_status===`configured`||e.provider_status===`managed`)),i=e.map(e=>({key:`account:${e.relayProjectRef}`,title:e.displayName,surface:e.surface??`standalone`,account:e})),a=[];for(let e of r){let t=i.filter(t=>e.relay_origin===n&&e.relay_project_ref!==void 0&&t.account?.relayProjectRef===e.relay_project_ref&&t.surface===e.surface_profile.kind),o=r.filter(t=>t.relay_origin===e.relay_origin&&t.relay_project_ref===e.relay_project_ref);t.length===1&&o.length===1?t[0].local=e:a.push({key:`local:${e.project_id}`,title:e.display_name,surface:e.surface_profile.kind,local:e})}return[...i,...a]}function YH(e){let[t,n]=(0,I.useState)(!1),[r,i]=(0,I.useState)(``),[a,o]=(0,I.useState)(null),[s,c]=(0,I.useState)(!1),l=e.local,u=l!==void 0&&l.sessionError===null,d=t&&u;(0,I.useEffect)(()=>{u||(n(!1),i(``),o(null),c(!1))},[u]);let f=e=>{e!==d&&(n(e),i(``),c(!1),o(null))},{available:p,unavailable:m}=qH(JH(e.projects,u?l.projects:[],e.relayOrigin??``),d?`computer`:`account`,r),h=[...p,...s?m:[]],g=h.find(e=>e.key===a)??h[0],_=e=>{f(!0),o(e.key)},v=t=>{if(d&&t.local&&l){let e=t.local,n=l.projectActionPending!==null||l.launchPending;return e.status===`online`||e.status===`reconnecting`?t.surface===`feishu`?(0,L.jsx)(J,{type:`button`,disabled:n,onClick:()=>l.onConnectFeishu(e),children:`Connect`}):(0,L.jsx)(J,{type:`button`,disabled:n||!e.open_url,onClick:()=>l.onOpenProject(e),children:`Open`}):(0,L.jsx)(J,{type:`button`,disabled:n,onClick:()=>l.onLaunchExisting(e),children:`Resume`})}return t.account?.canOpen?(0,L.jsx)(J,{type:`button`,disabled:e.openPending,onClick:()=>e.onOpenProject(t.account.relayProjectRef),children:`Open`}):t.surface===`feishu`?(0,L.jsx)(`span`,{children:`In Feishu`}):null},y=e=>(0,L.jsx)(nk,{title:e.title,status:d?e.local?.status===`online`?`online`:e.local?.status===`reconnecting`?`connecting`:`stopped`:e.account.hostStatus,meta:`${e.surface===`feishu`?`Feishu`:`Tutti Workspace`} · ${e.account?.membershipLabel??`Local only`}`,local:!d&&!!e.local,selected:e.key===g?.key,onSelect:()=>o(e.key),action:v(e)},e.key);return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(QO,{brand:(0,L.jsx)(NR,{onClick:e.onBrandClick}),account:e.accountActions??(e.account?(0,L.jsx)(FH,{pending:e.logoutPending,onSignOut:e.onLogout}):null),actions:(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(J,{type:`button`,onClick:()=>e.onJoinOpenChange(!0),children:`Join project`}),u?(0,L.jsxs)(pw,{type:`button`,disabled:l.sessionLoading,onClick:()=>l.onCreateOpenChange(!0),children:[(0,L.jsx)(Tx,{"aria-hidden":`true`}),`New project`]}):(0,L.jsx)(pw,{asChild:!0,children:(0,L.jsxs)(`a`,{href:e.localScopeHref,onClick:e.onRequestNewProject??e.onLocalScopeSelect,children:[(0,L.jsx)(Tx,{"aria-hidden":`true`}),`New project`]})})]}),toolbar:{local:d,connected:u,onLocalChange:f,search:r,onSearchChange:e=>{i(e),c(!!e.trim())}},rail:(0,L.jsx)(ik,{state:u?`connected`:e.connectionState===`lost`?`lost`:`disconnected`,...l?.version?{version:l.version}:{},children:u?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(tk,{children:[(0,L.jsx)(fw,{type:`button`,label:`Refresh projects`,icon:(0,L.jsx)(kx,{"aria-hidden":`true`}),disabled:l.projectsLoading,onClick:l.onRefresh}),(0,L.jsx)(J,{type:`button`,onClick:e.onDisconnect,children:`Disconnect`})]}),l.packageUpdateAction?(0,L.jsx)(J,{type:`button`,disabled:l.packageUpdateAction.disabled,onClick:l.onPackageUpdate,title:l.packageUpdateAction.description,children:l.packageUpdateAction.label}):null]}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(pw,{asChild:!0,children:(0,L.jsx)(`a`,{href:e.localScopeHref,onClick:e.onLocalScopeSelect,children:`Connect this computer`})}),(0,L.jsx)(J,{asChild:!0,children:(0,L.jsx)(`a`,{href:`tutti://projects`,children:`Open Local Console`})})]})}),children:[(d?l.projectsLoading:e.loading)?(0,L.jsx)(Xx,{}):null,!d&&e.error?(0,L.jsx)(Yx,{tone:`error`,children:e.error}):null,!(d?l.projectsLoading:e.loading)&&p.length+m.length===0?(0,L.jsx)(Yx,{children:r?`No matching projects.`:`No projects yet.`}):null,p.map(y),m.length>0?(0,L.jsx)(ek,{count:m.length,open:s,onOpenChange:c,children:m.map(y)}):null,!d&&e.truncated?(0,L.jsx)(Yx,{children:`Only your 100 most recent account projects are shown.`}):null,g?(0,L.jsxs)(rk,{title:g.title,actions:(0,L.jsxs)(L.Fragment,{children:[d&&g.local&&l?(0,L.jsx)(HH,{project:g.local,pending:l.projectActionPending!==null||l.launchPending,onLaunch:()=>l.onLaunchExisting(g.local),onOpen:()=>l.onOpenProject(g.local),onCopyInvite:()=>l.onCopyInvite(g.local),onConnectFeishu:()=>l.onConnectFeishu(g.local),onStop:()=>l.onStopProject(g.local),...l.onAuthorizeExisting?{onAuthorize:()=>l.onAuthorizeExisting(g.local)}:{}}):null,!d&&g.local?(0,L.jsx)(J,{type:`button`,onClick:()=>_(g),children:`Manage on this computer`}):null,g.account?(0,L.jsx)(J,{type:`button`,onClick:()=>e.onProjectDetails?.(g.account),children:`Project settings`}):null]}),children:[(0,L.jsx)(`p`,{children:g.surface===`feishu`?`Collaboration happens in your Feishu group.`:`Your shared Tutti workspace.`}),d&&g.local?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`p`,{children:g.local.workspace_path}),(0,L.jsx)(`p`,{children:g.local.status===`online`||g.local.status===`reconnecting`?`Running on this computer`:`Stopped on this computer`})]}):null]}):null]}),e.localDialogs,(0,L.jsx)(wk,{open:e.joinOpen,onOpenChange:e.onJoinOpenChange,inputLabel:`Invitation link or message`,placeholder:`Paste an invitation link or message`,value:e.joinLinkForm.value,error:e.joinLinkForm.error,onValueChange:e.joinLinkForm.onChange,"aria-label":`Join a project`,onSubmit:t=>{t.preventDefault(),e.joinLinkForm.onSubmit()}}),(0,L.jsx)(vk,{open:e.localHandoffOpen,onOpenChange:e.onLocalHandoffOpenChange,status:e.localHandoffStatus,description:e.localHandoffStatus===`failed`?`Connection was not completed. Allow local network access if prompted, or update Tutti and try again. Open Local Console is available as a fallback.${e.connectionDiagnostic?` Diagnostic: ${e.connectionDiagnostic}`:``}`:`Open Tutti when prompted. Allow this page to connect to your local network if your browser asks.`,command:`npm install -g @xfey/tutti && tutti`,onCopyCommand:e.onCopyLaunchCommand,retryHref:e.localHandoffRetryHref,onRetry:e.onLocalScopeSelect})]})}function XH({form:e,pending:t,tokenMissing:n,onChange:r}){return(0,L.jsxs)(`div`,{className:`form-stack`,children:[(0,L.jsx)(Tw,{label:`Project name`,children:(0,L.jsx)(xw,{autoComplete:`off`,disabled:t||n,type:`text`,value:e.projectName,onChange:e=>r({projectName:e.target.value}),placeholder:`tutti-default`})}),(0,L.jsx)(Tw,{label:`OpenAI API key`,children:(0,L.jsx)(xw,{autoComplete:`off`,disabled:t||n,type:`password`,value:e.apiKey,onChange:e=>r({apiKey:e.target.value}),placeholder:`sk-...`})}),(0,L.jsx)(Tw,{label:`Base URL`,children:(0,L.jsx)(xw,{autoComplete:`off`,disabled:t||n,type:`url`,value:e.baseUrl,onChange:e=>r({baseUrl:e.target.value}),placeholder:`https://api.openai.com/v1`})}),(0,L.jsx)(Tw,{label:`Default model`,children:(0,L.jsx)(xw,{autoComplete:`off`,disabled:t||n,type:`text`,value:e.defaultModel,onChange:e=>r({defaultModel:e.target.value}),placeholder:`gpt-5.5`})})]})}function ZH({form:e,statusLabel:t,configured:n,loading:r,pending:i,openProjectPending:a=!1,tokenMissing:o,error:s,success:c,onChange:l,onSubmit:u,onRetry:d,onBrandClick:f}){let p=i||a;return(0,L.jsx)(_H,{label:`Project setup`,onBrandClick:f,children:(0,L.jsxs)(uk,{title:`Project setup`,description:`Configure the provider for this project.`,size:`wide`,onSubmit:u,action:o?(0,L.jsxs)(J,{type:`button`,disabled:!0,children:[(0,L.jsx)(Wx,{"aria-hidden":`true`}),`Missing token`]}):s!==null&&r?(0,L.jsx)(J,{type:`button`,onClick:d,children:`Retry`}):a?(0,L.jsxs)(J,{type:`button`,disabled:!0,children:[(0,L.jsx)(Vb,{"aria-hidden":`true`}),`Opening project`]}):(0,L.jsxs)(pw,{type:`submit`,disabled:i||e.apiKey.trim()===``||e.projectName.trim()===``,children:[i?`Saving`:`Save provider`,(0,L.jsx)(Mx,{"aria-hidden":`true`})]}),feedback:(0,L.jsxs)(L.Fragment,{children:[c===null?null:(0,L.jsx)(Yx,{icon:(0,L.jsx)(Jb,{"aria-hidden":`true`}),children:c}),s===null?null:(0,L.jsx)(Ew,{children:s})]}),children:[(0,L.jsx)(dk,{projectName:`OpenAI provider`,hostLabel:t,hostOnline:n,members:(0,L.jsx)(ux,{"aria-hidden":`true`})}),(0,L.jsx)(fk,{label:`Status`,value:r?`Loading`:t,action:n?(0,L.jsx)(Jb,{"aria-hidden":`true`}):null}),(0,L.jsx)(XH,{form:e,pending:p,tokenMissing:o,onChange:l})]})})}function QH({tone:e}){return e===`pending`?(0,L.jsx)(Wx,{"aria-hidden":`true`}):e===`failed`?(0,L.jsx)(Xb,{"aria-hidden":`true`}):e===`done`?(0,L.jsx)(Gb,{"aria-hidden":`true`}):(0,L.jsx)(px,{"aria-hidden":`true`})}function $H({members:e}){return e===void 0||e.length===0?null:(0,L.jsx)(HC,{"aria-label":`Members`,children:e.map(e=>(0,L.jsx)(AH,{avatar:e.avatar,label:e.displayName},e.key))})}function eU({activePage:e,statusShortcuts:t,unread:n,artifactSignal:r,mobileContext:i,rail:a,children:o,onOpenProjectCenter:s,onOpenChat:c,onOpenWorklist:l,onOpenReferences:u,onOpenArtifacts:d,onOpenSkills:f,onOpenTimeline:p,onOpenSettings:m,onActivateStatusShortcut:h,getStatusShortcutAriaControls:g}){let _=e!==`chat`&&n?.chat===!0,v=e!==`worklist`&&n?.worklist===!0,y=r?.status===`live`,b=e!==`references`&&n?.references===!0,x=e!==`skills`&&n?.skills===!0;return(0,L.jsx)(RC,{children:(0,L.jsx)(zC,{...a===void 0?{}:{rail:a},children:(0,L.jsx)(BC,{className:`is-headerless`,sidebar:(0,L.jsxs)(Ow,{brand:(0,L.jsx)(MR,{...s===void 0?{}:{onClick:s}}),mobileTitle:i.title,...i.meta===void 0?{}:{mobileMeta:i.meta},...i.action===void 0?{}:{mobileAction:i.action},...t.length===0?{}:{status:t.map(e=>(0,I.createElement)(jw,{icon:(0,L.jsx)(QH,{tone:e.tone}),label:e.label,tone:e.tone,onClick:()=>h?.(e),...g?.(e)===void 0?{}:{"aria-controls":g(e)},key:e.key}))},footer:(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(fH,{}),(0,L.jsx)(Aw,{icon:(0,L.jsx)(Fx,{"aria-hidden":`true`}),label:`Settings`,active:e===`settings`,onClick:e===`settings`?void 0:m})]}),children:[(0,L.jsx)(Aw,{icon:(0,L.jsx)(VI,{"aria-hidden":`true`}),label:`Chat`,active:e===`chat`,badge:_?{label:`Unread messages`}:!1,onClick:e===`chat`?void 0:c}),(0,L.jsx)(Aw,{icon:(0,L.jsx)(fx,{"aria-hidden":`true`}),label:`Worklist`,active:e===`worklist`,badge:v?{label:`Unread worklist updates`}:!1,onClick:e===`worklist`?void 0:l}),(0,L.jsx)(Aw,{icon:(0,L.jsx)(bx,{"aria-hidden":`true`}),label:`Artifacts`,active:e===`artifacts`,badge:y?{label:`Live preview available`,text:`Live`,variant:`pill`}:!1,onClick:e===`artifacts`?void 0:d}),(0,L.jsx)(Aw,{icon:(0,L.jsx)(ix,{"aria-hidden":`true`}),label:`References`,active:e===`references`,badge:b?{label:`New reference files`}:!1,onClick:e===`references`?void 0:u}),(0,L.jsx)(Aw,{icon:(0,L.jsx)(Rx,{"aria-hidden":`true`}),label:`Skills`,active:e===`skills`,badge:x?{label:`New skill updates`}:!1,onClick:e===`skills`?void 0:f}),(0,L.jsx)(Aw,{icon:(0,L.jsx)(Wb,{"aria-hidden":`true`}),label:`Timeline`,active:e===`timeline`,onClick:e===`timeline`?void 0:p})]}),children:o})})})}function tU(){return(0,L.jsx)(vw,{src:kR,className:`empty-state-brand-logo`})}function nU(e){return(0,L.jsx)(Yx,{watermark:(0,L.jsx)(tU,{}),...e})}var rU=`tutti.execution-score-themes.v1`,iU=40,aU={assignments:[],bag:[]};function oU(){return{assignments:[],bag:[]}}function sU(){try{return typeof window>`u`?null:window.sessionStorage}catch{return null}}function cU(e,t){if(typeof e!=`object`||!e)return null;let n=e;if(!Array.isArray(n.assignments)||!Array.isArray(n.bag))return null;let r=n.assignments.filter(e=>typeof e==`object`&&!!e&&typeof e.identity==`string`&&t.has(String(e.themeId))),i=n.bag.filter(e=>typeof e==`string`&&t.has(e)),a=typeof n.recent==`string`&&t.has(n.recent)?n.recent:void 0;return{assignments:r,bag:i,...a===void 0?{}:{recent:a}}}function lU(e,t){if(e===null)return aU;try{let n=e.getItem(rU);return n===null?oU():cU(JSON.parse(n),t)??oU()}catch{return aU}}function uU(e,t){if(aU=t,e!==null)try{e.setItem(rU,JSON.stringify(t))}catch{}}function dU(e,t,n){let r=e.map(e=>e.id);for(let e=r.length-1;e>0;--e){let t=Math.min(e,Math.max(0,Math.floor(n()*(e+1))));[r[e],r[t]]=[r[t],r[e]]}if(r.length>1&&r[0]===t){let e=r.findIndex(e=>e!==t);[r[0],r[e]]=[r[e],r[0]]}return r}function fU(e,t={}){let n=t.themes??MC;if(n.length===0)throw Error(`Execution score themes are unavailable`);let r=new Map(n.map(e=>[e.id,e])),i=new Set(r.keys()),a=t.storage===void 0?sU():t.storage,o=lU(a,i),s=o.assignments.find(t=>t.identity===e),c=s===void 0?void 0:r.get(s.themeId);if(c!==void 0)return c;let l=t.random??Math.random,u=o.bag.length>0?[...o.bag]:dU(n,o.recent,l),d=u.shift(),f=d===void 0?void 0:r.get(d);if(f===void 0)throw Error(`Execution score themes are unavailable`);return uU(a,{assignments:[...o.assignments,{identity:e,themeId:f.id}].slice(-iU),bag:u,recent:f.id}),f}function pU(e){return`round-card-${e}`}function mU(e){return`approval-card-${e}`}function hU(e){return`chat-message-${e}`}var gU=`workspace-scratchpad`,_U=720,vU=80,yU=160,bU=96,xU=160,SU=2;function CU(e){return e.completionSource?.activityRef??e.completionSource?.workflowRef??e.completionSource?.taskId??e.key}function wU({progress:e}){let t=CU(e),[n]=(0,I.useState)(()=>fU(t)),r=(0,I.useRef)(t),i=(0,I.useRef)(e.tone),[a,o]=(0,I.useState)(null);if((0,I.useEffect)(()=>{let n=r.current,a=i.current;if(r.current=t,i.current=e.tone,e.tone!==`running`||a===`pending`||n===t){o(null);return}o(t);let s=window.setTimeout(()=>{o(e=>e===t?null:e)},_U);return()=>{window.clearTimeout(s)}},[e.tone,t]),e.tone===`running`||e.tone===`pending`||e.tone===`complete`){let r=e.tone===`running`&&a===t,i=e.steps.find(e=>e.status===`running`||e.status===`pending`)??e.steps.at(-1),o=e.completionTarget?.kind===`task`?`Task completed`:`Procedure completed`,s=e.tone===`complete`?void 0:i?.detail??(e.tone===`pending`?e.summary:void 0),c=e.tone===`complete`?void 0:i?.detailPrefix,l=e.tone===`complete`?void 0:i?.activityLabel,u=e.tone===`complete`?void 0:i?.elapsedLabel,d=e.tone===`complete`?void 0:i?.metrics,f=e.tone===`running`&&i?.id===`implement`&&s!==void 0;return(0,L.jsx)(mC,{stageLabel:r?`Loading the next movement…`:e.tone===`complete`?o:i?.label??e.summary,...r||s===void 0?{}:{stageDetail:s},...r||c===void 0?{}:{stageDetailPrefix:c},...r||l===void 0?{}:{stageActivity:l},...r||!f?{}:{detailMode:`live`},...r||u===void 0?{}:{elapsedLabel:u},...r||d===void 0?{}:{metrics:d},scoreLabel:r?`Loading the next movement score`:e.tone===`complete`?`${o} score cadence`:e.tone===`pending`?`Execution score paused while waiting for input`:`${i?.label??`Execution`} running score using ${n.shortName}`,state:r?`handoff`:e.tone===`complete`?`complete`:e.tone===`pending`?`paused`:`running`,units:n.units,playbackBpm:n.tempo,openingClef:n.clef,keySignatureFifths:n.keySignatureFifths,timeSignature:n.meter})}return(0,L.jsx)(hL,{title:e.title,summary:e.summary,tone:e.tone,steps:e.steps,...e.metaLabel===void 0?{}:{metaLabel:e.metaLabel}})}function TU(e){if(e===void 0)return null;let t=Date.parse(e);return Number.isNaN(t)?null:t}function EU(e,t){if(e===null)return null;let n=TU(e.requestedAt);if(n===null)return t.length;let r=t.findIndex(e=>{let t=TU(e.createdAt);return t!==null&&t>n});return r===-1?t.length:r}function DU(e,{focusSelector:t}={}){let n=typeof document>`u`?null:document.getElementById(e);n!==null&&(n.scrollIntoView({block:`center`}),t!==void 0&&n.querySelector(t)?.focus({preventScroll:!0}))}function OU(e){return e.messageKind===`system_notice`&&e.workflowRef!==void 0&&(e.body.startsWith(`Worklist updated with `)||e.body===`Worklist is already covered by existing tasks.`)}function kU(e,t){if(t===void 0)return;let n=t.label.trim(),r=t.handle?.trim()??n;if(n===``||r===``)return;let i=r.toLocaleLowerCase();e.has(i)||e.set(i,{id:t.id,label:n,handle:r})}function AU({members:e,messages:t,clarificationMessagesByRoundId:n}){let r=new Map;kU(r,{id:`tutti`,label:`Tutti`,handle:`tutti`});for(let t of e)kU(r,{id:t.key,label:t.displayName});for(let e of t)kU(r,{id:`message:${e.author}`,label:e.author,...e.avatarKind===`tutti`?{handle:`tutti`}:{}});for(let e of Object.values(n))for(let t of e)kU(r,{id:`round-message:${t.author}`,label:t.author,...t.avatarKind===`tutti`?{handle:`tutti`}:{}});return[...r.values()]}function jU({message:e}){return e.avatarKind===`tutti`?(0,L.jsx)(jH,{label:e.author}):(0,L.jsx)(AH,{avatar:e.avatar??{kind:`initials`,initials:pg(e.author),color:`blue`},label:e.author,online:e.online})}function MU({projectName:e,projectDescription:t=``,members:n,messages:r,scratchpad:i,executionProgress:a=null,activeApproval:o=null,activeClarification:s,clarificationMessagesByRoundId:c,statusShortcuts:l,unread:u,artifactSignal:d,draft:f,roundDraft:p,sendPending:m,scratchpadSyncPending:h=!1,scratchpadActionsDisabled:g=!1,scratchpadSubmitPending:_=!1,referenceUploadPending:v=!1,focusMessageId:y=null,messageHistoryIdentity:b=`latest`,initialMessagePosition:x=y===null?`latest`:`focus`,hasOlderMessages:S=!1,hasNewerMessages:C=!1,loadingOlderMessages:w=!1,loadingNewerMessages:T=!1,historyConnectedToLatest:E=!0,roundSendPending:D=!1,roundSubmitPending:O=!1,submittedRoundId:k=null,approvalDecisionPending:A=!1,projectNameSaving:ee=!1,projectDescriptionSaving:te=!1,loading:j=!1,unavailable:ne=!1,onDraftChange:M,onMessageFocused:N,onInitialMessagePositioned:P,onLoadOlderMessages:re,onLoadNewerMessages:ie,onJumpToLatest:ae,onUploadReferenceFile:oe,onOpenReferenceFile:se,onRoundDraftChange:ce,onSendMessage:le,onSendRoundMessage:ue,onSubmitRound:de,onDecideApproval:fe,onSubmitScratchpad:pe,onUpdateProjectDisplayName:me,onUpdateProjectDescription:he,onOpenProjectCenter:ge,onOpenWorklist:_e,onOpenWorklistTask:F,onRetryTask:ve,onOpenReferences:ye,onOpenArtifacts:be,onViewArtifactFeedback:xe,onOpenSkills:Se,onOpenTimeline:Ce,onOpenSettings:we,onActivateStatusShortcut:Te}){let[Ee,De]=(0,I.useState)(!1),Oe=(0,I.useRef)(null),ke=(0,I.useRef)(!1),Ae=(0,I.useRef)(null),je=(0,I.useRef)(null),Me=(0,I.useRef)(!0),Ne=(0,I.useRef)(void 0),Pe=(0,I.useRef)(b),Fe=(0,I.useRef)(null),Ie=(0,L.jsx)(rL,{className:`chat-project-title-edit`,value:e,placeholder:`Untitled project`,ariaLabel:`Edit project name`,maxLength:vU,saving:ee,disabled:j,...me===void 0?{}:{onUpdate:me}}),Le=(0,L.jsx)(rL,{className:`chat-project-description-edit`,value:t,placeholder:`Add a project description`,ariaLabel:`Edit project description`,maxLength:yU,allowEmpty:!0,saving:te,disabled:j,...he===void 0?{}:{onUpdate:he}}),Re=s!==null&&r.some(e=>e.id===s.cardMessageId),ze=new Map;for(let e of r)e.clarificationCard!==void 0&&e.workflowRef!==void 0&&ze.set(e.workflowRef,e.clarificationCard.roundId);let Be=new Map;for(let e of r){if(!OU(e)||e.workflowRef===void 0)continue;let t=ze.get(e.workflowRef);t!==void 0&&Be.set(t,{...e,id:`round-result:${e.id}`,messageKind:`agent_text`,author:`Tutti`,avatarKind:`tutti`,online:!1})}let Ve=e=>{let t=c[e]??[],n=Be.get(e);return n===void 0||t.some(e=>e.body===n.body)?t:[...t,n]},He=AU({members:n,messages:r,clarificationMessagesByRoundId:c}),Ue=oe===void 0?void 0:e=>{for(let t of e)oe(t)};(0,I.useLayoutEffect)(()=>{Pe.current!==b&&(Pe.current=b,ke.current=!1,Ae.current=null,Ne.current=void 0)},[b]),(0,I.useLayoutEffect)(()=>{let e=Ae.current;if(e!==null){if(r[0]?.id!==e.firstMessageId){let t=Oe.current;t!==null&&(t.scrollTop=e.scrollTop+Math.max(0,t.scrollHeight-e.scrollHeight),Me.current=t.scrollHeight-t.clientHeight-t.scrollTop<=SU),Ae.current=null;return}w||(Ae.current=null)}},[w,r]),(0,I.useEffect)(()=>{if(y===null||!r.some(e=>e.id===y))return;ke.current=!0,DU(hU(y));let e=Oe.current;e!==null&&(Me.current=e.scrollHeight-e.clientHeight-e.scrollTop<=SU),N?.()},[y,r,N]),(0,I.useEffect)(()=>{if(ke.current||j||ne||x!==`latest`||y!==null||r.length===0&&s===null&&o===null)return;let e=Oe.current;if(e===null)return;let t=window.requestAnimationFrame(()=>{e.scrollTop=e.scrollHeight,Me.current=!0,ke.current=!0});return()=>window.cancelAnimationFrame(t)},[o,s,y,j,r,ne]),(0,I.useEffect)(()=>{if(ke.current||j||ne||x!==`start`||y!==null)return;let e=Oe.current;if(e===null)return;let t=window.requestAnimationFrame(()=>{e.scrollTop=0,Me.current=e.scrollHeight<=e.clientHeight+SU,ke.current=!0,P?.()});return()=>window.cancelAnimationFrame(t)},[y,x,j,r,P,ne]);let We=()=>{if(!S||w||Ae.current!==null||re===void 0)return;let e=Oe.current;e!==null&&(Ae.current={firstMessageId:r[0]?.id,scrollHeight:e.scrollHeight,scrollTop:e.scrollTop},re())},Ge=()=>{!C||T||ie===void 0||ie()},Ke=e=>{let t=e.currentTarget;Me.current=t.scrollHeight-t.clientHeight-t.scrollTop<=SU,je.current!==null&&window.cancelAnimationFrame(je.current),je.current=window.requestAnimationFrame(()=>{if(je.current=null,t.scrollTop<=bU){We();return}t.scrollHeight-t.clientHeight-t.scrollTop<=xU&&Ge()})};(0,I.useEffect)(()=>()=>{je.current!==null&&window.cancelAnimationFrame(je.current)},[]),(0,I.useEffect)(()=>{if(j||ne||w||T||!ke.current)return;let e=Oe.current;if(e===null||e.scrollHeight>e.clientHeight+SU)return;let t=window.requestAnimationFrame(()=>{S?We():C&&Ge()});return()=>window.cancelAnimationFrame(t)},[C,S,j,T,w,r,ne]);let qe=r.at(-1)?.id;(0,I.useEffect)(()=>{let e=Ne.current;if(Ne.current=qe,e===void 0||e===qe||!E||!Me.current||!ke.current||Ae.current!==null)return;let t=Oe.current;if(t===null)return;let n=window.requestAnimationFrame(()=>{t.scrollTop=t.scrollHeight,Me.current=!0});return()=>window.cancelAnimationFrame(n)},[E,qe]);let Je=({key:e,roundId:t,title:n,summary:r,request:i,contextLabel:a,writable:o})=>{let c=Ve(t),l=(s?.roundId===t?s.answerRevision:void 0)??c.filter(e=>e.isClarificationAnswer??e.messageKind===`user_text`).length;return(0,L.jsx)(EL,{id:pU(t),tabIndex:-1,title:n,summary:r,request:i,...a===void 0?{}:{contextLabel:a},messages:c.map(e=>({id:e.id,author:e.author,body:e.body,time:e.time,avatar:(0,L.jsx)(jU,{message:e})})),replyCount:l,draft:o?p:``,defaultOpen:!0,readOnly:!o,status:o?`pending`:`done`,statusLabel:o?`needs input`:`submitted`,mentionOptions:He,sendPending:o&&D,submitPending:o&&O,onDraftChange:ce,onSendMessage:ue,onSubmitRound:de},`${e}:${o?`writable`:`sealed`}`)},Ye=e=>{if(e.target.kind===`approval`&&o!==null){if(!E){Fe.current=e,ae?.();return}DU(mU(o.approvalId),{focusSelector:`.chat-event-card-header`});return}if(e.target.kind===`clarification`&&s!==null){if(!E&&!Re){Fe.current=e,ae?.();return}DU(pU(s.roundId),{focusSelector:`.chat-event-card-header`});return}if(e.target.kind===`scratchpad`){DU(gU);return}Te?.(e)};(0,I.useEffect)(()=>{let e=Fe.current;if(!E||j||e===null)return;Fe.current=null;let t=window.requestAnimationFrame(()=>{e.target.kind===`approval`&&o!==null?DU(mU(o.approvalId),{focusSelector:`.chat-event-card-header`}):e.target.kind===`clarification`&&s!==null&&DU(pU(s.roundId),{focusSelector:`.chat-event-card-header`})});return()=>window.cancelAnimationFrame(t)},[o,s,E,j,r]);let Xe=e=>s===null?null:Je({key:e,roundId:s.roundId,title:s.title,summary:s.summary,request:s.request,contextLabel:s.ownerLabel,writable:s.status===`writable`&&s.roundId!==k}),Ze=()=>o===null?null:(0,L.jsx)(AL,{id:mU(o.approvalId),tabIndex:-1,title:o.title,summary:o.summary,...o.reason===void 0?{}:{reason:o.reason},...o.detail===void 0?{}:{detail:o.detail,...o.detailLabel===void 0?{}:{detailLabel:o.detailLabel},...o.detailCode===void 0?{}:{detailCode:o.detailCode}},status:o.status,statusLabel:o.statusLabel,decisions:o.decisions,decisionPending:A,...o.resolutionLabel===void 0?{}:{resolutionLabel:o.resolutionLabel},onDecide:e=>fe?.(o.approvalId,e)},`approval:${o.approvalId}:${o.status}`),Qe=e=>{let t=e.clarificationCard;if(t===void 0)return null;let n=s!==null&&s.roundId===t.roundId;return Je({key:e.id,roundId:t.roundId,title:n&&s!==null?s.title:t.title??`Clarification round ${t.roundId.slice(-4)}`,summary:n&&s!==null?s.summary:t.summary,request:n&&s!==null?s.request:t.summary,...n&&s!==null?{contextLabel:s.ownerLabel}:{},writable:n&&t.status===`writable`&&t.roundId!==k})},$e=e=>{if(OU(e)&&ze.has(e.workflowRef??``))return null;if(e.messageKind===`clarification_card`)return Qe(e);if(s!==null&&e.id===s.cardMessageId)return Xe(e.id);if(e.taskResult!==void 0)return(0,L.jsx)(ML,{id:hU(e.id),tabIndex:-1,className:e.id===y?`is-focused`:void 0,title:e.taskResult.title,status:e.taskResult.status,taskId:e.taskResult.taskId,taskTitle:e.taskResult.taskTitle,summary:e.taskResult.summary,...e.taskResult.moduleName===void 0?{}:{moduleName:e.taskResult.moduleName},...e.taskResult.finalNote===void 0?{}:{finalNote:e.taskResult.finalNote},...e.taskResult.generatedFiles===void 0?{}:{generatedFiles:e.taskResult.generatedFiles},...e.taskResult.errorCode===void 0?{}:{errorCode:e.taskResult.errorCode},...e.taskResult.retryState===void 0?{}:{retryState:e.taskResult.retryState},...e.taskResult.retryState===void 0||e.taskResult.latestRunResultId===void 0||ve===void 0?{}:{onRetry:()=>ve(e.taskResult.taskId,e.taskResult.latestRunResultId)},...F===void 0?{}:{onOpenTask:F}},e.id);let t=e.referenceFile;return(0,L.jsx)(HI,{id:hU(e.id),tabIndex:-1,author:e.author,time:e.time,avatar:(0,L.jsx)(jU,{message:e}),className:e.id===y?`is-focused`:void 0,children:e.artifactFeedback===void 0?t===void 0?e.messageKind===`agent_text`?(0,L.jsx)(UI,{children:e.body}):(0,L.jsx)(`p`,{children:(0,L.jsx)(zI,{children:e.body})}):(0,L.jsx)(tL,{name:t.name,category:t.category,...t.imageUrl===void 0?{}:{imageUrl:t.imageUrl},onClick:()=>se?.(t.path)}):(0,L.jsx)(eR,{artifactTitle:e.artifactFeedback.artifactTitle,annotations:e.artifactFeedback.annotations,...e.artifactFeedback.summary===void 0?{}:{summary:e.artifactFeedback.summary},...xe===void 0?{}:{onViewAnnotation:t=>xe(e.id,t)}})},e.id)},et=E?EU(o,r):null,tt=()=>{let e=s!==null&&(Re||E)||o!==null&&E;return r.length===0&&!e&&!w&&!T?(0,L.jsx)(nU,{children:`No messages yet`}):(0,L.jsxs)(L.Fragment,{children:[w?(0,L.jsx)(`div`,{className:`chat-history-status`,role:`status`,children:`Loading earlier messages…`}):null,!E||Re?null:Xe(`active-round`),r.map((e,t)=>(0,L.jsxs)(I.Fragment,{children:[et===t?Ze():null,$e(e)]},`timeline:${e.id}`)),et===r.length?Ze():null,T?(0,L.jsx)(`div`,{className:`chat-history-status`,role:`status`,children:`Loading newer messages…`}):null]})},nt=(e,t=!1)=>(0,L.jsx)(dL,{id:e,tabIndex:-1,compact:t,title:i.title,summary:i.summary,sections:i.sections,submitAvailable:i.submitAvailable,...i.pages===void 0?{}:{pages:i.pages},...i.footerNote===void 0?{}:{footerNote:i.footerNote},...i.updatedLabelPrefix===void 0?{}:{updatedLabelPrefix:i.updatedLabelPrefix},syncPending:h,actionsDisabled:g,submitPending:_,onSubmitScratchpad:pe,...F===void 0?{}:{onOpenCompiledTask:F},empty:(0,L.jsx)(nU,{children:`Scratchpad empty. Discuss more, tutti together!`}),...i.updatedLabel===void 0?{}:{updatedLabel:i.updatedLabel}}),rt=(0,L.jsx)(`div`,{className:`chat-panel-actions`,children:(0,L.jsx)($H,{members:n})});return(0,L.jsxs)(eU,{activePage:`chat`,statusShortcuts:l,mobileContext:{title:e,action:(0,L.jsx)(Aw,{className:h?`mobile-scratchpad-trigger is-syncing`:`mobile-scratchpad-trigger`,type:`button`,label:Ee?`Close Scratchpad`:`Open Scratchpad`,active:Ee,"aria-expanded":Ee,"aria-controls":`${gU}-mobile-sheet`,icon:(0,L.jsx)(sL,{"aria-hidden":`true`}),onClick:()=>De(e=>!e)})},...u===void 0?{}:{unread:u},...d===void 0?{}:{artifactSignal:d},onOpenProjectCenter:ge,onOpenWorklist:_e,onOpenReferences:ye,onOpenArtifacts:be,onOpenSkills:Se,onOpenTimeline:Ce,onOpenSettings:we,onActivateStatusShortcut:Ye,getStatusShortcutAriaControls:e=>e.target.kind===`approval`&&o!==null&&E?mU(o.approvalId):e.target.kind===`clarification`&&s!==null&&(E||Re)?pU(s.roundId):e.target.kind===`scratchpad`?gU:void 0,children:[(0,L.jsxs)(`section`,{className:`workspace-grid is-tutti chat-workspace-grid`,"aria-label":`Chat workspace`,children:[j?(0,L.jsx)(nL,{title:Ie,subtitle:Le,actions:rt,children:(0,L.jsx)(Xx,{})}):ne?(0,L.jsx)(nL,{title:Ie,subtitle:Le,actions:rt,children:(0,L.jsx)(nU,{children:`Workspace unavailable`})}):(0,L.jsx)(nL,{title:Ie,subtitle:Le,actions:rt,streamRef:Oe,onStreamScroll:Ke,streamOverlay:C&&ae!==void 0?(0,L.jsx)(J,{className:`chat-jump-latest`,type:`button`,onClick:ae,children:`Jump to latest`}):void 0,dropUploadPending:v,...Ue===void 0?{}:{onDropFiles:Ue},composer:(0,L.jsx)(oL,{value:f,pending:m,uploadPending:v,mentionOptions:He,onValueChange:M,onComposerSubmit:le,...oe===void 0?{}:{onFileUpload:oe}}),empty:(0,L.jsx)(nU,{children:`No messages yet`}),children:tt()}),(0,L.jsxs)(`div`,{className:a===null?`chat-side-column`:`chat-side-column has-progress`,children:[nt(gU),a===null?null:(0,L.jsx)(wU,{progress:a})]})]}),Ee?(0,L.jsxs)(`div`,{className:`mobile-scratchpad-layer is-open`,id:`${gU}-mobile-sheet`,children:[(0,L.jsx)(`button`,{className:`mobile-scratchpad-backdrop`,type:`button`,"aria-label":`Close Scratchpad`,onClick:()=>De(!1)}),(0,L.jsxs)(`section`,{className:`mobile-scratchpad-card`,role:`dialog`,"aria-modal":`true`,"aria-label":`Scratchpad`,children:[(0,L.jsxs)(`div`,{className:`mobile-scratchpad-card-head`,children:[(0,L.jsx)(`h2`,{children:`Scratchpad`}),(0,L.jsx)(fw,{className:`mobile-scratchpad-close`,type:`button`,label:`Close Scratchpad`,icon:(0,L.jsx)(qx,{"aria-hidden":`true`}),onClick:()=>De(!1)})]}),(0,L.jsx)(`div`,{className:`mobile-scratchpad-card-body`,children:nt(`${gU}-mobile`,!0)})]})]}):null]})}function NU({statusShortcuts:e,unread:t,state:n,loading:r=!1,unavailable:i=!1,feedback:a,iframeRef:o,onPreviewLoad:s,onOpenProjectCenter:c,onOpenChat:l,onOpenWorklist:u,onOpenReferences:d,onOpenSkills:f,onOpenTimeline:p,onOpenSettings:m,onActivateStatusShortcut:h}){let g=r?{status:`loading`}:i?{status:`not_declared`}:n,_=a?.supported===!0?(0,L.jsx)(QL,{active:a.open,disabled:a.open?!a.canSubmit:!a.ready,...a.submitPending===void 0?{}:{pending:a.submitPending},title:a.open?a.submitDisabledReason??`Submit comments`:a.ready?`Comments`:a.unavailableReason??`Preparing comments`,onClick:a.open?a.onSubmit:a.onOpen}):void 0,v=a?.supported===!0?(0,L.jsx)(Aw,{type:`button`,label:a.open?`Submit comments`:`Comments`,active:a.open,disabled:a.open?!a.canSubmit:!a.ready,icon:a.open?(0,L.jsx)(Gb,{"aria-hidden":`true`}):(0,L.jsx)(Tx,{"aria-hidden":`true`}),onClick:a.open?a.onSubmit:a.onOpen}):void 0,y=a?.open===!0?(0,L.jsx)($L,{...a.rail,author:a.author.displayName,avatar:(0,L.jsx)(AH,{avatar:a.author.avatar,label:a.author.displayName})}):void 0;return(0,L.jsx)(eU,{activePage:`artifacts`,statusShortcuts:e,mobileContext:{title:g.status===`declared`?g.title:`Artifacts`,...v===void 0?{}:{action:v}},...t===void 0?{}:{unread:t},artifactSignal:jz(g),...y===void 0?{}:{rail:y},onOpenProjectCenter:c,onOpenChat:l,onOpenWorklist:u,onOpenReferences:d,onOpenSkills:f,onOpenTimeline:p,onOpenSettings:m,onActivateStatusShortcut:h,children:(0,L.jsx)(`section`,{className:`workspace-grid artifacts-workspace-grid`,"aria-label":`Artifacts`,children:(0,L.jsx)(YL,{state:g,..._===void 0?{}:{headerAction:_},...o===void 0?{}:{iframeRef:o},...s===void 0?{}:{onPreviewLoad:s},...i?{empty:(0,L.jsx)(nU,{children:`Workspace unavailable`})}:{},emptyWatermark:(0,L.jsx)(tU,{})})})})}function PU({statusShortcuts:e,unread:t,artifactSignal:n,files:r,detail:i,uploadPending:a=!1,fileSortMode:o=`time`,loading:s=!1,unavailable:c=!1,onOpenProjectCenter:l,onOpenChat:u,onOpenWorklist:d,onOpenArtifacts:f,onOpenSkills:p,onOpenTimeline:m,onOpenSettings:h,onActivateStatusShortcut:g,onSelectFile:_,onUploadFile:v,onFileSortModeChange:y}){let b=s||c;return(0,L.jsx)(eU,{activePage:`references`,statusShortcuts:e,mobileContext:{title:`References`,action:(0,L.jsx)(aL,{variant:`bare`,className:`sidebar-button reference-upload-button`,label:`Upload reference`,pendingLabel:`Uploading reference`,pending:a,iconOnly:!0,onFileUpload:v})},...t===void 0?{}:{unread:t},...n===void 0?{}:{artifactSignal:n},onOpenProjectCenter:l,onOpenChat:u,onOpenWorklist:d,onOpenArtifacts:f,onOpenSkills:p,onOpenTimeline:m,onOpenSettings:h,onActivateStatusShortcut:g,children:(0,L.jsx)(`section`,{className:`workspace-grid references-workspace-grid`,"aria-label":`Reference files`,children:(0,L.jsx)(KL,{files:b?[]:r,...s?{detail:{title:`Loading`,unavailableReason:`Loading`}}:c?{detail:{title:`References unavailable`,unavailableReason:`Workspace unavailable`}}:i===void 0?{}:{detail:i},uploadPending:a,fileSortMode:o,empty:s?(0,L.jsx)(nU,{children:`Loading reference files`}):c?(0,L.jsx)(nU,{children:`Workspace unavailable`}):(0,L.jsx)(nU,{children:`No reference files`}),onSelectFile:_,onUploadFile:v,...y===void 0?{}:{onFileSortModeChange:y}})})})}var FU=6,IU=`......`,LU=80,RU=160;function zU(e){let t=document.createElement(`canvas`).getContext(`2d`);if(t===null)return null;let n=window.getComputedStyle(e);return t.font=[n.fontStyle,n.fontVariant,n.fontWeight,n.fontSize,n.fontFamily].join(` `),e=>t.measureText(e).width}function BU(e,t,n){if(n(e)<=t)return e;let r=e.slice(-FU),i=Math.max(0,e.length-r.length),a=0,o=i;for(;a<o;){let i=Math.ceil((a+o)/2);n(`${e.slice(0,i)}${IU}${r}`)<=t?a=i:o=i-1}return`${e.slice(0,a)}${IU}${r}`}function VU({value:e}){let t=(0,I.useRef)(null),[n,r]=(0,I.useState)(e);return(0,I.useEffect)(()=>{let n=t.current;if(n===null)return;let i=()=>{let t=zU(n),i=n.getBoundingClientRect().width;if(t===null||i<=0){r(e);return}let a=BU(e,i,t);r(e=>e===a?e:a)};i();let a=typeof ResizeObserver>`u`?null:new ResizeObserver(i);return a?.observe(n),window.addEventListener(`resize`,i),()=>{a?.disconnect(),window.removeEventListener(`resize`,i)}},[e]),(0,L.jsx)(`span`,{ref:t,className:`settings-masked-link`,title:e,"aria-label":e,children:n})}function HU({value:e,onCopy:t}){return t===void 0?(0,L.jsx)(VU,{value:e}):(0,L.jsx)(`button`,{className:`settings-value-button settings-link-copy-button`,type:`button`,"aria-label":`Copy invite link`,onClick:t,children:(0,L.jsx)(VU,{value:e})})}function UU({avatar:e,displayName:t}){return(0,L.jsxs)(`div`,{className:`settings-identity`,children:[(0,L.jsx)(AH,{avatar:e,label:t}),(0,L.jsx)(`strong`,{children:t})]})}function WU({members:e}){return(0,L.jsx)(`div`,{className:`settings-member-list`,children:e.map(e=>(0,I.createElement)(UU,{...e,key:e.key}))})}function GU({settings:e,onCopyJoinUrl:t}){return{label:`Invite link`,value:e.access.inviteLink===void 0?`Not available`:(0,L.jsx)(HU,{value:e.access.inviteLink,onCopy:t}),...e.access.inviteLink===void 0?{}:{plain:!0}}}function KU({settings:e,projectNameSaving:t,projectDescriptionSaving:n,providerModelOptions:r,providerModelEditable:i,providerModelDiscovering:a,providerModelSaving:o,onCopyJoinUrl:s,onUpdateProjectDisplayName:c,onUpdateProjectDescription:l,onDiscoverProviderModels:u,onUpdateProviderDefaultModel:d}){return[{id:`settings-project`,title:`Project`,rows:[{label:`Project name`,plain:!0,value:(0,L.jsx)(rL,{value:e.project.displayName,placeholder:`Untitled project`,ariaLabel:`Project name`,maxLength:LU,saving:t,...c===void 0?{}:{onUpdate:c}})},{label:`Description`,plain:!0,value:(0,L.jsx)(rL,{value:e.project.description,placeholder:`Add a project description`,ariaLabel:`Project description`,maxLength:RU,allowEmpty:!0,saving:n,...l===void 0?{}:{onUpdate:l}})},{label:`Members`,plain:!0,value:(0,L.jsx)(WU,{members:e.project.members})}]},{id:`settings-access`,title:`Access`,rows:[GU({settings:e,onCopyJoinUrl:s}),...e.access.inviteExpires===void 0?[]:[{label:`Invite expires`,value:e.access.inviteExpires}],{label:`Signed in as`,plain:!0,value:(0,L.jsx)(UU,{...e.access.signedInAs},`signed-in-account`)},{label:`Role`,value:e.access.role},{label:`Joined`,value:e.access.joined}]},{id:`settings-provider`,title:`AI provider`,rows:[{label:`Status`,value:e.provider.status},...e.provider.model===void 0?[]:[{label:`Model`,plain:!0,value:(0,L.jsx)(VL,{value:e.provider.model,options:r,maxLength:256,canEdit:i,discovering:a,saving:o,...u===void 0?{}:{onDiscover:u},...d===void 0?{}:{onUpdate:d}})}],...e.provider.lastValidated===void 0?[]:[{label:`Last validated`,value:e.provider.lastValidated}],...e.provider.issue===void 0?[]:[{label:`Issue`,value:e.provider.issue}]]},{id:`settings-tutti`,title:`Tutti`,rows:[{label:`Version`,value:e.tutti.version}]}]}function qU({settings:e,statusShortcuts:t,unread:n,artifactSignal:r,loading:i=!1,unavailable:a=!1,projectNameSaving:o=!1,projectDescriptionSaving:s=!1,providerModelOptions:c=[],providerModelEditable:l=!1,providerModelDiscovering:u=!1,providerModelSaving:d=!1,onOpenProjectCenter:f,onOpenChat:p,onOpenWorklist:m,onOpenReferences:h,onOpenArtifacts:g,onOpenSkills:_,onOpenTimeline:v,onActivateStatusShortcut:y,onCopyJoinUrl:b,onUpdateProjectDisplayName:x,onUpdateProjectDescription:S,onDiscoverProviderModels:C,onUpdateProviderDefaultModel:w}){return(0,L.jsx)(eU,{activePage:`settings`,statusShortcuts:t,mobileContext:{title:`Settings`},...n===void 0?{}:{unread:n},...r===void 0?{}:{artifactSignal:r},onOpenProjectCenter:f,onOpenChat:p,onOpenWorklist:m,onOpenReferences:h,onOpenArtifacts:g,onOpenSkills:_,onOpenTimeline:v,onActivateStatusShortcut:y,children:(0,L.jsx)(`section`,{className:`workspace-grid settings-workspace-grid`,"aria-label":`Settings`,children:(0,L.jsx)(`div`,{className:`settings-page-grid`,children:i?(0,L.jsx)(`section`,{className:`settings-sheet`,"aria-label":`Loading settings`,children:(0,L.jsx)(nU,{children:`Loading settings`})}):a?(0,L.jsx)(`section`,{className:`settings-sheet`,"aria-label":`Settings unavailable`,children:(0,L.jsx)(nU,{children:`Workspace unavailable`})}):e===void 0?(0,L.jsx)(`section`,{className:`settings-sheet`,"aria-label":`Settings unavailable`,children:(0,L.jsx)(nU,{children:`Settings unavailable`})}):(0,L.jsx)(BL,{statuses:[e.connectionStatus],sections:KU({settings:e,projectNameSaving:o,projectDescriptionSaving:s,providerModelOptions:c,providerModelEditable:l,providerModelDiscovering:u,providerModelSaving:d,onCopyJoinUrl:b,onUpdateProjectDisplayName:x,onUpdateProjectDescription:S,onDiscoverProviderModels:C,onUpdateProviderDefaultModel:w})})})})})}var JU=[{title:`Awesome GitHub Copilot Skills`,href:`https://awesome-copilot.github.com/skills/`},{title:`Anthropic official skills`,href:`https://github.com/anthropics/skills`},{title:`Claude Skills Marketplace`,href:`https://claudeskills.info/skills/`}];function YU({statusShortcuts:e,unread:t,artifactSignal:n,skills:r,detail:i,uploadPending:a=!1,deletePending:o=!1,loading:s=!1,unavailable:c=!1,onOpenProjectCenter:l,onOpenChat:u,onOpenWorklist:d,onOpenReferences:f,onOpenArtifacts:p,onOpenTimeline:m,onOpenSettings:h,onActivateStatusShortcut:g,onSelectSkill:_,onUploadSkill:v,onDeleteSkill:y}){let b=s||c;return(0,L.jsx)(eU,{activePage:`skills`,statusShortcuts:e,mobileContext:{title:`Skills`,action:(0,L.jsx)(aL,{variant:`bare`,className:`sidebar-button reference-upload-button`,label:`Upload skill`,pendingLabel:`Uploading skill`,pending:a,accept:`.zip,application/zip,application/x-zip-compressed`,iconOnly:!0,onFileUpload:v})},...t===void 0?{}:{unread:t},...n===void 0?{}:{artifactSignal:n},onOpenProjectCenter:l,onOpenChat:u,onOpenWorklist:d,onOpenReferences:f,onOpenArtifacts:p,onOpenTimeline:m,onOpenSettings:h,onActivateStatusShortcut:g,children:(0,L.jsx)(`section`,{className:`workspace-grid references-workspace-grid`,"aria-label":`Skills`,children:(0,L.jsx)(nR,{skills:b?[]:r,communityLinks:b?[]:JU,...s?{detail:{title:`Loading`,unavailableReason:`Loading`}}:c?{detail:{title:`Skills unavailable`,unavailableReason:`Workspace unavailable`}}:i===void 0?{}:{detail:i},uploadPending:a,deletePending:o,empty:s?(0,L.jsx)(nU,{children:`Loading skills`}):c?(0,L.jsx)(nU,{children:`Workspace unavailable`}):(0,L.jsx)(nU,{children:`No skills`}),onSelectSkill:_,onUploadSkill:v,onDeleteSkill:y})})})}function XU({timeline:e,statusShortcuts:t,unread:n,artifactSignal:r,loading:i=!1,unavailable:a=!1,onOpenProjectCenter:o,onOpenChat:s,onOpenWorklist:c,onOpenReferences:l,onOpenArtifacts:u,onOpenSkills:d,onOpenSettings:f,onActivateStatusShortcut:p}){return(0,L.jsx)(eU,{activePage:`timeline`,statusShortcuts:t,mobileContext:{title:`Timeline`},...n===void 0?{}:{unread:n},...r===void 0?{}:{artifactSignal:r},onOpenProjectCenter:o,onOpenChat:s,onOpenWorklist:c,onOpenReferences:l,onOpenArtifacts:u,onOpenSkills:d,onOpenSettings:f,onActivateStatusShortcut:p,children:(0,L.jsx)(`section`,{className:`workspace-grid timeline-workspace-grid`,"aria-label":`Timeline workspace`,children:i?(0,L.jsx)(`section`,{className:`panel timeline-panel`,"aria-label":`Loading timeline`,children:(0,L.jsx)(nU,{children:`Loading timeline`})}):a?(0,L.jsx)(`section`,{className:`panel timeline-panel`,"aria-label":`Timeline unavailable`,children:(0,L.jsx)(nU,{children:`Workspace unavailable`})}):e===void 0?(0,L.jsx)(`section`,{className:`panel timeline-panel`,"aria-label":`Timeline unavailable`,children:(0,L.jsx)(nU,{children:`Timeline unavailable`})}):(0,L.jsx)(vR,{tokenOverview:e.tokenOverview,items:e.items,scoreUnits:e.scoreUnits,empty:(0,L.jsx)(nU,{children:`No timeline events yet`})})})})}function ZU({statusShortcuts:e,unread:t,artifactSignal:n,modules:r,taskCount:i,detail:a,missingTaskId:o,runNote:s,loading:c=!1,unavailable:l=!1,onOpenProjectCenter:u,onOpenChat:d,onOpenReferences:f,onOpenArtifacts:p,onOpenSkills:m,onOpenTimeline:h,onOpenSettings:g,onActivateStatusShortcut:_,onSelectTask:v}){return(0,L.jsx)(eU,{activePage:`worklist`,statusShortcuts:e,mobileContext:{title:`Worklist`,meta:i===1?`1 task`:`${i} tasks`},...t===void 0?{}:{unread:t},...n===void 0?{}:{artifactSignal:n},onOpenProjectCenter:u,onOpenChat:d,onOpenReferences:f,onOpenArtifacts:p,onOpenSkills:m,onOpenTimeline:h,onOpenSettings:g,onActivateStatusShortcut:_,children:(0,L.jsx)(`section`,{className:`workspace-grid worklist-workspace-grid`,"aria-label":`Worklist workspace`,children:c?(0,L.jsx)(`section`,{className:`panel tasks worklist-page-panel`,"aria-label":`Loading Worklist`,children:(0,L.jsx)(nU,{children:`Loading Worklist`})}):l?(0,L.jsx)(`section`,{className:`panel tasks worklist-page-panel`,"aria-label":`Worklist unavailable`,children:(0,L.jsx)(nU,{children:`Workspace unavailable`})}):(0,L.jsx)(zL,{modules:r,taskCount:i,...a===void 0?{}:{detail:a},...o===void 0?{}:{missingTaskId:o},...s==null?{}:{runNote:s},onSelectTask:v,empty:(0,L.jsx)(nU,{children:`No compiled tasks`})})})})}function QU(e){return(0,L.jsx)(_H,{label:`Tutti trial access`,onBrandClick:e.onBrandClick,children:(0,L.jsxs)(uk,{title:e.authorized?`Trial access authorized`:`Authorize Tutti trial`,description:e.authorized?`Local Console will verify this authorization, check model access and start the project. You can return to Local Console.`:`Confirm only if you started this request in Local Console on your computer.`,onSubmit:t=>{t.preventDefault(),e.onAuthorize()},action:e.authorized?void 0:(0,L.jsx)(pw,{type:`submit`,disabled:e.pending||e.expired,children:e.pending?`Authorizing`:`Authorize trial access`}),feedback:e.error===null?void 0:(0,L.jsx)(Ew,{children:e.error}),children:[(0,L.jsx)(kk,{title:e.projectName,description:`${e.surface} · Tutti`,children:(0,L.jsxs)(`p`,{children:[`Account: `,e.accountEmail]})}),e.authorized?null:(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`p`,{children:`This computer may run AI tasks for this project, including team requests and background work, using your test allowance. There is no payment or recharge authorization.`}),(0,L.jsx)(`p`,{children:`Access continues until revoked. Signing out does not stop authorized project work.`}),e.expired?(0,L.jsx)(Ew,{children:`This request expired. Start again in Local Console.`}):null,(0,L.jsx)(J,{type:`button`,disabled:e.pending,onClick:e.onSignInAgain,children:`Sign in again / switch account`})]})]})})}var $U=U.Object({kind:U.Literal(`clarification`),round_id:Xp,version:U.Integer({minimum:0}),answer_revision:U.Integer({minimum:0}),closed_reason:U.Optional(U.Union([U.Literal(`resolved`),U.Literal(`contract_changed`),U.Literal(`cancelled`)])),state:U.Union([U.Literal(`writable`),U.Literal(`submitted`),U.Literal(`continued`),U.Literal(`closed`)]),title:U.String({minLength:1,maxLength:512}),request:U.String({minLength:1,maxLength:4e3}),opened_at:W},{additionalProperties:!1}),eW=U.String({minLength:1,maxLength:64,pattern:`^[a-z][a-z0-9_-]*$`}),tW=U.String({minLength:1,maxLength:256,pattern:`^[^\\u0000-\\u001f\\u007f]+$`}),nW=U.String({minLength:1,maxLength:512,pattern:`^[^\\u0000-\\u001f\\u007f]+$`}),rW=U.Object({platform:eW,installation_ref:tW},{additionalProperties:!1}),iW=U.Object({installation:rW,conversation_ref:nW,thread_ref:U.Optional(nW),parent_message_ref:U.Optional(nW),root_message_ref:U.Optional(nW)},{additionalProperties:!1}),aW=U.Object({conversation:iW,message_ref:nW},{additionalProperties:!1}),oW=U.Object({installation:rW,subject_kind:U.Union([U.Literal(`human`),U.Literal(`bot`),U.Literal(`app`),U.Literal(`system`)]),subject_ref:nW},{additionalProperties:!1}),sW=U.Object({kind:U.Literal(`human`),account_ref:em,display_name:U.String({minLength:1,maxLength:256}),membership:U.Object({relay_project_ref:$p,label:U.Union([U.Literal(`owner`),U.Literal(`member`)])},{additionalProperties:!1}),channel:U.Union([U.Literal(`platform_chat`),U.Literal(`platform_h5`),U.Literal(`platform_card_callback`),U.Literal(`platform_document_sync`)]),external_subject:oW,binding_ref:tW,verified_at:W},{additionalProperties:!1}),cW=U.Object({kind:U.Literal(`system`),purpose:U.Union([U.Literal(`live_ingestion`),U.Literal(`history_backfill`),U.Literal(`revision_observation`),U.Literal(`attachment_handoff`),U.Literal(`projection_retry`),U.Literal(`reconciliation`)]),installation:rW,binding_ref:U.Optional(tW),verified_at:W},{additionalProperties:!1}),lW=U.Object({...sW.properties,kind:U.Literal(`bot`),purpose:U.Literal(`development_operator`),channel:U.Literal(`platform_chat`)},{additionalProperties:!1});U.Union([sW,cW]);var uW=U.Object({account_ref:em,display_name:U.String({minLength:1,maxLength:256}),external_subject:oW},{additionalProperties:!1}),dW=U.Object({external_subject:oW},{additionalProperties:!1}),fW=U.Object({external_subject:oW,account_ref:U.Optional(em),display_text:U.Optional(U.String({minLength:1,maxLength:256})),target_kind:U.Union([U.Literal(`person`),U.Literal(`tutti`)])},{additionalProperties:!1}),pW=U.Union([U.Object({kind:U.Literal(`text`),text:U.String({minLength:1,maxLength:1e5}),mentions:U.Array(fW,{maxItems:128})},{additionalProperties:!1}),U.Object({kind:U.Literal(`post`),text:U.String({minLength:1,maxLength:1e5}),mentions:U.Array(fW,{maxItems:128})},{additionalProperties:!1})]),mW=U.Object({attachment_ref:nW,attachment_kind:U.Union([U.Literal(`file`),U.Literal(`image`),U.Literal(`audio`),U.Literal(`video`),U.Literal(`other`)]),file_name:U.Optional(U.String({minLength:1,maxLength:512})),media_type:U.Optional(U.String({minLength:1,maxLength:255})),declared_size_bytes:U.Optional(U.Integer({minimum:0,maximum:2**53-1}))},{additionalProperties:!1}),hW=U.Object({attachment:mW,size_bytes:U.Integer({minimum:1,maximum:2**53-1}),sha256:U.String({pattern:`^sha256:[0-9a-f]{64}$`}),media_type:U.String({minLength:1,maxLength:255}),verified_at:W},{additionalProperties:!1}),gW=U.Object({locator:aW,author:dW,attachment:mW,external_created_at:W,observed_at:W,adapter_version:U.String({minLength:1,maxLength:128})},{additionalProperties:!1}),_W=U.Object({external_references:U.Optional(U.Array(sg,{minItems:1,maxItems:16})),locator:aW,revision_ref:nW,author:uW,content:pW,attachments:U.Array(mW,{maxItems:64}),external_created_at:W,observed_at:W,adapter_version:U.String({minLength:1,maxLength:128})},{additionalProperties:!1}),vW=U.Object({external_references:U.Optional(U.Array(sg,{minItems:1,maxItems:16})),locator:aW,revision_ref:nW,author:dW,content:pW,attachments:U.Array(mW,{maxItems:64}),external_created_at:W,observed_at:W,adapter_version:U.String({minLength:1,maxLength:128})},{additionalProperties:!1}),yW=U.Union([U.Object({kind:U.Literal(`edited`),locator:aW,revision_ref:nW,content:pW,attachments:U.Array(mW,{maxItems:64}),external_updated_at:W,observed_at:W,adapter_version:U.String({minLength:1,maxLength:128})},{additionalProperties:!1}),U.Object({kind:U.Literal(`deleted`),locator:aW,revision_ref:nW,external_updated_at:W,observed_at:W,adapter_version:U.String({minLength:1,maxLength:128})},{additionalProperties:!1})]),bW=U.Object({receipt_key:tW,installation:rW,external_event_ref:nW,event_kind:U.Union([U.Literal(`conversation_source`),U.Literal(`conversation_revision`),U.Literal(`attachment`),U.Literal(`card_action`)]),received_at:W,attempt:U.Integer({minimum:1,maximum:1e6})},{additionalProperties:!1}),xW=U.Object({kind:U.Literal(`conversation_source`),receipt:bW,actor:cW,source:_W},{additionalProperties:!1}),SW=U.Object({kind:U.Literal(`conversation_revision`),receipt:bW,actor:cW,observation:yW},{additionalProperties:!1});U.Union([xW,SW]);var CW=U.Union([U.Object({kind:U.Literal(`created`),message_id:Vp},{additionalProperties:!1}),U.Object({kind:U.Literal(`duplicate`),message_id:Vp},{additionalProperties:!1}),U.Object({kind:U.Literal(`revision_recorded`),message_id:Vp,revision_ref:nW},{additionalProperties:!1}),U.Object({kind:U.Literal(`stale_revision`),message_id:Vp,revision_ref:nW},{additionalProperties:!1}),U.Object({kind:U.Literal(`unsupported`),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1}),U.Object({kind:U.Literal(`unauthorized`),reason_code:U.Optional(U.String({minLength:1,maxLength:128}))},{additionalProperties:!1}),U.Object({kind:U.Literal(`binding_missing`)},{additionalProperties:!1}),U.Object({kind:U.Literal(`host_unavailable`),retryable:U.Literal(!0),reason_code:U.Optional(U.String({minLength:1,maxLength:128})),retry_after:U.Optional(W)},{additionalProperties:!1}),U.Object({kind:U.Literal(`host_incompatible`),retryable:U.Literal(!0),reason_code:U.Union([U.Literal(`integration_source_ingestion_unsupported`),U.Literal(`integration_attachment_ingestion_unsupported`),U.Literal(`integration_managed_reference_ingestion_unsupported`),U.Literal(`integration_clarification_unsupported`)])},{additionalProperties:!1}),U.Object({kind:U.Literal(`invalid`),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1})]);U.Object({protocol_version:U.Union([U.Literal(2),U.Literal(3)]),command_id:Qp,relay_project_ref:$p,binding_ref:tW,receipt:bW,source:vW,clarification_round_ref:U.Optional(Xp)},{additionalProperties:!1}),U.Object({protocol_version:U.Literal(1),command_id:Qp,relay_project_ref:$p,binding_ref:tW,receipt:bW,source:gW,content:hW},{additionalProperties:!1});var wW=U.Union([U.Object({kind:U.Literal(`staged`),upload:Hh,put:Uh},{additionalProperties:!1}),U.Object({kind:U.Literal(`unauthorized`),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1}),U.Object({kind:U.Literal(`invalid`),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1}),U.Object({kind:U.Literal(`unavailable`),retryable:U.Literal(!0),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1})]);U.Object({protocol_version:U.Literal(1),disposition:wW},{additionalProperties:!1});var TW=U.String({minLength:20,maxLength:20,pattern:`^[A-Z2-7]+$`});U.Union([U.Object({state:U.Literal(`account_handoff_required`)},{additionalProperties:!1}),U.Object({state:U.Literal(`pairing_required`),pairing_code:TW,command:U.String({minLength:1,maxLength:128}),expires_at:W,visibility:U.Literal(`visible_once`)},{additionalProperties:!1}),U.Object({state:U.Literal(`pairing_required`),expires_at:U.Optional(W),visibility:U.Literal(`not_recoverable`)},{additionalProperties:!1}),U.Object({state:U.Literal(`connected`)},{additionalProperties:!1})]),U.Object({protocol_version:U.Literal(1),pairing_code:TW,binding_ref:tW,installation:rW,conversation_ref:nW,external_subject:oW,observed_at:W},{additionalProperties:!1});var EW=U.Union([U.Object({kind:U.Literal(`bound`),relay_project_ref:$p,project_display_name:U.String({minLength:1,maxLength:256})},{additionalProperties:!1}),U.Object({kind:U.Literal(`duplicate`),relay_project_ref:$p,project_display_name:U.String({minLength:1,maxLength:256})},{additionalProperties:!1}),U.Object({kind:U.Literal(`invalid`),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1}),U.Object({kind:U.Literal(`unauthorized`),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1}),U.Object({kind:U.Literal(`conflict`),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1})]);U.Object({protocol_version:U.Literal(1),disposition:EW},{additionalProperties:!1});var DW=U.Object({source_ref:tW,adapter_key:U.Literal(`feishu_docx`),installation:rW,external_subject:oW,reference_path:U.String({minLength:1,maxLength:1024})},{additionalProperties:!1}),OW=U.Object({size_bytes:U.Integer({minimum:0,maximum:2**53-1}),sha256:U.String({pattern:`^sha256:[0-9a-f]{64}$`}),media_type:U.Literal(`text/plain; charset=utf-8`)},{additionalProperties:!1});U.Object({protocol_version:U.Literal(1),command_id:Qp,operation_ref:tW,relay_project_ref:$p,binding_ref:tW,source:DW,remote_revision_ref:nW,expected_host_blob_oid:U.Optional(U.String({pattern:`^[0-9a-f]{40,64}$`})),content:OW},{additionalProperties:!1});var kW=wW;U.Object({protocol_version:U.Literal(1),disposition:kW},{additionalProperties:!1}),U.Object({protocol_version:U.Literal(1),command_id:Qp,operation_ref:tW,relay_project_ref:$p,binding_ref:tW,source:DW,remote_revision_ref:nW,expected_host_blob_oid:U.Optional(U.String({pattern:`^[0-9a-f]{40,64}$`})),content:OW,staged_upload:U.Object(Ih,{additionalProperties:!1})},{additionalProperties:!1}),U.Object({protocol_version:U.Literal(1),command_id:Qp,operation_ref:tW,relay_project_ref:$p,binding_ref:tW,source:DW,remote_revision_ref:nW,expected_host_blob_oid:U.Optional(U.String({pattern:`^[0-9a-f]{40,64}$`})),content:OW,staged_upload:U.Object(Ih,{additionalProperties:!1}),actor:sW},{additionalProperties:!1});var AW=U.Union([U.Object({kind:U.Union([U.Literal(`created`),U.Literal(`updated`),U.Literal(`unchanged`)]),current_blob_oid:U.String({pattern:`^[0-9a-f]{40,64}$`})},{additionalProperties:!1}),U.Object({kind:U.Literal(`duplicate`),outcome:U.Union([U.Literal(`created`),U.Literal(`updated`),U.Literal(`unchanged`)]),current_blob_oid:U.String({pattern:`^[0-9a-f]{40,64}$`})},{additionalProperties:!1}),U.Object({kind:U.Literal(`host_unavailable`),retryable:U.Literal(!0),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1}),U.Object({kind:U.Literal(`host_incompatible`),retryable:U.Literal(!0),reason_code:U.Literal(`integration_managed_reference_ingestion_unsupported`)},{additionalProperties:!1}),U.Object({kind:U.Union([U.Literal(`invalid`),U.Literal(`unauthorized`),U.Literal(`conflict`)]),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1})]);U.Object({protocol_version:U.Literal(1),disposition:AW},{additionalProperties:!1}),U.Object({protocol_version:U.Literal(1),command_id:Qp,relay_project_ref:$p,binding_ref:tW,receipt:bW,actor:U.Union([sW,lW]),source:_W,clarification_round_ref:U.Optional(Xp)},{additionalProperties:!1}),U.Object({protocol_version:U.Literal(1),command_id:Qp,relay_project_ref:$p,binding_ref:tW,receipt:bW,source:gW,staged_upload:U.Object(Ih,{additionalProperties:!1})},{additionalProperties:!1}),U.Object({protocol_version:U.Literal(1),command_id:Qp,relay_project_ref:$p,binding_ref:tW,receipt:bW,actor:sW,source:gW,staged_upload:U.Object(Ih,{additionalProperties:!1})},{additionalProperties:!1}),U.Union([U.Object({protocol_version:U.Literal(1),relay_project_ref:$p,installation:rW,binding_ref:tW,receipt_key:tW,verified_at:W},{additionalProperties:!1}),U.Object({protocol_version:U.Literal(1),relay_project_ref:$p,installation:rW,binding_ref:tW,operation_ref:tW,verified_at:W},{additionalProperties:!1})]),U.Object({protocol_version:U.Literal(1),disposition:CW},{additionalProperties:!1});var jW=U.Object({kind:U.Literal(`text`),text:U.String({minLength:1,maxLength:4e3}),clarification_round_ref:U.Optional(Xp)},{additionalProperties:!1}),MW=U.String({minLength:1,maxLength:128,pattern:`^cardrev_[0-9a-f]{32}$`}),NW=U.Object({decision_id:U.String({minLength:1,maxLength:256}),kind:U.Union([U.Literal(`allow_once`),U.Literal(`allow_session`),U.Literal(`deny`),U.Literal(`cancel`)]),label:U.String({minLength:1,maxLength:256}),tone:U.Union([U.Literal(`primary`),U.Literal(`neutral`),U.Literal(`danger`)])},{additionalProperties:!1}),PW=U.Object({kind:U.Literal(`approval_request`),approval_id:U.String({minLength:1,maxLength:256}),card_revision:MW,title:U.String({minLength:1,maxLength:512}),summary:U.String({minLength:1,maxLength:4e3}),reason:U.Optional(U.String({minLength:1,maxLength:2e3})),requested_at:W,expires_at:U.Optional(W),decisions:U.Array(NW,{minItems:1,maxItems:8})},{additionalProperties:!1}),FW=U.Union([jW,PW,$U]),IW=U.Object({kind:U.Union([U.Literal(`chat_response`),U.Literal(`needs_input`),U.Literal(`task_completed`),U.Literal(`task_failed`)]),event_key:nW,subject:U.Object({kind:U.Union([U.Literal(`message`),U.Literal(`clarification_round`),U.Literal(`approval_request`),U.Literal(`task_result`)]),ref:nW},{additionalProperties:!1}),target:U.Object({kind:U.Union([U.Literal(`project`),U.Literal(`work`)])},{additionalProperties:!1})},{additionalProperties:!1}),LW={protocol_version:U.Literal(1),intent_ref:Qp,relay_project_ref:$p,installation:rW,binding_ref:tW,canonical_message_ref:U.Optional(Vp),trigger_message_ref:U.Optional(Vp),content:FW,event:U.Optional(IW),created_at:W,attempt:U.Integer({minimum:1,maximum:1e6})};U.Object(LW,{additionalProperties:!1});var RW=U.Object({...LW,conversation_ref:nW},{additionalProperties:!1}),zW=U.Object({conversation_ref:nW,message_ref:nW,action_ref:tW,card_revision:MW,external_subject:oW},{additionalProperties:!1});U.Object({protocol_version:U.Literal(1),command_id:Qp,relay_project_ref:$p,binding_ref:tW,receipt:bW,callback:zW,approval_id:U.String({minLength:1,maxLength:256}),decision_id:U.String({minLength:1,maxLength:256})},{additionalProperties:!1}),U.Object({protocol_version:U.Literal(1),command_id:Qp,relay_project_ref:$p,binding_ref:tW,receipt:bW,actor:sW,callback:U.Object({message_ref:nW,action_ref:tW,card_revision:MW},{additionalProperties:!1}),approval_id:U.String({minLength:1,maxLength:256}),decision_id:U.String({minLength:1,maxLength:256})},{additionalProperties:!1});var BW=U.Union([U.Object({kind:U.Literal(`accepted`)},{additionalProperties:!1}),U.Object({kind:U.Literal(`stale_approval`)},{additionalProperties:!1}),U.Object({kind:U.Literal(`decision_unavailable`)},{additionalProperties:!1}),U.Object({kind:U.Literal(`interrupted`),retry_with_new_command_id:U.Boolean()},{additionalProperties:!1}),U.Object({kind:U.Literal(`unauthorized`),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1}),U.Object({kind:U.Literal(`invalid`),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1}),U.Object({kind:U.Literal(`host_unavailable`),retryable:U.Literal(!0),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1}),U.Object({kind:U.Literal(`host_incompatible`),retryable:U.Literal(!0),reason_code:U.Literal(`integration_approval_decision_unsupported`)},{additionalProperties:!1})]);U.Object({protocol_version:U.Literal(1),disposition:BW},{additionalProperties:!1}),U.Object({protocol_version:U.Literal(1),installation:rW},{additionalProperties:!1}),U.Union([U.Object({protocol_version:U.Literal(1),disposition:U.Object({kind:U.Literal(`idle`),retry_after_ms:U.Integer({minimum:100,maximum:6e4})},{additionalProperties:!1})},{additionalProperties:!1}),U.Object({protocol_version:U.Literal(1),disposition:U.Object({kind:U.Literal(`claimed`),claim_ref:tW,claim_expires_at:W,intent:RW},{additionalProperties:!1})},{additionalProperties:!1})]);var VW=U.Union([U.Object({kind:U.Literal(`accepted`),delivery_ref:tW},{additionalProperties:!1}),U.Object({kind:U.Literal(`duplicate`),delivery_ref:tW},{additionalProperties:!1}),U.Object({kind:U.Literal(`rejected`),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1})]);U.Object({protocol_version:U.Literal(1),installation:rW,claim_ref:tW,intent_ref:Qp,disposition:VW},{additionalProperties:!1}),U.Object({protocol_version:U.Literal(1),disposition:U.Union([U.Object({kind:U.Literal(`acknowledged`)},{additionalProperties:!1}),U.Object({kind:U.Literal(`stale`),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1})])},{additionalProperties:!1});var HW=U.Union([U.Object({kind:U.Literal(`accepted`),delivery_ref:tW},{additionalProperties:!1}),U.Object({kind:U.Literal(`duplicate`),delivery_ref:tW},{additionalProperties:!1}),U.Object({kind:U.Literal(`unavailable`),retryable:U.Literal(!0),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1}),U.Object({kind:U.Union([U.Literal(`invalid`),U.Literal(`unauthorized`),U.Literal(`unsupported`)]),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1})]);U.Object({protocol_version:U.Literal(1),disposition:HW},{additionalProperties:!1});var UW=U.String({minLength:1,maxLength:4096,pattern:`^[^\\u0000-\\u001f\\u007f]+$`}),WW=U.String({minLength:36,maxLength:36,pattern:`^feishu_user_[a-f0-9]{24}$`});U.Object({version:U.Literal(1),installation_ref:U.String({minLength:1,maxLength:512}),external_subject_ref:U.String({minLength:9,maxLength:508,pattern:`^open_id:[A-Za-z0-9_-]{1,500}$`}),access_token:UW,refresh_token:UW,access_expires_at:W,refresh_expires_at:U.Optional(W),scopes:U.Array(U.String({minLength:1,maxLength:256}),{minItems:1,maxItems:32,uniqueItems:!0}),authorized_at:W},{additionalProperties:!1}),U.Object({credential_ref:WW,updated_at:W},{additionalProperties:!1});var GW={authority:U.Object({project_ref:$p,installation_ref:U.String({minLength:1,maxLength:512}),binding_ref:U.String({minLength:1,maxLength:512}),external_subject_ref:U.String({pattern:`^open_id:[A-Za-z0-9_-]{1,500}$`}),role:U.Union([U.Literal(`owner`),U.Literal(`member`)])},{additionalProperties:!1}),diagnostic_id:U.Optional(U.String({pattern:`^fdiag_[a-f0-9]{32}$`}))};U.Union([U.Object({...GW,action:U.Literal(`list`)},{additionalProperties:!1}),U.Object({...GW,action:U.Literal(`connect`),document_id:U.String({pattern:`^[A-Za-z0-9]{27}$`})},{additionalProperties:!1}),U.Object({...GW,action:U.Literal(`connect_wiki`),node_token:U.String({pattern:`^[A-Za-z0-9]{1,999}$`})},{additionalProperties:!1}),U.Object({...GW,action:U.Literal(`refresh`),source_ref:Qh,...$h.properties},{additionalProperties:!1})]);var KW={authority:U.Object({project_ref:$p,installation_ref:U.String({minLength:1,maxLength:512}),binding_ref:U.String({minLength:1,maxLength:512}),external_subject_ref:U.String({pattern:`^open_id:[A-Za-z0-9_-]{1,500}$`}),role:U.Union([U.Literal(`owner`),U.Literal(`member`)])},{additionalProperties:!1}),request_ref:U.String({pattern:`^eref_[a-f0-9]{32}$`})},qW={source_ref:tg};U.Union([U.Object({...KW,action:U.Literal(`list`),include_pending:U.Optional(U.Boolean())},{additionalProperties:!1}),U.Object({...KW,action:U.Literal(`register`),document_url:U.String({minLength:1,maxLength:2048})},{additionalProperties:!1}),U.Object({...KW,action:U.Literal(`confirm`),submission_ref:ag},{additionalProperties:!1}),U.Object({...KW,...qW,action:U.Literal(`prepare`)},{additionalProperties:!1}),U.Object({...KW,action:U.Literal(`resolve`),document_url:U.String({minLength:1,maxLength:2048})},{additionalProperties:!1}),U.Object({...KW,action:U.Literal(`authorization_status`),authorization_ref:ng},{additionalProperties:!1}),U.Object({...KW,...qW,action:U.Literal(`transfer`),transfer_ref:U.String({pattern:`^transfer_[a-f0-9]{32}$`}),put_url:U.String({maxLength:8192,pattern:`^https://`}),headers:U.Record(U.String({maxLength:128}),U.String({maxLength:2048}))},{additionalProperties:!1})]);var JW=U.Object({source:sg,revision:U.String({minLength:1,maxLength:256}),sha256:U.String({pattern:`^[a-f0-9]{64}$`}),size_bytes:U.Integer({minimum:0,maximum:10485760}),media_type:U.String({minLength:1,maxLength:128}),transfer_ref:U.String({pattern:`^transfer_[a-f0-9]{32}$`})},{additionalProperties:!1});U.Object({...JW.properties,upload_id:U.Optional(im)},{additionalProperties:!1}),U.Object({supports_drive_files:U.Optional(U.Boolean()),invocation_ref:U.Optional(qp),project_identity:U.Object({source:U.Literal(`git_config`),project_id:Bp},{additionalProperties:!1}),host_auth:U.Object({kind:U.Literal(`host_registration_secret_v1`),secret:U.String({minLength:1,maxLength:512})},{additionalProperties:!1}),relay_project_ref:$p,host_connection_ref:om,request_ref:KW.request_ref,action:U.Union([U.Literal(`list`),U.Literal(`read`),U.Literal(`resolve`)]),source_ref:U.Optional(tg),document_url:U.Optional(U.String({minLength:1,maxLength:2048}))},{additionalProperties:!1});var YW={protocol_version:U.Literal(1),command_id:Qp,relay_project_ref:$p,binding_ref:tW,operation_ref:tW,conversation:iW,external_subject:oW,origin:U.Union([U.Object({kind:U.Literal(`development_operator`)},{additionalProperties:!1}),U.Object({kind:U.Literal(`card_callback`),message_ref:nW,action_ref:tW},{additionalProperties:!1})]),operation:U.Union([U.Object({kind:U.Literal(`query`),round_id:U.Optional(Xp)},{additionalProperties:!1}),U.Object({kind:U.Literal(`submit`),round_id:Xp,expected_answer_revision:U.Integer({minimum:0})},{additionalProperties:!1})])};U.Object(YW,{additionalProperties:!1}),U.Object({...YW,actor:U.Union([sW,lW])},{additionalProperties:!1}),U.Object({protocol_version:U.Literal(1),disposition:U.Union([U.Object({kind:U.Literal(`queried`),active:__,selected:U.Optional(y_)},{additionalProperties:!1}),U.Object({kind:U.Literal(`submitted`),response:E_},{additionalProperties:!1}),U.Object({kind:U.Union([U.Literal(`invalid`),U.Literal(`unauthorized`)]),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1}),U.Object({kind:U.Literal(`unavailable`),retryable:U.Boolean(),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1})])},{additionalProperties:!1}),U.Union([U.Object({action:U.Literal(`resolve`),entry_ref:Gy,diagnostic_id:U.Optional(U.String({pattern:`^fdiag_[a-f0-9]{32}$`}))},{additionalProperties:!1}),U.Object({action:U.Literal(`connect`),entry_ref:Gy,external_subject_ref:U.String({pattern:`^open_id:[A-Za-z0-9_-]{1,128}$`}),input:U.String({minLength:1,maxLength:256}),diagnostic_id:U.Optional(U.String({pattern:`^fdiag_[a-f0-9]{32}$`}))},{additionalProperties:!1})]),U.Object({installation_ref:U.String({minLength:1,maxLength:256}),conversation_ref:U.String({pattern:`^oc_[A-Za-z0-9_-]{1,128}$`}),projection:Ky},{additionalProperties:!1}),U.Object({version:U.Literal(1),audience:U.Literal(`tutti-managed-models`),issuer:U.String({minLength:1,maxLength:200}),account_ref:em,relay_project_ref:$p,nonce:Qp,issued_at:U.Integer({minimum:0}),expires_at:U.Integer({minimum:0})},{additionalProperties:!1}),U.Object({relay_project_ref:$p},{additionalProperties:!1});var XW=e=>U.String({pattern:`^${e}${Mt}$`}),ZW=XW(Pt.managedCreation),QW=XW(Pt.hostInstallation),$W=XW(Pt.hostDelegation),eG=XW(Pt.projectModelGrant),tG=U.String({pattern:`^[A-Za-z0-9_-]{43}$`}),nG=U.String({pattern:`^sha256:[a-f0-9]{64}$`}),rG=U.String({pattern:`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$`});function iG(e){let t=Date.parse(e);return Number.isFinite(t)&&new Date(t).toISOString()===e}var aG=U.Object({request_ref:Qp,project_id:Bp,surface:U.Union([U.Literal(`standalone`),U.Literal(`feishu`)]),existing_relay_project_ref:U.Optional($p),installation_ref:QW,installation_secret_hash:nG,handoff_token_hash:nG,host_registration_secret_hash:nG,trial_consent:U.Literal(`trial-project-v1`),expires_before:U.Optional(rG)},{additionalProperties:!1});U.Object({console_token:tG,preparation:aG},{additionalProperties:!1}),U.Object({kind:U.Literal(`managed_project_authority_v2`),creation_ref:ZW,handoff_token:tG,installation_ref:QW,installation_secret:tG},{additionalProperties:!1}),U.Object({delegation_ref:$W,installation_ref:QW,installation_secret:tG,relay_project_ref:$p,project_id:Bp,host_registration_secret:U.String({minLength:32,maxLength:256})},{additionalProperties:!1});var oG=U.Object({delegation_ref:$W,grant_ref:eG,relay_project_ref:$p,installation_ref:QW,funding_kind:U.Literal(`trial`),expires_at:U.Null(),state:U.Literal(`active`),model_access:U.Union([U.Literal(`runtime_authority_required`),U.Literal(`not_enabled`)])},{additionalProperties:!1}),sG=U.Object({creation_ref:ZW,project_id:Bp,surface:U.Union([U.Literal(`standalone`),U.Literal(`feishu`)]),installation_ref:QW,expires_at:rG,state:U.Union([U.Literal(`prepared`),U.Literal(`activated`),U.Literal(`expired`),U.Literal(`revoked`)]),relay_project_ref:U.Optional($p)},{additionalProperties:!1});U.Object({request_ref:Qp,project_id:Bp,installation_ref:QW,installation_secret:tG,handoff_token:tG,host_registration_secret:U.String({minLength:32,maxLength:256})},{additionalProperties:!1}),U.Object({request_ref:Qp,account_ref:em,creation:sG,authority:U.Optional(oG)},{additionalProperties:!1}),U.Object({command_id:Qp,target:U.Union([U.Object({kind:U.Literal(`grant`),ref:eG},{additionalProperties:!1}),U.Object({kind:U.Literal(`delegation`),ref:$W},{additionalProperties:!1}),U.Object({kind:U.Literal(`installation`),ref:QW},{additionalProperties:!1}),U.Object({kind:U.Literal(`creation`),ref:ZW},{additionalProperties:!1})])},{additionalProperties:!1}),U.Object({version:U.Literal(2),audience:U.Literal(`tutti-creation-validation`),issuer:U.String({minLength:1,maxLength:200}),account_ref:em,creation_ref:ZW,project_id:Bp,installation_ref:QW,creation_expires_at:U.Integer({minimum:0}),nonce:Qp,issued_at:U.Integer({minimum:0}),expires_at:U.Integer({minimum:0})},{additionalProperties:!1}),U.Object({creation_ref:ZW,project_id:Bp,installation_ref:QW,route_ref:U.String({pattern:`^[a-z0-9][a-z0-9-]{1,60}$`}),state:U.Union([U.Literal(`started`),U.Literal(`succeeded`),U.Literal(`failed`),U.Literal(`unknown`)]),reason_code:U.Union([U.Literal(`validation_started`),U.Literal(`validation_succeeded`),U.Literal(`validation_route_unavailable`),U.Literal(`validation_http_rejected`),U.Literal(`validation_response_invalid`),U.Literal(`validation_transport_unknown`),U.Literal(`validation_interrupted`)]),http_status:U.Union([U.Null(),U.Integer({minimum:100,maximum:599})])},{additionalProperties:!1});var cG={account_ref:em,relay_project_ref:$p,delegation_ref:$W,grant_ref:eG,installation_ref:QW},lG={issuer:U.String({minLength:1,maxLength:200}),nonce:Qp,issued_at:U.Integer({minimum:0}),expires_at:U.Integer({minimum:0})};U.Object({version:U.Literal(3),audience:U.Literal(`tutti-managed-runtime`),...lG,...cG,funding_kind:U.Literal(`trial`)},{additionalProperties:!1}),U.Object({version:U.Literal(1),audience:U.Literal(`tutti-managed-revocation`),...lG,...cG},{additionalProperties:!1}),U.Object({authorization:U.String({pattern:`^tma3\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]{86}$`,maxLength:3500}),expires_at:U.Integer({minimum:0}),control_origin:U.String({minLength:1,maxLength:500}),delegation_ref:$W},{additionalProperties:!1});var uG=e=>U.String({pattern:`^${e}${Mt}$`}),dG=uG(Pt.managedSession),fG=uG(Pt.managedCredential),pG=U.String({pattern:`^[a-z0-9][a-z0-9-]{1,60}$`}),mG=U.Object({base_url:U.String({minLength:1,maxLength:500}),model:U.String({pattern:`^tutti-[a-z0-9-]{1,80}$`})},{additionalProperties:!1});U.Object({session_ref:dG,route_ref:pG,disposition:U.Union([U.Literal(`created`),U.Literal(`existing`)]),provider:mG},{additionalProperties:!1});var hG=U.Object({credential_ref:fG,session_ref:dG,device_ref:uG(Pt.managedDevice),state:U.Union([U.Literal(`creating`),U.Literal(`active`),U.Literal(`expired`),U.Literal(`revoking`),U.Literal(`revoked`)]),expires_at:U.Integer({minimum:0}),quota_cap:U.Integer({minimum:1})},{additionalProperties:!1}),gG=U.Object({base_url:U.String({minLength:1,maxLength:500}),model:U.String({pattern:`^tutti-[a-z0-9-]{1,80}$`}),api_key:U.String({minLength:16,maxLength:1024,pattern:`^[^\\s]+$`})},{additionalProperties:!1});U.Union([U.Object({disposition:U.Literal(`issued`),credential:hG,route_ref:pG,provider:gG},{additionalProperties:!1}),U.Object({disposition:U.Literal(`already_issued`),credential:hG},{additionalProperties:!1})]),U.Object({disposition:U.Literal(`revoked`),credential:hG},{additionalProperties:!1}),U.Object({version:U.Literal(1),audience:U.Literal(`tutti-managed-account-read`),issuer:U.String({minLength:1,maxLength:200}),account_ref:em,nonce:Qp,issued_at:U.Integer({minimum:0}),expires_at:U.Integer({minimum:0})},{additionalProperties:!1}),U.Union([U.Literal(`in_progress`),U.Literal(`completed`),U.Literal(`failed`)]),U.Object({kind:U.Literal(`interrupted`),retry_with_new_command_id:U.Boolean()},{additionalProperties:!1});var _G=U.Union(cg.map(e=>U.Literal(e))),vG=U.Union([U.Object({kind:U.Literal(`initials`),initials:U.String({minLength:1}),color:_G},{additionalProperties:!1}),U.Object({kind:U.Literal(`image`),image_url:U.String({minLength:1}),initials:U.String({minLength:1}),color:_G},{additionalProperties:!1})]);U.Object({account_ref:em,display_name:U.String({minLength:1}),avatar:vG,membership:U.Object({label:U.Union([U.Literal(`owner`),U.Literal(`member`)]),relay_project_ref:$p,joined_at:W},{additionalProperties:!1}),client_session_id:nm,client_session_created_at:W},{additionalProperties:!1}),U.Object({platform_session_ref:rm,account_ref:em,display_name:U.String({minLength:1}),avatar:vG,membership:U.Object({label:U.Union([U.Literal(`owner`),U.Literal(`member`)]),relay_project_ref:$p,joined_at:W},{additionalProperties:!1}),binding_ref:U.String({minLength:1,maxLength:512}),installation_ref:U.String({minLength:1,maxLength:512}),external_subject_ref:U.String({minLength:1,maxLength:512}),platform_session_created_at:W,platform_session_expires_at:W},{additionalProperties:!1});var yG=U.Object({version:U.Literal(2),display_name:U.String({minLength:1,maxLength:80}),preparation:aG},{additionalProperties:!1});function bG(e){if(!e.startsWith(`#managed_request=`))return null;let t=e.slice(17);return Uy(Qp,t)?t:null}function xG(e){if(e.length>8192||!e.startsWith(`#trial=`))return null;try{let t=JSON.parse(decodeURIComponent(e.slice(7)));return!Uy(yG,t)||!t.display_name.trim()||t.preparation.expires_before===void 0||!iG(t.preparation.expires_before)?null:t}catch{return null}}function SG(e){let t=new URL(e);if(t.protocol!==`https:`&&!(t.protocol===`http:`&&t.hostname===`127.0.0.1`)||t.username||t.password||t.pathname!==`/`||t.search||t.hash)throw Error(`Managed authorization origin is invalid.`);return t}function CG(e){if(SG(e.relay_origin),!Uy(yG,{version:2,display_name:e.draft.display_name,preparation:e.preparation})||!e.draft.display_name.trim()||e.preparation.expires_before===void 0||!iG(e.preparation.expires_before))throw Error(`Managed authorization entry is invalid.`)}function wG(e){if(!(e instanceof Gt))return`Tutti could not complete this step. Try again from Local Console.`;let t={console_setup_access_invalid:`Your computer sign-in has expired or predates this update. Close this dialog, sign out and sign in to Local Console again.`,account_session_required:`Sign in to Local Console again before starting this project.`,fresh_authentication_required:`Sign in again to confirm this computer and project with a fresh email code.`,authority_target_not_found:`Project access was not confirmed. Choose Check and continue to retry this setup.`,managed_preparation_expired:`This request expired. Close the dialog and start a new request.`,managed_creation_not_validated:`Model validation has not succeeded. Check the authorization and try again.`,managed_existing_project_requires_opt_in:`This is an existing Tutti project. Resume it with its current access; automatic enrollment is disabled.`,managed_trial_not_enabled:`This account is not enabled for the internal Tutti trial.`,managed_validation_unknown:`The model check outcome is unknown. It will not be retried automatically. Contact support before starting a new request.`,managed_validation_failed:`The model access check failed. No automatic retry was started. Review the connection before starting a new request.`,managed_project_must_be_stopped:`Stop this project before changing its model access.`,host_delegation_already_active:`This computer is already authorized. Revoke its access in Account before authorizing it again.`,host_delegation_revocation_pending:`The previous access is revoked. Wait for gateway key reconciliation in Account before authorizing again.`,managed_reauthorization_conflict:`Finish or close the existing authorization request before restoring access.`,project_owner_required:`Sign in as the project's existing owner. Feishu identity linking is not available yet.`},n=/^[a-z0-9_]{1,100}$/u.test(e.code)?e.code:`request_failed`;return`${t[n]??`Tutti could not complete this step.`} (${n}, HTTP ${e.statusCode}${e.requestId?`, ID ${e.requestId}`:``})`}function TG({entry:e}){let t=et(),n=R({queryKey:Z.me,queryFn:()=>Wn(X)}),r=eH(),i=tH(),a=(0,I.useRef)(null),[o,s]=(0,I.useState)(!1),[c,l]=(0,I.useState)(!1),[u,d]=(0,I.useState)(null),[f,p]=(0,I.useState)(Date.now());(0,I.useEffect)(()=>{let e=window.setInterval(()=>p(Date.now()),1e3);return()=>{window.clearInterval(e),a.current?.abort()}},[]);let m=f>=Date.parse(e.preparation.expires_before);async function h(){if(a.current||m||c)return;let t=new AbortController;a.current=t,s(!0),d(null);let n={baseUrl:X.relayBaseUrl,credentials:`include`};try{let r;try{r=await nb(n,e.preparation,t.signal)}catch(i){if(!(i instanceof Gt)||i.statusCode!==0&&i.statusCode<500)throw i;try{r=await rb(n,e.preparation.request_ref,t.signal)}catch{throw i}}if(r.project_id!==e.preparation.project_id||r.installation_ref!==e.preparation.installation_ref||r.surface!==e.preparation.surface||r.state!==`prepared`&&r.state!==`activated`)throw Error(`Authority readback mismatch`);t.signal.aborted||l(!0)}catch(e){t.signal.aborted||d(wG(e))}finally{a.current===t&&(a.current=null,s(!1))}}async function g(){if(!a.current){a.current=new AbortController,s(!0);try{await Xn(X),t.removeQueries({queryKey:Z.me}),await n.refetch(),d(null)}catch(e){d(wG(e))}finally{a.current=null,s(!1)}}}return n.isLoading?null:n.data?.account.profile_complete?(0,L.jsx)(QU,{projectName:e.display_name,surface:e.preparation.surface===`feishu`?`Feishu`:`Tutti Workspace`,accountEmail:n.data.account.email,pending:o,authorized:c,expired:m,error:u,onAuthorize:()=>void h(),onSignInAgain:()=>void g(),onBrandClick:()=>{window.location.assign(`/projects`)}}):(0,L.jsx)(CH,{...n.data?.account?i:r,onBrandClick:()=>{window.location.assign(`/projects`)}})}function EG(){let[e]=(0,I.useState)(()=>xG(window.location.hash));return(0,I.useEffect)(()=>{window.history.replaceState(null,``,window.location.pathname)},[]),e===null?(0,L.jsx)(QU,{projectName:`Invalid trial request`,surface:``,accountEmail:``,pending:!1,authorized:!1,expired:!0,error:`Reopen trial authorization from Local Console.`,onAuthorize:()=>{},onSignInAgain:()=>{},onBrandClick:()=>{window.location.assign(`/projects`)}}):(0,L.jsx)(TG,{entry:e})}function DG(){return(0,I.useEffect)(()=>Q(`/projects?panel=credits`,{replace:!0}),[]),null}var OG=`tutti.workspace-onboarding.v1`,kG={version:1,start_chat_pending:!1,tour_pending:!1};function AG(){try{return typeof window>`u`?null:window.sessionStorage}catch{return null}}function jG(e){return e.storage===void 0?AG():e.storage}function MG(e,t){return`${OG}:${e}:${t}`}function NG(e){if(typeof e!=`object`||!e)return null;let t=e;return t.version===1&&typeof t.start_chat_pending==`boolean`&&typeof t.tour_pending==`boolean`?{version:1,start_chat_pending:t.start_chat_pending,tour_pending:t.tour_pending}:null}function PG(e,t,n){if(e!==null)try{if(!n.start_chat_pending&&!n.tour_pending){e.removeItem(t);return}e.setItem(t,JSON.stringify(n))}catch{}}function FG(e,t,n={}){let r=jG(n);if(r===null)return{...kG};try{let n=r.getItem(MG(e,t));return n===null?{...kG}:NG(JSON.parse(n))??{...kG}}catch{return{...kG}}}function IG(e,t,n={}){PG(jG(n),MG(e,t),{version:1,start_chat_pending:!0,tour_pending:!0})}function LG(e,t,n,r){let i=jG(r),a=FG(e,t,{storage:i});a[n]&&PG(i,MG(e,t),{...a,[n]:!1})}function RG(e,t,n={}){LG(e,t,`start_chat_pending`,n)}function zG(e,t,n={}){LG(e,t,`tour_pending`,n)}function BG({joinToken:e}){let t=et(),n=R({queryKey:Z.join(e),queryFn:()=>Zn(X,e)}),r=eH(()=>{n.refetch()}),i=tH(()=>{n.refetch()}),a=gt({mutationFn:()=>Qn(X,e),onSuccess:n=>{wV(t),t.invalidateQueries({queryKey:Z.join(e)}),n.disposition.kind===`joined`&&n.result!==void 0&&IG(n.result.account.account_ref,n.result.relay_project.relay_project_ref),n.result?.relay_project.host_status===`online`&&Q(en(n.result.relay_project.relay_project_ref))}}),o=gt({mutationFn:e=>$n(X,e),onSuccess:e=>{wV(t),e.disposition.kind===`opened`&&e.result?.open_url!==void 0&&SV(e.result.open_url)}}),s=n.data;EV(s?.account!==void 0);let c=s?.relay_project?.display_name??`Project`,l=s?.relay_project?.host_status??`unknown`,u=s?.account?.profile_complete===!1,d=u?`login_required`:n.isLoading?`loading`:n.error===null?s?.next.kind??`invalid_or_expired`:`error`;return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(Ab,{route:{kind:`join`,joinToken:e},projectDisplayName:s?.relay_project?.display_name??null}),(0,L.jsx)(EH,{projectName:c,description:d===`invalid_or_expired`?`This invite can no longer be used.`:`You have been invited to join ${c}.`,hostLabel:Tz(l),hostOnline:l===`online`,nextKind:d,accountLabel:s?.account?.display_name??null,membershipLabel:s?.membership?.label??null,actionPending:a.isPending||o.isPending,error:n.error===null?a.error===null?o.error===null?null:$(o.error):$(a.error):$(n.error),onBrandClick:()=>Q(`/`),onRetry:()=>void n.refetch(),onAccept:()=>a.mutate(),onOpen:()=>{s?.next.kind===`open_workspace`&&o.mutate(s.next.relay_project_ref)},...d===`login_required`?{loginForm:u?i:r}:{}})]})}async function VG(e,t,n=`docx`){let r;try{r=await vb(X,e,{diagnostics:t,profile:n})}catch(e){throw new JR(`document_authorization_bootstrap`,e,t)}let i;try{i=await KR({appId:r.app_id,state:r.state,scopes:r.authorization_scopes,allowLegacyFallback:!1})}catch(e){throw new JR(`document_authorization_request_access`,e,t)}try{await yb(X,{relayProjectRef:e,state:r.state,authorizationCode:i},{diagnostics:t})}catch(e){throw new JR(`document_authorization_exchange`,e,t)}}function HG({read:e}){return e.error===void 0?e.fetching?e.data===void 0?(0,L.jsx)(Xx,{count:3}):(0,L.jsx)(`p`,{className:`reference-content`,role:`status`,children:`Updating…`}):null:(0,L.jsxs)(`div`,{className:`embedded-project-refresh-message`,role:`status`,children:[e.data===void 0?null:(0,L.jsx)(`p`,{children:`Showing the last loaded snapshot. It may be out of date.`}),(0,L.jsx)(PR,{diagnostic:e.error})]})}function UG(e){return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(HG,{read:e.read}),e.read.data===void 0?(0,L.jsx)(Yx,{children:e.read.error?`Timeline unavailable.`:`Loading timeline…`}):(0,L.jsx)(vR,{...e.read.data,presentation:`sheet`,empty:(0,L.jsx)(Yx,{children:`No timeline events yet.`})})]})}var WG={root:e=>[`feishu-project`,e],supporting:e=>[`feishu-project`,e,`supporting`],skills:e=>[`feishu-project`,e,`supporting`,`skills`],skillDetails:e=>[`feishu-project`,e,`supporting`,`skill`],skillDetail:(e,t)=>[`feishu-project`,e,`supporting`,`skill`,t],timeline:e=>[`feishu-project`,e,`supporting`,`timeline`],bootstrap:e=>[`feishu-project`,e,`bootstrap`],scratchpad:e=>[`feishu-project`,e,`scratchpad`],worklist:e=>[`feishu-project`,e,`worklist`],executionStatus:e=>[`feishu-project`,e,`execution-status`],artifacts:e=>[`feishu-project`,e,`artifacts`],artifactPreviewSession:(e,t)=>[`feishu-project`,e,`artifact-preview-session`,t],activeClarification:e=>[`feishu-project`,e,`active-clarification`],clarificationMessages:(e,t)=>[`feishu-project`,e,`clarification-messages`,t],activeApproval:e=>[`feishu-project`,e,`active-approval`],referenceFiles:e=>[`feishu-project`,e,`reference-files`],viewerFiles:e=>[`feishu-project`,e,`viewer-file`],viewerFile:(e,t)=>[`feishu-project`,e,`viewer-file`,t],taskDetail:(e,t)=>[`feishu-project`,e,`task-detail`,t],taskRunResults:(e,t)=>[`feishu-project`,e,`task-run-results`,t]};function GG(e,t){e.invalidateQueries({queryKey:WG.root(t)})}function KG(e,t,n){if(n===void 0)return;if(n.some(e=>e.kind===`all`)){GG(e,t);return}for(let r of n)switch(r.kind){case`all`:break;case`bootstrap`:case`workspace`:case`session`:e.invalidateQueries({queryKey:WG.bootstrap(t)});break;case`scratchpad`:e.invalidateQueries({queryKey:WG.scratchpad(t)});break;case`worklist`:e.invalidateQueries({queryKey:WG.worklist(t)});break;case`task`:case`task_detail`:e.invalidateQueries({queryKey:WG.taskDetail(t,r.task_id)});break;case`task_run_results`:e.invalidateQueries({queryKey:WG.taskRunResults(t,r.task_id)});break;case`messages`:r.scope===`clarification_round`&&e.invalidateQueries({queryKey:WG.clarificationMessages(t,r.round_id)});break;case`clarification`:e.invalidateQueries({queryKey:WG.activeClarification(t)}),r.round_id!==void 0&&e.invalidateQueries({queryKey:WG.clarificationMessages(t,r.round_id)});break;case`approval`:e.invalidateQueries({queryKey:WG.activeApproval(t)});break;case`execution_status`:case`activity`:e.invalidateQueries({queryKey:WG.executionStatus(t)});break;case`viewer`:(r.path===void 0||r.path.startsWith(`docs/reference`))&&(e.invalidateQueries({queryKey:WG.referenceFiles(t)}),e.invalidateQueries({queryKey:WG.viewerFiles(t)}));break;case`artifacts`:e.invalidateQueries({queryKey:WG.artifacts(t)});break;case`read_state`:case`provider_config`:case`provider_usage`:case`project_timeline`:case`skills`:case`recovery_summaries`:break}let r=new Map,i=e=>r.set(JSON.stringify(e),e);for(let e of n)e.kind===`skills`&&(i(WG.skills(t)),i(WG.skillDetails(t))),([`workspace`,`viewer`,`worklist`,`task`,`task_detail`,`task_run_results`,`clarification`,`project_timeline`,`provider_usage`].includes(e.kind)||e.kind===`messages`&&e.scope===`clarification_round`)&&i(WG.timeline(t));for(let t of r.values())e.invalidateQueries({queryKey:t})}function qG(e){return e.streamStatus!==`open`&&e.nowMs-e.lastRefreshAtMs>=(e.throttleMs??3e4)}function JG(e,t,n,r){let i=R({queryKey:e,queryFn:async({signal:e})=>{let n=XR();try{return await r({signal:e,diagnostics:n})}catch(e){throw new JR(t,e,n)}},enabled:n,retry:!1,staleTime:3e4,refetchOnMount:`always`,refetchOnWindowFocus:!1}),a=i.error instanceof JR?i.error.cause:i.error,o=a instanceof Gt&&a.statusCode>=400&&a.statusCode<500;return{...i.data===void 0||o?{}:{data:i.data},...i.error===null?{}:{error:oz(i.error,XR())},fetching:n&&i.isFetching}}function YG(e,t){let{data:n,...r}=e;return{...r,...n===void 0?{}:{data:t(n)}}}function XG({client:e,relayProjectRef:t,onSelectTask:n}){return(0,L.jsx)(UG,{read:YG(JG(WG.timeline(t),`project_timeline`,!0,t=>e.getProjectTimeline(t)),e=>jB(e,{onOpenWorklistTask:n}))})}function ZG(e){let{tracker:t,execution:n,scratchpad:r,clarification:i,approval:a}=e,o=t?.kind===`activity`?t:void 0,s=e=>o!==void 0&&(e.activity_ref===o.activityRef||o.workflowRef!==void 0&&e.workflow_ref===o.workflowRef),c=FV(n).some(s),l=i.state===`active`&&i.thread.owner.kind===`task_compile`,u=c||l||IV(n,`task_compile`,`foreground`)||IV(n,`project_context_bootstrap`,`foreground`)||IV(n,`scratchpad_refresh`,`foreground`),d=o!==void 0&&(r.receipts.some(s)||r.state===`submitted`&&s({...r.submitted_by_activity_ref===void 0?{}:{activity_ref:r.submitted_by_activity_ref},...r.submitted_by_workflow_ref===void 0?{}:{workflow_ref:r.submitted_by_workflow_ref}})),f=n.last_conclusion,p=!u&&f?.kind===`failed`&&s(f)?f:void 0,m=d||p!==void 0;return{activeSubmit:u,settled:m,failure:p,submitPending:u||t!==null&&!m,syncPending:IV(n,`scratchpad_refresh`),actionsDisabled:LV(n)||i.state===`active`||a.state===`pending`}}var QG=1500,$G=6e4;function eK(e){let{client:t,relayProjectRef:n}=e,r=et(),i=_z(),[a,o]=(0,I.useState)(null),s=(0,I.useRef)(!1),c=gt({mutationFn:()=>az(`worklist_submit`,async n=>({response:await t.submitWorklist(e.scratchpad.updated_at===void 0?{}:{expected_scratchpad_updated_at:e.scratchpad.updated_at},void 0,{diagnostics:n}),diagnostics:n})),onMutate:()=>(o({kind:`request`}),i.notify({tone:`loading`,title:`Running Scratchpad`})),onSuccess:({response:e},t,a)=>{let s=e.result?.activity_ref,c=e.disposition.kind===`accepted`;o(c&&s!==void 0?{kind:`activity`,activityRef:s,...e.result?.workflow_ref===void 0?{}:{workflowRef:e.result.workflow_ref}}:null),KG(r,n,e.invalidates),i.update(a,{tone:c?`success`:`warning`,title:c?`Scratchpad run started`:`Scratchpad run not started`,message:e.disposition.kind===`already_running`?`Tutti is already processing work.`:c?`Tutti is preparing Worklist tasks.`:`Refresh the project and review its current status.`})},onError:(t,n,r)=>{o(null),i.update(r,{tone:`error`,title:`Scratchpad run failed`,message:iz(t,e.diagnostics)})},onSettled:()=>{s.current=!1}}),l=ZG({...e,tracker:a}),u=c.data?.diagnostics??e.diagnostics;(0,I.useEffect)(()=>{a===null||!l.settled||(o(null),KG(r,n,[{kind:`worklist`}]),l.failure!==void 0&&i.notify({tone:`error`,title:`Scratchpad run failed`,message:`Tutti could not prepare tasks. Review the project status before retrying. Diagnostic ID: ${u.diagnosticId} · ${u.webRelease} · worklist_submit · submit_chain_failed`}))},[a,l.settled,l.failure,u,i,r,n]);let d=l.submitPending;return(0,I.useEffect)(()=>{if(!d)return;let e=window.setInterval(()=>{if(document.visibilityState!==`hidden`)for(let e of[WG.scratchpad(n),WG.executionStatus(n),WG.activeClarification(n)])r.refetchQueries({queryKey:e,exact:!0,type:`active`},{cancelRefetch:!1})},QG);return()=>window.clearInterval(e)},[d,r,n]),(0,I.useEffect)(()=>{if(a?.kind!==`activity`||l.activeSubmit||l.settled)return;let e=window.setTimeout(()=>{o(null),i.notify({tone:`warning`,title:`Scratchpad status could not be confirmed`,message:`The request was accepted, but its latest status is unavailable. Refresh the project before retrying. Diagnostic ID: ${u.diagnosticId} · ${u.webRelease} · worklist_submit · submit_status_unconfirmed`})},$G);return()=>window.clearTimeout(e)},[a,l.activeSubmit,l.settled,u,i]),{submitPending:c.isPending||l.submitPending,syncPending:l.syncPending,actionsDisabled:l.actionsDisabled,submit:()=>{s.current||l.submitPending||l.syncPending||l.actionsDisabled||(s.current=!0,c.mutate())}}}function tK({access:e,loading:t,pending:n,error:r,onAuthorize:i,onRefresh:a}){return(0,L.jsx)(gL,{brand:(0,L.jsx)(NR,{label:`Tutti`,onClick:a}),projectName:`Document access`,onRefresh:a,refreshing:t||n,children:t?(0,L.jsx)(Xx,{count:3}):r?(0,L.jsx)(Yx,{details:(0,L.jsx)(PR,{diagnostic:r}),children:`Document access unavailable.`}):(0,L.jsx)(Yx,{details:e?.status===`pending`?(0,L.jsx)(pw,{disabled:n,onClick:i,children:n?`Authorizing…`:`Authorize document access`}):void 0,children:e?.status===`authorized`?`Access is ready. Return to the group and retry the question, or continue the task from its pending step.`:e?.status===`expired`?`This access request expired. Ask Tutti to try reading again.`:`Tutti needs the project owner's permission to read the requested material.`})})}function nK(e){let t=new URLSearchParams(e).getAll(`access_request`);return t.length===1&&/^ref_auth_[a-f0-9]{32}$/u.test(t[0])?t[0]:void 0}function rK({project:e,authorizationRef:t,prepareSession:n}){let[r,i]=(0,I.useState)(0),[a,o]=(0,I.useState)(),[s,c]=(0,I.useState)(!0),[l,u]=(0,I.useState)(!1),[d,f]=(0,I.useState)(),p=(0,I.useRef)(!1),m=(0,I.useRef)(0);(0,I.useEffect)(()=>{let r=new AbortController;m.current+=1;let i=XR();return c(!0),f(void 0),o(void 0),n(e,r.signal,i).then(()=>ob(X,e).authorization(t,{diagnostics:i,signal:r.signal})).then(e=>{r.signal.aborted||o(e)}).catch(e=>{r.signal.aborted||f(oz(new JR(`reference_authorization_status`,e,i),i))}).finally(()=>{r.signal.aborted||c(!1)}),()=>{r.abort(),m.current+=1}},[e,t,n,r]);let h=async()=>{if(p.current||a?.status!==`pending`)return;p.current=!0,u(!0),f(void 0);let n=m.current,r=XR();try{if(await VG(e,r,a.profile),n!==m.current)return;let i=await ob(X,e).authorization(t,{diagnostics:r});n===m.current&&o(i)}catch(e){n===m.current&&f(oz(e instanceof JR?e:new JR(`reference_authorization_status`,e,r),r))}finally{p.current=!1,n===m.current&&u(!1)}};return(0,L.jsx)(tK,{loading:s,pending:l,...a===void 0?{}:{access:a},...d===void 0?{}:{error:d},onAuthorize:()=>void h(),onRefresh:()=>{p.current||i(e=>e+1)}})}var iK=3e4;function aK(e){if(!(e===void 0||e.disposition.kind===`issued`))return e.disposition.kind===`invalid_manifest`?e.disposition.message:e.disposition.kind===`preview_not_ready`?e.disposition.message??`Preview is not ready`:e.disposition.kind===`not_declared`?`Artifact is no longer declared`:`Preview session expired before it could be opened`}function oK(e){return e===void 0?!1:e.disposition.kind!==`issued`||e.result===void 0?e.disposition.kind===`preview_not_ready`||e.disposition.kind===`interrupted`?1e3:!1:Math.max(1e3,Date.parse(e.result.expires_at)-Date.now()-iK)}function sK(e){return e?.disposition.kind===`issued`?e.result?.bootstrap_url:void 0}var cK=`tutti_feishu_handoff`,lK=/^[A-Za-z0-9_-]{43}$/u;function uK(e){let t=new URLSearchParams(e),n=t.getAll(`view`),r=t.getAll(`open`);return n.length===1&&n[0]===`artifacts`&&r.length===1&&r[0]===`browser`&&!t.has(`authorize`)&&!t.has(`access_request`)&&!t.has(`lk_jump_to_browser`)}function dK(e,t){let n=new URL(`${e.pathname}${e.search}${e.hash}`,e.origin);n.searchParams.delete(`open`),t.replaceState(t.state,``,`${n.pathname}${n.search}${n.hash}`)}function fK(e){let t=`#${cK}=`,n=e.hash.startsWith(t)?e.hash.slice(t.length):void 0,r=n!==void 0&&lK.test(n)?n:void 0;return{systemBrowser:new URLSearchParams(e.search).get(`lk_jump_to_browser`)===`true`||r!==void 0,...r===void 0?{}:{handoffToken:r},shouldClearFragment:n!==void 0}}function pK(e,t){t.replaceState(t.state,``,`${e.pathname}${e.search}`)}function mK(e){if(!lK.test(e.handoffToken))throw TypeError(`Feishu browser handoff token is invalid`);let t=new URL(tn(e.relayProjectRef),e.origin);return t.searchParams.set(`lk_jump_to_browser`,`true`),t.searchParams.set(`view`,`artifacts`),t.hash=`${cK}=${e.handoffToken}`,t.toString()}function hK(e,t=(e,t)=>window.open(e,t)){if(new URL(e).searchParams.get(`lk_jump_to_browser`)!==`true`)throw TypeError(`Feishu system-browser URL is missing the browser jump parameter`);let n=t(e,`_blank`);return n===null?!1:(n.opener=null,!0)}var gK=2e4;function _K(e,t){return e?.previewGeneration===t?e:{previewGeneration:t,annotations:[]}}function vK(e,t){return e!==null&&e.previewGeneration!==t}var yK=(0,I.createContext)(null);function bK(e){let t=e.intervalMs??gK,n=e.setIntervalFn??window.setInterval.bind(window),r=e.clearIntervalFn??window.clearInterval.bind(window),i=!0,a=!1,o=!1,s=()=>{!i||a||(a=!0,e.renew().then(()=>{i&&!o&&(o=!0,e.onInitialRenewed?.())}).catch(()=>void 0).finally(()=>{a=!1}))};s();let c=n(s,t);return()=>{i=!1,r(c)}}function xK({relayProjectRef:e,hostClient:t,enabled:n,feedbackEnabled:r,children:i}){let[a,o]=(0,I.useState)(null),[s,c]=(0,I.useState)(null),l=(0,I.useRef)(0),u=R({queryKey:Z.artifacts(e),queryFn:()=>t.getArtifacts(),enabled:n,staleTime:bV}),d=u.data?.artifact,f=d?.status===`declared`;(0,I.useEffect)(()=>{if(!(!n||!f))return bK({renew:()=>t.renewArtifactPreviewLease(),onInitialRenewed:()=>{u.refetch()}})},[u.refetch,f,n,t]);let p=d!==void 0,m=d?.status===`declared`?d.preview_generation:void 0,h=(0,I.useCallback)(e=>{o(t=>_K(t,e))},[]),g=(0,I.useCallback)(e=>{o(t=>{if(t===null||t.annotations.length>=64)return t;let{createdAt:n,...r}=e;return l.current+=1,{...t,annotations:[...t.annotations,{...r,createdAt:n,key:`artifact-feedback-note-${l.current}`}]}})},[]),_=(0,I.useCallback)(e=>{o(t=>t===null?null:{...t,annotations:t.annotations.filter((t,n)=>n!==e)})},[]),v=(0,I.useCallback)(()=>o(null),[]),y=(0,I.useCallback)(e=>c(e),[]),b=(0,I.useCallback)(()=>c(null),[]),x=(0,I.useMemo)(()=>({artifact:d,sidebarSignal:Az(d),loading:!p&&n&&u.isLoading,unavailable:!p&&n&&u.error!==null,feedbackEnabled:r,feedbackDraft:a,feedbackDraftStale:vK(a,m),beginFeedbackDraft:h,addFeedbackAnnotation:g,removeFeedbackAnnotation:_,clearFeedbackDraft:v,pendingActivation:s,requestFeedbackActivation:y,clearFeedbackActivation:b}),[g,d,u.error,u.isLoading,h,b,v,m,n,a,r,p,s,_,y]);return(0,L.jsx)(yK.Provider,{value:x,children:i})}function SK(){let e=(0,I.useContext)(yK);if(e===null)throw Error(`Workspace Artifact runtime is unavailable`);return e}function CK({relayProjectRef:e}){return(0,I.useEffect)(()=>{window.location.replace(tn(e))},[e]),null}async function wK(e,t,n,r=!1){let i;try{await _b(X,e,{signal:t,diagnostics:n});return}catch(e){if(!Yt(e))throw new JR(`session_current`,e,n);i=e}if(r)throw new JR(`browser_session_restore`,i,n);let a;try{a=await hb(X,e,{signal:t,diagnostics:n})}catch(e){throw new JR(`authorization_bootstrap`,e,n)}let o;try{o=await KR({appId:a.app_id,state:a.state})}catch(e){throw new JR(`h5_request_access`,e,n)}try{await gb(X,{relayProjectRef:e,state:a.state,authorizationCode:o},{signal:t,diagnostics:n})}catch(e){throw new JR(`authorization_exchange`,e,n)}}async function TK(e,t,n){try{await xb(X,{relayProjectRef:e,handoffToken:t},{diagnostics:n})}catch(t){try{await _b(X,e,{diagnostics:n});return}catch{throw new JR(`browser_handoff_consume`,t,n)}}}async function EK(e,t,n){try{return await n()}catch(n){throw new JR(e,n,t)}}function DK({relayProjectRef:e,diagnostics:t,browserEntry:n}){let r=(0,I.useMemo)(()=>mb(X,e),[e]),[i,a]=(0,I.useState)({kind:`loading`}),o=(0,I.useRef)(null),s=(0,I.useRef)(!1),c=(0,I.useRef)(!1);(0,I.useEffect)(()=>{let r=new AbortController;return a({kind:`loading`}),(n.handoffToken!==void 0&&!s.current?(o.current??=TK(e,n.handoffToken,t),o.current.then(()=>{s.current=!0})):wK(e,r.signal,t,!0)).then(()=>{r.signal.aborted||a({kind:`ready`})}).catch(e=>{r.signal.aborted||a({kind:`error`,...oz(e,t)})}),()=>r.abort()},[n.handoffToken,t,e]);let l=i.kind===`ready`,u=R({queryKey:WG.artifacts(e),queryFn:({signal:e})=>EK(`artifacts`,t,()=>r.getArtifacts({signal:e,diagnostics:t})),enabled:l}),d=u.data?.artifact,f=d?.status===`declared`;(0,I.useEffect)(()=>{if(!(!l||!f))return bK({renew:()=>r.renewArtifactPreviewLease({diagnostics:t}),onInitialRenewed:()=>{u.refetch()}})},[f,u.refetch,r,t,l]);let p=d?.status===`declared`&&d.preview.status===`ready`&&d.preview.url!==void 0?`${d.preview_generation}:${d.preview.url}`:null,m=R({queryKey:WG.artifactPreviewSession(e,p??`not-ready`),queryFn:()=>EK(`artifact_preview_session`,t,()=>r.issueArtifactPreviewSession(void 0,void 0,{diagnostics:t})),enabled:l&&p!==null,staleTime:1/0,retry:1,refetchInterval:e=>oK(e.state.data)}),h=m.data,g=m.error===null?aK(h):`${$(m.error)} Diagnostic ID: ${t.diagnosticId}`,_=sK(h);return(0,I.useEffect)(()=>{_===void 0||c.current||(c.current=!0,window.location.replace(_))},[_]),i.kind===`error`||u.error!==null||m.error!==null||g!==void 0||u.isFetched&&p===null?(0,L.jsx)(`main`,{role:`status`,children:`Artifact preview is unavailable.`}):null}function OK({relayProjectRef:e,diagnostics:t,onDiagnosticsChange:n,initialTab:r,authorizeDocument:i,openArtifactInBrowser:a}){let o=(0,I.useMemo)(()=>mb(X,e),[e]),s=et(),c=_z(),[l,u]=(0,I.useState)({kind:`loading`}),[d,f]=(0,I.useState)(r),[p,m]=(0,I.useState)(),[h,g]=(0,I.useState)(``),[_,v]=(0,I.useState)(!1),[y,b]=(0,I.useState)(),[x,S]=(0,I.useState)(),[C,w]=(0,I.useState)(a),[T,E]=(0,I.useState)(!1),D=(0,I.useRef)(!1),[O,k]=(0,I.useState)(),[A,ee]=(0,I.useState)(0),te=(0,I.useRef)(null),j=(0,I.useRef)(null),ne=(0,I.useRef)(0),M=(0,I.useRef)(t),N=(0,I.useRef)(!1),P=(t,n)=>wK(e,t,n);(0,I.useEffect)(()=>{let e=new AbortController;u({kind:`loading`}),b(void 0);let t=M.current;return P(e.signal,t).then(()=>{e.signal.aborted||u({kind:`ready`})}).catch(n=>{e.signal.aborted||u({kind:`error`,...oz(n,t)})}),()=>e.abort()},[e]),(0,I.useEffect)(()=>()=>{te.current?.abort()},[]);let re=l.kind===`ready`;(0,I.useEffect)(()=>{if(!re||!i||N.current)return;N.current=!0;let t=M.current,n=c.notify({tone:`loading`,title:`Authorizing Feishu Docs`});VG(e,t).then(()=>{let e=new URL(window.location.href);e.searchParams.delete(`authorize`),window.history.replaceState(null,``,`${e.pathname}${e.search}${e.hash}`),c.update(n,{tone:`success`,title:`Feishu Docs authorized`,message:`Document access is ready. Retry the question or task that needed access.`})}).catch(e=>{let r=oz(e,t);c.update(n,{tone:`error`,title:`Feishu Docs authorization failed`,message:`${r.message} Diagnostic ID: ${r.diagnosticId}`})})},[i,c,e,re]);let ie=R({queryKey:WG.bootstrap(e),queryFn:({signal:e})=>EK(`host_bootstrap`,M.current,()=>o.getBootstrap({signal:e,diagnostics:M.current})),enabled:re}),ae=ie.data?.workspace.capabilities.sse===!0;(0,I.useEffect)(()=>{!re||!ae||ie.data===void 0||k(t=>t?.relayProjectRef===e?t:{relayProjectRef:e,cursor:ie.data.event_cursor})},[ie.data,ae,e,re]),(0,I.useEffect)(()=>{if(!re||!ae||O?.relayProjectRef!==e)return;let t;try{t=o.connectEvents({after:O.cursor,onReady:t=>{t.payload.replay.status===`missed`&&GG(s,e)},onInvalidate:t=>{KG(s,e,t)}})}catch{j.current=null;return}return j.current=t,()=>{j.current===t&&(j.current=null),t.close()}},[o,O,A,ae,s,e,re]),(0,I.useEffect)(()=>{let t=()=>{let t=Date.now(),n=j.current;qG({streamStatus:n?.status(),nowMs:t,lastRefreshAtMs:ne.current})&&(ne.current=t,GG(s,e),n===null?ee(e=>e+1):n.retryNow())},n=()=>{document.visibilityState!==`hidden`&&t()};return window.addEventListener(`focus`,t),window.addEventListener(`online`,t),document.addEventListener(`visibilitychange`,n),()=>{window.removeEventListener(`focus`,t),window.removeEventListener(`online`,t),document.removeEventListener(`visibilitychange`,n)}},[s,e]);let oe=R({queryKey:WG.scratchpad(e),queryFn:({signal:e})=>EK(`scratchpad`,M.current,()=>o.getScratchpad({signal:e,diagnostics:M.current})),enabled:re}),se=R({queryKey:WG.worklist(e),queryFn:({signal:e})=>EK(`worklist`,M.current,()=>o.getWorklist({signal:e,diagnostics:M.current})),enabled:re}),ce=R({queryKey:WG.executionStatus(e),queryFn:({signal:e})=>EK(`execution_status`,M.current,()=>o.getExecutionStatus({signal:e,diagnostics:M.current})),enabled:re}),le=R({queryKey:WG.artifacts(e),queryFn:({signal:e})=>EK(`artifacts`,M.current,()=>o.getArtifacts({signal:e,diagnostics:M.current})),enabled:re,refetchInterval:C&&d===`artifacts`?1500:!1}),ue=R({queryKey:WG.activeClarification(e),queryFn:({signal:e})=>EK(`clarification_active`,M.current,()=>o.getActiveClarification({signal:e,diagnostics:M.current})),enabled:re}),de=R({queryKey:WG.activeApproval(e),queryFn:({signal:e})=>EK(`approval_active`,M.current,()=>o.getActiveApproval({signal:e,diagnostics:M.current})),enabled:re}),fe=ue.data??ie.data?.snapshots.active_clarification??{state:`none`},pe=fe.state===`active`?fe.round.id:void 0,me=R({queryKey:WG.clarificationMessages(e,pe??`none`),queryFn:({signal:e})=>EK(`clarification_messages`,M.current,()=>o.getClarificationRoundMessages(pe,{signal:e,diagnostics:M.current})),enabled:re&&pe!==void 0}),he=de.data??ie.data?.snapshots.active_approval??{state:`none`},ge=le.data?.artifact,_e=ge?.status===`declared`;(0,I.useEffect)(()=>{if(!(!re||!_e))return bK({renew:()=>o.renewArtifactPreviewLease({diagnostics:M.current}),onInitialRenewed:()=>{le.refetch()}})},[_e,le.refetch,o,re]);let F=ge?.status===`declared`&&ge.preview.status===`ready`&&ge.preview.url!==void 0?`${ge.preview_generation}:${ge.preview.url}`:null,ve=R({queryKey:WG.artifactPreviewSession(e,F??`not-ready`),queryFn:()=>EK(`artifact_preview_session`,M.current,()=>o.issueArtifactPreviewSession(void 0,void 0,{diagnostics:M.current})),enabled:re&&d===`artifacts`&&F!==null,staleTime:1/0,retry:1,refetchInterval:e=>oK(e.state.data)}),ye=ve.data,be=ve.error===null?aK(ye):`${$(ve.error)} Diagnostic ID: ${M.current.diagnosticId}`,xe=sK(ye),Se=gt({mutationFn:()=>az(`browser_handoff_create`,async t=>{let n=await bb(X,e,{diagnostics:t});return mK({origin:window.location.origin,relayProjectRef:e,handoffToken:n.handoff_token})}),onSuccess:e=>{hK(e)?S(void 0):(S(e),c.notify({tone:`warning`,title:`Browser handoff ready`,message:`Click Open in browser again to continue in your system browser.`}))},onError:e=>{c.notify({tone:`error`,title:`Browser handoff failed`,message:iz(e,M.current)})}}),Ce=(0,I.useCallback)(()=>{D.current=!0,w(!1)},[]),we=(0,I.useCallback)(()=>{if(Ce(),!Se.isPending){if(F===null){c.notify({tone:`warning`,title:`Artifact preview is not ready`,message:`Open it after the current Artifact preview becomes available.`});return}S(void 0),Se.mutate()}},[Ce,Se.isPending,Se.mutate,F,c]);(0,I.useEffect)(()=>{if(!C||!re)return;let e=window.setTimeout(()=>E(!0),2e4);return()=>window.clearTimeout(e)},[C,re]),(0,I.useEffect)(()=>{if(!(!C||D.current)){if(d!==`artifacts`||l.kind===`error`){Ce();return}if(re){if(le.isError||T){Ce(),c.notify({tone:`warning`,title:`Artifact browser entry unavailable`,message:le.isError?iz(le.error,M.current):`Preview preparation timed out. Use Open in browser when it is ready. Diagnostic ID: ${M.current.diagnosticId}`});return}!le.isFetchedAfterMount||le.isFetching||(F!==null||ge!==void 0&&(ge.status!==`declared`||ge.preview.status===`failed`))&&we()}}},[d,ge,le.error,le.isError,le.isFetchedAfterMount,le.isFetching,C,T,Ce,c,F,we,re,l.kind]),(0,I.useEffect)(()=>{g(``)},[pe]);let Te=eK({client:o,relayProjectRef:e,diagnostics:M.current,scratchpad:oe.data??AV(),execution:ce.data??PV(new Date().toISOString()),clarification:fe,approval:he}),Ee=gt({mutationFn:({roundId:e,body:t})=>az(`clarification_message_send`,n=>o.sendClarificationRoundMessage(e,{body:t},void 0,{diagnostics:n})),onSuccess:t=>{if(KG(s,e,t.invalidates),t.disposition.kind===`created`){g(``);return}c.notify({tone:`warning`,title:`Reply not sent`,message:`The clarification changed. Review the current request and try again.`})},onError:e=>{c.notify({tone:`error`,title:`Reply send failed`,message:iz(e,M.current)})}}),De=gt({mutationFn:e=>az(`clarification_submit`,t=>o.submitClarificationRound(e,fe.state===`active`&&fe.round.answer_revision!==void 0?{expected_answer_revision:fe.round.answer_revision}:{},void 0,{diagnostics:t})),onMutate:()=>c.notify({tone:`loading`,title:`Submitting reply`}),onSuccess:(t,n,r)=>{KG(s,e,t.invalidates);let i=t.disposition.kind===`accepted`,a=t.disposition.kind===`already_submitted`;c.update(r,{tone:i?`success`:a?`info`:`warning`,title:i?`Reply submitted`:a?`Reply already submitted`:`Reply not submitted`,...i||a?{}:{message:t.disposition.kind===`no_answers`?`Add an answer before submitting.`:`The clarification or its answers changed. Review the current request and submit again.`}})},onError:(e,t,n)=>{c.update(n,{tone:`error`,title:`Reply submit failed`,message:iz(e,M.current)})}}),Oe=gt({mutationFn:({approvalId:e,decisionId:t})=>az(`approval_decide`,n=>o.decideApproval(e,{decision_id:t},void 0,{diagnostics:n})),onMutate:()=>c.notify({tone:`loading`,title:`Sending decision`}),onSuccess:(t,n,r)=>{KG(s,e,t.invalidates);let i=t.disposition.kind===`accepted`;c.update(r,{tone:i?`success`:`warning`,title:i?`Decision sent`:`Decision not applied`,...i?{}:{message:`The approval changed. Review its current state.`}})},onError:(e,t,n)=>{c.update(n,{tone:`error`,title:`Decision failed`,message:iz(e,M.current)})}}),ke=se.data;(0,I.useEffect)(()=>{if(ke===void 0)return;let e=tB(ke);m(t=>t!==void 0&&e.some(e=>e.id===t)?t:void 0)},[ke]);let Ae=R({queryKey:WG.taskDetail(e,p??`none`),queryFn:({signal:e})=>EK(`task_detail`,M.current,()=>o.getTaskDetail(p,{signal:e,diagnostics:M.current})),enabled:re&&p!==void 0}),je=R({queryKey:WG.taskRunResults(e,p??`none`),queryFn:({signal:e})=>EK(`task_run_results`,M.current,()=>o.getTaskRunResults(p,{limit:5},{signal:e,diagnostics:M.current})),enabled:re&&p!==void 0}),Me=ie.data!==void 0&&oe.data!==void 0&&se.data!==void 0&&ce.data!==void 0&&ue.data!==void 0&&de.data!==void 0&&(pe===void 0||me.data!==void 0),Ne=()=>{if(_)return;te.current?.abort();let t=new AbortController;te.current=t;let r=XR();M.current=r,n(r),v(!0),b(void 0),(async()=>{try{if(await P(t.signal,r),t.signal.aborted)return;u({kind:`ready`});let n=le.refetch({throwOnError:!0});await Promise.all([s.invalidateQueries({queryKey:WG.supporting(e)}),ie.refetch({throwOnError:!0}),oe.refetch({throwOnError:!0}),se.refetch({throwOnError:!0}),ce.refetch({throwOnError:!0}),n,ue.refetch({throwOnError:!0}),de.refetch({throwOnError:!0}),...pe===void 0?[]:[me.refetch({throwOnError:!0})],...p===void 0?[]:[Ae.refetch({throwOnError:!0}),je.refetch({throwOnError:!0})]]);let i=(await n).data?.artifact,a=i?.status===`declared`&&i.preview.status===`ready`&&i.preview.url!==void 0?`${i.preview_generation}:${i.preview.url}`:null;d===`artifacts`&&F!==null&&a===F&&await ve.refetch({throwOnError:!0})}catch(e){if(t.signal.aborted)return;let n=oz(e,r);Me?b(n):u({kind:`error`,...n})}finally{t.signal.aborted||(te.current=null,v(!1))}})()},Pe=e=>{m(e),f(`work`)},Fe=ie.data?.workspace.project.display_name??null,Ie;if(ie.data===void 0||oe.data===void 0||se.data===void 0||ce.data===void 0||ue.data===void 0||de.data===void 0||pe!==void 0&&me.data===void 0){let e=ie.error??oe.error??se.error??ce.error??ue.error??de.error??me.error;Ie=l.kind===`error`?l:e===null?{kind:`loading`}:{kind:`error`,...oz(e,t)}}else{let e=ie.data,t=oe.data,n=se.data,r=ce.data,i=y??(l.kind===`error`?l:void 0),a=eB(n,p),o=dB(Ae.data,je.data,{includeRetryAction:!1}),s=p===void 0?void 0:Ae.error!==null||je.error!==null?{title:`Task details unavailable`,description:`Refresh this project and try again.`}:o===void 0?{title:`Loading task details`,description:`Reading the latest task contract and Run results.`}:void 0,c=r.active_activity?.activity_kind===`run`||r.active_activities?.some(e=>e.activity_kind===`run`)===!0,u=kz(ge,{...xe===void 0?{}:{previewUrl:xe},pending:F!==null&&xe===void 0&&be===void 0,...be===void 0?{}:{errorMessage:be}},{runActive:c}),f=ge===void 0&&le.error!==null?`${$(le.error)} Diagnostic ID: ${M.current.diagnosticId}`:void 0;Ie={kind:`ready`,projectName:e.workspace.project.display_name,accountName:e.session.account.display_name,membershipLabel:e.session.membership.label,hostVersion:e.workspace.server.version,activeTab:d,refreshing:_,...i===void 0?{}:{refreshMessage:i},projectStatus:Ez(r),scratchpad:$z(t),activeClarification:Rz(fe),clarificationMessages:(me.data?.items??[]).map(e=>Lz(e)),roundDraft:h,activeApproval:Hz(he),worklist:{modules:a.modules,taskCount:a.taskCount,detailOpen:p!==void 0,...o===void 0?{}:{detail:o},...s===void 0?{}:{detailPlaceholder:s}},artifacts:u,...f===void 0?{}:{artifactError:f}}}return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(Ab,{route:{kind:`feishu_project`,relayProjectRef:e},projectDisplayName:Fe}),(0,L.jsx)(NH,{state:Ie,supportingContent:d===`timeline`?(0,L.jsx)(XG,{client:o,relayProjectRef:e,onSelectTask:Pe},d):void 0,onRetry:Ne,onBrandClick:()=>window.location.reload(),onSelectTab:e=>{S(void 0),m(void 0),f(e)},onSelectTask:Pe,onCloseTask:()=>m(void 0),onOpenInBrowser:we,...x===void 0?{}:{browserOpenUrl:x,onBrowserOpenLinkClick:()=>S(void 0)},onSubmitScratchpad:Te.submit,onRoundDraftChange:g,onSendRoundMessage:()=>{pe!==void 0&&h.trim()!==``&&Ee.mutate({roundId:pe,body:h.trim()})},onSubmitRound:()=>{pe!==void 0&&De.mutate(pe)},onDecideApproval:(e,t)=>Oe.mutate({approvalId:e,decisionId:t}),scratchpadSubmitPending:Te.submitPending,scratchpadSyncPending:Te.syncPending,scratchpadActionsDisabled:Te.actionsDisabled,roundSendPending:Ee.isPending,roundSubmitPending:De.isPending,approvalDecisionPending:Oe.isPending,browserOpenPending:Se.isPending})]})}var kK=class extends I.Component{state={};static getDerivedStateFromError(e){return{error:e}}componentDidCatch(){}render(){return this.state.error===void 0?this.props.children:this.props.artifactPresentation===!0?(0,L.jsx)(`main`,{role:`status`,children:`Artifact preview is unavailable.`}):(0,L.jsx)(NH,{state:{kind:`error`,...oz(new JR(`browser_runtime`,this.state.error,this.props.diagnostics),this.props.diagnostics)},onRetry:()=>window.location.reload(),onBrandClick:()=>window.location.reload(),onSelectTab:()=>void 0,onSelectTask:()=>void 0})}};function AK(e){let t=new URLSearchParams(e).getAll(`view`);return t.length===1&&(t[0]===`work`||t[0]===`artifacts`||t[0]===`timeline`)?t[0]:`project`}function jK(e){let t=new URLSearchParams(e).getAll(`authorize`);return t.length===1&&t[0]===`docx`}function MK({relayProjectRef:e}){let[t,n]=(0,I.useState)(XR),r=(0,I.useMemo)(()=>fK(window.location),[]),i=(0,I.useMemo)(()=>AK(window.location.search),[]),a=(0,I.useMemo)(()=>nK(window.location.search),[]),o=(0,I.useMemo)(()=>jK(window.location.search),[]),s=(0,I.useMemo)(()=>uK(window.location.search),[]);return(0,I.useEffect)(()=>{r.shouldClearFragment&&pK(window.location,window.history),s&&dK(window.location,window.history)},[r.shouldClearFragment,s]),(0,L.jsx)(kK,{diagnostics:t,artifactPresentation:r.systemBrowser,children:r.systemBrowser?(0,L.jsx)(DK,{browserEntry:r,diagnostics:t,relayProjectRef:e}):a===void 0?(0,L.jsx)(OK,{diagnostics:t,initialTab:i,authorizeDocument:o,openArtifactInBrowser:s,relayProjectRef:e,onDiagnosticsChange:n},e):(0,L.jsx)(rK,{project:e,authorizationRef:a,prepareSession:wK})})}function NK(){Q(`/projects`,{replace:!0})}function PK(){let e=R({queryKey:Z.me,queryFn:()=>Wn(X)}),t=eH(NK);return(0,I.useEffect)(()=>{e.data!==void 0&&NK()},[e.data]),e.isLoading||e.data!==void 0?null:(0,L.jsx)(KH,{...t,onBrandClick:()=>Q(`/`),sessionError:e.error===null||Yt(e.error)?null:`Tutti could not check your current session. You can still try signing in.`})}var FK=`/account/local-console`,IK=/^[A-Za-z0-9_-]{32,128}$/u;function LK(e){return IK.test(e)}function RK(e){if(!/^[1-9]\d{0,4}$/u.test(e))return null;let t=Number(e);return Number.isInteger(t)&&t<=65535?t:null}function zK(e){if(!LK(e.accessToken))throw Error(`Local Console account continuation token is invalid.`);let t=new URL(e.localOrigin),n=RK(t.port);if(t.protocol!==`http:`||t.hostname!==`127.0.0.1`||n===null)throw Error(`Local Console account continuation requires an exact loopback origin.`);let r=new URL(FK,e.webBaseUrl);return r.search=``,r.hash=new URLSearchParams({access_token:e.accessToken,local_port:String(n),...e.intent===`sign_out`?{intent:`sign_out`}:{}}).toString(),r.toString()}function BK(e){let t=e.startsWith(`#`)?e.slice(1):e,n=new URLSearchParams(t),r=n.getAll(`intent`),i=r.length===0?`authenticate`:r[0];if(n.size!==2&&n.size!==3||n.getAll(`access_token`).length!==1||n.getAll(`local_port`).length!==1||r.length>1||n.size===3&&r.length!==1||n.size===2&&r.length!==0||i!==`authenticate`&&i!==`sign_out`)return null;let a=n.get(`access_token`)??``,o=RK(n.get(`local_port`)??``);return!LK(a)||o===null?null:{accessToken:a,localPort:o,intent:i}}function VK(e,t){let n=t.trim();if(n===``||n.length>80)throw Error(`Local Console account display name is invalid.`);let r=new URL(`http://127.0.0.1:${e.localPort}/console`);return r.hash=new URLSearchParams({access_token:e.accessToken,account_display_name:n}).toString(),r.toString()}function HK(e){let t=e.startsWith(`#`)?e.slice(1):e,n=new URLSearchParams(t);if(n.size!==1&&n.size!==2||n.getAll(`access_token`).length!==1||n.getAll(`account_display_name`).length>1||n.size===2&&n.getAll(`account_display_name`).length!==1)return null;let r=n.get(`access_token`)??``,i=n.get(`account_display_name`)?.trim();return!LK(r)||i!==void 0&&(i===``||i.length>80)?null:{accessToken:r,...i===void 0?{}:{accountDisplayName:i}}}function UK(e){let t=e.trim().replace(/[\\/]+$/u,``);return t===``?``:t.slice(Math.max(t.lastIndexOf(`/`),t.lastIndexOf(`\\`))+1).slice(0,80)}function WK(e){return e.surface===`feishu`&&e.existingProjectId===void 0?{display_name:UK(e.workspacePath)||`Untitled project`}:{display_name:e.displayName.trim(),...e.description.trim()?{description:e.description.trim()}:{}}}function GK(e=``){return{workspacePath:e,displayName:UK(e),description:``,baseUrl:``,apiKey:``,model:``,surface:`standalone`,accessMode:`managed`}}function KK(e,t,n){return{...e,workspacePath:t,...n?{}:{displayName:UK(t)}}}function qK(e){switch(e){case`console_busy`:return`Wait for the current Local Console action to finish.`;case`host_busy`:return`Wait for active project work or questions to finish.`;case`host_identity_unverified`:return`Stop or reopen the affected project before updating.`;case`update_in_progress`:return`Another Tutti update is already in progress.`;case`update_recovery_required`:return`Run tutti again after closing this page to recover the interrupted update.`;case`global_prefix_read_only`:return`Use your normal terminal installation environment to update Tutti.`;case`npm_install_failed`:return`The npm installation failed. Refresh to check whether it can be retried.`;case`post_install_validation_failed`:return`The installed package could not be verified. Run tutti again to recover.`;case`completion_start_failed`:case`completion_failed`:case`worker_crashed`:return`The update was interrupted. Run tutti again to recover.`;case`host_restore_failed`:return`Tutti updated, but one or more local projects could not restart.`;case`installation_not_global`:case`custom_home`:case`npm_unavailable`:case`npm_global_root_mismatch`:case`npm_version_unsupported`:case`registry_unavailable`:case void 0:return`Tutti cannot update from this Local Console.`}}function JK(e){if(e.status!==`updating`)return e.status===`blocked`||e.status===`failed`?qK(e.reason_code):void 0;switch(e.phase){case`stopping_hosts`:return`Safely stopping online projects.`;case`installing`:return`Installing the new Tutti version.`;case`restarting`:return`Restarting local projects.`;case`preparing`:case void 0:return`Preparing the update.`}}function YK(e){let t=e.update;if(t===null||t.status===`up_to_date`||t.latest_version===void 0&&t.status!==`updating`&&t.status!==`failed`)return;let n=e.checking&&t.status===`ready`?`Checking update readiness.`:JK(t);return{label:t.status===`updating`?`Updating…`:`Restart and Update`,disabled:t.status!==`ready`||!t.can_update||e.checking||e.starting,...n===void 0?{}:{description:n}}}function XK(e,t){let n=e.replace(/\s+/g,` `).trim();return n.length===0?t:n}function ZK({inviterName:e,projectName:t,joinUrl:n}){return`${XK(e,`A teammate`)} invited you to join the Tutti project “${XK(t,`Untitled project`)}”.\n\nOpen the invitation link:\n${n.trim()}`}function QK(e){return new Gt({code:e,statusCode:409,message:e,retryable:!1})}async function $K(e){let{client:t,prepared:n,signal:r}=e,i=n.draft.request_ref,a=t=>{if(r.throwIfAborted(),t.draft.request_ref!==i||t.draft.project_id!==n.draft.project_id||t.draft.surface!==n.draft.surface||t.relay_origin!==n.relay_origin||t.preparation.installation_ref!==n.preparation.installation_ref)throw QK(`managed_preparation_mismatch`);return e.onRead(t),t};e.onStage(`checking`);let o=a(await t.reconcileManagedProject(i,AbortSignal.any([r,AbortSignal.timeout(15e3)])));if(o.draft.state===`awaiting_authorization`)throw QK(`authority_target_not_found`);if(o.draft.state===`validation_unknown`||o.draft.state===`validation_failed`||(o.draft.state===`prepared`&&(e.onStage(`validating`),o=a(await t.validateManagedProject(i,AbortSignal.any([r,AbortSignal.timeout(9e4)])))),o.draft.state!==`validated`&&o.draft.state!==`registered`))throw QK(`managed_${o.draft.state}`);r.throwIfAborted(),e.onStage(`launching`);let s=await t.launchManagedProject(i,AbortSignal.any([r,AbortSignal.timeout(12e4)]));return r.throwIfAborted(),s}var eq=GK();function tq(e,t){let n={projectId:e.project_id,projectName:e.display_name};return t.state===`connected`?{...n,state:`connected`}:t.state===`account_handoff_required`?{...n,state:`account_handoff_required`}:t.visibility===`visible_once`?{...n,state:`pairing_required`,command:t.command}:{...n,state:`not_recoverable`}}function nq(){return yV}function rq(){window.history.replaceState(null,``,`${window.location.pathname}${window.location.search}`)}function iq(){let e=window.open(`about:blank`,`_blank`);return e!==null&&(e.opener=null),e}function aq({connection:e,renderSurface:t,initialCreateOpen:n=!1}={}){let r=oq(e,n);return(0,L.jsx)(WH,{...r,...t?{renderSurface:e=>t(r,e)}:{}})}function oq(e,t=!1){let n=_z(),r=(0,I.useRef)(void 0),i=(0,I.useRef)(void 0),a=(0,I.useRef)(!1),o=(0,I.useRef)(!1),s=(0,I.useRef)(null),[c,l]=(0,I.useState)(null),[u,d]=(0,I.useState)(`Checking credit…`),f=(0,I.useRef)(bG(window.location.hash)),[p,m]=(0,I.useState)(null),h=(0,I.useRef)(null),g=(0,I.useRef)(!1),_=(0,I.useRef)(0),v=(0,I.useRef)(null),y=(0,I.useRef)(!1),b=(0,I.useMemo)(()=>e?.client??Zy({baseUrl:window.location.origin,csrfToken:()=>r.current,contextToken:()=>i.current}),[e?.client]),[x,S]=(0,I.useState)(null),[C,w]=(0,I.useState)(null),[T,E]=(0,I.useState)(eq),D=(0,I.useRef)(!1),O=(0,I.useRef)({baseUrl:``,apiKey:``}),[k,A]=(0,I.useState)([]),[ee,te]=(0,I.useState)(t),[j,ne]=(0,I.useState)(`surface`),[M,N]=(0,I.useState)([]),[P,re]=(0,I.useState)(!0),ie=(0,I.useRef)(!1),[ae,oe]=(0,I.useState)(!1),[se,ce]=(0,I.useState)(!1),[le,ue]=(0,I.useState)(null),[de,fe]=(0,I.useState)(null),[pe,me]=(0,I.useState)(!1),[he,ge]=(0,I.useState)(!1),[_e,F]=(0,I.useState)(!1),[ve,ye]=(0,I.useState)(null);async function be(){if(!(r.current===void 0||ie.current)){ie.current=!0,re(!0);try{N((await b.getProjects()).projects)}catch(t){if(e?.signal.aborted)return;n.notify({tone:`error`,title:`Projects unavailable`,message:$(t)})}finally{ie.current=!1,re(!1)}}}async function xe(e={}){h.current?.abort();let t=new AbortController;h.current=t,me(!0);try{fe(await b.getPackageUpdate({refresh:e.refresh===!0,signal:t.signal}))}catch{}finally{h.current===t&&(h.current=null,me(!1))}}(0,I.useEffect)(()=>{a.current||(a.current=!0,(async()=>{try{let t=e?null:HK(window.location.hash);if(t!==null){rq();let e=await b.exchangeSession(t.accessToken,t.accountDisplayName);r.current=e.csrf_token,i.current=e.context_token}let a=e?.bootstrap??await b.getBootstrap();if(r.current=a.csrf_token,a.account_gate?.status===`required`){let e=await b.createAccountContinuation();window.location.replace(zK({accessToken:e.access_token,localOrigin:window.location.origin,webBaseUrl:nq()}));return}if(S(a),w(null),await Promise.all([be(),xe()]),f.current!==null)try{let e=await b.readManagedProject(f.current);CG(e),m(e),E({...GK(e.draft.workspace_path),displayName:e.draft.display_name,description:e.draft.description??``,surface:e.draft.surface,...e.draft.existing_project_id===void 0?{}:{existingProjectId:e.draft.existing_project_id}}),te(!0),ne(`provider`)}catch(e){n.notify({tone:`warning`,title:`Trial request could not be restored`,message:wG(e)})}}catch(e){re(!1),w($(e))}})())},[b]),(0,I.useEffect)(()=>()=>{h.current?.abort(),s.current?.abort()},[]),(0,I.useEffect)(()=>{if(d(`Checking credit…`),!ee||j!==`provider`||p!==null||x===null)return;let e=new AbortController;return b.readAccountUsage(e.signal).then(t=>{e.signal.aborted||d(t.state===`ready`?`${t.remaining.toLocaleString(`en`)} test credit remaining`:`No test credit account yet`)}).catch(()=>{e.signal.aborted||d(`Credit unavailable · Check Account`)}),()=>e.abort()},[b,ee,j,p,x]),(0,I.useEffect)(()=>{if(x===null||e)return;let t=window.setInterval(()=>{b.heartbeat().catch(()=>void 0)},6e4);return()=>window.clearInterval(t)},[x,b,e]),(0,I.useEffect)(()=>{if(!e||!x)return;let t=()=>{document.visibilityState!==`hidden`&&be()},n=window.setInterval(t,3e4);return window.addEventListener(`focus`,t),()=>{window.clearInterval(n),window.removeEventListener(`focus`,t)}},[e,x,b]),(0,I.useEffect)(()=>{if(x===null||de?.latest_version===void 0||de.status===`up_to_date`||de.status===`failed`)return;let e=window.setInterval(()=>void xe(),de.status===`updating`?2e3:15e3);return()=>window.clearInterval(e)},[x,de?.latest_version,de?.status]),(0,I.useEffect)(()=>{let e=x?.package_update_completion;e===void 0||y.current||(y.current=!0,n.notify(e.restart_failure_count===0?{tone:`success`,title:`Tutti updated to ${e.target_version}`}:{tone:`warning`,title:`Tutti updated to ${e.target_version}`,message:`${e.restart_failure_count} local project${e.restart_failure_count===1?``:`s`} could not restart.`}))},[x,n]),(0,I.useEffect)(()=>{if(de?.status!==`failed`)return;let e=de.reason_code??`update_failed`;v.current!==e&&(v.current=e,n.notify({tone:`error`,title:`Tutti update did not complete`,message:qK(de.reason_code)}))},[n,de]);async function Se(){try{let e=await b.pickFolder();e.kind===`selected`?Ie({workspacePath:e.path}):e.kind===`unavailable`&&n.notify({tone:`info`,title:`Use a folder path`,message:e.message})}catch(e){n.notify({tone:`error`,title:`Folder picker unavailable`,message:$(e)})}}async function Ce(){let e={baseUrl:T.baseUrl.trim(),apiKey:T.apiKey.trim()},t=()=>O.current.baseUrl.trim()===e.baseUrl&&O.current.apiKey.trim()===e.apiKey;oe(!0);try{let r=await b.discoverModels({base_url:e.baseUrl,api_key:e.apiKey});if(!t())return;r.kind===`ok`?(A(r.models),E(e=>({...e,model:``}))):(A([]),n.notify({tone:`error`,title:`Provider check failed`,message:r.reason===`model_list_empty`?`The endpoint did not return any available models.`:`Check the Base URL and API key, then try again.`}))}catch(e){if(!t())return;A([]),n.notify({tone:`error`,title:`Provider check failed`,message:$(e)})}finally{oe(!1)}}async function we(){if(!o.current){o.current=!0,ce(!0);try{let e=await b.launchProject({workspace_path:T.workspacePath.trim(),surface:T.surface,project:WK(T),provider:{base_url:T.baseUrl.trim(),api_key:T.apiKey.trim(),model:T.model.trim()}});Le(),e.join_url===void 0?(await be(),Oe(e.project,e.feishu_setup)):window.location.assign(e.join_url)}catch(e){n.notify({tone:`error`,title:`Launch failed`,message:$(e)})}finally{o.current=!1,ce(!1)}}}async function Te(){if(o.current)return;o.current=!0;let t=new AbortController;s.current=t,ce(!0);let r=null;try{let n=await b.prepareManagedProject({request_ref:p?.draft.request_ref??Vt(),workspace_path:T.workspacePath.trim(),...WK(T),surface:T.surface,...T.existingProjectId===void 0?{}:{existing_project_id:T.existingProjectId}},t.signal);t.signal.throwIfAborted(),CG(n),m(n),E(e=>({...e,displayName:n.draft.display_name,description:n.draft.description??``})),r=n,window.history.replaceState(null,``,`${e?window.location.pathname+window.location.search:`/console`}#managed_request=${n.draft.request_ref}`)}catch(e){if(t.signal.aborted)return;n.notify({tone:`error`,title:`Trial preparation failed`,message:wG(e)})}finally{o.current=!1,ce(!1),s.current===t&&(s.current=null)}r!==null&&!t.signal.aborted&&Ee(r)}async function Ee(e=p){if(o.current||s.current||e===null)return;let t=new AbortController;s.current=t;try{e.draft.state===`awaiting_authorization`&&(o.current=!0,ce(!0),l(`checking`),await b.authorizeManagedProject(e.draft.request_ref,t.signal),t.signal.throwIfAborted());let n=await $K({client:b,prepared:e,signal:t.signal,onRead:m,onStage:e=>{l(e),o.current=!0,ce(!0)}});Le(),n.join_url===void 0?(await be(),Oe(n.project,n.feishu_setup)):window.location.assign(n.join_url)}catch(e){t.signal.aborted||n.notify({tone:`error`,title:`Managed launch paused`,message:wG(e)})}finally{s.current===t&&(s.current=null,o.current=!1,ce(!1),l(null))}}async function De(e){ue(e.project_id);try{let t=await b.launchProject({workspace_path:e.workspace_path});await be(),e.surface_profile.kind===`feishu`?Oe(t.project,t.feishu_setup):n.notify({tone:`success`,title:`${e.display_name} is ready`})}catch(e){let t=e instanceof Gt&&e.code===`provider_configuration_required`;n.notify({tone:t?`warning`:`error`,title:t?`Provider required`:`Launch failed`,message:t?`Use New project with this folder to update its Provider configuration.`:$(e)})}finally{ue(null)}}function Oe(e,t){let n=++_.current;if(t!==void 0){ye(tq(e,t));return}ye({projectId:e.project_id,projectName:e.display_name,state:`loading`}),b.getFeishuSetup(e.project_id).then(t=>{_.current===n&&ye(tq(e,t))}).catch(t=>{_.current===n&&ye({projectId:e.project_id,projectName:e.display_name,state:`unavailable`,unavailableMessage:$(t)})})}function ke(e){e||(_.current+=1,ye(null))}async function Ae(e){try{await navigator.clipboard.writeText(e),n.notify({tone:`success`,title:`Connection command copied`})}catch{n.notify({tone:`error`,title:`Could not copy connection command`})}}async function je(e){ue(e.project_id);try{let t=await b.refreshInvite(e.project_id);await navigator.clipboard.writeText(ZK({inviterName:``,projectName:e.display_name,joinUrl:t.join_url})),n.notify({tone:`success`,title:`Invitation copied`})}catch(e){n.notify({tone:`error`,title:`Invite unavailable`,message:$(e)})}finally{ue(null)}}async function Me(e){if(e.open_url===void 0)return;let t=iq();ue(e.project_id);try{let r=await b.openProject(e.project_id);N(e=>e.map(e=>e.project_id===r.project.project_id?r.project:e)),t===null?window.location.assign(r.handoff.url):t.location.replace(r.handoff.url),r.host_update===`updated`?n.notify({tone:`success`,title:`${e.display_name} updated`}):r.host_update===`deferred_busy`?n.notify({tone:`info`,title:`Opened without updating`,message:`Try Open again after the current project activity finishes.`}):r.host_update===`deferred_unsupported`?n.notify({tone:`info`,title:`Opened with the current Host`,message:`Stop and Resume this project once to enable safe automatic updates.`}):r.host_update===`deferred_unavailable`&&n.notify({tone:`warning`,title:`Update deferred`,message:`The current Host could not be safely restarted, so the project opened as-is.`})}catch(e){t?.close(),n.notify({tone:`error`,title:`Open failed`,message:$(e)})}finally{ue(null)}}async function Ne(e){ue(e.project_id);try{await b.stopProject(e.project_id),ve?.projectId===e.project_id&&ke(!1),await Promise.all([be(),xe()]),n.notify({tone:`success`,title:`${e.display_name} stopped`})}catch(e){n.notify({tone:`error`,title:`Stop failed`,message:$(e)})}finally{ue(null)}}async function Pe(){if(!(g.current||de?.status!==`ready`||!de.can_update)){g.current=!0,ge(!0);try{fe(await b.startPackageUpdate())}catch(e){e instanceof Gt&&e.statusCode===0?fe({...de,status:`updating`,can_update:!1,phase:`preparing`}):(n.notify({tone:`error`,title:`Update not started`,message:$(e)}),await xe())}finally{g.current=!1,ge(!1)}}}async function Fe(){if(!_e){F(!0);try{let e=await b.createAccountContinuation();window.location.replace(zK({accessToken:e.access_token,localOrigin:window.location.origin,webBaseUrl:nq(),intent:`sign_out`}))}catch(e){F(!1),n.notify({tone:`error`,title:`Sign out failed`,message:$(e)})}}}function Ie(e){if(o.current||s.current)return;p!==null&&(m(null),rq()),e.displayName!==void 0&&(D.current=!0);let t=e.baseUrl!==void 0&&e.baseUrl!==T.baseUrl||e.apiKey!==void 0&&e.apiKey!==T.apiKey;t&&(A([]),O.current={baseUrl:e.baseUrl??T.baseUrl,apiKey:e.apiKey??T.apiKey}),E(n=>({...e.workspacePath===void 0?n:KK(n,e.workspacePath,D.current),...e,...t?{model:``}:{}}))}function Le(){s.current?.abort(),s.current=null,o.current=!1,ce(!1),l(null),m(null),rq(),te(!1),ne(`surface`),A([]),O.current={baseUrl:``,apiKey:``},D.current=!1,E(GK())}function Re(e){if(!e){!ae&&!se&&Le();return}let t=x?.invocation.source===`terminal`?x.invocation.current_directory:``;D.current=!1,O.current={baseUrl:``,apiKey:``},A([]),E(GK(t)),ne(`surface`),te(!0)}function ze(e){o.current||le!==null||(m(null),rq(),E({...GK(e.workspace_path),displayName:e.display_name,surface:e.surface_profile.kind,existingProjectId:e.project_id}),ne(`provider`),te(!0))}function Be(e){if(e.preventDefault(),o.current||s.current||ae)return;if(p!==null){Ee();return}if(!LH(j,T))return;let t=IH(T),n=t[t.indexOf(j)+1];if(n!==void 0){ne(n);return}T.accessMode===`managed`?Te():we()}function Ve(){p!==null||o.current||s.current||ae||ne(e=>{let t=IH(T);return t[Math.max(0,t.indexOf(e)-1)]})}let He=YK({update:de,checking:pe,starting:he});return{...x===null?{}:{version:x.version},accountName:x?.account_gate?.status===`ready`?x.account_gate.account?.display_name??`Signed in`:`Signed in`,projectCenterHref:new URL(`/projects`,yV).toString(),form:T,managedPrepared:p!==null,creditNote:u,onDiscoverModels:()=>void Ce(),models:k,projects:M,projectsLoading:P,sessionLoading:x===null&&C===null,sessionError:C,createOpen:ee,createStep:j,modelDiscoveryPending:ae,launchPending:se,managedStage:c,projectActionPending:le,signOutPending:_e,feishuConnection:ve,...He===void 0?{}:{packageUpdateAction:He},onChange:Ie,onCreateOpenChange:Re,onCreateSubmit:Be,onCreateBack:Ve,onChooseFolder:()=>void Se(),onRefresh:()=>void Promise.all([be(),xe({refresh:!0})]),onLaunchExisting:e=>void De(e),onAuthorizeExisting:ze,onOpenProject:e=>void Me(e),onCopyInvite:e=>void je(e),onConnectFeishu:e=>Oe(e),onFeishuConnectionOpenChange:ke,onCopyFeishuCommand:e=>void Ae(e),onStopProject:e=>void Ne(e),onPackageUpdate:()=>void Pe(),onSignOut:()=>void Fe()}}function sq(){return(0,I.useEffect)(()=>Q(`/projects`,{replace:!0}),[]),null}function cq({continuation:e}){let t=_z(),n=et(),r=(0,I.useRef)(!1),[i,a]=(0,I.useState)(e.intent!==`sign_out`),o=(0,I.useCallback)(async n=>{if(!r.current){r.current=!0;try{await qn(X,e.accessToken,!0),window.location.replace(VK(e,n))}catch{t.notify({tone:`error`,title:`Local Console sign-in failed`,message:`Tutti could not create the private account handoff. Please try again.`}),Q(`/projects`,{replace:!0})}}},[e,t]),s=R({queryKey:Z.me,queryFn:()=>Wn(X),enabled:i}),c=eH(),l=tH();if((0,I.useEffect)(()=>{if(e.intent!==`sign_out`)return;let r=!1;return Xn(X).then(()=>{r||(n.removeQueries({queryKey:Z.me}),a(!0))}).catch(()=>{r||(t.notify({tone:`error`,title:`Sign out failed`}),Q(`/projects`,{replace:!0}))}),()=>{r=!0}},[e.intent,t,n]),(0,I.useEffect)(()=>{let e=s.data?.account;e?.profile_complete===!0&&o(e.display_name)},[s.data?.account,o]),!i||s.isLoading||s.data?.account.profile_complete===!0)return null;let u=s.data?.account.profile_complete===!1?l:c,d=s.error===null||Yt(s.error)?null:`Tutti could not check your current session. You can still try signing in.`;return(0,L.jsx)(CH,{...u,error:u.error??d,onBrandClick:()=>Q(`/`)})}function lq(){let e=BK(window.location.hash);return e===null?(0,L.jsx)(sq,{}):(0,L.jsx)(cq,{continuation:e})}function uq(e){let t=t=>{let n=new Map;for(let r of e)n.set(r[t],[...n.get(r[t])??[],r]);return[...n.entries()].map(([e,t])=>({ref:e,entries:t,representative:t.find(e=>e.state===`active`)??t[0],active:t.some(e=>e.state===`active`),revocationPending:t.some(e=>e.downstream_keys===`pending`),revoked:t.every(e=>e.downstream_keys===`confirmed`)}))};return{projects:t(`grant_ref`),computers:t(`installation_ref`)}}function dq({group:e}){return e.active?(0,L.jsx)(`small`,{children:e.revocationPending?`Enabled · previous access is still being disabled`:`Enabled`}):(0,L.jsx)(`small`,{children:e.revoked?`Disabled`:`Disabling…`})}function fq(e){let t=t=>(0,L.jsx)(XO,{title:`Authorized ${yz(t.representative.created_at)}`,action:t.active?(0,L.jsx)(J,{type:`button`,disabled:e.pending,onClick:()=>e.onSelect({kind:`grant`,ref:t.ref,label:t.representative.project_name}),children:`Disable Tutti credit`}):void 0,children:(0,L.jsx)(dq,{group:t})},t.ref),n=e.groups.filter(e=>e.active),r=e.groups.filter(e=>!e.active);return(0,L.jsxs)(kk,{title:`Tutti credit`,children:[e.groups.length===0?(0,L.jsx)(`p`,{children:`No Tutti credit access is recorded for your account.`}):null,n.map(t),n.length===0&&r.length>0?(0,L.jsx)(`small`,{children:r.some(e=>!e.revoked)?`Disabling…`:`Disabled`}):null,r.length>0?(0,L.jsx)(Ok,{title:`Previous authorizations`,children:r.map(t)}):null]})}function pq(e){let t=uq(e.overview.delegations);return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(kk,{title:`Computers`,children:t.computers.length===0?(0,L.jsx)(`p`,{children:`No authorized computers.`}):t.computers.map(t=>(0,L.jsx)(XO,{title:`Computer …${t.ref.slice(-8)}`,description:`${new Set(t.entries.map(e=>e.relay_project_ref)).size} project(s)`,action:t.active?(0,L.jsx)(J,{type:`button`,disabled:e.pending,onClick:()=>e.onSelect({kind:`installation`,ref:t.ref,label:`computer`}),children:`Disable Tutti credit`}):void 0,children:(0,L.jsx)(dq,{group:t})},t.ref))}),(0,L.jsx)(kk,{title:`Browsers`,children:e.overview.sessions.map(t=>(0,L.jsx)(XO,{title:t.current?`This browser`:`Other browser`,description:`Signed in ${yz(t.created_at)}`,action:t.current?void 0:(0,L.jsx)(J,{type:`button`,disabled:e.pending,onClick:()=>e.onSelect({kind:`session`,ref:t.session_ref,label:`browser`}),children:`Sign out`})},t.session_ref))})]})}function mq(e){let t=e.confirmation,n=t?.kind===`session`?`Sign out this browser?`:t?.kind===`installation`?`Disable this computer’s Tutti credit?`:`Disable Tutti credit for this project?`,r=t?.kind===`session`?`Projects running on your computers will continue.`:t?.kind===`installation`?`Stops new model access for your projects on this computer. Files stay intact; requests already running may finish.`:`Stops new model access for “${t?.label??`this project`}”. Files and membership stay intact; requests already running may finish.`;return(0,L.jsx)(Ck,{className:`product-account-dialog`,open:e.panel!==null,onOpenChange:n=>{n||(t?e.onSelectRevoke(null):e.onClose())},title:t?n:e.panel===`credits`?`Credits`:e.panel===`account`?`Account`:e.project?.displayName??`Project details`,description:t?r:e.panel===`project`&&e.project?.surface===`feishu`?`Use this project in its Feishu group.`:void 0,closeDisabled:e.pending||e.logoutPending,headerAction:t?void 0:(0,L.jsx)(fw,{type:`button`,label:`Refresh account`,icon:(0,L.jsx)(kx,{"aria-hidden":`true`}),disabled:e.loading||e.pending,onClick:e.onRefresh}),children:(0,L.jsx)(qO,{children:t?(0,L.jsxs)(Dk,{children:[(0,L.jsx)(J,{type:`button`,disabled:e.pending,onClick:()=>e.onSelectRevoke(null),children:`Cancel`}),(0,L.jsx)(pw,{type:`button`,disabled:e.pending,onClick:e.onConfirmRevoke,children:e.pending?`Updating…`:t.kind===`session`?`Sign out browser`:`Confirm disable`})]}):(0,L.jsxs)(L.Fragment,{children:[e.panel===`credits`?(0,L.jsxs)(L.Fragment,{children:[e.usageError?(0,L.jsx)(Ew,{children:e.usageError}):e.usage?.state===`ready`?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(YO,{items:[{label:`Available test credit`,value:e.usage.remaining.toLocaleString(`en`)}]}),(0,L.jsx)(Ok,{title:`Usage details`,children:(0,L.jsx)(JO,{items:[{label:`Used · all time`,value:e.usage.used.toLocaleString(`en`)},{label:`Requests · all time`,value:e.usage.request_count.toLocaleString(`en`)}]})})]}):e.usage?.state===`not_initialized`?(0,L.jsx)(Yx,{children:`No Tutti credit yet.`}):(0,L.jsx)(Xx,{}),(0,L.jsx)(`small`,{children:`Test credit only. Payments are not enabled.`})]}):null,e.panel===`project`?(0,L.jsxs)(L.Fragment,{children:[e.project?(0,L.jsx)(JO,{items:[{label:`Surface`,value:e.project.surface===`feishu`?`Feishu`:`Tutti Workspace`},{label:`Your role`,value:e.project.membershipLabel},{label:`Host`,value:e.project.hostStatus===`online`?`Online`:e.project.hostStatus===`offline`?`Offline`:`Unknown`}]}):(0,L.jsx)(Yx,{children:`Project unavailable.`}),e.overviewError?(0,L.jsx)(Ew,{children:e.overviewError}):e.overview?e.project?(0,L.jsx)(fq,{groups:uq(e.overview.delegations.filter(t=>t.relay_project_ref===e.project?.relayProjectRef)).projects,pending:e.pending,onSelect:e.onSelectRevoke}):null:(0,L.jsx)(Xx,{})]}):null,e.panel===`account`?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(JO,{items:[{label:`Name`,value:e.accountName},{label:`Email`,value:e.email}]}),(0,L.jsx)(Ok,{title:`Security`,children:e.overviewError?(0,L.jsx)(Ew,{children:e.overviewError}):e.overview?(0,L.jsx)(pq,{overview:e.overview,pending:e.pending,onSelect:e.onSelectRevoke}):(0,L.jsx)(Xx,{})}),(0,L.jsxs)(kk,{title:`Sign out`,children:[(0,L.jsx)(`small`,{children:`Signing out won’t stop your projects.`}),(0,L.jsx)(J,{type:`button`,disabled:e.logoutPending||e.pending,onClick:e.onSignOut,children:`Sign out`})]})]}):null,e.panel!==`credits`&&e.overview?.truncated?(0,L.jsx)(`small`,{children:`Only recent access records are shown. Contact support for older records.`}):null]})})})}var hq={overview:[`account-managed-access`],usage:[`account-managed-usage`]},gq={baseUrl:X.relayBaseUrl,credentials:`include`};function _q(e,t){let n=et(),r=_z(),i=R({queryKey:[...hq.overview,e],enabled:e!==null&&t,queryFn:({signal:e})=>Qy(gq,e),refetchOnWindowFocus:!0,refetchInterval:e=>e.state.data?.delegations.some(e=>e.downstream_keys===`pending`)?5e3:!1}),a=R({queryKey:[...hq.usage,e],enabled:e!==null,queryFn:({signal:e})=>$y(gq,e),refetchOnWindowFocus:!0,staleTime:3e4}),[o,s]=(0,I.useState)(null),c=o?.account===e?o.target:null,[l,u]=(0,I.useState)(!1),d=(0,I.useRef)(!1),f=(0,I.useRef)({target:``,id:Vt()});async function p(){if(d.current||!c||!e)return;d.current=!0,u(!0);let t=`${e}/${c.kind}/${c.ref}`;f.current.target!==t&&(f.current={target:t,id:Vt()});try{c.kind===`session`?await tb(gq,c.ref):await eb(gq,{command_id:f.current.id,target:{kind:c.kind,ref:c.ref}}),s(null),await n.invalidateQueries({queryKey:[...hq.overview,e]}),r.notify({tone:`success`,title:c.kind===`session`?`Browser signed out`:`Disabling Tutti credit`})}catch(e){r.notify({tone:`error`,title:`Change not confirmed`,message:wG(e)})}finally{d.current=!1,u(!1)}}return{overview:i.error===null?i.data:void 0,usage:a.error===null?a.data:void 0,overviewError:i.error===null?null:wG(i.error),usageError:a.error===null?null:wG(a.error),loading:i.isFetching||a.isFetching,pending:l,confirmation:c,selectRevoke:t=>s(t?{account:e,target:t}:null),confirmRevoke:()=>void p(),refresh:()=>{a.refetch(),t&&i.refetch()}}}var vq=/^[A-Za-z0-9_-]{8,256}$/u,yq=/https?:\/\/[^\s<>"'`“”‘’]+/giu,bq=/(?:^|[\s("'“‘])((?:\/)?join\/[A-Za-z0-9_-]{8,256})(?=$|[\s?#.,;:!'"”’)\]}])/giu,xq=/[.,;:!?)}\]]+$/u;function Sq(e){let t;try{t=decodeURIComponent(e)}catch{return null}return vq.test(t)?t:null}function Cq(e){let t=e.split(`/`).filter(Boolean);return t.length!==2||t[0]!==`join`?null:Sq(t[1]??``)}function wq(e,t){let n=Cq(t);n!==null&&e.add(`/join/${encodeURIComponent(n)}`)}function Tq(e,t){try{wq(e,new URL(t.replace(xq,``)).pathname)}catch{}}function Eq(e){let t=e.trim();if(t===``)return{kind:`empty`};let n=new Set;for(let e of t.matchAll(yq))Tq(n,e[0]);for(let e of t.matchAll(bq)){let t=e[1];if(t!==void 0)try{wq(n,new URL(t,`https://tutti.invalid`).pathname)}catch{}}let r=Sq(t);return r!==null&&n.add(`/join/${encodeURIComponent(r)}`),n.size===0?{kind:`invalid`}:n.size>1?{kind:`ambiguous`}:{kind:`matched`,route:[...n][0]}}function Dq(e){return Jt(e,`project_membership_required`)?{tone:`warning`,title:`Join this project first`,message:`This account has not joined the project. Open its invitation link, or return to Local Console and copy a new invite.`}:{tone:`error`,title:`Project open failed`,message:$(e)}}var Oq=`tutti://projects`,kq=3e4,Aq=/^[A-Za-z0-9_-]+$/u,jq=/^[A-Za-z0-9_-]{43}$/u,Mq=class extends Error{reason;constructor(e){super(`Tutti could not complete the desktop entry continuation.`),this.name=`DesktopEntryContinuationError`,this.reason=e}};function Nq(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t).replaceAll(`+`,`-`).replaceAll(`/`,`_`).replace(/=+$/u,``)}function Pq(e,t){if(!Aq.test(e))throw new Mq(`invalid`);let n=`=`.repeat((4-e.length%4)%4),r;try{r=atob(e.replaceAll(`-`,`+`).replaceAll(`_`,`/`)+n)}catch{throw new Mq(`invalid`)}let i=new Uint8Array(r.length);for(let e=0;e<r.length;e+=1)i[e]=r.charCodeAt(e);if(t!==void 0&&i.length!==t||Nq(i)!==e)throw new Mq(`invalid`);return i}function Fq(e){return typeof e==`string`&&Rt(e,Pt.relayDesktopEntryContinuation)}function Iq(e){return typeof e==`string`&&e.length===43&&Aq.test(e)}function Lq(e=globalThis.crypto){let t=new Uint8Array(32);e.getRandomValues(t);let n=Nq(t);if(n.length!==43)throw new Mq(`invalid`);return n}function Rq(e){if(!Fq(e.continuationRef)||!Iq(e.completionToken)||e.payloadKey.length!==43)throw new Mq(`invalid`);return Pq(e.payloadKey,32),`${Oq}?${new URLSearchParams({continuation:e.continuationRef,completion_token:e.completionToken,payload_key:e.payloadKey}).toString()}`}function zq(e,t={}){let n=Date.parse(e.expires_at);if(!Number.isFinite(n)||n<=(t.nowMs??Date.now())||!Fq(e.continuation_ref))throw new Mq(`invalid`);let r=Lq(t.cryptoImpl);return{continuationRef:e.continuation_ref,payloadKey:r,href:Rq({continuationRef:e.continuation_ref,completionToken:e.completion_token,payloadKey:r}),expiresAtMs:n}}function Bq(e){if(typeof e!=`object`||!e)throw new Mq(`invalid`);let t=e,n=t.iv,r=t.ciphertext;if(typeof n!=`string`||typeof r!=`string`||n.length!==16||r.length<24||r.length>4096)throw new Mq(`invalid`);return{iv:Pq(n,12),ciphertext:Pq(r)}}function Vq(e){let t;try{t=new URL(e)}catch{throw new Mq(`invalid`)}let n=t.port,r=Number(n);if(t.protocol!==`http:`||t.hostname!==`127.0.0.1`||!/^[1-9]\d{0,4}$/u.test(n)||!Number.isInteger(r)||r>65535||t.pathname!==`/console`||t.search!==``||t.username!==``||t.password!==``||t.hash===``)throw new Mq(`invalid`);let i=t.hash.slice(1),a=new URLSearchParams(i),o=a.get(`access_token`)??``;if(a.size!==1||a.getAll(`access_token`).length!==1||!jq.test(o)||i!==new URLSearchParams({access_token:o}).toString())throw new Mq(`invalid`);return t.toString()}async function Hq(e,t,n=globalThis.crypto){let r=Pq(t,32),i=Bq(e);try{let e=await n.subtle.importKey(`raw`,r,`AES-GCM`,!1,[`decrypt`]),t=await n.subtle.decrypt({name:`AES-GCM`,iv:i.iv},e,i.ciphertext);return Vq(new TextDecoder(`utf-8`,{fatal:!0}).decode(t))}catch(e){throw e instanceof Mq?e:new Mq(`invalid`)}}function Uq(e){let t=typeof e==`string`?Date.parse(e):NaN;if(!Number.isFinite(t))throw new Mq(`invalid`);return t}function Wq(e,t){return new Promise((n,r)=>{if(t.aborted){r(new Mq(`aborted`));return}let i=()=>{globalThis.clearTimeout(a),r(new Mq(`aborted`))},a=globalThis.setTimeout(()=>{t.removeEventListener(`abort`,i),n()},e);t.addEventListener(`abort`,i,{once:!0})})}async function Gq(e){let t=e.nowMs??Date.now,n=e.wait??Wq,r=t()+(e.timeoutMs??2e4);for(;!e.signal.aborted&&t()<r;){let i;try{i=await e.read(e.prepared.continuationRef,e.signal)}catch(i){if(e.signal.aborted)throw new Mq(`aborted`);if(i instanceof Gt&&!i.retryable)throw new Mq(`unavailable`);let a=r-t();if(a<=0)break;await n(Math.min(e.pollIntervalMs??500,a),e.signal);continue}if(typeof i!=`object`||!i)throw new Mq(`invalid`);let a=i;if(!Fq(a.continuation_ref)||a.continuation_ref!==e.prepared.continuationRef)throw new Mq(`invalid`);let o=Uq(a.expires_at);if(o<=t())throw new Mq(`expired`);if(a.status===`ready`)return Hq(a.sealed_payload,e.prepared.payloadKey,e.cryptoImpl);if(a.status!==`pending`)throw new Mq(`invalid`);let s=Math.min(r,o)-t();if(s<=0)break;await n(Math.min(e.pollIntervalMs??500,s),e.signal)}throw e.signal.aborted?new Mq(`aborted`):new Mq(`timeout`)}function Kq(e,t){let[n,r]=(0,I.useState)(0),[i,a]=(0,I.useState)(null),[o,s]=(0,I.useState)(!1),[c,l]=(0,I.useState)(`opening`),u=(0,I.useRef)(null),d=(0,I.useRef)(null),f=(0,I.useRef)(0),p=(0,I.useRef)(!1),m=(0,I.useCallback)(e=>{u.current=e,a(e)},[]);(0,I.useEffect)(()=>{d.current?.abort(),d.current=null,f.current+=1,p.current=!1,m(null),s(!1),l(`opening`)},[e,m]),(0,I.useEffect)(()=>{if(e===null)return;let t=u.current?.continuationRef??null,n=null,r=!1,i=window.setTimeout(()=>{n=new AbortController,Gn(X,{signal:n.signal}).then(t=>{r||m({accountRef:e,...zq(t)})}).catch(()=>{!r&&t!==null&&u.current?.continuationRef===t&&m(null)})},0);return()=>{r=!0,window.clearTimeout(i),n?.abort()}},[e,n,m]),(0,I.useEffect)(()=>{if(i===null||i.accountRef!==e)return;let t=i.expiresAtMs-Date.now(),n=t>3e4?t-kq:Math.max(1e3,Math.floor(t/2)),a=window.setTimeout(()=>{u.current?.continuationRef===i.continuationRef&&(m(null),r(e=>e+1))},Math.max(0,n));return()=>window.clearTimeout(a)},[e,i,m]),(0,I.useEffect)(()=>()=>{d.current?.abort()},[]);let h=(0,I.useCallback)(()=>{s(!0),l(`opening`),d.current?.abort();let n=u.current;if(n===null||n.accountRef!==e||n.expiresAtMs<=Date.now()){r(e=>e+1);return}r(e=>e+1);let i=new AbortController;d.current=i;let a=f.current+1;f.current=a,Gq({prepared:n,read:(e,t)=>Kn(X,e,{signal:t}),signal:i.signal}).then(async e=>{if(!(f.current!==a||i.signal.aborted||p.current)){p.current=!0;try{t?(await t(e,i.signal),i.signal.aborted||s(!1),p.current=!1):window.location.replace(e)}catch(e){throw p.current=!1,e}}}).catch(e=>{f.current!==a||i.signal.aborted||e instanceof Mq&&e.reason===`aborted`||l(`failed`)}).finally(()=>{d.current===i&&(d.current=null)})},[e,m,t]),g=(0,I.useCallback)(e=>{s(e),e||(d.current?.abort(),d.current=null,f.current+=1,l(`opening`))},[]),_=(i!==null&&i.accountRef===e?i:null)?.href??`tutti://projects`;return{localScopeHref:_,localHandoffOpen:o,localHandoffStatus:c,localHandoffRetryHref:_,onLocalHandoffOpenChange:g,onLocalScopeSelect:h}}function qq(e){let t=(0,I.useRef)(null),[n,r]=(0,I.useState)(null),i=n?.accountRef===e?.account_ref?n?.connection??null:null,[a,o]=(0,I.useState)(`disconnected`),[s,c]=(0,I.useState)(null),l=(0,I.useCallback)(()=>{t.current?.dispose(),t.current=null,r(null),o(`disconnected`),c(null)},[]);(0,I.useEffect)(()=>(l(),l),[e?.account_ref,l]);let u=(0,I.useCallback)(async(n,i)=>{if(e){l();try{let a=await Cb({accessUrl:n,accountDisplayName:e.display_name,signal:i,registerAccount:e=>qn(X,e,!0),onLost:()=>{l(),o(`lost`)}});if(i.aborted){a.dispose();return}t.current=a,r({accountRef:e.account_ref,connection:a})}catch(e){throw i.aborted||(o(`lost`),e instanceof Gt&&c([/^[a-z0-9_]{1,80}$/u.test(e.code)?e.code:`bridge_connection_failed`,e.requestId].filter(Boolean).join(` · `))),e}}},[e?.account_ref,e?.display_name,l]);return(0,I.useEffect)(()=>{if(!i)return;let e=!1,t=()=>{e||document.visibilityState===`hidden`||(e=!0,i.client.heartbeat().catch(()=>{}).finally(()=>{e=!1}))},n=window.setInterval(t,1e4);return window.addEventListener(`focus`,t),()=>{window.clearInterval(n),window.removeEventListener(`focus`,t)}},[i]),{connection:i,state:a,diagnostic:s,disconnect:l,connect:u}}function Jq({requestedOpenProjectRef:e,initialPanel:t}){let n=et(),r=_z(),i=eH(),a=tH(),[o,s]=(0,I.useState)(``),[c,l]=(0,I.useState)(null),[u,d]=(0,I.useState)(!1),f=(0,I.useRef)(!1),[p,m]=(0,I.useState)(t??null),[h,g]=(0,I.useState)(null);(0,I.useEffect)(()=>{m(t??null)},[t]);let _=(0,I.useRef)(null),v=R({queryKey:Z.me,queryFn:()=>Wn(X)}),y=R({queryKey:[...Z.accountProjects,v.data?.account.account_ref],queryFn:({signal:e})=>Sb({baseUrl:X.relayBaseUrl,credentials:`include`},e),enabled:v.error===null&&v.data?.account.profile_complete===!0,refetchOnWindowFocus:!0}),b=v.error===null&&v.data?.account.profile_complete===!0?v.data.account:null,x=_q(b?.account_ref??null,p===`account`||p===`project`),S=qq(b);EV(b!==null);let C=gt({mutationFn:e=>$n(X,e),onSuccess:e=>{if(wV(n),e.disposition.kind===`opened`&&e.result?.open_url!==void 0){SV(e.result.open_url);return}r.notify({tone:`warning`,title:`Host is offline`})},onError:e=>{let t=Dq(e);r.notify({...t})}}),w=C.mutate;(0,I.useEffect)(()=>{e===void 0||v.data?.account.profile_complete!==!0||_.current===e||(_.current=e,w(e))},[v.data?.account.profile_complete,w,e]);let T=gt({mutationFn:()=>(S.disconnect(),Xn(X)),onSuccess:()=>{m(null),g(null),x.selectRevoke(null),n.removeQueries({queryKey:hq.overview}),n.removeQueries({queryKey:hq.usage}),n.removeQueries({queryKey:Z.accountProjects}),n.invalidateQueries({queryKey:Z.relayRoot}),n.invalidateQueries({queryKey:Z.me}),n.invalidateQueries({queryKey:Z.recentProjects})},onError:e=>{r.notify({tone:`error`,title:`Sign out failed`,message:$(e)})}}),E=b??void 0,D=Kq(E?.profile_complete===!0?E.account_ref:null,S.connect),O=v.error!==null&&Yt(v.error)?i:v.data?.account!==void 0&&!v.data.account.profile_complete?a:null;if(O!==null)return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(Ab,{route:{kind:`home`}}),(0,L.jsx)(CH,{...O,onBrandClick:()=>Q(`/`)})]});let k=(y.error===null?y.data?.projects??[]:[]).map(Dz),A=()=>{let e=Eq(o);if(e.kind!==`matched`){l(e.kind===`ambiguous`?`Paste one Tutti invitation at a time.`:`Paste a valid Tutti invitation.`);return}Q(e.route)},ee=e=>{d(e),e||(s(``),l(null))},te=(e,t)=>(0,L.jsx)(YH,{...e?{local:e}:{},localDialogs:t,connectionState:S.state,connectionDiagnostic:S.diagnostic,onDisconnect:S.disconnect,relayOrigin:new URL(X.relayBaseUrl,window.location.origin).origin,account:E===void 0?null:{displayName:E.display_name},projects:k,truncated:y.data?.truncated??!1,accountActions:E?(0,L.jsx)(ZO,{name:E.display_name,credit:x.usage?.state===`ready`?`Credits · ${x.usage.remaining.toLocaleString(`en`)}`:x.usageError?`Credits unavailable`:`Credits`,disabled:x.pending||T.isPending,onCredit:()=>m(`credits`),onAccount:()=>m(`account`)}):void 0,onProjectDetails:e=>{g(e.relayProjectRef),m(`project`)},loading:v.isLoading||y.isLoading,error:v.error===null?y.error===null?null:$(y.error):$(v.error),openPending:C.isPending,logoutPending:T.isPending,joinLinkForm:{value:o,error:c,onChange:e=>{s(e),l(null)},onSubmit:A},joinOpen:u,localScopeHref:D.localScopeHref,localHandoffOpen:D.localHandoffOpen,localHandoffStatus:D.localHandoffStatus,localHandoffRetryHref:D.localHandoffRetryHref,onJoinOpenChange:ee,onLocalHandoffOpenChange:D.onLocalHandoffOpenChange,onLocalScopeSelect:()=>{f.current=!1,D.onLocalScopeSelect()},onRequestNewProject:()=>{f.current=!0,D.onLocalScopeSelect()},onCopyLaunchCommand:e=>{navigator.clipboard.writeText(e).then(()=>{r.notify({tone:`success`,title:`Command copied`})}).catch(()=>{r.notify({tone:`error`,title:`Copy failed`,message:`The browser could not copy the launch command.`})})},onBrandClick:()=>Q(`/`),onOpenProject:e=>C.mutate(e),onLogout:()=>T.mutate()});return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(Ab,{route:{kind:`project_center`}}),S.connection?(0,L.jsx)(aq,{connection:S.connection,initialCreateOpen:f.current,renderSurface:te}):te(),E?(0,L.jsx)(mq,{panel:p,project:k.find(e=>e.relayProjectRef===h),accountName:E.display_name,email:E.email,...x,logoutPending:T.isPending,onSelectRevoke:x.selectRevoke,onConfirmRevoke:x.confirmRevoke,onRefresh:()=>{x.refresh(),y.refetch()},onSignOut:()=>T.mutate(),onClose:()=>{m(null),x.selectRevoke(null),t&&Q(`/projects`,{replace:!0})}}):null]})}function Yq(e){let t=e?.relay;if(t?.join_url_visibility===`visible_once`&&t.join_url!==void 0&&t.join_url.trim()!==``)return t.join_url}function Xq(e,t){try{return new URL(e).origin===new URL(t,e).origin}catch{return!1}}function Zq(e,t){let n=Yq(e);if(n!==void 0)return{kind:`join`,joinUrl:n};let r=e?.relay?.relay_project_ref;return r===void 0?{kind:`unavailable`,message:`Relay project is unavailable`}:Xq(t.currentOrigin,t.relayBaseUrl)?{kind:`relay_open`,relayProjectRef:r}:{kind:`unavailable`,message:`Open the latest Join URL printed by tutti launch.`}}var Qq=`gpt-5.5`,$q=`/host-local/v1`;function eJ(){return new URL(window.location.href).searchParams.get(`token`)?.trim()??``}function tJ(e){return{baseUrl:$q,credentials:`same-origin`,headers:{authorization:`Bearer ${e}`}}}function nJ(e){return z(tJ(e),`/provider/config`)}function rJ(e){return z(tJ(e),`/launch-status`)}function iJ(e){return z(tJ(e),`/project`)}function aJ(e,t){return z(tJ(e),`/project`,{method:`POST`,body:t})}function oJ(e,t){return z(tJ(e),`/provider/config`,{method:`POST`,body:t})}function sJ(e){return e===void 0?`loading`:e.status===`configured`?`configured`:e.status===`invalid`?`invalid`:`not configured`}function cJ(e){let t=e instanceof Error&&`code`in e?String(e.code):``;return t.startsWith(`provider_`)?t:$(e)}function lJ(){let e=eJ(),t=e===``,[n,r]=(0,I.useState)({projectName:``,apiKey:``,baseUrl:``,defaultModel:Qq}),[i,a]=(0,I.useState)(null),[o,s]=(0,I.useState)(null),c=(0,I.useRef)(!1),l=R({queryKey:[`host-local`,`provider-config`,e],queryFn:()=>nJ(e),enabled:!t}),u=R({queryKey:[`host-local`,`launch-status`,e],queryFn:()=>rJ(e),enabled:!t}),d=R({queryKey:[`host-local`,`project`,e],queryFn:()=>iJ(e),enabled:!t}),f=u.data,p=gt({mutationFn:e=>$n(X,e.relayProjectRef),onSuccess:e=>{if(e.disposition.kind===`opened`&&e.result?.open_url!==void 0){SV(e.result.open_url);return}s(`Host is offline`)},onError:e=>{s($(e))}}),m=gt({mutationFn:async()=>{let t=n.projectName.trim(),r=d.data?.display_name.trim()??``;t!==``&&t!==r&&await aJ(e,{display_name:t});let i={api_key:n.apiKey.trim()},a=n.baseUrl.trim(),o=n.defaultModel.trim();return a!==``&&(i.base_url=a),o!==``&&(i.default_model=o),await oJ(e,i)},onSuccess:()=>{a(`Provider saved.`),r(e=>({...e,apiKey:``})),d.refetch(),l.refetch(),v()}}),h=l.data;(0,I.useEffect)(()=>{let e=d.data?.display_name;e!==void 0&&r(t=>t.projectName.trim()===``?{...t,projectName:e}:t)},[d.data?.display_name]),(0,I.useEffect)(()=>{t||h?.status!==`configured`||v()},[h?.status,t]);let g=t?`Setup token is missing.`:d.error===null?l.error===null?m.error===null?o:cJ(m.error):cJ(l.error):cJ(d.error);function _(e){e.preventDefault(),a(null),s(null),c.current=!1,!t&&n.apiKey.trim()!==``&&n.projectName.trim()!==``&&m.mutate()}async function v(){if(c.current)return;c.current=!0;let e=Zq(f??(await u.refetch()).data,{currentOrigin:window.location.origin,relayBaseUrl:yV});if(e.kind===`join`){window.location.assign(e.joinUrl);return}if(e.kind===`unavailable`){s(e.message);return}p.mutate({relayProjectRef:e.relayProjectRef})}return(0,L.jsx)(ZH,{form:n,statusLabel:sJ(h),configured:h?.status===`configured`,loading:l.isLoading||d.isLoading,pending:m.isPending,tokenMissing:t,error:g,success:i,openProjectPending:p.isPending,onChange:e=>r(t=>({...t,...e})),onSubmit:_,onRetry:()=>void l.refetch(),onBrandClick:()=>Q(`/`)})}function uJ(e){return`${e.created_at}:${e.id}`}function dJ(e){return{kind:`initial`,entry:e}}function fJ(e,t=50){if(e.kind===`older`)return{before:e.before,limit:t};if(e.kind===`newer`)return{after:e.after,limit:t};switch(e.entry.kind){case`latest`:return{limit:t};case`start`:return{anchor:`start`,limit:t};case`around`:return{around:e.entry.messageId,limit:t}}}function pJ(e){let t=e.window.older_cursor;return e.window.has_older&&t!==void 0?{kind:`older`,before:t}:void 0}function mJ(e){let t=e.window.newer_cursor;return e.window.has_newer&&t!==void 0?{kind:`newer`,after:t}:void 0}function hJ(e,t=50){let n=e[0],r=e.at(-1);if(n===void 0||r===void 0)return{items:[],window:{has_older:!1,has_newer:!1,limit:t}};let i=new Map;for(let t of e)for(let e of t.items)i.set(e.id,e);let a=[...i.values()].sort((e,t)=>uJ(e).localeCompare(uJ(t))),o={has_older:n.window.has_older,has_newer:r.window.has_newer,limit:n.window.limit};return o.has_older&&n.window.older_cursor!==void 0&&(o.older_cursor=n.window.older_cursor),o.has_newer&&r.window.newer_cursor!==void 0&&(o.newer_cursor=r.window.newer_cursor),{items:a,window:o}}function gJ(e){let t=et(),n=_z(),r=gt({mutationFn:t=>e.hostClient.retryTask(t.taskId,{expected_latest_run_result_id:t.runResultId}),onMutate:()=>n.notify({tone:`loading`,title:`Retrying task`}),onSuccess:(r,i,a)=>{if(DV(t,e.relayProjectRef,r.invalidates),r.disposition.kind===`accepted`){n.update(a,{tone:`success`,title:`Task retry started`});return}if(r.disposition.kind===`already_running`||r.disposition.kind===`retry_already_started`){n.update(a,{tone:`info`,title:`Task retry already started`});return}n.update(a,{tone:`warning`,title:`Task retry unavailable`,message:r.disposition.kind===`latest_run_result_changed`?`The task result changed. Review the latest result before retrying.`:r.disposition.kind===`retry_requires_resolution`?`This failure needs to be resolved before it can be retried safely.`:`The task cannot be retried in its current state.`})},onError:(e,t,r)=>{n.update(r,{tone:`error`,title:`Task retry failed`,message:$(e)})}});return{retry:(e,t)=>r.mutate({taskId:e,runResultId:t}),stateFor:(e,t,n)=>r.isPending&&r.variables?.taskId===e&&r.variables.runResultId===t?`retrying`:n}}var _J=5400,vJ=1500;function yJ(e){let t=e.completionSource;return t?.activityRef??t?.workflowRef??t?.taskId??e.key}function bJ(e){switch(e.kind){case`accepted`:case`already_running`:return null;case`scratchpad_empty`:return{label:`Scratchpad is empty. Let it refresh before running.`,tone:`error`};case`stale_scratchpad`:return{label:`Scratchpad changed. Review the latest snapshot and run again.`,tone:`error`};case`provider_not_configured`:return{label:`Provider is not configured yet.`,tone:`error`};case`provider_unavailable`:return{label:`Provider unavailable: ${e.reason}.`,tone:`error`};case`interrupted`:return{label:`Run was interrupted. Try again.`,tone:`error`}}}function xJ(e,t){t.displayName.trim()===``||e.has(t.key)||e.set(t.key,t)}function SJ(e){if(e.author.kind!==`human`)return null;let t=e.author.display_name?.trim()||`Member`;return{key:e.author.ref===void 0?`message-author:${t.toLocaleLowerCase()}`:e.author.ref,displayName:t,avatar:e.author.avatar??{kind:`initials`,initials:pg(t),color:`blue`}}}function CJ({account:e,presence:t,messages:n=[]}){let r=new Map;e!==void 0&&xJ(r,{key:e.account_ref,displayName:e.display_name,avatar:e.avatar});for(let e of t?.sample_members??[])xJ(r,{key:e.account_ref,displayName:e.display_name,avatar:e.avatar});for(let e of t?.members??[])xJ(r,{key:e.account_ref,displayName:e.display_name,avatar:e.avatar});for(let e of n){let t=SJ(e);t!==null&&xJ(r,t)}return[...r.values()]}function wJ({account:e,presence:t}){let n={},r=(e,t)=>{let r=n[e];n[e]={avatar:t.avatar,online:r?.online===!0||t.online}};for(let e of t?.members??[])r(e.account_ref,{avatar:e.avatar,online:e.online});for(let e of t?.sample_members??[])r(e.account_ref,{avatar:e.avatar,online:!0});return e!==void 0&&r(e.account_ref,{avatar:e.avatar,online:!0}),n}function TJ({relayProjectRef:e}){let t=et(),n=_z(),r=SK(),i=(0,I.useMemo)(()=>or({...X,relayProjectRef:e}),[e]),a=gJ({hostClient:i,relayProjectRef:e}),[o,s]=(0,I.useState)(``),[c,l]=(0,I.useState)(``),[u,d]=(0,I.useState)(null),[f,p]=(0,I.useState)(null),[m,h]=(0,I.useState)(null),[g,_]=(0,I.useState)(()=>Date.now()),[v,y]=(0,I.useState)(null),b=new URL(xV(),window.location.origin).searchParams.get(`message`),x=b!==null&&Rt(b,Pt.message)?b:void 0,[S,C]=(0,I.useState)(()=>x===void 0?{kind:`latest`}:{kind:`around`,messageId:x}),w=(0,I.useRef)(null),T=(0,I.useRef)(null),E=(0,I.useRef)(null),[D,O]=(0,I.useState)(null),k=f!==null;(0,I.useEffect)(()=>{x!==void 0&&(S.kind!==`around`||S.messageId!==x)&&C({kind:`around`,messageId:x})},[S,x]);let A=(t=null)=>{C({kind:`latest`}),y(t),x!==void 0&&Q(en(e),{replace:!0})},ee=R({queryKey:Z.bootstrap(e),queryFn:()=>i.getBootstrap(),staleTime:bV}),te=ee.data?.session.account.account_ref,j=te===void 0?null:`${te}:${e}`,ne=x!==void 0||j!==null&&D===j;(0,I.useEffect)(()=>{j===null||D===j||(x===void 0&&te!==void 0&&C(FG(te,e).start_chat_pending?{kind:`start`}:{kind:`latest`}),O(j))},[te,j,e,x,D]);let M=_t({queryKey:Z.messageHistory(e,S,50),queryFn:({pageParam:e})=>i.getMessages(fJ(e)),initialPageParam:dJ(S),getPreviousPageParam:e=>pJ(e),getNextPageParam:e=>mJ(e),enabled:ee.isSuccess&&ne,staleTime:bV}),N=R({queryKey:Z.scratchpad(e),queryFn:()=>i.getScratchpad(),enabled:ee.isSuccess,staleTime:bV,refetchInterval:k?vJ:!1}),P=R({queryKey:Z.activeClarification(e),queryFn:()=>i.getActiveClarification(),enabled:ee.isSuccess,staleTime:bV,refetchInterval:k?vJ:!1}),re=R({queryKey:Z.activeApproval(e),queryFn:()=>i.getActiveApproval(),enabled:ee.isSuccess,staleTime:bV}),ie=R({queryKey:Z.executionStatus(e),queryFn:()=>i.getExecutionStatus(),enabled:ee.isSuccess,staleTime:bV,refetchInterval:k?vJ:!1}),ae=R({queryKey:Z.readState(e),queryFn:()=>i.getReadState(),enabled:ee.isSuccess,staleTime:bV}),oe=R({queryKey:Z.projectPresence(e),queryFn:()=>er(X,e),enabled:ee.isSuccess,staleTime:bV,refetchInterval:6e4});EV(ee.isSuccess);let se=gt({mutationFn:e=>i.updateProjectDisplayName({display_name:e}),onMutate:e=>n.notify({tone:`loading`,title:`Saving project name`,message:e}),onSuccess:(r,i,a)=>{DV(t,e,r.invalidates??[{kind:`workspace`},{kind:`bootstrap`}]),n.update(a,{tone:`success`,title:`Project name saved`,message:i})},onError:(e,t,r)=>{n.update(r,{tone:`error`,title:`Project name save failed`,message:`${t}: ${$(e)}`})}}),ce=gt({mutationFn:e=>i.updateProjectDescription({description:e}),onMutate:e=>n.notify({tone:`loading`,title:`Saving project description`,...e.length===0?{}:{message:e}}),onSuccess:(r,i,a)=>{DV(t,e,r.invalidates??[{kind:`workspace`},{kind:`bootstrap`}]),n.update(a,{tone:`success`,title:`Project description saved`,...i.length===0?{}:{message:i}})},onError:(e,t,r)=>{n.update(r,{tone:`error`,title:`Project description save failed`,message:$(e)})}}),le=gt({mutationFn:({body:e,commandId:t})=>i.sendMainChatMessage({body:e},{commandId:t}),onSuccess:(n,r)=>{w.current=null,s(e=>e.trim()===r.body?``:e),n.result?.message!==void 0&&(S.kind===`latest`&&!M.hasNextPage?y(n.result.message.id):A(n.result.message.id)),DV(t,e,n.invalidates)},onError:e=>{n.notify({tone:`error`,title:`Message send failed`,message:$(e)})}}),ue=gt({mutationFn:async t=>{let n=await $V({relayProjectRef:e,purpose:`reference_file`,file:t});return i.uploadReferenceFile(n)},onMutate:e=>n.notify({tone:`loading`,title:`Uploading reference`,message:e.name}),onSuccess:(r,i,a)=>{let o=r.result?.message;o!==void 0&&(S.kind===`latest`&&!M.hasNextPage?y(o.id):A(o.id)),DV(t,e,r.invalidates),n.update(a,{tone:`success`,title:`Reference uploaded`,message:r.result?.file.name??i.name})},onError:(e,t,r)=>{n.update(r,{tone:`error`,title:`Reference upload failed`,message:$(e)})}}),de=gt({mutationFn:e=>i.submitWorklist(e===void 0?{}:{expected_scratchpad_updated_at:e}),onMutate:()=>(p({kind:`request`}),n.notify({tone:`loading`,title:`Running Scratchpad`})),onSuccess:(r,i,a)=>{if(r.disposition.kind===`accepted`){let e=r.result?.activity_ref;p(e===void 0?null:{kind:`activity`,activityRef:e,...r.result?.workflow_ref===void 0?{}:{workflowRef:r.result.workflow_ref}}),n.update(a,{tone:`success`,title:`Scratchpad run started`,message:`Tutti is preparing Worklist tasks.`})}else if(r.disposition.kind===`already_running`)p(null),n.update(a,{tone:`info`,title:`Already running`,message:`Tutti is already processing work.`});else{p(null);let e=bJ(r.disposition);n.update(a,{tone:e?.tone??`warning`,title:`Scratchpad run blocked`,...e?.label===void 0?{}:{message:e.label}})}DV(t,e,r.invalidates)},onError:(e,t,r)=>{p(null),n.update(r,{tone:`error`,title:`Scratchpad run failed`,message:$(e)})}}),fe=ee.data,pe=wJ({account:fe?.session.account,presence:oe.data?.presence}),me=fe?.generated_at??new Date(0).toISOString(),he=M.data===void 0?void 0:hJ(M.data.pages,50),ge=he??(ne&&S.kind===`latest`?fe?.snapshots.main_chat:void 0)??OV(),_e=M.data!==void 0&&M.hasPreviousPage===!0,F=M.data!==void 0&&M.hasNextPage===!0,ve=S.kind===`latest`||S.kind===`start`&&!F||S.kind===`around`&&ge.items.length>0&&!F,ye=S.kind===`around`?`around:${S.messageId}`:S.kind,be=S.kind===`around`?`focus`:S.kind===`start`?`start`:`latest`,xe=fe!==void 0&&(!ne||he===void 0&&M.isLoading&&(S.kind!==`latest`||fe.snapshots.main_chat===void 0)),Se=N.data??fe?.snapshots.scratchpad??AV(),Ce=ae.data??fe?.snapshots.read_state;MV({enabled:ee.isSuccess,hostClient:i,relayProjectRef:e,readState:Ce,scope:`chat`});let we=P.data??fe?.snapshots.active_clarification??NV(),Te=re.data??fe?.snapshots.active_approval??{state:`none`},Ee=we.state===`active`?we.round.id:void 0;(0,I.useEffect)(()=>{u!==null&&(Ee===void 0||u!==Ee)&&d(null)},[Ee,u]);let De=we.state===`active`&&we.thread.owner.kind===`task_compile`,Oe=(0,I.useMemo)(()=>{let e=new Set;for(let t of ge.items)t.clarification_card!==void 0&&e.add(t.clarification_card.round_id);return Ee!==void 0&&e.add(Ee),[...e]},[Ee,ge.items]),ke=mt({queries:Oe.map(t=>({queryKey:Z.clarificationRoundMessages(e,t),queryFn:()=>i.getClarificationRoundMessages(t,{anchor:`start`,limit:50}),enabled:ee.isSuccess}))}),Ae=gt({mutationFn:({roundId:e,body:t})=>i.sendClarificationRoundMessage(e,{body:t}),onSuccess:n=>{l(``),DV(t,e,n.invalidates)},onError:e=>{n.notify({tone:`error`,title:`Reply send failed`,message:$(e)})}}),je=gt({mutationFn:e=>i.submitClarificationRound(e,we.state===`active`&&we.round.answer_revision!==void 0?{expected_answer_revision:we.round.answer_revision}:{}),onMutate:e=>(d(e),n.notify({tone:`loading`,title:`Submitting reply`})),onSuccess:(r,i,a)=>{DV(t,e,r.invalidates);let o=r.disposition.kind===`accepted`||r.disposition.kind===`already_submitted`;o||d(e=>e===i?null:e),n.update(a,{tone:o?`success`:`warning`,title:o?`Reply submitted`:`Reply not submitted`,...o?{}:{message:r.disposition.kind===`no_answers`?`Add an answer before submitting.`:`The clarification or its answers changed. Review it and submit again.`}})},onError:(e,t,r)=>{d(e=>e===t?null:e),n.update(r,{tone:`error`,title:`Reply submit failed`,message:$(e)})}}),Me=gt({mutationFn:({approvalId:e,decisionId:t})=>i.decideApproval(e,{decision_id:t}),onMutate:()=>n.notify({tone:`loading`,title:`Sending decision`}),onSuccess:(r,i,a)=>{DV(t,e,r.invalidates),n.update(a,{tone:`success`,title:`Decision sent`})},onError:(e,t,r)=>{n.update(r,{tone:`error`,title:`Decision failed`,message:$(e)})}}),Ne=Object.fromEntries(Oe.map((e,t)=>[e,(ke[t]?.data??OV()).items.map(e=>Lz(e,{authorProfiles:pe,taskRetryState:a.stateFor}))])),Pe=CJ({account:fe?.session.account,presence:oe.data?.presence,messages:[...ge.items,...ke.flatMap(e=>e.data?.items??[])]}),Fe=ie.data??fe?.snapshots.execution_status??PV(me),Ie=FV(Fe),Le=IV(Fe,`scratchpad_refresh`),Re=IV(Fe,`scratchpad_refresh`,`foreground`),ze=IV(Fe,`task_compile`,`foreground`),Be=IV(Fe,`project_context_bootstrap`,`foreground`),Ve=f?.kind===`activity`?f.activityRef:void 0,He=f?.kind===`activity`?f.workflowRef:void 0;(0,I.useEffect)(()=>{if(f===null)return;if(Se.state===`submitted`){p(null);return}if(Se.state===`empty`){p(null);return}if(Fe.status===`pending`){De||p(null);return}let e=Fe.last_conclusion,t=He!==void 0&&e?.workflow_ref===He,r=Ve!==void 0&&e?.activity_ref===Ve;if(!(!t&&!r)){if(p(null),e?.kind===`failed`){n.notify({tone:`error`,title:`Scratchpad run failed`,message:e.summary});return}if(e?.kind===`needs_human`){n.notify({tone:`warning`,title:`Scratchpad needs input`,message:e.summary});return}}},[Fe.last_conclusion?.activity_ref,Fe.last_conclusion?.kind,Fe.last_conclusion?.summary,Fe.last_conclusion?.workflow_ref,Fe.status,Fe.summary,De,n,Se.state,f,Ve,He]);let Ue=Ve!==void 0&&Ie.some(e=>e.activity_ref===Ve),We=Ue&&Ie.some(e=>e.activity_ref===Ve&&e.workflow_kind===`scratchpad_refresh`)||f!==null&&Re,Ge=ze||Be||We||Ue||De,Ke=Le,qe=de.isPending||Ge||f!==null&&Fe.status===`idle`,Je=Fe.status!==`idle`||qe||m!==null;(0,I.useEffect)(()=>{if(!Je)return;_(Date.now());let e=window.setInterval(()=>{_(Date.now())},1e3);return()=>{window.clearInterval(e)}},[Je]);let Ye=Ie.some(e=>e.activity_kind===`procedure`&&(e.lane??`foreground`)===`foreground`),Xe=(Ie.some(e=>e.activity_kind===`run`)||Ye)&&!Ke&&!qe,Ze=hV(Fe),Qe={key:`scratchpad-submit`,label:De?`Needs input`:We?`Compiling Worklist tasks`:Be?`Preparing project context`:ze?`Compiling Worklist tasks`:`Preparing Worklist`,title:De?`Needs input`:`Preparing Scratchpad for Worklist.`,tone:De?`pending`:`running`,target:De?{kind:`clarification`}:{kind:`scratchpad`}},$e=qe&&Ze.length===0?[Qe]:Ze,tt=dV(Fe,{now:g}),nt=Ie.find(e=>(e.lane??`foreground`)===`foreground`?e.workflow_kind===`project_context_bootstrap`&&Be||e.workflow_kind===`task_compile`&&ze||e.workflow_kind===`scratchpad_refresh`&&We?!0:Ve!==void 0&&e.activity_ref===Ve:!1),rt=(qe?fV({activeScratchpadRefreshFromSubmit:We,activeProjectContextBootstrap:Be,activeTaskCompile:ze,activeTaskCompileClarification:De,now:g,...nt?.started_at===void 0?{}:{startedAt:nt.started_at},...Fe.runtime===void 0?{}:{runtime:Fe.runtime}}):null)??tt;(0,I.useEffect)(()=>{rt!==null&&(T.current=rt,h(null))},[rt]),(0,I.useEffect)(()=>{if(!Le||rt!==null)return;let e=T.current;if(e?.completionSource===void 0)return;let t=`hidden:${yJ(e)}`;if(E.current===t)return;E.current=t;let n=pV(e,e.summary);h(n),T.current=null;let r=window.setTimeout(()=>{h(e=>e?.key===n.key?null:e)},_J);return()=>{window.clearTimeout(r)}},[rt,Le]),(0,I.useEffect)(()=>{if(rt!==null||Fe.status!==`idle`)return;let e=Fe.last_conclusion;if(e?.kind!==`completed`)return;let t=e.activity_ref??`${e.kind}:${e.task_id??`none`}:${e.occurred_at}`;if(E.current===t)return;let n=T.current;if(n===null)return;if(!mV(n,e)){T.current=null;return}E.current=t;let r=pV(n,e.summary);h(r);let i=window.setTimeout(()=>{h(e=>e?.key===r.key?null:e),T.current=null},_J);return()=>{window.clearTimeout(i)}},[rt,Fe.last_conclusion?.activity_ref,Fe.last_conclusion?.kind,Fe.last_conclusion?.occurred_at,Fe.last_conclusion?.summary,Fe.last_conclusion?.task_id,Fe.status]);let it=rt??m,at=m===null?null:{key:`completed`,label:`Completed`,tone:`done`,target:m.completionTarget??{kind:`scratchpad`}},ot=at===null?$e:[at,...$e],st=e=>{e.preventDefault();let t=o.trim();if(t!==``&&!le.isPending){let e=w.current?.body===t?w.current:{body:t,commandId:Vt()};w.current=e,le.mutate(e)}},ct=e=>{e.preventDefault();let t=c.trim();t!==``&&Ee!==void 0&&!Ae.isPending&&Ae.mutate({roundId:Ee,body:t})},lt=ne&&he===void 0&&M.error!==null&&(S.kind!==`latest`||fe?.snapshots.main_chat===void 0),ut=fe===void 0&&ee.error!==null||lt;return(0,I.useEffect)(()=>{x!==void 0&&y(x)},[x]),(0,L.jsx)(MU,{projectName:fe?.workspace.project.display_name??`Workspace`,projectDescription:fe?.workspace.project.description??``,members:Pe,messages:ge.items.map(e=>Lz(e,{authorProfiles:pe,taskRetryState:a.stateFor,referenceAssetUrl:(e,t,n)=>i.viewerAssetUrl({path:e,variant:t,v:n})})),scratchpad:$z(Se,ge.items),executionProgress:it,activeApproval:Hz(Te),activeClarification:Rz(we),clarificationMessagesByRoundId:Ne,statusShortcuts:ot,unread:jV(Ce),artifactSignal:r.sidebarSignal,draft:o,roundDraft:c,sendPending:le.isPending,focusMessageId:v,messageHistoryIdentity:ye,initialMessagePosition:be,hasOlderMessages:_e,hasNewerMessages:F,loadingOlderMessages:M.isFetchingPreviousPage,loadingNewerMessages:M.isFetchingNextPage,historyConnectedToLatest:ve,submittedRoundId:u,referenceUploadPending:ue.isPending,scratchpadSyncPending:Ke,scratchpadActionsDisabled:Xe,scratchpadSubmitPending:qe,roundSendPending:Ae.isPending,roundSubmitPending:je.isPending,approvalDecisionPending:Me.isPending,projectNameSaving:se.isPending,projectDescriptionSaving:ce.isPending,loading:fe===void 0&&ee.isLoading||xe,unavailable:ut,onDraftChange:e=>{w.current?.body!==e.trim()&&(w.current=null),s(e)},onMessageFocused:()=>y(null),onInitialMessagePositioned:()=>{S.kind===`start`&&M.isSuccess&&te!==void 0&&RG(te,e)},onLoadOlderMessages:()=>{M.fetchPreviousPage()},onLoadNewerMessages:()=>{M.fetchNextPage({cancelRefetch:!1})},onJumpToLatest:()=>A(),onUploadReferenceFile:e=>ue.mutate(e),onOpenReferenceFile:t=>Q(RV(e,t)),onRoundDraftChange:l,onSendMessage:st,onSendRoundMessage:ct,onSubmitRound:()=>{Ee!==void 0&&je.mutate(Ee)},onDecideApproval:(e,t)=>Me.mutate({approvalId:e,decisionId:t}),onSubmitScratchpad:()=>de.mutate(Se.updated_at),onUpdateProjectDisplayName:async e=>{await se.mutateAsync(e)},onUpdateProjectDescription:async e=>{await ce.mutateAsync(e)},onOpenProjectCenter:()=>Q(`/projects`),onOpenWorklist:()=>Q(BV(e)),onOpenWorklistTask:t=>Q(BV(e,t)),onRetryTask:(e,t)=>a.retry(e,t),onOpenReferences:()=>Q(RV(e)),onOpenArtifacts:()=>Q(zV(e)),onViewArtifactFeedback:(t,n)=>{let i=ge.items.find(e=>e.id===t)?.refs?.artifact_feedback,a=i?.annotations[n];i===void 0||a===void 0||(r.requestFeedbackActivation({messageId:t,annotationIndex:n,previewGeneration:i.preview_generation,documentUrl:a.document_url,target:a.target}),Q(zV(e)))},onOpenSkills:()=>Q(WV(e)),onOpenTimeline:()=>Q(UV(e)),onOpenSettings:()=>Q(HV(e)),onActivateStatusShortcut:t=>KV(e,t)})}function EJ(e){return Yt(e)?Jt(e,`relay_session_invalid`)?`client_session`:`account_session`:null}function DJ(e){return e===`client_session`?{title:`Workspace session expired`,message:`Open the project again from Project Center.`}:{title:`Sign in required`,message:`Sign in to Tutti before opening this workspace.`}}function OJ(e){return e===`client_session`?`/projects`:`/`}function kJ({relayProjectRef:e,children:t}){let n=et(),r=_z(),i=(0,I.useMemo)(()=>or({...X,relayProjectRef:e}),[e]),a=(0,I.useRef)(void 0),o=(0,I.useRef)(null),s=R({queryKey:Z.bootstrap(e),queryFn:()=>i.getBootstrap(),staleTime:bV}),c=EJ(s.error),l=c===null&&s.data?.workspace.capabilities.sse===!0;return a.current===void 0&&s.data!==void 0&&(a.current=s.data.event_cursor),(0,I.useEffect)(()=>{if(c===null)return;let t=`${e}:${c}`;o.current!==t&&(o.current=t,r.notify({tone:`warning`,...DJ(c)}),Q(OJ(c),{replace:!0}))},[c,r,e]),(0,I.useEffect)(()=>{if(!l)return;let t=i.connectEvents({...a.current===void 0?{}:{after:a.current},onReady:t=>{t.payload.replay.status===`missed`&&n.invalidateQueries({queryKey:Z.hostRoot(e)})},onInvalidate:t=>{DV(n,e,t)},onError:()=>void 0});return()=>t.close()},[i,n,e,l]),(0,L.jsxs)(xK,{relayProjectRef:e,hostClient:i,enabled:c===null&&s.isSuccess,feedbackEnabled:s.data?.workspace.capabilities.artifact_feedback===!0,children:[(0,L.jsx)(Ab,{route:{kind:`workspace`,relayProjectRef:e},projectDisplayName:s.data?.workspace.project.display_name??null}),c===null?t:null]})}function AJ({relayProjectRef:e}){let t=(0,I.useMemo)(()=>or({...X,relayProjectRef:e}),[e]),n=R({queryKey:Z.bootstrap(e),queryFn:()=>t.getBootstrap(),staleTime:bV}).data?.session.account.account_ref,r=n===void 0?null:`${n}:${e}`,[i,a]=(0,I.useState)({identity:null,pending:!1}),[o,s]=(0,I.useState)(!1),c=PO();(0,I.useEffect)(()=>{n===void 0||r===null||i.identity===r||a({identity:r,pending:FG(n,e).tour_pending})},[n,r,i.identity,e]);let l=t=>{zG(t,e),a({identity:r,pending:!1})};return(0,L.jsxs)(L.Fragment,{children:[c&&r!==null&&i.identity===r&&i.pending&&n!==void 0&&typeof document<`u`?(0,Jx.createPortal)((0,L.jsx)(VO,{onOpen:()=>{l(n),s(!0)},onDismiss:()=>l(n)}),document.body):null,(0,L.jsx)(HO,{assets:jR,open:o,onOpenChange:s})]})}var jJ=`tutti.artifact-inspector`,MJ=128,NJ=128,PJ=2048,FJ=6,IJ=240,LJ=[`expanded`,`selected`,`checked`,`pressed`,`disabled`];function RJ(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function zJ(e,t){return Object.keys(e).every(e=>t.includes(e))}function BJ(e,t,n=!1){return typeof e==`string`&&e.length<=t&&(n||e.length>0)}function VJ(e){return{protocol:jJ,version:1,channel_id:e.channelId,...e.requestId===void 0?{}:{request_id:e.requestId},type:e.type,payload:e.payload}}function HJ(e){return RJ(e)?e.protocol===`tutti.artifact-inspector`&&e.version===1&&BJ(e.channel_id,MJ)&&(e.request_id===void 0||BJ(e.request_id,NJ))&&BJ(e.type,64)&&`payload`in e:!1}function UJ(e){if(!BJ(e,PJ))return!1;try{return new URL(e,`https://artifact.invalid`).origin===`https://artifact.invalid`&&e.startsWith(`/`)}catch{return!1}}function WJ(e,t){return e===void 0||BJ(e,t)}function GJ(e){return RJ(e)&&zJ(e,[`tag_name`,`role`,`accessible_name`])&&BJ(e.tag_name,64)&&WJ(e.role,64)&&WJ(e.accessible_name,160)}function KJ(e){if(!RJ(e)||!Array.isArray(e.context)||e.context.length>3||!zJ(e,[`element_kind`,`tag_name`,`role`,`accessible_name`,`text_excerpt`,`context`,`state`]))return!1;let t=e.state;return t!==void 0&&(!RJ(t)||!zJ(t,LJ)||!Object.values(t).every(e=>typeof e==`boolean`))?!1:(e.element_kind===`control`||e.element_kind===`content`||e.element_kind===`container`)&&BJ(e.tag_name,64)&&WJ(e.role,64)&&WJ(e.accessible_name,160)&&WJ(e.text_excerpt,280)&&e.context.every(GJ)}function qJ(e){return RJ(e)&&zJ(e,[`id`,`test_id`])&&WJ(e.id,128)&&WJ(e.test_id,160)&&(e.id!==void 0||e.test_id!==void 0)}function JJ(e){return!RJ(e)||!zJ(e,[`version`,`explicit_anchor`,`stable_attributes`,`semantic_path`,`selector_path`])||e.version!==1||!Array.isArray(e.semantic_path)||e.semantic_path.length>4||!Array.isArray(e.selector_path)||e.selector_path.length===0||e.selector_path.length>4?!1:WJ(e.explicit_anchor,160)&&(e.stable_attributes===void 0||qJ(e.stable_attributes))&&e.semantic_path.every(e=>RJ(e)&&zJ(e,[`role`,`accessible_name`])&&(e.role!==void 0||e.accessible_name!==void 0)&&WJ(e.role,64)&&WJ(e.accessible_name,160))&&e.selector_path.every(e=>RJ(e)&&zJ(e,[`root`,`selector`])&&(e.root===`document`||e.root===`open_shadow_root`)&&BJ(e.selector,1024))}function YJ(e){return!RJ(e)||!zJ(e,[`snapshot`,`anchor`,`fallback_context`])||!KJ(e.snapshot)||!JJ(e.anchor)?!1:e.fallback_context===void 0||RJ(e.fallback_context)&&zJ(e.fallback_context,[`snapshot`,`anchor`])&&KJ(e.fallback_context.snapshot)&&JJ(e.fallback_context.anchor)}function XJ(e){return RJ(e)&&Number.isInteger(e.candidate_index)&&Number(e.candidate_index)>=0&&Number(e.candidate_index)<FJ&&KJ(Object.fromEntries(Object.entries(e).filter(([e])=>e!==`candidate_index`)))}function ZJ(e){return!HJ(e)||!RJ(e.payload)?!1:e.type===`ready`?zJ(e.payload,[`document_url`,`inspector_version`])&&UJ(e.payload.document_url)&&e.payload.inspector_version===1:e.type===`candidates`?zJ(e.payload,[`capture_id`,`recommended_index`,`items`])&&BJ(e.payload.capture_id,NJ)&&Number.isInteger(e.payload.recommended_index)&&Number(e.payload.recommended_index)>=0&&Array.isArray(e.payload.items)&&e.payload.items.length>0&&e.payload.items.length<=FJ&&Number(e.payload.recommended_index)<e.payload.items.length&&e.payload.items.every(XJ):e.type===`selection`?zJ(e.payload,[`target`])&&YJ(e.payload.target):e.type===`resolution`?zJ(e.payload,[`status`])&&(e.payload.status===`exact`||e.payload.status===`context_only`||e.payload.status===`ambiguous`||e.payload.status===`missing`):e.type===`document_changed`?zJ(e.payload,[`document_url`])&&UJ(e.payload.document_url):e.type===`unavailable`?zJ(e.payload,[`reason`])&&BJ(e.payload.reason,IJ):!1}var QJ=5e3,$J=class extends Error{constructor(e){super(e),this.name=`ArtifactInspectorControllerError`}};function eY(e){let t;try{t=new URL(e)}catch{throw new $J(`Artifact preview origin is invalid`)}if(t.protocol!==`https:`&&t.protocol!==`http:`||t.origin!==e)throw new $J(`Artifact preview origin must be exact`);return t.origin}var tY=class{#e;#t;#n;#r;#i;#a;#o;#s;#c=null;#l=null;#u=!1;#d=!1;#f=0;#p=new Map;constructor(e){this.#e=e.iframe,this.#t=eY(e.targetOrigin),this.#n=e.onEvent,this.#r=e.requestTimeoutMs??QJ,this.#i=e.createChannelId??(()=>crypto.randomUUID()),this.#a=e.createMessageChannel??(()=>new MessageChannel),this.#o=e.setTimeoutFn??window.setTimeout.bind(window),this.#s=e.clearTimeoutFn??window.clearTimeout.bind(window)}get ready(){return this.#u}connect(){if(this.#d)throw new $J(`Artifact inspector controller is disposed`);let e=this.#e.contentWindow;if(e===null)throw new $J(`Artifact preview is not mounted`);this.#_(`Artifact preview document changed`);let t=this.#i();if(t.length===0||t.length>128)throw new $J(`Artifact inspector channel is invalid`);let n=this.#a();this.#c=t,this.#l=n.port1,this.#l.addEventListener(`message`,this.#g),this.#l.start();try{e.postMessage(VJ({channelId:t,type:`connect`,payload:{}}),this.#t,[n.port2])}catch(e){throw this.#_(`Artifact inspector connection failed`),e}}activate(){this.#m(`activate`,{})}deactivate(){this.#m(`deactivate`,{})}clearHighlight(){this.#m(`clear_highlight`,{})}confirmCandidate(e,t){return this.#h(`confirm_candidate`,{capture_id:e,candidate_index:t},`selection`).then(e=>{if(e.type!==`selection`)throw new $J(`Artifact inspector selection response is invalid`);return e.payload.target})}resolve(e){return this.#h(`resolve`,{target:e},`resolution`).then(e=>{if(e.type!==`resolution`)throw new $J(`Artifact inspector resolution response is invalid`);return e.payload.status})}dispose(){if(!this.#d){if(this.#l!==null)try{this.deactivate()}catch{}this.#d=!0,this.#_(`Artifact inspector controller was disposed`)}}#m(e,t){let n=this.#l,r=this.#c;if(this.#d||n===null||r===null||!this.#u)throw new $J(`Artifact inspector is not ready`);n.postMessage(VJ({channelId:r,type:e,payload:t}))}#h(e,t,n){let r=this.#l,i=this.#c;if(this.#d||r===null||i===null||!this.#u)return Promise.reject(new $J(`Artifact inspector is not ready`));let a=`${i}:${++this.#f}`;return new Promise((o,s)=>{let c=this.#o(()=>{this.#p.delete(a),s(new $J(`Artifact inspector request timed out`))},this.#r);this.#p.set(a,{expectedType:n,resolve:o,reject:s,timeout:c}),r.postMessage(VJ({channelId:i,requestId:a,type:e,payload:t}))})}#g=e=>{let t=e.data,n=this.#c;if(n===null||!ZJ(t)||t.channel_id!==n)return;t.type===`ready`&&(this.#u=!0);let r=t.request_id;if(r!==void 0){let e=this.#p.get(r);e!==void 0&&(t.type===`unavailable`?(this.#s(e.timeout),this.#p.delete(r),e.reject(new $J(t.payload.reason))):t.type===e.expectedType&&(this.#s(e.timeout),this.#p.delete(r),e.resolve(t)))}this.#n?.(t)};#_(e){this.#u=!1;for(let t of this.#p.values())this.#s(t.timeout),t.reject(new $J(e));this.#p.clear(),this.#l!==null&&(this.#l.removeEventListener(`message`,this.#g),this.#l.close()),this.#l=null,this.#c=null}},nY=4e3;function rY(e){if(e!==void 0)try{let t=new URL(e,window.location.href);return t.protocol===`https:`||t.protocol===`http:`?t.origin:void 0}catch{return}}function iY(e){return(e.summary?.length??0)+e.annotations.reduce((e,t)=>e+t.comment.length,0)}function aY(e){return new TextEncoder().encode(JSON.stringify(e)).byteLength}function oY({relayProjectRef:e}){let t=SK(),n=_z(),r=et(),i=(0,I.useMemo)(()=>or({...X,relayProjectRef:e}),[e]),a=(0,I.useMemo)(()=>Un(X),[]),o=(0,I.useRef)(null),s=(0,I.useRef)(null),c=(0,I.useRef)(null),l=(0,I.useRef)(null),u=(0,I.useRef)(null),[d,f]=(0,I.useState)(void 0),[p,m]=(0,I.useState)(!1),[h,g]=(0,I.useState)(void 0),[_,v]=(0,I.useState)(void 0),[y,b]=(0,I.useState)(!1),[x,S]=(0,I.useState)(void 0),[C,w]=(0,I.useState)(void 0),[T,E]=(0,I.useState)(``),D=R({queryKey:Z.bootstrap(e),queryFn:()=>i.getBootstrap(),staleTime:bV}),O=R({queryKey:Z.executionStatus(e),queryFn:()=>i.getExecutionStatus(),enabled:D.isSuccess,staleTime:bV}),k=R({queryKey:Z.readState(e),queryFn:()=>i.getReadState(),enabled:D.isSuccess,staleTime:bV}),A=D.data,ee=A?.generated_at??new Date(0).toISOString(),te=k.data??A?.snapshots.read_state,j=O.data??A?.snapshots.execution_status??PV(ee),ne=j.active_activity?.activity_kind===`run`||j.active_activities?.some(e=>e.activity_kind===`run`)===!0,M=t.artifact,N=M?.status===`declared`&&M.preview.status===`ready`&&M.preview.url!==void 0?M.preview.url:null,P=M?.status===`declared`?M.preview_generation:void 0,re=R({queryKey:Z.artifactPreviewSession(e,N??`not-ready`),queryFn:()=>a.issueArtifactPreviewSession(e),enabled:N!==null,staleTime:1/0,retry:1,refetchInterval:e=>oK(e.state.data)}),ie=re.data,ae=ie?.disposition.kind===`issued`?ie.result?.bootstrap_url:void 0,oe=re.error===null?aK(ie):$(re.error),se=rY(ae);(0,I.useEffect)(()=>{f(ae)},[ae]);let ce=(0,I.useCallback)(e=>{if(e.type===`ready`){m(!0),g(void 0),v(e.payload.document_url);return}if(e.type===`candidates`){g(void 0);let t=s.current;if(t===null){g(`Element selection is not ready.`);return}let n=e.payload.capture_id;u.current=n,t.confirmCandidate(n,e.payload.recommended_index).then(e=>{u.current===n&&(t.deactivate(),S(e),w(new Date().toISOString()),g(void 0))}).catch(e=>{u.current===n&&g($(e))}).finally(()=>{u.current===n&&(u.current=null)});return}if(e.type===`document_changed`){v(e.payload.document_url);return}e.type===`unavailable`&&g(e.payload.reason)},[]);(0,I.useEffect)(()=>{let e=o.current;if(e===null||se===void 0)return;m(!1),g(void 0),v(void 0);let t=new tY({iframe:e,targetOrigin:se,onEvent:ce});s.current=t;try{t.connect()}catch(e){g($(e))}return()=>{t.dispose(),s.current===t&&(s.current=null)}},[ce,se]),(0,I.useEffect)(()=>{if(!t.feedbackEnabled||se===void 0||p||N===null)return;let e=window.setTimeout(()=>{g(e=>e??`Element selection could not connect to this preview.`)},nY);return()=>window.clearTimeout(e)},[t.feedbackEnabled,p,se,N]),(0,I.useEffect)(()=>{if(t.feedbackDraftStale){try{s.current?.deactivate(),s.current?.clearHighlight()}catch{}u.current=null,S(void 0),w(void 0)}},[t.feedbackDraftStale]);let le=(0,I.useCallback)(()=>{m(!1),v(void 0);try{s.current?.connect()}catch(e){g($(e))}},[]),ue=(0,I.useCallback)(()=>{g(void 0),u.current=null,S(void 0),w(void 0);try{s.current?.clearHighlight(),s.current?.activate()}catch(e){g($(e))}},[]),de=(0,I.useCallback)(()=>{try{s.current?.deactivate(),s.current?.clearHighlight()}catch{}b(!1),u.current=null,S(void 0),w(void 0),E(``)},[]),fe=(0,I.useCallback)(()=>{u.current=null,S(void 0),w(void 0),E(``),g(void 0);try{s.current?.clearHighlight(),s.current?.activate()}catch(e){g($(e))}},[]),pe=(0,I.useCallback)(()=>{if(P===void 0||!p)return;let e=t.feedbackDraft;b(!0),!(e!==null&&e.previewGeneration!==P)&&(t.beginFeedbackDraft(P),ue())},[t,p,P,ue]),me=t.feedbackDraft,he=me===null?null:{expected_preview_generation:me.previewGeneration,annotations:me.annotations.map(e=>({document_url:e.document_url,comment:e.comment.trim(),target:e.target}))},ge=he!==null&&iY(he)>6e3,_e=he!==null&&aY(he)>65536,F=gt({mutationFn:e=>i.sendMainChatMessage({artifact_feedback:e.payload},{commandId:e.commandId}),onSuccess:i=>{if(i.disposition.kind===`created`){c.current=null,t.clearFeedbackDraft(),de(),DV(r,e,i.invalidates),n.notify({tone:`success`,title:`Artifact feedback sent`});let a=i.result?.message.id;Q(a===void 0?en(e):VV(e,a));return}i.disposition.kind===`artifact_changed`?n.notify({tone:`warning`,title:`Artifact changed`,message:`Start a new feedback batch from the current preview.`}):i.disposition.kind===`artifact_unavailable`?n.notify({tone:`warning`,title:`Artifact unavailable`,message:`The feedback draft was kept in this tab.`}):n.notify({tone:`error`,title:`Feedback send could not be confirmed`}),r.invalidateQueries({queryKey:Z.artifacts(e)})},onError:e=>{n.notify({tone:`error`,title:`Artifact feedback send failed`,message:$(e)})}}),ve=(0,I.useCallback)(()=>{if(he===null||he.annotations.length===0||t.feedbackDraftStale||ge||_e||F.isPending)return;let e=JSON.stringify(he),n=c.current?.serialized===e?c.current:{commandId:Vt(),payload:he,serialized:e};c.current=n,F.mutate(n)},[t.feedbackDraftStale,he,_e,ge,F]);(0,I.useEffect)(()=>{let e=t.pendingActivation;if(e===null){l.current=null;return}let r=`${e.messageId}:${e.annotationIndex}`;if(P===void 0||M?.status!==`declared`||M.preview.status!==`ready`||e.previewGeneration!==P){n.notify({tone:`warning`,title:`Artifact feedback is from an earlier preview`}),t.clearFeedbackActivation();return}if(!p||se===void 0||_===void 0){h!==void 0&&(n.notify({tone:`warning`,title:`Artifact element could not be located`,message:h}),t.clearFeedbackActivation());return}if(_!==e.documentUrl){let t=new URL(e.documentUrl,se).toString();d!==t&&(m(!1),f(t));return}let i=s.current;i===null||l.current===r||(l.current=r,i.resolve(e.target).then(e=>{e===`exact`?n.notify({tone:`success`,title:`Artifact element highlighted`}):e===`context_only`?n.notify({tone:`warning`,title:`Only the surrounding context is still visible`}):e===`ambiguous`?n.notify({tone:`warning`,title:`The element is no longer unique in this preview`}):n.notify({tone:`warning`,title:`The element is not currently visible`})}).catch(e=>{n.notify({tone:`warning`,title:`Artifact element could not be located`,message:$(e)})}).finally(()=>{l.current=null,t.clearFeedbackActivation()}))},[M,t,p,_,P,d,h,se,n]);let ye=d??ae,be=kz(M,{...ye===void 0?{}:{previewUrl:ye},pending:N!==null&&ye===void 0&&oe===void 0,...oe===void 0?{}:{errorMessage:oe}},{runActive:ne}),xe=M!==void 0,Se=!xe&&(D.error!==null||t.unavailable),Ce=t.feedbackEnabled,we=Ce&&p&&be.status===`declared`&&be.previewStatus===`ready`,Te=me?.annotations.map(e=>({key:e.key,documentUrl:e.document_url,comment:e.comment,time:Cz(e.createdAt),target:Oz(e.target.snapshot)}))??[],Ee=t.feedbackDraftStale?`Start over from the current Artifact before submitting.`:Te.length===0?`Add at least one comment before submitting.`:ge?`Shorten these comments to 6,000 characters before submitting.`:_e?`Remove some comments before submitting this batch.`:void 0,De=Ee===void 0&&!F.isPending;return(0,L.jsx)(NU,{statusShortcuts:hV(j),unread:jV(te),state:be,loading:!xe&&(D.isLoading||t.loading),unavailable:Se,iframeRef:o,onPreviewLoad:le,...A?.session.account===void 0?{}:{feedback:{supported:Ce,ready:we,open:y,canSubmit:De,submitPending:F.isPending,...Ee===void 0?{}:{submitDisabledReason:Ee},...h===void 0?{}:{unavailableReason:h},author:{displayName:A.session.account.display_name,avatar:A.session.account.avatar},onOpen:pe,onSubmit:ve,rail:{comment:T,annotations:Te,...x===void 0?{}:{selectedTarget:Oz(x.snapshot)},...C===void 0?{}:{selectedTime:Cz(C)},stale:t.feedbackDraftStale,...h===void 0?{}:{bridgeUnavailableReason:h},...ge||_e?{sendDisabledReason:ge?`Shorten these comments to 6,000 characters before submitting.`:`Remove some comments before submitting this batch.`}:{},onCommentChange:e=>{c.current=null,E(e)},onCancelSelection:fe,onAddAnnotation:()=>{if(!(x===void 0||_===void 0||T.trim().length===0)){c.current=null,t.addFeedbackAnnotation({document_url:_,comment:T.trim(),target:x,createdAt:C??new Date().toISOString()});try{s.current?.activate()}catch(e){g($(e))}S(void 0),w(void 0),E(``)}},onRemoveAnnotation:e=>{c.current=null,t.removeFeedbackAnnotation(e)},onReset:()=>{c.current=null,t.clearFeedbackDraft(),P!==void 0&&(t.beginFeedbackDraft(P),ue())}}}},onOpenProjectCenter:()=>Q(`/projects`),onOpenChat:()=>Q(en(e)),onOpenWorklist:()=>Q(BV(e)),onOpenReferences:()=>Q(RV(e)),onOpenSkills:()=>Q(WV(e)),onOpenTimeline:()=>Q(UV(e)),onOpenSettings:()=>Q(HV(e)),onActivateStatusShortcut:t=>KV(e,t)})}function sY(e){let t=e.summary;return t===void 0||t.status===`missing`?{summaryStatus:`Summary not available yet`}:t.status===`stale`?{...t.text===void 0?{}:{summary:t.text},summaryStatus:`Summary may be out of date`}:t.status===`unavailable`?{...t.text===void 0?{}:{summary:t.text},summaryStatus:`Summary could not be generated`}:t.text===void 0?{summaryStatus:`Summary unavailable`}:{summary:t.text}}function cY(e){if(e.category===`image`)return[e.media_type??`Image`,JV(e.size_bytes)].join(` · `);let t=[JV(e.size_bytes)];return e.text_read.can_read||t.push(YV(e.text_read.blocked_reason)),t.join(` · `)}function lY(e){if(!e.path.startsWith(`docs/reference/`))return;let[t,n]=e.path.slice(15).split(`/`);if(!(t===void 0||t.length===0||n===void 0||t===`files`||t===`images`))return t}function uY(e,t=lY(e)){if(t===void 0){let t=e.category===`image`?`docs/reference/images/`:`docs/reference/files/`;return e.path.startsWith(t)?e.path.slice(t.length):e.name}return e.path.slice(`docs/reference/${t}/`.length)}function dY(e,t){let n=lY(e);return{path:e.path,name:uY(e,n),meta:cY(e),...n===void 0?{}:{folderGroup:n},selected:t.selected,canPreview:e.text_read.can_read,category:e.category,...t.thumbnailUrl===void 0?{}:{thumbnailUrl:t.thumbnailUrl},...e.extension===void 0?{}:{extension:e.extension}}}function fY({relayProjectRef:e}){let t=et(),n=_z(),r=SK(),i=(0,I.useMemo)(()=>or({...X,relayProjectRef:e}),[e]),a=new URL(xV(),window.location.origin).searchParams.get(`path`)??void 0,[o,s]=(0,I.useState)(a),[c,l]=(0,I.useState)(`time`),u=R({queryKey:Z.bootstrap(e),queryFn:()=>i.getBootstrap(),staleTime:bV}),d=R({queryKey:Z.referenceFiles(e),queryFn:()=>i.getReferenceFiles({limit:200}),enabled:u.isSuccess,staleTime:bV}),f=R({queryKey:Z.messagesWindow(e,200),queryFn:()=>i.getMessages({limit:200}),enabled:u.isSuccess,staleTime:bV}),p=R({queryKey:Z.executionStatus(e),queryFn:()=>i.getExecutionStatus(),enabled:u.isSuccess,staleTime:bV}),m=R({queryKey:Z.readState(e),queryFn:()=>i.getReadState(),enabled:u.isSuccess,staleTime:bV}),h=d.data?.items??[],g=(0,I.useMemo)(()=>{let e=new Map;for(let t of f.data?.items??[]){let n=t.refs?.reference_file;if(n===void 0)continue;let r=e.get(n.path);(r===void 0||t.created_at>r)&&e.set(n.path,t.created_at)}return e},[f.data?.items]),_=(0,I.useMemo)(()=>{let e=(e,t)=>e.name.localeCompare(t.name),t=(t,n)=>{let r=g.get(t.path)??``,i=g.get(n.path)??``;return r===i?e(t,n):i.localeCompare(r)},n=(e,n)=>{let r=e.extension??e.media_type??`file`,i=n.extension??n.media_type??`file`;return r===i?t(e,n):r.localeCompare(i)},r=[...h.filter(e=>e.category===`image`)].sort(t),i=[...h.filter(e=>e.category!==`image`)].sort(c===`time`?t:n);return[...r,...i]},[c,h,g]);(0,I.useEffect)(()=>{if(_.length===0){o!==void 0&&s(void 0);return}if(a!==void 0&&_.some(e=>e.path===a)){o!==a&&s(a);return}(o===void 0||!_.some(e=>e.path===o))&&s(_[0]?.path)},[_,a,o]);let v=h.find(e=>e.path===o),y=v?.category===`image`,b=v?.text_read.can_read===!0,x=R({queryKey:o===void 0?Z.viewerFile(e,`none`):Z.viewerFile(e,o),queryFn:()=>i.getViewerFile({path:o,max_bytes:204800}),enabled:u.isSuccess&&o!==void 0&&b&&!y,staleTime:bV}),S=gt({mutationFn:async t=>{let n=await $V({relayProjectRef:e,purpose:`reference_file`,file:t});return i.uploadReferenceFile(n)},onMutate:e=>n.notify({tone:`loading`,title:`Uploading reference`,message:e.name}),onSuccess:(r,i,a)=>{DV(t,e,r.invalidates),r.result?.file.path!==void 0&&(s(r.result.file.path),Q(RV(e,r.result.file.path))),n.update(a,{tone:`success`,title:`Reference uploaded`,message:r.result?.file.name??i.name})},onError:(e,t,r)=>{n.update(r,{tone:`error`,title:`Reference upload failed`,message:$(e)||t.name})}}),C=u.data,w=C?.generated_at??new Date(0).toISOString(),T=m.data??C?.snapshots.read_state;MV({enabled:u.isSuccess,hostClient:i,relayProjectRef:e,readState:T,scope:`references`});let E=p.data??C?.snapshots.execution_status??PV(w),D=_.map(e=>dY(e,{selected:e.path===o,...e.category!==`image`||e.blob_oid===void 0?{}:{thumbnailUrl:i.viewerAssetUrl({path:e.path,variant:`thumbnail`,v:e.blob_oid})}})),O=x.data?.content,k=(()=>{if(v===void 0)return{title:h.length===0?`No reference files`:`No file selected`,unavailableReason:h.length===0?`No reference files`:`Select a reference file`};if(O?.kind===`text`)return{title:v.name,meta:JV(v.size_bytes),...sY(v),content:O.text};if(y&&o!==void 0)return v.blob_oid===void 0?{title:v.name,meta:JV(v.size_bytes),...sY(v),unavailableReason:`Image version unavailable`}:{title:v.name,meta:JV(v.size_bytes),...sY(v),imageUrl:i.viewerAssetUrl({path:o,variant:`preview`,v:v.blob_oid})};let e=b&&x.isLoading?`Loading`:XV(O)??(b?void 0:YV(v.text_read.blocked_reason));return e===void 0?{title:v.name,meta:JV(v.size_bytes),...sY(v)}:{title:v.name,meta:JV(v.size_bytes),...sY(v),unavailableReason:e}})(),A=d.data!==void 0,ee=!A&&(u.error!==null||d.error!==null);return(0,L.jsx)(PU,{statusShortcuts:hV(E),unread:jV(T),artifactSignal:r.sidebarSignal,files:D,detail:k,uploadPending:S.isPending,fileSortMode:c,loading:!A&&(u.isLoading||d.isLoading),unavailable:ee,onOpenProjectCenter:()=>Q(`/projects`),onOpenChat:()=>Q(en(e)),onOpenWorklist:()=>Q(BV(e)),onOpenArtifacts:()=>Q(zV(e)),onOpenSkills:()=>Q(WV(e)),onOpenTimeline:()=>Q(UV(e)),onOpenSettings:()=>Q(HV(e)),onActivateStatusShortcut:t=>KV(e,t),onSelectFile:t=>{s(t),Q(RV(e,t))},onUploadFile:e=>S.mutate(e),onFileSortModeChange:l})}var pY={provider_auth_invalid:`The existing API key was rejected.`,provider_quota_or_billing_required:`Quota or billing needs attention.`,provider_rate_limited:`The provider rate limit was reached. Try again shortly.`,provider_model_unavailable:`That model is unavailable for this provider.`,provider_network_error:`The provider could not be reached.`};function mY({relayProjectRef:e}){let t=et(),n=_z(),r=SK(),[i,a]=(0,I.useState)([]),o=(0,I.useMemo)(()=>or({...X,relayProjectRef:e}),[e]),s=R({queryKey:Z.bootstrap(e),queryFn:()=>o.getBootstrap()}),c=R({queryKey:Z.hostWorkspace(e),queryFn:()=>o.getWorkspace(),enabled:s.isSuccess}),l=R({queryKey:Z.hostSession(e),queryFn:()=>o.getSession(),enabled:s.isSuccess}),u=R({queryKey:Z.providerConfig(e),queryFn:()=>o.getProviderConfig(),enabled:s.isSuccess}),d=R({queryKey:Z.executionStatus(e),queryFn:()=>o.getExecutionStatus(),enabled:s.isSuccess}),f=R({queryKey:Z.readState(e),queryFn:()=>o.getReadState(),enabled:s.isSuccess}),p=R({queryKey:Z.projectPresence(e),queryFn:()=>er(X,e),enabled:s.isSuccess,staleTime:bV,refetchInterval:6e4});EV(s.isSuccess);let m=gt({mutationFn:e=>o.updateProjectDisplayName({display_name:e}),onMutate:e=>n.notify({tone:`loading`,title:`Saving project name`,message:e}),onSuccess:(r,i,a)=>{DV(t,e,r.invalidates??[{kind:`workspace`},{kind:`bootstrap`}]),n.update(a,{tone:`success`,title:`Project name saved`,message:i})},onError:(e,t,r)=>{n.update(r,{tone:`error`,title:`Project name save failed`,message:`${t}: ${$(e)}`})}}),h=gt({mutationFn:e=>o.updateProjectDescription({description:e}),onMutate:e=>n.notify({tone:`loading`,title:`Saving project description`,...e.length===0?{}:{message:e}}),onSuccess:(r,i,a)=>{DV(t,e,r.invalidates??[{kind:`workspace`},{kind:`bootstrap`}]),n.update(a,{tone:`success`,title:`Project description saved`,...i.length===0?{}:{message:i}})},onError:(e,t,r)=>{n.update(r,{tone:`error`,title:`Project description save failed`,message:$(e)})}}),g=gt({mutationFn:()=>o.getProviderModels(),onSuccess:e=>{if(e.status===`available`){a(e.models);return}a([]),n.notify({tone:`warning`,title:`Model list unavailable`,message:`You can still enter a model name manually.`})},onError:e=>{a([]),n.notify({tone:`warning`,title:`Model list unavailable`,message:`${$(e)} You can still enter a model name manually.`})}}),_=gt({mutationFn:e=>o.updateProviderDefaultModel({default_model:e.defaultModel,expected_default_model:e.expectedDefaultModel}),onMutate:e=>n.notify({tone:`loading`,title:`Validating model`,message:e.defaultModel}),onSuccess:(r,i,a)=>{switch(DV(t,e,r.invalidates),r.disposition.kind){case`updated`:case`unchanged`:n.update(a,{tone:`success`,title:r.disposition.kind===`updated`?`Model saved`:`Model unchanged`,message:i.defaultModel});break;case`stale_default_model`:n.update(a,{tone:`warning`,title:`Model changed elsewhere`,message:`The current model is ${r.disposition.current_default_model}. Review and save again.`});break;case`validation_failed`:n.update(a,{tone:`error`,title:`Model validation failed`,message:pY[r.disposition.reason]});break;case`provider_unavailable`:n.update(a,{tone:`error`,title:`Provider unavailable`,message:`The project provider configuration is not ready.`});break;case`interrupted`:n.update(a,{tone:`warning`,title:`Model update interrupted`,message:`Try saving again.`});break}},onError:(e,t,r)=>{n.update(r,{tone:`error`,title:`Model update failed`,message:$(e)})}}),v=s.data,y=v?.generated_at??new Date(0).toISOString(),b=f.data??v?.snapshots.read_state,x=c.data??v?.workspace,S=l.data??v?.session,C=u.data??v?.provider_config,w=d.data??v?.snapshots.execution_status??PV(y),T=x===void 0||S===void 0||C===void 0?void 0:bB(x,S,C,p.data?.presence),E=T===void 0&&(s.error!==null||c.error!==null||l.error!==null||u.error!==null),D=x?.relay.join_url,O=D===void 0||x===void 0||S===void 0?void 0:ZK({inviterName:S.account.display_name,projectName:x.project.display_name,joinUrl:D}),k=S?.membership.label===`owner`&&x?.capabilities.provider_model_update===!0&&C?.status===`configured`,A=C?.status===`configured`?C.default_model:void 0,ee=A===void 0||i.includes(A)?i:[A,...i];return(0,L.jsx)(qU,{...T===void 0?{}:{settings:T},statusShortcuts:hV(w),unread:jV(b),artifactSignal:r.sidebarSignal,loading:T===void 0&&(s.isLoading||c.isLoading||l.isLoading||u.isLoading),unavailable:E,projectNameSaving:m.isPending,projectDescriptionSaving:h.isPending,providerModelOptions:ee,providerModelEditable:k,providerModelDiscovering:g.isPending,providerModelSaving:_.isPending,onOpenProjectCenter:()=>Q(`/projects`),onOpenChat:()=>Q(en(e)),onOpenWorklist:()=>Q(BV(e)),onOpenReferences:()=>Q(RV(e)),onOpenArtifacts:()=>Q(zV(e)),onOpenSkills:()=>Q(WV(e)),onOpenTimeline:()=>Q(UV(e)),onActivateStatusShortcut:t=>KV(e,t),...O===void 0?{}:{onCopyJoinUrl:()=>{navigator.clipboard.writeText(O).then(()=>{n.notify({tone:`success`,title:`Invitation copied`})}).catch(()=>{n.notify({tone:`error`,title:`Copy failed`,message:`The browser could not copy the invite link.`})})}},onUpdateProjectDisplayName:async e=>{await m.mutateAsync(e)},onUpdateProjectDescription:async e=>{await h.mutateAsync(e)},...k?{onDiscoverProviderModels:async()=>{a([]),await g.mutateAsync()},onUpdateProviderDefaultModel:async(e,t)=>{try{let n=await _.mutateAsync({defaultModel:e,expectedDefaultModel:t});return n.disposition.kind===`updated`||n.disposition.kind===`unchanged`?{kind:`saved`}:n.disposition.kind===`stale_default_model`?{kind:`stale`,currentValue:n.disposition.current_default_model}:{kind:`failed`}}catch{return{kind:`failed`}}}}:{}})}function hY({relayProjectRef:e}){let t=et(),n=_z(),r=SK(),i=(0,I.useMemo)(()=>or({...X,relayProjectRef:e}),[e]),a=new URL(xV(),window.location.origin).searchParams.get(`skill`)??void 0,[o,s]=(0,I.useState)(a),c=R({queryKey:Z.bootstrap(e),queryFn:()=>i.getBootstrap(),staleTime:bV}),l=R({queryKey:Z.skills(e),queryFn:()=>i.getSkills(),enabled:c.isSuccess,staleTime:bV}),u=R({queryKey:Z.executionStatus(e),queryFn:()=>i.getExecutionStatus(),enabled:c.isSuccess,staleTime:bV}),d=R({queryKey:Z.readState(e),queryFn:()=>i.getReadState(),enabled:c.isSuccess,staleTime:bV}),f=l.data?.items??[];(0,I.useEffect)(()=>{if(f.length===0){o!==void 0&&s(void 0);return}if(a!==void 0&&f.some(e=>e.name===a)){o!==a&&s(a);return}(o===void 0||!f.some(e=>e.name===o))&&s(f[0]?.name)},[a,o,f]);let p=R({queryKey:o===void 0?Z.skillDetail(e,`none`):Z.skillDetail(e,o),queryFn:()=>i.getSkill(o),enabled:c.isSuccess&&o!==void 0,staleTime:bV}),m=gt({mutationFn:async t=>{let n=await $V({relayProjectRef:e,purpose:`skill_zip`,file:t});return i.importSkillZip(n)},onMutate:e=>n.notify({tone:`loading`,title:`Uploading skill`,message:e.name}),onSuccess:(r,i,a)=>{DV(t,e,r.invalidates);let o=r.result?.skill.name??(r.disposition.kind===`created`||r.disposition.kind===`replaced`?r.disposition.skill_name:void 0);o!==void 0&&(s(o),Q(WV(e,o))),n.update(a,{tone:`success`,title:`Skill installed`,message:o??i.name})},onError:(e,t,r)=>{n.update(r,{tone:`error`,title:`Skill upload failed`,message:$(e)})}}),h=gt({mutationFn:e=>i.deleteSkill({skill_name:e}),onMutate:e=>n.notify({tone:`loading`,title:`Deleting skill`,message:e}),onSuccess:(r,i,a)=>{DV(t,e,r.invalidates);let c=r.disposition.kind===`deleted`||r.disposition.kind===`not_found`?r.disposition.skill_name:o,l=f.find(e=>e.name!==c);s(l?.name),Q(l===void 0?WV(e):WV(e,l.name)),n.update(a,{tone:`success`,title:`Skill deleted`,message:c??i})},onError:(e,t,r)=>{n.update(r,{tone:`error`,title:`Skill delete failed`,message:`${t}: ${$(e)}`})}}),g=c.data,_=g?.generated_at??new Date(0).toISOString(),v=d.data??g?.snapshots.read_state;MV({enabled:c.isSuccess,hostClient:i,relayProjectRef:e,readState:v,scope:`skills`});let y=u.data??g?.snapshots.execution_status??PV(_),b=f.map(e=>({name:e.name,description:e.description,...e.short_description===void 0?{}:{shortDescription:e.short_description},selected:e.name===o,...e.updated_at===void 0?{}:{updatedLabel:`Updated ${yz(e.updated_at)}`}})),x=f.find(e=>e.name===o),S=(()=>{let e=p.data?.skill;return e===void 0?o===void 0?{title:f.length===0?`No skills`:`No skill selected`,unavailableReason:f.length===0?`No user skills`:`Select a skill`}:{title:x?.name??o,...x?.description===void 0?{}:{description:x.description},unavailableReason:p.isLoading?`Loading`:`Skill unavailable`}:{title:e.name,description:e.description,...e.updated_at===void 0?{}:{updatedLabel:`Updated ${yz(e.updated_at)}`},skillMd:e.skill_md}})(),C=l.data!==void 0,w=!C&&(c.error!==null||l.error!==null);return(0,L.jsx)(YU,{statusShortcuts:hV(y),unread:jV(v),artifactSignal:r.sidebarSignal,skills:b,detail:S,uploadPending:m.isPending,deletePending:h.isPending,loading:!C&&(c.isLoading||l.isLoading),unavailable:w,onOpenProjectCenter:()=>Q(`/projects`),onOpenChat:()=>Q(en(e)),onOpenWorklist:()=>Q(BV(e)),onOpenReferences:()=>Q(RV(e)),onOpenArtifacts:()=>Q(zV(e)),onOpenTimeline:()=>Q(UV(e)),onOpenSettings:()=>Q(HV(e)),onActivateStatusShortcut:t=>KV(e,t),onSelectSkill:t=>{s(t),Q(WV(e,t))},onUploadSkill:e=>m.mutate(e),onDeleteSkill:e=>h.mutate(e)})}function gY({relayProjectRef:e}){let t=SK(),n=(0,I.useMemo)(()=>or({...X,relayProjectRef:e}),[e]),r=R({queryKey:Z.bootstrap(e),queryFn:()=>n.getBootstrap(),staleTime:bV}),i=R({queryKey:Z.projectTimeline(e),queryFn:()=>n.getProjectTimeline(),enabled:r.isSuccess,staleTime:bV}),a=R({queryKey:Z.executionStatus(e),queryFn:()=>n.getExecutionStatus(),enabled:r.isSuccess,staleTime:bV}),o=R({queryKey:Z.readState(e),queryFn:()=>n.getReadState(),enabled:r.isSuccess,staleTime:bV}),s=r.data,c=s?.generated_at??new Date(0).toISOString(),l=o.data??s?.snapshots.read_state,u=a.data??s?.snapshots.execution_status??PV(c),d=i.data===void 0&&(r.error!==null||i.error!==null);return(0,L.jsx)(XU,{...i.data===void 0?{}:{timeline:jB(i.data,{onOpenWorklistTask:t=>Q(BV(e,t)),onOpenChatMessage:t=>Q(VV(e,t)),onOpenReferenceFile:t=>Q(RV(e,t))})},statusShortcuts:hV(u),unread:jV(l),artifactSignal:t.sidebarSignal,loading:i.data===void 0&&(r.isLoading||i.isLoading),unavailable:d,onOpenProjectCenter:()=>Q(`/projects`),onOpenChat:()=>Q(en(e)),onOpenWorklist:()=>Q(BV(e)),onOpenReferences:()=>Q(RV(e)),onOpenArtifacts:()=>Q(zV(e)),onOpenSkills:()=>Q(WV(e)),onOpenSettings:()=>Q(HV(e)),onActivateStatusShortcut:t=>KV(e,t)})}function _Y({relayProjectRef:e}){let t=SK(),n=(0,I.useMemo)(()=>or({...X,relayProjectRef:e}),[e]),r=gJ({hostClient:n,relayProjectRef:e}),i=new URL(xV(),window.location.origin).searchParams.get(`task`)??void 0,[a,o]=(0,I.useState)(void 0),s=R({queryKey:Z.bootstrap(e),queryFn:()=>n.getBootstrap()}),c=R({queryKey:Z.worklist(e),queryFn:()=>n.getWorklist(),enabled:s.isSuccess}),l=R({queryKey:Z.executionStatus(e),queryFn:()=>n.getExecutionStatus(),enabled:s.isSuccess}),u=R({queryKey:Z.readState(e),queryFn:()=>n.getReadState(),enabled:s.isSuccess}),d=s.data,f=d?.generated_at??new Date(0).toISOString(),p=c.data??d?.snapshots.worklist??kV(),m=u.data??d?.snapshots.read_state;MV({enabled:s.isSuccess,hostClient:n,relayProjectRef:e,readState:m,scope:`worklist`});let h=(0,I.useMemo)(()=>tB(p),[p]),g=i!==void 0&&h.some(e=>e.id===i),_=i!==void 0&&!g?i:void 0;(0,I.useEffect)(()=>{if(i!==void 0){o(g?e=>e===i?e:i:void 0);return}if(h.length===0){o(void 0);return}(a===void 0||!h.some(e=>e.id===a))&&o(qV(p,void 0))},[g,i,a,h,p]);let v=R({queryKey:a===void 0?Z.taskDetail(e,`none`):Z.taskDetail(e,a),queryFn:()=>n.getTaskDetail(a),enabled:s.isSuccess&&a!==void 0}),y=R({queryKey:a===void 0?Z.taskRunResults(e,`none`):Z.taskRunResults(e,a),queryFn:()=>n.getTaskRunResults(a,{limit:50}),enabled:s.isSuccess&&a!==void 0}),b=l.data??d?.snapshots.execution_status??PV(f),x=eB(p,a),S=dB(v.data,y.data),C=v.data?.detail.result.latest_run_result_id,w=v.data?.detail.result.retry_action,T=S===void 0||C===void 0||w===void 0?S:{...S,retryAction:{state:r.stateFor(S.taskId,C,w)??w,onRetry:()=>r.retry(S.taskId,C)}},E=c.data!==void 0||d?.snapshots.worklist!==void 0,D=!E&&(s.error!==null||c.error!==null);return(0,L.jsx)(ZU,{statusShortcuts:hV(b),unread:jV(m),artifactSignal:t.sidebarSignal,modules:x.modules,taskCount:x.taskCount,...T===void 0?{}:{detail:T},..._===void 0?{}:{missingTaskId:_},loading:!E&&(s.isLoading||c.isLoading),unavailable:D,onOpenProjectCenter:()=>Q(`/projects`),onOpenChat:()=>Q(en(e)),onOpenReferences:()=>Q(RV(e)),onOpenArtifacts:()=>Q(zV(e)),onOpenSkills:()=>Q(WV(e)),onOpenTimeline:()=>Q(UV(e)),onOpenSettings:()=>Q(HV(e)),onActivateStatusShortcut:t=>KV(e,t),onSelectTask:t=>{o(t),Q(BV(e,t))}})}var vY=`is-scrollbar-active`,yY=1e3;function bY(e,t){let n=e.target;return n instanceof Element?n:t.scrollingElement??t.documentElement}function xY(e){let t=new Map,n=e=>{let n=t.get(e);n!==void 0&&(window.clearTimeout(n),t.delete(e)),e.classList.remove(vY)},r=e=>{let r=t.get(e);r!==void 0&&window.clearTimeout(r),e.classList.add(vY);let i=window.setTimeout(()=>n(e),yY);t.set(e,i)},i=t=>{r(bY(t,e))};return e.addEventListener(`scroll`,i,{capture:!0,passive:!0}),()=>{e.removeEventListener(`scroll`,i,!0);for(let[e,n]of t)window.clearTimeout(n),e.classList.remove(vY);t.clear()}}var SY=`--tutti-viewport-height`,CY=`--tutti-viewport-offset-top`;function wY(e,t=window){let n=e.documentElement,r=t.visualViewport,i=()=>{let e=r?.height??t.innerHeight,i=r?.offsetTop??0;n.style.setProperty(SY,`${Math.max(0,e)}px`),n.style.setProperty(CY,`${Math.max(0,i)}px`)};return i(),t.addEventListener(`resize`,i),t.addEventListener(`orientationchange`,i),r?.addEventListener(`resize`,i),r?.addEventListener(`scroll`,i),()=>{t.removeEventListener(`resize`,i),t.removeEventListener(`orientationchange`,i),r?.removeEventListener(`resize`,i),r?.removeEventListener(`scroll`,i),n.style.removeProperty(SY),n.style.removeProperty(CY)}}var TY=new Xe({defaultOptions:{queries:{retry:!1,refetchOnWindowFocus:!1}}});function EY(){let e=CV();if(e.kind===`managed_account`)return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(Ab,{route:e}),(0,L.jsx)(DG,{})]});if(e.kind===`managed_project_consent`)return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(Ab,{route:e}),(0,L.jsx)(EG,{})]});if(e.kind===`local_console`)return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(Ab,{route:e}),(0,L.jsx)(aq,{})]});if(e.kind===`local_console_account_gate`)return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(Ab,{route:e}),(0,L.jsx)(lq,{})]});if(e.kind===`home`)return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(Ab,{route:e}),(0,L.jsx)(PK,{})]});if(e.kind===`join`)return(0,L.jsx)(BG,{joinToken:e.joinToken});if(e.kind===`feishu_project`)return(0,L.jsx)(MK,{relayProjectRef:e.relayProjectRef});if(e.kind===`feishu_connection`)return(0,L.jsx)(rH,{entryRef:e.entryRef});if(e.kind===`legacy_feishu_project`)return(0,L.jsx)(CK,{relayProjectRef:e.relayProjectRef});if(e.kind===`setup`)return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(Ab,{route:e}),(0,L.jsx)(lJ,{})]});if(e.kind===`project_open`)return(0,L.jsx)(Jq,{requestedOpenProjectRef:e.relayProjectRef});if(e.kind===`workspace`||e.kind===`worklist`||e.kind===`references`||e.kind===`artifacts`||e.kind===`skills`||e.kind===`timeline`||e.kind===`settings`){let t=e.kind===`workspace`?(0,L.jsx)(TJ,{relayProjectRef:e.relayProjectRef}):e.kind===`worklist`?(0,L.jsx)(_Y,{relayProjectRef:e.relayProjectRef}):e.kind===`references`?(0,L.jsx)(fY,{relayProjectRef:e.relayProjectRef}):e.kind===`artifacts`?(0,L.jsx)(oY,{relayProjectRef:e.relayProjectRef}):e.kind===`skills`?(0,L.jsx)(hY,{relayProjectRef:e.relayProjectRef}):e.kind===`timeline`?(0,L.jsx)(gY,{relayProjectRef:e.relayProjectRef}):(0,L.jsx)(mY,{relayProjectRef:e.relayProjectRef});return(0,L.jsxs)(kJ,{relayProjectRef:e.relayProjectRef,children:[t,(0,L.jsx)(AJ,{relayProjectRef:e.relayProjectRef})]},e.relayProjectRef)}return(0,L.jsx)(Jq,{...e.kind===`project_center`&&e.panel?{initialPanel:e.panel}:{}})}function DY(){return(0,I.useEffect)(()=>{let e=xY(document),t=wY(document);return()=>{e(),t()}},[]),(0,L.jsx)(tt,{client:TY,children:(0,L.jsx)(gz,{children:(0,L.jsx)(EY,{})})})}function OY(e){let t=document.querySelector(`link[rel="icon"]`),n=t??document.createElement(`link`);n.rel=`icon`,n.type=`image/png`,n.sizes=`1204x1204`,n.href=e,t===null&&document.head.append(n)}OY(OR),(0,vt.createRoot)(document.getElementById(`root`)).render((0,L.jsx)(I.StrictMode,{children:(0,L.jsx)(DY,{})}));export{K as C,Wb as S,px as _,_O as a,qb as b,DO as c,zx as d,Rx as f,vx as g,bx as h,wO as i,xO as l,Cx as m,lO as n,yO as o,Fx as p,EO as r,TO as s,sL as t,Kx as u,fx as v,Qe as w,Gb as x,ix as y};
|
|
70
|
+
`)}function aB(e){return e.status===`promoted`?`promoted`:e.status===`not_promoted`?`not promoted`:`not attempted`}function oB(e){return e.result_kind===`needs_human`?`needs human`:e.result_kind===`failed`?`failed`:e.result_kind===`finished`?e.outcome??`finished`:`none`}function sB(e){if(e.result_kind===`needs_human`)return`pending`;if(e.result_kind===`failed`)return`failed`;if(e.result_kind===`finished`)return e.outcome===`completed`?`done`:`failed`}function cB(e){return e.result_kind===`needs_human`?`pending`:e.result_kind===`failed`?`failed`:e.outcome===`completed`?`done`:`failed`}function lB(e){return e.result_kind===`needs_human`?`Needs human`:e.result_kind===`failed`?`Failed`:e.outcome===`completed`?`Finished`:`Finished with failure`}function uB(e){return{id:e.id,title:lB(e),meta:Cz(e.created_at),status:cB(e)}}function dB(e,t,n={}){if(e===void 0)return;let r=e.detail.result,i=e.detail.contract,a=sB(r),o=[a===void 0?{label:`STATUS`,value:oB(r)}:{label:`STATUS`,value:oB(r),status:a}];return r.updated_at!==void 0&&o.push({label:`UPDATED`,value:Cz(r.updated_at)}),o.push({label:`RESULT`,value:rB(r.summary,`No run result yet.`)}),r.checks!==void 0&&o.push({label:`CHECKS`,value:r.checks}),r.docs!==void 0&&o.push({label:`DOCS`,value:r.docs}),r.promotion!==void 0&&o.push({label:`PROMOTE`,value:aB(r.promotion)}),r.error_code!==void 0&&o.push({label:`ERROR`,value:r.error_code}),r.retryable!==void 0&&o.push({label:`RETRY`,value:r.retryable?`can retry`:`needs new scope`}),{taskId:e.task.id,title:e.task.title,status:e.task.status,summary:rB(e.task.summary),contractRows:[{label:`GOAL`,value:i.goal||`None`},{label:`SCOPE`,value:iB(i.scope)}],resultRows:o,evidenceRows:o,runResults:(t?.items??[]).map(uB),...r.retry_action===void 0||n.includeRetryAction===!1?{}:{retryAction:{state:r.retry_action}}}}var fB=new Intl.DateTimeFormat(vz,{year:`numeric`,month:`short`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,hour12:!1}),pB={connected:`Connected`,reconnecting:`Reconnecting`,unavailable:`Unavailable`},mB={configured:`Configured`,invalid:`Needs attention`,not_configured:`Not configured`,managed:`Tutti trial`},hB={provider_auth_invalid:`API key is invalid`,provider_quota_or_billing_required:`Quota or billing needs attention`,provider_rate_limited:`Provider rate limit reached`,provider_model_unavailable:`Selected model is unavailable`,provider_network_error:`Provider could not be reached`,unknown:`Provider validation failed`};function gB(e){let t=new Date(e);return Number.isFinite(t.getTime())?fB.format(t):e}function _B(e){return e===`owner`?`Owner`:`Member`}function vB(e){return e.status===`managed`?{status:mB.managed,model:`Tutti`}:e.status===`not_configured`?{status:mB[e.status]}:{status:mB[e.status],...e.default_model===void 0?{}:{model:e.default_model},...e.validated_at===void 0?{}:{lastValidated:gB(e.validated_at)},...e.status!==`invalid`||e.invalid_reason_code===void 0?{}:{issue:hB[e.invalid_reason_code]}}}function yB(e,t){let n=(t?.members??[]).map(e=>({key:e.account_ref,displayName:e.display_name,avatar:e.avatar}));return n.some(t=>t.key===e.account.account_ref)?n:[...n,{key:e.account.account_ref,displayName:e.account.display_name,avatar:e.account.avatar}]}function bB(e,t,n,r){return{connectionStatus:{label:pB[e.relay.status],tone:e.relay.status===`connected`?`live`:`warning`},project:{displayName:e.project.display_name,description:e.project.description??``,members:yB(t,r)},access:{...e.relay.join_url===void 0?{}:{inviteLink:e.relay.join_url},...e.relay.join_token_expires_at===void 0?{}:{inviteExpires:gB(e.relay.join_token_expires_at)},signedInAs:{displayName:t.account.display_name,avatar:t.account.avatar},role:_B(t.membership.label),joined:gB(t.membership.joined_at)},provider:vB(n),tutti:{version:e.server.version}}}var xB=new Intl.NumberFormat(`en-US`),SB=NC(`beethoven-ode-to-joy`);function CB(e){return[...e].reverse().map((e,t)=>{let n=SB.units[t%SB.units.length];if(n===void 0)throw Error(`Timeline score theme unexpectedly has no units`);return{...n,id:e.id,label:`Open ${e.stageLabel??e.title}`}})}function wB(e){return xB.format(e)}function TB(e){if(e!==void 0)switch(e){case`completed`:return`success`;case`failed`:return`error`;case`needs_human`:return`warning`}}function EB(e){if(e.kind===`task_accepted`)return`Task accepted`;if(e.kind===`checkpoint`)return`Checkpoint`;switch(e.update_state){case`completed`:return`Task completed`;case`failed`:return`Task failed`;case`needs_input`:return`Needs input`;default:return`Task update`}}function DB(e,t){let n=Date.parse(e.occurred_at),r=Date.parse(t.occurred_at),i=Number.isFinite(n)&&Number.isFinite(r)?r-n:t.occurred_at.localeCompare(e.occurred_at);return i===0?t.id.localeCompare(e.id):i}function OB(e,t={}){let n=e.token_usage?.total_tokens??0,r=TB(e.status),i={id:e.id,title:e.task_title??e.title,occurredAt:Cz(e.occurred_at),kind:e.kind,stageLabel:EB(e)};return r!==void 0&&(i.tone=r),n>0&&(i.tokenLabel=`${wB(n)} tokens`),e.task_id!==void 0&&(i.taskId=e.task_id),e.task_title!==void 0&&(i.taskTitle=e.task_title),e.trace_card!==void 0&&(i.trace=AB(e.trace_card,t)),i}function kB(e,t){if(e.kind===`worklist_task`&&e.task_id!==void 0){let n=t.onOpenWorklistTask,r=e.task_id;return n===void 0?void 0:()=>n(r)}if(e.kind===`chat_message`&&e.message_id!==void 0){let n=t.onOpenChatMessage,r=e.message_id;return n===void 0?void 0:()=>n(r)}if(e.kind===`reference_file`&&e.path!==void 0){let n=t.onOpenReferenceFile,r=e.path;return n===void 0?void 0:()=>n(r)}}function AB(e,t={}){return{tone:e.tone,...e.summary===void 0?{}:{summary:e.summary},...e.origin===void 0?{}:{origin:{...e.origin.title===void 0?{}:{title:e.origin.title},...e.origin.summary===void 0?{}:{summary:e.origin.summary},...e.origin.unavailable_reason===void 0?{}:{unavailableReason:e.origin.unavailable_reason},...e.origin.source_count===void 0?{}:{sourceCount:e.origin.source_count},...e.origin.snippets===void 0?{}:{snippets:e.origin.snippets.map(e=>({id:e.message_id,author:e.author,body:e.body,createdAt:Cz(e.created_at),...t.onOpenChatMessage===void 0?{}:{onClick:()=>t.onOpenChatMessage?.(e.message_id)}}))}}},...e.decisions===void 0?{}:{decisions:e.decisions.map((e,t)=>({id:`${t}:${e.source??`decision`}`,...e.title===void 0?{}:{title:e.title},summary:e.summary}))},...e.clarification===void 0?{}:{clarification:{...e.clarification.title===void 0?{}:{title:e.clarification.title},...e.clarification.summary===void 0?{}:{summary:e.clarification.summary},...e.clarification.request===void 0?{}:{request:e.clarification.request},...e.clarification.status===void 0?{}:{status:e.clarification.status},...e.clarification.answer_count===void 0?{}:{answerCount:e.clarification.answer_count},...e.clarification.answers===void 0?{}:{answers:e.clarification.answers.map(e=>({id:e.message_id,author:e.author,body:e.body,createdAt:Cz(e.created_at),...t.onOpenChatMessage===void 0?{}:{onClick:()=>t.onOpenChatMessage?.(e.message_id)}}))}}},...e.contract===void 0?{}:{contract:{goal:e.contract.goal,scope:e.contract.scope,...e.contract.truncated===void 0?{}:{truncated:e.contract.truncated}}},...e.result===void 0?{}:{result:{summary:e.result.summary,...e.result.error_code===void 0?{}:{errorCode:e.result.error_code}}},...e.changes===void 0?{}:{changes:{items:e.changes.items.map(e=>({status:e.status,path:e.path,...e.previous_path===void 0?{}:{previousPath:e.previous_path}})),totalCount:e.changes.total_count,truncated:e.changes.truncated}},...e.verification===void 0?{}:{verification:{checks:e.verification.checks,...e.verification.skip_reason_code===void 0?{}:{skipReasonCode:e.verification.skip_reason_code},...e.verification.skip_reason_summary===void 0?{}:{skipReasonSummary:e.verification.skip_reason_summary}}},...e.promotion===void 0?{}:{promotion:{status:e.promotion.status,...e.promotion.commit_short_oid===void 0?{}:{commitShortOid:e.promotion.commit_short_oid},...e.promotion.summary===void 0?{}:{summary:e.promotion.summary},...e.promotion.reason_code===void 0?{}:{reasonCode:e.promotion.reason_code}}},...e.checkpoint===void 0?{}:{checkpoint:{counters:e.checkpoint.counters,items:e.checkpoint.items.map(e=>({id:e.task_id,title:e.title,status:e.status,summary:e.summary})),...e.checkpoint.generated_files===void 0?{}:{generatedFiles:e.checkpoint.generated_files.map(e=>({id:e.path,name:e.name,path:e.path}))},...e.checkpoint.truncated===void 0?{}:{truncated:e.checkpoint.truncated}}},links:e.links.flatMap(e=>{let n=e.task_id??e.message_id??e.path,r=kB(e,t);return r===void 0?[]:[{id:`${e.kind}:${n??e.label}`,label:e.label,onClick:r}]})}}function jB(e,t={}){let n=e.usage_overview,r=[...e.items].sort(DB).map(e=>OB(e,t));return{tokenOverview:{totalLabel:wB(n.total_tokens)},items:r,scoreUnits:CB(r)}}var MB=[{id:`prepare`,label:`Preparing workspace`},{id:`implement`,label:`Implementing with Codex`},{id:`validate`,label:`Validating result`},{id:`save`,label:`Saving result`}],NB=[{id:`workspace_inspect`,summary:`inspecting the persistent project workspace`,displayStageId:`prepare`},{id:`artifact_candidate_validate`,summary:`validating the candidate Artifact preview`,displayStageId:`validate`},{id:`provider_task_run`,summary:`running Codex task implementation`,displayStageId:`implement`},{id:`provider_retry`,summary:`retrying Codex task after a transient provider failure`,displayStageId:`implement`},{id:`candidate_diff_collect`,summary:`collecting candidate changes`,displayStageId:`validate`},{id:`checks`,summary:`running project checks`,displayStageId:`validate`},{id:`post_checks_diff_collect`,summary:`rechecking candidate changes after checks`,displayStageId:`validate`},{id:`accepted_checkpoint`,summary:`saving the validated project state as an accepted checkpoint`,displayStageId:`save`},{id:`promotion_reconcile`,summary:`reconciling promotion after mainline changed`,displayStageId:`save`},{id:`self_correction`,summary:`retrying task implementation after pipeline feedback`,displayStageId:`implement`}],PB={scratchpad_refresh:{key:`scratchpad_refresh`,label:`Refreshing Scratchpad`,target:{kind:`scratchpad`}},project_context_bootstrap:{key:`project_context_bootstrap`,label:`Preparing project context`,target:{kind:`scratchpad`}},task_compile:{key:`task_compile`,label:`Compiling Worklist tasks`,target:{kind:`scratchpad`}},context_sync:{key:`context_sync`,label:`Synchronizing project context`,target:{kind:`worklist`}},reference_summary_refresh:{key:`reference_summary_refresh`,label:`Processing reference`,target:{kind:`references`}},recovery_check:{key:`recovery_check`,label:`Recovering workspace`,target:{kind:`worklist`}},follow_up_check:{key:`follow_up_check`,label:`Checking follow-up`,target:{kind:`worklist`}}},FB=`Tutti is working on`,IB=new Set([`scratchpad_refresh`]),LB=`task_compile`,RB=`project_context_bootstrap`,zB=3,BB={analyzing_task:`Analyzing the task`,searching_codebase:`Searching the codebase`,reading_files:`Reading project files`,planning:`Planning the next change`,editing_files:`Editing project files`,running_checks:`Running project checks`,running_command:`Running a project command`,using_tool:`Using a project tool`,waiting_for_approval:`Waiting for approval`,preparing_result:`Preparing the result`,reading_context:`Reading project context`,finalizing:`Preparing the result`};function VB(e){if(e===void 0)return null;if(typeof e==`number`)return Number.isFinite(e)?e:null;if(e instanceof Date)return e.getTime();let t=Date.parse(e);return Number.isNaN(t)?null:t}function HB(e){return VB(e.now)??Date.now()}function UB(e){if(e<60)return`${e}s`;let t=Math.floor(e/60),n=e%60;if(t<60)return`${t}m${n}s`;let r=Math.floor(t/60),i=t%60;return`${r}h${String(i).padStart(2,`0`)}m`}function WB(e,t){let n=VB(e);if(n!==null)return UB(Math.max(0,Math.floor((HB(t)-n)/1e3)))}function GB(e,t){return WB(e.active_activity?.started_at??e.runtime?.started_at,t)}function KB(e){let t=e.runtime;if(t===void 0)return;let n=e.active_activity?.activity_ref;if(!(n!==void 0&&t.activity_ref!==n))return t}function qB(e){if(e<1e3)return String(e);if(e<1e6){let t=e/1e3;return`${e<1e5?t.toFixed(1).replace(/\.0$/u,``):String(Math.round(t))}k`}return`${(e/1e6).toFixed(1).replace(/\.0$/u,``)}m`}function JB(e){let t=YB(e);return t===void 0?[]:[t]}function YB(e){let t=e?.token_usage?.total_tokens;return t===void 0?void 0:`${qB(t)} tokens`}function XB(e){if(e?.current_action_detail!==void 0)return e.current_action_detail;let t=e?.current_action;return t===void 0?e?.token_usage===void 0?void 0:BB.analyzing_task:BB[t]}function ZB(e,t){if(e?.current_action!==`analyzing_task`||e.current_action_started_at===void 0)return;let n=VB(e.current_action_started_at);if(n===null)return;let r=Math.max(0,Math.floor((HB(t)-n)/1e3));if(!(r<zB))return`Thinking for ${UB(r)}`}function QB(e){let t={};return e.active_activity?.activity_ref!==void 0&&(t.activityRef=e.active_activity.activity_ref),e.active_activity?.workflow_ref!==void 0&&(t.workflowRef=e.active_activity.workflow_ref),e.active_task?.id!==void 0&&(t.taskId=e.active_task.id),Object.keys(t).length===0?void 0:t}function $B(e,t,n){return e===`context_sync`&&t.last_conclusion?.task_id!==void 0?{kind:`task`,taskId:t.last_conclusion.task_id}:n.target}function eV(e){return NB[oV(e)]??NB[0]}function tV(e){return MB.findIndex(t=>t.id===e)}function nV(e){return MB[tV(eV(e).displayStageId)]??MB[0]}function rV(e){if(e.status!==`running`||e.active_activity?.activity_kind!==`procedure`)return null;let t=e.active_activity.workflow_kind;if(t===void 0||IB.has(t))return null;let n=PB[t],r=$B(t,e,n);return{key:`procedure:${n.key}`,label:n.label,title:n.label,tone:`running`,target:r}}function iV(e,t){if(e.status!==`running`||e.active_activity?.activity_kind!==`procedure`)return null;let n=e.active_activity.workflow_kind;if(n===void 0||IB.has(n))return null;let r=PB[n],i=$B(n,e,r),a=QB(e),o=KB(e),s=n===LB?JB(o):[],c=n===RB?`Creating project context for the first time`:void 0,l=WB(e.active_activity?.started_at??o?.started_at,t);return{key:`procedure:${r.key}`,title:FB,summary:e.summary,tone:`running`,metaLabel:r.label,completionTarget:i,...a===void 0?{}:{completionSource:a},steps:[{id:`procedure:${r.key}:active`,label:r.label,status:`running`,...l===void 0?{}:{elapsedLabel:l},...c===void 0?{}:{detail:c},...s.length===0?{}:{metrics:s}}]}}function aV(e){let t=e.indexOf(` - `);return t===-1?``:e.slice(t+3).trim().replace(/\.$/u,``)}function oV(e){let t=aV(e).toLocaleLowerCase();if(t===``)return 0;let n=NB.findIndex(e=>t.includes(e.summary.toLocaleLowerCase()));return n===-1?0:n}function sV(e,t){if(e.status!==`running`||e.active_task===void 0)return null;let n=tV(eV(e.summary).displayStageId),r=nV(e.summary),i=QB(e),a=KB(e),o=GB(e,t);return{key:`run:${e.active_task.id}`,title:FB,summary:e.active_task.title,tone:`running`,metaLabel:r.label,completionTarget:{kind:`task`,taskId:e.active_task.id},...i===void 0?{}:{completionSource:i},steps:MB.map((e,r)=>{let i=r<n?`done`:r===n?`running`:`waiting`,s=r===n,c=e.id===`implement`,l=s&&c?XB(a):void 0,u=s&&c?YB(a):void 0,d=s&&c?ZB(a,t):void 0;return{id:e.id,label:e.label,status:i,...s&&o!==void 0?{elapsedLabel:o}:{},...u===void 0?{}:{detailPrefix:u},...l===void 0?{}:{detail:l},...d===void 0?{}:{activityLabel:d}}})}}function cV(e,t){if(e.status!==`running`||e.active_activity?.workflow_kind!==`context_sync`||e.last_conclusion?.kind!==`completed`||e.last_conclusion.task_id===void 0)return null;let n=QB(e),r=GB(e,t);return{key:`context-sync:${e.last_conclusion.task_id}`,title:FB,summary:e.summary,tone:`running`,metaLabel:`Synchronizing context`,completionTarget:{kind:`task`,taskId:e.last_conclusion.task_id},...n===void 0?{}:{completionSource:n},steps:[{id:`task_complete`,label:`Task completed`,status:`done`},{id:`context_sync`,label:`Synchronizing project context`,status:`running`,...r===void 0?{}:{elapsedLabel:r}}]}}function lV(e){let t=e.blocked_by?.kind===`approval`?{kind:`approval`}:{kind:`clarification`};return{key:`pending:${e.blocked_by?.kind===`approval`?e.blocked_by.approval_id:e.blocked_by?.kind===`clarification`?e.blocked_by.round_id:e.updated_at}`,title:FB,summary:e.summary,tone:`pending`,metaLabel:`Needs input`,completionTarget:t,steps:[{id:`waiting_for_input`,label:`Needs input`,status:`pending`}]}}function uV(e){let t=e.last_conclusion?.task_id??(e.status===`failed`?e.active_task?.id:void 0);return t===void 0&&e.status!==`failed`?null:{key:`failed:${t??e.updated_at}`,title:FB,summary:e.last_conclusion?.summary??e.summary,tone:`failed`,metaLabel:`Failed`,...t===void 0?{}:{completionTarget:{kind:`task`,taskId:t}},steps:[{id:`run_failed`,label:`Run failed`,status:`failed`}]}}function dV(e,t={}){let n=sV(e,t);if(n!==null)return n;let r=cV(e,t);if(r!==null)return r;let i=iV(e,t);return i===null?e.status===`pending`?lV(e):e.status===`failed`?uV(e):null:i}function fV(e){let t=e.activeTaskCompileClarification&&!e.activeScratchpadRefreshFromSubmit&&!e.activeProjectContextBootstrap&&!e.activeTaskCompile,n=[],r=WB(e.startedAt,e);if(e.activeProjectContextBootstrap)n.push({id:`scratchpad_submit:project_context`,label:`Preparing project context`,status:`running`,...r===void 0?{}:{elapsedLabel:r},detail:`Creating project context for the first time`});else if(e.activeTaskCompile||e.activeScratchpadRefreshFromSubmit){let t=e.activeTaskCompile?JB(e.runtime):[];n.push({id:`scratchpad_submit:task_compile`,label:`Compiling Worklist tasks`,status:`running`,...r===void 0?{}:{elapsedLabel:r},...t.length===0?{}:{metrics:t}})}else n.push({id:`scratchpad_submit:task_compile`,label:`Compiling Worklist tasks`,status:t?`done`:`running`});t&&n.push({id:`scratchpad_submit:needs_input`,label:`Needs input`,status:`pending`});let i=n.find(e=>e.status===`running`||e.status===`pending`)?.label??`Compiling Worklist tasks`;return{key:`scratchpad-submit`,title:FB,summary:t?`Task compilation needs a decision before Worklist can update.`:`Preparing the Scratchpad for formal tasks.`,tone:t?`pending`:`running`,metaLabel:t?`Needs input`:i,completionTarget:t?{kind:`clarification`}:{kind:`scratchpad`},steps:n}}function pV(e,t){return{...e,key:`${e.key}:complete`,title:FB,summary:t,tone:`complete`,metaLabel:`Complete`,steps:e.steps.map(e=>({...e,status:`done`}))}}function mV(e,t){let n=e.completionSource;return n===void 0?!0:n.activityRef===void 0?n.workflowRef===void 0?n.taskId===void 0?!0:t.task_id===n.taskId:t.workflow_ref===n.workflowRef:t.activity_ref===n.activityRef}function hV(e){if(e.status===`idle`)return[];let t=[];if(e.status===`pending`){let n=e.blocked_by?.kind===`approval`?{kind:`approval`}:{kind:`clarification`};t.push({key:`pending`,label:`Needs input`,title:`Needs input`,tone:`pending`,target:n})}let n=e.last_conclusion?.kind===`failed`?e.last_conclusion.task_id:e.status===`failed`?e.active_task?.id??e.last_conclusion?.task_id:void 0;if(n!==void 0&&t.push({key:`failed`,label:`Run failed`,tone:`failed`,target:{kind:`task`,taskId:n}}),e.status===`running`&&e.active_task!==void 0){let n=nV(e.summary);t.push({key:`running`,label:n.label,title:n.label,tone:`running`,target:{kind:`task`,taskId:e.active_task.id}})}let r=rV(e);return r!==null&&t.push(r),t}var gV=`http://127.0.0.1:4370`;function _V(){return typeof window<`u`?window.location.origin:gV}function vV(){let e=`https://tutti.now`;return typeof e==`string`?e:_V()}var yV=vV(),X={relayBaseUrl:yV},bV=3e4,Z={relayRoot:[`relay`],me:[`relay`,`me`],recentProjects:[`relay`,`projects`,`recent`],accountProjects:[`relay`,`account-projects`],projectPresence:e=>[`relay`,`projects`,e,`presence`],relayJoinRoot:[`relay`,`join`],join:e=>[`relay`,`join`,e],bootstrap:e=>[`host`,e,`bootstrap`],hostRoot:e=>[`host`,e],hostSession:e=>[`host`,e,`session`],hostWorkspace:e=>[`host`,e,`workspace`],messages:e=>[`host`,e,`messages`,`main_chat`],messagesWindow:(e,t)=>[...Z.messages(e),{limit:t}],messagesAround:(e,t,n)=>[...Z.messages(e),{around:t,limit:n}],messageHistory:(e,t,n)=>[...Z.messages(e),{history:t,limit:n}],scratchpad:e=>[`host`,e,`scratchpad`],worklist:e=>[`host`,e,`worklist`],readState:e=>[`host`,e,`read-state`],activeClarification:e=>[`host`,e,`clarification`,`active`],activeApproval:e=>[`host`,e,`approval`,`active`],noActiveClarificationRoundMessages:e=>[`host`,e,`clarification-round-messages`,`none`],clarificationRoundMessages:(e,t)=>[`host`,e,`clarification-round-messages`,t],task:(e,t)=>[`host`,e,`task`,t],taskDetail:(e,t)=>[`host`,e,`task-detail`,t],taskRunResults:(e,t)=>[`host`,e,`task-run-results`,t],executionStatus:e=>[`host`,e,`execution-status`],providerConfig:e=>[`host`,e,`provider-config`],providerUsage:e=>[`host`,e,`provider-usage`],projectTimeline:e=>[`host`,e,`project-timeline`],viewerRoot:e=>[`host`,e,`viewer`],viewerFile:(e,t)=>[`host`,e,`viewer`,`file`,t],referenceFiles:e=>[`host`,e,`references`,`files`],artifacts:e=>[`host`,e,`artifacts`],artifactPreviewSession:(e,t)=>[`relay`,e,`artifact-preview-session`,t],skills:e=>[`host`,e,`skills`],skillDetail:(e,t)=>[`host`,e,`skills`,t]};function xV(){return`${window.location.pathname}${window.location.search}${window.location.hash}`}function Q(e,t={}){t.replace===!0?window.history.replaceState(null,``,e):window.history.pushState(null,``,e),window.dispatchEvent(new PopStateEvent(`popstate`))}function SV(e){let t=new URL(e,window.location.origin);Q(`${t.pathname}${t.search}${t.hash}`)}function CV(){let[e,t]=(0,I.useState)(xV);return(0,I.useEffect)(()=>{let e=()=>{t(xV())};return window.addEventListener(`popstate`,e),e(),()=>{window.removeEventListener(`popstate`,e)}},[]),(0,I.useMemo)(()=>{let t=new URL(e,window.location.origin);return Eb(t.pathname,t.search)},[e])}function $(e){return e instanceof Error?e.message:`Request failed`}function wV(e){e.invalidateQueries({queryKey:Z.me}),e.invalidateQueries({queryKey:Z.recentProjects}),e.invalidateQueries({queryKey:Z.accountProjects})}function TV(e,t){if(t!==void 0)for(let n of t)switch(n.kind){case`all`:e.invalidateQueries({queryKey:Z.relayRoot});break;case`me`:e.invalidateQueries({queryKey:Z.me});break;case`recent_projects`:e.invalidateQueries({queryKey:Z.recentProjects}),e.invalidateQueries({queryKey:Z.accountProjects});break;case`join_entries`:e.invalidateQueries({queryKey:Z.relayJoinRoot});break;case`project_presence`:Rt(n.relay_project_ref,Pt.relayProject)&&e.invalidateQueries({queryKey:Z.projectPresence(n.relay_project_ref)});break}}function EV(e){let t=et(),n=(0,I.useMemo)(()=>Un(X),[]);(0,I.useEffect)(()=>{if(e)try{let e=n.connectEvents({onReady:e=>{e.payload.replay.status===`missed`&&t.invalidateQueries({queryKey:Z.relayRoot})},onInvalidate:e=>{TV(t,e)}});return()=>{e.close()}}catch{return}},[e,t,n])}function DV(e,t,n){if(n!==void 0)for(let r of n)switch(r.kind){case`all`:e.invalidateQueries({queryKey:Z.hostRoot(t)});break;case`workspace`:e.invalidateQueries({queryKey:Z.hostWorkspace(t)}),e.invalidateQueries({queryKey:Z.projectTimeline(t)});break;case`session`:e.invalidateQueries({queryKey:Z.hostSession(t)});break;case`bootstrap`:e.invalidateQueries({queryKey:Z.bootstrap(t)});break;case`messages`:r.scope===`main_chat`?e.invalidateQueries({queryKey:Z.messages(t)}):e.invalidateQueries({queryKey:Z.clarificationRoundMessages(t,r.round_id)});break;case`scratchpad`:e.invalidateQueries({queryKey:Z.scratchpad(t)});break;case`worklist`:e.invalidateQueries({queryKey:Z.worklist(t)});break;case`read_state`:e.invalidateQueries({queryKey:Z.readState(t)});break;case`task`:e.invalidateQueries({queryKey:Z.task(t,r.task_id)});break;case`task_detail`:e.invalidateQueries({queryKey:Z.taskDetail(t,r.task_id)});break;case`task_run_results`:e.invalidateQueries({queryKey:Z.taskRunResults(t,r.task_id)}),e.invalidateQueries({queryKey:Z.projectTimeline(t)});break;case`execution_status`:e.invalidateQueries({queryKey:Z.executionStatus(t)});break;case`approval`:e.invalidateQueries({queryKey:Z.activeApproval(t)});break;case`provider_config`:e.invalidateQueries({queryKey:Z.providerConfig(t)});break;case`provider_usage`:e.invalidateQueries({queryKey:Z.providerUsage(t)}),e.invalidateQueries({queryKey:Z.projectTimeline(t)});break;case`project_timeline`:e.invalidateQueries({queryKey:Z.projectTimeline(t)});break;case`viewer`:e.invalidateQueries({queryKey:Z.viewerRoot(t)}),e.invalidateQueries({queryKey:Z.projectTimeline(t)}),(r.path===void 0||r.path.startsWith(`docs/reference`))&&e.invalidateQueries({queryKey:Z.referenceFiles(t)}),r.path!==void 0&&e.invalidateQueries({queryKey:Z.viewerFile(t,r.path)});break;case`skills`:e.invalidateQueries({queryKey:Z.skills(t)});break;case`artifacts`:e.invalidateQueries({queryKey:Z.artifacts(t)});break;case`recovery_summaries`:e.invalidateQueries({queryKey:Z.projectTimeline(t)});break;case`activity`:break;case`clarification`:e.invalidateQueries({queryKey:Z.activeClarification(t)}),e.invalidateQueries({queryKey:Z.projectTimeline(t)}),r.round_id!==void 0&&e.invalidateQueries({queryKey:Z.clarificationRoundMessages(t,r.round_id)});break}}function OV(){return{items:[],window:{has_older:!1,has_newer:!1,limit:50}}}function kV(){return{modules:[]}}function AV(){return{id:`current`,state:`empty`,topic:``,background_summary:``,current_consensus:[],open_questions:[],task_changes:[],receipts:[]}}function jV(e){return{chat:e?.scopes.chat.has_unread===!0,worklist:e?.scopes.worklist.has_unread===!0,references:e?.scopes.references.has_unread===!0,skills:e?.scopes.skills.has_unread===!0}}function MV({enabled:e,hostClient:t,relayProjectRef:n,readState:r,scope:i}){let a=et(),o=(0,I.useRef)(null),s=gt({mutationFn:e=>t.markRead({scope:i,up_to_event_cursor:e}),onSuccess:e=>{DV(a,n,e.invalidates)},onError:()=>{o.current=null}});(0,I.useEffect)(()=>{if(!e||r===void 0)return;let t=r.scopes[i];if(!t.has_unread){t.read_event_cursor>=t.latest_event_cursor&&(o.current=null);return}let n=`${i}:${t.latest_event_cursor}`;o.current===n||s.isPending||(o.current=n,s.mutate(t.latest_event_cursor))},[e,s,r,i])}function NV(){return{state:`none`}}function PV(e){return{status:`idle`,summary:`Idle`,updated_at:e}}function FV(e){return e.active_activities??(e.active_activity===void 0?[]:[e.active_activity])}function IV(e,t,n){return FV(e).some(e=>e.workflow_kind===t?n===void 0||(e.lane??`foreground`)===n:!1)}function LV(e){return e.blocked_by?.kind===`clarification`||e.blocked_by?.kind===`approval`?!0:FV(e).some(e=>e.activity_kind===`run`?!0:(e.lane??`foreground`)===`foreground`)}function RV(e,t){let n=`/projects/${encodeURIComponent(zt(e))}/references`;return t===void 0?n:`${n}?path=${encodeURIComponent(t)}`}function zV(e){return`/projects/${encodeURIComponent(zt(e))}/artifacts`}function BV(e,t){let n=`/projects/${encodeURIComponent(zt(e))}/worklist`;return t===void 0?n:`${n}?task=${encodeURIComponent(t)}`}function VV(e,t){return`${en(e)}?message=${encodeURIComponent(t)}`}function HV(e){return`/projects/${encodeURIComponent(zt(e))}/settings`}function UV(e){return`/projects/${encodeURIComponent(zt(e))}/timeline`}function WV(e,t){let n=`/projects/${encodeURIComponent(zt(e))}/skills`;return t===void 0?n:`${n}?skill=${encodeURIComponent(t)}`}function GV(e,t){switch(t.target.kind){case`approval`:case`clarification`:case`scratchpad`:return en(e);case`worklist`:return BV(e);case`references`:return RV(e);case`task`:return BV(e,t.target.taskId)}}function KV(e,t){Q(GV(e,t))}function qV(e,t){let n=tB(e);if(t!==void 0&&n.some(e=>e.id===t))return t;for(let e of[`running`,`pending`,`failed`,`todo`,`done`]){let t=n.find(t=>t.status===e);if(t!==void 0)return t.id}}function JV(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function YV(e){switch(e){case`binary`:return`Binary file`;case`too_large`:return`File too large`;case`unsupported_encoding`:return`Unsupported encoding`;case`restricted_path`:case`secret_like`:return`Restricted file`;default:return`Preview unavailable`}}function XV(e){if(!(e===void 0||e.kind===`text`))return YV(e.reason)}function ZV(e){return Array.from(new Uint8Array(e)).map(e=>e.toString(16).padStart(2,`0`)).join(``)}async function QV(e){if(globalThis.crypto?.subtle===void 0)throw Error(`This browser does not support file upload hashing.`);return`sha256:${ZV(await globalThis.crypto.subtle.digest(`SHA-256`,await e.arrayBuffer()))}`}async function $V(e){if(e.file.size<=0)throw Error(`Upload file cannot be empty.`);let t=Ph(e.purpose);if(e.file.size>t)throw Error(`Upload file cannot exceed ${JV(t)}.`);let n=await QV(e.file),r=e.file.type===``?void 0:e.file.type,i=Un(X),a=e.purpose===`skill_zip`?{relay_project_ref:e.relayProjectRef,purpose:`skill_zip`,file_name:e.file.name,size_bytes:e.file.size,sha256:n,...r===void 0?{}:{media_type:r}}:{relay_project_ref:e.relayProjectRef,purpose:`reference_file`,file_name:e.file.name,size_bytes:e.file.size,sha256:n,...r===void 0?{}:{media_type:r}},o=await i.startUpload(a);if(o.result===void 0)throw Error(`Upload session could not be started.`);let s=new Headers(o.result.put.headers??{});r!==void 0&&!s.has(`content-type`)&&s.set(`content-type`,r);let c;try{c=await fetch(o.result.put.url,{method:o.result.put.method,headers:s,body:e.file})}catch{throw Error(`File upload failed while sending the file to upload storage. Check that R2 CORS allows PUT from this Web origin.`)}if(!c.ok)throw Error(`File upload failed while sending the file to upload storage (${c.status}).`);return{upload_id:o.result.upload.upload_id,file_name:o.result.upload.file_name,size_bytes:o.result.upload.size_bytes,sha256:o.result.upload.sha256,...o.result.upload.media_type===void 0?{}:{media_type:o.result.upload.media_type}}}function eH(e){let t=et(),n=_z(),[r,i]=(0,I.useState)(`identity`),[a,o]=(0,I.useState)(null),[s,c]=(0,I.useState)({email:``,displayName:``,code:``}),l=gt({mutationFn:async()=>{let e=s.email.trim(),t=await Jn(X,{email:e});if(t.result===void 0)throw Error(`Login challenge was not returned`);return{challenge:t.result.challenge,disposition:t.disposition,email:e}},onSuccess:({challenge:e,disposition:t,email:r})=>{o(e),c(e=>({...e,code:``})),i(`code`),n.notify({tone:`success`,title:t.kind===`otp_already_pending`?`Verification email already sent`:`Verification email sent`,message:t.kind===`otp_already_pending`?`Verification email already sent to ${r}.`:`Verification email sent to ${r}.`})}}),u=gt({mutationFn:async()=>{if(a===null)throw Error(`Login challenge is missing`);return nr(X,{challenge_ref:a.challenge_ref,code:s.code.trim()},s.email)},onSuccess:n=>{if(!n.account.profile_complete){t.invalidateQueries({queryKey:Z.me}),c(e=>({...e,displayName:``})),i(`profile`);return}wV(t),e?.()}}),d=gt({mutationFn:async()=>{let e=await Yn(X,{display_name:s.displayName.trim()});if(e.result===void 0)throw Error(`Profile response was not returned`);return e.result.account},onSuccess:()=>{wV(t),e?.()}}),f=e=>{if(e.preventDefault(),r===`identity`&&s.email.trim()!==``){l.mutate();return}if(r===`code`&&a!==null&&s.code.trim()!==``){u.mutate();return}r===`profile`&&s.displayName.trim()!==``&&d.mutate()},p=l.isPending||u.isPending||d.isPending,m=r===`identity`?l.error:r===`code`?u.error??l.error:d.error;return{phase:r,form:s,pending:p,submitDisabled:r===`identity`?s.email.trim()===``:r===`code`?a===null||s.code.replace(/\s+/gu,``).length!==6:s.displayName.trim()===``,challengeEmailHint:a?.email_hint??null,error:m===null?null:$(m),onChange:e=>{c(t=>({...t,...e,...e.code===void 0?{}:{code:e.code.replace(/\D/gu,``).slice(0,6)}}))},onSubmit:f,onBack:()=>{l.reset(),u.reset(),d.reset(),o(null),c(e=>({...e,code:``})),i(`identity`)}}}function tH(e){let t=et(),[n,r]=(0,I.useState)({email:``,displayName:``,code:``}),i=gt({mutationFn:async()=>{let e=await Yn(X,{display_name:n.displayName.trim()});if(e.result===void 0)throw Error(`Profile response was not returned`);return e.result.account},onSuccess:()=>{wV(t),e?.()}});return{phase:`profile`,form:n,pending:i.isPending,submitDisabled:n.displayName.trim()===``,challengeEmailHint:null,error:i.error===null?null:$(i.error),onChange:e=>{r(t=>({...t,...e,...e.code===void 0?{}:{code:e.code.replace(/\D/gu,``).slice(0,6)}}))},onSubmit:e=>{e.preventDefault(),n.displayName.trim()!==``&&i.mutate()}}}var nH=ib(X);function rH({entryRef:e}){let[t,n]=(0,I.useState)(``),[r,i]=(0,I.useState)(!0),[a,o]=(0,I.useState)(!1),[s,c]=(0,I.useState)(!1),[l,u]=(0,I.useState)(),[d,f]=(0,I.useState)(0),p=(0,I.useRef)(!1),m=(0,I.useRef)(void 0);(0,I.useEffect)(()=>n(``),[e]),(0,I.useEffect)(()=>{let t=new AbortController;return m.current=t,p.current=!1,o(!1),i(!0),u(void 0),c(!1),az(`connection_resolve`,async n=>{if(e===null||window.location.hash!==``)throw new Gt({message:`Invalid group entry`,code:`bad_request`,statusCode:0,retryable:!1,details:{reason_code:`connection_entry_unavailable`}});return nH.resolve(e,{signal:t.signal,diagnostics:n})}).then(e=>{t.signal.aborted||(e.kind===`bound`?Q(tn(e.relay_project_ref),{replace:!0}):c(!0))}).catch(e=>{t.signal.aborted||u(oz(e,XR()))}).finally(()=>{t.signal.aborted||i(!1)}),()=>t.abort()},[e,d]);async function h(){if(p.current||e===null||Wy(t)===null)return;p.current=!0,o(!0),u(void 0);let r=m.current.signal;try{let i=await az(`connection_resolve`,t=>nH.resolve(e,{signal:r,diagnostics:t}));if(r.aborted)return;if(i.kind===`bound`){n(``),Q(tn(i.relay_project_ref),{replace:!0});return}let a=await az(`connection_bootstrap`,t=>nH.bootstrap(e,{signal:r,diagnostics:t}));if(r.aborted)return;let o=XR(),s;try{s=await KR({appId:a.app_id,state:a.state})}catch(e){throw new JR(`h5_request_access`,e,o)}if(r.aborted)return;let c=await az(`connection_connect`,n=>nH.connect({entry_ref:e,state:a.state,authorization_code:s,input:t},{signal:r,diagnostics:n}));if(r.aborted)return;if(c.kind!==`bound`)throw new JR(`connection_connect`,Error(`connection_not_established`));n(``),Q(tn(c.relay_project_ref),{replace:!0})}catch(e){r.aborted||u(oz(e,XR()))}finally{m.current?.signal===r&&(p.current=!1,r.aborted||o(!1))}}return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(Ab,{route:{kind:`feishu_connection`,entryRef:e}}),(0,L.jsx)(FR,{loading:r,pending:a,unbound:s,value:t,canSubmit:Wy(t)!==null,...l===void 0?{}:{error:l},onChange:n,onConnect:()=>void h(),onRefresh:()=>{p.current||f(e=>e+1)}})]})}var iH=`/assets/beethoven-symphony-5-opening-ypVy5SB4.svg`,aH=`/assets/beethoven-symphony-7-allegretto-B3bc-cZD.svg`,oH=`/assets/dvorak-symphony-9-largo-BEgNL3HB.svg`,sH=`/assets/mozart-symphony-18-allegro-B5-MrLL1.svg`,cH=`https://lets.tutti.now`,lH=`${cH}/start/create-a-project#connect-a-provider-and-choose-a-model`,uH={href:cH,target:`_blank`,rel:`noopener noreferrer`};function dH(){return(0,L.jsxs)(aO,{children:[`New to Tutti?`,` `,(0,L.jsx)(`a`,{...uH,"aria-label":`Read the Tutti documentation (opens in a new tab)`,children:`Read the docs`}),`.`]})}function fH(){return(0,L.jsx)(kw,{...uH,label:`Support Center`,icon:(0,L.jsx)(Yb,{"aria-hidden":`true`})})}var pH=[iH,aH,oH,sH];function mH(){return pH[Math.min(pH.length-1,Math.floor(Math.random()*pH.length))]}function hH({backgroundPattern:e,children:t,...n}){let[r]=(0,I.useState)(mH);return(0,L.jsx)(PC,{...e===void 0?{backgroundImageSrc:r}:{backgroundPattern:e},...n,children:t})}function gH({actions:e,children:t,onBrandClick:n}){return(0,L.jsxs)(hH,{children:[(0,L.jsx)(FC,{brand:(0,L.jsx)(NR,{onClick:n}),actions:e}),t]})}function _H({children:e,label:t,onBrandClick:n}){return(0,L.jsx)(gH,{onBrandClick:n,children:(0,L.jsx)(LC,{"aria-label":t,children:e})})}function vH({auth:e,mobileAuth:t,onBrandClick:n}){return(0,L.jsx)(hH,{backgroundPattern:`dots`,className:`homepage-entry-page`,children:(0,L.jsx)(iO,{brand:(0,L.jsx)(NR,{onClick:n}),visual:(0,L.jsx)(zO,{assets:jR}),auth:e,mobileAuth:t,footer:(0,L.jsx)(dH,{})})})}function yH({phase:e,form:t,onChange:n}){return e===`code`?(0,L.jsx)(`div`,{className:`form-stack`,children:(0,L.jsx)(Tw,{label:`Email verification code`,children:(0,L.jsx)(xw,{autoComplete:`one-time-code`,inputMode:`numeric`,type:`text`,value:t.code,onChange:e=>n({code:e.target.value}),placeholder:`Enter email code`,maxLength:6})})}):e===`profile`?(0,L.jsxs)(`div`,{className:`form-stack`,children:[(0,L.jsx)(Tw,{label:`Display name`,children:(0,L.jsx)(xw,{autoComplete:`name`,type:`text`,value:t.displayName,onChange:e=>n({displayName:e.target.value}),placeholder:`username`})}),(0,L.jsx)(`p`,{className:`form-note`,children:`This name cannot be changed yet.`})]}):(0,L.jsx)(`div`,{className:`form-stack`,children:(0,L.jsx)(Tw,{label:`Email`,children:(0,L.jsx)(xw,{autoComplete:`email`,type:`email`,value:t.email,onChange:e=>n({email:e.target.value}),placeholder:`alex@example.com`})})})}function bH({surface:e,phase:t,form:n,pending:r,error:i,submitDisabled:a,submitLabel:o,pendingLabel:s,onChange:c,onSubmit:l,onBack:u}){let d={title:t===`profile`?`Choose display name`:`Sign in`,description:t===`profile`?`Set the name your teammates will see.`:t===`code`?`Enter your email verification code.`:`Use your email to continue.`,onSubmit:l,action:(0,L.jsxs)(pw,{type:`submit`,disabled:a||r,children:[r?s??(t===`profile`?`Saving`:t===`code`?`Verifying`:`Sending code`):o??(t===`profile`?`Save name`:t===`code`?`Verify email code`:`Send code`),(0,L.jsx)(Vb,{"aria-hidden":`true`})]}),secondaryAction:t===`code`&&u!==void 0?(0,L.jsxs)(J,{type:`button`,onClick:u,disabled:r,children:[(0,L.jsx)(Bb,{"aria-hidden":`true`}),`Change email`]}):void 0,feedback:i===null?void 0:(0,L.jsx)(Ew,{children:i}),children:(0,L.jsx)(yH,{phase:t,form:n,onChange:c})};return e===`card`?(0,L.jsx)(uk,{...d}):(0,L.jsx)(oO,{...d})}function xH(e){return(0,L.jsx)(bH,{...e,surface:`card`})}function SH(e){return(0,L.jsx)(bH,{...e,surface:`rail`})}function CH({onBrandClick:e,...t}){return(0,L.jsx)(vH,{onBrandClick:e,auth:(0,L.jsx)(SH,{...t}),mobileAuth:(0,L.jsx)(xH,{...t})})}function wH({nextKind:e,actionPending:t,loginForm:n,onRetry:r,onAccept:i,onOpen:a}){if(e===`loading`)return(0,L.jsx)(J,{type:`button`,disabled:!0,children:`Loading`});if(e===`error`)return(0,L.jsx)(J,{type:`button`,onClick:r,children:`Retry`});if(e===`invalid_or_expired`)return(0,L.jsxs)(J,{type:`button`,disabled:!0,children:[(0,L.jsx)(Wx,{"aria-hidden":`true`}),`Invalid invite`]});if(e===`login_required`){let e=n?.phase===`profile`?`Save name`:n?.phase===`code`?`Verify email code`:`Send code`,r=n?.phase===`profile`?`Saving`:n?.phase===`code`?`Verifying`:`Sending code`;return(0,L.jsxs)(pw,{type:`submit`,disabled:t||n?.submitDisabled===!0,children:[t?r:e,(0,L.jsx)(Vb,{"aria-hidden":`true`})]})}return e===`accept_join`?(0,L.jsxs)(pw,{type:`button`,disabled:t,onClick:i,children:[t?`Joining`:`Accept and open workspace`,(0,L.jsx)(Vb,{"aria-hidden":`true`})]}):e===`open_workspace`?(0,L.jsxs)(pw,{type:`button`,disabled:t,onClick:a,children:[t?`Opening`:`Open workspace`,(0,L.jsx)(Vb,{"aria-hidden":`true`})]}):(0,L.jsxs)(J,{type:`button`,disabled:!0,children:[(0,L.jsx)(Dx,{"aria-hidden":`true`}),`Host offline`]})}function TH({nextKind:e,error:t}){return e===`loading`?null:e===`error`?(0,L.jsx)(Yx,{tone:`error`,icon:(0,L.jsx)(Wx,{"aria-hidden":`true`}),children:t??`Invite unavailable`}):e===`invalid_or_expired`?(0,L.jsx)(Yx,{tone:`error`,icon:(0,L.jsx)(Wx,{"aria-hidden":`true`}),children:`Join token is invalid or expired`}):e===`host_offline`?(0,L.jsx)(Yx,{tone:`warning`,icon:(0,L.jsx)(Dx,{"aria-hidden":`true`}),children:`Host is offline`}):null}function EH({projectName:e,description:t,hostLabel:n,hostOnline:r,nextKind:i,accountLabel:a,membershipLabel:o,actionPending:s,error:c,loginForm:l,onBrandClick:u,onRetry:d,onAccept:f,onOpen:p}){let m=i===`login_required`&&l!==void 0;return(0,L.jsx)(_H,{label:`Join project`,onBrandClick:u,children:(0,L.jsxs)(uk,{title:`Join project`,description:t,onSubmit:e=>{if(m){l.onSubmit(e);return}e.preventDefault()},action:(0,L.jsx)(wH,{nextKind:i,actionPending:m?l.pending:s,...m?{loginForm:l}:{},onAccept:f,onOpen:p,...d===void 0?{}:{onRetry:d}}),secondaryAction:m&&l.phase===`code`&&l.onBack!==void 0?(0,L.jsxs)(J,{type:`button`,onClick:l.onBack,disabled:l.pending,children:[(0,L.jsx)(Bb,{"aria-hidden":`true`}),`Change email`]}):void 0,feedback:(0,L.jsxs)(L.Fragment,{children:[m&&l.error!==null?(0,L.jsx)(Ew,{children:l.error}):null,(0,L.jsx)(TH,{nextKind:i,error:c}),c===null||i===`error`?null:(0,L.jsx)(Ew,{children:c})]}),children:[(0,L.jsx)(dk,{projectName:e,hostLabel:n,hostOnline:r}),m?(0,L.jsx)(L.Fragment,{children:(0,L.jsx)(yH,{phase:l.phase,form:l.form,onChange:l.onChange})}):(0,L.jsx)(fk,{label:a===null?`Account`:`Signed in as`,value:a??`Sign in required`,action:o===null?null:(0,L.jsx)(`span`,{className:`quiet-link`,children:o})})]})})}var DH=`http://127.0.0.1:4370`;function OH(){let e=`https://tutti.now`;return typeof e==`string`?e:typeof window<`u`&&window.location.port!==`4372`?window.location.origin:DH}function kH(e){try{return new URL(e,OH()).toString()}catch{return e}}function AH({avatar:e,label:t,plain:n=!1,online:r=!1}){return(0,L.jsx)(VC,{label:t,tone:e.color,plain:n,online:r,initials:e.initials,...e.kind===`image`?{imageUrl:kH(e.image_url)}:{}})}function jH({label:e=`Tutti`}){return(0,L.jsx)(VC,{label:e,tone:`green`,className:`is-system`,imageUrl:AR,icon:(0,L.jsx)(Ub,{"aria-hidden":`true`})})}function MH({message:e}){return e.avatarKind===`tutti`?(0,L.jsx)(jH,{label:e.author}):(0,L.jsx)(AH,{avatar:e.avatar??{kind:`initials`,initials:pg(e.author),color:`blue`},label:e.author})}function NH({supportingContent:e,state:t,onRetry:n,onBrandClick:r,onSelectTab:i,onSelectTask:a,onCloseTask:o,onSubmitScratchpad:s,onRoundDraftChange:c,onSendRoundMessage:l,onSubmitRound:u,onDecideApproval:d,onOpenInBrowser:f,browserOpenUrl:p,onBrowserOpenLinkClick:m,scratchpadSubmitPending:h=!1,scratchpadSyncPending:g=!1,scratchpadActionsDisabled:_=!1,roundSendPending:v=!1,roundSubmitPending:y=!1,approvalDecisionPending:b=!1,browserOpenPending:x=!1}){let[S,C]=(0,I.useState)(!1);if(t.kind===`loading`)return(0,L.jsx)(gL,{brand:(0,L.jsx)(NR,{label:`Reload Tutti project`,onClick:r}),projectName:`Opening Tutti`,meta:`Feishu project`,children:(0,L.jsx)(Xx,{count:3})});if(t.kind===`error`)return(0,L.jsx)(gL,{brand:(0,L.jsx)(NR,{label:`Reload Tutti project`,onClick:r}),projectName:`Tutti isn’t available`,meta:`Feishu project`,onRefresh:n,children:(0,L.jsx)(Yx,{icon:(0,L.jsx)(Wx,{"aria-hidden":`true`}),tone:`warning`,details:(0,L.jsx)(PR,{diagnostic:t,showMessage:!1}),children:t.message})});let w=t.activeClarification??null,T=t.clarificationMessages??[],E=t.activeApproval??null;return(0,L.jsxs)(gL,{activeTab:t.activeTab,actions:w!==null||E!==null?(0,L.jsx)(J,{className:`embedded-project-status-action`,"aria-label":`Review required input`,onClick:()=>C(!0),children:(0,L.jsx)(mw,{tone:t.projectStatus.tone??`neutral`,children:t.projectStatus.label})}):(0,L.jsx)(mw,{tone:t.projectStatus.tone??`neutral`,children:t.projectStatus.label}),brand:(0,L.jsx)(NR,{label:`Reload Tutti project`,onClick:r}),projectName:t.projectName,showProjectName:!1,refreshing:t.refreshing,onRefresh:n,onSelectTab:i,children:[t.refreshMessage===void 0?null:(0,L.jsx)(`div`,{className:`embedded-project-refresh-message`,role:`status`,children:(0,L.jsx)(PR,{diagnostic:t.refreshMessage})}),(0,L.jsxs)(vL,{open:S&&(w!==null||E!==null),title:`Needs your input`,onClose:()=>C(!1),children:[w===null?null:(0,L.jsx)(EL,{title:w.title,summary:w.summary,request:w.request,contextLabel:w.ownerLabel,messages:T.map(e=>({id:e.id,author:e.author,body:e.body,time:e.time,avatar:(0,L.jsx)(MH,{message:e})})),replyCount:w.answerRevision??T.filter(e=>e.isClarificationAnswer??e.messageKind===`user_text`).length,draft:t.roundDraft??``,defaultOpen:!0,readOnly:w.status!==`writable`,status:w.status===`writable`?`pending`:`done`,statusLabel:w.status===`writable`?`needs input`:`submitted`,sendPending:v,submitPending:y,onDraftChange:e=>c?.(e),onSendMessage:e=>{e.preventDefault(),l?.()},onSubmitRound:()=>u?.()}),E===null?null:(0,L.jsx)(AL,{title:E.title,summary:E.summary,...E.reason===void 0?{}:{reason:E.reason},...E.detail===void 0?{}:{detail:E.detail,...E.detailLabel===void 0?{}:{detailLabel:E.detailLabel},...E.detailCode===void 0?{}:{detailCode:E.detailCode}},status:E.status,statusLabel:E.statusLabel,decisions:E.decisions,decisionPending:b,...E.resolutionLabel===void 0?{}:{resolutionLabel:E.resolutionLabel},onDecide:e=>d?.(E.approvalId,e)})]}),t.activeTab===`timeline`?(0,L.jsx)(`div`,{className:`embedded-project-supporting`,children:e}):t.activeTab===`project`?(0,L.jsx)(`div`,{className:`embedded-project-stack`,children:(0,L.jsx)(dL,{...t.scratchpad,presentation:`document`,compact:!0,empty:(0,L.jsx)(Yx,{children:`Start with a conversation in the group.`}),showSubmitAction:!0,submitPending:h,syncPending:g,actionsDisabled:_||s===void 0,...s===void 0?{}:{onSubmitScratchpad:s},onOpenCompiledTask:a})}):t.activeTab===`work`?(0,L.jsx)(`div`,{className:`embedded-project-work`,children:(0,L.jsx)(zL,{layout:`sheet`,detailOpen:t.worklist.detailOpen??!1,...o===void 0?{}:{onCloseDetail:o},modules:t.worklist.modules,taskCount:t.worklist.taskCount,...t.worklist.detail===void 0?{}:{detail:t.worklist.detail},...t.worklist.detailPlaceholder===void 0?{}:{detailPlaceholder:t.worklist.detailPlaceholder},empty:(0,L.jsx)(Yx,{children:`No tasks yet.`}),onSelectTask:a})}):(0,L.jsxs)(`div`,{className:`embedded-project-artifacts`,children:[(0,L.jsx)(YL,{presentation:`preview`,state:t.artifacts,error:t.artifactError??null}),(0,L.jsx)(`footer`,{className:`embedded-project-artifact-actions`,children:f===void 0?void 0:p===void 0?(0,L.jsxs)(dw,{"aria-label":x?`Opening in browser`:`Open in browser`,className:`embedded-project-browser-action`,disabled:x,onClick:f,type:`button`,variant:`quiet`,children:[x?(0,L.jsx)(px,{"aria-hidden":`true`,className:`is-spinning`}):(0,L.jsx)(tx,{"aria-hidden":`true`}),(0,L.jsx)(`span`,{children:x?`Opening`:`Open in browser`})]}):(0,L.jsx)(dw,{asChild:!0,className:`embedded-project-browser-action`,variant:`quiet`,children:(0,L.jsxs)(`a`,{"aria-label":`Open in browser`,href:p,onClick:m,rel:`noopener noreferrer`,target:`_blank`,children:[(0,L.jsx)(tx,{"aria-hidden":`true`}),(0,L.jsx)(`span`,{children:`Open in browser`})]})})})]})]})}function PH(e){let{form:t,onChange:n,pending:r,models:i}=e;return(0,L.jsx)(kk,{title:`Configure your model`,description:(0,L.jsxs)(L.Fragment,{children:[`Use an`,` `,(0,L.jsx)(Dw,{href:lH,icon:(0,L.jsx)(Yb,{"aria-hidden":`true`}),children:`OpenAI Responses API`}),` `,`endpoint. Credentials stay on this computer.`]}),children:(0,L.jsxs)(Ek,{children:[(0,L.jsx)(Tw,{label:`Base URL`,children:(0,L.jsx)(xw,{type:`url`,autoComplete:`off`,disabled:r,value:t.baseUrl,onChange:e=>n({baseUrl:e.target.value}),placeholder:`Enter Provider Base URL`})}),(0,L.jsx)(Tw,{label:`API key`,children:(0,L.jsx)(xw,{type:`password`,autoComplete:`off`,disabled:r,value:t.apiKey,onChange:e=>n({apiKey:e.target.value}),placeholder:`Enter API key`})}),(0,L.jsx)(Tw,{label:`Model`,children:(0,L.jsx)(Cw,{"aria-label":`Model`,autoComplete:`off`,value:t.model,options:i,maxVisibleOptions:8,disabled:r,onValueChange:e=>n({model:e}),placeholder:`Choose or enter a model`})}),(0,L.jsx)(J,{type:`button`,disabled:r||!t.baseUrl.trim()||!t.apiKey.trim(),onClick:e.onDiscover,children:r?`Checking models`:`Check models`})]})})}function FH({pending:e,onSignOut:t}){return(0,L.jsxs)(J,{type:`button`,onClick:t,disabled:e,children:[(0,L.jsx)(hx,{"aria-hidden":`true`}),`Sign out`]})}function IH(e){return e.existingProjectId===void 0?[`surface`,`folder`,...e.surface===`standalone`?[`details`]:[],`provider`,...e.accessMode===`byok`?[`model`]:[]]:[`provider`]}function LH(e,t){switch(e){case`folder`:return t.workspacePath.trim()!==``;case`details`:return t.displayName.trim()!==``;case`model`:return!!(t.baseUrl.trim()&&t.apiKey.trim()&&t.model.trim());default:return!0}}function RH(e){return(e.status===`online`||e.status===`reconnecting`)&&(e.provider_status===`configured`||e.provider_status===`managed`)}function zH(e){return(e.status===`stopped`||e.status===`stale`||e.status===`relay-unavailable`)&&(e.provider_status===`configured`||e.provider_status===`managed`)}function BH(e){return e.status===`online`?`online`:e.status===`reconnecting`?`connecting`:`stopped`}function VH(e,t){let n=Date.parse(e.activity_at??``),r=Date.parse(t.activity_at??``),i=Number.isNaN(n)?0:n;return(Number.isNaN(r)?0:r)-i||e.display_name.localeCompare(t.display_name,`en`)||e.project_id.localeCompare(t.project_id,`en`)}function HH({project:e,pending:t,showPrimary:n=!0,onLaunch:r,onOpen:i,onCopyInvite:a,onConnectFeishu:o,onStop:s,onAuthorize:c}){return e.status===`online`||e.status===`reconnecting`?e.surface_profile.kind===`feishu`?(0,L.jsxs)(L.Fragment,{children:[n?(0,L.jsxs)(pw,{type:`button`,disabled:t,onClick:o,children:[(0,L.jsx)(dx,{"aria-hidden":`true`}),`Connect`]}):null,(0,L.jsxs)(J,{type:`button`,disabled:t,onClick:s,children:[(0,L.jsx)(Bx,{"aria-hidden":`true`}),`Stop`]})]}):(0,L.jsxs)(L.Fragment,{children:[n?(0,L.jsxs)(pw,{type:`button`,disabled:t||e.open_url===void 0,onClick:i,children:[(0,L.jsx)(Vb,{"aria-hidden":`true`}),`Open`]}):null,(0,L.jsxs)(J,{type:`button`,disabled:t,onClick:a,children:[(0,L.jsx)(dx,{"aria-hidden":`true`}),`Invite`]}),(0,L.jsxs)(J,{type:`button`,disabled:t,onClick:s,children:[(0,L.jsx)(Bx,{"aria-hidden":`true`}),`Stop`]})]}):(0,L.jsxs)(L.Fragment,{children:[n?(0,L.jsxs)(J,{type:`button`,disabled:t||!zH(e),onClick:r,children:[(0,L.jsx)(Ax,{"aria-hidden":`true`}),`Resume`]}):null,c===void 0||e.relay_project_ref===void 0?null:(0,L.jsx)(J,{type:`button`,disabled:t,onClick:c,children:e.provider_status===`managed`?`Authorize again`:`Use Tutti trial`})]})}function UH({createDisabled:e,packageUpdateAction:t,projectsLoading:n,onCreate:r,onPackageUpdate:i,onRefresh:a}){return(0,L.jsxs)(L.Fragment,{children:[t===void 0?null:(0,L.jsx)(mk,{description:t.description,descriptionId:`local-console-package-update-description`,disabledTrigger:t.disabled,"aria-live":`polite`,action:(0,L.jsx)(J,{type:`button`,disabled:t.disabled,onClick:i,children:t.label})}),(0,L.jsx)(fw,{type:`button`,label:`Refresh projects`,icon:(0,L.jsx)(kx,{"aria-hidden":`true`}),disabled:n,onClick:a}),(0,L.jsxs)(pw,{type:`button`,disabled:e,onClick:r,children:[(0,L.jsx)(Tx,{"aria-hidden":`true`}),`New project`]})]})}function WH({version:e,accountName:t,projectCenterHref:n,form:r,models:i,projects:a,projectsLoading:o,sessionLoading:s,sessionError:c,createOpen:l,createStep:u,modelDiscoveryPending:d,launchPending:f,projectActionPending:p,signOutPending:m,packageUpdateAction:h,onChange:g,onCreateOpenChange:_,onCreateSubmit:v,onCreateBack:y,onChooseFolder:b,onRefresh:x,onLaunchExisting:S,onAuthorizeExisting:C,onOpenProject:w,onCopyInvite:T,onConnectFeishu:E,onFeishuConnectionOpenChange:D,onCopyFeishuCommand:O,onStopProject:k,onPackageUpdate:A,onSignOut:ee,feishuConnection:te,managedPrepared:j=!1,managedStage:ne,creditNote:M,onDiscoverModels:N,renderSurface:P}){let re=IH(r),ie=j,ae=re.indexOf(u),oe=ae===re.length-1,se=d||f,ce=LH(u,r),le=a.filter(RH).sort(VH),ue=a.filter(zH).sort(VH),de=[...le,...ue],fe=e=>(0,I.createElement)(jk,{title:e.display_name,status:BH(e),path:e.workspace_path,createdLabel:bz(e.created_at),...e.provider_model?.trim()?{modelLabel:e.provider_model.trim()}:{},...e.surface_profile.kind===`feishu`?{surfaceLabel:`Feishu`}:{},actions:(0,L.jsx)(HH,{project:e,pending:p===e.project_id,onLaunch:()=>S(e),onOpen:()=>w(e),onCopyInvite:()=>T(e),onConnectFeishu:()=>E(e),onStop:()=>k(e),...C===void 0?{}:{onAuthorize:()=>C(e)}}),key:e.project_id}),pe=(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(Tk,{open:l,onOpenChange:_,steps:re.map(e=>e[0].toUpperCase()+e.slice(1)),currentStep:Math.max(0,ae),closeDisabled:se,explicitCloseOnly:!0,onSubmit:v,backAction:ie||ae===0?void 0:(0,L.jsxs)(J,{type:`button`,disabled:se,onClick:y,children:[(0,L.jsx)(Bb,{"aria-hidden":`true`}),`Back`]}),action:(0,L.jsxs)(pw,{type:`submit`,disabled:!ce||se||s||ne===`checking`,children:[oe?(0,L.jsx)(Ax,{"aria-hidden":`true`}):(0,L.jsx)(Vb,{"aria-hidden":`true`}),ie?ne===`checking`?`Checking access`:ne===`validating`?`Checking model access`:ne===`launching`?`Starting project`:`Check and continue`:oe?f?`Preparing`:`Launch and continue`:r.existingProjectId===void 0?`Continue`:`Launch and continue`]}),children:[u===`folder`?(0,L.jsx)(kk,{title:`Project folder`,description:`Choose an existing folder on this machine. It can be empty or contain an existing project.`,children:(0,L.jsxs)(Dk,{children:[(0,L.jsx)(xw,{"aria-label":`Project folder`,autoComplete:`off`,value:r.workspacePath,onChange:e=>g({workspacePath:e.target.value}),placeholder:`Enter an absolute project folder path`,autoFocus:!0}),(0,L.jsxs)(J,{type:`button`,onClick:b,children:[(0,L.jsx)(ox,{"aria-hidden":`true`}),`Choose folder`]})]})}):null,u===`details`?(0,L.jsx)(kk,{title:`Project details`,description:`Describe what you want to build with this project.`,children:(0,L.jsxs)(Ek,{children:[(0,L.jsx)(Tw,{label:`Project name`,className:`local-console-field-wide`,children:(0,L.jsx)(xw,{autoComplete:`off`,value:r.displayName,maxLength:80,onChange:e=>g({displayName:e.target.value}),placeholder:`Enter a project name`,autoFocus:!0})}),(0,L.jsx)(Tw,{label:`Project description (optional)`,className:`local-console-field-wide`,children:(0,L.jsx)(Sw,{value:r.description,maxLength:160,onChange:e=>g({description:e.target.value}),placeholder:`A short project description helps Tutti produce better code`})})]})}):null,u===`provider`&&!ie?(0,L.jsxs)(L.Fragment,{children:[r.existingProjectId===void 0?null:(0,L.jsxs)(`p`,{children:[`Enable trial access for `,r.displayName,`. Files and collaboration surface stay unchanged. Switching from a custom endpoint starts new model sessions; existing sessions are not moved to another model.`]}),(0,L.jsx)(GO,{value:r.accessMode,onValueChange:e=>g({accessMode:e}),tuttiLogo:(0,L.jsx)(yw,{src:kR}),customIcon:(0,L.jsx)(wx,{"aria-hidden":`true`}),creditNote:M,disabled:se,customDisabled:r.existingProjectId!==void 0}),r.accessMode===`managed`?(0,L.jsx)(GH,{}):null]}):null,u===`model`?(0,L.jsx)(PH,{form:r,models:i,pending:se,onChange:g,onDiscover:N}):null,ie?(0,L.jsx)(kk,{title:`Starting your project`,description:`Tutti will check model access and start this project. If a check fails, your setup is kept here.`,children:(0,L.jsx)(JO,{items:[{label:`Project`,value:r.displayName},{label:`Folder`,value:r.workspacePath,mono:!0},{label:`Model access`,value:`Tutti credit`}]})}):null,u===`surface`&&!ie?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(KO,{value:r.surface,disabled:se,onValueChange:e=>g({surface:e}),tuttiLogo:(0,L.jsx)(yw,{src:kR}),feishuIcon:(0,L.jsx)(vx,{"aria-hidden":`true`})}),(0,L.jsx)(`p`,{children:`Each project uses one collaboration surface. This choice cannot be changed later.`})]}):null]}),te===null?null:(0,L.jsx)(yk,{open:!0,onOpenChange:D,projectName:te.projectName,state:te.state,...te.command===void 0?{}:{command:te.command},...te.unavailableMessage===void 0?{}:{unavailableMessage:te.unavailableMessage},onCopyCommand:O})]});return P?P(pe):(0,L.jsx)(gH,{onBrandClick:x,children:(0,L.jsxs)(IC,{children:[(0,L.jsxs)(pk,{className:`local-console-card`,title:`Projects`,accountName:t,accountAction:(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(J,{asChild:!0,children:(0,L.jsx)(`a`,{href:new URL(`/projects?panel=credits`,n).toString(),target:`_blank`,rel:`noopener noreferrer`,children:`Credits`})}),(0,L.jsx)(FH,{pending:m,onSignOut:ee})]}),"aria-label":`Tutti Local Console`,children:[(0,L.jsx)(gk,{items:[{id:`joined`,label:`Your projects`,href:n},{id:`local`,label:`This computer`,href:`/console`,current:!0}],action:(0,L.jsx)(UH,{createDisabled:s||c!==null,projectsLoading:o,onCreate:()=>_(!0),onPackageUpdate:A,onRefresh:x,...h===void 0?{}:{packageUpdateAction:h}})}),(0,L.jsx)(xk,{"aria-label":`Projects on this computer`,children:o||s?(0,L.jsx)(Sk,{"aria-label":`Loading local projects`,children:(0,L.jsx)(Xx,{})}):c===null?de.length===0?(0,L.jsx)(Sk,{children:(0,L.jsx)(Yx,{children:`No available projects on this computer.`})}):de.map(fe):(0,L.jsx)(Sk,{children:(0,L.jsx)(Yx,{children:c})})}),e===void 0?null:(0,L.jsxs)(`footer`,{className:`local-console-version`,"aria-label":`Tutti version ${e}`,children:[`Tutti `,e]})]}),pe]})})}function GH(){return(0,L.jsx)(`p`,{children:`Launching uses your signed-in account's Tutti credit for this team's AI work, including background tasks on this computer. You can revoke access in Account. Test credit only; no payment is enabled.`})}function KH({onBrandClick:e,sessionError:t=null,...n}){let r={...n,error:n.error??t};return(0,L.jsx)(vH,{onBrandClick:e,auth:(0,L.jsx)(SH,{...r}),mobileAuth:(0,L.jsx)(xH,{...r})})}function qH(e,t,n){let r=n.trim().toLocaleLowerCase(`en`),i=e.filter(e=>(t===`account`?e.account!==void 0:e.local!==void 0)&&e.title.toLocaleLowerCase(`en`).includes(r));return{available:i.filter(e=>t===`computer`||e.account?.hostStatus===`online`),unavailable:i.filter(e=>t===`account`&&e.account?.hostStatus!==`online`)}}function JH(e,t,n){let r=t.filter(e=>![`workspace-missing`,`workspace-replaced`,`invalid`].includes(e.status)&&(e.provider_status===`configured`||e.provider_status===`managed`)),i=e.map(e=>({key:`account:${e.relayProjectRef}`,title:e.displayName,surface:e.surface??`standalone`,account:e})),a=[];for(let e of r){let t=i.filter(t=>e.relay_origin===n&&e.relay_project_ref!==void 0&&t.account?.relayProjectRef===e.relay_project_ref&&t.surface===e.surface_profile.kind),o=r.filter(t=>t.relay_origin===e.relay_origin&&t.relay_project_ref===e.relay_project_ref);t.length===1&&o.length===1?t[0].local=e:a.push({key:`local:${e.project_id}`,title:e.display_name,surface:e.surface_profile.kind,local:e})}return[...i,...a]}function YH(e){let[t,n]=(0,I.useState)(!1),[r,i]=(0,I.useState)(``),[a,o]=(0,I.useState)(null),[s,c]=(0,I.useState)(!1),l=e.local,u=l!==void 0&&l.sessionError===null,d=t&&u;(0,I.useEffect)(()=>{u||(n(!1),i(``),o(null),c(!1))},[u]);let f=e=>{e!==d&&(n(e),i(``),c(!1),o(null))},{available:p,unavailable:m}=qH(JH(e.projects,u?l.projects:[],e.relayOrigin??``),d?`computer`:`account`,r),h=[...p,...s?m:[]].some(e=>e.key===a);(0,I.useEffect)(()=>{h||o(null)},[h]);let g=e=>{f(!0),o(e.key)},_=t=>{if(d&&t.local&&l){let e=t.local,n=l.projectActionPending!==null||l.launchPending;return e.status===`online`||e.status===`reconnecting`?t.surface===`feishu`?(0,L.jsx)(J,{type:`button`,disabled:n,onClick:()=>l.onConnectFeishu(e),children:`Connect`}):(0,L.jsx)(J,{type:`button`,disabled:n||!e.open_url,onClick:()=>l.onOpenProject(e),children:`Open`}):(0,L.jsx)(J,{type:`button`,disabled:n,onClick:()=>l.onLaunchExisting(e),children:`Resume`})}return t.account?.canOpen?(0,L.jsx)(J,{type:`button`,disabled:e.openPending,onClick:()=>e.onOpenProject(t.account.relayProjectRef),children:`Open`}):t.surface===`feishu`?(0,L.jsx)(`span`,{children:`In Feishu`}):null},v=t=>(0,L.jsx)(nk,{title:t.title,status:d?t.local?.status===`online`?`online`:t.local?.status===`reconnecting`?`connecting`:`stopped`:t.account.hostStatus,meta:`${t.surface===`feishu`?`Feishu`:`Tutti Workspace`} · ${t.account?.membershipLabel??`Local only`}`,local:!d&&!!t.local,selected:t.key===a,onSelect:()=>o(e=>e===t.key?null:t.key),action:_(t),children:(0,L.jsxs)(rk,{title:t.title,actions:(0,L.jsxs)(L.Fragment,{children:[d&&t.local&&l?(0,L.jsx)(HH,{project:t.local,showPrimary:!1,pending:l.projectActionPending!==null||l.launchPending,onLaunch:()=>l.onLaunchExisting(t.local),onOpen:()=>l.onOpenProject(t.local),onCopyInvite:()=>l.onCopyInvite(t.local),onConnectFeishu:()=>l.onConnectFeishu(t.local),onStop:()=>l.onStopProject(t.local),...l.onAuthorizeExisting?{onAuthorize:()=>l.onAuthorizeExisting(t.local)}:{}}):null,!d&&t.local?(0,L.jsx)(J,{type:`button`,onClick:()=>g(t),children:`Manage on this computer`}):null,t.account?(0,L.jsx)(J,{type:`button`,onClick:()=>e.onProjectDetails?.(t.account),children:`Project settings`}):null]}),children:[(0,L.jsx)(`p`,{children:t.surface===`feishu`?`Collaboration happens in your Feishu group.`:`Your shared Tutti workspace.`}),d&&t.local?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`p`,{children:t.local.workspace_path}),(0,L.jsx)(`p`,{children:t.local.status===`online`||t.local.status===`reconnecting`?`Running on this computer`:`Stopped on this computer`})]}):null]})},`${d?`computer`:`account`}:${t.key}`);return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(QO,{brand:(0,L.jsx)(NR,{onClick:e.onBrandClick}),account:e.accountActions??(e.account?(0,L.jsx)(FH,{pending:e.logoutPending,onSignOut:e.onLogout}):null),actions:(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(J,{type:`button`,onClick:()=>e.onJoinOpenChange(!0),children:`Join project`}),u?(0,L.jsxs)(pw,{type:`button`,disabled:l.sessionLoading,onClick:()=>l.onCreateOpenChange(!0),children:[(0,L.jsx)(Tx,{"aria-hidden":`true`}),`New project`]}):(0,L.jsx)(pw,{asChild:!0,children:(0,L.jsxs)(`a`,{href:e.localScopeHref,onClick:e.onRequestNewProject??e.onLocalScopeSelect,children:[(0,L.jsx)(Tx,{"aria-hidden":`true`}),`New project`]})})]}),toolbar:{local:d,connected:u,onLocalChange:f,search:r,onSearchChange:e=>{i(e),c(!!e.trim())}},rail:(0,L.jsx)(ik,{state:u?`connected`:e.connectionState===`lost`?`lost`:`disconnected`,...l?.version?{version:l.version}:{},children:u?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(tk,{children:[(0,L.jsx)(fw,{type:`button`,label:`Refresh projects`,icon:(0,L.jsx)(kx,{"aria-hidden":`true`}),disabled:l.projectsLoading,onClick:l.onRefresh}),(0,L.jsx)(J,{type:`button`,onClick:e.onDisconnect,children:`Disconnect`})]}),l.packageUpdateAction?(0,L.jsx)(J,{type:`button`,disabled:l.packageUpdateAction.disabled,onClick:l.onPackageUpdate,title:l.packageUpdateAction.description,children:l.packageUpdateAction.label}):null]}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(pw,{asChild:!0,children:(0,L.jsx)(`a`,{href:e.localScopeHref,onClick:e.onLocalScopeSelect,children:`Connect this computer`})}),(0,L.jsx)(J,{asChild:!0,children:(0,L.jsx)(`a`,{href:`tutti://projects`,children:`Open Local Console`})})]})}),children:[(d?l.projectsLoading:e.loading)?(0,L.jsx)(Xx,{}):null,!d&&e.error?(0,L.jsx)(Yx,{tone:`error`,children:e.error}):null,!(d?l.projectsLoading:e.loading)&&p.length+m.length===0?(0,L.jsx)(Yx,{children:r?`No matching projects.`:`No projects yet.`}):null,p.map(v),m.length>0?(0,L.jsx)(ek,{count:m.length,open:s,onOpenChange:c,children:m.map(v)}):null,!d&&e.truncated?(0,L.jsx)(Yx,{children:`Only your 100 most recent account projects are shown.`}):null]}),e.localDialogs,(0,L.jsx)(wk,{open:e.joinOpen,onOpenChange:e.onJoinOpenChange,inputLabel:`Invitation link or message`,placeholder:`Paste an invitation link or message`,value:e.joinLinkForm.value,error:e.joinLinkForm.error,onValueChange:e.joinLinkForm.onChange,"aria-label":`Join a project`,onSubmit:t=>{t.preventDefault(),e.joinLinkForm.onSubmit()}}),(0,L.jsx)(vk,{open:e.localHandoffOpen,onOpenChange:e.onLocalHandoffOpenChange,status:e.localHandoffStatus,description:e.localHandoffStatus===`failed`?`Connection was not completed. Allow local network access if prompted, or update Tutti and try again. Open Local Console is available as a fallback.${e.connectionDiagnostic?` Diagnostic: ${e.connectionDiagnostic}`:``}`:`Open Tutti when prompted. Allow this page to connect to your local network if your browser asks.`,command:`npm install -g @xfey/tutti && tutti`,onCopyCommand:e.onCopyLaunchCommand,retryHref:e.localHandoffRetryHref,onRetry:e.onLocalScopeSelect})]})}function XH({form:e,pending:t,tokenMissing:n,onChange:r}){return(0,L.jsxs)(`div`,{className:`form-stack`,children:[(0,L.jsx)(Tw,{label:`Project name`,children:(0,L.jsx)(xw,{autoComplete:`off`,disabled:t||n,type:`text`,value:e.projectName,onChange:e=>r({projectName:e.target.value}),placeholder:`tutti-default`})}),(0,L.jsx)(Tw,{label:`OpenAI API key`,children:(0,L.jsx)(xw,{autoComplete:`off`,disabled:t||n,type:`password`,value:e.apiKey,onChange:e=>r({apiKey:e.target.value}),placeholder:`sk-...`})}),(0,L.jsx)(Tw,{label:`Base URL`,children:(0,L.jsx)(xw,{autoComplete:`off`,disabled:t||n,type:`url`,value:e.baseUrl,onChange:e=>r({baseUrl:e.target.value}),placeholder:`https://api.openai.com/v1`})}),(0,L.jsx)(Tw,{label:`Default model`,children:(0,L.jsx)(xw,{autoComplete:`off`,disabled:t||n,type:`text`,value:e.defaultModel,onChange:e=>r({defaultModel:e.target.value}),placeholder:`gpt-5.5`})})]})}function ZH({form:e,statusLabel:t,configured:n,loading:r,pending:i,openProjectPending:a=!1,tokenMissing:o,error:s,success:c,onChange:l,onSubmit:u,onRetry:d,onBrandClick:f}){let p=i||a;return(0,L.jsx)(_H,{label:`Project setup`,onBrandClick:f,children:(0,L.jsxs)(uk,{title:`Project setup`,description:`Configure the provider for this project.`,size:`wide`,onSubmit:u,action:o?(0,L.jsxs)(J,{type:`button`,disabled:!0,children:[(0,L.jsx)(Wx,{"aria-hidden":`true`}),`Missing token`]}):s!==null&&r?(0,L.jsx)(J,{type:`button`,onClick:d,children:`Retry`}):a?(0,L.jsxs)(J,{type:`button`,disabled:!0,children:[(0,L.jsx)(Vb,{"aria-hidden":`true`}),`Opening project`]}):(0,L.jsxs)(pw,{type:`submit`,disabled:i||e.apiKey.trim()===``||e.projectName.trim()===``,children:[i?`Saving`:`Save provider`,(0,L.jsx)(Mx,{"aria-hidden":`true`})]}),feedback:(0,L.jsxs)(L.Fragment,{children:[c===null?null:(0,L.jsx)(Yx,{icon:(0,L.jsx)(Jb,{"aria-hidden":`true`}),children:c}),s===null?null:(0,L.jsx)(Ew,{children:s})]}),children:[(0,L.jsx)(dk,{projectName:`OpenAI provider`,hostLabel:t,hostOnline:n,members:(0,L.jsx)(ux,{"aria-hidden":`true`})}),(0,L.jsx)(fk,{label:`Status`,value:r?`Loading`:t,action:n?(0,L.jsx)(Jb,{"aria-hidden":`true`}):null}),(0,L.jsx)(XH,{form:e,pending:p,tokenMissing:o,onChange:l})]})})}function QH({tone:e}){return e===`pending`?(0,L.jsx)(Wx,{"aria-hidden":`true`}):e===`failed`?(0,L.jsx)(Xb,{"aria-hidden":`true`}):e===`done`?(0,L.jsx)(Gb,{"aria-hidden":`true`}):(0,L.jsx)(px,{"aria-hidden":`true`})}function $H({members:e}){return e===void 0||e.length===0?null:(0,L.jsx)(HC,{"aria-label":`Members`,children:e.map(e=>(0,L.jsx)(AH,{avatar:e.avatar,label:e.displayName},e.key))})}function eU({activePage:e,statusShortcuts:t,unread:n,artifactSignal:r,mobileContext:i,rail:a,children:o,onOpenProjectCenter:s,onOpenChat:c,onOpenWorklist:l,onOpenReferences:u,onOpenArtifacts:d,onOpenSkills:f,onOpenTimeline:p,onOpenSettings:m,onActivateStatusShortcut:h,getStatusShortcutAriaControls:g}){let _=e!==`chat`&&n?.chat===!0,v=e!==`worklist`&&n?.worklist===!0,y=r?.status===`live`,b=e!==`references`&&n?.references===!0,x=e!==`skills`&&n?.skills===!0;return(0,L.jsx)(RC,{children:(0,L.jsx)(zC,{...a===void 0?{}:{rail:a},children:(0,L.jsx)(BC,{className:`is-headerless`,sidebar:(0,L.jsxs)(Ow,{brand:(0,L.jsx)(MR,{...s===void 0?{}:{onClick:s}}),mobileTitle:i.title,...i.meta===void 0?{}:{mobileMeta:i.meta},...i.action===void 0?{}:{mobileAction:i.action},...t.length===0?{}:{status:t.map(e=>(0,I.createElement)(jw,{icon:(0,L.jsx)(QH,{tone:e.tone}),label:e.label,tone:e.tone,onClick:()=>h?.(e),...g?.(e)===void 0?{}:{"aria-controls":g(e)},key:e.key}))},footer:(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(fH,{}),(0,L.jsx)(Aw,{icon:(0,L.jsx)(Fx,{"aria-hidden":`true`}),label:`Settings`,active:e===`settings`,onClick:e===`settings`?void 0:m})]}),children:[(0,L.jsx)(Aw,{icon:(0,L.jsx)(VI,{"aria-hidden":`true`}),label:`Chat`,active:e===`chat`,badge:_?{label:`Unread messages`}:!1,onClick:e===`chat`?void 0:c}),(0,L.jsx)(Aw,{icon:(0,L.jsx)(fx,{"aria-hidden":`true`}),label:`Worklist`,active:e===`worklist`,badge:v?{label:`Unread worklist updates`}:!1,onClick:e===`worklist`?void 0:l}),(0,L.jsx)(Aw,{icon:(0,L.jsx)(bx,{"aria-hidden":`true`}),label:`Artifacts`,active:e===`artifacts`,badge:y?{label:`Live preview available`,text:`Live`,variant:`pill`}:!1,onClick:e===`artifacts`?void 0:d}),(0,L.jsx)(Aw,{icon:(0,L.jsx)(ix,{"aria-hidden":`true`}),label:`References`,active:e===`references`,badge:b?{label:`New reference files`}:!1,onClick:e===`references`?void 0:u}),(0,L.jsx)(Aw,{icon:(0,L.jsx)(Rx,{"aria-hidden":`true`}),label:`Skills`,active:e===`skills`,badge:x?{label:`New skill updates`}:!1,onClick:e===`skills`?void 0:f}),(0,L.jsx)(Aw,{icon:(0,L.jsx)(Wb,{"aria-hidden":`true`}),label:`Timeline`,active:e===`timeline`,onClick:e===`timeline`?void 0:p})]}),children:o})})})}function tU(){return(0,L.jsx)(vw,{src:kR,className:`empty-state-brand-logo`})}function nU(e){return(0,L.jsx)(Yx,{watermark:(0,L.jsx)(tU,{}),...e})}var rU=`tutti.execution-score-themes.v1`,iU=40,aU={assignments:[],bag:[]};function oU(){return{assignments:[],bag:[]}}function sU(){try{return typeof window>`u`?null:window.sessionStorage}catch{return null}}function cU(e,t){if(typeof e!=`object`||!e)return null;let n=e;if(!Array.isArray(n.assignments)||!Array.isArray(n.bag))return null;let r=n.assignments.filter(e=>typeof e==`object`&&!!e&&typeof e.identity==`string`&&t.has(String(e.themeId))),i=n.bag.filter(e=>typeof e==`string`&&t.has(e)),a=typeof n.recent==`string`&&t.has(n.recent)?n.recent:void 0;return{assignments:r,bag:i,...a===void 0?{}:{recent:a}}}function lU(e,t){if(e===null)return aU;try{let n=e.getItem(rU);return n===null?oU():cU(JSON.parse(n),t)??oU()}catch{return aU}}function uU(e,t){if(aU=t,e!==null)try{e.setItem(rU,JSON.stringify(t))}catch{}}function dU(e,t,n){let r=e.map(e=>e.id);for(let e=r.length-1;e>0;--e){let t=Math.min(e,Math.max(0,Math.floor(n()*(e+1))));[r[e],r[t]]=[r[t],r[e]]}if(r.length>1&&r[0]===t){let e=r.findIndex(e=>e!==t);[r[0],r[e]]=[r[e],r[0]]}return r}function fU(e,t={}){let n=t.themes??MC;if(n.length===0)throw Error(`Execution score themes are unavailable`);let r=new Map(n.map(e=>[e.id,e])),i=new Set(r.keys()),a=t.storage===void 0?sU():t.storage,o=lU(a,i),s=o.assignments.find(t=>t.identity===e),c=s===void 0?void 0:r.get(s.themeId);if(c!==void 0)return c;let l=t.random??Math.random,u=o.bag.length>0?[...o.bag]:dU(n,o.recent,l),d=u.shift(),f=d===void 0?void 0:r.get(d);if(f===void 0)throw Error(`Execution score themes are unavailable`);return uU(a,{assignments:[...o.assignments,{identity:e,themeId:f.id}].slice(-iU),bag:u,recent:f.id}),f}function pU(e){return`round-card-${e}`}function mU(e){return`approval-card-${e}`}function hU(e){return`chat-message-${e}`}var gU=`workspace-scratchpad`,_U=720,vU=80,yU=160,bU=96,xU=160,SU=2;function CU(e){return e.completionSource?.activityRef??e.completionSource?.workflowRef??e.completionSource?.taskId??e.key}function wU({progress:e}){let t=CU(e),[n]=(0,I.useState)(()=>fU(t)),r=(0,I.useRef)(t),i=(0,I.useRef)(e.tone),[a,o]=(0,I.useState)(null);if((0,I.useEffect)(()=>{let n=r.current,a=i.current;if(r.current=t,i.current=e.tone,e.tone!==`running`||a===`pending`||n===t){o(null);return}o(t);let s=window.setTimeout(()=>{o(e=>e===t?null:e)},_U);return()=>{window.clearTimeout(s)}},[e.tone,t]),e.tone===`running`||e.tone===`pending`||e.tone===`complete`){let r=e.tone===`running`&&a===t,i=e.steps.find(e=>e.status===`running`||e.status===`pending`)??e.steps.at(-1),o=e.completionTarget?.kind===`task`?`Task completed`:`Procedure completed`,s=e.tone===`complete`?void 0:i?.detail??(e.tone===`pending`?e.summary:void 0),c=e.tone===`complete`?void 0:i?.detailPrefix,l=e.tone===`complete`?void 0:i?.activityLabel,u=e.tone===`complete`?void 0:i?.elapsedLabel,d=e.tone===`complete`?void 0:i?.metrics,f=e.tone===`running`&&i?.id===`implement`&&s!==void 0;return(0,L.jsx)(mC,{stageLabel:r?`Loading the next movement…`:e.tone===`complete`?o:i?.label??e.summary,...r||s===void 0?{}:{stageDetail:s},...r||c===void 0?{}:{stageDetailPrefix:c},...r||l===void 0?{}:{stageActivity:l},...r||!f?{}:{detailMode:`live`},...r||u===void 0?{}:{elapsedLabel:u},...r||d===void 0?{}:{metrics:d},scoreLabel:r?`Loading the next movement score`:e.tone===`complete`?`${o} score cadence`:e.tone===`pending`?`Execution score paused while waiting for input`:`${i?.label??`Execution`} running score using ${n.shortName}`,state:r?`handoff`:e.tone===`complete`?`complete`:e.tone===`pending`?`paused`:`running`,units:n.units,playbackBpm:n.tempo,openingClef:n.clef,keySignatureFifths:n.keySignatureFifths,timeSignature:n.meter})}return(0,L.jsx)(hL,{title:e.title,summary:e.summary,tone:e.tone,steps:e.steps,...e.metaLabel===void 0?{}:{metaLabel:e.metaLabel}})}function TU(e){if(e===void 0)return null;let t=Date.parse(e);return Number.isNaN(t)?null:t}function EU(e,t){if(e===null)return null;let n=TU(e.requestedAt);if(n===null)return t.length;let r=t.findIndex(e=>{let t=TU(e.createdAt);return t!==null&&t>n});return r===-1?t.length:r}function DU(e,{focusSelector:t}={}){let n=typeof document>`u`?null:document.getElementById(e);n!==null&&(n.scrollIntoView({block:`center`}),t!==void 0&&n.querySelector(t)?.focus({preventScroll:!0}))}function OU(e){return e.messageKind===`system_notice`&&e.workflowRef!==void 0&&(e.body.startsWith(`Worklist updated with `)||e.body===`Worklist is already covered by existing tasks.`)}function kU(e,t){if(t===void 0)return;let n=t.label.trim(),r=t.handle?.trim()??n;if(n===``||r===``)return;let i=r.toLocaleLowerCase();e.has(i)||e.set(i,{id:t.id,label:n,handle:r})}function AU({members:e,messages:t,clarificationMessagesByRoundId:n}){let r=new Map;kU(r,{id:`tutti`,label:`Tutti`,handle:`tutti`});for(let t of e)kU(r,{id:t.key,label:t.displayName});for(let e of t)kU(r,{id:`message:${e.author}`,label:e.author,...e.avatarKind===`tutti`?{handle:`tutti`}:{}});for(let e of Object.values(n))for(let t of e)kU(r,{id:`round-message:${t.author}`,label:t.author,...t.avatarKind===`tutti`?{handle:`tutti`}:{}});return[...r.values()]}function jU({message:e}){return e.avatarKind===`tutti`?(0,L.jsx)(jH,{label:e.author}):(0,L.jsx)(AH,{avatar:e.avatar??{kind:`initials`,initials:pg(e.author),color:`blue`},label:e.author,online:e.online})}function MU({projectName:e,projectDescription:t=``,members:n,messages:r,scratchpad:i,executionProgress:a=null,activeApproval:o=null,activeClarification:s,clarificationMessagesByRoundId:c,statusShortcuts:l,unread:u,artifactSignal:d,draft:f,roundDraft:p,sendPending:m,scratchpadSyncPending:h=!1,scratchpadActionsDisabled:g=!1,scratchpadSubmitPending:_=!1,referenceUploadPending:v=!1,focusMessageId:y=null,messageHistoryIdentity:b=`latest`,initialMessagePosition:x=y===null?`latest`:`focus`,hasOlderMessages:S=!1,hasNewerMessages:C=!1,loadingOlderMessages:w=!1,loadingNewerMessages:T=!1,historyConnectedToLatest:E=!0,roundSendPending:D=!1,roundSubmitPending:O=!1,submittedRoundId:k=null,approvalDecisionPending:A=!1,projectNameSaving:ee=!1,projectDescriptionSaving:te=!1,loading:j=!1,unavailable:ne=!1,onDraftChange:M,onMessageFocused:N,onInitialMessagePositioned:P,onLoadOlderMessages:re,onLoadNewerMessages:ie,onJumpToLatest:ae,onUploadReferenceFile:oe,onOpenReferenceFile:se,onRoundDraftChange:ce,onSendMessage:le,onSendRoundMessage:ue,onSubmitRound:de,onDecideApproval:fe,onSubmitScratchpad:pe,onUpdateProjectDisplayName:me,onUpdateProjectDescription:he,onOpenProjectCenter:ge,onOpenWorklist:_e,onOpenWorklistTask:F,onRetryTask:ve,onOpenReferences:ye,onOpenArtifacts:be,onViewArtifactFeedback:xe,onOpenSkills:Se,onOpenTimeline:Ce,onOpenSettings:we,onActivateStatusShortcut:Te}){let[Ee,De]=(0,I.useState)(!1),Oe=(0,I.useRef)(null),ke=(0,I.useRef)(!1),Ae=(0,I.useRef)(null),je=(0,I.useRef)(null),Me=(0,I.useRef)(!0),Ne=(0,I.useRef)(void 0),Pe=(0,I.useRef)(b),Fe=(0,I.useRef)(null),Ie=(0,L.jsx)(rL,{className:`chat-project-title-edit`,value:e,placeholder:`Untitled project`,ariaLabel:`Edit project name`,maxLength:vU,saving:ee,disabled:j,...me===void 0?{}:{onUpdate:me}}),Le=(0,L.jsx)(rL,{className:`chat-project-description-edit`,value:t,placeholder:`Add a project description`,ariaLabel:`Edit project description`,maxLength:yU,allowEmpty:!0,saving:te,disabled:j,...he===void 0?{}:{onUpdate:he}}),Re=s!==null&&r.some(e=>e.id===s.cardMessageId),ze=new Map;for(let e of r)e.clarificationCard!==void 0&&e.workflowRef!==void 0&&ze.set(e.workflowRef,e.clarificationCard.roundId);let Be=new Map;for(let e of r){if(!OU(e)||e.workflowRef===void 0)continue;let t=ze.get(e.workflowRef);t!==void 0&&Be.set(t,{...e,id:`round-result:${e.id}`,messageKind:`agent_text`,author:`Tutti`,avatarKind:`tutti`,online:!1})}let Ve=e=>{let t=c[e]??[],n=Be.get(e);return n===void 0||t.some(e=>e.body===n.body)?t:[...t,n]},He=AU({members:n,messages:r,clarificationMessagesByRoundId:c}),Ue=oe===void 0?void 0:e=>{for(let t of e)oe(t)};(0,I.useLayoutEffect)(()=>{Pe.current!==b&&(Pe.current=b,ke.current=!1,Ae.current=null,Ne.current=void 0)},[b]),(0,I.useLayoutEffect)(()=>{let e=Ae.current;if(e!==null){if(r[0]?.id!==e.firstMessageId){let t=Oe.current;t!==null&&(t.scrollTop=e.scrollTop+Math.max(0,t.scrollHeight-e.scrollHeight),Me.current=t.scrollHeight-t.clientHeight-t.scrollTop<=SU),Ae.current=null;return}w||(Ae.current=null)}},[w,r]),(0,I.useEffect)(()=>{if(y===null||!r.some(e=>e.id===y))return;ke.current=!0,DU(hU(y));let e=Oe.current;e!==null&&(Me.current=e.scrollHeight-e.clientHeight-e.scrollTop<=SU),N?.()},[y,r,N]),(0,I.useEffect)(()=>{if(ke.current||j||ne||x!==`latest`||y!==null||r.length===0&&s===null&&o===null)return;let e=Oe.current;if(e===null)return;let t=window.requestAnimationFrame(()=>{e.scrollTop=e.scrollHeight,Me.current=!0,ke.current=!0});return()=>window.cancelAnimationFrame(t)},[o,s,y,j,r,ne]),(0,I.useEffect)(()=>{if(ke.current||j||ne||x!==`start`||y!==null)return;let e=Oe.current;if(e===null)return;let t=window.requestAnimationFrame(()=>{e.scrollTop=0,Me.current=e.scrollHeight<=e.clientHeight+SU,ke.current=!0,P?.()});return()=>window.cancelAnimationFrame(t)},[y,x,j,r,P,ne]);let We=()=>{if(!S||w||Ae.current!==null||re===void 0)return;let e=Oe.current;e!==null&&(Ae.current={firstMessageId:r[0]?.id,scrollHeight:e.scrollHeight,scrollTop:e.scrollTop},re())},Ge=()=>{!C||T||ie===void 0||ie()},Ke=e=>{let t=e.currentTarget;Me.current=t.scrollHeight-t.clientHeight-t.scrollTop<=SU,je.current!==null&&window.cancelAnimationFrame(je.current),je.current=window.requestAnimationFrame(()=>{if(je.current=null,t.scrollTop<=bU){We();return}t.scrollHeight-t.clientHeight-t.scrollTop<=xU&&Ge()})};(0,I.useEffect)(()=>()=>{je.current!==null&&window.cancelAnimationFrame(je.current)},[]),(0,I.useEffect)(()=>{if(j||ne||w||T||!ke.current)return;let e=Oe.current;if(e===null||e.scrollHeight>e.clientHeight+SU)return;let t=window.requestAnimationFrame(()=>{S?We():C&&Ge()});return()=>window.cancelAnimationFrame(t)},[C,S,j,T,w,r,ne]);let qe=r.at(-1)?.id;(0,I.useEffect)(()=>{let e=Ne.current;if(Ne.current=qe,e===void 0||e===qe||!E||!Me.current||!ke.current||Ae.current!==null)return;let t=Oe.current;if(t===null)return;let n=window.requestAnimationFrame(()=>{t.scrollTop=t.scrollHeight,Me.current=!0});return()=>window.cancelAnimationFrame(n)},[E,qe]);let Je=({key:e,roundId:t,title:n,summary:r,request:i,contextLabel:a,writable:o})=>{let c=Ve(t),l=(s?.roundId===t?s.answerRevision:void 0)??c.filter(e=>e.isClarificationAnswer??e.messageKind===`user_text`).length;return(0,L.jsx)(EL,{id:pU(t),tabIndex:-1,title:n,summary:r,request:i,...a===void 0?{}:{contextLabel:a},messages:c.map(e=>({id:e.id,author:e.author,body:e.body,time:e.time,avatar:(0,L.jsx)(jU,{message:e})})),replyCount:l,draft:o?p:``,defaultOpen:!0,readOnly:!o,status:o?`pending`:`done`,statusLabel:o?`needs input`:`submitted`,mentionOptions:He,sendPending:o&&D,submitPending:o&&O,onDraftChange:ce,onSendMessage:ue,onSubmitRound:de},`${e}:${o?`writable`:`sealed`}`)},Ye=e=>{if(e.target.kind===`approval`&&o!==null){if(!E){Fe.current=e,ae?.();return}DU(mU(o.approvalId),{focusSelector:`.chat-event-card-header`});return}if(e.target.kind===`clarification`&&s!==null){if(!E&&!Re){Fe.current=e,ae?.();return}DU(pU(s.roundId),{focusSelector:`.chat-event-card-header`});return}if(e.target.kind===`scratchpad`){DU(gU);return}Te?.(e)};(0,I.useEffect)(()=>{let e=Fe.current;if(!E||j||e===null)return;Fe.current=null;let t=window.requestAnimationFrame(()=>{e.target.kind===`approval`&&o!==null?DU(mU(o.approvalId),{focusSelector:`.chat-event-card-header`}):e.target.kind===`clarification`&&s!==null&&DU(pU(s.roundId),{focusSelector:`.chat-event-card-header`})});return()=>window.cancelAnimationFrame(t)},[o,s,E,j,r]);let Xe=e=>s===null?null:Je({key:e,roundId:s.roundId,title:s.title,summary:s.summary,request:s.request,contextLabel:s.ownerLabel,writable:s.status===`writable`&&s.roundId!==k}),Ze=()=>o===null?null:(0,L.jsx)(AL,{id:mU(o.approvalId),tabIndex:-1,title:o.title,summary:o.summary,...o.reason===void 0?{}:{reason:o.reason},...o.detail===void 0?{}:{detail:o.detail,...o.detailLabel===void 0?{}:{detailLabel:o.detailLabel},...o.detailCode===void 0?{}:{detailCode:o.detailCode}},status:o.status,statusLabel:o.statusLabel,decisions:o.decisions,decisionPending:A,...o.resolutionLabel===void 0?{}:{resolutionLabel:o.resolutionLabel},onDecide:e=>fe?.(o.approvalId,e)},`approval:${o.approvalId}:${o.status}`),Qe=e=>{let t=e.clarificationCard;if(t===void 0)return null;let n=s!==null&&s.roundId===t.roundId;return Je({key:e.id,roundId:t.roundId,title:n&&s!==null?s.title:t.title??`Clarification round ${t.roundId.slice(-4)}`,summary:n&&s!==null?s.summary:t.summary,request:n&&s!==null?s.request:t.summary,...n&&s!==null?{contextLabel:s.ownerLabel}:{},writable:n&&t.status===`writable`&&t.roundId!==k})},$e=e=>{if(OU(e)&&ze.has(e.workflowRef??``))return null;if(e.messageKind===`clarification_card`)return Qe(e);if(s!==null&&e.id===s.cardMessageId)return Xe(e.id);if(e.taskResult!==void 0)return(0,L.jsx)(ML,{id:hU(e.id),tabIndex:-1,className:e.id===y?`is-focused`:void 0,title:e.taskResult.title,status:e.taskResult.status,taskId:e.taskResult.taskId,taskTitle:e.taskResult.taskTitle,summary:e.taskResult.summary,...e.taskResult.moduleName===void 0?{}:{moduleName:e.taskResult.moduleName},...e.taskResult.finalNote===void 0?{}:{finalNote:e.taskResult.finalNote},...e.taskResult.generatedFiles===void 0?{}:{generatedFiles:e.taskResult.generatedFiles},...e.taskResult.errorCode===void 0?{}:{errorCode:e.taskResult.errorCode},...e.taskResult.retryState===void 0?{}:{retryState:e.taskResult.retryState},...e.taskResult.retryState===void 0||e.taskResult.latestRunResultId===void 0||ve===void 0?{}:{onRetry:()=>ve(e.taskResult.taskId,e.taskResult.latestRunResultId)},...F===void 0?{}:{onOpenTask:F}},e.id);let t=e.referenceFile;return(0,L.jsx)(HI,{id:hU(e.id),tabIndex:-1,author:e.author,time:e.time,avatar:(0,L.jsx)(jU,{message:e}),className:e.id===y?`is-focused`:void 0,children:e.artifactFeedback===void 0?t===void 0?e.messageKind===`agent_text`?(0,L.jsx)(UI,{children:e.body}):(0,L.jsx)(`p`,{children:(0,L.jsx)(zI,{children:e.body})}):(0,L.jsx)(tL,{name:t.name,category:t.category,...t.imageUrl===void 0?{}:{imageUrl:t.imageUrl},onClick:()=>se?.(t.path)}):(0,L.jsx)(eR,{artifactTitle:e.artifactFeedback.artifactTitle,annotations:e.artifactFeedback.annotations,...e.artifactFeedback.summary===void 0?{}:{summary:e.artifactFeedback.summary},...xe===void 0?{}:{onViewAnnotation:t=>xe(e.id,t)}})},e.id)},et=E?EU(o,r):null,tt=()=>{let e=s!==null&&(Re||E)||o!==null&&E;return r.length===0&&!e&&!w&&!T?(0,L.jsx)(nU,{children:`No messages yet`}):(0,L.jsxs)(L.Fragment,{children:[w?(0,L.jsx)(`div`,{className:`chat-history-status`,role:`status`,children:`Loading earlier messages…`}):null,!E||Re?null:Xe(`active-round`),r.map((e,t)=>(0,L.jsxs)(I.Fragment,{children:[et===t?Ze():null,$e(e)]},`timeline:${e.id}`)),et===r.length?Ze():null,T?(0,L.jsx)(`div`,{className:`chat-history-status`,role:`status`,children:`Loading newer messages…`}):null]})},nt=(e,t=!1)=>(0,L.jsx)(dL,{id:e,tabIndex:-1,compact:t,title:i.title,summary:i.summary,sections:i.sections,submitAvailable:i.submitAvailable,...i.pages===void 0?{}:{pages:i.pages},...i.footerNote===void 0?{}:{footerNote:i.footerNote},...i.updatedLabelPrefix===void 0?{}:{updatedLabelPrefix:i.updatedLabelPrefix},syncPending:h,actionsDisabled:g,submitPending:_,onSubmitScratchpad:pe,...F===void 0?{}:{onOpenCompiledTask:F},empty:(0,L.jsx)(nU,{children:`Scratchpad empty. Discuss more, tutti together!`}),...i.updatedLabel===void 0?{}:{updatedLabel:i.updatedLabel}}),rt=(0,L.jsx)(`div`,{className:`chat-panel-actions`,children:(0,L.jsx)($H,{members:n})});return(0,L.jsxs)(eU,{activePage:`chat`,statusShortcuts:l,mobileContext:{title:e,action:(0,L.jsx)(Aw,{className:h?`mobile-scratchpad-trigger is-syncing`:`mobile-scratchpad-trigger`,type:`button`,label:Ee?`Close Scratchpad`:`Open Scratchpad`,active:Ee,"aria-expanded":Ee,"aria-controls":`${gU}-mobile-sheet`,icon:(0,L.jsx)(sL,{"aria-hidden":`true`}),onClick:()=>De(e=>!e)})},...u===void 0?{}:{unread:u},...d===void 0?{}:{artifactSignal:d},onOpenProjectCenter:ge,onOpenWorklist:_e,onOpenReferences:ye,onOpenArtifacts:be,onOpenSkills:Se,onOpenTimeline:Ce,onOpenSettings:we,onActivateStatusShortcut:Ye,getStatusShortcutAriaControls:e=>e.target.kind===`approval`&&o!==null&&E?mU(o.approvalId):e.target.kind===`clarification`&&s!==null&&(E||Re)?pU(s.roundId):e.target.kind===`scratchpad`?gU:void 0,children:[(0,L.jsxs)(`section`,{className:`workspace-grid is-tutti chat-workspace-grid`,"aria-label":`Chat workspace`,children:[j?(0,L.jsx)(nL,{title:Ie,subtitle:Le,actions:rt,children:(0,L.jsx)(Xx,{})}):ne?(0,L.jsx)(nL,{title:Ie,subtitle:Le,actions:rt,children:(0,L.jsx)(nU,{children:`Workspace unavailable`})}):(0,L.jsx)(nL,{title:Ie,subtitle:Le,actions:rt,streamRef:Oe,onStreamScroll:Ke,streamOverlay:C&&ae!==void 0?(0,L.jsx)(J,{className:`chat-jump-latest`,type:`button`,onClick:ae,children:`Jump to latest`}):void 0,dropUploadPending:v,...Ue===void 0?{}:{onDropFiles:Ue},composer:(0,L.jsx)(oL,{value:f,pending:m,uploadPending:v,mentionOptions:He,onValueChange:M,onComposerSubmit:le,...oe===void 0?{}:{onFileUpload:oe}}),empty:(0,L.jsx)(nU,{children:`No messages yet`}),children:tt()}),(0,L.jsxs)(`div`,{className:a===null?`chat-side-column`:`chat-side-column has-progress`,children:[nt(gU),a===null?null:(0,L.jsx)(wU,{progress:a})]})]}),Ee?(0,L.jsxs)(`div`,{className:`mobile-scratchpad-layer is-open`,id:`${gU}-mobile-sheet`,children:[(0,L.jsx)(`button`,{className:`mobile-scratchpad-backdrop`,type:`button`,"aria-label":`Close Scratchpad`,onClick:()=>De(!1)}),(0,L.jsxs)(`section`,{className:`mobile-scratchpad-card`,role:`dialog`,"aria-modal":`true`,"aria-label":`Scratchpad`,children:[(0,L.jsxs)(`div`,{className:`mobile-scratchpad-card-head`,children:[(0,L.jsx)(`h2`,{children:`Scratchpad`}),(0,L.jsx)(fw,{className:`mobile-scratchpad-close`,type:`button`,label:`Close Scratchpad`,icon:(0,L.jsx)(qx,{"aria-hidden":`true`}),onClick:()=>De(!1)})]}),(0,L.jsx)(`div`,{className:`mobile-scratchpad-card-body`,children:nt(`${gU}-mobile`,!0)})]})]}):null]})}function NU({statusShortcuts:e,unread:t,state:n,loading:r=!1,unavailable:i=!1,feedback:a,iframeRef:o,onPreviewLoad:s,onOpenProjectCenter:c,onOpenChat:l,onOpenWorklist:u,onOpenReferences:d,onOpenSkills:f,onOpenTimeline:p,onOpenSettings:m,onActivateStatusShortcut:h}){let g=r?{status:`loading`}:i?{status:`not_declared`}:n,_=a?.supported===!0?(0,L.jsx)(QL,{active:a.open,disabled:a.open?!a.canSubmit:!a.ready,...a.submitPending===void 0?{}:{pending:a.submitPending},title:a.open?a.submitDisabledReason??`Submit comments`:a.ready?`Comments`:a.unavailableReason??`Preparing comments`,onClick:a.open?a.onSubmit:a.onOpen}):void 0,v=a?.supported===!0?(0,L.jsx)(Aw,{type:`button`,label:a.open?`Submit comments`:`Comments`,active:a.open,disabled:a.open?!a.canSubmit:!a.ready,icon:a.open?(0,L.jsx)(Gb,{"aria-hidden":`true`}):(0,L.jsx)(Tx,{"aria-hidden":`true`}),onClick:a.open?a.onSubmit:a.onOpen}):void 0,y=a?.open===!0?(0,L.jsx)($L,{...a.rail,author:a.author.displayName,avatar:(0,L.jsx)(AH,{avatar:a.author.avatar,label:a.author.displayName})}):void 0;return(0,L.jsx)(eU,{activePage:`artifacts`,statusShortcuts:e,mobileContext:{title:g.status===`declared`?g.title:`Artifacts`,...v===void 0?{}:{action:v}},...t===void 0?{}:{unread:t},artifactSignal:jz(g),...y===void 0?{}:{rail:y},onOpenProjectCenter:c,onOpenChat:l,onOpenWorklist:u,onOpenReferences:d,onOpenSkills:f,onOpenTimeline:p,onOpenSettings:m,onActivateStatusShortcut:h,children:(0,L.jsx)(`section`,{className:`workspace-grid artifacts-workspace-grid`,"aria-label":`Artifacts`,children:(0,L.jsx)(YL,{state:g,..._===void 0?{}:{headerAction:_},...o===void 0?{}:{iframeRef:o},...s===void 0?{}:{onPreviewLoad:s},...i?{empty:(0,L.jsx)(nU,{children:`Workspace unavailable`})}:{},emptyWatermark:(0,L.jsx)(tU,{})})})})}function PU({statusShortcuts:e,unread:t,artifactSignal:n,files:r,detail:i,uploadPending:a=!1,fileSortMode:o=`time`,loading:s=!1,unavailable:c=!1,onOpenProjectCenter:l,onOpenChat:u,onOpenWorklist:d,onOpenArtifacts:f,onOpenSkills:p,onOpenTimeline:m,onOpenSettings:h,onActivateStatusShortcut:g,onSelectFile:_,onUploadFile:v,onFileSortModeChange:y}){let b=s||c;return(0,L.jsx)(eU,{activePage:`references`,statusShortcuts:e,mobileContext:{title:`References`,action:(0,L.jsx)(aL,{variant:`bare`,className:`sidebar-button reference-upload-button`,label:`Upload reference`,pendingLabel:`Uploading reference`,pending:a,iconOnly:!0,onFileUpload:v})},...t===void 0?{}:{unread:t},...n===void 0?{}:{artifactSignal:n},onOpenProjectCenter:l,onOpenChat:u,onOpenWorklist:d,onOpenArtifacts:f,onOpenSkills:p,onOpenTimeline:m,onOpenSettings:h,onActivateStatusShortcut:g,children:(0,L.jsx)(`section`,{className:`workspace-grid references-workspace-grid`,"aria-label":`Reference files`,children:(0,L.jsx)(KL,{files:b?[]:r,...s?{detail:{title:`Loading`,unavailableReason:`Loading`}}:c?{detail:{title:`References unavailable`,unavailableReason:`Workspace unavailable`}}:i===void 0?{}:{detail:i},uploadPending:a,fileSortMode:o,empty:s?(0,L.jsx)(nU,{children:`Loading reference files`}):c?(0,L.jsx)(nU,{children:`Workspace unavailable`}):(0,L.jsx)(nU,{children:`No reference files`}),onSelectFile:_,onUploadFile:v,...y===void 0?{}:{onFileSortModeChange:y}})})})}var FU=6,IU=`......`,LU=80,RU=160;function zU(e){let t=document.createElement(`canvas`).getContext(`2d`);if(t===null)return null;let n=window.getComputedStyle(e);return t.font=[n.fontStyle,n.fontVariant,n.fontWeight,n.fontSize,n.fontFamily].join(` `),e=>t.measureText(e).width}function BU(e,t,n){if(n(e)<=t)return e;let r=e.slice(-FU),i=Math.max(0,e.length-r.length),a=0,o=i;for(;a<o;){let i=Math.ceil((a+o)/2);n(`${e.slice(0,i)}${IU}${r}`)<=t?a=i:o=i-1}return`${e.slice(0,a)}${IU}${r}`}function VU({value:e}){let t=(0,I.useRef)(null),[n,r]=(0,I.useState)(e);return(0,I.useEffect)(()=>{let n=t.current;if(n===null)return;let i=()=>{let t=zU(n),i=n.getBoundingClientRect().width;if(t===null||i<=0){r(e);return}let a=BU(e,i,t);r(e=>e===a?e:a)};i();let a=typeof ResizeObserver>`u`?null:new ResizeObserver(i);return a?.observe(n),window.addEventListener(`resize`,i),()=>{a?.disconnect(),window.removeEventListener(`resize`,i)}},[e]),(0,L.jsx)(`span`,{ref:t,className:`settings-masked-link`,title:e,"aria-label":e,children:n})}function HU({value:e,onCopy:t}){return t===void 0?(0,L.jsx)(VU,{value:e}):(0,L.jsx)(`button`,{className:`settings-value-button settings-link-copy-button`,type:`button`,"aria-label":`Copy invite link`,onClick:t,children:(0,L.jsx)(VU,{value:e})})}function UU({avatar:e,displayName:t}){return(0,L.jsxs)(`div`,{className:`settings-identity`,children:[(0,L.jsx)(AH,{avatar:e,label:t}),(0,L.jsx)(`strong`,{children:t})]})}function WU({members:e}){return(0,L.jsx)(`div`,{className:`settings-member-list`,children:e.map(e=>(0,I.createElement)(UU,{...e,key:e.key}))})}function GU({settings:e,onCopyJoinUrl:t}){return{label:`Invite link`,value:e.access.inviteLink===void 0?`Not available`:(0,L.jsx)(HU,{value:e.access.inviteLink,onCopy:t}),...e.access.inviteLink===void 0?{}:{plain:!0}}}function KU({settings:e,projectNameSaving:t,projectDescriptionSaving:n,providerModelOptions:r,providerModelEditable:i,providerModelDiscovering:a,providerModelSaving:o,onCopyJoinUrl:s,onUpdateProjectDisplayName:c,onUpdateProjectDescription:l,onDiscoverProviderModels:u,onUpdateProviderDefaultModel:d}){return[{id:`settings-project`,title:`Project`,rows:[{label:`Project name`,plain:!0,value:(0,L.jsx)(rL,{value:e.project.displayName,placeholder:`Untitled project`,ariaLabel:`Project name`,maxLength:LU,saving:t,...c===void 0?{}:{onUpdate:c}})},{label:`Description`,plain:!0,value:(0,L.jsx)(rL,{value:e.project.description,placeholder:`Add a project description`,ariaLabel:`Project description`,maxLength:RU,allowEmpty:!0,saving:n,...l===void 0?{}:{onUpdate:l}})},{label:`Members`,plain:!0,value:(0,L.jsx)(WU,{members:e.project.members})}]},{id:`settings-access`,title:`Access`,rows:[GU({settings:e,onCopyJoinUrl:s}),...e.access.inviteExpires===void 0?[]:[{label:`Invite expires`,value:e.access.inviteExpires}],{label:`Signed in as`,plain:!0,value:(0,L.jsx)(UU,{...e.access.signedInAs},`signed-in-account`)},{label:`Role`,value:e.access.role},{label:`Joined`,value:e.access.joined}]},{id:`settings-provider`,title:`AI provider`,rows:[{label:`Status`,value:e.provider.status},...e.provider.model===void 0?[]:[{label:`Model`,plain:!0,value:(0,L.jsx)(VL,{value:e.provider.model,options:r,maxLength:256,canEdit:i,discovering:a,saving:o,...u===void 0?{}:{onDiscover:u},...d===void 0?{}:{onUpdate:d}})}],...e.provider.lastValidated===void 0?[]:[{label:`Last validated`,value:e.provider.lastValidated}],...e.provider.issue===void 0?[]:[{label:`Issue`,value:e.provider.issue}]]},{id:`settings-tutti`,title:`Tutti`,rows:[{label:`Version`,value:e.tutti.version}]}]}function qU({settings:e,statusShortcuts:t,unread:n,artifactSignal:r,loading:i=!1,unavailable:a=!1,projectNameSaving:o=!1,projectDescriptionSaving:s=!1,providerModelOptions:c=[],providerModelEditable:l=!1,providerModelDiscovering:u=!1,providerModelSaving:d=!1,onOpenProjectCenter:f,onOpenChat:p,onOpenWorklist:m,onOpenReferences:h,onOpenArtifacts:g,onOpenSkills:_,onOpenTimeline:v,onActivateStatusShortcut:y,onCopyJoinUrl:b,onUpdateProjectDisplayName:x,onUpdateProjectDescription:S,onDiscoverProviderModels:C,onUpdateProviderDefaultModel:w}){return(0,L.jsx)(eU,{activePage:`settings`,statusShortcuts:t,mobileContext:{title:`Settings`},...n===void 0?{}:{unread:n},...r===void 0?{}:{artifactSignal:r},onOpenProjectCenter:f,onOpenChat:p,onOpenWorklist:m,onOpenReferences:h,onOpenArtifacts:g,onOpenSkills:_,onOpenTimeline:v,onActivateStatusShortcut:y,children:(0,L.jsx)(`section`,{className:`workspace-grid settings-workspace-grid`,"aria-label":`Settings`,children:(0,L.jsx)(`div`,{className:`settings-page-grid`,children:i?(0,L.jsx)(`section`,{className:`settings-sheet`,"aria-label":`Loading settings`,children:(0,L.jsx)(nU,{children:`Loading settings`})}):a?(0,L.jsx)(`section`,{className:`settings-sheet`,"aria-label":`Settings unavailable`,children:(0,L.jsx)(nU,{children:`Workspace unavailable`})}):e===void 0?(0,L.jsx)(`section`,{className:`settings-sheet`,"aria-label":`Settings unavailable`,children:(0,L.jsx)(nU,{children:`Settings unavailable`})}):(0,L.jsx)(BL,{statuses:[e.connectionStatus],sections:KU({settings:e,projectNameSaving:o,projectDescriptionSaving:s,providerModelOptions:c,providerModelEditable:l,providerModelDiscovering:u,providerModelSaving:d,onCopyJoinUrl:b,onUpdateProjectDisplayName:x,onUpdateProjectDescription:S,onDiscoverProviderModels:C,onUpdateProviderDefaultModel:w})})})})})}var JU=[{title:`Awesome GitHub Copilot Skills`,href:`https://awesome-copilot.github.com/skills/`},{title:`Anthropic official skills`,href:`https://github.com/anthropics/skills`},{title:`Claude Skills Marketplace`,href:`https://claudeskills.info/skills/`}];function YU({statusShortcuts:e,unread:t,artifactSignal:n,skills:r,detail:i,uploadPending:a=!1,deletePending:o=!1,loading:s=!1,unavailable:c=!1,onOpenProjectCenter:l,onOpenChat:u,onOpenWorklist:d,onOpenReferences:f,onOpenArtifacts:p,onOpenTimeline:m,onOpenSettings:h,onActivateStatusShortcut:g,onSelectSkill:_,onUploadSkill:v,onDeleteSkill:y}){let b=s||c;return(0,L.jsx)(eU,{activePage:`skills`,statusShortcuts:e,mobileContext:{title:`Skills`,action:(0,L.jsx)(aL,{variant:`bare`,className:`sidebar-button reference-upload-button`,label:`Upload skill`,pendingLabel:`Uploading skill`,pending:a,accept:`.zip,application/zip,application/x-zip-compressed`,iconOnly:!0,onFileUpload:v})},...t===void 0?{}:{unread:t},...n===void 0?{}:{artifactSignal:n},onOpenProjectCenter:l,onOpenChat:u,onOpenWorklist:d,onOpenReferences:f,onOpenArtifacts:p,onOpenTimeline:m,onOpenSettings:h,onActivateStatusShortcut:g,children:(0,L.jsx)(`section`,{className:`workspace-grid references-workspace-grid`,"aria-label":`Skills`,children:(0,L.jsx)(nR,{skills:b?[]:r,communityLinks:b?[]:JU,...s?{detail:{title:`Loading`,unavailableReason:`Loading`}}:c?{detail:{title:`Skills unavailable`,unavailableReason:`Workspace unavailable`}}:i===void 0?{}:{detail:i},uploadPending:a,deletePending:o,empty:s?(0,L.jsx)(nU,{children:`Loading skills`}):c?(0,L.jsx)(nU,{children:`Workspace unavailable`}):(0,L.jsx)(nU,{children:`No skills`}),onSelectSkill:_,onUploadSkill:v,onDeleteSkill:y})})})}function XU({timeline:e,statusShortcuts:t,unread:n,artifactSignal:r,loading:i=!1,unavailable:a=!1,onOpenProjectCenter:o,onOpenChat:s,onOpenWorklist:c,onOpenReferences:l,onOpenArtifacts:u,onOpenSkills:d,onOpenSettings:f,onActivateStatusShortcut:p}){return(0,L.jsx)(eU,{activePage:`timeline`,statusShortcuts:t,mobileContext:{title:`Timeline`},...n===void 0?{}:{unread:n},...r===void 0?{}:{artifactSignal:r},onOpenProjectCenter:o,onOpenChat:s,onOpenWorklist:c,onOpenReferences:l,onOpenArtifacts:u,onOpenSkills:d,onOpenSettings:f,onActivateStatusShortcut:p,children:(0,L.jsx)(`section`,{className:`workspace-grid timeline-workspace-grid`,"aria-label":`Timeline workspace`,children:i?(0,L.jsx)(`section`,{className:`panel timeline-panel`,"aria-label":`Loading timeline`,children:(0,L.jsx)(nU,{children:`Loading timeline`})}):a?(0,L.jsx)(`section`,{className:`panel timeline-panel`,"aria-label":`Timeline unavailable`,children:(0,L.jsx)(nU,{children:`Workspace unavailable`})}):e===void 0?(0,L.jsx)(`section`,{className:`panel timeline-panel`,"aria-label":`Timeline unavailable`,children:(0,L.jsx)(nU,{children:`Timeline unavailable`})}):(0,L.jsx)(vR,{tokenOverview:e.tokenOverview,items:e.items,scoreUnits:e.scoreUnits,empty:(0,L.jsx)(nU,{children:`No timeline events yet`})})})})}function ZU({statusShortcuts:e,unread:t,artifactSignal:n,modules:r,taskCount:i,detail:a,missingTaskId:o,runNote:s,loading:c=!1,unavailable:l=!1,onOpenProjectCenter:u,onOpenChat:d,onOpenReferences:f,onOpenArtifacts:p,onOpenSkills:m,onOpenTimeline:h,onOpenSettings:g,onActivateStatusShortcut:_,onSelectTask:v}){return(0,L.jsx)(eU,{activePage:`worklist`,statusShortcuts:e,mobileContext:{title:`Worklist`,meta:i===1?`1 task`:`${i} tasks`},...t===void 0?{}:{unread:t},...n===void 0?{}:{artifactSignal:n},onOpenProjectCenter:u,onOpenChat:d,onOpenReferences:f,onOpenArtifacts:p,onOpenSkills:m,onOpenTimeline:h,onOpenSettings:g,onActivateStatusShortcut:_,children:(0,L.jsx)(`section`,{className:`workspace-grid worklist-workspace-grid`,"aria-label":`Worklist workspace`,children:c?(0,L.jsx)(`section`,{className:`panel tasks worklist-page-panel`,"aria-label":`Loading Worklist`,children:(0,L.jsx)(nU,{children:`Loading Worklist`})}):l?(0,L.jsx)(`section`,{className:`panel tasks worklist-page-panel`,"aria-label":`Worklist unavailable`,children:(0,L.jsx)(nU,{children:`Workspace unavailable`})}):(0,L.jsx)(zL,{modules:r,taskCount:i,...a===void 0?{}:{detail:a},...o===void 0?{}:{missingTaskId:o},...s==null?{}:{runNote:s},onSelectTask:v,empty:(0,L.jsx)(nU,{children:`No compiled tasks`})})})})}function QU(e){return(0,L.jsx)(_H,{label:`Tutti trial access`,onBrandClick:e.onBrandClick,children:(0,L.jsxs)(uk,{title:e.authorized?`Trial access authorized`:`Authorize Tutti trial`,description:e.authorized?`Local Console will verify this authorization, check model access and start the project. You can return to Local Console.`:`Confirm only if you started this request in Local Console on your computer.`,onSubmit:t=>{t.preventDefault(),e.onAuthorize()},action:e.authorized?void 0:(0,L.jsx)(pw,{type:`submit`,disabled:e.pending||e.expired,children:e.pending?`Authorizing`:`Authorize trial access`}),feedback:e.error===null?void 0:(0,L.jsx)(Ew,{children:e.error}),children:[(0,L.jsx)(kk,{title:e.projectName,description:`${e.surface} · Tutti`,children:(0,L.jsxs)(`p`,{children:[`Account: `,e.accountEmail]})}),e.authorized?null:(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`p`,{children:`This computer may run AI tasks for this project, including team requests and background work, using your test allowance. There is no payment or recharge authorization.`}),(0,L.jsx)(`p`,{children:`Access continues until revoked. Signing out does not stop authorized project work.`}),e.expired?(0,L.jsx)(Ew,{children:`This request expired. Start again in Local Console.`}):null,(0,L.jsx)(J,{type:`button`,disabled:e.pending,onClick:e.onSignInAgain,children:`Sign in again / switch account`})]})]})})}var $U=U.Object({kind:U.Literal(`clarification`),round_id:Xp,version:U.Integer({minimum:0}),answer_revision:U.Integer({minimum:0}),closed_reason:U.Optional(U.Union([U.Literal(`resolved`),U.Literal(`contract_changed`),U.Literal(`cancelled`)])),state:U.Union([U.Literal(`writable`),U.Literal(`submitted`),U.Literal(`continued`),U.Literal(`closed`)]),title:U.String({minLength:1,maxLength:512}),request:U.String({minLength:1,maxLength:4e3}),opened_at:W},{additionalProperties:!1}),eW=U.String({minLength:1,maxLength:64,pattern:`^[a-z][a-z0-9_-]*$`}),tW=U.String({minLength:1,maxLength:256,pattern:`^[^\\u0000-\\u001f\\u007f]+$`}),nW=U.String({minLength:1,maxLength:512,pattern:`^[^\\u0000-\\u001f\\u007f]+$`}),rW=U.Object({platform:eW,installation_ref:tW},{additionalProperties:!1}),iW=U.Object({installation:rW,conversation_ref:nW,thread_ref:U.Optional(nW),parent_message_ref:U.Optional(nW),root_message_ref:U.Optional(nW)},{additionalProperties:!1}),aW=U.Object({conversation:iW,message_ref:nW},{additionalProperties:!1}),oW=U.Object({installation:rW,subject_kind:U.Union([U.Literal(`human`),U.Literal(`bot`),U.Literal(`app`),U.Literal(`system`)]),subject_ref:nW},{additionalProperties:!1}),sW=U.Object({kind:U.Literal(`human`),account_ref:em,display_name:U.String({minLength:1,maxLength:256}),membership:U.Object({relay_project_ref:$p,label:U.Union([U.Literal(`owner`),U.Literal(`member`)])},{additionalProperties:!1}),channel:U.Union([U.Literal(`platform_chat`),U.Literal(`platform_h5`),U.Literal(`platform_card_callback`),U.Literal(`platform_document_sync`)]),external_subject:oW,binding_ref:tW,verified_at:W},{additionalProperties:!1}),cW=U.Object({kind:U.Literal(`system`),purpose:U.Union([U.Literal(`live_ingestion`),U.Literal(`history_backfill`),U.Literal(`revision_observation`),U.Literal(`attachment_handoff`),U.Literal(`projection_retry`),U.Literal(`reconciliation`)]),installation:rW,binding_ref:U.Optional(tW),verified_at:W},{additionalProperties:!1}),lW=U.Object({...sW.properties,kind:U.Literal(`bot`),purpose:U.Literal(`development_operator`),channel:U.Literal(`platform_chat`)},{additionalProperties:!1});U.Union([sW,cW]);var uW=U.Object({account_ref:em,display_name:U.String({minLength:1,maxLength:256}),external_subject:oW},{additionalProperties:!1}),dW=U.Object({external_subject:oW},{additionalProperties:!1}),fW=U.Object({external_subject:oW,account_ref:U.Optional(em),display_text:U.Optional(U.String({minLength:1,maxLength:256})),target_kind:U.Union([U.Literal(`person`),U.Literal(`tutti`)])},{additionalProperties:!1}),pW=U.Union([U.Object({kind:U.Literal(`text`),text:U.String({minLength:1,maxLength:1e5}),mentions:U.Array(fW,{maxItems:128})},{additionalProperties:!1}),U.Object({kind:U.Literal(`post`),text:U.String({minLength:1,maxLength:1e5}),mentions:U.Array(fW,{maxItems:128})},{additionalProperties:!1})]),mW=U.Object({attachment_ref:nW,attachment_kind:U.Union([U.Literal(`file`),U.Literal(`image`),U.Literal(`audio`),U.Literal(`video`),U.Literal(`other`)]),file_name:U.Optional(U.String({minLength:1,maxLength:512})),media_type:U.Optional(U.String({minLength:1,maxLength:255})),declared_size_bytes:U.Optional(U.Integer({minimum:0,maximum:2**53-1}))},{additionalProperties:!1}),hW=U.Object({attachment:mW,size_bytes:U.Integer({minimum:1,maximum:2**53-1}),sha256:U.String({pattern:`^sha256:[0-9a-f]{64}$`}),media_type:U.String({minLength:1,maxLength:255}),verified_at:W},{additionalProperties:!1}),gW=U.Object({locator:aW,author:dW,attachment:mW,external_created_at:W,observed_at:W,adapter_version:U.String({minLength:1,maxLength:128})},{additionalProperties:!1}),_W=U.Object({external_references:U.Optional(U.Array(sg,{minItems:1,maxItems:16})),locator:aW,revision_ref:nW,author:uW,content:pW,attachments:U.Array(mW,{maxItems:64}),external_created_at:W,observed_at:W,adapter_version:U.String({minLength:1,maxLength:128})},{additionalProperties:!1}),vW=U.Object({external_references:U.Optional(U.Array(sg,{minItems:1,maxItems:16})),locator:aW,revision_ref:nW,author:dW,content:pW,attachments:U.Array(mW,{maxItems:64}),external_created_at:W,observed_at:W,adapter_version:U.String({minLength:1,maxLength:128})},{additionalProperties:!1}),yW=U.Union([U.Object({kind:U.Literal(`edited`),locator:aW,revision_ref:nW,content:pW,attachments:U.Array(mW,{maxItems:64}),external_updated_at:W,observed_at:W,adapter_version:U.String({minLength:1,maxLength:128})},{additionalProperties:!1}),U.Object({kind:U.Literal(`deleted`),locator:aW,revision_ref:nW,external_updated_at:W,observed_at:W,adapter_version:U.String({minLength:1,maxLength:128})},{additionalProperties:!1})]),bW=U.Object({receipt_key:tW,installation:rW,external_event_ref:nW,event_kind:U.Union([U.Literal(`conversation_source`),U.Literal(`conversation_revision`),U.Literal(`attachment`),U.Literal(`card_action`)]),received_at:W,attempt:U.Integer({minimum:1,maximum:1e6})},{additionalProperties:!1}),xW=U.Object({kind:U.Literal(`conversation_source`),receipt:bW,actor:cW,source:_W},{additionalProperties:!1}),SW=U.Object({kind:U.Literal(`conversation_revision`),receipt:bW,actor:cW,observation:yW},{additionalProperties:!1});U.Union([xW,SW]);var CW=U.Union([U.Object({kind:U.Literal(`created`),message_id:Vp},{additionalProperties:!1}),U.Object({kind:U.Literal(`duplicate`),message_id:Vp},{additionalProperties:!1}),U.Object({kind:U.Literal(`revision_recorded`),message_id:Vp,revision_ref:nW},{additionalProperties:!1}),U.Object({kind:U.Literal(`stale_revision`),message_id:Vp,revision_ref:nW},{additionalProperties:!1}),U.Object({kind:U.Literal(`unsupported`),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1}),U.Object({kind:U.Literal(`unauthorized`),reason_code:U.Optional(U.String({minLength:1,maxLength:128}))},{additionalProperties:!1}),U.Object({kind:U.Literal(`binding_missing`)},{additionalProperties:!1}),U.Object({kind:U.Literal(`host_unavailable`),retryable:U.Literal(!0),reason_code:U.Optional(U.String({minLength:1,maxLength:128})),retry_after:U.Optional(W)},{additionalProperties:!1}),U.Object({kind:U.Literal(`host_incompatible`),retryable:U.Literal(!0),reason_code:U.Union([U.Literal(`integration_source_ingestion_unsupported`),U.Literal(`integration_attachment_ingestion_unsupported`),U.Literal(`integration_managed_reference_ingestion_unsupported`),U.Literal(`integration_clarification_unsupported`)])},{additionalProperties:!1}),U.Object({kind:U.Literal(`invalid`),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1})]);U.Object({protocol_version:U.Union([U.Literal(2),U.Literal(3)]),command_id:Qp,relay_project_ref:$p,binding_ref:tW,receipt:bW,source:vW,clarification_round_ref:U.Optional(Xp)},{additionalProperties:!1}),U.Object({protocol_version:U.Literal(1),command_id:Qp,relay_project_ref:$p,binding_ref:tW,receipt:bW,source:gW,content:hW},{additionalProperties:!1});var wW=U.Union([U.Object({kind:U.Literal(`staged`),upload:Hh,put:Uh},{additionalProperties:!1}),U.Object({kind:U.Literal(`unauthorized`),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1}),U.Object({kind:U.Literal(`invalid`),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1}),U.Object({kind:U.Literal(`unavailable`),retryable:U.Literal(!0),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1})]);U.Object({protocol_version:U.Literal(1),disposition:wW},{additionalProperties:!1});var TW=U.String({minLength:20,maxLength:20,pattern:`^[A-Z2-7]+$`});U.Union([U.Object({state:U.Literal(`account_handoff_required`)},{additionalProperties:!1}),U.Object({state:U.Literal(`pairing_required`),pairing_code:TW,command:U.String({minLength:1,maxLength:128}),expires_at:W,visibility:U.Literal(`visible_once`)},{additionalProperties:!1}),U.Object({state:U.Literal(`pairing_required`),expires_at:U.Optional(W),visibility:U.Literal(`not_recoverable`)},{additionalProperties:!1}),U.Object({state:U.Literal(`connected`)},{additionalProperties:!1})]),U.Object({protocol_version:U.Literal(1),pairing_code:TW,binding_ref:tW,installation:rW,conversation_ref:nW,external_subject:oW,observed_at:W},{additionalProperties:!1});var EW=U.Union([U.Object({kind:U.Literal(`bound`),relay_project_ref:$p,project_display_name:U.String({minLength:1,maxLength:256})},{additionalProperties:!1}),U.Object({kind:U.Literal(`duplicate`),relay_project_ref:$p,project_display_name:U.String({minLength:1,maxLength:256})},{additionalProperties:!1}),U.Object({kind:U.Literal(`invalid`),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1}),U.Object({kind:U.Literal(`unauthorized`),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1}),U.Object({kind:U.Literal(`conflict`),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1})]);U.Object({protocol_version:U.Literal(1),disposition:EW},{additionalProperties:!1});var DW=U.Object({source_ref:tW,adapter_key:U.Literal(`feishu_docx`),installation:rW,external_subject:oW,reference_path:U.String({minLength:1,maxLength:1024})},{additionalProperties:!1}),OW=U.Object({size_bytes:U.Integer({minimum:0,maximum:2**53-1}),sha256:U.String({pattern:`^sha256:[0-9a-f]{64}$`}),media_type:U.Literal(`text/plain; charset=utf-8`)},{additionalProperties:!1});U.Object({protocol_version:U.Literal(1),command_id:Qp,operation_ref:tW,relay_project_ref:$p,binding_ref:tW,source:DW,remote_revision_ref:nW,expected_host_blob_oid:U.Optional(U.String({pattern:`^[0-9a-f]{40,64}$`})),content:OW},{additionalProperties:!1});var kW=wW;U.Object({protocol_version:U.Literal(1),disposition:kW},{additionalProperties:!1}),U.Object({protocol_version:U.Literal(1),command_id:Qp,operation_ref:tW,relay_project_ref:$p,binding_ref:tW,source:DW,remote_revision_ref:nW,expected_host_blob_oid:U.Optional(U.String({pattern:`^[0-9a-f]{40,64}$`})),content:OW,staged_upload:U.Object(Ih,{additionalProperties:!1})},{additionalProperties:!1}),U.Object({protocol_version:U.Literal(1),command_id:Qp,operation_ref:tW,relay_project_ref:$p,binding_ref:tW,source:DW,remote_revision_ref:nW,expected_host_blob_oid:U.Optional(U.String({pattern:`^[0-9a-f]{40,64}$`})),content:OW,staged_upload:U.Object(Ih,{additionalProperties:!1}),actor:sW},{additionalProperties:!1});var AW=U.Union([U.Object({kind:U.Union([U.Literal(`created`),U.Literal(`updated`),U.Literal(`unchanged`)]),current_blob_oid:U.String({pattern:`^[0-9a-f]{40,64}$`})},{additionalProperties:!1}),U.Object({kind:U.Literal(`duplicate`),outcome:U.Union([U.Literal(`created`),U.Literal(`updated`),U.Literal(`unchanged`)]),current_blob_oid:U.String({pattern:`^[0-9a-f]{40,64}$`})},{additionalProperties:!1}),U.Object({kind:U.Literal(`host_unavailable`),retryable:U.Literal(!0),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1}),U.Object({kind:U.Literal(`host_incompatible`),retryable:U.Literal(!0),reason_code:U.Literal(`integration_managed_reference_ingestion_unsupported`)},{additionalProperties:!1}),U.Object({kind:U.Union([U.Literal(`invalid`),U.Literal(`unauthorized`),U.Literal(`conflict`)]),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1})]);U.Object({protocol_version:U.Literal(1),disposition:AW},{additionalProperties:!1}),U.Object({protocol_version:U.Literal(1),command_id:Qp,relay_project_ref:$p,binding_ref:tW,receipt:bW,actor:U.Union([sW,lW]),source:_W,clarification_round_ref:U.Optional(Xp)},{additionalProperties:!1}),U.Object({protocol_version:U.Literal(1),command_id:Qp,relay_project_ref:$p,binding_ref:tW,receipt:bW,source:gW,staged_upload:U.Object(Ih,{additionalProperties:!1})},{additionalProperties:!1}),U.Object({protocol_version:U.Literal(1),command_id:Qp,relay_project_ref:$p,binding_ref:tW,receipt:bW,actor:sW,source:gW,staged_upload:U.Object(Ih,{additionalProperties:!1})},{additionalProperties:!1}),U.Union([U.Object({protocol_version:U.Literal(1),relay_project_ref:$p,installation:rW,binding_ref:tW,receipt_key:tW,verified_at:W},{additionalProperties:!1}),U.Object({protocol_version:U.Literal(1),relay_project_ref:$p,installation:rW,binding_ref:tW,operation_ref:tW,verified_at:W},{additionalProperties:!1})]),U.Object({protocol_version:U.Literal(1),disposition:CW},{additionalProperties:!1});var jW=U.Object({kind:U.Literal(`text`),text:U.String({minLength:1,maxLength:4e3}),clarification_round_ref:U.Optional(Xp)},{additionalProperties:!1}),MW=U.String({minLength:1,maxLength:128,pattern:`^cardrev_[0-9a-f]{32}$`}),NW=U.Object({decision_id:U.String({minLength:1,maxLength:256}),kind:U.Union([U.Literal(`allow_once`),U.Literal(`allow_session`),U.Literal(`deny`),U.Literal(`cancel`)]),label:U.String({minLength:1,maxLength:256}),tone:U.Union([U.Literal(`primary`),U.Literal(`neutral`),U.Literal(`danger`)])},{additionalProperties:!1}),PW=U.Object({kind:U.Literal(`approval_request`),approval_id:U.String({minLength:1,maxLength:256}),card_revision:MW,title:U.String({minLength:1,maxLength:512}),summary:U.String({minLength:1,maxLength:4e3}),reason:U.Optional(U.String({minLength:1,maxLength:2e3})),requested_at:W,expires_at:U.Optional(W),decisions:U.Array(NW,{minItems:1,maxItems:8})},{additionalProperties:!1}),FW=U.Union([jW,PW,$U]),IW=U.Object({kind:U.Union([U.Literal(`chat_response`),U.Literal(`needs_input`),U.Literal(`task_completed`),U.Literal(`task_failed`)]),event_key:nW,subject:U.Object({kind:U.Union([U.Literal(`message`),U.Literal(`clarification_round`),U.Literal(`approval_request`),U.Literal(`task_result`)]),ref:nW},{additionalProperties:!1}),target:U.Object({kind:U.Union([U.Literal(`project`),U.Literal(`work`)])},{additionalProperties:!1})},{additionalProperties:!1}),LW={protocol_version:U.Literal(1),intent_ref:Qp,relay_project_ref:$p,installation:rW,binding_ref:tW,canonical_message_ref:U.Optional(Vp),trigger_message_ref:U.Optional(Vp),content:FW,event:U.Optional(IW),created_at:W,attempt:U.Integer({minimum:1,maximum:1e6})};U.Object(LW,{additionalProperties:!1});var RW=U.Object({...LW,conversation_ref:nW},{additionalProperties:!1}),zW=U.Object({conversation_ref:nW,message_ref:nW,action_ref:tW,card_revision:MW,external_subject:oW},{additionalProperties:!1});U.Object({protocol_version:U.Literal(1),command_id:Qp,relay_project_ref:$p,binding_ref:tW,receipt:bW,callback:zW,approval_id:U.String({minLength:1,maxLength:256}),decision_id:U.String({minLength:1,maxLength:256})},{additionalProperties:!1}),U.Object({protocol_version:U.Literal(1),command_id:Qp,relay_project_ref:$p,binding_ref:tW,receipt:bW,actor:sW,callback:U.Object({message_ref:nW,action_ref:tW,card_revision:MW},{additionalProperties:!1}),approval_id:U.String({minLength:1,maxLength:256}),decision_id:U.String({minLength:1,maxLength:256})},{additionalProperties:!1});var BW=U.Union([U.Object({kind:U.Literal(`accepted`)},{additionalProperties:!1}),U.Object({kind:U.Literal(`stale_approval`)},{additionalProperties:!1}),U.Object({kind:U.Literal(`decision_unavailable`)},{additionalProperties:!1}),U.Object({kind:U.Literal(`interrupted`),retry_with_new_command_id:U.Boolean()},{additionalProperties:!1}),U.Object({kind:U.Literal(`unauthorized`),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1}),U.Object({kind:U.Literal(`invalid`),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1}),U.Object({kind:U.Literal(`host_unavailable`),retryable:U.Literal(!0),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1}),U.Object({kind:U.Literal(`host_incompatible`),retryable:U.Literal(!0),reason_code:U.Literal(`integration_approval_decision_unsupported`)},{additionalProperties:!1})]);U.Object({protocol_version:U.Literal(1),disposition:BW},{additionalProperties:!1}),U.Object({protocol_version:U.Literal(1),installation:rW},{additionalProperties:!1}),U.Union([U.Object({protocol_version:U.Literal(1),disposition:U.Object({kind:U.Literal(`idle`),retry_after_ms:U.Integer({minimum:100,maximum:6e4})},{additionalProperties:!1})},{additionalProperties:!1}),U.Object({protocol_version:U.Literal(1),disposition:U.Object({kind:U.Literal(`claimed`),claim_ref:tW,claim_expires_at:W,intent:RW},{additionalProperties:!1})},{additionalProperties:!1})]);var VW=U.Union([U.Object({kind:U.Literal(`accepted`),delivery_ref:tW},{additionalProperties:!1}),U.Object({kind:U.Literal(`duplicate`),delivery_ref:tW},{additionalProperties:!1}),U.Object({kind:U.Literal(`rejected`),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1})]);U.Object({protocol_version:U.Literal(1),installation:rW,claim_ref:tW,intent_ref:Qp,disposition:VW},{additionalProperties:!1}),U.Object({protocol_version:U.Literal(1),disposition:U.Union([U.Object({kind:U.Literal(`acknowledged`)},{additionalProperties:!1}),U.Object({kind:U.Literal(`stale`),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1})])},{additionalProperties:!1});var HW=U.Union([U.Object({kind:U.Literal(`accepted`),delivery_ref:tW},{additionalProperties:!1}),U.Object({kind:U.Literal(`duplicate`),delivery_ref:tW},{additionalProperties:!1}),U.Object({kind:U.Literal(`unavailable`),retryable:U.Literal(!0),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1}),U.Object({kind:U.Union([U.Literal(`invalid`),U.Literal(`unauthorized`),U.Literal(`unsupported`)]),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1})]);U.Object({protocol_version:U.Literal(1),disposition:HW},{additionalProperties:!1});var UW=U.String({minLength:1,maxLength:4096,pattern:`^[^\\u0000-\\u001f\\u007f]+$`}),WW=U.String({minLength:36,maxLength:36,pattern:`^feishu_user_[a-f0-9]{24}$`});U.Object({version:U.Literal(1),installation_ref:U.String({minLength:1,maxLength:512}),external_subject_ref:U.String({minLength:9,maxLength:508,pattern:`^open_id:[A-Za-z0-9_-]{1,500}$`}),access_token:UW,refresh_token:UW,access_expires_at:W,refresh_expires_at:U.Optional(W),scopes:U.Array(U.String({minLength:1,maxLength:256}),{minItems:1,maxItems:32,uniqueItems:!0}),authorized_at:W},{additionalProperties:!1}),U.Object({credential_ref:WW,updated_at:W},{additionalProperties:!1});var GW={authority:U.Object({project_ref:$p,installation_ref:U.String({minLength:1,maxLength:512}),binding_ref:U.String({minLength:1,maxLength:512}),external_subject_ref:U.String({pattern:`^open_id:[A-Za-z0-9_-]{1,500}$`}),role:U.Union([U.Literal(`owner`),U.Literal(`member`)])},{additionalProperties:!1}),diagnostic_id:U.Optional(U.String({pattern:`^fdiag_[a-f0-9]{32}$`}))};U.Union([U.Object({...GW,action:U.Literal(`list`)},{additionalProperties:!1}),U.Object({...GW,action:U.Literal(`connect`),document_id:U.String({pattern:`^[A-Za-z0-9]{27}$`})},{additionalProperties:!1}),U.Object({...GW,action:U.Literal(`connect_wiki`),node_token:U.String({pattern:`^[A-Za-z0-9]{1,999}$`})},{additionalProperties:!1}),U.Object({...GW,action:U.Literal(`refresh`),source_ref:Qh,...$h.properties},{additionalProperties:!1})]);var KW={authority:U.Object({project_ref:$p,installation_ref:U.String({minLength:1,maxLength:512}),binding_ref:U.String({minLength:1,maxLength:512}),external_subject_ref:U.String({pattern:`^open_id:[A-Za-z0-9_-]{1,500}$`}),role:U.Union([U.Literal(`owner`),U.Literal(`member`)])},{additionalProperties:!1}),request_ref:U.String({pattern:`^eref_[a-f0-9]{32}$`})},qW={source_ref:tg};U.Union([U.Object({...KW,action:U.Literal(`list`),include_pending:U.Optional(U.Boolean())},{additionalProperties:!1}),U.Object({...KW,action:U.Literal(`register`),document_url:U.String({minLength:1,maxLength:2048})},{additionalProperties:!1}),U.Object({...KW,action:U.Literal(`confirm`),submission_ref:ag},{additionalProperties:!1}),U.Object({...KW,...qW,action:U.Literal(`prepare`)},{additionalProperties:!1}),U.Object({...KW,action:U.Literal(`resolve`),document_url:U.String({minLength:1,maxLength:2048})},{additionalProperties:!1}),U.Object({...KW,action:U.Literal(`authorization_status`),authorization_ref:ng},{additionalProperties:!1}),U.Object({...KW,...qW,action:U.Literal(`transfer`),transfer_ref:U.String({pattern:`^transfer_[a-f0-9]{32}$`}),put_url:U.String({maxLength:8192,pattern:`^https://`}),headers:U.Record(U.String({maxLength:128}),U.String({maxLength:2048}))},{additionalProperties:!1})]);var JW=U.Object({source:sg,revision:U.String({minLength:1,maxLength:256}),sha256:U.String({pattern:`^[a-f0-9]{64}$`}),size_bytes:U.Integer({minimum:0,maximum:10485760}),media_type:U.String({minLength:1,maxLength:128}),transfer_ref:U.String({pattern:`^transfer_[a-f0-9]{32}$`})},{additionalProperties:!1});U.Object({...JW.properties,upload_id:U.Optional(im)},{additionalProperties:!1}),U.Object({supports_drive_files:U.Optional(U.Boolean()),invocation_ref:U.Optional(qp),project_identity:U.Object({source:U.Literal(`git_config`),project_id:Bp},{additionalProperties:!1}),host_auth:U.Object({kind:U.Literal(`host_registration_secret_v1`),secret:U.String({minLength:1,maxLength:512})},{additionalProperties:!1}),relay_project_ref:$p,host_connection_ref:om,request_ref:KW.request_ref,action:U.Union([U.Literal(`list`),U.Literal(`read`),U.Literal(`resolve`)]),source_ref:U.Optional(tg),document_url:U.Optional(U.String({minLength:1,maxLength:2048}))},{additionalProperties:!1});var YW={protocol_version:U.Literal(1),command_id:Qp,relay_project_ref:$p,binding_ref:tW,operation_ref:tW,conversation:iW,external_subject:oW,origin:U.Union([U.Object({kind:U.Literal(`development_operator`)},{additionalProperties:!1}),U.Object({kind:U.Literal(`card_callback`),message_ref:nW,action_ref:tW},{additionalProperties:!1})]),operation:U.Union([U.Object({kind:U.Literal(`query`),round_id:U.Optional(Xp)},{additionalProperties:!1}),U.Object({kind:U.Literal(`submit`),round_id:Xp,expected_answer_revision:U.Integer({minimum:0})},{additionalProperties:!1})])};U.Object(YW,{additionalProperties:!1}),U.Object({...YW,actor:U.Union([sW,lW])},{additionalProperties:!1}),U.Object({protocol_version:U.Literal(1),disposition:U.Union([U.Object({kind:U.Literal(`queried`),active:__,selected:U.Optional(y_)},{additionalProperties:!1}),U.Object({kind:U.Literal(`submitted`),response:E_},{additionalProperties:!1}),U.Object({kind:U.Union([U.Literal(`invalid`),U.Literal(`unauthorized`)]),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1}),U.Object({kind:U.Literal(`unavailable`),retryable:U.Boolean(),reason_code:U.String({minLength:1,maxLength:128})},{additionalProperties:!1})])},{additionalProperties:!1}),U.Union([U.Object({action:U.Literal(`resolve`),entry_ref:Gy,diagnostic_id:U.Optional(U.String({pattern:`^fdiag_[a-f0-9]{32}$`}))},{additionalProperties:!1}),U.Object({action:U.Literal(`connect`),entry_ref:Gy,external_subject_ref:U.String({pattern:`^open_id:[A-Za-z0-9_-]{1,128}$`}),input:U.String({minLength:1,maxLength:256}),diagnostic_id:U.Optional(U.String({pattern:`^fdiag_[a-f0-9]{32}$`}))},{additionalProperties:!1})]),U.Object({installation_ref:U.String({minLength:1,maxLength:256}),conversation_ref:U.String({pattern:`^oc_[A-Za-z0-9_-]{1,128}$`}),projection:Ky},{additionalProperties:!1}),U.Object({version:U.Literal(1),audience:U.Literal(`tutti-managed-models`),issuer:U.String({minLength:1,maxLength:200}),account_ref:em,relay_project_ref:$p,nonce:Qp,issued_at:U.Integer({minimum:0}),expires_at:U.Integer({minimum:0})},{additionalProperties:!1}),U.Object({relay_project_ref:$p},{additionalProperties:!1});var XW=e=>U.String({pattern:`^${e}${Mt}$`}),ZW=XW(Pt.managedCreation),QW=XW(Pt.hostInstallation),$W=XW(Pt.hostDelegation),eG=XW(Pt.projectModelGrant),tG=U.String({pattern:`^[A-Za-z0-9_-]{43}$`}),nG=U.String({pattern:`^sha256:[a-f0-9]{64}$`}),rG=U.String({pattern:`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$`});function iG(e){let t=Date.parse(e);return Number.isFinite(t)&&new Date(t).toISOString()===e}var aG=U.Object({request_ref:Qp,project_id:Bp,surface:U.Union([U.Literal(`standalone`),U.Literal(`feishu`)]),existing_relay_project_ref:U.Optional($p),installation_ref:QW,installation_secret_hash:nG,handoff_token_hash:nG,host_registration_secret_hash:nG,trial_consent:U.Literal(`trial-project-v1`),expires_before:U.Optional(rG)},{additionalProperties:!1});U.Object({console_token:tG,preparation:aG},{additionalProperties:!1}),U.Object({kind:U.Literal(`managed_project_authority_v2`),creation_ref:ZW,handoff_token:tG,installation_ref:QW,installation_secret:tG},{additionalProperties:!1}),U.Object({delegation_ref:$W,installation_ref:QW,installation_secret:tG,relay_project_ref:$p,project_id:Bp,host_registration_secret:U.String({minLength:32,maxLength:256})},{additionalProperties:!1});var oG=U.Object({delegation_ref:$W,grant_ref:eG,relay_project_ref:$p,installation_ref:QW,funding_kind:U.Literal(`trial`),expires_at:U.Null(),state:U.Literal(`active`),model_access:U.Union([U.Literal(`runtime_authority_required`),U.Literal(`not_enabled`)])},{additionalProperties:!1}),sG=U.Object({creation_ref:ZW,project_id:Bp,surface:U.Union([U.Literal(`standalone`),U.Literal(`feishu`)]),installation_ref:QW,expires_at:rG,state:U.Union([U.Literal(`prepared`),U.Literal(`activated`),U.Literal(`expired`),U.Literal(`revoked`)]),relay_project_ref:U.Optional($p)},{additionalProperties:!1});U.Object({request_ref:Qp,project_id:Bp,installation_ref:QW,installation_secret:tG,handoff_token:tG,host_registration_secret:U.String({minLength:32,maxLength:256})},{additionalProperties:!1}),U.Object({request_ref:Qp,account_ref:em,creation:sG,authority:U.Optional(oG)},{additionalProperties:!1}),U.Object({command_id:Qp,target:U.Union([U.Object({kind:U.Literal(`grant`),ref:eG},{additionalProperties:!1}),U.Object({kind:U.Literal(`delegation`),ref:$W},{additionalProperties:!1}),U.Object({kind:U.Literal(`installation`),ref:QW},{additionalProperties:!1}),U.Object({kind:U.Literal(`creation`),ref:ZW},{additionalProperties:!1})])},{additionalProperties:!1}),U.Object({version:U.Literal(2),audience:U.Literal(`tutti-creation-validation`),issuer:U.String({minLength:1,maxLength:200}),account_ref:em,creation_ref:ZW,project_id:Bp,installation_ref:QW,creation_expires_at:U.Integer({minimum:0}),nonce:Qp,issued_at:U.Integer({minimum:0}),expires_at:U.Integer({minimum:0})},{additionalProperties:!1}),U.Object({creation_ref:ZW,project_id:Bp,installation_ref:QW,route_ref:U.String({pattern:`^[a-z0-9][a-z0-9-]{1,60}$`}),state:U.Union([U.Literal(`started`),U.Literal(`succeeded`),U.Literal(`failed`),U.Literal(`unknown`)]),reason_code:U.Union([U.Literal(`validation_started`),U.Literal(`validation_succeeded`),U.Literal(`validation_route_unavailable`),U.Literal(`validation_http_rejected`),U.Literal(`validation_response_invalid`),U.Literal(`validation_transport_unknown`),U.Literal(`validation_interrupted`)]),http_status:U.Union([U.Null(),U.Integer({minimum:100,maximum:599})])},{additionalProperties:!1});var cG={account_ref:em,relay_project_ref:$p,delegation_ref:$W,grant_ref:eG,installation_ref:QW},lG={issuer:U.String({minLength:1,maxLength:200}),nonce:Qp,issued_at:U.Integer({minimum:0}),expires_at:U.Integer({minimum:0})};U.Object({version:U.Literal(3),audience:U.Literal(`tutti-managed-runtime`),...lG,...cG,funding_kind:U.Literal(`trial`)},{additionalProperties:!1}),U.Object({version:U.Literal(1),audience:U.Literal(`tutti-managed-revocation`),...lG,...cG},{additionalProperties:!1}),U.Object({authorization:U.String({pattern:`^tma3\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]{86}$`,maxLength:3500}),expires_at:U.Integer({minimum:0}),control_origin:U.String({minLength:1,maxLength:500}),delegation_ref:$W},{additionalProperties:!1});var uG=e=>U.String({pattern:`^${e}${Mt}$`}),dG=uG(Pt.managedSession),fG=uG(Pt.managedCredential),pG=U.String({pattern:`^[a-z0-9][a-z0-9-]{1,60}$`}),mG=U.Object({base_url:U.String({minLength:1,maxLength:500}),model:U.String({pattern:`^tutti-[a-z0-9-]{1,80}$`})},{additionalProperties:!1});U.Object({session_ref:dG,route_ref:pG,disposition:U.Union([U.Literal(`created`),U.Literal(`existing`)]),provider:mG},{additionalProperties:!1});var hG=U.Object({credential_ref:fG,session_ref:dG,device_ref:uG(Pt.managedDevice),state:U.Union([U.Literal(`creating`),U.Literal(`active`),U.Literal(`expired`),U.Literal(`revoking`),U.Literal(`revoked`)]),expires_at:U.Integer({minimum:0}),quota_cap:U.Integer({minimum:1})},{additionalProperties:!1}),gG=U.Object({base_url:U.String({minLength:1,maxLength:500}),model:U.String({pattern:`^tutti-[a-z0-9-]{1,80}$`}),api_key:U.String({minLength:16,maxLength:1024,pattern:`^[^\\s]+$`})},{additionalProperties:!1});U.Union([U.Object({disposition:U.Literal(`issued`),credential:hG,route_ref:pG,provider:gG},{additionalProperties:!1}),U.Object({disposition:U.Literal(`already_issued`),credential:hG},{additionalProperties:!1})]),U.Object({disposition:U.Literal(`revoked`),credential:hG},{additionalProperties:!1}),U.Object({version:U.Literal(1),audience:U.Literal(`tutti-managed-account-read`),issuer:U.String({minLength:1,maxLength:200}),account_ref:em,nonce:Qp,issued_at:U.Integer({minimum:0}),expires_at:U.Integer({minimum:0})},{additionalProperties:!1}),U.Union([U.Literal(`in_progress`),U.Literal(`completed`),U.Literal(`failed`)]),U.Object({kind:U.Literal(`interrupted`),retry_with_new_command_id:U.Boolean()},{additionalProperties:!1});var _G=U.Union(cg.map(e=>U.Literal(e))),vG=U.Union([U.Object({kind:U.Literal(`initials`),initials:U.String({minLength:1}),color:_G},{additionalProperties:!1}),U.Object({kind:U.Literal(`image`),image_url:U.String({minLength:1}),initials:U.String({minLength:1}),color:_G},{additionalProperties:!1})]);U.Object({account_ref:em,display_name:U.String({minLength:1}),avatar:vG,membership:U.Object({label:U.Union([U.Literal(`owner`),U.Literal(`member`)]),relay_project_ref:$p,joined_at:W},{additionalProperties:!1}),client_session_id:nm,client_session_created_at:W},{additionalProperties:!1}),U.Object({platform_session_ref:rm,account_ref:em,display_name:U.String({minLength:1}),avatar:vG,membership:U.Object({label:U.Union([U.Literal(`owner`),U.Literal(`member`)]),relay_project_ref:$p,joined_at:W},{additionalProperties:!1}),binding_ref:U.String({minLength:1,maxLength:512}),installation_ref:U.String({minLength:1,maxLength:512}),external_subject_ref:U.String({minLength:1,maxLength:512}),platform_session_created_at:W,platform_session_expires_at:W},{additionalProperties:!1});var yG=U.Object({version:U.Literal(2),display_name:U.String({minLength:1,maxLength:80}),preparation:aG},{additionalProperties:!1});function bG(e){if(!e.startsWith(`#managed_request=`))return null;let t=e.slice(17);return Uy(Qp,t)?t:null}function xG(e){if(e.length>8192||!e.startsWith(`#trial=`))return null;try{let t=JSON.parse(decodeURIComponent(e.slice(7)));return!Uy(yG,t)||!t.display_name.trim()||t.preparation.expires_before===void 0||!iG(t.preparation.expires_before)?null:t}catch{return null}}function SG(e){let t=new URL(e);if(t.protocol!==`https:`&&!(t.protocol===`http:`&&t.hostname===`127.0.0.1`)||t.username||t.password||t.pathname!==`/`||t.search||t.hash)throw Error(`Managed authorization origin is invalid.`);return t}function CG(e){if(SG(e.relay_origin),!Uy(yG,{version:2,display_name:e.draft.display_name,preparation:e.preparation})||!e.draft.display_name.trim()||e.preparation.expires_before===void 0||!iG(e.preparation.expires_before))throw Error(`Managed authorization entry is invalid.`)}function wG(e){if(!(e instanceof Gt))return`Tutti could not complete this step. Try again from Local Console.`;let t={console_setup_access_invalid:`Your computer sign-in has expired or predates this update. Close this dialog, sign out and sign in to Local Console again.`,account_session_required:`Sign in to Local Console again before starting this project.`,fresh_authentication_required:`Sign in again to confirm this computer and project with a fresh email code.`,authority_target_not_found:`Project access was not confirmed. Choose Check and continue to retry this setup.`,managed_preparation_expired:`This request expired. Close the dialog and start a new request.`,managed_creation_not_validated:`Model validation has not succeeded. Check the authorization and try again.`,managed_existing_project_requires_opt_in:`This is an existing Tutti project. Resume it with its current access; automatic enrollment is disabled.`,managed_trial_not_enabled:`This account is not enabled for the internal Tutti trial.`,managed_validation_unknown:`The model check outcome is unknown. It will not be retried automatically. Contact support before starting a new request.`,managed_validation_failed:`The model access check failed. No automatic retry was started. Review the connection before starting a new request.`,managed_project_must_be_stopped:`Stop this project before changing its model access.`,host_delegation_already_active:`This computer is already authorized. Revoke its access in Account before authorizing it again.`,host_delegation_revocation_pending:`The previous access is revoked. Wait for gateway key reconciliation in Account before authorizing again.`,managed_reauthorization_conflict:`Finish or close the existing authorization request before restoring access.`,project_owner_required:`Sign in as the project's existing owner. Feishu identity linking is not available yet.`},n=/^[a-z0-9_]{1,100}$/u.test(e.code)?e.code:`request_failed`;return`${t[n]??`Tutti could not complete this step.`} (${n}, HTTP ${e.statusCode}${e.requestId?`, ID ${e.requestId}`:``})`}function TG({entry:e}){let t=et(),n=R({queryKey:Z.me,queryFn:()=>Wn(X)}),r=eH(),i=tH(),a=(0,I.useRef)(null),[o,s]=(0,I.useState)(!1),[c,l]=(0,I.useState)(!1),[u,d]=(0,I.useState)(null),[f,p]=(0,I.useState)(Date.now());(0,I.useEffect)(()=>{let e=window.setInterval(()=>p(Date.now()),1e3);return()=>{window.clearInterval(e),a.current?.abort()}},[]);let m=f>=Date.parse(e.preparation.expires_before);async function h(){if(a.current||m||c)return;let t=new AbortController;a.current=t,s(!0),d(null);let n={baseUrl:X.relayBaseUrl,credentials:`include`};try{let r;try{r=await nb(n,e.preparation,t.signal)}catch(i){if(!(i instanceof Gt)||i.statusCode!==0&&i.statusCode<500)throw i;try{r=await rb(n,e.preparation.request_ref,t.signal)}catch{throw i}}if(r.project_id!==e.preparation.project_id||r.installation_ref!==e.preparation.installation_ref||r.surface!==e.preparation.surface||r.state!==`prepared`&&r.state!==`activated`)throw Error(`Authority readback mismatch`);t.signal.aborted||l(!0)}catch(e){t.signal.aborted||d(wG(e))}finally{a.current===t&&(a.current=null,s(!1))}}async function g(){if(!a.current){a.current=new AbortController,s(!0);try{await Xn(X),t.removeQueries({queryKey:Z.me}),await n.refetch(),d(null)}catch(e){d(wG(e))}finally{a.current=null,s(!1)}}}return n.isLoading?null:n.data?.account.profile_complete?(0,L.jsx)(QU,{projectName:e.display_name,surface:e.preparation.surface===`feishu`?`Feishu`:`Tutti Workspace`,accountEmail:n.data.account.email,pending:o,authorized:c,expired:m,error:u,onAuthorize:()=>void h(),onSignInAgain:()=>void g(),onBrandClick:()=>{window.location.assign(`/projects`)}}):(0,L.jsx)(CH,{...n.data?.account?i:r,onBrandClick:()=>{window.location.assign(`/projects`)}})}function EG(){let[e]=(0,I.useState)(()=>xG(window.location.hash));return(0,I.useEffect)(()=>{window.history.replaceState(null,``,window.location.pathname)},[]),e===null?(0,L.jsx)(QU,{projectName:`Invalid trial request`,surface:``,accountEmail:``,pending:!1,authorized:!1,expired:!0,error:`Reopen trial authorization from Local Console.`,onAuthorize:()=>{},onSignInAgain:()=>{},onBrandClick:()=>{window.location.assign(`/projects`)}}):(0,L.jsx)(TG,{entry:e})}function DG(){return(0,I.useEffect)(()=>Q(`/projects?panel=credits`,{replace:!0}),[]),null}var OG=`tutti.workspace-onboarding.v1`,kG={version:1,start_chat_pending:!1,tour_pending:!1};function AG(){try{return typeof window>`u`?null:window.sessionStorage}catch{return null}}function jG(e){return e.storage===void 0?AG():e.storage}function MG(e,t){return`${OG}:${e}:${t}`}function NG(e){if(typeof e!=`object`||!e)return null;let t=e;return t.version===1&&typeof t.start_chat_pending==`boolean`&&typeof t.tour_pending==`boolean`?{version:1,start_chat_pending:t.start_chat_pending,tour_pending:t.tour_pending}:null}function PG(e,t,n){if(e!==null)try{if(!n.start_chat_pending&&!n.tour_pending){e.removeItem(t);return}e.setItem(t,JSON.stringify(n))}catch{}}function FG(e,t,n={}){let r=jG(n);if(r===null)return{...kG};try{let n=r.getItem(MG(e,t));return n===null?{...kG}:NG(JSON.parse(n))??{...kG}}catch{return{...kG}}}function IG(e,t,n={}){PG(jG(n),MG(e,t),{version:1,start_chat_pending:!0,tour_pending:!0})}function LG(e,t,n,r){let i=jG(r),a=FG(e,t,{storage:i});a[n]&&PG(i,MG(e,t),{...a,[n]:!1})}function RG(e,t,n={}){LG(e,t,`start_chat_pending`,n)}function zG(e,t,n={}){LG(e,t,`tour_pending`,n)}function BG({joinToken:e}){let t=et(),n=R({queryKey:Z.join(e),queryFn:()=>Zn(X,e)}),r=eH(()=>{n.refetch()}),i=tH(()=>{n.refetch()}),a=gt({mutationFn:()=>Qn(X,e),onSuccess:n=>{wV(t),t.invalidateQueries({queryKey:Z.join(e)}),n.disposition.kind===`joined`&&n.result!==void 0&&IG(n.result.account.account_ref,n.result.relay_project.relay_project_ref),n.result?.relay_project.host_status===`online`&&Q(en(n.result.relay_project.relay_project_ref))}}),o=gt({mutationFn:e=>$n(X,e),onSuccess:e=>{wV(t),e.disposition.kind===`opened`&&e.result?.open_url!==void 0&&SV(e.result.open_url)}}),s=n.data;EV(s?.account!==void 0);let c=s?.relay_project?.display_name??`Project`,l=s?.relay_project?.host_status??`unknown`,u=s?.account?.profile_complete===!1,d=u?`login_required`:n.isLoading?`loading`:n.error===null?s?.next.kind??`invalid_or_expired`:`error`;return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(Ab,{route:{kind:`join`,joinToken:e},projectDisplayName:s?.relay_project?.display_name??null}),(0,L.jsx)(EH,{projectName:c,description:d===`invalid_or_expired`?`This invite can no longer be used.`:`You have been invited to join ${c}.`,hostLabel:Tz(l),hostOnline:l===`online`,nextKind:d,accountLabel:s?.account?.display_name??null,membershipLabel:s?.membership?.label??null,actionPending:a.isPending||o.isPending,error:n.error===null?a.error===null?o.error===null?null:$(o.error):$(a.error):$(n.error),onBrandClick:()=>Q(`/`),onRetry:()=>void n.refetch(),onAccept:()=>a.mutate(),onOpen:()=>{s?.next.kind===`open_workspace`&&o.mutate(s.next.relay_project_ref)},...d===`login_required`?{loginForm:u?i:r}:{}})]})}async function VG(e,t,n=`docx`){let r;try{r=await vb(X,e,{diagnostics:t,profile:n})}catch(e){throw new JR(`document_authorization_bootstrap`,e,t)}let i;try{i=await KR({appId:r.app_id,state:r.state,scopes:r.authorization_scopes,allowLegacyFallback:!1})}catch(e){throw new JR(`document_authorization_request_access`,e,t)}try{await yb(X,{relayProjectRef:e,state:r.state,authorizationCode:i},{diagnostics:t})}catch(e){throw new JR(`document_authorization_exchange`,e,t)}}function HG({read:e}){return e.error===void 0?e.fetching?e.data===void 0?(0,L.jsx)(Xx,{count:3}):(0,L.jsx)(`p`,{className:`reference-content`,role:`status`,children:`Updating…`}):null:(0,L.jsxs)(`div`,{className:`embedded-project-refresh-message`,role:`status`,children:[e.data===void 0?null:(0,L.jsx)(`p`,{children:`Showing the last loaded snapshot. It may be out of date.`}),(0,L.jsx)(PR,{diagnostic:e.error})]})}function UG(e){return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(HG,{read:e.read}),e.read.data===void 0?(0,L.jsx)(Yx,{children:e.read.error?`Timeline unavailable.`:`Loading timeline…`}):(0,L.jsx)(vR,{...e.read.data,presentation:`sheet`,empty:(0,L.jsx)(Yx,{children:`No timeline events yet.`})})]})}var WG={root:e=>[`feishu-project`,e],supporting:e=>[`feishu-project`,e,`supporting`],skills:e=>[`feishu-project`,e,`supporting`,`skills`],skillDetails:e=>[`feishu-project`,e,`supporting`,`skill`],skillDetail:(e,t)=>[`feishu-project`,e,`supporting`,`skill`,t],timeline:e=>[`feishu-project`,e,`supporting`,`timeline`],bootstrap:e=>[`feishu-project`,e,`bootstrap`],scratchpad:e=>[`feishu-project`,e,`scratchpad`],worklist:e=>[`feishu-project`,e,`worklist`],executionStatus:e=>[`feishu-project`,e,`execution-status`],artifacts:e=>[`feishu-project`,e,`artifacts`],artifactPreviewSession:(e,t)=>[`feishu-project`,e,`artifact-preview-session`,t],activeClarification:e=>[`feishu-project`,e,`active-clarification`],clarificationMessages:(e,t)=>[`feishu-project`,e,`clarification-messages`,t],activeApproval:e=>[`feishu-project`,e,`active-approval`],referenceFiles:e=>[`feishu-project`,e,`reference-files`],viewerFiles:e=>[`feishu-project`,e,`viewer-file`],viewerFile:(e,t)=>[`feishu-project`,e,`viewer-file`,t],taskDetail:(e,t)=>[`feishu-project`,e,`task-detail`,t],taskRunResults:(e,t)=>[`feishu-project`,e,`task-run-results`,t]};function GG(e,t){e.invalidateQueries({queryKey:WG.root(t)})}function KG(e,t,n){if(n===void 0)return;if(n.some(e=>e.kind===`all`)){GG(e,t);return}for(let r of n)switch(r.kind){case`all`:break;case`bootstrap`:case`workspace`:case`session`:e.invalidateQueries({queryKey:WG.bootstrap(t)});break;case`scratchpad`:e.invalidateQueries({queryKey:WG.scratchpad(t)});break;case`worklist`:e.invalidateQueries({queryKey:WG.worklist(t)});break;case`task`:case`task_detail`:e.invalidateQueries({queryKey:WG.taskDetail(t,r.task_id)});break;case`task_run_results`:e.invalidateQueries({queryKey:WG.taskRunResults(t,r.task_id)});break;case`messages`:r.scope===`clarification_round`&&e.invalidateQueries({queryKey:WG.clarificationMessages(t,r.round_id)});break;case`clarification`:e.invalidateQueries({queryKey:WG.activeClarification(t)}),r.round_id!==void 0&&e.invalidateQueries({queryKey:WG.clarificationMessages(t,r.round_id)});break;case`approval`:e.invalidateQueries({queryKey:WG.activeApproval(t)});break;case`execution_status`:case`activity`:e.invalidateQueries({queryKey:WG.executionStatus(t)});break;case`viewer`:(r.path===void 0||r.path.startsWith(`docs/reference`))&&(e.invalidateQueries({queryKey:WG.referenceFiles(t)}),e.invalidateQueries({queryKey:WG.viewerFiles(t)}));break;case`artifacts`:e.invalidateQueries({queryKey:WG.artifacts(t)});break;case`read_state`:case`provider_config`:case`provider_usage`:case`project_timeline`:case`skills`:case`recovery_summaries`:break}let r=new Map,i=e=>r.set(JSON.stringify(e),e);for(let e of n)e.kind===`skills`&&(i(WG.skills(t)),i(WG.skillDetails(t))),([`workspace`,`viewer`,`worklist`,`task`,`task_detail`,`task_run_results`,`clarification`,`project_timeline`,`provider_usage`].includes(e.kind)||e.kind===`messages`&&e.scope===`clarification_round`)&&i(WG.timeline(t));for(let t of r.values())e.invalidateQueries({queryKey:t})}function qG(e){return e.streamStatus!==`open`&&e.nowMs-e.lastRefreshAtMs>=(e.throttleMs??3e4)}function JG(e,t,n,r){let i=R({queryKey:e,queryFn:async({signal:e})=>{let n=XR();try{return await r({signal:e,diagnostics:n})}catch(e){throw new JR(t,e,n)}},enabled:n,retry:!1,staleTime:3e4,refetchOnMount:`always`,refetchOnWindowFocus:!1}),a=i.error instanceof JR?i.error.cause:i.error,o=a instanceof Gt&&a.statusCode>=400&&a.statusCode<500;return{...i.data===void 0||o?{}:{data:i.data},...i.error===null?{}:{error:oz(i.error,XR())},fetching:n&&i.isFetching}}function YG(e,t){let{data:n,...r}=e;return{...r,...n===void 0?{}:{data:t(n)}}}function XG({client:e,relayProjectRef:t,onSelectTask:n}){return(0,L.jsx)(UG,{read:YG(JG(WG.timeline(t),`project_timeline`,!0,t=>e.getProjectTimeline(t)),e=>jB(e,{onOpenWorklistTask:n}))})}function ZG(e){let{tracker:t,execution:n,scratchpad:r,clarification:i,approval:a}=e,o=t?.kind===`activity`?t:void 0,s=e=>o!==void 0&&(e.activity_ref===o.activityRef||o.workflowRef!==void 0&&e.workflow_ref===o.workflowRef),c=FV(n).some(s),l=i.state===`active`&&i.thread.owner.kind===`task_compile`,u=c||l||IV(n,`task_compile`,`foreground`)||IV(n,`project_context_bootstrap`,`foreground`)||IV(n,`scratchpad_refresh`,`foreground`),d=o!==void 0&&(r.receipts.some(s)||r.state===`submitted`&&s({...r.submitted_by_activity_ref===void 0?{}:{activity_ref:r.submitted_by_activity_ref},...r.submitted_by_workflow_ref===void 0?{}:{workflow_ref:r.submitted_by_workflow_ref}})),f=n.last_conclusion,p=!u&&f?.kind===`failed`&&s(f)?f:void 0,m=d||p!==void 0;return{activeSubmit:u,settled:m,failure:p,submitPending:u||t!==null&&!m,syncPending:IV(n,`scratchpad_refresh`),actionsDisabled:LV(n)||i.state===`active`||a.state===`pending`}}var QG=1500,$G=6e4;function eK(e){let{client:t,relayProjectRef:n}=e,r=et(),i=_z(),[a,o]=(0,I.useState)(null),s=(0,I.useRef)(!1),c=gt({mutationFn:()=>az(`worklist_submit`,async n=>({response:await t.submitWorklist(e.scratchpad.updated_at===void 0?{}:{expected_scratchpad_updated_at:e.scratchpad.updated_at},void 0,{diagnostics:n}),diagnostics:n})),onMutate:()=>(o({kind:`request`}),i.notify({tone:`loading`,title:`Running Scratchpad`})),onSuccess:({response:e},t,a)=>{let s=e.result?.activity_ref,c=e.disposition.kind===`accepted`;o(c&&s!==void 0?{kind:`activity`,activityRef:s,...e.result?.workflow_ref===void 0?{}:{workflowRef:e.result.workflow_ref}}:null),KG(r,n,e.invalidates),i.update(a,{tone:c?`success`:`warning`,title:c?`Scratchpad run started`:`Scratchpad run not started`,message:e.disposition.kind===`already_running`?`Tutti is already processing work.`:c?`Tutti is preparing Worklist tasks.`:`Refresh the project and review its current status.`})},onError:(t,n,r)=>{o(null),i.update(r,{tone:`error`,title:`Scratchpad run failed`,message:iz(t,e.diagnostics)})},onSettled:()=>{s.current=!1}}),l=ZG({...e,tracker:a}),u=c.data?.diagnostics??e.diagnostics;(0,I.useEffect)(()=>{a===null||!l.settled||(o(null),KG(r,n,[{kind:`worklist`}]),l.failure!==void 0&&i.notify({tone:`error`,title:`Scratchpad run failed`,message:`Tutti could not prepare tasks. Review the project status before retrying. Diagnostic ID: ${u.diagnosticId} · ${u.webRelease} · worklist_submit · submit_chain_failed`}))},[a,l.settled,l.failure,u,i,r,n]);let d=l.submitPending;return(0,I.useEffect)(()=>{if(!d)return;let e=window.setInterval(()=>{if(document.visibilityState!==`hidden`)for(let e of[WG.scratchpad(n),WG.executionStatus(n),WG.activeClarification(n)])r.refetchQueries({queryKey:e,exact:!0,type:`active`},{cancelRefetch:!1})},QG);return()=>window.clearInterval(e)},[d,r,n]),(0,I.useEffect)(()=>{if(a?.kind!==`activity`||l.activeSubmit||l.settled)return;let e=window.setTimeout(()=>{o(null),i.notify({tone:`warning`,title:`Scratchpad status could not be confirmed`,message:`The request was accepted, but its latest status is unavailable. Refresh the project before retrying. Diagnostic ID: ${u.diagnosticId} · ${u.webRelease} · worklist_submit · submit_status_unconfirmed`})},$G);return()=>window.clearTimeout(e)},[a,l.activeSubmit,l.settled,u,i]),{submitPending:c.isPending||l.submitPending,syncPending:l.syncPending,actionsDisabled:l.actionsDisabled,submit:()=>{s.current||l.submitPending||l.syncPending||l.actionsDisabled||(s.current=!0,c.mutate())}}}function tK({access:e,loading:t,pending:n,error:r,onAuthorize:i,onRefresh:a}){return(0,L.jsx)(gL,{brand:(0,L.jsx)(NR,{label:`Tutti`,onClick:a}),projectName:`Document access`,onRefresh:a,refreshing:t||n,children:t?(0,L.jsx)(Xx,{count:3}):r?(0,L.jsx)(Yx,{details:(0,L.jsx)(PR,{diagnostic:r}),children:`Document access unavailable.`}):(0,L.jsx)(Yx,{details:e?.status===`pending`?(0,L.jsx)(pw,{disabled:n,onClick:i,children:n?`Authorizing…`:`Authorize document access`}):void 0,children:e?.status===`authorized`?`Access is ready. Return to the group and retry the question, or continue the task from its pending step.`:e?.status===`expired`?`This access request expired. Ask Tutti to try reading again.`:`Tutti needs the project owner's permission to read the requested material.`})})}function nK(e){let t=new URLSearchParams(e).getAll(`access_request`);return t.length===1&&/^ref_auth_[a-f0-9]{32}$/u.test(t[0])?t[0]:void 0}function rK({project:e,authorizationRef:t,prepareSession:n}){let[r,i]=(0,I.useState)(0),[a,o]=(0,I.useState)(),[s,c]=(0,I.useState)(!0),[l,u]=(0,I.useState)(!1),[d,f]=(0,I.useState)(),p=(0,I.useRef)(!1),m=(0,I.useRef)(0);(0,I.useEffect)(()=>{let r=new AbortController;m.current+=1;let i=XR();return c(!0),f(void 0),o(void 0),n(e,r.signal,i).then(()=>ob(X,e).authorization(t,{diagnostics:i,signal:r.signal})).then(e=>{r.signal.aborted||o(e)}).catch(e=>{r.signal.aborted||f(oz(new JR(`reference_authorization_status`,e,i),i))}).finally(()=>{r.signal.aborted||c(!1)}),()=>{r.abort(),m.current+=1}},[e,t,n,r]);let h=async()=>{if(p.current||a?.status!==`pending`)return;p.current=!0,u(!0),f(void 0);let n=m.current,r=XR();try{if(await VG(e,r,a.profile),n!==m.current)return;let i=await ob(X,e).authorization(t,{diagnostics:r});n===m.current&&o(i)}catch(e){n===m.current&&f(oz(e instanceof JR?e:new JR(`reference_authorization_status`,e,r),r))}finally{p.current=!1,n===m.current&&u(!1)}};return(0,L.jsx)(tK,{loading:s,pending:l,...a===void 0?{}:{access:a},...d===void 0?{}:{error:d},onAuthorize:()=>void h(),onRefresh:()=>{p.current||i(e=>e+1)}})}var iK=3e4;function aK(e){if(!(e===void 0||e.disposition.kind===`issued`))return e.disposition.kind===`invalid_manifest`?e.disposition.message:e.disposition.kind===`preview_not_ready`?e.disposition.message??`Preview is not ready`:e.disposition.kind===`not_declared`?`Artifact is no longer declared`:`Preview session expired before it could be opened`}function oK(e){return e===void 0?!1:e.disposition.kind!==`issued`||e.result===void 0?e.disposition.kind===`preview_not_ready`||e.disposition.kind===`interrupted`?1e3:!1:Math.max(1e3,Date.parse(e.result.expires_at)-Date.now()-iK)}function sK(e){return e?.disposition.kind===`issued`?e.result?.bootstrap_url:void 0}var cK=`tutti_feishu_handoff`,lK=/^[A-Za-z0-9_-]{43}$/u;function uK(e){let t=new URLSearchParams(e),n=t.getAll(`view`),r=t.getAll(`open`);return n.length===1&&n[0]===`artifacts`&&r.length===1&&r[0]===`browser`&&!t.has(`authorize`)&&!t.has(`access_request`)&&!t.has(`lk_jump_to_browser`)}function dK(e,t){let n=new URL(`${e.pathname}${e.search}${e.hash}`,e.origin);n.searchParams.delete(`open`),t.replaceState(t.state,``,`${n.pathname}${n.search}${n.hash}`)}function fK(e){let t=`#${cK}=`,n=e.hash.startsWith(t)?e.hash.slice(t.length):void 0,r=n!==void 0&&lK.test(n)?n:void 0;return{systemBrowser:new URLSearchParams(e.search).get(`lk_jump_to_browser`)===`true`||r!==void 0,...r===void 0?{}:{handoffToken:r},shouldClearFragment:n!==void 0}}function pK(e,t){t.replaceState(t.state,``,`${e.pathname}${e.search}`)}function mK(e){if(!lK.test(e.handoffToken))throw TypeError(`Feishu browser handoff token is invalid`);let t=new URL(tn(e.relayProjectRef),e.origin);return t.searchParams.set(`lk_jump_to_browser`,`true`),t.searchParams.set(`view`,`artifacts`),t.hash=`${cK}=${e.handoffToken}`,t.toString()}function hK(e,t=(e,t)=>window.open(e,t)){if(new URL(e).searchParams.get(`lk_jump_to_browser`)!==`true`)throw TypeError(`Feishu system-browser URL is missing the browser jump parameter`);let n=t(e,`_blank`);return n===null?!1:(n.opener=null,!0)}var gK=2e4;function _K(e,t){return e?.previewGeneration===t?e:{previewGeneration:t,annotations:[]}}function vK(e,t){return e!==null&&e.previewGeneration!==t}var yK=(0,I.createContext)(null);function bK(e){let t=e.intervalMs??gK,n=e.setIntervalFn??window.setInterval.bind(window),r=e.clearIntervalFn??window.clearInterval.bind(window),i=!0,a=!1,o=!1,s=()=>{!i||a||(a=!0,e.renew().then(()=>{i&&!o&&(o=!0,e.onInitialRenewed?.())}).catch(()=>void 0).finally(()=>{a=!1}))};s();let c=n(s,t);return()=>{i=!1,r(c)}}function xK({relayProjectRef:e,hostClient:t,enabled:n,feedbackEnabled:r,children:i}){let[a,o]=(0,I.useState)(null),[s,c]=(0,I.useState)(null),l=(0,I.useRef)(0),u=R({queryKey:Z.artifacts(e),queryFn:()=>t.getArtifacts(),enabled:n,staleTime:bV}),d=u.data?.artifact,f=d?.status===`declared`;(0,I.useEffect)(()=>{if(!(!n||!f))return bK({renew:()=>t.renewArtifactPreviewLease(),onInitialRenewed:()=>{u.refetch()}})},[u.refetch,f,n,t]);let p=d!==void 0,m=d?.status===`declared`?d.preview_generation:void 0,h=(0,I.useCallback)(e=>{o(t=>_K(t,e))},[]),g=(0,I.useCallback)(e=>{o(t=>{if(t===null||t.annotations.length>=64)return t;let{createdAt:n,...r}=e;return l.current+=1,{...t,annotations:[...t.annotations,{...r,createdAt:n,key:`artifact-feedback-note-${l.current}`}]}})},[]),_=(0,I.useCallback)(e=>{o(t=>t===null?null:{...t,annotations:t.annotations.filter((t,n)=>n!==e)})},[]),v=(0,I.useCallback)(()=>o(null),[]),y=(0,I.useCallback)(e=>c(e),[]),b=(0,I.useCallback)(()=>c(null),[]),x=(0,I.useMemo)(()=>({artifact:d,sidebarSignal:Az(d),loading:!p&&n&&u.isLoading,unavailable:!p&&n&&u.error!==null,feedbackEnabled:r,feedbackDraft:a,feedbackDraftStale:vK(a,m),beginFeedbackDraft:h,addFeedbackAnnotation:g,removeFeedbackAnnotation:_,clearFeedbackDraft:v,pendingActivation:s,requestFeedbackActivation:y,clearFeedbackActivation:b}),[g,d,u.error,u.isLoading,h,b,v,m,n,a,r,p,s,_,y]);return(0,L.jsx)(yK.Provider,{value:x,children:i})}function SK(){let e=(0,I.useContext)(yK);if(e===null)throw Error(`Workspace Artifact runtime is unavailable`);return e}function CK({relayProjectRef:e}){return(0,I.useEffect)(()=>{window.location.replace(tn(e))},[e]),null}async function wK(e,t,n,r=!1){let i;try{await _b(X,e,{signal:t,diagnostics:n});return}catch(e){if(!Yt(e))throw new JR(`session_current`,e,n);i=e}if(r)throw new JR(`browser_session_restore`,i,n);let a;try{a=await hb(X,e,{signal:t,diagnostics:n})}catch(e){throw new JR(`authorization_bootstrap`,e,n)}let o;try{o=await KR({appId:a.app_id,state:a.state})}catch(e){throw new JR(`h5_request_access`,e,n)}try{await gb(X,{relayProjectRef:e,state:a.state,authorizationCode:o},{signal:t,diagnostics:n})}catch(e){throw new JR(`authorization_exchange`,e,n)}}async function TK(e,t,n){try{await xb(X,{relayProjectRef:e,handoffToken:t},{diagnostics:n})}catch(t){try{await _b(X,e,{diagnostics:n});return}catch{throw new JR(`browser_handoff_consume`,t,n)}}}async function EK(e,t,n){try{return await n()}catch(n){throw new JR(e,n,t)}}function DK({relayProjectRef:e,diagnostics:t,browserEntry:n}){let r=(0,I.useMemo)(()=>mb(X,e),[e]),[i,a]=(0,I.useState)({kind:`loading`}),o=(0,I.useRef)(null),s=(0,I.useRef)(!1),c=(0,I.useRef)(!1);(0,I.useEffect)(()=>{let r=new AbortController;return a({kind:`loading`}),(n.handoffToken!==void 0&&!s.current?(o.current??=TK(e,n.handoffToken,t),o.current.then(()=>{s.current=!0})):wK(e,r.signal,t,!0)).then(()=>{r.signal.aborted||a({kind:`ready`})}).catch(e=>{r.signal.aborted||a({kind:`error`,...oz(e,t)})}),()=>r.abort()},[n.handoffToken,t,e]);let l=i.kind===`ready`,u=R({queryKey:WG.artifacts(e),queryFn:({signal:e})=>EK(`artifacts`,t,()=>r.getArtifacts({signal:e,diagnostics:t})),enabled:l}),d=u.data?.artifact,f=d?.status===`declared`;(0,I.useEffect)(()=>{if(!(!l||!f))return bK({renew:()=>r.renewArtifactPreviewLease({diagnostics:t}),onInitialRenewed:()=>{u.refetch()}})},[f,u.refetch,r,t,l]);let p=d?.status===`declared`&&d.preview.status===`ready`&&d.preview.url!==void 0?`${d.preview_generation}:${d.preview.url}`:null,m=R({queryKey:WG.artifactPreviewSession(e,p??`not-ready`),queryFn:()=>EK(`artifact_preview_session`,t,()=>r.issueArtifactPreviewSession(void 0,void 0,{diagnostics:t})),enabled:l&&p!==null,staleTime:1/0,retry:1,refetchInterval:e=>oK(e.state.data)}),h=m.data,g=m.error===null?aK(h):`${$(m.error)} Diagnostic ID: ${t.diagnosticId}`,_=sK(h);return(0,I.useEffect)(()=>{_===void 0||c.current||(c.current=!0,window.location.replace(_))},[_]),i.kind===`error`||u.error!==null||m.error!==null||g!==void 0||u.isFetched&&p===null?(0,L.jsx)(`main`,{role:`status`,children:`Artifact preview is unavailable.`}):null}function OK({relayProjectRef:e,diagnostics:t,onDiagnosticsChange:n,initialTab:r,authorizeDocument:i,openArtifactInBrowser:a}){let o=(0,I.useMemo)(()=>mb(X,e),[e]),s=et(),c=_z(),[l,u]=(0,I.useState)({kind:`loading`}),[d,f]=(0,I.useState)(r),[p,m]=(0,I.useState)(),[h,g]=(0,I.useState)(``),[_,v]=(0,I.useState)(!1),[y,b]=(0,I.useState)(),[x,S]=(0,I.useState)(),[C,w]=(0,I.useState)(a),[T,E]=(0,I.useState)(!1),D=(0,I.useRef)(!1),[O,k]=(0,I.useState)(),[A,ee]=(0,I.useState)(0),te=(0,I.useRef)(null),j=(0,I.useRef)(null),ne=(0,I.useRef)(0),M=(0,I.useRef)(t),N=(0,I.useRef)(!1),P=(t,n)=>wK(e,t,n);(0,I.useEffect)(()=>{let e=new AbortController;u({kind:`loading`}),b(void 0);let t=M.current;return P(e.signal,t).then(()=>{e.signal.aborted||u({kind:`ready`})}).catch(n=>{e.signal.aborted||u({kind:`error`,...oz(n,t)})}),()=>e.abort()},[e]),(0,I.useEffect)(()=>()=>{te.current?.abort()},[]);let re=l.kind===`ready`;(0,I.useEffect)(()=>{if(!re||!i||N.current)return;N.current=!0;let t=M.current,n=c.notify({tone:`loading`,title:`Authorizing Feishu Docs`});VG(e,t).then(()=>{let e=new URL(window.location.href);e.searchParams.delete(`authorize`),window.history.replaceState(null,``,`${e.pathname}${e.search}${e.hash}`),c.update(n,{tone:`success`,title:`Feishu Docs authorized`,message:`Document access is ready. Retry the question or task that needed access.`})}).catch(e=>{let r=oz(e,t);c.update(n,{tone:`error`,title:`Feishu Docs authorization failed`,message:`${r.message} Diagnostic ID: ${r.diagnosticId}`})})},[i,c,e,re]);let ie=R({queryKey:WG.bootstrap(e),queryFn:({signal:e})=>EK(`host_bootstrap`,M.current,()=>o.getBootstrap({signal:e,diagnostics:M.current})),enabled:re}),ae=ie.data?.workspace.capabilities.sse===!0;(0,I.useEffect)(()=>{!re||!ae||ie.data===void 0||k(t=>t?.relayProjectRef===e?t:{relayProjectRef:e,cursor:ie.data.event_cursor})},[ie.data,ae,e,re]),(0,I.useEffect)(()=>{if(!re||!ae||O?.relayProjectRef!==e)return;let t;try{t=o.connectEvents({after:O.cursor,onReady:t=>{t.payload.replay.status===`missed`&&GG(s,e)},onInvalidate:t=>{KG(s,e,t)}})}catch{j.current=null;return}return j.current=t,()=>{j.current===t&&(j.current=null),t.close()}},[o,O,A,ae,s,e,re]),(0,I.useEffect)(()=>{let t=()=>{let t=Date.now(),n=j.current;qG({streamStatus:n?.status(),nowMs:t,lastRefreshAtMs:ne.current})&&(ne.current=t,GG(s,e),n===null?ee(e=>e+1):n.retryNow())},n=()=>{document.visibilityState!==`hidden`&&t()};return window.addEventListener(`focus`,t),window.addEventListener(`online`,t),document.addEventListener(`visibilitychange`,n),()=>{window.removeEventListener(`focus`,t),window.removeEventListener(`online`,t),document.removeEventListener(`visibilitychange`,n)}},[s,e]);let oe=R({queryKey:WG.scratchpad(e),queryFn:({signal:e})=>EK(`scratchpad`,M.current,()=>o.getScratchpad({signal:e,diagnostics:M.current})),enabled:re}),se=R({queryKey:WG.worklist(e),queryFn:({signal:e})=>EK(`worklist`,M.current,()=>o.getWorklist({signal:e,diagnostics:M.current})),enabled:re}),ce=R({queryKey:WG.executionStatus(e),queryFn:({signal:e})=>EK(`execution_status`,M.current,()=>o.getExecutionStatus({signal:e,diagnostics:M.current})),enabled:re}),le=R({queryKey:WG.artifacts(e),queryFn:({signal:e})=>EK(`artifacts`,M.current,()=>o.getArtifacts({signal:e,diagnostics:M.current})),enabled:re,refetchInterval:C&&d===`artifacts`?1500:!1}),ue=R({queryKey:WG.activeClarification(e),queryFn:({signal:e})=>EK(`clarification_active`,M.current,()=>o.getActiveClarification({signal:e,diagnostics:M.current})),enabled:re}),de=R({queryKey:WG.activeApproval(e),queryFn:({signal:e})=>EK(`approval_active`,M.current,()=>o.getActiveApproval({signal:e,diagnostics:M.current})),enabled:re}),fe=ue.data??ie.data?.snapshots.active_clarification??{state:`none`},pe=fe.state===`active`?fe.round.id:void 0,me=R({queryKey:WG.clarificationMessages(e,pe??`none`),queryFn:({signal:e})=>EK(`clarification_messages`,M.current,()=>o.getClarificationRoundMessages(pe,{signal:e,diagnostics:M.current})),enabled:re&&pe!==void 0}),he=de.data??ie.data?.snapshots.active_approval??{state:`none`},ge=le.data?.artifact,_e=ge?.status===`declared`;(0,I.useEffect)(()=>{if(!(!re||!_e))return bK({renew:()=>o.renewArtifactPreviewLease({diagnostics:M.current}),onInitialRenewed:()=>{le.refetch()}})},[_e,le.refetch,o,re]);let F=ge?.status===`declared`&&ge.preview.status===`ready`&&ge.preview.url!==void 0?`${ge.preview_generation}:${ge.preview.url}`:null,ve=R({queryKey:WG.artifactPreviewSession(e,F??`not-ready`),queryFn:()=>EK(`artifact_preview_session`,M.current,()=>o.issueArtifactPreviewSession(void 0,void 0,{diagnostics:M.current})),enabled:re&&d===`artifacts`&&F!==null,staleTime:1/0,retry:1,refetchInterval:e=>oK(e.state.data)}),ye=ve.data,be=ve.error===null?aK(ye):`${$(ve.error)} Diagnostic ID: ${M.current.diagnosticId}`,xe=sK(ye),Se=gt({mutationFn:()=>az(`browser_handoff_create`,async t=>{let n=await bb(X,e,{diagnostics:t});return mK({origin:window.location.origin,relayProjectRef:e,handoffToken:n.handoff_token})}),onSuccess:e=>{hK(e)?S(void 0):(S(e),c.notify({tone:`warning`,title:`Browser handoff ready`,message:`Click Open in browser again to continue in your system browser.`}))},onError:e=>{c.notify({tone:`error`,title:`Browser handoff failed`,message:iz(e,M.current)})}}),Ce=(0,I.useCallback)(()=>{D.current=!0,w(!1)},[]),we=(0,I.useCallback)(()=>{if(Ce(),!Se.isPending){if(F===null){c.notify({tone:`warning`,title:`Artifact preview is not ready`,message:`Open it after the current Artifact preview becomes available.`});return}S(void 0),Se.mutate()}},[Ce,Se.isPending,Se.mutate,F,c]);(0,I.useEffect)(()=>{if(!C||!re)return;let e=window.setTimeout(()=>E(!0),2e4);return()=>window.clearTimeout(e)},[C,re]),(0,I.useEffect)(()=>{if(!(!C||D.current)){if(d!==`artifacts`||l.kind===`error`){Ce();return}if(re){if(le.isError||T){Ce(),c.notify({tone:`warning`,title:`Artifact browser entry unavailable`,message:le.isError?iz(le.error,M.current):`Preview preparation timed out. Use Open in browser when it is ready. Diagnostic ID: ${M.current.diagnosticId}`});return}!le.isFetchedAfterMount||le.isFetching||(F!==null||ge!==void 0&&(ge.status!==`declared`||ge.preview.status===`failed`))&&we()}}},[d,ge,le.error,le.isError,le.isFetchedAfterMount,le.isFetching,C,T,Ce,c,F,we,re,l.kind]),(0,I.useEffect)(()=>{g(``)},[pe]);let Te=eK({client:o,relayProjectRef:e,diagnostics:M.current,scratchpad:oe.data??AV(),execution:ce.data??PV(new Date().toISOString()),clarification:fe,approval:he}),Ee=gt({mutationFn:({roundId:e,body:t})=>az(`clarification_message_send`,n=>o.sendClarificationRoundMessage(e,{body:t},void 0,{diagnostics:n})),onSuccess:t=>{if(KG(s,e,t.invalidates),t.disposition.kind===`created`){g(``);return}c.notify({tone:`warning`,title:`Reply not sent`,message:`The clarification changed. Review the current request and try again.`})},onError:e=>{c.notify({tone:`error`,title:`Reply send failed`,message:iz(e,M.current)})}}),De=gt({mutationFn:e=>az(`clarification_submit`,t=>o.submitClarificationRound(e,fe.state===`active`&&fe.round.answer_revision!==void 0?{expected_answer_revision:fe.round.answer_revision}:{},void 0,{diagnostics:t})),onMutate:()=>c.notify({tone:`loading`,title:`Submitting reply`}),onSuccess:(t,n,r)=>{KG(s,e,t.invalidates);let i=t.disposition.kind===`accepted`,a=t.disposition.kind===`already_submitted`;c.update(r,{tone:i?`success`:a?`info`:`warning`,title:i?`Reply submitted`:a?`Reply already submitted`:`Reply not submitted`,...i||a?{}:{message:t.disposition.kind===`no_answers`?`Add an answer before submitting.`:`The clarification or its answers changed. Review the current request and submit again.`}})},onError:(e,t,n)=>{c.update(n,{tone:`error`,title:`Reply submit failed`,message:iz(e,M.current)})}}),Oe=gt({mutationFn:({approvalId:e,decisionId:t})=>az(`approval_decide`,n=>o.decideApproval(e,{decision_id:t},void 0,{diagnostics:n})),onMutate:()=>c.notify({tone:`loading`,title:`Sending decision`}),onSuccess:(t,n,r)=>{KG(s,e,t.invalidates);let i=t.disposition.kind===`accepted`;c.update(r,{tone:i?`success`:`warning`,title:i?`Decision sent`:`Decision not applied`,...i?{}:{message:`The approval changed. Review its current state.`}})},onError:(e,t,n)=>{c.update(n,{tone:`error`,title:`Decision failed`,message:iz(e,M.current)})}}),ke=se.data;(0,I.useEffect)(()=>{if(ke===void 0)return;let e=tB(ke);m(t=>t!==void 0&&e.some(e=>e.id===t)?t:void 0)},[ke]);let Ae=R({queryKey:WG.taskDetail(e,p??`none`),queryFn:({signal:e})=>EK(`task_detail`,M.current,()=>o.getTaskDetail(p,{signal:e,diagnostics:M.current})),enabled:re&&p!==void 0}),je=R({queryKey:WG.taskRunResults(e,p??`none`),queryFn:({signal:e})=>EK(`task_run_results`,M.current,()=>o.getTaskRunResults(p,{limit:5},{signal:e,diagnostics:M.current})),enabled:re&&p!==void 0}),Me=ie.data!==void 0&&oe.data!==void 0&&se.data!==void 0&&ce.data!==void 0&&ue.data!==void 0&&de.data!==void 0&&(pe===void 0||me.data!==void 0),Ne=()=>{if(_)return;te.current?.abort();let t=new AbortController;te.current=t;let r=XR();M.current=r,n(r),v(!0),b(void 0),(async()=>{try{if(await P(t.signal,r),t.signal.aborted)return;u({kind:`ready`});let n=le.refetch({throwOnError:!0});await Promise.all([s.invalidateQueries({queryKey:WG.supporting(e)}),ie.refetch({throwOnError:!0}),oe.refetch({throwOnError:!0}),se.refetch({throwOnError:!0}),ce.refetch({throwOnError:!0}),n,ue.refetch({throwOnError:!0}),de.refetch({throwOnError:!0}),...pe===void 0?[]:[me.refetch({throwOnError:!0})],...p===void 0?[]:[Ae.refetch({throwOnError:!0}),je.refetch({throwOnError:!0})]]);let i=(await n).data?.artifact,a=i?.status===`declared`&&i.preview.status===`ready`&&i.preview.url!==void 0?`${i.preview_generation}:${i.preview.url}`:null;d===`artifacts`&&F!==null&&a===F&&await ve.refetch({throwOnError:!0})}catch(e){if(t.signal.aborted)return;let n=oz(e,r);Me?b(n):u({kind:`error`,...n})}finally{t.signal.aborted||(te.current=null,v(!1))}})()},Pe=e=>{m(e),f(`work`)},Fe=ie.data?.workspace.project.display_name??null,Ie;if(ie.data===void 0||oe.data===void 0||se.data===void 0||ce.data===void 0||ue.data===void 0||de.data===void 0||pe!==void 0&&me.data===void 0){let e=ie.error??oe.error??se.error??ce.error??ue.error??de.error??me.error;Ie=l.kind===`error`?l:e===null?{kind:`loading`}:{kind:`error`,...oz(e,t)}}else{let e=ie.data,t=oe.data,n=se.data,r=ce.data,i=y??(l.kind===`error`?l:void 0),a=eB(n,p),o=dB(Ae.data,je.data,{includeRetryAction:!1}),s=p===void 0?void 0:Ae.error!==null||je.error!==null?{title:`Task details unavailable`,description:`Refresh this project and try again.`}:o===void 0?{title:`Loading task details`,description:`Reading the latest task contract and Run results.`}:void 0,c=r.active_activity?.activity_kind===`run`||r.active_activities?.some(e=>e.activity_kind===`run`)===!0,u=kz(ge,{...xe===void 0?{}:{previewUrl:xe},pending:F!==null&&xe===void 0&&be===void 0,...be===void 0?{}:{errorMessage:be}},{runActive:c}),f=ge===void 0&&le.error!==null?`${$(le.error)} Diagnostic ID: ${M.current.diagnosticId}`:void 0;Ie={kind:`ready`,projectName:e.workspace.project.display_name,accountName:e.session.account.display_name,membershipLabel:e.session.membership.label,hostVersion:e.workspace.server.version,activeTab:d,refreshing:_,...i===void 0?{}:{refreshMessage:i},projectStatus:Ez(r),scratchpad:$z(t),activeClarification:Rz(fe),clarificationMessages:(me.data?.items??[]).map(e=>Lz(e)),roundDraft:h,activeApproval:Hz(he),worklist:{modules:a.modules,taskCount:a.taskCount,detailOpen:p!==void 0,...o===void 0?{}:{detail:o},...s===void 0?{}:{detailPlaceholder:s}},artifacts:u,...f===void 0?{}:{artifactError:f}}}return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(Ab,{route:{kind:`feishu_project`,relayProjectRef:e},projectDisplayName:Fe}),(0,L.jsx)(NH,{state:Ie,supportingContent:d===`timeline`?(0,L.jsx)(XG,{client:o,relayProjectRef:e,onSelectTask:Pe},d):void 0,onRetry:Ne,onBrandClick:()=>window.location.reload(),onSelectTab:e=>{S(void 0),m(void 0),f(e)},onSelectTask:Pe,onCloseTask:()=>m(void 0),onOpenInBrowser:we,...x===void 0?{}:{browserOpenUrl:x,onBrowserOpenLinkClick:()=>S(void 0)},onSubmitScratchpad:Te.submit,onRoundDraftChange:g,onSendRoundMessage:()=>{pe!==void 0&&h.trim()!==``&&Ee.mutate({roundId:pe,body:h.trim()})},onSubmitRound:()=>{pe!==void 0&&De.mutate(pe)},onDecideApproval:(e,t)=>Oe.mutate({approvalId:e,decisionId:t}),scratchpadSubmitPending:Te.submitPending,scratchpadSyncPending:Te.syncPending,scratchpadActionsDisabled:Te.actionsDisabled,roundSendPending:Ee.isPending,roundSubmitPending:De.isPending,approvalDecisionPending:Oe.isPending,browserOpenPending:Se.isPending})]})}var kK=class extends I.Component{state={};static getDerivedStateFromError(e){return{error:e}}componentDidCatch(){}render(){return this.state.error===void 0?this.props.children:this.props.artifactPresentation===!0?(0,L.jsx)(`main`,{role:`status`,children:`Artifact preview is unavailable.`}):(0,L.jsx)(NH,{state:{kind:`error`,...oz(new JR(`browser_runtime`,this.state.error,this.props.diagnostics),this.props.diagnostics)},onRetry:()=>window.location.reload(),onBrandClick:()=>window.location.reload(),onSelectTab:()=>void 0,onSelectTask:()=>void 0})}};function AK(e){let t=new URLSearchParams(e).getAll(`view`);return t.length===1&&(t[0]===`work`||t[0]===`artifacts`||t[0]===`timeline`)?t[0]:`project`}function jK(e){let t=new URLSearchParams(e).getAll(`authorize`);return t.length===1&&t[0]===`docx`}function MK({relayProjectRef:e}){let[t,n]=(0,I.useState)(XR),r=(0,I.useMemo)(()=>fK(window.location),[]),i=(0,I.useMemo)(()=>AK(window.location.search),[]),a=(0,I.useMemo)(()=>nK(window.location.search),[]),o=(0,I.useMemo)(()=>jK(window.location.search),[]),s=(0,I.useMemo)(()=>uK(window.location.search),[]);return(0,I.useEffect)(()=>{r.shouldClearFragment&&pK(window.location,window.history),s&&dK(window.location,window.history)},[r.shouldClearFragment,s]),(0,L.jsx)(kK,{diagnostics:t,artifactPresentation:r.systemBrowser,children:r.systemBrowser?(0,L.jsx)(DK,{browserEntry:r,diagnostics:t,relayProjectRef:e}):a===void 0?(0,L.jsx)(OK,{diagnostics:t,initialTab:i,authorizeDocument:o,openArtifactInBrowser:s,relayProjectRef:e,onDiagnosticsChange:n},e):(0,L.jsx)(rK,{project:e,authorizationRef:a,prepareSession:wK})})}function NK(){Q(`/projects`,{replace:!0})}function PK(){let e=R({queryKey:Z.me,queryFn:()=>Wn(X)}),t=eH(NK);return(0,I.useEffect)(()=>{e.data!==void 0&&NK()},[e.data]),e.isLoading||e.data!==void 0?null:(0,L.jsx)(KH,{...t,onBrandClick:()=>Q(`/`),sessionError:e.error===null||Yt(e.error)?null:`Tutti could not check your current session. You can still try signing in.`})}var FK=`/account/local-console`,IK=/^[A-Za-z0-9_-]{32,128}$/u;function LK(e){return IK.test(e)}function RK(e){if(!/^[1-9]\d{0,4}$/u.test(e))return null;let t=Number(e);return Number.isInteger(t)&&t<=65535?t:null}function zK(e){if(!LK(e.accessToken))throw Error(`Local Console account continuation token is invalid.`);let t=new URL(e.localOrigin),n=RK(t.port);if(t.protocol!==`http:`||t.hostname!==`127.0.0.1`||n===null)throw Error(`Local Console account continuation requires an exact loopback origin.`);let r=new URL(FK,e.webBaseUrl);return r.search=``,r.hash=new URLSearchParams({access_token:e.accessToken,local_port:String(n),...e.intent===`sign_out`?{intent:`sign_out`}:{}}).toString(),r.toString()}function BK(e){let t=e.startsWith(`#`)?e.slice(1):e,n=new URLSearchParams(t),r=n.getAll(`intent`),i=r.length===0?`authenticate`:r[0];if(n.size!==2&&n.size!==3||n.getAll(`access_token`).length!==1||n.getAll(`local_port`).length!==1||r.length>1||n.size===3&&r.length!==1||n.size===2&&r.length!==0||i!==`authenticate`&&i!==`sign_out`)return null;let a=n.get(`access_token`)??``,o=RK(n.get(`local_port`)??``);return!LK(a)||o===null?null:{accessToken:a,localPort:o,intent:i}}function VK(e,t){let n=t.trim();if(n===``||n.length>80)throw Error(`Local Console account display name is invalid.`);let r=new URL(`http://127.0.0.1:${e.localPort}/console`);return r.hash=new URLSearchParams({access_token:e.accessToken,account_display_name:n}).toString(),r.toString()}function HK(e){let t=e.startsWith(`#`)?e.slice(1):e,n=new URLSearchParams(t);if(n.size!==1&&n.size!==2||n.getAll(`access_token`).length!==1||n.getAll(`account_display_name`).length>1||n.size===2&&n.getAll(`account_display_name`).length!==1)return null;let r=n.get(`access_token`)??``,i=n.get(`account_display_name`)?.trim();return!LK(r)||i!==void 0&&(i===``||i.length>80)?null:{accessToken:r,...i===void 0?{}:{accountDisplayName:i}}}function UK(e){let t=e.trim().replace(/[\\/]+$/u,``);return t===``?``:t.slice(Math.max(t.lastIndexOf(`/`),t.lastIndexOf(`\\`))+1).slice(0,80)}function WK(e){return e.surface===`feishu`&&e.existingProjectId===void 0?{display_name:UK(e.workspacePath)||`Untitled project`}:{display_name:e.displayName.trim(),...e.description.trim()?{description:e.description.trim()}:{}}}function GK(e=``){return{workspacePath:e,displayName:UK(e),description:``,baseUrl:``,apiKey:``,model:``,surface:`standalone`,accessMode:`managed`}}function KK(e,t,n){return{...e,workspacePath:t,...n?{}:{displayName:UK(t)}}}function qK(e){switch(e){case`console_busy`:return`Wait for the current Local Console action to finish.`;case`host_busy`:return`Wait for active project work or questions to finish.`;case`host_identity_unverified`:return`Stop or reopen the affected project before updating.`;case`update_in_progress`:return`Another Tutti update is already in progress.`;case`update_recovery_required`:return`Run tutti again after closing this page to recover the interrupted update.`;case`global_prefix_read_only`:return`Use your normal terminal installation environment to update Tutti.`;case`npm_install_failed`:return`The npm installation failed. Refresh to check whether it can be retried.`;case`post_install_validation_failed`:return`The installed package could not be verified. Run tutti again to recover.`;case`completion_start_failed`:case`completion_failed`:case`worker_crashed`:return`The update was interrupted. Run tutti again to recover.`;case`host_restore_failed`:return`Tutti updated, but one or more local projects could not restart.`;case`installation_not_global`:case`custom_home`:case`npm_unavailable`:case`npm_global_root_mismatch`:case`npm_version_unsupported`:case`registry_unavailable`:case void 0:return`Tutti cannot update from this Local Console.`}}function JK(e){if(e.status!==`updating`)return e.status===`blocked`||e.status===`failed`?qK(e.reason_code):void 0;switch(e.phase){case`stopping_hosts`:return`Safely stopping online projects.`;case`installing`:return`Installing the new Tutti version.`;case`restarting`:return`Restarting local projects.`;case`preparing`:case void 0:return`Preparing the update.`}}function YK(e){let t=e.update;if(t===null||t.status===`up_to_date`||t.latest_version===void 0&&t.status!==`updating`&&t.status!==`failed`)return;let n=e.checking&&t.status===`ready`?`Checking update readiness.`:JK(t);return{label:t.status===`updating`?`Updating…`:`Restart and Update`,disabled:t.status!==`ready`||!t.can_update||e.checking||e.starting,...n===void 0?{}:{description:n}}}function XK(e,t){let n=e.replace(/\s+/g,` `).trim();return n.length===0?t:n}function ZK({inviterName:e,projectName:t,joinUrl:n}){return`${XK(e,`A teammate`)} invited you to join the Tutti project “${XK(t,`Untitled project`)}”.\n\nOpen the invitation link:\n${n.trim()}`}function QK(e){return new Gt({code:e,statusCode:409,message:e,retryable:!1})}async function $K(e){let{client:t,prepared:n,signal:r}=e,i=n.draft.request_ref,a=t=>{if(r.throwIfAborted(),t.draft.request_ref!==i||t.draft.project_id!==n.draft.project_id||t.draft.surface!==n.draft.surface||t.relay_origin!==n.relay_origin||t.preparation.installation_ref!==n.preparation.installation_ref)throw QK(`managed_preparation_mismatch`);return e.onRead(t),t};e.onStage(`checking`);let o=a(await t.reconcileManagedProject(i,AbortSignal.any([r,AbortSignal.timeout(15e3)])));if(o.draft.state===`awaiting_authorization`)throw QK(`authority_target_not_found`);if(o.draft.state===`validation_unknown`||o.draft.state===`validation_failed`||(o.draft.state===`prepared`&&(e.onStage(`validating`),o=a(await t.validateManagedProject(i,AbortSignal.any([r,AbortSignal.timeout(9e4)])))),o.draft.state!==`validated`&&o.draft.state!==`registered`))throw QK(`managed_${o.draft.state}`);r.throwIfAborted(),e.onStage(`launching`);let s=await t.launchManagedProject(i,AbortSignal.any([r,AbortSignal.timeout(12e4)]));return r.throwIfAborted(),s}var eq=GK();function tq(e,t){let n={projectId:e.project_id,projectName:e.display_name};return t.state===`connected`?{...n,state:`connected`}:t.state===`account_handoff_required`?{...n,state:`account_handoff_required`}:t.visibility===`visible_once`?{...n,state:`pairing_required`,command:t.command}:{...n,state:`not_recoverable`}}function nq(){return yV}function rq(){window.history.replaceState(null,``,`${window.location.pathname}${window.location.search}`)}function iq(){let e=window.open(`about:blank`,`_blank`);return e!==null&&(e.opener=null),e}function aq({connection:e,renderSurface:t,initialCreateOpen:n=!1}={}){let r=oq(e,n);return(0,L.jsx)(WH,{...r,...t?{renderSurface:e=>t(r,e)}:{}})}function oq(e,t=!1){let n=_z(),r=(0,I.useRef)(void 0),i=(0,I.useRef)(void 0),a=(0,I.useRef)(!1),o=(0,I.useRef)(!1),s=(0,I.useRef)(null),[c,l]=(0,I.useState)(null),[u,d]=(0,I.useState)(`Checking credit…`),f=(0,I.useRef)(bG(window.location.hash)),[p,m]=(0,I.useState)(null),h=(0,I.useRef)(null),g=(0,I.useRef)(!1),_=(0,I.useRef)(0),v=(0,I.useRef)(null),y=(0,I.useRef)(!1),b=(0,I.useMemo)(()=>e?.client??Zy({baseUrl:window.location.origin,csrfToken:()=>r.current,contextToken:()=>i.current}),[e?.client]),[x,S]=(0,I.useState)(null),[C,w]=(0,I.useState)(null),[T,E]=(0,I.useState)(eq),D=(0,I.useRef)(!1),O=(0,I.useRef)({baseUrl:``,apiKey:``}),[k,A]=(0,I.useState)([]),[ee,te]=(0,I.useState)(t),[j,ne]=(0,I.useState)(`surface`),[M,N]=(0,I.useState)([]),[P,re]=(0,I.useState)(!0),ie=(0,I.useRef)(!1),[ae,oe]=(0,I.useState)(!1),[se,ce]=(0,I.useState)(!1),[le,ue]=(0,I.useState)(null),[de,fe]=(0,I.useState)(null),[pe,me]=(0,I.useState)(!1),[he,ge]=(0,I.useState)(!1),[_e,F]=(0,I.useState)(!1),[ve,ye]=(0,I.useState)(null);async function be(){if(!(r.current===void 0||ie.current)){ie.current=!0,re(!0);try{N((await b.getProjects()).projects)}catch(t){if(e?.signal.aborted)return;n.notify({tone:`error`,title:`Projects unavailable`,message:$(t)})}finally{ie.current=!1,re(!1)}}}async function xe(e={}){h.current?.abort();let t=new AbortController;h.current=t,me(!0);try{fe(await b.getPackageUpdate({refresh:e.refresh===!0,signal:t.signal}))}catch{}finally{h.current===t&&(h.current=null,me(!1))}}(0,I.useEffect)(()=>{a.current||(a.current=!0,(async()=>{try{let t=e?null:HK(window.location.hash);if(t!==null){rq();let e=await b.exchangeSession(t.accessToken,t.accountDisplayName);r.current=e.csrf_token,i.current=e.context_token}let a=e?.bootstrap??await b.getBootstrap();if(r.current=a.csrf_token,a.account_gate?.status===`required`){let e=await b.createAccountContinuation();window.location.replace(zK({accessToken:e.access_token,localOrigin:window.location.origin,webBaseUrl:nq()}));return}if(S(a),w(null),await Promise.all([be(),xe()]),f.current!==null)try{let e=await b.readManagedProject(f.current);CG(e),m(e),E({...GK(e.draft.workspace_path),displayName:e.draft.display_name,description:e.draft.description??``,surface:e.draft.surface,...e.draft.existing_project_id===void 0?{}:{existingProjectId:e.draft.existing_project_id}}),te(!0),ne(`provider`)}catch(e){n.notify({tone:`warning`,title:`Trial request could not be restored`,message:wG(e)})}}catch(e){re(!1),w($(e))}})())},[b]),(0,I.useEffect)(()=>()=>{h.current?.abort(),s.current?.abort()},[]),(0,I.useEffect)(()=>{if(d(`Checking credit…`),!ee||j!==`provider`||p!==null||x===null)return;let e=new AbortController;return b.readAccountUsage(e.signal).then(t=>{e.signal.aborted||d(t.state===`ready`?`${t.remaining.toLocaleString(`en`)} test credit remaining`:`No test credit account yet`)}).catch(()=>{e.signal.aborted||d(`Credit unavailable · Check Account`)}),()=>e.abort()},[b,ee,j,p,x]),(0,I.useEffect)(()=>{if(x===null||e)return;let t=window.setInterval(()=>{b.heartbeat().catch(()=>void 0)},6e4);return()=>window.clearInterval(t)},[x,b,e]),(0,I.useEffect)(()=>{if(!e||!x)return;let t=()=>{document.visibilityState!==`hidden`&&be()},n=window.setInterval(t,3e4);return window.addEventListener(`focus`,t),()=>{window.clearInterval(n),window.removeEventListener(`focus`,t)}},[e,x,b]),(0,I.useEffect)(()=>{if(x===null||de?.latest_version===void 0||de.status===`up_to_date`||de.status===`failed`)return;let e=window.setInterval(()=>void xe(),de.status===`updating`?2e3:15e3);return()=>window.clearInterval(e)},[x,de?.latest_version,de?.status]),(0,I.useEffect)(()=>{let e=x?.package_update_completion;e===void 0||y.current||(y.current=!0,n.notify(e.restart_failure_count===0?{tone:`success`,title:`Tutti updated to ${e.target_version}`}:{tone:`warning`,title:`Tutti updated to ${e.target_version}`,message:`${e.restart_failure_count} local project${e.restart_failure_count===1?``:`s`} could not restart.`}))},[x,n]),(0,I.useEffect)(()=>{if(de?.status!==`failed`)return;let e=de.reason_code??`update_failed`;v.current!==e&&(v.current=e,n.notify({tone:`error`,title:`Tutti update did not complete`,message:qK(de.reason_code)}))},[n,de]);async function Se(){try{let e=await b.pickFolder();e.kind===`selected`?Ie({workspacePath:e.path}):e.kind===`unavailable`&&n.notify({tone:`info`,title:`Use a folder path`,message:e.message})}catch(e){n.notify({tone:`error`,title:`Folder picker unavailable`,message:$(e)})}}async function Ce(){let e={baseUrl:T.baseUrl.trim(),apiKey:T.apiKey.trim()},t=()=>O.current.baseUrl.trim()===e.baseUrl&&O.current.apiKey.trim()===e.apiKey;oe(!0);try{let r=await b.discoverModels({base_url:e.baseUrl,api_key:e.apiKey});if(!t())return;r.kind===`ok`?(A(r.models),E(e=>({...e,model:``}))):(A([]),n.notify({tone:`error`,title:`Provider check failed`,message:r.reason===`model_list_empty`?`The endpoint did not return any available models.`:`Check the Base URL and API key, then try again.`}))}catch(e){if(!t())return;A([]),n.notify({tone:`error`,title:`Provider check failed`,message:$(e)})}finally{oe(!1)}}async function we(){if(!o.current){o.current=!0,ce(!0);try{let e=await b.launchProject({workspace_path:T.workspacePath.trim(),surface:T.surface,project:WK(T),provider:{base_url:T.baseUrl.trim(),api_key:T.apiKey.trim(),model:T.model.trim()}});Le(),e.join_url===void 0?(await be(),Oe(e.project,e.feishu_setup)):window.location.assign(e.join_url)}catch(e){n.notify({tone:`error`,title:`Launch failed`,message:$(e)})}finally{o.current=!1,ce(!1)}}}async function Te(){if(o.current)return;o.current=!0;let t=new AbortController;s.current=t,ce(!0);let r=null;try{let n=await b.prepareManagedProject({request_ref:p?.draft.request_ref??Vt(),workspace_path:T.workspacePath.trim(),...WK(T),surface:T.surface,...T.existingProjectId===void 0?{}:{existing_project_id:T.existingProjectId}},t.signal);t.signal.throwIfAborted(),CG(n),m(n),E(e=>({...e,displayName:n.draft.display_name,description:n.draft.description??``})),r=n,window.history.replaceState(null,``,`${e?window.location.pathname+window.location.search:`/console`}#managed_request=${n.draft.request_ref}`)}catch(e){if(t.signal.aborted)return;n.notify({tone:`error`,title:`Trial preparation failed`,message:wG(e)})}finally{o.current=!1,ce(!1),s.current===t&&(s.current=null)}r!==null&&!t.signal.aborted&&Ee(r)}async function Ee(e=p){if(o.current||s.current||e===null)return;let t=new AbortController;s.current=t;try{e.draft.state===`awaiting_authorization`&&(o.current=!0,ce(!0),l(`checking`),await b.authorizeManagedProject(e.draft.request_ref,t.signal),t.signal.throwIfAborted());let n=await $K({client:b,prepared:e,signal:t.signal,onRead:m,onStage:e=>{l(e),o.current=!0,ce(!0)}});Le(),n.join_url===void 0?(await be(),Oe(n.project,n.feishu_setup)):window.location.assign(n.join_url)}catch(e){t.signal.aborted||n.notify({tone:`error`,title:`Managed launch paused`,message:wG(e)})}finally{s.current===t&&(s.current=null,o.current=!1,ce(!1),l(null))}}async function De(e){ue(e.project_id);try{let t=await b.launchProject({workspace_path:e.workspace_path});await be(),e.surface_profile.kind===`feishu`?Oe(t.project,t.feishu_setup):n.notify({tone:`success`,title:`${e.display_name} is ready`})}catch(e){let t=e instanceof Gt&&e.code===`provider_configuration_required`;n.notify({tone:t?`warning`:`error`,title:t?`Provider required`:`Launch failed`,message:t?`Use New project with this folder to update its Provider configuration.`:$(e)})}finally{ue(null)}}function Oe(e,t){let n=++_.current;if(t!==void 0){ye(tq(e,t));return}ye({projectId:e.project_id,projectName:e.display_name,state:`loading`}),b.getFeishuSetup(e.project_id).then(t=>{_.current===n&&ye(tq(e,t))}).catch(t=>{_.current===n&&ye({projectId:e.project_id,projectName:e.display_name,state:`unavailable`,unavailableMessage:$(t)})})}function ke(e){e||(_.current+=1,ye(null))}async function Ae(e){try{await navigator.clipboard.writeText(e),n.notify({tone:`success`,title:`Connection command copied`})}catch{n.notify({tone:`error`,title:`Could not copy connection command`})}}async function je(e){ue(e.project_id);try{let t=await b.refreshInvite(e.project_id);await navigator.clipboard.writeText(ZK({inviterName:``,projectName:e.display_name,joinUrl:t.join_url})),n.notify({tone:`success`,title:`Invitation copied`})}catch(e){n.notify({tone:`error`,title:`Invite unavailable`,message:$(e)})}finally{ue(null)}}async function Me(e){if(e.open_url===void 0)return;let t=iq();ue(e.project_id);try{let r=await b.openProject(e.project_id);N(e=>e.map(e=>e.project_id===r.project.project_id?r.project:e)),t===null?window.location.assign(r.handoff.url):t.location.replace(r.handoff.url),r.host_update===`updated`?n.notify({tone:`success`,title:`${e.display_name} updated`}):r.host_update===`deferred_busy`?n.notify({tone:`info`,title:`Opened without updating`,message:`Try Open again after the current project activity finishes.`}):r.host_update===`deferred_unsupported`?n.notify({tone:`info`,title:`Opened with the current Host`,message:`Stop and Resume this project once to enable safe automatic updates.`}):r.host_update===`deferred_unavailable`&&n.notify({tone:`warning`,title:`Update deferred`,message:`The current Host could not be safely restarted, so the project opened as-is.`})}catch(e){t?.close(),n.notify({tone:`error`,title:`Open failed`,message:$(e)})}finally{ue(null)}}async function Ne(e){ue(e.project_id);try{await b.stopProject(e.project_id),ve?.projectId===e.project_id&&ke(!1),await Promise.all([be(),xe()]),n.notify({tone:`success`,title:`${e.display_name} stopped`})}catch(e){n.notify({tone:`error`,title:`Stop failed`,message:$(e)})}finally{ue(null)}}async function Pe(){if(!(g.current||de?.status!==`ready`||!de.can_update)){g.current=!0,ge(!0);try{fe(await b.startPackageUpdate())}catch(e){e instanceof Gt&&e.statusCode===0?fe({...de,status:`updating`,can_update:!1,phase:`preparing`}):(n.notify({tone:`error`,title:`Update not started`,message:$(e)}),await xe())}finally{g.current=!1,ge(!1)}}}async function Fe(){if(!_e){F(!0);try{let e=await b.createAccountContinuation();window.location.replace(zK({accessToken:e.access_token,localOrigin:window.location.origin,webBaseUrl:nq(),intent:`sign_out`}))}catch(e){F(!1),n.notify({tone:`error`,title:`Sign out failed`,message:$(e)})}}}function Ie(e){if(o.current||s.current)return;p!==null&&(m(null),rq()),e.displayName!==void 0&&(D.current=!0);let t=e.baseUrl!==void 0&&e.baseUrl!==T.baseUrl||e.apiKey!==void 0&&e.apiKey!==T.apiKey;t&&(A([]),O.current={baseUrl:e.baseUrl??T.baseUrl,apiKey:e.apiKey??T.apiKey}),E(n=>({...e.workspacePath===void 0?n:KK(n,e.workspacePath,D.current),...e,...t?{model:``}:{}}))}function Le(){s.current?.abort(),s.current=null,o.current=!1,ce(!1),l(null),m(null),rq(),te(!1),ne(`surface`),A([]),O.current={baseUrl:``,apiKey:``},D.current=!1,E(GK())}function Re(e){if(!e){!ae&&!se&&Le();return}let t=x?.invocation.source===`terminal`?x.invocation.current_directory:``;D.current=!1,O.current={baseUrl:``,apiKey:``},A([]),E(GK(t)),ne(`surface`),te(!0)}function ze(e){o.current||le!==null||(m(null),rq(),E({...GK(e.workspace_path),displayName:e.display_name,surface:e.surface_profile.kind,existingProjectId:e.project_id}),ne(`provider`),te(!0))}function Be(e){if(e.preventDefault(),o.current||s.current||ae)return;if(p!==null){Ee();return}if(!LH(j,T))return;let t=IH(T),n=t[t.indexOf(j)+1];if(n!==void 0){ne(n);return}T.accessMode===`managed`?Te():we()}function Ve(){p!==null||o.current||s.current||ae||ne(e=>{let t=IH(T);return t[Math.max(0,t.indexOf(e)-1)]})}let He=YK({update:de,checking:pe,starting:he});return{...x===null?{}:{version:x.version},accountName:x?.account_gate?.status===`ready`?x.account_gate.account?.display_name??`Signed in`:`Signed in`,projectCenterHref:new URL(`/projects`,yV).toString(),form:T,managedPrepared:p!==null,creditNote:u,onDiscoverModels:()=>void Ce(),models:k,projects:M,projectsLoading:P,sessionLoading:x===null&&C===null,sessionError:C,createOpen:ee,createStep:j,modelDiscoveryPending:ae,launchPending:se,managedStage:c,projectActionPending:le,signOutPending:_e,feishuConnection:ve,...He===void 0?{}:{packageUpdateAction:He},onChange:Ie,onCreateOpenChange:Re,onCreateSubmit:Be,onCreateBack:Ve,onChooseFolder:()=>void Se(),onRefresh:()=>void Promise.all([be(),xe({refresh:!0})]),onLaunchExisting:e=>void De(e),onAuthorizeExisting:ze,onOpenProject:e=>void Me(e),onCopyInvite:e=>void je(e),onConnectFeishu:e=>Oe(e),onFeishuConnectionOpenChange:ke,onCopyFeishuCommand:e=>void Ae(e),onStopProject:e=>void Ne(e),onPackageUpdate:()=>void Pe(),onSignOut:()=>void Fe()}}function sq(){return(0,I.useEffect)(()=>Q(`/projects`,{replace:!0}),[]),null}function cq({continuation:e}){let t=_z(),n=et(),r=(0,I.useRef)(!1),[i,a]=(0,I.useState)(e.intent!==`sign_out`),o=(0,I.useCallback)(async n=>{if(!r.current){r.current=!0;try{await qn(X,e.accessToken,!0),window.location.replace(VK(e,n))}catch{t.notify({tone:`error`,title:`Local Console sign-in failed`,message:`Tutti could not create the private account handoff. Please try again.`}),Q(`/projects`,{replace:!0})}}},[e,t]),s=R({queryKey:Z.me,queryFn:()=>Wn(X),enabled:i}),c=eH(),l=tH();if((0,I.useEffect)(()=>{if(e.intent!==`sign_out`)return;let r=!1;return Xn(X).then(()=>{r||(n.removeQueries({queryKey:Z.me}),a(!0))}).catch(()=>{r||(t.notify({tone:`error`,title:`Sign out failed`}),Q(`/projects`,{replace:!0}))}),()=>{r=!0}},[e.intent,t,n]),(0,I.useEffect)(()=>{let e=s.data?.account;e?.profile_complete===!0&&o(e.display_name)},[s.data?.account,o]),!i||s.isLoading||s.data?.account.profile_complete===!0)return null;let u=s.data?.account.profile_complete===!1?l:c,d=s.error===null||Yt(s.error)?null:`Tutti could not check your current session. You can still try signing in.`;return(0,L.jsx)(CH,{...u,error:u.error??d,onBrandClick:()=>Q(`/`)})}function lq(){let e=BK(window.location.hash);return e===null?(0,L.jsx)(sq,{}):(0,L.jsx)(cq,{continuation:e})}function uq(e){let t=t=>{let n=new Map;for(let r of e)n.set(r[t],[...n.get(r[t])??[],r]);return[...n.entries()].map(([e,t])=>({ref:e,entries:t,representative:t.find(e=>e.state===`active`)??t[0],active:t.some(e=>e.state===`active`),revocationPending:t.some(e=>e.downstream_keys===`pending`),revoked:t.every(e=>e.downstream_keys===`confirmed`)}))};return{projects:t(`grant_ref`),computers:t(`installation_ref`)}}function dq({group:e}){return e.active?(0,L.jsx)(`small`,{children:e.revocationPending?`Enabled · previous access is still being disabled`:`Enabled`}):(0,L.jsx)(`small`,{children:e.revoked?`Disabled`:`Disabling…`})}function fq(e){let t=t=>(0,L.jsx)(XO,{title:`Authorized ${yz(t.representative.created_at)}`,action:t.active?(0,L.jsx)(J,{type:`button`,disabled:e.pending,onClick:()=>e.onSelect({kind:`grant`,ref:t.ref,label:t.representative.project_name}),children:`Disable Tutti credit`}):void 0,children:(0,L.jsx)(dq,{group:t})},t.ref),n=e.groups.filter(e=>e.active),r=e.groups.filter(e=>!e.active);return(0,L.jsxs)(kk,{title:`Tutti credit`,children:[e.groups.length===0?(0,L.jsx)(`p`,{children:`No Tutti credit access is recorded for your account.`}):null,n.map(t),n.length===0&&r.length>0?(0,L.jsx)(`small`,{children:r.some(e=>!e.revoked)?`Disabling…`:`Disabled`}):null,r.length>0?(0,L.jsx)(Ok,{title:`Previous authorizations`,children:r.map(t)}):null]})}function pq(e){let t=uq(e.overview.delegations);return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(kk,{title:`Computers`,children:t.computers.length===0?(0,L.jsx)(`p`,{children:`No authorized computers.`}):t.computers.map(t=>(0,L.jsx)(XO,{title:`Computer …${t.ref.slice(-8)}`,description:`${new Set(t.entries.map(e=>e.relay_project_ref)).size} project(s)`,action:t.active?(0,L.jsx)(J,{type:`button`,disabled:e.pending,onClick:()=>e.onSelect({kind:`installation`,ref:t.ref,label:`computer`}),children:`Disable Tutti credit`}):void 0,children:(0,L.jsx)(dq,{group:t})},t.ref))}),(0,L.jsx)(kk,{title:`Browsers`,children:e.overview.sessions.map(t=>(0,L.jsx)(XO,{title:t.current?`This browser`:`Other browser`,description:`Signed in ${yz(t.created_at)}`,action:t.current?void 0:(0,L.jsx)(J,{type:`button`,disabled:e.pending,onClick:()=>e.onSelect({kind:`session`,ref:t.session_ref,label:`browser`}),children:`Sign out`})},t.session_ref))})]})}function mq(e){let t=e.confirmation,n=t?.kind===`session`?`Sign out this browser?`:t?.kind===`installation`?`Disable this computer’s Tutti credit?`:`Disable Tutti credit for this project?`,r=t?.kind===`session`?`Projects running on your computers will continue.`:t?.kind===`installation`?`Stops new model access for your projects on this computer. Files stay intact; requests already running may finish.`:`Stops new model access for “${t?.label??`this project`}”. Files and membership stay intact; requests already running may finish.`;return(0,L.jsx)(Ck,{className:`product-account-dialog`,open:e.panel!==null,onOpenChange:n=>{n||(t?e.onSelectRevoke(null):e.onClose())},title:t?n:e.panel===`credits`?`Credits`:e.panel===`account`?`Account`:e.project?.displayName??`Project details`,description:t?r:e.panel===`project`&&e.project?.surface===`feishu`?`Use this project in its Feishu group.`:void 0,closeDisabled:e.pending||e.logoutPending,headerAction:t?void 0:(0,L.jsx)(fw,{type:`button`,label:`Refresh account`,icon:(0,L.jsx)(kx,{"aria-hidden":`true`}),disabled:e.loading||e.pending,onClick:e.onRefresh}),children:(0,L.jsx)(qO,{children:t?(0,L.jsxs)(Dk,{children:[(0,L.jsx)(J,{type:`button`,disabled:e.pending,onClick:()=>e.onSelectRevoke(null),children:`Cancel`}),(0,L.jsx)(pw,{type:`button`,disabled:e.pending,onClick:e.onConfirmRevoke,children:e.pending?`Updating…`:t.kind===`session`?`Sign out browser`:`Confirm disable`})]}):(0,L.jsxs)(L.Fragment,{children:[e.panel===`credits`?(0,L.jsxs)(L.Fragment,{children:[e.usageError?(0,L.jsx)(Ew,{children:e.usageError}):e.usage?.state===`ready`?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(YO,{items:[{label:`Available test credit`,value:e.usage.remaining.toLocaleString(`en`)}]}),(0,L.jsx)(Ok,{title:`Usage details`,children:(0,L.jsx)(JO,{items:[{label:`Used · all time`,value:e.usage.used.toLocaleString(`en`)},{label:`Requests · all time`,value:e.usage.request_count.toLocaleString(`en`)}]})})]}):e.usage?.state===`not_initialized`?(0,L.jsx)(Yx,{children:`No Tutti credit yet.`}):(0,L.jsx)(Xx,{}),(0,L.jsx)(`small`,{children:`Test credit only. Payments are not enabled.`})]}):null,e.panel===`project`?(0,L.jsxs)(L.Fragment,{children:[e.project?(0,L.jsx)(JO,{items:[{label:`Surface`,value:e.project.surface===`feishu`?`Feishu`:`Tutti Workspace`},{label:`Your role`,value:e.project.membershipLabel},{label:`Host`,value:e.project.hostStatus===`online`?`Online`:e.project.hostStatus===`offline`?`Offline`:`Unknown`}]}):(0,L.jsx)(Yx,{children:`Project unavailable.`}),e.overviewError?(0,L.jsx)(Ew,{children:e.overviewError}):e.overview?e.project?(0,L.jsx)(fq,{groups:uq(e.overview.delegations.filter(t=>t.relay_project_ref===e.project?.relayProjectRef)).projects,pending:e.pending,onSelect:e.onSelectRevoke}):null:(0,L.jsx)(Xx,{})]}):null,e.panel===`account`?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(JO,{items:[{label:`Name`,value:e.accountName},{label:`Email`,value:e.email}]}),(0,L.jsx)(Ok,{title:`Security`,children:e.overviewError?(0,L.jsx)(Ew,{children:e.overviewError}):e.overview?(0,L.jsx)(pq,{overview:e.overview,pending:e.pending,onSelect:e.onSelectRevoke}):(0,L.jsx)(Xx,{})}),(0,L.jsxs)(kk,{title:`Sign out`,children:[(0,L.jsx)(`small`,{children:`Signing out won’t stop your projects.`}),(0,L.jsx)(J,{type:`button`,disabled:e.logoutPending||e.pending,onClick:e.onSignOut,children:`Sign out`})]})]}):null,e.panel!==`credits`&&e.overview?.truncated?(0,L.jsx)(`small`,{children:`Only recent access records are shown. Contact support for older records.`}):null]})})})}var hq={overview:[`account-managed-access`],usage:[`account-managed-usage`]},gq={baseUrl:X.relayBaseUrl,credentials:`include`};function _q(e,t){let n=et(),r=_z(),i=R({queryKey:[...hq.overview,e],enabled:e!==null&&t,queryFn:({signal:e})=>Qy(gq,e),refetchOnWindowFocus:!0,refetchInterval:e=>e.state.data?.delegations.some(e=>e.downstream_keys===`pending`)?5e3:!1}),a=R({queryKey:[...hq.usage,e],enabled:e!==null,queryFn:({signal:e})=>$y(gq,e),refetchOnWindowFocus:!0,staleTime:3e4}),[o,s]=(0,I.useState)(null),c=o?.account===e?o.target:null,[l,u]=(0,I.useState)(!1),d=(0,I.useRef)(!1),f=(0,I.useRef)({target:``,id:Vt()});async function p(){if(d.current||!c||!e)return;d.current=!0,u(!0);let t=`${e}/${c.kind}/${c.ref}`;f.current.target!==t&&(f.current={target:t,id:Vt()});try{c.kind===`session`?await tb(gq,c.ref):await eb(gq,{command_id:f.current.id,target:{kind:c.kind,ref:c.ref}}),s(null),await n.invalidateQueries({queryKey:[...hq.overview,e]}),r.notify({tone:`success`,title:c.kind===`session`?`Browser signed out`:`Disabling Tutti credit`})}catch(e){r.notify({tone:`error`,title:`Change not confirmed`,message:wG(e)})}finally{d.current=!1,u(!1)}}return{overview:i.error===null?i.data:void 0,usage:a.error===null?a.data:void 0,overviewError:i.error===null?null:wG(i.error),usageError:a.error===null?null:wG(a.error),loading:i.isFetching||a.isFetching,pending:l,confirmation:c,selectRevoke:t=>s(t?{account:e,target:t}:null),confirmRevoke:()=>void p(),refresh:()=>{a.refetch(),t&&i.refetch()}}}var vq=/^[A-Za-z0-9_-]{8,256}$/u,yq=/https?:\/\/[^\s<>"'`“”‘’]+/giu,bq=/(?:^|[\s("'“‘])((?:\/)?join\/[A-Za-z0-9_-]{8,256})(?=$|[\s?#.,;:!'"”’)\]}])/giu,xq=/[.,;:!?)}\]]+$/u;function Sq(e){let t;try{t=decodeURIComponent(e)}catch{return null}return vq.test(t)?t:null}function Cq(e){let t=e.split(`/`).filter(Boolean);return t.length!==2||t[0]!==`join`?null:Sq(t[1]??``)}function wq(e,t){let n=Cq(t);n!==null&&e.add(`/join/${encodeURIComponent(n)}`)}function Tq(e,t){try{wq(e,new URL(t.replace(xq,``)).pathname)}catch{}}function Eq(e){let t=e.trim();if(t===``)return{kind:`empty`};let n=new Set;for(let e of t.matchAll(yq))Tq(n,e[0]);for(let e of t.matchAll(bq)){let t=e[1];if(t!==void 0)try{wq(n,new URL(t,`https://tutti.invalid`).pathname)}catch{}}let r=Sq(t);return r!==null&&n.add(`/join/${encodeURIComponent(r)}`),n.size===0?{kind:`invalid`}:n.size>1?{kind:`ambiguous`}:{kind:`matched`,route:[...n][0]}}function Dq(e){return Jt(e,`project_membership_required`)?{tone:`warning`,title:`Join this project first`,message:`This account has not joined the project. Open its invitation link, or return to Local Console and copy a new invite.`}:{tone:`error`,title:`Project open failed`,message:$(e)}}var Oq=`tutti://projects`,kq=3e4,Aq=/^[A-Za-z0-9_-]+$/u,jq=/^[A-Za-z0-9_-]{43}$/u,Mq=class extends Error{reason;constructor(e){super(`Tutti could not complete the desktop entry continuation.`),this.name=`DesktopEntryContinuationError`,this.reason=e}};function Nq(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t).replaceAll(`+`,`-`).replaceAll(`/`,`_`).replace(/=+$/u,``)}function Pq(e,t){if(!Aq.test(e))throw new Mq(`invalid`);let n=`=`.repeat((4-e.length%4)%4),r;try{r=atob(e.replaceAll(`-`,`+`).replaceAll(`_`,`/`)+n)}catch{throw new Mq(`invalid`)}let i=new Uint8Array(r.length);for(let e=0;e<r.length;e+=1)i[e]=r.charCodeAt(e);if(t!==void 0&&i.length!==t||Nq(i)!==e)throw new Mq(`invalid`);return i}function Fq(e){return typeof e==`string`&&Rt(e,Pt.relayDesktopEntryContinuation)}function Iq(e){return typeof e==`string`&&e.length===43&&Aq.test(e)}function Lq(e=globalThis.crypto){let t=new Uint8Array(32);e.getRandomValues(t);let n=Nq(t);if(n.length!==43)throw new Mq(`invalid`);return n}function Rq(e){if(!Fq(e.continuationRef)||!Iq(e.completionToken)||e.payloadKey.length!==43)throw new Mq(`invalid`);return Pq(e.payloadKey,32),`${Oq}?${new URLSearchParams({continuation:e.continuationRef,completion_token:e.completionToken,payload_key:e.payloadKey}).toString()}`}function zq(e,t={}){let n=Date.parse(e.expires_at);if(!Number.isFinite(n)||n<=(t.nowMs??Date.now())||!Fq(e.continuation_ref))throw new Mq(`invalid`);let r=Lq(t.cryptoImpl);return{continuationRef:e.continuation_ref,payloadKey:r,href:Rq({continuationRef:e.continuation_ref,completionToken:e.completion_token,payloadKey:r}),expiresAtMs:n}}function Bq(e){if(typeof e!=`object`||!e)throw new Mq(`invalid`);let t=e,n=t.iv,r=t.ciphertext;if(typeof n!=`string`||typeof r!=`string`||n.length!==16||r.length<24||r.length>4096)throw new Mq(`invalid`);return{iv:Pq(n,12),ciphertext:Pq(r)}}function Vq(e){let t;try{t=new URL(e)}catch{throw new Mq(`invalid`)}let n=t.port,r=Number(n);if(t.protocol!==`http:`||t.hostname!==`127.0.0.1`||!/^[1-9]\d{0,4}$/u.test(n)||!Number.isInteger(r)||r>65535||t.pathname!==`/console`||t.search!==``||t.username!==``||t.password!==``||t.hash===``)throw new Mq(`invalid`);let i=t.hash.slice(1),a=new URLSearchParams(i),o=a.get(`access_token`)??``;if(a.size!==1||a.getAll(`access_token`).length!==1||!jq.test(o)||i!==new URLSearchParams({access_token:o}).toString())throw new Mq(`invalid`);return t.toString()}async function Hq(e,t,n=globalThis.crypto){let r=Pq(t,32),i=Bq(e);try{let e=await n.subtle.importKey(`raw`,r,`AES-GCM`,!1,[`decrypt`]),t=await n.subtle.decrypt({name:`AES-GCM`,iv:i.iv},e,i.ciphertext);return Vq(new TextDecoder(`utf-8`,{fatal:!0}).decode(t))}catch(e){throw e instanceof Mq?e:new Mq(`invalid`)}}function Uq(e){let t=typeof e==`string`?Date.parse(e):NaN;if(!Number.isFinite(t))throw new Mq(`invalid`);return t}function Wq(e,t){return new Promise((n,r)=>{if(t.aborted){r(new Mq(`aborted`));return}let i=()=>{globalThis.clearTimeout(a),r(new Mq(`aborted`))},a=globalThis.setTimeout(()=>{t.removeEventListener(`abort`,i),n()},e);t.addEventListener(`abort`,i,{once:!0})})}async function Gq(e){let t=e.nowMs??Date.now,n=e.wait??Wq,r=t()+(e.timeoutMs??2e4);for(;!e.signal.aborted&&t()<r;){let i;try{i=await e.read(e.prepared.continuationRef,e.signal)}catch(i){if(e.signal.aborted)throw new Mq(`aborted`);if(i instanceof Gt&&!i.retryable)throw new Mq(`unavailable`);let a=r-t();if(a<=0)break;await n(Math.min(e.pollIntervalMs??500,a),e.signal);continue}if(typeof i!=`object`||!i)throw new Mq(`invalid`);let a=i;if(!Fq(a.continuation_ref)||a.continuation_ref!==e.prepared.continuationRef)throw new Mq(`invalid`);let o=Uq(a.expires_at);if(o<=t())throw new Mq(`expired`);if(a.status===`ready`)return Hq(a.sealed_payload,e.prepared.payloadKey,e.cryptoImpl);if(a.status!==`pending`)throw new Mq(`invalid`);let s=Math.min(r,o)-t();if(s<=0)break;await n(Math.min(e.pollIntervalMs??500,s),e.signal)}throw e.signal.aborted?new Mq(`aborted`):new Mq(`timeout`)}function Kq(e,t){let[n,r]=(0,I.useState)(0),[i,a]=(0,I.useState)(null),[o,s]=(0,I.useState)(!1),[c,l]=(0,I.useState)(`opening`),u=(0,I.useRef)(null),d=(0,I.useRef)(null),f=(0,I.useRef)(0),p=(0,I.useRef)(!1),m=(0,I.useCallback)(e=>{u.current=e,a(e)},[]);(0,I.useEffect)(()=>{d.current?.abort(),d.current=null,f.current+=1,p.current=!1,m(null),s(!1),l(`opening`)},[e,m]),(0,I.useEffect)(()=>{if(e===null)return;let t=u.current?.continuationRef??null,n=null,r=!1,i=window.setTimeout(()=>{n=new AbortController,Gn(X,{signal:n.signal}).then(t=>{r||m({accountRef:e,...zq(t)})}).catch(()=>{!r&&t!==null&&u.current?.continuationRef===t&&m(null)})},0);return()=>{r=!0,window.clearTimeout(i),n?.abort()}},[e,n,m]),(0,I.useEffect)(()=>{if(i===null||i.accountRef!==e)return;let t=i.expiresAtMs-Date.now(),n=t>3e4?t-kq:Math.max(1e3,Math.floor(t/2)),a=window.setTimeout(()=>{u.current?.continuationRef===i.continuationRef&&(m(null),r(e=>e+1))},Math.max(0,n));return()=>window.clearTimeout(a)},[e,i,m]),(0,I.useEffect)(()=>()=>{d.current?.abort()},[]);let h=(0,I.useCallback)(()=>{s(!0),l(`opening`),d.current?.abort();let n=u.current;if(n===null||n.accountRef!==e||n.expiresAtMs<=Date.now()){r(e=>e+1);return}r(e=>e+1);let i=new AbortController;d.current=i;let a=f.current+1;f.current=a,Gq({prepared:n,read:(e,t)=>Kn(X,e,{signal:t}),signal:i.signal}).then(async e=>{if(!(f.current!==a||i.signal.aborted||p.current)){p.current=!0;try{t?(await t(e,i.signal),i.signal.aborted||s(!1),p.current=!1):window.location.replace(e)}catch(e){throw p.current=!1,e}}}).catch(e=>{f.current!==a||i.signal.aborted||e instanceof Mq&&e.reason===`aborted`||l(`failed`)}).finally(()=>{d.current===i&&(d.current=null)})},[e,m,t]),g=(0,I.useCallback)(e=>{s(e),e||(d.current?.abort(),d.current=null,f.current+=1,l(`opening`))},[]),_=(i!==null&&i.accountRef===e?i:null)?.href??`tutti://projects`;return{localScopeHref:_,localHandoffOpen:o,localHandoffStatus:c,localHandoffRetryHref:_,onLocalHandoffOpenChange:g,onLocalScopeSelect:h}}function qq(e){let t=(0,I.useRef)(null),[n,r]=(0,I.useState)(null),i=n?.accountRef===e?.account_ref?n?.connection??null:null,[a,o]=(0,I.useState)(`disconnected`),[s,c]=(0,I.useState)(null),l=(0,I.useCallback)(()=>{t.current?.dispose(),t.current=null,r(null),o(`disconnected`),c(null)},[]);(0,I.useEffect)(()=>(l(),l),[e?.account_ref,l]);let u=(0,I.useCallback)(async(n,i)=>{if(e){l();try{let a=await Cb({accessUrl:n,accountDisplayName:e.display_name,signal:i,registerAccount:e=>qn(X,e,!0),onLost:()=>{l(),o(`lost`)}});if(i.aborted){a.dispose();return}t.current=a,r({accountRef:e.account_ref,connection:a})}catch(e){throw i.aborted||(o(`lost`),e instanceof Gt&&c([/^[a-z0-9_]{1,80}$/u.test(e.code)?e.code:`bridge_connection_failed`,e.requestId].filter(Boolean).join(` · `))),e}}},[e?.account_ref,e?.display_name,l]);return(0,I.useEffect)(()=>{if(!i)return;let e=!1,t=()=>{e||document.visibilityState===`hidden`||(e=!0,i.client.heartbeat().catch(()=>{}).finally(()=>{e=!1}))},n=window.setInterval(t,1e4);return window.addEventListener(`focus`,t),()=>{window.clearInterval(n),window.removeEventListener(`focus`,t)}},[i]),{connection:i,state:a,diagnostic:s,disconnect:l,connect:u}}function Jq({requestedOpenProjectRef:e,initialPanel:t}){let n=et(),r=_z(),i=eH(),a=tH(),[o,s]=(0,I.useState)(``),[c,l]=(0,I.useState)(null),[u,d]=(0,I.useState)(!1),f=(0,I.useRef)(!1),[p,m]=(0,I.useState)(t??null),[h,g]=(0,I.useState)(null);(0,I.useEffect)(()=>{m(t??null)},[t]);let _=(0,I.useRef)(null),v=R({queryKey:Z.me,queryFn:()=>Wn(X)}),y=R({queryKey:[...Z.accountProjects,v.data?.account.account_ref],queryFn:({signal:e})=>Sb({baseUrl:X.relayBaseUrl,credentials:`include`},e),enabled:v.error===null&&v.data?.account.profile_complete===!0,refetchOnWindowFocus:!0}),b=v.error===null&&v.data?.account.profile_complete===!0?v.data.account:null,x=_q(b?.account_ref??null,p===`account`||p===`project`),S=qq(b);EV(b!==null);let C=gt({mutationFn:e=>$n(X,e),onSuccess:e=>{if(wV(n),e.disposition.kind===`opened`&&e.result?.open_url!==void 0){SV(e.result.open_url);return}r.notify({tone:`warning`,title:`Host is offline`})},onError:e=>{let t=Dq(e);r.notify({...t})}}),w=C.mutate;(0,I.useEffect)(()=>{e===void 0||v.data?.account.profile_complete!==!0||_.current===e||(_.current=e,w(e))},[v.data?.account.profile_complete,w,e]);let T=gt({mutationFn:()=>(S.disconnect(),Xn(X)),onSuccess:()=>{m(null),g(null),x.selectRevoke(null),n.removeQueries({queryKey:hq.overview}),n.removeQueries({queryKey:hq.usage}),n.removeQueries({queryKey:Z.accountProjects}),n.invalidateQueries({queryKey:Z.relayRoot}),n.invalidateQueries({queryKey:Z.me}),n.invalidateQueries({queryKey:Z.recentProjects})},onError:e=>{r.notify({tone:`error`,title:`Sign out failed`,message:$(e)})}}),E=b??void 0,D=Kq(E?.profile_complete===!0?E.account_ref:null,S.connect),O=v.error!==null&&Yt(v.error)?i:v.data?.account!==void 0&&!v.data.account.profile_complete?a:null;if(O!==null)return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(Ab,{route:{kind:`home`}}),(0,L.jsx)(CH,{...O,onBrandClick:()=>Q(`/`)})]});let k=(y.error===null?y.data?.projects??[]:[]).map(Dz),A=()=>{let e=Eq(o);if(e.kind!==`matched`){l(e.kind===`ambiguous`?`Paste one Tutti invitation at a time.`:`Paste a valid Tutti invitation.`);return}Q(e.route)},ee=e=>{d(e),e||(s(``),l(null))},te=(e,t)=>(0,L.jsx)(YH,{...e?{local:e}:{},localDialogs:t,connectionState:S.state,connectionDiagnostic:S.diagnostic,onDisconnect:S.disconnect,relayOrigin:new URL(X.relayBaseUrl,window.location.origin).origin,account:E===void 0?null:{displayName:E.display_name},projects:k,truncated:y.data?.truncated??!1,accountActions:E?(0,L.jsx)(ZO,{name:E.display_name,credit:x.usage?.state===`ready`?`Credits · ${x.usage.remaining.toLocaleString(`en`)}`:x.usageError?`Credits unavailable`:`Credits`,disabled:x.pending||T.isPending,onCredit:()=>m(`credits`),onAccount:()=>m(`account`)}):void 0,onProjectDetails:e=>{g(e.relayProjectRef),m(`project`)},loading:v.isLoading||y.isLoading,error:v.error===null?y.error===null?null:$(y.error):$(v.error),openPending:C.isPending,logoutPending:T.isPending,joinLinkForm:{value:o,error:c,onChange:e=>{s(e),l(null)},onSubmit:A},joinOpen:u,localScopeHref:D.localScopeHref,localHandoffOpen:D.localHandoffOpen,localHandoffStatus:D.localHandoffStatus,localHandoffRetryHref:D.localHandoffRetryHref,onJoinOpenChange:ee,onLocalHandoffOpenChange:D.onLocalHandoffOpenChange,onLocalScopeSelect:()=>{f.current=!1,D.onLocalScopeSelect()},onRequestNewProject:()=>{f.current=!0,D.onLocalScopeSelect()},onCopyLaunchCommand:e=>{navigator.clipboard.writeText(e).then(()=>{r.notify({tone:`success`,title:`Command copied`})}).catch(()=>{r.notify({tone:`error`,title:`Copy failed`,message:`The browser could not copy the launch command.`})})},onBrandClick:()=>Q(`/`),onOpenProject:e=>C.mutate(e),onLogout:()=>T.mutate()});return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(Ab,{route:{kind:`project_center`}}),S.connection?(0,L.jsx)(aq,{connection:S.connection,initialCreateOpen:f.current,renderSurface:te}):te(),E?(0,L.jsx)(mq,{panel:p,project:k.find(e=>e.relayProjectRef===h),accountName:E.display_name,email:E.email,...x,logoutPending:T.isPending,onSelectRevoke:x.selectRevoke,onConfirmRevoke:x.confirmRevoke,onRefresh:()=>{x.refresh(),y.refetch()},onSignOut:()=>T.mutate(),onClose:()=>{m(null),x.selectRevoke(null),t&&Q(`/projects`,{replace:!0})}}):null]})}function Yq(e){let t=e?.relay;if(t?.join_url_visibility===`visible_once`&&t.join_url!==void 0&&t.join_url.trim()!==``)return t.join_url}function Xq(e,t){try{return new URL(e).origin===new URL(t,e).origin}catch{return!1}}function Zq(e,t){let n=Yq(e);if(n!==void 0)return{kind:`join`,joinUrl:n};let r=e?.relay?.relay_project_ref;return r===void 0?{kind:`unavailable`,message:`Relay project is unavailable`}:Xq(t.currentOrigin,t.relayBaseUrl)?{kind:`relay_open`,relayProjectRef:r}:{kind:`unavailable`,message:`Open the latest Join URL printed by tutti launch.`}}var Qq=`gpt-5.5`,$q=`/host-local/v1`;function eJ(){return new URL(window.location.href).searchParams.get(`token`)?.trim()??``}function tJ(e){return{baseUrl:$q,credentials:`same-origin`,headers:{authorization:`Bearer ${e}`}}}function nJ(e){return z(tJ(e),`/provider/config`)}function rJ(e){return z(tJ(e),`/launch-status`)}function iJ(e){return z(tJ(e),`/project`)}function aJ(e,t){return z(tJ(e),`/project`,{method:`POST`,body:t})}function oJ(e,t){return z(tJ(e),`/provider/config`,{method:`POST`,body:t})}function sJ(e){return e===void 0?`loading`:e.status===`configured`?`configured`:e.status===`invalid`?`invalid`:`not configured`}function cJ(e){let t=e instanceof Error&&`code`in e?String(e.code):``;return t.startsWith(`provider_`)?t:$(e)}function lJ(){let e=eJ(),t=e===``,[n,r]=(0,I.useState)({projectName:``,apiKey:``,baseUrl:``,defaultModel:Qq}),[i,a]=(0,I.useState)(null),[o,s]=(0,I.useState)(null),c=(0,I.useRef)(!1),l=R({queryKey:[`host-local`,`provider-config`,e],queryFn:()=>nJ(e),enabled:!t}),u=R({queryKey:[`host-local`,`launch-status`,e],queryFn:()=>rJ(e),enabled:!t}),d=R({queryKey:[`host-local`,`project`,e],queryFn:()=>iJ(e),enabled:!t}),f=u.data,p=gt({mutationFn:e=>$n(X,e.relayProjectRef),onSuccess:e=>{if(e.disposition.kind===`opened`&&e.result?.open_url!==void 0){SV(e.result.open_url);return}s(`Host is offline`)},onError:e=>{s($(e))}}),m=gt({mutationFn:async()=>{let t=n.projectName.trim(),r=d.data?.display_name.trim()??``;t!==``&&t!==r&&await aJ(e,{display_name:t});let i={api_key:n.apiKey.trim()},a=n.baseUrl.trim(),o=n.defaultModel.trim();return a!==``&&(i.base_url=a),o!==``&&(i.default_model=o),await oJ(e,i)},onSuccess:()=>{a(`Provider saved.`),r(e=>({...e,apiKey:``})),d.refetch(),l.refetch(),v()}}),h=l.data;(0,I.useEffect)(()=>{let e=d.data?.display_name;e!==void 0&&r(t=>t.projectName.trim()===``?{...t,projectName:e}:t)},[d.data?.display_name]),(0,I.useEffect)(()=>{t||h?.status!==`configured`||v()},[h?.status,t]);let g=t?`Setup token is missing.`:d.error===null?l.error===null?m.error===null?o:cJ(m.error):cJ(l.error):cJ(d.error);function _(e){e.preventDefault(),a(null),s(null),c.current=!1,!t&&n.apiKey.trim()!==``&&n.projectName.trim()!==``&&m.mutate()}async function v(){if(c.current)return;c.current=!0;let e=Zq(f??(await u.refetch()).data,{currentOrigin:window.location.origin,relayBaseUrl:yV});if(e.kind===`join`){window.location.assign(e.joinUrl);return}if(e.kind===`unavailable`){s(e.message);return}p.mutate({relayProjectRef:e.relayProjectRef})}return(0,L.jsx)(ZH,{form:n,statusLabel:sJ(h),configured:h?.status===`configured`,loading:l.isLoading||d.isLoading,pending:m.isPending,tokenMissing:t,error:g,success:i,openProjectPending:p.isPending,onChange:e=>r(t=>({...t,...e})),onSubmit:_,onRetry:()=>void l.refetch(),onBrandClick:()=>Q(`/`)})}function uJ(e){return`${e.created_at}:${e.id}`}function dJ(e){return{kind:`initial`,entry:e}}function fJ(e,t=50){if(e.kind===`older`)return{before:e.before,limit:t};if(e.kind===`newer`)return{after:e.after,limit:t};switch(e.entry.kind){case`latest`:return{limit:t};case`start`:return{anchor:`start`,limit:t};case`around`:return{around:e.entry.messageId,limit:t}}}function pJ(e){let t=e.window.older_cursor;return e.window.has_older&&t!==void 0?{kind:`older`,before:t}:void 0}function mJ(e){let t=e.window.newer_cursor;return e.window.has_newer&&t!==void 0?{kind:`newer`,after:t}:void 0}function hJ(e,t=50){let n=e[0],r=e.at(-1);if(n===void 0||r===void 0)return{items:[],window:{has_older:!1,has_newer:!1,limit:t}};let i=new Map;for(let t of e)for(let e of t.items)i.set(e.id,e);let a=[...i.values()].sort((e,t)=>uJ(e).localeCompare(uJ(t))),o={has_older:n.window.has_older,has_newer:r.window.has_newer,limit:n.window.limit};return o.has_older&&n.window.older_cursor!==void 0&&(o.older_cursor=n.window.older_cursor),o.has_newer&&r.window.newer_cursor!==void 0&&(o.newer_cursor=r.window.newer_cursor),{items:a,window:o}}function gJ(e){let t=et(),n=_z(),r=gt({mutationFn:t=>e.hostClient.retryTask(t.taskId,{expected_latest_run_result_id:t.runResultId}),onMutate:()=>n.notify({tone:`loading`,title:`Retrying task`}),onSuccess:(r,i,a)=>{if(DV(t,e.relayProjectRef,r.invalidates),r.disposition.kind===`accepted`){n.update(a,{tone:`success`,title:`Task retry started`});return}if(r.disposition.kind===`already_running`||r.disposition.kind===`retry_already_started`){n.update(a,{tone:`info`,title:`Task retry already started`});return}n.update(a,{tone:`warning`,title:`Task retry unavailable`,message:r.disposition.kind===`latest_run_result_changed`?`The task result changed. Review the latest result before retrying.`:r.disposition.kind===`retry_requires_resolution`?`This failure needs to be resolved before it can be retried safely.`:`The task cannot be retried in its current state.`})},onError:(e,t,r)=>{n.update(r,{tone:`error`,title:`Task retry failed`,message:$(e)})}});return{retry:(e,t)=>r.mutate({taskId:e,runResultId:t}),stateFor:(e,t,n)=>r.isPending&&r.variables?.taskId===e&&r.variables.runResultId===t?`retrying`:n}}var _J=5400,vJ=1500;function yJ(e){let t=e.completionSource;return t?.activityRef??t?.workflowRef??t?.taskId??e.key}function bJ(e){switch(e.kind){case`accepted`:case`already_running`:return null;case`scratchpad_empty`:return{label:`Scratchpad is empty. Let it refresh before running.`,tone:`error`};case`stale_scratchpad`:return{label:`Scratchpad changed. Review the latest snapshot and run again.`,tone:`error`};case`provider_not_configured`:return{label:`Provider is not configured yet.`,tone:`error`};case`provider_unavailable`:return{label:`Provider unavailable: ${e.reason}.`,tone:`error`};case`interrupted`:return{label:`Run was interrupted. Try again.`,tone:`error`}}}function xJ(e,t){t.displayName.trim()===``||e.has(t.key)||e.set(t.key,t)}function SJ(e){if(e.author.kind!==`human`)return null;let t=e.author.display_name?.trim()||`Member`;return{key:e.author.ref===void 0?`message-author:${t.toLocaleLowerCase()}`:e.author.ref,displayName:t,avatar:e.author.avatar??{kind:`initials`,initials:pg(t),color:`blue`}}}function CJ({account:e,presence:t,messages:n=[]}){let r=new Map;e!==void 0&&xJ(r,{key:e.account_ref,displayName:e.display_name,avatar:e.avatar});for(let e of t?.sample_members??[])xJ(r,{key:e.account_ref,displayName:e.display_name,avatar:e.avatar});for(let e of t?.members??[])xJ(r,{key:e.account_ref,displayName:e.display_name,avatar:e.avatar});for(let e of n){let t=SJ(e);t!==null&&xJ(r,t)}return[...r.values()]}function wJ({account:e,presence:t}){let n={},r=(e,t)=>{let r=n[e];n[e]={avatar:t.avatar,online:r?.online===!0||t.online}};for(let e of t?.members??[])r(e.account_ref,{avatar:e.avatar,online:e.online});for(let e of t?.sample_members??[])r(e.account_ref,{avatar:e.avatar,online:!0});return e!==void 0&&r(e.account_ref,{avatar:e.avatar,online:!0}),n}function TJ({relayProjectRef:e}){let t=et(),n=_z(),r=SK(),i=(0,I.useMemo)(()=>or({...X,relayProjectRef:e}),[e]),a=gJ({hostClient:i,relayProjectRef:e}),[o,s]=(0,I.useState)(``),[c,l]=(0,I.useState)(``),[u,d]=(0,I.useState)(null),[f,p]=(0,I.useState)(null),[m,h]=(0,I.useState)(null),[g,_]=(0,I.useState)(()=>Date.now()),[v,y]=(0,I.useState)(null),b=new URL(xV(),window.location.origin).searchParams.get(`message`),x=b!==null&&Rt(b,Pt.message)?b:void 0,[S,C]=(0,I.useState)(()=>x===void 0?{kind:`latest`}:{kind:`around`,messageId:x}),w=(0,I.useRef)(null),T=(0,I.useRef)(null),E=(0,I.useRef)(null),[D,O]=(0,I.useState)(null),k=f!==null;(0,I.useEffect)(()=>{x!==void 0&&(S.kind!==`around`||S.messageId!==x)&&C({kind:`around`,messageId:x})},[S,x]);let A=(t=null)=>{C({kind:`latest`}),y(t),x!==void 0&&Q(en(e),{replace:!0})},ee=R({queryKey:Z.bootstrap(e),queryFn:()=>i.getBootstrap(),staleTime:bV}),te=ee.data?.session.account.account_ref,j=te===void 0?null:`${te}:${e}`,ne=x!==void 0||j!==null&&D===j;(0,I.useEffect)(()=>{j===null||D===j||(x===void 0&&te!==void 0&&C(FG(te,e).start_chat_pending?{kind:`start`}:{kind:`latest`}),O(j))},[te,j,e,x,D]);let M=_t({queryKey:Z.messageHistory(e,S,50),queryFn:({pageParam:e})=>i.getMessages(fJ(e)),initialPageParam:dJ(S),getPreviousPageParam:e=>pJ(e),getNextPageParam:e=>mJ(e),enabled:ee.isSuccess&&ne,staleTime:bV}),N=R({queryKey:Z.scratchpad(e),queryFn:()=>i.getScratchpad(),enabled:ee.isSuccess,staleTime:bV,refetchInterval:k?vJ:!1}),P=R({queryKey:Z.activeClarification(e),queryFn:()=>i.getActiveClarification(),enabled:ee.isSuccess,staleTime:bV,refetchInterval:k?vJ:!1}),re=R({queryKey:Z.activeApproval(e),queryFn:()=>i.getActiveApproval(),enabled:ee.isSuccess,staleTime:bV}),ie=R({queryKey:Z.executionStatus(e),queryFn:()=>i.getExecutionStatus(),enabled:ee.isSuccess,staleTime:bV,refetchInterval:k?vJ:!1}),ae=R({queryKey:Z.readState(e),queryFn:()=>i.getReadState(),enabled:ee.isSuccess,staleTime:bV}),oe=R({queryKey:Z.projectPresence(e),queryFn:()=>er(X,e),enabled:ee.isSuccess,staleTime:bV,refetchInterval:6e4});EV(ee.isSuccess);let se=gt({mutationFn:e=>i.updateProjectDisplayName({display_name:e}),onMutate:e=>n.notify({tone:`loading`,title:`Saving project name`,message:e}),onSuccess:(r,i,a)=>{DV(t,e,r.invalidates??[{kind:`workspace`},{kind:`bootstrap`}]),n.update(a,{tone:`success`,title:`Project name saved`,message:i})},onError:(e,t,r)=>{n.update(r,{tone:`error`,title:`Project name save failed`,message:`${t}: ${$(e)}`})}}),ce=gt({mutationFn:e=>i.updateProjectDescription({description:e}),onMutate:e=>n.notify({tone:`loading`,title:`Saving project description`,...e.length===0?{}:{message:e}}),onSuccess:(r,i,a)=>{DV(t,e,r.invalidates??[{kind:`workspace`},{kind:`bootstrap`}]),n.update(a,{tone:`success`,title:`Project description saved`,...i.length===0?{}:{message:i}})},onError:(e,t,r)=>{n.update(r,{tone:`error`,title:`Project description save failed`,message:$(e)})}}),le=gt({mutationFn:({body:e,commandId:t})=>i.sendMainChatMessage({body:e},{commandId:t}),onSuccess:(n,r)=>{w.current=null,s(e=>e.trim()===r.body?``:e),n.result?.message!==void 0&&(S.kind===`latest`&&!M.hasNextPage?y(n.result.message.id):A(n.result.message.id)),DV(t,e,n.invalidates)},onError:e=>{n.notify({tone:`error`,title:`Message send failed`,message:$(e)})}}),ue=gt({mutationFn:async t=>{let n=await $V({relayProjectRef:e,purpose:`reference_file`,file:t});return i.uploadReferenceFile(n)},onMutate:e=>n.notify({tone:`loading`,title:`Uploading reference`,message:e.name}),onSuccess:(r,i,a)=>{let o=r.result?.message;o!==void 0&&(S.kind===`latest`&&!M.hasNextPage?y(o.id):A(o.id)),DV(t,e,r.invalidates),n.update(a,{tone:`success`,title:`Reference uploaded`,message:r.result?.file.name??i.name})},onError:(e,t,r)=>{n.update(r,{tone:`error`,title:`Reference upload failed`,message:$(e)})}}),de=gt({mutationFn:e=>i.submitWorklist(e===void 0?{}:{expected_scratchpad_updated_at:e}),onMutate:()=>(p({kind:`request`}),n.notify({tone:`loading`,title:`Running Scratchpad`})),onSuccess:(r,i,a)=>{if(r.disposition.kind===`accepted`){let e=r.result?.activity_ref;p(e===void 0?null:{kind:`activity`,activityRef:e,...r.result?.workflow_ref===void 0?{}:{workflowRef:r.result.workflow_ref}}),n.update(a,{tone:`success`,title:`Scratchpad run started`,message:`Tutti is preparing Worklist tasks.`})}else if(r.disposition.kind===`already_running`)p(null),n.update(a,{tone:`info`,title:`Already running`,message:`Tutti is already processing work.`});else{p(null);let e=bJ(r.disposition);n.update(a,{tone:e?.tone??`warning`,title:`Scratchpad run blocked`,...e?.label===void 0?{}:{message:e.label}})}DV(t,e,r.invalidates)},onError:(e,t,r)=>{p(null),n.update(r,{tone:`error`,title:`Scratchpad run failed`,message:$(e)})}}),fe=ee.data,pe=wJ({account:fe?.session.account,presence:oe.data?.presence}),me=fe?.generated_at??new Date(0).toISOString(),he=M.data===void 0?void 0:hJ(M.data.pages,50),ge=he??(ne&&S.kind===`latest`?fe?.snapshots.main_chat:void 0)??OV(),_e=M.data!==void 0&&M.hasPreviousPage===!0,F=M.data!==void 0&&M.hasNextPage===!0,ve=S.kind===`latest`||S.kind===`start`&&!F||S.kind===`around`&&ge.items.length>0&&!F,ye=S.kind===`around`?`around:${S.messageId}`:S.kind,be=S.kind===`around`?`focus`:S.kind===`start`?`start`:`latest`,xe=fe!==void 0&&(!ne||he===void 0&&M.isLoading&&(S.kind!==`latest`||fe.snapshots.main_chat===void 0)),Se=N.data??fe?.snapshots.scratchpad??AV(),Ce=ae.data??fe?.snapshots.read_state;MV({enabled:ee.isSuccess,hostClient:i,relayProjectRef:e,readState:Ce,scope:`chat`});let we=P.data??fe?.snapshots.active_clarification??NV(),Te=re.data??fe?.snapshots.active_approval??{state:`none`},Ee=we.state===`active`?we.round.id:void 0;(0,I.useEffect)(()=>{u!==null&&(Ee===void 0||u!==Ee)&&d(null)},[Ee,u]);let De=we.state===`active`&&we.thread.owner.kind===`task_compile`,Oe=(0,I.useMemo)(()=>{let e=new Set;for(let t of ge.items)t.clarification_card!==void 0&&e.add(t.clarification_card.round_id);return Ee!==void 0&&e.add(Ee),[...e]},[Ee,ge.items]),ke=mt({queries:Oe.map(t=>({queryKey:Z.clarificationRoundMessages(e,t),queryFn:()=>i.getClarificationRoundMessages(t,{anchor:`start`,limit:50}),enabled:ee.isSuccess}))}),Ae=gt({mutationFn:({roundId:e,body:t})=>i.sendClarificationRoundMessage(e,{body:t}),onSuccess:n=>{l(``),DV(t,e,n.invalidates)},onError:e=>{n.notify({tone:`error`,title:`Reply send failed`,message:$(e)})}}),je=gt({mutationFn:e=>i.submitClarificationRound(e,we.state===`active`&&we.round.answer_revision!==void 0?{expected_answer_revision:we.round.answer_revision}:{}),onMutate:e=>(d(e),n.notify({tone:`loading`,title:`Submitting reply`})),onSuccess:(r,i,a)=>{DV(t,e,r.invalidates);let o=r.disposition.kind===`accepted`||r.disposition.kind===`already_submitted`;o||d(e=>e===i?null:e),n.update(a,{tone:o?`success`:`warning`,title:o?`Reply submitted`:`Reply not submitted`,...o?{}:{message:r.disposition.kind===`no_answers`?`Add an answer before submitting.`:`The clarification or its answers changed. Review it and submit again.`}})},onError:(e,t,r)=>{d(e=>e===t?null:e),n.update(r,{tone:`error`,title:`Reply submit failed`,message:$(e)})}}),Me=gt({mutationFn:({approvalId:e,decisionId:t})=>i.decideApproval(e,{decision_id:t}),onMutate:()=>n.notify({tone:`loading`,title:`Sending decision`}),onSuccess:(r,i,a)=>{DV(t,e,r.invalidates),n.update(a,{tone:`success`,title:`Decision sent`})},onError:(e,t,r)=>{n.update(r,{tone:`error`,title:`Decision failed`,message:$(e)})}}),Ne=Object.fromEntries(Oe.map((e,t)=>[e,(ke[t]?.data??OV()).items.map(e=>Lz(e,{authorProfiles:pe,taskRetryState:a.stateFor}))])),Pe=CJ({account:fe?.session.account,presence:oe.data?.presence,messages:[...ge.items,...ke.flatMap(e=>e.data?.items??[])]}),Fe=ie.data??fe?.snapshots.execution_status??PV(me),Ie=FV(Fe),Le=IV(Fe,`scratchpad_refresh`),Re=IV(Fe,`scratchpad_refresh`,`foreground`),ze=IV(Fe,`task_compile`,`foreground`),Be=IV(Fe,`project_context_bootstrap`,`foreground`),Ve=f?.kind===`activity`?f.activityRef:void 0,He=f?.kind===`activity`?f.workflowRef:void 0;(0,I.useEffect)(()=>{if(f===null)return;if(Se.state===`submitted`){p(null);return}if(Se.state===`empty`){p(null);return}if(Fe.status===`pending`){De||p(null);return}let e=Fe.last_conclusion,t=He!==void 0&&e?.workflow_ref===He,r=Ve!==void 0&&e?.activity_ref===Ve;if(!(!t&&!r)){if(p(null),e?.kind===`failed`){n.notify({tone:`error`,title:`Scratchpad run failed`,message:e.summary});return}if(e?.kind===`needs_human`){n.notify({tone:`warning`,title:`Scratchpad needs input`,message:e.summary});return}}},[Fe.last_conclusion?.activity_ref,Fe.last_conclusion?.kind,Fe.last_conclusion?.summary,Fe.last_conclusion?.workflow_ref,Fe.status,Fe.summary,De,n,Se.state,f,Ve,He]);let Ue=Ve!==void 0&&Ie.some(e=>e.activity_ref===Ve),We=Ue&&Ie.some(e=>e.activity_ref===Ve&&e.workflow_kind===`scratchpad_refresh`)||f!==null&&Re,Ge=ze||Be||We||Ue||De,Ke=Le,qe=de.isPending||Ge||f!==null&&Fe.status===`idle`,Je=Fe.status!==`idle`||qe||m!==null;(0,I.useEffect)(()=>{if(!Je)return;_(Date.now());let e=window.setInterval(()=>{_(Date.now())},1e3);return()=>{window.clearInterval(e)}},[Je]);let Ye=Ie.some(e=>e.activity_kind===`procedure`&&(e.lane??`foreground`)===`foreground`),Xe=(Ie.some(e=>e.activity_kind===`run`)||Ye)&&!Ke&&!qe,Ze=hV(Fe),Qe={key:`scratchpad-submit`,label:De?`Needs input`:We?`Compiling Worklist tasks`:Be?`Preparing project context`:ze?`Compiling Worklist tasks`:`Preparing Worklist`,title:De?`Needs input`:`Preparing Scratchpad for Worklist.`,tone:De?`pending`:`running`,target:De?{kind:`clarification`}:{kind:`scratchpad`}},$e=qe&&Ze.length===0?[Qe]:Ze,tt=dV(Fe,{now:g}),nt=Ie.find(e=>(e.lane??`foreground`)===`foreground`?e.workflow_kind===`project_context_bootstrap`&&Be||e.workflow_kind===`task_compile`&&ze||e.workflow_kind===`scratchpad_refresh`&&We?!0:Ve!==void 0&&e.activity_ref===Ve:!1),rt=(qe?fV({activeScratchpadRefreshFromSubmit:We,activeProjectContextBootstrap:Be,activeTaskCompile:ze,activeTaskCompileClarification:De,now:g,...nt?.started_at===void 0?{}:{startedAt:nt.started_at},...Fe.runtime===void 0?{}:{runtime:Fe.runtime}}):null)??tt;(0,I.useEffect)(()=>{rt!==null&&(T.current=rt,h(null))},[rt]),(0,I.useEffect)(()=>{if(!Le||rt!==null)return;let e=T.current;if(e?.completionSource===void 0)return;let t=`hidden:${yJ(e)}`;if(E.current===t)return;E.current=t;let n=pV(e,e.summary);h(n),T.current=null;let r=window.setTimeout(()=>{h(e=>e?.key===n.key?null:e)},_J);return()=>{window.clearTimeout(r)}},[rt,Le]),(0,I.useEffect)(()=>{if(rt!==null||Fe.status!==`idle`)return;let e=Fe.last_conclusion;if(e?.kind!==`completed`)return;let t=e.activity_ref??`${e.kind}:${e.task_id??`none`}:${e.occurred_at}`;if(E.current===t)return;let n=T.current;if(n===null)return;if(!mV(n,e)){T.current=null;return}E.current=t;let r=pV(n,e.summary);h(r);let i=window.setTimeout(()=>{h(e=>e?.key===r.key?null:e),T.current=null},_J);return()=>{window.clearTimeout(i)}},[rt,Fe.last_conclusion?.activity_ref,Fe.last_conclusion?.kind,Fe.last_conclusion?.occurred_at,Fe.last_conclusion?.summary,Fe.last_conclusion?.task_id,Fe.status]);let it=rt??m,at=m===null?null:{key:`completed`,label:`Completed`,tone:`done`,target:m.completionTarget??{kind:`scratchpad`}},ot=at===null?$e:[at,...$e],st=e=>{e.preventDefault();let t=o.trim();if(t!==``&&!le.isPending){let e=w.current?.body===t?w.current:{body:t,commandId:Vt()};w.current=e,le.mutate(e)}},ct=e=>{e.preventDefault();let t=c.trim();t!==``&&Ee!==void 0&&!Ae.isPending&&Ae.mutate({roundId:Ee,body:t})},lt=ne&&he===void 0&&M.error!==null&&(S.kind!==`latest`||fe?.snapshots.main_chat===void 0),ut=fe===void 0&&ee.error!==null||lt;return(0,I.useEffect)(()=>{x!==void 0&&y(x)},[x]),(0,L.jsx)(MU,{projectName:fe?.workspace.project.display_name??`Workspace`,projectDescription:fe?.workspace.project.description??``,members:Pe,messages:ge.items.map(e=>Lz(e,{authorProfiles:pe,taskRetryState:a.stateFor,referenceAssetUrl:(e,t,n)=>i.viewerAssetUrl({path:e,variant:t,v:n})})),scratchpad:$z(Se,ge.items),executionProgress:it,activeApproval:Hz(Te),activeClarification:Rz(we),clarificationMessagesByRoundId:Ne,statusShortcuts:ot,unread:jV(Ce),artifactSignal:r.sidebarSignal,draft:o,roundDraft:c,sendPending:le.isPending,focusMessageId:v,messageHistoryIdentity:ye,initialMessagePosition:be,hasOlderMessages:_e,hasNewerMessages:F,loadingOlderMessages:M.isFetchingPreviousPage,loadingNewerMessages:M.isFetchingNextPage,historyConnectedToLatest:ve,submittedRoundId:u,referenceUploadPending:ue.isPending,scratchpadSyncPending:Ke,scratchpadActionsDisabled:Xe,scratchpadSubmitPending:qe,roundSendPending:Ae.isPending,roundSubmitPending:je.isPending,approvalDecisionPending:Me.isPending,projectNameSaving:se.isPending,projectDescriptionSaving:ce.isPending,loading:fe===void 0&&ee.isLoading||xe,unavailable:ut,onDraftChange:e=>{w.current?.body!==e.trim()&&(w.current=null),s(e)},onMessageFocused:()=>y(null),onInitialMessagePositioned:()=>{S.kind===`start`&&M.isSuccess&&te!==void 0&&RG(te,e)},onLoadOlderMessages:()=>{M.fetchPreviousPage()},onLoadNewerMessages:()=>{M.fetchNextPage({cancelRefetch:!1})},onJumpToLatest:()=>A(),onUploadReferenceFile:e=>ue.mutate(e),onOpenReferenceFile:t=>Q(RV(e,t)),onRoundDraftChange:l,onSendMessage:st,onSendRoundMessage:ct,onSubmitRound:()=>{Ee!==void 0&&je.mutate(Ee)},onDecideApproval:(e,t)=>Me.mutate({approvalId:e,decisionId:t}),onSubmitScratchpad:()=>de.mutate(Se.updated_at),onUpdateProjectDisplayName:async e=>{await se.mutateAsync(e)},onUpdateProjectDescription:async e=>{await ce.mutateAsync(e)},onOpenProjectCenter:()=>Q(`/projects`),onOpenWorklist:()=>Q(BV(e)),onOpenWorklistTask:t=>Q(BV(e,t)),onRetryTask:(e,t)=>a.retry(e,t),onOpenReferences:()=>Q(RV(e)),onOpenArtifacts:()=>Q(zV(e)),onViewArtifactFeedback:(t,n)=>{let i=ge.items.find(e=>e.id===t)?.refs?.artifact_feedback,a=i?.annotations[n];i===void 0||a===void 0||(r.requestFeedbackActivation({messageId:t,annotationIndex:n,previewGeneration:i.preview_generation,documentUrl:a.document_url,target:a.target}),Q(zV(e)))},onOpenSkills:()=>Q(WV(e)),onOpenTimeline:()=>Q(UV(e)),onOpenSettings:()=>Q(HV(e)),onActivateStatusShortcut:t=>KV(e,t)})}function EJ(e){return Yt(e)?Jt(e,`relay_session_invalid`)?`client_session`:`account_session`:null}function DJ(e){return e===`client_session`?{title:`Workspace session expired`,message:`Open the project again from Project Center.`}:{title:`Sign in required`,message:`Sign in to Tutti before opening this workspace.`}}function OJ(e){return e===`client_session`?`/projects`:`/`}function kJ({relayProjectRef:e,children:t}){let n=et(),r=_z(),i=(0,I.useMemo)(()=>or({...X,relayProjectRef:e}),[e]),a=(0,I.useRef)(void 0),o=(0,I.useRef)(null),s=R({queryKey:Z.bootstrap(e),queryFn:()=>i.getBootstrap(),staleTime:bV}),c=EJ(s.error),l=c===null&&s.data?.workspace.capabilities.sse===!0;return a.current===void 0&&s.data!==void 0&&(a.current=s.data.event_cursor),(0,I.useEffect)(()=>{if(c===null)return;let t=`${e}:${c}`;o.current!==t&&(o.current=t,r.notify({tone:`warning`,...DJ(c)}),Q(OJ(c),{replace:!0}))},[c,r,e]),(0,I.useEffect)(()=>{if(!l)return;let t=i.connectEvents({...a.current===void 0?{}:{after:a.current},onReady:t=>{t.payload.replay.status===`missed`&&n.invalidateQueries({queryKey:Z.hostRoot(e)})},onInvalidate:t=>{DV(n,e,t)},onError:()=>void 0});return()=>t.close()},[i,n,e,l]),(0,L.jsxs)(xK,{relayProjectRef:e,hostClient:i,enabled:c===null&&s.isSuccess,feedbackEnabled:s.data?.workspace.capabilities.artifact_feedback===!0,children:[(0,L.jsx)(Ab,{route:{kind:`workspace`,relayProjectRef:e},projectDisplayName:s.data?.workspace.project.display_name??null}),c===null?t:null]})}function AJ({relayProjectRef:e}){let t=(0,I.useMemo)(()=>or({...X,relayProjectRef:e}),[e]),n=R({queryKey:Z.bootstrap(e),queryFn:()=>t.getBootstrap(),staleTime:bV}).data?.session.account.account_ref,r=n===void 0?null:`${n}:${e}`,[i,a]=(0,I.useState)({identity:null,pending:!1}),[o,s]=(0,I.useState)(!1),c=PO();(0,I.useEffect)(()=>{n===void 0||r===null||i.identity===r||a({identity:r,pending:FG(n,e).tour_pending})},[n,r,i.identity,e]);let l=t=>{zG(t,e),a({identity:r,pending:!1})};return(0,L.jsxs)(L.Fragment,{children:[c&&r!==null&&i.identity===r&&i.pending&&n!==void 0&&typeof document<`u`?(0,Jx.createPortal)((0,L.jsx)(VO,{onOpen:()=>{l(n),s(!0)},onDismiss:()=>l(n)}),document.body):null,(0,L.jsx)(HO,{assets:jR,open:o,onOpenChange:s})]})}var jJ=`tutti.artifact-inspector`,MJ=128,NJ=128,PJ=2048,FJ=6,IJ=240,LJ=[`expanded`,`selected`,`checked`,`pressed`,`disabled`];function RJ(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function zJ(e,t){return Object.keys(e).every(e=>t.includes(e))}function BJ(e,t,n=!1){return typeof e==`string`&&e.length<=t&&(n||e.length>0)}function VJ(e){return{protocol:jJ,version:1,channel_id:e.channelId,...e.requestId===void 0?{}:{request_id:e.requestId},type:e.type,payload:e.payload}}function HJ(e){return RJ(e)?e.protocol===`tutti.artifact-inspector`&&e.version===1&&BJ(e.channel_id,MJ)&&(e.request_id===void 0||BJ(e.request_id,NJ))&&BJ(e.type,64)&&`payload`in e:!1}function UJ(e){if(!BJ(e,PJ))return!1;try{return new URL(e,`https://artifact.invalid`).origin===`https://artifact.invalid`&&e.startsWith(`/`)}catch{return!1}}function WJ(e,t){return e===void 0||BJ(e,t)}function GJ(e){return RJ(e)&&zJ(e,[`tag_name`,`role`,`accessible_name`])&&BJ(e.tag_name,64)&&WJ(e.role,64)&&WJ(e.accessible_name,160)}function KJ(e){if(!RJ(e)||!Array.isArray(e.context)||e.context.length>3||!zJ(e,[`element_kind`,`tag_name`,`role`,`accessible_name`,`text_excerpt`,`context`,`state`]))return!1;let t=e.state;return t!==void 0&&(!RJ(t)||!zJ(t,LJ)||!Object.values(t).every(e=>typeof e==`boolean`))?!1:(e.element_kind===`control`||e.element_kind===`content`||e.element_kind===`container`)&&BJ(e.tag_name,64)&&WJ(e.role,64)&&WJ(e.accessible_name,160)&&WJ(e.text_excerpt,280)&&e.context.every(GJ)}function qJ(e){return RJ(e)&&zJ(e,[`id`,`test_id`])&&WJ(e.id,128)&&WJ(e.test_id,160)&&(e.id!==void 0||e.test_id!==void 0)}function JJ(e){return!RJ(e)||!zJ(e,[`version`,`explicit_anchor`,`stable_attributes`,`semantic_path`,`selector_path`])||e.version!==1||!Array.isArray(e.semantic_path)||e.semantic_path.length>4||!Array.isArray(e.selector_path)||e.selector_path.length===0||e.selector_path.length>4?!1:WJ(e.explicit_anchor,160)&&(e.stable_attributes===void 0||qJ(e.stable_attributes))&&e.semantic_path.every(e=>RJ(e)&&zJ(e,[`role`,`accessible_name`])&&(e.role!==void 0||e.accessible_name!==void 0)&&WJ(e.role,64)&&WJ(e.accessible_name,160))&&e.selector_path.every(e=>RJ(e)&&zJ(e,[`root`,`selector`])&&(e.root===`document`||e.root===`open_shadow_root`)&&BJ(e.selector,1024))}function YJ(e){return!RJ(e)||!zJ(e,[`snapshot`,`anchor`,`fallback_context`])||!KJ(e.snapshot)||!JJ(e.anchor)?!1:e.fallback_context===void 0||RJ(e.fallback_context)&&zJ(e.fallback_context,[`snapshot`,`anchor`])&&KJ(e.fallback_context.snapshot)&&JJ(e.fallback_context.anchor)}function XJ(e){return RJ(e)&&Number.isInteger(e.candidate_index)&&Number(e.candidate_index)>=0&&Number(e.candidate_index)<FJ&&KJ(Object.fromEntries(Object.entries(e).filter(([e])=>e!==`candidate_index`)))}function ZJ(e){return!HJ(e)||!RJ(e.payload)?!1:e.type===`ready`?zJ(e.payload,[`document_url`,`inspector_version`])&&UJ(e.payload.document_url)&&e.payload.inspector_version===1:e.type===`candidates`?zJ(e.payload,[`capture_id`,`recommended_index`,`items`])&&BJ(e.payload.capture_id,NJ)&&Number.isInteger(e.payload.recommended_index)&&Number(e.payload.recommended_index)>=0&&Array.isArray(e.payload.items)&&e.payload.items.length>0&&e.payload.items.length<=FJ&&Number(e.payload.recommended_index)<e.payload.items.length&&e.payload.items.every(XJ):e.type===`selection`?zJ(e.payload,[`target`])&&YJ(e.payload.target):e.type===`resolution`?zJ(e.payload,[`status`])&&(e.payload.status===`exact`||e.payload.status===`context_only`||e.payload.status===`ambiguous`||e.payload.status===`missing`):e.type===`document_changed`?zJ(e.payload,[`document_url`])&&UJ(e.payload.document_url):e.type===`unavailable`?zJ(e.payload,[`reason`])&&BJ(e.payload.reason,IJ):!1}var QJ=5e3,$J=class extends Error{constructor(e){super(e),this.name=`ArtifactInspectorControllerError`}};function eY(e){let t;try{t=new URL(e)}catch{throw new $J(`Artifact preview origin is invalid`)}if(t.protocol!==`https:`&&t.protocol!==`http:`||t.origin!==e)throw new $J(`Artifact preview origin must be exact`);return t.origin}var tY=class{#e;#t;#n;#r;#i;#a;#o;#s;#c=null;#l=null;#u=!1;#d=!1;#f=0;#p=new Map;constructor(e){this.#e=e.iframe,this.#t=eY(e.targetOrigin),this.#n=e.onEvent,this.#r=e.requestTimeoutMs??QJ,this.#i=e.createChannelId??(()=>crypto.randomUUID()),this.#a=e.createMessageChannel??(()=>new MessageChannel),this.#o=e.setTimeoutFn??window.setTimeout.bind(window),this.#s=e.clearTimeoutFn??window.clearTimeout.bind(window)}get ready(){return this.#u}connect(){if(this.#d)throw new $J(`Artifact inspector controller is disposed`);let e=this.#e.contentWindow;if(e===null)throw new $J(`Artifact preview is not mounted`);this.#_(`Artifact preview document changed`);let t=this.#i();if(t.length===0||t.length>128)throw new $J(`Artifact inspector channel is invalid`);let n=this.#a();this.#c=t,this.#l=n.port1,this.#l.addEventListener(`message`,this.#g),this.#l.start();try{e.postMessage(VJ({channelId:t,type:`connect`,payload:{}}),this.#t,[n.port2])}catch(e){throw this.#_(`Artifact inspector connection failed`),e}}activate(){this.#m(`activate`,{})}deactivate(){this.#m(`deactivate`,{})}clearHighlight(){this.#m(`clear_highlight`,{})}confirmCandidate(e,t){return this.#h(`confirm_candidate`,{capture_id:e,candidate_index:t},`selection`).then(e=>{if(e.type!==`selection`)throw new $J(`Artifact inspector selection response is invalid`);return e.payload.target})}resolve(e){return this.#h(`resolve`,{target:e},`resolution`).then(e=>{if(e.type!==`resolution`)throw new $J(`Artifact inspector resolution response is invalid`);return e.payload.status})}dispose(){if(!this.#d){if(this.#l!==null)try{this.deactivate()}catch{}this.#d=!0,this.#_(`Artifact inspector controller was disposed`)}}#m(e,t){let n=this.#l,r=this.#c;if(this.#d||n===null||r===null||!this.#u)throw new $J(`Artifact inspector is not ready`);n.postMessage(VJ({channelId:r,type:e,payload:t}))}#h(e,t,n){let r=this.#l,i=this.#c;if(this.#d||r===null||i===null||!this.#u)return Promise.reject(new $J(`Artifact inspector is not ready`));let a=`${i}:${++this.#f}`;return new Promise((o,s)=>{let c=this.#o(()=>{this.#p.delete(a),s(new $J(`Artifact inspector request timed out`))},this.#r);this.#p.set(a,{expectedType:n,resolve:o,reject:s,timeout:c}),r.postMessage(VJ({channelId:i,requestId:a,type:e,payload:t}))})}#g=e=>{let t=e.data,n=this.#c;if(n===null||!ZJ(t)||t.channel_id!==n)return;t.type===`ready`&&(this.#u=!0);let r=t.request_id;if(r!==void 0){let e=this.#p.get(r);e!==void 0&&(t.type===`unavailable`?(this.#s(e.timeout),this.#p.delete(r),e.reject(new $J(t.payload.reason))):t.type===e.expectedType&&(this.#s(e.timeout),this.#p.delete(r),e.resolve(t)))}this.#n?.(t)};#_(e){this.#u=!1;for(let t of this.#p.values())this.#s(t.timeout),t.reject(new $J(e));this.#p.clear(),this.#l!==null&&(this.#l.removeEventListener(`message`,this.#g),this.#l.close()),this.#l=null,this.#c=null}},nY=4e3;function rY(e){if(e!==void 0)try{let t=new URL(e,window.location.href);return t.protocol===`https:`||t.protocol===`http:`?t.origin:void 0}catch{return}}function iY(e){return(e.summary?.length??0)+e.annotations.reduce((e,t)=>e+t.comment.length,0)}function aY(e){return new TextEncoder().encode(JSON.stringify(e)).byteLength}function oY({relayProjectRef:e}){let t=SK(),n=_z(),r=et(),i=(0,I.useMemo)(()=>or({...X,relayProjectRef:e}),[e]),a=(0,I.useMemo)(()=>Un(X),[]),o=(0,I.useRef)(null),s=(0,I.useRef)(null),c=(0,I.useRef)(null),l=(0,I.useRef)(null),u=(0,I.useRef)(null),[d,f]=(0,I.useState)(void 0),[p,m]=(0,I.useState)(!1),[h,g]=(0,I.useState)(void 0),[_,v]=(0,I.useState)(void 0),[y,b]=(0,I.useState)(!1),[x,S]=(0,I.useState)(void 0),[C,w]=(0,I.useState)(void 0),[T,E]=(0,I.useState)(``),D=R({queryKey:Z.bootstrap(e),queryFn:()=>i.getBootstrap(),staleTime:bV}),O=R({queryKey:Z.executionStatus(e),queryFn:()=>i.getExecutionStatus(),enabled:D.isSuccess,staleTime:bV}),k=R({queryKey:Z.readState(e),queryFn:()=>i.getReadState(),enabled:D.isSuccess,staleTime:bV}),A=D.data,ee=A?.generated_at??new Date(0).toISOString(),te=k.data??A?.snapshots.read_state,j=O.data??A?.snapshots.execution_status??PV(ee),ne=j.active_activity?.activity_kind===`run`||j.active_activities?.some(e=>e.activity_kind===`run`)===!0,M=t.artifact,N=M?.status===`declared`&&M.preview.status===`ready`&&M.preview.url!==void 0?M.preview.url:null,P=M?.status===`declared`?M.preview_generation:void 0,re=R({queryKey:Z.artifactPreviewSession(e,N??`not-ready`),queryFn:()=>a.issueArtifactPreviewSession(e),enabled:N!==null,staleTime:1/0,retry:1,refetchInterval:e=>oK(e.state.data)}),ie=re.data,ae=ie?.disposition.kind===`issued`?ie.result?.bootstrap_url:void 0,oe=re.error===null?aK(ie):$(re.error),se=rY(ae);(0,I.useEffect)(()=>{f(ae)},[ae]);let ce=(0,I.useCallback)(e=>{if(e.type===`ready`){m(!0),g(void 0),v(e.payload.document_url);return}if(e.type===`candidates`){g(void 0);let t=s.current;if(t===null){g(`Element selection is not ready.`);return}let n=e.payload.capture_id;u.current=n,t.confirmCandidate(n,e.payload.recommended_index).then(e=>{u.current===n&&(t.deactivate(),S(e),w(new Date().toISOString()),g(void 0))}).catch(e=>{u.current===n&&g($(e))}).finally(()=>{u.current===n&&(u.current=null)});return}if(e.type===`document_changed`){v(e.payload.document_url);return}e.type===`unavailable`&&g(e.payload.reason)},[]);(0,I.useEffect)(()=>{let e=o.current;if(e===null||se===void 0)return;m(!1),g(void 0),v(void 0);let t=new tY({iframe:e,targetOrigin:se,onEvent:ce});s.current=t;try{t.connect()}catch(e){g($(e))}return()=>{t.dispose(),s.current===t&&(s.current=null)}},[ce,se]),(0,I.useEffect)(()=>{if(!t.feedbackEnabled||se===void 0||p||N===null)return;let e=window.setTimeout(()=>{g(e=>e??`Element selection could not connect to this preview.`)},nY);return()=>window.clearTimeout(e)},[t.feedbackEnabled,p,se,N]),(0,I.useEffect)(()=>{if(t.feedbackDraftStale){try{s.current?.deactivate(),s.current?.clearHighlight()}catch{}u.current=null,S(void 0),w(void 0)}},[t.feedbackDraftStale]);let le=(0,I.useCallback)(()=>{m(!1),v(void 0);try{s.current?.connect()}catch(e){g($(e))}},[]),ue=(0,I.useCallback)(()=>{g(void 0),u.current=null,S(void 0),w(void 0);try{s.current?.clearHighlight(),s.current?.activate()}catch(e){g($(e))}},[]),de=(0,I.useCallback)(()=>{try{s.current?.deactivate(),s.current?.clearHighlight()}catch{}b(!1),u.current=null,S(void 0),w(void 0),E(``)},[]),fe=(0,I.useCallback)(()=>{u.current=null,S(void 0),w(void 0),E(``),g(void 0);try{s.current?.clearHighlight(),s.current?.activate()}catch(e){g($(e))}},[]),pe=(0,I.useCallback)(()=>{if(P===void 0||!p)return;let e=t.feedbackDraft;b(!0),!(e!==null&&e.previewGeneration!==P)&&(t.beginFeedbackDraft(P),ue())},[t,p,P,ue]),me=t.feedbackDraft,he=me===null?null:{expected_preview_generation:me.previewGeneration,annotations:me.annotations.map(e=>({document_url:e.document_url,comment:e.comment.trim(),target:e.target}))},ge=he!==null&&iY(he)>6e3,_e=he!==null&&aY(he)>65536,F=gt({mutationFn:e=>i.sendMainChatMessage({artifact_feedback:e.payload},{commandId:e.commandId}),onSuccess:i=>{if(i.disposition.kind===`created`){c.current=null,t.clearFeedbackDraft(),de(),DV(r,e,i.invalidates),n.notify({tone:`success`,title:`Artifact feedback sent`});let a=i.result?.message.id;Q(a===void 0?en(e):VV(e,a));return}i.disposition.kind===`artifact_changed`?n.notify({tone:`warning`,title:`Artifact changed`,message:`Start a new feedback batch from the current preview.`}):i.disposition.kind===`artifact_unavailable`?n.notify({tone:`warning`,title:`Artifact unavailable`,message:`The feedback draft was kept in this tab.`}):n.notify({tone:`error`,title:`Feedback send could not be confirmed`}),r.invalidateQueries({queryKey:Z.artifacts(e)})},onError:e=>{n.notify({tone:`error`,title:`Artifact feedback send failed`,message:$(e)})}}),ve=(0,I.useCallback)(()=>{if(he===null||he.annotations.length===0||t.feedbackDraftStale||ge||_e||F.isPending)return;let e=JSON.stringify(he),n=c.current?.serialized===e?c.current:{commandId:Vt(),payload:he,serialized:e};c.current=n,F.mutate(n)},[t.feedbackDraftStale,he,_e,ge,F]);(0,I.useEffect)(()=>{let e=t.pendingActivation;if(e===null){l.current=null;return}let r=`${e.messageId}:${e.annotationIndex}`;if(P===void 0||M?.status!==`declared`||M.preview.status!==`ready`||e.previewGeneration!==P){n.notify({tone:`warning`,title:`Artifact feedback is from an earlier preview`}),t.clearFeedbackActivation();return}if(!p||se===void 0||_===void 0){h!==void 0&&(n.notify({tone:`warning`,title:`Artifact element could not be located`,message:h}),t.clearFeedbackActivation());return}if(_!==e.documentUrl){let t=new URL(e.documentUrl,se).toString();d!==t&&(m(!1),f(t));return}let i=s.current;i===null||l.current===r||(l.current=r,i.resolve(e.target).then(e=>{e===`exact`?n.notify({tone:`success`,title:`Artifact element highlighted`}):e===`context_only`?n.notify({tone:`warning`,title:`Only the surrounding context is still visible`}):e===`ambiguous`?n.notify({tone:`warning`,title:`The element is no longer unique in this preview`}):n.notify({tone:`warning`,title:`The element is not currently visible`})}).catch(e=>{n.notify({tone:`warning`,title:`Artifact element could not be located`,message:$(e)})}).finally(()=>{l.current=null,t.clearFeedbackActivation()}))},[M,t,p,_,P,d,h,se,n]);let ye=d??ae,be=kz(M,{...ye===void 0?{}:{previewUrl:ye},pending:N!==null&&ye===void 0&&oe===void 0,...oe===void 0?{}:{errorMessage:oe}},{runActive:ne}),xe=M!==void 0,Se=!xe&&(D.error!==null||t.unavailable),Ce=t.feedbackEnabled,we=Ce&&p&&be.status===`declared`&&be.previewStatus===`ready`,Te=me?.annotations.map(e=>({key:e.key,documentUrl:e.document_url,comment:e.comment,time:Cz(e.createdAt),target:Oz(e.target.snapshot)}))??[],Ee=t.feedbackDraftStale?`Start over from the current Artifact before submitting.`:Te.length===0?`Add at least one comment before submitting.`:ge?`Shorten these comments to 6,000 characters before submitting.`:_e?`Remove some comments before submitting this batch.`:void 0,De=Ee===void 0&&!F.isPending;return(0,L.jsx)(NU,{statusShortcuts:hV(j),unread:jV(te),state:be,loading:!xe&&(D.isLoading||t.loading),unavailable:Se,iframeRef:o,onPreviewLoad:le,...A?.session.account===void 0?{}:{feedback:{supported:Ce,ready:we,open:y,canSubmit:De,submitPending:F.isPending,...Ee===void 0?{}:{submitDisabledReason:Ee},...h===void 0?{}:{unavailableReason:h},author:{displayName:A.session.account.display_name,avatar:A.session.account.avatar},onOpen:pe,onSubmit:ve,rail:{comment:T,annotations:Te,...x===void 0?{}:{selectedTarget:Oz(x.snapshot)},...C===void 0?{}:{selectedTime:Cz(C)},stale:t.feedbackDraftStale,...h===void 0?{}:{bridgeUnavailableReason:h},...ge||_e?{sendDisabledReason:ge?`Shorten these comments to 6,000 characters before submitting.`:`Remove some comments before submitting this batch.`}:{},onCommentChange:e=>{c.current=null,E(e)},onCancelSelection:fe,onAddAnnotation:()=>{if(!(x===void 0||_===void 0||T.trim().length===0)){c.current=null,t.addFeedbackAnnotation({document_url:_,comment:T.trim(),target:x,createdAt:C??new Date().toISOString()});try{s.current?.activate()}catch(e){g($(e))}S(void 0),w(void 0),E(``)}},onRemoveAnnotation:e=>{c.current=null,t.removeFeedbackAnnotation(e)},onReset:()=>{c.current=null,t.clearFeedbackDraft(),P!==void 0&&(t.beginFeedbackDraft(P),ue())}}}},onOpenProjectCenter:()=>Q(`/projects`),onOpenChat:()=>Q(en(e)),onOpenWorklist:()=>Q(BV(e)),onOpenReferences:()=>Q(RV(e)),onOpenSkills:()=>Q(WV(e)),onOpenTimeline:()=>Q(UV(e)),onOpenSettings:()=>Q(HV(e)),onActivateStatusShortcut:t=>KV(e,t)})}function sY(e){let t=e.summary;return t===void 0||t.status===`missing`?{summaryStatus:`Summary not available yet`}:t.status===`stale`?{...t.text===void 0?{}:{summary:t.text},summaryStatus:`Summary may be out of date`}:t.status===`unavailable`?{...t.text===void 0?{}:{summary:t.text},summaryStatus:`Summary could not be generated`}:t.text===void 0?{summaryStatus:`Summary unavailable`}:{summary:t.text}}function cY(e){if(e.category===`image`)return[e.media_type??`Image`,JV(e.size_bytes)].join(` · `);let t=[JV(e.size_bytes)];return e.text_read.can_read||t.push(YV(e.text_read.blocked_reason)),t.join(` · `)}function lY(e){if(!e.path.startsWith(`docs/reference/`))return;let[t,n]=e.path.slice(15).split(`/`);if(!(t===void 0||t.length===0||n===void 0||t===`files`||t===`images`))return t}function uY(e,t=lY(e)){if(t===void 0){let t=e.category===`image`?`docs/reference/images/`:`docs/reference/files/`;return e.path.startsWith(t)?e.path.slice(t.length):e.name}return e.path.slice(`docs/reference/${t}/`.length)}function dY(e,t){let n=lY(e);return{path:e.path,name:uY(e,n),meta:cY(e),...n===void 0?{}:{folderGroup:n},selected:t.selected,canPreview:e.text_read.can_read,category:e.category,...t.thumbnailUrl===void 0?{}:{thumbnailUrl:t.thumbnailUrl},...e.extension===void 0?{}:{extension:e.extension}}}function fY({relayProjectRef:e}){let t=et(),n=_z(),r=SK(),i=(0,I.useMemo)(()=>or({...X,relayProjectRef:e}),[e]),a=new URL(xV(),window.location.origin).searchParams.get(`path`)??void 0,[o,s]=(0,I.useState)(a),[c,l]=(0,I.useState)(`time`),u=R({queryKey:Z.bootstrap(e),queryFn:()=>i.getBootstrap(),staleTime:bV}),d=R({queryKey:Z.referenceFiles(e),queryFn:()=>i.getReferenceFiles({limit:200}),enabled:u.isSuccess,staleTime:bV}),f=R({queryKey:Z.messagesWindow(e,200),queryFn:()=>i.getMessages({limit:200}),enabled:u.isSuccess,staleTime:bV}),p=R({queryKey:Z.executionStatus(e),queryFn:()=>i.getExecutionStatus(),enabled:u.isSuccess,staleTime:bV}),m=R({queryKey:Z.readState(e),queryFn:()=>i.getReadState(),enabled:u.isSuccess,staleTime:bV}),h=d.data?.items??[],g=(0,I.useMemo)(()=>{let e=new Map;for(let t of f.data?.items??[]){let n=t.refs?.reference_file;if(n===void 0)continue;let r=e.get(n.path);(r===void 0||t.created_at>r)&&e.set(n.path,t.created_at)}return e},[f.data?.items]),_=(0,I.useMemo)(()=>{let e=(e,t)=>e.name.localeCompare(t.name),t=(t,n)=>{let r=g.get(t.path)??``,i=g.get(n.path)??``;return r===i?e(t,n):i.localeCompare(r)},n=(e,n)=>{let r=e.extension??e.media_type??`file`,i=n.extension??n.media_type??`file`;return r===i?t(e,n):r.localeCompare(i)},r=[...h.filter(e=>e.category===`image`)].sort(t),i=[...h.filter(e=>e.category!==`image`)].sort(c===`time`?t:n);return[...r,...i]},[c,h,g]);(0,I.useEffect)(()=>{if(_.length===0){o!==void 0&&s(void 0);return}if(a!==void 0&&_.some(e=>e.path===a)){o!==a&&s(a);return}(o===void 0||!_.some(e=>e.path===o))&&s(_[0]?.path)},[_,a,o]);let v=h.find(e=>e.path===o),y=v?.category===`image`,b=v?.text_read.can_read===!0,x=R({queryKey:o===void 0?Z.viewerFile(e,`none`):Z.viewerFile(e,o),queryFn:()=>i.getViewerFile({path:o,max_bytes:204800}),enabled:u.isSuccess&&o!==void 0&&b&&!y,staleTime:bV}),S=gt({mutationFn:async t=>{let n=await $V({relayProjectRef:e,purpose:`reference_file`,file:t});return i.uploadReferenceFile(n)},onMutate:e=>n.notify({tone:`loading`,title:`Uploading reference`,message:e.name}),onSuccess:(r,i,a)=>{DV(t,e,r.invalidates),r.result?.file.path!==void 0&&(s(r.result.file.path),Q(RV(e,r.result.file.path))),n.update(a,{tone:`success`,title:`Reference uploaded`,message:r.result?.file.name??i.name})},onError:(e,t,r)=>{n.update(r,{tone:`error`,title:`Reference upload failed`,message:$(e)||t.name})}}),C=u.data,w=C?.generated_at??new Date(0).toISOString(),T=m.data??C?.snapshots.read_state;MV({enabled:u.isSuccess,hostClient:i,relayProjectRef:e,readState:T,scope:`references`});let E=p.data??C?.snapshots.execution_status??PV(w),D=_.map(e=>dY(e,{selected:e.path===o,...e.category!==`image`||e.blob_oid===void 0?{}:{thumbnailUrl:i.viewerAssetUrl({path:e.path,variant:`thumbnail`,v:e.blob_oid})}})),O=x.data?.content,k=(()=>{if(v===void 0)return{title:h.length===0?`No reference files`:`No file selected`,unavailableReason:h.length===0?`No reference files`:`Select a reference file`};if(O?.kind===`text`)return{title:v.name,meta:JV(v.size_bytes),...sY(v),content:O.text};if(y&&o!==void 0)return v.blob_oid===void 0?{title:v.name,meta:JV(v.size_bytes),...sY(v),unavailableReason:`Image version unavailable`}:{title:v.name,meta:JV(v.size_bytes),...sY(v),imageUrl:i.viewerAssetUrl({path:o,variant:`preview`,v:v.blob_oid})};let e=b&&x.isLoading?`Loading`:XV(O)??(b?void 0:YV(v.text_read.blocked_reason));return e===void 0?{title:v.name,meta:JV(v.size_bytes),...sY(v)}:{title:v.name,meta:JV(v.size_bytes),...sY(v),unavailableReason:e}})(),A=d.data!==void 0,ee=!A&&(u.error!==null||d.error!==null);return(0,L.jsx)(PU,{statusShortcuts:hV(E),unread:jV(T),artifactSignal:r.sidebarSignal,files:D,detail:k,uploadPending:S.isPending,fileSortMode:c,loading:!A&&(u.isLoading||d.isLoading),unavailable:ee,onOpenProjectCenter:()=>Q(`/projects`),onOpenChat:()=>Q(en(e)),onOpenWorklist:()=>Q(BV(e)),onOpenArtifacts:()=>Q(zV(e)),onOpenSkills:()=>Q(WV(e)),onOpenTimeline:()=>Q(UV(e)),onOpenSettings:()=>Q(HV(e)),onActivateStatusShortcut:t=>KV(e,t),onSelectFile:t=>{s(t),Q(RV(e,t))},onUploadFile:e=>S.mutate(e),onFileSortModeChange:l})}var pY={provider_auth_invalid:`The existing API key was rejected.`,provider_quota_or_billing_required:`Quota or billing needs attention.`,provider_rate_limited:`The provider rate limit was reached. Try again shortly.`,provider_model_unavailable:`That model is unavailable for this provider.`,provider_network_error:`The provider could not be reached.`};function mY({relayProjectRef:e}){let t=et(),n=_z(),r=SK(),[i,a]=(0,I.useState)([]),o=(0,I.useMemo)(()=>or({...X,relayProjectRef:e}),[e]),s=R({queryKey:Z.bootstrap(e),queryFn:()=>o.getBootstrap()}),c=R({queryKey:Z.hostWorkspace(e),queryFn:()=>o.getWorkspace(),enabled:s.isSuccess}),l=R({queryKey:Z.hostSession(e),queryFn:()=>o.getSession(),enabled:s.isSuccess}),u=R({queryKey:Z.providerConfig(e),queryFn:()=>o.getProviderConfig(),enabled:s.isSuccess}),d=R({queryKey:Z.executionStatus(e),queryFn:()=>o.getExecutionStatus(),enabled:s.isSuccess}),f=R({queryKey:Z.readState(e),queryFn:()=>o.getReadState(),enabled:s.isSuccess}),p=R({queryKey:Z.projectPresence(e),queryFn:()=>er(X,e),enabled:s.isSuccess,staleTime:bV,refetchInterval:6e4});EV(s.isSuccess);let m=gt({mutationFn:e=>o.updateProjectDisplayName({display_name:e}),onMutate:e=>n.notify({tone:`loading`,title:`Saving project name`,message:e}),onSuccess:(r,i,a)=>{DV(t,e,r.invalidates??[{kind:`workspace`},{kind:`bootstrap`}]),n.update(a,{tone:`success`,title:`Project name saved`,message:i})},onError:(e,t,r)=>{n.update(r,{tone:`error`,title:`Project name save failed`,message:`${t}: ${$(e)}`})}}),h=gt({mutationFn:e=>o.updateProjectDescription({description:e}),onMutate:e=>n.notify({tone:`loading`,title:`Saving project description`,...e.length===0?{}:{message:e}}),onSuccess:(r,i,a)=>{DV(t,e,r.invalidates??[{kind:`workspace`},{kind:`bootstrap`}]),n.update(a,{tone:`success`,title:`Project description saved`,...i.length===0?{}:{message:i}})},onError:(e,t,r)=>{n.update(r,{tone:`error`,title:`Project description save failed`,message:$(e)})}}),g=gt({mutationFn:()=>o.getProviderModels(),onSuccess:e=>{if(e.status===`available`){a(e.models);return}a([]),n.notify({tone:`warning`,title:`Model list unavailable`,message:`You can still enter a model name manually.`})},onError:e=>{a([]),n.notify({tone:`warning`,title:`Model list unavailable`,message:`${$(e)} You can still enter a model name manually.`})}}),_=gt({mutationFn:e=>o.updateProviderDefaultModel({default_model:e.defaultModel,expected_default_model:e.expectedDefaultModel}),onMutate:e=>n.notify({tone:`loading`,title:`Validating model`,message:e.defaultModel}),onSuccess:(r,i,a)=>{switch(DV(t,e,r.invalidates),r.disposition.kind){case`updated`:case`unchanged`:n.update(a,{tone:`success`,title:r.disposition.kind===`updated`?`Model saved`:`Model unchanged`,message:i.defaultModel});break;case`stale_default_model`:n.update(a,{tone:`warning`,title:`Model changed elsewhere`,message:`The current model is ${r.disposition.current_default_model}. Review and save again.`});break;case`validation_failed`:n.update(a,{tone:`error`,title:`Model validation failed`,message:pY[r.disposition.reason]});break;case`provider_unavailable`:n.update(a,{tone:`error`,title:`Provider unavailable`,message:`The project provider configuration is not ready.`});break;case`interrupted`:n.update(a,{tone:`warning`,title:`Model update interrupted`,message:`Try saving again.`});break}},onError:(e,t,r)=>{n.update(r,{tone:`error`,title:`Model update failed`,message:$(e)})}}),v=s.data,y=v?.generated_at??new Date(0).toISOString(),b=f.data??v?.snapshots.read_state,x=c.data??v?.workspace,S=l.data??v?.session,C=u.data??v?.provider_config,w=d.data??v?.snapshots.execution_status??PV(y),T=x===void 0||S===void 0||C===void 0?void 0:bB(x,S,C,p.data?.presence),E=T===void 0&&(s.error!==null||c.error!==null||l.error!==null||u.error!==null),D=x?.relay.join_url,O=D===void 0||x===void 0||S===void 0?void 0:ZK({inviterName:S.account.display_name,projectName:x.project.display_name,joinUrl:D}),k=S?.membership.label===`owner`&&x?.capabilities.provider_model_update===!0&&C?.status===`configured`,A=C?.status===`configured`?C.default_model:void 0,ee=A===void 0||i.includes(A)?i:[A,...i];return(0,L.jsx)(qU,{...T===void 0?{}:{settings:T},statusShortcuts:hV(w),unread:jV(b),artifactSignal:r.sidebarSignal,loading:T===void 0&&(s.isLoading||c.isLoading||l.isLoading||u.isLoading),unavailable:E,projectNameSaving:m.isPending,projectDescriptionSaving:h.isPending,providerModelOptions:ee,providerModelEditable:k,providerModelDiscovering:g.isPending,providerModelSaving:_.isPending,onOpenProjectCenter:()=>Q(`/projects`),onOpenChat:()=>Q(en(e)),onOpenWorklist:()=>Q(BV(e)),onOpenReferences:()=>Q(RV(e)),onOpenArtifacts:()=>Q(zV(e)),onOpenSkills:()=>Q(WV(e)),onOpenTimeline:()=>Q(UV(e)),onActivateStatusShortcut:t=>KV(e,t),...O===void 0?{}:{onCopyJoinUrl:()=>{navigator.clipboard.writeText(O).then(()=>{n.notify({tone:`success`,title:`Invitation copied`})}).catch(()=>{n.notify({tone:`error`,title:`Copy failed`,message:`The browser could not copy the invite link.`})})}},onUpdateProjectDisplayName:async e=>{await m.mutateAsync(e)},onUpdateProjectDescription:async e=>{await h.mutateAsync(e)},...k?{onDiscoverProviderModels:async()=>{a([]),await g.mutateAsync()},onUpdateProviderDefaultModel:async(e,t)=>{try{let n=await _.mutateAsync({defaultModel:e,expectedDefaultModel:t});return n.disposition.kind===`updated`||n.disposition.kind===`unchanged`?{kind:`saved`}:n.disposition.kind===`stale_default_model`?{kind:`stale`,currentValue:n.disposition.current_default_model}:{kind:`failed`}}catch{return{kind:`failed`}}}}:{}})}function hY({relayProjectRef:e}){let t=et(),n=_z(),r=SK(),i=(0,I.useMemo)(()=>or({...X,relayProjectRef:e}),[e]),a=new URL(xV(),window.location.origin).searchParams.get(`skill`)??void 0,[o,s]=(0,I.useState)(a),c=R({queryKey:Z.bootstrap(e),queryFn:()=>i.getBootstrap(),staleTime:bV}),l=R({queryKey:Z.skills(e),queryFn:()=>i.getSkills(),enabled:c.isSuccess,staleTime:bV}),u=R({queryKey:Z.executionStatus(e),queryFn:()=>i.getExecutionStatus(),enabled:c.isSuccess,staleTime:bV}),d=R({queryKey:Z.readState(e),queryFn:()=>i.getReadState(),enabled:c.isSuccess,staleTime:bV}),f=l.data?.items??[];(0,I.useEffect)(()=>{if(f.length===0){o!==void 0&&s(void 0);return}if(a!==void 0&&f.some(e=>e.name===a)){o!==a&&s(a);return}(o===void 0||!f.some(e=>e.name===o))&&s(f[0]?.name)},[a,o,f]);let p=R({queryKey:o===void 0?Z.skillDetail(e,`none`):Z.skillDetail(e,o),queryFn:()=>i.getSkill(o),enabled:c.isSuccess&&o!==void 0,staleTime:bV}),m=gt({mutationFn:async t=>{let n=await $V({relayProjectRef:e,purpose:`skill_zip`,file:t});return i.importSkillZip(n)},onMutate:e=>n.notify({tone:`loading`,title:`Uploading skill`,message:e.name}),onSuccess:(r,i,a)=>{DV(t,e,r.invalidates);let o=r.result?.skill.name??(r.disposition.kind===`created`||r.disposition.kind===`replaced`?r.disposition.skill_name:void 0);o!==void 0&&(s(o),Q(WV(e,o))),n.update(a,{tone:`success`,title:`Skill installed`,message:o??i.name})},onError:(e,t,r)=>{n.update(r,{tone:`error`,title:`Skill upload failed`,message:$(e)})}}),h=gt({mutationFn:e=>i.deleteSkill({skill_name:e}),onMutate:e=>n.notify({tone:`loading`,title:`Deleting skill`,message:e}),onSuccess:(r,i,a)=>{DV(t,e,r.invalidates);let c=r.disposition.kind===`deleted`||r.disposition.kind===`not_found`?r.disposition.skill_name:o,l=f.find(e=>e.name!==c);s(l?.name),Q(l===void 0?WV(e):WV(e,l.name)),n.update(a,{tone:`success`,title:`Skill deleted`,message:c??i})},onError:(e,t,r)=>{n.update(r,{tone:`error`,title:`Skill delete failed`,message:`${t}: ${$(e)}`})}}),g=c.data,_=g?.generated_at??new Date(0).toISOString(),v=d.data??g?.snapshots.read_state;MV({enabled:c.isSuccess,hostClient:i,relayProjectRef:e,readState:v,scope:`skills`});let y=u.data??g?.snapshots.execution_status??PV(_),b=f.map(e=>({name:e.name,description:e.description,...e.short_description===void 0?{}:{shortDescription:e.short_description},selected:e.name===o,...e.updated_at===void 0?{}:{updatedLabel:`Updated ${yz(e.updated_at)}`}})),x=f.find(e=>e.name===o),S=(()=>{let e=p.data?.skill;return e===void 0?o===void 0?{title:f.length===0?`No skills`:`No skill selected`,unavailableReason:f.length===0?`No user skills`:`Select a skill`}:{title:x?.name??o,...x?.description===void 0?{}:{description:x.description},unavailableReason:p.isLoading?`Loading`:`Skill unavailable`}:{title:e.name,description:e.description,...e.updated_at===void 0?{}:{updatedLabel:`Updated ${yz(e.updated_at)}`},skillMd:e.skill_md}})(),C=l.data!==void 0,w=!C&&(c.error!==null||l.error!==null);return(0,L.jsx)(YU,{statusShortcuts:hV(y),unread:jV(v),artifactSignal:r.sidebarSignal,skills:b,detail:S,uploadPending:m.isPending,deletePending:h.isPending,loading:!C&&(c.isLoading||l.isLoading),unavailable:w,onOpenProjectCenter:()=>Q(`/projects`),onOpenChat:()=>Q(en(e)),onOpenWorklist:()=>Q(BV(e)),onOpenReferences:()=>Q(RV(e)),onOpenArtifacts:()=>Q(zV(e)),onOpenTimeline:()=>Q(UV(e)),onOpenSettings:()=>Q(HV(e)),onActivateStatusShortcut:t=>KV(e,t),onSelectSkill:t=>{s(t),Q(WV(e,t))},onUploadSkill:e=>m.mutate(e),onDeleteSkill:e=>h.mutate(e)})}function gY({relayProjectRef:e}){let t=SK(),n=(0,I.useMemo)(()=>or({...X,relayProjectRef:e}),[e]),r=R({queryKey:Z.bootstrap(e),queryFn:()=>n.getBootstrap(),staleTime:bV}),i=R({queryKey:Z.projectTimeline(e),queryFn:()=>n.getProjectTimeline(),enabled:r.isSuccess,staleTime:bV}),a=R({queryKey:Z.executionStatus(e),queryFn:()=>n.getExecutionStatus(),enabled:r.isSuccess,staleTime:bV}),o=R({queryKey:Z.readState(e),queryFn:()=>n.getReadState(),enabled:r.isSuccess,staleTime:bV}),s=r.data,c=s?.generated_at??new Date(0).toISOString(),l=o.data??s?.snapshots.read_state,u=a.data??s?.snapshots.execution_status??PV(c),d=i.data===void 0&&(r.error!==null||i.error!==null);return(0,L.jsx)(XU,{...i.data===void 0?{}:{timeline:jB(i.data,{onOpenWorklistTask:t=>Q(BV(e,t)),onOpenChatMessage:t=>Q(VV(e,t)),onOpenReferenceFile:t=>Q(RV(e,t))})},statusShortcuts:hV(u),unread:jV(l),artifactSignal:t.sidebarSignal,loading:i.data===void 0&&(r.isLoading||i.isLoading),unavailable:d,onOpenProjectCenter:()=>Q(`/projects`),onOpenChat:()=>Q(en(e)),onOpenWorklist:()=>Q(BV(e)),onOpenReferences:()=>Q(RV(e)),onOpenArtifacts:()=>Q(zV(e)),onOpenSkills:()=>Q(WV(e)),onOpenSettings:()=>Q(HV(e)),onActivateStatusShortcut:t=>KV(e,t)})}function _Y({relayProjectRef:e}){let t=SK(),n=(0,I.useMemo)(()=>or({...X,relayProjectRef:e}),[e]),r=gJ({hostClient:n,relayProjectRef:e}),i=new URL(xV(),window.location.origin).searchParams.get(`task`)??void 0,[a,o]=(0,I.useState)(void 0),s=R({queryKey:Z.bootstrap(e),queryFn:()=>n.getBootstrap()}),c=R({queryKey:Z.worklist(e),queryFn:()=>n.getWorklist(),enabled:s.isSuccess}),l=R({queryKey:Z.executionStatus(e),queryFn:()=>n.getExecutionStatus(),enabled:s.isSuccess}),u=R({queryKey:Z.readState(e),queryFn:()=>n.getReadState(),enabled:s.isSuccess}),d=s.data,f=d?.generated_at??new Date(0).toISOString(),p=c.data??d?.snapshots.worklist??kV(),m=u.data??d?.snapshots.read_state;MV({enabled:s.isSuccess,hostClient:n,relayProjectRef:e,readState:m,scope:`worklist`});let h=(0,I.useMemo)(()=>tB(p),[p]),g=i!==void 0&&h.some(e=>e.id===i),_=i!==void 0&&!g?i:void 0;(0,I.useEffect)(()=>{if(i!==void 0){o(g?e=>e===i?e:i:void 0);return}if(h.length===0){o(void 0);return}(a===void 0||!h.some(e=>e.id===a))&&o(qV(p,void 0))},[g,i,a,h,p]);let v=R({queryKey:a===void 0?Z.taskDetail(e,`none`):Z.taskDetail(e,a),queryFn:()=>n.getTaskDetail(a),enabled:s.isSuccess&&a!==void 0}),y=R({queryKey:a===void 0?Z.taskRunResults(e,`none`):Z.taskRunResults(e,a),queryFn:()=>n.getTaskRunResults(a,{limit:50}),enabled:s.isSuccess&&a!==void 0}),b=l.data??d?.snapshots.execution_status??PV(f),x=eB(p,a),S=dB(v.data,y.data),C=v.data?.detail.result.latest_run_result_id,w=v.data?.detail.result.retry_action,T=S===void 0||C===void 0||w===void 0?S:{...S,retryAction:{state:r.stateFor(S.taskId,C,w)??w,onRetry:()=>r.retry(S.taskId,C)}},E=c.data!==void 0||d?.snapshots.worklist!==void 0,D=!E&&(s.error!==null||c.error!==null);return(0,L.jsx)(ZU,{statusShortcuts:hV(b),unread:jV(m),artifactSignal:t.sidebarSignal,modules:x.modules,taskCount:x.taskCount,...T===void 0?{}:{detail:T},..._===void 0?{}:{missingTaskId:_},loading:!E&&(s.isLoading||c.isLoading),unavailable:D,onOpenProjectCenter:()=>Q(`/projects`),onOpenChat:()=>Q(en(e)),onOpenReferences:()=>Q(RV(e)),onOpenArtifacts:()=>Q(zV(e)),onOpenSkills:()=>Q(WV(e)),onOpenTimeline:()=>Q(UV(e)),onOpenSettings:()=>Q(HV(e)),onActivateStatusShortcut:t=>KV(e,t),onSelectTask:t=>{o(t),Q(BV(e,t))}})}var vY=`is-scrollbar-active`,yY=1e3;function bY(e,t){let n=e.target;return n instanceof Element?n:t.scrollingElement??t.documentElement}function xY(e){let t=new Map,n=e=>{let n=t.get(e);n!==void 0&&(window.clearTimeout(n),t.delete(e)),e.classList.remove(vY)},r=e=>{let r=t.get(e);r!==void 0&&window.clearTimeout(r),e.classList.add(vY);let i=window.setTimeout(()=>n(e),yY);t.set(e,i)},i=t=>{r(bY(t,e))};return e.addEventListener(`scroll`,i,{capture:!0,passive:!0}),()=>{e.removeEventListener(`scroll`,i,!0);for(let[e,n]of t)window.clearTimeout(n),e.classList.remove(vY);t.clear()}}var SY=`--tutti-viewport-height`,CY=`--tutti-viewport-offset-top`;function wY(e,t=window){let n=e.documentElement,r=t.visualViewport,i=()=>{let e=r?.height??t.innerHeight,i=r?.offsetTop??0;n.style.setProperty(SY,`${Math.max(0,e)}px`),n.style.setProperty(CY,`${Math.max(0,i)}px`)};return i(),t.addEventListener(`resize`,i),t.addEventListener(`orientationchange`,i),r?.addEventListener(`resize`,i),r?.addEventListener(`scroll`,i),()=>{t.removeEventListener(`resize`,i),t.removeEventListener(`orientationchange`,i),r?.removeEventListener(`resize`,i),r?.removeEventListener(`scroll`,i),n.style.removeProperty(SY),n.style.removeProperty(CY)}}var TY=new Xe({defaultOptions:{queries:{retry:!1,refetchOnWindowFocus:!1}}});function EY(){let e=CV();if(e.kind===`managed_account`)return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(Ab,{route:e}),(0,L.jsx)(DG,{})]});if(e.kind===`managed_project_consent`)return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(Ab,{route:e}),(0,L.jsx)(EG,{})]});if(e.kind===`local_console`)return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(Ab,{route:e}),(0,L.jsx)(aq,{})]});if(e.kind===`local_console_account_gate`)return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(Ab,{route:e}),(0,L.jsx)(lq,{})]});if(e.kind===`home`)return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(Ab,{route:e}),(0,L.jsx)(PK,{})]});if(e.kind===`join`)return(0,L.jsx)(BG,{joinToken:e.joinToken});if(e.kind===`feishu_project`)return(0,L.jsx)(MK,{relayProjectRef:e.relayProjectRef});if(e.kind===`feishu_connection`)return(0,L.jsx)(rH,{entryRef:e.entryRef});if(e.kind===`legacy_feishu_project`)return(0,L.jsx)(CK,{relayProjectRef:e.relayProjectRef});if(e.kind===`setup`)return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(Ab,{route:e}),(0,L.jsx)(lJ,{})]});if(e.kind===`project_open`)return(0,L.jsx)(Jq,{requestedOpenProjectRef:e.relayProjectRef});if(e.kind===`workspace`||e.kind===`worklist`||e.kind===`references`||e.kind===`artifacts`||e.kind===`skills`||e.kind===`timeline`||e.kind===`settings`){let t=e.kind===`workspace`?(0,L.jsx)(TJ,{relayProjectRef:e.relayProjectRef}):e.kind===`worklist`?(0,L.jsx)(_Y,{relayProjectRef:e.relayProjectRef}):e.kind===`references`?(0,L.jsx)(fY,{relayProjectRef:e.relayProjectRef}):e.kind===`artifacts`?(0,L.jsx)(oY,{relayProjectRef:e.relayProjectRef}):e.kind===`skills`?(0,L.jsx)(hY,{relayProjectRef:e.relayProjectRef}):e.kind===`timeline`?(0,L.jsx)(gY,{relayProjectRef:e.relayProjectRef}):(0,L.jsx)(mY,{relayProjectRef:e.relayProjectRef});return(0,L.jsxs)(kJ,{relayProjectRef:e.relayProjectRef,children:[t,(0,L.jsx)(AJ,{relayProjectRef:e.relayProjectRef})]},e.relayProjectRef)}return(0,L.jsx)(Jq,{...e.kind===`project_center`&&e.panel?{initialPanel:e.panel}:{}})}function DY(){return(0,I.useEffect)(()=>{let e=xY(document),t=wY(document);return()=>{e(),t()}},[]),(0,L.jsx)(tt,{client:TY,children:(0,L.jsx)(gz,{children:(0,L.jsx)(EY,{})})})}function OY(e){let t=document.querySelector(`link[rel="icon"]`),n=t??document.createElement(`link`);n.rel=`icon`,n.type=`image/png`,n.sizes=`1204x1204`,n.href=e,t===null&&document.head.append(n)}OY(OR),(0,vt.createRoot)(document.getElementById(`root`)).render((0,L.jsx)(I.StrictMode,{children:(0,L.jsx)(DY,{})}));export{K as C,Wb as S,px as _,_O as a,qb as b,DO as c,zx as d,Rx as f,vx as g,bx as h,wO as i,xO as l,Cx as m,lO as n,yO as o,Fx as p,EO as r,TO as s,sL as t,Kx as u,fx as v,Qe as w,Gb as x,ix as y};
|