@mastra/deployer-cloud 1.80.0-alpha.1 → 1.80.0-alpha.2
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.
|
@@ -686,7 +686,7 @@ window.parent.postMessage({jsonrpc:'2.0',method:'ui/notifications/sandbox-proxy-
|
|
|
686
686
|
]`,XGr=[{name:`input`,description:`What the agent receives. A string or any JSON value.`,required:!0},{name:`groundTruth`,description:`Expected answer used by scorers.`,required:!1},{name:`metadata`,description:`Any object, useful for filtering and grouping.`,required:!1}];function ZGr(){let{isCopied:e,handleCopy:t}=KT({text:YGr,showToast:!1});return(0,W.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,W.jsx)(Z,{variant:`column`,tone:`ink`,className:`flex h-8 items-center`,children:`Each item looks like this`}),(0,W.jsx)(`dl`,{className:`divide-y divide-border rounded-lg border border-border`,children:XGr.map(e=>(0,W.jsxs)(`div`,{className:`grid grid-cols-[7rem_1fr] gap-3 px-3 py-2.5`,children:[(0,W.jsx)(`dt`,{className:rw({tone:`ink`,variant:`meta`}),children:(0,W.jsx)(RZ,{children:e.name})}),(0,W.jsxs)(`dd`,{className:`flex flex-col items-start gap-1.5 text-muted-foreground`,children:[(0,W.jsx)(Z,{as:`span`,variant:`meta`,children:e.description}),e.required?(0,W.jsx)(GT,{variant:`success`,size:`xs`,children:`required`}):(0,W.jsx)(GT,{variant:`neutral`,emphasis:`subtle`,size:`xs`,children:`optional`})]})]},e.name))}),(0,W.jsxs)(`div`,{className:`overflow-hidden rounded-lg border border-border`,children:[(0,W.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border bg-card py-1.5 pr-1.5 pl-3`,children:[(0,W.jsx)(Z,{as:`span`,variant:`meta`,tone:`muted`,font:`mono`,children:`example.json`}),(0,W.jsx)(Y,{icon:e?(0,W.jsx)(LS,{}):(0,W.jsx)(YS,{}),variant:`ghost`,size:`sm`,onClick:t,children:e?`Copied`:`Copy`})]}),(0,W.jsx)(yO,{variant:`embedded`,language:`json`,editable:!1,lineNumbers:!1,showCopyButton:!1,value:YGr,className:`p-3`})]}),(0,W.jsx)(Y,{variant:`ghost`,render:(0,W.jsx)(`a`,{href:JGr,target:`_blank`,rel:`noopener noreferrer`}),className:`self-start`,icon:(0,W.jsx)(tC,{}),children:`Datasets documentation`})]})}var QGr=10,$Gr=`[
|
|
687
687
|
{ "input": "…", "groundTruth": "…" }
|
|
688
688
|
]`,eKr=`flex min-h-0 flex-1 flex-col py-0`;function tKr({tab:e,onTabChange:t,file:n,onFileSelect:r,onReplace:i,pastedText:a,onPastedTextChange:o,validation:s,isImporting:c}){return(0,W.jsxs)(tN,{value:e,defaultTab:`upload`,onValueChange:t,className:`flex h-full flex-col gap-3`,children:[(0,W.jsxs)(eN,{variant:`pill`,children:[(0,W.jsx)(nN,{value:`upload`,children:`Upload file`}),(0,W.jsx)(nN,{value:`paste`,children:`Paste JSON`})]}),(0,W.jsx)(rN,{value:`upload`,className:eKr,children:n?(0,W.jsx)(aKr,{file:n,validation:s,onReplace:i,isImporting:c}):(0,W.jsx)(nKr,{onFileSelect:r,disabled:c})}),(0,W.jsx)(rN,{value:`paste`,className:eKr,children:(0,W.jsx)(yO,{"aria-label":`JSON items`,language:`json`,lineNumbers:!1,showCopyButton:!1,placeholder:$Gr,value:a,onChange:o,editable:!c,className:`min-h-50 flex-1`})})]})}function nKr({onFileSelect:e,disabled:t}){let[n,r]=(0,U.useState)(!1),i=(0,U.useCallback)(t=>{let n=t.target.files?.[0];n&&e(n),t.target.value=``},[e]),a=(0,U.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),r(!0)},[]),o=(0,U.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),r(!1)},[]),s=(0,U.useCallback)(n=>{if(n.preventDefault(),n.stopPropagation(),r(!1),t)return;let i=n.dataTransfer.files?.[0];i&&e(i)},[t,e]);return(0,W.jsxs)(`div`,{"data-testid":`json-dropzone`,onDragOver:a,onDragLeave:o,onDrop:s,className:H(`relative flex flex-1 flex-col items-center justify-center gap-3 rounded-lg border border-dashed border-border bg-card px-4 py-6 text-center`,`hover:border-success-edge hover:bg-success-subtle`,n&&`border-success-edge bg-success-subtle`,t&&`cursor-wait opacity-60`),children:[(0,W.jsx)(`input`,{type:`file`,accept:`.json,application/json`,"aria-label":`Choose a JSON file`,onChange:i,disabled:t,className:`absolute inset-0 cursor-pointer opacity-0`}),(0,W.jsx)(`div`,{className:`flex size-9 items-center justify-center rounded-md border border-border bg-background text-muted-foreground`,children:(0,W.jsx)(ZC,{className:`size-4`})}),(0,W.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,W.jsx)(Z,{tone:`ink`,children:`Drop a JSON file here`}),(0,W.jsxs)(Z,{variant:`caption`,tone:`muted`,children:[`or `,(0,W.jsx)(`span`,{className:`underline`,children:`choose a file`}),` from your computer`]})]}),(0,W.jsxs)(Z,{variant:`meta`,tone:`muted`,children:[`.json · an array of items · up to `,hUr]})]})}function rKr(e){return e>=1048576?`${(e/1048576).toFixed(1)} MB`:`${Math.max(1,Math.round(e/1024))} KB`}function iKr(e){return typeof e==`string`?e:JSON.stringify(e)??``}function aKr({file:e,validation:t,onReplace:n,isImporting:r}){let i=`rows`in t?t.rows:[],a=`total`in t?t.total:0,o=i.slice(0,QGr);return(0,W.jsxs)(`div`,{"data-testid":`json-file-card`,className:`rounded-lg border border-border`,children:[(0,W.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2`,children:[(0,W.jsx)(rC,{className:`size-4 shrink-0 text-muted-foreground`}),(0,W.jsx)(Z,{as:`span`,variant:`caption`,tone:`ink`,font:`mono`,className:`min-w-0 flex-1 truncate`,children:e.name}),(0,W.jsx)(Z,{as:`span`,variant:`meta`,tone:`muted`,className:`shrink-0`,children:rKr(e.size)}),(0,W.jsx)(Y,{icon:(0,W.jsx)(FC,{}),variant:`ghost`,size:`sm`,onClick:n,disabled:r,children:`Replace`})]}),o.map(e=>(0,W.jsxs)(`div`,{className:`grid grid-cols-[2rem_1fr_auto] items-center gap-2 border-t border-border px-3 py-1.5`,children:[(0,W.jsx)(Z,{as:`span`,variant:`meta`,tone:`muted`,children:e.index}),(0,W.jsx)(Z,{as:`span`,variant:`caption`,tone:`ink`,font:`mono`,className:`truncate`,children:iKr(e.input)}),e.hasInput?e.hasGroundTruth?null:(0,W.jsx)(GT,{variant:`warning`,size:`xs`,children:`no groundTruth`}):(0,W.jsx)(GT,{variant:`destructive`,size:`xs`,children:`no input`})]},e.index)),a>QGr&&(0,W.jsxs)(Z,{as:`p`,variant:`meta`,tone:`muted`,className:`border-t border-border px-3 py-1.5`,children:[`+ `,a-QGr,` more`]})]})}var oKr=e=>new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(r.result),r.onerror=()=>n(r.error),r.readAsText(e)});function sKr({datasetId:e,datasetName:t,open:n,onOpenChange:r,onSuccess:i}){let[a,o]=(0,U.useState)(`upload`),[s,c]=(0,U.useState)(null),[l,u]=(0,U.useState)(``),[d,f]=(0,U.useState)(null),[p,m]=(0,U.useState)(``),[h,g]=(0,U.useState)(!1),_=(0,U.useRef)(0),{batchInsertItems:v}=YL(),y=a===`upload`?l:p,b=(0,U.useMemo)(()=>a===`upload`&&d?{status:`error`,kind:`parse`,message:d}:vUr(y),[a,d,y]),x=(0,U.useCallback)(async e=>{let t=++_.current;if(!e.name.toLowerCase().endsWith(`.json`))f(`Only .json files are supported`);else if(e.size>4194304)f(`File is larger than ${hUr}`);else try{let n=await oKr(e);if(t!==_.current)return;c({name:e.name,size:e.size}),u(n),f(null)}catch{if(t!==_.current)return;f(`Could not read the file`)}},[]),S=(0,U.useCallback)(()=>{_.current++,c(null),u(``),f(null)},[]),C=(0,U.useCallback)(()=>{_.current++,o(`upload`),c(null),u(``),f(null),m(``)},[]),w=(0,U.useCallback)(()=>{r(!1),setTimeout(C,150)},[r,C]),T=(0,U.useCallback)(async()=>{if(b.status===`ready`){g(!0);try{await v.mutateAsync({datasetId:e,items:b.items}),fw.success(`Imported ${b.total} item${b.total===1?``:`s`}`),i?.(),r(!1),setTimeout(C,150)}catch(e){fw.error(e instanceof Error?e.message:`Failed to import items`)}finally{g(!1)}}},[b,v,e,i,r,C]);return(0,W.jsx)(HE,{open:n,onOpenChange:w,pending:h,children:(0,W.jsxs)(UE,{size:`xl`,children:[(0,W.jsxs)(WE,{children:[(0,W.jsx)(qE,{children:`Import into dataset`}),(0,W.jsxs)(JE,{children:[`Add items to `,t?(0,W.jsx)(`span`,{className:`text-foreground`,children:t}):`this dataset`,` from a JSON file or paste them directly.`]})]}),(0,W.jsx)(KE,{flush:!0,children:(0,W.jsxs)(`div`,{className:`grid divide-y divide-border md:grid-cols-[1.15fr_1fr] md:divide-x md:divide-y-0`,children:[(0,W.jsx)(`div`,{className:`flex min-h-[360px] flex-col p-4`,children:(0,W.jsx)(tKr,{tab:a,onTabChange:o,file:s,onFileSelect:x,onReplace:S,pastedText:p,onPastedTextChange:m,validation:b,isImporting:h})}),(0,W.jsx)(`div`,{className:`p-4`,children:(0,W.jsx)(ZGr,{})})]})}),(0,W.jsxs)(GE,{children:[(0,W.jsx)(cKr,{validation:b}),(0,W.jsx)(YE,{children:`Cancel`}),(0,W.jsxs)(VE,{onConfirm:T,disabled:b.status!==`ready`,children:[h&&(0,W.jsx)(dt,{}),b.status===`ready`?`Import ${b.total} item${b.total===1?``:`s`}`:`Import`]})]})]})})}function cKr({validation:e}){let t=H(`size-1.5 shrink-0 rounded-full`,e.status===`idle`&&`bg-muted-foreground`,e.status===`ready`&&`bg-success-indicator`,e.status===`error`&&`bg-destructive-indicator`),n;switch(e.status){case`idle`:n=`No items yet`;break;case`ready`:n=(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Z,{as:`b`,variant:`label`,tone:`ink`,children:e.total}),` `,`item`,e.total===1?``:`s`,` ready`,e.missingGroundTruthCount>0&&` · ${e.missingGroundTruthCount} without groundTruth`]});break;case`error`:switch(e.kind){case`parse`:n=`Not valid JSON — ${e.message}`;break;case`not-array`:n=`Top level must be an array of items`;break;case`empty`:n=`The array has no items`;break;case`too-large`:n=`JSON is larger than ${hUr}`;break;case`missing-input`:n=(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Z,{as:`b`,variant:`label`,tone:`ink`,children:e.missingInputCount}),` `,`of `,e.total,` item`,e.total===1?``:`s`,` `,e.missingInputCount===1?`has`:`have`,` no`,` `,(0,W.jsx)(RZ,{children:`input`})]})}}return(0,W.jsxs)(`div`,{role:`status`,className:`mr-auto flex min-w-0 items-center gap-2`,children:[(0,W.jsx)(`span`,{className:t}),(0,W.jsx)(Z,{tone:`muted`,as:`span`,variant:`caption`,className:`truncate`,children:n})]})}function lKr(e){if(!(e instanceof HTMLElement))return!1;if(e.isContentEditable)return!0;let t=e.tagName;return t===`INPUT`||t===`TEXTAREA`||t===`SELECT`||!!e.closest(`[role="dialog"]:not([data-item-panel])`)}function uKr({active:e,onPrevious:t,onNext:n,onClose:r}){(0,U.useEffect)(()=>{if(!e)return;let i=e=>{e.defaultPrevented||lKr(e.target)||(e.key===`PageUp`?(e.preventDefault(),t?.()):e.key===`PageDown`?(e.preventDefault(),n?.()):e.key===`Escape`&&(e.preventDefault(),r()))};return window.addEventListener(`keydown`,i),()=>window.removeEventListener(`keydown`,i)},[e,t,n,r])}var dKr=(0,U.createContext)(null);function fKr({datasetId:e,items:t,isLoadingItems:n,children:r}){let i=Gv(),a=QFe(`/datasets/:datasetId/items/:itemId`)?.params.itemId,o=(0,U.useCallback)(t=>{i(`/datasets/${e}/items/${encodeURIComponent(t)}`)},[i,e]),s=(0,U.useCallback)(()=>{i(`/datasets/${e}`)},[i,e]),c=(0,U.useMemo)(()=>a?t.findIndex(e=>e.id===a):-1,[t,a]),l=(0,U.useMemo)(()=>{if(c<=0)return;let e=t[c-1].id;return()=>o(e)},[c,t,o]),u=(0,U.useMemo)(()=>{if(c<0||c>=t.length-1)return;let e=t[c+1].id;return()=>o(e)},[c,t,o]);uKr({active:!!a,onPrevious:l,onNext:u,onClose:s});let d=(0,U.useMemo)(()=>({datasetId:e,items:t,isLoadingItems:n,currentItemId:a,openItem:o,close:s,goToPreviousItem:l,goToNextItem:u}),[e,t,n,a,o,s,l,u]);return(0,W.jsx)(dKr.Provider,{value:d,children:r})}function pKr(){let e=(0,U.useContext)(dKr);if(!e)throw Error(`useDatasetItemPanel must be used within a DatasetItemPanelProvider`);return e}var mKr=[`createdAt`];function hKr({datasetId:e,onAddItemClick:t,onNavigateToDataset:n,toolbarActionsSlot:r}){let[i,a]=ty(),{activeVersion:o}=tR(i,a),{sort:s,onSortChange:c}=J8({searchParams:i,setSearchParams:a,allowedKeys:mKr}),l=(0,U.useMemo)(()=>s?{field:s.key,direction:s.direction===`asc`?`ASC`:`DESC`}:void 0,[s]),[u,d]=(0,U.useState)(!1),[f,p]=(0,U.useState)(!1),[m,h]=(0,U.useState)(!1),[g,_]=(0,U.useState)([]),[v,y]=(0,U.useState)(!1),[b,x]=(0,U.useState)([]),[S,C]=(0,U.useState)(!1),[w,T]=(0,U.useState)([]),[E,D]=(0,U.useState)(0),[O,k]=(0,U.useState)(``),[A]=DD(O,300),{data:j}=ZL({datasetId:e,queryOptions:{enabled:!!e}}),{data:M=[],isLoading:N,setEndOfListElement:P,isFetchingNextPage:F,hasNextPage:I}=JL({datasetId:e,search:A||void 0,version:o,orderBy:l,queryOptions:{enabled:!!e}}),{deleteItems:L}=YL(),{currentItemId:R,openItem:z,close:B}=pKr();return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`div`,{className:`grid h-full overflow-auto`,children:(0,W.jsx)(qGr,{items:M,toolbarActionsSlot:r,isLoading:N,onItemClick:e=>{R===e?B():z(e)},featuredItemId:R,onAddClick:t??(()=>{}),onImportClick:()=>d(!0),onImportJsonClick:()=>p(!0),onBulkDeleteClick:e=>{T(e),C(!0)},onCreateDatasetClick:e=>{_(e),h(!0)},onAddToDatasetClick:e=>{x(e),y(!0)},datasetName:j?.name,clearSelectionTrigger:E,setEndOfListElement:P,isFetchingNextPage:F,hasNextPage:I,searchQuery:O,activeSearchQuery:A,onSearchChange:k,sort:s,onSortChange:c,currentDatasetVersion:j?.version})}),(0,W.jsx)(zGr,{datasetId:e,open:u,onOpenChange:d}),(0,W.jsx)(sKr,{datasetId:e,datasetName:j?.name,open:f,onOpenChange:p}),(0,W.jsx)(DUr,{open:m,onOpenChange:e=>{h(e),e||(_([]),D(e=>e+1))},items:g,onSuccess:e=>{h(!1),_([]),D(e=>e+1),n?.(e)}}),(0,W.jsx)(OUr,{open:v,onOpenChange:e=>{y(e),e||(x([]),D(e=>e+1))},items:b,currentDatasetId:e}),(0,W.jsx)(hL,{open:S,onOpenChange:C,children:(0,W.jsxs)(hL.Content,{children:[(0,W.jsxs)(hL.Header,{children:[(0,W.jsx)(hL.Title,{children:`Delete Items`}),(0,W.jsxs)(hL.Description,{children:[`Are you sure you want to delete `,w.length,` item`,w.length===1?``:`s`,`? This action cannot be undone.`]})]}),(0,W.jsxs)(hL.Footer,{children:[(0,W.jsx)(hL.Cancel,{children:`Cancel`}),(0,W.jsx)(hL.Action,{onClick:async()=>{await L.mutateAsync({datasetId:e,itemIds:w}),fw.success(`Deleted ${w.length} items`),C(!1),T([]),D(e=>e+1)},children:L.isPending?`Deleting...`:`Delete`})]})]})})]})}var gKr=`__create_tag__`;function _Kr({datasetId:e}){let{data:t}=ZL({datasetId:e,queryOptions:{enabled:!!e}}),{data:n}=XL(),{updateDataset:r}=YL(),[i,a]=(0,U.useState)(``),o=(0,U.useMemo)(()=>Array.isArray(t?.tags)?t.tags:[],[t?.tags]),s=(0,U.useMemo)(()=>kHr(n?.datasets??[]),[n?.datasets]),c=(0,U.useMemo)(()=>{let e=s.map(e=>({label:e,value:e,end:o.includes(e)?(0,W.jsx)(LS,{"data-testid":`tag-applied`,className:`size-3.5`}):void 0})),t=i.trim();return t.length>0&&!s.includes(t)&&!o.includes(t)?[{label:`Create "${t}"`,value:gKr},...e]:e},[s,o,i]),l=t=>{r.mutate({datasetId:e,tags:t},{onError:()=>fw.error(`Failed to update tags`)})},u=e=>{let t=e===gKr?i.trim():e;t&&!o.includes(t)&&l([...o,t])},d=e=>{l(o.filter(t=>t!==e))};return(0,W.jsxs)(`div`,{"data-testid":`dataset-tags-editor`,className:`flex flex-wrap items-center gap-2`,children:[o.map(e=>(0,W.jsxs)(G5,{value:e,size:`md`,className:`gap-1 pr-1`,children:[e,(0,W.jsx)(`button`,{type:`button`,"aria-label":`Remove tag ${e}`,disabled:r.isPending,onClick:()=>d(e),className:`cursor-pointer rounded-sm hover:opacity-70 disabled:opacity-50`,children:(0,W.jsx)(tw,{className:`size-3`})})]},e)),(0,W.jsx)(FL,{options:c,value:void 0,onValueChange:u,onInputValueChange:a,placeholder:`Add tag`,searchPlaceholder:`Search or create tag...`,emptyText:`Type to create a tag`,variant:`ghost`,size:`sm`,className:`w-auto min-w-0`,disabled:r.isPending})]})}var u7=e=>JSON.stringify(e??null,null,2),vKr=e=>e==null||e===``||typeof e==`object`&&!Array.isArray(e)&&Object.keys(e).length===0,yKr=[{key:`input`,title:`Input`,icon:(0,W.jsx)(iC,{}),value:e=>u7(e.input),payload:e=>e.input},{key:`groundTruth`,title:`Ground Truth`,icon:(0,W.jsx)(aC,{}),value:e=>vKr(e.groundTruth)?void 0:u7(e.groundTruth),payload:e=>vKr(e.groundTruth)?null:e.groundTruth},{key:`expectedTrajectory`,title:`Expected Trajectory`,icon:(0,W.jsx)(zKe,{}),value:e=>e.expectedTrajectory==null?void 0:u7(e.expectedTrajectory)},{key:`toolMocks`,title:`Tool Mocks`,icon:(0,W.jsx)(ew,{}),value:e=>e.toolMocks?.length?u7(e.toolMocks):void 0},{key:`requestContext`,title:`Request Context`,icon:(0,W.jsx)(NS,{}),value:e=>e.requestContext==null?void 0:u7(e.requestContext)},{key:`metadata`,title:`Metadata`,icon:(0,W.jsx)(GC,{}),value:e=>u7(e.metadata)}],bKr=e=>e.toFixed(2);function xKr({delta:e,format:t=bKr,higherIsBetter:n=!0,baseline:r}){let i=e===0?`text-muted-foreground`:(n?e>0:e<0)?`text-success-indicator`:`text-destructive-foreground`,a=e>0?`+`:e<0?`-`:``,o=`${a}${t(Math.abs(e))}`,s=r!==void 0&&r!==0&&Number.isFinite(r),c=(0,W.jsxs)(W.Fragment,{children:[a,s?`${(Math.abs(e)/Math.abs(r)*100).toFixed(1)}%`:t(Math.abs(e)),(0,W.jsx)(`span`,{"aria-hidden":!0,className:`inline-flex size-3.5 shrink-0 [&>svg]:size-3.5`,children:e>0?(0,W.jsx)(LWe,{}):e<0?(0,W.jsx)(NWe,{}):null})]}),l=H(`inline-flex items-center gap-1 tabular-nums`,i);return s?(0,W.jsxs)(iS,{children:[(0,W.jsx)(aS,{render:(0,W.jsx)(`span`,{tabIndex:0,className:l}),children:c}),(0,W.jsx)(oS,{children:o})]}):(0,W.jsx)(`span`,{className:l,children:c})}function SKr({scorerId:e}){let{Link:t,paths:n}=Ft();return(0,W.jsx)(t,{href:n.scorerLink(e),"aria-label":`Open ${e}`,className:`min-w-0 truncate hover:text-foreground hover:underline`,children:e})}function d7({metrics:e}){if(e.length===0)return null;let t=e.some(e=>e.delta!=null);return(0,W.jsx)(`dl`,{className:H(`grid auto-rows-[minmax(1.5rem,auto)] items-center gap-x-4 gap-y-1`,t?`grid-cols-[minmax(0,1fr)_auto_auto]`:`grid-cols-[minmax(0,1fr)_auto]`),children:e.map(({id:e,icon:n,label:r,value:i,delta:a,formatDelta:o,rawValue:s,higherIsBetter:c,emphasis:l})=>(0,W.jsxs)(U.Fragment,{children:[(0,W.jsxs)(`dt`,{className:`flex min-w-0 items-center gap-1.5 text-body-sm text-muted-foreground [&>svg]:size-3.5 [&>svg]:shrink-0`,children:[n,r]}),(0,W.jsx)(`dd`,{className:H(`flex min-w-0 justify-end text-right text-foreground tabular-nums`,l?`text-heading font-semibold`:`text-body-sm`),children:i}),t&&(0,W.jsx)(`dd`,{className:`flex justify-end text-body-sm`,children:a!=null&&(0,W.jsx)(xKr,{delta:a,format:o,higherIsBetter:c,baseline:s==null?void 0:s-a})})]},e))})}function f7({value:e}){return(0,W.jsx)(`div`,{className:`min-w-0 p-3 text-foreground`,children:typeof e==`string`?(0,W.jsx)(CZ,{children:e}):(0,W.jsx)(yO,{value:JSON.stringify(e??null,null,2),language:`json`,editable:!1,lineNumbers:!1,showCopyButton:!1,variant:`embedded`,"aria-label":`JSON payload`})})}var p7=`grid content-start gap-5`;function m7({title:e,actions:t,tone:n=`default`,collapsible:r=!0,framed:i=!1,expanded:a,onExpandedChange:o,children:s}){let c=q$({collapsedHeight:160}),l=a===void 0||!o?c:{...c,isExpanded:a,setExpanded:o,toggleExpanded:()=>o(!a)},u=r?(0,W.jsx)(K$,{state:l,expandLabel:`Expand`,children:s}):s;return(0,W.jsxs)(`section`,{className:`grid min-w-0 gap-2`,children:[(0,W.jsxs)(`div`,{className:`flex h-7 items-center justify-between gap-2`,children:[(0,W.jsx)(w$.SectionHeading,{className:H(n===`negative`&&`text-destructive-foreground`),children:e}),(0,W.jsx)(`div`,{className:`ml-auto flex items-center gap-1`,children:t})]}),(0,W.jsxs)(`div`,{role:`region`,"aria-label":e,className:`min-w-0`,children:[i?n===`negative`?(0,W.jsx)(`div`,{className:`min-w-0 overflow-hidden rounded-lg border border-destructive-edge bg-destructive-subtle`,children:u}):(0,W.jsx)(jR,{className:`min-w-0 overflow-hidden`,children:u}):u,r&&l.isExpanded&&l.isClipped&&(0,W.jsx)(`div`,{className:`flex justify-center pt-1`,children:(0,W.jsx)(Y,{size:`sm`,variant:`ghost`,icon:(0,W.jsx)(EC,{}),onClick:()=>l.setExpanded(!1),children:`Collapse`})})]})]})}function CKr({item:e,diff:t}){return(0,W.jsxs)(`div`,{className:p7,children:[(0,W.jsx)(d7,{metrics:wKr(e)}),yKr.map(n=>{if(n.payload&&!t){let t=n.payload(e);return t==null?null:(0,W.jsx)(m7,{title:n.title,framed:!0,actions:(0,W.jsx)(qT,{content:typeof t==`string`?t:JSON.stringify(t,null,2)}),children:(0,W.jsx)(f7,{value:t})},n.key)}let r=n.value(e),i=t?n.value(t.against):void 0;return r===void 0&&i===void 0?null:r===void 0?(0,W.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,W.jsx)(w$.SectionHeading,{icon:n.icon,children:n.title}),(0,W.jsx)(Z,{as:`p`,variant:`body`,tone:`muted`,children:`Not set in this version`})]},n.key):(0,W.jsx)(w$.CodeSection,{title:n.title,icon:n.icon,codeStr:r,diff:t?{against:i??``,side:t.side}:void 0},n.key)})]})}function wKr(e){let t=e.updatedAt&&new Date(e.updatedAt).getTime()!==new Date(e.createdAt).getTime(),n=[{id:`item-id`,icon:(0,W.jsx)(cC,{}),label:`Item Id`,value:(0,W.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,W.jsx)(`span`,{className:`font-mono`,title:e.id,children:TK(e.id)}),(0,W.jsx)(qT,{content:e.id,tooltip:`Copy item ID to clipboard`,variant:`link`})]}),delta:null},{id:`created`,icon:(0,W.jsx)(IS,{}),label:`Created`,value:$T(e.createdAt,`date-time`),delta:null}];return t&&n.push({id:`updated`,icon:(0,W.jsx)(FS,{}),label:`Updated`,value:$T(e.updatedAt,`date-time`),delta:null}),n}function TKr({field:e,errors:t}){return t.length===0?null:(0,W.jsx)(GM,{children:(0,W.jsx)(`span`,{className:`space-y-1`,children:t.map(t=>(0,W.jsxs)(`span`,{className:`block`,children:[(0,W.jsxs)(`code`,{className:`rounded bg-destructive-subtle px-1`,children:[e,t.path===`/`?``:t.path]}),`: `,t.message]},`${t.path}:${t.message}`))})})}function EKr({inputValue:e,setInputValue:t,groundTruthValue:n,setGroundTruthValue:r,metadataValue:i,setMetadataValue:a,trajectoryValue:o,setTrajectoryValue:s,toolMocksValue:c,setToolMocksValue:l,requestContextValue:u,setRequestContextValue:d,validationErrors:f,onSave:p,onCancel:m,isSaving:h}){return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`div`,{className:`mb-4`,children:(0,W.jsxs)(Z,{as:`h3`,variant:`heading`,className:`flex items-center gap-2`,children:[(0,W.jsx)(kC,{className:`h-5 w-5`}),` Edit Item`]})}),(0,W.jsxs)(`div`,{className:`space-y-6`,children:[(0,W.jsxs)(VM,{invalid:f?.field===`input`,children:[(0,W.jsx)(UM,{required:!0,children:`Input (JSON)`}),(0,W.jsx)(yO,{value:e,onChange:t,showCopyButton:!1,className:`min-h-[120px]`}),f?.field===`input`&&(0,W.jsx)(TKr,{field:`input`,errors:f.errors})]}),(0,W.jsxs)(VM,{invalid:f?.field===`groundTruth`,children:[(0,W.jsx)(UM,{children:`Ground Truth (JSON, optional)`}),(0,W.jsx)(yO,{value:n,onChange:r,showCopyButton:!1,className:`min-h-[100px]`}),f?.field===`groundTruth`&&(0,W.jsx)(TKr,{field:`groundTruth`,errors:f.errors})]}),(0,W.jsxs)(VM,{children:[(0,W.jsx)(UM,{children:`Expected Trajectory (JSON, optional)`}),(0,W.jsx)(yO,{value:o,onChange:s,showCopyButton:!1,className:`min-h-[80px]`})]}),(0,W.jsxs)(VM,{invalid:f?.field===`toolMocks`,children:[(0,W.jsx)(UM,{children:`Tool Mocks (JSON array, optional)`}),(0,W.jsxs)(WM,{children:[`Ordered static mocks served in place of executing the tool. Each entry is`,` `,(0,W.jsx)(`code`,{children:`{ "toolName", "args", "output" }`}),`. Calling a mocked tool with non-matching args fails the item; unmocked tools run live.`]}),(0,W.jsx)(yO,{value:c,onChange:l,showCopyButton:!1,className:`min-h-[100px]`}),f?.field===`toolMocks`&&(0,W.jsx)(TKr,{field:`toolMocks`,errors:f.errors})]}),(0,W.jsxs)(VM,{children:[(0,W.jsx)(UM,{children:`Request Context (JSON, optional)`}),(0,W.jsx)(yO,{value:u,onChange:d,showCopyButton:!1,className:`min-h-[80px]`})]}),(0,W.jsxs)(VM,{children:[(0,W.jsx)(UM,{children:`Metadata (JSON, optional)`}),(0,W.jsx)(yO,{value:i,onChange:a,showCopyButton:!1,className:`min-h-[80px]`})]}),(0,W.jsxs)(`div`,{className:`flex gap-2 pt-4`,children:[(0,W.jsx)(Y,{icon:(0,W.jsx)(LS,{}),variant:`primary`,onClick:p,disabled:h,children:h?`Saving...`:`Save changes`}),(0,W.jsx)(Y,{icon:(0,W.jsx)(tw,{}),onClick:m,disabled:h,children:`Cancel`})]})]})]})}function DKr(){return(0,W.jsxs)(IT,{className:`inline-flex h-control-md w-fit cursor-pointer items-center gap-1.5 rounded-sm text-label text-muted-foreground focus-visible:outline-offset-2`,children:[(0,W.jsx)(RT,{direction:`right`,className:`-mr-0.5 -ml-[4.3px] size-icon-md in-aria-expanded:translate-x-[2px]`}),`Advanced`]})}function OKr({provider:e,modelId:t,canReset:n,onProviderChange:r,onModelIdChange:i,onReset:a,container:o}){let s=hw(),{isLoading:c}=XY(),[l,u]=(0,U.useState)(!1);return s.active&&s.pickerVisible===!1?(0,W.jsxs)(KM,{className:`gap-2`,children:[(0,W.jsx)(qM,{children:`Model`}),(0,W.jsx)(`div`,{children:(0,W.jsx)(GT,{icon:(0,W.jsx)(CC,{}),children:`Locked by admin`})})]}):(0,W.jsxs)(KM,{className:`gap-2`,children:[(0,W.jsx)(qM,{children:`Model`}),c?(0,W.jsx)(Vw,{className:`h-control-md w-60 rounded-full`}):(0,W.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,W.jsxs)(_K,{className:`min-w-0`,children:[(0,W.jsx)(QY,{value:e,onValueChange:e=>{r(e),u(!0)},container:o,"aria-label":`Model provider`,className:`w-auto min-w-0 shrink-0 gap-1 px-3`}),(0,W.jsx)($Y,{llmId:e,value:t,onValueChange:i,open:l,onOpenChange:u,container:o,disabled:!e,"aria-label":`Model`,className:`w-auto min-w-0 gap-1 px-3`})]}),n&&(0,W.jsx)(Y,{variant:`ghost`,size:`icon-md`,tooltip:`Use the agent's model`,onClick:a,children:(0,W.jsx)(LC,{})})]})]})}var kKr=(e,t)=>`${e}:${t}`,AKr=(e,t)=>e?.value===t?.value;function jKr(e,t){if(e!==void 0)return`${`${e} ${e===1?`item`:`items`}`} · ${t===void 0?`latest`:`v${t}`}`}function MKr({datasets:e,datasetId:t,version:n,onDatasetChange:r,container:i}){let{total:a}=JL({datasetId:t,search:void 0,version:n,queryOptions:{enabled:!!t}}),o=e.find(e=>e.value===t)??null;return(0,W.jsxs)(VM,{children:[(0,W.jsx)(UM,{required:!0,info:`The items to run. Each item's input goes to the target. Runs on the latest version unless you pick one under Advanced.`,children:`Dataset`}),(0,W.jsxs)(AL,{items:e,value:o,onValueChange:e=>e&&r(e.value),isItemEqualToValue:AKr,autoHighlight:!0,children:[(0,W.jsx)(VAt,{placeholder:`Select a dataset`,children:jKr(a,n)}),(0,W.jsxs)(jL,{container:i,children:[(0,W.jsx)(PL,{children:`No datasets found`}),(0,W.jsx)(ML,{children:e=>(0,W.jsx)(NL,{value:e,children:e.label},e.value)})]})]})]})}function NKr(e,t){return t!==void 0||(e??1)>1}function PKr({datasetId:e,version:t,onVersionChange:n,container:r}){let{data:i}=ZL({datasetId:e,queryOptions:{enabled:!!e}});return NKr(i?.version,t)?(0,W.jsxs)(VM,{children:[(0,W.jsx)(UM,{children:`Dataset version`}),(0,W.jsx)(CMt,{datasetId:e,value:t??null,onValueChange:e=>n(e??void 0),container:r})]}):null}function FKr({description:e,onDescriptionChange:t,disabled:n}){return(0,W.jsxs)(VM,{children:[(0,W.jsx)(UM,{children:`Description`}),(0,W.jsx)(MN,{value:e,onChange:e=>t(e.target.value),placeholder:`Optional`,rows:2,disabled:n})]})}function IKr({name:e,defaultName:t,onNameChange:n,disabled:r}){return(0,W.jsxs)(VM,{children:[(0,W.jsx)(UM,{children:`Experiment name`}),(0,W.jsx)(_I,{value:e,placeholder:t,onChange:e=>n(e.target.value),disabled:r})]})}function LKr(e){try{return _M(e)}catch(e){console.error(`Failed to parse requestContextSchema:`,e);return}}function RKr({requestContextSchema:e,onChange:t}){let[n]=(0,U.useState)(()=>LKr(e));return n?(0,W.jsxs)(KM,{children:[(0,W.jsx)(qM,{children:`Request context`}),(0,W.jsx)(fL,{schema:n,onValuesChange:t,className:`[&_button[type=submit]]:hidden`})]}):(0,W.jsx)(`div`,{role:`alert`,children:(0,W.jsx)(oN,{variant:`destructive`,children:`Failed to parse request context schema`})})}function zKr({schema:e,raw:t,onRawChange:n,onValuesChange:r}){return e?(0,W.jsx)(RKr,{requestContextSchema:e,onChange:r}):(0,W.jsxs)(VM,{children:[(0,W.jsx)(UM,{children:`Request context (JSON)`}),(0,W.jsx)(yO,{value:t,onChange:n,showCopyButton:!1,"aria-label":`Request context JSON`,className:`min-h-[120px]`})]})}function BKr({onRun:e,canRun:t,isRunning:n}){return(0,W.jsx)(VE,{onConfirm:e,disabled:!t,children:(0,W.jsx)(VKr,{isRunning:n})})}function VKr({isRunning:e}){return e?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(dt,{className:`h-4 w-4`}),`Starting…`]}):`Run experiment`}function HKr({scorer:e}){let t=(0,W.jsx)(NL,{value:e,children:e.label});return e.description?(0,W.jsxs)(iS,{children:[(0,W.jsx)(aS,{render:t}),(0,W.jsx)(oS,{side:`right`,className:`max-w-64`,children:e.description})]}):t}function UKr(){let{data:e}=uR();return Object.entries(e??{}).filter(([,e])=>e.isRegistered).map(([e,t])=>({value:e,label:t.scorer?.config?.name||e,description:t.scorer?.config?.description||void 0}))}function WKr(e,t){return e.map(e=>t.find(t=>t.value===e)??{value:e,label:e})}function GKr({scorerIds:e,usesDefaultScorers:t,onScorerIdsChange:n,container:r}){let i=UKr();return(0,W.jsxs)(VM,{children:[(0,W.jsx)(UM,{info:`Grade each output automatically. Outputs are saved either way, so you can always review them yourself.`,children:`Scorers`}),(0,W.jsxs)(AL,{multiple:!0,items:i,value:WKr(e,i),onValueChange:e=>n(e.map(e=>e.value)),isItemEqualToValue:AKr,autoHighlight:!0,children:[(0,W.jsx)(qAt,{children:(0,W.jsx)(LAt,{children:e=>(0,W.jsxs)(W.Fragment,{children:[e.map(e=>(0,W.jsx)(JAt,{children:e.label},e.value)),(0,W.jsx)(YAt,{placeholder:e.length===0?`No scoring, read the outputs yourself`:void 0})]})})}),(0,W.jsxs)(jL,{container:r,children:[(0,W.jsx)(PL,{children:`No scorers registered`}),(0,W.jsx)(ML,{children:e=>(0,W.jsx)(HKr,{scorer:e},e.value)})]})]}),t&&(0,W.jsx)(WM,{children:`The dataset's default scorers.`})]})}var KKr=[{type:`agent`,label:`Agents`},{type:`workflow`,label:`Workflows`},{type:`scorer`,label:`Scorers`}];function qKr(e){return KKr.map(t=>({value:t.label,items:e.filter(e=>e.type===t.type)})).filter(e=>e.items.length>0)}function JKr({options:e,isLoading:t,target:n,onTargetValueChange:r,container:i,className:a}){return(0,W.jsxs)(VM,{className:a,children:[(0,W.jsx)(UM,{required:!0,info:`What runs on each item: an agent, a workflow, or a scorer you want to test.`,children:`Target`}),(0,W.jsxs)(AL,{items:qKr(e),value:n??null,onValueChange:e=>r(e?.value??``),isItemEqualToValue:AKr,disabled:t,autoHighlight:!0,children:[(0,W.jsx)(VAt,{placeholder:`Pick an agent, workflow or scorer`}),(0,W.jsxs)(jL,{container:i,children:[(0,W.jsx)(PL,{children:`Nothing to run`}),(0,W.jsx)(ML,{children:(e,t)=>(0,W.jsxs)(UAt,{items:e.items,children:[t>0?(0,W.jsx)(KAt,{}):null,(0,W.jsx)(WAt,{children:e.value}),(0,W.jsx)(GAt,{children:e=>(0,W.jsx)(NL,{value:e,children:e.label},e.value)})]},e.value)})]})]})]})}var YKr=(e,t)=>e.provider===t?.provider&&e.modelId===t?.modelId;function XKr(e){let[t,n]=(0,U.useState)(null),r=t??e??{provider:``,modelId:``},i=t?.provider&&t.modelId&&!YKr(t,e)?t:void 0;return{provider:r.provider,modelId:r.modelId,setProvider:e=>{e!==r.provider&&n({provider:e,modelId:``})},setModelId:e=>n({provider:r.provider,modelId:e}),reset:()=>n(null),canReset:t!==null&&!YKr(t,e),agentModel:i}}function ZKr(e,t){return e||(t[0]?.value??``)}function QKr({initialDatasetId:e,initialDatasetVersion:t}){let{data:n}=XL(),r=(n?.datasets??[]).map(e=>({value:e.id,label:e.name})),[i,a]=(0,U.useState)(e??``),[o,s]=(0,U.useState)(t);return{datasets:r,datasetId:ZKr(i,r),version:o,setVersion:s,selectDataset:e=>{a(e),s(void 0)}}}function $Kr({initialName:e,targetLabel:t}){let[n,r]=(0,U.useState)(e??``),[i]=(0,U.useState)(jIr),a=MIr(t??`experiment`,i);return{name:n,setName:r,defaultName:a,runName:n.trim()||a}}var eqr=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function tqr(e){if(eqr(e)&&Object.keys(e).length!==0)return e}function nqr(e){try{return{ok:!0,value:JSON.parse(e)}}catch{return{ok:!1}}}function rqr(e){if(!e.trim())return{ok:!0};let t=nqr(e);return t.ok?eqr(t.value)?{ok:!0,requestContext:t.value}:{ok:!1,message:`Request context must be a JSON object`}:{ok:!1,message:`Request context must be valid JSON`}}function iqr(e){let t=Object.entries(e).filter(([,e])=>e!==void 0&&e!==``);return t.length===0?{ok:!0}:{ok:!0,requestContext:Object.fromEntries(t)}}function aqr(e){let{data:t}=ZL({datasetId:e,queryOptions:{enabled:!!e}}),[n,r]=(0,U.useState)(``),[i,a]=(0,U.useState)({}),o=tqr(t?.requestContextSchema);return{schema:o,raw:n,setRaw:r,setValues:a,resetValues:()=>a({}),resolve:()=>o?iqr(i):rqr(n)}}function oqr({datasetId:e,initialScorerIds:t}){let{data:n}=ZL({datasetId:e,queryOptions:{enabled:!!e}}),[r,i]=(0,U.useState)(t),a=n?.scorerIds??[];return{scorerIds:r??a,usesDefaultScorers:r===void 0&&a.length>0,setScorerIds:i,resetScorers:()=>i(void 0)}}var sqr=(e,t,n,r)=>({value:kKr(e,t),label:n,type:e,id:t,defaultModel:r});function cqr(e,t){if(e&&t)return{provider:qY(e),modelId:t}}function lqr(){let{data:e,isLoading:t}=WL(),{data:n,isLoading:r}=_L({}),{data:i,isLoading:a}=uR();return{options:[...Object.entries(e??{}).map(([e,t])=>sqr(`agent`,e,t.name||e,cqr(t.provider,t.modelId))),...Object.entries(n??{}).map(([e,t])=>sqr(`workflow`,e,t.name||e)),...Object.entries(i??{}).map(([e,t])=>sqr(`scorer`,e,t.scorer?.config?.name||e))],isLoading:t||r||a}}function uqr({initialTargetType:e,initialTargetId:t}){return!e||!t?``:kKr(e,t)}function dqr(e,t,{initialTargetType:n,initialTargetId:r}){let i=e.find(e=>e.value===t);if(i)return i;if(n&&r&&t)return{value:t,label:r,type:n,id:r}}function fqr(e){let{options:t,isLoading:n}=lqr(),[r,i]=(0,U.useState)(()=>uqr(e));return{options:t,isLoading:n,target:dqr(t,r,e),setTargetValue:i}}var pqr=e=>(e.metaKey||e.ctrlKey)&&e.key===`Enter`,mqr=e=>e.trim()||void 0,hqr=e=>e.length>0?e:void 0;function gqr({open:e,onOpenChange:t,onOpenChangeComplete:n,onSuccess:r,initialDatasetId:i,initialDatasetVersion:a,initialScorerIds:o,initialTargetType:s,initialTargetId:c,initialName:l,initialDescription:u}){let d=(0,U.useRef)(null),f=fqr({initialTargetType:s,initialTargetId:c}),p=QKr({initialDatasetId:i,initialDatasetVersion:a}),m=oqr({datasetId:p.datasetId,initialScorerIds:o}),h=aqr(p.datasetId),{target:g}=f,_=XKr(g?.defaultModel),v=g?.type===`agent`,y=v?_.agentModel:void 0,b=$Kr({initialName:l,targetLabel:y&&g?`${g.label} ${y.modelId}`:g?.label}),[x,S]=(0,U.useState)(u??``),[C,w]=(0,U.useState)(!1),{triggerExperiment:T}=YL(),{datasetId:E}=p,D=T.isPending,O=h.schema?E:void 0,k=!!(E&&g)&&!f.isLoading&&!D,A=e=>{f.setTargetValue(e),_.reset()},j=e=>{p.selectDataset(e),m.resetScorers(),h.resetValues()},M=async()=>{if(!k||!g)return;let e=h.resolve();if(!e.ok)sw.error(e.message);else try{let n=await T.mutateAsync({datasetId:E,name:b.runName,description:mqr(x),targetType:g.type,targetId:g.id,agentModel:y,scorerIds:hqr(m.scorerIds),version:p.version,requestContext:e.requestContext});sw.success(`Experiment started`),t(!1),r?.(n.experimentId)}catch(e){sw.error(e instanceof Error?e.message:`Failed to start experiment`)}};return(0,W.jsx)(HE,{open:e,onOpenChange:t,onOpenChangeComplete:n,pending:D,children:(0,W.jsxs)(UE,{ref:d,size:`lg`,onKeyDown:e=>{pqr(e)&&k&&(e.preventDefault(),M())},children:[(0,W.jsxs)(WE,{children:[(0,W.jsx)(qE,{children:`New experiment`}),(0,W.jsx)(JE,{children:`Run every item in a dataset through an agent, workflow or scorer.`})]}),(0,W.jsx)(KE,{children:(0,W.jsxs)(FT,{open:C,onOpenChange:w,className:`py-3`,children:[(0,W.jsxs)(`div`,{className:`space-y-6`,children:[(0,W.jsx)(IKr,{name:b.name,defaultName:b.defaultName,onNameChange:b.setName,disabled:D}),(0,W.jsxs)(`div`,{className:`flex flex-col gap-6 sm:flex-row sm:items-start sm:gap-4`,children:[(0,W.jsx)(JKr,{options:f.options,isLoading:f.isLoading,target:g,onTargetValueChange:A,container:d,className:`min-w-0 flex-1`}),v&&(0,W.jsx)(OKr,{provider:_.provider,modelId:_.modelId,canReset:_.canReset,onProviderChange:_.setProvider,onModelIdChange:_.setModelId,onReset:_.reset,container:d})]}),(0,W.jsx)(MKr,{datasets:p.datasets,datasetId:E,version:p.version,onDatasetChange:j,container:d}),(0,W.jsx)(GKr,{scorerIds:m.scorerIds,usesDefaultScorers:m.usesDefaultScorers,onScorerIdsChange:m.setScorerIds,container:d})]}),(0,W.jsx)(`div`,{className:`mt-6`,children:(0,W.jsx)(DKr,{})}),(0,W.jsxs)(LT,{className:`space-y-6 pt-4`,children:[E&&(0,W.jsx)(PKr,{datasetId:E,version:p.version,onVersionChange:p.setVersion,container:d}),(0,W.jsx)(FKr,{description:x,onDescriptionChange:S,disabled:D}),(0,W.jsx)(zKr,{schema:h.schema,raw:h.raw,onRawChange:h.setRaw,onValuesChange:h.setValues},O)]})]})}),(0,W.jsxs)(GE,{children:[(0,W.jsx)(YE,{children:`Cancel`}),(0,W.jsx)(BKr,{onRun:M,canRun:k,isRunning:D})]})]})})}function h7({open:e,onOpenChange:t,onSuccess:n,...r}){let[i,a]=(0,U.useState)(0);return(0,W.jsx)(gqr,{open:e,onOpenChange:t,onOpenChangeComplete:e=>{e||a(e=>e+1)},onSuccess:n,...r},`${i}:${JSON.stringify(r)}`)}var _qr=`mastra_model_total_input_tokens`,vqr=`mastra_model_total_output_tokens`,yqr=()=>({estimatedCost:0,costUnits:new Set,hasUnknownCostUnit:!1});function bqr(e){let t=e.dimensions.name;if(t===`mastra_model_total_input_tokens`)return`inputTokens`;if(t===`mastra_model_total_output_tokens`)return`outputTokens`}function xqr(e,t,n){e[t]=(e[t]??0)+n.value,n.estimatedCost!=null&&(e.estimatedCost+=n.estimatedCost,n.costUnit?e.costUnits.add(n.costUnit.toLowerCase()):e.hasUnknownCostUnit=!0)}function Sqr(e){let t=!e.hasUnknownCostUnit&&e.costUnits.size===1;return{inputTokens:e.inputTokens,outputTokens:e.outputTokens,estimatedCost:t?e.estimatedCost:void 0,costUnit:t?[...e.costUnits][0]:void 0}}var Cqr=2e3;function wqr(e){let t=yqr(),n=new Map;for(let r of e.groups){let e=bqr(r);if(!e)continue;xqr(t,e,r);let i=r.dimensions.traceId;i&&xqr(Q3(n,i,yqr),e,r)}let r={};for(let[e,t]of n)r[e]=Sqr(t);return{summary:Sqr(t),traces:r}}var Tqr=5,Eqr=e=>!e||Object.keys(e.traces).length===0&&e.summary.inputTokens===void 0&&e.summary.outputTokens===void 0,Dqr=({experiments:e,supportsMetrics:t})=>{let n=J(),r=qL(e.map(e=>e.id));return U_({queries:e.map(({id:e,status:r})=>{let i=r!==`running`&&r!==`pending`;return{queryKey:[`experiment-item-usage`,e,i],queryFn:async()=>wqr(await n.getMetricBreakdown({name:[_qr,vqr],aggregation:`sum`,groupBy:[`traceId`,`name`],filters:{experimentId:e}})),enabled:t&&i,refetchInterval:e=>Eqr(e.state.data)&&e.state.dataUpdateCount<Tqr?Cqr:!1}}),combine:r})},Oqr=({experimentId:e,experimentStatus:t,supportsMetrics:n,queryOptions:r})=>{let i=J(),a=!!e&&n,o=W_({queryKey:[`experiment-metrics`,e],refetchInterval:t===`running`||t===`pending`?2e3:!1,queryFn:async()=>{if(!e)throw Error(`experimentId is required`);let t={experimentId:e},[n,r,a]=await Promise.all([i.getMetricAggregate({name:[`mastra_model_total_input_tokens`,`mastra_model_total_output_tokens`],aggregation:`sum`,filters:t}),i.getMetricAggregate({name:[`mastra_agent_duration_ms`],aggregation:`avg`,filters:t}),i.getMetricAggregate({name:[`mastra_agent_duration_ms`],aggregation:`count`,filters:t})]);return{totalTokens:n.value??null,estimatedCost:n.estimatedCost??null,costUnit:n.costUnit??null,avgAgentDurationMs:r.value??null,agentRuns:a.value??null}},...r});return{data:o.data,isLoading:o.isLoading,isEnabled:a}},kqr=({traceId:e,queryOptions:t})=>{let n=J();return W_({queryKey:[`experiment-trace-light`,e],queryFn:async()=>{if(!e)throw Error(`Trace ID is required`);return n.getTraceLight(e)},...t})};function Aqr({datasetId:e,target:t,queryOptions:n}){let r=J(),i={perPage:100};return t?.targetType&&(i.targetType=t.targetType),t?.targetId&&(i.targetId=t.targetId),W_({queryKey:e?[`dataset-experiments`,e,i]:[`experiments`,i],queryFn:()=>e?r.listDatasetExperiments(e,i):r.listExperiments(i),...n})}var jqr=`mastra_agent_duration_ms`,Mqr=500,Nqr=5e3;function Pqr(e){let t=[];for(let n=0;n<e.length;n+=Mqr)t.push(e.slice(n,n+Mqr));return t}function Fqr(e){return e.flatMap(e=>e.status===`fulfilled`?[e.value]:[])}function Iqr(e,t,n){let r=new Set(e),i=new Map;for(let e of t.flatMap(e=>e.groups)){let t=e.dimensions.experimentId,n=bqr(e);t&&r.has(t)&&n&&xqr(Q3(i,t,yqr),n,e)}let a=new Map;for(let[e,t]of i)a.set(e,Sqr(t));for(let e of n.flatMap(e=>e.groups)){let t=e.dimensions.experimentId;t&&r.has(t)&&(Q3(a,t,()=>({})).avgDurationMs=e.value)}return a}var Lqr=({experiments:e,supportsMetrics:t})=>{let n=J(),r=[...new Set(e.map(e=>e.id))].toSorted(),i=e.some(({status:e})=>e===`running`||e===`pending`);return W_({queryKey:[`experiments-list-metrics`,r],enabled:t&&r.length>0,queryFn:async()=>{let e=Pqr(r),[t,i]=await Promise.all([Promise.allSettled(e.map(e=>n.getMetricBreakdown({name:[_qr,vqr],aggregation:`sum`,groupBy:[`experimentId`,`name`],filters:{experimentIds:e},limit:e.length*2}))),Promise.allSettled(e.map(e=>n.getMetricBreakdown({name:[jqr],aggregation:`avg`,groupBy:[`experimentId`],filters:{experimentIds:e},limit:e.length})))]);return Iqr(r,Fqr(t),Fqr(i))},placeholderData:E_,refetchInterval:i?Nqr:!1})};function Rqr({datasetId:e,target:t,orderBy:n,queryOptions:r}){let i=J(),{inView:a,setRef:o}=gL(),s=t?.targetType||void 0,c=t?.targetId||void 0,l=q_({queryKey:e?[`dataset-experiments`,e,`infinite`,{targetType:s,targetId:c,orderBy:n}]:[`experiments`,`infinite`,{targetType:s,targetId:c,orderBy:n}],queryFn:({pageParam:t})=>{let r={page:t,perPage:100};return s&&(r.targetType=s),c&&(r.targetId=c),n&&(r.orderBy=n),e?i.listDatasetExperiments(e,r):i.listExperiments(r)},initialPageParam:0,getNextPageParam:(e,t,n)=>{if(e?.experiments?.length&&e.pagination?.hasMore)return n+1},select:e=>e.pages.flatMap(e=>e?.experiments??[]),...r});return(0,U.useEffect)(()=>{a&&l.hasNextPage&&!l.isFetchingNextPage&&l.fetchNextPage()},[a,l]),{...l,setEndOfListElement:o}}var zqr=(0,U.createContext)(null);function Bqr({experimentId:e,datasetId:t,experimentStatus:n,results:r,isLoadingResults:i,hasNextPage:a,children:o}){let s=Gv(),c=QFe(`/experiments/:experimentId/items/:itemId`)?.params.itemId,l=(0,U.useCallback)(t=>{s(`/experiments/${e}/items/${encodeURIComponent(t)}`)},[s,e]),u=(0,U.useCallback)(()=>{s(`/experiments/${e}`)},[s,e]),d=(0,U.useMemo)(()=>c?r.findIndex(e=>e.itemId===c):-1,[r,c]),f=(0,U.useMemo)(()=>{if(d<=0)return;let e=r[d-1].itemId;return()=>l(e)},[d,r,l]),p=(0,U.useMemo)(()=>{if(d<0||d>=r.length-1)return;let e=r[d+1].itemId;return()=>l(e)},[d,r,l]);uKr({active:!!c,onPrevious:f,onNext:p,onClose:u});let m=(0,U.useMemo)(()=>({experimentId:e,datasetId:t,experimentStatus:n,results:r,isLoadingResults:i,hasNextPage:a,currentItemId:c,openItem:l,close:u,goToPreviousItem:f,goToNextItem:p}),[e,t,n,r,i,a,c,l,u,f,p]);return(0,W.jsx)(zqr.Provider,{value:m,children:o})}function Vqr(){let e=(0,U.useContext)(zqr);if(!e)throw Error(`useExperimentItemPanel must be used within an ExperimentItemPanelProvider`);return e}function Hqr(e,t){if(!e||typeof e!=`object`||!(t in e))return;let n=e[t];return typeof n==`string`&&n?n:void 0}function Uqr(e){if(e.targetType===`agent`)return Hqr(e.output,`text`)}function Wqr(e){if(e.targetType)return Uqr(e);let{output:t}=e;if(t!=null&&t!==``)return typeof t==`string`?t:JSON.stringify(t)}function Gqr(e){let t=[];return e.some(e=>Wqr(e))&&t.push({name:`output`,label:`Output`,size:`20rem`}),e.some(e=>g7(e))&&t.push({name:`error`,label:`Error`,size:`20rem`}),t}function g7(e){let t=Hqr(e.error,`message`);if(t)return t;if(e.targetType===`agent`&&e.output&&typeof e.output==`object`)return Hqr(e.output.error,`message`)}var _7=e=>e==null?`-`:e.toFixed(2),Kqr=e=>VT(e)??`-`,qqr=(e,t)=>e!=null&&t!=null?e-t:null,Jqr=new Set(Intl.supportedValuesOf(`currency`)),Yqr={minimumFractionDigits:3,maximumFractionDigits:3},v7=(e,t)=>{if(e===void 0)return`-`;let n=(t??`usd`).toUpperCase();return Jqr.has(n)?new Intl.NumberFormat(`en-US`,{style:`currency`,currency:n,...Yqr}).format(e):`${new Intl.NumberFormat(`en-US`,Yqr).format(e)} ${t}`},Xqr=e=>t=>v7(t,e),Zqr=new Intl.NumberFormat(`en-US`),y7=e=>e===void 0?`-`:Zqr.format(e),b7=e=>{if(e?.inputTokens!==void 0||e?.outputTokens!==void 0)return(e.inputTokens??0)+(e.outputTokens??0)};function Qqr({scorerId:e,reason:t,nested:n=!1}){let r=`text-muted-foreground hover:text-foreground [&>svg]:size-3.5`;return(0,W.jsxs)(PQ,{children:[(0,W.jsx)(FQ,{delay:0,closeDelay:100,render:n?(0,W.jsx)(`span`,{"aria-hidden":!0,"data-testid":`score-reason-${e}`,className:`flex ${r}`}):(0,W.jsx)(`button`,{type:`button`,"aria-label":`Show ${e} reason`,className:`cursor-pointer ${r}`}),children:(0,W.jsx)(_C,{})}),(0,W.jsx)(IQ,{side:`left`,align:`start`,className:`max-h-80 max-w-100 overflow-y-auto`,onClick:e=>e.stopPropagation(),children:(0,W.jsx)(CZ,{children:t})})]})}var $qr=new Set([`itemId`,`id`,`status`,`input`,`output`,`error`,`tags`,`scores`,`cost`,`tokens`,`duration`]);function eJr({results:e,isLoading:t,featuredResultId:n,onResultClick:r,columns:i,scoresByItemId:a,scorerIds:o,setEndOfListElement:s,isFetchingNextPage:c,hasNextPage:l,emptyMessage:u=`No results yet`,selectedIds:d,onToggleSelect:f,onToggleSelectAll:p}){let{Link:m,paths:h}=Ft(),g=!!(d&&f),_=i.filter(e=>$qr.has(e.name)||o?.includes(e.name)),v=[g?`2rem`:``,..._.map(e=>e.size)].filter(Boolean).join(` `),y=e=>_.some(t=>t.name===e),b=y(`itemId`)||y(`id`),x=y(`status`),S=y(`input`),C=y(`output`),w=y(`error`),T=y(`tags`),E=y(`scores`),D=y(`cost`),O=y(`tokens`),k=y(`duration`),A=d?e.filter(e=>d.has(e.id)).length:0,j=e.length>0&&A===e.length,{containerRef:M,getRowProps:N}=RQ({count:e.length}),P=e=>o?.includes(e.name)?(0,W.jsx)(Q.TopCell,{children:(0,W.jsxs)(m,{href:h.scorerLink(e.name),className:`flex min-w-0 items-center gap-1.5 hover:underline [&>svg]:size-3.5 [&>svg]:shrink-0`,children:[(0,W.jsx)(mR,{}),(0,W.jsx)(`span`,{className:`min-w-0 truncate`,children:e.label})]})},e.name):(0,W.jsx)(Q.TopCell,{children:e.label},e.name);return t?(0,W.jsx)(zK,{columns:v}):(0,W.jsxs)(Q,{columns:v,className:`min-w-0`,scrollRef:M,children:[(0,W.jsxs)(Q.Top,{hasLeadingCell:g,children:[g&&(p?(0,W.jsx)(Q.TopSelectCell,{checked:j?!0:A>0&&`indeterminate`,onToggle:p,"aria-label":`Select all`}):(0,W.jsx)(Q.TopCell,{children:`\xA0`})),g?(0,W.jsx)(Q.TopCells,{colStart:2,children:_.map(P)}):_.map(P)]}),e.length===0?(0,W.jsx)(Q.NoMatch,{message:u}):(0,W.jsxs)(W.Fragment,{children:[e.map((e,t)=>{let i=!!e.error,s=e.id===n,c=(0,W.jsxs)(W.Fragment,{children:[b&&(0,W.jsx)(Q.Cell,{className:`text-muted-foreground`,children:e.itemId?.slice(0,8)??``}),x&&(0,W.jsx)(Q.Cell,{className:`flex items-center`,"data-testid":`result-status-${e.id}`,children:e.status?(0,W.jsx)(Kjr,{status:e.status}):(0,W.jsx)(`span`,{className:`text-placeholder`,children:`—`})}),S&&(0,W.jsx)(Q.TextCell,{font:`mono`,children:iJr(rJr(e.input),200)}),C&&(0,W.jsx)(Q.Cell,{className:`truncate font-mono`,"data-testid":`result-output-${e.id}`,children:Wqr(e)??``}),w&&(0,W.jsx)(Q.Cell,{className:`truncate text-destructive-foreground`,"data-testid":`result-error-${e.id}`,children:g7(e)??``}),T&&(0,W.jsx)(Q.Cell,{className:`flex items-center gap-1 overflow-hidden`,"data-testid":`result-tags-${e.id}`,children:e.tags?.map(e=>(0,W.jsx)(G5,{value:e,className:`shrink-0`},e))}),E&&(0,W.jsx)(Q.Cell,{children:(0,W.jsx)(tJr,{scores:e.scores})}),D&&(0,W.jsx)(Q.Cell,{className:`text-muted-foreground tabular-nums`,"data-testid":`result-cost-${e.id}`,children:v7(e.usage?.estimatedCost,e.usage?.costUnit)}),O&&(0,W.jsx)(Q.Cell,{className:`text-muted-foreground tabular-nums`,"data-testid":`result-tokens-${e.id}`,children:y7(b7(e.usage))}),k&&(0,W.jsx)(Q.Cell,{className:`text-muted-foreground tabular-nums`,"data-testid":`result-duration-${e.id}`,children:VT(nJr(e))??`-`}),o?.map(t=>{let n=(a?.[e.itemId])?.find(e=>e.scorerId===t),r=n?.reason?.trim();return(0,W.jsxs)(Q.Cell,{className:`flex items-center gap-1.5 text-muted-foreground tabular-nums`,children:[n==null?`-`:n.score.toFixed(3),r&&(0,W.jsx)(Qqr,{scorerId:t,reason:r,nested:!0})]},t)})]});return g?(0,W.jsxs)(Q.RowWrapper,{children:[(0,W.jsx)(Q.SelectCell,{checked:d.has(e.id),onToggle:()=>f(e.id),"aria-label":`Select result ${e.itemId}`}),(0,W.jsx)(Q.RowButton,{colStart:2,featured:s,variant:i?`error`:`default`,"data-selected":s||void 0,onClick:()=>r(e.id),...N(t),children:c})]},e.id):(0,W.jsx)(Q.RowButton,{featured:s,variant:i?`error`:`default`,"data-selected":s||void 0,onClick:()=>r(e.id),...N(t),children:c},e.id)}),(0,W.jsx)(Q.NextPageLoading,{isLoading:c,hasMore:l,setEndOfListElement:s})]})]})}function tJr({scores:e}){let t=Array.isArray(e)?e.map(e=>e.score).filter(e=>e!=null):Object.values(e??{});return t.length===0?(0,W.jsx)(Z,{variant:`meta`,tone:`faint`,children:`—`}):(0,W.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,W.jsx)(cS,{size:`xs`,className:`text-muted-foreground`,children:(0,W.jsx)(fC,{})}),(0,W.jsx)(Z,{variant:`meta`,tone:`muted`,font:`mono`,children:t[0].toFixed(2)}),t.length>1&&(0,W.jsxs)(GT,{children:[`+`,t.length-1]})]})}function nJr({startedAt:e,completedAt:t}){if(e&&t)return new Date(t).getTime()-new Date(e).getTime()}function rJr(e){return e==null?`-`:typeof e==`string`?e:JSON.stringify(e,null,2)}function iJr(e,t){return e.length<=t?e:e.slice(0,t-1)+`...`}function aJr({experimentId:e,experimentStatus:t,results:n,isLoading:r,setEndOfListElement:i,isFetchingNextPage:a,hasNextPage:o,selectedIds:s,onToggleSelect:c,onToggleSelectAll:l,supportsMetrics:u=!1}){let{currentItemId:d,openItem:f,close:p}=Vqr(),m=(0,U.useMemo)(()=>d?n.find(e=>e.itemId===d)?.id??null:null,[n,d]),{data:h}=eR({experimentId:e,experimentStatus:t,queryOptions:{enabled:!!e}}),{data:g}=Dqr({experiments:(0,U.useMemo)(()=>[{id:e,status:t}],[e,t]),supportsMetrics:u}),_=g[e]?.traces,v=(0,U.useMemo)(()=>_?n.map(e=>({...e,usage:e.traceId?_[e.traceId]:void 0})):n,[n,_]),y=(0,U.useMemo)(()=>{if(!h)return[];let e=new Set;for(let t of Object.values(h))for(let n of t)e.add(n.scorerId);return[...e].sort()},[h]),b=(0,U.useCallback)(e=>{let t=n.find(t=>t.id===e);t&&(t.itemId===d?p():f(t.itemId))},[n,d,p,f]),x=(0,U.useMemo)(()=>[{name:`itemId`,label:`Item ID`,size:`7rem`},{name:`input`,label:`Input`,size:`20rem`},...Gqr(n),...u?[{name:`cost`,label:`Cost`,size:`auto`},{name:`tokens`,label:`Tokens`,size:`auto`}]:[],{name:`duration`,label:`Duration`,size:`auto`},...y.map(e=>({name:e,label:e,size:`auto`}))],[n,y,u]);return(0,W.jsx)(`div`,{className:`h-full min-h-0 min-w-0 overflow-y-auto`,children:(0,W.jsx)(eJr,{results:v,isLoading:r,featuredResultId:m,onResultClick:b,columns:x,scoresByItemId:h,scorerIds:y,setEndOfListElement:i,isFetchingNextPage:a,hasNextPage:o,selectedIds:s,onToggleSelect:c,onToggleSelectAll:l})})}var oJr=`minmax(9rem,1fr)`,sJr=`minmax(8rem,16rem)`,cJr=`auto auto auto auto auto auto auto auto`,lJr=`auto auto auto`,x7={experiment:`Experiment`,description:`Description`,dataset:`Dataset`,target:`Target`,status:`Status`,items:`Items`,succeeded:`Processed`,failed:`Errored`,duration:`Duration`,avgDuration:`Avg duration`,tokens:`Tokens`,cost:`Cost`,review:`Review`,date:`Date`},uJr={completed:`neutral`,running:`warning`,failed:`destructive`,pending:`neutral`},S7={completed:`Run completed`,running:`Run in progress`,failed:`Run failed`,pending:`Run queued`},dJr={pending:{icon:(0,W.jsx)(KS,{className:`size-4 text-warning-foreground`}),label:S7.pending},running:{icon:(0,W.jsx)(dt,{size:`sm`}),label:S7.running},completed:{icon:(0,W.jsx)(rGe,{className:`size-4 text-muted-foreground`}),label:S7.completed},failed:{icon:(0,W.jsx)(uGe,{className:`size-4 text-destructive-foreground`}),label:S7.failed}};function fJr({status:e,className:t}){let n=dJr[e]??dJr.pending;return(0,W.jsxs)(iS,{children:[(0,W.jsx)(aS,{render:(0,W.jsx)(`span`,{tabIndex:0,className:H(`flex shrink-0 items-center`,t),children:n.icon})}),(0,W.jsx)(oS,{children:n.label})]})}function pJr({children:e,className:t}){return(0,W.jsx)(`div`,{className:H(`grid content-start gap-4 overflow-y-auto`,t),children:e})}function mJr({children:e,className:t}){return(0,W.jsx)(`div`,{className:`flex w-full overflow-y-auto`,children:(0,W.jsx)(`div`,{className:H(`grid w-full content-start gap-4 overflow-y-auto`,t),children:e})})}function hJr({children:e,className:t}){return(0,W.jsx)(`div`,{className:H(`flex w-full flex-wrap items-center justify-between gap-3 gap-x-4`,t),children:e})}var gJr=Object.assign(mJr,{Content:pJr,Toolbar:hJr});function _Jr({children:e,className:t}){return(0,W.jsx)(`div`,{className:H(`grid size-full grid-cols-1 overflow-y-auto`,t),children:e})}[...Object.keys({agent:`blue`,workflow:`cyan`,model:`purple`,mcp:`green`,tool:`amber`,workspace:`orange`})];function vJr(e,t){return t?`v${e} ${$T(typeof t==`string`?new Date(t):t,`date-time`)}`:`v${e}`}function yJr({datasetId:e,versionA:t,versionB:n,onVersionChange:r}){let{data:i}=vMt({datasetId:e,queryOptions:{enabled:!!e}}),a=(i??[]).map(e=>({value:String(e.version),label:`${vJr(e.version,e.createdAt)}${e.isCurrent?` (current)`:``}`}));return(0,W.jsxs)(gJr.Toolbar,{className:`grid w-full grid-cols-[1fr_1fr_1fr_10rem] gap-4`,children:[(0,W.jsx)(`div`,{}),(0,W.jsxs)(TN,{value:t??``,onValueChange:e=>r?.(e,n??``),children:[(0,W.jsx)(DN,{"aria-label":`Version A`,size:`md`,children:(0,W.jsx)(EN,{placeholder:`Select version`})}),(0,W.jsx)(ON,{children:a.map(e=>(0,W.jsx)(kN,{value:e.value,children:e.label},e.value))})]}),(0,W.jsxs)(TN,{value:n??``,onValueChange:e=>r?.(t??``,e),children:[(0,W.jsx)(DN,{"aria-label":`Version B`,size:`md`,children:(0,W.jsx)(EN,{placeholder:`Select an option`})}),(0,W.jsx)(ON,{children:a.map(e=>(0,W.jsx)(kN,{value:e.value,children:e.label},e.value))})]}),(0,W.jsx)(`div`,{})]})}var C7={added:{badgeVariant:`info`,borderColor:`border-info-edge`,icon:(0,W.jsx)(MC,{}),tooltip:`Added in this version`},changed:{badgeVariant:`warning`,borderColor:`border-warning-edge`,icon:(0,W.jsx)(DKe,{}),tooltip:`Changed in this version`},same:{badgeVariant:`success`,borderColor:`border-success-edge`,icon:(0,W.jsx)(SGe,{}),tooltip:`Same in both versions`}};function bJr({red:e=!1,tooltip:t}){return(0,W.jsxs)(iS,{children:[(0,W.jsx)(aS,{render:(0,W.jsx)(`span`,{}),role:`img`,tabIndex:0,"aria-label":t,className:H(`rounded`,dS),children:(0,W.jsx)(zWe,{className:H(`h-5 w-5 text-muted-foreground/40`,{"text-destructive-foreground":e})})}),(0,W.jsx)(oS,{children:t})]})}function w7({href:e,tooltip:t,className:n,children:r}){let{Link:i}=Ft(),a=(0,W.jsx)(i,{href:e,className:H(`flex w-full items-center justify-center gap-4 rounded-lg px-3 py-2 text-left hover:bg-fill-subtle`,uS.colors,dS,n),children:r});return t===void 0?a:(0,W.jsxs)(iS,{children:[(0,W.jsx)(aS,{render:a}),(0,W.jsx)(oS,{children:t})]})}function xJr({variant:e,version:t}){if(!e)return(0,W.jsxs)(Z,{as:`span`,tone:`muted`,children:[`v. `,t]});let{badgeVariant:n,icon:r,tooltip:i}=C7[e];return(0,W.jsxs)(`div`,{className:`grid grid-cols-[1fr_auto]`,children:[t!==void 0&&(0,W.jsxs)(Z,{as:`span`,tone:`muted`,className:`flex min-w-16 justify-end pr-3`,children:[`v. `,t]}),(0,W.jsx)(`span`,{className:`inline-flex`,role:`img`,"aria-label":i,children:(0,W.jsx)(GT,{variant:n,size:`xs`,icon:r})})]})}function SJr(e,t){return e&&t&&e.datasetVersion===t.datasetVersion?`same`:e&&t&&e.datasetVersion!==t.datasetVersion?`changed`:e?`added`:`removed`}function CJr({otherVersionExists:e,status:t,isNewer:n}){if(!e&&n)return`added`;if(t===`changed`&&n)return`changed`}function wJr({datasetId:e,versionA:t,versionB:n,allItems:r,itemsAMap:i,itemsBMap:a}){let o=t>n;return(0,W.jsx)(`div`,{className:`overflow-y-auto`,children:(0,W.jsx)(`ul`,{className:`grid content-start`,children:r.map(({id:t})=>{let n=i.get(t),r=a.get(t),s=SJr(n,r),c=CJr({otherVersionExists:r!==void 0,status:s,isNewer:o}),l=CJr({otherVersionExists:n!==void 0,status:s,isNewer:!o});return(0,W.jsxs)(`li`,{className:H(`text-foreground`,`grid grid-cols-[1fr_1fr_1fr_10rem] gap-3 overflow-hidden rounded-lg border border-transparent border-t-border px-3 py-[3px] pb-[2px] first:border-t-transparent`,uS.colors),children:[(0,W.jsx)(Z,{as:`p`,variant:`body`,tone:`faint`,className:`truncate py-[0.6rem]`,children:t}),s===`same`?(0,W.jsx)(w7,{href:`/datasets/${e}/items/${t}`,className:`col-span-2 gap-2`,tooltip:C7.same.tooltip,children:(0,W.jsx)(xJr,{variant:`same`,version:r?.datasetVersion})}):(0,W.jsxs)(W.Fragment,{children:[n?.datasetVersion?(0,W.jsx)(w7,{href:`/datasets/${e}/items/${t}`,className:`gap-2`,tooltip:c?C7[c].tooltip:void 0,children:(0,W.jsx)(xJr,{variant:c,version:n.datasetVersion})}):(0,W.jsx)(`div`,{className:`flex items-center justify-center`,children:(0,W.jsx)(bJr,{red:o,tooltip:o?`Deleted in this version`:`Not present in this version`})}),r?.datasetVersion?(0,W.jsx)(w7,{href:`/datasets/${e}/items/${t}`,className:`gap-2`,tooltip:l?C7[l].tooltip:void 0,children:(0,W.jsx)(xJr,{variant:l,version:r.datasetVersion})}):(0,W.jsx)(`div`,{className:`flex items-center justify-center`,children:(0,W.jsx)(bJr,{red:!o,tooltip:o?`Not present in this version`:`Deleted in this version`})})]}),s===`changed`?(0,W.jsx)(w7,{href:`/datasets/${e}/items/${t}/versions?version=${n?.datasetVersion}&compare=${r?.datasetVersion}`,children:`Compare`}):(0,W.jsx)(`div`,{children:(0,W.jsx)(bJr,{tooltip:`Comparing is available only for changed items`})})]},t)})})})}function TJr(e){if(!(e instanceof Error))return null;let t=e.message.match(/- ({.*})$/);if(!t)return null;try{let e=JSON.parse(t[1]);if(e.field&&Array.isArray(e.errors))return{field:e.field,errors:e.errors}}catch{}return null}function EJr({item:e,itemId:t,fallback:n,onClose:r,variant:i=`drawer`,...a}){let o=e?.id??t,s=`Dataset item ${o??``}`,c=e?(0,W.jsx)(DJr,{item:e,onClose:r,...a},e.id):t?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(w$.Header,{children:[(0,W.jsx)(w$.Heading,{children:`Dataset item`}),(0,W.jsx)(w$.HeaderActions,{children:(0,W.jsx)(w$.CloseButton,{icon:`x`,onClick:r,tooltip:`Close detail panel`})})]}),n]}):null;return i===`inline`?c?(0,W.jsx)(w$,{variant:`inline`,title:s,children:c}):null:(0,W.jsx)(w$,{open:!!o,onClose:r,title:s,children:c})}function DJr({datasetId:e,item:t,items:n,onItemChange:r,onClose:i}){let{navigate:a}=Ft(),{updateItem:o,deleteItem:s}=YL(),[c,l]=(0,U.useState)(!1),[u,d]=(0,U.useState)(``),[f,p]=(0,U.useState)(``),[m,h]=(0,U.useState)(``),[g,_]=(0,U.useState)(``),[v,y]=(0,U.useState)(``),[b,x]=(0,U.useState)(``),[S,C]=(0,U.useState)(null),[w,T]=(0,U.useState)(!1);(0,U.useEffect)(()=>{t&&(d(JSON.stringify(t.input,null,2)),p(t.groundTruth?JSON.stringify(t.groundTruth,null,2):``),h(t.metadata?JSON.stringify(t.metadata,null,2):``),_(t.expectedTrajectory?JSON.stringify(t.expectedTrajectory,null,2):``),y(t.toolMocks?.length?JSON.stringify(t.toolMocks,null,2):``),x(t.requestContext?JSON.stringify(t.requestContext,null,2):``),l(!1),T(!1),C(null))},[t?.id]);let E=n.findIndex(e=>e.id===t.id),D=E>0?()=>r(n[E-1].id):void 0,O=E>=0&&E<n.length-1?()=>r(n[E+1].id):void 0;return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(w$.Header,{children:[(0,W.jsx)(w$.Heading,{children:`Dataset item`}),(0,W.jsxs)(w$.HeaderActions,{children:[!c&&(0,W.jsxs)(CD,{children:[(0,W.jsx)(CD.Trigger,{asChild:!0,children:(0,W.jsx)(Y,{size:`icon-sm`,variant:`ghost`,tooltip:`Open actions menu`,"aria-label":`Open actions menu`,children:(0,W.jsx)($S,{})})}),(0,W.jsxs)(CD.Content,{align:`end`,className:`w-48`,children:[(0,W.jsxs)(CD.Item,{onSelect:()=>a(`/datasets/${e}/items/${t.id}/versions?version=${t.datasetVersion}`),children:[(0,W.jsx)(IC,{}),`Item versions`]}),(0,W.jsxs)(CD.Item,{onSelect:()=>l(!0),children:[(0,W.jsx)(kC,{}),`Edit`]}),(0,W.jsxs)(CD.Item,{onSelect:()=>T(!0),variant:`destructive`,children:[(0,W.jsx)(YC,{}),`Delete item`]})]})]}),(0,W.jsx)(w$.NextPrevNav,{onPrevious:D,onNext:O,previousLabel:`Go to previous item`,nextLabel:`Go to next item`}),(0,W.jsx)(w$.CloseButton,{icon:`x`,onClick:i,tooltip:`Close detail panel`})]})]}),(0,W.jsx)(w$.Content,{children:c?(0,W.jsx)(EKr,{inputValue:u,setInputValue:e=>{d(e),S?.field===`input`&&C(null)},groundTruthValue:f,setGroundTruthValue:e=>{p(e),S?.field===`groundTruth`&&C(null)},metadataValue:m,setMetadataValue:h,trajectoryValue:g,setTrajectoryValue:_,toolMocksValue:v,setToolMocksValue:y,requestContextValue:b,setRequestContextValue:x,validationErrors:S,onSave:async()=>{let n;try{n=JSON.parse(u)}catch{fw.error(`Input must be valid JSON`);return}let r;if(f.trim())try{r=JSON.parse(f)}catch{fw.error(`Ground Truth must be valid JSON`);return}let i;if(m.trim())try{i=JSON.parse(m)}catch{fw.error(`Metadata must be valid JSON`);return}let a=null;if(g.trim())try{a=JSON.parse(g)}catch{fw.error(`Expected Trajectory must be valid JSON`);return}let s;if(v.trim())try{let e=JSON.parse(v);if(!Array.isArray(e)){fw.error(`Tool Mocks must be a JSON array`);return}s=e}catch{fw.error(`Tool Mocks must be valid JSON`);return}else s=[];let c;if(b.trim())try{c=JSON.parse(b)}catch{fw.error(`Request Context must be valid JSON`);return}try{await o.mutateAsync({datasetId:e,itemId:t.id,input:n,groundTruth:r,metadata:i,expectedTrajectory:a,toolMocks:s,requestContext:c}),fw.success(`Item updated successfully`),l(!1),C(null)}catch(e){let t=TJr(e);t?C(t):fw.error(`Failed to update item: ${e instanceof Error?e.message:`Unknown error`}`)}},onCancel:()=>{d(JSON.stringify(t.input,null,2)),p(t.groundTruth?JSON.stringify(t.groundTruth,null,2):``),h(t.metadata?JSON.stringify(t.metadata,null,2):``),_(t.expectedTrajectory?JSON.stringify(t.expectedTrajectory,null,2):``),y(t.toolMocks?.length?JSON.stringify(t.toolMocks,null,2):``),x(t.requestContext?JSON.stringify(t.requestContext,null,2):``),l(!1),C(null)},isSaving:o.isPending}):(0,W.jsx)(CKr,{item:t})}),(0,W.jsx)(hL,{open:w,onOpenChange:T,children:(0,W.jsxs)(hL.Content,{children:[(0,W.jsxs)(hL.Header,{children:[(0,W.jsx)(hL.Title,{children:`Delete Item`}),(0,W.jsx)(hL.Description,{children:`Are you sure you want to delete this item? This action cannot be undone.`})]}),(0,W.jsxs)(hL.Footer,{children:[(0,W.jsx)(hL.Cancel,{children:`Cancel`}),(0,W.jsx)(hL.Action,{onClick:async()=>{try{await s.mutateAsync({datasetId:e,itemId:t.id}),fw.success(`Item deleted successfully`),T(!1),i()}catch(e){fw.error(`Failed to delete item: ${e instanceof Error?e.message:`Unknown error`}`)}},children:s.isPending?`Deleting...`:`Yes, delete`})]})]})})]})}var T7=(0,U.createContext)(null);function OJr({children:e}){let[t,n]=(0,U.useState)(null),[r,i]=(0,U.useState)([]),[a,o]=(0,U.useState)(!0),s=!LE()&&a,c=(0,U.useRef)(null),l=(0,U.useRef)(0),u=(0,U.useCallback)((e,t)=>{let n=l.current+1;return l.current=n,i(r=>[...r.filter(t=>t.owner!==e),{owner:e,priority:t,order:n}]),()=>{i(t=>t.filter(t=>t.owner!==e||t.order!==n))}},[]),d=(0,U.useMemo)(()=>{let e;for(let t of r)(!e||t.priority>e.priority||t.priority===e.priority&&t.order>e.order)&&(e=t);return e?.owner??null},[r]),f=(0,U.useCallback)(()=>c.current?.toggle(),[]),p=(0,U.useCallback)(e=>o(e<=0),[]),m=(0,U.useMemo)(()=>({el:t,setEl:n,activeOwner:d,register:u,panelHandle:c,isCollapsed:s,onPanelResize:p,toggle:f}),[d,t,s,p,u,f]);return(0,W.jsx)(T7.Provider,{value:m,children:e})}function kJr(e){let t=(0,U.use)(T7);return(0,W.jsx)(`div`,{ref:t?.setEl??void 0,...e})}function E7({owner:e,priority:t=0,children:n}){let r=(0,U.use)(T7),i=r?.register;return(0,U.useEffect)(()=>{if(i)return i(e,t)},[e,t,i]),!r?.el||r.activeOwner!==e?null:(0,lt.createPortal)(n,r.el)}var AJr=()=>{},jJr={current:null};function D7(){let e=(0,U.use)(T7);if(!e)return{hasPanel:!1,isCollapsed:!0,onPanelResize:AJr,panelHandle:jJr,toggle:AJr};let{activeOwner:t,isCollapsed:n,onPanelResize:r,panelHandle:i,toggle:a}=e;return{hasPanel:t!==null,isCollapsed:n,onPanelResize:r,panelHandle:i,toggle:a}}function MJr(e,t){let{hasPanel:n,isCollapsed:r,panelHandle:i}=D7(),a=(0,U.useRef)(!1);(0,U.useEffect)(()=>{if(!e||!n)return;let t=requestAnimationFrame(()=>i.current?.expand());return()=>cancelAnimationFrame(t)},[e,n,i]);let o=(0,U.useEffectEvent)(()=>t());(0,U.useEffect)(()=>{if(!n)a.current=!1;else if(!r)a.current=!0;else if(a.current&&e){if(a.current=!1,!document.querySelector(`[data-separator="active"]`))o();else return window.addEventListener(`pointerup`,o,{once:!0}),()=>window.removeEventListener(`pointerup`,o)}},[n,r,e])}function NJr(){let{datasetId:e,items:t,isLoadingItems:n,currentItemId:r,openItem:i,close:a}=pKr(),o=LE();MJr(r,a);let s=(0,U.useMemo)(()=>r?t.find(e=>e.id===r):void 0,[t,r]),{data:c,isLoading:l}=Qjt({datasetId:s?``:e,itemId:!s&&r?r:``,queryOptions:{enabled:!(s||!e)&&!!(!s&&r&&r)}}),u=(0,W.jsx)(EJr,{datasetId:e,item:s??c??void 0,itemId:r,fallback:n||l?(0,W.jsx)(w$.LoadingData,{}):(0,W.jsxs)(w$.NoData,{children:[`No loaded item "`,r,`".`]}),items:t,onItemChange:i,onClose:a,variant:o?`drawer`:`inline`});return o?u:r?(0,W.jsx)(E7,{owner:`dataset-item`,children:u}):null}function O7({crumbs:e,children:t}){return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:e}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Dataset`}),(0,W.jsx)(`div`,{}),(0,W.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:t})]})}function PJr(){let{datasetId:e}=Kv(),t=Gv(),[n,r]=ty(),{activeVersion:i}=tR(n,r),a=[_R(`/datasets`),vR],o=[...a,PNt],[s,c]=(0,U.useState)(!1),[l,u]=(0,U.useState)(!1),[d,f]=(0,U.useState)(!1),[p,m]=(0,U.useState)(!1),[h,g]=(0,U.useState)(!1),{data:_,error:v,isLoading:y}=ZL({datasetId:e,queryOptions:{enabled:!!e}}),{data:b=[],isLoading:x}=JL({datasetId:e,search:void 0,version:i,queryOptions:{enabled:!!e}});if(y)return null;if(v&&iR(v))return(0,W.jsx)(O7,{crumbs:a,children:(0,W.jsx)(CK,{})});if(v&&aR(v))return(0,W.jsx)(O7,{crumbs:a,children:(0,W.jsx)(SK,{resource:`datasets`})});if(v&&oR(v)||!y&&!v&&!_)return(0,W.jsx)(O7,{crumbs:a,children:(0,W.jsx)(aw,{titleSlot:`Dataset not found`,descriptionSlot:`No dataset with id "${e}".`,actionSlot:(0,W.jsx)(Y,{render:(0,W.jsx)(ey,{to:`/datasets`}),icon:(0,W.jsx)(OS,{}),children:`Back to datasets`})})});if(v)return(0,W.jsx)(O7,{crumbs:a,children:(0,W.jsx)(aw,{tone:`error`,titleSlot:`Failed to load dataset`,descriptionSlot:v instanceof Error?v.message:`An unexpected error occurred. Please try again.`})});let S=e=>{t(`/experiments/${e}`)},C=()=>{t(`/datasets`)},w=b.length>0,T=(_?.version??0)>0,E=w||T,D=w||(_?.tags?.length??0)>0,O=(0,W.jsxs)(W.Fragment,{children:[w&&(0,W.jsx)(Y,{variant:`ghost`,size:`sm`,onClick:()=>c(!0),icon:(0,W.jsx)(MC,{}),children:`New experiment`}),E&&(0,W.jsx)(Y,{variant:`ghost`,size:`sm`,render:(0,W.jsx)(ey,{to:`/experiments?dataset=${e}`}),icon:(0,W.jsx)(gNt,{}),children:`Experiments`}),(0,W.jsx)(Y,{variant:`ghost`,size:`sm`,onClick:()=>g(!0),icon:(0,W.jsx)(NS,{}),children:`Schema`}),(0,W.jsxs)(CD,{children:[(0,W.jsx)(CD.Trigger,{asChild:!0,children:(0,W.jsx)(Y,{variant:`ghost`,size:`icon-sm`,"aria-label":`Dataset actions menu`,children:(0,W.jsx)($S,{})})}),(0,W.jsxs)(CD.Content,{align:`end`,className:`w-48`,children:[(0,W.jsxs)(CD.Item,{onSelect:()=>void t(`/datasets/${e}/edit`),children:[(0,W.jsx)(kC,{}),` Edit dataset`]}),(0,W.jsxs)(CD.Item,{onSelect:()=>m(!0),children:[(0,W.jsx)(YS,{}),` Duplicate dataset`]}),(0,W.jsxs)(CD.Item,{onSelect:()=>f(!0),variant:`destructive`,children:[(0,W.jsx)(YC,{}),` Delete dataset`]})]})]})]});return(0,W.jsxs)(fKr,{datasetId:e,items:b,isLoadingItems:x,children:[(0,W.jsxs)(`div`,{className:`h-full`,children:[(0,W.jsxs)(Bw,{variant:`fit`,breadcrumbs:(0,W.jsx)(IL,{crumbs:o}),headerActions:O,children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:e}),(0,W.jsx)(`div`,{children:(0,W.jsx)(hKr,{datasetId:e,onAddItemClick:()=>u(!0),toolbarActionsSlot:D?(0,W.jsx)(_Kr,{datasetId:e}):void 0})})]}),(0,W.jsx)(NJr,{})]}),(0,W.jsx)(h7,{initialDatasetId:e,initialDatasetVersion:i??void 0,open:s,onOpenChange:c,onSuccess:S},`${e}:${i??`latest`}`),(0,W.jsx)(n1n,{datasetId:e,open:l,onOpenChange:u}),_&&(0,W.jsx)(kUr,{open:p,onOpenChange:m,sourceDatasetId:_.id,sourceDatasetName:_.name,sourceDatasetDescription:_.description,sourceDatasetTargetType:_.targetType}),_&&(0,W.jsx)(CGr,{open:h,onOpenChange:g,dataset:_}),_&&(0,W.jsx)(JUr,{open:d,onOpenChange:f,datasetId:_.id,datasetName:_.name,onSuccess:C})]})}var FJr=[_R(`/datasets`),vR,{id:`dataset-edit`,label:`Edit dataset`}];function IJr({children:e}){return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:FJr}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Edit dataset`}),(0,W.jsx)(`div`,{}),(0,W.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:e})]})}function LJr(){let{datasetId:e}=Kv(),t=Gv(),{data:n,error:r,isLoading:i}=ZL({datasetId:e,queryOptions:{enabled:!!e}}),a=()=>void t(`/datasets/${e}`);return i?null:r&&iR(r)?(0,W.jsx)(IJr,{children:(0,W.jsx)(CK,{})}):r&&aR(r)?(0,W.jsx)(IJr,{children:(0,W.jsx)(SK,{resource:`datasets`})}):r||!n?(0,W.jsx)(IJr,{children:(0,W.jsx)(aw,{tone:`error`,titleSlot:`Failed to load dataset`,descriptionSlot:r instanceof Error?r.message:`An unexpected error occurred. Please try again.`})}):(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:FJr}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Edit dataset`}),(0,W.jsx)(`div`,{}),(0,W.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,W.jsxs)(`div`,{className:`w-full max-w-2xl overflow-y-auto px-4 py-5`,children:[(0,W.jsx)(l7,{className:`mb-6 p-0`,children:(0,W.jsxs)(l7.Column,{children:[(0,W.jsxs)(l7.Title,{children:[(0,W.jsx)(ZS,{}),` Edit dataset`]}),(0,W.jsx)(l7.Description,{children:n.name})]})}),(0,W.jsx)(jR,{className:`p-4`,children:(0,W.jsx)(qUr,{dataset:{id:n.id,name:n.name,description:n.description||``,inputSchema:n.inputSchema,groundTruthSchema:n.groundTruthSchema,requestContextSchema:n.requestContextSchema,scorerIds:n.scorerIds},onSuccess:a,onCancel:a})})]})})]})}function RJr(e,t){return{id:e.id,datasetId:t,datasetVersion:e.datasetVersion,input:e.input,groundTruth:e.groundTruth,expectedTrajectory:e.expectedTrajectory,toolMocks:e.toolMocks,scorerIds:e.scorerIds,requestContext:e.requestContext,metadata:e.metadata,createdAt:e.createdAt,updatedAt:e.updatedAt}}function zJr(e,t){return e.map(e=>{let n=typeof e.updatedAt==`string`?new Date(e.updatedAt):e.updatedAt;return{value:String(e.datasetVersion),label:(0,W.jsxs)(`span`,{className:`flex w-full items-center gap-2`,children:[(0,W.jsxs)(`span`,{children:[(0,W.jsxs)(`b`,{children:[`v. `,e.datasetVersion]}),` · `,$T(n,`date-time`)]}),e.isLatest?(0,W.jsx)(GT,{variant:`blue`,size:`xs`,className:`ml-auto`,children:`Latest`}):null]}),disabled:t?.has(e.datasetVersion)??!1}})}function BJr(e){let t=Number(e);return e!=null&&Number.isFinite(t)&&t>0?t:null}function VJr(){let{datasetId:e,itemId:t}=Kv(),[n,r]=ty(),i=[_R(`/datasets`),vR,{id:`dataset-item`,label:ONt(t),to:e&&t?`/datasets/${encodeURIComponent(e)}/items/${encodeURIComponent(t)}`:void 0},{id:`dataset-item-versions`,label:`Item Version History`}],a=BJr(n.get(`version`)),o=BJr(n.get(`compare`)),s=n.get(`view`)===`diff`,{data:c,error:l}=ZL({datasetId:e??``,queryOptions:{enabled:!!e}}),{data:u,isLoading:d}=hMt({datasetId:e??``,itemId:t??``,queryOptions:{enabled:!!e&&!!t}}),f=(a==null?void 0:u?.find(e=>e.datasetVersion===a))??u?.[0],p=f?.datasetVersion??null,m=o!=null&&o!==p?o:null,{data:h,isLoading:g}=gMt({datasetId:e??``,itemId:t??``,datasetVersion:m??0,latestVersion:c?.version,queryOptions:{enabled:!!e&&!!t&&(m??0)>0}}),_=(e,t)=>r(n=>{let r=new URLSearchParams(n);return t==null?r.delete(e):r.set(e,String(t)),r},{replace:!0});if(l&&iR(l))return(0,W.jsxs)(Bw,{variant:`fit`,breadcrumbs:(0,W.jsx)(IL,{crumbs:i}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Item Version History`}),(0,W.jsx)(CK,{variant:`fill`})]});if(l&&aR(l))return(0,W.jsxs)(Bw,{variant:`fit`,breadcrumbs:(0,W.jsx)(IL,{crumbs:i}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Item Version History`}),(0,W.jsx)(SK,{variant:`fill`,resource:`datasets`})]});if(!e||!t)return(0,W.jsxs)(Bw,{variant:`fit`,breadcrumbs:(0,W.jsx)(IL,{crumbs:i}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Item Version History`}),(0,W.jsx)(`div`,{className:`grid h-full min-w-min content-start items-start overflow-x-auto overflow-y-auto`,children:(0,W.jsx)(`div`,{className:`py-5 text-center text-muted-foreground`,children:(0,W.jsx)(`p`,{children:`Item not found.`})})})]});let v=!!(f&&h),y=s&&v,b=f?RJr(f,e):null,x=h?RJr(h,e):null,S=(f?.datasetVersion??0)<(h?.datasetVersion??0);return(0,W.jsxs)(Bw,{variant:`fit`,breadcrumbs:(0,W.jsx)(IL,{crumbs:i}),headerActions:v&&(0,W.jsx)(Y,{variant:`ghost`,size:`sm`,onClick:()=>_(`view`,s?null:`diff`),children:s?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(gGe,{}),` Default view`]}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(LGe,{}),` Diff view`]})}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Item Version History`}),(0,W.jsxs)(`div`,{className:`grid min-h-0 grid-cols-1 gap-4 md:grid-cols-2`,children:[(0,W.jsxs)(jR,{className:`grid min-h-0 grid-rows-[auto_1fr] overflow-hidden`,children:[(0,W.jsx)(MR,{children:(0,W.jsx)(HJr,{label:`Version`,value:p==null?``:String(p),options:zJr(u??[],m==null?void 0:new Set([m])),onValueChange:e=>_(`version`,Number(e))})}),(0,W.jsx)(FR,{className:`grid content-start gap-5 overflow-y-auto`,children:d?(0,W.jsx)(Z,{as:`p`,variant:`body`,tone:`muted`,children:`Loading...`}):b?(0,W.jsx)(CKr,{item:b,diff:y&&x?{against:x,side:S?`a`:`b`}:void 0}):(0,W.jsx)(Z,{as:`p`,variant:`body`,tone:`muted`,children:`Item data not available`})})]}),(0,W.jsxs)(jR,{className:`grid min-h-0 grid-rows-[auto_1fr] overflow-hidden`,children:[(0,W.jsx)(MR,{children:(0,W.jsx)(HJr,{label:`Compare version`,value:m==null?``:String(m),placeholder:`Select a version to compare`,options:zJr(u??[],p==null?void 0:new Set([p])),onValueChange:e=>_(`compare`,Number(e))})}),(0,W.jsx)(FR,{className:`grid content-start gap-5 overflow-y-auto`,children:m==null?(0,W.jsx)(aw,{className:`h-full`,titleSlot:`No version selected`,descriptionSlot:`Pick a version above to compare it with the one on the left.`}):g?(0,W.jsx)(Z,{as:`p`,variant:`body`,tone:`muted`,children:`Loading...`}):x?(0,W.jsx)(CKr,{item:x,diff:y&&b?{against:b,side:S?`b`:`a`}:void 0}):(0,W.jsxs)(Z,{as:`p`,variant:`body`,tone:`muted`,children:[`Version `,m,` not found`]})})]})]})]})}function HJr({label:e,value:t,options:n,placeholder:r=`Select version`,onValueChange:i}){return(0,W.jsxs)(`div`,{className:`grid grid-cols-[auto_1fr] items-center gap-4`,children:[(0,W.jsx)(IC,{className:`size-4 opacity-50`}),(0,W.jsxs)(TN,{value:t,onValueChange:i,children:[(0,W.jsx)(DN,{"aria-label":e,className:`w-full`,children:(0,W.jsx)(EN,{placeholder:r,className:`flex-1`})}),(0,W.jsx)(ON,{children:n.map(e=>(0,W.jsx)(kN,{value:e.value,disabled:e.disabled,children:e.label},e.value))})]})]})}var k7=[_R(`/datasets`),vR,{id:`dataset-versions`,label:`Versions`}];function UJr(){let{datasetId:e}=Kv(),[t]=ty(),n=t.get(`ids`)?.split(`,`).map(Number).filter(e=>!isNaN(e)&&e>0)??[],r=Gv(),{data:i,error:a}=ZL({datasetId:e??``,queryOptions:{enabled:!!e}}),o=JL({datasetId:e??``,search:void 0,version:n[0]??null,queryOptions:{enabled:!!e}}),s=JL({datasetId:e??``,search:void 0,version:n[1]??null,queryOptions:{enabled:!!e}}),c=(0,U.useMemo)(()=>o.data??[],[o.data]),l=(0,U.useMemo)(()=>s.data??[],[s.data]),u=(0,U.useMemo)(()=>{let e=new Map;for(let t of[...c,...l])e.has(t.id)||e.set(t.id,{id:t.id,createdAt:new Date(t.createdAt)});return[...e.values()].sort((e,t)=>t.createdAt.getTime()-e.createdAt.getTime())},[c,l]),d=(0,U.useMemo)(()=>new Map(c.map(e=>[e.id,e])),[c]),f=(0,U.useMemo)(()=>new Map(l.map(e=>[e.id,e])),[l]);return a&&iR(a)?(0,W.jsxs)(Bw,{variant:`fit`,breadcrumbs:(0,W.jsx)(IL,{crumbs:k7}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Versions`}),(0,W.jsx)(CK,{variant:`fill`})]}):a&&aR(a)?(0,W.jsxs)(Bw,{variant:`fit`,breadcrumbs:(0,W.jsx)(IL,{crumbs:k7}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Versions`}),(0,W.jsx)(SK,{variant:`fill`,resource:`datasets`})]}):!e||n.length<2?(0,W.jsxs)(Bw,{variant:`fit`,breadcrumbs:(0,W.jsx)(IL,{crumbs:k7}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Versions`}),(0,W.jsx)(`div`,{className:`grid h-full min-w-min content-start items-start overflow-x-auto overflow-y-auto`,children:(0,W.jsx)(`div`,{className:`py-5 text-center text-muted-foreground`,children:(0,W.jsx)(`p`,{children:`Select at least two versions to compare.`})})})]}):(0,W.jsxs)(Bw,{variant:`fit`,breadcrumbs:(0,W.jsx)(IL,{crumbs:k7}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Versions`}),(0,W.jsx)(`div`,{className:`h-full overflow-hidden px-[3vw] pb-4`,children:(0,W.jsxs)(`div`,{className:`mx-auto grid h-full max-w-[140rem] grid-rows-[auto_1fr] gap-4`,children:[(0,W.jsxs)(l7,{children:[(0,W.jsxs)(l7.Column,{children:[(0,W.jsxs)(l7.Title,{children:[(0,W.jsx)(VKe,{}),` Compare Dataset Versions`]}),(0,W.jsx)(l7.Description,{children:(0,W.jsxs)(LQ,{children:[(0,W.jsx)(IC,{}),` Comparing `,n.length,` versions of`,` `,i?.name||e?.slice(0,8)]})})]}),(0,W.jsx)(l7.Column,{children:(0,W.jsx)(Y,{render:(0,W.jsx)(ey,{to:`/datasets/${e}`}),icon:(0,W.jsx)(OS,{}),children:`Back to dataset`})})]}),(0,W.jsx)(_Jr,{children:(0,W.jsxs)(gJr,{children:[(0,W.jsx)(yJr,{datasetId:e,versionA:String(n[0]),versionB:String(n[1]),onVersionChange:(t,n)=>{r(`/datasets/${e}/versions?ids=${t},${n}`,{replace:!0})}}),(0,W.jsx)(wJr,{datasetId:e,versionA:n[0],versionB:n[1],allItems:u,itemsAMap:d,itemsBMap:f})]})})]})})]})}var WJr=(e,{experimentId:t,targetType:n,targetId:r,experiments:i,isLoadingExperiments:a=!1,queryOptions:o})=>{let s=J(),c=i!==void 0,{data:l,isLoading:u}=Aqr({datasetId:void 0,target:{targetType:n,targetId:r},queryOptions:{enabled:!c}}),d=c?i:l?.experiments,f=c?a:u,p=t?d?.filter(e=>e.id===t):d,m=W_({queryKey:[`review-items`,e,t??`all`,c?`supplied`:`discovered`,c?void 0:n||`all`,c?void 0:r||`all`,p?.map(e=>[e.datasetId,e.id])],queryFn:async()=>!p||p.length===0?[]:(await Promise.all(p.map(async t=>{if(!t.datasetId)return[];try{let{results:n}=await s.listDatasetExperimentResults(t.datasetId,t.id);return n.filter(t=>t.status===e).map(e=>({id:e.id,input:e.input,output:e.output,error:e.error,itemId:e.itemId,experimentId:e.experimentId,datasetId:t.datasetId??void 0,traceId:e.traceId??void 0,scores:e.scores?Object.fromEntries(e.scores.map(e=>[e.scorerId,e.score??0])):{},tags:e.tags??[],targetType:e.targetType,createdAt:e.createdAt,startedAt:e.startedAt,completedAt:e.completedAt,status:e.status,groundTruth:e.groundTruth,toolMockReport:e.toolMockReport}))}catch{return[]}}))).flat(),enabled:!!d,refetchOnWindowFocus:!1,...o});return{...m,isLoading:m.isLoading||f}},GJr=(e={})=>WJr(`needs-review`,e),KJr=(e={})=>WJr(`complete`,e);function qJr({queryOptions:e}={}){let t=J();return W_({queryKey:[`experiment-review-summary`],queryFn:()=>t.getExperimentReviewSummary(),...e})}var A7={baseline:`purple`,contender:`blue`},j7=e=>e===0?`Baseline`:`Contender ${e}`;function JJr({open:e,onOpenChange:t,experimentId:n,experimentName:r,onSuccess:i}){let{deleteExperiment:a}=YL();return(0,W.jsx)(hL,{open:e,onOpenChange:t,children:(0,W.jsxs)(hL.Content,{children:[(0,W.jsxs)(hL.Header,{children:[(0,W.jsx)(hL.Title,{children:`Delete Experiment`}),(0,W.jsxs)(hL.Description,{children:[`Are you sure you want to delete "`,r||n,`"? This will permanently delete the experiment, all its results, and the traces it produced, including their spans and any scores, feedback, metrics and logs attached to those traces. This action cannot be undone.`]})]}),(0,W.jsxs)(hL.Footer,{children:[(0,W.jsx)(hL.Cancel,{children:`Cancel`}),(0,W.jsx)(Y,{icon:(0,W.jsx)(YC,{}),variant:`primary`,onClick:async()=>{try{await a.mutateAsync(n),fw.success(`Experiment deleted successfully`),t(!1),i?.()}catch(e){fw.error(`Failed to delete experiment: ${e instanceof Error?e.message:`Unknown error`}`)}},disabled:a.isPending,children:a.isPending?`Deleting...`:`Delete`})]})]})})}function YJr(e){let t=TK(e.id)??e.id;return e.name||`Experiment #${t}`}var XJr=60;function ZJr({experiment:e}){return(0,W.jsx)(`span`,{className:`block min-w-0 truncate text-left text-muted-foreground`,children:YJr(e)})}function QJr({experiment:e}){let t=e.description;if(!t)return(0,W.jsx)(`span`,{className:`text-placeholder`,children:`—`});let n=(0,W.jsx)(`span`,{className:`block min-w-0 truncate text-left text-muted-foreground`,children:t});return t.length<=XJr?n:(0,W.jsxs)(iS,{children:[(0,W.jsx)(aS,{asChild:!0,children:n}),(0,W.jsx)(oS,{children:t})]})}function $Jr(){let{data:e}=WL(),{data:t}=_L(),{data:n}=uR(),{data:r}=rR();return{agents:e,workflows:t,scorers:n,processors:r}}var eYr={agent:dR,workflow:pL,scorer:mR,processor:pR},tYr={agent:`Agent`,workflow:`Workflow`,scorer:`Scorer`,processor:`Processor`},nYr=`External (caller-run)`;function rYr(e,{agents:t,workflows:n,scorers:r,processors:i}){let{targetType:a,targetId:o}=e;if(!o)return nYr;switch(a){case`agent`:return t?.[o]?.name??o;case`workflow`:return n?.[o]?.name??o;case`scorer`:return r?.[o]?.scorer?.config?.name??o;case`processor`:return i?.[o]?.name??o;default:return o}}function iYr({experiment:e,datasetName:t,review:n,selectionRole:r,showUsage:i=!1,metrics:a}){let o=e.status??`pending`,s=e.succeededCount??0,c=e.failedCount??0,l=e.totalItems??0;return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Q.Cell,{children:r?(0,W.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,W.jsx)(GT,{variant:r.variant,className:`shrink-0`,children:r.label}),(0,W.jsx)(ZJr,{experiment:e})]}):(0,W.jsx)(ZJr,{experiment:e})}),(0,W.jsx)(Q.Cell,{children:(0,W.jsx)(QJr,{experiment:e})}),t!==void 0&&(0,W.jsx)(Q.TextCell,{children:t}),(0,W.jsx)(Q.Cell,{children:(0,W.jsx)(sYr,{experiment:e})}),(0,W.jsx)(Q.Cell,{children:(0,W.jsx)(GT,{variant:uJr[o]??`neutral`,indicator:`dot`,children:S7[o]??o})}),(0,W.jsx)(Q.TextCell,{className:`text-center`,children:l}),(0,W.jsx)(Q.TextCell,{className:`text-center`,children:s}),(0,W.jsx)(Q.TextCell,{className:`text-center`,children:(0,W.jsx)(`span`,{className:c>0?`text-destructive-foreground`:``,children:c})}),(0,W.jsx)(M7,{value:aYr(e),format:VT}),i&&(0,W.jsx)(oYr,{metrics:a}),(0,W.jsx)(Q.Cell,{className:`text-center`,children:(0,W.jsx)(cYr,{review:n})}),(0,W.jsx)(Q.TextCell,{children:$T(e.createdAt,`date`)??`—`})]})}function aYr(e){if(e.startedAt&&e.completedAt)return new Date(e.completedAt).getTime()-new Date(e.startedAt).getTime()}function oYr({metrics:e}){let t=e?.avgDurationMs===void 0?void 0:Math.round(e.avgDurationMs);return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(M7,{value:t,format:VT}),(0,W.jsx)(M7,{value:b7(e),format:p8}),(0,W.jsx)(M7,{value:e?.estimatedCost,format:t=>v7(t,e?.costUnit)})]})}function M7({value:e,format:t}){let n=e===void 0?void 0:t(e);return(0,W.jsx)(Q.TextCell,{className:`text-center tabular-nums`,children:n??(0,W.jsx)(`span`,{className:`text-placeholder`,children:`—`})})}function sYr({experiment:e}){let t=rYr(e,$Jr()),n=e.targetId?e.targetType:null,r=n?eYr[n]:null;return(0,W.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1.5 [&_svg]:size-3.5 [&_svg]:shrink-0`,children:[r&&(0,W.jsx)(`span`,{className:`flex text-muted-foreground`,role:`img`,"aria-label":tYr[n],children:(0,W.jsx)(r,{})}),(0,W.jsx)(`span`,{className:n?`truncate`:`truncate text-placeholder`,children:t})]})}function cYr({review:e}){if(!e)return(0,W.jsx)(`span`,{className:`text-placeholder`,children:`—`});let t=e.needsReview+e.complete;return t===0?(0,W.jsx)(`span`,{className:`text-placeholder`,children:`—`}):e.needsReview>0?(0,W.jsxs)(GT,{size:`xs`,variant:`warning`,children:[e.needsReview,` pending`]}):(0,W.jsxs)(GT,{size:`xs`,variant:`success`,children:[e.complete,`/`,t,` reviewed`]})}var lYr=`${oJr} ${sJr} 1fr ${cJr}`,uYr=`${lYr} auto`,dYr=`${lYr} ${lJr} auto`,fYr=[{label:x7.avgDuration,className:`text-center`},{label:x7.tokens,className:`text-center`},{label:x7.cost,className:`text-center`}],pYr=e=>[{label:x7.experiment},{label:x7.description},{label:x7.dataset},{label:x7.target},{label:x7.status,sortKey:`status`},{label:x7.items,className:`text-center`},{label:x7.succeeded,className:`text-center`},{label:x7.failed,className:`text-center`},{label:x7.duration,className:`text-center`},...e?fYr:[],{label:x7.review,className:`text-center`},{label:x7.date,sortKey:`createdAt`}],mYr=e=>e.stopPropagation();function hYr({experiment:e,rowProps:t,onSelect:n,featured:r,onDelete:i,leadingCell:a,children:o}){let s=a?2:void 0,{paths:c,Link:l}=Ft(),u=(0,U.useRef)(null);return(0,W.jsxs)(Q.RowWrapper,{...t,onSelectRow:n??(()=>u.current?.click()),children:[a,n?(0,W.jsx)(Q.RowButton,{colStart:s,colEnd:-2,featured:r,tabIndex:-1,onClick:e=>{e.stopPropagation(),n()},children:o}):(0,W.jsx)(Q.RowLink,{ref:u,colStart:s,colEnd:-2,featured:r,to:c.experimentLink(e.id),LinkComponent:l,tabIndex:-1,onClick:mYr,children:o}),(0,W.jsx)(Q.ActionsCell,{className:`pl-2`,children:(0,W.jsx)(Y,{type:`button`,variant:`ghost`,size:`icon-sm`,tooltip:`Delete experiment`,"aria-label":`Delete experiment ${e.name??e.id}`,onClick:e=>{e.stopPropagation(),i()},children:(0,W.jsx)(YC,{className:`size-4`})})})]})}function gYr({experiments:e,datasets:t,reviewByExperiment:n,metricsByExperiment:r,isLoading:i,search:a=``,statusFilter:o=`all`,datasetFilter:s=`all`,selection:c,onSelectExperiment:l,selectedExperimentId:u,keyboardGlobal:d=!0,isFetchingNextPage:f,hasNextPage:p,setEndOfListElement:m,sort:h,onSortChange:g}){let _=(0,U.useMemo)(()=>{let e=new Map;return t?.forEach(t=>e.set(t.id,t.name)),e},[t]),v=(0,U.useMemo)(()=>h?e:[...e].sort((e,t)=>{let n=e.createdAt?new Date(e.createdAt).getTime():0;return(t.createdAt?new Date(t.createdAt).getTime():0)-n}),[e,h]),y=(0,U.useMemo)(()=>{let e=a.toLowerCase();return v.filter(t=>{let n=t.datasetId?_.get(t.datasetId)??``:``,r=!e||t.id.toLowerCase().includes(e)||(t.name??``).toLowerCase().includes(e)||n.toLowerCase().includes(e)||(t.targetId??``).toLowerCase().includes(e),i=o===`all`||t.status===o,a=s===`all`||t.datasetId===s;return r&&i&&a})},[v,a,_,o,s]),{containerRef:b,getRowProps:x}=RQ({count:y.length,global:d}),[S,C]=(0,U.useState)(null),w=r!==void 0,T=w?dYr:uYr;if(i)return(0,W.jsx)(zK,{columns:T});let E=(c?.selectedExperimentIds.length??0)===0||y.length===0?!1:y.every(e=>c?.selectedExperimentIds.includes(e.id))?!0:`indeterminate`,D=c?`auto ${T}`:T,O=pYr(w).map(e=>e.sortKey&&g?(0,W.jsx)(Q.SortableTopCell,{className:e.className,sortKey:e.sortKey,sort:h?.key===e.sortKey?h.direction:void 0,onSortChange:g,children:e.label},e.label):(0,W.jsx)(Q.TopCell,{className:e.className,children:e.label},e.label));return(0,W.jsxs)(Q,{columns:D,scrollRef:b,children:[(0,W.jsx)(Q.Top,{hasLeadingCell:c!==void 0,children:c?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Q.TopSelectCell,{checked:E,onToggle:()=>c.onToggleAll(y.map(e=>e.id)),"aria-label":`Select all experiments`}),(0,W.jsxs)(Q.TopCells,{colStart:2,children:[O,(0,W.jsx)(Q.TopCell,{"aria-hidden":!0,children:null})]})]}):(0,W.jsxs)(W.Fragment,{children:[O,(0,W.jsx)(Q.TopCell,{"aria-hidden":!0,children:null})]})}),y.length===0&&!p?(0,W.jsx)(Q.NoMatch,{message:`No experiments match your filters`}):null,y.map((e,t)=>{let i=e.datasetId?_.get(e.datasetId)??TK(e.datasetId)??e.datasetId:`—`,a=c?.selectedExperimentIds.indexOf(e.id)??-1,o=a!==-1,s=!o&&c?.comparableDatasetId!==void 0&&e.datasetId!==c.comparableDatasetId,d=(0,W.jsx)(iYr,{experiment:e,datasetName:i,review:n?.get(e.id),showUsage:w,metrics:r?.get(e.id),selectionRole:o?{label:j7(a),variant:a===0?A7.baseline:A7.contender}:void 0});return(0,W.jsx)(hYr,{experiment:e,rowProps:x(t),onSelect:l?()=>l(e):void 0,featured:o||u===e.id,onDelete:()=>C(e),leadingCell:c&&(0,W.jsx)(Q.SelectCell,{checked:o,disabled:s,onToggle:()=>c.onToggleSelection(e.id),"aria-label":`Select experiment ${e.id}`}),children:d},e.id)}),(0,W.jsx)(Q.NextPageLoading,{isLoading:f,hasMore:p,setEndOfListElement:m}),S&&(0,W.jsx)(JJr,{open:!0,onOpenChange:e=>{e||C(null)},experimentId:S.id,experimentName:S.name??void 0})]})}var _Yr=[{value:`all`,label:`All statuses`},{value:`completed`,label:`Completed`},{value:`running`,label:`Running`},{value:`failed`,label:`Failed`},{value:`pending`,label:`Pending`}];function vYr(e){return[{value:`all`,label:`All datasets`},...(e??[]).map(e=>({value:e.id,label:e.name}))]}var yYr=({onRunExperiment:e})=>(0,W.jsx)(aw,{titleSlot:`No Experiments yet`,descriptionSlot:(0,W.jsxs)(W.Fragment,{children:[`Run an experiment from a dataset to evaluate `,(0,W.jsx)(`br`,{}),`your agents and workflows.`]}),actionSlot:(0,W.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,children:[e&&(0,W.jsx)(Y,{variant:`primary`,onClick:e,icon:(0,W.jsx)(MC,{}),children:`New experiment`}),(0,W.jsx)(Y,{variant:`ghost`,render:(0,W.jsx)(`a`,{href:`https://mastra.ai/docs/evals/experiments`,target:`_blank`,rel:`noopener noreferrer`}),icon:(0,W.jsx)(tC,{}),children:`Experiments documentation`})]}),variant:`fill`}),bYr=e=>`${e} experiment${e===1?``:`s`}`;function xYr({experimentIds:e,onDeleted:t}){let[n,r]=(0,U.useState)(!1),[i,a]=(0,U.useState)(!1),{deleteExperiment:o}=YL(),s=e.length;return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Y,{size:`sm`,variant:`destructive-ghost`,disabled:s===0,icon:(0,W.jsx)(YC,{}),onClick:()=>r(!0),children:`Delete`}),(0,W.jsx)(hL,{open:n,onOpenChange:r,children:(0,W.jsxs)(hL.Content,{children:[(0,W.jsxs)(hL.Header,{children:[(0,W.jsxs)(hL.Title,{children:[`Delete `,bYr(s)]}),(0,W.jsxs)(hL.Description,{children:[s===1?`Its`:`Their`,` results and traces will be deleted too. This can't be undone.`]})]}),(0,W.jsxs)(hL.Footer,{children:[(0,W.jsx)(hL.Cancel,{children:`Cancel`}),(0,W.jsx)(Y,{icon:(0,W.jsx)(YC,{}),variant:`destructive`,onClick:async()=>{a(!0);let n=await Promise.allSettled(e.map(e=>o.mutateAsync(e)));a(!1);let i=n.filter(e=>e.status===`rejected`).length;i>0?fw.error(`Failed to delete ${i} of ${bYr(s)}`):(fw.success(`Deleted ${bYr(s)}`),r(!1),t())},disabled:i,children:i?`Deleting…`:s===1?`Delete experiment`:`Delete experiments`})]})]})})]})}function SYr({selectedIds:e,onClearSelection:t,onCompare:n,compareDisabledReason:r}){let i=e.length,a=i===0;return(0,W.jsxs)(`div`,{className:`flex items-center gap-1 whitespace-nowrap`,children:[(0,W.jsxs)(Y,{variant:`ghost`,size:`sm`,disabled:a,iconEnd:a?void 0:(0,W.jsx)(tw,{}),onClick:t,tooltip:a?void 0:`Clear selection`,className:`mr-2 tabular-nums`,children:[i,` selected`]}),(0,W.jsx)(xYr,{experimentIds:e,onDeleted:t}),r?(0,W.jsxs)(iS,{children:[(0,W.jsx)(aS,{render:(0,W.jsx)(`span`,{className:`cursor-not-allowed`,tabIndex:0}),children:(0,W.jsx)(Y,{size:`sm`,disabled:!0,tabIndex:-1,icon:(0,W.jsx)(RGe,{}),children:`Compare`})}),(0,W.jsx)(oS,{children:r})]}):(0,W.jsx)(Y,{size:`sm`,onClick:n,icon:(0,W.jsx)(RGe,{}),children:`Compare`})]})}function CYr({dataset:e}){return(0,W.jsx)(Z,{as:`p`,variant:`body-sm`,tone:`muted`,role:`note`,"aria-label":`Comparable experiments`,className:`min-w-0 truncate`,children:e?(0,W.jsxs)(W.Fragment,{children:[`Comparable experiments share dataset`,` `,(0,W.jsx)(Z,{as:`span`,variant:`body-sm`,tone:`ink`,title:e.id,children:e.name})]}):`Select an experiment to pick the dataset to compare`})}var wYr=`search`,TYr=`status`,EYr=`dataset`,N7=`all`,DYr=[{id:`contains`,label:`contains`},{id:`is`,label:`is`}],OYr=_Yr.filter(e=>e.value!==N7),kYr=({search:e,statusFilter:t,datasetFilter:n,targetType:r,targetId:i})=>{let a=[];return e&&a.push(K5(wYr,e,`contains`)),a.push(...KHr({targetType:r,targetId:i})),t!==N7&&a.push(K5(TYr,t)),n!==N7&&a.push(K5(EYr,n)),a},AYr=e=>({...qHr(e),search:q5(e,wYr),statusFilter:q5(e,TYr)||N7,datasetFilter:q5(e,EYr)||N7});function jYr({search:e,statusFilter:t,datasetFilter:n,targetType:r,targetId:i,datasetOptions:a,onChange:o}){let s=JHr(r),c=(0,U.useMemo)(()=>[{id:wYr,label:`Search`,icon:zC,search:!0,operators:[`contains`]},...s,{id:TYr,label:`Status`,icon:US,color:SR(`orange`),operators:[`is`],strict:!0,suggestions:OYr},{id:EYr,label:`Dataset`,icon:ZS,color:SR(`blue`),operators:[`is`],strict:!0,suggestions:a.filter(e=>e.value!==N7)}],[s,a]),l=(0,U.useMemo)(()=>kYr({search:e,statusFilter:t,datasetFilter:n,targetType:r,targetId:i}),[e,t,n,r,i]);return(0,W.jsxs)(f8,{fields:c,operators:DYr,value:l,onValueChange:e=>o(AYr(e)),createItemId:e=>e,"aria-label":`Experiments filters`,className:`min-w-64 flex-1`,children:[(0,W.jsx)(f8.Chips,{}),(0,W.jsx)(f8.Input,{placeholder:`Filter experiments…`})]})}function MYr({search:e,statusFilter:t,datasetFilter:n,datasetOptions:r,targetType:i,targetId:a,onFiltersChange:o,selection:s,comparableDataset:c}){return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(VY,{children:(0,W.jsx)(VY.Start,{children:(0,W.jsx)(jYr,{search:e,statusFilter:t,datasetFilter:n,datasetOptions:r,targetType:i,targetId:a,onChange:o})})}),(0,W.jsxs)(VY,{children:[(0,W.jsx)(VY.Start,{className:`self-end`,children:(0,W.jsx)(CYr,{dataset:c})}),(0,W.jsx)(VY.End,{children:(0,W.jsx)(SYr,{...s})})]})]})}var NYr={present:!1,targetType:null,output:null,metadata:null,comment:null,error:null,startedAt:null,completedAt:null,scores:[]},PYr=e=>e?e instanceof Date?e.toISOString():e:null,FYr=e=>{let t=new Map;for(let n of e??[])t.set(n.itemId,n);return t},IYr=(e,t,n,r)=>{if(!e)return NYr;let i=new Map;for(let e of n??[])i.set(e.scorerId,e.reason??null);return{present:!0,targetType:t?.targetType??null,output:e.output,metadata:t?.metadata??null,comment:t?.comment??null,error:t?.error??null,startedAt:PYr(t?.startedAt),completedAt:PYr(t?.completedAt),scores:Object.entries(e.scores).map(([e,t])=>({scorerId:e,value:t,reason:i.get(e)??null})).sort((e,t)=>e.scorerId.localeCompare(t.scorerId)),traceId:t?.traceId??void 0,usage:t?.traceId?r?.[t.traceId]:void 0}},LYr=(e,t)=>{let n={};for(let r of new Set([...e.scores,...t.scores].map(e=>e.scorerId))){let i=e.scores.find(e=>e.scorerId===r)?.value??null,a=t.scores.find(e=>e.scorerId===r)?.value??null;n[r]=i!=null&&a!=null?a-i:null}return n};function P7(e){return!e.startedAt||!e.completedAt?null:new Date(e.completedAt).getTime()-new Date(e.startedAt).getTime()}function RYr(e){let t=e.scores.map(e=>e.value).filter(e=>e!=null);return t.length>0?t.reduce((e,t)=>e+t,0)/t.length:null}var zYr=(e,t)=>{let n=RYr(e),r=RYr(t);return n!=null&&r!=null?r-n:void 0},BYr=(e,t)=>{let n=P7(e),r=P7(t);return n!=null&&r!=null?r-n:null},VYr=(e,t)=>{let n=e.usage?.estimatedCost,r=t.usage?.estimatedCost;if(n!==void 0&&r!==void 0)return e.usage?.costUnit===t.usage?.costUnit?r-n:void 0},HYr=(e,t)=>{let n=b7(e.usage),r=b7(t.usage);return n!==void 0&&r!==void 0?r-n:void 0},UYr=({comparison:e,experimentIds:t,resultsById:n,scoresById:r,usageById:i})=>{if(!e)return[];let a=new Map(t.map(e=>[e,FYr(n?.[e])]));return e.items.map(e=>{let n=t.map(t=>IYr(e.results[t],a.get(t)?.get(e.itemId),r?.[t]?.[e.itemId],i?.[t]?.traces)),[o]=n;return{itemId:e.itemId,input:e.input,groundTruth:e.groundTruth,sides:n.map((e,n)=>({...e,experimentId:t[n],role:n===0?`baseline`:`contender`,deltas:n===0?null:LYr(o,e),durationDeltaMs:n===0?null:BYr(o,e),costDelta:n===0?void 0:VYr(o,e),tokenDelta:n===0?void 0:HYr(o,e),averageScoreDelta:n===0?void 0:zYr(o,e)}))}})};function WYr({datasetId:e,itemId:t,onClose:n}){let{data:r,isLoading:i}=Qjt({datasetId:e,itemId:t??``,queryOptions:{enabled:!!e&&!!t}});return(0,W.jsx)(EJr,{datasetId:e,item:r,itemId:t,fallback:i?(0,W.jsx)(w$.LoadingData,{}):(0,W.jsxs)(w$.NoData,{children:[`Dataset item "`,t,`" not found.`]}),items:r?[r]:[],onItemChange:()=>{},onClose:n})}function GYr({label:e,value:t,expanded:n,onExpandedChange:r}){return t==null?null:(0,W.jsx)(m7,{title:e,framed:!0,expanded:n,onExpandedChange:r,children:(0,W.jsx)(f7,{value:t})})}function KYr({usage:e,showUsage:t,durationMs:n,costDelta:r,tokenDelta:i,durationDeltaMs:a,averageScore:o,scores:s}){let c=e?.costUnit,l=t?[{id:`cost`,icon:(0,W.jsx)(JS,{}),label:`Cost`,value:v7(e?.estimatedCost,c),rawValue:e?.estimatedCost,delta:r??null,formatDelta:Xqr(c),higherIsBetter:!1}]:[],u=t?[{id:`tokens`,icon:(0,W.jsx)(gC,{}),label:`Tokens`,value:y7(b7(e)),rawValue:b7(e),delta:i??null,formatDelta:y7,higherIsBetter:!1}]:[],d=n==null?[]:[{id:`duration`,icon:(0,W.jsx)(KS,{}),label:`Duration`,value:VT(n)??`-`,rawValue:n,delta:a??null,formatDelta:Kqr,higherIsBetter:!1}],f=o?[{id:`avg-score`,icon:(0,W.jsx)(fC,{}),label:`Avg score`,value:_7(o.value),rawValue:o.value,delta:o.delta??null}]:[];return[...l,...d,...f,...u,...s.map(e=>({id:`scorer:${e.scorerId}`,icon:(0,W.jsx)(mR,{}),label:e.label??(0,W.jsx)(SKr,{scorerId:e.scorerId}),value:e.reason?.trim()?(0,W.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[_7(e.value),(0,W.jsx)(Qqr,{scorerId:e.scorerId,reason:e.reason})]}):_7(e.value),rawValue:e.value,delta:e.delta??null}))]}function qYr({key:e,defaultValue:t,parse:n,toJSON:r=e=>e}){let i=new Set,a=null,o=t,s=!1,c=e=>{if(e===null)return t;try{return n(JSON.parse(e))}catch{return t}};return{read:()=>{if(s)return o;let t;try{t=localStorage.getItem(e)}catch{return s=!0,o}return t===a||(a=t,o=c(t)),o},write:t=>{a=JSON.stringify(r(t)),o=t;try{localStorage.setItem(e,a),s=!1}catch{s=!0}i.forEach(e=>e())},subscribe:t=>{let n=n=>{(n.key===e||n.key===null)&&(s=!1,t())};return i.add(t),window.addEventListener(`storage`,n),()=>{i.delete(t),window.removeEventListener(`storage`,n)}},defaultValue:t}}function JYr(e){return(0,U.useSyncExternalStore)(e.subscribe,e.read,()=>e.defaultValue)}var YYr={cost:`cost`,"total-cost":`cost`,duration:`duration`,"avg-duration":`duration`,"avg-score":`average`,tokens:`tokens`,"total-tokens":`tokens`,errors:`errors`};function XYr(e){return e.startsWith(`scorer:`)?e:YYr[e]}var ZYr=[],QYr=qYr({key:`mastra:experiments-compare:hidden-metrics`,defaultValue:ZYr,parse:e=>cM(rM()).parse(e)});function $Yr(){let e=JYr(QYr);return{isHidden:t=>e.includes(t),isMetricVisible:t=>{let n=XYr(t);return n===void 0||!e.includes(n)},toggle:t=>QYr.write(e.includes(t)?e.filter(e=>e!==t):[...e,t]),reset:()=>QYr.write(ZYr)}}function eXr(e){return e==null?`-`:typeof e==`string`?e:JSON.stringify(e,null,2)}function tXr(e,t){return KYr({usage:e.usage,showUsage:t,durationMs:P7(e),costDelta:e.costDelta,tokenDelta:e.tokenDelta,durationDeltaMs:e.durationDeltaMs,averageScore:e.scores.length>0?{value:RYr(e),delta:e.averageScoreDelta}:void 0,scores:e.scores.map(t=>({scorerId:t.scorerId,value:t.value,reason:t.reason,delta:e.deltas?.[t.scorerId]??null}))})}function nXr({column:e,isLoading:t,showUsage:n=!1,outputExpanded:r,onOutputExpandedChange:i,onShowTrace:a}){let{isMetricVisible:o}=$Yr();if(t)return(0,W.jsx)(`div`,{className:`flex h-32 items-center justify-center`,children:(0,W.jsx)(dt,{})});if(!e.present)return(0,W.jsx)(Z,{tone:`muted`,className:`py-5 text-center`,children:`Not present in this experiment`});let s=eXr(e.output),c=Uqr(e),l=g7(e),u=tXr(e,n).filter(e=>o(e.id)),{traceId:d}=e,f=d&&a?(0,W.jsx)(Y,{size:`icon-sm`,variant:`ghost`,tooltip:`View trace`,"aria-label":`View trace`,onClick:()=>a(d),children:(0,W.jsx)(gR,{})}):void 0,p=u.length>0,m=e=>(0,W.jsxs)(W.Fragment,{children:[!p&&f,(0,W.jsx)(qT,{content:e,variant:`ghost`})]});return(0,W.jsxs)(`div`,{className:p7,children:[p&&(0,W.jsx)(m7,{title:`Metrics`,collapsible:!1,actions:f,children:(0,W.jsx)(d7,{metrics:u})}),l?(0,W.jsx)(m7,{title:`Error`,tone:`negative`,framed:!0,actions:m(l),children:(0,W.jsx)(Z,{tone:`muted`,className:`p-3 break-words`,children:l})}):(0,W.jsx)(m7,{title:`Output`,framed:!0,actions:m(s),expanded:r,onExpandedChange:i,children:(0,W.jsx)(f7,{value:c??e.output})}),e.comment&&(0,W.jsx)(m7,{title:`Comment`,framed:!0,children:(0,W.jsx)(f7,{value:e.comment})}),e.metadata&&Object.keys(e.metadata).length>0&&(0,W.jsx)(m7,{title:`Metadata`,framed:!0,actions:(0,W.jsx)(qT,{content:eXr(e.metadata),variant:`ghost`}),children:(0,W.jsx)(f7,{value:e.metadata})})]})}function rXr({experiment:e,open:t,onOpenChange:n}){let[r,i]=(0,U.useState)(e.name??``),[a,o]=(0,U.useState)(e.description??``),{updateExperiment:s}=YL(),c=!!r.trim();return(0,W.jsx)(HE,{open:t,onOpenChange:n,pending:s.isPending,children:(0,W.jsxs)(UE,{children:[(0,W.jsx)(WE,{children:(0,W.jsx)(qE,{children:`Rename Experiment`})}),(0,W.jsxs)(bK,{onSubmit:async t=>{if(t.preventDefault(),c&&!s.isPending&&e.datasetId)try{await s.mutateAsync({datasetId:e.datasetId,experimentId:e.id,name:r.trim(),description:a.trim()}),fw.success(`Experiment renamed`),n(!1)}catch(e){fw.error(`Failed to rename experiment: ${e instanceof Error?e.message:`Unknown error`}`)}},children:[(0,W.jsxs)(KE,{children:[(0,W.jsxs)(VM,{children:[(0,W.jsx)(UM,{required:!0,children:`Name`}),(0,W.jsx)(_I,{required:!0,value:r,onChange:e=>i(e.target.value),placeholder:`Enter experiment name`,autoFocus:!0})]}),(0,W.jsxs)(VM,{children:[(0,W.jsx)(UM,{children:`Description`}),(0,W.jsx)(_I,{value:a,onChange:e=>o(e.target.value),placeholder:`Enter experiment description (optional)`})]})]}),(0,W.jsxs)(GE,{children:[(0,W.jsx)(YE,{children:`Cancel`}),(0,W.jsx)(VE,{type:`submit`,disabled:!c,children:s.isPending?`Saving...`:`Save`})]})]})]})})}function iXr({datasetId:e,version:t,differsFromBaseline:n}){let{Link:r,paths:i}=Ft();return(0,W.jsxs)(`span`,{className:H(`flex min-w-0 items-center gap-2`,n&&`text-warning-foreground`),children:[n&&(0,W.jsx)(`span`,{className:`min-w-0 truncate`,children:`differs from baseline`}),(0,W.jsxs)(r,{href:`${i.datasetLink(e)}?version=${t}`,"aria-label":`Open dataset v${t}`,className:`shrink-0 hover:underline`,children:[`v`,t]})]})}function aXr({role:e,label:t,experiment:n,onSetBaseline:r}){let{Link:i}=Ft(),[a,o]=(0,U.useState)(!1),s=n?TK(n.id)??n.id:null,c=!!n?.datasetId;return(0,W.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[n&&(0,W.jsxs)(CD,{children:[(0,W.jsx)(CD.Trigger,{render:(0,W.jsxs)(Y,{size:`sm`,className:`max-w-full min-w-0`,children:[(0,W.jsx)(`span`,{className:`min-w-0 truncate`,children:n.name||s}),(0,W.jsx)(RS,{"aria-hidden":!0})]})}),(0,W.jsxs)(CD.Content,{align:`start`,className:`min-w-48`,children:[(0,W.jsxs)(CD.Item,{render:(0,W.jsx)(i,{href:`/experiments/${n.id}`}),children:[(0,W.jsx)(bC,{}),` View experiment`]}),c&&(0,W.jsxs)(CD.Item,{onSelect:()=>o(!0),children:[(0,W.jsx)(kC,{}),` Rename experiment`]})]})]}),n&&a&&(0,W.jsx)(rXr,{experiment:n,open:!0,onOpenChange:o}),(0,W.jsx)(`div`,{className:`ml-auto shrink-0`,children:r?(0,W.jsxs)(iS,{children:[(0,W.jsx)(aS,{render:(0,W.jsx)(`button`,{type:`button`,"aria-label":`Set as baseline`,onClick:r,className:H(`cursor-pointer rounded-[7px] hover:brightness-110`,dS)}),children:(0,W.jsx)(GT,{variant:A7[e],size:`md`,icon:(0,W.jsx)(WC,{}),children:t})}),(0,W.jsx)(oS,{children:`Set as baseline`})]}):(0,W.jsx)(GT,{variant:A7[e],size:`md`,icon:e===`baseline`?(0,W.jsx)(WC,{className:`fill-current`}):(0,W.jsx)(WC,{}),children:t})})]})}function oXr({role:e,experiment:t,summary:n,metrics:r,baselineMetrics:i,versionMismatch:a,showUsage:o=!1}){let{Link:s,paths:c}=Ft(),{isMetricVisible:l}=$Yr(),u=t?.createdAt?new Date(t.createdAt):null,d=e===`contender`,f=(e,t)=>d?qqr(e,t):null,p=t?[...t.targetId?[{id:`target`,icon:t.targetType===`agent`?(0,W.jsx)(dR,{}):(0,W.jsx)(aqe,{}),label:t.targetType===`agent`?`Agent`:`Target`,value:t.targetType===`agent`?(0,W.jsx)(s,{href:c.agentLink(t.targetId),className:`min-w-0 truncate hover:underline`,children:t.targetId}):(0,W.jsx)(`span`,{className:`min-w-0 truncate`,children:t.targetId}),delta:null}]:[],...t.datasetId&&t.datasetVersion!=null?[{id:`dataset-version`,icon:(0,W.jsx)(IC,{}),label:`Dataset version`,value:(0,W.jsx)(iXr,{datasetId:t.datasetId,version:t.datasetVersion,differsFromBaseline:a}),delta:null}]:[],...u?[{id:`created-at`,icon:(0,W.jsx)(IS,{}),label:`Created`,value:$T(u,`date`),delta:null}]:[]]:[],m=o?r:void 0,h=[...m?[{id:`total-cost`,icon:(0,W.jsx)(JS,{}),label:`Total cost`,value:v7(m.cost,m.costUnit),rawValue:m.cost,delta:m.costUnit===i?.costUnit?f(m.cost,i?.cost):null,formatDelta:Xqr(m.costUnit),higherIsBetter:!1,emphasis:!0}]:[],...r?[{id:`avg-duration`,icon:(0,W.jsx)(KS,{}),label:`Avg duration`,value:VT(r.averageDurationMs)??`-`,rawValue:r.averageDurationMs,delta:f(r.averageDurationMs,i?.averageDurationMs),formatDelta:Kqr,higherIsBetter:!1,emphasis:!0}]:[],...r&&n&&n.length>0?[{id:`avg-score`,icon:(0,W.jsx)(fC,{}),label:`Avg score`,value:_7(r.averageScore),rawValue:r.averageScore,delta:f(r.averageScore,i?.averageScore),emphasis:!0}]:[],...m?[{id:`total-tokens`,icon:(0,W.jsx)(gC,{}),label:`Total tokens`,value:y7(m.tokens),rawValue:m.tokens,delta:f(m.tokens,i?.tokens),formatDelta:y7,higherIsBetter:!1}]:[],...p,...r?[{id:`errors`,icon:(0,W.jsx)(HS,{}),label:`Errors`,value:String(r.errorCount),delta:f(r.errorCount,i?.errorCount),formatDelta:String,higherIsBetter:!1}]:[],...(n??[]).map(({scorerId:e,average:t,delta:n})=>({id:`scorer:${e}`,icon:(0,W.jsx)(mR,{}),label:(0,W.jsx)(SKr,{scorerId:e}),value:_7(t),rawValue:t,delta:d?n:null}))].filter(e=>l(e.id));return h.length===0?null:(0,W.jsx)(m7,{title:`Summary`,collapsible:!1,children:(0,W.jsx)(d7,{metrics:h})})}function sXr(e){return(0,W.jsx)(BFr,{...e,headerActionsSlot:e.traceId?(0,W.jsx)(BIr,{traceId:e.traceId,spans:e.spans},e.traceId):void 0})}function cXr({traceId:e,onClose:t,withQueryTrace:n,withFeedback:r}){let{navigate:i}=Ft(),[a,o]=(0,U.useState)(),{data:s,isLoading:c}=kqr({traceId:e,queryOptions:{enabled:!!e}}),l=s?.spans,u=l?.find(e=>!e.parentSpanId),{data:d}=l6({traceId:e,queryOptions:{enabled:r&&!!e}}),{data:f}=c6({traceId:e,spanId:a,queryOptions:{enabled:r&&!!e&&!!a}}),{data:p}=lR({traceId:e,spanId:u?.spanId,page:0,queryOptions:{enabled:!!e&&!!u?.spanId}});return(0,W.jsx)(sXr,{size:`wide`,traceId:e,spans:l,isLoadingSpans:c,selectedSpanId:a??null,onClose:()=>{o(void 0),t()},onSpanSelect:o,showUnavailableFeaturesMsg:!1,traceHref:e?`/traces?traceId=${encodeURIComponent(e)}`:void 0,anchorSpanId:u?.spanId,withQueryTrace:n,withFeedback:r,onOpenScore:(e,t)=>i(zY(e,t)),feedbackTabBadge:r?d?.pagination?.total??void 0:void 0,feedbackTabSlot:r?({traceId:e})=>(0,W.jsx)(C8,{traceId:e}):void 0,scoresTabBadge:p?.pagination?.total??void 0,scoresTabSlot:({traceId:e,rootSpanId:t})=>t?(0,W.jsx)(ofr,{traceId:e,spanId:t,onScoreSelect:t=>i(zY(e,t))}):null,spanFeedbackTabBadge:r?f?.pagination?.total??void 0:void 0,spanFeedbackTabSlot:r?({traceId:e,spanId:t})=>e&&t?(0,W.jsx)(wMr,{traceId:e,spanId:t},`${e}:${t}`):null:void 0})}var F7=`min-w-0 px-4 py-3`,lXr=`grid grid-cols-[minmax(22rem,26rem)_repeat(var(--compare-cols),minmax(32rem,1fr))] divide-x divide-border border-border`,uXr=e=>!(e.target instanceof Element)||!e.currentTarget.contains(e.target)||e.target.closest(`a, button, input, select, textarea, [role="button"], [role="link"], [data-slot="collapsible-box-fade"]`)!==null,dXr=()=>!!window.getSelection()?.toString(),fXr=e=>e!=null,pXr=e=>e.length>0?e.reduce((e,t)=>e+t,0)/e.length:null,mXr=(e,t,n)=>pXr(e.map(e=>e.sides[t]?.scores.find(e=>e.scorerId===n)?.value??null).filter(fXr)),hXr=(e,t)=>{let n=e.map(e=>e.sides[t]).filter(e=>e?.present);return{errorCount:n.filter(e=>e.error).length,averageScore:pXr(n.flatMap(e=>e.scores.map(e=>e.value)).filter(fXr)),averageDurationMs:pXr(n.map(P7).filter(fXr))}};function gXr({datasetId:e,baselineId:t,contenderIds:n,onSetBaseline:r}){let i=(0,U.useMemo)(()=>[t,...n],[t,n]),[a,o]=(0,U.useState)(),[s,c]=(0,U.useState)(),l=G8(),u=e=>{c(void 0),o(e)},d=e=>{o(void 0),c(e)},{data:f,isLoading:p,error:m}=iMt({datasetId:e,experimentIds:i,baselineId:t,queryOptions:{enabled:!!e&&!!t&&n.length>0}}),{data:h,isLoading:g}=dMt({datasetId:e,experimentIds:i}),_=(0,U.useMemo)(()=>i.map(e=>({id:e,status:h[e]?.status})),[i,h]),{data:v,isLoading:y}=pMt({datasetId:e,experiments:_}),{data:b}=mMt({experiments:_}),{supportsMetrics:x,isLoading:S}=Z8(),{data:C,isLoading:w}=Dqr({experiments:_,supportsMetrics:x}),T=(0,U.useMemo)(()=>UYr({comparison:f,experimentIds:i,resultsById:v,scoresById:b,usageById:C}),[f,i,v,b,C]),E=(0,U.useMemo)(()=>{let e=[...new Set(T.flatMap(e=>e.sides.flatMap(e=>e.scores.map(e=>e.scorerId))))].sort();return i.map((t,n)=>e.map(e=>{let t=mXr(T,n,e),r=mXr(T,0,e);return{scorerId:e,average:t,delta:n>0&&t!=null&&r!=null?t-r:null}}))},[T,i]),D=(0,U.useMemo)(()=>i.map((e,t)=>{let n=C[e]?.summary;return{...hXr(T,t),cost:n?.estimatedCost,costUnit:n?.costUnit,tokens:b7(n)}}),[T,i,C]);if(p||g||S||w)return(0,W.jsx)(`div`,{className:`pointer-events-none fixed inset-0 flex items-center justify-center`,children:(0,W.jsx)(dt,{})});if(m)return(0,W.jsx)(oN,{variant:`warning`,title:`Error loading comparison`,children:(0,W.jsx)(oN.Message,{children:m instanceof Error?m.message:`Unknown error`})});if(!f||f.items.length===0)return(0,W.jsx)(Z,{as:`p`,variant:`body`,tone:`muted`,className:`py-5 text-center`,children:`No comparison data`});let O=h[t];return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`div`,{role:`table`,"aria-label":`Experiments comparison`,className:`grid min-w-[calc(22rem_+_var(--compare-cols)_*_32rem)]`,style:{"--compare-cols":i.length},children:[(0,W.jsxs)(`div`,{role:`row`,className:H(lXr,`sticky top-0 z-20 bg-background`),children:[(0,W.jsx)(`div`,{role:`columnheader`,"aria-label":`Items`,className:F7}),i.map((e,t)=>(0,W.jsx)(`div`,{role:`columnheader`,"aria-label":j7(t),className:H(F7,`border-b`),children:(0,W.jsx)(aXr,{role:t===0?`baseline`:`contender`,label:j7(t),experiment:h[e]??void 0,onSetBaseline:t>0&&r?()=>r(e):void 0})},e))]}),(0,W.jsxs)(`div`,{role:`row`,"aria-label":`Summary`,className:H(lXr,`border-b`),children:[(0,W.jsx)(`div`,{role:`cell`,"aria-label":`Items`,className:F7}),i.map((e,t)=>{let n=h[e]??void 0;return(0,W.jsx)(`div`,{role:`cell`,"aria-label":j7(t),className:F7,children:(0,W.jsx)(oXr,{role:t===0?`baseline`:`contender`,experiment:n,summary:E[t],metrics:y?void 0:D[t],baselineMetrics:y?void 0:D[0],versionMismatch:t>0&&n&&O?n?.datasetVersion!==O?.datasetVersion:void 0,showUsage:x})},e)})]}),T.map(e=>(0,W.jsx)(_Xr,{row:e,isLoading:y,showUsage:x,onOpen:()=>u(e.itemId),onShowTrace:d},e.itemId))]}),(0,W.jsx)(WYr,{datasetId:e,itemId:a,onClose:()=>o(void 0)}),(0,W.jsx)(cXr,{traceId:s,onClose:()=>c(void 0),withQueryTrace:l.enabled,withFeedback:l.enabled})]})}function _Xr({row:e,isLoading:t,showUsage:n,onOpen:r,onShowTrace:i}){let[a,o]=(0,U.useState)({input:!1,groundTruth:!1,output:!1}),s=e=>({expanded:a[e],onExpandedChange:t=>o(n=>({...n,[e]:t}))}),c=s(`output`);return(0,W.jsxs)(`div`,{role:`row`,"aria-label":e.itemId,tabIndex:0,onClick:e=>{uXr(e)||dXr()||r()},onKeyDown:e=>{e.target!==e.currentTarget||e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),r())},className:H(lXr,`cursor-pointer border-b transition-colors duration-normal ease-out-custom hover:bg-fill-subtle`,fS),children:[(0,W.jsxs)(`div`,{role:`cell`,className:H(F7,p7),children:[(0,W.jsx)(GYr,{label:`Input`,value:e.input,...s(`input`)}),(0,W.jsx)(GYr,{label:`Ground truth`,value:e.groundTruth,...s(`groundTruth`)})]}),e.sides.map((e,r)=>(0,W.jsx)(`div`,{role:`cell`,"aria-label":j7(r),className:F7,children:(0,W.jsx)(nXr,{column:e,isLoading:t,showUsage:n,outputExpanded:c.expanded,onOutputExpandedChange:c.onExpandedChange,onShowTrace:i})},e.experimentId))]})}function vXr(e){let t=new Map;if(!e?.counts)return t;for(let n of e.counts)t.set(n.experimentId,{needsReview:n.needsReview,complete:n.complete,total:n.total});return t}var I7=[_R(`/experiments`)],yXr=[`createdAt`,`status`],bXr=new Map;function xXr(){let[e,t]=(0,U.useState)(``),[n,r]=(0,U.useState)(`all`),[i,a]=(0,U.useState)(!1),[o,s]=(0,U.useState)([]),c=Gv(),[l,u]=ty(),{sort:d,onSortChange:f}=J8({searchParams:l,setSearchParams:u,allowedKeys:yXr}),p=(0,U.useMemo)(()=>d?{field:d.key,direction:d.direction===`asc`?`ASC`:`DESC`}:void 0,[d]),m=l.get(`dataset`)??`all`,{targetType:h,targetId:g}=iUr(),_=e=>{t(e.search),r(e.statusFilter),u(t=>{let n=new URLSearchParams(t),r=(e,t)=>{t?n.set(e,t):n.delete(e)};return r(`dataset`,e.datasetFilter===`all`?``:e.datasetFilter),r(Y5,e.targetType),r(X5,e.targetType===h?e.targetId:``),n},{replace:!0})},{data:v,isLoading:y,error:b}=XL(),{data:x,isLoading:S,error:C,isFetchingNextPage:w,hasNextPage:T,setEndOfListElement:E}=Rqr({datasetId:m===`all`?void 0:m,target:{targetType:h,targetId:g},orderBy:p}),{data:D}=qJr(),{supportsMetrics:O}=Z8(),k=(0,U.useMemo)(()=>v?.datasets??[],[v?.datasets]),A=(0,U.useMemo)(()=>x??[],[x]),j=(0,U.useMemo)(()=>vYr(k),[k]),{data:M}=rMt({datasetIds:(0,U.useMemo)(()=>A.flatMap(e=>e.datasetId?[e.datasetId]:[]),[A])}),N=(0,U.useMemo)(()=>{let e=new Map(k.map(e=>[e.id,e]));return M?.forEach(t=>e.set(t.id,t)),[...e.values()]},[k,M]),{data:P}=Lqr({experiments:A,supportsMetrics:O}),F=O?P??bXr:void 0,I=(0,U.useMemo)(()=>vXr(D),[D]),L=y||S,R=C||b,z=e=>{let t=new Set(A.map(e=>e.id));s(n=>{let r=n.filter(e=>t.has(e));return r.includes(e)?r.filter(t=>t!==e):r.length>=10?[...r.slice(0,9),e]:[...r,e]})},B=e=>{let t=new Map(A.map(e=>[e.id,e.datasetId])),n=t.get(e[0]);s(r=>r.length>0?[]:e.filter(e=>t.get(e)===n).slice(0,10))},{selectedIds:V,selectedDatasetIds:ee}=(0,U.useMemo)(()=>{let e=new Map(A.map(e=>[e.id,e.datasetId])),t=o.filter(t=>e.has(t));return{selectedIds:t,selectedDatasetIds:new Set(t.map(t=>e.get(t)))}},[A,o]),te=A.find(e=>e.id===V[0])?.datasetId??void 0,ne=te?{id:te,name:N.find(e=>e.id===te)?.name??te}:void 0,re=V.length<2?`Select at least two experiments to compare`:ee.size===1?void 0:`Only experiments from the same dataset can be compared`,ie=()=>{if(V.length<2||re)return;let[e,...t]=V,[n]=ee;if(!n)return;let r=new URLSearchParams({dataset:n,baseline:e});for(let e of t)r.append(`contender`,e);c(`/experiments/compare?${r.toString()}`)};if(R&&iR(R))return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:I7}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Experiments`}),(0,W.jsx)(CK,{variant:`fill`})]});if(C&&aR(C))return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:I7}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Experiments`}),(0,W.jsx)(SK,{variant:`fill`,resource:`experiments`})]});if(b&&aR(b))return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:I7}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Experiments`}),(0,W.jsx)(SK,{variant:`fill`,resource:`datasets`})]});if(R)return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:I7}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Experiments`}),(0,W.jsx)(aw,{tone:`error`,variant:`fill`,titleSlot:`Failed to load experiments`,descriptionSlot:R.message})]});let ae=(0,W.jsx)(h7,{open:i,onOpenChange:a,onSuccess:e=>void c(`/experiments/${e}`)});return A.length===0&&!L&&m===`all`&&!h?(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:I7}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Experiments`}),(0,W.jsx)(yYr,{onRunExperiment:()=>a(!0)}),ae]}):(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:I7}),headerActions:(0,W.jsx)(Y,{variant:`primary`,size:`sm`,icon:(0,W.jsx)(MC,{}),onClick:()=>a(!0),children:`New experiment`}),actionRow:(0,W.jsx)(MYr,{search:e,statusFilter:n,datasetFilter:m,datasetOptions:j,targetType:h,targetId:g,onFiltersChange:_,selection:{selectedIds:V,onClearSelection:()=>s([]),onCompare:ie,compareDisabledReason:re},comparableDataset:ne}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Experiments`}),(0,W.jsx)(gYr,{experiments:A,datasets:N,reviewByExperiment:I,metricsByExperiment:F,isLoading:L,search:e,statusFilter:n,datasetFilter:m,isFetchingNextPage:w,hasNextPage:T,setEndOfListElement:E,sort:d,onSortChange:f,selection:{selectedExperimentIds:V,onToggleSelection:z,onToggleAll:B,comparableDatasetId:te}}),ae]})}var SXr={baseline:`bg-badge-purple-indicator`,contender:`bg-badge-blue-indicator`};function CXr({experimentId:e,name:t,role:n,className:r,trailing:i}){let{Link:a,paths:o}=Ft(),s=t||e.slice(0,8);return(0,W.jsxs)(Y,{render:(0,W.jsx)(a,{href:o.experimentLink(e)}),variant:`ghost`,size:`sm`,className:H(`max-w-48 min-w-0`,r),"aria-label":`Open experiment ${s}`,children:[n&&(0,W.jsx)(`span`,{"aria-hidden":`true`,className:H(`size-1.5 shrink-0 rounded-full`,SXr[n])}),(0,W.jsx)(`span`,{className:`min-w-0 truncate`,children:s}),i&&(0,W.jsx)(`span`,{className:`ml-auto flex shrink-0`,children:i})]})}function L7(){let[e]=ty(),t=e.get(`dataset`)??void 0,n=e.get(`baseline`)??void 0;return{datasetId:t,baselineId:n,contenderIds:(0,U.useMemo)(()=>[...new Set(e.getAll(`contender`))].filter(e=>e&&e!==n).slice(0,9),[e,n])}}function wXr(){let{datasetId:e,baselineId:t,contenderIds:n}=L7();return{datasetId:e,experimentIds:e&&t&&n.length>0&&t?[t,...n]:[]}}function TXr(){let{experimentIds:e}=wXr();return e.length>0?`Comparing ${e.length} experiments`:`Comparing`}function EXr(){let{datasetId:e,experimentIds:t}=wXr(),{data:n}=dMt({datasetId:e??``,experimentIds:t});return t.length===0?null:(0,W.jsxs)(PQ,{children:[(0,W.jsx)(FQ,{delay:0,closeDelay:100,render:(0,W.jsx)(Y,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":`Show compared experiments`,children:(0,W.jsx)(RS,{})})}),(0,W.jsx)(IQ,{side:`bottom`,align:`end`,sideOffset:4,showArrow:!1,className:`w-72 p-1.5`,children:(0,W.jsx)(`ul`,{"aria-label":`Compared experiments`,className:`grid gap-0.5`,children:t.map((e,t)=>(0,W.jsx)(`li`,{className:`grid`,children:(0,W.jsx)(CXr,{className:`w-full max-w-none justify-start`,experimentId:e,name:n[e]?.name,role:t===0?`baseline`:`contender`,trailing:t===0&&(0,W.jsx)(GT,{variant:`purple`,size:`sm`,icon:(0,W.jsx)(WC,{className:`fill-current`}),children:`Baseline`})})},e))})})]})}function DXr({experimentIds:e}){return e.map((t,n)=>(0,W.jsxs)(`span`,{className:`flex items-center gap-2`,children:[n>0&&n===e.length-1&&`and`,(0,W.jsxs)(`span`,{className:`flex items-center`,children:[(0,W.jsx)(CXr,{experimentId:t}),n<e.length-2&&`,`]})]},t))}function OXr({datasetId:e,baselineId:t,contenderIds:n}){let[,r]=ty(),i=(0,U.useMemo)(()=>[t,...n],[t,n]),{data:a,isLoading:o,error:s}=dMt({datasetId:e,experimentIds:i});return s&&iR(s)?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Z,{as:`h1`,variant:`heading`,className:`sr-only`,children:`Compare`}),(0,W.jsx)(CK,{variant:`fill`})]}):s&&aR(s)?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Z,{as:`h1`,variant:`heading`,className:`sr-only`,children:`Compare`}),(0,W.jsx)(SK,{variant:`fill`,resource:`experiments`})]}):s&&!oR(s)?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Z,{as:`h1`,variant:`heading`,className:`sr-only`,children:`Compare`}),(0,W.jsx)(aw,{tone:`error`,variant:`fill`,titleSlot:`Failed to load experiments`,descriptionSlot:s.message})]}):!o&&(s||i.some(e=>!a[e]))?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Z,{as:`h1`,variant:`heading`,className:`sr-only`,children:`Compare`}),(0,W.jsx)(`div`,{className:`grid h-full min-w-min content-start items-start overflow-x-auto overflow-y-auto`,children:(0,W.jsxs)(`div`,{className:`py-5 text-center text-muted-foreground`,children:[(0,W.jsxs)(Z,{as:`p`,children:[`Experiments must belong to the same dataset (`,e,`) to be compared.`]}),(0,W.jsxs)(Z,{className:`mt-2 flex items-center justify-center gap-2`,children:[`One of`,(0,W.jsx)(DXr,{experimentIds:i}),`was not found in it.`]})]})})]}):(0,W.jsx)(`div`,{className:`h-full overflow-auto`,children:(0,W.jsxs)(`div`,{className:`grid w-full content-start`,children:[(0,W.jsx)(Z,{as:`h1`,variant:`heading`,className:`sr-only`,children:`Experiments comparison`}),(0,W.jsx)(gXr,{datasetId:e,baselineId:t,contenderIds:n,onSetBaseline:t=>{let n=new URLSearchParams({dataset:e,baseline:t});for(let e of i)e!==t&&n.append(`contender`,e);r(n)}})]})})}function kXr(){let{datasetId:e,baselineId:t,contenderIds:n}=L7();return!e||!t||n.length===0?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Z,{as:`h1`,variant:`heading`,className:`sr-only`,children:`Compare`}),(0,W.jsx)(`div`,{className:`grid h-full min-w-min content-start items-start overflow-x-auto overflow-y-auto`,children:(0,W.jsxs)(`div`,{className:`py-5 text-center text-muted-foreground`,children:[(0,W.jsx)(Z,{as:`p`,children:`Select two to ten experiments to compare.`}),(0,W.jsxs)(Z,{className:`mt-2`,children:[`Use the URL format: /experiments/compare?dataset=`,`{datasetId}`,`&baseline=`,`{experimentId}`,`&contender=`,`{experimentId}`,`&contender=`,`{experimentId}`]})]})})]}):(0,W.jsx)(OXr,{datasetId:e,baselineId:t,contenderIds:n})}function AXr(){let{datasetId:e}=L7(),{Link:t,paths:n}=Ft(),{data:r,isLoading:i}=ZL({datasetId:e??``,queryOptions:{enabled:!!e}});if(!e||i)return null;let a=r?.name||e;return(0,W.jsx)(t,{href:n.datasetLink(e),"aria-label":`Open dataset ${a}`,className:H(`flex max-w-64 min-w-0 rounded-[7px] hover:brightness-110`,dS),children:(0,W.jsx)(GT,{size:`md`,icon:(0,W.jsx)(ZS,{}),className:`max-w-full min-w-0`,children:(0,W.jsx)(`span`,{className:`min-w-0 truncate`,children:a})})})}var jXr=[{key:`cost`,label:`Cost`,usage:!0},{key:`duration`,label:`Duration`},{key:`average`,label:`Avg score`},{key:`tokens`,label:`Tokens`,usage:!0},{key:`errors`,label:`Errors`}];function MXr({datasetId:e,baselineId:t,contenderIds:n}){let{data:r}=iMt({datasetId:e,experimentIds:(0,U.useMemo)(()=>[t,...n],[t,n]),baselineId:t}),{supportsMetrics:i}=Z8(),{isHidden:a,toggle:o,reset:s}=$Yr(),c=(0,U.useMemo)(()=>[...new Set((r?.items??[]).flatMap(e=>Object.values(e.results).flatMap(e=>e?Object.keys(e.scores):[])))].sort(),[r]),l=jXr.filter(e=>i||!e.usage);return(0,W.jsxs)(CD,{children:[(0,W.jsx)(CD.Trigger,{render:(0,W.jsx)(Y,{variant:`ghost`,size:`md`,icon:(0,W.jsx)(_Ge,{"aria-hidden":!0}),children:`Metrics`})}),(0,W.jsxs)(CD.Content,{align:`end`,className:`min-w-56`,children:[(0,W.jsx)(CD.Label,{children:`Run metrics`}),l.map(e=>(0,W.jsx)(CD.CheckboxItem,{checked:!a(e.key),onCheckedChange:()=>o(e.key),children:e.label},e.key)),c.length>0&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(CD.Separator,{}),(0,W.jsx)(CD.Label,{children:`Scorers`}),c.map(e=>{let t=`scorer:${e}`;return(0,W.jsx)(CD.CheckboxItem,{checked:!a(t),onCheckedChange:()=>o(t),children:e},t)})]}),(0,W.jsx)(CD.Separator,{}),(0,W.jsx)(CD.Item,{onSelect:s,children:`Show all metrics`})]})]})}function NXr(){let{datasetId:e,baselineId:t,contenderIds:n}=L7();return(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e&&t&&n.length>0&&(0,W.jsx)(MXr,{datasetId:e,baselineId:t,contenderIds:n}),(0,W.jsx)(AXr,{})]})}var PXr=[_R(`/experiments`),{id:`experiments-compare`,Component:TXr,Switcher:EXr}];function FXr(){return(0,W.jsx)(Bw,{variant:`fit`,breadcrumbs:(0,W.jsx)(IL,{crumbs:PXr}),headerActions:(0,W.jsx)(NXr,{}),children:(0,W.jsx)(kXr,{})})}function IXr(e){let{data:t}=eR({experimentId:e.id,experimentStatus:e.status,queryOptions:{enabled:!!e.id}});return(0,U.useMemo)(()=>{if(e.scorerIds?.length)return e.scorerIds;if(!t)return[];let n=new Set;for(let e of Object.values(t))for(let t of e)n.add(t.scorerId);return[...n].sort()},[e.scorerIds,t])}var LXr=[`agent`,`workflow`,`scorer`];function RXr({experiment:e}){let[t,n]=(0,U.useState)(!1),r=Gv(),{paths:i}=Ft(),a=IXr(e),o=LXr.find(t=>t===e.targetType),s=e.status===`running`||e.status===`pending`;return!e.datasetId||!o||!e.targetId?null:(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Y,{variant:`primary`,size:`sm`,onClick:()=>n(!0),disabled:s,tooltip:s?`Available once this run finishes`:`Run this experiment again with the same configuration`,icon:(0,W.jsx)(AC,{}),children:`Rerun`}),t&&(0,W.jsx)(h7,{open:!0,onOpenChange:n,initialDatasetId:e.datasetId,initialDatasetVersion:e.datasetVersion??void 0,initialTargetType:o,initialTargetId:e.targetId,initialScorerIds:a,initialName:e.name??void 0,initialDescription:e.description??void 0,onSuccess:e=>void r(i.experimentLink(e))},a.join(`,`))]})}function zXr({experiment:e,onDeleteClick:t}){let[n,r]=(0,U.useState)(!1),i=!!e.datasetId;return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(RXr,{experiment:e}),(i||!!t)&&(0,W.jsxs)(CD,{children:[(0,W.jsx)(CD.Trigger,{asChild:!0,children:(0,W.jsx)(Y,{variant:`ghost`,size:`icon-sm`,"aria-label":`Experiment actions menu`,children:(0,W.jsx)($S,{})})}),(0,W.jsxs)(CD.Content,{align:`end`,className:`w-48`,children:[i&&(0,W.jsxs)(CD.Item,{onSelect:()=>r(!0),children:[(0,W.jsx)(kC,{}),` Rename experiment`]}),t&&(0,W.jsxs)(CD.Item,{onSelect:t,variant:`destructive`,children:[(0,W.jsx)(YC,{}),` Delete experiment`]})]})]}),n&&(0,W.jsx)(rXr,{experiment:e,open:!0,onOpenChange:r})]})}function BXr(e){let{data:t,isLoading:n}=o6({traceId:e,queryOptions:{enabled:!!e}}),r=t?.spans.find(e=>!e.parentSpanId)?.entityType===`agent`,{supportsMetrics:i,isLoading:a}=Z8(),o=r&&i,s=PCr({traceIds:e?[e]:[],enabled:o,autoRefetch:!1}),c=o&&(s.isLoading||s.isPlaceholderData);return{usage:e?s.data?.get(e):void 0,isLoading:!!e&&(n||a||c)}}var VXr=`__create_tag__`;function HXr({selectedResults:e,vocabulary:t,onAddTag:n,disabled:r,variant:i}){let[a,o]=(0,U.useState)(``),s=(0,U.useMemo)(()=>[...t].sort(),[t]),c=(0,U.useMemo)(()=>{if(e.length===0)return new Set;let[t,...n]=e;return new Set((t.tags??[]).filter(e=>n.every(t=>(t.tags??[]).includes(e))))},[e]),l=(0,U.useMemo)(()=>{let e=s.map(e=>({label:e,value:e,end:c.has(e)?(0,W.jsx)(LS,{"data-testid":`tag-applied`,className:`size-3.5`}):void 0})),t=a.trim();return t.length>0&&!s.includes(t)?[{label:`Create "${t}"`,value:VXr},...e]:e},[s,c,a]);return(0,W.jsx)(FL,{"data-testid":`experiment-results-tag-picker`,options:l,value:void 0,onValueChange:e=>{let t=e===VXr?a.trim():e;t&&!c.has(t)&&n(t)},onInputValueChange:o,placeholder:`Add tag`,searchPlaceholder:`Search or create tag...`,emptyText:`Type to create a tag`,variant:i,size:`sm`,className:`w-auto min-w-0`,disabled:r})}function UXr(e){try{return JSON.stringify(e??{})}catch{return String(e)}}function WXr({report:e}){let{served:t,unconsumed:n,liveCalls:r,failure:i}=e,a=[...t.map(e=>({outcome:`served`,toolName:e.toolName,args:e.args})),...r.map(e=>({outcome:`live`,toolName:e.toolName,args:e.args})),...n.map(e=>({outcome:`unconsumed`,toolName:e.toolName,args:e.args}))];return(0,W.jsxs)(`div`,{className:`grid gap-2`,"data-testid":`tool-mock-report`,children:[(0,W.jsx)(w$.SectionHeading,{icon:(0,W.jsx)(ew,{}),children:`Tool Mocks`}),i&&(0,W.jsx)(oN,{variant:`destructive`,title:`Mock mismatch`,children:(0,W.jsxs)(oN.Message,{children:[(0,W.jsx)(`span`,{className:`block`,children:`Tool "${i.toolName}" was called with arguments that did not match an available mock (${i.code}).`}),(0,W.jsxs)(Z,{as:`span`,variant:`caption`,className:`mt-1 block`,children:[`Called with: `,(0,W.jsx)(RZ,{children:UXr(i.args)})]}),n.length>0&&(0,W.jsxs)(Z,{as:`span`,variant:`caption`,className:`mt-1 block`,children:[`Unconsumed mocks: `,(0,W.jsx)(RZ,{children:n.map(e=>UXr(e.args)).join(`, `)})]})]})}),(0,W.jsx)(`div`,{className:`divide-y divide-border rounded border border-border`,children:a.map((e,t)=>(0,W.jsxs)(`div`,{className:`flex items-center justify-between gap-2 px-3 py-1.5`,children:[(0,W.jsxs)(Z,{as:`span`,variant:`body`,className:`min-w-0 truncate`,children:[(0,W.jsx)(Z,{as:`span`,variant:`body-sm`,tone:`muted`,font:`mono`,children:e.toolName}),(0,W.jsx)(Z,{as:`span`,variant:`caption`,tone:`muted`,font:`mono`,className:`ml-2`,children:UXr(e.args)})]}),(0,W.jsx)(Z,{as:`span`,variant:`caption`,className:`shrink-0 rounded px-2 py-0.5 ${GXr(e.outcome)}`,children:e.outcome})]},`${e.outcome}-${e.toolName}-${t}`))})]})}function GXr(e){switch(e){case`served`:return`bg-success-subtle text-success-subtle-foreground`;case`live`:return`bg-badge-orange-subtle text-badge-orange-foreground`;case`unconsumed`:return`bg-muted-foreground/10 text-muted-foreground`}}function KXr({result:e,itemId:t,fallback:n,title:r,onClose:i,variant:a=`drawer`,...o}){let s=r??(t?`Experiment item ${t}`:`Experiment result ${e?.id??``}`),c=e?(0,W.jsx)(qXr,{result:e,onClose:i,...o}):t?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(w$.Header,{children:[(0,W.jsxs)(w$.Heading,{children:[`Experiment item`,(0,W.jsx)(w$.CopyId,{id:t})]}),(0,W.jsx)(w$.HeaderActions,{children:(0,W.jsx)(w$.CloseButton,{icon:`x`,onClick:i})})]}),n]}):null;return a===`inline`?c?(0,W.jsx)(w$,{variant:`inline`,title:s,children:c}):null:(0,W.jsx)(w$,{open:!!(e??t),onClose:i,title:s,depth:1,children:c})}function qXr({result:e,scores:t,onPrevious:n,onNext:r,onClose:i,onShowTrace:a,onScoreClick:o,featuredScoreId:s,onFlagForReview:c,onTagsChange:l,tagVocabulary:u=[],isUpdatingTags:d=!1,experimentLink:f,onComplete:p,feedbackTabSlot:m}){let h=XXr(e.input),g=XXr(e.output),_=Uqr(e),v=c&&e.status!==`needs-review`&&e.status!==`complete`,y=Array.isArray(e.tags)?e.tags:[],b=(0,U.useMemo)(()=>[e],[e]),x=!!l||y.length>0,{Link:S}=Ft(),C=m&&e.traceId?e.traceId:void 0,{data:w}=l6({traceId:C,queryOptions:{enabled:!!C}}),{usage:T,isLoading:E}=BXr(e.traceId),D=E&&(e.targetType==null||e.targetType===`agent`),O=KYr({usage:T,showUsage:!!T||D,durationMs:P7(e),scores:[]}).map(e=>D&&(e.id===`cost`||e.id===`tokens`)?{...e,value:(0,W.jsx)(Vw,{"aria-hidden":!0,className:`h-4 w-14`})}:e),k=typeof e.error==`string`&&e.error?e.error:g7(e),A=[...O,{id:`item-id`,icon:(0,W.jsx)(cC,{}),label:`Item Id`,value:(0,W.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,W.jsx)(`span`,{className:`font-mono`,title:e.itemId,children:TK(e.itemId)}),(0,W.jsx)(qT,{content:e.itemId,tooltip:`Copy item ID to clipboard`,variant:`link`})]}),delta:null},...e.createdAt?[{id:`created`,icon:(0,W.jsx)(IS,{}),label:`Created`,value:$T(e.createdAt,`date-time`),delta:null}]:[],...e.status?[{id:`status`,icon:(0,W.jsx)(aGe,{}),label:`Status`,value:(0,W.jsx)(Kjr,{status:e.status}),delta:null}]:[],...x?[{id:`tags`,icon:(0,W.jsx)(GC,{}),label:`Tags`,value:(0,W.jsx)(YXr,{tags:y,selectedResults:b,onTagsChange:l,tagVocabulary:u,isUpdatingTags:d}),delta:null}]:[],...KYr({showUsage:!1,durationMs:null,scores:(t??[]).map(e=>({scorerId:e.scorerId,value:e.score,reason:e.reason,label:o?(0,W.jsx)(JXr,{scorerId:e.scorerId,featured:s===e.id,onClick:()=>o(e.id)}):void 0}))})],j=(0,W.jsx)(w$.Content,{children:(0,W.jsxs)(`div`,{className:p7,children:[(0,W.jsx)(d7,{metrics:A}),(0,W.jsx)(m7,{title:`Input`,framed:!0,actions:(0,W.jsx)(qT,{content:h}),children:(0,W.jsx)(f7,{value:e.input})}),e.groundTruth!=null&&(0,W.jsx)(m7,{title:`Ground Truth`,framed:!0,actions:(0,W.jsx)(qT,{content:XXr(e.groundTruth)}),children:(0,W.jsx)(f7,{value:e.groundTruth})}),k?(0,W.jsx)(m7,{title:`Error`,tone:`negative`,framed:!0,actions:(0,W.jsx)(qT,{content:k}),children:(0,W.jsx)(Z,{tone:`muted`,className:`p-3 break-words`,children:k})}):(0,W.jsx)(m7,{title:`Output`,framed:!0,actions:(0,W.jsx)(qT,{content:g}),children:(0,W.jsx)(f7,{value:_??e.output})}),e.toolMockReport&&(0,W.jsx)(WXr,{report:e.toolMockReport})]})});return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(w$.Header,{children:[v&&(0,W.jsx)(Y,{size:`sm`,variant:`primary`,onClick:()=>c(e.id),icon:(0,W.jsx)(pGe,{}),children:`Request review`}),p&&e.status===`needs-review`&&(0,W.jsx)(Y,{size:`sm`,variant:`primary`,onClick:p,icon:(0,W.jsx)(US,{}),children:`Mark as reviewed`}),(0,W.jsxs)(w$.HeaderActions,{children:[f&&(0,W.jsx)(Y,{size:`icon-sm`,variant:`ghost`,render:(0,W.jsx)(S,{href:f}),tooltip:`See experiment`,"aria-label":`See experiment`,children:(0,W.jsx)(lC,{})}),e.traceId&&a&&(0,W.jsx)(Y,{size:`icon-sm`,variant:`ghost`,onClick:a,tooltip:`See trace`,"aria-label":`See trace`,children:(0,W.jsx)(gR,{})}),(0,W.jsx)(w$.NextPrevNav,{onPrevious:n,onNext:r,previousLabel:`Go to previous result`,nextLabel:`Go to next result`}),(0,W.jsx)(w$.CloseButton,{icon:`x`,onClick:i})]})]}),C?(0,W.jsxs)(tN,{defaultTab:`details`,className:`grid h-full min-h-0 grid-rows-[auto_1fr]`,children:[(0,W.jsx)(w$.Header,{children:(0,W.jsxs)(eN,{variant:`pill-ghost`,size:`sm`,children:[(0,W.jsx)(nN,{value:`details`,children:`Details`}),(0,W.jsxs)(nN,{value:`feedback`,children:[`Feedback`,w?.pagination?.total!=null&&(0,W.jsxs)(W.Fragment,{children:[` (`,w.pagination.total,`)`]})]})]})}),(0,W.jsx)(rN,{value:`details`,flush:!0,children:j}),(0,W.jsx)(rN,{value:`feedback`,flush:!0,children:(0,W.jsx)(w$.Content,{children:m({traceId:C})})})]}):j]})}function JXr({scorerId:e,featured:t,onClick:n}){return(0,W.jsx)(`button`,{type:`button`,"aria-pressed":t,onClick:n,className:H(`min-w-0 cursor-pointer truncate hover:text-foreground hover:underline`,t&&`text-foreground`),children:e})}function YXr({tags:e,selectedResults:t,onTagsChange:n,tagVocabulary:r,isUpdatingTags:i}){return(0,W.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-1.5`,children:[e.map(t=>(0,W.jsxs)(G5,{value:t,className:n?`gap-1 pr-1`:void 0,children:[t,n&&(0,W.jsx)(`button`,{type:`button`,"aria-label":`Remove tag ${t}`,disabled:i,onClick:()=>n(e.filter(e=>e!==t)),className:`cursor-pointer rounded-sm hover:opacity-70 disabled:opacity-50`,children:(0,W.jsx)(tw,{className:`size-3`})})]},t)),n&&(0,W.jsx)(HXr,{selectedResults:t,vocabulary:r,onAddTag:t=>n([...e,t]),disabled:i,variant:`ghost`})]})}function XXr(e){return e==null?`-`:typeof e==`string`?e:JSON.stringify(e,null,2)}function ZXr(e){let t=e.scorer;return t?.hasJudge===!1||t?.hasJudge!==!0&&!e.preprocessPrompt&&!e.analyzePrompt&&!e.generateScorePrompt&&!e.generateReasonPrompt}function QXr({score:e,onNext:t,onPrevious:n,onClose:r,onShowTrace:i}){return(0,W.jsx)(w$,{open:!!e,onClose:r,title:e?`Score ${e.scorerId}`:`Score`,depth:2,children:e&&(0,W.jsx)($Xr,{score:e,onNext:t,onPrevious:n,onClose:r,onShowTrace:i})})}function $Xr({score:e,onNext:t,onPrevious:n,onClose:r,onShowTrace:i}){let a=ZXr(e),o=a?`N/A — code-based scorer`:`N/A — step not configured`;return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(w$.Header,{children:[(0,W.jsx)(w$.CloseButton,{onClick:r,tooltip:`Close score panel`}),(0,W.jsxs)(w$.Heading,{children:[`Score`,(0,W.jsx)(w$.CopyId,{id:e.scorerId})]}),(0,W.jsxs)(w$.HeaderActions,{children:[i&&e.traceId&&(0,W.jsx)(Y,{size:`icon-sm`,variant:`ghost`,onClick:i,tooltip:`See trace`,"aria-label":`See trace`,children:(0,W.jsx)(gR,{})}),(n||t)&&(0,W.jsx)(w$.NextPrevNav,{onPrevious:n,onNext:t,previousLabel:`Go to previous score`,nextLabel:`Go to next score`})]})]}),(0,W.jsx)(w$.Content,{children:(0,W.jsxs)(`div`,{className:`grid gap-3`,children:[(0,W.jsx)(w$.CodeSection,{title:`Score: ${e.score}`,icon:(0,W.jsx)(fC,{}),codeStr:e.reason||o,simplified:!0}),!a&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(w$.CodeSection,{title:`Preprocess Prompt`,icon:(0,W.jsx)(PC,{}),codeStr:e.preprocessPrompt||o,simplified:!0}),(0,W.jsx)(w$.CodeSection,{title:`Analyze Prompt`,icon:(0,W.jsx)(PC,{}),codeStr:e.analyzePrompt||o,simplified:!0}),(0,W.jsx)(w$.CodeSection,{title:`Generate Score Prompt`,icon:(0,W.jsx)(PC,{}),codeStr:e.generateScorePrompt||o,simplified:!0}),(0,W.jsx)(w$.CodeSection,{title:`Generate Reason Prompt`,icon:(0,W.jsx)(PC,{}),codeStr:e.generateReasonPrompt||o,simplified:!0})]})]})})]})}function eZr(e,t){let[n,r]=(0,U.useState)(null),[i,a]=(0,U.useState)(void 0),[o,s]=(0,U.useState)(null),[c,l]=(0,U.useState)(t);return t!==c&&(l(t),r(null),a(void 0),s(null)),{featuredTraceId:n,setFeaturedTraceId:r,featuredSpanId:i,setFeaturedSpanId:a,featuredScoreId:o,setFeaturedScoreId:s,featuredScore:e?.find(e=>e.id===o)??null}}function tZr({result:e,scores:t,state:n,withQueryTrace:r,withFeedback:i,...a}){let o=eZr(t,e?.id),{navigate:s}=Ft(),{featuredTraceId:c,setFeaturedTraceId:l,featuredSpanId:u,setFeaturedSpanId:d,featuredScoreId:f,setFeaturedScoreId:p,featuredScore:m}=n??o,h=e=>{p(t=>e===t?null:e),l(null),d(void 0)},g=e=>{e&&(l(e),d(void 0),p(null))},_=()=>{if(!f||!t)return;let e=t.findIndex(e=>e.id===f);if(e>=0&&e<t.length-1)return()=>p(t[e+1].id)},v=()=>{if(!f||!t)return;let e=t.findIndex(e=>e.id===f);if(e>0)return()=>p(t[e-1].id)},{data:y,isLoading:b}=kqr({traceId:c,queryOptions:{enabled:!!c}}),x=y?.spans,S=x?.find(e=>!e.parentSpanId),{data:C}=l6({traceId:c??void 0,queryOptions:{enabled:i&&!!c}}),{data:w}=c6({traceId:c??void 0,spanId:u,queryOptions:{enabled:i&&!!c&&!!u}}),{data:T}=lR({traceId:c??void 0,spanId:S?.spanId,page:0,queryOptions:{enabled:!!c&&!!S?.spanId}});return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(KXr,{...a,result:e,scores:t,onScoreClick:h,featuredScoreId:f,onShowTrace:e?.traceId?()=>g(e.traceId):void 0,feedbackTabSlot:i?({traceId:e})=>(0,W.jsx)(C8,{traceId:e},e):void 0}),(0,W.jsx)(QXr,{score:m??void 0,onNext:_(),onPrevious:v(),onClose:()=>p(null),onShowTrace:m?()=>g(m.traceId):void 0}),(0,W.jsx)(sXr,{size:`wide`,depth:2,traceId:c??void 0,spans:x,isLoadingSpans:b,selectedSpanId:u??null,onClose:()=>{l(null),d(void 0)},onSpanSelect:d,showUnavailableFeaturesMsg:!1,traceHref:c?`/traces?traceId=${encodeURIComponent(c)}`:void 0,anchorSpanId:S?.spanId,withQueryTrace:r,withFeedback:i,onOpenScore:(e,t)=>s(zY(e,t)),feedbackTabBadge:i?C?.pagination?.total??void 0:void 0,feedbackTabSlot:i?({traceId:e})=>(0,W.jsx)(C8,{traceId:e}):void 0,scoresTabBadge:T?.pagination?.total??void 0,scoresTabSlot:({traceId:e,rootSpanId:n})=>n?(0,W.jsx)(ofr,{traceId:e,spanId:n,onScoreSelect:e=>{t?.some(t=>t.id===e)&&(l(null),d(void 0),p(e))}}):null,spanFeedbackTabBadge:i?w?.pagination?.total??void 0:void 0,spanFeedbackTabSlot:i?({traceId:e,spanId:t})=>e&&t?(0,W.jsx)(wMr,{traceId:e,spanId:t},`${e}:${t}`):null:void 0})]})}function nZr({withQueryTrace:e,withFeedback:t,variant:n}){let{currentItemId:r,experimentId:i,datasetId:a,experimentStatus:o,results:s,isLoadingResults:c,hasNextPage:l,close:u,goToPreviousItem:d,goToNextItem:f}=Vqr(),p=(0,U.useMemo)(()=>r?s.find(e=>e.itemId===r):void 0,[s,r]),{data:m}=eR({experimentId:i,experimentStatus:o,queryOptions:{enabled:!!i}}),{updateExperimentResult:h}=YL(),g=(0,U.useCallback)(async e=>{try{await h.mutateAsync({datasetId:a,experimentId:i,resultId:e,status:`needs-review`}),fw(`Result flagged for review`)}catch{fw.error(`Failed to flag result for review`)}},[a,i,h]),_=(0,U.useCallback)(async e=>{try{await h.mutateAsync({datasetId:a,experimentId:i,resultId:e,status:`complete`}),fw(`Result marked as reviewed`)}catch{fw.error(`Failed to complete result`)}},[a,i,h]),v=p?m?.[p.itemId]:void 0,y=eZr(v,p?.id);return(0,W.jsx)(tZr,{variant:n,result:p,itemId:r,fallback:c||l?(0,W.jsx)(w$.LoadingData,{}):(0,W.jsxs)(w$.NoData,{children:[`No loaded result for item "`,r,`".`]}),scores:v,state:y,withQueryTrace:e,withFeedback:t,onPrevious:d,onNext:f,onClose:u,onComplete:p?()=>_(p.id):void 0,onFlagForReview:p?()=>void g(p.id):void 0})}function rZr(e){let{currentItemId:t,close:n}=Vqr(),r=LE();return MJr(t,n),r?(0,W.jsx)(nZr,{...e}):t?(0,W.jsx)(E7,{owner:`experiment-item`,children:(0,W.jsx)(nZr,{...e,variant:`inline`})}):null}function iZr({children:e,className:t}){return(0,W.jsx)(`div`,{className:`@container`,children:(0,W.jsx)(`div`,{className:H(`grid gap-4 *:min-w-0! @xl:grid-cols-2 @3xl:has-[>:nth-child(5)]:grid-cols-3 @4xl:grid-cols-[repeat(auto-fit,minmax(12rem,1fr))] @6xl:has-[>:nth-child(5)]:grid-cols-[repeat(auto-fit,minmax(12rem,1fr))]!`,t),children:e})})}function aZr({children:e,reveal:t=`always`,className:n}){return(0,W.jsx)(`div`,{className:H(`flex shrink-0 items-center gap-1 self-center`,t===`hover`&&`opacity-0 transition-opacity duration-150 group-hover/metrics-card:opacity-100 focus-within:opacity-100`,n),children:e})}function oZr({children:e,className:t}){return(0,W.jsx)(`div`,{className:H(`overflow-x-auto overflow-y-hidden [&_tbody>tr:last-child]:border-b-0`,t),children:e})}function sZr({children:e,className:t}){return(0,W.jsx)(Z,{tone:`faint`,className:H(`mt-0.5`,t),children:e})}function cZr({message:e=`Failed to load data`,className:t}){return(0,W.jsx)(`div`,{className:H(`flex flex-col items-center justify-center gap-3`,t),children:(0,W.jsx)(Z,{variant:`caption`,className:`text-destructive-foreground`,children:e})})}function lZr({className:e}){return(0,W.jsx)(`div`,{className:H(`flex items-center justify-center`,e),children:(0,W.jsx)(dt,{size:`md`,variant:`pulse`,className:`text-placeholder`})})}function uZr({message:e=`No data yet`,className:t}){return(0,W.jsx)(`div`,{className:H(`flex h-full items-center justify-center`,t),children:(0,W.jsx)(Z,{tone:`faint`,children:e})})}function dZr({children:e,className:t}){return(0,W.jsx)(jR,{className:H(`group/metrics-card grid min-h-72 min-w-80 flex-1 grid-rows-[auto_1fr] gap-4 px-4 py-3 2xl:min-w-120 md:min-w-88 lg:min-w-sm xl:min-w-104`,t),children:e})}function fZr({value:e,label:t,isLoading:n=!1,className:r}){return n?(0,W.jsxs)(`div`,{className:H(`order-last flex shrink-0 flex-col items-end`,r),children:[(0,W.jsx)(Hw,{line:`text-body`,className:`h-4 w-14`}),t&&(0,W.jsx)(Hw,{line:`text-body mt-0.5`,className:`w-10`})]}):(0,W.jsxs)(`div`,{className:H(`order-last text-right`,r),children:[(0,W.jsx)(Z,{tone:`muted`,className:`tabular-nums`,children:e}),t&&(0,W.jsx)(Z,{tone:`faint`,className:`mt-0.5`,children:t})]})}function pZr({value:e,onValueChange:t,children:n}){return(0,W.jsx)(tN,{value:e,onValueChange:t,defaultTab:e,children:(0,W.jsx)(eN,{variant:`pill-ghost`,size:`sm`,children:n})})}function mZr({className:e,...t}){return(0,W.jsx)(nN,{...t,className:H(`h-6 px-2.5 text-column`,e)})}function hZr({children:e,className:t,as:n=`h2`,weight:r=`regular`}){return(0,W.jsx)(n,{className:H(`text-body text-foreground`,r===`medium`&&`font-medium`,t),children:e})}function gZr(e){if(`children`in e)return(0,W.jsx)(`div`,{className:e.className,children:e.children});let{title:t,description:n,titleAs:r}=e;return(0,W.jsxs)(`div`,{className:e.className,children:[(0,W.jsx)(hZr,{as:r,children:t}),n&&(0,W.jsx)(sZr,{children:n})]})}function _Zr({title:e,value:t,onValueChange:n,options:r,className:i}){return(0,W.jsxs)(CD,{children:[(0,W.jsxs)(CD.Trigger,{render:(0,W.jsx)(`button`,{type:`button`,className:H(`-mx-1.5 -my-0.5 flex items-center gap-1 self-start rounded-md px-1.5 py-0.5 text-left text-body font-medium text-foreground hover:bg-fill-subtle`,i)}),children:[e,(0,W.jsx)(RS,{className:`size-3.5 text-muted-foreground`})]}),(0,W.jsx)(CD.Content,{align:`start`,children:(0,W.jsx)(CD.RadioOptions,{options:r,value:t,onValueChange:n})})]})}function vZr({children:e,className:t}){return(0,W.jsx)(`div`,{className:H(`flex min-h-6 min-w-0 flex-wrap items-center justify-between gap-x-4 gap-y-2 [&>*:first-child]:min-w-0 [&>*:last-child:not(:first-child)]:ml-auto`,t),children:e})}function yZr({children:e,className:t}){return(0,W.jsx)(`div`,{className:H(`flex items-start gap-4 [&>:first-child]:min-w-0 [&>:first-child]:flex-1`,t),children:e})}function bZr({value:e,isLoading:t=!1,className:n}){return(0,W.jsx)(`span`,{className:H(`order-last shrink-0 text-body font-medium text-foreground tabular-nums`,n),children:t?(0,W.jsx)(Hw,{line:`text-body`,className:`h-4 w-14`}):e})}var R7=Object.assign(dZr,{Root:dZr,Kpi:y4,TopBar:yZr,Toolbar:vZr,Tabs:pZr,Tab:mZr,Actions:aZr,TitleAndDescription:gZr,Title:hZr,TitleMenu:_Zr,Description:sZr,Summary:fZr,Total:bZr,Loading:lZr,Error:cZr,Content:oZr,NoData:uZr});function z7({isEmpty:e=!1,emptyMessage:t=`No data in this range.`,children:n}){return(0,W.jsxs)(`div`,{className:`relative flex min-h-0 flex-1 flex-col`,children:[n,e&&(0,W.jsx)(R7.NoData,{message:t,className:`absolute inset-0`})]})}function B7({variant:e=`default`,title:t,titleMenu:n,total:r,isLoading:i=!1,description:a,summary:o,actions:s,toolbar:c,isUpdating:l=!1,className:u,children:d}){let f=H(`transition-opacity duration-200`,l&&`opacity-50`),p=e===`compact`;return(0,W.jsxs)(R7,{className:H(`min-h-0! min-w-0!`,p&&`h-84`,u),children:[(0,W.jsxs)(R7.TopBar,{children:[(0,W.jsx)(xZr,{title:t,description:a,titleMenu:n,compact:p}),s&&(0,W.jsx)(R7.Actions,{reveal:`hover`,children:s}),p&&r!==void 0&&(0,W.jsx)(R7.Total,{value:r,isLoading:i,className:f}),!p&&o&&(0,W.jsx)(`div`,{className:H(`order-last flex w-24 shrink-0 justify-end`,f),children:o})]}),(0,W.jsxs)(R7.Content,{className:H(`flex flex-col gap-4 overflow-visible`,p&&`min-h-0`),children:[c,(0,W.jsx)(`div`,{className:H(`relative flex min-h-0 min-w-0 flex-col`,p?`flex-1`:`h-60`,f),children:d})]})]})}function xZr({title:e,description:t,titleMenu:n,compact:r}){return n?(0,W.jsxs)(`div`,{className:`flex flex-col`,children:[(0,W.jsx)(R7.TitleMenu,{title:e,...n}),!r&&t&&(0,W.jsx)(R7.Description,{children:t})]}):r?(0,W.jsx)(R7.Title,{as:`h3`,weight:`medium`,children:e}):(0,W.jsx)(R7.TitleAndDescription,{title:e,description:t})}function V7(){return(0,W.jsx)(R7.Error,{message:`Couldn't load this data. Try again in a moment.`,className:`h-full`})}var SZr=(e,t)=>t.getTime()-e.getTime()>9e7,H7=e=>e.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`}),CZr=e=>e.toLocaleTimeString(`en-US`,{hour:`numeric`});function wZr(e,t,n){let r=new Date(e);if(t>=24)return{ts:e,label:H7(r),edgeLabel:H7(r),time:r.toLocaleDateString(`en-US`,{weekday:`short`,month:`short`,day:`numeric`})};let i=r.toLocaleString(`en-US`,{month:`short`,day:`numeric`,hour:`numeric`}),a=`${H7(r)}, ${CZr(r)}`;return n?{ts:e,label:r.getHours()===0?H7(r):a,edgeLabel:a,time:i}:{ts:e,label:CZr(r),edgeLabel:a,time:i}}function U7(e,t){let n=t.getTime()-e.getTime();return n<=9e7?{interval:`1h`,stepHours:1}:n<=2628e5?{interval:`1h`,stepHours:3}:n<=6084e5?{interval:`1h`,stepHours:6}:n<=12132e5?{interval:`1h`,stepHours:12}:{interval:`1d`,stepHours:24}}var TZr=e=>e===`1h`?1:24;function EZr(e,t){let n=new Date(e);if(t>=24)return new Date(n.getFullYear(),n.getMonth(),n.getDate()).getTime();let r=Math.floor(n.getHours()/t)*t;return new Date(n.getFullYear(),n.getMonth(),n.getDate(),r).getTime()}function DZr(e,t){let n=new Date(e);return t>=24?new Date(n.getFullYear(),n.getMonth(),n.getDate()+1).getTime():EZr(new Date(n.getFullYear(),n.getMonth(),n.getDate(),n.getHours()+t).getTime(),t)}function OZr(e,t,n){let r=SZr(e,t),i=[];for(let a=EZr(e.getTime(),n);a<=t.getTime();a=DZr(a,n))i.push(wZr(a,n,r));return i}function kZr(e,t){let n=new Map(e.map((e,t)=>[e.ts,t]));return e=>n.get(EZr(new Date(e.timestamp).getTime(),t))}function W7(e,t){return{from:new Date(e),to:new Date(DZr(e,t))}}var AZr=[{label:`Agent`,entityType:`agent`},{label:`Workflow`,entityType:`workflow_run`},{label:`Scorer`,entityType:`scorer`},{label:`Ingest`,entityType:`rag_ingestion`},{label:`Classifier`,entityType:`classifier`}],G7=`rootEntityType`,K7={tags:`filterTags`,entityName:`filterEntityName`,runId:`filterRunId`,threadId:`filterThreadId`,sessionId:`filterSessionId`,requestId:`filterRequestId`,resourceId:`filterResourceId`,userId:`filterUserId`,organizationId:`filterOrganizationId`,serviceName:`filterServiceName`,environment:`filterEnvironment`,experimentId:`filterExperimentId`,provider:`filterProvider`,model:`filterModel`},q7=Object.keys(K7),jZr=`mastra:metrics:saved-filters`;function MZr(e){let t=KZr(e);try{localStorage.setItem(jZr,t.toString())}catch{}}function NZr(){try{let e=localStorage.getItem(jZr);if(!e)return null;let t=new URLSearchParams(e);return t.toString()?t:null}catch{return null}}function PZr(e){if(e.has(`rootEntityType`))return!0;for(let t of q7)if(e.has(K7[t]))return!0;return!1}var FZr=`hasAll`,IZr=[{id:`is`,label:`is`},{id:FZr,label:`has all of`,arity:`many`}],LZr={rootEntityType:`Primitive type`,entityName:`Primitive name`,tags:`Tags`,serviceName:`Service Name`,environment:`Environment`,threadId:`Thread ID`,resourceId:`Resource ID`,userId:`User ID`,organizationId:`Organization ID`,runId:`Run ID`,sessionId:`Session ID`,requestId:`Request ID`,experimentId:`Experiment ID`,provider:`Provider`,model:`Model`},RZr={provider:qS,model:XS},zZr=[`threadId`,`resourceId`,`userId`,`organizationId`,`runId`,`sessionId`,`requestId`,`experimentId`],BZr=e=>({id:e,label:LZr[e],icon:RZr[e]??w6(e),color:T6(e)}),VZr=(e,t)=>e.label.localeCompare(t.label);function HZr({availableTags:e,availableEntityNames:t,availableServiceNames:n,availableEnvironments:r}){let i=(e,t)=>({...BZr(e),operators:[`is`],strict:!0,suggestions:t}),a=e=>({...BZr(e),operators:[`is`]}),o=e=>e.map(e=>({value:e})),s=[i(`rootEntityType`,AZr.map(e=>({value:e.entityType,label:e.label}))),i(`entityName`,o(t)),{...i(`tags`,o(e)),operators:[FZr]},i(`serviceName`,o(n)),i(`environment`,o(r))],c=zZr.map(a),l=[`provider`,`model`].map(e=>({...a(e),hidden:!0}));return[...s.toSorted(VZr),...c.toSorted(VZr),...l]}function UZr(e){return e.map(e=>{if(e.fieldId===`tags`){let t=[e.value].flat().filter(e=>e!==``);return{id:e.fieldId,fieldId:e.fieldId,operatorId:FZr,value:t}}let t=Array.isArray(e.value)?e.value[0]??``:e.value;return{id:e.fieldId,fieldId:e.fieldId,operatorId:`is`,value:YZr(t)?``:t}})}function WZr(e){return e.map(e=>({fieldId:e.fieldId,value:Array.isArray(e.value)?e.value.map(String):String(e.value)}))}function GZr(e){let t=[],n=new Map([[G7,`rootEntityType`]]);for(let e of q7)n.set(K7[e],e);let r=new Set;for(let[i]of e.entries()){let a=n.get(i);if(!a||r.has(a))continue;if(r.add(a),a===`tags`){let n=e.getAll(i);if(n.length===0)continue;t.push({fieldId:a,value:n.filter(Boolean)});continue}if(a===`rootEntityType`||a===`entityName`||a===`serviceName`||a===`environment`||a===`provider`||a===`model`){let n=e.getAll(i);if(n.length>1){t.push({fieldId:a,value:n});continue}}let o=e.get(i);o!==null&&t.push({fieldId:a,value:o})}return t}function KZr(e){let t=new URLSearchParams,n=e.getAll(G7);for(let e of n)t.append(G7,e);for(let n of q7){let r=K7[n],i=e.getAll(r);for(let e of i)t.append(r,e)}return t}function qZr(e,t){e.delete(G7);for(let t of q7)e.delete(K7[t]);for(let n of t){let t=n.fieldId===`rootEntityType`?G7:K7[n.fieldId];if(t){if(Array.isArray(n.value)){let r=n.value.filter(e=>typeof e==`string`&&e!==``);if(r.length===0){n.fieldId===`tags`&&e.append(t,``);continue}for(let n of r)e.append(t,n)}else typeof n.value==`string`&&e.set(t,n.value.trim())}}}var JZr=`Any`;function YZr(e){let t=e.trim();return t===``||t===JZr}var XZr=new Set(AZr.map(e=>e.entityType));function ZZr(e){let t=e.trim();return XZr.has(t)?t:void 0}function QZr(e){let t={};for(let n of e){let e=n.fieldId;if(Array.isArray(n.value)){let r=n.value.filter(e=>typeof e==`string`).map(e=>e.trim()).filter(e=>!YZr(e));if(r.length===0)continue;if(e===`tags`)t.tags=r;else if(e===`rootEntityType`){let e=r[0],n=e===void 0?void 0:ZZr(e);n&&(t.rootEntityType=n)}else t[e]=r[0]}else if(typeof n.value==`string`){if(YZr(n.value))continue;let r=n.value.trim();if(e===`rootEntityType`){let e=ZZr(r);e&&(t.rootEntityType=e)}else t[e]=r}}return t}var $Zr=[{label:`Last 24 hours`,value:`24h`},{label:`Last 3 days`,value:`3d`},{label:`Last 7 days`,value:`7d`},{label:`Last 14 days`,value:`14d`},{label:`Last 30 days`,value:`30d`}],eQr=new Set($Zr.map(e=>e.value));function tQr(e){return typeof e==`string`&&(eQr.has(e)||e===`custom`)}var nQr=(0,U.createContext)({datePreset:`24h`,setDatePreset:()=>{},customRange:void 0,setCustomRange:()=>{},dateRangeLabel:`Last 24 hours`,comparisonLabel:`vs previous 24h`,filterTokens:[],setFilterTokens:()=>{},dimensionalFilter:{},dimensionalFilterKey:`{}`});function J7(){return(0,U.useContext)(nQr)}function rQr(e,t){return e===`custom`?t?.from?t.to?`${QT(t.from)} – ${QT(t.to)}`:QT(t.from)??``:`Custom range`:$Zr.find(t=>t.value===e)?.label??e}var iQr=36e5;function aQr(e,t){if(e!==`custom`)return`vs previous ${e}`;let n=t?.to?.getTime()??Date.now(),r=t?.from?.getTime()??n-24*iQr,i=Math.round((n-r)/iQr);return`vs previous ${i>24&&i%24==0?`${i/24}d`:`${i}h`}`}function oQr({children:e,preset:t,filterTokens:n,onPresetChange:r,onFilterTokensChange:i,customRange:a,onCustomRangeChange:o}){let s=(0,U.useMemo)(()=>JSON.stringify(n),[n]),c=(0,U.useMemo)(()=>n,[s]),l=(0,U.useMemo)(()=>QZr(c),[c]),u=(0,U.useMemo)(()=>JSON.stringify(l),[l]),d=rQr(t,a),f=aQr(t,a),p=(0,U.useMemo)(()=>({datePreset:t,setDatePreset:r,customRange:a,setCustomRange:o??(()=>{}),dateRangeLabel:d,comparisonLabel:f,filterTokens:c,setFilterTokens:i,dimensionalFilter:l,dimensionalFilterKey:u}),[t,r,a,o,d,f,c,i,l,u]);return(0,W.jsx)(nQr.Provider,{value:p,children:e})}var sQr=864e5,cQr={"24h":sQr,"3d":2592e5,"7d":6048e5,"14d":12096e5,"30d":2592e6};function lQr(e,t,n){if(e!==`custom`){let t=cQr[e]??sQr;return{start:new Date(n-t),end:new Date(n)}}return{start:t?.from??new Date(n-sQr),end:t?.to??new Date(n)}}function uQr({datePreset:e,customRange:t,dimensionalFilter:n,dimensionalFilterKey:r}){let i=(0,U.useRef)(null),a=e===`custom`?`custom:${t?.from?.getTime()??``}:${t?.to?.getTime()??``}`:`preset:${e}`;(!i.current||i.current.key!==a)&&(i.current={key:a,anchor:Date.now()});let o=i.current.anchor,s=(0,U.useMemo)(()=>lQr(e,t,o),[e,t,o]);return{datePreset:e,customRange:t,timestamp:s,filters:(0,U.useMemo)(()=>({timestamp:s,...n}),[s,r]),dimensionalFilter:n,filterKey:(0,U.useMemo)(()=>`${a}|${r}`,[a,r])}}function dQr(e){let t=J(),{filters:n,filterKey:r,queryOptions:i}=e;return W_({queryKey:[`metrics`,`active-threads-kpi`,r],queryFn:()=>t.getMetricAggregate({name:[`mastra_agent_duration_ms`],aggregation:`count_distinct`,distinctColumn:`threadId`,filters:n,comparePeriod:`previous_period`}),...i})}function fQr(e){let t=J(),{filters:n,filterKey:r,queryOptions:i}=e;return W_({queryKey:[`metrics`,`agent-runs-kpi`,r],queryFn:()=>t.getMetricAggregate({name:[`mastra_agent_duration_ms`],aggregation:`count`,filters:n,comparePeriod:`previous_period`}),...i})}function pQr(e){let t=J(),{filters:n,filterKey:r,queryOptions:i}=e;return W_({queryKey:[`metrics`,`model-cost-kpi`,r],queryFn:async()=>{let e=await t.getMetricAggregate({name:[`mastra_model_total_input_tokens`,`mastra_model_total_output_tokens`],aggregation:`sum`,filters:n,comparePeriod:`previous_period`});return{cost:e.estimatedCost??null,costUnit:e.costUnit??null,previousCost:e.previousEstimatedCost??null,costChangePercent:e.costChangePercent??null}},...i})}new Intl.NumberFormat(`en-US`,{notation:`compact`,maximumSignificantDigits:3}),new Intl.NumberFormat(`en-US`),new Set(Intl.supportedValuesOf(`currency`));function mQr(e){let t=J(),{filters:n,filterKey:r,queryOptions:i}=e;return W_({queryKey:[`metrics`,`token-usage-by-agent`,r],queryFn:async()=>{let e={groupBy:[`entityName`],aggregation:`sum`,orderDirection:`DESC`,filters:n},[r,i]=await Promise.all([t.getMetricBreakdown({...e,name:[`mastra_model_total_input_tokens`]}),t.getMetricBreakdown({...e,name:[`mastra_model_total_output_tokens`]})]),a=new Map,o=e=>Q3(a,e,()=>({input:0,output:0,cost:null,costUnit:null})),s=(e,t)=>{t.estimatedCost!=null&&(e.cost=(e.cost??0)+t.estimatedCost,t.costUnit&&(e.costUnit=t.costUnit))};for(let e of r.groups){let t=o(e.dimensions.entityName??`unknown`);t.input=e.value,s(t,e)}for(let e of i.groups){let t=o(e.dimensions.entityName??`unknown`);t.output=e.value,s(t,e)}return Array.from(a.entries()).map(([e,t])=>({name:e,input:t.input,output:t.output,total:t.input+t.output,cost:t.cost,costUnit:t.costUnit})).sort((e,t)=>t.total-e.total)},...i})}function hQr(e){let t=J(),{filters:n,filterKey:r,queryOptions:i}=e;return W_({queryKey:[`metrics`,`total-tokens-kpi`,r],queryFn:async()=>{let[e,r]=await Promise.all([t.getMetricAggregate({name:[`mastra_model_total_input_tokens`],aggregation:`sum`,filters:n,comparePeriod:`previous_period`}),t.getMetricAggregate({name:[`mastra_model_total_output_tokens`],aggregation:`sum`,filters:n,comparePeriod:`previous_period`})]),i=e.value!=null||r.value!=null,a=e.previousValue!=null||r.previousValue!=null,o=(e.value??0)+(r.value??0),s=(e.previousValue??0)+(r.previousValue??0),c=a&&s>0?(o-s)/s*100:null;return{value:i?o:null,previousValue:a?s:null,changePercent:c}},...i})}async function gQr(e,t,n){let r=await e.getMetricBreakdown({name:[t],groupBy:[`entityName`,`status`],aggregation:`count`,orderDirection:`DESC`,filters:n}),i=new Map;for(let e of r.groups){let t=e.dimensions.entityName??`unknown`,n=e.dimensions.status??`ok`,r=Q3(i,t,()=>({completed:0,errors:0}));n===`error`?r.errors+=e.value:r.completed+=e.value}return Array.from(i.entries()).map(([e,t])=>({name:e,...t})).sort((e,t)=>t.completed+t.errors-(e.completed+e.errors))}function _Qr(e){let t=J(),{filters:n,filterKey:r,queryOptions:i}=e;return W_({queryKey:[`metrics`,`trace-volume`,r],queryFn:async()=>{let[e,r,i]=await Promise.all([gQr(t,`mastra_agent_duration_ms`,n),gQr(t,`mastra_workflow_duration_ms`,n),gQr(t,`mastra_tool_duration_ms`,n)]);return{agentData:e,workflowData:r,toolData:i}},...i})}function Y7(){let{datePreset:e,customRange:t,dimensionalFilter:n,dimensionalFilterKey:r}=J7();return uQr({datePreset:e,customRange:t,dimensionalFilter:n,dimensionalFilterKey:r})}var vQr={input:`mastra_model_total_input_tokens`,output:`mastra_model_total_output_tokens`,cacheRead:`mastra_model_input_cache_read_tokens`},yQr=`mastra_agent_duration_ms`;function bQr(){let e=J(),{filters:t,filterKey:n,timestamp:r}=Y7(),{interval:i,stepHours:a}=U7(r.start,r.end);return W_({queryKey:[`metrics`,`activity`,n,i],placeholderData:E_,queryFn:async()=>{let n=n=>e.getMetricTimeSeries({name:[n],interval:i,aggregation:`sum`,filters:t}),[o,s,c,l]=await Promise.all([n(vQr.input),n(vQr.output),n(vQr.cacheRead),e.getMetricTimeSeries({name:[yQr],interval:i,aggregation:`count`,groupBy:[`status`],filters:t})]),u=OZr(r.start,r.end,a).map(e=>({...e,input:0,cacheRead:0,output:0,cost:0,completed:0,failed:0,failureRate:0})),d=kZr(u,a),f=e=>{let t=d(e);return t===void 0?void 0:u[t]},p=(e,t)=>{for(let n of e){let e=f(n);e&&(e[t]+=n.value,t!==`cacheRead`&&(e.cost+=n.estimatedCost??0))}};for(let e of o.series)p(e.points,`input`);for(let e of s.series)p(e.points,`output`);for(let e of c.series)p(e.points,`cacheRead`);for(let e of l.series){let t=/error|fail/i.test(e.name)?`failed`:`completed`;for(let n of e.points){let e=f(n);e&&(e[t]+=n.value)}}for(let e of u){e.input=Math.max(e.input-e.cacheRead,0);let t=e.completed+e.failed;e.failureRate=t>0?e.failed/t:0}return u}})}var xQr={xKey:`label`,timestampKey:`ts`,tooltipLabelKey:`time`},SQr={...xQr,xKey:`edgeLabel`},X7={green:`var(--chart-share-1)`,sky:`var(--chart-share-2)`,violet:`var(--chart-share-3)`,teal:`var(--chart-share-4)`,indigo:`var(--chart-share-5)`,warning:`var(--chart-amber)`,error:`var(--chart-red)`,neutral:`var(--muted-foreground)`};function Z7(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e4?`${(e/1e3).toFixed(1)}K`:e>=1e3?`${(e/1e3).toFixed(2)}K`:String(Math.round(e))}function CQr(e){return e>=1e4?`${(e/1e3).toFixed(1)}s`:e>=1e3?`${(e/1e3).toFixed(2)}s`:`${Math.round(e)}ms`}function wQr(e){let t=e*100;return t===0?`0%`:t<.1?`<0.1%`:`${t<10?t.toFixed(2):t.toFixed(1)}%`}function Q7(e){return e>0&&e<.01?`<$0.01`:`$${e.toFixed(2)}`}function TQr(e){return e>=1e6?`${+(e/1e6).toFixed(1)}M`:e>=1e3?`${+(e/1e3).toFixed(1)}K`:String(Math.round(e))}function EQr(e){return`$${e>=1e3?TQr(e):+e.toPrecision(12)}`}function DQr(e){return e>=1e3?`${+(e/1e3).toFixed(1)}s`:`${Math.round(e)}ms`}var $7={top:8,right:0,bottom:0,left:0};function OQr(e,t){let n=t,r=()=>(n=(n*9301+49297)%233280,n/233280),i=.45;return Array.from({length:e},()=>(i=Math.min(.85,Math.max(.25,i+(r()-.5)*.3)),i))}function kQr({kind:e,height:t=210,className:n}){let r=`ghost${(0,U.useId)().replace(/:/g,``)}`,i=vYe(),a=OQr(e===`bar`?24:16,e===`bar`?7:11),{ghost:o,mask:s,peak:c}=e===`bar`?AQr(a):jQr(a),l=(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`defs`,{children:[(0,W.jsxs)(`linearGradient`,{id:`${r}-band`,x1:`0`,y1:`0`,x2:`1`,y2:`0`,children:[(0,W.jsx)(`stop`,{offset:`0`,stopColor:`var(--foreground)`,stopOpacity:0}),(0,W.jsx)(`stop`,{offset:`0.5`,stopColor:`var(--foreground)`,stopOpacity:c}),(0,W.jsx)(`stop`,{offset:`1`,stopColor:`var(--foreground)`,stopOpacity:0})]}),(0,W.jsx)(`mask`,{id:`${r}-mask`,maskUnits:`userSpaceOnUse`,x:`0`,y:`0`,width:`100`,height:`100`,children:s})]}),o,(0,W.jsx)(`g`,{mask:`url(#${r}-mask)`,children:(0,W.jsx)(`rect`,{width:40,height:100,fill:`url(#${r}-band)`,className:`animate-[chart-ghost-sweep_2s_infinite]`,style:{animationDelay:i}})})]}),u=(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`div`,{className:`min-h-0 flex-1`,style:{paddingTop:$7.top},children:(0,W.jsx)(`svg`,{viewBox:`0 0 100 100`,preserveAspectRatio:`none`,className:`block size-full`,"aria-hidden":!0,children:l})}),(0,W.jsx)(`div`,{style:{height:22}})]});return t===`fill`?(0,W.jsx)(`div`,{role:`status`,"aria-label":`Loading chart`,className:H(`relative min-h-45 w-full flex-1`,n),children:(0,W.jsx)(`div`,{className:`absolute inset-0 flex flex-col`,children:u})}):(0,W.jsx)(`div`,{role:`status`,"aria-label":`Loading chart`,className:H(`flex w-full flex-col`,n),style:{height:t},children:u})}function AQr(e){let t=100/e.length,n=e.map((e,n)=>(0,W.jsx)(`rect`,{x:n*t+t*.15,width:t*.7,y:100-e*100,height:e*100,rx:.4},n));return{ghost:(0,W.jsx)(`g`,{fill:`var(--foreground)`,fillOpacity:.07,children:n}),mask:(0,W.jsx)(`g`,{fill:`white`,children:n}),peak:.09}}function jQr(e){let t=100/(e.length-1),n=e.map((e,n)=>[n*t,100-e*100]),r=n.map(([e,t],r)=>{let i=n[r-1];if(!i)return`M${e},${t}`;let[a,o]=i,s=(a+e)/2;return`C${s},${o} ${s},${t} ${e},${t}`}).join(` `),i=`${r} L100,100 L0,100 Z`;return{ghost:(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`path`,{d:i,fill:`var(--foreground)`,fillOpacity:.025}),(0,W.jsx)(`path`,{d:r,fill:`none`,stroke:`var(--foreground)`,strokeOpacity:.12,strokeWidth:1.75,vectorEffect:`non-scaling-stroke`})]}),mask:(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`path`,{d:i,fill:`white`,fillOpacity:.2}),(0,W.jsx)(`path`,{d:r,fill:`none`,stroke:`white`,strokeWidth:1.75,vectorEffect:`non-scaling-stroke`})]}),peak:.18}}var MQr={vertical:!1,stroke:`var(--border)`,strokeDasharray:`3 3`,strokeOpacity:.5},NQr={stroke:`var(--border)`,strokeDasharray:`3 3`,strokeWidth:.8};function PQr(){let e=(0,U.useRef)(null),[t,n]=(0,U.useState)({width:0,height:0});return(0,U.useLayoutEffect)(()=>{let t=e.current?.getBoundingClientRect();t&&n({width:t.width,height:t.height})},[]),{size:t,onResize:(e,t)=>n(n=>n.width===e&&n.height===t?n:{width:e,height:t}),ref:e}}function FQr(e){if(!e)return 3;let t=e-22-$7.top;return Math.min(5,Math.max(3,Math.round(t/48)+1))}var IQr=[1,2,2.5,5],LQr=3;function RQr(e,t,n=!1){if(!Number.isFinite(e)||e<=0)return;let r=10**Math.floor(Math.log10(e)),i;for(let a of[r/10,r,r*10])for(let r of IQr){let o=Number((r*a).toPrecision(12));if(n&&!Number.isInteger(o))continue;let s=Math.ceil(Number((e/o).toPrecision(12)))+1;if(s<LQr||s>t)continue;let c=(s-1)*o;(!i||c<i.top||c===i.top&&s>i.count)&&(i={top:c,step:o,count:s})}if(!i)return;let{step:a,count:o}=i;return Array.from({length:o},(e,t)=>Number((t*a).toPrecision(12)))}var e9=6e4,zQr=1440*e9,BQr=[5,10,15,30,60,120,180,240,360,720,1440,2880,10080],VQr=48,HQr=e=>e.length*11*.58;function UQr(e,t,n,r=`auto`){let i=t.length-1;if(i<0)return new Set;let a=new Set([0,i]);if(r===`edges`||t.length<3)return a;let o=Math.max(...t.map(e=>HQr(e))),s=Math.floor(n/(o+VQr));if(s<3)return a;let c=e.every(WQr)?e:void 0,l=c?(c[1]??0)-(c[0]??0):0,u=c?((c[i]??0)-(c[0]??0)+l)/e9:0,d=c?BQr.find(e=>e*e9>=l&&e*e9%l===0&&u/e<=s):void 0;if(!c||!(l>0)||d===void 0){let e=Math.ceil(t.length/s),n=new Set;for(let t=0;t<=i;t+=e)n.add(t);return n.has(i)||(i%e<e/2&&n.delete(i-i%e),n.add(i)),n.size<3?a:n}let f=new Set;return c.forEach((e,t)=>{let n=new Date(e),r=new Date(n.getFullYear(),n.getMonth(),n.getDate()).getTime(),i=l>=zQr||n.getHours()===0&&n.getMinutes()===0;(d<1440?n.getSeconds()===0&&(n.getHours()*60+n.getMinutes())%d===0:i&&Math.round(r/zQr)%(d/1440)==0)&&f.add(t)}),f.size<3?a:f}function WQr(e){return typeof e==`number`&&Number.isFinite(e)}function GQr({x:e=0,y:t=0,payload:n,picked:r,count:i,plotWidth:a}){if(!n||!a||!r.has(n.index))return null;let o=String(n.value),s=n.offset??0,c=s>0?e-s*(2*n.index+1):e-n.index*a/Math.max(i-1,1),l=HQr(o)/2,u=Math.min(Math.max(e,c+l),c+a-l);return(0,W.jsx)(`text`,{x:u,y:t,dy:`0.71em`,textAnchor:`middle`,fontSize:11,fill:Ve,children:o})}var KQr=new Intl.NumberFormat(`en`,{notation:`compact`,maximumFractionDigits:1}),qQr={fontSize:11,fill:Ve};function JQr({data:e,xKey:t,timestampKey:n,xLabels:r,plotWidth:i}){let a=e.map(e=>String(e[t]??``)),o=UQr(e.map(e=>{let t=e[n];return typeof t==`number`?t:void 0}),a,i,r);return(0,W.jsx)(WG,{dataKey:t,height:22,tick:t=>(0,W.jsx)(GQr,{...t,picked:o,count:e.length,plotWidth:i}),tickLine:!1,axisLine:!1,tickMargin:6,interval:0})}function YQr({id:e=0,show:t,size:n,formatter:r,domain:i,max:a,integer:o=!1,right:s=!1}){let c=FQr(n.height),l=i||a===void 0?void 0:RQr(a,c,o);return(0,W.jsx)(GG,{yAxisId:e,hide:!t,orientation:s?`right`:`left`,tick:qQr,tickLine:!1,axisLine:!1,width:`auto`,tickMargin:4,tickFormatter:r,domain:l?[0,l.at(-1)??0]:i,ticks:l,tickCount:c})}function XQr(e,t,n=!1){let r=0;for(let i of e){let e=0;for(let a of t){let t=i[a];typeof t==`number`&&Number.isFinite(t)&&(n?e+=t:r=Math.max(r,t))}n&&(r=Math.max(r,e))}return r}function ZQr(e,t){return e.every(e=>t.every(t=>{let n=e[t];return typeof n!=`number`||Number.isInteger(n)}))}function QQr({height:e,plotRef:t,onResize:n,clickable:r,className:i,children:a}){let o=H(`w-full [&_.recharts-surface]:overflow-visible [&_.recharts-surface]:outline-none`,`[&_*:focus:not(:focus-visible)]:outline-none`,r&&`[&_.recharts-surface]:cursor-pointer`,i);return e===`fill`?(0,W.jsx)(`div`,{className:`relative min-h-45 flex-1`,children:(0,W.jsx)(`div`,{ref:t,className:H(`absolute inset-0`,o),children:(0,W.jsx)(pH,{width:`100%`,height:`100%`,onResize:n,children:a})})}):(0,W.jsx)(`div`,{ref:t,className:o,style:{height:e},children:(0,W.jsx)(pH,{width:`100%`,height:`100%`,onResize:n,children:a})})}function $Qr(){return`chart${(0,U.useId)().replace(/:/g,``)}`}function t9({data:e,series:t,className:n}){return(0,W.jsx)(`div`,{className:H(`flex flex-wrap items-center gap-x-4 gap-y-1`,n),children:t.map(t=>{let n=e?t.aggregate?.(e):void 0;return(0,W.jsxs)(`div`,{className:`inline-flex items-center gap-1.5`,children:[t.dashed?(0,W.jsx)(`span`,{className:`h-0 w-3 shrink-0 border-t-2 border-dashed`,style:{borderColor:t.color}}):(0,W.jsx)(`div`,{className:`size-2 shrink-0 rounded-[2px]`,style:{backgroundColor:t.color}}),(0,W.jsx)(Z,{as:`span`,variant:`body-sm`,tone:`muted`,className:`max-w-48 truncate`,children:t.label}),n&&(0,W.jsxs)(Z,{as:`span`,variant:`body-sm`,tone:`muted`,className:`-ml-1 tabular-nums`,children:[n.value,n.suffix&&(0,W.jsxs)(Z,{as:`span`,variant:`body-sm`,tone:`faint`,children:[` `,n.suffix]})]})]},t.dataKey)})})}function e$r({active:e,payload:t,label:n,suffix:r,formatValue:i=e=>e.toLocaleString(`en-US`),showTotal:a=!1,labelKey:o,formatByKey:s}){if(!e||!t?.length)return null;let c=e=>typeof e==`number`&&Number.isFinite(e),l=t.reduce((e,t)=>e+(c(t.value)?t.value:0),0),u=o?String(t[0]?.payload?.[o]??n??``):n,d=e=>s?.[String(e.dataKey)]??i,f=e=>c(e.value)?d(e)(e.value):typeof e.value==`number`||e.value==null?`—`:e.value;return(0,W.jsxs)(aUt,{children:[(0,W.jsx)(Z,{variant:`column`,tone:`ink`,className:`mb-1`,children:u}),(0,W.jsxs)(`div`,{className:`grid grid-cols-[auto_1fr_auto] items-center gap-x-2 gap-y-1`,children:[t.map(e=>(0,W.jsxs)(`div`,{className:`contents`,children:[(0,W.jsx)(`span`,{className:`size-2 rounded-[2px]`,style:{backgroundColor:e.color}}),(0,W.jsx)(Z,{as:`span`,variant:`caption`,tone:`muted`,className:`max-w-40 truncate`,children:e.name}),(0,W.jsxs)(`span`,{className:`text-right font-mono text-foreground tabular-nums`,children:[f(e),c(e.value)&&r]})]},e.name)),a&&(0,W.jsxs)(`div`,{className:`col-span-3 grid grid-cols-subgrid items-center border-t border-border pt-1`,children:[(0,W.jsx)(Z,{as:`span`,variant:`caption`,tone:`muted`,className:`col-span-2`,children:`Total`}),(0,W.jsxs)(`span`,{className:`text-right font-mono text-foreground tabular-nums`,children:[i(l),r]})]})]})]})}var t$r=1.75,n$r=.12,r$r={default:{width:t$r,emphasis:2.25,areaOpacity:n$r},thin:{width:1.5,emphasis:1.5,areaOpacity:n$r*.4}},i$r=`[&_.recharts-area-area]:mask-x-from-[calc(100%-24px)]`,a$r=12;function o$r({points:e}){let[t,n]=e??[];return!t||!n?null:(0,W.jsx)(`line`,{x1:0,x2:0,y1:t.y,y2:n.y,...NQr,className:`pointer-events-none transition-transform duration-150 ease-out`,style:{transform:`translateX(${t.x}px)`}})}function s$r(e){let{data:t,series:n,height:r=210,showLegend:i=!0,isLoading:a=!1,className:o}=e,s=H(r===`fill`&&`flex min-h-0 flex-1 flex-col`,o);return(0,W.jsxs)(`div`,{className:s,children:[i&&(0,W.jsx)(t9,{data:a?void 0:t,series:n,className:`mb-4`}),a?(0,W.jsx)(kQr,{kind:`line`,height:r}):(0,W.jsx)(c$r,{...e})]})}function c$r({data:e,series:t,height:n=210,yDomain:r,onPointClick:i,onBucketClick:a,xKey:o=`time`,timestampKey:s=`tsMs`,xLabels:c=`auto`,tooltipLabelKey:l,showDots:u=!1,dots:d=`auto`,lineStyle:f=`default`,valueFormatter:p,axisFormatter:m,showYAxis:h=!0}){let g=$Qr(),{size:_,onResize:v,ref:y}=PQr(),b=p??KQr.format,x=t=>e.filter(e=>typeof e[t]==`number`).length<=a$r,S=_.width-(h?44:0),C=r$r[f],w=e=>d===`auto`&&(u||x(e.dataKey))?{r:3,fill:e.color,strokeWidth:0}:!1,T=e=>({r:3.5,fill:e.color,stroke:`var(--background)`,strokeWidth:2,...i&&{style:{cursor:`pointer`},onClick:(t,n)=>{l$r(n)&&l$r(n.payload)&&i(n.payload,e.dataKey)}}});return(0,W.jsx)(QQr,{height:n,plotRef:y,onResize:v,clickable:!!a,className:H(f===`thin`&&i$r),children:(0,W.jsxs)(jdn,{data:e,margin:$7,onClick:t=>{let n=t?.activeTooltipIndex,r=n==null?void 0:e[Number(n)];a&&r&&a(r,Number(n))},children:[(0,W.jsx)(`defs`,{children:t.map((e,t)=>(0,W.jsxs)(`linearGradient`,{id:`${g}-area-${t}`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,W.jsx)(`stop`,{offset:`0%`,stopColor:e.color,stopOpacity:C.areaOpacity}),(0,W.jsx)(`stop`,{offset:`95%`,stopColor:e.color,stopOpacity:0})]},e.dataKey))}),(0,W.jsx)(ian,{...MQr}),JQr({data:e,xKey:o,timestampKey:s,xLabels:c,plotWidth:S}),YQr({show:h,size:_,formatter:m??b,domain:r,max:XQr(e,t.map(e=>e.dataKey)),integer:ZQr(e,t.map(e=>e.dataKey))}),(0,W.jsx)(BW,{content:(0,W.jsx)(e$r,{formatValue:b,labelKey:l}),cursor:(0,W.jsx)(o$r,{})}),t.map((e,t)=>{let n={type:`monotone`,dataKey:e.dataKey,name:e.label,stroke:e.color,strokeWidth:e.emphasis?C.emphasis:C.width,strokeDasharray:e.dashed?`4 3`:void 0,dot:w(e),activeDot:T(e),isAnimationActive:!1,connectNulls:!0};return e.dashed?(0,W.jsx)(ion,{...n},e.dataKey):(0,W.jsx)(LG,{...n,fill:`url(#${g}-area-${t})`,fillOpacity:1},e.dataKey)})]})})}function l$r(e){return typeof e==`object`&&!!e}var u$r=e=>e!==void 0&&Number.isFinite(e)&&e>0?e:0;function d$r(e,t,n,{gap:r=0,minSize:i=3}={}){let a=e.map(u$r),o=a[t]??0;if(!(o>0)||!Number.isFinite(n.y)||!Number.isFinite(n.height))return;let s=n.height/o,c=a.slice(0,t).reduce((e,t)=>e+t,0),l=n.y+n.height+c*s,u=a.flatMap((e,t)=>e>0?[t]:[]),d=a.reduce((e,t)=>e+t,0)*s,f=r*(u.length-1),p=e=>m[e]??0,m=a.map(e=>e>0&&d>0?Math.max(e*s*(d-f)/d,0):0),h=u.filter(e=>p(e)<i),g=u.filter(e=>p(e)>=i),_=h.reduce((e,t)=>e+i-p(t),0),v=g.reduce((e,t)=>e+p(t)-i,0);for(let e of h)m[e]=i;for(let e of g)m[e]=v>=_?p(e)-(v>0?(p(e)-i)/v*_:0):i;let y=l;for(let e of u){if(y-=p(e),e===t)return{y,height:p(e)};y-=r}}function f$r(e,t,{minSize:n=3}={}){if(u$r(e)>0&&Number.isFinite(t.y)&&Number.isFinite(t.height))return t.height>=n?t:{y:t.y+t.height-n,height:n}}var p$r=2,m$r=2,h$r=.75,g$r=.55,_$r=3,v$r=.3,y$r=16;function b$r({fill:e,color:t,capped:n,keys:r,dataKey:i}){return function({x:a=0,width:o=0,index:s,payload:c,...l}){let u=r.map(e=>Number(c?.[e])||0),d=r.indexOf(i),f={y:l.y??0,height:Math.max(l.height??0,0)},p=r.length>1?d$r(u,d,f,{gap:m$r}):f$r(u[d]??0,f);if(!p)return(0,W.jsx)(`g`,{});let{y:m,height:h}=p,g=Math.min(p$r,Math.floor(h/3)),_={"data-bucket":s,style:{transition:`opacity 150ms ease-out`}};return n?(0,W.jsxs)(`g`,{..._,children:[(0,W.jsx)(MH,{x:a,y:m,width:o,height:h,radius:g,fill:t,fillOpacity:g$r}),(0,W.jsx)(MH,{x:a,y:m,width:o,height:Math.min(_$r,h),radius:g,fill:t})]}):(0,W.jsx)(`g`,{..._,children:(0,W.jsx)(MH,{x:a,y:m,width:o,height:h,radius:g,fill:e})})}}function x$r({scope:e,setter:t}){let[n,r]=(0,U.useState)();return(0,U.useLayoutEffect)(()=>{t.current=r},[t]),n===void 0?null:(0,W.jsx)(`style`,{children:`[data-chart-scope="${e}"] [data-bucket]:not([data-bucket="${n}"]){opacity:${v$r}}`})}function S$r(e){let{data:t,series:n,overlay:r,height:i=210,showLegend:a=!0,isLoading:o=!1,className:s}=e,c=$Qr(),l=H(i===`fill`&&`flex min-h-0 flex-1 flex-col`,s),u=r?[...n,{...r,dashed:!0}]:n;return(0,W.jsxs)(`div`,{className:l,"data-chart-scope":c,children:[a&&(0,W.jsx)(t9,{data:o?void 0:t,series:u,className:`mb-4`}),o?(0,W.jsx)(kQr,{kind:`bar`,height:i}):(0,W.jsx)(C$r,{...e,id:c})]})}function C$r({data:e,series:t,height:n=210,yDomain:r,valueFormatter:i,axisFormatter:a,referenceLine:o,variant:s=`gradient`,showYAxis:c=!0,showTotal:l=t.length>1,xKey:u=`time`,timestampKey:d=`tsMs`,xLabels:f=`auto`,tooltipLabelKey:p,columnLabelKey:m,onBucketClick:h,overlay:g,id:_}){let v=(0,U.useRef)(()=>{}),{size:y,onResize:b,ref:x}=PQr(),S=t.map(e=>e.dataKey).join(`\0`),C=t.map(e=>e.color).join(`\0`),w=(0,U.useMemo)(()=>{let e=S.split(`\0`),t=C.split(`\0`);return e.map((n,r)=>b$r({fill:`url(#${_}-bar-${r})`,color:t[r]??``,capped:s===`capped`,keys:e,dataKey:n}))},[S,C,s,_]),T=i??KQr.format,E=y.width-(c?44:0),D=m?{...$7,top:$7.top+y$r}:$7;return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(x$r,{scope:_,setter:v}),(0,W.jsx)(QQr,{height:n,plotRef:x,onResize:b,clickable:!!h,children:(0,W.jsxs)(jdn,{data:e,margin:D,onMouseMove:e=>{let t=e?.activeTooltipIndex;v.current(t==null?void 0:Number(t))},onMouseLeave:()=>v.current(void 0),onClick:t=>{let n=t?.activeTooltipIndex,r=n==null?void 0:e[Number(n)];h&&r&&h(r,Number(n))},children:[(0,W.jsx)(`defs`,{children:t.map((e,t)=>(0,W.jsxs)(`linearGradient`,{id:`${_}-bar-${t}`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,W.jsx)(`stop`,{offset:`0%`,stopColor:e.color,stopOpacity:1}),(0,W.jsx)(`stop`,{offset:`100%`,stopColor:e.color,stopOpacity:h$r})]},e.dataKey))}),(0,W.jsx)(ian,{...MQr}),JQr({data:e,xKey:u,timestampKey:d,xLabels:f,plotWidth:E}),YQr({show:c,size:y,formatter:a??T,domain:r,max:Math.max(XQr(e,t.map(e=>e.dataKey),!0),o?.value??0),integer:ZQr(e,t.map(e=>e.dataKey))}),g&&YQr({id:`overlay`,show:!1,size:y,formatter:g.valueFormatter??KQr.format,max:XQr(e,[g.dataKey]),integer:ZQr(e,[g.dataKey]),right:!0}),(0,W.jsx)(BW,{cursor:!1,content:(0,W.jsx)(e$r,{formatValue:T,showTotal:l&&!g,labelKey:p,formatByKey:g?.valueFormatter?{[g.dataKey]:g.valueFormatter}:void 0})}),t.map((n,r)=>(0,W.jsx)(qsn,{dataKey:n.dataKey,name:n.label,stackId:`1`,fill:n.color,maxBarSize:28,isAnimationActive:!1,shape:w[r],children:m&&(0,W.jsx)(QW,{dataKey:m,content:i=>(0,W.jsx)(T$r,{...i,row:e[Number(i.index)],keys:t.map(({dataKey:e})=>e),self:r,color:n.color})})},n.dataKey)),g&&(0,W.jsx)(ion,{yAxisId:`overlay`,type:`monotone`,dataKey:g.dataKey,name:g.label,stroke:g.color,strokeWidth:1.75,strokeDasharray:`4 3`,dot:!1,activeDot:{r:3.5,fill:g.color,stroke:`var(--background)`,strokeWidth:2},isAnimationActive:!1,connectNulls:!0}),o&&(0,W.jsx)(gG,{y:o.value,ifOverflow:`extendDomain`,stroke:o.color,strokeDasharray:`4 4`,label:{value:o.label,position:`insideTopLeft`,...qQr}})]})})]})}function w$r(e,t,n){return e.length>1?d$r(e,t,n,{gap:m$r})?.y:f$r(e[t]??0,n)?.y}function T$r({x:e,y:t,width:n,height:r,value:i,row:a,keys:o,self:s,color:c}){if(i==null||i===``)return null;let l=o.map(e=>Number(a?.[e])||0),u=l.findLastIndex(e=>e>0);if(s!==(u===-1?o.length-1:u))return null;let d=w$r(l,s,{y:Number(t),height:Math.max(Number(r),0)})??Number(t);return(0,W.jsx)(`text`,{x:Number(e)+Number(n)/2,y:d-6,textAnchor:`middle`,fontSize:11,fill:c,className:`tabular-nums`,children:String(i)})}var E$r=[{dataKey:`completed`,label:`Completed`,color:X7.green},{dataKey:`failed`,label:`Failed`,color:X7.error}];function D$r({onTimeRangeClick:e}){let{data:t=[],isLoading:n,isError:r,isPlaceholderData:i}=bQr(),{timestamp:a}=Y7(),{stepHours:o}=U7(a.start,a.end),s=t.reduce((e,t)=>e+t.completed+t.failed,0),c={title:`Agent runs`,description:`Completed and failed runs.`,toolbar:(0,W.jsx)(R7.Toolbar,{children:(0,W.jsx)(t9,{series:E$r})})};return r?(0,W.jsx)(B7,{...c,children:(0,W.jsx)(V7,{})}):(0,W.jsx)(B7,{...c,summary:(0,W.jsx)(R7.Summary,{value:Z7(s),label:`runs`,isLoading:n}),isUpdating:i,children:(0,W.jsx)(z7,{isEmpty:!n&&s===0,emptyMessage:`No agent runs in this range.`,children:(0,W.jsx)(S$r,{data:t,series:E$r,height:`fill`,xLabels:`edges`,showLegend:!1,valueFormatter:Z7,onBucketClick:e&&(t=>e(W7(Number(t.ts),o))),isLoading:n,...SQr})})})}function n9({onClick:e}){return(0,W.jsx)(Y,{onClick:e,variant:`ghost`,size:`icon-md`,tooltip:`View in traces`,"aria-label":`View in traces`,children:(0,W.jsx)(nC,{})})}function O$r({onClick:e}){return(0,W.jsx)(Y,{onClick:e,variant:`ghost`,size:`icon-md`,tooltip:`View errors in logs`,"aria-label":`View errors in logs`,children:(0,W.jsx)(aKe,{})})}var k$r=[`last-24h`,`last-3d`,`last-7d`,`last-14d`,`last-30d`,`custom`];function A$r(e){switch(e){case`3d`:return`last-3d`;case`7d`:return`last-7d`;case`14d`:return`last-14d`;case`30d`:return`last-30d`;case`custom`:return`custom`;default:return`last-24h`}}function j$r(e){switch(e){case`last-3d`:return`3d`;case`last-7d`:return`7d`;case`last-14d`:return`14d`;case`last-30d`:return`30d`;case`custom`:return`custom`;default:return`24h`}}var M$r=[{dataKey:`failureRate`,label:`Failed runs`,color:X7.error}],N$r=e=>`${Math.round(e*100)}%`;function P$r({onViewErrors:e,onTimeRangeClick:t}){let{data:n=[],isLoading:r,isError:i,isPlaceholderData:a}=bQr(),{timestamp:o}=Y7(),{stepHours:s}=U7(o.start,o.end),c=n.reduce((e,t)=>e+t.completed+t.failed,0),l=n.reduce((e,t)=>e+t.failed,0),u=l===0?[0,1]:void 0,d={title:`Failure rate`,description:`Share of agent runs that failed.`,actions:e&&(0,W.jsx)(O$r,{onClick:e}),toolbar:(0,W.jsx)(R7.Toolbar,{children:(0,W.jsx)(t9,{series:M$r})})};return i?(0,W.jsx)(B7,{...d,children:(0,W.jsx)(V7,{})}):(0,W.jsx)(B7,{...d,summary:(0,W.jsx)(R7.Summary,{value:wQr(c>0?l/c:0),label:`failed`,isLoading:r}),isUpdating:a,children:(0,W.jsx)(z7,{isEmpty:!r&&c===0,emptyMessage:`No agent runs in this range.`,children:(0,W.jsx)(s$r,{data:n,series:M$r,height:`fill`,xLabels:`edges`,showLegend:!1,valueFormatter:wQr,axisFormatter:N$r,yDomain:u,onBucketClick:t&&(e=>t(W7(Number(e.ts),s))),isLoading:r,...SQr})})})}function F$r(){let{datePreset:e,setDatePreset:t,customRange:n,setCustomRange:r}=J7();return(0,W.jsx)(d8,{preset:A$r(e),onPresetChange:e=>t(j$r(e)),dateFrom:n?.from,dateTo:n?.to,onDateRangeChange:(e,t)=>r({from:e,to:t}),presets:k$r})}function r9({label:e,icon:t,isError:n=!1,...r}){return(0,W.jsxs)(y4,{children:[(0,W.jsx)(y4.Label,{icon:(0,W.jsx)(t,{}),children:e}),n?(0,W.jsx)(I$r,{}):(0,W.jsx)(L$r,{...r})]})}function I$r(){return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(y4.ValueRow,{className:`mt-1`,children:(0,W.jsx)(y4.Value,{children:`—`})}),(0,W.jsx)(y4.Footer,{detail:(0,W.jsx)(`span`,{className:`text-destructive-foreground`,children:`Couldn't load`})})]})}function L$r({value:e,change:t,lowerIsBetter:n,detail:r,previous:i,comparison:a,isLoading:o=!1,isUpdating:s=!1}){let c=H(`transition-opacity duration-200`,s&&`opacity-50`);return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(y4.ValueRow,{className:H(`mt-1`,c),isLoading:o,children:[(0,W.jsx)(y4.Value,{children:e}),t!==void 0&&(0,W.jsx)(y4.Change,{changePct:t,comparison:a,lowerIsBetter:n,prevValue:i})]}),(0,W.jsx)(y4.Footer,{detail:r,prevValue:t===void 0?void 0:i,isLoading:o,className:c})]})}var R$r={2:`@3xl:grid-cols-2`,3:`@3xl:grid-cols-2 @7xl:grid-cols-3`},z$r={1:``,2:`@3xl:col-span-2`,full:`col-span-full`};function i9({children:e,columns:t=3,className:n}){return(0,W.jsx)(`div`,{className:H(`@container`,n),children:(0,W.jsx)(`div`,{className:H(`grid gap-4`,R$r[t]),children:e})})}function B$r({children:e,span:t=1,className:n}){return(0,W.jsx)(`div`,{className:H(`min-w-0 *:w-full *:min-w-0!`,z$r[t],n),children:e})}i9.Item=B$r;var a9={placeholderData:E_},V$r=e=>e==null?`—`:Z7(e),H$r=e=>e==null?`—`:Q7(e),o9=e=>e==null||!Number.isFinite(e)?void 0:e,U$r=e=>e==null?void 0:Z7(e),W$r=e=>e==null?void 0:Q7(e);function G$r(){return(0,W.jsxs)(iZr,{children:[(0,W.jsx)(K$r,{}),(0,W.jsx)(q$r,{}),(0,W.jsx)(J$r,{}),(0,W.jsx)(Y$r,{})]})}function K$r(){let{comparisonLabel:e}=J7(),{data:t,isLoading:n,isPlaceholderData:r,isError:i}=fQr({...Y7(),queryOptions:a9});return(0,W.jsx)(r9,{label:`Agent runs`,icon:WWe,value:V$r(t?.value),change:o9(t?.changePercent),detail:`in this range`,previous:U$r(t?.previousValue),comparison:e,isLoading:n,isUpdating:r,isError:i})}function q$r(){let{comparisonLabel:e}=J7(),{data:t,isLoading:n,isPlaceholderData:r,isError:i}=pQr({...Y7(),queryOptions:a9});return(0,W.jsx)(r9,{label:`Model cost`,icon:JS,value:H$r(t?.cost),change:o9(t?.costChangePercent),lowerIsBetter:!0,detail:`estimated`,previous:W$r(t?.previousCost),comparison:e,isLoading:n,isUpdating:r,isError:i})}function J$r(){let{comparisonLabel:e}=J7(),{data:t,isLoading:n,isPlaceholderData:r,isError:i}=hQr({...Y7(),queryOptions:a9});return(0,W.jsx)(r9,{label:`Tokens`,icon:gC,value:V$r(t?.value),change:o9(t?.changePercent),detail:`input and output`,previous:U$r(t?.previousValue),comparison:e,isLoading:n,isUpdating:r,isError:i})}function Y$r(){let{comparisonLabel:e}=J7(),{data:t,isLoading:n,isPlaceholderData:r,isError:i}=dQr({...Y7(),queryOptions:a9});return(0,W.jsx)(r9,{label:`Threads`,icon:TC,value:V$r(t?.value),change:o9(t?.changePercent),detail:`with agent runs`,previous:U$r(t?.previousValue),comparison:e,isLoading:n,isUpdating:r,isError:i})}var X$r=[{dataKey:`input`,label:`Input`,color:X7.green},{dataKey:`cacheRead`,label:`Cache read`,color:X7.violet},{dataKey:`output`,label:`Output`,color:X7.sky}],Z$r=[{dataKey:`cost`,label:`Cost`,color:X7.green}];function Q$r({onViewTraces:e,onTimeRangeClick:t}){let[n,r]=(0,U.useState)(`tokens`),{data:i=[],isLoading:a,isError:o,isPlaceholderData:s}=bQr(),{timestamp:c}=Y7(),{stepHours:l}=U7(c.start,c.end),u=i.reduce((e,t)=>e+t.input+t.cacheRead+t.output,0),d=i.reduce((e,t)=>e+t.cost,0),f=n===`tokens`,p=f?X$r:Z$r,m={title:`Token usage`,description:f?`Input, cache reads and output.`:`Estimated model spend.`,actions:e&&(0,W.jsx)(n9,{onClick:e}),toolbar:(0,W.jsxs)(R7.Toolbar,{children:[(0,W.jsx)(t9,{series:p}),(0,W.jsxs)(R7.Tabs,{value:n,onValueChange:r,children:[(0,W.jsx)(R7.Tab,{value:`tokens`,children:`Tokens`}),(0,W.jsx)(R7.Tab,{value:`cost`,children:`Cost`})]})]})};return o?(0,W.jsx)(B7,{...m,children:(0,W.jsx)(V7,{})}):(0,W.jsx)(B7,{...m,summary:(0,W.jsx)(R7.Summary,{value:f?Z7(u):Q7(d),label:f?`tokens`:`cost`,isLoading:a}),isUpdating:s,children:(0,W.jsx)(z7,{isEmpty:!a&&u===0&&d===0,emptyMessage:`No model calls in this range.`,children:(0,W.jsx)(S$r,{data:i,series:p,height:`fill`,showLegend:!1,valueFormatter:f?Z7:Q7,axisFormatter:f?TQr:EQr,onBucketClick:t&&(e=>t(W7(Number(e.ts),l))),isLoading:a,...xQr})})})}var $$r={agents:`mastra_agent_duration_ms`,workflows:`mastra_workflow_duration_ms`,tools:`mastra_tool_duration_ms`},e1r=[`agents`,`workflows`,`tools`];function t1r(){let e=J(),{filters:t,filterKey:n,timestamp:r}=Y7(),{interval:i}=U7(r.start,r.end),a=TZr(i);return W_({queryKey:[`metrics`,`latency-percentiles`,n,i],placeholderData:E_,queryFn:async()=>{let n=await Promise.all(e1r.map(n=>e.getMetricPercentiles({name:$$r[n],percentiles:[.5,.95],interval:i,filters:t}))),o=OZr(r.start,r.end,a),s=kZr(o,a);return n.forEach((e,t)=>{let n=e1r[t];if(n)for(let t of e.series){let e=n1r(n,t.percentile);if(e)for(let n of t.points){let t=o[s(n)??-1];t&&(t[e]=Math.round(n.value))}}}),o}})}function n1r(e,t){if(t===.5)return`${e}P50`;if(t===.95)return`${e}P95`}var r1r={agents:lp.AGENT,workflows:lp.WORKFLOW_RUN,tools:lp.TOOL};function i1r(e){return[{dataKey:`${e}P50`,label:`P50`,color:X7.sky},{dataKey:`${e}P95`,label:`P95`,color:X7.green,emphasis:!0}]}var a1r={agents:`agent runs`,workflows:`workflow runs`,tools:`tool calls`};function o1r({onViewTraces:e,onTimeRangeClick:t}){let[n,r]=(0,U.useState)(`agents`),{data:i=[],isLoading:a,isError:o,isPlaceholderData:s}=t1r(),{timestamp:c}=Y7(),l=TZr(U7(c.start,c.end).interval),u=i1r(n),d=Math.max(0,...i.map(e=>e[`${n}P95`]??0)),f={title:`Latency`,description:`Duration percentiles.`,actions:e&&(0,W.jsx)(n9,{onClick:()=>e(r1r[n])}),toolbar:(0,W.jsxs)(R7.Toolbar,{children:[(0,W.jsx)(t9,{series:u}),(0,W.jsxs)(R7.Tabs,{value:n,onValueChange:r,children:[(0,W.jsx)(R7.Tab,{value:`agents`,children:`Agents`}),(0,W.jsx)(R7.Tab,{value:`workflows`,children:`Workflows`}),(0,W.jsx)(R7.Tab,{value:`tools`,children:`Tools`})]})]})};return o?(0,W.jsx)(B7,{...f,children:(0,W.jsx)(V7,{})}):(0,W.jsx)(B7,{...f,summary:(0,W.jsx)(R7.Summary,{value:d>0?CQr(d):`—`,label:`peak P95`,isLoading:a}),isUpdating:s,children:(0,W.jsx)(z7,{isEmpty:!a&&d===0,emptyMessage:`No ${a1r[n]} in this range.`,children:(0,W.jsx)(s$r,{data:i,series:u,height:`fill`,xLabels:`edges`,showLegend:!1,valueFormatter:CQr,axisFormatter:DQr,onBucketClick:t&&(e=>t(W7(Number(e.ts),l))),isLoading:a,...SQr})})})}function s1r({columns:e=[],valueLabel:t,valueWidth:n=`w-14`,className:r}){return(0,W.jsxs)(`div`,{"aria-hidden":!0,className:H(`flex shrink-0 items-center gap-3 text-column text-placeholder`,r),children:[e.map(e=>(0,W.jsx)(`span`,{className:H(`shrink-0 text-right`,e.width??`w-16`),children:e.label},e.label)),(0,W.jsx)(`span`,{className:`w-12 shrink-0 text-right`,children:`Share`}),(0,W.jsx)(`span`,{className:H(`shrink-0 text-right`,n),children:t})]})}var c1r=`-mx-2 flex w-[calc(100%+1rem)] items-center gap-3 rounded-md px-2 py-1 text-left`,s9=`shrink-0 text-right text-body-sm tabular-nums`;function l1r({row:e,columns:t,valueWidth:n,share:r,highlighted:i,dimmed:a,onHover:o,LinkComponent:s}){let c=H(c1r,`transition-[background-color,opacity] duration-150`,i&&`bg-fill-subtle`,(e.href||e.onClick)&&`hover:bg-fill-subtle`);return(0,W.jsx)(`li`,{children:(0,W.jsxs)(u1r,{row:e,LinkComponent:s,className:c,style:{opacity:a?.5:1},onMouseEnter:o,children:[(0,W.jsx)(`span`,{className:`size-2 shrink-0 rounded-[2px]`,style:{backgroundColor:e.paint.color,opacity:e.paint.alpha}}),(0,W.jsx)(d1r,{row:e}),t.map((t,n)=>(0,W.jsx)(`span`,{className:H(s9,`text-muted-foreground`,t.width??`w-16`),children:e.cells?.[n]},t.label)),(0,W.jsx)(`span`,{className:H(s9,`w-12 text-muted-foreground`),children:r}),(0,W.jsx)(`span`,{className:H(s9,`text-foreground`,n),children:e.value})]})})}function u1r({row:e,LinkComponent:t,...n}){return e.href?(0,W.jsx)(t??`a`,{href:e.href,...n}):e.onClick?(0,W.jsx)(`button`,{type:`button`,onClick:e.onClick,...n}):(0,W.jsx)(`div`,{...n})}function d1r({row:e}){return typeof e.label==`string`?(0,W.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,title:e.title??e.label,children:(0,W.jsx)(Z,{as:`span`,variant:`body-sm`,tone:`ink`,children:e.label})}):(0,W.jsx)(`span`,{className:`flex min-w-0 flex-1`,title:e.title,children:e.label})}var f1r=`var(--chart-share-1)`,p1r=[1,2,3,4,5].map(e=>`var(--chart-share-${e})`),m1r=[3,4,2,5,1].map(e=>`var(--chart-share-${e})`),h1r=[1,.7,.48,.32,.2,.14],c9={color:`var(--chart-share-rest)`,alpha:1},g1r=50,l9=`__rest`;function _1r(e,t,n){if(n===`hues`){let n=p1r.includes(e)?[e,...p1r.filter(t=>t!==e)]:[e,...m1r];return Array.from({length:t},(t,r)=>({color:n[r%n.length]??e,alpha:[1,.55,.3][Math.floor(r/n.length)]??.2}))}return Array.from({length:t},(t,n)=>({color:e,alpha:h1r[n]??.1}))}var v1r=e=>e.reduce((e,t)=>e+Math.max(t.share,0),0);function y1r(e){return e.map(e=>Number.isFinite(e.share)&&e.share>0?e:{...e,share:0}).toSorted((e,t)=>t.share-e.share)}function b1r(e,{limit:t,other:n,color:r,palette:i}){if(e.length<=t+1)return{shown:x1r(e,r,i),rest:[]};let a=e.slice(t),o=n?.(a),s={key:l9,label:`Other (${a.length})`,share:v1r(a),value:o?.value,cells:o?.cells,paint:c9,segment:l9};return{shown:[...x1r(e.slice(0,t),r,i),s],rest:a}}function x1r(e,t,n){let r=_1r(t,e.length,n);return e.map((e,t)=>({...e,paint:r[t]??c9,segment:e.key}))}function S1r(e,{count:t,activeKey:n,color:r,palette:i}){let a=Math.min(t,e.length,g1r),o=_1r(r,a,i),s=new Map(e.map((e,t)=>[e.key,t]));return{shown:C1r(e,t,n).map(t=>{let n=s.get(t.key)??e.length;return{...t,paint:o[n]??c9,segment:n<a?t.key:l9}}),rest:e.slice(a)}}function C1r(e,t,n){let r=e.slice(0,t),i=n?e.findIndex(e=>e.key===n):-1,a=i>=t?e[i]:void 0;return a?[...r,a]:r}function w1r(e,t){let n=e.filter(e=>e.segment!==l9).map(e=>({key:e.key,share:e.share,paint:e.paint})),r=t.length?[{key:l9,share:v1r(t),paint:c9}]:[],i=[...n,...r].filter(e=>e.share>0),a=i.reduce((e,t)=>e+t.share,0);return i.map(e=>({key:e.key,paint:e.paint,grow:e.share/a*100}))}function T1r(e,t){if(t!==void 0)return e.find(e=>e.key===t)?.segment??t}var E1r=(e,t)=>t!==void 0&&t!==e;function D1r(e,t){return t===void 0||t===e.key?!1:t!==`__rest`||e.segment!==`__rest`}var O1r=(e,t)=>{let n=e/(t||1);return n>0?n<.001?`<0.1%`:`${(n*100).toFixed(+(n<.1))}%`:`0%`};function k1r({shown:e,total:t,limit:n,pageSize:r,onMore:i,onLess:a}){if(t<=n)return null;let o=t-e,s=`flex items-center gap-1.5 rounded-md px-2 py-1 text-body-sm font-medium text-muted-foreground transition-colors duration-150 hover:bg-fill-subtle hover:text-foreground`,c=new Intl.NumberFormat(`en`,{notation:`compact`,maximumFractionDigits:1});return(0,W.jsxs)(`li`,{className:`-mx-2 flex items-center gap-1`,children:[o>0&&(0,W.jsxs)(`button`,{type:`button`,onClick:i,className:s,children:[(0,W.jsx)(RS,{className:`size-3.5 shrink-0`}),`Show `,Math.min(o,r),` more`]}),e>n&&(0,W.jsxs)(`button`,{type:`button`,onClick:a,className:s,children:[(0,W.jsx)(VS,{className:`size-3.5 shrink-0`}),`Show top `,n]}),o>0&&(0,W.jsxs)(`span`,{className:`ml-auto pr-2 text-body-sm text-placeholder tabular-nums`,children:[c.format(e),` of `,c.format(t)]})]})}var A1r=[`w-32`,`w-24`,`w-36`,`w-20`,`w-28`];function u9({className:e}){return(0,W.jsxs)(W.Fragment,{children:[``,(0,W.jsx)(Vw,{className:H(`absolute top-1/2 h-3.5 -translate-y-1/2`,e)})]})}function j1r({rows:e,columns:t,valueWidth:n,header:r}){return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`div`,{className:`flex h-2`,children:(0,W.jsx)(Vw,{className:`size-full rounded-full`})}),r,(0,W.jsx)(`ul`,{className:`grid min-w-0 grid-cols-1 gap-0.5`,"aria-busy":!0,children:Array.from({length:e},(e,r)=>(0,W.jsxs)(`li`,{className:c1r,children:[(0,W.jsx)(Vw,{className:`size-2 shrink-0 rounded-[2px]`}),(0,W.jsx)(`span`,{className:`min-w-0 flex-1`,children:(0,W.jsx)(Z,{as:`span`,variant:`body-sm`,className:`relative`,children:(0,W.jsx)(u9,{className:H(`left-0`,A1r[r%A1r.length])})})}),t.map(e=>(0,W.jsx)(`span`,{className:H(s9,`relative`,e.width??`w-16`),children:(0,W.jsx)(u9,{className:`right-0 w-10`})},e.label)),(0,W.jsx)(`span`,{className:H(s9,`relative w-12`),children:(0,W.jsx)(u9,{className:`right-0 w-9`})}),(0,W.jsx)(`span`,{className:H(s9,`relative`,n),children:(0,W.jsx)(u9,{className:`right-0 w-12`})})]},r))})]})}function d9({showHeader:e=!0,headerPlacement:t=`top`,className:n,...r}){let{columns:i=[],valueLabel:a,valueWidth:o=`w-14`}=r,s=t===`below-strip`,c=e&&(0,W.jsx)(`div`,{className:H(`flex justify-end`,s&&`pt-3 pb-0.5`),children:(0,W.jsx)(s1r,{columns:i,valueLabel:a,valueWidth:o})});return(0,W.jsxs)(`div`,{className:H(`grid grid-cols-1`,s?`gap-0`:`gap-4`,n),children:[!s&&c,(0,W.jsx)(M1r,{...r,header:s?c:void 0})]})}function M1r({rows:e,columns:t=[],valueLabel:n,valueWidth:r=`w-14`,palette:i=`shades`,color:a=f1r,limit:o=5,overflow:s=`other`,pageSize:c=50,other:l,activeKey:u,emptyState:d=`No data in this range.`,isLoading:f=!1,LinkComponent:p,header:m}){let[h,g]=(0,U.useState)(),[_,v]=(0,U.useState)(0),y=o+_*c;if(f)return(0,W.jsx)(j1r,{rows:s===`other`?o+1:o,columns:t,valueWidth:r,header:m});let b=y1r(e);if(b.length===0)return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Z,{variant:`body-sm`,tone:`muted`,className:`py-6 text-center`,children:d}),m]});let x=v1r(b),S=s===`more`,{shown:C,rest:w}=S?S1r(b,{count:y,activeKey:u,color:a,palette:i}):b1r(b,{limit:o,other:l,color:a,palette:i}),T=w1r(C,w),E=T1r(C,h),D=()=>g(void 0);return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`div`,{className:`flex h-2 gap-0.5`,onMouseLeave:D,children:T.map(e=>(0,W.jsx)(`span`,{"data-testid":`metrics-share-segment`,onMouseEnter:()=>g(e.key),className:`h-full min-w-[3px] transition-opacity duration-150 first:rounded-l-full last:rounded-r-full`,style:{flex:`${e.grow} 1 0`,backgroundColor:e.paint.color,opacity:e.paint.alpha*(E1r(e.key,E)?.3:1)}},e.key))}),m,(0,W.jsxs)(`ul`,{className:`grid min-w-0 grid-cols-1 gap-0.5`,onMouseLeave:D,children:[C.map(e=>(0,W.jsx)(l1r,{row:e,columns:t,valueWidth:r,share:O1r(e.share,x),highlighted:h===e.key||u===e.key,dimmed:D1r(e,h),onHover:()=>g(e.key),LinkComponent:p},e.key)),S&&(0,W.jsx)(k1r,{shown:Math.min(y,b.length),total:b.length,limit:o,pageSize:c,onMore:()=>v(e=>e+1),onLess:()=>v(0)})]})]})}d9.Header=s1r;var N1r={agents:lp.AGENT,workflows:lp.WORKFLOW_RUN,tools:lp.TOOL},P1r=[{label:`Error rate`}],F1r=(e,t)=>wQr(t>0?e/t:0);function I1r({onViewTraces:e,onViewErrors:t,onEntityClick:n}){let[r,i]=(0,U.useState)(`agents`),a=N1r[r],o=_Qr({...Y7(),queryOptions:{placeholderData:E_}}),s={agents:o.data?.agentData??[],workflows:o.data?.workflowData??[],tools:o.data?.toolData??[]},c=s[r],l=c.map(e=>({key:e.name,label:e.name,share:e.completed+e.errors,value:Z7(e.completed+e.errors),cells:[F1r(e.errors,e.completed+e.errors)],onClick:n&&(()=>n(a,e.name))})),u=new Map(c.map(e=>[e.name,e.errors])),d=[...s.agents,...s.workflows,...s.tools].reduce((e,t)=>e+t.completed+t.errors,0),f={title:`Trace volume`,description:`Runs and calls, with error rate.`,actions:(e||t)&&(0,W.jsxs)(W.Fragment,{children:[e&&(0,W.jsx)(n9,{onClick:()=>e(a)}),t&&(0,W.jsx)(O$r,{onClick:()=>t(a)})]}),toolbar:(0,W.jsxs)(R7.Toolbar,{children:[(0,W.jsxs)(R7.Tabs,{value:r,onValueChange:i,children:[(0,W.jsx)(R7.Tab,{value:`agents`,children:`Agents`}),(0,W.jsx)(R7.Tab,{value:`workflows`,children:`Workflows`}),(0,W.jsx)(R7.Tab,{value:`tools`,children:`Tools`})]}),(0,W.jsx)(d9.Header,{columns:P1r,valueLabel:`Runs`})]})};return o.isError?(0,W.jsx)(B7,{...f,children:(0,W.jsx)(V7,{})}):(0,W.jsx)(B7,{...f,summary:(0,W.jsx)(R7.Summary,{value:Z7(d),label:`runs and calls`,isLoading:o.isLoading}),isUpdating:o.isPlaceholderData,children:(0,W.jsx)(z7,{children:(0,W.jsx)(d9,{rows:l,columns:P1r,valueLabel:`Runs`,showHeader:!1,color:X7.sky,other:e=>{let t=e.reduce((e,t)=>e+(u.get(t.key)??0),0),n=e.reduce((e,t)=>e+t.share,0);return{value:Z7(n),cells:[F1r(t,n)]}},emptyState:`No runs in this range.`,isLoading:o.isLoading},r)})})}var L1r=[`mastra_model_total_input_tokens`,`mastra_model_total_output_tokens`],R1r=100;function z1r(e){let t=J(),{filters:n,filterKey:r}=Y7();return W_({queryKey:[`metrics`,`token-spend`,e,r],placeholderData:E_,queryFn:async()=>{let{groups:r}=await t.getMetricBreakdown({name:L1r,groupBy:[e],aggregation:`sum`,orderDirection:`DESC`,limit:R1r,filters:n});return r.map(t=>({key:String(t.dimensions[e]??`unknown`),tokens:t.value,cost:t.estimatedCost??0}))}})}var B1r={placeholderData:E_},V1r=[{label:`Tokens`}];function H1r(e){let[t,n]=(0,U.useState)(`agents`);return t===`models`?(0,W.jsx)(W1r,{...e,onViewChange:n}):t===`threads`?(0,W.jsx)(G1r,{...e,onViewChange:n}):(0,W.jsx)(U1r,{...e,onViewChange:n})}function U1r(e){let{onAgentClick:t}=e,{data:n=[],isLoading:r,isPlaceholderData:i,isError:a}=mQr({...Y7(),queryOptions:B1r}),o=n.map(e=>({key:e.name,cost:e.cost??0,tokens:e.total,onClick:t&&(()=>t(e.name))}));return(0,W.jsx)(K1r,{view:`agents`,...e,rows:o,isLoading:r,isUpdating:i,isError:a})}function W1r(e){let{onModelClick:t}=e,{data:n=[],isLoading:r,isPlaceholderData:i,isError:a}=z1r(`model`),o=n.map(e=>({...e,onClick:t&&(()=>t(e.key))}));return(0,W.jsx)(K1r,{view:`models`,...e,rows:o,isLoading:r,isUpdating:i,isError:a})}function G1r(e){let{onThreadClick:t}=e,{data:n=[],isLoading:r,isPlaceholderData:i,isError:a}=z1r(`threadId`),o=n.map(e=>({...e,onClick:t&&(()=>t(e.key))}));return(0,W.jsx)(K1r,{view:`threads`,...e,rows:o,isLoading:r,isUpdating:i,isError:a})}function K1r({view:e,onViewChange:t,onViewTraces:n,rows:r,isLoading:i,isUpdating:a,isError:o}){let s=new Map(r.map(e=>[e.key,e.tokens])),c=r.map(e=>({key:e.key,label:e.key,share:e.cost,value:Q7(e.cost),cells:[Z7(e.tokens)],onClick:e.onClick})),l={title:`Usage`,description:`Who is spending: cost share, with tokens.`,actions:n&&(0,W.jsx)(n9,{onClick:n}),toolbar:(0,W.jsxs)(R7.Toolbar,{children:[(0,W.jsxs)(R7.Tabs,{value:e,onValueChange:t,children:[(0,W.jsx)(R7.Tab,{value:`agents`,children:`Agents`}),(0,W.jsx)(R7.Tab,{value:`models`,children:`Models`}),(0,W.jsx)(R7.Tab,{value:`threads`,children:`Threads`})]}),(0,W.jsx)(d9.Header,{columns:V1r,valueLabel:`Cost`})]})};return o?(0,W.jsx)(B7,{...l,children:(0,W.jsx)(V7,{})}):(0,W.jsx)(B7,{...l,summary:(0,W.jsx)(R7.Summary,{value:Q7(r.reduce((e,t)=>e+t.cost,0)),label:`cost`,isLoading:i}),isUpdating:a,children:(0,W.jsx)(z7,{children:(0,W.jsx)(d9,{rows:c,columns:V1r,valueLabel:`Cost`,showHeader:!1,color:X7.green,other:e=>({value:Q7(e.reduce((e,t)=>e+t.share,0)),cells:[Z7(e.reduce((e,t)=>e+(s.get(t.key)??0),0))]}),emptyState:`No model usage in this range.`,isLoading:i})})})}var q1r=100;function J1r(){let e=J(),{filters:t,filterKey:n,timestamp:r}=Y7(),{interval:i}=U7(r.start,r.end),a=TZr(i);return W_({queryKey:[`metrics`,`scores`,n,i],placeholderData:E_,queryFn:async()=>{let n=await e.listScores({filters:t,pagination:{page:0,perPage:q1r}}),o=new Map(n.scores.map(e=>[e.scorerId,e.scorerName??e.scorerId])),s=[...o.keys()].toSorted(),c=await Promise.all(s.map(n=>Promise.all([e.getScoreAggregate({scorerId:n,aggregation:`avg`,filters:t}),e.getScoreTimeSeries({scorerId:n,aggregation:`avg`,interval:i,filters:t})]))),l=OZr(r.start,r.end,a),u=kZr(l,a),d=[];return c.forEach(([e,t],n)=>{let r=s[n];if(r){d.push({scorerId:r,name:o.get(r)??r,average:e.value??0});for(let e of t.series)for(let t of e.points){let e=l[u(t)??-1];e&&(e[r]=t.value)}}}),{scorers:d,buckets:l}}})}var Y1r=[X7.green,X7.sky,X7.violet,X7.teal,X7.indigo],X1r=e=>e.toFixed(2),Z1r=e=>String(+e.toFixed(2));function Q1r(e){return e.map(({scorerId:e,name:t,average:n},r)=>({dataKey:e,label:t,color:Y1r[r%Y1r.length]??X7.neutral,aggregate:()=>({value:X1r(n)})}))}function $1r(){let{data:e,isLoading:t,isError:n,isPlaceholderData:r}=J1r(),i=e?.scorers??[],a={title:`Scores`,description:`Average scorer result, 0 to 1.`};return n?(0,W.jsx)(B7,{...a,children:(0,W.jsx)(V7,{})}):(0,W.jsx)(B7,{...a,summary:(0,W.jsx)(R7.Summary,{value:String(i.length),label:i.length===1?`scorer`:`scorers`,isLoading:t}),isUpdating:r,children:(0,W.jsx)(z7,{isEmpty:!t&&i.length===0,emptyMessage:`No scores in this range.`,children:(0,W.jsx)(s$r,{data:e?.buckets??[],series:Q1r(i),height:`fill`,yDomain:[0,1],valueFormatter:X1r,axisFormatter:Z1r,isLoading:t,...xQr})})})}function e0r({experiment:e,metrics:t}){let{data:n}=eR({experimentId:e.id,experimentStatus:e.status,queryOptions:{enabled:!!e.id}}),{data:r,isLoading:i}=Dqr({experiments:(0,U.useMemo)(()=>[{id:e.id,status:e.status}],[e.id,e.status]),supportsMetrics:t?.isEnabled??!1}),a=e.status===`running`||e.status===`pending`||i,o=(0,U.useMemo)(()=>{if(!n)return;let e=Object.values(n).flat();return e.length===0?null:e.reduce((e,t)=>e+t.score,0)/e.length},[n]),s=e.startedAt??e.createdAt,c=!e.startedAt||!e.completedAt?`—`:VT(new Date(e.completedAt).getTime()-new Date(e.startedAt).getTime())??`—`,l=r[e.id]?.summary,u=b7(l),d=l?.inputTokens===void 0&&l?.outputTokens===void 0?`input + output`:`${y7(l.inputTokens??0)} in · ${y7(l.outputTokens??0)} out`,f=t?.isEnabled?t.data?.avgAgentDurationMs:void 0,p=f==null?void 0:VT(Math.round(f)),m=p?`${p} avg per item`:s?`started ${$T(new Date(s),`date-time`)}`:`not started`;return(0,W.jsxs)(iZr,{children:[t?.isEnabled&&(0,W.jsx)(r9,{label:`Total cost`,icon:JS,value:l?.estimatedCost===void 0?`—`:v7(l.estimatedCost,l.costUnit),detail:`estimated`,isLoading:a}),(0,W.jsx)(r9,{label:`Run duration`,icon:JC,value:c,detail:m}),t?.isEnabled&&(0,W.jsx)(r9,{label:`Total tokens`,icon:gC,value:u===void 0?`—`:y7(u),detail:d,isLoading:a}),(0,W.jsx)(r9,{label:`Avg score`,icon:fC,value:o==null?`—`:o.toFixed(3),detail:o==null?`no scores`:`across all scorers`,isLoading:o===void 0})]})}function t0r({selection:e}){let{selectedIds:t,selectedResults:n,tagVocabulary:r,isFlagging:i,isTagging:a}=e,o=i||a,s=t.size===0;return(0,W.jsxs)(`div`,{className:`flex min-h-8 items-center gap-2 whitespace-nowrap`,children:[(0,W.jsxs)(Y,{variant:`ghost`,size:`sm`,disabled:s,iconEnd:s?void 0:(0,W.jsx)(tw,{}),onClick:e.clearSelection,tooltip:s?void 0:`Clear selection`,className:`tabular-nums`,children:[t.size,` selected`]}),!s&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Y,{size:`sm`,disabled:o,onClick:e.flagSelectedForReview,icon:(0,W.jsx)(pGe,{}),children:`Request review`}),(0,W.jsx)(HXr,{selectedResults:n,vocabulary:r,onAddTag:e.addTagToSelected,disabled:o})]})]})}var n0r=e=>Math.floor(Math.random()*e);function r0r({messages:e,intervalMs:t=3e3}){let n=e.length,[r,i]=(0,U.useState)(()=>n0r(n));return(0,U.useEffect)(()=>{if(n<2)return;let e=setInterval(()=>i(e=>(e+1+n0r(n-1))%n),t);return()=>clearInterval(e)},[n,t]),n===0?null:(0,W.jsx)(W.Fragment,{children:e[r%n]})}function i0r(e=1e3){let[t,n]=(0,U.useState)(()=>Date.now());return(0,U.useEffect)(()=>{let t=setInterval(()=>n(Date.now()),e);return()=>clearInterval(t)},[e]),t}var a0r=[`Calling your target…`,`Working through the dataset items…`,`Feeding inputs to your agent…`,`Waiting on model responses…`,`Consulting the scorers…`,`Comparing outputs to ground truth…`,`Grading the answers…`,`Checking tool calls…`,`Following the agent’s trajectory…`,`Counting tokens…`,`Estimating the cost…`,`Timing each run…`,`Looking for hallucinations…`,`Weighing relevance…`,`Judging faithfulness…`,`Asking the LLM judge…`,`Recording traces…`,`Collecting scores…`,`Spotting regressions…`,`Tallying the results…`],o0r=`Waiting to start…`;function s0r({experiment:e}){let{status:t,totalItems:n,succeededCount:r,failedCount:i,startedAt:a}=e,o=i0r(),s=r+i,c=n===1?`item`:`items`,l=t===`pending`,u=a?Math.floor((o-new Date(a).getTime())/1e3)*1e3:void 0,d=!l&&u!==void 0?VT(u):void 0;return(0,W.jsx)(aw,{variant:`fill`,as:`h2`,iconSlot:(0,W.jsx)(dt,{}),titleSlot:l?`Experiment queued`:`Experiment in progress`,descriptionSlot:(0,W.jsxs)(`span`,{className:`flex flex-col items-center gap-1`,children:[(0,W.jsx)(`span`,{children:l?o0r:(0,W.jsx)(r0r,{messages:a0r})}),(0,W.jsxs)(`span`,{className:`tabular-nums`,children:[(0,W.jsxs)(`span`,{children:[s,` / `,n,` `,c,` finished`]}),d&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{"aria-hidden":!0,children:` · `}),(0,W.jsxs)(`span`,{children:[d,` elapsed`]})]})]})]})})}var c0r=()=>{let{experimentId:e}=Kv(),{data:t}=bMt({experimentId:e??``,queryOptions:{enabled:!!e,retryOnMount:!1}});return{experimentId:e,experiment:t}},l0r=()=>{let{experimentId:e,experiment:t}=c0r(),n=t?.datasetId??``,{data:r}=uMt({datasetId:n,experimentId:e??``,queryOptions:{enabled:!!(n&&e),retryOnMount:!1}});return r??t};function u0r(){let{experimentId:e,experiment:t}=c0r();if(!e)return null;let n=e.length>8?`${e.slice(0,8)}...`:e;return t?.name||n}function d0r(){let e=l0r();return e?.status?(0,W.jsx)(fJr,{status:e.status}):null}function f0r(){let e=l0r();if(!e||e.status===`running`||e.status===`pending`)return null;let{totalItems:t,failedCount:n}=e,r=`${t} ${t===1?`item`:`items`}`;return(0,W.jsx)(Z,{as:`span`,variant:`caption`,tone:`muted`,className:`whitespace-nowrap tabular-nums`,children:n>0?`${r} · ${n} errored`:r})}function p0r({datasetId:e,experimentId:t}){let[n,r]=(0,U.useState)(!1),{updateExperimentResult:i}=YL();return{addTag:(0,U.useCallback)(async(a,o)=>{let s=o.filter(e=>!(e.tags??[]).includes(a));if(n||s.length===0)return;r(!0);let c=0;try{c=(await Promise.allSettled(s.map(n=>i.mutateAsync({datasetId:e,experimentId:t,resultId:n.id,tags:[...n.tags??[],a]})))).filter(e=>e.status===`fulfilled`).length}finally{r(!1)}c>0?fw(`Tag "${a}" added to ${c} result${c>1?`s`:``}`):fw.error(`Failed to add tag`)},[e,t,n,i]),isPending:n}}function m0r(e,t){let{data:n}=ZL({datasetId:e,queryOptions:{enabled:!!e}});return(0,U.useMemo)(()=>[...new Set([...n?.tags??[],...t.flatMap(e=>e.tags??[])])].sort(),[n?.tags,t])}function h0r({datasetId:e,experimentId:t,results:n}){let[r,i]=(0,U.useState)(new Set),[a,o]=(0,U.useState)(!1),{updateExperimentResult:s}=YL(),{addTag:c,isPending:l}=p0r({datasetId:e,experimentId:t}),u=m0r(e,n),d=(0,U.useMemo)(()=>n.filter(e=>r.has(e.id)),[n,r]),f=(0,U.useCallback)(e=>{i(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),p=(0,U.useCallback)(()=>i(new Set),[]);return{selectedIds:r,selectedResults:d,toggleSelect:f,toggleSelectAll:(0,U.useCallback)(()=>{i(e=>n.length>0&&n.every(t=>e.has(t.id))?new Set:new Set(n.map(e=>e.id)))},[n]),clearSelection:p,flagSelectedForReview:(0,U.useCallback)(async()=>{if(a||r.size===0)return;o(!0);let n=new Set;try{for(let i of r)try{await s.mutateAsync({datasetId:e,experimentId:t,resultId:i,status:`needs-review`}),n.add(i)}catch{}}finally{o(!1)}n.size>0&&(i(e=>{let t=new Set(e);for(let e of n)t.delete(e);return t}),fw(`${n.size} result${n.size>1?`s`:``} flagged for review`))},[e,t,a,r,s]),isFlagging:a,addTagToSelected:(0,U.useCallback)(e=>c(e,d),[c,d]),isTagging:l,tagVocabulary:u}}var g0r=[];function f9({crumbs:e,children:t}){return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:e}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Experiment`}),(0,W.jsx)(`div`,{}),(0,W.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:t})]})}function _0r(){let{experimentId:e}=Kv(),t=[_R(`/experiments`),{id:`experiment`,Component:u0r,icon:d0r,Action:f0r}],n=Gv(),[r,i]=(0,U.useState)(!1),a=G8(),{data:o,isLoading:s,error:c}=bMt({experimentId:e??``,queryOptions:{enabled:!!e}}),l=o?.datasetId??``,{data:u,isLoading:d,error:f}=uMt({datasetId:l,experimentId:e??``,queryOptions:{enabled:!!l&&!!e}}),p=u?.status===`completed`||u?.status===`failed`,{data:m,isLoading:h,setEndOfListElement:g,isFetchingNextPage:_,hasNextPage:v}=fMt({datasetId:l,experimentId:e??``,experimentStatus:u?.status,queryOptions:{enabled:!!l&&!!e&&p}}),{supportsMetrics:y}=Z8(),b=Oqr({experimentId:e,experimentStatus:u?.status,supportsMetrics:y,queryOptions:{enabled:!!e&&y&&p}}),x=h0r({datasetId:l,experimentId:e??``,results:m??g0r}),S=c??f;if(!e||s||d)return null;if(S&&iR(S))return(0,W.jsx)(f9,{crumbs:t,children:(0,W.jsx)(CK,{})});if(S&&aR(S))return(0,W.jsx)(f9,{crumbs:t,children:(0,W.jsx)(SK,{resource:`datasets`})});let C=(0,W.jsx)(f9,{crumbs:t,children:(0,W.jsx)(aw,{titleSlot:`Experiment not found`,descriptionSlot:`No experiment with id "${e}".`,actionSlot:(0,W.jsx)(Y,{render:(0,W.jsx)(ey,{to:`/experiments`}),icon:(0,W.jsx)(OS,{}),children:`Back to experiments`})})});return S&&oR(S)?C:S?(0,W.jsx)(f9,{crumbs:t,children:(0,W.jsx)(aw,{tone:`error`,titleSlot:`Failed to load experiment`,descriptionSlot:S instanceof Error?S.message:`An unexpected error occurred. Please try again.`})}):!l||!u?C:(0,W.jsx)(Bqr,{experimentId:e,datasetId:l,experimentStatus:u.status,results:m??[],isLoadingResults:h,hasNextPage:v,children:(0,W.jsxs)(`div`,{className:`h-full`,children:[(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:t}),headerActions:(0,W.jsx)(zXr,{experiment:u,onDeleteClick:()=>i(!0)}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:e}),p?(0,W.jsxs)(`div`,{className:`grid content-start gap-4`,children:[(0,W.jsx)(e0r,{experiment:u,metrics:b}),(0,W.jsxs)(`div`,{className:`grid content-start gap-1`,children:[(0,W.jsx)(t0r,{selection:x}),(0,W.jsx)(aJr,{experimentId:e,experimentStatus:u.status,results:m??[],isLoading:h,setEndOfListElement:g,isFetchingNextPage:_,hasNextPage:v,selectedIds:x.selectedIds,onToggleSelect:x.toggleSelect,onToggleSelectAll:x.toggleSelectAll,supportsMetrics:y})]})]}):(0,W.jsx)(s0r,{experiment:u})]}),(0,W.jsx)(rZr,{withQueryTrace:a.enabled,withFeedback:a.enabled}),(0,W.jsx)(JJr,{open:r,onOpenChange:i,experimentId:e,experimentName:u.name??void 0,onSuccess:()=>n(`/experiments`)})]})})}function v0r({tag:e,onRename:t,onRemove:n}){let[r,i]=(0,U.useState)(!1),[a,o]=(0,U.useState)(e),s=(0,U.useRef)(null);(0,U.useEffect)(()=>{r&&(s.current?.focus(),s.current?.select())},[r]);let c=()=>{let n=a.trim();n&&n!==e&&t(n),i(!1)};return r?(0,W.jsxs)(`span`,{className:`inline-flex items-center gap-0.5 rounded-md border border-border bg-card px-1`,children:[(0,W.jsx)(_I,{variant:`unstyled`,ref:s,value:a,onChange:e=>o(e.target.value),onKeyDown:t=>{t.key===`Enter`&&(t.preventDefault(),c()),t.key===`Escape`&&(o(e),i(!1))},onBlur:c,className:`h-auto w-20 bg-transparent px-0 py-0.5 text-caption text-muted-foreground outline-hidden`}),(0,W.jsx)(`button`,{type:`button`,onMouseDown:e=>{e.preventDefault(),c()},className:H(Tw,`p-0.5`),children:(0,W.jsx)(LS,{className:`h-3 w-3`})})]}):(0,W.jsxs)(`span`,{className:`group inline-flex items-center gap-0.5 rounded-md border border-border bg-card px-1.5 py-0.5 text-muted-foreground`,children:[(0,W.jsx)(Z,{as:`span`,variant:`caption`,children:e}),(0,W.jsx)(`button`,{type:`button`,onClick:()=>{o(e),i(!0)},className:H(Tw,`p-0.5 opacity-0 transition-opacity group-hover:opacity-100`),title:`Edit tag`,children:(0,W.jsx)(kC,{className:`h-3 w-3`})}),(0,W.jsx)(`button`,{type:`button`,onClick:n,className:`p-0.5 text-placeholder opacity-0 transition-opacity group-hover:opacity-100 hover:text-destructive-foreground`,title:`Remove tag`,children:(0,W.jsx)(tw,{className:`h-3 w-3`})})]})}function y0r({selectedCount:e,vocabulary:t,onApplyTag:n,onRemoveTag:r,onNewTag:i,size:a=`sm`}){let[o,s]=(0,U.useState)(!1),[c,l]=(0,U.useState)(``),u=t.filter(e=>e.toLowerCase().includes(c.toLowerCase())),d=c.trim()&&!t.includes(c.trim());return(0,W.jsxs)(mI,{open:o,onOpenChange:s,children:[(0,W.jsx)(hI,{asChild:!0,children:(0,W.jsxs)(Y,{size:a,icon:(0,W.jsx)(GC,{}),children:[`Tag `,e,` items`]})}),(0,W.jsxs)(gI,{className:`w-56 p-2`,align:`end`,children:[(0,W.jsx)(_I,{value:c,onChange:e=>l(e.target.value),onKeyDown:e=>{e.key===`Enter`&&c.trim()&&(e.preventDefault(),d?i(c.trim()):n(c.trim()),l(``))},placeholder:`Search or create tag...`,className:`mb-1 h-7 text-caption`,autoFocus:!0}),(0,W.jsxs)(`div`,{className:`max-h-40 space-y-0.5 overflow-y-auto`,children:[u.map(e=>(0,W.jsxs)(`div`,{className:`flex items-center justify-between rounded px-2 py-1 hover:bg-fill-subtle`,children:[(0,W.jsx)(`button`,{type:`button`,onClick:()=>n(e),className:`flex-1 text-left text-muted-foreground`,children:(0,W.jsx)(Z,{as:`span`,variant:`caption`,className:`block`,children:e})}),(0,W.jsx)(`button`,{type:`button`,onClick:()=>r(e),className:`ml-2 text-placeholder hover:text-destructive-foreground`,children:(0,W.jsx)(tw,{className:`h-3 w-3`})})]},e)),d&&(0,W.jsx)(`button`,{type:`button`,onClick:()=>{i(c.trim()),l(``)},className:`w-full rounded px-2 py-1 text-left text-info-indicator hover:bg-fill-subtle`,children:(0,W.jsxs)(Z,{as:`span`,variant:`caption`,className:`block`,children:[`Create & apply "`,c.trim(),`"`]})})]})]})]})}var b0r=[{name:`itemId`,label:`Item ID`,size:`auto`},{name:`input`,label:`Input`,size:`20rem`},{name:`tags`,label:`Tags`,size:`auto`},{name:`scores`,label:`Scores`,size:`6rem`}],x0r=`__untagged__`,p9=`all`,S0r=[{value:`review`,label:`Review queue`},{value:`completed`,label:`Completed`}];function C0r({datasetId:e,experimentId:t,experiments:n,isLoadingExperiments:r,targetType:i,targetId:a,featuredItemId:o,toolbarStart:s,renderFilters:c,toolbarEnd:l,onCreateScorer:u,breadcrumbs:d,withQueryTrace:f,withFeedback:p}){let m=J(),{paths:h}=Ft(),{data:g}=ZL({datasetId:e??``,queryOptions:{enabled:!!e}}),{data:_,isLoading:v}=GJr({experimentId:t,targetType:i,targetId:a,experiments:n,isLoadingExperiments:r}),{data:y,isLoading:b}=KJr({experimentId:t,targetType:i,targetId:a,experiments:n,isLoadingExperiments:r}),{updateExperimentResult:x}=YL(),[S,C]=(0,U.useState)(o??null);(0,U.useEffect)(()=>{o!==void 0&&C(o)},[o]);let[w,T]=(0,U.useState)(null),[E,D]=(0,U.useState)(new Set),[O,k]=(0,U.useState)(!1),[A,j]=(0,U.useState)(!1),[M,N]=(0,U.useState)(!1),[P,F]=(0,U.useState)(``),[I,L]=(0,U.useState)(``),[R,z]=(0,U.useState)(``),[B,V]=(0,U.useState)([]),[ee,te]=(0,U.useState)(!1),ne=(0,U.useMemo)(()=>_??[],[_]),re=(0,U.useMemo)(()=>{let e=new Set;if(g?.tags)for(let t of g.tags)e.add(t);for(let t of ne)for(let n of t.tags)e.add(n);return[...e].sort()},[g,ne]),ie=(0,U.useMemo)(()=>w?w===x0r?ne.filter(e=>e.tags.length===0):ne.filter(e=>e.tags.includes(w)):ne,[ne,w]),ae=(0,U.useMemo)(()=>{let e=new Map,t=0;for(let n of ne){n.tags.length===0&&t++;for(let t of n.tags)e.set(t,(e.get(t)??0)+1)}let n=[...e.entries()].sort((e,t)=>t[1]-e[1]).map(([e])=>({value:e,label:e}));return[{value:p9,label:`All tags`},...t>0?[{value:x0r,label:`Untagged`}]:[],...n]},[ne]),oe=!!w||O,se=(0,U.useCallback)(()=>{T(null),k(!1),C(null)},[]),ce=(0,U.useCallback)((e,t)=>{let n=ne.find(t=>t.id===e);n?.experimentId&&n?.datasetId&&x.mutate({datasetId:n.datasetId,experimentId:n.experimentId,resultId:n.id,tags:t})},[ne,x]),le=(0,U.useCallback)(e=>{let t=ne.find(t=>t.id===e);D(t=>{let n=new Set(t);return n.delete(e),n}),S===e&&C(null),t?.experimentId&&t?.datasetId&&x.mutate({datasetId:t.datasetId,experimentId:t.experimentId,resultId:t.id,status:null})},[ne,x,S]),ue=(0,U.useCallback)(e=>{let t=ne.find(t=>t.id===e);D(t=>{let n=new Set(t);return n.delete(e),n}),S===e&&C(null),t?.experimentId&&t?.datasetId&&x.mutate({datasetId:t.datasetId,experimentId:t.experimentId,resultId:t.id,status:`complete`})},[ne,x,S]),de=(0,U.useMemo)(()=>{let e=O?y??[]:ie;return!O||!w?e:w===x0r?e.filter(e=>e.tags.length===0):e.filter(e=>e.tags.includes(w))},[O,y,ie,w]),fe=O?b:!1,pe=(0,U.useMemo)(()=>new Set(de.map(e=>e.id)),[de]),me=(0,U.useMemo)(()=>[...E].filter(e=>pe.has(e)).length,[E,pe]),he=de.length>0&&me===de.length,ge=(0,U.useCallback)(e=>{D(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),_e=(0,U.useCallback)(()=>{D(he?new Set:new Set(de.map(e=>e.id)))},[he,de]),ve=(0,U.useCallback)(e=>{for(let t of E){let n=ne.find(e=>e.id===t);n&&!n.tags.includes(e)&&ce(t,[...n.tags,e])}},[ne,E,ce]),ye=(0,U.useCallback)(e=>{for(let t of E){let n=ne.find(e=>e.id===t);n&&n.tags.includes(e)&&ce(t,n.tags.filter(t=>t!==e))}},[ne,E,ce]),be=(0,U.useCallback)(()=>{for(let e of E)ue(e);D(new Set)},[E,ue]),xe=(0,U.useCallback)(()=>{for(let e of E)le(e);D(new Set)},[E,le]),Se=(0,U.useCallback)(()=>{F(``),N(!0)},[]),Ce=(0,U.useCallback)(async()=>{if(I&&R){j(!0),N(!1);try{let e=ne.filter(e=>E.has(e.id));if(e.length===0){j(!1);return}let t=await m.clusterFailures({modelId:`${I}/${R}`,items:e.map(e=>({id:e.id,input:e.input,output:e.output??void 0,error:typeof e.error==`string`?e.error:e.error?String(e.error):void 0,scores:e.scores,existingTags:e.tags.length>0?e.tags:void 0})),availableTags:re.length>0?re:void 0,prompt:P||void 0});t.proposedTags&&t.proposedTags.length>0&&(V(t.proposedTags.map(e=>({...e,accepted:!0}))),te(!0))}catch(e){console.error(`Analysis failed:`,e)}finally{j(!1)}}},[I,R,ne,E,m,re,P]),we=(0,U.useCallback)(()=>{for(let e of B){if(!e.accepted)continue;let t=ne.find(t=>t.id===e.itemId);if(t){let n=[...new Set([...t.tags,...e.tags])];ce(t.id,n)}}te(!1)},[B,ne,ce]),Te=(0,U.useCallback)(e=>{C(t=>t===e?null:e)},[]),Ee=(0,U.useMemo)(()=>S?de.find(e=>e.id===S)??null:null,[S,de]),{data:De}=eR({experimentId:Ee?.experimentId??``,queryOptions:{enabled:!!Ee?.experimentId}}),Oe=S?de.findIndex(e=>e.id===S):-1,ke=Oe>0?()=>C(de[Oe-1].id):void 0,Ae=Oe>=0&&Oe<de.length-1?()=>C(de[Oe+1].id):void 0,je=!O&&E.size>0,Me=!!u&&!O&&ie.length>0,Ne=O?`completed`:`review`,Pe=e=>{k(e===`completed`),C(null)},Fe=(0,W.jsxs)(VY,{children:[(0,W.jsx)(VY.Start,{children:c?(0,W.jsxs)(W.Fragment,{children:[s,c({status:Ne,onStatusChange:Pe,tag:w,onTagChange:T,tagOptions:ae.filter(e=>e.value!==p9)})]}):(0,W.jsxs)(W.Fragment,{children:[s,(0,W.jsxs)(TN,{value:Ne,onValueChange:e=>Pe(e===`completed`?`completed`:`review`),children:[(0,W.jsx)(DN,{"aria-label":`Status`,size:`md`,className:`whitespace-nowrap`,children:(0,W.jsx)(EN,{placeholder:`Select an option`})}),(0,W.jsx)(ON,{children:S0r.map(e=>(0,W.jsx)(kN,{value:e.value,children:e.label},e.value))})]}),ae.length>1&&(0,W.jsxs)(TN,{value:w??p9,onValueChange:e=>T(e===p9?null:e),children:[(0,W.jsx)(DN,{"aria-label":`Tags`,size:`md`,className:`whitespace-nowrap`,children:(0,W.jsx)(EN,{placeholder:`Select an option`})}),(0,W.jsx)(ON,{children:ae.map(e=>(0,W.jsx)(kN,{value:e.value,children:e.label},e.value))})]}),oe&&(0,W.jsx)(Y,{onClick:se,size:`sm`,variant:`default`,icon:(0,W.jsx)(tw,{}),children:`Reset`})]})}),(je||l||Me)&&(0,W.jsxs)(VY.End,{children:[l,Me&&(0,W.jsxs)(Y,{size:`md`,onClick:()=>u?.(ie.map(e=>({input:e.input,output:e.output}))),children:[(0,W.jsx)(cS,{size:`xs`,children:(0,W.jsx)(fC,{})}),`Create scorer`]}),je&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(y0r,{size:`md`,selectedCount:E.size,vocabulary:re,onApplyTag:ve,onRemoveTag:ye,onNewTag:e=>ve(e)}),(0,W.jsx)(Y,{variant:`primary`,onClick:be,icon:(0,W.jsx)(US,{}),children:`Mark as reviewed`}),(0,W.jsxs)(CD,{children:[(0,W.jsx)(CD.Trigger,{asChild:!0,children:(0,W.jsx)(Y,{size:`icon-md`,disabled:A,"aria-label":`More actions`,children:A?(0,W.jsx)(dt,{className:`h-4 w-4`}):(0,W.jsx)(eC,{})})}),(0,W.jsxs)(CD.Content,{align:`end`,children:[(0,W.jsxs)(CD.Item,{onSelect:Se,children:[(0,W.jsx)(cS,{size:`xs`,children:(0,W.jsx)(HC,{})}),`Analyze`]}),(0,W.jsx)(CD.Separator,{}),(0,W.jsxs)(CD.Item,{onSelect:xe,children:[(0,W.jsx)(cS,{size:`xs`,children:(0,W.jsx)(YC,{})}),`Remove from queue`]})]})]})]})]})]});if(v)return(0,W.jsxs)(Bw,{breadcrumbs:d,actionRow:Fe,children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Review Queue`}),(0,W.jsx)(dt,{fill:!0})]});let Ie=(0,W.jsx)(tZr,{withQueryTrace:f,withFeedback:p,result:Ee??void 0,title:`Review item ${Ee?.id??``}`,scores:Ee?De?.[Ee.itemId]:void 0,experimentLink:Ee?.experimentId?h.experimentItemLink(Ee.experimentId,Ee.itemId):void 0,onComplete:O||!Ee?void 0:()=>ue(Ee.id),onPrevious:ke,onNext:Ae,onClose:()=>C(null)});return(0,W.jsxs)(Bw,{breadcrumbs:d,actionRow:Fe,children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Review Queue`}),(0,W.jsx)(HE,{open:M,onOpenChange:N,children:(0,W.jsxs)(UE,{children:[(0,W.jsxs)(WE,{children:[(0,W.jsx)(qE,{children:`Analyze Items`}),(0,W.jsx)(JE,{children:`Use an LLM to automatically suggest tags for the selected items.`})]}),(0,W.jsxs)(KE,{children:[(0,W.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,W.jsxs)(VM,{className:`gap-1`,children:[(0,W.jsx)(UM,{children:`Provider`}),(0,W.jsx)(QY,{value:I,onValueChange:L})]}),(0,W.jsxs)(VM,{className:`gap-1`,children:[(0,W.jsx)(UM,{children:`Model`}),(0,W.jsx)($Y,{llmId:I,value:R,onValueChange:z})]})]}),(0,W.jsxs)(Z,{variant:`meta`,tone:`muted`,children:[E.size,` item`,E.size===1?``:`s`,` will be analyzed`]}),(0,W.jsxs)(VM,{className:`gap-1`,children:[(0,W.jsx)(UM,{children:`Instructions (optional)`}),(0,W.jsx)(MN,{className:`text-caption`,value:P,onChange:e=>F(e.target.value),placeholder:`E.g., Focus on safety issues and factual errors...`,rows:3})]})]}),(0,W.jsxs)(GE,{children:[(0,W.jsx)(YE,{children:`Cancel`}),(0,W.jsx)(VE,{onConfirm:Ce,disabled:!I||!R||A,children:`Analyze`})]})]})}),(0,W.jsx)(HE,{open:ee,onOpenChange:te,children:(0,W.jsxs)(UE,{size:`lg`,children:[(0,W.jsxs)(WE,{children:[(0,W.jsx)(qE,{children:`Review Proposed Tags`}),(0,W.jsxs)(JE,{children:[B.filter(e=>e.accepted).length,` of `,B.length,` proposals selected`]})]}),(0,W.jsx)(KE,{children:B.map((e,t)=>{let n=ne.find(t=>t.id===e.itemId);return(0,W.jsx)(`div`,{className:H(`rounded-lg border p-3`,!e.accepted&&`opacity-50`),children:(0,W.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,W.jsx)(fI,{checked:e.accepted,onCheckedChange:e=>V(n=>n.map((n,r)=>r===t?{...n,accepted:!!e}:n))}),(0,W.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,W.jsx)(Z,{variant:`meta`,tone:`muted`,className:`block truncate`,children:n?typeof n.input==`string`?n.input.slice(0,100):JSON.stringify(n.input).slice(0,100):e.itemId}),(0,W.jsx)(`div`,{className:`mt-1.5 flex flex-wrap gap-1`,children:e.tags.map((e,n)=>(0,W.jsx)(v0r,{tag:e,onRename:e=>V(r=>r.map((r,i)=>i===t?{...r,tags:r.tags.map((t,r)=>r===n?e:t)}:r)),onRemove:()=>V(e=>e.map((e,r)=>r===t?{...e,tags:e.tags.filter((e,t)=>t!==n)}:e))},`${e}-${n}`))}),e.reason&&(0,W.jsx)(Z,{variant:`meta`,tone:`muted`,className:`mt-1 block italic`,children:e.reason})]})]})},e.itemId)})}),(0,W.jsxs)(GE,{children:[(0,W.jsx)(YE,{children:`Cancel`}),(0,W.jsxs)(VE,{onConfirm:we,disabled:B.filter(e=>e.accepted).length===0,children:[`Accept `,B.filter(e=>e.accepted).length,` proposals`]})]})]})}),(0,W.jsxs)(`div`,{className:`grid h-full min-h-0 w-full grid-cols-1 gap-4 overflow-hidden`,children:[(0,W.jsx)(`div`,{className:`min-h-0 w-full overflow-hidden`,children:fe?(0,W.jsx)(dt,{fill:!0}):de.length===0?(0,W.jsx)(aw,{titleSlot:O?`No completed reviews yet`:`No items to review`,descriptionSlot:O?`Items marked as complete will appear here for auditing.`:`When experiment results are flagged for review, they will appear here.`,variant:`fill`}):(0,W.jsx)(eJr,{results:de,isLoading:!1,featuredResultId:S,onResultClick:Te,columns:b0r,selectedIds:O?void 0:E,onToggleSelect:O?void 0:ge,onToggleSelectAll:O?void 0:_e})}),Ie]})]})}var w0r=`experiment`,T0r=`status`,E0r=[{value:`review`,label:`Review queue`},{value:`completed`,label:`Completed`}],D0r=[{id:`is`,label:`is`}],O0r=({targetType:e,targetId:t,experimentId:n,status:r,tag:i})=>{let a=KHr({targetType:e,targetId:t});return n&&a.push(K5(w0r,n)),r!==`review`&&a.push(K5(T0r,r)),i&&a.push(K5(`tag`,i)),a},k0r=e=>({...qHr(e),experimentId:q5(e,w0r),status:q5(e,`status`)===`completed`?`completed`:`review`,tag:q5(e,`tag`)||null});function A0r({targetType:e,targetId:t,experimentId:n,status:r,tag:i,experiments:a,tagOptions:o,onChange:s}){let c=JHr(e),l=(0,U.useMemo)(()=>[...c,{id:w0r,label:`Experiment`,icon:lC,color:SR(`pink`),strict:!0,suggestions:a.map(e=>({value:e.id,label:YJr(e)}))},{id:T0r,label:`Status`,icon:US,color:SR(`orange`),strict:!0,suggestions:E0r},{id:`tag`,label:`Tag`,icon:GC,color:SR(`pink`),strict:!0,hidden:o.length===0,suggestions:o}],[c,a,o]),u=(0,U.useMemo)(()=>O0r({targetType:e,targetId:t,experimentId:n,status:r,tag:i}),[e,t,n,r,i]);return(0,W.jsxs)(f8,{fields:l,operators:D0r,value:u,onValueChange:e=>s(k0r(e)),createItemId:e=>e,"aria-label":`Review queue filters`,className:`min-w-64 flex-1`,children:[(0,W.jsx)(f8.Chips,{}),(0,W.jsx)(f8.Input,{placeholder:`Filter review queue…`})]})}var m9=[_R(`/experiments`),_R(`/experiments/review-queue`)],j0r=`experiment`,M0r=`review`;function N0r(){let[e,t]=ty(),n=e.get(Y5),r=HHr(n)?n:``,i=r?e.get(`targetId`)??``:``,a=e.get(j0r),o=e.get(M0r),{Link:s,paths:c}=Ft(),l=G8(),{data:u,error:d}=Aqr({datasetId:void 0,target:{targetType:r,targetId:i}}),f=u?.experiments.find(e=>e.id===a),p=(e,n)=>{e.status!==n.status&&n.onStatusChange(e.status),e.tag!==n.tag&&n.onTagChange(e.tag),t(t=>{let n=new URLSearchParams(t),a=e.targetType!==r,o=a||e.targetId!==i?``:e.experimentId,s=a?``:e.targetId;return e.targetType?n.set(Y5,e.targetType):n.delete(Y5),s?n.set(X5,s):n.delete(X5),o?n.set(j0r,o):n.delete(j0r),n.delete(M0r),n},{replace:!0})};return d&&iR(d)?(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:m9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Review Queue`}),(0,W.jsx)(CK,{variant:`fill`})]}):d&&aR(d)?(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:m9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Review Queue`}),(0,W.jsx)(SK,{variant:`fill`,resource:`experiments`})]}):d?(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:m9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Review Queue`}),(0,W.jsx)(aw,{tone:`error`,variant:`fill`,titleSlot:`Failed to load experiments`,descriptionSlot:d.message})]}):(0,W.jsx)(C0r,{withQueryTrace:l.enabled,withFeedback:l.enabled,breadcrumbs:(0,W.jsx)(IL,{crumbs:m9}),datasetId:f?.datasetId??void 0,experimentId:a??void 0,targetType:r,targetId:i,featuredItemId:o,renderFilters:e=>(0,W.jsx)(A0r,{targetType:r,targetId:i,experimentId:a??``,status:e.status,tag:e.tag,experiments:u?.experiments??[],tagOptions:e.tagOptions,onChange:t=>p(t,e)}),toolbarEnd:a?(0,W.jsx)(Y,{render:(0,W.jsx)(s,{href:c.experimentLink(a)}),icon:(0,W.jsx)(LWe,{}),children:`See experiment`}):void 0})}function P0r({connection:e,isAdmin:t,disconnectPending:n,onDisconnect:r}){return(0,W.jsxs)(`li`,{className:`flex items-center justify-between border-b py-2`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsx)(Z,{as:`p`,variant:`caption`,font:`mono`,children:e.connectionId}),(0,W.jsxs)(Z,{as:`p`,variant:`caption`,tone:`muted`,children:[e.label??`(no label)`,` · `,e.status,e.scope?` · ${e.scope}`:``,t&&e.authorId?` · author: ${e.authorId}`:``]})]}),(0,W.jsx)(`button`,{type:`button`,className:`text-destructive-foreground underline disabled:opacity-50`,onClick:r,disabled:n,children:`Disconnect`})]})}function F0r({connections:e,isAdmin:t,disconnectPending:n,onDisconnect:r}){return(0,W.jsx)(`ul`,{className:`space-y-1`,children:e.map(e=>(0,W.jsx)(P0r,{connection:e,isAdmin:t,disconnectPending:n,onDisconnect:()=>r(e.connectionId)},e.connectionId))})}function I0r({groups:e,isAdmin:t,disconnectPending:n,onDisconnect:r}){return(0,W.jsx)(`div`,{className:`space-y-4`,children:e.map(([e,i])=>(0,W.jsxs)(`div`,{children:[(0,W.jsx)(Z,{as:`h3`,variant:`subheading`,tone:`ink`,"data-testid":`integration-author-group-${e}`,children:e===`shared`?`Shared`:`Owned by ${e}`}),(0,W.jsx)(F0r,{connections:i,isAdmin:t,disconnectPending:n,onDisconnect:r})]},e))})}function L0r({providerId:e,toolkit:t,connections:n,groupedByAuthor:r,isAdmin:i,isLoading:a,error:o,disconnectPending:s,disconnectError:c,onDisconnect:l}){return(0,W.jsxs)(`div`,{className:`space-y-2 rounded border p-4`,children:[(0,W.jsx)(Z,{as:`h2`,variant:`heading`,children:`Existing connections`}),!e||!t?(0,W.jsx)(`p`,{className:`text-muted-foreground`,children:`Pick a provider and toolkit to list connections.`}):a?(0,W.jsx)(`p`,{className:`text-muted-foreground`,children:`Loading…`}):o?(0,W.jsx)(`p`,{className:`text-destructive-foreground`,children:String(o)}):n.length===0?(0,W.jsx)(`p`,{className:`text-muted-foreground`,children:`No connections.`}):r?(0,W.jsx)(I0r,{groups:r,isAdmin:i,disconnectPending:s,onDisconnect:l}):(0,W.jsx)(F0r,{connections:n,isAdmin:i,disconnectPending:s,onDisconnect:l}),c?(0,W.jsx)(`p`,{className:`text-destructive-foreground`,children:String(c)}):null]})}function R0r({providers:e,toolkits:t,providerId:n,toolkit:r,label:i,providersLoading:a,providersError:o,toolkitsLoading:s,toolkitsError:c,authorizePending:l,authorizeError:u,authorizedConnection:d,onProviderChange:f,onToolkitChange:p,onLabelChange:m,onConnect:h}){return(0,W.jsxs)(`div`,{className:`space-y-4 rounded border p-4`,children:[(0,W.jsxs)(VM,{invalid:!!o,disabled:a,children:[(0,W.jsx)(UM,{children:`Provider`}),(0,W.jsxs)(TN,{value:n,onValueChange:f,children:[(0,W.jsx)(DN,{children:(0,W.jsx)(EN,{placeholder:a?`Loading providers…`:`Select provider`})}),(0,W.jsx)(ON,{children:e.map(e=>(0,W.jsx)(kN,{value:e.id,children:`${e.displayName??e.name} (${e.id})`},e.id))})]}),(0,W.jsx)(GM,{children:o?String(o):void 0})]}),(0,W.jsxs)(VM,{invalid:!!c,disabled:!n||s,children:[(0,W.jsx)(UM,{children:`Toolkit`}),(0,W.jsxs)(TN,{value:r,onValueChange:p,children:[(0,W.jsx)(DN,{children:(0,W.jsx)(EN,{placeholder:s?`Loading toolkits…`:`Select toolkit`})}),(0,W.jsx)(ON,{children:t.map(e=>(0,W.jsx)(kN,{value:e.slug,children:`${e.name} (${e.slug})`},e.slug))})]}),(0,W.jsx)(GM,{children:c?String(c):void 0})]}),(0,W.jsxs)(VM,{disabled:!n||!r,children:[(0,W.jsx)(UM,{children:`Label (optional)`}),(0,W.jsx)(_I,{placeholder:`My personal Gmail`,value:i,onChange:e=>m(e.target.value)})]}),(0,W.jsx)(Y,{type:`button`,variant:`primary`,onClick:h,disabled:!n||!r||l,children:l?`Authorizing…`:`Connect`}),u?(0,W.jsx)(`div`,{role:`alert`,children:(0,W.jsx)(oN,{variant:`destructive`,children:String(u)})}):null,d?(0,W.jsxs)(oN,{variant:`success`,children:[`Authorized: `,d.connectionId,` (status: `,d.status,`)`]}):null]})}var z0r=e=>e.authorId?.trim()||`shared`,B0r=(e,t)=>{if(!t||new Set(e.map(z0r)).size<=1)return null;let n=new Map;for(let t of e){let e=z0r(t);n.set(e,[...n.get(e)??[],t])}let r=Array.from(n.entries());return r.sort(([e],[t])=>e===`shared`?1:t===`shared`?-1:e.localeCompare(t)),r},V0r=[`*`,`tool-providers:*`,`tool-providers:admin`];function H0r(){let{data:e}=Z_();return e?.permissions?.some(e=>V0r.includes(e))??!1}var U0r=[{id:`integrations`,label:`Integrations`}];function W0r(){let[e,t]=(0,U.useState)(``),[n,r]=(0,U.useState)(``),[i,a]=(0,U.useState)(``),o=rX(),s=aX({providerId:e||null,queryOptions:{enabled:!!e}}),c=_Tn({providerId:e||null,toolkit:n||null}),l=hTn(),u=gTn(),d=H0r(),f=o.data?.providers??[],p=s.data?.data??[],m=(0,U.useMemo)(()=>c.data?.items??[],[c.data?.items]),h=(0,U.useMemo)(()=>B0r(m,d),[m,d]);return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:U0r}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Integrations`}),(0,W.jsxs)(`div`,{className:`max-w-3xl space-y-6`,children:[(0,W.jsx)(Z,{as:`p`,variant:`body`,tone:`muted`,children:`Minimal page to verify the ToolProvider backend. Pick a provider and toolkit, then connect.`}),(0,W.jsx)(R0r,{providers:f,toolkits:p,providerId:e,toolkit:n,label:i,providersLoading:o.isLoading,providersError:o.error,toolkitsLoading:s.isLoading,toolkitsError:s.error,authorizePending:l.isPending,authorizeError:l.error,authorizedConnection:l.data,onProviderChange:e=>{t(e),r(``)},onToolkitChange:r,onLabelChange:a,onConnect:()=>{e&&n&&l.mutate({providerId:e,toolkit:n,label:i.trim()||null},{onSuccess:()=>{a(``),c.refetch()}})}}),(0,W.jsx)(L0r,{providerId:e,toolkit:n,connections:m,groupedByAuthor:h,isAdmin:d,isLoading:c.isLoading,error:c.error,disconnectPending:u.isPending,disconnectError:u.error,onDisconnect:t=>{u.mutate({providerId:e,connectionId:t})}})]})]})}function G0r({title:e,description:t,errorBanner:n,children:r}){return(0,W.jsxs)(`div`,{"data-testid":`login-page`,className:`w-full max-w-sm space-y-6 p-6`,children:[(0,W.jsxs)(`div`,{className:`flex flex-col items-center space-y-2`,children:[(0,W.jsx)(qQ,{className:`h-10 w-10`}),(0,W.jsx)(Z,{as:`h1`,variant:`heading`,tone:`ink`,children:e})]}),t,n,r]})}function K0r({redirectUri:e,onSuccess:t,initialMode:n=`signin`,errorMessage:r}){let{data:i,isLoading:a}=Y_(),{mutate:o,isPending:s,error:c}=gNe(),{mutate:l,isPending:u,error:d}=vNe(),{mutate:f,isPending:p}=yNe(),[m,h]=(0,U.useState)(n),[g,_]=(0,U.useState)(``),[v,y]=(0,U.useState)(``),[b,x]=(0,U.useState)(``);if(a)return(0,W.jsx)(`div`,{className:`text-muted-foreground`,children:`Loading...`});if(!i?.enabled||!i?.login)return(0,W.jsx)(`div`,{className:`text-muted-foreground`,children:`Authentication is not configured`});let{login:S}=i,C=S.type===`sso`||S.type===`both`,w=S.type===`credentials`||S.type===`both`,T=S.sso,E=S.signUpEnabled!==!1,D=m===`signin`||!E,O=D?s:u,k=D?c:d,A=()=>{t?t():e?window.location.href=e:window.location.href=JQ(`/`)},j=e=>{e.preventDefault(),D?o({email:v,password:b},{onSuccess:A}):l({email:v,password:b,name:g||void 0},{onSuccess:A})},M=()=>{f({redirectUri:e},{onSuccess:e=>{window.location.href=e.url}})},N=()=>{h(D?`signup`:`signin`)},P=S.description?(0,W.jsxs)(`div`,{className:`flex items-start gap-2.5 rounded-md border border-border bg-sidebar p-3`,children:[(0,W.jsx)(CC,{className:`mt-0.5 h-4 w-4 shrink-0 text-muted-foreground`}),(0,W.jsx)(Z,{tone:`muted`,children:S.description})]}):null;return(0,W.jsxs)(G0r,{title:D?`Sign in to Mastra Studio`:`Create your account`,description:P,errorBanner:r?(0,W.jsx)(`div`,{role:`alert`,children:(0,W.jsx)(oN,{variant:`destructive`,children:r})}):null,children:[w&&(0,W.jsxs)(bK,{onSubmit:j,children:[!D&&(0,W.jsxs)(VM,{children:[(0,W.jsx)(UM,{children:`Name`}),(0,W.jsx)(_I,{name:`name`,type:`text`,autoComplete:`name`,value:g,onChange:e=>_(e.target.value),placeholder:`Your name`,variant:`default`,size:`lg`})]}),(0,W.jsxs)(VM,{children:[(0,W.jsx)(UM,{required:!0,children:`Email`}),(0,W.jsx)(_I,{name:`email`,type:`email`,autoComplete:`email`,value:v,onChange:e=>y(e.target.value),placeholder:`you@example.com`,required:!0,variant:`default`,size:`lg`}),(0,W.jsx)(GM,{})]}),(0,W.jsxs)(VM,{children:[(0,W.jsx)(UM,{required:!0,children:`Password`}),(0,W.jsx)(_I,{name:`password`,type:`password`,autoComplete:D?`current-password`:`new-password`,value:b,onChange:e=>x(e.target.value),placeholder:D?`Enter your password`:`Create a password`,required:!0,variant:`default`,size:`lg`}),(0,W.jsx)(GM,{})]}),k?(0,W.jsx)(`div`,{role:`alert`,children:(0,W.jsx)(oN,{variant:`destructive`,children:k.message})}):null,(0,W.jsx)(Y,{icon:(0,W.jsx)(rKe,{}),type:`submit`,disabled:O,className:`w-full`,size:`lg`,children:O?D?`Signing in...`:`Creating account...`:D?`Sign in`:`Create account`}),E&&(0,W.jsxs)(`div`,{className:`text-center`,children:[(0,W.jsx)(Z,{as:`span`,variant:`body`,tone:`muted`,children:D?`Don't have an account? `:`Already have an account? `}),(0,W.jsx)(`button`,{type:`button`,onClick:N,className:`text-foreground hover:underline`,children:(0,W.jsx)(Z,{as:`span`,variant:`body`,className:`block`,children:D?`Sign up`:`Sign in`})})]})]}),C&&w&&(0,W.jsxs)(`div`,{className:`relative`,children:[(0,W.jsx)(`div`,{className:`absolute inset-0 flex items-center`,children:(0,W.jsx)(`div`,{className:`w-full border-t border-border`})}),(0,W.jsx)(`div`,{className:`relative flex justify-center`,children:(0,W.jsx)(Z,{as:`span`,variant:`body`,tone:`muted`,className:`bg-sidebar px-2`,children:`or continue with`})})]}),C&&T&&(0,W.jsxs)(Y,{onClick:M,disabled:p,className:`w-full`,size:`lg`,children:[T.icon&&(0,W.jsx)(`span`,{className:`mr-2`,children:T.icon}),p?`Redirecting...`:T.text||`Sign in`]})]})}function q0r(){let[e]=ty(),t=Gv(),n=e.get(`redirect`)||`/`,r=e.get(`mode`)===`signup`?`signup`:`signin`,i=e.get(`error_description`)||e.get(`error`)||null;return(0,W.jsx)(K0r,{redirectUri:n,onSuccess:()=>{n.startsWith(`http`)?window.location.href=n:t(n,{replace:!0})},initialMode:r,errorMessage:i})}function J0r({disabled:e,onClear:t,onRemoveAll:n,onSave:r,onRemoveSaved:i}){let a=!!(n||r||i);return!t&&!a?null:(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[t&&(0,W.jsx)(Y,{disabled:e,size:`md`,onClick:t,icon:(0,W.jsx)(tw,{}),children:`Clear`}),a&&(0,W.jsxs)(CD,{children:[(0,W.jsx)(CD.Trigger,{asChild:!0,children:(0,W.jsx)(Y,{disabled:e,size:`icon-md`,"aria-label":`More filter actions`,children:(0,W.jsx)($S,{})})}),(0,W.jsxs)(CD.Content,{align:`end`,children:[n&&(0,W.jsxs)(CD.Item,{onSelect:()=>n(),children:[(0,W.jsx)(tw,{}),`Remove all filters`]}),n&&(r||i)&&(0,W.jsx)(CD.Separator,{}),r&&(0,W.jsxs)(CD.Item,{onSelect:()=>r(),children:[(0,W.jsx)(RC,{}),`Save filters for next time`]}),i&&(0,W.jsxs)(CD.Item,{onSelect:()=>i(),children:[(0,W.jsx)(YC,{}),`Remove saved filters`]})]})]})]})}var Y0r=H(tD,`min-w-0 focus:text-foreground`);function X0r({role:e,checked:t,label:n,onClick:r}){return(0,W.jsxs)(`button`,{ref:eD(),type:`button`,role:e,"aria-checked":t,"data-selected":t||void 0,"data-pick-multi-item":``,title:n,className:Y0r,onClick:r,children:[(0,W.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:n}),t&&(0,W.jsx)(`span`,{className:rD,children:(0,W.jsx)(LS,{})})]})}function Z0r({field:e,tokens:t,onChange:n}){let[r,i]=(0,U.useState)(``),a=QE(),o={className:H(`max-h-[80dvh] overflow-auto p-1`,a.containerClassName),...a.getContainerProps({})},s=(0,U.useMemo)(()=>{let t=r.trim().toLowerCase();return t?e.options.filter(e=>e.label.toLowerCase().includes(t)):e.options},[e.options,r]),c=(0,U.useMemo)(()=>t.find(t=>t.fieldId===e.id),[t,e.id]),l=typeof c?.value==`string`?c.value:e.multi?void 0:e.defaultValue,u=(0,U.useMemo)(()=>{let e=c?.value;return Array.isArray(e)?e:typeof e==`string`?[e]:[]},[c]);return(0,W.jsxs)(W.Fragment,{children:[e.searchable!==!1&&(0,W.jsxs)(`div`,{className:sD.container,children:[(0,W.jsx)(zC,{className:sD.icon}),(0,W.jsx)(`input`,{type:`text`,value:r,onChange:e=>i(e.target.value),placeholder:`Search ${e.label.toLowerCase()}...`,className:sD.input,...AN,onKeyDown:e=>{if(e.key!==`ArrowDown`)return;let t=e.currentTarget.closest(`[data-pick-multi-panel]`)?.querySelector(`[data-pick-multi-item]:not([disabled])`);t&&(e.preventDefault(),e.stopPropagation(),t.focus())}})]}),e.isLoading?(0,W.jsxs)(`div`,{className:H(x6e,`m-1`),children:[(0,W.jsx)(dt,{size:`sm`,className:`size-3 text-muted-foreground`}),`Loading options…`]}):s.length===0?(0,W.jsx)(`div`,{className:H(x6e,`m-1`),children:e.emptyText??`No option found.`}):e.multi?(0,W.jsx)(`div`,{...o,children:(0,W.jsx)($E,{menu:a,children:s.map(t=>{let r=u.includes(t.value);return(0,W.jsx)(X0r,{role:`checkbox`,checked:r,label:t.label,onClick:()=>n(e.id,r?u.filter(e=>e!==t.value):[...u,t.value])},t.value)})})}):(0,W.jsx)(`div`,{role:`radiogroup`,...o,children:(0,W.jsxs)($E,{menu:a,children:[s.map(t=>(0,W.jsx)(X0r,{role:`radio`,checked:l===t.value,label:t.label,onClick:()=>n(e.id,t.value)},t.value)),!e.omitAnyOption&&(0,W.jsx)(X0r,{role:`radio`,checked:l===`Any`,label:`Any`,onClick:()=>n(e.id,`Any`)})]})})]})}function Q0r(e){return Array.isArray(e)?e.length===0?`Any`:e.join(`, `):e}var $0r=`This filter is set by the current context and cannot be removed here.`;function e2r(e,t){return e.kind===`pick-multi`&&e.options?Array.isArray(t)?t.length===0?`Any`:t.map(t=>e.options.find(e=>e.value===t)?.label??t).join(`, `):e.options.find(e=>e.value===t)?.label??t:Q0r(t)}function t2r({field:e,value:t,tooltipContent:n}){let r=e2r(e,t),i=`${e.label} filter is locked by context`;return(0,W.jsx)(rS,{delayDuration:150,children:(0,W.jsxs)(iS,{children:[(0,W.jsx)(aS,{asChild:!0,children:(0,W.jsxs)(_K,{"data-locked-field-id":e.id,"data-property-filter-pill":`locked`,tabIndex:0,"aria-label":i,children:[(0,W.jsx)(vK,{children:e.label}),(0,W.jsx)(vK,{children:`is`}),(0,W.jsx)(vK,{children:r}),(0,W.jsx)(vK,{children:(0,W.jsx)(CC,{})})]})}),(0,W.jsx)(oS,{children:n})]})})}function n2r({field:e,value:t,onChange:n,onRemove:r,disabled:i,autoFocus:a}){let[o,s]=(0,U.useState)(t),c=(0,U.useRef)(null);return(0,U.useEffect)(()=>{o.trim()!==t&&s(t)},[t]),(0,U.useEffect)(()=>{a&&c.current?.focus()},[a]),(0,W.jsxs)(_K,{children:[(0,W.jsx)(vK,{children:e.label}),(0,W.jsx)(vK,{children:`is`}),(0,W.jsx)(_I,{ref:c,disabled:i,value:o,placeholder:e.placeholder??`Enter ${e.label}`,onChange:e=>{let r=e.target.value;s(r),r.trim()!==t&&n(r)},onKeyDown:e=>{if(e.key===`Enter`){e.preventDefault();let r=o.trim();r!==t&&n(r)}else e.key===`Escape`&&(e.preventDefault(),s(t),e.currentTarget.blur())}}),(0,W.jsx)(Y,{size:`icon-md`,type:`button`,disabled:i,"aria-label":`Remove ${e.label} filter`,onMouseDown:e=>e.preventDefault(),onClick:r,children:(0,W.jsx)(tw,{})})]})}function r2r({field:e,token:t,tokens:n,onChange:r,onRemove:i,disabled:a}){let[o,s]=(0,U.useState)(!1);return(0,W.jsxs)(_K,{children:[(0,W.jsx)(vK,{children:e.label}),(0,W.jsx)(vK,{children:`is`}),(0,W.jsxs)(mI,{open:o,onOpenChange:s,children:[(0,W.jsx)(hI,{asChild:!0,children:(0,W.jsx)(Y,{type:`button`,disabled:a,children:Q0r(t.value)})}),(0,W.jsx)(gI,{align:`start`,sideOffset:4,className:`w-64 p-0`,"data-pick-multi-panel":!0,children:(0,W.jsx)(Z0r,{field:e,tokens:n,onChange:r})})]}),(0,W.jsx)(Y,{size:`icon-md`,type:`button`,disabled:a,"aria-label":`Remove ${e.label} filter`,onClick:i,children:(0,W.jsx)(tw,{})})]})}function i2r({fields:e,tokens:t,onTokensChange:n,disabled:r,autoFocusFieldId:i,lockedFieldIds:a,lockedTooltipContent:o=$0r}){if(t.length===0)return null;let s=new Set(a??[]),c=(e,r)=>{let i=[...t];i[e]=r,n(i)},l=e=>{n(t.filter((t,n)=>n!==e))};return(0,W.jsx)(`div`,{className:`flex flex-wrap items-center gap-2`,children:t.map((n,a)=>{let u=e.find(e=>e.id===n.fieldId);return u?s.has(n.fieldId)?(0,W.jsx)(t2r,{field:u,value:n.value,tooltipContent:o},`${n.fieldId}-${a}`):u.kind===`text`&&!Array.isArray(n.value)?(0,W.jsx)(n2r,{field:u,value:n.value,disabled:r,autoFocus:i===n.fieldId,onChange:e=>c(a,{fieldId:n.fieldId,value:e}),onRemove:()=>l(a)},`${n.fieldId}-${a}`):u.kind===`pick-multi`?(0,W.jsx)(r2r,{field:u,token:n,tokens:t,disabled:r,onChange:(e,t)=>c(a,{fieldId:e,value:t}),onRemove:()=>l(a)},`${n.fieldId}-${a}`):(0,W.jsxs)(_K,{children:[(0,W.jsx)(vK,{children:u.label}),(0,W.jsx)(vK,{children:`is`}),(0,W.jsx)(vK,{children:Q0r(n.value)}),(0,W.jsx)(Y,{size:`icon-md`,type:`button`,disabled:r,"aria-label":`Remove ${u.label} filter`,onClick:()=>l(a),children:(0,W.jsx)(tw,{})})]},`${n.fieldId}-${a}`):null})})}var a2r=H(tD,`focus:text-foreground`),o2r=(0,U.forwardRef)((e,t)=>(0,W.jsx)(`button`,{type:`button`,role:`menuitem`,"data-filter-item":``,ref:eD(t),...e}));o2r.displayName=`FilterMenuButton`;function s2r({fields:e,tokens:t,onTokensChange:n,label:r=`Add filter`,disabled:i,size:a,onStartTextFilter:o,hiddenFieldIds:s}){let c=(0,U.useMemo)(()=>{if(!s||s.length===0)return e;let t=new Set(s);return e.filter(e=>!t.has(e.id))},[e,s]),[l,u]=(0,U.useState)(!1),d=QE(),[f,p]=(0,U.useState)(),[m,h]=(0,U.useState)([]),[g,_]=(0,U.useState)(),[v,y]=(0,U.useState)(),b=(0,U.useRef)(!1),x=(0,U.useCallback)(e=>{y(t=>t===e?void 0:e)},[]),S=(0,U.useCallback)(()=>y(void 0),[]);(0,U.useEffect)(()=>{l||y(void 0)},[l]);let C=(0,U.useMemo)(()=>c.find(e=>e.id===f),[c,f]),w=(0,U.useMemo)(()=>{let n=new Set;for(let r of t){let t=e.find(e=>e.id===r.fieldId);t&&t.kind!==`pick-multi`&&n.add(r.fieldId)}return n},[t,e]),T=(0,U.useCallback)(()=>{p(void 0),h([]),_(void 0)},[]);(0,U.useEffect)(()=>{l||T()},[l,T]);let E=(0,U.useCallback)((e,r)=>{let i=t.findIndex(t=>t.fieldId===e);if(Array.isArray(r)&&r.length===0){if(i===-1)return;n(t.filter((e,t)=>t!==i));return}if(i===-1){n([...t,{fieldId:e,value:r}]);return}let a=[...t];a[i]={fieldId:e,value:r},n(a)},[n,t]),D=(0,U.useCallback)(()=>{C?w.has(C.id)?_(`Remove the existing ${C.label} filter before adding another.`):m.length===0?_(`Choose at least one ${C.label.toLowerCase()} value.`):(n([...t,{fieldId:C.id,value:m}]),u(!1)):_(`Choose a property first.`)},[m,n,C,w,t]);return(0,W.jsxs)(mI,{open:l,onOpenChange:u,children:[(0,W.jsx)(hI,{asChild:!0,children:(0,W.jsx)(Y,{size:a,disabled:i,icon:(0,W.jsx)(ZGe,{}),children:r})}),(0,W.jsx)(gI,{align:`start`,sideOffset:4,className:H(`w-64`,C?`p-3`:`p-1`),initialFocus:!1,finalFocus:()=>!b.current||(b.current=!1,!1),children:(0,W.jsxs)(`div`,{className:H(`grid`,C&&`gap-3`),children:[C&&(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(`button`,{type:`button`,"aria-label":`Back to properties`,className:H(`text-muted-foreground hover:text-foreground`,`transition-[color] duration-fast ease-out-custom motion-reduce:transition-none`),onClick:T,children:(0,W.jsx)(OS,{className:`size-4`})}),(0,W.jsx)(IGe,{className:`size-4 shrink-0 text-muted-foreground`}),(0,W.jsx)(Z,{as:`span`,variant:`caption`,tone:`muted`,children:`${C.label} · is`})]}),!C&&(0,W.jsx)(`div`,{role:`menu`,className:H(`max-h-[80dvh] overflow-auto`,d.containerClassName),...d.getContainerProps({}),onKeyDown:e=>{if(e.key!==`ArrowDown`&&e.key!==`ArrowUp`&&e.key!==`Home`&&e.key!==`End`)return;let t=Array.from(e.currentTarget.querySelectorAll(`[data-filter-item]:not([disabled])`));if(t.length===0)return;e.preventDefault();let n=document.activeElement,r=t.findIndex(e=>e===n),i;i=e.key===`Home`?0:e.key===`End`?t.length-1:e.key===`ArrowDown`?r<0?0:(r+1)%t.length:r<=0?t.length-1:r-1,t[i]?.focus()},children:(0,W.jsx)($E,{menu:d,children:c.length>0?c.map(e=>{let r=w.has(e.id);return e.kind===`pick-multi`?(0,W.jsx)(c2r,{field:e,tokens:t,onChange:E,open:v===e.id,onToggle:x,onClose:S},e.id):(0,W.jsxs)(o2r,{className:H(a2r,`group`),disabled:r,onClick:()=>{_(void 0),e.kind===`text`?(n([...t,{fieldId:e.id,value:``}]),o?.(e.id),b.current=!0,u(!1)):p(e.id)},children:[(0,W.jsx)(`span`,{className:`truncate`,children:e.label}),r?(0,W.jsx)(`span`,{className:`ml-auto text-muted-foreground`,children:`In use`}):(0,W.jsx)(`span`,{className:H(nD,`text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100 group-focus:opacity-100`),children:(0,W.jsx)(MC,{})})]},e.id)}):(0,W.jsx)(`div`,{className:`flex h-control-md items-center gap-2 px-2 py-0.5 text-menu text-muted-foreground box-content`,children:`No matching property.`})})}),C&&(0,W.jsxs)(VM,{invalid:!!g,children:[(0,W.jsx)(FL,{multiple:!0,options:C.options??[],value:m,onValueChange:e=>{h(e),_(void 0)},placeholder:C.placeholder??`Choose ${C.label}`,searchPlaceholder:`Search ${C.label.toLowerCase()}...`,emptyText:C.emptyText??`No option found.`,size:`md`,"aria-label":C.label}),(0,W.jsx)(GM,{children:g})]}),C&&(0,W.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[(0,W.jsx)(Y,{icon:(0,W.jsx)(tw,{}),variant:`ghost`,size:`md`,onClick:()=>u(!1),children:`Cancel`}),(0,W.jsx)(Y,{icon:(0,W.jsx)(ZGe,{}),size:`md`,onClick:D,children:`Add filter`})]})]})})]})}function c2r({field:e,tokens:t,onChange:n,open:r,onToggle:i,onClose:a}){let o=(0,U.useRef)(null);return(0,W.jsxs)(mI,{open:r,onOpenChange:t=>{t?i(e.id):a()},children:[(0,W.jsx)(hI,{asChild:!0,children:(0,W.jsxs)(o2r,{className:a2r,onKeyDown:t=>{(t.key===`ArrowRight`||t.key===`ArrowLeft`)&&(r||i(e.id),t.preventDefault(),requestAnimationFrame(()=>{(o.current?.querySelector(`input, button, [tabindex]:not([tabindex="-1"])`))?.focus()}))},children:[r&&(0,W.jsx)(BS,{className:`text-muted-foreground`}),(0,W.jsx)(`span`,{className:`truncate`,children:e.label}),!r&&(0,W.jsx)(`span`,{className:H(nD,`text-muted-foreground`),children:(0,W.jsx)(BS,{})})]})}),(0,W.jsx)(gI,{ref:o,side:`right`,align:`start`,sideOffset:4,className:`w-64 p-0`,initialFocus:!1,onKeyDown:e=>{if(e.key!==`ArrowDown`&&e.key!==`ArrowUp`&&e.key!==`Home`&&e.key!==`End`)return;let t=Array.from(e.currentTarget.querySelectorAll(`[data-pick-multi-item]:not([disabled])`));if(t.length===0)return;e.preventDefault(),e.stopPropagation();let n=document.activeElement,r=t.findIndex(e=>e===n),i;i=e.key===`Home`?0:e.key===`End`?t.length-1:e.key===`ArrowDown`?r<0?0:(r+1)%t.length:r<=0?t.length-1:r-1,t[i]?.focus()},"data-pick-multi-panel":!0,children:(0,W.jsx)(Z0r,{field:e,tokens:t,onChange:n})})]})}function l2r({log:e,onClose:t,onTraceClick:n,onSpanClick:r,onPrevious:i,onNext:a,depth:o}){let s=e?eE(e.timestamp)??``:``;return(0,W.jsx)(w$,{open:!!e,onClose:t,title:e?`Log ${s}`:`Log`,depth:o,children:e&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(w$.Header,{children:[(0,W.jsx)(w$.CloseButton,{onClick:t}),(0,W.jsxs)(w$.Heading,{children:[`Log · `,s]}),(0,W.jsx)(w$.HeaderActions,{children:(0,W.jsx)(w$.NextPrevNav,{onPrevious:i,onNext:a,previousLabel:`Go to previous log`,nextLabel:`Go to next log`})})]}),(0,W.jsx)(w$.Content,{children:(0,W.jsxs)(`div`,{className:`grid gap-6 p-2`,children:[(0,W.jsxs)(x4,{children:[e.entityType&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(x4.Key,{children:`Entity Type`}),(0,W.jsx)(x4.Value,{children:e.entityType})]}),e.entityName&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(x4.Key,{children:`Entity Name`}),(0,W.jsx)(x4.Value,{children:e.entityName})]}),e.serviceName&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(x4.Key,{children:`Service`}),(0,W.jsx)(x4.Value,{children:e.serviceName})]}),e.environment&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(x4.Key,{children:`Environment`}),(0,W.jsx)(x4.Value,{children:e.environment})]}),e.source&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(x4.Key,{children:`Source`}),(0,W.jsx)(x4.Value,{children:e.source})]}),e.metadata&&Object.entries(e.metadata).map(([e,t])=>(0,W.jsxs)(U.Fragment,{children:[(0,W.jsx)(x4.Key,{children:e}),(0,W.jsx)(x4.Value,{children:String(t)})]},e))]}),(0,W.jsx)(w$.CodeSection,{title:`Message`,codeStr:e.message,simplified:!0}),(e.traceId||e.spanId)&&(0,W.jsxs)(`div`,{className:`grid gap-2`,children:[e.traceId&&(0,W.jsxs)(_K,{className:`w-full min-w-0`,children:[(0,W.jsxs)(Y,{className:`min-w-0 flex-1 justify-between overflow-hidden`,icon:(0,W.jsx)(kS,{}),onClick:()=>e.traceId&&n?.(e.traceId),children:[(0,W.jsx)(`span`,{children:`Trace`}),(0,W.jsxs)(Z,{as:`span`,variant:`caption`,tone:`faint`,className:`ml-auto min-w-0 truncate`,children:[`# `,e.traceId]})]}),(0,W.jsx)(qT,{content:e.traceId,tooltip:`Copy trace ID to clipboard`})]}),e.spanId&&(0,W.jsxs)(_K,{className:`w-full min-w-0`,children:[(0,W.jsxs)(Y,{className:`min-w-0 flex-1 justify-between overflow-hidden`,disabled:!e.traceId||!r,onClick:()=>e.traceId&&e.spanId&&r?.(e.traceId,e.spanId),icon:(0,W.jsx)(kS,{}),children:[(0,W.jsx)(`span`,{children:`Span`}),(0,W.jsxs)(Z,{as:`span`,variant:`caption`,tone:`faint`,className:`ml-auto min-w-0 truncate`,children:[`# `,e.spanId]})]}),(0,W.jsx)(qT,{content:e.spanId,tooltip:`Copy span ID to clipboard`})]})]}),e.data&&Object.keys(e.data).length>0&&(0,W.jsx)(w$.CodeSection,{title:`Data`,codeStr:JSON.stringify(e.data,null,2)})]})})]})})}function u2r({error:e,resource:t,errorTitle:n}){if(iR(e))return(0,W.jsx)(CK,{});if(aR(e))return(0,W.jsx)(SK,{resource:t});if(cR(e))return(0,W.jsx)(aw,{titleSlot:`Observability storage is not available`,descriptionSlot:`The observability storage domain is disabled or not configured. Enable it in your storage configuration to view logs in Studio.`});if(sR(e,`logs`))return(0,W.jsx)(aw,{titleSlot:`Logs are not available with your current storage`,descriptionSlot:`The configured observability storage provider does not support listing logs. Switch to a storage provider with logs support to view runtime logs in Studio.`});let r=e instanceof Error?e.message:void 0;return(0,W.jsx)(aw,{tone:`error`,titleSlot:n,descriptionSlot:r??`Unknown error`})}var d2r={debug:`neutral`,info:`info`,warn:`warning`,error:`destructive`,fatal:`destructive`};function f2r({level:e}){return(0,W.jsx)(DK,{children:(0,W.jsx)(GT,{variant:d2r[e],children:e})})}function p2r({entityType:e,className:t}){let n=H(`size-3.5 shrink-0 text-placeholder`,t);switch(e.toLowerCase()){case`agent`:return(0,W.jsx)(dR,{className:n,"aria-hidden":!0});case`workflow`:case`workflow_run`:return(0,W.jsx)(pL,{className:n,"aria-hidden":!0});case`tool`:return(0,W.jsx)(hR,{className:n,"aria-hidden":!0});default:return null}}function m2r({entityType:e,entityName:t}){return(0,W.jsxs)(DK,{className:`flex min-w-0 items-center gap-2`,children:[(0,W.jsx)(p2r,{entityType:e??``}),t?(0,W.jsx)(Z,{as:`span`,variant:`body-sm`,className:`min-w-0 truncate`,children:t}):`-`]})}function h2r({message:e}){return(0,W.jsx)(DK,{className:`min-w-0 truncate font-mono text-body-sm text-muted-foreground`,children:e})}function g2r({data:e}){if(!e||Object.keys(e).length===0)return(0,W.jsx)(DK,{children:null});let t=Object.entries(e).map(([e,t])=>{if(typeof t==`string`)return`${e}: ${t}`;try{return`${e}: ${JSON.stringify(t)}`}catch{return`${e}: <unserializable>`}}).join(`, `);return(0,W.jsx)(AK,{font:`mono`,children:t})}var h9=Object.assign(NK,{Top:RK,TopCell:FK,SortableTopCell:LK,TopCellWithTooltip:IK,TopCellSmart:ehn,RowWrapper:Ymn,RowButton:PK,RowLink:qmn,Spacer:ohn,NoMatch:MK,DateCell:bmn,TimeCell:Smn,LevelCell:f2r,EntityCell:m2r,MessageCell:h2r,DataCell:g2r,NextPageLoading:jK}),_2r=`6rem 9rem 5rem 10rem minmax(8rem,1fr) minmax(8rem,1fr)`,v2r=36,y2r=8;function b2r({logs:e,isLoading:t,isFetchingNextPage:n,hasNextPage:r,setEndOfListElement:i,logIdMap:a,featuredLogId:o,onLogClick:s,timestampSort:c,onSortChange:l}){let u=(0,U.useRef)(null),d=Ejr({count:e.length,getScrollElement:()=>u.current,estimateSize:()=>v2r,overscan:y2r}),{getRowProps:f}=RQ({count:e.length,containerRef:u,onNavigate:e=>d.scrollToIndex(e),global:!0}),p=(0,U.useRef)(t);if((0,U.useEffect)(()=>{p.current&&!t&&u.current?.dispatchEvent(new Event(`scroll`)),p.current=t},[t]),t)return(0,W.jsx)(zK,{columns:_2r,fit:`container`});let m=d.getVirtualItems(),h=d.getTotalSize(),g=m[0]?.start??0,_=m.length>0?Math.max(0,h-(m[m.length-1]?.end??0)):0;return(0,W.jsxs)(h9,{columns:_2r,scrollRef:u,className:`min-w-0`,fit:`container`,children:[(0,W.jsxs)(h9.Top,{children:[l?(0,W.jsx)(h9.SortableTopCell,{sortKey:`timestamp`,sort:c,onSortChange:l,children:`Date`}):(0,W.jsx)(h9.TopCell,{children:`Date`}),(0,W.jsx)(h9.TopCell,{children:`Time`}),(0,W.jsx)(h9.TopCell,{children:`Level`}),(0,W.jsx)(h9.TopCell,{children:`Entity`}),(0,W.jsx)(h9.TopCell,{children:`Message`}),(0,W.jsx)(h9.TopCell,{children:`Data`})]}),e.length===0?(0,W.jsx)(h9.NoMatch,{message:`No logs match your search`}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(h9.Spacer,{height:g}),m.map(t=>{let n=e[t.index];if(!n)return null;let r=a.get(n);if(!r)return null;let i=r===o;return(0,W.jsxs)(h9.RowButton,{ref:d.measureElement,"data-index":t.index,...f(t.index),onClick:()=>s(n),featured:i,variant:n.level===`error`||n.level===`fatal`?`error`:`default`,children:[(0,W.jsx)(h9.DateCell,{timestamp:n.timestamp}),(0,W.jsx)(h9.TimeCell,{timestamp:n.timestamp}),(0,W.jsx)(h9.LevelCell,{level:n.level}),(0,W.jsx)(h9.EntityCell,{entityType:n.entityType,entityName:n.entityName}),(0,W.jsx)(h9.MessageCell,{message:n.message}),(0,W.jsx)(h9.DataCell,{data:n.data})]},r)}),(0,W.jsx)(h9.Spacer,{height:_})]}),(0,W.jsx)(h9.NextPageLoading,{isLoading:n,hasMore:r,setEndOfListElement:i})]})}function x2r({onClear:e,onRemoveAll:t,onSave:n,onRemoveSaved:r,isLoading:i,filterFields:a,filterTokens:o,onFilterTokensChange:s,autoFocusFilterFieldId:c}){let l=o.length>0,u=o.some(e=>S2r(e,a));return l?(0,W.jsxs)(`div`,{className:H(`grid grid-cols-[1fr_auto] items-start gap-3`),children:[(0,W.jsx)(i2r,{fields:a,tokens:o,onTokensChange:s,disabled:i,autoFocusFieldId:c}),l&&(0,W.jsx)(J0r,{disabled:i,onClear:u?e:void 0,onRemoveAll:t,onSave:n,onRemoveSaved:r})]}):null}function S2r(e,t){let n=t.find(t=>t.id===e.fieldId);return n?n.kind===`text`?typeof e.value==`string`&&e.value.trim()!==``:n.kind===`pick-multi`?n.multi?Array.isArray(e.value)&&e.value.length>0:typeof e.value==`string`&&e.value!==``&&e.value!==`Any`:n.kind===`multi-select`&&Array.isArray(e.value)&&e.value.length>0:!1}var C2r={"last-24h":`the last 24 hours`,"last-3d":`the last 3 days`,"last-7d":`the last 7 days`,"last-14d":`the last 14 days`,"last-30d":`the last 30 days`},w2r=`Pick a wider range or lower the logging level — verbose entries (debug, info) may be filtered out.`;function T2r({datePreset:e,dateFrom:t,dateTo:n}){return e&&e!==`all`&&e!==`custom`?{title:`No logs for ${C2r[e]}`,description:w2r}:t&&n?{title:`No logs between ${$T(t,`date-time`)} and ${$T(n,`date-time`)}`,description:w2r}:t?{title:`No logs since ${$T(t,`date-time`)}`,description:w2r}:{title:`No logs yet`,description:`Logs will appear here once agents, workflows, or tools are executed.`}}var E2r=({datePreset:e,dateFrom:t,dateTo:n}={})=>{let{title:r,description:i}=T2r({datePreset:e,dateFrom:t,dateTo:n});return(0,W.jsx)(aw,{titleSlot:r,descriptionSlot:i,actionSlot:(0,W.jsx)(Y,{variant:`ghost`,render:(0,W.jsx)(`a`,{href:`https://mastra.ai/en/docs/observability/logging`,target:`_blank`,rel:`noopener noreferrer`}),icon:(0,W.jsx)(tC,{}),children:`Logging documentation`}),variant:`fill`})},g9={AGENT:`agent`,WORKFLOW:`workflow_run`,SCORER:`scorer`,INGEST:`rag_ingestion`,CLASSIFIER:`classifier`},D2r=[{label:`Agent`,entityType:g9.AGENT},{label:`Workflow`,entityType:g9.WORKFLOW},{label:`Scorer`,entityType:g9.SCORER},{label:`Ingest`,entityType:g9.INGEST},{label:`Classifier`,entityType:g9.CLASSIFIER}],O2r=[{label:`Debug`,value:`debug`},{label:`Info`,value:`info`},{label:`Warn`,value:`warn`},{label:`Error`,value:`error`},{label:`Fatal`,value:`fatal`}],_9=`rootEntityType`,v9=`datePreset`,y9=`dateFrom`,b9=`dateTo`,k2r=new Set([`all`,`last-24h`,`last-3d`,`last-7d`,`last-14d`,`last-30d`,`custom`]),x9={level:`filterLevel`,tags:`filterTags`,entityName:`filterEntityName`,traceId:`filterTraceId`,spanId:`filterSpanId`,runId:`filterRunId`,threadId:`filterThreadId`,sessionId:`filterSessionId`,requestId:`filterRequestId`,resourceId:`filterResourceId`,userId:`filterUserId`,organizationId:`filterOrganizationId`,serviceName:`filterServiceName`,environment:`filterEnvironment`,experimentId:`filterExperimentId`},S9=Object.keys(x9),A2r=new Set([`tags`]),j2r=`mastra:logs:saved-filters`;function M2r(e,t=j2r){let n=R2r(e),r=e.get(v9);r&&n.set(v9,r);let i=e.get(y9);i&&n.set(y9,i);let a=e.get(b9);a&&n.set(b9,a);try{localStorage.setItem(t,n.toString())}catch{}}function N2r(e=j2r){try{localStorage.removeItem(e)}catch{}}function P2r(e=j2r){try{let t=localStorage.getItem(e);if(!t)return null;let n=new URLSearchParams(t);return n.toString()?n:null}catch{return null}}function F2r(e){if(e.has(`datePreset`)||e.has(`dateFrom`)||e.has(`dateTo`)||e.has(`rootEntityType`))return!0;for(let t of S9)if(e.has(x9[t]))return!0;return!1}function I2r({availableTags:e,availableRootEntityNames:t,availableServiceNames:n,availableEnvironments:r,loading:i}){let a=[{id:`rootEntityType`,label:`Primitive type`,kind:`pick-multi`,searchable:!1,options:D2r.map(e=>({label:e.label,value:e.entityType})),placeholder:`Choose entity type`,emptyText:`No entity types.`},{id:`entityName`,label:`Primitive name`,kind:`pick-multi`,options:t.map(e=>({label:e,value:e})),placeholder:`Choose entity names`,emptyText:`No entity names found.`,isLoading:i?.entityNames},{id:`level`,label:`Level`,kind:`pick-multi`,searchable:!1,options:O2r.map(e=>({label:e.label,value:e.value})),placeholder:`Choose level`,emptyText:`No levels.`},{id:`tags`,label:`Tags`,kind:`pick-multi`,multi:!0,options:e.map(e=>({label:e,value:e})),placeholder:`Choose tags`,emptyText:`No tags found.`,isLoading:i?.tags},{id:`serviceName`,label:`Service Name`,kind:`pick-multi`,options:n.map(e=>({label:e,value:e})),placeholder:`Choose service names`,emptyText:`No service names found.`,isLoading:i?.serviceNames},{id:`environment`,label:`Environment`,kind:`pick-multi`,options:r.map(e=>({label:e,value:e})),placeholder:`Choose environments`,emptyText:`No environments found.`,isLoading:i?.environments},{id:`traceId`,label:`Trace ID`,kind:`text`},{id:`spanId`,label:`Span ID`,kind:`text`},{id:`runId`,label:`Run ID`,kind:`text`},{id:`threadId`,label:`Thread ID`,kind:`text`},{id:`sessionId`,label:`Session ID`,kind:`text`},{id:`requestId`,label:`Request ID`,kind:`text`},{id:`resourceId`,label:`Resource ID`,kind:`text`},{id:`userId`,label:`User ID`,kind:`text`},{id:`organizationId`,label:`Organization ID`,kind:`text`},{id:`experimentId`,label:`Experiment ID`,kind:`text`}],o=(e,t)=>e.label.localeCompare(t.label),s=a.filter(e=>e.kind===`pick-multi`).sort(o),c=a.filter(e=>e.kind===`text`).sort(o);return[...s,...c]}function L2r(e){let t=[],n=new Map([[_9,`rootEntityType`]]);for(let e of S9)n.set(x9[e],e);let r=new Set;for(let[i]of e.entries()){let a=n.get(i);if(!a||r.has(a))continue;if(r.add(a),A2r.has(a)){let n=e.getAll(i);if(n.length===0)continue;t.push({fieldId:a,value:n.filter(Boolean)});continue}let o=e.get(i);o!==null&&t.push({fieldId:a,value:o})}return t}function R2r(e){let t=new URLSearchParams,n=e.get(_9);n&&t.set(_9,n);for(let n of S9){let r=x9[n];if(A2r.has(n)){for(let n of e.getAll(r))t.append(r,n);continue}let i=e.get(r);i&&t.set(r,i)}return t}function z2r(e,t){e.delete(_9);for(let t of S9)e.delete(x9[t]);for(let n of t){if(n.fieldId===`rootEntityType`&&typeof n.value==`string`){e.set(_9,n.value);continue}let t=x9[n.fieldId];if(t){if(A2r.has(n.fieldId)&&Array.isArray(n.value)){if(n.value.length===0)e.append(t,``);else for(let r of n.value)e.append(t,r)}else typeof n.value==`string`&&e.set(t,n.value.trim())}}}function B2r({rootEntityType:e,dateFrom:t,dateTo:n,tokens:r}){let i={};e&&(i.rootEntityType=e),(t||n)&&(i.timestamp={...t?{start:t}:{},...n?{end:n}:{}});for(let e of r)if(e.fieldId===`tags`)Array.isArray(e.value)&&e.value.length>0?i.tags=e.value:typeof e.value==`string`&&e.value.trim()&&(i.tags=[e.value.trim()]);else if(e.fieldId===`level`)typeof e.value==`string`&&e.value.trim()&&e.value!==`Any`&&(i.level=e.value);else if(typeof e.value==`string`&&e.value.trim()&&e.value!==`Any`)switch(e.fieldId){case`entityName`:i.rootEntityName=e.value;break;case`traceId`:i.traceId=e.value;break;case`spanId`:i.spanId=e.value;break;case`runId`:i.runId=e.value;break;case`threadId`:i.threadId=e.value;break;case`sessionId`:i.sessionId=e.value;break;case`requestId`:i.requestId=e.value;break;case`resourceId`:i.resourceId=e.value;break;case`userId`:i.userId=e.value;break;case`organizationId`:i.organizationId=e.value;break;case`serviceName`:i.serviceName=e.value;break;case`environment`:i.environment=e.value;break;case`experimentId`:i.experimentId=e.value}return i}function V2r(e,t){return t.map(t=>{let n=e.find(e=>e.id===t.fieldId);return n?n.kind===`text`?{fieldId:t.fieldId,value:``}:n.kind===`pick-multi`?n.multi?{fieldId:t.fieldId,value:[]}:{fieldId:t.fieldId,value:`Any`}:t:t})}var H2r=`Filters setting for Logs saved`,U2r=`Filters setting for Logs cleared up`;function W2r(e,t,n){let{storageKey:r,messages:i,skipHydration:a}=n??{},[o,s]=(0,U.useState)(()=>P2r(r)!==null),c=(0,U.useCallback)(()=>{M2r(e,r),s(!0);let t=i?.saved??H2r;t!==!1&&fw.success(t)},[e,r,i?.saved]),l=(0,U.useCallback)(()=>{N2r(r),s(!1);let e=i?.cleared??U2r;e!==!1&&fw.success(e)},[r,i?.cleared]),u=(0,U.useRef)(!1);return(0,U.useEffect)(()=>{if(a||u.current||(u.current=!0,F2r(e)))return;let n=P2r(r);n&&t(e=>{let t=new URLSearchParams(e);for(let[e,r]of n)t.append(e,r);return t},{replace:!0})},[]),{hasSavedFilters:o,handleSave:c,handleRemoveSaved:l}}function G2r(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)|0;return(t>>>0).toString(36)}function K2r(e){let t=new Map;for(let n of e){if(n.logId){t.set(n,n.logId);continue}let e=n.timestamp instanceof Date?n.timestamp.toISOString():n.timestamp;t.set(n,G2r(`${e}${n.message??``}${n.data?JSON.stringify(n.data):``}`))}return t}function q2r(e,t,n,r){let i=(0,U.useMemo)(()=>K2r(e),[e]),a=(0,U.useMemo)(()=>{let t=new Map;for(let[n,r]of e.entries()){let e=i.get(r);e&&t.set(e,{log:r,idx:n})}return t},[e,i]),o=(t?a.get(t):void 0)?.idx??-1,s=o>=0?e[o]??null:null;return{logIdMap:i,getLogId:(0,U.useCallback)(e=>i.get(e),[i]),featuredLog:s,handleLogClick:(0,U.useCallback)(e=>{let a=i.get(e);a&&n(t===a?{logId:null}:r?{logId:a,traceId:e.traceId??null,spanId:null}:{logId:a})},[i,t,r,n]),handlePreviousLog:o>0?()=>{let t=e[o-1];if(!t)return;let a=i.get(t);a&&n(r?{logId:a,traceId:t.traceId??null,spanId:null}:{logId:a})}:void 0,handleNextLog:o>=0&&o<e.length-1?()=>{let t=e[o+1];if(!t)return;let a=i.get(t);a&&n(r?{logId:a,traceId:t.traceId??null,spanId:null}:{logId:a})}:void 0}}var J2r=`logId`,Y2r=`traceId`,X2r=`spanId`,C9=864e5,Z2r={"last-24h":C9,"last-3d":3*C9,"last-7d":7*C9,"last-14d":14*C9,"last-30d":30*C9};function w9(e){e.delete(J2r),e.delete(Y2r),e.delete(X2r)}function Q2r(e,t,n){let{onRemoveAll:r}=n??{},i=(0,U.useMemo)(()=>{let t=e.get(v9);return t&&k2r.has(t)?t:`last-24h`},[e]),a=e.get(y9),o=e.get(b9),s=(0,U.useMemo)(()=>{if(i===`custom`){if(!a)return;let e=new Date(a);return Number.isNaN(e.getTime())?void 0:e}if(i===`all`)return;let e=Z2r[i];return e?new Date(Date.now()-e):void 0},[i,a]),c=(0,U.useMemo)(()=>{if(i!==`custom`||!o)return;let e=new Date(o);return Number.isNaN(e.getTime())?void 0:e},[i,o]),l=(0,U.useRef)(i);l.current=i;let u=e.get(J2r),d=e.get(Y2r),f=e.get(X2r),p=(0,U.useMemo)(()=>D2r.find(t=>t.entityType===e.get(_9)),[e]),m=(0,U.useMemo)(()=>L2r(e),[e]),h=(0,U.useCallback)(e=>{t(t=>{let n=new URLSearchParams(t);for(let[t,r]of Object.entries(e)){let e=t===`logId`?J2r:t===`traceId`?Y2r:X2r;r?n.set(e,r):n.delete(e)}return n},{replace:!0})},[t]),g=(0,U.useCallback)(e=>{t(t=>{let n=new URLSearchParams(t);return z2r(n,e),w9(n),n},{replace:!0})},[t]),_=g,v=(0,U.useCallback)((e,n)=>{if(l.current!==`custom`)return;let r=n===`from`?y9:b9;t(t=>{let n=new URLSearchParams(t);return e?n.set(r,e.toISOString()):n.delete(r),w9(n),n},{replace:!0})},[t]),y=(0,U.useCallback)(e=>{l.current=e,t(t=>{let n=new URLSearchParams(t);return e===`last-24h`?(n.delete(v9),n.delete(y9),n.delete(b9)):e===`custom`?n.set(v9,`custom`):(n.set(v9,e),n.delete(y9),n.delete(b9)),w9(n),n},{replace:!0})},[t]),b=(0,U.useCallback)(()=>{t(e=>{let t=new URLSearchParams(e);t.delete(_9);for(let e of S9)t.delete(x9[e]);return t.delete(v9),t.delete(y9),t.delete(b9),w9(t),t},{replace:!0}),r?.()},[t,r]);return(0,U.useMemo)(()=>({searchParams:e,setSearchParams:t,datePreset:i,selectedDateFrom:s,selectedDateTo:c,datePresetRef:l,featuredLogId:u,featuredTraceId:d,featuredSpanId:f,selectedEntityOption:p,filterTokens:m,handleFeaturedChange:h,handleFilterTokensChange:_,handleDateChange:v,handleDatePresetChange:y,handleRemoveAll:b,applyFilterTokens:g}),[e,t,i,s,c,l,u,d,f,p,m,h,_,v,y,b,g])}var $2r=20,e4r=1e4,t4r={field:`timestamp`,direction:`DESC`};function n4r(e,t,n){if(e?.pagination?.hasMore)return n+1}function r4r(e){let t=new Set,n=[];for(let r of e.pages)for(let e of r.logs??[]){let r=e.logId??JSON.stringify(e);t.has(r)||(t.add(r),n.push(e))}return n}function i4r(e){return sR(e.state.error,`logs`)||cR(e.state.error)?!1:e4r}var a4r=({filters:e,orderBy:t=t4r,queryOptions:n}={})=>{let r=J(),{inView:i,setRef:a}=gL(),{hasNextPage:o,isFetchingNextPage:s,fetchNextPage:c,data:l,isLoading:u,isError:d,error:f}=q_({queryKey:[`logs`,e,t],queryFn:({pageParam:n})=>r.listLogsVNext({pagination:{page:n,perPage:$2r},filters:e,orderBy:t}),initialPageParam:0,getNextPageParam:n4r,select:r4r,retry:!1,refetchInterval:i4r,...n});return(0,U.useEffect)(()=>{i&&o&&!s&&c()},[i,o,s,c]),{data:l,hasNextPage:o,isFetchingNextPage:s,fetchNextPage:c,isLoading:u,isError:d,error:f,setEndOfListElement:a}},o4r=[_R(`/logs`)],s4r=[`timestamp`],c4r={key:`timestamp`,direction:`desc`};function l4r(){let[e,t]=ty(),n=Gv(),r=Q2r(e,t),i=G8(),{sort:a,onSortChange:o}=J8({searchParams:e,setSearchParams:t,allowedKeys:s4r,defaultSort:c4r}),s=(0,U.useMemo)(()=>({field:`timestamp`,direction:a?.direction===`asc`?`ASC`:`DESC`}),[a?.direction]),c=W2r(e,t),[l,u]=(0,U.useState)(),{data:d=[],isPending:f}=rCr(),{data:p=[],isPending:m}=r6({entityType:r.selectedEntityOption?.entityType,rootOnly:!0}),{data:h=[],isPending:g}=i6(),{data:_=[],isPending:v}=tCr(),y=(0,U.useMemo)(()=>I2r({availableTags:d,availableRootEntityNames:p,availableServiceNames:_,availableEnvironments:h,loading:{tags:f,entityNames:m,serviceNames:v,environments:g}}),[d,p,_,h,f,m,v,g]),{data:b=[],isLoading:x,error:S,isFetchingNextPage:C,hasNextPage:w,setEndOfListElement:T}=a4r({filters:(0,U.useMemo)(()=>B2r({rootEntityType:r.selectedEntityOption?.entityType,dateFrom:r.selectedDateFrom,dateTo:r.selectedDateTo,tokens:r.filterTokens}),[r.filterTokens,r.selectedDateFrom,r.selectedDateTo,r.selectedEntityOption]),orderBy:s}),{logIdMap:E,featuredLog:D,handleLogClick:O,handlePreviousLog:k,handleNextLog:A}=q2r(b,r.featuredLogId,r.handleFeaturedChange,r.featuredTraceId),{data:j,isLoading:M}=o6({traceId:r.featuredTraceId??null,queryOptions:{enabled:!!r.featuredTraceId}}),N=(0,U.useCallback)(()=>r.applyFilterTokens(V2r(y,r.filterTokens)),[y,r]),P=(0,U.useCallback)(()=>r.handleFeaturedChange({logId:null}),[r]),F=(0,U.useCallback)(e=>r.handleFeaturedChange({traceId:e,spanId:null}),[r]),I=(0,U.useCallback)((e,t)=>r.handleFeaturedChange({traceId:e,spanId:t}),[r]),L=(0,U.useCallback)(()=>r.handleFeaturedChange({traceId:null,spanId:null}),[r]),R=(0,U.useCallback)(e=>r.handleFeaturedChange({spanId:e??null}),[r]),z=(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(VY,{children:(0,W.jsxs)(VY.Start,{children:[(0,W.jsx)(cgn,{preset:r.datePreset,onPresetChange:r.handleDatePresetChange,dateFrom:r.selectedDateFrom,dateTo:r.selectedDateTo,onDateChange:r.handleDateChange,disabled:x,presets:[`last-24h`,`last-3d`,`last-7d`,`last-14d`,`last-30d`,`custom`]}),(0,W.jsx)(s2r,{fields:y,tokens:r.filterTokens,onTokensChange:r.handleFilterTokensChange,disabled:x,onStartTextFilter:u})]})}),(0,W.jsx)(x2r,{isLoading:x,filterFields:y,filterTokens:r.filterTokens,onFilterTokensChange:r.handleFilterTokensChange,onClear:N,onRemoveAll:r.handleRemoveAll,onSave:c.handleSave,onRemoveSaved:c.hasSavedFilters?c.handleRemoveSaved:void 0,autoFocusFilterFieldId:l})]});if(S)return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:o4r}),actionRow:z,children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Logs`}),(0,W.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,W.jsx)(u2r,{error:S,resource:`logs`,errorTitle:`Failed to load logs`})})]});let B=!!r.selectedEntityOption||r.filterTokens.length>0;return b.length===0&&!x&&!B?(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:o4r}),actionRow:z,children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Logs`}),(0,W.jsx)(E2r,{datePreset:r.datePreset,dateFrom:r.selectedDateFrom,dateTo:r.selectedDateTo})]}):(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:o4r}),actionRow:z,children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Logs`}),(0,W.jsx)(b2r,{logs:b,isLoading:x,isFetchingNextPage:C,hasNextPage:w,setEndOfListElement:T,logIdMap:E,featuredLogId:r.featuredLogId,onLogClick:O,timestampSort:a?.direction,onSortChange:o}),(0,W.jsx)(l2r,{log:D??void 0,onClose:P,onTraceClick:F,onSpanClick:I,onPrevious:k,onNext:A}),(0,W.jsx)(sXr,{depth:2,traceId:D?r.featuredTraceId??void 0:void 0,spans:j?.spans,isLoadingSpans:M,selectedSpanId:r.featuredSpanId??null,onSpanSelect:R,onClose:L,withQueryTrace:i.enabled,withFeedback:i.enabled,onOpenScore:(e,t)=>n(zY(e,t))})]})}var u4r={name:e=>e.name||e.id};function d4r({server:e,rowProps:t}){let{paths:n,Link:r}=Ft(),i=J().options.baseUrl,a=e.transports?.includes(`sse`)??!0?`sse`:`mcp`,o=i?`${i}/api/mcp/${e.id}/${a}`:``,{data:s}=PMt({selectedServer:e}),c=Object.values(s||{}),l=c.length,u=c.filter(e=>e.toolType===`agent`).length,d=c.filter(e=>e.toolType===`workflow`).length,f=TX(e.name,50);return(0,W.jsxs)(Q.RowLink,{to:n.mcpServerLink(e.id),LinkComponent:r,...t,children:[(0,W.jsx)(Q.NameCell,{children:f}),(0,W.jsx)(Q.DescriptionCell,{children:o}),(0,W.jsx)(Q.TextCell,{className:`text-center`,children:u||``}),(0,W.jsx)(Q.TextCell,{className:`text-center`,children:l||``}),(0,W.jsx)(Q.TextCell,{className:`text-center`,children:d||``})]})}function f4r({mcpServers:e,isLoading:t,search:n=``,sort:r,onSortChange:i}){let a=(0,U.useMemo)(()=>{let t=n.toLowerCase();return BQ(e.filter(e=>e.name?.toLowerCase().includes(t)||e.id?.toLowerCase().includes(t)),r,u4r)},[e,n,r]),{containerRef:o,getRowProps:s}=RQ({count:a.length,global:!0});return t?(0,W.jsx)(zK,{columns:`auto 1fr auto auto auto`}):(0,W.jsxs)(Q,{columns:`auto 1fr auto auto auto`,scrollRef:o,children:[(0,W.jsxs)(Q.Top,{children:[i?(0,W.jsx)(Q.SortableTopCell,{sortKey:`name`,sort:r?.key===`name`?r.direction:void 0,onSortChange:i,children:`Name`}):(0,W.jsx)(Q.TopCell,{children:`Name`}),(0,W.jsx)(Q.TopCell,{children:`URL`}),(0,W.jsx)(Q.TopCellSmart,{long:`Agents`,short:(0,W.jsx)(dR,{}),tooltip:`Agent tools`,className:`text-center`}),(0,W.jsx)(Q.TopCellSmart,{long:`Tools`,short:(0,W.jsx)(hR,{}),tooltip:`Tools`,className:`text-center`}),(0,W.jsx)(Q.TopCellSmart,{long:`Workflows`,short:(0,W.jsx)(pL,{}),tooltip:`Workflow tools`,className:`text-center`})]}),a.length===0&&n?(0,W.jsx)(Q.NoMatch,{message:`No MCP Servers match your search`}):null,a.map((e,t)=>(0,W.jsx)(d4r,{server:e,rowProps:s(t)},e.id))]})}var p4r=()=>(0,W.jsx)(aw,{titleSlot:`No MCP Servers yet`,descriptionSlot:(0,W.jsxs)(W.Fragment,{children:[`MCP servers are not configured yet. `,(0,W.jsx)(`br`,{}),`More information in the documentation.`]}),actionSlot:(0,W.jsx)(Y,{variant:`ghost`,render:(0,W.jsx)(`a`,{href:`https://mastra.ai/docs/tools-mcp/mcp-overview`,target:`_blank`,rel:`noopener noreferrer`}),icon:(0,W.jsx)(tC,{}),children:`MCP documentation`}),variant:`fill`}),T9=[_R(`/mcps`)],m4r=()=>{let{data:e=[],isLoading:t,error:n}=nR(),[r,i]=(0,U.useState)(``),[a,o]=(0,U.useState)();return n&&iR(n)?(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:T9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`MCP Servers`}),(0,W.jsx)(CK,{variant:`fill`})]}):n&&aR(n)?(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:T9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`MCP Servers`}),(0,W.jsx)(SK,{variant:`fill`,resource:`MCP servers`})]}):n?(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:T9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`MCP Servers`}),(0,W.jsx)(aw,{tone:`error`,variant:`fill`,titleSlot:`Failed to load MCP servers`,descriptionSlot:n.message})]}):e.length===0&&!t?(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:T9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`MCP Servers`}),(0,W.jsx)(p4r,{})]}):(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:T9}),actionRow:(0,W.jsx)(VY,{children:(0,W.jsx)(VY.Start,{children:(0,W.jsx)(`div`,{className:`max-w-120 flex-1`,children:(0,W.jsx)(WK,{onSearch:i,label:`Filter MCP servers`,placeholder:`Filter by name`})})})}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`MCP Servers`}),(0,W.jsx)(f4r,{mcpServers:e,isLoading:t,search:r,sort:a,onSortChange:(e,t)=>o({key:t,direction:e})})]})};function h4r(){let[e,t]=ty();return{eventName:e.get(`event`)??void 0,close:()=>t(e=>{let t=new URLSearchParams(e);return t.delete(`event`),t},{replace:!0})}}var g4r=e=>`?${new URLSearchParams({event:e}).toString()}`;function _4r(e,{enabled:t=!0}={}){let n=J();return W_({queryKey:[`mcp-server-events`,e],queryFn:()=>n.getMcpServerEvents(e),enabled:t})}function v4r(e,t){let n=J();return K_({mutationFn:r=>n.emitMcpServerEvent(e,t,r)})}function y4r(e){if(e instanceof kf&&typeof e.body==`object`&&e.body!==null){let t=`error`in e.body?e.body.error:void 0;if(typeof t==`string`&&t)return t}return`The event request failed.`}var b4r={push:`blue`,poll:`neutral`,webhook:`purple`};function x4r({delivery:e}){return(0,W.jsx)(`span`,{className:`flex flex-wrap items-center gap-1`,children:e.map(e=>(0,W.jsx)(GT,{size:`xs`,variant:b4r[e],emphasis:`subtle`,children:e},e))})}var S4r=0,C4r=()=>`feed-${S4r++}`;function w4r(e,t){return[...t,...e].slice(0,200)}function T4r(e,t){switch(t.type){case`status`:return{...e,status:t.status,error:void 0,warning:void 0};case`cursor`:return t.cursor?{...e,cursor:t.cursor}:e;case`gap`:return{...e,items:w4r(e.items,[{kind:`gap`,key:C4r()}])};case`occurrences`:{let n=[...t.occurrences].reverse().map(e=>({kind:`occurrence`,key:C4r(),occurrence:e}));return{...e,items:w4r(e.items,n)}}case`warning`:return{...e,warning:t.message};case`error`:return{...e,status:`error`,error:t.message}}}var E4r={status:`idle`,items:[]};function D4r(e,t){let n=J(),[r,i]=(0,U.useReducer)(T4r,E4r),a=(0,U.useRef)(void 0),o=(0,U.useRef)(void 0),s=e=>{e&&(o.current=e),i({type:`cursor`,cursor:e})};(0,U.useEffect)(()=>()=>a.current?.abort(),[]);let c=()=>{a.current?.abort(),a.current=void 0,i({type:`status`,status:`stopped`})},l=async r=>{a.current?.abort();let c=new AbortController;a.current=c,i({type:`status`,status:`connecting`});try{let a=n.streamMcpServerEvent(e,t,{arguments:r,cursor:o.current},{signal:c.signal});for await(let e of a){if(c.signal.aborted)return;if(e.type===`active`)i({type:`status`,status:`live`}),s(e.cursor),e.truncated&&i({type:`gap`});else if(e.type===`event`)i({type:`occurrences`,occurrences:[e.occurrence]}),s(e.occurrence.cursor);else if(e.type===`heartbeat`)s(e.cursor);else if(e.type===`error`)i({type:`warning`,message:e.message});else break}c.signal.aborted||i({type:`status`,status:`stopped`})}catch(e){if(c.signal.aborted)return;i({type:`error`,message:y4r(e)})}finally{a.current===c&&(a.current=void 0)}},u=async r=>{i({type:`status`,status:`polling`});try{let a=await n.pollMcpServerEvent(e,t,{arguments:r,cursor:o.current});a.truncated&&i({type:`gap`}),i({type:`occurrences`,occurrences:a.events}),s(a.cursor),i({type:`status`,status:`polled`})}catch(e){i({type:`error`,message:y4r(e)})}};return{...r,start:l,stop:c,pollOnce:u}}function E9(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function O4r(e){return e.map(e=>JSON.stringify(e)).join(` | `)}function k4r(e){return e.map(D9).join(` | `)}function D9(e){return E9(e)?Array.isArray(e.enum)?O4r(e.enum):`const`in e?JSON.stringify(e.const):Array.isArray(e.anyOf)?k4r(e.anyOf):Array.isArray(e.oneOf)?k4r(e.oneOf):Array.isArray(e.type)?e.type.join(` | `):e.type===`array`?`${D9(e.items)}[]`:M4r(e)?`Record<string, ${D9(e.additionalProperties)}>`:typeof e.type==`string`?e.type:`unknown`:`unknown`}function A4r(e,t,n,{defaultsAreOptional:r=!1}){let i=E9(t)?t:{},a=`default`in i;return{name:e,type:D9(i),required:n.has(e)&&!(r&&a),description:typeof i.description==`string`?i.description:void 0,defaultValue:a?JSON.stringify(i.default):void 0}}function j4r(e,t={}){if(!E9(e)||!E9(e.properties))return[];let n=new Set(Array.isArray(e.required)?e.required.filter(e=>typeof e==`string`):[]);return Object.entries(e.properties).map(([e,r])=>A4r(e,r,n,t))}function M4r(e){return E9(e)&&e.type===`object`&&!E9(e.properties)&&E9(e.additionalProperties)}function N4r(e){return E9(e)&&(e.type===`object`||E9(e.properties))}var P4r=[`type`,`properties`,`items`,`enum`,`const`,`anyOf`,`oneOf`,`allOf`,`$ref`];function F4r(e){return!E9(e)||!P4r.some(t=>t in e)}function O9(e){return E9(e)?_M(e):lM({})}function I4r({inputSchema:e,onChange:t}){return F4r(e)?(0,W.jsx)(Z,{tone:`muted`,children:`This event takes no arguments.`}):(0,W.jsx)(fL,{schema:O9(e),onValuesChange:e=>t(e??{})})}function L4r({occurrence:e}){return(0,W.jsx)(jR,{children:(0,W.jsxs)(FT,{children:[(0,W.jsxs)(IT,{className:`flex w-full cursor-pointer items-center gap-2 px-3 py-2 text-left`,children:[(0,W.jsx)(RT,{direction:`right`,className:`size-4 shrink-0`}),(0,W.jsx)(Z,{as:`span`,variant:`caption`,font:`mono`,className:`min-w-0 flex-1 truncate`,children:e.eventId}),e.eventId.startsWith(`mastra-test-`)&&(0,W.jsx)(GT,{size:`xs`,variant:`amber`,emphasis:`subtle`,children:`test`}),(0,W.jsx)(Z,{as:`span`,variant:`caption`,font:`mono`,tone:`muted`,className:`shrink-0`,children:e.timestamp})]}),(0,W.jsx)(LT,{children:(0,W.jsx)(yO,{value:JSON.stringify(e.data,null,2),language:`json`,editable:!1,lineNumbers:!1,showCopyButton:!1,variant:`embedded`,"aria-label":`Event ${e.eventId} data`,className:`px-3 pb-3`})})]})})}var R4r=`Gap: events may have been skipped`;function z4r({items:e}){return e.length===0?(0,W.jsx)(aw,{iconSlot:(0,W.jsx)(NC,{}),titleSlot:`No events yet`,descriptionSlot:`Start listening or poll to see occurrences here.`}):(0,W.jsx)(`ol`,{"aria-label":`Occurrences`,className:`grid grid-cols-1 gap-2`,children:e.map(e=>(0,W.jsx)(`li`,{children:e.kind===`gap`?(0,W.jsx)(oN,{variant:`warning`,children:R4r}):(0,W.jsx)(L4r,{occurrence:e.occurrence})},e.key))})}var B4r={idle:`Not listening`,connecting:`Connecting…`,polling:`Polling…`,polled:`Polled`,stopped:`Stopped`,error:`Failed`};function V4r({status:e,canStream:t}){if(e===`live`)return(0,W.jsx)(GT,{variant:`green`,indicator:`pulse`,size:`sm`,children:`Listening`});let n=e===`idle`&&!t?`Not polled yet`:B4r[e];return(0,W.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(e===`connecting`||e===`polling`)&&(0,W.jsx)(dt,{size:`sm`}),(0,W.jsx)(Z,{as:`span`,tone:`muted`,children:n})]})}function H4r({status:e,canStream:t,cursor:n}){return(0,W.jsxs)(`div`,{role:`status`,className:`flex min-w-0 flex-wrap items-center gap-3`,children:[(0,W.jsx)(V4r,{status:e,canStream:t}),n&&(0,W.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1`,children:[(0,W.jsx)(Z,{as:`span`,variant:`caption`,tone:`muted`,children:`Cursor`}),(0,W.jsx)(Z,{as:`span`,variant:`caption`,font:`mono`,className:`min-w-0 truncate`,children:n}),(0,W.jsx)(qT,{tooltip:`Copy cursor`,content:n})]})]})}function U4r({serverId:e,event:t,onEmitted:n}){let{mutateAsync:r,isPending:i,isSuccess:a,error:o}=v4r(e,t.name);return(0,W.jsxs)(`section`,{"aria-label":`Send test event`,className:`grid grid-cols-1 gap-3`,children:[(0,W.jsx)(Z,{as:`h3`,variant:`subheading`,children:`Send test event`}),(0,W.jsx)(fL,{schema:O9(t.payloadSchema),onSubmit:async e=>{try{await r(e??{}),n?.()}catch{}},isSubmitLoading:i,submitButtonLabel:`Send test event`}),a&&!o&&(0,W.jsx)(Z,{tone:`muted`,children:`Test event sent.`}),o&&(0,W.jsx)(oN,{variant:`destructive`,children:y4r(o)})]})}function W4r({serverId:e,event:t,testEmit:n,canEmit:r}){let[i,a]=(0,U.useState)({}),o=D4r(e,t.name),s=t.delivery.includes(`push`),c=o.status===`connecting`||o.status===`live`;return(0,W.jsxs)(`div`,{className:`grid grid-cols-1 content-start gap-6`,children:[(0,W.jsx)(I4r,{inputSchema:t.inputSchema,onChange:a}),(0,W.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,W.jsx)(H4r,{status:o.status,canStream:s,cursor:o.cursor}),s&&c&&(0,W.jsx)(Y,{onClick:o.stop,children:`Stop`}),s&&!c&&(0,W.jsx)(Y,{variant:`primary`,onClick:()=>void o.start(i),children:`Start`}),!s&&(0,W.jsx)(Y,{variant:`primary`,disabled:o.status===`polling`,onClick:()=>void o.pollOnce(i),children:`Poll once`})]}),o.error&&(0,W.jsx)(oN,{variant:`destructive`,children:o.error}),o.warning&&(0,W.jsx)(oN,{variant:`warning`,children:o.warning}),n&&t.emittable&&r&&(0,W.jsx)(U4r,{serverId:e,event:t,onEmitted:s?void 0:()=>void o.pollOnce(i)}),(0,W.jsx)(z4r,{items:o.items})]})}function G4r({description:e}){let t=q$({collapsedHeight:140});return(0,W.jsx)(K$,{state:t,expandLabel:`Read more`,children:(0,W.jsx)(CZ,{children:e})})}function K4r({description:e,overview:t,playground:n,canRun:r}){return(0,W.jsx)(W.Fragment,{children:(0,W.jsxs)(tN,{defaultTab:`overview`,className:`grid flex-1 grid-rows-[auto_1fr] gap-4 overflow-visible`,children:[(0,W.jsxs)(eN,{variant:`pill`,size:`sm`,children:[(0,W.jsx)(nN,{value:`overview`,children:`Overview`}),(0,W.jsx)(nN,{value:`playground`,disabled:!r,disabledTooltip:`You don't have permission to execute tools.`,children:`Playground`})]}),(0,W.jsxs)(rN,{value:`overview`,flush:!0,className:`content-start gap-6`,children:[e&&(0,W.jsx)(jR,{className:`p-4`,children:(0,W.jsx)(G4r,{description:e})}),t]}),(0,W.jsx)(rN,{value:`playground`,flush:!0,keepMounted:!0,className:`h-full`,children:r&&n})]})})}function k9(e){return(0,W.jsx)(Vpr,{className:`min-h-control-md`,...e})}function q4r(){return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{"aria-hidden":!0,className:`ml-0.5 text-destructive-indicator`,children:`*`}),(0,W.jsx)(`span`,{className:`sr-only`,children:` (required)`})]})}function J4r({field:e}){return(0,W.jsxs)(W.Fragment,{children:[e.description,e.defaultValue!==void 0&&(0,W.jsxs)(`span`,{className:`block`,children:[`Default `,e.defaultValue]})]})}function Y4r({field:e}){let t=!!e.description||e.defaultValue!==void 0;return(0,W.jsx)(O$,{label:(0,W.jsxs)(Z,{as:`span`,variant:`body-sm`,font:`mono`,tone:`ink`,children:[e.name,e.required&&(0,W.jsx)(q4r,{})]}),description:t&&(0,W.jsx)(J4r,{field:e}),children:(0,W.jsx)(Z,{as:`span`,variant:`caption`,font:`mono`,tone:`muted`,children:e.type})})}function X4r({message:e}){return(0,W.jsx)(O$,{label:(0,W.jsx)(Z,{as:`span`,variant:`body-sm`,tone:`muted`,children:e})})}function Z4r({schema:e,emptyMessage:t,defaultsAreOptional:n}){if(F4r(e))return(0,W.jsx)(X4r,{message:t});if(!N4r(e)||M4r(e))return(0,W.jsx)(O$,{label:`Type`,children:(0,W.jsx)(Z,{as:`span`,variant:`caption`,font:`mono`,tone:`muted`,children:D9(e)})});let r=j4r(e,{defaultsAreOptional:n});return r.length===0?(0,W.jsx)(X4r,{message:t}):r.map(e=>(0,W.jsx)(Y4r,{field:e},e.name))}function A9({title:e,...t}){return(0,W.jsxs)(N4,{children:[(0,W.jsx)(k9,{children:(0,W.jsx)(P4,{children:e})}),(0,W.jsx)(E$,{children:(0,W.jsx)(Z4r,{...t})})]})}function Q4r({serverId:e,eventName:t}){let{canExecute:n,canEdit:r}=_w(),{data:i,isLoading:a}=_4r(e),o=i?.events.find(e=>e.name===t);return a?(0,W.jsx)(w$.LoadingData,{}):!i||!o?(0,W.jsxs)(w$.NoData,{children:[`This server has no event "`,t,`".`]}):(0,W.jsx)(K4r,{description:o.description,overview:(0,W.jsxs)(`div`,{className:`grid grid-cols-1 gap-6`,children:[(0,W.jsx)(x4r,{delivery:o.delivery}),(0,W.jsx)(A9,{title:`Arguments`,schema:o.inputSchema,emptyMessage:`This event takes no arguments.`,defaultsAreOptional:!0}),(0,W.jsx)(A9,{title:`Payload`,schema:o.payloadSchema,emptyMessage:`No payload schema defined.`})]}),canRun:n(`mcp`),playground:(0,W.jsx)(W4r,{serverId:e,event:o,testEmit:i.testEmit,canEmit:r(`mcp`)})})}function $4r({serverId:e}){let{eventName:t,close:n}=h4r();return(0,W.jsxs)(w$,{open:t!==void 0,onClose:n,title:t??``,children:[(0,W.jsxs)(w$.Header,{children:[(0,W.jsxs)(w$.Heading,{children:[(0,W.jsx)(cS,{size:`sm`,className:`text-muted-foreground`,children:(0,W.jsx)(NC,{})}),(0,W.jsx)(`span`,{className:`truncate`,children:t})]}),(0,W.jsx)(w$.HeaderActions,{children:(0,W.jsx)(w$.CloseButton,{icon:`x`,tooltip:`Close event`,onClick:n})})]}),(0,W.jsx)(w$.Content,{className:`flex flex-col gap-4 px-3`,children:t&&(0,W.jsx)(Q4r,{serverId:e,eventName:t},t)})]})}function e3r(e){if(!E9(e))return;if(E9(e.ui)&&typeof e.ui.resourceUri==`string`)return e.ui.resourceUri;let t=e[`ui/resourceUri`];return typeof t==`string`?t:void 0}function t3r(e){return E9(e)&&e.status===`suspended`}function n3r(e){return e<1e3?`${Math.round(e)} ms`:`${(e/1e3).toFixed(2)} s`}function r3r(e){return e===void 0?`undefined`:JSON.stringify(e,null,2)}function i3r(e){return e.status===`error`?e.error:r3r(e.output)}function a3r({status:e,output:t,error:n},r){if(r!==void 0){if(e===`success`)return{status:`success`,output:t,durationMs:r};if(e===`error`)return{status:`error`,error:o3r(n),durationMs:r}}}function o3r(e){return e instanceof Error?JSON.stringify({error:e.message},null,2):JSON.stringify({error:String(e)},null,2)}function s3r({zodInputSchema:e,isRunning:t,onRun:n,requestContextEntityType:r,requestContextEntityId:i}){let a=!sL(e),[o,s]=(0,U.useState)({view:`form`,value:void 0}),c=(0,U.useRef)(void 0),[l,u]=(0,U.useState)([]);function d(t){if(t===o.view)return;if(u([]),o.view===`form`)return s({view:`json`,value:JSON.stringify(c.current??{},null,2)});let n=LDt(o.value);if(!n.ok)return u([n.error]);let r=RDt(e,n.value);if(r)return u([r]);c.current=n.value,s({view:`form`,value:n.value})}function f(t){let r=zDt(e,t);r.ok?n(r.value):u(r.errors)}let p={isSubmitLoading:t,submitButtonLabel:`Run`,submitButtonIcon:(0,W.jsx)(AC,{}),submitButtonVariant:`primary`};return(0,W.jsxs)(N4,{children:[(0,W.jsx)(k9,{action:(0,W.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,W.jsx)(HNt,{entityType:r,entityId:i}),(0,W.jsx)(tN,{defaultTab:`form`,value:o.view,onValueChange:d,children:(0,W.jsxs)(eN,{size:`md`,children:[(0,W.jsxs)(nN,{value:`form`,disabled:t,children:[(0,W.jsx)(cS,{size:`sm`,children:(0,W.jsx)(NKe,{})}),`Form`]}),(0,W.jsxs)(nN,{value:`json`,disabled:t,children:[(0,W.jsx)(cS,{size:`sm`,children:(0,W.jsx)(NS,{})}),`JSON`]})]})})]}),children:(0,W.jsx)(P4,{children:`Request`})}),(0,W.jsx)(E$,{children:(0,W.jsx)(`div`,{className:`p-4`,children:o.view===`json`?(0,W.jsxs)(`div`,{className:`grid gap-4`,children:[(0,W.jsxs)(VM,{invalid:l.length>0,children:[(0,W.jsx)(yO,{variant:`embedded`,language:`json`,value:o.value,onChange:e=>{s({view:`json`,value:e}),u([])},editable:!t,"aria-label":`Request JSON`}),l.length>0&&(0,W.jsx)(GM,{children:l.map(e=>(0,W.jsx)(`span`,{className:`block`,children:e},e))})]}),(0,W.jsx)(lN,{...p,onSubmit:()=>f(o.value)})]}):(0,W.jsx)(fL,{...p,schema:e,defaultValues:o.value,onValuesChange:e=>{c.current=e},onSubmit:n,className:`gap-0`,children:!a&&(0,W.jsx)(Z,{variant:`body-sm`,tone:`muted`,className:`pb-4`,children:`This tool takes no input. Run it as is.`})})})})]})}function c3r({isRunning:e,lastRun:t}){return e?(0,W.jsx)(aw,{iconSlot:(0,W.jsx)(dt,{}),titleSlot:`Running…`,descriptionSlot:`Waiting for the tool to respond.`}):t?t.status===`error`?(0,W.jsx)(OD,{code:i3r(t),className:`overflow-x-auto p-4 text-caption whitespace-pre`}):(0,W.jsx)(yO,{value:i3r(t),language:`json`,editable:!1,lineNumbers:!1,showCopyButton:!1,variant:`embedded`,"aria-label":`Tool response`,className:`p-4`}):(0,W.jsx)(aw,{iconSlot:(0,W.jsx)(UKe,{}),titleSlot:`No response yet`,descriptionSlot:`Run the tool to see its output here.`})}function l3r({run:e}){return(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.status===`success`?(0,W.jsx)(GT,{variant:`success`,emphasis:`subtle`,indicator:`dot`,children:`Success`}):(0,W.jsx)(GT,{variant:`destructive`,emphasis:`subtle`,indicator:`dot`,children:`Error`}),(0,W.jsx)(Z,{as:`span`,variant:`caption`,font:`mono`,tone:`muted`,children:n3r(e.durationMs)}),(0,W.jsx)(qT,{content:i3r(e),copyMessage:`Response copied`,tooltip:`Copy response`,size:`icon-sm`})]})}function u3r({isRunning:e,lastRun:t}){return(0,W.jsxs)(N4,{className:`h-full`,children:[(0,W.jsx)(k9,{action:!e&&t&&(0,W.jsx)(l3r,{run:t}),children:(0,W.jsx)(P4,{children:`Response`})}),(0,W.jsx)(E$,{className:H(`grid min-h-48 flex-1`,e||!t?`content-center`:`content-start`),children:(0,W.jsx)(c3r,{isRunning:e,lastRun:t})})]})}function d3r({zodInputSchema:e,execution:t,requestContextEntityType:n,requestContextEntityId:r}){let[i]=AT(n,r),[a,o]=(0,U.useState)(),s=async e=>{let n=performance.now();await t.execute(e,i).catch(()=>void 0),o(performance.now()-n)},c=t.status===`pending`;return(0,W.jsxs)(`div`,{className:`grid h-full grid-rows-[auto_1fr] gap-6`,children:[(0,W.jsx)(s3r,{zodInputSchema:e,isRunning:c,onRun:s,requestContextEntityType:n,requestContextEntityId:r}),(0,W.jsx)(u3r,{isRunning:c,lastRun:a3r(t,a)})]})}function f3r({serverId:e,tool:t}){let{mutateAsync:n,status:r,data:i,error:a}=NMt({serverId:e,toolId:t.name}),{data:o}=AMt({serverId:e,appResourceUri:e3r(t._meta)}),s=O9(t.inputSchema),c={execute:(e,t)=>n({data:e,requestContext:t}),status:r,output:i,error:a};return(0,W.jsxs)(`div`,{className:`grid content-start gap-6`,children:[o&&(0,W.jsx)(blr,{html:o,toolName:t.name,onToolCall:(e,t)=>n({data:t})}),t3r(i)&&(0,W.jsxs)(oN,{variant:`warning`,children:[`This tool asked for more input, which Studio cannot provide. The suspend payload below shows what it needs. Call it from an MCP client with an `,(0,W.jsx)(RZ,{children:`inputRequests`}),` handler to finish the request.`]}),(0,W.jsx)(d3r,{zodInputSchema:s,execution:c,requestContextEntityType:`mcp-tool`,requestContextEntityId:`${e}:${t.name}`})]})}var p3r=(0,U.createContext)(void 0),m3r=p3r.Provider;function h3r(){let e=(0,U.useContext)(p3r);if(e===void 0)throw Error(`useOpenToolId must be used inside ToolDrawer`);return e}function g3r({inputSchema:e,outputSchema:t,requestContextSchema:n,footer:r}){return(0,W.jsxs)(`div`,{className:`grid gap-6`,children:[(0,W.jsx)(A9,{title:`Input`,schema:e,emptyMessage:`This tool takes no input.`,defaultsAreOptional:!0}),(0,W.jsx)(A9,{title:`Output`,schema:t,emptyMessage:`No output schema defined.`}),n!==void 0&&(0,W.jsx)(A9,{title:`Request context`,schema:n,emptyMessage:`No request context fields.`,defaultsAreOptional:!0}),r]})}function _3r({serverId:e}){let t=h3r(),{canExecute:n}=_w(),{data:r,isLoading:i}=MMt({serverId:e,toolId:t});return i?(0,W.jsx)(w$.LoadingData,{}):r?(0,W.jsx)(K4r,{description:r.description,overview:(0,W.jsx)(g3r,{inputSchema:r.inputSchema}),canRun:n(`tools`),playground:(0,W.jsx)(f3r,{serverId:e,tool:r})}):(0,W.jsxs)(w$.NoData,{children:[`This server has no tool "`,t,`".`]})}var v3r=`auto 1fr auto`;function y3r({server:e}){let{data:t,isLoading:n,isError:r}=_4r(e.id),i=t?.events??[],{Link:a}=Ft(),{containerRef:o,getRowProps:s}=RQ({count:i.length});return(0,W.jsxs)(`section`,{className:`flex flex-col gap-3`,children:[(0,W.jsx)(Z,{as:`h2`,variant:`heading`,children:`Events`}),n&&(0,W.jsx)(zK,{columns:v3r}),r&&(0,W.jsx)(oN,{variant:`destructive`,children:`Could not load this server's events.`}),t&&(0,W.jsxs)(Q,{columns:v3r,scrollRef:o,children:[(0,W.jsxs)(Q.Top,{children:[(0,W.jsx)(Q.TopCell,{children:`Name`}),(0,W.jsx)(Q.TopCell,{children:`Description`}),(0,W.jsx)(Q.TopCell,{children:`Delivery`})]}),i.length===0&&(0,W.jsx)(Q.NoMatch,{message:`This server declares no events`}),i.map((t,n)=>(0,W.jsxs)(Q.RowLink,{to:`/mcps/${e.id}${g4r(t.name)}`,LinkComponent:a,...s(n),children:[(0,W.jsx)(Q.NameCell,{children:t.name}),(0,W.jsx)(Q.DescriptionCell,{children:t.description}),(0,W.jsx)(Q.TextCell,{children:(0,W.jsx)(x4r,{delivery:t.delivery})})]},t.name))]})]})}var b3r={agent:dR,workflow:pL,tool:hR},x3r=`auto 1fr auto`,S3r={tool:`Tool`,agent:`Agent`,workflow:`Workflow`};function C3r(e){return e in b3r}function w3r({type:e}){let t=C3r(e)?e:`tool`,n=b3r[t],r=S3r[t];return(0,W.jsxs)(iS,{children:[(0,W.jsx)(aS,{asChild:!0,children:(0,W.jsx)(`span`,{"aria-label":t,className:`inline-flex text-muted-foreground [&>svg]:size-4`,children:(0,W.jsx)(n,{})})}),(0,W.jsx)(oS,{children:r})]})}var T3r=lM({ui:lM({resourceUri:rM().optional()}).optional(),"ui/resourceUri":rM().optional()});function E3r(e){let t=T3r.safeParse(e);return t.success?!!(t.data.ui?.resourceUri?.startsWith(`ui://`)||t.data[`ui/resourceUri`]?.startsWith(`ui://`)):!1}function D3r({server:e}){let[t,n]=(0,U.useState)(``),{data:r={},isLoading:i}=PMt({selectedServer:e}),{Link:a,paths:o}=Ft(),s=(0,U.useMemo)(()=>{let e=t.toLowerCase();return Object.values(r).filter(t=>t.name.toLowerCase().includes(e)||t.description?.toLowerCase().includes(e))},[r,t]),{containerRef:c,getRowProps:l}=RQ({count:s.length});return(0,W.jsxs)(`section`,{className:`flex flex-col gap-3`,children:[(0,W.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,W.jsx)(Z,{as:`h2`,variant:`heading`,children:`Available tools`}),(0,W.jsx)(`div`,{className:`max-w-120 flex-1`,children:(0,W.jsx)(WK,{onSearch:n,label:`Filter tools`,placeholder:`Filter by name`,shortcutDisabled:!0})})]}),i?(0,W.jsx)(zK,{columns:x3r}):(0,W.jsxs)(Q,{columns:x3r,scrollRef:c,children:[(0,W.jsxs)(Q.Top,{children:[(0,W.jsx)(Q.TopCell,{children:`Name`}),(0,W.jsx)(Q.TopCell,{children:`Description`}),(0,W.jsx)(Q.TopCell,{className:`justify-center text-center`,children:`Type`})]}),s.length===0&&t?(0,W.jsx)(Q.NoMatch,{message:`No tools match your search`}):null,s.map((t,n)=>(0,W.jsxs)(Q.RowLink,{to:o.mcpServerToolLink(e.id,t.name),LinkComponent:a,...l(n),children:[(0,W.jsx)(Q.NameCell,{children:(0,W.jsxs)(`span`,{className:`flex items-center gap-2`,children:[t.name,E3r(t._meta)&&(0,W.jsx)(GT,{size:`xs`,children:`App`})]})}),(0,W.jsx)(Q.DescriptionCell,{children:t.description}),(0,W.jsx)(Q.TextCell,{className:`justify-center text-center`,children:(0,W.jsx)(w3r,{type:t.toolType??`tool`})})]},t.name))]})]})}var O3r=({isLoading:e,server:t})=>{let[{sseUrl:n,httpStreamUrl:r},i]=(0,U.useState)({sseUrl:``,httpStreamUrl:``});if((0,U.useEffect)(()=>{if(!t)return;let e=window.MASTRA_SERVER_HOST,n=window.MASTRA_SERVER_PORT,r=null;e&&n&&(r=`http://${e}:${n}`);let a=r||`http://localhost:4111`,o=`${a}/api/mcp/${t.id}/sse`,s=`${a}/api/mcp/${t.id}/mcp`;i({sseUrl:o,httpStreamUrl:s})},[t]),e)return null;if(!t)return(0,W.jsx)(Z,{as:`h1`,variant:`heading`,tone:`muted`,className:`py-20 text-center`,children:`Server not found`});let a=t.transports?.includes(`sse`)??!0,o=`npx -y mcp-remote ${a?n:r}`,s=[{value:`http`,label:`HTTP`,description:`Use for stateless HTTP transport with streamable responses.`,content:r,tooltip:`Copy HTTP Stream URL`},...a?[{value:`sse`,label:`SSE`,description:`Use for real-time communication via SSE.`,content:n,tooltip:`Copy SSE URL`}]:[],{value:`cli`,label:`CLI`,description:`Use for local command-line access via npx and mcp-remote.`,content:o,tooltip:`Copy command line config`}];return(0,W.jsxs)(`div`,{className:`flex flex-col gap-6 pt-4`,children:[(0,W.jsx)(jR,{children:(0,W.jsxs)(tN,{defaultTab:`http`,children:[(0,W.jsxs)(MR,{className:`flex-row items-center justify-between gap-3 space-y-0 border-b border-border`,children:[(0,W.jsx)(NR,{className:`shrink-0`,children:`Connect`}),(0,W.jsx)(`div`,{className:`min-w-0`,children:(0,W.jsx)(eN,{variant:`pill-ghost`,size:`sm`,children:s.map(e=>(0,W.jsx)(nN,{value:e.value,children:e.label},e.value))})})]}),s.map(e=>(0,W.jsx)(rN,{value:e.value,flush:!0,children:(0,W.jsxs)(FR,{className:`flex flex-col gap-3`,children:[(0,W.jsx)(Z,{tone:`muted`,children:e.description}),(0,W.jsxs)(`div`,{className:`flex items-center justify-between gap-3 rounded-lg bg-muted py-2 pr-2 pl-3`,children:[(0,W.jsx)(Z,{as:`span`,font:`mono`,className:`min-w-0 break-all`,children:e.content}),(0,W.jsx)(qT,{tooltip:e.tooltip,content:e.content})]})]})},e.value))]})}),(0,W.jsx)(D3r,{server:t}),t.events_capability&&(0,W.jsx)(y3r,{server:t})]})};function k3r(){let[e,t]=ty();return{toolId:e.get(`tool`)??void 0,close:()=>t(e=>{let t=new URLSearchParams(e);return t.delete(`tool`),t},{replace:!0})}}function A3r({children:e}){let{toolId:t,close:n}=k3r();return(0,W.jsxs)(w$,{open:t!==void 0,onClose:n,title:t??``,children:[(0,W.jsxs)(w$.Header,{children:[(0,W.jsxs)(w$.Heading,{children:[(0,W.jsx)(cS,{size:`sm`,className:`text-muted-foreground`,children:(0,W.jsx)(hR,{})}),(0,W.jsx)(`span`,{className:`truncate`,children:t})]}),(0,W.jsx)(w$.HeaderActions,{children:(0,W.jsx)(w$.CloseButton,{icon:`x`,tooltip:`Close tool`,onClick:n})})]}),(0,W.jsx)(w$.Content,{className:`flex flex-col gap-4 px-3`,children:t&&(0,W.jsx)(m3r,{value:t,children:e},t)})]})}var j3r=()=>{let{serverId:e}=Kv(),t=[_R(`/mcps`),MNt],{data:n=[],isLoading:r}=nR(),i=n.find(t=>t.id===e),a=i?.transports?.includes(`sse`)??!0,o=r||i?(0,W.jsxs)(UY,{children:[(0,W.jsx)(UY.Title,{isLoading:r,children:i?.name}),i&&(0,W.jsx)(UY.Meta,{beside:!0,children:(0,W.jsxs)(GT,{size:`sm`,children:[`v`,i.version_detail.version]})}),i&&(0,W.jsx)(UY.Description,{children:a?`This MCP server can be accessed through multiple transport methods. Choose the one that best fits your use case.`:`This MCP server speaks Streamable HTTP only (protocol 2026-07-28).`})]}):void 0;return(0,W.jsxs)(Bw,{variant:`narrow`,breadcrumbs:(0,W.jsx)(IL,{crumbs:t}),header:o,children:[(0,W.jsx)(O3r,{isLoading:r,server:i}),e&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(A3r,{children:(0,W.jsx)(_3r,{serverId:e})}),(0,W.jsx)($4r,{serverId:e})]})]})},j9=[_R(`/metrics`)],M3r=e=>e.fieldId===c8;function N3r({fields:e}){let{filterTokens:t,setFilterTokens:n}=J7(),r=[u8,...UZr(t)];return(0,W.jsxs)(f8,{fields:[l8,...e],operators:IZr,value:r,onValueChange:e=>n(WZr(e.filter(e=>!M3r(e)))),createItemId:e=>e,"aria-label":`Metrics filters`,className:`min-w-64 flex-1`,children:[(0,W.jsx)(f8.Chips,{renderChip:e=>M3r(e)?(0,W.jsx)(F$r,{}):(0,W.jsx)(f8.Chip,{item:e})}),(0,W.jsx)(f8.Input,{placeholder:`Filter metrics…`})]})}function P3r({children:e,filterFields:t}){return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:j9}),actionRow:(0,W.jsx)(VY,{children:(0,W.jsx)(VY.Start,{children:(0,W.jsx)(N3r,{fields:t})})}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Metrics`}),e]})}function F3r({error:e}){return iR(e)?(0,W.jsx)(CK,{}):aR(e)?(0,W.jsx)(SK,{resource:`metrics`}):(0,W.jsx)(aw,{tone:`error`,titleSlot:`Failed to load storage capabilities`,descriptionSlot:e.message})}var I3r=HZr({availableTags:[],availableEntityNames:[],availableServiceNames:[],availableEnvironments:[]});function L3r({children:e}){let{supportsMetrics:t,isLoading:n,error:r}=Z8();return n?(0,W.jsx)(P3r,{filterFields:I3r,children:(0,W.jsxs)(`div`,{className:`flex h-full items-center justify-center gap-2`,children:[(0,W.jsx)(dt,{"aria-label":`Loading storage capabilities`}),(0,W.jsx)(Z,{as:`span`,variant:`caption`,tone:`muted`,children:`Loading storage capabilities`})]})}):r?(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:j9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Metrics`}),(0,W.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,W.jsx)(F3r,{error:r})})]}):t?e:(0,W.jsx)(P3r,{filterFields:I3r,children:(0,W.jsx)(aw,{titleSlot:`Metrics are not available with your current storage`,descriptionSlot:`Metrics require ClickHouse, DuckDB, Postgres v-next, Spanner, or in-memory storage for observability. Other relational databases (LibSQL, MSSQL) and document stores (MongoDB) do not support metrics collection. To enable metrics on an existing project, switch the observability storage in the Mastra configuration.`,actionSlot:(0,W.jsx)(Y,{variant:`ghost`,render:(0,W.jsx)(`a`,{href:`https://mastra.ai/docs/observability/metrics/overview`,target:`_blank`,rel:`noopener noreferrer`}),icon:(0,W.jsx)(tC,{}),children:`Metrics documentation`}),variant:`fill`})})}function R3r(e){switch(e){case`24h`:return`last-24h`;case`3d`:return`last-3d`;case`7d`:return`last-7d`;case`14d`:return`last-14d`;case`30d`:return`last-30d`;case`custom`:return`custom`;default:return}}function z3r(e,t,n,r,i,a,o){if(o){e.set(t,`custom`),e.set(n,o.from.toISOString()),e.set(r,o.to.toISOString());return}if(i===`custom`){e.set(t,`custom`),a?.from&&e.set(n,a.from.toISOString()),a?.to&&e.set(r,a.to.toISOString());return}let s=R3r(i);s&&e.set(t,s)}function M9(e,t,n){typeof n==`string`&&n.length>0&&e.set(t,n)}function B3r(e,t,n){if(Array.isArray(n)&&n.length!==0)for(let r of n)r&&e.append(t,r)}function V3r({preset:e,customRange:t,dashboardFilter:n,scope:r,tracesBasePath:i=`/traces`}){let a=new URLSearchParams;a.set(gwr,`branches`),z3r(a,g6,vwr,ywr,e,t,r.window);let o=r.rootEntityType??n.rootEntityType;o&&a.set(m6,o),r.status&&a.set(h6,r.status),M9(a,_6.entityName,r.entityName??n.entityName),M9(a,_6.threadId,r.threadId??n.threadId),M9(a,_6.resourceId,r.resourceId??n.resourceId),M9(a,_6.runId,n.runId),M9(a,_6.sessionId,n.sessionId),M9(a,_6.requestId,n.requestId),M9(a,_6.userId,n.userId),M9(a,_6.organizationId,n.organizationId),M9(a,_6.experimentId,n.experimentId),M9(a,_6.serviceName,n.serviceName),M9(a,_6.environment,n.environment),B3r(a,_6.tags,n.tags);let s=a.toString();return s?`${i}?${s}`:i}function H3r({preset:e,customRange:t,dashboardFilter:n,scope:r,logsBasePath:i=`/logs`}){let a=new URLSearchParams;z3r(a,v9,y9,b9,e,t,r.window);let o=r.rootEntityType??n.rootEntityType;o&&a.set(_9,o),M9(a,x9.entityName,r.entityName??n.entityName),M9(a,x9.threadId,r.threadId??n.threadId),M9(a,x9.resourceId,r.resourceId??n.resourceId),M9(a,x9.runId,n.runId),M9(a,x9.sessionId,n.sessionId),M9(a,x9.requestId,n.requestId),M9(a,x9.userId,n.userId),M9(a,x9.organizationId,n.organizationId),M9(a,x9.experimentId,n.experimentId),M9(a,x9.serviceName,n.serviceName),M9(a,x9.environment,n.environment),B3r(a,x9.tags,n.tags),r.status===`error`&&a.append(x9.level,`error`);let s=a.toString();return s?`${i}?${s}`:i}function U3r(){let{datePreset:e,customRange:t,dimensionalFilter:n}=J7(),r=Gv(),i={preset:e,customRange:t,dashboardFilter:n};return{openTraces:(e={})=>{r(V3r({...i,scope:e}))},openLogs:(e={})=>{r(H3r({...i,scope:e}))}}}var W3r=`period`,N9=`dateFrom`,P9=`dateTo`;function G3r(){let[e,t]=ty(),n=e.get(W3r),r=tQr(n)?n:`24h`,i=(0,U.useMemo)(()=>{if(r!==`custom`)return;let t=e=>{if(!e)return;let t=new Date(e);return Number.isNaN(t.getTime())?void 0:t},n=t(e.get(N9)),i=t(e.get(P9));if(n||i)return{from:n,to:i}},[r,e.toString()]),a=(0,U.useMemo)(()=>GZr(e),[e.toString()]),o=(0,U.useCallback)(e=>{t(t=>{let n=new URLSearchParams(t);return e===`24h`?n.delete(W3r):n.set(W3r,e),e!==`custom`&&(n.delete(N9),n.delete(P9)),n},{replace:!0})},[t]),s=(0,U.useCallback)(e=>{t(t=>{let n=new URLSearchParams(t);return e?.from?n.set(N9,e.from.toISOString()):n.delete(N9),e?.to?n.set(P9,e.to.toISOString()):n.delete(P9),n},{replace:!0})},[t]),c=(0,U.useCallback)(e=>{t(t=>{let n=new URLSearchParams(t);return qZr(n,e),MZr(n),n},{replace:!0})},[t]),l=(0,U.useRef)(!1);return(0,U.useEffect)(()=>{if(l.current||(l.current=!0,PZr(e)))return;let n=NZr();n&&t(e=>{let t=new URLSearchParams(e);for(let[e,r]of n)t.append(e,r);return t},{replace:!0})},[]),(0,W.jsx)(oQr,{preset:r,filterTokens:a,onPresetChange:o,onFilterTokensChange:c,customRange:i,onCustomRangeChange:s,children:(0,W.jsx)(L3r,{children:(0,W.jsx)(K3r,{})})})}function K3r(){let{error:e}=fQr(Y7()),{isInMemory:t}=Z8(),{data:n}=rCr(),{data:r}=r6(),{data:i}=tCr(),{data:a}=i6(),o=HZr({availableTags:n??[],availableEntityNames:r??[],availableServiceNames:i??[],availableEnvironments:a??[]});return e&&iR(e)?(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:j9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Metrics`}),(0,W.jsx)(CK,{variant:`fill`})]}):e&&aR(e)?(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:j9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Metrics`}),(0,W.jsx)(SK,{variant:`fill`,resource:`metrics`})]}):e?(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:j9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Metrics`}),(0,W.jsx)(aw,{tone:`error`,variant:`fill`,titleSlot:`Failed to load metrics`,descriptionSlot:e.message})]}):(0,W.jsx)(P3r,{filterFields:o,children:(0,W.jsxs)(`div`,{className:`grid content-start gap-4`,children:[t&&(0,W.jsx)(oN,{variant:`info`,title:`Metrics are not persisted`,children:(0,W.jsx)(oN.Message,{children:`This project uses in-memory storage for observability. Metrics will be lost on every server restart. For persistent metrics, switch the observability storage to ClickHouse, DuckDB, Postgres v-next, or Spanner.`})}),(0,W.jsx)(q3r,{})]})})}function q3r(){let{openTraces:e,openLogs:t}=U3r(),n=lp.AGENT;return(0,W.jsxs)(`div`,{className:`grid content-start gap-4 pb-6`,children:[(0,W.jsx)(G$r,{}),(0,W.jsx)(Q$r,{onViewTraces:()=>e(),onTimeRangeClick:t=>e({window:t})}),(0,W.jsxs)(i9,{columns:3,children:[(0,W.jsx)(i9.Item,{children:(0,W.jsx)(D$r,{onTimeRangeClick:t=>e({rootEntityType:n,window:t})})}),(0,W.jsx)(i9.Item,{children:(0,W.jsx)(P$r,{onViewErrors:()=>t({rootEntityType:n,status:`error`}),onTimeRangeClick:t=>e({rootEntityType:n,status:`error`,window:t})})}),(0,W.jsx)(i9.Item,{span:2,className:`@7xl:col-span-1`,children:(0,W.jsx)(o1r,{onViewTraces:t=>e({rootEntityType:t}),onTimeRangeClick:t=>e({window:t})})})]}),(0,W.jsxs)(i9,{columns:2,children:[(0,W.jsx)(i9.Item,{children:(0,W.jsx)(I1r,{onViewTraces:t=>e({rootEntityType:t}),onViewErrors:e=>t({rootEntityType:e,status:`error`}),onEntityClick:(t,n)=>e({rootEntityType:t,entityName:n})})}),(0,W.jsx)(i9.Item,{children:(0,W.jsx)(H1r,{onViewTraces:()=>e(),onAgentClick:t=>e({rootEntityType:n,entityName:t}),onModelClick:t=>e({model:t}),onThreadClick:t=>e({threadId:t})})})]}),(0,W.jsx)($1r,{})]})}function J3r(){let{isCmsAvailable:e}=Q4(),{paths:t}=Ft();return e?(0,W.jsx)(Mqn,{href:t.cmsPromptBlockCreateLink(),tooltip:`Create a prompt`,children:`New prompt`}):null}var F9=[_R(`/prompts`)],Y3r=50,X3r=[`updatedAt`];function Z3r(){let[e,t]=(0,U.useState)(``),[n,r]=(0,U.useState)(0),[i,a]=ty(),{sort:o,onSortChange:s}=J8({searchParams:i,setSearchParams:a,allowedKeys:X3r}),{data:c,isLoading:l,error:u,isPlaceholderData:d}=iyr({page:n,perPage:Y3r,orderBy:(0,U.useMemo)(()=>o?{field:o.key,direction:o.direction===`asc`?`ASC`:`DESC`}:void 0,[o])}),f=c?.promptBlocks??[],p=c?.hasMore??!1,m=(0,U.useCallback)(()=>{d||r(e=>e+1)},[d]),h=(0,U.useCallback)(()=>{d||r(e=>Math.max(0,e-1))},[d]),g=(0,U.useCallback)(e=>{t(e),r(0)},[]),_=(0,U.useCallback)((e,t)=>{s(e,t),r(0)},[s]);return u&&iR(u)?(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:F9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Prompts`}),(0,W.jsx)(CK,{variant:`fill`})]}):u&&aR(u)?(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:F9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Prompts`}),(0,W.jsx)(SK,{variant:`fill`,resource:`prompt blocks`})]}):u?(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:F9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Prompts`}),(0,W.jsx)(aw,{tone:`error`,variant:`fill`,titleSlot:`Failed to load prompt blocks`,descriptionSlot:u.message})]}):f.length===0&&!l&&n===0?(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:F9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Prompts`}),(0,W.jsx)(Gyr,{})]}):(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:F9}),headerActions:(0,W.jsx)(J3r,{}),actionRow:(0,W.jsx)(VY,{children:(0,W.jsx)(VY.Start,{children:(0,W.jsx)(`div`,{className:`max-w-120 flex-1`,children:(0,W.jsx)(WK,{onSearch:g,label:`Filter prompts`,placeholder:`Filter by name or description`})})})}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Prompts`}),(0,W.jsx)(Wyr,{promptBlocks:f,isLoading:l,search:e,currentPage:n,hasMore:p,onNextPage:m,onPrevPage:h,updatedSort:o?.direction,onSortChange:_})]})}var Q3r=[_R(`/resources`)],$3r=[{title:`Mastra APIs`,description:`Explore and test the available REST API endpoints with the interactive Swagger UI.`,icon:bGe,href:`/swagger-ui`,external:!1},{title:`Documentation`,description:`Read the official Mastra documentation for guides, references, and tutorials.`,icon:HWe,href:`https://mastra.ai/en/docs`,external:!0},{title:`Github`,description:`Browse the source code, report issues, and contribute to the Mastra project.`,icon:tC,href:`https://github.com/mastra-ai/mastra`,external:!0},{title:`Community`,description:`Join the Mastra Discord community for help, discussion, and collaboration.`,icon:wC,href:`https://discord.gg/mastra-ai`,external:!0},{title:`Share with your team`,description:`Running Mastra Studio locally? Deploy to the cloud so your team can collaborate.`,icon:hGe,href:`https://mastra.ai/cloud`,external:!0},{title:`Talk to our Sales team`,description:`Get a custom demo, discuss on-prem deployments, and how we can help you accelerate getting agents into production.`,icon:YWe,href:`https://mastra.ai/contact?ref=studio`,external:!0}];function e6r(){return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:Q3r}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Resources`}),(0,W.jsx)(`div`,{children:(0,W.jsx)(`div`,{className:`grid max-w-3xl grid-cols-1 gap-4 sm:grid-cols-2`,children:$3r.map(e=>(0,W.jsxs)(`a`,{href:e.href,...e.external?{target:`_blank`,rel:`noreferrer`}:{},className:`group state-layer flex flex-col gap-3 rounded-lg border border-border bg-background p-5 hover:border-border-strong`,children:[(0,W.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,W.jsx)(e.icon,{className:H(`h-5 w-5 text-muted-foreground group-hover:text-info-indicator`,lS)}),(0,W.jsx)(Z,{as:`span`,variant:`subheading`,tone:`ink`,children:e.title}),e.external&&(0,W.jsx)(tC,{className:`ml-auto h-3.5 w-3.5 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100`})]}),(0,W.jsx)(Z,{variant:`caption`,tone:`muted`,children:e.description})]},e.href))})})]})}function t6r(){let{isCmsAvailable:e}=Q4(),{paths:t}=Ft();return e?(0,W.jsx)(Mqn,{href:t.cmsScorersCreateLink(),tooltip:`Create a scorer`,children:`New scorer`}):null}var I9=[_R(`/scorers`)];function n6r(){let{data:e={},isLoading:t,error:n}=uR(),[r,i]=(0,U.useState)(``),[a,o]=(0,U.useState)(`all`),[s,c]=(0,U.useState)();if(n&&iR(n))return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:I9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Scorers`}),(0,W.jsx)(CK,{variant:`fill`})]});if(n&&aR(n))return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:I9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Scorers`}),(0,W.jsx)(SK,{variant:`fill`,resource:`scorers`})]});if(n)return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:I9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Scorers`}),(0,W.jsx)(aw,{tone:`error`,variant:`fill`,titleSlot:`Failed to load scorers`,descriptionSlot:n.message})]});if(Object.keys(e).length===0&&!t)return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:I9}),headerActions:(0,W.jsx)(t6r,{}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Scorers`}),(0,W.jsx)(spr,{})]});let l=a!==`all`||r!==``;return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:I9}),headerActions:(0,W.jsx)(t6r,{}),actionRow:(0,W.jsx)(lpr,{search:r,onSearchChange:i,sourceFilter:a,onSourceFilterChange:o,onReset:()=>{i(``),o(`all`)},hasActiveFilters:l}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Scorers`}),(0,W.jsx)(opr,{scorers:e,isLoading:t,search:r,sourceFilter:a,sort:s,onSortChange:(e,t)=>c({key:t,direction:e})})]})}var r6r=[`input`,`entity`],i6r={input:`Input`,entity:`Entity`};function a6r(e){let t=[`auto`,`auto`,`minmax(0, 10rem)`];return e.has(`entity`)&&t.push(`minmax(0, 14rem)`),e.has(`input`)&&t.push(`minmax(0, 40rem)`),t.join(` `)}function o6r(){let[e,t]=(0,U.useState)(new Set),n=(0,U.useMemo)(()=>new Set(r6r.filter(t=>!e.has(t))),[e]);return{visibleColumns:n,columns:(0,U.useMemo)(()=>a6r(n),[n]),toggleColumn:(0,U.useCallback)(e=>{t(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[])}}function s6r({visibleColumns:e,toggleColumn:t}){return(0,W.jsxs)(CD,{children:[(0,W.jsx)(CD.Trigger,{asChild:!0,children:(0,W.jsx)(Y,{icon:(0,W.jsx)(_Ge,{}),children:`Columns`})}),(0,W.jsxs)(CD.Content,{align:`end`,children:[(0,W.jsx)(CD.Label,{children:`Toggle columns`}),r6r.map(n=>(0,W.jsx)(CD.CheckboxItem,{checked:e.has(n),onClick:()=>t(n),children:i6r[n]},n))]})]})}var c6r=[_R(`/scorers`),ANt],l6r=[`date`,`score`];function u6r(){let{scorerId:e}=Kv(),[t,n]=ty(),r=t.get(`scoreId`)??void 0,[i,a]=(0,U.useState)(r),[o,s]=(0,U.useState)(!1),c=Gv(),[l,u]=(0,U.useState)({value:`all`,label:`All Entities`,type:`ALL`}),{scorer:d,error:f}=nNt(e),p=o6r(),{data:m={},isLoading:h,error:g}=WL(),{isLoading:_,error:v}=_L({}),{sort:y,onSortChange:b}=J8({searchParams:t,setSearchParams:n,allowedKeys:l6r}),{data:x=[],isLoading:S,error:C,isFetchingNextPage:w,hasNextPage:T,setEndOfListElement:E}=tNt({scorerId:e,entityId:l?.value===`all`?void 0:l?.value,entityType:l?.type===`ALL`?void 0:l?.type}),D=(0,U.useMemo)(()=>BQ(x,y,{date:e=>e.createdAt,score:e=>typeof e.score==`number`?e.score:void 0}),[x,y]),O=(0,U.useMemo)(()=>d?.agentIds?.filter(e=>m[e]).map(e=>({value:e,label:m[e].name,type:`AGENT`}))||[],[d?.agentIds,m]),k=(0,U.useMemo)(()=>d?.workflowIds?.map(e=>({value:e,label:e,type:`WORKFLOW`}))||[],[d?.workflowIds]),A=(0,U.useMemo)(()=>[{value:`all`,label:`All Entities`,type:`ALL`},...O,...k],[O,k]),j=t.get(`entity`)??`all`,M=A.find(e=>e.value===j);M&&M.value!==l?.value&&u(M),(0,U.useEffect)(()=>{if(f){let e=f instanceof Error?f.message:`Failed to load scorer`;fw.error(`Error loading scorer: ${e}`)}},[f]),(0,U.useEffect)(()=>{if(g){let e=g instanceof Error?g.message:`Failed to load agents`;fw.error(`Error loading agents: ${e}`)}},[g]),(0,U.useEffect)(()=>{if(v){let e=v instanceof Error?v.message:`Failed to load workflows`;fw.error(`Error loading workflows: ${e}`)}},[v]);let N=e=>{e?.value&&n(t=>{let n=new URLSearchParams(t);return n.set(`entity`,e.value),n})};(0,U.useEffect)(()=>{let e=t.get(`scoreId`)??void 0;e!==i&&(e?D.find(t=>t.id===e)&&a(e):a(void 0))},[t,D]);let P=(0,U.useCallback)(e=>{a(e||void 0),n(t=>{let n=new URLSearchParams(t);return e?n.set(`scoreId`,e):n.delete(`scoreId`),n})},[n]);if(!d)return null;let F=iR(f)||iR(g)||iR(v),I=f&&aR(f),L=!F&&!I&&(f||g||v),R=!S&&D.length===0,z=l?.value!==`all`,B=d?.source===`stored`,V=e?(0,W.jsx)(h7,{open:o,onOpenChange:s,initialScorerIds:[e],onSuccess:e=>void c(`/experiments/${e}`)}):null,ee=B?(0,W.jsxs)(CD,{children:[(0,W.jsx)(CD.Trigger,{asChild:!0,children:(0,W.jsx)(Y,{size:`icon-lg`,"aria-label":`Scorer actions menu`,children:(0,W.jsx)($S,{})})}),(0,W.jsx)(CD.Content,{align:`end`,className:`w-48`,children:(0,W.jsxs)(CD.Item,{onSelect:()=>void c(`/cms/scorers/${e}/edit`),children:[(0,W.jsx)(kC,{}),` Edit scorer`]})})]}):null;if(F||I||L||R&&!z){let t=(f instanceof Error?f.message:void 0)??(g instanceof Error?g.message:void 0)??(v instanceof Error?v.message:void 0)??`An unexpected error occurred`;return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:c6r}),actionRow:!(F||I||L)&&ee?(0,W.jsx)(VY,{children:(0,W.jsx)(VY.End,{children:ee})}):void 0,children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:e}),(0,W.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:F?(0,W.jsx)(CK,{}):I?(0,W.jsx)(SK,{resource:`scorers`}):L?(0,W.jsx)(aw,{tone:`error`,titleSlot:`Failed to load scorer`,descriptionSlot:t}):(0,W.jsx)(wfr,{onRunExperiment:()=>s(!0)})}),V]})}return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:c6r}),actionRow:(0,W.jsxs)(VY,{children:[(0,W.jsx)(VY.Start,{children:(0,W.jsx)(rpr,{selectedEntity:l,entityOptions:A,onEntityChange:N,onReset:()=>{n(e=>{let t=new URLSearchParams(e);return t.set(`entity`,`all`),t})},isLoading:S||h||_})}),(0,W.jsxs)(VY.End,{children:[(0,W.jsx)(s6r,{visibleColumns:p.visibleColumns,toggleColumn:p.toggleColumn}),(0,W.jsx)(Y,{variant:`primary`,onClick:()=>s(!0),icon:(0,W.jsx)(MC,{}),children:`New experiment`}),ee]})]}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:e}),(0,W.jsx)(Cfr,{scores:D,isLoading:S,selectedScoreId:i,isFetchingNextPage:w,hasNextPage:T,setEndOfListElement:E,onScoreClick:P,errorMsg:C?.message,columnsState:p,sort:y,onSortChange:b}),V]})}var d6r=[{value:`system`,label:`System`,icon:(0,W.jsx)(hKe,{})},{value:`light`,label:`Light`,icon:(0,W.jsx)(rqe,{})},{value:`dark`,label:`Dark`,icon:(0,W.jsx)(gKe,{})}];function f6r(e,t){if(e.some(e=>e.value===t))return t;let[n]=e;return n?n.value:`system`}var p6r=({value:e,onChange:t,options:n=d6r,size:r=`md`,"aria-label":i=`Theme`,...a})=>{let{theme:o,setTheme:s}=Ze(),c=e??o,l=t??s,u=f6r(n,c);return(0,W.jsx)(V$n,{...a,"aria-label":i,iconOnly:!0,size:r===`xs`?`sm`:r,value:u,onValueChange:l,children:n.map(e=>(0,W.jsx)(H$n,{value:e.value,"aria-label":e.label,children:e.icon},e.value))})},m6r=[_R(`/settings`)],h6r=()=>{let{baseUrl:e,headers:t,apiPrefix:n}=Cw();return(0,W.jsxs)(Bw,{variant:`fit`,breadcrumbs:(0,W.jsx)(IL,{crumbs:m6r}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Settings`}),(0,W.jsx)(Upr,{children:(0,W.jsxs)(`div`,{className:`mx-auto flex max-w-4xl flex-col gap-8`,children:[(0,W.jsxs)(N4,{children:[(0,W.jsxs)(Vpr,{children:[(0,W.jsx)(P4,{children:`General`}),(0,W.jsx)(Hpr,{children:`Stored in this browser.`})]}),(0,W.jsx)(E$,{children:(0,W.jsx)(O$,{label:`Theme`,description:`Customize the appearance of the studio.`,children:(0,W.jsx)(p6r,{})})})]}),(0,W.jsxs)(N4,{children:[(0,W.jsxs)(Vpr,{children:[(0,W.jsx)(P4,{children:`Mastra Connection`}),(0,W.jsx)(Hpr,{children:`Configure the Mastra instance URL, API prefix, and request headers used by the studio.`})]}),(0,W.jsx)(Kpr,{variant:`factory`,initialConfig:{baseUrl:e,headers:t,apiPrefix:n}})]})]})})]})};function g6r(){let[e]=ty(),t=Gv(),n=e.get(`redirect`)||`/`;return(0,W.jsx)(K0r,{redirectUri:n,onSuccess:()=>{n.startsWith(`http`)?window.location.href=n:t(n,{replace:!0})},initialMode:`signup`})}function _6r({isLoading:e,enabled:t,heading:n,title:r,description:i,children:a}){return t?a:(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:n}),e?(0,W.jsxs)(`div`,{className:`flex h-full items-center justify-center gap-2`,children:[(0,W.jsx)(dt,{"aria-label":`Loading storage capabilities`}),(0,W.jsx)(Z,{as:`span`,variant:`caption`,tone:`muted`,children:`Loading storage capabilities`})]}):(0,W.jsx)(aw,{variant:`fill`,titleSlot:r,descriptionSlot:i})]})}function v6r({current:e,features:t}){let n=WFr(),r=GFr(),i=[`traces`];n.enabled&&t?.spanQuery===!0&&i.push(`spans`),r.enabled&&t?.threadQuery===!0&&i.push(`threads`);let a=n.isLoading||r.isLoading;return{views:i,isLoading:a,showSwitch:!a&&i.length>1&&i.includes(e)}}var y6r=[`traces`,`spans`],b6r={traces:{icon:(0,W.jsx)(gR,{}),label:`Traces`},spans:{icon:(0,W.jsx)(QWe,{}),label:`Spans`},threads:{icon:(0,W.jsx)(TC,{}),label:`Threads`}};function x6r({current:e,views:t=y6r,onViewChange:n}){return(0,W.jsx)(`nav`,{"aria-label":`Observability views`,children:(0,W.jsx)(tN,{value:e,defaultTab:e,onValueChange:n,children:(0,W.jsx)(eN,{variant:`pill-ghost`,children:t.map(e=>(0,W.jsxs)(nN,{value:e,children:[(0,W.jsx)(cS,{size:`xs`,children:b6r[e].icon}),(0,W.jsx)(Z,{variant:`caption`,className:`text-inherit`,children:b6r[e].label})]},e))})})})}function S6r(){return(0,W.jsxs)(`div`,{role:`status`,"aria-label":`Loading views`,className:`flex min-h-control-md items-center gap-0.5`,children:[(0,W.jsx)(Vw,{className:`h-control-md w-20 rounded-full`}),(0,W.jsx)(Vw,{className:`h-control-md w-20 rounded-full`})]})}function C6r({current:e,features:t,onViewChange:n,breadcrumbs:r,children:i}){let{views:a,isLoading:o,showSwitch:s}=v6r({current:e,features:t}),c;return o?c=(0,W.jsx)(S6r,{}):s&&(c=(0,W.jsx)(x6r,{current:e,views:a,onViewChange:n})),(0,W.jsx)(Bw,{breadcrumbs:r({current:e,isLoading:o,showSwitch:s}),actionRow:c,children:i})}var w6r=H6.datePreset,T6r={refetchInterval:({state:e})=>FNr(e.error),refetchOnWindowFocus:!1};function E6r(){let[e,t]=(0,U.useState)({datePreset:w6r}),[n,r]=(0,U.useState)([]),[i,a]=(0,U.useState)([]),[o,s]=(0,U.useState)(`desc`),{datePreset:c,dateFrom:l,dateTo:u}=e,d=l?.getTime(),f=u?.getTime(),p=(0,U.useMemo)(()=>{let e=eOr(c,d===void 0?void 0:new Date(d),f===void 0?void 0:new Date(f));return cwr(e.dateFrom,e.dateTo,new Date)},[c,d,f]),m=e=>t(t=>e===`custom`?{...t,datePreset:e}:{datePreset:e}),h=(e,n)=>t(t=>t.datePreset===`custom`?n===`from`?{...t,dateFrom:e}:{...t,dateTo:e}:t),g=(e,n)=>t(t=>t.datePreset===`custom`?{...t,dateFrom:e,dateTo:n}:t),_=(e,t)=>{r(e),a(t)},v=n.length>0||i.length>0;return{datePreset:c,dateFrom:l,dateTo:u,timeRange:p,tokens:n,groups:i,sort:o,setSort:s,onDatePresetChange:m,onDateChange:h,onDateRangeChange:g,onFiltersChange:_,contentFiltersApplied:v,filtersApplied:v||c!==w6r}}var D6r={traces:`Traces`,spans:`Spans`,threads:`Threads`};function O6r({current:e,isLoading:t,showSwitch:n}){if(!(t||n||e===`traces`))return D6r[e]}function k6r(e){let t=e.get(`traceId`),n=e.get(`spanId`);return t&&n?{traceId:t,spanId:n}:void 0}function A6r(e,t){let n=new URLSearchParams(e);return t?(n.set(`traceId`,t.traceId),n.set(`spanId`,t.spanId)):(n.delete(`traceId`),n.delete(`spanId`)),n}function j6r({traceId:e,spanId:t}){return new URLSearchParams({traceId:e,spanId:t})}function M6r(e){return e.get(`threadId`)??void 0}function N6r(e,t){let n=new URLSearchParams(e);return t?n.set(`threadId`,t):n.delete(`threadId`),n}var P6r=[`name`,`spanType`,`status`,`error`,`durationMs`,`timeToFirstChunkMs`,`entityType`,`entityId`,`entityName`,`entityVersionId`,`parentEntityVersionId`,`rootEntityVersionId`,`runId`,`sessionId`,`userId`,`organizationId`],F6r=[`traceId`,`spanId`,`parentSpanId`,`threadId`,`resourceId`,`requestId`,`serviceName`,`experimentId`,`environment`,`executionSource`,`parentEntityType`,`parentEntityId`,`parentEntityName`,`rootEntityType`,`rootEntityId`,`rootEntityName`],I6r=new Set(P6r),L6r=new Set([...P6r,...F6r]),R6r=new Set([`durationMs`,`timeToFirstChunkMs`]),z6r=new Set([`error`]),B6r=new Set([`name`,`spanType`,`status`,`traceId`,`spanId`,`durationMs`]),V6r={...Bwr,name:`Span name`,spanType:`Span type`,spanId:`Span ID`,parentSpanId:`Parent span ID`,error:`Error`,timeToFirstChunkMs:`Time to first chunk (ms)`,executionSource:`Execution source`,entityType:`Primitive type`,entityVersionId:`Primitive version ID`,parentEntityType:`Parent primitive type`,parentEntityId:`Parent primitive ID`,parentEntityName:`Parent primitive name`,parentEntityVersionId:`Parent primitive version ID`,rootEntityType:`Root primitive type`,rootEntityId:`Root primitive ID`,rootEntityName:`Root primitive name`,rootEntityVersionId:`Root primitive version ID`},H6r={name:`spans.name`,spanType:`spans.spanType`,error:`spans.error`,timeToFirstChunkMs:`durationMs`,spanId:`traceId`,parentSpanId:`traceId`,executionSource:`runId`,entityType:`rootEntityType`,parentEntityType:`rootEntityType`,entityVersionId:`entityId`,parentEntityId:`entityId`,parentEntityVersionId:`entityId`,rootEntityId:`entityId`,rootEntityVersionId:`entityId`,parentEntityName:`entityName`,rootEntityName:`entityName`},L9=e=>({id:e,label:V6r[e]??e,icon:w6(H6r[e]??e),color:T6(e)}),U6r=e=>{let t=e.replace(/_/g,` `);return t.charAt(0).toUpperCase()+t.slice(1)},W6r=(e,t)=>(e.label??e.value).localeCompare(t.label??t.value),G6r=Object.fromEntries(f6.map(e=>[e.entityType,e.label])),K6r=Object.values(cp).map(e=>({value:e,label:U6r(e)})).sort(W6r),q6r=Object.values(lp).map(e=>({value:e,label:G6r[e]??U6r(e)})).sort(W6r),J6r=lwr.filter(e=>e.value!==`running`).map(e=>({value:e.value,label:e.label}));function Y6r({withContextFields:e,entityNames:t,environments:n,valueSuggestions:r}){let i=(e,t,n=S6)=>({...L9(e),operators:n,strict:!0,suggestions:t}),a=t.map(e=>({value:e})),o=e=>{switch(e){case`status`:return i(e,J6r,Rwr);case`spanType`:return i(e,K6r,C6);case`entityType`:case`parentEntityType`:case`rootEntityType`:return i(e,q6r);case`entityName`:case`rootEntityName`:return i(e,a);case`environment`:return i(e,n.map(e=>({value:e})));case`name`:{let t=r?.(e);return{...L9(e),operators:Mwr,...t?{strict:!0,suggestions:t}:{}}}case`error`:return{...L9(e),operators:Fwr};case`durationMs`:case`timeToFirstChunkMs`:return{...L9(e),type:`number`,operators:Nwr};case`traceId`:case`spanId`:return{...L9(e),operators:C6};default:return{...L9(e),operators:S6}}},s=e=>e.map(o).sort((e,t)=>e.label.localeCompare(t.label));return[...s(P6r),...e?s(F6r):[]]}function X6r(e,t){let{fieldId:n}=e;if(!t.has(n))return;let r=e.operatorId??`is`,i=r===`exists`||r===`notExists`;if(z6r.has(n)&&!i)return;let a=(Array.isArray(e.value)?e.value:[e.value]).filter(e=>typeof e==`string`&&!!e.trim()&&!x6(e,r));if(!a.length&&!i)return;let o=a;if(R6r.has(n)&&(o=a.map(Number).filter(e=>!Number.isNaN(e)),!o.length&&!i)||(r===`matches`||r===`notMatches`)&&(o=o.filter(e=>/[\p{L}\p{M}\p{N}]/u.test(String(e))),!o.length))return;let s=d6(r,n,o);if(s)return(r===`isNot`||r===`notIn`)&&!B6r.has(n)?{op:`or`,args:[s,{op:`notExists`,path:n}]}:s}function Z6r(e,t){let n=e.nodes.map(e=>u6(e)?Z6r(e,t):X6r(e,t)).filter(e=>!!e);if(n.length!==0)return n.length===1?n[0]:{op:e.logic,args:n}}function Q6r(e,t,{withContextFields:n}){let r=n?L6r:I6r,i=[...e.map(e=>X6r(e,r)),...t.map(e=>Z6r(e,r))].filter(e=>!!e);return i.length?{op:`and`,args:i}:void 0}function $6r(e){return{traceId:e.traceId,spanId:e.spanId,parentSpanId:e.parentSpanId,name:e.name,entityType:e.entityType,entityId:e.entityId,threadId:e.threadId,resourceId:e.resourceId,environment:e.environment,status:e.status,inputPreview:e.inputPreview,outputPreview:e.outputPreview??void 0,errorPreview:e.errorPreview??void 0,startedAt:e.startedAt,endedAt:e.endedAt,createdAt:e.startedAt}}var e8r=[`last-24h`,`last-3d`,`last-7d`,`last-14d`,`last-30d`,`custom`],t8r=[];function n8r({timeRange:e}){let t=J(),{data:n}=W8(),r=n?.capabilities.spanQueryContextFields??!1,{data:i=t8r}=r6(),{data:a=t8r}=i6();return(0,U.useMemo)(()=>[l8,...Y6r({withContextFields:r,entityNames:i,environments:a,valueSuggestions:n=>HCr(t,e,`spans`,n)})],[r,i,a,t,e])}function r8r({tokens:e,groups:t,onFiltersChange:n}){let r=(0,U.useMemo)(()=>O6(e),[e]),i=(0,U.useMemo)(()=>{let e=k6([],t);return{...e,nodes:[u8,...r,...e.nodes]}},[r,t]),a=(0,U.useCallback)(e=>{let t=Qwr({...e,nodes:e.nodes.filter(e=>Z3(e)||e.fieldId!==`timeRange`)});n(t.tokens,t.groups)},[n]);return{filterBarValue:i,onFilterBarChange:a,onFilterByField:(0,U.useCallback)((e,t)=>{let n=r.filter(t=>t.fieldId!==e),o={id:`${e}:${t}`,fieldId:e,operatorId:`is`,value:t},s=i.nodes.filter(Z3);a({...i,nodes:[...n,o,...s]})},[r,i,a])}}var i8r=e=>e;function a8r({datePreset:e,dateFrom:t,dateTo:n,minDate:r,timeRange:i,tokens:a,groups:o,onDatePresetChange:s,onDateChange:c,onDateRangeChange:l,onFiltersChange:u,describeSuggestionsError:d,disabled:f}){let p=n8r({timeRange:i}),{filterBarValue:m,onFilterBarChange:h}=r8r({tokens:a,groups:o,onFiltersChange:u});return(0,W.jsxs)(f8,{fields:p,operators:jwr,value:m,onValueChange:h,createItemId:i8r,describeSuggestionsError:d,maxDepth:3,"aria-label":`Span filters`,className:`min-w-64 flex-1`,children:[(0,W.jsx)(f8.Chips,{renderChip:i=>i.fieldId===`timeRange`?(0,W.jsx)(d8,{preset:e,onPresetChange:s,dateFrom:t,dateTo:n,minDate:r,onDateChange:c,onDateRangeChange:l,disabled:f,presets:e8r}):(0,W.jsx)(f8.Chip,{item:i})}),(0,W.jsx)(f8.Input,{placeholder:`Filter spans…`})]})}function o8r({selection:e,onSelectionChange:t,renderPanel:n}){let r=E6r(),{timeRange:i,tokens:a,groups:o,sort:s}=r,{data:c}=W8(),l=c?.capabilities.spanQueryContextFields??!1,{spans:u,hasNextPage:d,isFetchingNextPage:f,setEndOfListElement:p,isLoading:m,isError:h,error:g}=wCr({query:(0,U.useMemo)(()=>{let e=Q6r(a,o,{withContextFields:l});return{timeRange:i,orderBy:[{field:`startedAt`,direction:s}],...e?{where:e}:{}}},[i,s,a,o,l]),queryOptions:T6r}),_=(0,U.useMemo)(()=>(u??[]).map($6r),[u]),v=(0,U.useMemo)(()=>_.flatMap(e=>e.spanId?[{traceId:e.traceId,spanId:e.spanId}]:[]),[_]),y=n=>{n.spanId&&t(e?.traceId===n.traceId&&e.spanId===n.spanId?void 0:{traceId:n.traceId,spanId:n.spanId})},b=!m&&!h&&_.length===0&&!r.contentFiltersApplied&&!e;return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Spans`}),(0,W.jsx)(IOr,{toolbar:(0,W.jsx)(VY,{children:(0,W.jsx)(VY.Start,{children:(0,W.jsx)(a8r,{datePreset:r.datePreset,dateFrom:r.dateFrom,dateTo:r.dateTo,timeRange:i,tokens:a,groups:o,onDatePresetChange:r.onDatePresetChange,onDateChange:r.onDateChange,onDateRangeChange:r.onDateRangeChange,onFiltersChange:r.onFiltersChange,disabled:m})})}),error:h?(0,W.jsx)(Z6,{error:g,resource:`spans`,errorTitle:`Failed to load spans`}):void 0,empty:b?(0,W.jsx)(zOr,{resource:`spans`,datePreset:r.datePreset,dateFrom:r.dateFrom,dateTo:r.dateTo}):void 0,children:(0,W.jsx)(Pjr,{listId:`all-spans`,traces:_,isLoading:m,isFetchingNextPage:f,hasNextPage:d,setEndOfListElement:p,filtersApplied:r.filtersApplied,resource:`spans`,isBranchesMode:!0,createdSort:s,onSortChange:r.setSort,featuredTraceId:e?.traceId,featuredSpanId:e?.spanId,onTraceClick:y})}),n({selection:e,spans:v,onSelect:t,onClose:()=>t(void 0)})]})}function s8r({selection:e,spans:t,onSelect:n,onClose:r,onShowTrace:i}){let{data:a,isLoading:o}=a6({traceId:e.traceId,spanId:e.spanId}),s=t.findIndex(t=>t.traceId===e.traceId&&t.spanId===e.spanId),c=s>0?t[s-1]:void 0,l=s>=0&&s<t.length-1?t[s+1]:void 0;return(0,W.jsx)(CNr,{traceId:e.traceId,spanId:e.spanId,span:a?.span,isLoading:o,onPrevious:c?()=>n(c):void 0,onNext:l?()=>n(l):void 0,onClose:r,onShowTrace:i})}function c8r({selection:e,spans:t,onSelect:n,onClose:r,onShowTrace:i}){let a=LE();MJr(e?`${e.traceId}:${e.spanId}`:void 0,r);let o=e?(0,W.jsx)(s8r,{selection:e,spans:t,onSelect:n,onClose:r,onShowTrace:i}):null;return a?(0,W.jsx)(w$,{open:!!e,onClose:r,title:`Span details`,children:o}):o?(0,W.jsx)(E7,{owner:`span-detail`,children:(0,W.jsx)(w$,{variant:`inline`,title:`Span details`,children:o})}):null}function l8r(){let{enabled:e,isLoading:t}=WFr(),n=Gv(),[r,i]=ty();return(0,W.jsx)(_6r,{enabled:e,isLoading:t,heading:`Spans`,title:`Query spans capability not activated`,description:`Your observability storage does not support span queries. Switch to a store that declares the span-query capability to list spans.`,children:(0,W.jsx)(o8r,{selection:k6r(r),onSelectionChange:e=>i(t=>A6r(t,e),{replace:!0}),renderPanel:e=>(0,W.jsx)(c8r,{...e,onShowTrace:e=>n(`/traces?${j6r(e)}`)})})})}async function u8r(){let e=await fetch(`https://mastra.ai/api/templates.json`);if(!e.ok)throw Error(`Failed to fetch templates: ${e.statusText}`);let t=[{title:`Weather Agent`,slug:`weather-agent`,githubUrl:`https://github.com/mastra-ai/weather-agent`,description:`Get weather information of any city.`,longDescription:`One Agent, one Workflow and one Tool to bring you the weather in your city.`,imageURL:``,tags:[`Agent`,`Workflow`,`Tool`],useCase:``,supportedProviders:[`openai`,`anthropic`,`google`,`groq`],agents:[`weatherAgent`],tools:[`weatherTool`],workflows:[`weatherWorkflow`]},...await e.json()];return{templates:t,tags:Array.from(new Set(t.flatMap(e=>e.tags))),providers:Array.from(new Set(t.flatMap(e=>e.supportedProviders)))}}async function d8r({repo:e,owner:t}){let n=await fetch(`https://api.github.com/repos/${t}/${e}`);if(!n.ok)throw Error(`Failed to fetch template: ${n.statusText}`);let r=await n.json();if(!r.is_template)throw Error(`Repo is not a template, please update the repo settings to make it a template`);return{title:r.name,slug:r.name,description:r.description??``,imageURL:``,tags:[],useCase:``,longDescription:r.description??``,githubUrl:r.html_url,supportedProviders:[]}}async function f8r({repoOrSlug:e,owner:t}){let{templates:n}=await u8r(),r=n.find(t=>t.slug===e);if(!r){if(t===`mastra-ai`&&e.startsWith(`template-`)){let t=n.find(t=>`template-${t.slug}`===e);if(t)return t}let r=await d8r({repo:e,owner:t});if(r)return r;throw Error(`Template ${e} not found`)}return r}async function p8r({repo:e,owner:t,branch:n}){let r=`https://raw.githubusercontent.com/${t}/${e}/${n}/.env.example`,i=await fetch(r);return i.ok?(await i.text()).split(`
|
|
689
|
-
`).reduce((e,t)=>{if(!t||t.startsWith(`#`))return e;let[n,r]=t.split(`=`);return n&&(e[n]=r?.split(``)?.every(e=>e===`*`)?``:r?.replaceAll(`"`,``)),e},{}):{}}var m8r=({queryOptions:e}={})=>W_({queryKey:[`mastra-templates`],queryFn:u8r,...e}),h8r=({repoOrSlug:e,owner:t,queryOptions:n})=>W_({queryKey:[`template-repo`,e,t],queryFn:()=>f8r({repoOrSlug:e,owner:t}),...n}),g8r=({repo:e,owner:t,branch:n,queryOptions:r})=>W_({queryKey:[`template-repo-env-vars`,e,t,n],queryFn:()=>p8r({repo:e,owner:t,branch:n}),...r}),_8r=({queryOptions:e}={})=>{let t=J();return W_({queryKey:[`agent-builder-workflow`],queryFn:async()=>await t.getAgentBuilderAction(`merge-template`).details(),...e})},v8r=({queryOptions:e}={})=>{let t=J();return K_({mutationFn:async({runId:e})=>await t.getAgentBuilderAction(`merge-template`).createRun({runId:e}),...e})},y8r=({queryOptions:e}={})=>{let t=J();return K_({mutationFn:async({runId:e})=>await t.getAgentBuilderAction(`merge-template`).runById(e),...e})},b8r=e=>{if(typeof e==`string`)return e;if(e==null)return`Unknown error`;if(e instanceof Error)return typeof e.message==`string`&&e.message.length>0?e.message:`Unknown error`;if(typeof e==`object`)try{return JSON.stringify(e)}catch{return String(e)}return String(e)},x8r=(e,t,n)=>{let r={...t};if(!(r.payload?.workflowState?.steps&&Object.keys(r.payload.workflowState.steps).length>0)&&n?.allSteps&&(r.payload={...r.payload,workflowState:{...r.payload?.workflowState,steps:Object.keys(n.allSteps).reduce((e,t)=>(e[t]={id:t,description:n.allSteps[t].description,status:`pending`},e),{})}}),e.type===`start`||e.type===`workflow-start`){let t={};n?.allSteps&&Object.entries(n.allSteps).forEach(([e,n])=>{t[e]={id:n.id,description:n.description,status:`pending`}});let i=e.runId||e.payload?.runId;r={...r,runId:i,eventTimestamp:new Date().toISOString(),status:`running`,phase:`initializing`,payload:{workflowState:{status:`running`,steps:t},currentStep:null}}}if(e.type===`step-start`||e.type===`workflow-step-start`){let t=e.payload.id;r={...r,phase:`processing`,payload:{...r.payload,currentStep:{id:t,status:`running`,startTime:new Date,...e.payload},workflowState:{...r.payload.workflowState,steps:{...r.payload.workflowState.steps,[t]:{...r.payload.workflowState.steps[t],status:`running`,startTime:new Date,...e.payload}}}}}}if(e.type===`step-result`||e.type===`workflow-step-result`){let t=e.payload.id,n=e.payload.status,i=e.payload.error;if(r={...r,payload:{...r.payload,currentStep:{...r.payload.currentStep,status:e.payload.status,output:e.payload.output,error:e.payload.error,endTime:new Date},workflowState:{...r.payload.workflowState,steps:{...r.payload.workflowState.steps,[t]:{...r.payload.workflowState.steps[t],status:e.payload.status,output:e.payload.output,error:e.payload.error,endTime:new Date}}}}},n===`failed`&&i){let n=b8r(i);r={...r,status:`failed`,error:n,phase:`error`,failedStep:{id:t,error:n,description:e.payload.description||t},payload:{...r.payload,workflowState:{...r.payload.workflowState,status:`failed`}},errorTimestamp:new Date}}}if((e.type===`step-finish`||e.type===`workflow-step-finish`)&&(r={...r,payload:{...r.payload,currentStep:null}}),(e.type===`finish`||e.type===`workflow-finish`)&&(r=r.phase===`error`||r.status===`failed`?{...r,completedAt:new Date}:{...r,status:e.payload.status||`completed`,phase:`completed`,payload:{...r.payload,currentStep:null,workflowState:{...r.payload.workflowState,status:e.payload.status||`completed`}},completedAt:new Date}),e.type===`error`){let t=b8r(e.payload.error);r={...r,status:`failed`,error:t,phase:`error`,payload:{...r.payload,workflowState:{...r.payload.workflowState,status:`failed`}},errorTimestamp:new Date}}return{newState:r}},S8r=(e,t)=>{try{localStorage.setItem(`template-install-${e}`,JSON.stringify({state:t,timestamp:Date.now()}))}catch(e){console.warn(`Failed to save template state to localStorage:`,e)}},C8r=(e,t)=>{let[n,r]=(0,U.useState)({}),[i,a]=(0,U.useState)(!1);return{streamResult:n,isStreaming:i,processStream:async(n,i)=>{if(a(!0),r({}),!n)throw Error(`No stream returned`);let o=n.getReader(),s={runId:i||t,eventTimestamp:new Date().toISOString(),phase:`running`,payload:{workflowState:{steps:{}},currentStep:null}};try{for(;;){let{done:n,value:a}=await o.read();if(n)break;let{newState:c}=x8r(a,s,e);s=c,r(c),(a.runId||i||t)&&S8r(a.runId||i||t,c)}}catch(t){console.error(`💥 [processStream] Error processing template installation stream:`,t);let{newState:n}=x8r({type:`error`,payload:{error:t instanceof Error?t.message:`Unknown error`}},s,e);r(n)}finally{a(!1),o.releaseLock()}}}},w8r=({workflowInfo:e,queryOptions:t}={})=>{let n=J(),{streamResult:r,isStreaming:i,processStream:a}=C8r(e);return{streamInstall:K_({mutationFn:async({inputData:e,selectedModel:t,runId:r})=>{for(let i=1;i<=3;i++)try{let i=n.getAgentBuilderAction(`merge-template`),o=new nn;o.set(`selectedModel`,t);let s=await i.stream({inputData:e,requestContext:o},r);await a(s,r);return}catch(e){console.error(`💥 [streamInstall] Attempt ${i} failed:`,e);let t=e?.message?.includes(`Failed to fetch`)||e?.message?.includes(`NetworkError`)||e?.message?.includes(`network error`)||e?.message?.includes(`fetch`)||e?.code===`NETWORK_ERROR`||e?.name===`TypeError`;if(console.warn(`Stream attempt ${i}/3 failed:`,e),t){let e=r?`Network error during template installation (likely hot reload). Please refresh the page to resume from where you left off using runId: ${r}`:`Network error during template installation (likely hot reload). Please try again.`;throw console.error(`🔌 Stream network error:`,e),Error(e)}throw console.error(`❌ [streamInstall] Non-network error or max retries reached, throwing:`,e),e}},...t?.streamInstall}),streamResult:r,isStreaming:i}},T8r=({workflowInfo:e,queryOptions:t}={})=>{let n=J(),{streamResult:r,isStreaming:i,processStream:a}=C8r(e);return{observeInstall:K_({mutationFn:async({runId:e})=>{let t=2e3;for(let r=1;r<=3;r++)try{let t=await n.getAgentBuilderAction(`merge-template`).observeStream({runId:e});await a(t,e);return}catch(e){console.error(`💥 [observeInstall] Attempt ${r} failed:`,e);let n=e?.message?.includes(`Failed to fetch`)||e?.message?.includes(`NetworkError`)||e?.message?.includes(`network error`)||e?.message?.includes(`fetch`)||e?.code===`NETWORK_ERROR`||e?.name===`TypeError`;if(console.warn(`ObserveStream attempt ${r}/3 failed:`,e),n&&r<3){console.info(`🔄 ObserveStream network error detected (likely hot reload), retrying in ${t}ms... (attempt ${r+1}/3)`),await new Promise(e=>setTimeout(e,t));continue}throw console.error(`❌ [observeInstall] Non-network error or max retries reached, throwing:`,e),e}},...t?.observeInstall}),streamResult:r,isStreaming:i}};function E8r(e){return e.replace(/\/$/,``).split(`/`).pop()}function D8r({templates:e,linkComponent:t,className:n,isLoading:r}){let i=t||`a`;return r?(0,W.jsx)(`div`,{className:H(`grid gap-y-4`,n),children:Array.from({length:5}).map((e,t)=>(0,W.jsx)(`div`,{className:`h-16 animate-pulse rounded-lg bg-card`},t))}):(0,W.jsx)(`div`,{className:H(`grid gap-y-4`,n),children:e.map(e=>{let t=e?.agents||e?.tools||e?.networks||e?.workflows||e?.mcp;return(0,W.jsxs)(`article`,{className:H(ry,`state-layer grid w-full grid-cols-[1fr_auto] overflow-hidden rounded-lg`),children:[(0,W.jsxs)(i,{to:`/templates/${e.slug}`,className:H(`group grid`,{"grid-cols-[8rem_1fr] lg:grid-cols-[12rem_1fr]":e.imageURL}),children:[e.imageURL&&(0,W.jsx)(`div`,{className:`overflow-hidden`,children:(0,W.jsx)(`div`,{className:`thumb transition-scale h-full w-full bg-cover duration-150`,style:{backgroundImage:`url(${e.imageURL})`}})}),(0,W.jsxs)(`div`,{className:H(`grid w-full gap-0.5 px-4 py-3`,`[&_svg]:h-[1em] [&_svg]:w-[1em] [&_svg]:text-muted-foreground`),children:[(0,W.jsx)(Z,{as:`h2`,tone:`ink`,children:e.title}),(0,W.jsx)(Z,{className:H(Ew,lS),children:e.description}),(0,W.jsxs)(`div`,{className:`mt-3 hidden flex-wrap items-center gap-4 text-muted-foreground 2xl:flex`,children:[t&&(0,W.jsxs)(`ul`,{className:H(`text-muted-foreground`,`m-0 flex list-none gap-4 p-0`,`[&>li]:flex [&>li]:items-center [&>li]:gap-0.5`),children:[e?.agents&&e.agents.length>0&&(0,W.jsx)(`li`,{children:(0,W.jsxs)(Z,{as:`span`,variant:`body`,className:`block`,children:[(0,W.jsx)(dR,{}),` `,e.agents.length]})}),e?.tools&&e.tools.length>0&&(0,W.jsx)(`li`,{children:(0,W.jsxs)(Z,{as:`span`,variant:`body`,className:`block`,children:[(0,W.jsx)(hR,{}),` `,e.tools.length]})}),e?.networks&&e.networks.length>0&&(0,W.jsx)(`li`,{children:(0,W.jsxs)(Z,{as:`span`,variant:`body`,className:`block`,children:[(0,W.jsx)(yKe,{}),` `,e.networks.length]})}),e?.workflows&&e.workflows.length>0&&(0,W.jsx)(`li`,{children:(0,W.jsxs)(Z,{as:`span`,variant:`body`,className:`block`,children:[(0,W.jsx)($C,{}),` `,e.workflows.length]})}),e?.mcp&&e.mcp.length>0&&(0,W.jsx)(`li`,{children:(0,W.jsxs)(Z,{as:`span`,variant:`body`,className:`block`,children:[(0,W.jsx)(fR,{}),` `,e.mcp.length]})})]}),t&&e.supportedProviders&&(0,W.jsx)(`small`,{children:(0,W.jsx)(Z,{as:`span`,variant:`body`,children:`|`})}),(0,W.jsx)(`div`,{className:`flex items-center gap-4`,children:e.supportedProviders.map(e=>(0,W.jsx)(Z,{tone:`muted`,as:`span`,variant:`body`,children:e},e))})]})]})]}),(0,W.jsx)(`a`,{href:e.githubUrl,className:H(`group ml-auto hidden items-center gap-2 pr-4`,`lg:flex`),target:`_blank`,rel:`noopener noreferrer`,children:(0,W.jsx)(Z,{as:`span`,variant:`body`,children:(0,W.jsxs)(`span`,{className:H(`flex items-center gap-2 rounded bg-sidebar px-2 py-1`,DLe,Ew,lS),children:[(0,W.jsx)(AQ,{}),` `,E8r(e.githubUrl)]})})})]},e.slug)})})}function O8r({tagOptions:e,selectedTag:t,providerOptions:n,selectedProvider:r,onTagChange:i,onProviderChange:a,searchTerm:o,onSearchChange:s,onReset:c,className:l,isLoading:u}){return u?(0,W.jsxs)(`div`,{className:H(`flex h-[6.5rem] items-center gap-5`,`[&>div]:h-8 [&>div]:w-48 [&>div]:animate-pulse [&>div]:bg-card`,l),children:[(0,W.jsx)(`div`,{}),` `,(0,W.jsx)(`div`,{}),` `,(0,W.jsx)(`div`,{})]}):(0,W.jsxs)(`div`,{className:H(`sticky top-0 mx-auto flex flex-wrap gap-4 bg-background py-5`,l),children:[(0,W.jsx)(UK,{label:`Search templates`,placeholder:`Search Template`,value:o,onValueChange:s}),(0,W.jsxs)(TN,{value:t,onValueChange:i,children:[(0,W.jsx)(DN,{"aria-label":`Filter by tag`,size:`md`,children:(0,W.jsx)(EN,{placeholder:`Select an option`})}),(0,W.jsx)(ON,{children:e.map(e=>(0,W.jsx)(kN,{value:e.value,children:e.label},e.value))})]}),(0,W.jsxs)(TN,{value:r,onValueChange:a,children:[(0,W.jsx)(DN,{"aria-label":`Filter by provider`,size:`md`,children:(0,W.jsx)(EN,{placeholder:`Select an option`})}),(0,W.jsx)(ON,{children:n.map(e=>(0,W.jsx)(kN,{value:e.value,children:e.label},e.value))})]}),c&&(0,W.jsx)(Y,{onClick:c,icon:(0,W.jsx)(tw,{}),children:`Reset`})]})}var k8r=[{id:`templates`,label:`Templates`}];function A8r(){let{data:e,isLoading:t}=m8r(),{templates:n,tags:r,providers:i}=e??{templates:[],tags:[],providers:[]},[a,o]=(0,U.useState)(`all`),[s,c]=(0,U.useState)(`all`),[l,u]=(0,U.useState)(``),d=[{value:`all`,label:`Any tag`}];(r||[]).forEach(e=>{d.push({value:e,label:e})});let f=[{value:`all`,label:`Any provider`}];(i||[]).forEach(e=>{f.push({value:e,label:e})});let p=(e,t)=>{t===`tag`?o(e):t===`provider`&&c(e)},m=e=>{u(e)},h=()=>{o(`all`),c(`all`),u(``)},g=n.filter(e=>!(l&&!e.title.toLowerCase().includes(l)&&!e.description.toLowerCase().includes(l)||a!==`all`&&!e.tags.includes(a)||s!==`all`&&!e.supportedProviders.includes(s))),_=l||a!==`all`||s!==`all`;return(0,W.jsxs)(Bw,{variant:`fit`,breadcrumbs:(0,W.jsx)(IL,{crumbs:k8r}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Templates`}),(0,W.jsx)(zw,{children:(0,W.jsxs)(gYe,{children:[(0,W.jsx)(cS,{children:(0,W.jsx)(DC,{})}),`Templates`]})}),(0,W.jsxs)(`div`,{className:H(`z-10 h-full w-full overflow-y-auto px-5 pb-12`),children:[(0,W.jsx)(O8r,{selectedTag:a,onTagChange:e=>p(e,`tag`),tagOptions:d,selectedProvider:s,onProviderChange:e=>p(e,`provider`),providerOptions:f,searchTerm:l,onSearchChange:m,onReset:_?h:void 0,className:`max-w-[80rem]`,isLoading:t}),(0,W.jsx)(D8r,{templates:g,linkComponent:ey,className:`mx-auto max-w-[80rem]`,isLoading:t})]})]})}function R9({children:e,className:t}){return(0,W.jsx)(`div`,{className:H(`transition-height mt-12 rounded-lg border border-border px-4 py-5 lg:min-h-[25rem] lg:px-12`,t),children:e})}function j8r({errorMsg:e,validationErrors:t}){let n=typeof e==`string`?e:e==null?void 0:String(e),r=n?.includes(`Invalid schema for function`),i=n?.includes(`validation issue`)||t&&t.length>0,a=()=>i?`Template installation completed but some validation issues remain. The template may still be functional, but you should review and fix these issues.`:r?`There was an issue with the AI model configuration. This may be related to the selected model or AI SDK version compatibility.`:`An unexpected error occurred during template installation.`,{icon:o,title:s}=i?{icon:(0,W.jsx)(XC,{className:`text-warning-foreground`}),title:`Template Installed with Warnings`}:{icon:(0,W.jsx)(TGe,{}),title:`Template Installation Failed`};return(0,W.jsxs)(R9,{className:`mb-5 content-center space-y-4 text-muted-foreground`,children:[(0,W.jsxs)(`div`,{className:`grid content-center items-center justify-items-center gap-4 [&>svg]:h-8 [&>svg]:w-8`,children:[o,(0,W.jsxs)(`div`,{className:`space-y-2 text-center`,children:[(0,W.jsx)(Z,{variant:`subheading`,tone:`ink`,children:s}),(0,W.jsx)(Z,{tone:`muted`,children:a()})]})]}),t&&t.length>0&&(0,W.jsxs)(`details`,{children:[(0,W.jsx)(`summary`,{className:H(`text-muted-foreground hover:text-foreground`,`cursor-pointer text-center select-none`),children:(0,W.jsxs)(Z,{as:`span`,variant:`caption`,className:`block`,children:[`Show Validation Issues (`,t.length,`)`]})}),(0,W.jsx)(`div`,{className:`mt-4 max-h-60 space-y-2 overflow-auto rounded bg-muted p-3 text-left`,children:t.map((e,t)=>(0,W.jsxs)(`div`,{className:`border-l-2 border-destructive-indicator pl-2`,children:[(0,W.jsx)(Z,{as:`p`,variant:`column`,className:`text-destructive-foreground`,children:e.type===`typescript`?`🔴 TypeScript Error`:`⚠️ Lint Error`}),(0,W.jsx)(OD,{className:`mt-1 text-caption wrap-break-word whitespace-pre-wrap text-muted-foreground`,code:e.message})]},t))})]}),n&&!i&&(0,W.jsxs)(`details`,{children:[(0,W.jsx)(`summary`,{className:H(`text-muted-foreground hover:text-foreground`,`cursor-pointer text-center select-none`),children:(0,W.jsx)(Z,{as:`span`,variant:`caption`,className:`block`,children:`Show Details`})}),(0,W.jsx)(`div`,{className:`mt-4 max-h-60 overflow-auto rounded bg-muted p-3 text-left`,children:(0,W.jsx)(OD,{className:`text-caption wrap-break-word whitespace-pre-wrap`,code:n})})]})]})}var M8r=(0,U.createContext)(null);function N8r(){return(0,U.useContext)(M8r)||{registerResetFn:()=>{},triggerReset:()=>{}}}var P8r=({defaultProvider:e,defaultModel:t,updateModel:n,resetModel:r})=>{let[i]=(0,U.useState)(e),[a]=(0,U.useState)(t),[o,s]=(0,U.useState)(t),[c,l]=(0,U.useState)(e||``),[u,d]=(0,U.useState)(!1),[f,p]=(0,U.useState)(!1),[m,h]=(0,U.useState)(!1),{data:g,isLoading:_}=XY(),v=hw(),{models:y}=eX(),b=(0,U.useMemo)(()=>g?.providers||[],[g]);(0,U.useEffect)(()=>{s(t),l(e||``)},[t,e]);let x=qY(c),S=ZY(b,x)?.id||x,C=async r=>{if(s(r),r&&S){d(!0);try{let e=await n({provider:S,modelId:r});console.info(`Model updated:`,e)}catch(n){s(t),l(e||``),console.error(`Failed to update model:`,n)}finally{d(!1)}}},w=e=>{let t=qY(e);l(t),t!==x&&(s(``),h(!0))},{registerResetFn:T}=N8r();if((0,U.useEffect)(()=>(T(()=>{if(!(f||m)&&x&&x!==i&&(!o||o===``)){l(qY(i)),s(a);let e=ZY(b,i)?.id||i;e&&a&&n({provider:e,modelId:a}).catch(e=>{console.error(`Failed to reset model:`,e)})}}),()=>{T(null)}),[T,x,o,i,a,n,f,m,b]),_)return(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(dt,{}),(0,W.jsx)(Z,{as:`span`,tone:`muted`,children:`Loading providers...`})]});let E=async()=>{if(!r)console.warn(`Reset model function not provided`);else try{d(!0),await r()}catch(e){console.error(`Failed to reset model:`,e)}finally{d(!1)}},D=ZY(b,x);if(v.active&&v.pickerVisible===!1){let e=v.default&&v.default.provider&&v.default.modelId?`${v.default.provider}/${v.default.modelId}`:c&&o?`${c}/${o}`:`Locked by admin`;return(0,W.jsxs)(`div`,{className:H(ry,`flex items-center gap-2 rounded-md px-3 py-2`),"data-testid":`agent-metadata-model-locked`,children:[(0,W.jsx)(CC,{className:`h-4 w-4 shrink-0 text-muted-foreground`}),(0,W.jsx)(Z,{as:`span`,variant:`caption`,tone:`ink`,className:`truncate`,children:e}),(0,W.jsx)(Z,{as:`span`,variant:`meta`,tone:`muted`,className:`ml-auto shrink-0`,children:`Set by admin`})]})}let O=!!(x&&o)&&v.active&&v.allowed!==void 0&&!y.some(e=>qY(e.provider)===x&&e.model===o);return(0,W.jsxs)(`div`,{className:`@container`,children:[(0,W.jsxs)(`div`,{className:`flex w-full flex-col items-stretch gap-2 @xs:flex-row @xs:items-center`,children:[(0,W.jsx)(`div`,{className:`w-full @xs:w-2/5`,children:(0,W.jsx)(QY,{value:x,onValueChange:w,open:f,onOpenChange:p})}),(0,W.jsx)(`div`,{className:`w-full @xs:w-3/5`,children:(0,W.jsx)($Y,{llmId:x,value:o,onValueChange:C,open:m,onOpenChange:h})}),(0,W.jsx)(Y,{variant:`default`,size:`icon-md`,onClick:E,disabled:u,tooltip:`Reset to original model`,children:(0,W.jsx)(LC,{})})]}),O&&(0,W.jsx)(`div`,{className:`p-2 pt-2`,"data-testid":`agent-metadata-model-stale-warning`,children:(0,W.jsx)(oN,{variant:`warning`,title:`Model not allowed`,children:(0,W.jsxs)(oN.Message,{children:[(0,W.jsxs)(`code`,{className:`rounded bg-fill-hover px-1 py-0.5`,children:[c,`/`,o]}),` `,`is no longer allowed by the admin policy. Pick a different model to save changes.`]})})}),D&&!D.connected&&(0,W.jsx)(`div`,{className:`p-2 pt-2`,children:(0,W.jsx)(oN,{variant:`warning`,title:`Provider not connected`,children:(0,W.jsxs)(oN.Message,{children:[`Set the`,` `,(0,W.jsx)(`code`,{className:`rounded bg-fill-hover px-1 py-0.5`,children:Array.isArray(D.envVar)?D.envVar.join(`, `):D.envVar}),` `,`environment`,` `,Array.isArray(D.envVar)&&D.envVar.length>1?`variables`:`variable`,` to use this provider.`]})})})]})};function F8r({providerOptions:e,selectedProvider:t,onProviderChange:n,variables:r,errors:i,handleInstallTemplate:a,handleVariableChange:o,isLoadingEnvVars:s,isInstalling:c,defaultModelProvider:l,defaultModelId:u,onModelUpdate:d}){return(0,W.jsx)(R9,{children:(0,W.jsxs)(`div`,{className:`mx-auto my-4 grid max-w-[40rem] gap-5 p-4 lg:p-5`,children:[(0,W.jsxs)(Z,{as:`h2`,variant:`heading`,tone:`muted`,className:H(`flex items-center gap-2`,`[&_svg]:h-[1.2em] [&_svg]:opacity-70 [&>svg]:w-[1.2em]`),children:[`Install Template `,(0,W.jsx)(CKe,{})]}),(0,W.jsxs)(VM,{orientation:`horizontal`,children:[(0,W.jsx)(UM,{children:`Template AI Model Provider`}),(0,W.jsx)(a_t,{className:`flex-1`,children:(0,W.jsxs)(TN,{name:`template-provider`,value:t,onValueChange:n,children:[(0,W.jsx)(DN,{size:`md`,children:(0,W.jsx)(EN,{placeholder:`Select`})}),(0,W.jsx)(ON,{children:e.map(e=>(0,W.jsx)(kN,{value:e.value,children:e.label},e.value))})]})})]}),t&&Object.entries(r||{}).length>0&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Z,{as:`h3`,tone:`muted`,children:`Set required Environmental Variables`}),(0,W.jsx)(`div`,{className:`grid grid-cols-[1fr_1fr] items-start gap-4`,children:s?(0,W.jsxs)(`div`,{className:H(`text-muted-foreground`,`col-span-2 flex items-center justify-center gap-4`,`[&_svg]:h-[1.1em] [&_svg]:w-[1.1em] [&_svg]:opacity-50`,`animate-in duration-300 fade-in`),children:[(0,W.jsx)(dt,{}),(0,W.jsxs)(Z,{as:`span`,variant:`caption`,className:`block`,children:[` `,`Loading variables...`]})]}):Object.entries(r).map(([e,t])=>(0,W.jsxs)(U.Fragment,{children:[(0,W.jsxs)(VM,{className:`w-full`,children:[(0,W.jsx)(UM,{className:`sr-only`,children:`Key`}),(0,W.jsx)(_I,{name:`env-${e}`,value:e,disabled:!0,className:`w-full`})]}),(0,W.jsxs)(VM,{invalid:i.includes(e),className:`w-full`,children:[(0,W.jsx)(UM,{className:`sr-only`,children:`Value`}),(0,W.jsx)(_I,{name:e,value:t,onChange:o,autoComplete:`off`,className:`w-full`}),(0,W.jsx)(GM,{children:i.includes(e)?`Value is required.`:void 0})]})]},e))}),(0,W.jsxs)(`div`,{className:`relative mt-3.5 border-t border-border pt-12`,children:[(0,W.jsx)(`div`,{className:`absolute top-0 left-1/2 flex h-8 w-8 -translate-x-1/2 -translate-y-4 items-center justify-center rounded-full bg-background`,children:(0,W.jsx)(Z,{tone:`muted`,as:`span`,variant:`caption`,className:`block`,children:`And`})}),(0,W.jsx)(Z,{as:`h3`,tone:`muted`,children:`Set AI Model for Template Installation`}),(0,W.jsx)(Z,{tone:`muted`,className:`mt-2 mb-5`,children:`This model will be used by the workflow to process and install the template`}),(0,W.jsx)(P8r,{defaultProvider:l||``,defaultModel:u||``,updateModel:d||(()=>Promise.resolve({message:`Updated`})),closeEditor:()=>{},autoSave:!0,selectProviderPlaceholder:`Provider`})]})]}),t&&!s&&(0,W.jsx)(Y,{className:H(`state-layer mt-4 flex min-h-10 w-full items-center justify-center gap-2 rounded-lg bg-card text-foreground`,`[&_svg]:h-[1.1em] [&_svg]:text-foreground [&>svg]:w-[1.1em]`),onClick:a,disabled:!t||!l||!u||i.length>0||c,children:c?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(dt,{className:`h-4 w-4`}),` Installing...`]}):(0,W.jsxs)(W.Fragment,{children:[`Install `,(0,W.jsx)(kS,{})]})})]})})}function I8r({title:e,description:t,githubUrl:n,isLoading:r,infoData:i,templateSlug:a}){let o=a?`feat/install-template-${a}`:`feat/install-template-[slug]`;return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`div`,{className:`mt-5 grid items-center`,children:(0,W.jsxs)(`div`,{className:H(`flex items-center gap-3`,`[&>svg]:h-[1.2em] [&>svg]:w-[1.2em] [&>svg]:opacity-50`,{"[&>svg]:opacity-20":r}),children:[(0,W.jsx)(DC,{}),(0,W.jsx)(`h2`,{className:H({"flex min-w-[50%] rounded-lg bg-muted":r}),children:(0,W.jsx)(Z,{as:`span`,variant:`title`,className:`block`,children:r?(0,W.jsx)(W.Fragment,{children:`\xA0`}):e})})]})}),(0,W.jsxs)(`div`,{className:`grid gap-x-24 lg:grid-cols-[1fr_1fr]`,children:[(0,W.jsxs)(`div`,{className:`grid`,children:[(0,W.jsx)(Z,{tone:`muted`,className:H(`mt-2 mb-4`,{"rounded-lg bg-muted":r}),children:r?(0,W.jsx)(W.Fragment,{children:`\xA0`}):t}),!r&&a&&(0,W.jsxs)(`div`,{className:H(`mb-4 rounded-lg border border-border bg-background p-4`,`flex items-start gap-3`),children:[(0,W.jsx)(`div`,{className:`mt-0.5 shrink-0`,children:(0,W.jsx)(_C,{className:`h-[1.1em] w-[1.1em] text-info-indicator`})}),(0,W.jsxs)(`div`,{className:`flex-1 space-y-2`,children:[(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(pC,{className:`h-[1em] w-[1em] text-muted-foreground`}),(0,W.jsx)(Z,{as:`span`,variant:`subheading`,tone:`ink`,children:`A new Git branch will be created`})]}),(0,W.jsxs)(`div`,{className:`space-y-1`,children:[(0,W.jsxs)(Z,{tone:`muted`,as:`p`,variant:`caption`,children:[(0,W.jsx)(Z,{as:`span`,variant:`column`,children:`Branch name:`}),` `,(0,W.jsx)(RZ,{children:o})]}),(0,W.jsx)(Z,{tone:`muted`,as:`p`,variant:`caption`,children:`This ensures safe installation with easy rollback if needed. Your main branch remains unchanged.`})]})]})]}),n&&(0,W.jsxs)(`a`,{href:n,target:`_blank`,rel:`noopener noreferrer`,className:H(`text-muted-foreground hover:text-foreground`,`mt-auto flex items-center gap-2`),children:[(0,W.jsx)(AQ,{}),(0,W.jsx)(Z,{as:`span`,variant:`body`,className:`block`,children:n?.split(`/`)?.pop()})]})]}),i&&(0,W.jsx)(Lfr,{data:i,labelsAreHidden:!0,isLoading:r})]})]})}function L8r(e){switch(e){case`running`:return(0,W.jsx)(dt,{size:`sm`,"aria-hidden":!0});case`success`:return(0,W.jsx)(LS,{"aria-hidden":!0});case`failed`:return(0,W.jsx)(tw,{"aria-hidden":!0});default:return null}}function R8r(){return(0,W.jsx)(`svg`,{viewBox:`0 0 24 24`,className:`text-placeholder`,"aria-hidden":!0,children:(0,W.jsx)(`circle`,{cx:`12`,cy:`12`,r:`8.5`,pathLength:`48`,fill:`none`,stroke:`currentcolor`,strokeWidth:`2.8`,strokeLinecap:`round`,strokeDasharray:`3 3`})})}function z8r({status:e,variant:t}){return t===`plain`?(0,W.jsx)(`span`,{className:H(`flex size-4 items-center justify-center self-center [&>svg]:size-4`,uS.colors,{"[&>svg]:text-success-indicator":e===`success`,"[&>svg]:text-destructive-foreground":e===`failed`}),children:e===`pending`?(0,W.jsx)(R8r,{}):L8r(e)}):(0,W.jsx)(`span`,{className:H(`flex size-7 items-center justify-center self-center rounded-full motion-reduce:transition-none`,uS.colors,uS.transform,{"[&>svg]:text-success-indicator":e===`success`,"[&>svg]:text-destructive-foreground":e===`failed`,"border border-dashed border-placeholder":e===`pending`,"[&>svg]:size-4":e!==`running`,"bg-success-subtle":e===`success`,"bg-destructive-subtle":e===`failed`,"scale-110":e===`success`||e===`failed`}),children:L8r(e)})}function B8r({step:e,isActive:t,position:n,variant:r=`default`}){let i=t||e.status===`success`?`ink`:`muted`;return(0,W.jsxs)(`div`,{className:H(`grid grid-cols-[1fr_auto] gap-6 rounded-lg px-4 py-3 motion-reduce:transition-none`,uS.colors,{"border border-transparent":r==="default","border-dashed border-placeholder bg-card":t&&r==="default"}),children:[(0,W.jsxs)(`div`,{className:`grid min-w-0 grid-cols-[auto_1fr] gap-2`,children:[(0,W.jsxs)(Z,{as:`span`,tone:i,className:H(`flex min-w-6 justify-end`,uS.colors),children:[n,`.`]}),(0,W.jsxs)(`div`,{className:`min-w-0`,children:[(0,W.jsx)(Z,{as:`h4`,tone:i,className:uS.colors,children:e.title}),e.description&&(0,W.jsx)(Z,{tone:`faint`,className:H(`-mt-0.5`,{truncate:r===`plain`}),children:e.description})]})]}),(0,W.jsx)(z8r,{status:e.status,variant:r})]})}function V8r({currentStep:e,steps:t=[],className:n}){return(0,W.jsx)(`div`,{className:H(n),children:t.map((t,n)=>(0,W.jsx)(B8r,{step:t,isActive:e?.id===t.id,position:n+1},t.id))})}function H8r({steps:e}){let t=e.length,n=e.filter(e=>e.status===`success`).length;return(0,W.jsxs)(`div`,{className:`flex w-full flex-col content-center justify-center gap-4`,children:[(0,W.jsx)(`div`,{className:`grid w-full grid-cols-[0_repeat(9,1fr)]`,children:e.map((t,n)=>(0,W.jsx)(`div`,{className:H(`relative flex h-8 items-center justify-end`,uS.colors,{"bg-success-subtle":t.status===`success`&&e?.[n-1]?.status===`success`}),children:(0,W.jsx)(`div`,{className:H(`absolute right-0 z-10 flex size-8 translate-x-1/2 items-center justify-center self-center rounded-full bg-fill text-column text-muted-foreground motion-reduce:transition-none`,uS.colors,uS.transform,{"border border-dashed border-placeholder":t.status===`pending`,"scale-110 bg-success-subtle text-success-subtle-foreground":t.status===`success`,"scale-110 bg-destructive-subtle text-destructive-subtle-foreground":t.status===`failed`}),children:t.status===`running`?(0,W.jsx)(dt,{}):n+1})},t.id))}),(0,W.jsxs)(`div`,{className:H(`text-center text-caption text-muted-foreground`,uS.colors),children:[n,` of `,t,` steps completed`]})]})}function U8r({name:e,streamResult:t,runId:n,workflowInfo:r}){let i=t?.phase||`initializing`,a=t?.payload?.workflowState,o=t?.payload?.currentStep,s=t?.error,c=a?.steps||{},l=Object.keys(c).length>0,u=e=>e===`input`||e.endsWith(`.input`)||e.startsWith(`Mapping_`)&&/[0-9a-f]{8}/.test(e)||/[0-9a-f]{8,}/.test(e)?!1:!r?.allSteps||e in r.allSteps,d=Object.entries(c).filter(([e,t])=>u(e)),f=d.length,p=()=>{switch(i){case`initializing`:return`Preparing template installation...`;case`processing`:return`Installing ${e} template`;case`completed`:return`Template installation completed!`;case`error`:return`Template installation failed`;default:return`Installing template...`}},m=d.map(([e,t])=>({id:e,status:t?.status,description:t?.description,title:e.charAt(0).toUpperCase()+e.slice(1).replace(/-/g,` `),isActive:o?.id===e}));return(0,W.jsxs)(R9,{className:`mb-5 content-center space-y-6 text-muted-foreground`,children:[(0,W.jsxs)(`div`,{className:`text-center`,children:[(0,W.jsx)(Z,{as:`h3`,variant:`heading`,tone:`ink`,children:p()}),(t?.runId||n)&&(0,W.jsxs)(Z,{as:`p`,variant:`caption`,tone:`muted`,className:`mt-2`,children:[`Run ID: `,t?.runId??n]})]}),l&&f>0&&![`error`].includes(i)&&(0,W.jsx)(`div`,{className:`mx-auto w-full max-w-[30rem] px-4`,children:(0,W.jsx)(H8r,{steps:m})}),s&&i===`error`&&(0,W.jsxs)(`div`,{className:H(`text-foreground`,`flex items-center gap-3 rounded-lg bg-destructive-subtle p-4`,`[&>svg]:h-6 [&>svg]:w-6 [&>svg]:text-destructive-foreground [&>svg]:opacity-70`),children:[(0,W.jsx)(SKe,{}),(0,W.jsx)(Z,{as:`span`,variant:`body`,className:`block`,children:s||`Something went wrong`})]}),l&&(0,W.jsx)(V8r,{steps:m,currentStep:o,className:`pb-4`}),!l&&i===`initializing`&&(0,W.jsxs)(`div`,{className:H(`text-muted-foreground`,`grid justify-items-center gap-4 text-center`),children:[(0,W.jsx)(dt,{}),(0,W.jsx)(Z,{as:`p`,variant:`body`,children:`This may take some time...`})]})]})}function W8r({name:e,installedEntities:t}){return(0,W.jsxs)(R9,{className:H(`grid content-center items-center justify-items-center gap-4`,`[&>svg]:h-8 [&>svg]:w-8`),children:[(0,W.jsx)(CKe,{}),(0,W.jsx)(Z,{as:`h2`,variant:`heading`,children:`Done!`}),(0,W.jsxs)(Z,{tone:`muted`,className:`text-center`,children:[`The `,(0,W.jsx)(`b`,{className:`text-muted-foreground`,children:e}),` template has been successfully installed.`,t&&t.length>0&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`br`,{}),` Installed entities are listed below.`]})]}),t&&t.length>0&&(0,W.jsx)(Lfr,{data:t})]})}function G8r(){let{templateSlug:e}=Kv(),t=[{id:`templates`,label:`Templates`,to:`/templates`},{id:`template`,label:DNt(e)}],[n,r]=ty(),[i,a]=(0,U.useState)(``),[o,s]=(0,U.useState)(``),[c,l]=(0,U.useState)(``),[u,d]=(0,U.useState)({}),[f,p]=(0,U.useState)([]),[m,h]=(0,U.useState)(null),[g,_]=(0,U.useState)(!1),[v,y]=(0,U.useState)(``),[b,x]=(0,U.useState)(!1),[S,C]=(0,U.useState)(!1),[w,T]=(0,U.useState)([]),{data:E,isLoading:D}=h8r({repoOrSlug:e,owner:`mastra-ai`}),O=`1.80.0-alpha.1`.includes(`beta`)??!1?`beta`:`main`,{data:k,isLoading:A}=g8r({repo:E?.githubUrl?new URL(E.githubUrl).pathname.split(`/`)[2]:`template-${e}`,owner:`mastra-ai`,branch:O}),{data:j,isLoading:M}=_8r(),{mutateAsync:N,isPending:P}=v8r(),{mutateAsync:F}=y8r(),{streamInstall:I,streamResult:L,isStreaming:R}=w8r({workflowInfo:j}),{observeInstall:z,streamResult:B,isStreaming:V}=T8r({workflowInfo:j});(0,U.useEffect)(()=>{let e=n.get(`runId`);e&&!g&&!m&&!R&&!V&&(console.info(`🔄 Checking completed run after hot reload:`,{runId:e}),y(e),F({runId:e}).then(e=>{let t=e.snapshot;if(t?.status===`success`&&t?.result?.success)_(!0);else if(t?.result?.success===!1){if(t?.result?.validationResults&&!t?.result?.validationResults?.valid&&t?.result?.validationResults?.remainingErrors>0){let{remainingErrors:e,errors:n}=t.result.validationResults,r=`Template installation completed but ${e} validation issue${e>1?`s`:``} remain unresolved.`;h(r),T(n||[])}else{let e=t?.result?.message||t?.result?.error||`Template installation failed`;h(typeof e==`string`?e:String(e))}}}).catch(e=>{console.error(`❌ Failed to fetch run details:`,e),h(`Failed to retrieve installation status after reload`)}))},[n,g,m,R,V,F]),(0,U.useEffect)(()=>{let e=n.get(`runId`),t=n.get(`resume`),i=n.get(`provider`);if(e&&t===`true`&&i&&!R&&!V&&!b&&!S&&j){y(e),x(!0);try{F({runId:e}).then(t=>{if(t.snapshot?.status===`running`)return z.mutateAsync({runId:e})}).then(()=>{r(e=>{let t=new URLSearchParams(e);return t.delete(`resume`),t})}).catch(e=>{console.error(`❌ Failed to resume template installation:`,e),e.message?.includes(`404`)||e.message?.includes(`not found`)?h(`Template installation run not found. It may have expired or been completed.`):h(`Failed to resume template installation. Please try again.`)})}catch(e){console.error(`❌ Auto-resume failed with error:`,e),h(`Failed to resume template installation. Please refresh and try again.`)}}},[n,e,R,V,b,S,j,F,z,r]);let ee=[{value:`openai`,label:`OpenAI`},{value:`anthropic`,label:`Anthropic`},{value:`groq`,label:`Groq`},{value:`google`,label:`Google`}],te=[{key:`tools`,label:`Tools`,value:E?.tools?.length?E.tools.map(e=>e).join(`, `):`n/a`,icon:(0,W.jsx)(hR,{})},{key:`agents`,label:`Agents`,value:E?.agents?.length?E.agents.map(e=>e).join(`, `):`n/a`,icon:(0,W.jsx)(dR,{})},{key:`workflows`,label:`Workflows`,value:E?.workflows?.length?E.workflows.map(e=>e).join(`, `):`n/a`,icon:(0,W.jsx)($C,{})},{key:`providers`,label:`Providers`,value:E?.supportedProviders?.length?E.supportedProviders.join(`, `):`n/a`,icon:(0,W.jsx)(PS,{})},{key:`tags`,label:`Tags`,value:E?.tags?.length?E.tags.join(`, `):`n/a`,icon:(0,W.jsx)(GC,{})}],ne=[{...te[0]},{...te[1]},{...te[2]}].filter(e=>e.value!==`n/a`);return(0,U.useEffect)(()=>{k&&d(k)},[k]),(0,U.useEffect)(()=>{let e=L||B;e?.phase===`error`&&e?.error&&h(typeof e.error==`string`?e.error:String(e.error))},[L?.phase,L?.error,B?.phase,B?.error]),(0,W.jsxs)(Bw,{variant:`fit`,breadcrumbs:(0,W.jsx)(IL,{crumbs:t}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:e}),(0,W.jsx)(`div`,{className:H(`h-full w-full overflow-y-scroll lg:px-12`),children:(0,W.jsxs)(`div`,{className:`mx-auto grid w-full max-w-[80rem] gap-y-4 p-4`,children:[(0,W.jsx)(I8r,{isLoading:D,title:E?.title,description:E?.longDescription,imageURL:E?.imageURL,githubUrl:E?.githubUrl,infoData:te,templateSlug:e}),E&&(0,W.jsxs)(W.Fragment,{children:[(R||V)&&(0,W.jsx)(U8r,{name:E.title,streamResult:V?B:L,runId:v,workflowInfo:j}),g&&(0,W.jsx)(W8r,{name:E.title,installedEntities:ne,linkComponent:ey}),m&&(0,W.jsx)(j8r,{errorMsg:m,validationErrors:w.length>0?w:L?.validationResults?.errors||B?.validationResults?.errors}),!R&&!V&&!g&&!m&&(0,W.jsx)(F8r,{providerOptions:ee,selectedProvider:i,onProviderChange:e=>{a(e)},variables:u,setVariables:d,errors:f,setErrors:p,handleInstallTemplate:async()=>{let e=Object.entries(u).reduce((e,[t,n])=>(n===``&&e.push(t),e),[]);if(e.length>0)p(e);else if(E){h(null),_(!1),y(``),C(!0);try{let e={repo:E.githubUrl||`https://github.com/mastra-ai/template-${E.slug}`,ref:O,slug:E.slug,variables:u},{runId:t}=await N({});y(t),r(e=>{let n=new URLSearchParams(e);return n.set(`runId`,t),n.set(`resume`,`true`),n.set(`provider`,i||`openai`),n}),await I.mutateAsync({inputData:e,selectedModel:{provider:o,modelId:c},runId:t})}catch(e){C(!1),h(e?.message||`Template installation failed`),console.error(`Template installation failed`,e)}}},handleVariableChange:e=>{let{name:t,value:n}=e.target;n.trim()===``?p(e=>[...e,t]):p(e=>e.filter(e=>e!==t)),d(e=>({...e,[t]:n}))},isLoadingEnvVars:A||M,isInstalling:P,defaultModelProvider:o,defaultModelId:c,onModelUpdate:async e=>(s(e.provider),l(e.modelId),{message:`Model updated successfully`})})]})]})})]})}var K8r=[`status`,`traceCount`,`timeToFirstChunkMs`,`entityType`,`entityId`,`entityName`,`entityVersionId`,`threadId`,`resourceId`,`userId`,`organizationId`,`runId`,`sessionId`,`requestId`,`serviceName`,`experimentId`,`environment`,`executionSource`],q8r=new Set(K8r),J8r=new Set([`traceCount`,`timeToFirstChunkMs`]),Y8r=new Set([`threadId`,`status`,`traceCount`]),X8r=[`is`,`isNot`,`gt`,`gte`,`lt`,`lte`],Z8r={...Bwr,traceCount:`Trace count`,timeToFirstChunkMs:`Time to first chunk (ms)`,executionSource:`Execution source`,entityType:`Primitive type`,entityVersionId:`Primitive version ID`},Q8r={traceCount:`traceId`,timeToFirstChunkMs:`durationMs`,executionSource:`runId`,entityType:`rootEntityType`,entityVersionId:`entityId`},z9=e=>({id:e,label:Z8r[e]??e,icon:w6(Q8r[e]??e),color:T6(e)}),$8r=e=>{let t=e.replace(/_/g,` `);return t.charAt(0).toUpperCase()+t.slice(1)},e5r=Object.fromEntries(f6.map(e=>[e.entityType,e.label])),t5r=Object.values(lp).map(e=>({value:e,label:e5r[e]??$8r(e)})).sort((e,t)=>e.label.localeCompare(t.label)),n5r=lwr.filter(e=>e.value!==`running`).map(e=>({value:e.value,label:e.label}));function r5r({entityNames:e,environments:t}){let n=(e,t,n=S6)=>({...z9(e),operators:n,strict:!0,suggestions:t});return K8r.map(r=>{switch(r){case`status`:return n(r,n5r,C6);case`entityType`:return n(r,t5r);case`entityName`:return n(r,e.map(e=>({value:e})));case`environment`:return n(r,t.map(e=>({value:e})));case`traceCount`:return{...z9(r),type:`number`,operators:X8r};case`timeToFirstChunkMs`:return{...z9(r),type:`number`,operators:Nwr};case`threadId`:return{...z9(r),operators:C6};default:return{...z9(r),operators:S6}}}).sort((e,t)=>e.label.localeCompare(t.label))}function i5r(e){let{fieldId:t}=e;if(!q8r.has(t))return;let n=e.operatorId??`is`,r=n===`exists`||n===`notExists`,i=(Array.isArray(e.value)?e.value:[e.value]).filter(e=>typeof e==`string`&&!!e.trim()&&!x6(e,n));if(!i.length&&!r)return;let a=i;if(J8r.has(t)&&(a=i.map(Number).filter(e=>!Number.isNaN(e)),!a.length&&!r)||t===`traceCount`&&(r||a.length>1||!X8r.includes(n)))return;let o=d6(n,t,a);if(o)return(n===`isNot`||n===`notIn`)&&!Y8r.has(t)?{op:`or`,args:[o,{op:`notExists`,path:t}]}:o}function a5r(e){let t=e.nodes.map(e=>u6(e)?a5r(e):i5r(e)).filter(e=>!!e);if(t.length!==0)return t.length===1?t[0]:{op:e.logic,args:t}}function o5r(e,t){let n=[...e.map(i5r),...t.map(a5r)].filter(e=>!!e);return n.length?{op:`and`,args:n}:void 0}function s5r(e){return{traceId:e.lastTraceId,name:e.entityName??e.threadId,entityType:e.entityType,entityId:e.entityId,entityName:e.entityName,threadId:e.threadId,resourceId:e.resourceId,environment:e.environment,status:e.status,inputPreview:e.inputPreview,outputPreview:e.outputPreview??void 0,errorPreview:e.errorPreview??void 0,startedAt:e.startedAt,endedAt:e.endedAt,createdAt:e.startedAt}}var c5r=[`last-24h`,`last-3d`,`last-7d`,`last-14d`,`last-30d`,`custom`],l5r=[];function u5r(){let{data:e=l5r}=r6(),{data:t=l5r}=i6();return(0,U.useMemo)(()=>[l8,...r5r({entityNames:e,environments:t})],[e,t])}function d5r({tokens:e,groups:t,onFiltersChange:n}){let r=(0,U.useMemo)(()=>O6(e),[e]),i=(0,U.useMemo)(()=>{let e=k6([],t);return{...e,nodes:[u8,...r,...e.nodes]}},[r,t]),a=(0,U.useCallback)(e=>{let t=Qwr({...e,nodes:e.nodes.filter(e=>Z3(e)||e.fieldId!==`timeRange`)});n(t.tokens,t.groups)},[n]);return{filterBarValue:i,onFilterBarChange:a,onFilterByField:(0,U.useCallback)((e,t)=>{let n=r.filter(t=>t.fieldId!==e),o={id:`${e}:${t}`,fieldId:e,operatorId:`is`,value:t},s=i.nodes.filter(Z3);a({...i,nodes:[...n,o,...s]})},[r,i,a])}}var f5r=e=>e;function p5r({datePreset:e,dateFrom:t,dateTo:n,minDate:r,tokens:i,groups:a,onDatePresetChange:o,onDateChange:s,onDateRangeChange:c,onFiltersChange:l,disabled:u}){let d=u5r(),{filterBarValue:f,onFilterBarChange:p}=d5r({tokens:i,groups:a,onFiltersChange:l});return(0,W.jsxs)(f8,{fields:d,operators:jwr,value:f,onValueChange:p,createItemId:f5r,maxDepth:3,"aria-label":`Thread filters`,className:`min-w-64 flex-1`,children:[(0,W.jsx)(f8.Chips,{renderChip:i=>i.fieldId===`timeRange`?(0,W.jsx)(d8,{preset:e,onPresetChange:o,dateFrom:t,dateTo:n,minDate:r,onDateChange:s,onDateRangeChange:c,disabled:u,presets:c5r}):(0,W.jsx)(f8.Chip,{item:i})}),(0,W.jsx)(f8.Input,{placeholder:`Filter threads…`})]})}function m5r({selectedThreadId:e,onSelectedThreadChange:t,onOpenScore:n}){let r=E6r(),{timeRange:i,tokens:a,groups:o,sort:s}=r,c=G8().enabled,l=YFr().enabled,{threads:u,hasNextPage:d,isFetchingNextPage:f,setEndOfListElement:p,isLoading:m,isError:h,error:g}=ECr({query:(0,U.useMemo)(()=>{let e=o5r(a,o);return{timeRange:{traces:i},orderBy:[{field:`startedAt`,direction:s}],...e?{where:e}:{}}},[i,s,a,o]),queryOptions:T6r}),_=(0,U.useMemo)(()=>(u??[]).map(s5r),[u]),v=_.find(t=>t.threadId===e),y=e=>{e.threadId&&t(e.threadId)},b=!m&&!h&&_.length===0&&!r.contentFiltersApplied&&!e;return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Threads`}),(0,W.jsx)(IOr,{toolbar:(0,W.jsx)(VY,{children:(0,W.jsx)(VY.Start,{children:(0,W.jsx)(p5r,{datePreset:r.datePreset,dateFrom:r.dateFrom,dateTo:r.dateTo,tokens:a,groups:o,onDatePresetChange:r.onDatePresetChange,onDateChange:r.onDateChange,onDateRangeChange:r.onDateRangeChange,onFiltersChange:r.onFiltersChange,disabled:m})})}),error:h?(0,W.jsx)(Z6,{error:g,resource:`threads`,errorTitle:`Failed to load threads`}):void 0,empty:b?(0,W.jsx)(zOr,{resource:`threads`,datePreset:r.datePreset,dateFrom:r.dateFrom,dateTo:r.dateTo}):void 0,children:(0,W.jsx)(Pjr,{listId:`all-threads`,traces:_,isLoading:m,isFetchingNextPage:f,hasNextPage:d,setEndOfListElement:p,filtersApplied:r.filtersApplied,resource:`threads`,createdSort:s,onSortChange:r.setSort,featuredTraceId:v?.traceId,onTraceClick:y})}),(0,W.jsx)(nFr,{open:!!e,threadId:e??``,depth:1,closeLabel:`Close`,withQueryTrace:c,withFeedback:l,onOpenScore:n,onClose:()=>t(void 0)})]})}function h5r(){let{enabled:e,isLoading:t}=GFr(),n=Gv(),[r,i]=ty();return(0,W.jsx)(_6r,{enabled:e,isLoading:t,heading:`Threads`,title:`Query threads capability not activated`,description:`Your observability storage does not support thread row queries. Switch to a store that declares the thread-query-rows capability to list threads.`,children:(0,W.jsx)(m5r,{selectedThreadId:M6r(r),onSelectedThreadChange:e=>i(t=>N6r(t,e),{replace:!0}),onOpenScore:(e,t)=>n(zY(e,t))})})}var g5r=()=>(0,W.jsx)(aw,{titleSlot:`No Workflows yet`,descriptionSlot:(0,W.jsxs)(W.Fragment,{children:[`Mastra workflows are not configured yet. `,(0,W.jsx)(`br`,{}),`More information in the documentation.`]}),actionSlot:(0,W.jsx)(Y,{variant:`ghost`,render:(0,W.jsx)(`a`,{href:`https://mastra.ai/docs/workflows/overview`,target:`_blank`,rel:`noopener noreferrer`}),icon:(0,W.jsx)(tC,{}),children:`Workflows documentation`}),variant:`fill`});function _5r(e,t,n){return BQ(e,t,{name:e=>e.name,running:e=>n[e.id]?.running??0,suspended:e=>n[e.id]?.suspended??0,steps:e=>Object.keys(e.steps??{}).length})}function v5r(e){return Object.keys(e.steps??{}).filter(t=>e.allSteps?.[t]?.isWorkflow)}function y5r(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n,n),r.name&&t.set(r.name,n);return t}function b5r(e,t,n){let r=y5r(t),i=[],a=(e,o,s,c,l,u)=>{let d=v5r(e).filter(e=>{let t=r.get(e);return t===void 0||!c.has(t)});if(i.push({kind:`workflow`,workflow:e,pathKey:o,depth:s,nestedIds:d,guides:l,isLastChild:u}),!n.has(o)||d.length===0)return;let f=new Set(c).add(e.id),p=s===0?[]:[...l,!u];for(let[n,c]of d.entries()){let l=n===d.length-1,u=r.get(c);if(u===void 0){i.push({kind:`unregistered`,stepId:c,description:e.allSteps?.[c]?.description,pathKey:`${o}/${c}`,depth:s+1,guides:p,isLastChild:l});continue}let m=t[u];m&&a({...m,id:u},`${o}/${u}`,s+1,f,p,l)}};for(let t of e)a(t,t.id,0,new Set([t.id]),[],!1);return i}var x5r=`auto 24rem minmax(0, 1fr) auto auto auto`;function S5r({guides:e,isLastChild:t}){return(0,W.jsxs)(`span`,{"aria-hidden":!0,className:`-my-6 flex shrink-0 self-stretch`,children:[e.map((e,t)=>(0,W.jsx)(`span`,{className:H(`w-6`,e&&`border-l border-border`)},t)),(0,W.jsxs)(`span`,{className:`relative w-6`,children:[(0,W.jsx)(`span`,{className:H(`absolute top-0 left-0 border-l border-border`,t?`h-1/2`:`h-full`)}),(0,W.jsx)(`span`,{className:`absolute top-1/2 left-0 w-3.5 border-b border-border`})]})]})}function C5r({row:e,isExpanded:t,onToggle:n}){let r=e.kind===`workflow`&&e.nestedIds.length>0,i=e.kind===`workflow`?e.workflow.name:e.stepId;return(0,W.jsx)(`div`,{className:`flex items-center pl-5`,children:r?(0,W.jsx)(`button`,{type:`button`,"aria-expanded":t,"aria-label":`${t?`Collapse`:`Expand`} nested workflows of ${i}`,className:H(Tw,`relative grid size-5 shrink-0 place-items-center before:absolute before:-inset-1.5 before:content-['']`),onClick:e=>{e.stopPropagation(),n()},children:(0,W.jsx)(RT,{direction:`right`,className:`size-4`})}):(0,W.jsx)(`span`,{className:`size-5 shrink-0`,"aria-hidden":!0})})}var w5r=e=>e.stopPropagation();function B9({sortKey:e,sort:t,onSortChange:n,children:r}){return n?(0,W.jsx)(Q.SortableTopCell,{sortKey:e,sort:t?.key===e?t.direction:void 0,onSortChange:t=>n(t,e),children:r}):(0,W.jsx)(Q.TopCell,{children:r})}function T5r({row:e,isExpanded:t,onToggle:n,runCount:r,rowProps:i}){let{paths:a,Link:o}=Ft(),s=(0,U.useRef)(null),{workflow:c,nestedIds:l}=e,u=TX(c.name,50),d=TX(c.description??``,200),f=Object.keys(c.steps??{}).length,p=r?.running??0,m=r?.suspended??0,h=l.length>0;return(0,W.jsxs)(Q.RowWrapper,{...i,onSelectRow:()=>s.current?.click(),children:[(0,W.jsx)(C5r,{row:e,isExpanded:t,onToggle:n}),(0,W.jsxs)(Q.RowLink,{ref:s,colStart:2,to:a.workflowLink(c.id),LinkComponent:o,tabIndex:-1,onClick:w5r,children:[(0,W.jsx)(Q.NameCell,{children:(0,W.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[e.depth>0?(0,W.jsx)(S5r,{guides:e.guides,isLastChild:e.isLastChild}):null,(0,W.jsx)(`span`,{className:`truncate`,children:u}),c.origin===`dynamic`?(0,W.jsx)(GT,{size:`xs`,variant:`blue`,title:`Registered via the dynamic-workflows API`,children:`Dynamic`}):null,h?(0,W.jsxs)(Z,{as:`span`,variant:`body-sm`,tone:`muted`,title:`Nested workflows: ${l.join(`, `)}`,className:`inline-flex shrink-0 items-center gap-1`,children:[(0,W.jsx)($C,{"aria-hidden":!0,className:`size-3.5`}),l.length]}):null]})}),(0,W.jsx)(Q.DescriptionCell,{children:d}),(0,W.jsx)(Q.TextCell,{className:`text-center`,children:p>0?(0,W.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 text-info-indicator`,"aria-label":`${p} run${p===1?``:`s`} in progress`,children:[(0,W.jsx)(`span`,{"aria-hidden":!0,className:`size-2 rounded-full bg-info-indicator motion-safe:animate-pulse`}),p]}):``}),(0,W.jsx)(Q.TextCell,{className:`text-center`,children:m>0?(0,W.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 text-warning-foreground`,"aria-label":`${m} run${m===1?``:`s`} awaiting input`,children:[(0,W.jsx)(OC,{"aria-hidden":!0,className:`size-3.5`}),m]}):``}),(0,W.jsx)(Q.TextCell,{className:`text-center`,children:f||``})]})]})}function E5r({workflows:e,isLoading:t,search:n=``,sort:r,onSortChange:i,requestContext:a}){let[o,s]=(0,U.useState)(new Set),c=fOt({requestContext:a}),l=(0,U.useMemo)(()=>Object.entries(e).map(([e,t])=>({...t,id:e})),[e]),u=(0,U.useMemo)(()=>{let e=n.toLowerCase();return l.filter(t=>t.name?.toLowerCase().includes(e)||t.description?.toLowerCase().includes(e))},[l,n]),d=(0,U.useMemo)(()=>_5r(u,r,c),[u,r,c]),f=(0,U.useMemo)(()=>b5r(d,e,o),[d,e,o]),p=(0,U.useMemo)(()=>{let e=new Map;for(let t of f)t.kind===`workflow`&&e.set(t.pathKey,e.size);return e},[f]),{containerRef:m,getRowProps:h}=RQ({count:p.size,global:!0}),g=e=>{s(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})};return t?(0,W.jsx)(zK,{columns:x5r,fit:`container`}):(0,W.jsxs)(Q,{columns:x5r,fit:`container`,scrollRef:m,children:[(0,W.jsxs)(Q.Top,{children:[(0,W.jsx)(Q.TopCell,{children:(0,W.jsx)(`span`,{className:`sr-only`,children:`Expand`})}),(0,W.jsx)(B9,{sortKey:`name`,sort:r,onSortChange:i,children:`Name`}),(0,W.jsx)(Q.TopCell,{children:`Description`}),(0,W.jsx)(B9,{sortKey:`running`,sort:r,onSortChange:i,children:`Running`}),(0,W.jsx)(B9,{sortKey:`suspended`,sort:r,onSortChange:i,children:`Pending input`}),(0,W.jsx)(B9,{sortKey:`steps`,sort:r,onSortChange:i,children:`Number of steps`})]}),f.length===0&&n?(0,W.jsx)(Q.NoMatch,{message:`No Workflows match your search`}):null,f.map(e=>{let t=o.has(e.pathKey),n=()=>g(e.pathKey);return e.kind===`unregistered`?(0,W.jsxs)(Q.RowStatic,{className:`gap-0 px-0`,children:[(0,W.jsx)(C5r,{row:e,isExpanded:t,onToggle:n}),(0,W.jsxs)(`div`,{className:`col-span-5 col-start-2 grid grid-cols-subgrid gap-4 px-3`,children:[(0,W.jsx)(Q.NameCell,{children:(0,W.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,W.jsx)(S5r,{guides:e.guides,isLastChild:e.isLastChild}),(0,W.jsx)(`span`,{className:`truncate`,children:TX(e.stepId,50)}),(0,W.jsxs)(iS,{children:[(0,W.jsx)(aS,{render:(0,W.jsx)(Z,{as:`span`,variant:`body-sm`,tone:`muted`}),role:`note`,tabIndex:0,className:H(`shrink-0 rounded-sm`,dS),children:`not registered`}),(0,W.jsx)(oS,{className:`max-w-72`,children:`Runs as a step of its parent workflow. Add it to the workflows of your Mastra instance to open, run, and inspect it on its own page.`})]})]})}),(0,W.jsx)(Q.DescriptionCell,{children:TX(e.description??``,200)}),(0,W.jsx)(Q.TextCell,{className:`text-center`,children:``}),(0,W.jsx)(Q.TextCell,{className:`text-center`,children:``}),(0,W.jsx)(Q.TextCell,{className:`text-center`,children:``})]})]},`workflow-${e.pathKey}`):(0,W.jsx)(T5r,{row:e,isExpanded:t,onToggle:n,runCount:c[e.workflow.id],rowProps:h(p.get(e.pathKey)??-1)},`workflow-${e.pathKey}`)})]})}var V9=[_R(`/workflows`)];function D5r(){let{data:e,isLoading:t,error:n}=_L(),[r,i]=(0,U.useState)(``),[a,o]=(0,U.useState)();return n&&iR(n)?(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:V9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Workflows`}),(0,W.jsx)(CK,{variant:`fill`})]}):n&&aR(n)?(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:V9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Workflows`}),(0,W.jsx)(SK,{variant:`fill`,resource:`workflows`})]}):n?(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:V9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Workflows`}),(0,W.jsx)(aw,{tone:`error`,variant:`fill`,titleSlot:`Failed to load workflows`,descriptionSlot:n.message})]}):Object.keys(e||{}).length===0&&!t?(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:V9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Workflows`}),(0,W.jsx)(g5r,{})]}):(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:V9}),actionRow:(0,W.jsxs)(VY,{children:[(0,W.jsx)(VY.Start,{children:(0,W.jsx)(`div`,{className:`max-w-120 flex-1`,children:(0,W.jsx)(WK,{onSearch:i,label:`Filter workflows`,placeholder:`Filter by name or description`})})}),(0,W.jsx)(VY.End,{children:(0,W.jsx)(Y,{render:(0,W.jsx)(ey,{to:`/workflows/schedules`}),variant:`primary`,icon:(0,W.jsx)(FS,{}),children:`Schedules`})})]}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Workflows`}),(0,W.jsx)(E5r,{workflows:e||{},isLoading:t,search:r,sort:a,onSortChange:(e,t)=>o({key:t,direction:e})})]})}var O5r={active:`bg-success-indicator`,paused:`bg-info-indicator`,completed:`bg-muted-foreground`},k5r={active:`text-success-indicator`,paused:`text-info-indicator`,completed:`text-muted-foreground`},A5r=({status:e})=>(0,W.jsxs)(`span`,{className:`inline-flex items-center gap-2 whitespace-nowrap`,children:[(0,W.jsx)(`span`,{className:`h-1.5 w-1.5 rounded-full ${O5r[e]}`,"aria-hidden":!0}),(0,W.jsx)(Z,{as:`span`,variant:`caption`,className:k5r[e],children:e})]});function j5r({status:e}){let{icon:t,color:n}=M5r(e);return(0,W.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 whitespace-nowrap ${n}`,children:[(0,W.jsx)(`span`,{className:`inline-flex shrink-0 items-center`,"aria-hidden":!0,children:t}),(0,W.jsx)(Z,{as:`span`,variant:`caption`,children:e})]})}function M5r(e){switch(e){case`success`:return{icon:(0,W.jsx)(LS,{size:14}),color:`text-success-indicator`};case`failed`:return{icon:(0,W.jsx)(tw,{size:14}),color:`text-destructive-foreground`};case`running`:return{icon:(0,W.jsx)(dt,{}),color:`text-muted-foreground`};case`suspended`:return{icon:(0,W.jsx)(WS,{size:14}),color:`text-info-indicator`};case`canceled`:return{icon:(0,W.jsx)(GS,{size:14}),color:`text-muted-foreground`};case`pending`:case`waiting`:return{icon:(0,W.jsx)(KS,{size:14}),color:`text-muted-foreground`};default:return{icon:null,color:`text-muted-foreground`}}}var N5r=`auto auto auto auto 1fr`,P5r=3e4,F5r=3e5;function I5r({triggers:e,isLoading:t,workflowId:n,hasNextPage:r,isFetchingNextPage:i,setEndOfListElement:a}){let{Link:o,paths:s}=Ft(),c=e=>!!(n&&e.runId&&e.outcome!==`failed`),l=e.filter(c).length,{containerRef:u,getRowProps:d}=RQ({count:l}),f=-1;return t?(0,W.jsx)(zK,{columns:N5r}):e.length===0?(0,W.jsx)(Z,{variant:`body`,tone:`muted`,className:`p-4`,children:`No trigger history yet.`}):(0,W.jsxs)(Q,{columns:N5r,className:`min-w-0`,scrollRef:u,children:[(0,W.jsxs)(Q.Top,{children:[(0,W.jsx)(Q.TopCell,{children:`Run`}),(0,W.jsx)(Q.TopCell,{children:`Status`}),(0,W.jsx)(Q.TopCell,{children:`Started`}),(0,W.jsx)(Q.TopCell,{children:`Duration`}),(0,W.jsx)(Q.TopCell,{children:` `})]}),e.map(e=>{let t=e.actualFireAt-e.scheduledFireAt,r=VT(t,{signed:!0}),i=e.outcome===`failed`,a=i?e.error:e.run?.error,l=Math.abs(t),u=!i&&l>P5r&&l<=F5r,p=`${e.scheduleId}-${e.runId}-${e.actualFireAt}`,m=c(e);m&&(f+=1);let h=(0,W.jsx)(Z,{as:`span`,variant:`caption`,font:`mono`,tone:m?`ink`:`muted`,className:`whitespace-nowrap`,children:e.runId}),g=(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Q.Cell,{children:h}),(0,W.jsx)(Q.Cell,{children:(0,W.jsxs)(`span`,{className:`inline-flex items-center gap-2`,children:[i?(0,W.jsxs)(Z,{as:`span`,variant:`caption`,className:`inline-flex items-center gap-1.5 whitespace-nowrap text-destructive-foreground`,children:[(0,W.jsx)(XC,{size:14}),`publish failed`]}):e.run?(0,W.jsx)(j5r,{status:e.run.status}):(0,W.jsx)(Z,{as:`span`,variant:`caption`,tone:`muted`,className:`inline-flex items-center gap-1.5 whitespace-nowrap`,children:`pending`}),a?(0,W.jsxs)(iS,{children:[(0,W.jsx)(aS,{asChild:!0,children:(0,W.jsx)(`span`,{className:`inline-flex text-destructive-foreground`,children:(0,W.jsx)(XC,{size:14})})}),(0,W.jsx)(oS,{children:a})]}):null]})}),(0,W.jsx)(Q.Cell,{children:(0,W.jsxs)(`span`,{className:`inline-flex items-center gap-2 whitespace-nowrap`,children:[e.actualFireAt?(0,W.jsx)(rE,{value:e.actualFireAt}):`—`,u?(0,W.jsxs)(iS,{children:[(0,W.jsx)(aS,{asChild:!0,children:(0,W.jsx)(`span`,{className:`inline-flex text-info-indicator`,children:(0,W.jsx)(XC,{size:14})})}),(0,W.jsxs)(oS,{children:[`Published `,r,` after the scheduled fire time`]})]}):null]})}),(0,W.jsx)(Q.Cell,{children:e.run?(0,W.jsx)(Z,{as:`span`,variant:`body-sm`,font:`mono`,children:VT(e.run.durationMs)||`—`}):(0,W.jsx)(`span`,{className:`text-muted-foreground`,children:`—`})}),(0,W.jsx)(Q.Cell,{children:` `})]});return m?(0,W.jsx)(Q.RowLink,{to:s.workflowRunLink(n,e.runId),LinkComponent:o,...d(f),children:g},p):(0,W.jsx)(Q.RowStatic,{children:g},p)}),(0,W.jsx)(Q.NextPageLoading,{isLoading:i,hasMore:r,setEndOfListElement:a})]})}var L5r={id:`workflow-schedules`,label:`Schedules`,icon:FS,to:`/workflows/schedules`};function H9({label:e,children:t}){return(0,W.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,W.jsx)(Z,{variant:`meta`,tone:`muted`,className:`uppercase`,children:e}),(0,W.jsx)(`div`,{children:(0,W.jsx)(Z,{as:`span`,variant:`body`,className:`block`,children:t})})]})}function R5r(){let{scheduleId:e}=Kv(),t=[_R(`/workflows`),L5r,{id:`schedule`,label:DNt(e),icon:FS}],{paths:n}=Ft(),{data:r,error:i}=GNt({scheduleId:e,queryOptions:{enabled:!!e}}),{data:a,isLoading:o,error:s,hasNextPage:c,isFetchingNextPage:l,setEndOfListElement:u}=qNt({scheduleId:e,queryOptions:{enabled:!!e}}),d=JNt({scheduleId:e});if(i&&iR(i))return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:t}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:e}),(0,W.jsx)(CK,{variant:`fill`})]});if(i&&aR(i))return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:t}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:e}),(0,W.jsx)(SK,{variant:`fill`,resource:`schedules`})]});if(i)return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:t}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:e}),(0,W.jsx)(aw,{tone:`error`,variant:`fill`,titleSlot:`Failed to load schedule`,descriptionSlot:i.message})]});let f=r?.workflowId,p=r?.agentId;return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:t}),actionRow:(0,W.jsx)(VY,{children:(0,W.jsxs)(VY.End,{children:[(0,W.jsx)(Y,{render:(0,W.jsx)(ey,{to:n.schedulesLink()}),variant:`ghost`,icon:(0,W.jsx)(OS,{}),children:`Back to schedules`}),f?(0,W.jsx)(Y,{icon:(0,W.jsx)(pL,{}),render:(0,W.jsx)(ey,{to:n.workflowLink(f)}),variant:`ghost`,children:`Open workflow`}):null,r?(0,W.jsx)(Y,{onClick:()=>{let e=r.status===`active`?`pause`:`resume`;d.mutate(e,{onSuccess:()=>fw.success(e===`pause`?`Schedule paused`:`Schedule resumed`),onError:e=>fw.error(e.message)})},disabled:d.isPending,"data-testid":`schedule-toggle-button`,children:r.status===`active`?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(OC,{}),`Pause`]}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(AC,{}),`Resume`]})}):null]})}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:e}),r?(0,W.jsxs)(`div`,{className:`grid h-full grid-cols-[minmax(0,20rem)_1fr] gap-4 overflow-hidden`,children:[(0,W.jsxs)(`div`,{className:`flex h-fit flex-col gap-4 rounded-md border border-border p-4`,children:[(0,W.jsx)(H9,{label:p?`Agent`:`Workflow`,children:f?(0,W.jsx)(ey,{to:n.workflowLink(f),className:`text-foreground hover:underline`,children:f}):p?(0,W.jsx)(ey,{to:n.agentLink(p),className:`text-foreground hover:underline`,children:p}):`—`}),(0,W.jsxs)(H9,{label:`Cron`,children:[(0,W.jsx)(Z,{as:`span`,variant:`body`,font:`mono`,children:r.cron}),r.timezone?(0,W.jsx)(Z,{as:`span`,variant:`caption`,tone:`muted`,className:`ml-2`,children:r.timezone}):null]}),(0,W.jsx)(H9,{label:`Status`,children:(0,W.jsx)(A5r,{status:r.status})}),(0,W.jsx)(H9,{label:`Next fire`,children:r.nextFireAt?(0,W.jsx)(rE,{value:r.nextFireAt}):`—`})]}),(0,W.jsxs)(`div`,{className:`overflow-y-auto`,"data-testid":`schedule-triggers-panel`,children:[(0,W.jsx)(Z,{variant:`body`,className:`mb-3`,children:`Trigger history`}),s?(0,W.jsx)(aw,{tone:`error`,titleSlot:`Failed to load trigger history`,descriptionSlot:s.message}):(0,W.jsx)(I5r,{triggers:a??[],isLoading:o,workflowId:f,hasNextPage:c,isFetchingNextPage:l,setEndOfListElement:u})]})]}):null]})}var z5r={target:e=>e.workflowId??e.agentId??``,status:e=>e.status,nextFireAt:e=>e.nextFireAt,lastFireAt:e=>e.lastFireAt},B5r=`minmax(0, 1.2fr) minmax(0, 1.4fr) minmax(0, 1fr) auto auto auto`;function V5r({schedules:e,isLoading:t,search:n=``,sort:r,onSortChange:i}){let{paths:a,Link:o}=Ft(),s=(0,U.useMemo)(()=>{let t=n.toLowerCase();return BQ(t?e.filter(e=>e.id.toLowerCase().includes(t)||(e.workflowId??e.agentId??``).toLowerCase().includes(t)):e,r,z5r)},[e,n,r]),{containerRef:c,getRowProps:l}=RQ({count:s.length,global:!0});if(t)return(0,W.jsx)(zK,{columns:B5r});let u=(e,t)=>i?(0,W.jsx)(Q.SortableTopCell,{sortKey:e,sort:r?.key===e?r.direction:void 0,onSortChange:i,children:t}):(0,W.jsx)(Q.TopCell,{children:t});return(0,W.jsxs)(Q,{columns:B5r,className:`min-w-0`,scrollRef:c,children:[(0,W.jsxs)(Q.Top,{children:[u(`target`,`Target`),(0,W.jsx)(Q.TopCell,{children:`Schedule ID`}),(0,W.jsx)(Q.TopCell,{children:`Cron`}),u(`status`,`Status`),u(`nextFireAt`,`Next fire`),u(`lastFireAt`,`Last run`)]}),s.length===0&&n?(0,W.jsx)(Q.NoMatch,{message:`No schedules match your search`}):null,s.length===0&&!n?(0,W.jsx)(Q.NoMatch,{message:`No schedules configured`}):null,s.map((e,t)=>(0,W.jsxs)(Q.RowLink,{to:a.scheduleLink(e.id),LinkComponent:o,...l(t),children:[(0,W.jsx)(Q.NameCell,{children:e.workflowId??e.agentId}),(0,W.jsx)(Q.Cell,{className:`min-w-0`,children:(0,W.jsx)(Z,{as:`span`,variant:`body-sm`,tone:`muted`,font:`mono`,className:`block truncate`,title:e.id,children:e.id})}),(0,W.jsx)(Q.Cell,{children:(0,W.jsxs)(`span`,{className:`inline-flex items-center gap-2 whitespace-nowrap`,children:[(0,W.jsx)(Z,{as:`span`,variant:`caption`,font:`mono`,children:e.cron}),e.timezone?(0,W.jsx)(Z,{as:`span`,variant:`meta`,tone:`muted`,children:e.timezone}):null]})}),(0,W.jsx)(Q.Cell,{children:(0,W.jsx)(A5r,{status:e.status})}),(0,W.jsx)(Q.Cell,{children:e.nextFireAt?(0,W.jsx)(rE,{value:e.nextFireAt}):`—`}),(0,W.jsx)(Q.Cell,{children:e.lastRun?(0,W.jsxs)(`span`,{className:`inline-flex items-center gap-2 whitespace-nowrap`,children:[(0,W.jsx)(j5r,{status:e.lastRun.status}),e.lastFireAt?(0,W.jsx)(Z,{as:`span`,variant:`caption`,tone:`muted`,children:(0,W.jsx)(rE,{value:e.lastFireAt})}):null]}):e.lastFireAt?(0,W.jsx)(rE,{value:e.lastFireAt}):(0,W.jsx)(`span`,{className:`text-muted-foreground`,children:`Never`})})]},e.id))]})}function H5r({workflowId:e}={}){let{data:t,isLoading:n,error:r}=bR(e?{workflowId:e}:{}),[i,a]=(0,U.useState)(``),[o,s]=(0,U.useState)();return r?(0,W.jsx)(aw,{tone:`error`,titleSlot:`Failed to load schedules`,descriptionSlot:r.message}):(0,W.jsxs)(`div`,{className:`grid h-full grid-rows-[auto_1fr] gap-4 overflow-hidden`,children:[(0,W.jsx)(`div`,{className:`max-w-120`,children:(0,W.jsx)(WK,{onSearch:a,label:`Filter schedules`,placeholder:`Filter by id or workflow`})}),(0,W.jsx)(`div`,{className:`overflow-y-auto`,children:(0,W.jsx)(V5r,{schedules:t??[],isLoading:n,search:i,sort:o,onSortChange:(e,t)=>s({key:t,direction:e})})})]})}var U5r=[_R(`/workflows`),L5r];function W5r(){let[e]=ty(),t=e.get(`workflowId`)??void 0,{error:n}=bR(t?{workflowId:t}:{});return n&&iR(n)?(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:U5r}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Schedules`}),(0,W.jsx)(CK,{variant:`fill`})]}):n&&aR(n)?(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:U5r}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Schedules`}),(0,W.jsx)(SK,{variant:`fill`,resource:`schedules`})]}):(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:U5r}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Schedules`}),(0,W.jsx)(`div`,{className:`h-full`,children:(0,W.jsx)(H5r,{workflowId:t})})]})}var G5r={"--belt-hue":`var(--warning-indicator)`};function K5r(e){let t=new Blob([JSON.stringify(e??null)]).size;return t<1024?`${t} B`:`${(t/1024).toFixed(1)} KB`}function q5r(e,t){if(e&&typeof e==`object`&&!Array.isArray(e)){let t=Object.keys(e),[n]=t;if(t.length===1&&n)return n}return t}function J5r({suspendedSteps:e,workflow:t,isStreaming:n,onResume:r}){return n||e.length===0?null:(0,W.jsxs)(`section`,{className:H(EOt,`pointer-events-auto relative isolate`),"data-testid":`workflow-suspended-steps`,"aria-label":`Step suspended`,children:[(0,W.jsxs)(`div`,{className:`max-h-[calc(100cqh-64px)] overflow-y-auto overscroll-contain rounded-[inherit]`,children:[(0,W.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b border-border bg-background px-5 py-4`,children:[(0,W.jsxs)(Z,{as:`h2`,variant:`column`,tone:`ink`,className:`flex items-center gap-2`,children:[(0,W.jsx)(cS,{children:(0,W.jsx)(WS,{})}),`Step suspended`]}),(0,W.jsx)(GT,{variant:`orange`,emphasis:`subtle`,children:`Needs input`})]}),e.map(e=>{let n=t.allSteps[e.stepId];if(!n||n.isWorkflow)return null;let i=n?.resumeSchema?_M(FM(n.resumeSchema)):fM(rM(),oM());return(0,W.jsx)(Y5r,{step:e,stepSchema:i,description:n.description,onResume:r},`${e.runId}-${e.stepId}`)})]}),(0,W.jsx)(jtt,{status:`ready`,label:`Needs input`,className:`before:hidden`,style:G5r})]})}function Y5r({step:e,stepSchema:t,description:n,onResume:r}){let[i,a]=(0,U.useState)(!1),[o,s]=(0,U.useState)(!1);return(0,W.jsxs)(`div`,{className:`space-y-5 p-5 [&+&]:border-t [&+&]:border-border`,children:[(0,W.jsxs)(`div`,{className:`space-y-2`,children:[(0,W.jsx)(Z,{as:`p`,variant:`subheading`,tone:`ink`,className:`break-words`,children:e.stepId}),n&&(0,W.jsx)(Z,{as:`p`,variant:`caption`,tone:`muted`,children:n})]}),e.suspendPayload!==void 0&&(0,W.jsxs)(`div`,{className:`space-y-2`,children:[(0,W.jsxs)(Z,{as:`p`,variant:`caption`,tone:`muted`,className:`flex items-center gap-2`,children:[(0,W.jsx)(cS,{children:(0,W.jsx)(_Ke,{})}),`The step is asking`]}),(0,W.jsxs)(FT,{open:i,onOpenChange:a,children:[(0,W.jsxs)(IT,{className:H(`bg-card hover:bg-card active:bg-card shadow-raised [--field:var(--field-on-surface)] [--field-disabled:var(--field-on-surface)] [--field-rim:var(--field-rim-on-surface)]`,`flex w-full items-center justify-between gap-2 rounded-lg px-3 py-2.5`),children:[(0,W.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,W.jsx)(cS,{children:(0,W.jsx)(RT,{direction:`right`,className:`text-muted-foreground`})}),(0,W.jsx)(Z,{as:`span`,variant:`body`,tone:`ink`,className:`truncate`,children:q5r(e.suspendPayload,e.stepId)})]}),(0,W.jsx)(Z,{as:`span`,variant:`caption`,tone:`muted`,className:`shrink-0`,children:K5r(e.suspendPayload)})]}),(0,W.jsx)(LT,{children:(0,W.jsx)(`div`,{"data-testid":`suspended-payload`,className:`pt-2`,children:(0,W.jsx)(yO,{value:JSON.stringify(e.suspendPayload,null,2),editable:!1,className:`w-full overflow-x-auto p-2`,showCopyButton:!1})})})]})]}),(0,W.jsxs)(`div`,{className:`space-y-3`,children:[(0,W.jsxs)(Z,{as:`p`,variant:`caption`,tone:`muted`,className:`flex items-center gap-2`,children:[(0,W.jsx)(cS,{children:(0,W.jsx)(vKe,{})}),`Your response`]}),(0,W.jsx)(`div`,{className:`-mx-5`,children:(0,W.jsx)(HDt,{schema:t,isSubmitLoading:o,submitButtonLabel:`Resume`,submitButtonVariant:`primary`,submitButtonIcon:(0,W.jsx)(AC,{}),submitButtonFullWidth:!0,collapsible:!1,hideHeading:!0,hideInputTypeLabel:!0,onSubmit:async t=>{s(!0);try{await r({stepId:e.stepId.split(`.`),runId:e.runId,resumeData:t})}catch(e){fw.error(e instanceof Error?e.message:`Error resuming workflow`)}finally{s(!1)}}})})]})]})}function X5r({hidden:e,requestContext:t,canResume:n}){let{result:r,workflow:i,runId:a,isStreamingWorkflow:o}=(0,U.useContext)(zT),s=Agt(r,a),c=Fgt(t),l=r?.status===`suspended`&&s.length>0&&!o;return!i||!l||!n?null:(0,W.jsx)(`div`,{hidden:e,"data-testid":`workflow-suspended-overlay`,className:`pointer-events-none absolute top-12 right-2 z-30 w-95 max-w-[calc(100%-16px)] animate-in duration-300 fade-in-0 slide-in-from-top-2 motion-reduce:animate-none`,children:(0,W.jsx)(J5r,{suspendedSteps:s,workflow:i,isStreaming:o,onResume:c})},a)}var Z5r={success:{label:`Completed`,icon:LS},failed:{label:`Failed`,icon:uGe},suspended:{label:`Needs input`,icon:OC},waiting:{label:`Waiting`,icon:JC},paused:{label:`Paused`,icon:OC},skipped:{label:`Skipped`,icon:XKe},running:{label:`Running`,icon:SC},canceled:{label:`Canceled`,icon:GS}},Q5r={label:`Status unavailable`,icon:cGe};function $5r({row:e,isSelected:t,isHovered:n,onSelectStep:r,onHoverStep:i,onOpenInput:a,onOpenOutput:o}){let s=Object.hasOwn(Z5r,e.status)?Z5r[e.status]:Q5r,c=s.icon,l=C0e(e.status),u=e.stepId.slice(0,e.stepId.lastIndexOf(`.`)),d=e.isNestedEntry?e.stepId.slice(e.stepId.lastIndexOf(`.`)+1):e.stepId;return(0,W.jsxs)(`div`,{"data-testid":`workflow-timeline-row`,"data-workflow-step-key":e.stepId,onMouseEnter:()=>!e.isNestedEntry&&i(e.stepId),onMouseLeave:()=>!e.isNestedEntry&&i(null),className:H(`grid grid-cols-[minmax(130px,1fr)_minmax(64px,1fr)_56px_64px] items-center gap-3 rounded-md px-2 py-1`,`@max-[540px]/workflow-timeline:grid-cols-[minmax(0,1fr)_48px_64px] @max-[540px]/workflow-timeline:gap-x-1.5 @max-[540px]/workflow-timeline:gap-y-1 @max-[540px]/workflow-timeline:py-2`,(t||n)&&`bg-fill-subtle`),children:[(0,W.jsxs)(`button`,{type:`button`,"aria-disabled":e.isNestedEntry,"aria-pressed":t,onClick:()=>{e.isNestedEntry||r(e.stepId)},title:e.stepId,className:H(`text-foreground`,`flex min-h-9 min-w-0 cursor-pointer items-center gap-2.5 text-left focus-visible:rounded-sm aria-disabled:cursor-default`,dS),children:[(0,W.jsx)(`span`,{"aria-label":s.label,className:H(`grid size-6 flex-none place-items-center rounded-md border border-border bg-background`,w0e[l]),children:(0,W.jsx)(c,{"aria-hidden":!0,className:H(`size-3.5`,e.status===`running`&&`motion-safe:animate-spin`)})}),(0,W.jsxs)(`span`,{className:`min-w-0`,children:[(0,W.jsx)(Z,{as:`span`,variant:`meta`,className:`block truncate`,children:d}),e.isNestedEntry&&(0,W.jsxs)(Z,{as:`span`,variant:`meta`,tone:`muted`,className:`flex min-w-0 items-center gap-1`,children:[(0,W.jsx)(yGe,{"aria-hidden":!0,className:`size-3 shrink-0`}),(0,W.jsx)(`span`,{className:`truncate`,children:u})]})]})]}),(0,W.jsx)(`div`,{className:`relative h-5 min-w-0 overflow-hidden rounded-sm bg-muted @max-[540px]/workflow-timeline:col-span-full @max-[540px]/workflow-timeline:row-start-2 @max-[540px]/workflow-timeline:ml-[34px]`,"aria-hidden":!0,children:e.timing&&(0,W.jsx)(`div`,{"data-testid":`workflow-timeline-bar`,"data-offset":e.timing.offsetPct,"data-width":e.timing.widthPct,className:H(`absolute top-0 h-full min-w-0.5 rounded-sm`,T0e[l]),style:{left:`${e.timing.offsetPct}%`,width:`${e.timing.widthPct}%`}})}),(0,W.jsx)(Z,{as:`span`,variant:`meta`,tone:`muted`,className:`text-right whitespace-nowrap`,title:e.timing&&e.spansSuspension?`Includes time spent suspended waiting for input`:void 0,children:e.timing?(0,W.jsx)(Z,{as:`span`,variant:`meta`,font:`mono`,children:VT(e.timing.durationMs)}):(0,W.jsx)(`span`,{"aria-label":`Timing unavailable`,children:`—`})}),(0,W.jsxs)(`div`,{className:`flex items-center`,children:[(0,W.jsx)(Y,{type:`button`,variant:`ghost`,size:`icon-sm`,tooltip:`View step input`,disabled:e.step.input===void 0,onClick:t=>a(e,t.currentTarget),children:(0,W.jsx)(ES,{})}),(0,W.jsx)(Y,{type:`button`,variant:`ghost`,size:`icon-sm`,tooltip:`View step output`,disabled:e.step.output===void 0,onClick:t=>o(e,t.currentTarget),children:(0,W.jsx)(AS,{})})]})]})}var e7r=e=>e.includes(`.`),t7r=e=>e===`input`||e.endsWith(`.input`),n7r=1;function r7r(e,t){let n=b0e(e),r=n?.isLive?Math.max(t,n.start):n?.end;return{span:n&&r!==void 0?{start:n.start,end:r}:void 0,isLive:n?.isLive??!1,spansSuspension:n?.spansSuspension??!1}}function i7r(e,t){let n=Object.entries(e).filter(([e])=>!t7r(e)).map(([e,n])=>({stepId:e,step:n,...r7r(n,t)})).sort((e,t)=>(e.span?.start??1/0)-(t.span?.start??1/0)||e.stepId.localeCompare(t.stepId)),r=n.flatMap(e=>e.span?[e.span]:[]),i=Math.min(...r.map(e=>e.start)),a=Math.max(i,...r.map(e=>e.end)),o=Math.max(a-i,1);return n.map(({stepId:e,step:t,span:n,isLive:r,spansSuspension:a})=>{let s;if(n){let e=n.end-n.start,t=Math.min((n.start-i)/o*100,99);s={durationMs:e,offsetPct:t,widthPct:Math.min(Math.max(e/o*100,n7r),100-t)}}return{stepId:e,step:t,status:YT(t)?`suspended`:t.status,timing:s,spansSuspension:a,isRunning:r,isNestedEntry:e7r(e)}})}function a7r(){let{steps:e}=U$(),{selectedStepId:t,hoverStepId:n,setSelectedStepId:r,setHoverStepId:i}=BT(),[a,o]=(0,U.useState)(()=>Date.now()),[s,c]=(0,U.useState)(!0),[l,u]=(0,U.useState)(!1),{showData:d}=yL(),f=(0,U.useRef)(null),p=i7r(e,a),m=p.some(e=>e.isRunning);return kJe(f,{enabled:m&&!s}),(0,U.useEffect)(()=>{if(!m||s)return;let e=setInterval(()=>o(Date.now()),100);return()=>clearInterval(e)},[m,s]),p.length===0?null:(0,W.jsx)(`div`,{"data-testid":`workflow-timeline`,className:`relative z-20 shrink-0 px-2 pb-2`,children:(0,W.jsxs)(FT,{open:!s,onOpenChange:e=>c(!e),className:H(ry,`@container/workflow-timeline pointer-events-auto overflow-hidden rounded-xl`),children:[(0,W.jsxs)(`div`,{className:`flex items-center`,children:[(0,W.jsxs)(IT,{className:`flex min-h-11 min-w-0 flex-1 items-center gap-2 px-3.5 py-2.5 text-caption text-foreground hover:bg-fill-subtle`,"aria-label":s?`Expand timeline`:`Collapse timeline`,children:[(0,W.jsx)(`span`,{children:(0,W.jsx)(QWe,{"aria-hidden":!0,className:`size-4 text-muted-foreground`})}),(0,W.jsx)(`span`,{children:`Timeline`}),(0,W.jsxs)(Z,{as:`span`,variant:`meta`,tone:`muted`,children:[p.length,` events`]}),(0,W.jsx)(`span`,{className:`ml-auto`,children:(0,W.jsx)(RT,{direction:`right`,className:`size-4`})})]}),!s&&(0,W.jsx)(Y,{variant:`ghost`,size:`icon-sm`,tooltip:l?`Restore timeline height`:`Enlarge timeline`,"aria-pressed":l,onClick:()=>u(!l),className:`mr-2 shrink-0`,children:l?(0,W.jsx)($We,{}):(0,W.jsx)(nGe,{})})]}),(0,W.jsx)(LT,{children:(0,W.jsx)(`div`,{ref:f,"data-testid":`workflow-timeline-list`,className:H(`overflow-auto overscroll-contain px-1.5 pb-1.5`,l?`max-h-[min(720px,calc(100dvh-112px))]`:`max-h-[min(320px,40dvh)]`),children:p.map(e=>(0,W.jsx)($5r,{row:e,isSelected:t===e.stepId,isHovered:n===e.stepId,onSelectStep:r,onHoverStep:i,onOpenInput:(e,t)=>d({type:`step-input`,stepId:e.stepId},t),onOpenOutput:(e,t)=>d({type:`step-output`,stepId:e.stepId},t)},e.stepId))})})]})})}var o7r=({workflowId:e,workflow:t,isLoading:n})=>{let[r]=AT(`workflow`,e),{canExecute:i,isLoading:a}=_w(),{stepDetail:o}=yL(),s=LE(),c=o?.type===`data`,l=(0,W.jsxs)(`div`,{className:`[container-type:size] relative h-full min-h-0`,children:[(0,W.jsx)(l2n,{workflowId:e,workflow:t,isLoading:n,requestContext:r}),(0,W.jsx)(X5r,{hidden:c,requestContext:r,canResume:!a&&i(`workflows`)}),c&&(0,W.jsx)(`div`,{className:`pointer-events-auto absolute top-12 right-2 z-30 flex max-h-[calc(100cqh-64px)] w-[440px] max-w-[calc(100%-16px)] flex-col`,children:(0,W.jsx)(G$,{requestContext:r})}),(0,W.jsx)(`div`,{className:`pointer-events-none absolute right-0 bottom-0 left-[var(--workflow-left-panel-width,0px)] z-20`,children:(0,W.jsx)(a7r,{})})]});return s&&o&&!c?(0,W.jsx)(`div`,{className:`h-full min-h-0 overflow-hidden`,children:(0,W.jsx)(G$,{requestContext:r})}):(0,W.jsxs)(`div`,{className:`relative h-full min-h-0`,children:[l,(0,W.jsxs)(k3,{className:`pointer-events-none absolute inset-0 z-30 min-h-0 w-full min-w-0 p-2`,children:[(0,W.jsx)(O3,{id:`workflow-graph`,className:`pointer-events-none min-w-0`}),o&&!c&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(A3,{className:`pointer-events-auto`}),(0,W.jsx)(O3,{id:`workflow-step-detail`,minSize:300,maxSize:`60%`,defaultSize:420,className:`min-w-0`,children:(0,W.jsx)(`div`,{className:`pointer-events-auto h-full min-h-0 overflow-hidden rounded-studio-panel border border-border bg-background`,children:(0,W.jsx)(G$,{requestContext:r})})})]})]})]})},s7r=()=>{let{workflowId:e}=Kv(),{data:t,isLoading:n,error:r}=vL({workflowId:e,requestContext:AT(`workflow`,e)[0],queryOptions:{enabled:!!e}});return r&&iR(r)?(0,W.jsx)(CK,{variant:`fill`}):r&&aR(r)?(0,W.jsx)(SK,{variant:`fill`,resource:`workflows`}):(0,W.jsx)(o7r,{workflowId:e,workflow:t??void 0,isLoading:n})};function c7r(){let{workflowId:e}=Kv(),{error:t}=bR(e?{workflowId:e}:{});if(!e)return null;let n;return n=t&&iR(t)?(0,W.jsx)(CK,{variant:`fill`}):t&&aR(t)?(0,W.jsx)(SK,{variant:`fill`,resource:`schedules`}):(0,W.jsx)(`div`,{className:`h-full`,children:(0,W.jsx)(H5r,{workflowId:e})}),(0,W.jsxs)(Bw,{children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Schedules`}),n]})}function l7r(){let{workflowId:e}=Kv();return e?(0,W.jsx)(WIr,{scopedEntityId:e,scopedEntityType:lp.WORKFLOW_RUN}):null}var u7r=/^---\r?\n([\s\S]*?)\r?\n---[ \t]*(?:\r?\n|$)/;function d7r(e){let t=u7r.exec(e);return t?{frontmatter:t[1]??``,body:e.slice(t[0].length)}:{frontmatter:null,body:e}}var f7r=(0,U.createContext)(null);function U9(){let e=(0,U.useContext)(f7r);if(!e)throw Error(`Workspace components must be rendered inside <Workspace.Root>`);return e}function p7r({content:e}){let{frontmatter:t,body:n}=d7r(e);return(0,W.jsxs)(W.Fragment,{children:[t!==null&&(0,W.jsx)(`div`,{"data-testid":`workspace-frontmatter`,className:`border-b border-border`,children:(0,W.jsx)(EX,{code:t,lang:`yaml`,overflow:`wrap`,className:`rounded-none border-0 bg-transparent [&_pre]:p-4`})}),(0,W.jsx)(`div`,{className:`p-4`,children:(0,W.jsx)(CZ,{children:n})})]})}var m7r=e=>e?.status;function h7r(e,t){return iR(e)?`Your session has expired. Sign in again to continue.`:aR(e)?`You don't have permission to access this.`:oR(e)?`This path no longer exists.`:m7r(e)===501?`This workspace does not support this operation.`:t}function W9({error:e,fallback:t,className:n}){return(0,W.jsx)(oN,{variant:`destructive`,className:n,children:(0,W.jsx)(oN.Message,{children:h7r(e,t)})})}function g7r(){let{activeFilePath:e}=U9();return e?(0,W.jsx)(Z,{as:`span`,variant:`body-sm`,font:`mono`,tone:`muted`,className:`truncate`,"data-testid":`workspace-file-path`,children:e}):null}function _7r({path:e,content:t,mimeType:n}){return WEn(e,n)?(0,W.jsx)(`div`,{className:`flex justify-center p-4`,children:(0,W.jsx)(`img`,{src:`data:${n||`image/png`};base64,${t}`,alt:e.split(`/`).pop(),className:`max-w-full object-contain`})}):GEn(e,n)?(0,W.jsx)(`div`,{className:`flex justify-center p-4`,children:(0,W.jsx)(`video`,{controls:!0,"aria-label":e.split(`/`).pop(),className:`max-w-full`,children:(0,W.jsx)(`source`,{src:`data:${qEn(e,n)};base64,${t}`,type:qEn(e,n)})})}):JEn(e)?(0,W.jsx)(p7r,{content:t}):(0,W.jsx)(EX,{code:t,lang:$8e(e),overflow:`scroll`,className:`rounded-none border-0 bg-transparent [&_pre]:p-4`})}function v7r({renderPreview:e}){let{workspaceId:t,activeFilePath:n}=U9(),{data:r,isLoading:i,error:a}=lDn({workspaceId:t,path:n,queryOptions:{enabled:!!n}});if(!n)return null;if(i)return(0,W.jsxs)(`div`,{"aria-busy":`true`,className:`flex flex-col gap-2 p-4`,children:[(0,W.jsx)(Vw,{className:`h-4 w-1/2`}),(0,W.jsx)(Vw,{className:`h-4 w-5/6`}),(0,W.jsx)(Vw,{className:`h-4 w-2/3`})]});if(!r)return(0,W.jsx)(W9,{error:a,fallback:`Could not load file.`,className:`m-4`});let o={path:n,content:r.content,mimeType:r.mimeType};return e?.(o)??(0,W.jsx)(_7r,{...o})}var y7r=(e,t)=>e===`.`?t:`${e}/${t}`,b7r=e=>e.split(`/`).slice(0,-1).map((e,t,n)=>n.slice(0,t+1).join(`/`)),x7r=e=>{let t=e.lastIndexOf(`/`);return t===-1?`.`:e.slice(0,t)};function S7r({labeled:e=!1}={}){let{workspaceId:t,onCreateDirectory:n,isReadOnly:r}=U9(),i=B_(),[a,o]=(0,U.useState)(!1),[s,c]=(0,U.useState)(``),[l,u]=(0,U.useState)(!1);if(!n||r(`.`))return null;let d=s.trim().replace(/^\.?\/+|\/+$/g,``),f=async()=>{if(d){u(!0);try{await n(d),await i.invalidateQueries({queryKey:[`workspace`,t,`fs`,`list`,x7r(d)]}),o(!1),c(``)}catch{}finally{u(!1)}}};return(0,W.jsxs)(W.Fragment,{children:[e?(0,W.jsx)(Y,{variant:`ghost`,icon:(0,W.jsx)(uC,{}),onClick:()=>o(!0),children:`New folder`}):(0,W.jsx)(Y,{variant:`ghost`,size:`icon-sm`,tooltip:`New folder`,onClick:()=>o(!0),children:(0,W.jsx)(uC,{})}),(0,W.jsx)(HE,{open:a,onOpenChange:o,pending:l,children:(0,W.jsx)(UE,{size:`sm`,children:(0,W.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),f()},children:[(0,W.jsx)(WE,{children:(0,W.jsx)(qE,{children:`New folder`})}),(0,W.jsx)(KE,{children:(0,W.jsx)(_I,{autoFocus:!0,"aria-label":`Folder path`,placeholder:`docs/guides`,value:s,onChange:e=>c(e.target.value)})}),(0,W.jsxs)(GE,{children:[(0,W.jsx)(YE,{children:`Cancel`}),(0,W.jsx)(Y,{type:`submit`,variant:`primary`,disabled:!d||l,children:`Create`})]})]})})})]})}var C7r=e=>(0,W.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...e,children:(0,W.jsx)(`path`,{d:`M9 1.5H4C3.44772 1.5 3 1.94772 3 2.5V13.5C3 14.0523 3.44772 14.5 4 14.5H12C12.5523 14.5 13 14.0523 13 13.5V5.5M9 1.5L13 5.5M9 1.5V5.5H13`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`})}),w7r=e=>(0,W.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...e,children:(0,W.jsx)(`path`,{d:`M7.25 12.5C10.1495 12.5 12.5 10.1495 12.5 7.25C12.5 4.35051 10.1495 2 7.25 2C4.35051 2 2 4.35051 2 7.25C2 10.1495 4.35051 12.5 7.25 12.5ZM11 11L14 14`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`})});function T7r(){let{isSearching:e,setSearching:t,searchFiles:n,searchSkills:r}=U9();return!n&&!r?null:(0,W.jsx)(Y,{variant:`ghost`,size:`icon-sm`,tooltip:`Search files and skills`,"aria-pressed":e,onClick:()=>t(!e),children:(0,W.jsx)(w7r,{})})}function E7r(){let{isSearching:e}=U9();return e?(0,W.jsx)(k7r,{}):(0,W.jsx)(O7r,{})}var D7r=(e,t)=>`${e} ${t}${e===1?``:`s`}`;function O7r(){let{fileCount:e,skillCount:t}=U9();return(0,W.jsxs)(Z,{as:`span`,variant:`label`,tone:`muted`,className:`block min-w-0 truncate`,children:[(0,W.jsx)(`span`,{children:e===void 0?`Files`:D7r(e,`File`)}),t===void 0?null:(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Z,{as:`span`,variant:`label`,tone:`faint`,"aria-hidden":!0,className:`mx-1.5`,children:`·`}),(0,W.jsx)(`span`,{children:D7r(t,`Skill`)})]})]})}function k7r(){let{setSearching:e,setQuery:t}=U9(),[n,r]=(0,U.useState)(``),[,i]=(0,U.useTransition)();return(0,W.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,W.jsx)(_I,{type:`search`,size:`sm`,autoFocus:!0,"aria-label":`Search query`,placeholder:`Search files and skills`,value:n,onChange:e=>{let n=e.target.value;r(n),i(()=>t(n))},onKeyDown:t=>{t.key===`Escape`&&e(!1)}}),(0,W.jsx)(Y,{variant:`ghost`,size:`icon-sm`,tooltip:`Close search`,onClick:()=>e(!1),children:(0,W.jsx)(tw,{})})]})}function A7r(){let{workspaceId:e,query:t,activeFilePath:n,setActiveFilePath:r,searchFiles:i,searchSkills:a}=U9(),{data:o,isLoading:s,isError:c,error:l}=pDn({workspaceId:e,query:t,files:i,skills:a,queryOptions:{enabled:t.trim().length>0&&(i||a)}});return t.trim()?s?(0,W.jsxs)(`div`,{"aria-busy":`true`,className:`flex flex-col gap-2 p-2`,children:[(0,W.jsx)(Vw,{className:`h-4 w-3/4`}),(0,W.jsx)(Vw,{className:`h-4 w-2/3`})]}):c?(0,W.jsx)(W9,{error:l,fallback:`Search failed.`,className:`m-2`}):o?.length?(0,W.jsx)(`ul`,{"aria-label":`Search results`,className:`flex flex-col py-1`,children:o.map(e=>(0,W.jsx)(`li`,{children:(0,W.jsxs)(`button`,{type:`button`,title:e.path,onClick:()=>r(e.path),className:H(`text-foreground`,`flex w-full items-center gap-1.5 rounded-md px-2 py-1 text-left hover:bg-fill-subtle`,n===e.path&&`bg-fill`),children:[(0,W.jsx)(cS,{size:`sm`,children:e.kind===`skill`?(0,W.jsx)(jQ,{}):(0,W.jsx)(C7r,{})}),(0,W.jsx)(Z,{as:`span`,variant:`body-sm`,className:`truncate`,children:e.label})]})},e.path))}):(0,W.jsx)(aw,{titleSlot:`No results`}):(0,W.jsx)(aw,{titleSlot:`Search files and skills`,descriptionSlot:`Type to find matching content.`})}function j7r(e){return`${e.topSource}/${e.name}`}function M7r(e){let t=QEn(e.topSource,e.name);return t?`${t.owner}/${t.repo}/${e.name}`:null}function N7r({open:e,onOpenChange:t,workspaceId:n,onInstall:r,isInstalling:i,installedSkillIds:a=[],installedSkillNames:o=[],writableMounts:s,installedSkillPaths:c}){let[l,u]=(0,U.useState)(``),[d,f]=(0,U.useState)(null),[p,m]=(0,U.useState)(),h=s?.some(e=>e.path===p)?p:s?.[0]?.path,{data:g,isLoading:_}=XEn({workspaceId:n,queryOptions:{enabled:!!n}}),v=YEn({workspaceId:n}),y=(0,U.useMemo)(()=>d?.topSource?QEn(d.topSource,d.name):null,[d]),b=(0,U.useMemo)(()=>!y||!d?null:`https://skills.sh/${y.owner}/${y.repo}/${d.name}`,[y,d]),{data:x,isLoading:S}=ZEn({workspaceId:n,owner:y?.owner,repo:y?.repo,skillPath:d?.name,queryOptions:{enabled:!!n&&!!y&&!!d}}),C=ED(e=>{e.trim().length>=2&&v.mutate(e)},300),w=(0,U.useCallback)(e=>{u(e),C(e)},[C]),T=(0,U.useMemo)(()=>l.trim().length>=2?v.data?.skills??[]:g?.skills??[],[l,v.data,g]),E=v.isPending,D=l.trim().length>=2,O=(0,U.useMemo)(()=>{if(!d)return!1;let e=M7r(d);return!!(e&&a.includes(e)||o.includes(d.name))},[d,a,o]),k=(0,U.useCallback)(()=>{d&&y&&r({repository:`${y.owner}/${y.repo}`,skillName:d.name,mount:s&&s.length>1?h:void 0})},[d,y,r,s,h]),A=(0,U.useCallback)(e=>{e||(u(``),f(null),m(void 0)),t(e)},[t]);return(0,W.jsx)(HE,{open:e,onOpenChange:A,pending:i,children:(0,W.jsxs)(UE,{size:`xl`,className:`h-[80vh]`,children:[(0,W.jsxs)(WE,{children:[(0,W.jsx)(qE,{children:`Add Skill`}),(0,W.jsx)(JE,{children:`Search and install skills from the community registry`})]}),(0,W.jsxs)(KE,{layout:`fill`,children:[(0,W.jsx)(UK,{label:`Search skills`,placeholder:`Search skills...`,value:l,onValueChange:w}),(0,W.jsxs)(`div`,{className:`flex min-h-0 flex-1 gap-4`,children:[(0,W.jsxs)(`div`,{className:`flex min-h-0 w-1/2 flex-col`,children:[(0,W.jsx)(Z,{as:`p`,variant:`eyebrow`,tone:`muted`,className:`mb-2`,children:D?`Search Results`:`Popular Skills`}),(0,W.jsx)(Rw,{className:`flex-1 rounded-lg border border-border`,children:(0,W.jsx)(Lw,{className:!_&&!E&&T.length===0?`flex flex-col [&>div]:flex [&>div]:flex-1 [&>div]:flex-col`:void 0,children:_||E?(0,W.jsx)(`div`,{className:`flex items-center justify-center py-5`,children:(0,W.jsx)(SC,{className:`size-6 animate-spin text-muted-foreground`})}):T.length===0?(0,W.jsxs)(`div`,{className:`flex flex-1 flex-col items-center-safe justify-center-safe py-5 text-muted-foreground`,children:[(0,W.jsx)(GS,{className:`mb-2 size-8`}),(0,W.jsx)(Z,{children:D?`No skills found`:`No skills available`})]}):(0,W.jsx)(`div`,{className:`space-y-1 p-2`,children:T.map(e=>{let t=j7r(e),n=M7r(e),r=n&&a.includes(n)||o.includes(e.name),i=d?j7r(d):null;return(0,W.jsx)(`button`,{onClick:()=>f(e),className:H(`w-full rounded-md px-3 py-2 text-left`,`hover:bg-fill-subtle`,i===t&&`border border-border-strong bg-fill-hover`),children:(0,W.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,W.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(Z,{as:`span`,variant:`subheading`,tone:`ink`,className:`truncate`,children:e.name}),r&&(0,W.jsxs)(Z,{as:`span`,variant:`meta`,className:`inline-flex items-center gap-1 rounded bg-info-subtle px-1.5 py-0.5 text-info-subtle-foreground`,children:[(0,W.jsx)(LS,{className:`size-2.5`}),`Installed`]})]}),(0,W.jsx)(Z,{as:`p`,variant:`caption`,tone:`muted`,className:`truncate`,children:e.topSource})]}),(0,W.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1 text-muted-foreground`,children:[(0,W.jsx)(QS,{className:`size-3`}),(0,W.jsx)(Z,{as:`span`,variant:`caption`,children:e.installs.toLocaleString()})]})]})},t)})})})})]}),(0,W.jsxs)(`div`,{className:`flex min-h-0 w-1/2 flex-col`,children:[(0,W.jsx)(Z,{as:`p`,variant:`eyebrow`,tone:`muted`,className:`mb-2`,children:`Preview`}),(0,W.jsx)(`div`,{className:`flex flex-1 flex-col overflow-hidden rounded-lg border border-border`,children:d?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`div`,{className:`border-b border-border bg-card p-4`,children:(0,W.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,W.jsx)(`div`,{className:`rounded-lg bg-muted p-2`,children:(0,W.jsx)(jQ,{className:`size-5 text-muted-foreground`})}),(0,W.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,W.jsx)(Z,{as:`h3`,variant:`subheading`,tone:`ink`,className:`truncate`,children:d.name}),(0,W.jsxs)(`div`,{className:`mt-1 flex items-center gap-3 text-muted-foreground`,children:[(0,W.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,W.jsx)(AQ,{className:`size-3`}),(0,W.jsx)(Z,{as:`span`,variant:`caption`,className:`block`,children:d.topSource})]}),(0,W.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,W.jsx)(QS,{className:`size-3`}),(0,W.jsxs)(Z,{as:`span`,variant:`caption`,className:`block`,children:[d.installs.toLocaleString(),` installs`]})]})]})]}),y&&(0,W.jsx)(`a`,{href:`https://github.com/${y.owner}/${y.repo}`,target:`_blank`,rel:`noopener noreferrer`,className:H(`text-muted-foreground hover:text-foreground`,`transition-[color] duration-fast ease-out-custom motion-reduce:transition-none`),title:`View on GitHub`,children:(0,W.jsx)(tC,{className:`size-4`})})]})}),S?(0,W.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,W.jsx)(SC,{className:`size-6 animate-spin text-muted-foreground`})}):x?(0,W.jsx)(Rw,{className:`flex-1`,children:(0,W.jsx)(`div`,{className:`p-4`,children:(0,W.jsx)(CZ,{children:x})})}):(0,W.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center text-muted-foreground`,children:[(0,W.jsx)(DC,{className:`mb-2 size-8`}),(0,W.jsx)(Z,{children:`Preview unavailable`}),b&&(0,W.jsxs)(`a`,{href:b,target:`_blank`,rel:`noopener noreferrer`,className:`mt-2 flex items-center gap-1 text-info-indicator hover:underline`,children:[(0,W.jsxs)(Z,{as:`span`,variant:`caption`,className:`block`,children:[`View on skills.sh`,` `]}),(0,W.jsx)(tC,{className:`size-3`})]})]})]}):(0,W.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center text-muted-foreground`,children:[(0,W.jsx)(DC,{className:`mb-2 size-8`}),(0,W.jsx)(Z,{children:`Select a skill to preview`})]})})]})]}),d&&s&&s.length>1&&(0,W.jsxs)(VM,{orientation:`horizontal`,className:H(`bg-card hover:bg-card active:bg-card shadow-raised [--field:var(--field-on-surface)] [--field-disabled:var(--field-on-surface)] [--field-rim:var(--field-rim-on-surface)]`,`gap-3 rounded-lg p-3`),children:[(0,W.jsx)(dC,{className:`size-4 shrink-0 text-muted-foreground`}),(0,W.jsx)(UM,{className:`whitespace-nowrap`,children:`Install to`}),(0,W.jsxs)(TN,{value:h,onValueChange:m,children:[(0,W.jsx)(DN,{className:`flex-1`,children:(0,W.jsx)(EN,{})}),(0,W.jsx)(ON,{children:s.map(e=>{let t=e.displayName??e.name??e.provider??`unknown`;return(0,W.jsxs)(kN,{value:e.path,children:[t,` (`,e.path,`)`]},e.path)})})]})]})]}),d&&(0,W.jsxs)(GE,{children:[O&&s&&s.length>1&&(()=>{let e=c?.[d.name];if(!e)return null;let t=s.find(t=>e.startsWith(t.path+`/`)||e===t.path);return t?(0,W.jsxs)(Z,{as:`span`,variant:`caption`,tone:`muted`,className:`mr-auto`,children:[`Installed at `,t.path]}):null})(),(0,W.jsx)(YE,{children:`Cancel`}),(0,W.jsx)(VE,{onConfirm:k,disabled:!y||O,"data-testid":`install-skill-button`,children:i?`Installing...`:O?`Already installed`:`Install`})]})]})})}function P7r({labeled:e=!1}){let{workspaceId:t,addSkill:n}=U9(),[r,i]=(0,U.useState)(!1),[a,o]=(0,U.useState)(!1);if(!n)return null;let{onInstall:s,...c}=n,l=async e=>{o(!0);try{await s(e),i(!1)}catch{}finally{o(!1)}};return(0,W.jsxs)(W.Fragment,{children:[e?(0,W.jsxs)(Y,{variant:`ghost`,onClick:()=>i(!0),children:[(0,W.jsx)(mqe,{}),`Add skill`]}):(0,W.jsx)(Y,{variant:`ghost`,size:`icon-sm`,"aria-label":`Add skill`,tooltip:`Add skill`,onClick:()=>i(!0),children:(0,W.jsx)(mqe,{})}),(0,W.jsx)(N7r,{...c,open:r,onOpenChange:i,workspaceId:t,onInstall:e=>void l(e),isInstalling:a})]})}function F7r({workspaceId:e,activeFilePath:t,onDelete:n,onCreateDirectory:r,onActiveFileChange:i,readOnlyPaths:a,searchFiles:o=!0,searchSkills:s=!0,fileCount:c,skillCount:l,addSkill:u,children:d}){let[f,p]=(0,U.useState)(!1),[m,h]=(0,U.useState)(``),[g,_]=(0,U.useState)(()=>new Set(b7r(t??``))),[v,y]=(0,U.useState)(t);if(t!==v){y(t);let e=b7r(t??``).filter(e=>!g.has(e));e.length>0&&_(new Set([...g,...e]))}let b=a?.join(`
|
|
689
|
+
`).reduce((e,t)=>{if(!t||t.startsWith(`#`))return e;let[n,r]=t.split(`=`);return n&&(e[n]=r?.split(``)?.every(e=>e===`*`)?``:r?.replaceAll(`"`,``)),e},{}):{}}var m8r=({queryOptions:e}={})=>W_({queryKey:[`mastra-templates`],queryFn:u8r,...e}),h8r=({repoOrSlug:e,owner:t,queryOptions:n})=>W_({queryKey:[`template-repo`,e,t],queryFn:()=>f8r({repoOrSlug:e,owner:t}),...n}),g8r=({repo:e,owner:t,branch:n,queryOptions:r})=>W_({queryKey:[`template-repo-env-vars`,e,t,n],queryFn:()=>p8r({repo:e,owner:t,branch:n}),...r}),_8r=({queryOptions:e}={})=>{let t=J();return W_({queryKey:[`agent-builder-workflow`],queryFn:async()=>await t.getAgentBuilderAction(`merge-template`).details(),...e})},v8r=({queryOptions:e}={})=>{let t=J();return K_({mutationFn:async({runId:e})=>await t.getAgentBuilderAction(`merge-template`).createRun({runId:e}),...e})},y8r=({queryOptions:e}={})=>{let t=J();return K_({mutationFn:async({runId:e})=>await t.getAgentBuilderAction(`merge-template`).runById(e),...e})},b8r=e=>{if(typeof e==`string`)return e;if(e==null)return`Unknown error`;if(e instanceof Error)return typeof e.message==`string`&&e.message.length>0?e.message:`Unknown error`;if(typeof e==`object`)try{return JSON.stringify(e)}catch{return String(e)}return String(e)},x8r=(e,t,n)=>{let r={...t};if(!(r.payload?.workflowState?.steps&&Object.keys(r.payload.workflowState.steps).length>0)&&n?.allSteps&&(r.payload={...r.payload,workflowState:{...r.payload?.workflowState,steps:Object.keys(n.allSteps).reduce((e,t)=>(e[t]={id:t,description:n.allSteps[t].description,status:`pending`},e),{})}}),e.type===`start`||e.type===`workflow-start`){let t={};n?.allSteps&&Object.entries(n.allSteps).forEach(([e,n])=>{t[e]={id:n.id,description:n.description,status:`pending`}});let i=e.runId||e.payload?.runId;r={...r,runId:i,eventTimestamp:new Date().toISOString(),status:`running`,phase:`initializing`,payload:{workflowState:{status:`running`,steps:t},currentStep:null}}}if(e.type===`step-start`||e.type===`workflow-step-start`){let t=e.payload.id;r={...r,phase:`processing`,payload:{...r.payload,currentStep:{id:t,status:`running`,startTime:new Date,...e.payload},workflowState:{...r.payload.workflowState,steps:{...r.payload.workflowState.steps,[t]:{...r.payload.workflowState.steps[t],status:`running`,startTime:new Date,...e.payload}}}}}}if(e.type===`step-result`||e.type===`workflow-step-result`){let t=e.payload.id,n=e.payload.status,i=e.payload.error;if(r={...r,payload:{...r.payload,currentStep:{...r.payload.currentStep,status:e.payload.status,output:e.payload.output,error:e.payload.error,endTime:new Date},workflowState:{...r.payload.workflowState,steps:{...r.payload.workflowState.steps,[t]:{...r.payload.workflowState.steps[t],status:e.payload.status,output:e.payload.output,error:e.payload.error,endTime:new Date}}}}},n===`failed`&&i){let n=b8r(i);r={...r,status:`failed`,error:n,phase:`error`,failedStep:{id:t,error:n,description:e.payload.description||t},payload:{...r.payload,workflowState:{...r.payload.workflowState,status:`failed`}},errorTimestamp:new Date}}}if((e.type===`step-finish`||e.type===`workflow-step-finish`)&&(r={...r,payload:{...r.payload,currentStep:null}}),(e.type===`finish`||e.type===`workflow-finish`)&&(r=r.phase===`error`||r.status===`failed`?{...r,completedAt:new Date}:{...r,status:e.payload.status||`completed`,phase:`completed`,payload:{...r.payload,currentStep:null,workflowState:{...r.payload.workflowState,status:e.payload.status||`completed`}},completedAt:new Date}),e.type===`error`){let t=b8r(e.payload.error);r={...r,status:`failed`,error:t,phase:`error`,payload:{...r.payload,workflowState:{...r.payload.workflowState,status:`failed`}},errorTimestamp:new Date}}return{newState:r}},S8r=(e,t)=>{try{localStorage.setItem(`template-install-${e}`,JSON.stringify({state:t,timestamp:Date.now()}))}catch(e){console.warn(`Failed to save template state to localStorage:`,e)}},C8r=(e,t)=>{let[n,r]=(0,U.useState)({}),[i,a]=(0,U.useState)(!1);return{streamResult:n,isStreaming:i,processStream:async(n,i)=>{if(a(!0),r({}),!n)throw Error(`No stream returned`);let o=n.getReader(),s={runId:i||t,eventTimestamp:new Date().toISOString(),phase:`running`,payload:{workflowState:{steps:{}},currentStep:null}};try{for(;;){let{done:n,value:a}=await o.read();if(n)break;let{newState:c}=x8r(a,s,e);s=c,r(c),(a.runId||i||t)&&S8r(a.runId||i||t,c)}}catch(t){console.error(`💥 [processStream] Error processing template installation stream:`,t);let{newState:n}=x8r({type:`error`,payload:{error:t instanceof Error?t.message:`Unknown error`}},s,e);r(n)}finally{a(!1),o.releaseLock()}}}},w8r=({workflowInfo:e,queryOptions:t}={})=>{let n=J(),{streamResult:r,isStreaming:i,processStream:a}=C8r(e);return{streamInstall:K_({mutationFn:async({inputData:e,selectedModel:t,runId:r})=>{for(let i=1;i<=3;i++)try{let i=n.getAgentBuilderAction(`merge-template`),o=new nn;o.set(`selectedModel`,t);let s=await i.stream({inputData:e,requestContext:o},r);await a(s,r);return}catch(e){console.error(`💥 [streamInstall] Attempt ${i} failed:`,e);let t=e?.message?.includes(`Failed to fetch`)||e?.message?.includes(`NetworkError`)||e?.message?.includes(`network error`)||e?.message?.includes(`fetch`)||e?.code===`NETWORK_ERROR`||e?.name===`TypeError`;if(console.warn(`Stream attempt ${i}/3 failed:`,e),t){let e=r?`Network error during template installation (likely hot reload). Please refresh the page to resume from where you left off using runId: ${r}`:`Network error during template installation (likely hot reload). Please try again.`;throw console.error(`🔌 Stream network error:`,e),Error(e)}throw console.error(`❌ [streamInstall] Non-network error or max retries reached, throwing:`,e),e}},...t?.streamInstall}),streamResult:r,isStreaming:i}},T8r=({workflowInfo:e,queryOptions:t}={})=>{let n=J(),{streamResult:r,isStreaming:i,processStream:a}=C8r(e);return{observeInstall:K_({mutationFn:async({runId:e})=>{let t=2e3;for(let r=1;r<=3;r++)try{let t=await n.getAgentBuilderAction(`merge-template`).observeStream({runId:e});await a(t,e);return}catch(e){console.error(`💥 [observeInstall] Attempt ${r} failed:`,e);let n=e?.message?.includes(`Failed to fetch`)||e?.message?.includes(`NetworkError`)||e?.message?.includes(`network error`)||e?.message?.includes(`fetch`)||e?.code===`NETWORK_ERROR`||e?.name===`TypeError`;if(console.warn(`ObserveStream attempt ${r}/3 failed:`,e),n&&r<3){console.info(`🔄 ObserveStream network error detected (likely hot reload), retrying in ${t}ms... (attempt ${r+1}/3)`),await new Promise(e=>setTimeout(e,t));continue}throw console.error(`❌ [observeInstall] Non-network error or max retries reached, throwing:`,e),e}},...t?.observeInstall}),streamResult:r,isStreaming:i}};function E8r(e){return e.replace(/\/$/,``).split(`/`).pop()}function D8r({templates:e,linkComponent:t,className:n,isLoading:r}){let i=t||`a`;return r?(0,W.jsx)(`div`,{className:H(`grid gap-y-4`,n),children:Array.from({length:5}).map((e,t)=>(0,W.jsx)(`div`,{className:`h-16 animate-pulse rounded-lg bg-card`},t))}):(0,W.jsx)(`div`,{className:H(`grid gap-y-4`,n),children:e.map(e=>{let t=e?.agents||e?.tools||e?.networks||e?.workflows||e?.mcp;return(0,W.jsxs)(`article`,{className:H(ry,`state-layer grid w-full grid-cols-[1fr_auto] overflow-hidden rounded-lg`),children:[(0,W.jsxs)(i,{to:`/templates/${e.slug}`,className:H(`group grid`,{"grid-cols-[8rem_1fr] lg:grid-cols-[12rem_1fr]":e.imageURL}),children:[e.imageURL&&(0,W.jsx)(`div`,{className:`overflow-hidden`,children:(0,W.jsx)(`div`,{className:`thumb transition-scale h-full w-full bg-cover duration-150`,style:{backgroundImage:`url(${e.imageURL})`}})}),(0,W.jsxs)(`div`,{className:H(`grid w-full gap-0.5 px-4 py-3`,`[&_svg]:h-[1em] [&_svg]:w-[1em] [&_svg]:text-muted-foreground`),children:[(0,W.jsx)(Z,{as:`h2`,tone:`ink`,children:e.title}),(0,W.jsx)(Z,{className:H(Ew,lS),children:e.description}),(0,W.jsxs)(`div`,{className:`mt-3 hidden flex-wrap items-center gap-4 text-muted-foreground 2xl:flex`,children:[t&&(0,W.jsxs)(`ul`,{className:H(`text-muted-foreground`,`m-0 flex list-none gap-4 p-0`,`[&>li]:flex [&>li]:items-center [&>li]:gap-0.5`),children:[e?.agents&&e.agents.length>0&&(0,W.jsx)(`li`,{children:(0,W.jsxs)(Z,{as:`span`,variant:`body`,className:`block`,children:[(0,W.jsx)(dR,{}),` `,e.agents.length]})}),e?.tools&&e.tools.length>0&&(0,W.jsx)(`li`,{children:(0,W.jsxs)(Z,{as:`span`,variant:`body`,className:`block`,children:[(0,W.jsx)(hR,{}),` `,e.tools.length]})}),e?.networks&&e.networks.length>0&&(0,W.jsx)(`li`,{children:(0,W.jsxs)(Z,{as:`span`,variant:`body`,className:`block`,children:[(0,W.jsx)(yKe,{}),` `,e.networks.length]})}),e?.workflows&&e.workflows.length>0&&(0,W.jsx)(`li`,{children:(0,W.jsxs)(Z,{as:`span`,variant:`body`,className:`block`,children:[(0,W.jsx)($C,{}),` `,e.workflows.length]})}),e?.mcp&&e.mcp.length>0&&(0,W.jsx)(`li`,{children:(0,W.jsxs)(Z,{as:`span`,variant:`body`,className:`block`,children:[(0,W.jsx)(fR,{}),` `,e.mcp.length]})})]}),t&&e.supportedProviders&&(0,W.jsx)(`small`,{children:(0,W.jsx)(Z,{as:`span`,variant:`body`,children:`|`})}),(0,W.jsx)(`div`,{className:`flex items-center gap-4`,children:e.supportedProviders.map(e=>(0,W.jsx)(Z,{tone:`muted`,as:`span`,variant:`body`,children:e},e))})]})]})]}),(0,W.jsx)(`a`,{href:e.githubUrl,className:H(`group ml-auto hidden items-center gap-2 pr-4`,`lg:flex`),target:`_blank`,rel:`noopener noreferrer`,children:(0,W.jsx)(Z,{as:`span`,variant:`body`,children:(0,W.jsxs)(`span`,{className:H(`flex items-center gap-2 rounded bg-sidebar px-2 py-1`,DLe,Ew,lS),children:[(0,W.jsx)(AQ,{}),` `,E8r(e.githubUrl)]})})})]},e.slug)})})}function O8r({tagOptions:e,selectedTag:t,providerOptions:n,selectedProvider:r,onTagChange:i,onProviderChange:a,searchTerm:o,onSearchChange:s,onReset:c,className:l,isLoading:u}){return u?(0,W.jsxs)(`div`,{className:H(`flex h-[6.5rem] items-center gap-5`,`[&>div]:h-8 [&>div]:w-48 [&>div]:animate-pulse [&>div]:bg-card`,l),children:[(0,W.jsx)(`div`,{}),` `,(0,W.jsx)(`div`,{}),` `,(0,W.jsx)(`div`,{})]}):(0,W.jsxs)(`div`,{className:H(`sticky top-0 mx-auto flex flex-wrap gap-4 bg-background py-5`,l),children:[(0,W.jsx)(UK,{label:`Search templates`,placeholder:`Search Template`,value:o,onValueChange:s}),(0,W.jsxs)(TN,{value:t,onValueChange:i,children:[(0,W.jsx)(DN,{"aria-label":`Filter by tag`,size:`md`,children:(0,W.jsx)(EN,{placeholder:`Select an option`})}),(0,W.jsx)(ON,{children:e.map(e=>(0,W.jsx)(kN,{value:e.value,children:e.label},e.value))})]}),(0,W.jsxs)(TN,{value:r,onValueChange:a,children:[(0,W.jsx)(DN,{"aria-label":`Filter by provider`,size:`md`,children:(0,W.jsx)(EN,{placeholder:`Select an option`})}),(0,W.jsx)(ON,{children:n.map(e=>(0,W.jsx)(kN,{value:e.value,children:e.label},e.value))})]}),c&&(0,W.jsx)(Y,{onClick:c,icon:(0,W.jsx)(tw,{}),children:`Reset`})]})}var k8r=[{id:`templates`,label:`Templates`}];function A8r(){let{data:e,isLoading:t}=m8r(),{templates:n,tags:r,providers:i}=e??{templates:[],tags:[],providers:[]},[a,o]=(0,U.useState)(`all`),[s,c]=(0,U.useState)(`all`),[l,u]=(0,U.useState)(``),d=[{value:`all`,label:`Any tag`}];(r||[]).forEach(e=>{d.push({value:e,label:e})});let f=[{value:`all`,label:`Any provider`}];(i||[]).forEach(e=>{f.push({value:e,label:e})});let p=(e,t)=>{t===`tag`?o(e):t===`provider`&&c(e)},m=e=>{u(e)},h=()=>{o(`all`),c(`all`),u(``)},g=n.filter(e=>!(l&&!e.title.toLowerCase().includes(l)&&!e.description.toLowerCase().includes(l)||a!==`all`&&!e.tags.includes(a)||s!==`all`&&!e.supportedProviders.includes(s))),_=l||a!==`all`||s!==`all`;return(0,W.jsxs)(Bw,{variant:`fit`,breadcrumbs:(0,W.jsx)(IL,{crumbs:k8r}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Templates`}),(0,W.jsx)(zw,{children:(0,W.jsxs)(gYe,{children:[(0,W.jsx)(cS,{children:(0,W.jsx)(DC,{})}),`Templates`]})}),(0,W.jsxs)(`div`,{className:H(`z-10 h-full w-full overflow-y-auto px-5 pb-12`),children:[(0,W.jsx)(O8r,{selectedTag:a,onTagChange:e=>p(e,`tag`),tagOptions:d,selectedProvider:s,onProviderChange:e=>p(e,`provider`),providerOptions:f,searchTerm:l,onSearchChange:m,onReset:_?h:void 0,className:`max-w-[80rem]`,isLoading:t}),(0,W.jsx)(D8r,{templates:g,linkComponent:ey,className:`mx-auto max-w-[80rem]`,isLoading:t})]})]})}function R9({children:e,className:t}){return(0,W.jsx)(`div`,{className:H(`transition-height mt-12 rounded-lg border border-border px-4 py-5 lg:min-h-[25rem] lg:px-12`,t),children:e})}function j8r({errorMsg:e,validationErrors:t}){let n=typeof e==`string`?e:e==null?void 0:String(e),r=n?.includes(`Invalid schema for function`),i=n?.includes(`validation issue`)||t&&t.length>0,a=()=>i?`Template installation completed but some validation issues remain. The template may still be functional, but you should review and fix these issues.`:r?`There was an issue with the AI model configuration. This may be related to the selected model or AI SDK version compatibility.`:`An unexpected error occurred during template installation.`,{icon:o,title:s}=i?{icon:(0,W.jsx)(XC,{className:`text-warning-foreground`}),title:`Template Installed with Warnings`}:{icon:(0,W.jsx)(TGe,{}),title:`Template Installation Failed`};return(0,W.jsxs)(R9,{className:`mb-5 content-center space-y-4 text-muted-foreground`,children:[(0,W.jsxs)(`div`,{className:`grid content-center items-center justify-items-center gap-4 [&>svg]:h-8 [&>svg]:w-8`,children:[o,(0,W.jsxs)(`div`,{className:`space-y-2 text-center`,children:[(0,W.jsx)(Z,{variant:`subheading`,tone:`ink`,children:s}),(0,W.jsx)(Z,{tone:`muted`,children:a()})]})]}),t&&t.length>0&&(0,W.jsxs)(`details`,{children:[(0,W.jsx)(`summary`,{className:H(`text-muted-foreground hover:text-foreground`,`cursor-pointer text-center select-none`),children:(0,W.jsxs)(Z,{as:`span`,variant:`caption`,className:`block`,children:[`Show Validation Issues (`,t.length,`)`]})}),(0,W.jsx)(`div`,{className:`mt-4 max-h-60 space-y-2 overflow-auto rounded bg-muted p-3 text-left`,children:t.map((e,t)=>(0,W.jsxs)(`div`,{className:`border-l-2 border-destructive-indicator pl-2`,children:[(0,W.jsx)(Z,{as:`p`,variant:`column`,className:`text-destructive-foreground`,children:e.type===`typescript`?`🔴 TypeScript Error`:`⚠️ Lint Error`}),(0,W.jsx)(OD,{className:`mt-1 text-caption wrap-break-word whitespace-pre-wrap text-muted-foreground`,code:e.message})]},t))})]}),n&&!i&&(0,W.jsxs)(`details`,{children:[(0,W.jsx)(`summary`,{className:H(`text-muted-foreground hover:text-foreground`,`cursor-pointer text-center select-none`),children:(0,W.jsx)(Z,{as:`span`,variant:`caption`,className:`block`,children:`Show Details`})}),(0,W.jsx)(`div`,{className:`mt-4 max-h-60 overflow-auto rounded bg-muted p-3 text-left`,children:(0,W.jsx)(OD,{className:`text-caption wrap-break-word whitespace-pre-wrap`,code:n})})]})]})}var M8r=(0,U.createContext)(null);function N8r(){return(0,U.useContext)(M8r)||{registerResetFn:()=>{},triggerReset:()=>{}}}var P8r=({defaultProvider:e,defaultModel:t,updateModel:n,resetModel:r})=>{let[i]=(0,U.useState)(e),[a]=(0,U.useState)(t),[o,s]=(0,U.useState)(t),[c,l]=(0,U.useState)(e||``),[u,d]=(0,U.useState)(!1),[f,p]=(0,U.useState)(!1),[m,h]=(0,U.useState)(!1),{data:g,isLoading:_}=XY(),v=hw(),{models:y}=eX(),b=(0,U.useMemo)(()=>g?.providers||[],[g]);(0,U.useEffect)(()=>{s(t),l(e||``)},[t,e]);let x=qY(c),S=ZY(b,x)?.id||x,C=async r=>{if(s(r),r&&S){d(!0);try{let e=await n({provider:S,modelId:r});console.info(`Model updated:`,e)}catch(n){s(t),l(e||``),console.error(`Failed to update model:`,n)}finally{d(!1)}}},w=e=>{let t=qY(e);l(t),t!==x&&(s(``),h(!0))},{registerResetFn:T}=N8r();if((0,U.useEffect)(()=>(T(()=>{if(!(f||m)&&x&&x!==i&&(!o||o===``)){l(qY(i)),s(a);let e=ZY(b,i)?.id||i;e&&a&&n({provider:e,modelId:a}).catch(e=>{console.error(`Failed to reset model:`,e)})}}),()=>{T(null)}),[T,x,o,i,a,n,f,m,b]),_)return(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(dt,{}),(0,W.jsx)(Z,{as:`span`,tone:`muted`,children:`Loading providers...`})]});let E=async()=>{if(!r)console.warn(`Reset model function not provided`);else try{d(!0),await r()}catch(e){console.error(`Failed to reset model:`,e)}finally{d(!1)}},D=ZY(b,x);if(v.active&&v.pickerVisible===!1){let e=v.default&&v.default.provider&&v.default.modelId?`${v.default.provider}/${v.default.modelId}`:c&&o?`${c}/${o}`:`Locked by admin`;return(0,W.jsxs)(`div`,{className:H(ry,`flex items-center gap-2 rounded-md px-3 py-2`),"data-testid":`agent-metadata-model-locked`,children:[(0,W.jsx)(CC,{className:`h-4 w-4 shrink-0 text-muted-foreground`}),(0,W.jsx)(Z,{as:`span`,variant:`caption`,tone:`ink`,className:`truncate`,children:e}),(0,W.jsx)(Z,{as:`span`,variant:`meta`,tone:`muted`,className:`ml-auto shrink-0`,children:`Set by admin`})]})}let O=!!(x&&o)&&v.active&&v.allowed!==void 0&&!y.some(e=>qY(e.provider)===x&&e.model===o);return(0,W.jsxs)(`div`,{className:`@container`,children:[(0,W.jsxs)(`div`,{className:`flex w-full flex-col items-stretch gap-2 @xs:flex-row @xs:items-center`,children:[(0,W.jsx)(`div`,{className:`w-full @xs:w-2/5`,children:(0,W.jsx)(QY,{value:x,onValueChange:w,open:f,onOpenChange:p})}),(0,W.jsx)(`div`,{className:`w-full @xs:w-3/5`,children:(0,W.jsx)($Y,{llmId:x,value:o,onValueChange:C,open:m,onOpenChange:h})}),(0,W.jsx)(Y,{variant:`default`,size:`icon-md`,onClick:E,disabled:u,tooltip:`Reset to original model`,children:(0,W.jsx)(LC,{})})]}),O&&(0,W.jsx)(`div`,{className:`p-2 pt-2`,"data-testid":`agent-metadata-model-stale-warning`,children:(0,W.jsx)(oN,{variant:`warning`,title:`Model not allowed`,children:(0,W.jsxs)(oN.Message,{children:[(0,W.jsxs)(`code`,{className:`rounded bg-fill-hover px-1 py-0.5`,children:[c,`/`,o]}),` `,`is no longer allowed by the admin policy. Pick a different model to save changes.`]})})}),D&&!D.connected&&(0,W.jsx)(`div`,{className:`p-2 pt-2`,children:(0,W.jsx)(oN,{variant:`warning`,title:`Provider not connected`,children:(0,W.jsxs)(oN.Message,{children:[`Set the`,` `,(0,W.jsx)(`code`,{className:`rounded bg-fill-hover px-1 py-0.5`,children:Array.isArray(D.envVar)?D.envVar.join(`, `):D.envVar}),` `,`environment`,` `,Array.isArray(D.envVar)&&D.envVar.length>1?`variables`:`variable`,` to use this provider.`]})})})]})};function F8r({providerOptions:e,selectedProvider:t,onProviderChange:n,variables:r,errors:i,handleInstallTemplate:a,handleVariableChange:o,isLoadingEnvVars:s,isInstalling:c,defaultModelProvider:l,defaultModelId:u,onModelUpdate:d}){return(0,W.jsx)(R9,{children:(0,W.jsxs)(`div`,{className:`mx-auto my-4 grid max-w-[40rem] gap-5 p-4 lg:p-5`,children:[(0,W.jsxs)(Z,{as:`h2`,variant:`heading`,tone:`muted`,className:H(`flex items-center gap-2`,`[&_svg]:h-[1.2em] [&_svg]:opacity-70 [&>svg]:w-[1.2em]`),children:[`Install Template `,(0,W.jsx)(CKe,{})]}),(0,W.jsxs)(VM,{orientation:`horizontal`,children:[(0,W.jsx)(UM,{children:`Template AI Model Provider`}),(0,W.jsx)(a_t,{className:`flex-1`,children:(0,W.jsxs)(TN,{name:`template-provider`,value:t,onValueChange:n,children:[(0,W.jsx)(DN,{size:`md`,children:(0,W.jsx)(EN,{placeholder:`Select`})}),(0,W.jsx)(ON,{children:e.map(e=>(0,W.jsx)(kN,{value:e.value,children:e.label},e.value))})]})})]}),t&&Object.entries(r||{}).length>0&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Z,{as:`h3`,tone:`muted`,children:`Set required Environmental Variables`}),(0,W.jsx)(`div`,{className:`grid grid-cols-[1fr_1fr] items-start gap-4`,children:s?(0,W.jsxs)(`div`,{className:H(`text-muted-foreground`,`col-span-2 flex items-center justify-center gap-4`,`[&_svg]:h-[1.1em] [&_svg]:w-[1.1em] [&_svg]:opacity-50`,`animate-in duration-300 fade-in`),children:[(0,W.jsx)(dt,{}),(0,W.jsxs)(Z,{as:`span`,variant:`caption`,className:`block`,children:[` `,`Loading variables...`]})]}):Object.entries(r).map(([e,t])=>(0,W.jsxs)(U.Fragment,{children:[(0,W.jsxs)(VM,{className:`w-full`,children:[(0,W.jsx)(UM,{className:`sr-only`,children:`Key`}),(0,W.jsx)(_I,{name:`env-${e}`,value:e,disabled:!0,className:`w-full`})]}),(0,W.jsxs)(VM,{invalid:i.includes(e),className:`w-full`,children:[(0,W.jsx)(UM,{className:`sr-only`,children:`Value`}),(0,W.jsx)(_I,{name:e,value:t,onChange:o,autoComplete:`off`,className:`w-full`}),(0,W.jsx)(GM,{children:i.includes(e)?`Value is required.`:void 0})]})]},e))}),(0,W.jsxs)(`div`,{className:`relative mt-3.5 border-t border-border pt-12`,children:[(0,W.jsx)(`div`,{className:`absolute top-0 left-1/2 flex h-8 w-8 -translate-x-1/2 -translate-y-4 items-center justify-center rounded-full bg-background`,children:(0,W.jsx)(Z,{tone:`muted`,as:`span`,variant:`caption`,className:`block`,children:`And`})}),(0,W.jsx)(Z,{as:`h3`,tone:`muted`,children:`Set AI Model for Template Installation`}),(0,W.jsx)(Z,{tone:`muted`,className:`mt-2 mb-5`,children:`This model will be used by the workflow to process and install the template`}),(0,W.jsx)(P8r,{defaultProvider:l||``,defaultModel:u||``,updateModel:d||(()=>Promise.resolve({message:`Updated`})),closeEditor:()=>{},autoSave:!0,selectProviderPlaceholder:`Provider`})]})]}),t&&!s&&(0,W.jsx)(Y,{className:H(`state-layer mt-4 flex min-h-10 w-full items-center justify-center gap-2 rounded-lg bg-card text-foreground`,`[&_svg]:h-[1.1em] [&_svg]:text-foreground [&>svg]:w-[1.1em]`),onClick:a,disabled:!t||!l||!u||i.length>0||c,children:c?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(dt,{className:`h-4 w-4`}),` Installing...`]}):(0,W.jsxs)(W.Fragment,{children:[`Install `,(0,W.jsx)(kS,{})]})})]})})}function I8r({title:e,description:t,githubUrl:n,isLoading:r,infoData:i,templateSlug:a}){let o=a?`feat/install-template-${a}`:`feat/install-template-[slug]`;return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`div`,{className:`mt-5 grid items-center`,children:(0,W.jsxs)(`div`,{className:H(`flex items-center gap-3`,`[&>svg]:h-[1.2em] [&>svg]:w-[1.2em] [&>svg]:opacity-50`,{"[&>svg]:opacity-20":r}),children:[(0,W.jsx)(DC,{}),(0,W.jsx)(`h2`,{className:H({"flex min-w-[50%] rounded-lg bg-muted":r}),children:(0,W.jsx)(Z,{as:`span`,variant:`title`,className:`block`,children:r?(0,W.jsx)(W.Fragment,{children:`\xA0`}):e})})]})}),(0,W.jsxs)(`div`,{className:`grid gap-x-24 lg:grid-cols-[1fr_1fr]`,children:[(0,W.jsxs)(`div`,{className:`grid`,children:[(0,W.jsx)(Z,{tone:`muted`,className:H(`mt-2 mb-4`,{"rounded-lg bg-muted":r}),children:r?(0,W.jsx)(W.Fragment,{children:`\xA0`}):t}),!r&&a&&(0,W.jsxs)(`div`,{className:H(`mb-4 rounded-lg border border-border bg-background p-4`,`flex items-start gap-3`),children:[(0,W.jsx)(`div`,{className:`mt-0.5 shrink-0`,children:(0,W.jsx)(_C,{className:`h-[1.1em] w-[1.1em] text-info-indicator`})}),(0,W.jsxs)(`div`,{className:`flex-1 space-y-2`,children:[(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(pC,{className:`h-[1em] w-[1em] text-muted-foreground`}),(0,W.jsx)(Z,{as:`span`,variant:`subheading`,tone:`ink`,children:`A new Git branch will be created`})]}),(0,W.jsxs)(`div`,{className:`space-y-1`,children:[(0,W.jsxs)(Z,{tone:`muted`,as:`p`,variant:`caption`,children:[(0,W.jsx)(Z,{as:`span`,variant:`column`,children:`Branch name:`}),` `,(0,W.jsx)(RZ,{children:o})]}),(0,W.jsx)(Z,{tone:`muted`,as:`p`,variant:`caption`,children:`This ensures safe installation with easy rollback if needed. Your main branch remains unchanged.`})]})]})]}),n&&(0,W.jsxs)(`a`,{href:n,target:`_blank`,rel:`noopener noreferrer`,className:H(`text-muted-foreground hover:text-foreground`,`mt-auto flex items-center gap-2`),children:[(0,W.jsx)(AQ,{}),(0,W.jsx)(Z,{as:`span`,variant:`body`,className:`block`,children:n?.split(`/`)?.pop()})]})]}),i&&(0,W.jsx)(Lfr,{data:i,labelsAreHidden:!0,isLoading:r})]})]})}function L8r(e){switch(e){case`running`:return(0,W.jsx)(dt,{size:`sm`,"aria-hidden":!0});case`success`:return(0,W.jsx)(LS,{"aria-hidden":!0});case`failed`:return(0,W.jsx)(tw,{"aria-hidden":!0});default:return null}}function R8r(){return(0,W.jsx)(`svg`,{viewBox:`0 0 24 24`,className:`text-placeholder`,"aria-hidden":!0,children:(0,W.jsx)(`circle`,{cx:`12`,cy:`12`,r:`8.5`,pathLength:`48`,fill:`none`,stroke:`currentcolor`,strokeWidth:`2.8`,strokeLinecap:`round`,strokeDasharray:`3 3`})})}function z8r({status:e,variant:t}){return t===`plain`?(0,W.jsx)(`span`,{className:H(`flex size-4 items-center justify-center self-center [&>svg]:size-4`,uS.colors,{"[&>svg]:text-success-indicator":e===`success`,"[&>svg]:text-destructive-foreground":e===`failed`}),children:e===`pending`?(0,W.jsx)(R8r,{}):L8r(e)}):(0,W.jsx)(`span`,{className:H(`flex size-7 items-center justify-center self-center rounded-full motion-reduce:transition-none`,uS.colors,uS.transform,{"[&>svg]:text-success-indicator":e===`success`,"[&>svg]:text-destructive-foreground":e===`failed`,"border border-dashed border-placeholder":e===`pending`,"[&>svg]:size-4":e!==`running`,"bg-success-subtle":e===`success`,"bg-destructive-subtle":e===`failed`,"scale-110":e===`success`||e===`failed`}),children:L8r(e)})}function B8r({step:e,isActive:t,position:n,variant:r=`default`}){let i=t||e.status===`success`?`ink`:`muted`;return(0,W.jsxs)(`div`,{className:H(`grid grid-cols-[1fr_auto] gap-6 rounded-lg px-4 py-3 motion-reduce:transition-none`,uS.colors,{"border border-transparent":r==="default","border-dashed border-placeholder bg-card":t&&r==="default"}),children:[(0,W.jsxs)(`div`,{className:`grid min-w-0 grid-cols-[auto_1fr] gap-2`,children:[(0,W.jsxs)(Z,{as:`span`,tone:i,className:H(`flex min-w-6 justify-end`,uS.colors),children:[n,`.`]}),(0,W.jsxs)(`div`,{className:`min-w-0`,children:[(0,W.jsx)(Z,{as:`h4`,tone:i,className:uS.colors,children:e.title}),e.description&&(0,W.jsx)(Z,{tone:`faint`,className:H(`-mt-0.5`,{truncate:r===`plain`}),children:e.description})]})]}),(0,W.jsx)(z8r,{status:e.status,variant:r})]})}function V8r({currentStep:e,steps:t=[],className:n}){return(0,W.jsx)(`div`,{className:H(n),children:t.map((t,n)=>(0,W.jsx)(B8r,{step:t,isActive:e?.id===t.id,position:n+1},t.id))})}function H8r({steps:e}){let t=e.length,n=e.filter(e=>e.status===`success`).length;return(0,W.jsxs)(`div`,{className:`flex w-full flex-col content-center justify-center gap-4`,children:[(0,W.jsx)(`div`,{className:`grid w-full grid-cols-[0_repeat(9,1fr)]`,children:e.map((t,n)=>(0,W.jsx)(`div`,{className:H(`relative flex h-8 items-center justify-end`,uS.colors,{"bg-success-subtle":t.status===`success`&&e?.[n-1]?.status===`success`}),children:(0,W.jsx)(`div`,{className:H(`absolute right-0 z-10 flex size-8 translate-x-1/2 items-center justify-center self-center rounded-full bg-fill text-column text-muted-foreground motion-reduce:transition-none`,uS.colors,uS.transform,{"border border-dashed border-placeholder":t.status===`pending`,"scale-110 bg-success-subtle text-success-subtle-foreground":t.status===`success`,"scale-110 bg-destructive-subtle text-destructive-subtle-foreground":t.status===`failed`}),children:t.status===`running`?(0,W.jsx)(dt,{}):n+1})},t.id))}),(0,W.jsxs)(`div`,{className:H(`text-center text-caption text-muted-foreground`,uS.colors),children:[n,` of `,t,` steps completed`]})]})}function U8r({name:e,streamResult:t,runId:n,workflowInfo:r}){let i=t?.phase||`initializing`,a=t?.payload?.workflowState,o=t?.payload?.currentStep,s=t?.error,c=a?.steps||{},l=Object.keys(c).length>0,u=e=>e===`input`||e.endsWith(`.input`)||e.startsWith(`Mapping_`)&&/[0-9a-f]{8}/.test(e)||/[0-9a-f]{8,}/.test(e)?!1:!r?.allSteps||e in r.allSteps,d=Object.entries(c).filter(([e,t])=>u(e)),f=d.length,p=()=>{switch(i){case`initializing`:return`Preparing template installation...`;case`processing`:return`Installing ${e} template`;case`completed`:return`Template installation completed!`;case`error`:return`Template installation failed`;default:return`Installing template...`}},m=d.map(([e,t])=>({id:e,status:t?.status,description:t?.description,title:e.charAt(0).toUpperCase()+e.slice(1).replace(/-/g,` `),isActive:o?.id===e}));return(0,W.jsxs)(R9,{className:`mb-5 content-center space-y-6 text-muted-foreground`,children:[(0,W.jsxs)(`div`,{className:`text-center`,children:[(0,W.jsx)(Z,{as:`h3`,variant:`heading`,tone:`ink`,children:p()}),(t?.runId||n)&&(0,W.jsxs)(Z,{as:`p`,variant:`caption`,tone:`muted`,className:`mt-2`,children:[`Run ID: `,t?.runId??n]})]}),l&&f>0&&![`error`].includes(i)&&(0,W.jsx)(`div`,{className:`mx-auto w-full max-w-[30rem] px-4`,children:(0,W.jsx)(H8r,{steps:m})}),s&&i===`error`&&(0,W.jsxs)(`div`,{className:H(`text-foreground`,`flex items-center gap-3 rounded-lg bg-destructive-subtle p-4`,`[&>svg]:h-6 [&>svg]:w-6 [&>svg]:text-destructive-foreground [&>svg]:opacity-70`),children:[(0,W.jsx)(SKe,{}),(0,W.jsx)(Z,{as:`span`,variant:`body`,className:`block`,children:s||`Something went wrong`})]}),l&&(0,W.jsx)(V8r,{steps:m,currentStep:o,className:`pb-4`}),!l&&i===`initializing`&&(0,W.jsxs)(`div`,{className:H(`text-muted-foreground`,`grid justify-items-center gap-4 text-center`),children:[(0,W.jsx)(dt,{}),(0,W.jsx)(Z,{as:`p`,variant:`body`,children:`This may take some time...`})]})]})}function W8r({name:e,installedEntities:t}){return(0,W.jsxs)(R9,{className:H(`grid content-center items-center justify-items-center gap-4`,`[&>svg]:h-8 [&>svg]:w-8`),children:[(0,W.jsx)(CKe,{}),(0,W.jsx)(Z,{as:`h2`,variant:`heading`,children:`Done!`}),(0,W.jsxs)(Z,{tone:`muted`,className:`text-center`,children:[`The `,(0,W.jsx)(`b`,{className:`text-muted-foreground`,children:e}),` template has been successfully installed.`,t&&t.length>0&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`br`,{}),` Installed entities are listed below.`]})]}),t&&t.length>0&&(0,W.jsx)(Lfr,{data:t})]})}function G8r(){let{templateSlug:e}=Kv(),t=[{id:`templates`,label:`Templates`,to:`/templates`},{id:`template`,label:DNt(e)}],[n,r]=ty(),[i,a]=(0,U.useState)(``),[o,s]=(0,U.useState)(``),[c,l]=(0,U.useState)(``),[u,d]=(0,U.useState)({}),[f,p]=(0,U.useState)([]),[m,h]=(0,U.useState)(null),[g,_]=(0,U.useState)(!1),[v,y]=(0,U.useState)(``),[b,x]=(0,U.useState)(!1),[S,C]=(0,U.useState)(!1),[w,T]=(0,U.useState)([]),{data:E,isLoading:D}=h8r({repoOrSlug:e,owner:`mastra-ai`}),O=`1.80.0-alpha.2`.includes(`beta`)??!1?`beta`:`main`,{data:k,isLoading:A}=g8r({repo:E?.githubUrl?new URL(E.githubUrl).pathname.split(`/`)[2]:`template-${e}`,owner:`mastra-ai`,branch:O}),{data:j,isLoading:M}=_8r(),{mutateAsync:N,isPending:P}=v8r(),{mutateAsync:F}=y8r(),{streamInstall:I,streamResult:L,isStreaming:R}=w8r({workflowInfo:j}),{observeInstall:z,streamResult:B,isStreaming:V}=T8r({workflowInfo:j});(0,U.useEffect)(()=>{let e=n.get(`runId`);e&&!g&&!m&&!R&&!V&&(console.info(`🔄 Checking completed run after hot reload:`,{runId:e}),y(e),F({runId:e}).then(e=>{let t=e.snapshot;if(t?.status===`success`&&t?.result?.success)_(!0);else if(t?.result?.success===!1){if(t?.result?.validationResults&&!t?.result?.validationResults?.valid&&t?.result?.validationResults?.remainingErrors>0){let{remainingErrors:e,errors:n}=t.result.validationResults,r=`Template installation completed but ${e} validation issue${e>1?`s`:``} remain unresolved.`;h(r),T(n||[])}else{let e=t?.result?.message||t?.result?.error||`Template installation failed`;h(typeof e==`string`?e:String(e))}}}).catch(e=>{console.error(`❌ Failed to fetch run details:`,e),h(`Failed to retrieve installation status after reload`)}))},[n,g,m,R,V,F]),(0,U.useEffect)(()=>{let e=n.get(`runId`),t=n.get(`resume`),i=n.get(`provider`);if(e&&t===`true`&&i&&!R&&!V&&!b&&!S&&j){y(e),x(!0);try{F({runId:e}).then(t=>{if(t.snapshot?.status===`running`)return z.mutateAsync({runId:e})}).then(()=>{r(e=>{let t=new URLSearchParams(e);return t.delete(`resume`),t})}).catch(e=>{console.error(`❌ Failed to resume template installation:`,e),e.message?.includes(`404`)||e.message?.includes(`not found`)?h(`Template installation run not found. It may have expired or been completed.`):h(`Failed to resume template installation. Please try again.`)})}catch(e){console.error(`❌ Auto-resume failed with error:`,e),h(`Failed to resume template installation. Please refresh and try again.`)}}},[n,e,R,V,b,S,j,F,z,r]);let ee=[{value:`openai`,label:`OpenAI`},{value:`anthropic`,label:`Anthropic`},{value:`groq`,label:`Groq`},{value:`google`,label:`Google`}],te=[{key:`tools`,label:`Tools`,value:E?.tools?.length?E.tools.map(e=>e).join(`, `):`n/a`,icon:(0,W.jsx)(hR,{})},{key:`agents`,label:`Agents`,value:E?.agents?.length?E.agents.map(e=>e).join(`, `):`n/a`,icon:(0,W.jsx)(dR,{})},{key:`workflows`,label:`Workflows`,value:E?.workflows?.length?E.workflows.map(e=>e).join(`, `):`n/a`,icon:(0,W.jsx)($C,{})},{key:`providers`,label:`Providers`,value:E?.supportedProviders?.length?E.supportedProviders.join(`, `):`n/a`,icon:(0,W.jsx)(PS,{})},{key:`tags`,label:`Tags`,value:E?.tags?.length?E.tags.join(`, `):`n/a`,icon:(0,W.jsx)(GC,{})}],ne=[{...te[0]},{...te[1]},{...te[2]}].filter(e=>e.value!==`n/a`);return(0,U.useEffect)(()=>{k&&d(k)},[k]),(0,U.useEffect)(()=>{let e=L||B;e?.phase===`error`&&e?.error&&h(typeof e.error==`string`?e.error:String(e.error))},[L?.phase,L?.error,B?.phase,B?.error]),(0,W.jsxs)(Bw,{variant:`fit`,breadcrumbs:(0,W.jsx)(IL,{crumbs:t}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:e}),(0,W.jsx)(`div`,{className:H(`h-full w-full overflow-y-scroll lg:px-12`),children:(0,W.jsxs)(`div`,{className:`mx-auto grid w-full max-w-[80rem] gap-y-4 p-4`,children:[(0,W.jsx)(I8r,{isLoading:D,title:E?.title,description:E?.longDescription,imageURL:E?.imageURL,githubUrl:E?.githubUrl,infoData:te,templateSlug:e}),E&&(0,W.jsxs)(W.Fragment,{children:[(R||V)&&(0,W.jsx)(U8r,{name:E.title,streamResult:V?B:L,runId:v,workflowInfo:j}),g&&(0,W.jsx)(W8r,{name:E.title,installedEntities:ne,linkComponent:ey}),m&&(0,W.jsx)(j8r,{errorMsg:m,validationErrors:w.length>0?w:L?.validationResults?.errors||B?.validationResults?.errors}),!R&&!V&&!g&&!m&&(0,W.jsx)(F8r,{providerOptions:ee,selectedProvider:i,onProviderChange:e=>{a(e)},variables:u,setVariables:d,errors:f,setErrors:p,handleInstallTemplate:async()=>{let e=Object.entries(u).reduce((e,[t,n])=>(n===``&&e.push(t),e),[]);if(e.length>0)p(e);else if(E){h(null),_(!1),y(``),C(!0);try{let e={repo:E.githubUrl||`https://github.com/mastra-ai/template-${E.slug}`,ref:O,slug:E.slug,variables:u},{runId:t}=await N({});y(t),r(e=>{let n=new URLSearchParams(e);return n.set(`runId`,t),n.set(`resume`,`true`),n.set(`provider`,i||`openai`),n}),await I.mutateAsync({inputData:e,selectedModel:{provider:o,modelId:c},runId:t})}catch(e){C(!1),h(e?.message||`Template installation failed`),console.error(`Template installation failed`,e)}}},handleVariableChange:e=>{let{name:t,value:n}=e.target;n.trim()===``?p(e=>[...e,t]):p(e=>e.filter(e=>e!==t)),d(e=>({...e,[t]:n}))},isLoadingEnvVars:A||M,isInstalling:P,defaultModelProvider:o,defaultModelId:c,onModelUpdate:async e=>(s(e.provider),l(e.modelId),{message:`Model updated successfully`})})]})]})})]})}var K8r=[`status`,`traceCount`,`timeToFirstChunkMs`,`entityType`,`entityId`,`entityName`,`entityVersionId`,`threadId`,`resourceId`,`userId`,`organizationId`,`runId`,`sessionId`,`requestId`,`serviceName`,`experimentId`,`environment`,`executionSource`],q8r=new Set(K8r),J8r=new Set([`traceCount`,`timeToFirstChunkMs`]),Y8r=new Set([`threadId`,`status`,`traceCount`]),X8r=[`is`,`isNot`,`gt`,`gte`,`lt`,`lte`],Z8r={...Bwr,traceCount:`Trace count`,timeToFirstChunkMs:`Time to first chunk (ms)`,executionSource:`Execution source`,entityType:`Primitive type`,entityVersionId:`Primitive version ID`},Q8r={traceCount:`traceId`,timeToFirstChunkMs:`durationMs`,executionSource:`runId`,entityType:`rootEntityType`,entityVersionId:`entityId`},z9=e=>({id:e,label:Z8r[e]??e,icon:w6(Q8r[e]??e),color:T6(e)}),$8r=e=>{let t=e.replace(/_/g,` `);return t.charAt(0).toUpperCase()+t.slice(1)},e5r=Object.fromEntries(f6.map(e=>[e.entityType,e.label])),t5r=Object.values(lp).map(e=>({value:e,label:e5r[e]??$8r(e)})).sort((e,t)=>e.label.localeCompare(t.label)),n5r=lwr.filter(e=>e.value!==`running`).map(e=>({value:e.value,label:e.label}));function r5r({entityNames:e,environments:t}){let n=(e,t,n=S6)=>({...z9(e),operators:n,strict:!0,suggestions:t});return K8r.map(r=>{switch(r){case`status`:return n(r,n5r,C6);case`entityType`:return n(r,t5r);case`entityName`:return n(r,e.map(e=>({value:e})));case`environment`:return n(r,t.map(e=>({value:e})));case`traceCount`:return{...z9(r),type:`number`,operators:X8r};case`timeToFirstChunkMs`:return{...z9(r),type:`number`,operators:Nwr};case`threadId`:return{...z9(r),operators:C6};default:return{...z9(r),operators:S6}}}).sort((e,t)=>e.label.localeCompare(t.label))}function i5r(e){let{fieldId:t}=e;if(!q8r.has(t))return;let n=e.operatorId??`is`,r=n===`exists`||n===`notExists`,i=(Array.isArray(e.value)?e.value:[e.value]).filter(e=>typeof e==`string`&&!!e.trim()&&!x6(e,n));if(!i.length&&!r)return;let a=i;if(J8r.has(t)&&(a=i.map(Number).filter(e=>!Number.isNaN(e)),!a.length&&!r)||t===`traceCount`&&(r||a.length>1||!X8r.includes(n)))return;let o=d6(n,t,a);if(o)return(n===`isNot`||n===`notIn`)&&!Y8r.has(t)?{op:`or`,args:[o,{op:`notExists`,path:t}]}:o}function a5r(e){let t=e.nodes.map(e=>u6(e)?a5r(e):i5r(e)).filter(e=>!!e);if(t.length!==0)return t.length===1?t[0]:{op:e.logic,args:t}}function o5r(e,t){let n=[...e.map(i5r),...t.map(a5r)].filter(e=>!!e);return n.length?{op:`and`,args:n}:void 0}function s5r(e){return{traceId:e.lastTraceId,name:e.entityName??e.threadId,entityType:e.entityType,entityId:e.entityId,entityName:e.entityName,threadId:e.threadId,resourceId:e.resourceId,environment:e.environment,status:e.status,inputPreview:e.inputPreview,outputPreview:e.outputPreview??void 0,errorPreview:e.errorPreview??void 0,startedAt:e.startedAt,endedAt:e.endedAt,createdAt:e.startedAt}}var c5r=[`last-24h`,`last-3d`,`last-7d`,`last-14d`,`last-30d`,`custom`],l5r=[];function u5r(){let{data:e=l5r}=r6(),{data:t=l5r}=i6();return(0,U.useMemo)(()=>[l8,...r5r({entityNames:e,environments:t})],[e,t])}function d5r({tokens:e,groups:t,onFiltersChange:n}){let r=(0,U.useMemo)(()=>O6(e),[e]),i=(0,U.useMemo)(()=>{let e=k6([],t);return{...e,nodes:[u8,...r,...e.nodes]}},[r,t]),a=(0,U.useCallback)(e=>{let t=Qwr({...e,nodes:e.nodes.filter(e=>Z3(e)||e.fieldId!==`timeRange`)});n(t.tokens,t.groups)},[n]);return{filterBarValue:i,onFilterBarChange:a,onFilterByField:(0,U.useCallback)((e,t)=>{let n=r.filter(t=>t.fieldId!==e),o={id:`${e}:${t}`,fieldId:e,operatorId:`is`,value:t},s=i.nodes.filter(Z3);a({...i,nodes:[...n,o,...s]})},[r,i,a])}}var f5r=e=>e;function p5r({datePreset:e,dateFrom:t,dateTo:n,minDate:r,tokens:i,groups:a,onDatePresetChange:o,onDateChange:s,onDateRangeChange:c,onFiltersChange:l,disabled:u}){let d=u5r(),{filterBarValue:f,onFilterBarChange:p}=d5r({tokens:i,groups:a,onFiltersChange:l});return(0,W.jsxs)(f8,{fields:d,operators:jwr,value:f,onValueChange:p,createItemId:f5r,maxDepth:3,"aria-label":`Thread filters`,className:`min-w-64 flex-1`,children:[(0,W.jsx)(f8.Chips,{renderChip:i=>i.fieldId===`timeRange`?(0,W.jsx)(d8,{preset:e,onPresetChange:o,dateFrom:t,dateTo:n,minDate:r,onDateChange:s,onDateRangeChange:c,disabled:u,presets:c5r}):(0,W.jsx)(f8.Chip,{item:i})}),(0,W.jsx)(f8.Input,{placeholder:`Filter threads…`})]})}function m5r({selectedThreadId:e,onSelectedThreadChange:t,onOpenScore:n}){let r=E6r(),{timeRange:i,tokens:a,groups:o,sort:s}=r,c=G8().enabled,l=YFr().enabled,{threads:u,hasNextPage:d,isFetchingNextPage:f,setEndOfListElement:p,isLoading:m,isError:h,error:g}=ECr({query:(0,U.useMemo)(()=>{let e=o5r(a,o);return{timeRange:{traces:i},orderBy:[{field:`startedAt`,direction:s}],...e?{where:e}:{}}},[i,s,a,o]),queryOptions:T6r}),_=(0,U.useMemo)(()=>(u??[]).map(s5r),[u]),v=_.find(t=>t.threadId===e),y=e=>{e.threadId&&t(e.threadId)},b=!m&&!h&&_.length===0&&!r.contentFiltersApplied&&!e;return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Threads`}),(0,W.jsx)(IOr,{toolbar:(0,W.jsx)(VY,{children:(0,W.jsx)(VY.Start,{children:(0,W.jsx)(p5r,{datePreset:r.datePreset,dateFrom:r.dateFrom,dateTo:r.dateTo,tokens:a,groups:o,onDatePresetChange:r.onDatePresetChange,onDateChange:r.onDateChange,onDateRangeChange:r.onDateRangeChange,onFiltersChange:r.onFiltersChange,disabled:m})})}),error:h?(0,W.jsx)(Z6,{error:g,resource:`threads`,errorTitle:`Failed to load threads`}):void 0,empty:b?(0,W.jsx)(zOr,{resource:`threads`,datePreset:r.datePreset,dateFrom:r.dateFrom,dateTo:r.dateTo}):void 0,children:(0,W.jsx)(Pjr,{listId:`all-threads`,traces:_,isLoading:m,isFetchingNextPage:f,hasNextPage:d,setEndOfListElement:p,filtersApplied:r.filtersApplied,resource:`threads`,createdSort:s,onSortChange:r.setSort,featuredTraceId:v?.traceId,onTraceClick:y})}),(0,W.jsx)(nFr,{open:!!e,threadId:e??``,depth:1,closeLabel:`Close`,withQueryTrace:c,withFeedback:l,onOpenScore:n,onClose:()=>t(void 0)})]})}function h5r(){let{enabled:e,isLoading:t}=GFr(),n=Gv(),[r,i]=ty();return(0,W.jsx)(_6r,{enabled:e,isLoading:t,heading:`Threads`,title:`Query threads capability not activated`,description:`Your observability storage does not support thread row queries. Switch to a store that declares the thread-query-rows capability to list threads.`,children:(0,W.jsx)(m5r,{selectedThreadId:M6r(r),onSelectedThreadChange:e=>i(t=>N6r(t,e),{replace:!0}),onOpenScore:(e,t)=>n(zY(e,t))})})}var g5r=()=>(0,W.jsx)(aw,{titleSlot:`No Workflows yet`,descriptionSlot:(0,W.jsxs)(W.Fragment,{children:[`Mastra workflows are not configured yet. `,(0,W.jsx)(`br`,{}),`More information in the documentation.`]}),actionSlot:(0,W.jsx)(Y,{variant:`ghost`,render:(0,W.jsx)(`a`,{href:`https://mastra.ai/docs/workflows/overview`,target:`_blank`,rel:`noopener noreferrer`}),icon:(0,W.jsx)(tC,{}),children:`Workflows documentation`}),variant:`fill`});function _5r(e,t,n){return BQ(e,t,{name:e=>e.name,running:e=>n[e.id]?.running??0,suspended:e=>n[e.id]?.suspended??0,steps:e=>Object.keys(e.steps??{}).length})}function v5r(e){return Object.keys(e.steps??{}).filter(t=>e.allSteps?.[t]?.isWorkflow)}function y5r(e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n,n),r.name&&t.set(r.name,n);return t}function b5r(e,t,n){let r=y5r(t),i=[],a=(e,o,s,c,l,u)=>{let d=v5r(e).filter(e=>{let t=r.get(e);return t===void 0||!c.has(t)});if(i.push({kind:`workflow`,workflow:e,pathKey:o,depth:s,nestedIds:d,guides:l,isLastChild:u}),!n.has(o)||d.length===0)return;let f=new Set(c).add(e.id),p=s===0?[]:[...l,!u];for(let[n,c]of d.entries()){let l=n===d.length-1,u=r.get(c);if(u===void 0){i.push({kind:`unregistered`,stepId:c,description:e.allSteps?.[c]?.description,pathKey:`${o}/${c}`,depth:s+1,guides:p,isLastChild:l});continue}let m=t[u];m&&a({...m,id:u},`${o}/${u}`,s+1,f,p,l)}};for(let t of e)a(t,t.id,0,new Set([t.id]),[],!1);return i}var x5r=`auto 24rem minmax(0, 1fr) auto auto auto`;function S5r({guides:e,isLastChild:t}){return(0,W.jsxs)(`span`,{"aria-hidden":!0,className:`-my-6 flex shrink-0 self-stretch`,children:[e.map((e,t)=>(0,W.jsx)(`span`,{className:H(`w-6`,e&&`border-l border-border`)},t)),(0,W.jsxs)(`span`,{className:`relative w-6`,children:[(0,W.jsx)(`span`,{className:H(`absolute top-0 left-0 border-l border-border`,t?`h-1/2`:`h-full`)}),(0,W.jsx)(`span`,{className:`absolute top-1/2 left-0 w-3.5 border-b border-border`})]})]})}function C5r({row:e,isExpanded:t,onToggle:n}){let r=e.kind===`workflow`&&e.nestedIds.length>0,i=e.kind===`workflow`?e.workflow.name:e.stepId;return(0,W.jsx)(`div`,{className:`flex items-center pl-5`,children:r?(0,W.jsx)(`button`,{type:`button`,"aria-expanded":t,"aria-label":`${t?`Collapse`:`Expand`} nested workflows of ${i}`,className:H(Tw,`relative grid size-5 shrink-0 place-items-center before:absolute before:-inset-1.5 before:content-['']`),onClick:e=>{e.stopPropagation(),n()},children:(0,W.jsx)(RT,{direction:`right`,className:`size-4`})}):(0,W.jsx)(`span`,{className:`size-5 shrink-0`,"aria-hidden":!0})})}var w5r=e=>e.stopPropagation();function B9({sortKey:e,sort:t,onSortChange:n,children:r}){return n?(0,W.jsx)(Q.SortableTopCell,{sortKey:e,sort:t?.key===e?t.direction:void 0,onSortChange:t=>n(t,e),children:r}):(0,W.jsx)(Q.TopCell,{children:r})}function T5r({row:e,isExpanded:t,onToggle:n,runCount:r,rowProps:i}){let{paths:a,Link:o}=Ft(),s=(0,U.useRef)(null),{workflow:c,nestedIds:l}=e,u=TX(c.name,50),d=TX(c.description??``,200),f=Object.keys(c.steps??{}).length,p=r?.running??0,m=r?.suspended??0,h=l.length>0;return(0,W.jsxs)(Q.RowWrapper,{...i,onSelectRow:()=>s.current?.click(),children:[(0,W.jsx)(C5r,{row:e,isExpanded:t,onToggle:n}),(0,W.jsxs)(Q.RowLink,{ref:s,colStart:2,to:a.workflowLink(c.id),LinkComponent:o,tabIndex:-1,onClick:w5r,children:[(0,W.jsx)(Q.NameCell,{children:(0,W.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[e.depth>0?(0,W.jsx)(S5r,{guides:e.guides,isLastChild:e.isLastChild}):null,(0,W.jsx)(`span`,{className:`truncate`,children:u}),c.origin===`dynamic`?(0,W.jsx)(GT,{size:`xs`,variant:`blue`,title:`Registered via the dynamic-workflows API`,children:`Dynamic`}):null,h?(0,W.jsxs)(Z,{as:`span`,variant:`body-sm`,tone:`muted`,title:`Nested workflows: ${l.join(`, `)}`,className:`inline-flex shrink-0 items-center gap-1`,children:[(0,W.jsx)($C,{"aria-hidden":!0,className:`size-3.5`}),l.length]}):null]})}),(0,W.jsx)(Q.DescriptionCell,{children:d}),(0,W.jsx)(Q.TextCell,{className:`text-center`,children:p>0?(0,W.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 text-info-indicator`,"aria-label":`${p} run${p===1?``:`s`} in progress`,children:[(0,W.jsx)(`span`,{"aria-hidden":!0,className:`size-2 rounded-full bg-info-indicator motion-safe:animate-pulse`}),p]}):``}),(0,W.jsx)(Q.TextCell,{className:`text-center`,children:m>0?(0,W.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 text-warning-foreground`,"aria-label":`${m} run${m===1?``:`s`} awaiting input`,children:[(0,W.jsx)(OC,{"aria-hidden":!0,className:`size-3.5`}),m]}):``}),(0,W.jsx)(Q.TextCell,{className:`text-center`,children:f||``})]})]})}function E5r({workflows:e,isLoading:t,search:n=``,sort:r,onSortChange:i,requestContext:a}){let[o,s]=(0,U.useState)(new Set),c=fOt({requestContext:a}),l=(0,U.useMemo)(()=>Object.entries(e).map(([e,t])=>({...t,id:e})),[e]),u=(0,U.useMemo)(()=>{let e=n.toLowerCase();return l.filter(t=>t.name?.toLowerCase().includes(e)||t.description?.toLowerCase().includes(e))},[l,n]),d=(0,U.useMemo)(()=>_5r(u,r,c),[u,r,c]),f=(0,U.useMemo)(()=>b5r(d,e,o),[d,e,o]),p=(0,U.useMemo)(()=>{let e=new Map;for(let t of f)t.kind===`workflow`&&e.set(t.pathKey,e.size);return e},[f]),{containerRef:m,getRowProps:h}=RQ({count:p.size,global:!0}),g=e=>{s(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})};return t?(0,W.jsx)(zK,{columns:x5r,fit:`container`}):(0,W.jsxs)(Q,{columns:x5r,fit:`container`,scrollRef:m,children:[(0,W.jsxs)(Q.Top,{children:[(0,W.jsx)(Q.TopCell,{children:(0,W.jsx)(`span`,{className:`sr-only`,children:`Expand`})}),(0,W.jsx)(B9,{sortKey:`name`,sort:r,onSortChange:i,children:`Name`}),(0,W.jsx)(Q.TopCell,{children:`Description`}),(0,W.jsx)(B9,{sortKey:`running`,sort:r,onSortChange:i,children:`Running`}),(0,W.jsx)(B9,{sortKey:`suspended`,sort:r,onSortChange:i,children:`Pending input`}),(0,W.jsx)(B9,{sortKey:`steps`,sort:r,onSortChange:i,children:`Number of steps`})]}),f.length===0&&n?(0,W.jsx)(Q.NoMatch,{message:`No Workflows match your search`}):null,f.map(e=>{let t=o.has(e.pathKey),n=()=>g(e.pathKey);return e.kind===`unregistered`?(0,W.jsxs)(Q.RowStatic,{className:`gap-0 px-0`,children:[(0,W.jsx)(C5r,{row:e,isExpanded:t,onToggle:n}),(0,W.jsxs)(`div`,{className:`col-span-5 col-start-2 grid grid-cols-subgrid gap-4 px-3`,children:[(0,W.jsx)(Q.NameCell,{children:(0,W.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,W.jsx)(S5r,{guides:e.guides,isLastChild:e.isLastChild}),(0,W.jsx)(`span`,{className:`truncate`,children:TX(e.stepId,50)}),(0,W.jsxs)(iS,{children:[(0,W.jsx)(aS,{render:(0,W.jsx)(Z,{as:`span`,variant:`body-sm`,tone:`muted`}),role:`note`,tabIndex:0,className:H(`shrink-0 rounded-sm`,dS),children:`not registered`}),(0,W.jsx)(oS,{className:`max-w-72`,children:`Runs as a step of its parent workflow. Add it to the workflows of your Mastra instance to open, run, and inspect it on its own page.`})]})]})}),(0,W.jsx)(Q.DescriptionCell,{children:TX(e.description??``,200)}),(0,W.jsx)(Q.TextCell,{className:`text-center`,children:``}),(0,W.jsx)(Q.TextCell,{className:`text-center`,children:``}),(0,W.jsx)(Q.TextCell,{className:`text-center`,children:``})]})]},`workflow-${e.pathKey}`):(0,W.jsx)(T5r,{row:e,isExpanded:t,onToggle:n,runCount:c[e.workflow.id],rowProps:h(p.get(e.pathKey)??-1)},`workflow-${e.pathKey}`)})]})}var V9=[_R(`/workflows`)];function D5r(){let{data:e,isLoading:t,error:n}=_L(),[r,i]=(0,U.useState)(``),[a,o]=(0,U.useState)();return n&&iR(n)?(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:V9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Workflows`}),(0,W.jsx)(CK,{variant:`fill`})]}):n&&aR(n)?(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:V9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Workflows`}),(0,W.jsx)(SK,{variant:`fill`,resource:`workflows`})]}):n?(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:V9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Workflows`}),(0,W.jsx)(aw,{tone:`error`,variant:`fill`,titleSlot:`Failed to load workflows`,descriptionSlot:n.message})]}):Object.keys(e||{}).length===0&&!t?(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:V9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Workflows`}),(0,W.jsx)(g5r,{})]}):(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:V9}),actionRow:(0,W.jsxs)(VY,{children:[(0,W.jsx)(VY.Start,{children:(0,W.jsx)(`div`,{className:`max-w-120 flex-1`,children:(0,W.jsx)(WK,{onSearch:i,label:`Filter workflows`,placeholder:`Filter by name or description`})})}),(0,W.jsx)(VY.End,{children:(0,W.jsx)(Y,{render:(0,W.jsx)(ey,{to:`/workflows/schedules`}),variant:`primary`,icon:(0,W.jsx)(FS,{}),children:`Schedules`})})]}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Workflows`}),(0,W.jsx)(E5r,{workflows:e||{},isLoading:t,search:r,sort:a,onSortChange:(e,t)=>o({key:t,direction:e})})]})}var O5r={active:`bg-success-indicator`,paused:`bg-info-indicator`,completed:`bg-muted-foreground`},k5r={active:`text-success-indicator`,paused:`text-info-indicator`,completed:`text-muted-foreground`},A5r=({status:e})=>(0,W.jsxs)(`span`,{className:`inline-flex items-center gap-2 whitespace-nowrap`,children:[(0,W.jsx)(`span`,{className:`h-1.5 w-1.5 rounded-full ${O5r[e]}`,"aria-hidden":!0}),(0,W.jsx)(Z,{as:`span`,variant:`caption`,className:k5r[e],children:e})]});function j5r({status:e}){let{icon:t,color:n}=M5r(e);return(0,W.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 whitespace-nowrap ${n}`,children:[(0,W.jsx)(`span`,{className:`inline-flex shrink-0 items-center`,"aria-hidden":!0,children:t}),(0,W.jsx)(Z,{as:`span`,variant:`caption`,children:e})]})}function M5r(e){switch(e){case`success`:return{icon:(0,W.jsx)(LS,{size:14}),color:`text-success-indicator`};case`failed`:return{icon:(0,W.jsx)(tw,{size:14}),color:`text-destructive-foreground`};case`running`:return{icon:(0,W.jsx)(dt,{}),color:`text-muted-foreground`};case`suspended`:return{icon:(0,W.jsx)(WS,{size:14}),color:`text-info-indicator`};case`canceled`:return{icon:(0,W.jsx)(GS,{size:14}),color:`text-muted-foreground`};case`pending`:case`waiting`:return{icon:(0,W.jsx)(KS,{size:14}),color:`text-muted-foreground`};default:return{icon:null,color:`text-muted-foreground`}}}var N5r=`auto auto auto auto 1fr`,P5r=3e4,F5r=3e5;function I5r({triggers:e,isLoading:t,workflowId:n,hasNextPage:r,isFetchingNextPage:i,setEndOfListElement:a}){let{Link:o,paths:s}=Ft(),c=e=>!!(n&&e.runId&&e.outcome!==`failed`),l=e.filter(c).length,{containerRef:u,getRowProps:d}=RQ({count:l}),f=-1;return t?(0,W.jsx)(zK,{columns:N5r}):e.length===0?(0,W.jsx)(Z,{variant:`body`,tone:`muted`,className:`p-4`,children:`No trigger history yet.`}):(0,W.jsxs)(Q,{columns:N5r,className:`min-w-0`,scrollRef:u,children:[(0,W.jsxs)(Q.Top,{children:[(0,W.jsx)(Q.TopCell,{children:`Run`}),(0,W.jsx)(Q.TopCell,{children:`Status`}),(0,W.jsx)(Q.TopCell,{children:`Started`}),(0,W.jsx)(Q.TopCell,{children:`Duration`}),(0,W.jsx)(Q.TopCell,{children:` `})]}),e.map(e=>{let t=e.actualFireAt-e.scheduledFireAt,r=VT(t,{signed:!0}),i=e.outcome===`failed`,a=i?e.error:e.run?.error,l=Math.abs(t),u=!i&&l>P5r&&l<=F5r,p=`${e.scheduleId}-${e.runId}-${e.actualFireAt}`,m=c(e);m&&(f+=1);let h=(0,W.jsx)(Z,{as:`span`,variant:`caption`,font:`mono`,tone:m?`ink`:`muted`,className:`whitespace-nowrap`,children:e.runId}),g=(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Q.Cell,{children:h}),(0,W.jsx)(Q.Cell,{children:(0,W.jsxs)(`span`,{className:`inline-flex items-center gap-2`,children:[i?(0,W.jsxs)(Z,{as:`span`,variant:`caption`,className:`inline-flex items-center gap-1.5 whitespace-nowrap text-destructive-foreground`,children:[(0,W.jsx)(XC,{size:14}),`publish failed`]}):e.run?(0,W.jsx)(j5r,{status:e.run.status}):(0,W.jsx)(Z,{as:`span`,variant:`caption`,tone:`muted`,className:`inline-flex items-center gap-1.5 whitespace-nowrap`,children:`pending`}),a?(0,W.jsxs)(iS,{children:[(0,W.jsx)(aS,{asChild:!0,children:(0,W.jsx)(`span`,{className:`inline-flex text-destructive-foreground`,children:(0,W.jsx)(XC,{size:14})})}),(0,W.jsx)(oS,{children:a})]}):null]})}),(0,W.jsx)(Q.Cell,{children:(0,W.jsxs)(`span`,{className:`inline-flex items-center gap-2 whitespace-nowrap`,children:[e.actualFireAt?(0,W.jsx)(rE,{value:e.actualFireAt}):`—`,u?(0,W.jsxs)(iS,{children:[(0,W.jsx)(aS,{asChild:!0,children:(0,W.jsx)(`span`,{className:`inline-flex text-info-indicator`,children:(0,W.jsx)(XC,{size:14})})}),(0,W.jsxs)(oS,{children:[`Published `,r,` after the scheduled fire time`]})]}):null]})}),(0,W.jsx)(Q.Cell,{children:e.run?(0,W.jsx)(Z,{as:`span`,variant:`body-sm`,font:`mono`,children:VT(e.run.durationMs)||`—`}):(0,W.jsx)(`span`,{className:`text-muted-foreground`,children:`—`})}),(0,W.jsx)(Q.Cell,{children:` `})]});return m?(0,W.jsx)(Q.RowLink,{to:s.workflowRunLink(n,e.runId),LinkComponent:o,...d(f),children:g},p):(0,W.jsx)(Q.RowStatic,{children:g},p)}),(0,W.jsx)(Q.NextPageLoading,{isLoading:i,hasMore:r,setEndOfListElement:a})]})}var L5r={id:`workflow-schedules`,label:`Schedules`,icon:FS,to:`/workflows/schedules`};function H9({label:e,children:t}){return(0,W.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,W.jsx)(Z,{variant:`meta`,tone:`muted`,className:`uppercase`,children:e}),(0,W.jsx)(`div`,{children:(0,W.jsx)(Z,{as:`span`,variant:`body`,className:`block`,children:t})})]})}function R5r(){let{scheduleId:e}=Kv(),t=[_R(`/workflows`),L5r,{id:`schedule`,label:DNt(e),icon:FS}],{paths:n}=Ft(),{data:r,error:i}=GNt({scheduleId:e,queryOptions:{enabled:!!e}}),{data:a,isLoading:o,error:s,hasNextPage:c,isFetchingNextPage:l,setEndOfListElement:u}=qNt({scheduleId:e,queryOptions:{enabled:!!e}}),d=JNt({scheduleId:e});if(i&&iR(i))return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:t}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:e}),(0,W.jsx)(CK,{variant:`fill`})]});if(i&&aR(i))return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:t}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:e}),(0,W.jsx)(SK,{variant:`fill`,resource:`schedules`})]});if(i)return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:t}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:e}),(0,W.jsx)(aw,{tone:`error`,variant:`fill`,titleSlot:`Failed to load schedule`,descriptionSlot:i.message})]});let f=r?.workflowId,p=r?.agentId;return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:t}),actionRow:(0,W.jsx)(VY,{children:(0,W.jsxs)(VY.End,{children:[(0,W.jsx)(Y,{render:(0,W.jsx)(ey,{to:n.schedulesLink()}),variant:`ghost`,icon:(0,W.jsx)(OS,{}),children:`Back to schedules`}),f?(0,W.jsx)(Y,{icon:(0,W.jsx)(pL,{}),render:(0,W.jsx)(ey,{to:n.workflowLink(f)}),variant:`ghost`,children:`Open workflow`}):null,r?(0,W.jsx)(Y,{onClick:()=>{let e=r.status===`active`?`pause`:`resume`;d.mutate(e,{onSuccess:()=>fw.success(e===`pause`?`Schedule paused`:`Schedule resumed`),onError:e=>fw.error(e.message)})},disabled:d.isPending,"data-testid":`schedule-toggle-button`,children:r.status===`active`?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(OC,{}),`Pause`]}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(AC,{}),`Resume`]})}):null]})}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:e}),r?(0,W.jsxs)(`div`,{className:`grid h-full grid-cols-[minmax(0,20rem)_1fr] gap-4 overflow-hidden`,children:[(0,W.jsxs)(`div`,{className:`flex h-fit flex-col gap-4 rounded-md border border-border p-4`,children:[(0,W.jsx)(H9,{label:p?`Agent`:`Workflow`,children:f?(0,W.jsx)(ey,{to:n.workflowLink(f),className:`text-foreground hover:underline`,children:f}):p?(0,W.jsx)(ey,{to:n.agentLink(p),className:`text-foreground hover:underline`,children:p}):`—`}),(0,W.jsxs)(H9,{label:`Cron`,children:[(0,W.jsx)(Z,{as:`span`,variant:`body`,font:`mono`,children:r.cron}),r.timezone?(0,W.jsx)(Z,{as:`span`,variant:`caption`,tone:`muted`,className:`ml-2`,children:r.timezone}):null]}),(0,W.jsx)(H9,{label:`Status`,children:(0,W.jsx)(A5r,{status:r.status})}),(0,W.jsx)(H9,{label:`Next fire`,children:r.nextFireAt?(0,W.jsx)(rE,{value:r.nextFireAt}):`—`})]}),(0,W.jsxs)(`div`,{className:`overflow-y-auto`,"data-testid":`schedule-triggers-panel`,children:[(0,W.jsx)(Z,{variant:`body`,className:`mb-3`,children:`Trigger history`}),s?(0,W.jsx)(aw,{tone:`error`,titleSlot:`Failed to load trigger history`,descriptionSlot:s.message}):(0,W.jsx)(I5r,{triggers:a??[],isLoading:o,workflowId:f,hasNextPage:c,isFetchingNextPage:l,setEndOfListElement:u})]})]}):null]})}var z5r={target:e=>e.workflowId??e.agentId??``,status:e=>e.status,nextFireAt:e=>e.nextFireAt,lastFireAt:e=>e.lastFireAt},B5r=`minmax(0, 1.2fr) minmax(0, 1.4fr) minmax(0, 1fr) auto auto auto`;function V5r({schedules:e,isLoading:t,search:n=``,sort:r,onSortChange:i}){let{paths:a,Link:o}=Ft(),s=(0,U.useMemo)(()=>{let t=n.toLowerCase();return BQ(t?e.filter(e=>e.id.toLowerCase().includes(t)||(e.workflowId??e.agentId??``).toLowerCase().includes(t)):e,r,z5r)},[e,n,r]),{containerRef:c,getRowProps:l}=RQ({count:s.length,global:!0});if(t)return(0,W.jsx)(zK,{columns:B5r});let u=(e,t)=>i?(0,W.jsx)(Q.SortableTopCell,{sortKey:e,sort:r?.key===e?r.direction:void 0,onSortChange:i,children:t}):(0,W.jsx)(Q.TopCell,{children:t});return(0,W.jsxs)(Q,{columns:B5r,className:`min-w-0`,scrollRef:c,children:[(0,W.jsxs)(Q.Top,{children:[u(`target`,`Target`),(0,W.jsx)(Q.TopCell,{children:`Schedule ID`}),(0,W.jsx)(Q.TopCell,{children:`Cron`}),u(`status`,`Status`),u(`nextFireAt`,`Next fire`),u(`lastFireAt`,`Last run`)]}),s.length===0&&n?(0,W.jsx)(Q.NoMatch,{message:`No schedules match your search`}):null,s.length===0&&!n?(0,W.jsx)(Q.NoMatch,{message:`No schedules configured`}):null,s.map((e,t)=>(0,W.jsxs)(Q.RowLink,{to:a.scheduleLink(e.id),LinkComponent:o,...l(t),children:[(0,W.jsx)(Q.NameCell,{children:e.workflowId??e.agentId}),(0,W.jsx)(Q.Cell,{className:`min-w-0`,children:(0,W.jsx)(Z,{as:`span`,variant:`body-sm`,tone:`muted`,font:`mono`,className:`block truncate`,title:e.id,children:e.id})}),(0,W.jsx)(Q.Cell,{children:(0,W.jsxs)(`span`,{className:`inline-flex items-center gap-2 whitespace-nowrap`,children:[(0,W.jsx)(Z,{as:`span`,variant:`caption`,font:`mono`,children:e.cron}),e.timezone?(0,W.jsx)(Z,{as:`span`,variant:`meta`,tone:`muted`,children:e.timezone}):null]})}),(0,W.jsx)(Q.Cell,{children:(0,W.jsx)(A5r,{status:e.status})}),(0,W.jsx)(Q.Cell,{children:e.nextFireAt?(0,W.jsx)(rE,{value:e.nextFireAt}):`—`}),(0,W.jsx)(Q.Cell,{children:e.lastRun?(0,W.jsxs)(`span`,{className:`inline-flex items-center gap-2 whitespace-nowrap`,children:[(0,W.jsx)(j5r,{status:e.lastRun.status}),e.lastFireAt?(0,W.jsx)(Z,{as:`span`,variant:`caption`,tone:`muted`,children:(0,W.jsx)(rE,{value:e.lastFireAt})}):null]}):e.lastFireAt?(0,W.jsx)(rE,{value:e.lastFireAt}):(0,W.jsx)(`span`,{className:`text-muted-foreground`,children:`Never`})})]},e.id))]})}function H5r({workflowId:e}={}){let{data:t,isLoading:n,error:r}=bR(e?{workflowId:e}:{}),[i,a]=(0,U.useState)(``),[o,s]=(0,U.useState)();return r?(0,W.jsx)(aw,{tone:`error`,titleSlot:`Failed to load schedules`,descriptionSlot:r.message}):(0,W.jsxs)(`div`,{className:`grid h-full grid-rows-[auto_1fr] gap-4 overflow-hidden`,children:[(0,W.jsx)(`div`,{className:`max-w-120`,children:(0,W.jsx)(WK,{onSearch:a,label:`Filter schedules`,placeholder:`Filter by id or workflow`})}),(0,W.jsx)(`div`,{className:`overflow-y-auto`,children:(0,W.jsx)(V5r,{schedules:t??[],isLoading:n,search:i,sort:o,onSortChange:(e,t)=>s({key:t,direction:e})})})]})}var U5r=[_R(`/workflows`),L5r];function W5r(){let[e]=ty(),t=e.get(`workflowId`)??void 0,{error:n}=bR(t?{workflowId:t}:{});return n&&iR(n)?(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:U5r}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Schedules`}),(0,W.jsx)(CK,{variant:`fill`})]}):n&&aR(n)?(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:U5r}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Schedules`}),(0,W.jsx)(SK,{variant:`fill`,resource:`schedules`})]}):(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:U5r}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Schedules`}),(0,W.jsx)(`div`,{className:`h-full`,children:(0,W.jsx)(H5r,{workflowId:t})})]})}var G5r={"--belt-hue":`var(--warning-indicator)`};function K5r(e){let t=new Blob([JSON.stringify(e??null)]).size;return t<1024?`${t} B`:`${(t/1024).toFixed(1)} KB`}function q5r(e,t){if(e&&typeof e==`object`&&!Array.isArray(e)){let t=Object.keys(e),[n]=t;if(t.length===1&&n)return n}return t}function J5r({suspendedSteps:e,workflow:t,isStreaming:n,onResume:r}){return n||e.length===0?null:(0,W.jsxs)(`section`,{className:H(EOt,`pointer-events-auto relative isolate`),"data-testid":`workflow-suspended-steps`,"aria-label":`Step suspended`,children:[(0,W.jsxs)(`div`,{className:`max-h-[calc(100cqh-64px)] overflow-y-auto overscroll-contain rounded-[inherit]`,children:[(0,W.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b border-border bg-background px-5 py-4`,children:[(0,W.jsxs)(Z,{as:`h2`,variant:`column`,tone:`ink`,className:`flex items-center gap-2`,children:[(0,W.jsx)(cS,{children:(0,W.jsx)(WS,{})}),`Step suspended`]}),(0,W.jsx)(GT,{variant:`orange`,emphasis:`subtle`,children:`Needs input`})]}),e.map(e=>{let n=t.allSteps[e.stepId];if(!n||n.isWorkflow)return null;let i=n?.resumeSchema?_M(FM(n.resumeSchema)):fM(rM(),oM());return(0,W.jsx)(Y5r,{step:e,stepSchema:i,description:n.description,onResume:r},`${e.runId}-${e.stepId}`)})]}),(0,W.jsx)(jtt,{status:`ready`,label:`Needs input`,className:`before:hidden`,style:G5r})]})}function Y5r({step:e,stepSchema:t,description:n,onResume:r}){let[i,a]=(0,U.useState)(!1),[o,s]=(0,U.useState)(!1);return(0,W.jsxs)(`div`,{className:`space-y-5 p-5 [&+&]:border-t [&+&]:border-border`,children:[(0,W.jsxs)(`div`,{className:`space-y-2`,children:[(0,W.jsx)(Z,{as:`p`,variant:`subheading`,tone:`ink`,className:`break-words`,children:e.stepId}),n&&(0,W.jsx)(Z,{as:`p`,variant:`caption`,tone:`muted`,children:n})]}),e.suspendPayload!==void 0&&(0,W.jsxs)(`div`,{className:`space-y-2`,children:[(0,W.jsxs)(Z,{as:`p`,variant:`caption`,tone:`muted`,className:`flex items-center gap-2`,children:[(0,W.jsx)(cS,{children:(0,W.jsx)(_Ke,{})}),`The step is asking`]}),(0,W.jsxs)(FT,{open:i,onOpenChange:a,children:[(0,W.jsxs)(IT,{className:H(`bg-card hover:bg-card active:bg-card shadow-raised [--field:var(--field-on-surface)] [--field-disabled:var(--field-on-surface)] [--field-rim:var(--field-rim-on-surface)]`,`flex w-full items-center justify-between gap-2 rounded-lg px-3 py-2.5`),children:[(0,W.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,W.jsx)(cS,{children:(0,W.jsx)(RT,{direction:`right`,className:`text-muted-foreground`})}),(0,W.jsx)(Z,{as:`span`,variant:`body`,tone:`ink`,className:`truncate`,children:q5r(e.suspendPayload,e.stepId)})]}),(0,W.jsx)(Z,{as:`span`,variant:`caption`,tone:`muted`,className:`shrink-0`,children:K5r(e.suspendPayload)})]}),(0,W.jsx)(LT,{children:(0,W.jsx)(`div`,{"data-testid":`suspended-payload`,className:`pt-2`,children:(0,W.jsx)(yO,{value:JSON.stringify(e.suspendPayload,null,2),editable:!1,className:`w-full overflow-x-auto p-2`,showCopyButton:!1})})})]})]}),(0,W.jsxs)(`div`,{className:`space-y-3`,children:[(0,W.jsxs)(Z,{as:`p`,variant:`caption`,tone:`muted`,className:`flex items-center gap-2`,children:[(0,W.jsx)(cS,{children:(0,W.jsx)(vKe,{})}),`Your response`]}),(0,W.jsx)(`div`,{className:`-mx-5`,children:(0,W.jsx)(HDt,{schema:t,isSubmitLoading:o,submitButtonLabel:`Resume`,submitButtonVariant:`primary`,submitButtonIcon:(0,W.jsx)(AC,{}),submitButtonFullWidth:!0,collapsible:!1,hideHeading:!0,hideInputTypeLabel:!0,onSubmit:async t=>{s(!0);try{await r({stepId:e.stepId.split(`.`),runId:e.runId,resumeData:t})}catch(e){fw.error(e instanceof Error?e.message:`Error resuming workflow`)}finally{s(!1)}}})})]})]})}function X5r({hidden:e,requestContext:t,canResume:n}){let{result:r,workflow:i,runId:a,isStreamingWorkflow:o}=(0,U.useContext)(zT),s=Agt(r,a),c=Fgt(t),l=r?.status===`suspended`&&s.length>0&&!o;return!i||!l||!n?null:(0,W.jsx)(`div`,{hidden:e,"data-testid":`workflow-suspended-overlay`,className:`pointer-events-none absolute top-12 right-2 z-30 w-95 max-w-[calc(100%-16px)] animate-in duration-300 fade-in-0 slide-in-from-top-2 motion-reduce:animate-none`,children:(0,W.jsx)(J5r,{suspendedSteps:s,workflow:i,isStreaming:o,onResume:c})},a)}var Z5r={success:{label:`Completed`,icon:LS},failed:{label:`Failed`,icon:uGe},suspended:{label:`Needs input`,icon:OC},waiting:{label:`Waiting`,icon:JC},paused:{label:`Paused`,icon:OC},skipped:{label:`Skipped`,icon:XKe},running:{label:`Running`,icon:SC},canceled:{label:`Canceled`,icon:GS}},Q5r={label:`Status unavailable`,icon:cGe};function $5r({row:e,isSelected:t,isHovered:n,onSelectStep:r,onHoverStep:i,onOpenInput:a,onOpenOutput:o}){let s=Object.hasOwn(Z5r,e.status)?Z5r[e.status]:Q5r,c=s.icon,l=C0e(e.status),u=e.stepId.slice(0,e.stepId.lastIndexOf(`.`)),d=e.isNestedEntry?e.stepId.slice(e.stepId.lastIndexOf(`.`)+1):e.stepId;return(0,W.jsxs)(`div`,{"data-testid":`workflow-timeline-row`,"data-workflow-step-key":e.stepId,onMouseEnter:()=>!e.isNestedEntry&&i(e.stepId),onMouseLeave:()=>!e.isNestedEntry&&i(null),className:H(`grid grid-cols-[minmax(130px,1fr)_minmax(64px,1fr)_56px_64px] items-center gap-3 rounded-md px-2 py-1`,`@max-[540px]/workflow-timeline:grid-cols-[minmax(0,1fr)_48px_64px] @max-[540px]/workflow-timeline:gap-x-1.5 @max-[540px]/workflow-timeline:gap-y-1 @max-[540px]/workflow-timeline:py-2`,(t||n)&&`bg-fill-subtle`),children:[(0,W.jsxs)(`button`,{type:`button`,"aria-disabled":e.isNestedEntry,"aria-pressed":t,onClick:()=>{e.isNestedEntry||r(e.stepId)},title:e.stepId,className:H(`text-foreground`,`flex min-h-9 min-w-0 cursor-pointer items-center gap-2.5 text-left focus-visible:rounded-sm aria-disabled:cursor-default`,dS),children:[(0,W.jsx)(`span`,{"aria-label":s.label,className:H(`grid size-6 flex-none place-items-center rounded-md border border-border bg-background`,w0e[l]),children:(0,W.jsx)(c,{"aria-hidden":!0,className:H(`size-3.5`,e.status===`running`&&`motion-safe:animate-spin`)})}),(0,W.jsxs)(`span`,{className:`min-w-0`,children:[(0,W.jsx)(Z,{as:`span`,variant:`meta`,className:`block truncate`,children:d}),e.isNestedEntry&&(0,W.jsxs)(Z,{as:`span`,variant:`meta`,tone:`muted`,className:`flex min-w-0 items-center gap-1`,children:[(0,W.jsx)(yGe,{"aria-hidden":!0,className:`size-3 shrink-0`}),(0,W.jsx)(`span`,{className:`truncate`,children:u})]})]})]}),(0,W.jsx)(`div`,{className:`relative h-5 min-w-0 overflow-hidden rounded-sm bg-muted @max-[540px]/workflow-timeline:col-span-full @max-[540px]/workflow-timeline:row-start-2 @max-[540px]/workflow-timeline:ml-[34px]`,"aria-hidden":!0,children:e.timing&&(0,W.jsx)(`div`,{"data-testid":`workflow-timeline-bar`,"data-offset":e.timing.offsetPct,"data-width":e.timing.widthPct,className:H(`absolute top-0 h-full min-w-0.5 rounded-sm`,T0e[l]),style:{left:`${e.timing.offsetPct}%`,width:`${e.timing.widthPct}%`}})}),(0,W.jsx)(Z,{as:`span`,variant:`meta`,tone:`muted`,className:`text-right whitespace-nowrap`,title:e.timing&&e.spansSuspension?`Includes time spent suspended waiting for input`:void 0,children:e.timing?(0,W.jsx)(Z,{as:`span`,variant:`meta`,font:`mono`,children:VT(e.timing.durationMs)}):(0,W.jsx)(`span`,{"aria-label":`Timing unavailable`,children:`—`})}),(0,W.jsxs)(`div`,{className:`flex items-center`,children:[(0,W.jsx)(Y,{type:`button`,variant:`ghost`,size:`icon-sm`,tooltip:`View step input`,disabled:e.step.input===void 0,onClick:t=>a(e,t.currentTarget),children:(0,W.jsx)(ES,{})}),(0,W.jsx)(Y,{type:`button`,variant:`ghost`,size:`icon-sm`,tooltip:`View step output`,disabled:e.step.output===void 0,onClick:t=>o(e,t.currentTarget),children:(0,W.jsx)(AS,{})})]})]})}var e7r=e=>e.includes(`.`),t7r=e=>e===`input`||e.endsWith(`.input`),n7r=1;function r7r(e,t){let n=b0e(e),r=n?.isLive?Math.max(t,n.start):n?.end;return{span:n&&r!==void 0?{start:n.start,end:r}:void 0,isLive:n?.isLive??!1,spansSuspension:n?.spansSuspension??!1}}function i7r(e,t){let n=Object.entries(e).filter(([e])=>!t7r(e)).map(([e,n])=>({stepId:e,step:n,...r7r(n,t)})).sort((e,t)=>(e.span?.start??1/0)-(t.span?.start??1/0)||e.stepId.localeCompare(t.stepId)),r=n.flatMap(e=>e.span?[e.span]:[]),i=Math.min(...r.map(e=>e.start)),a=Math.max(i,...r.map(e=>e.end)),o=Math.max(a-i,1);return n.map(({stepId:e,step:t,span:n,isLive:r,spansSuspension:a})=>{let s;if(n){let e=n.end-n.start,t=Math.min((n.start-i)/o*100,99);s={durationMs:e,offsetPct:t,widthPct:Math.min(Math.max(e/o*100,n7r),100-t)}}return{stepId:e,step:t,status:YT(t)?`suspended`:t.status,timing:s,spansSuspension:a,isRunning:r,isNestedEntry:e7r(e)}})}function a7r(){let{steps:e}=U$(),{selectedStepId:t,hoverStepId:n,setSelectedStepId:r,setHoverStepId:i}=BT(),[a,o]=(0,U.useState)(()=>Date.now()),[s,c]=(0,U.useState)(!0),[l,u]=(0,U.useState)(!1),{showData:d}=yL(),f=(0,U.useRef)(null),p=i7r(e,a),m=p.some(e=>e.isRunning);return kJe(f,{enabled:m&&!s}),(0,U.useEffect)(()=>{if(!m||s)return;let e=setInterval(()=>o(Date.now()),100);return()=>clearInterval(e)},[m,s]),p.length===0?null:(0,W.jsx)(`div`,{"data-testid":`workflow-timeline`,className:`relative z-20 shrink-0 px-2 pb-2`,children:(0,W.jsxs)(FT,{open:!s,onOpenChange:e=>c(!e),className:H(ry,`@container/workflow-timeline pointer-events-auto overflow-hidden rounded-xl`),children:[(0,W.jsxs)(`div`,{className:`flex items-center`,children:[(0,W.jsxs)(IT,{className:`flex min-h-11 min-w-0 flex-1 items-center gap-2 px-3.5 py-2.5 text-caption text-foreground hover:bg-fill-subtle`,"aria-label":s?`Expand timeline`:`Collapse timeline`,children:[(0,W.jsx)(`span`,{children:(0,W.jsx)(QWe,{"aria-hidden":!0,className:`size-4 text-muted-foreground`})}),(0,W.jsx)(`span`,{children:`Timeline`}),(0,W.jsxs)(Z,{as:`span`,variant:`meta`,tone:`muted`,children:[p.length,` events`]}),(0,W.jsx)(`span`,{className:`ml-auto`,children:(0,W.jsx)(RT,{direction:`right`,className:`size-4`})})]}),!s&&(0,W.jsx)(Y,{variant:`ghost`,size:`icon-sm`,tooltip:l?`Restore timeline height`:`Enlarge timeline`,"aria-pressed":l,onClick:()=>u(!l),className:`mr-2 shrink-0`,children:l?(0,W.jsx)($We,{}):(0,W.jsx)(nGe,{})})]}),(0,W.jsx)(LT,{children:(0,W.jsx)(`div`,{ref:f,"data-testid":`workflow-timeline-list`,className:H(`overflow-auto overscroll-contain px-1.5 pb-1.5`,l?`max-h-[min(720px,calc(100dvh-112px))]`:`max-h-[min(320px,40dvh)]`),children:p.map(e=>(0,W.jsx)($5r,{row:e,isSelected:t===e.stepId,isHovered:n===e.stepId,onSelectStep:r,onHoverStep:i,onOpenInput:(e,t)=>d({type:`step-input`,stepId:e.stepId},t),onOpenOutput:(e,t)=>d({type:`step-output`,stepId:e.stepId},t)},e.stepId))})})]})})}var o7r=({workflowId:e,workflow:t,isLoading:n})=>{let[r]=AT(`workflow`,e),{canExecute:i,isLoading:a}=_w(),{stepDetail:o}=yL(),s=LE(),c=o?.type===`data`,l=(0,W.jsxs)(`div`,{className:`[container-type:size] relative h-full min-h-0`,children:[(0,W.jsx)(l2n,{workflowId:e,workflow:t,isLoading:n,requestContext:r}),(0,W.jsx)(X5r,{hidden:c,requestContext:r,canResume:!a&&i(`workflows`)}),c&&(0,W.jsx)(`div`,{className:`pointer-events-auto absolute top-12 right-2 z-30 flex max-h-[calc(100cqh-64px)] w-[440px] max-w-[calc(100%-16px)] flex-col`,children:(0,W.jsx)(G$,{requestContext:r})}),(0,W.jsx)(`div`,{className:`pointer-events-none absolute right-0 bottom-0 left-[var(--workflow-left-panel-width,0px)] z-20`,children:(0,W.jsx)(a7r,{})})]});return s&&o&&!c?(0,W.jsx)(`div`,{className:`h-full min-h-0 overflow-hidden`,children:(0,W.jsx)(G$,{requestContext:r})}):(0,W.jsxs)(`div`,{className:`relative h-full min-h-0`,children:[l,(0,W.jsxs)(k3,{className:`pointer-events-none absolute inset-0 z-30 min-h-0 w-full min-w-0 p-2`,children:[(0,W.jsx)(O3,{id:`workflow-graph`,className:`pointer-events-none min-w-0`}),o&&!c&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(A3,{className:`pointer-events-auto`}),(0,W.jsx)(O3,{id:`workflow-step-detail`,minSize:300,maxSize:`60%`,defaultSize:420,className:`min-w-0`,children:(0,W.jsx)(`div`,{className:`pointer-events-auto h-full min-h-0 overflow-hidden rounded-studio-panel border border-border bg-background`,children:(0,W.jsx)(G$,{requestContext:r})})})]})]})]})},s7r=()=>{let{workflowId:e}=Kv(),{data:t,isLoading:n,error:r}=vL({workflowId:e,requestContext:AT(`workflow`,e)[0],queryOptions:{enabled:!!e}});return r&&iR(r)?(0,W.jsx)(CK,{variant:`fill`}):r&&aR(r)?(0,W.jsx)(SK,{variant:`fill`,resource:`workflows`}):(0,W.jsx)(o7r,{workflowId:e,workflow:t??void 0,isLoading:n})};function c7r(){let{workflowId:e}=Kv(),{error:t}=bR(e?{workflowId:e}:{});if(!e)return null;let n;return n=t&&iR(t)?(0,W.jsx)(CK,{variant:`fill`}):t&&aR(t)?(0,W.jsx)(SK,{variant:`fill`,resource:`schedules`}):(0,W.jsx)(`div`,{className:`h-full`,children:(0,W.jsx)(H5r,{workflowId:e})}),(0,W.jsxs)(Bw,{children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Schedules`}),n]})}function l7r(){let{workflowId:e}=Kv();return e?(0,W.jsx)(WIr,{scopedEntityId:e,scopedEntityType:lp.WORKFLOW_RUN}):null}var u7r=/^---\r?\n([\s\S]*?)\r?\n---[ \t]*(?:\r?\n|$)/;function d7r(e){let t=u7r.exec(e);return t?{frontmatter:t[1]??``,body:e.slice(t[0].length)}:{frontmatter:null,body:e}}var f7r=(0,U.createContext)(null);function U9(){let e=(0,U.useContext)(f7r);if(!e)throw Error(`Workspace components must be rendered inside <Workspace.Root>`);return e}function p7r({content:e}){let{frontmatter:t,body:n}=d7r(e);return(0,W.jsxs)(W.Fragment,{children:[t!==null&&(0,W.jsx)(`div`,{"data-testid":`workspace-frontmatter`,className:`border-b border-border`,children:(0,W.jsx)(EX,{code:t,lang:`yaml`,overflow:`wrap`,className:`rounded-none border-0 bg-transparent [&_pre]:p-4`})}),(0,W.jsx)(`div`,{className:`p-4`,children:(0,W.jsx)(CZ,{children:n})})]})}var m7r=e=>e?.status;function h7r(e,t){return iR(e)?`Your session has expired. Sign in again to continue.`:aR(e)?`You don't have permission to access this.`:oR(e)?`This path no longer exists.`:m7r(e)===501?`This workspace does not support this operation.`:t}function W9({error:e,fallback:t,className:n}){return(0,W.jsx)(oN,{variant:`destructive`,className:n,children:(0,W.jsx)(oN.Message,{children:h7r(e,t)})})}function g7r(){let{activeFilePath:e}=U9();return e?(0,W.jsx)(Z,{as:`span`,variant:`body-sm`,font:`mono`,tone:`muted`,className:`truncate`,"data-testid":`workspace-file-path`,children:e}):null}function _7r({path:e,content:t,mimeType:n}){return WEn(e,n)?(0,W.jsx)(`div`,{className:`flex justify-center p-4`,children:(0,W.jsx)(`img`,{src:`data:${n||`image/png`};base64,${t}`,alt:e.split(`/`).pop(),className:`max-w-full object-contain`})}):GEn(e,n)?(0,W.jsx)(`div`,{className:`flex justify-center p-4`,children:(0,W.jsx)(`video`,{controls:!0,"aria-label":e.split(`/`).pop(),className:`max-w-full`,children:(0,W.jsx)(`source`,{src:`data:${qEn(e,n)};base64,${t}`,type:qEn(e,n)})})}):JEn(e)?(0,W.jsx)(p7r,{content:t}):(0,W.jsx)(EX,{code:t,lang:$8e(e),overflow:`scroll`,className:`rounded-none border-0 bg-transparent [&_pre]:p-4`})}function v7r({renderPreview:e}){let{workspaceId:t,activeFilePath:n}=U9(),{data:r,isLoading:i,error:a}=lDn({workspaceId:t,path:n,queryOptions:{enabled:!!n}});if(!n)return null;if(i)return(0,W.jsxs)(`div`,{"aria-busy":`true`,className:`flex flex-col gap-2 p-4`,children:[(0,W.jsx)(Vw,{className:`h-4 w-1/2`}),(0,W.jsx)(Vw,{className:`h-4 w-5/6`}),(0,W.jsx)(Vw,{className:`h-4 w-2/3`})]});if(!r)return(0,W.jsx)(W9,{error:a,fallback:`Could not load file.`,className:`m-4`});let o={path:n,content:r.content,mimeType:r.mimeType};return e?.(o)??(0,W.jsx)(_7r,{...o})}var y7r=(e,t)=>e===`.`?t:`${e}/${t}`,b7r=e=>e.split(`/`).slice(0,-1).map((e,t,n)=>n.slice(0,t+1).join(`/`)),x7r=e=>{let t=e.lastIndexOf(`/`);return t===-1?`.`:e.slice(0,t)};function S7r({labeled:e=!1}={}){let{workspaceId:t,onCreateDirectory:n,isReadOnly:r}=U9(),i=B_(),[a,o]=(0,U.useState)(!1),[s,c]=(0,U.useState)(``),[l,u]=(0,U.useState)(!1);if(!n||r(`.`))return null;let d=s.trim().replace(/^\.?\/+|\/+$/g,``),f=async()=>{if(d){u(!0);try{await n(d),await i.invalidateQueries({queryKey:[`workspace`,t,`fs`,`list`,x7r(d)]}),o(!1),c(``)}catch{}finally{u(!1)}}};return(0,W.jsxs)(W.Fragment,{children:[e?(0,W.jsx)(Y,{variant:`ghost`,icon:(0,W.jsx)(uC,{}),onClick:()=>o(!0),children:`New folder`}):(0,W.jsx)(Y,{variant:`ghost`,size:`icon-sm`,tooltip:`New folder`,onClick:()=>o(!0),children:(0,W.jsx)(uC,{})}),(0,W.jsx)(HE,{open:a,onOpenChange:o,pending:l,children:(0,W.jsx)(UE,{size:`sm`,children:(0,W.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),f()},children:[(0,W.jsx)(WE,{children:(0,W.jsx)(qE,{children:`New folder`})}),(0,W.jsx)(KE,{children:(0,W.jsx)(_I,{autoFocus:!0,"aria-label":`Folder path`,placeholder:`docs/guides`,value:s,onChange:e=>c(e.target.value)})}),(0,W.jsxs)(GE,{children:[(0,W.jsx)(YE,{children:`Cancel`}),(0,W.jsx)(Y,{type:`submit`,variant:`primary`,disabled:!d||l,children:`Create`})]})]})})})]})}var C7r=e=>(0,W.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...e,children:(0,W.jsx)(`path`,{d:`M9 1.5H4C3.44772 1.5 3 1.94772 3 2.5V13.5C3 14.0523 3.44772 14.5 4 14.5H12C12.5523 14.5 13 14.0523 13 13.5V5.5M9 1.5L13 5.5M9 1.5V5.5H13`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`})}),w7r=e=>(0,W.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...e,children:(0,W.jsx)(`path`,{d:`M7.25 12.5C10.1495 12.5 12.5 10.1495 12.5 7.25C12.5 4.35051 10.1495 2 7.25 2C4.35051 2 2 4.35051 2 7.25C2 10.1495 4.35051 12.5 7.25 12.5ZM11 11L14 14`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`})});function T7r(){let{isSearching:e,setSearching:t,searchFiles:n,searchSkills:r}=U9();return!n&&!r?null:(0,W.jsx)(Y,{variant:`ghost`,size:`icon-sm`,tooltip:`Search files and skills`,"aria-pressed":e,onClick:()=>t(!e),children:(0,W.jsx)(w7r,{})})}function E7r(){let{isSearching:e}=U9();return e?(0,W.jsx)(k7r,{}):(0,W.jsx)(O7r,{})}var D7r=(e,t)=>`${e} ${t}${e===1?``:`s`}`;function O7r(){let{fileCount:e,skillCount:t}=U9();return(0,W.jsxs)(Z,{as:`span`,variant:`label`,tone:`muted`,className:`block min-w-0 truncate`,children:[(0,W.jsx)(`span`,{children:e===void 0?`Files`:D7r(e,`File`)}),t===void 0?null:(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Z,{as:`span`,variant:`label`,tone:`faint`,"aria-hidden":!0,className:`mx-1.5`,children:`·`}),(0,W.jsx)(`span`,{children:D7r(t,`Skill`)})]})]})}function k7r(){let{setSearching:e,setQuery:t}=U9(),[n,r]=(0,U.useState)(``),[,i]=(0,U.useTransition)();return(0,W.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,W.jsx)(_I,{type:`search`,size:`sm`,autoFocus:!0,"aria-label":`Search query`,placeholder:`Search files and skills`,value:n,onChange:e=>{let n=e.target.value;r(n),i(()=>t(n))},onKeyDown:t=>{t.key===`Escape`&&e(!1)}}),(0,W.jsx)(Y,{variant:`ghost`,size:`icon-sm`,tooltip:`Close search`,onClick:()=>e(!1),children:(0,W.jsx)(tw,{})})]})}function A7r(){let{workspaceId:e,query:t,activeFilePath:n,setActiveFilePath:r,searchFiles:i,searchSkills:a}=U9(),{data:o,isLoading:s,isError:c,error:l}=pDn({workspaceId:e,query:t,files:i,skills:a,queryOptions:{enabled:t.trim().length>0&&(i||a)}});return t.trim()?s?(0,W.jsxs)(`div`,{"aria-busy":`true`,className:`flex flex-col gap-2 p-2`,children:[(0,W.jsx)(Vw,{className:`h-4 w-3/4`}),(0,W.jsx)(Vw,{className:`h-4 w-2/3`})]}):c?(0,W.jsx)(W9,{error:l,fallback:`Search failed.`,className:`m-2`}):o?.length?(0,W.jsx)(`ul`,{"aria-label":`Search results`,className:`flex flex-col py-1`,children:o.map(e=>(0,W.jsx)(`li`,{children:(0,W.jsxs)(`button`,{type:`button`,title:e.path,onClick:()=>r(e.path),className:H(`text-foreground`,`flex w-full items-center gap-1.5 rounded-md px-2 py-1 text-left hover:bg-fill-subtle`,n===e.path&&`bg-fill`),children:[(0,W.jsx)(cS,{size:`sm`,children:e.kind===`skill`?(0,W.jsx)(jQ,{}):(0,W.jsx)(C7r,{})}),(0,W.jsx)(Z,{as:`span`,variant:`body-sm`,className:`truncate`,children:e.label})]})},e.path))}):(0,W.jsx)(aw,{titleSlot:`No results`}):(0,W.jsx)(aw,{titleSlot:`Search files and skills`,descriptionSlot:`Type to find matching content.`})}function j7r(e){return`${e.topSource}/${e.name}`}function M7r(e){let t=QEn(e.topSource,e.name);return t?`${t.owner}/${t.repo}/${e.name}`:null}function N7r({open:e,onOpenChange:t,workspaceId:n,onInstall:r,isInstalling:i,installedSkillIds:a=[],installedSkillNames:o=[],writableMounts:s,installedSkillPaths:c}){let[l,u]=(0,U.useState)(``),[d,f]=(0,U.useState)(null),[p,m]=(0,U.useState)(),h=s?.some(e=>e.path===p)?p:s?.[0]?.path,{data:g,isLoading:_}=XEn({workspaceId:n,queryOptions:{enabled:!!n}}),v=YEn({workspaceId:n}),y=(0,U.useMemo)(()=>d?.topSource?QEn(d.topSource,d.name):null,[d]),b=(0,U.useMemo)(()=>!y||!d?null:`https://skills.sh/${y.owner}/${y.repo}/${d.name}`,[y,d]),{data:x,isLoading:S}=ZEn({workspaceId:n,owner:y?.owner,repo:y?.repo,skillPath:d?.name,queryOptions:{enabled:!!n&&!!y&&!!d}}),C=ED(e=>{e.trim().length>=2&&v.mutate(e)},300),w=(0,U.useCallback)(e=>{u(e),C(e)},[C]),T=(0,U.useMemo)(()=>l.trim().length>=2?v.data?.skills??[]:g?.skills??[],[l,v.data,g]),E=v.isPending,D=l.trim().length>=2,O=(0,U.useMemo)(()=>{if(!d)return!1;let e=M7r(d);return!!(e&&a.includes(e)||o.includes(d.name))},[d,a,o]),k=(0,U.useCallback)(()=>{d&&y&&r({repository:`${y.owner}/${y.repo}`,skillName:d.name,mount:s&&s.length>1?h:void 0})},[d,y,r,s,h]),A=(0,U.useCallback)(e=>{e||(u(``),f(null),m(void 0)),t(e)},[t]);return(0,W.jsx)(HE,{open:e,onOpenChange:A,pending:i,children:(0,W.jsxs)(UE,{size:`xl`,className:`h-[80vh]`,children:[(0,W.jsxs)(WE,{children:[(0,W.jsx)(qE,{children:`Add Skill`}),(0,W.jsx)(JE,{children:`Search and install skills from the community registry`})]}),(0,W.jsxs)(KE,{layout:`fill`,children:[(0,W.jsx)(UK,{label:`Search skills`,placeholder:`Search skills...`,value:l,onValueChange:w}),(0,W.jsxs)(`div`,{className:`flex min-h-0 flex-1 gap-4`,children:[(0,W.jsxs)(`div`,{className:`flex min-h-0 w-1/2 flex-col`,children:[(0,W.jsx)(Z,{as:`p`,variant:`eyebrow`,tone:`muted`,className:`mb-2`,children:D?`Search Results`:`Popular Skills`}),(0,W.jsx)(Rw,{className:`flex-1 rounded-lg border border-border`,children:(0,W.jsx)(Lw,{className:!_&&!E&&T.length===0?`flex flex-col [&>div]:flex [&>div]:flex-1 [&>div]:flex-col`:void 0,children:_||E?(0,W.jsx)(`div`,{className:`flex items-center justify-center py-5`,children:(0,W.jsx)(SC,{className:`size-6 animate-spin text-muted-foreground`})}):T.length===0?(0,W.jsxs)(`div`,{className:`flex flex-1 flex-col items-center-safe justify-center-safe py-5 text-muted-foreground`,children:[(0,W.jsx)(GS,{className:`mb-2 size-8`}),(0,W.jsx)(Z,{children:D?`No skills found`:`No skills available`})]}):(0,W.jsx)(`div`,{className:`space-y-1 p-2`,children:T.map(e=>{let t=j7r(e),n=M7r(e),r=n&&a.includes(n)||o.includes(e.name),i=d?j7r(d):null;return(0,W.jsx)(`button`,{onClick:()=>f(e),className:H(`w-full rounded-md px-3 py-2 text-left`,`hover:bg-fill-subtle`,i===t&&`border border-border-strong bg-fill-hover`),children:(0,W.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,W.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(Z,{as:`span`,variant:`subheading`,tone:`ink`,className:`truncate`,children:e.name}),r&&(0,W.jsxs)(Z,{as:`span`,variant:`meta`,className:`inline-flex items-center gap-1 rounded bg-info-subtle px-1.5 py-0.5 text-info-subtle-foreground`,children:[(0,W.jsx)(LS,{className:`size-2.5`}),`Installed`]})]}),(0,W.jsx)(Z,{as:`p`,variant:`caption`,tone:`muted`,className:`truncate`,children:e.topSource})]}),(0,W.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1 text-muted-foreground`,children:[(0,W.jsx)(QS,{className:`size-3`}),(0,W.jsx)(Z,{as:`span`,variant:`caption`,children:e.installs.toLocaleString()})]})]})},t)})})})})]}),(0,W.jsxs)(`div`,{className:`flex min-h-0 w-1/2 flex-col`,children:[(0,W.jsx)(Z,{as:`p`,variant:`eyebrow`,tone:`muted`,className:`mb-2`,children:`Preview`}),(0,W.jsx)(`div`,{className:`flex flex-1 flex-col overflow-hidden rounded-lg border border-border`,children:d?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`div`,{className:`border-b border-border bg-card p-4`,children:(0,W.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,W.jsx)(`div`,{className:`rounded-lg bg-muted p-2`,children:(0,W.jsx)(jQ,{className:`size-5 text-muted-foreground`})}),(0,W.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,W.jsx)(Z,{as:`h3`,variant:`subheading`,tone:`ink`,className:`truncate`,children:d.name}),(0,W.jsxs)(`div`,{className:`mt-1 flex items-center gap-3 text-muted-foreground`,children:[(0,W.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,W.jsx)(AQ,{className:`size-3`}),(0,W.jsx)(Z,{as:`span`,variant:`caption`,className:`block`,children:d.topSource})]}),(0,W.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,W.jsx)(QS,{className:`size-3`}),(0,W.jsxs)(Z,{as:`span`,variant:`caption`,className:`block`,children:[d.installs.toLocaleString(),` installs`]})]})]})]}),y&&(0,W.jsx)(`a`,{href:`https://github.com/${y.owner}/${y.repo}`,target:`_blank`,rel:`noopener noreferrer`,className:H(`text-muted-foreground hover:text-foreground`,`transition-[color] duration-fast ease-out-custom motion-reduce:transition-none`),title:`View on GitHub`,children:(0,W.jsx)(tC,{className:`size-4`})})]})}),S?(0,W.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,W.jsx)(SC,{className:`size-6 animate-spin text-muted-foreground`})}):x?(0,W.jsx)(Rw,{className:`flex-1`,children:(0,W.jsx)(`div`,{className:`p-4`,children:(0,W.jsx)(CZ,{children:x})})}):(0,W.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center text-muted-foreground`,children:[(0,W.jsx)(DC,{className:`mb-2 size-8`}),(0,W.jsx)(Z,{children:`Preview unavailable`}),b&&(0,W.jsxs)(`a`,{href:b,target:`_blank`,rel:`noopener noreferrer`,className:`mt-2 flex items-center gap-1 text-info-indicator hover:underline`,children:[(0,W.jsxs)(Z,{as:`span`,variant:`caption`,className:`block`,children:[`View on skills.sh`,` `]}),(0,W.jsx)(tC,{className:`size-3`})]})]})]}):(0,W.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center text-muted-foreground`,children:[(0,W.jsx)(DC,{className:`mb-2 size-8`}),(0,W.jsx)(Z,{children:`Select a skill to preview`})]})})]})]}),d&&s&&s.length>1&&(0,W.jsxs)(VM,{orientation:`horizontal`,className:H(`bg-card hover:bg-card active:bg-card shadow-raised [--field:var(--field-on-surface)] [--field-disabled:var(--field-on-surface)] [--field-rim:var(--field-rim-on-surface)]`,`gap-3 rounded-lg p-3`),children:[(0,W.jsx)(dC,{className:`size-4 shrink-0 text-muted-foreground`}),(0,W.jsx)(UM,{className:`whitespace-nowrap`,children:`Install to`}),(0,W.jsxs)(TN,{value:h,onValueChange:m,children:[(0,W.jsx)(DN,{className:`flex-1`,children:(0,W.jsx)(EN,{})}),(0,W.jsx)(ON,{children:s.map(e=>{let t=e.displayName??e.name??e.provider??`unknown`;return(0,W.jsxs)(kN,{value:e.path,children:[t,` (`,e.path,`)`]},e.path)})})]})]})]}),d&&(0,W.jsxs)(GE,{children:[O&&s&&s.length>1&&(()=>{let e=c?.[d.name];if(!e)return null;let t=s.find(t=>e.startsWith(t.path+`/`)||e===t.path);return t?(0,W.jsxs)(Z,{as:`span`,variant:`caption`,tone:`muted`,className:`mr-auto`,children:[`Installed at `,t.path]}):null})(),(0,W.jsx)(YE,{children:`Cancel`}),(0,W.jsx)(VE,{onConfirm:k,disabled:!y||O,"data-testid":`install-skill-button`,children:i?`Installing...`:O?`Already installed`:`Install`})]})]})})}function P7r({labeled:e=!1}){let{workspaceId:t,addSkill:n}=U9(),[r,i]=(0,U.useState)(!1),[a,o]=(0,U.useState)(!1);if(!n)return null;let{onInstall:s,...c}=n,l=async e=>{o(!0);try{await s(e),i(!1)}catch{}finally{o(!1)}};return(0,W.jsxs)(W.Fragment,{children:[e?(0,W.jsxs)(Y,{variant:`ghost`,onClick:()=>i(!0),children:[(0,W.jsx)(mqe,{}),`Add skill`]}):(0,W.jsx)(Y,{variant:`ghost`,size:`icon-sm`,"aria-label":`Add skill`,tooltip:`Add skill`,onClick:()=>i(!0),children:(0,W.jsx)(mqe,{})}),(0,W.jsx)(N7r,{...c,open:r,onOpenChange:i,workspaceId:t,onInstall:e=>void l(e),isInstalling:a})]})}function F7r({workspaceId:e,activeFilePath:t,onDelete:n,onCreateDirectory:r,onActiveFileChange:i,readOnlyPaths:a,searchFiles:o=!0,searchSkills:s=!0,fileCount:c,skillCount:l,addSkill:u,children:d}){let[f,p]=(0,U.useState)(!1),[m,h]=(0,U.useState)(``),[g,_]=(0,U.useState)(()=>new Set(b7r(t??``))),[v,y]=(0,U.useState)(t);if(t!==v){y(t);let e=b7r(t??``).filter(e=>!g.has(e));e.length>0&&_(new Set([...g,...e]))}let b=a?.join(`
|
|
690
690
|
`)??``,x=(0,U.useMemo)(()=>({workspaceId:e,activeFilePath:t,setActiveFilePath:i,isSearching:f,setSearching:e=>{p(e),e||h(``)},query:m,setQuery:h,onDelete:n,onCreateDirectory:r,isReadOnly:e=>(b?b.split(`
|
|
691
691
|
`):[]).some(t=>t===`.`||e===t||e.startsWith(`${t}/`)),searchFiles:o,searchSkills:s,fileCount:c,skillCount:l,addSkill:u,openFolders:g,setFolderOpen:(e,t)=>_(n=>{if(n.has(e)===t)return n;let r=new Set(n);return t?r.add(e):r.delete(e),r})}),[e,t,f,m,n,r,i,b,o,s,c,l,u,g]);return(0,W.jsx)(f7r.Provider,{value:x,children:d})}var I7r=e=>(0,W.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...e,children:(0,W.jsx)(`path`,{d:`M1.5 8.5V8C1.5 7.60218 1.65804 7.22064 1.93934 6.93934C2.22064 6.65804 2.60218 6.5 3 6.5H13C13.3978 6.5 13.7794 6.65804 14.0607 6.93934C14.342 7.22064 14.5 7.60218 14.5 8V8.5M8.70667 4.20667L7.29333 2.79333C7.20048 2.70037 7.09022 2.62661 6.96886 2.57628C6.84749 2.52595 6.71739 2.50003 6.586 2.5H3C2.60218 2.5 2.22064 2.65804 1.93934 2.93934C1.65804 3.22064 1.5 3.60218 1.5 4V12C1.5 12.3978 1.65804 12.7794 1.93934 13.0607C2.22064 13.342 2.60218 13.5 3 13.5H13C13.3978 13.5 13.7794 13.342 14.0607 13.0607C14.342 12.7794 14.5 12.3978 14.5 12V6C14.5 5.60218 14.342 5.22064 14.0607 4.93934C13.7794 4.65804 13.3978 4.5 13 4.5H9.414C9.14887 4.49977 8.89402 4.39426 8.70667 4.20667Z`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`})}),L7r=e=>(0,W.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...e,children:(0,W.jsx)(`path`,{d:`M2.5 4H13.5M6 4V2.5H10V4M4 4L4.75 13.5H11.25L12 4M6.75 6.5V11M9.25 6.5V11`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`})});function R7r({mount:e}){switch(e.icon||e.provider){case`aws-s3`:case`s3`:return(0,W.jsx)(swn,{className:`text-foreground`});case`google-cloud`:case`google-cloud-storage`:case`gcs`:return(0,W.jsx)(own,{});case`azure-blob`:case`azure`:return(0,W.jsx)(uwn,{className:`text-badge-blue-indicator`});case`cloudflare`:case`cloudflare-r2`:case`r2`:return(0,W.jsx)(qS,{className:`text-badge-orange-indicator`});case`neon`:return(0,W.jsx)(qS,{className:`text-badge-green-indicator`});case`minio`:return(0,W.jsx)(UGe,{className:`text-badge-red-indicator`});case`database`:return(0,W.jsx)(ZS,{className:`text-badge-green-indicator`});case`local`:case`folder`:return(0,W.jsx)(dC,{className:`text-badge-amber-indicator`});case`hard-drive`:return(0,W.jsx)(UGe,{className:`text-muted-foreground`});default:return(0,W.jsx)(qS,{className:`text-muted-foreground`})}}var z7r=e=>{let t=[`B`,`KB`,`MB`,`GB`,`TB`],n=e>0?Math.min(Math.floor(Math.log(e)/Math.log(1024)),t.length-1):0;return`${parseFloat((e/1024**n).toFixed(1))} ${t[n]}`};function B7r(){let{workspaceId:e,activeFilePath:t,setActiveFilePath:n}=U9(),{data:r,isLoading:i,error:a}=bX({workspaceId:e,path:`.`}),[o,s]=(0,U.useState)(null);return i?(0,W.jsx)(J7r,{}):r?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(K3,{"aria-label":`Workspace files`,selectedId:t,onSelect:n,className:`py-1`,children:(0,W.jsx)(V7r,{entries:r,parent:`.`,onRequestDelete:s})}),(0,W.jsx)(q7r,{entry:o,onClose:()=>s(null)})]}):(0,W.jsx)(W9,{error:a,fallback:`Could not load files.`,className:`m-2`})}function V7r({entries:e,parent:t,onRequestDelete:n}){return e.map(e=>{let r=y7r(t,e.name);return e.type===`directory`?(0,W.jsx)(W7r,{name:e.name,path:r,mount:e.mount,onRequestDelete:n},e.name):(0,W.jsx)(K7r,{name:e.name,size:e.size,path:r,onRequestDelete:n},e.name)})}function H7r({children:e}){return(0,W.jsx)(`span`,{className:`ml-auto flex shrink-0 items-center gap-1 opacity-0 group-focus-within:opacity-100 group-hover:opacity-100`,children:e})}function U7r({name:e,onClick:t}){return(0,W.jsx)(Y,{variant:`destructive-ghost`,size:`icon-sm`,tooltip:`Delete ${e}`,onClick:e=>{e.stopPropagation(),t()},onKeyDown:e=>e.stopPropagation(),children:(0,W.jsx)(L7r,{})})}function W7r({name:e,path:t,mount:n,onRequestDelete:r}){let{workspaceId:i,onDelete:a,onCreateDirectory:o,isReadOnly:s,openFolders:c,setFolderOpen:l}=U9(),u=c.has(t),{isLoading:d}=bX({workspaceId:i,path:t,queryOptions:{enabled:u}}),[f,p]=(0,U.useState)(!1),m=a&&!s(t),h=o&&!s(t);return(0,W.jsxs)(K3.Folder,{id:t,open:u,onOpenChange:e=>l(t,e),children:[(0,W.jsxs)(K3.FolderTrigger,{actions:m||h?(0,W.jsxs)(H7r,{children:[h?(0,W.jsx)(Y,{variant:`ghost`,size:`icon-sm`,tooltip:`New folder in ${e}`,onClick:e=>{e.stopPropagation(),l(t,!0),p(!0)},onKeyDown:e=>e.stopPropagation(),children:(0,W.jsx)(uC,{})}):null,m?(0,W.jsx)(U7r,{name:e,onClick:()=>r({path:t,type:`directory`})}):null]}):void 0,children:[(0,W.jsx)(K3.Icon,{children:n?(0,W.jsx)(`span`,{role:`img`,"aria-label":`Mount: ${n.displayName??n.provider}`,title:[n.displayName??n.provider,n.description].filter(Boolean).join(` — `),className:`flex`,children:(0,W.jsx)(R7r,{mount:n})}):(0,W.jsx)(I7r,{})}),(0,W.jsx)(K3.Label,{children:e}),n?.status===`error`?(0,W.jsx)(`span`,{role:`img`,"aria-label":`Mount error: ${n.error??`unavailable`}`,title:n.error,className:`flex shrink-0`,children:(0,W.jsx)(HS,{className:`size-3 text-destructive-foreground`})}):null,n&&s(t)?(0,W.jsx)(`span`,{role:`img`,"aria-label":`Read-only`,title:`Read-only`,className:`flex shrink-0`,children:(0,W.jsx)(CC,{className:`size-3 text-muted-foreground`})}):null,u&&d?(0,W.jsx)(`span`,{className:`flex shrink-0 animate-in delay-200 fill-mode-backwards fade-in`,children:(0,W.jsx)(dt,{size:`sm`,"aria-label":`Loading ${e}`,className:`size-3 text-muted-foreground`})}):null]}),(0,W.jsx)(K3.FolderContent,{children:u?(0,W.jsx)(G7r,{path:t,creating:f,onCreated:()=>p(!1),onRequestDelete:r}):null})]})}function G7r({path:e,creating:t,onCreated:n,onRequestDelete:r}){let{workspaceId:i,onCreateDirectory:a}=U9(),o=B_(),{data:s,isLoading:c,error:l}=bX({workspaceId:i,path:e}),u=async t=>{try{await a?.(y7r(e,t.replace(/^\/+|\/+$/g,``)))}catch{return}n(),await o.invalidateQueries({queryKey:[`workspace`,i,`fs`,`list`,e]})};return(0,W.jsxs)(W.Fragment,{children:[t?(0,W.jsx)(K3.Input,{type:`folder`,placeholder:`Folder name`,onSubmit:e=>void u(e),onCancel:n}):null,c?null:s?(0,W.jsx)(V7r,{entries:s,parent:e,onRequestDelete:r}):(0,W.jsx)(W9,{error:l,fallback:`Could not load folder.`,className:`my-1 mr-1`})]})}function K7r({name:e,size:t,path:n,onRequestDelete:r}){let{onDelete:i,isReadOnly:a,activeFilePath:o}=U9(),s=i&&!a(n),c=n===o,l=(0,U.useRef)(null);return(0,U.useEffect)(()=>{c&&l.current?.scrollIntoView?.({block:`nearest`})},[c]),(0,W.jsxs)(K3.File,{ref:l,id:n,children:[(0,W.jsx)(K3.Icon,{children:(0,W.jsx)(C7r,{})}),(0,W.jsx)(K3.Label,{children:e}),(0,W.jsxs)(H7r,{children:[t===void 0?null:(0,W.jsx)(Z,{as:`span`,variant:`caption`,tone:`faint`,font:`mono`,children:z7r(t)}),s?(0,W.jsx)(U7r,{name:e,onClick:()=>r({path:n,type:`file`})}):null]})]})}function q7r({entry:e,onClose:t}){let{workspaceId:n,activeFilePath:r,setActiveFilePath:i,onDelete:a}=U9(),o=B_(),[s,c]=(0,U.useState)(!1),l=e?.path.split(`/`).pop(),u=async()=>{if(e&&a){c(!0);try{await a(e)}catch{return}finally{c(!1)}(r===e.path||r?.startsWith(`${e.path}/`))&&i(void 0),o.removeQueries({queryKey:[`workspace`,n,`fs`,`list`,e.path]}),await o.invalidateQueries({queryKey:[`workspace`,n,`fs`,`list`,x7r(e.path)]}),t()}},d=null;return e&&(d=e.type===`directory`?`This permanently deletes the folder "${l}" and everything inside it.`:`This permanently deletes "${l}".`),(0,W.jsx)(hL,{open:e!==null,onOpenChange:e=>{!e&&!s&&t()},children:(0,W.jsxs)(hL.Content,{children:[(0,W.jsxs)(hL.Header,{children:[(0,W.jsxs)(hL.Title,{children:[`Delete `,e?.type===`directory`?`folder`:`file`,`?`]}),(0,W.jsxs)(hL.Description,{children:[d,` This action cannot be undone.`]})]}),(0,W.jsxs)(hL.Footer,{children:[(0,W.jsx)(hL.Cancel,{disabled:s,children:`Cancel`}),(0,W.jsx)(Y,{variant:`destructive`,disabled:s,onClick:()=>void u(),children:s?`Deleting…`:`Delete`})]})]})})}function J7r(){return(0,W.jsxs)(`div`,{"data-testid":`workspace-tree-skeleton`,"aria-busy":`true`,className:`flex flex-col gap-2 py-2 pl-[18px]`,children:[(0,W.jsx)(Vw,{className:`h-4 w-3/4`}),(0,W.jsx)(Vw,{className:`h-4 w-1/2`}),(0,W.jsx)(Vw,{className:`h-4 w-2/3`})]})}function Y7r({children:e,...t}){return(0,W.jsx)(F7r,{...t,children:(0,W.jsx)(X7r,{children:e})})}function X7r({children:e}){let{workspaceId:t}=U9(),{data:n,error:r}=bX({workspaceId:t,path:`.`});return(n?n.length===0:oR(r))?(0,W.jsx)(aw,{variant:`fill`,titleSlot:`This workspace is empty`,descriptionSlot:`Files written by your agents will show up here.`,actionSlot:(0,W.jsxs)(`div`,{className:`flex flex-wrap items-center justify-center gap-2`,children:[(0,W.jsx)(S7r,{labeled:!0}),(0,W.jsx)(P7r,{labeled:!0})]})}):(0,W.jsx)(`div`,{className:`size-full overflow-hidden`,children:(0,W.jsx)(k3,{className:`size-full min-h-0 min-w-0`,orientation:`horizontal`,children:e})})}function Z7r({children:e}){return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(Lvr,{direction:`left`,id:`workspace-aside`,minSize:200,maxSize:`50%`,defaultSize:`25%`,collapsible:!1,className:`min-w-0`,children:(0,W.jsx)(`div`,{className:`flex h-full min-h-0 flex-col`,children:e})}),(0,W.jsx)(A3,{className:`w-px bg-border`})]})}function Q7r({children:e,actions:t}){let{isSearching:n}=U9();return(0,W.jsxs)(`div`,{className:`flex h-11 shrink-0 items-center gap-2 border-b border-border px-3`,children:[(0,W.jsx)(`div`,{className:`min-w-0 flex-1`,children:e}),t&&!n?(0,W.jsx)(`div`,{className:`flex shrink-0 items-center gap-1`,children:t}):null]})}function $7r(){let{isSearching:e}=U9();return(0,W.jsx)(Rw,{className:`min-h-0 flex-1 px-2 py-1`,children:e?(0,W.jsx)(A7r,{}):(0,W.jsx)(B7r,{})})}function e9r({children:e}){return(0,W.jsx)(O3,{id:`workspace-active-file`,className:`flex min-w-0 flex-col`,minSize:30,children:e})}function t9r({children:e}){return(0,W.jsx)(`div`,{className:`flex h-11 shrink-0 items-center gap-2 border-b border-border px-4`,children:e})}function n9r({renderPreview:e}){let{activeFilePath:t}=U9();return t?(0,W.jsx)(Rw,{className:`min-h-0 flex-1`,children:(0,W.jsx)(v7r,{renderPreview:e})}):(0,W.jsx)(aw,{variant:`fill`,titleSlot:`Select a file`})}var G9={Root:Y7r,Aside:Z7r,AsideHeader:Q7r,Search:E7r,SearchToggle:T7r,CreateDirectory:S7r,Tree:$7r,ActiveFile:e9r,ActiveFileHeader:t9r,FilePath:g7r,ActiveFileContent:n9r};function r9r({asideActions:e,renderPreview:t,...n}){return(0,W.jsxs)(G9.Root,{...n,children:[(0,W.jsxs)(G9.Aside,{children:[(0,W.jsx)(G9.AsideHeader,{actions:(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(G9.SearchToggle,{}),(0,W.jsx)(G9.CreateDirectory,{}),(0,W.jsx)(P7r,{}),e]}),children:(0,W.jsx)(G9.Search,{})}),(0,W.jsx)(G9.Tree,{})]}),(0,W.jsxs)(G9.ActiveFile,{children:[(0,W.jsx)(G9.ActiveFileHeader,{children:(0,W.jsx)(G9.FilePath,{})}),(0,W.jsx)(G9.ActiveFileContent,{renderPreview:t})]})]})}var i9r=()=>(0,W.jsx)(aw,{titleSlot:`No Workspaces yet`,descriptionSlot:(0,W.jsxs)(W.Fragment,{children:[`Add a workspace to your Mastra configuration to `,(0,W.jsx)(`br`,{}),`manage files, skills, and enable semantic search.`]}),actionSlot:(0,W.jsx)(Y,{variant:`ghost`,render:(0,W.jsx)(`a`,{href:`https://mastra.ai/en/docs/workspace/overview`,target:`_blank`,rel:`noopener noreferrer`}),icon:(0,W.jsx)(tC,{}),children:`Workspaces documentation`}),variant:`fill`}),a9r=()=>(0,W.jsx)(aw,{titleSlot:`Workspace Not Configured`,descriptionSlot:(0,W.jsxs)(W.Fragment,{children:[`No workspace is configured. Add a workspace to your `,(0,W.jsx)(`br`,{}),`Mastra configuration to manage files, skills, and enable semantic search.`]}),actionSlot:(0,W.jsx)(Y,{variant:`ghost`,render:(0,W.jsx)(`a`,{href:`https://mastra.ai/en/docs/workspace/overview`,target:`_blank`,rel:`noopener noreferrer`}),icon:(0,W.jsx)(tC,{}),children:`Workspaces documentation`}),variant:`fill`}),o9r=()=>(0,W.jsx)(aw,{titleSlot:`Workspace Not Supported`,descriptionSlot:(0,W.jsxs)(W.Fragment,{children:[`The workspace feature requires a newer version of `,(0,W.jsx)(`code`,{className:`text-foreground`,children:`@mastra/core`}),`.`,(0,W.jsx)(`br`,{}),`Please upgrade your dependencies to enable workspace functionality.`]}),actionSlot:(0,W.jsx)(Y,{variant:`ghost`,render:(0,W.jsx)(`a`,{href:`https://mastra.ai/en/docs/workspace/overview`,target:`_blank`,rel:`noopener noreferrer`}),icon:(0,W.jsx)(tC,{}),children:`Workspaces documentation`}),variant:`fill`}),s9r=`.agents/skills`,c9r=e=>e.replace(/^\.?\/+|\/+$/g,``);function l9r({workspaceId:e,showInitWarning:t,skills:n}){let{data:r}=bX({workspaceId:e,path:s9r,queryOptions:{enabled:!!n}}),i=n&&r?r.filter(e=>e.type===`directory`&&!n.some(t=>t.name===e.name||c9r(t.path)===`${s9r}/${e.name}`)):[];return!t&&i.length===0?null:(0,W.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-2 border-b border-border p-3`,children:[t&&(0,W.jsx)(oN,{variant:`warning`,children:(0,W.jsxs)(oN.Message,{children:[`File search requires `,(0,W.jsx)(`code`,{children:`workspace.init()`}),` to index files from your configured`,` `,(0,W.jsx)(`code`,{children:`autoIndexPaths`}),`.`]})}),i.length>0&&(0,W.jsx)(oN,{variant:`warning`,title:`Skills installed but not discovered`,children:(0,W.jsxs)(oN.Message,{children:[i.map(e=>e.name).join(`, `),` `,i.length===1?`is`:`are`,` in`,` `,(0,W.jsx)(`code`,{children:s9r}),` but not discovered. Add this path to your workspace skills configuration to see `,i.length===1?`it`:`them`,`.`]})})]})}var K9=[_R(`/workspaces`)],u9r=e=>aR(e)?`you don't have permission to modify this workspace`:e instanceof Error?e.message:`Unknown error`;function d9r(){let{workspaceId:e}=Kv(),[t,n]=ty(),r=Gv(),i=B_(),a=t.get(`file`),{data:o,error:s,isLoading:c}=iDn(),l=o?.workspaces??[],u=e??l[0]?.id,{data:d,isLoading:f,error:p}=rDn({workspaceId:u,queryOptions:{enabled:!!u}}),m=iR(s)||iR(p),h=aR(s)||aR(p),g=zEn(s)||zEn(p),_=u?l.find(e=>e.id===u):void 0,v=e=>{let r=new URLSearchParams(t);for(let[t,n]of Object.entries(e))n===null?r.delete(t):r.set(t,n);n(r)},y=e=>{r(`/workspaces/${e}`)},b=e=>{v({file:e??null})},x=a??void 0,S=oDn(),C=sDn(),{data:w,refetch:T}=mDn({workspaceId:u,queryOptions:{enabled:!!u}}),E=$En(),D=eDn(),O=tDn(),k=e=>{let t=/^\.agents\/skills\/([^/]+)$/.exec(e);if(t)return ae.find(t=>t.path?.replace(/^\.?\/+|\/+$/g,``)===e)?.name??t[1]},A=async()=>{if(u)try{let e=await D.mutateAsync({workspaceId:u}),t=e.updated.filter(e=>!e.success);t.length>0?fw.error(`Failed to update ${t.map(e=>e.skillName).join(`, `)}`):fw.success(`${e.updated.length} skill(s) updated`),i.invalidateQueries({queryKey:[`workspace`,u,`fs`]})}catch(e){fw.error(`Failed to update skills: ${e instanceof Error?e.message:`Unknown error`}`)}},j=async({path:e,type:t})=>{if(!u)return;let n=t===`directory`?k(e):void 0;if(n)try{if(!(await O.mutateAsync({workspaceId:u,skillName:n})).success)throw Error(`Failed to remove skill "${n}"`);fw.success(`Skill "${n}" removed`),T()}catch(e){throw fw.error(e instanceof Error?e.message:`Failed to remove skill`),e}else try{await S.mutateAsync({path:e,recursive:!0,force:!0,workspaceId:u})}catch(t){throw fw.error(`Failed to delete ${e}: ${u9r(t)}`),t}},M=d?.isWorkspaceConfigured??!1,N=d?.capabilities?.hasFilesystem??!1,P=d?.capabilities?.hasSkills??!1,F=_?.safety?.readOnly??!1,{canEdit:I,canDelete:L,canExecute:R,isLoading:z}=_w(),B=!z&&I(`workspaces`)&&!F,V=!z&&L(`workspaces`)&&!F,ee=!z&&R(`workspaces`),te=N&&P&&B,ne=d?.mounts,re=ne?.filter(e=>!e.readOnly).map(e=>({path:e.path,displayName:e.displayName,icon:e.icon,provider:e.provider,name:e.name})),ie=async e=>{if(u)try{let t=await E.mutateAsync({...e,workspaceId:u});if(!t.success)throw Error(`Unknown error`);i.invalidateQueries({queryKey:[`workspace`,u,`fs`]}),T(),fw.success(`Skill "${t.skillName}" installed successfully (${t.filesWritten} files)`)}catch(e){throw fw.error(`Failed to install skill: ${e instanceof Error?e.message:`Unknown error`}`),e}},ae=w?.skills??[],oe=w?.isSkillsConfigured??!1,se=ee&&N&&!!(d?.capabilities?.canBM25||d?.capabilities?.canVector),ce=ee&&P&&oe&&ae.length>0,le=F?[`.`]:(ne??[]).filter(e=>e.readOnly).map(e=>e.path.replace(/^\/+|\/+$/g,``)||`.`);if(c)return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:K9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Workspaces`}),(0,W.jsx)(dt,{fill:!0})]});if(m)return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:K9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Workspaces`}),(0,W.jsx)(CK,{variant:`fill`})]});if(h)return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:K9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Workspaces`}),(0,W.jsx)(SK,{variant:`fill`,resource:`workspaces`})]});if(g)return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:K9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Workspaces`}),(0,W.jsx)(o9r,{})]});let ue=s||p;if(ue)return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:K9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Workspaces`}),(0,W.jsx)(aw,{tone:`error`,variant:`fill`,titleSlot:`Failed to load workspace`,descriptionSlot:ue.message})]});if(!c&&l.length===0)return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:K9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Workspaces`}),(0,W.jsx)(i9r,{})]});if(!f&&!c&&!M)return(0,W.jsxs)(Bw,{breadcrumbs:(0,W.jsx)(IL,{crumbs:K9}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Workspaces`}),(0,W.jsx)(a9r,{})]});let de=l.map(e=>({value:e.id,label:e.name,description:e.source===`agent`?`Agent: ${e.agentName}`:`Global workspace`,end:(0,W.jsxs)(`span`,{className:`flex shrink-0 gap-1`,children:[e.safety?.readOnly&&(0,W.jsx)(GT,{size:`xs`,variant:`warning`,children:`Read-only`}),e.capabilities.hasFilesystem&&(0,W.jsx)(GT,{size:`xs`,children:`FS`}),e.capabilities.hasSandbox&&(0,W.jsx)(GT,{size:`xs`,children:`Sandbox`}),e.capabilities.hasSkills&&(0,W.jsx)(GT,{size:`xs`,children:`Skills`})]})}));return(0,W.jsxs)(Bw,{variant:`fit`,breadcrumbs:(0,W.jsx)(IL,{crumbs:K9}),headerActions:(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(FL,{"aria-label":`Workspace`,variant:`ghost`,className:`w-auto`,options:de,value:_?.id,onValueChange:y,placeholder:`Select workspace`,searchPlaceholder:`Search workspaces...`,emptyText:`No workspaces found.`}),F&&(0,W.jsx)(GT,{size:`xs`,variant:`warning`,children:`Read-only`})]}),children:[(0,W.jsx)(`h1`,{className:`sr-only`,children:`Workspaces`}),(0,W.jsxs)(`div`,{className:`flex min-h-0 flex-col`,children:[N&&u&&(0,W.jsx)(l9r,{workspaceId:u,showInitWarning:se&&!f&&d?.status!==`ready`,skills:P&&w?ae:void 0}),N&&u&&(0,W.jsx)(`div`,{className:`min-h-0 flex-1`,children:(0,W.jsx)(r9r,{workspaceId:u,activeFilePath:x,onActiveFileChange:b,readOnlyPaths:le,skillCount:P&&w?ae.length:void 0,searchFiles:se,searchSkills:ce,onCreateDirectory:B?async e=>{try{await C.mutateAsync({path:e,recursive:!0,workspaceId:u})}catch(t){throw fw.error(`Failed to create ${e}: ${u9r(t)}`),t}}:void 0,asideActions:te&&ae.some(e=>e.path?.includes(`.agents/skills/`))?(0,W.jsx)(Y,{variant:`ghost`,size:`icon-sm`,tooltip:`Update skills`,disabled:D.isPending,onClick:()=>void A(),children:(0,W.jsx)(FC,{className:D.isPending?`animate-spin`:void 0})}):void 0,addSkill:te?{onInstall:ie,installedSkillIds:ae.filter(e=>e.skillsShSource).map(e=>`${e.skillsShSource.owner}/${e.skillsShSource.repo}/${e.name}`),installedSkillNames:ae.filter(e=>!e.skillsShSource).map(e=>e.name),writableMounts:re,installedSkillPaths:Object.fromEntries(ae.filter(e=>e.path).map(e=>[e.name,e.path]))}:void 0,onDelete:V?j:void 0},u)}),!N&&!f&&(0,W.jsx)(`div`,{className:`min-h-0 flex-1`,children:(0,W.jsx)(aw,{variant:`fill`,titleSlot:`No filesystem or skills configured`,descriptionSlot:`Add a filesystem or skills to this workspace to browse its files here.`})})]})]})}function f9r({children:e,className:t,mobileHeader:n,ref:r,sidebar:i,...a}){return(0,W.jsxs)(`div`,{ref:r,"data-slot":`app-shell`,className:H(`h-full min-h-0`,i&&`lg:grid lg:grid-cols-[auto_minmax(0,1fr)] lg:grid-rows-[1fr]`,t),...a,children:[i,(0,W.jsxs)(`div`,{"data-slot":`app-shell-content`,className:`flex h-full min-h-0 min-w-0 flex-col`,children:[n,(0,W.jsx)(`div`,{"data-slot":`app-shell-body`,className:H(`flex min-h-0 flex-1 flex-col`,`lg:py-2 lg:pr-2`,i?`lg:pl-0`:`lg:pl-2`),children:e})]})]})}function p9r({children:e,className:t}){return(0,W.jsx)(`div`,{"data-slot":`main-card`,className:H(`relative min-h-0 flex-1 overflow-hidden lg:rounded-studio-frame lg:p-px lg:shadow-raised`,ELe,t),children:e})}function m9r(){return(0,W.jsxs)(`div`,{className:`h-screen bg-sidebar`,children:[(0,W.jsx)(uw,{position:`bottom-right`}),(0,W.jsx)(We,{defaultTheme:`system`,children:(0,W.jsx)(rS,{delayDuration:0,children:(0,W.jsx)(f9r,{children:(0,W.jsx)(p9r,{className:`flex items-center justify-center overflow-y-auto`,children:(0,W.jsx)(Yv,{})})})})})]})}function h9r(){let{data:e,isLoading:t}=Y_(),{isLoading:n,canAccessAgentBuilder:r}=vw();return t||n||!e||e.enabled&&!J_(e)?{isVisible:!1}:{isVisible:r}}function g9r(){let{isImpersonating:e,impersonatedRole:t,stopImpersonation:n}=gw();return!e||!t?null:(0,W.jsxs)(`div`,{className:`mx-3 mb-2 flex items-center gap-2 rounded-md border border-info-edge bg-info-subtle px-3 py-1.5`,children:[(0,W.jsx)(nC,{className:`h-3.5 w-3.5 shrink-0 text-info-subtle-foreground`}),(0,W.jsxs)(Z,{variant:`meta`,className:`truncate text-info-subtle-foreground`,children:[`Previewing `,(0,W.jsx)(`span`,{className:`font-medium capitalize`,children:t.name}),` experience`]}),(0,W.jsx)(`button`,{type:`button`,onClick:n,className:`ml-auto shrink-0 rounded p-0.5 text-info-subtle-foreground hover:bg-info-edge`,title:`Exit role preview`,children:(0,W.jsx)(tw,{className:`h-3 w-3`})})]})}function _9r({children:e,contentClassName:t,commandClassName:n,showOverlay:r=!0,overlayClassName:i,...a}){return(0,W.jsx)(vVr,{size:`xl`,showOverlay:r,overlayClassName:H(`bg-sidebar/40 backdrop-blur-none`,i),contentClassName:H(`command-palette-popup overflow-visible bg-transparent shadow-none`,t),commandClassName:H(`command-palette-shell gap-2 overflow-visible rounded-none bg-transparent text-muted-foreground shadow-none backdrop-blur-none`,`[&_[data-slot=command-input-wrapper]_svg]:text-muted-foreground`,`**:[[cmdk-input]]:h-full **:[[cmdk-input]]:text-body`,`**:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:pt-2 **:[[cmdk-group-heading]]:pb-1 **:[[cmdk-group]]:p-0`,`**:[[cmdk-item]]:px-2 **:[[cmdk-item]]:py-1.5`,n),...a,children:e})}function v9r({wrapperClassName:e,...t}){return(0,W.jsx)(yVr,{wrapperClassName:H(`command-palette-surface command-palette-surface-input`,_S,`h-11 shrink-0 rounded-xl border-0 px-3 pr-11`,e),...t})}function y9r({children:e,className:t,...n}){return(0,W.jsx)(`div`,{className:`min-h-0 flex-1`,children:(0,W.jsx)(`div`,{className:H(`grid h-full min-h-0 grid-rows-[auto_minmax(0,1fr)] gap-2 md:grid-cols-[13rem_minmax(0,1fr)] md:grid-rows-none`,t),...n,children:e})})}function b9r({children:e,className:t,...n}){return(0,W.jsx)(`aside`,{className:H(`command-palette-surface command-palette-surface-rail flex max-h-[min(14rem,32dvh)] min-h-0 flex-col overflow-hidden rounded-xl p-2 md:h-full md:max-h-none`,iy,t),...n,children:(0,W.jsx)(Rw,{className:`-m-1 min-h-0 flex-1 p-1`,children:(0,W.jsx)(Lw,{className:`pr-1`,children:(0,W.jsx)(`div`,{className:`flex flex-col gap-1`,children:e})})})})}function x9r({icon:e,label:t,count:n,active:r,onSelect:i}){return(0,W.jsxs)(`button`,{type:`button`,className:H(Tw,`flex h-9 w-full cursor-pointer items-center gap-2 rounded-lg border border-transparent px-2.5 text-left text-body-sm hover:border-border hover:bg-fill-subtle data-[active=true]:border-border data-[active=true]:bg-fill-hover data-[active=true]:text-foreground`,`transition-[color,transform] duration-fast ease-out-custom active:scale-[0.99] motion-reduce:transition-none`),"data-active":r,"aria-pressed":r,onClick:i,children:[(0,W.jsx)(`span`,{className:`flex size-4 shrink-0 items-center justify-center [&>svg]:size-4`,children:e}),(0,W.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:t}),(0,W.jsx)(Z,{as:`span`,variant:`meta`,tone:`muted`,className:`rounded-md border border-border bg-muted/70 px-1.5 py-0.5 leading-none`,children:n})]})}function S9r({children:e,footer:t,...n}){return(0,W.jsxs)(`div`,{role:`region`,className:H(`command-palette-surface command-palette-surface-results command-palette-results-panel relative flex min-h-0 min-w-0 flex-col overflow-hidden rounded-xl`,iy),...n,children:[(0,W.jsx)(bVr,{scrollArea:!0,scrollAreaClassName:`min-h-0 flex-1 rounded-none`,scrollAreaViewportClassName:`command-palette-scroll-viewport`,className:`command-palette-list max-h-none rounded-none border-none bg-transparent shadow-none`,highlightClassName:`rounded-lg`,children:e}),t]})}function q9({icon:e,title:t,subtitle:n,path:r,badge:i,shortcut:a,className:o,...s}){return(0,W.jsxs)(CVr,{className:H(`group h-auto items-start gap-3 rounded-lg border border-transparent px-3 py-2.5 data-[selected=true]:border-border`,o),...s,children:[(0,W.jsx)(`span`,{className:H(`mt-0.5 flex size-4 max-w-4 min-w-4 shrink-0 basis-4 items-center justify-center text-muted-foreground group-data-[selected=true]:text-foreground [&>svg]:!size-4 [&>svg]:shrink-0`,lS),children:e}),(0,W.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,W.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,W.jsx)(Z,{as:`span`,variant:`label`,tone:`ink`,className:`truncate`,children:t}),i&&(0,W.jsx)(Z,{as:`span`,variant:`meta`,tone:`muted`,className:`shrink-0 rounded-md border border-border bg-muted/60 px-1.5 py-0.5 leading-none uppercase`,children:i})]}),(n||r)&&(0,W.jsxs)(Z,{as:`span`,variant:`meta`,tone:`muted`,className:`flex min-w-0 items-center gap-2`,children:[n&&(0,W.jsx)(`span`,{className:`truncate`,children:n}),r&&(0,W.jsx)(Z,{as:`span`,variant:`meta`,tone:`muted`,font:`mono`,className:`max-w-52 truncate rounded-md border border-border bg-muted/70 px-1.5 py-0.5 leading-none`,children:r})]})]}),a&&(0,W.jsx)(wVr,{children:a})]})}function C9r({label:e}){return(0,W.jsxs)(`div`,{className:`command-palette-footer pointer-events-none absolute inset-x-0 bottom-0 z-20 flex items-end justify-between gap-3 px-3 pt-3 pb-2 text-meta text-muted-foreground`,children:[(0,W.jsx)(`span`,{className:`truncate`,children:e}),(0,W.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1.5`,children:[(0,W.jsx)(wS,{size:`sm`,children:`↑`}),(0,W.jsx)(wS,{size:`sm`,children:`↓`}),(0,W.jsx)(wS,{size:`sm`,children:`↵`}),(0,W.jsx)(wS,{size:`sm`,children:`Esc`})]})]})}var J9=!1,w9r=new Set,T9r=()=>{w9r.forEach(e=>e())},E9r=e=>(w9r.add(e),()=>w9r.delete(e)),D9r=()=>J9,O9r=e=>{let t=typeof e==`function`?e(J9):e;t!==J9&&(J9=t,T9r())},k9r=({enableShortcut:e=!0}={})=>{let t=(0,U.useSyncExternalStore)(E9r,D9r,D9r),n=(0,U.useCallback)(e=>{O9r(e)},[]),r=(0,U.useCallback)(()=>{O9r(e=>!e)},[]);return(0,U.useEffect)(()=>{if(!e)return;let t=e=>{e.key===`k`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),r())};return document.addEventListener(`keydown`,t),()=>document.removeEventListener(`keydown`,t)},[e,r]),{open:t,setOpen:n,toggle:r}};function A9r(e,t){return[e.name,e.url,t,`path route navigate`].filter(Boolean).join(` `)}function j9r(e){return!e||e===`Studio`?`Path`:e}function M9r(e){return`/traces?entity=${encodeURIComponent(e)}`}var N9r=({scopeOptions:e,activeScope:t,onScopeChange:n})=>(0,W.jsx)(b9r,{"aria-label":`Search categories`,children:e.map(e=>(0,W.jsx)(x9r,{icon:e.icon,label:e.label,count:e.count,active:t===e.id,onSelect:()=>n(e.id)},e.id))}),P9r=({sidebar:e,activeScope:t,closeCommand:n})=>!e||t!==`all`&&t!==`settings`?null:(0,W.jsx)(B5,{heading:`Commands`,children:(0,W.jsx)(q9,{value:`toggle sidebar collapse expand layout panel`,onSelect:()=>{e.toggleSidebar(),n()},icon:(0,W.jsx)(wKe,{}),title:`Toggle sidebar`,subtitle:`Studio layout`})}),F9r=({sections:e,handleSelect:t})=>(0,W.jsx)(W.Fragment,{children:e.map(e=>(0,W.jsx)(B5,{heading:e.title,children:e.items.map(n=>{let r=n.Icon;return(0,W.jsx)(q9,{value:A9r(n,e.title),onSelect:()=>t(n.url),icon:(0,W.jsx)(r,{}),title:n.name,subtitle:`Studio path`,path:n.url,badge:j9r(e.title)},n.url)})},e.key))}),I9r=({visible:e,entries:t,paths:n,handleSelect:r})=>!e||t.length===0?null:(0,W.jsx)(B5,{heading:`Agents`,children:t.map(([e,t])=>(0,W.jsx)(q9,{value:`${t.name} ${e} chat agent conversation thread ${n.agentLink(e)}`,onSelect:()=>r(n.agentLink(e)),icon:(0,W.jsx)(dR,{}),title:t.name,subtitle:`Agent chat`,path:n.agentLink(e),badge:`Agent`},e))}),L9r=({visible:e,entries:t,paths:n,handleSelect:r})=>!e||t.length===0?null:(0,W.jsx)(B5,{heading:`Workflows`,children:t.map(([e,t])=>(0,W.jsx)(q9,{value:`${t.name} ${e} graph workflow view ${n.workflowLink(e)}`,onSelect:()=>r(n.workflowLink(e)),icon:(0,W.jsx)(pL,{}),title:t.name,subtitle:`Workflow graph`,path:n.workflowLink(e),badge:`Workflow`},e))}),R9r=({visible:e,entries:t,paths:n,handleSelect:r})=>!e||t.length===0?null:(0,W.jsx)(B5,{heading:`Tools`,children:t.map(([e,t])=>(0,W.jsx)(q9,{value:`tool ${t.id} ${e} ${n.toolLink(e)}`,onSelect:()=>r(n.toolLink(e)),icon:(0,W.jsx)(hR,{}),title:t.id,subtitle:`Tool definition`,path:n.toolLink(e),badge:`Tool`},e))}),z9r=({visible:e,entries:t,paths:n,handleSelect:r})=>!e||t.length===0?null:(0,W.jsx)(B5,{heading:`Processors`,children:t.map(e=>{let t=e.name||e.id,i=e.isWorkflow?n.workflowLink(e.id)+`/graph`:n.processorLink(e.id);return(0,W.jsx)(q9,{value:`processor ${t} ${e.id} ${i}`,onSelect:()=>r(i),icon:(0,W.jsx)(XS,{}),title:t,subtitle:e.isWorkflow?`Workflow processor`:`Processor`,path:i,badge:`Processor`},e.id)})}),B9r=({visible:e,entries:t,paths:n,handleSelect:r})=>!e||t.length===0?null:(0,W.jsx)(B5,{heading:`MCP Servers`,children:t.map(e=>(0,W.jsx)(q9,{value:`mcp server ${e.name} ${e.id} ${n.mcpServerLink(e.id)}`,onSelect:()=>r(n.mcpServerLink(e.id)),icon:(0,W.jsx)(fR,{}),title:e.name,subtitle:`MCP server`,path:n.mcpServerLink(e.id),badge:`MCP`},e.id))}),V9r=({visible:e,agentEntries:t,workflowEntries:n,handleSelect:r})=>e?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(B5,{heading:`Observability`,children:[(0,W.jsx)(q9,{value:`observability traces telemetry signals /traces`,onSelect:()=>r(`/traces`),icon:(0,W.jsx)(nC,{}),title:`Traces`,subtitle:`Runtime traces`,path:`/traces`,badge:`Signal`}),(0,W.jsx)(q9,{value:`metrics usage latency performance tokens /metrics`,onSelect:()=>r(`/metrics`),icon:(0,W.jsx)(fC,{}),title:`Metrics`,subtitle:`Runtime metrics`,path:`/metrics`,badge:`Signal`}),(0,W.jsx)(q9,{value:`logs events runtime /logs`,onSelect:()=>r(`/logs`),icon:(0,W.jsx)(nC,{}),title:`Logs`,subtitle:`Runtime logs`,path:`/logs`,badge:`Signal`})]}),t.length>0&&(0,W.jsx)(B5,{heading:`Agent Traces`,children:t.map(([e,t])=>{let n=M9r(e);return(0,W.jsx)(q9,{value:`${t.name} ${e} traces agent observability telemetry`,onSelect:()=>r(n),icon:(0,W.jsx)(nC,{}),title:t.name,subtitle:`Agent traces`,path:n,badge:`Trace`},e)})}),n.length>0&&(0,W.jsx)(B5,{heading:`Workflow Traces`,children:n.map(([e,t])=>{let n=M9r(t.name);return(0,W.jsx)(q9,{value:`${t.name} ${e} traces workflow observability telemetry`,onSelect:()=>r(n),icon:(0,W.jsx)(nC,{}),title:t.name,subtitle:`Workflow traces`,path:n,badge:`Trace`},e)})})]}):null,H9r=({visible:e,entries:t,paths:n,handleSelect:r})=>!e||t.length===0?null:(0,W.jsx)(B5,{heading:`Scorers`,children:t.map(([e,t])=>{let i=t.scorer?.config?.name||t.scorer?.config?.id||e;return(0,W.jsx)(q9,{value:`scorer score evaluation ${i} ${e} ${n.scorerLink(e)}`,onSelect:()=>r(n.scorerLink(e)),icon:(0,W.jsx)(fC,{}),title:i,subtitle:`Evaluation scorer`,path:n.scorerLink(e),badge:`Scorer`},e)})}),U9r=()=>{let{open:e,setOpen:t}=k9r(),{navigate:n,paths:r}=Ft(),{isMastraPlatform:i}=V6(),a=I4(),[o,s]=U.useState(`all`),{data:c={}}=WL(),{data:l={}}=_L(),{data:u={}}=tX(),{data:d={}}=rR(),{data:f=[]}=nR(),{data:p={}}=uR(),{isCmsAvailable:m,isLoading:h}=Q4(),{hasPermission:g,hasAnyPermission:_,isLoading:v}=_w(),y=e=>{t(e),e||s(`all`)},b=()=>y(!1),x=e=>{n(e),b()},S=U.useCallback(e=>{if(e.hidden||e.url===`/prompts`&&!m&&!h||i&&!e.isOnMastraPlatform)return!1;let t=xw(e.url);return v&&t&&t!==`public`?!1:Sw(t,g,_)},[_,g,m,h,i,v]),C=Object.entries(c),w=Object.entries(l),T=Object.entries(u),E=Object.values(d).filter(e=>e.phases&&e.phases.length>0),D=Object.entries(p),O=U.useMemo(()=>{let e=[];for(let t of CNt){let n=t.items.filter(S);n.length>0&&e.push({key:t.key,title:t.title,items:n})}let t=[...wNt.filter(S),...i?[]:[{name:`Templates`,url:`/templates`,Icon:DC,isOnMastraPlatform:!1}]];return t.length===0?e:[...e,{key:`studio`,title:`Studio`,items:t}]},[S,i]),k=O.reduce((e,t)=>e+t.items.length,0),A=T.length+E.length+f.length,j=D.length,M=C.length+w.length+3,N=O.find(e=>e.key===`studio`)?.items.length??0,P=k+C.length+w.length+A+j+M,F=[{id:`all`,label:`All`,icon:(0,W.jsx)(zC,{}),count:P},{id:`paths`,label:`Paths`,icon:(0,W.jsx)(zKe,{}),count:k},{id:`agents`,label:`Agents`,icon:(0,W.jsx)(dR,{}),count:C.length},{id:`workflows`,label:`Workflows`,icon:(0,W.jsx)(pL,{}),count:w.length},{id:`tooling`,label:`Tooling`,icon:(0,W.jsx)(vC,{}),count:A},{id:`evaluation`,label:`Evaluation`,icon:(0,W.jsx)(fC,{}),count:j},{id:`observability`,label:`Intelligence`,icon:(0,W.jsx)(nC,{}),count:M},{id:`settings`,label:`Studio`,icon:(0,W.jsx)(ZKe,{}),count:N}],I=o===`all`||o===`paths`,L=o===`all`||o===`agents`,R=o===`all`||o===`workflows`,z=o===`all`||o===`tooling`,B=o===`all`||o===`evaluation`,V=o===`all`||o===`observability`,ee=o===`settings`,te=U.useMemo(()=>{let e=[];for(let t of O)ee?t.key===`studio`&&e.push(t):(o===`evaluation`&&t.key===`evaluation`||o===`observability`&&t.key===`observability`||I&&(o===`all`||t.key!==`studio`))&&e.push(t);return e},[o,O,I,ee]);return(0,W.jsxs)(_9r,{open:e,onOpenChange:y,title:`Mastra Studio Search`,description:`Search Studio routes and runtime entities`,children:[(0,W.jsx)(v9r,{placeholder:`Search Studio, agents, workflows, tools, paths...`}),(0,W.jsxs)(y9r,{children:[(0,W.jsx)(N9r,{scopeOptions:F,activeScope:o,onScopeChange:s}),(0,W.jsxs)(S9r,{"aria-label":`Search results`,footer:(0,W.jsx)(C9r,{label:`Studio search`}),children:[(0,W.jsx)(xVr,{children:`No matching results.`}),(0,W.jsx)(P9r,{sidebar:a,activeScope:o,closeCommand:b}),(0,W.jsx)(F9r,{sections:te,handleSelect:x}),(0,W.jsx)(I9r,{visible:L,entries:C,paths:r,handleSelect:x}),(0,W.jsx)(L9r,{visible:R,entries:w,paths:r,handleSelect:x}),(0,W.jsx)(R9r,{visible:z,entries:T,paths:r,handleSelect:x}),(0,W.jsx)(z9r,{visible:z,entries:E,paths:r,handleSelect:x}),(0,W.jsx)(B9r,{visible:z,entries:f,paths:r,handleSelect:x}),(0,W.jsx)(V9r,{visible:V,agentEntries:C,workflowEntries:w,handleSelect:x}),(0,W.jsx)(H9r,{visible:B,entries:D,paths:r,handleSelect:x})]})]})]})};function W9r(e,t,n=[]){let r=e=>t===e||t.startsWith(e+`/`);return n.some(t=>t!==e&&t.url.startsWith(e.url+`/`)&&r(t.url))?!1:r(e.url)?!0:e.activePaths?.some(r)??!1}function G9r(e){let{Icon:t}=e;return{name:e.name,url:e.url,icon:(0,W.jsx)(t,{})}}function K9r(){let{state:e,isMobile:t,setOpenMobile:n}=L4(),{setOpen:r}=k9r({enableShortcut:!1}),i=ZOr(`K`),a=Wv().pathname,{isMastraPlatform:o}=V6(),{data:s}=Y_(),{isCmsAvailable:c,isLoading:l}=Q4(),{hasPermission:u,hasAnyPermission:d,isLoading:f}=_w(),{data:p}=u3n(),m=p!==void 0&&p.status!==`not-mounted`,h=s&&J_(s),g=new Set([`/prompts`]),{isVisible:_}=h9r(),v=a===`/agent-builder`||a.startsWith(`/agent-builder/`),y=()=>{t&&n(!1),r(!0)},b=e=>{if(e.hidden||e.url===`/connections`&&!m||g.has(e.url)&&!c&&!l||o&&!e.isOnMastraPlatform)return!1;if(f){let t=xw(e.url);if(t&&t!==`public`)return!1}return!!Sw(xw(e.url),u,d)},{data:x}=nR(),{data:S}=iDn(),C=wNt.filter(b),w=CNt.map(e=>{let t=e.items.filter(b),n=e=>({...G9r(e),isActive:W9r(e,a,t)});return{key:e.key,title:e.title,href:e.href,isHeaderActive:!(!e.href||a!==e.href||t.some(e=>W9r(e,a,t))),links:t.filter(e=>!e.foldable).map(n),moreLinks:t.filter(e=>e.foldable).map(e=>({...n(e),defaultVisible:e.url===`/mcps`&&!!x?.length||e.url===`/workspaces`&&!!S?.workspaces.length}))}});return(0,W.jsxs)(B4,{"aria-label":`Sidebar`,children:[(0,W.jsxs)(B4.Header,{collapsedLogo:(0,W.jsx)(qQ,{className:`size-6`}),actions:h&&(0,W.jsx)(WJn,{}),children:[(0,W.jsx)(B4.Brand,{logo:(0,W.jsx)(qQ,{className:`size-6`}),title:`Mastra Studio`}),!t&&(0,W.jsx)(B4.SearchTrigger,{"aria-label":`Search and navigate`,shortcut:i,onClick:y}),(0,W.jsx)(B4.Trigger,{})]}),_&&(0,W.jsx)(B4.NavList,{className:`mb-1`,children:(0,W.jsx)(B4.NavLink,{state:e,link:{name:`Agent Builder`,url:`/agent-builder`,icon:(0,W.jsx)(ew,{})},isActive:v})}),(0,W.jsx)(g9r,{}),(0,W.jsx)(B4.Nav,{children:(0,W.jsx)(B4.Sections,{sections:w,visibilityStorageKey:`mastra:studio:sidebar-visibility`})}),(0,W.jsx)(B4.Footer,{children:(0,W.jsxs)(B4.NavList,{children:[C.map(t=>(0,W.jsx)(B4.NavLink,{state:e,link:G9r(t),isActive:W9r(t,a)},t.name)),(0,W.jsx)(sgr,{state:e})]})})]})}var q9r=()=>{let{baseUrl:e,headers:t,apiPrefix:n,setConfig:r}=Cw(),[i,a]=(0,U.useState)(()=>Object.entries(t).map(([e,t])=>({name:e,value:t})));return(0,W.jsx)(rS,{delayDuration:0,children:(0,W.jsxs)(bK,{onSubmit:t=>{t.preventDefault();let a=new FormData(t.currentTarget),o={};for(let e=0;e<i.length;e++){let t=a.get(`headers.${e}.name`),n=a.get(`headers.${e}.value`);typeof t==`string`&&typeof n==`string`&&(o[t]=n)}r({headers:o,baseUrl:e,apiPrefix:n}),fw.success(`Headers saved`)},className:`w-full max-w-md gap-6 text-left`,children:[(0,W.jsx)(Wpr,{headers:i,onAddHeader:e=>{a(t=>[...t,e])},onRemoveHeader:e=>{a(t=>t.filter((t,n)=>n!==e))}}),(0,W.jsxs)(Y,{type:`submit`,className:`ml-auto`,children:[(0,W.jsx)(RC,{}),`Save headers`]})]})})};function J9r({children:e,loginUrl:t=`/login`,signupUrl:n=`/signup`}){let{data:r,isLoading:i}=Y_();if(i||!r?.enabled||J_(r))return(0,W.jsx)(W.Fragment,{children:e});let a=typeof window<`u`?window.location.href:void 0;return r.login?(0,W.jsx)(`div`,{className:`flex h-full w-full items-center justify-center`,children:(0,W.jsxs)(`div`,{className:`flex flex-col items-center space-y-6 text-center`,children:[(0,W.jsx)(qQ,{className:`h-16 w-16 opacity-50`}),(0,W.jsxs)(`div`,{className:`space-y-2`,children:[(0,W.jsx)(Z,{as:`h2`,variant:`heading`,tone:`ink`,children:`Sign in to continue`}),(0,W.jsx)(`p`,{className:`max-w-sm text-muted-foreground`,children:`You need to sign in to access this page.`})]}),r.login.description&&(0,W.jsxs)(`div`,{className:`flex items-start gap-2.5 rounded-md border border-border bg-background p-3 text-left`,children:[(0,W.jsx)(CC,{className:`mt-0.5 h-4 w-4 shrink-0 text-muted-foreground`}),(0,W.jsx)(Z,{tone:`muted`,className:`max-w-sm`,children:r.login.description})]}),(0,W.jsx)(VJn,{config:r.login,redirectUri:a,loginUrl:t}),(r.login.type===`credentials`||r.login.type===`both`)&&r.login.signUpEnabled!==!1&&(0,W.jsxs)(`div`,{children:[(0,W.jsx)(Z,{as:`span`,variant:`body`,tone:`muted`,children:`Don't have an account? `}),(0,W.jsx)(`button`,{type:`button`,onClick:()=>{let e=new URL(JQ(n),window.location.origin);a&&e.searchParams.set(`redirect`,a),window.location.href=e.toString()},className:`text-foreground hover:underline`,children:(0,W.jsx)(Z,{as:`span`,variant:`body`,className:`block`,children:`Sign up`})})]})]})}):(0,W.jsx)(`div`,{className:`flex h-full w-full items-center justify-center`,children:(0,W.jsxs)(`div`,{className:`flex flex-col items-center space-y-6 text-center`,children:[(0,W.jsx)(qQ,{className:`h-16 w-16 opacity-50`}),(0,W.jsxs)(`div`,{className:`space-y-2`,children:[(0,W.jsx)(Z,{as:`h2`,variant:`heading`,tone:`ink`,children:`Authentication Required`}),(0,W.jsx)(`p`,{className:`max-w-sm text-muted-foreground`,children:`Add the authorization header that Studio needs to reach your Mastra server.`})]}),(0,W.jsx)(q9r,{})]})})}var Y9r=`experimental-ui:`,X9r=`current`,Z9r=U.createContext(null);function Q9r(e,t){let n=window.localStorage.getItem(Y9r+e);return n&&t.has(n)?n:X9r}function $9r({experiments:e,children:t}){let n=U.useMemo(()=>new Map(e.map(e=>[e.key,new Set(e.variants.map(e=>e.value))])),[e]),[r,i]=U.useState({});U.useLayoutEffect(()=>{let t={};for(let r of e){let e=n.get(r.key);t[r.key]=Q9r(r.key,e)}i(t)},[e,n]);let a=U.useCallback(e=>r[e]??X9r,[r]),o=U.useCallback((e,t)=>{window.localStorage.setItem(Y9r+e,t),i(n=>({...n,[e]:t}))},[]),s=U.useMemo(()=>({experiments:e,getVariant:a,setVariant:o}),[e,a,o]);return(0,W.jsx)(Z9r.Provider,{value:s,children:t})}var eei=[{key:`entity-list-page`,name:`Entity List page UI`,path:[`/agents`,`/prompts`,`/tools`,`/datasets`,`/scorers`,`/mcps`,`/workflows`,`/processors`],variants:[{value:`current`,label:`Current state`},{value:`new-proposal`,label:`New proposal`}]}],tei=()=>({experimentalUIEnabled:typeof window<`u`&&window.MASTRA_EXPERIMENTAL_UI===`true`}),nei=()=>{let{toggleSidebar:e}=L4();return TS({"[":e},{repeat:!1}),null};function rei(){let{setOpenMobile:e}=L4(),{setOpen:t}=k9r({enableShortcut:!1});return(0,W.jsxs)(`header`,{className:`sticky top-0 z-20 flex h-12 shrink-0 items-center justify-between gap-3 border-b border-border bg-sidebar px-3 lg:hidden`,children:[(0,W.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,W.jsx)(B4.MobileTrigger,{}),(0,W.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,W.jsx)(qQ,{className:`size-[1.5rem] shrink-0`}),(0,W.jsx)(Z,{variant:`body-sm`,font:`display`,as:`span`,className:`whitespace-nowrap`,children:`Mastra Studio`})]})]}),(0,W.jsx)(Y,{type:`button`,variant:`ghost`,size:`icon-md`,tooltip:`Search`,"aria-label":`Search and navigate`,onClick:()=>{e(!1),t(!0)},className:`shrink-0`,children:(0,W.jsx)(zC,{})})]})}var iei={"studio-frame":100,"route-side-panel":0},aei={overflow:`visible`};function oei({children:e,className:t}){let n=LE(),{hasPanel:r,panelHandle:i,onPanelResize:a}=D7(),{defaultLayout:o,onLayoutChange:s}=Ovr({id:`studio-frame-layout-v1`,storage:localStorage});return(0,W.jsx)(`div`,{className:`relative flex min-h-0 flex-1`,children:(0,W.jsxs)(k3,{className:`min-h-0 flex-1`,style:aei,orientation:`horizontal`,defaultLayout:o??iei,onLayoutChange:s,children:[(0,W.jsx)(O3,{id:`studio-frame`,className:H(`min-w-0`,t),style:aei,children:e}),r&&!n&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(A3,{className:`w-2`}),(0,W.jsx)(Lvr,{id:`route-side-panel`,ref:i,direction:`right`,collapsible:!0,collapsedSize:0,hideExpandButton:!0,minSize:480,maxSize:`50%`,defaultSize:560,className:`min-w-0`,onResize:e=>a(e.inPixels),children:(0,W.jsx)(kJr,{className:`h-full min-h-0`})})]})]})})}function sei({children:e}){let{data:t,isFetched:n}=Y_(),{pathname:r}=Wv(),i=!(n&&t?.enabled&&!J_(t));return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(U9r,{}),(0,W.jsx)(f9r,{sidebar:i?(0,W.jsx)(K9r,{}):void 0,mobileHeader:i?(0,W.jsx)(rei,{}):void 0,children:(0,W.jsx)(oei,{className:`flex min-h-0 flex-1 flex-col`,children:(0,W.jsx)(p9r,{children:(0,W.jsx)(J9r,{children:(0,W.jsx)(EJe,{resetKeys:[r],children:e})})})})})]})}var cei=({children:e})=>{let{experimentalUIEnabled:t}=tei(),{Link:n}=Ft();return(0,W.jsxs)(`div`,{className:`h-screen bg-sidebar`,children:[(0,W.jsx)(uw,{position:`bottom-right`}),(0,W.jsx)(We,{defaultTheme:`system`,children:(0,W.jsx)(rS,{delayDuration:0,children:(0,W.jsx)($9r,{experiments:t?eei:[],children:(0,W.jsxs)(B4.Provider,{LinkComponent:n,children:[(0,W.jsx)(nei,{}),(0,W.jsx)(OJr,{children:(0,W.jsx)(sei,{children:e})})]})})})})]})},lei=({children:e})=>(0,W.jsxs)(`div`,{className:`h-screen bg-sidebar`,children:[(0,W.jsx)(uw,{position:`bottom-right`}),(0,W.jsx)(We,{defaultTheme:`system`,children:(0,W.jsx)(rS,{delayDuration:0,children:(0,W.jsx)(`div`,{className:`h-full overflow-y-auto`,children:(0,W.jsx)(J9r,{children:e})})})})]}),uei={name:`Agents`,url:`/agent-builder/agents`,icon:(0,W.jsx)(dR,{})},dei={name:`Skills`,url:`/agent-builder/skills`,icon:(0,W.jsx)(VWe,{className:`size-5`})},fei={name:`Favorites`,url:`/agent-builder/favorite`,icon:(0,W.jsx)(WC,{className:`size-5`})},pei={name:`Library`,url:`/agent-builder/library`,icon:(0,W.jsx)(yC,{className:`size-5`})},mei={name:`Infra`,url:`/agent-builder/infrastructure`,icon:(0,W.jsx)(WKe,{className:`size-5`})};function hei(){let{Link:e}=Ft(),{pathname:t}=Wv(),n=KY(),{canManageSkills:r,canUseFavorites:i}=vw(),{hasPermission:a}=_w(),o=a(`infrastructure:read`),s=(0,U.useMemo)(()=>{let e=[uei];return n.skills&&r&&e.push(dei),i&&e.push(fei),e.push(pei),o&&e.push(mei),e},[n.skills,r,i,o]);return(0,W.jsx)(`nav`,{"aria-label":`Primary`,className:`fixed inset-x-0 bottom-0 z-40 border-t border-border bg-sidebar/95 pb-[env(safe-area-inset-bottom)] backdrop-blur-sm md:hidden`,children:(0,W.jsx)(`ul`,{className:`grid`,style:{gridTemplateColumns:`repeat(${s.length}, minmax(0, 1fr))`},children:s.map(n=>{let r=t.startsWith(n.url);return(0,W.jsx)(`li`,{children:(0,W.jsxs)(e,{href:n.url,"aria-current":r?`page`:void 0,className:H(r?`text-foreground`:`text-muted-foreground`,`relative flex flex-col items-center justify-center gap-1 py-2`,lS,r?`before:absolute before:inset-x-0 before:-top-px before:h-0.5 before:bg-current`:`hover:text-foreground`),children:[(0,W.jsx)(`span`,{className:`flex size-6 items-center justify-center`,"aria-hidden":`true`,children:(0,W.jsx)(Z,{as:`span`,variant:`caption`,className:`block`,children:n.icon})}),(0,W.jsx)(Z,{as:`span`,variant:`caption`,children:n.name})]})},n.name)})})})}var gei={name:`My agents`,url:`/agent-builder/agents`,icon:(0,W.jsx)(dR,{})},_ei={name:`Favorites`,url:`/agent-builder/favorite`,icon:(0,W.jsx)(WC,{})},vei={name:`Library`,url:`/agent-builder/library`,icon:(0,W.jsx)(yC,{})},yei={name:`Skills`,url:`/agent-builder/skills`,icon:(0,W.jsx)(VWe,{className:`h-4 w-4`})},bei={name:`Infrastructure`,url:`/agent-builder/infrastructure`,icon:(0,W.jsx)(WKe,{className:`h-4 w-4`})};function xei({forceExpanded:e=!1}={}){let{Link:t}=Ft(),{state:n,isMobile:r}=L4(),{pathname:i}=Wv(),a=KY(),{canManageSkills:o,canUseFavorites:s}=vw(),{hasPermission:c}=_w(),l=c(`infrastructure:read`),u=e?`default`:n,{data:d}=Y_(),f=d&&J_(d),p=[gei];a.skills&&o&&p.push(yei),s&&p.push(_ei),p.push(vei);let m=(0,W.jsx)(t,{href:`/agents`,"aria-label":`Back to Mastra Studio`,children:(0,W.jsx)(qQ,{className:`size-6`})});return(0,W.jsxs)(B4,{className:`h-full`,mobileMode:`drawer`,children:[!e&&(0,W.jsxs)(B4.Header,{collapsedLogo:m,actions:f&&(0,W.jsx)(WJn,{}),children:[(0,W.jsx)(t,{href:`/agents`,"aria-label":`Back to Mastra Studio`,className:`min-w-0 flex-1`,children:(0,W.jsx)(B4.Brand,{logo:(0,W.jsx)(qQ,{className:`size-6`}),title:`Mastra Studio`})}),!r&&(0,W.jsx)(B4.Trigger,{})]}),(0,W.jsx)(g9r,{}),(0,W.jsx)(B4.Nav,{children:(0,W.jsx)(B4.NavSection,{children:(0,W.jsx)(B4.NavList,{children:p.map(e=>{let n=i.startsWith(e.url);return(0,W.jsx)(B4.NavLink,{LinkComponent:t,state:u,link:e,isActive:n},e.name)})})})}),!e&&(0,W.jsx)(B4.Footer,{children:l&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(B4.NavSeparator,{}),(0,W.jsx)(B4.NavSection,{children:(0,W.jsx)(B4.NavList,{children:(0,W.jsx)(B4.NavLink,{LinkComponent:t,state:u,link:bei,isActive:i.startsWith(bei.url)})})})]})})]})}var Y9=()=>(0,W.jsx)(`div`,{className:`h-screen bg-sidebar`,children:(0,W.jsxs)($mr,{children:[(0,W.jsxs)(`div`,{className:`grid h-full grid-rows-1 md:grid-cols-[auto_1fr] md:divide-x md:divide-border`,children:[(0,W.jsx)(`div`,{className:`hidden md:block`,children:(0,W.jsx)(xei,{})}),(0,W.jsx)(`div`,{className:`flex h-full min-h-0 flex-col`,children:(0,W.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto bg-transparent pb-[calc(3.5rem+env(safe-area-inset-bottom))] md:pb-0`,children:(0,W.jsx)(Yv,{})})})]}),(0,W.jsx)(hei,{})]})}),Sei=()=>(0,W.jsx)(`div`,{className:`grid h-screen grid-cols-[minmax(0,1fr)] grid-rows-1 bg-sidebar`,children:(0,W.jsx)(Yv,{})}),Cei=({agentId:e})=>{let{data:t,isLoading:n}=KL();return n?(0,W.jsx)(`div`,{className:`space-y-2`,children:(0,W.jsx)(Vw,{className:`h-9 w-full`})}):!t||t.length===0?(0,W.jsx)(Z,{variant:`caption`,tone:`ink`,children:`No channel platforms configured.`}):(0,W.jsx)(`ul`,{className:`divide-y divide-border`,children:t.map(t=>(0,W.jsx)(wei,{platform:t,agentId:e},t.id))})};function wei({platform:e,agentId:t}){let{data:n,isLoading:r}=Wjt({platform:e.id,agentId:t,queryOptions:{enabled:!!(e.id&&t)}}),{connect:i,isConnecting:a}=pQ(e.id),{mutate:o,isPending:s}=qjt({platform:e.id}),c=n?.find(e=>e.status===`active`),l=n?.some(e=>e.status===`pending`)??!1;return UUn({platform:e.id,agentId:t,hasPendingInstall:l}),(0,W.jsxs)(`li`,{className:`flex items-center gap-3 py-2.5`,children:[(0,W.jsx)(fQ,{platform:e.id,className:`h-5 w-5 shrink-0`}),(0,W.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,W.jsx)(Z,{as:`span`,variant:`body`,tone:`ink`,className:`truncate`,children:e.name}),c?(0,W.jsx)(Z,{variant:`meta`,tone:`muted`,className:`truncate`,children:c.displayName||`Workspace`}):null]}),r?null:c?(0,W.jsx)(GT,{variant:`success`,size:`sm`,indicator:`dot`,children:`Connected`}):e.isConfigured?null:(0,W.jsx)(GT,{variant:`warning`,size:`sm`,indicator:`dot`,children:`Not configured`}),r?null:c?(0,W.jsx)(Y,{icon:(0,W.jsx)(QC,{}),size:`sm`,variant:`ghost`,onClick:()=>{o(t,{onError:e=>{fw.error(e.body?.error||e.message||`Failed to disconnect channel`)}})},disabled:s,className:`shrink-0`,children:s?`Removing...`:`Remove`}):e.isConfigured?(0,W.jsx)(Y,{icon:(0,W.jsx)(jC,{}),size:`sm`,variant:`default`,onClick:()=>{i(t)},disabled:a,children:a?`Connecting...`:`Connect`}):null]})}var Tei=({modelList:e,updateModelInModelList:t,reorderModelList:n,editable:r=!0})=>{let[i,a]=(0,U.useState)(()=>e),o=i.length>1,s=i.filter(e=>e.enabled!==!1).length;(0,U.useEffect)(()=>{a(e)},[e]);let c=async e=>{if(!e.destination)return;let t=Array.from(i),[r]=t.splice(e.source.index,1);t.splice(e.destination.index,0,r),a(t);try{await n({reorderedModelIds:t.map(e=>e.id)})}catch{a(i)}},l=async e=>{let n=i;a(t=>t.map(t=>t.id===e.modelConfigId?{...t,enabled:e.enabled??t.enabled,maxRetries:e.maxRetries??t.maxRetries,model:{modelId:e.model?.modelId??t.model.modelId,provider:e.model?.provider??t.model.provider,modelVersion:t.model.modelVersion}}:t));try{return await t(e)}catch(e){throw a(n),e}};return r?(0,W.jsx)($z,{onDragEnd:c,children:(0,W.jsx)(rB,{droppableId:`model-list`,children:e=>(0,W.jsxs)(`div`,{...e.droppableProps,ref:e.innerRef,className:`flex flex-col gap-2`,children:[i.map((e,t)=>(0,W.jsx)(tB,{draggableId:e.id,index:t,children:t=>(0,W.jsx)(`div`,{ref:t.innerRef,...t.draggableProps,style:t.draggableProps.style,children:(0,W.jsx)(Dei,{modelConfig:e,updateModelInModelList:l,showDragHandle:o,dragHandleProps:t.dragHandleProps,isLastEnabled:e.enabled!==!1&&s===1})})},e.id)),e.placeholder]})})}):(0,W.jsx)(Eei,{modelList:e})},Eei=({modelList:e})=>(0,W.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,W.jsx)(Z,{variant:`caption`,tone:`muted`,children:`This model list is dynamically set and cannot be edited in Studio.`}),e.map(e=>(0,W.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg bg-sidebar p-2`,children:[(0,W.jsxs)(Z,{as:`span`,variant:`caption`,tone:`ink`,className:`min-w-0 flex-1 truncate`,children:[e.model.provider,`/`,e.model.modelId]}),(0,W.jsx)(Z,{as:`span`,variant:`meta`,tone:`muted`,className:`shrink-0`,children:e.enabled===!1?`Disabled`:`Enabled`})]},e.id))]}),Dei=({modelConfig:e,updateModelInModelList:t,showDragHandle:n,dragHandleProps:r,isLastEnabled:i})=>(0,W.jsx)(`div`,{className:`state-layer rounded-lg bg-sidebar`,children:(0,W.jsxs)(`div`,{className:`flex items-center gap-2 p-2`,children:[n&&(0,W.jsx)(`div`,{...r,className:`shrink-0 cursor-grab text-muted-foreground active:cursor-grabbing`,children:(0,W.jsx)(cS,{children:(0,W.jsx)(hC,{})})}),(0,W.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,W.jsx)(P8r,{defaultProvider:e.model.provider,defaultModel:e.model.modelId,updateModel:n=>t({modelConfigId:e.id,model:n}),autoSave:!0})}),i?(0,W.jsx)(rS,{children:(0,W.jsxs)(iS,{children:[(0,W.jsx)(aS,{asChild:!0,children:(0,W.jsx)(`span`,{className:`shrink-0`,children:(0,W.jsx)(JM,{checked:e.enabled,disabled:!0,className:`pointer-events-none`})})}),(0,W.jsx)(oS,{children:(0,W.jsx)(`p`,{children:`At least one model must be enabled`})})]})}):(0,W.jsx)(JM,{checked:e.enabled,onCheckedChange:n=>{t({modelConfigId:e.id,enabled:n}).catch(()=>void 0)},className:`shrink-0`})]})}),X9=uM([rM(),iM()]).optional().catch(`Unavailable`),Oei=lM({scope:X9,topK:X9,messageRange:uM([lM({before:X9,after:X9}),X9])});function kei(e){if(typeof e==`string`)return e;let t=typeof e==`object`?e.before:e,n=typeof e==`object`?e.after:e;return`${t??1} before, ${n??1} after`}function Aei(e){return e===void 0?`Default`:typeof e==`number`?`${e.toLocaleString()} tokens`:`${e.min.toLocaleString()}–${e.max.toLocaleString()} tokens`}function jei(e){let t=[{title:`General`,items:[{label:`Status`,value:!0},{label:`Last Messages`,value:e.lastMessages??`Default`},{label:`Auto-generate Titles`,value:`generateTitle`in e&&!!e.generateTitle}]}];if(e.semanticRecall){let n=Oei.safeParse(e.semanticRecall===!0?{}:e.semanticRecall);n.success?t.push({title:`Semantic Recall`,items:[{label:`Status`,value:!0},{label:`Scope`,value:n.data.scope??`resource`},{label:`Top K Results`,value:n.data.topK??4},{label:`Message Range`,value:kei(n.data.messageRange)}]}):t.push({title:`Semantic Recall`,items:[{label:`Configuration`,value:`Unavailable`}]})}let n=e.observationalMemory;return n?.enabled&&t.push({title:`Observational Memory`,items:[{label:`Status`,value:!0},{label:`Scope`,value:n.scope??`thread`},{label:`Message Tokens`,value:Aei(n.messageTokens)},{label:`Observation Tokens`,value:Aei(n.observationTokens)},...n.observationModel?[{label:`Observation Model`,value:n.observationModel}]:[],...n.reflectionModel?[{label:`Reflection Model`,value:n.reflectionModel}]:[]]}),t}function Mei(e){return typeof e==`boolean`?e?`Enabled`:`Disabled`:e}function Nei({items:e}){return(0,W.jsx)(Lfr,{className:`grid-cols-2`,data:e.map(e=>({key:e.label,label:(0,W.jsx)(Z,{as:`span`,variant:`body-sm`,children:e.label}),value:(0,W.jsx)(GT,{variant:e.value===!0?`success`:`neutral`,indicator:typeof e.value==`boolean`?`dot`:void 0,className:`h-auto min-h-5 min-w-0 break-words whitespace-normal`,children:Mei(e.value)})}))})}function Pei({agentId:e}){let{data:t,isLoading:n,isError:r,isFetching:i,refetch:a}=KQ({agentId:e,requestContext:AT(`agent`,e)[0],queryOptions:{enabled:!!e}});return n?(0,W.jsx)(Vw,{className:`h-28 w-full`}):r&&!t?(0,W.jsxs)(`div`,{role:`alert`,className:`flex flex-col items-start gap-2`,children:[(0,W.jsx)(Z,{variant:`caption`,tone:`muted`,children:`Unable to load memory configuration`}),(0,W.jsx)(Y,{size:`sm`,disabled:i,onClick:()=>void a(),children:`Retry`})]}):t?.config?(0,W.jsx)(`div`,{className:`flex flex-col gap-3`,children:jei(t.config).map(e=>e.title===`General`?(0,W.jsx)(Nei,{items:e.items},e.title):(0,W.jsxs)(FT,{defaultOpen:e.title!==`Observational Memory`,children:[(0,W.jsxs)(IT,{className:`flex w-full items-center justify-between gap-2`,children:[(0,W.jsx)(Z,{as:`span`,variant:`body-sm`,children:e.title}),(0,W.jsx)(RT,{direction:`right`,className:`size-4`})]}),(0,W.jsx)(LT,{className:`pt-2`,children:(0,W.jsx)(Nei,{items:e.items})})]},e.title))}):(0,W.jsx)(Z,{variant:`caption`,tone:`muted`,children:`No memory configuration available`})}function Fei(e){let t=e.split(`
|
|
692
692
|
`),n=t.filter(e=>e.trim().length>0),r=n[0];if(r===void 0)return e;let i=r.match(/^[\t ]*/)?.[0]??``;for(let t of n){for(;!t.startsWith(i);)i=i.slice(0,-1);if(i.length===0)return e}return t.map(e=>e.startsWith(i)?e.slice(i.length):e).join(`
|