@wjarka/cezarion 0.14.8-pr540.823 → 0.14.9-dev.829

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.
Files changed (45) hide show
  1. package/dist/delegation/routes.d.ts +50 -50
  2. package/dist/delegation/transport.d.ts +50 -50
  3. package/dist/task-cli/watch.d.ts +19 -0
  4. package/dist/task-cli/watch.js +35 -2
  5. package/dist/task-cli/watch.js.map +1 -1
  6. package/package.json +3 -3
  7. package/web/dist/assets/{agent-accounts-B7aDlJ4I.js → agent-accounts-JPfZPgKn.js} +1 -1
  8. package/web/dist/assets/{centered-state-wm14n-hB.js → centered-state-HwCqQkH3.js} +1 -1
  9. package/web/dist/assets/{collapsible-Bb2y0asn.js → collapsible-CTymFdL7.js} +1 -1
  10. package/web/dist/assets/{commit-list-DpxX-bA4.js → commit-list-BZpYGQl2.js} +1 -1
  11. package/web/dist/assets/{compare-variants-DbPcvMtU.js → compare-variants-9VkybaQ7.js} +1 -1
  12. package/web/dist/assets/{diff-rDeblLVZ2.js → diff-CZcD4D1r2.js} +2 -2
  13. package/web/dist/assets/{diff-controls-frbAqBK1.js → diff-controls-CpcHG3Mm.js} +1 -1
  14. package/web/dist/assets/{diff-view-D6N_QzSq.js → diff-view-C46nHiP2.js} +1 -1
  15. package/web/dist/assets/{dropdown-menu-Bwvi4Ono.js → dropdown-menu-_YAzCaoQ.js} +1 -1
  16. package/web/dist/assets/{git-toolbar-5TyOh819.js → git-toolbar-BvKDz6uS.js} +1 -1
  17. package/web/dist/assets/github-CgjJCGrD.js +1 -0
  18. package/web/dist/assets/index-BJtve0Pm.js +7 -0
  19. package/web/dist/assets/index-D0WAgmTQ.css +1 -0
  20. package/web/dist/assets/{markdown-BnjmXdz2.js → markdown-CFWZnvMh.js} +1 -1
  21. package/web/dist/assets/{pill-DqEXer06.js → pill-QfwkuR50.js} +1 -1
  22. package/web/dist/assets/{project-router-BSpCQc8A.js → project-router-CkAA39N5.js} +1 -1
  23. package/web/dist/assets/{prompt-templates-BsHnTixc.js → prompt-templates-Cfna_S0T.js} +3 -3
  24. package/web/dist/assets/{repo-git-Cw1UOtWI.js → repo-git-DgzgJ0cP.js} +1 -1
  25. package/web/dist/assets/{run-diff-CFeYdPGE.js → run-diff-YbCEQn5I.js} +2 -2
  26. package/web/dist/assets/run-header-DMgIbr1d.js +1 -0
  27. package/web/dist/assets/{skills-DMvpMI_E.js → skills-BW79kUTd.js} +1 -1
  28. package/web/dist/assets/{tab-link-BXDesc8g.js → tab-link-MIHvczEm.js} +1 -1
  29. package/web/dist/assets/{task-changes-DfF08cUG.js → task-changes-C96ekt94.js} +1 -1
  30. package/web/dist/assets/{task-commits-BMmpYP5e.js → task-commits-DBfcMZyG.js} +1 -1
  31. package/web/dist/assets/{task-files-D_dKDdRK.js → task-files-BKpH8dKQ.js} +1 -1
  32. package/web/dist/assets/task-thread-Bw_nQuTx.css +1 -0
  33. package/web/dist/assets/task-thread-Dnq7Ek6W.js +9 -0
  34. package/web/dist/assets/{textarea-COQtp9cB.js → textarea-D2vAVgYW.js} +1 -1
  35. package/web/dist/assets/{thread-loading-B7mgkPaL.js → thread-loading-NW8Mthco.js} +1 -1
  36. package/web/dist/assets/{token-metrics-CFWQYcgY.js → token-metrics-D188e6_0.js} +1 -1
  37. package/web/dist/assets/{workflows-DLCH6MDH.js → workflows-BFY1hgp3.js} +2 -2
  38. package/web/dist/index.html +12 -12
  39. package/web/dist/assets/github-Dyo38xkh.js +0 -1
  40. package/web/dist/assets/ibm-plex-mono-regular-BF3vfe7_.ttf +0 -0
  41. package/web/dist/assets/index-dgQfUHKO.css +0 -1
  42. package/web/dist/assets/index-yCn9jZqm.js +0 -7
  43. package/web/dist/assets/run-header-G5PQQyme.js +0 -1
  44. package/web/dist/assets/task-thread-BL7keYuU.js +0 -9
  45. package/web/dist/assets/task-thread-BQFdz1dJ.css +0 -1
@@ -0,0 +1,9 @@
1
+ import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{i as t,t as n}from"./react-runtime-CCIEwYL0.js";import{Ba as r,Bi as i,Ca as a,Dt as o,Et as s,Fa as c,Fn as l,Ga as u,H as d,Ha as f,Ia as p,J as m,Jt as h,La as g,Ln as _,Lr as v,Na as y,Pt as b,Q as x,Rr as S,Rt as C,Vi as w,Vn as T,Wa as E,X as D,Xn as O,Xr as k,Y as A,Z as j,at as M,bi as N,d as P,dr as F,en as I,et as L,ga as R,hi as z,ht as B,in as V,it as ee,ja as te,jn as ne,ki as re,mi as ie,mn as ae,mr as oe,n as se,nt as ce,qt as H,si as le,t as ue,ti as de,tr as fe,ur as pe,vn as me,wi as he,xa as ge,xt as _e}from"./centered-state-HwCqQkH3.js";import{C as ve,S as ye,T as be,c as xe,i as Se,n as Ce,s as we,t as U,w as Te,x as Ee,y as De}from"./utils-DKheTxGD.js";import{n as W,r as G,t as Oe}from"./collapsible-CTymFdL7.js";import{n as ke,s as Ae,t as je}from"./agent-accounts-JPfZPgKn.js";import{t as Me}from"./textarea-D2vAVgYW.js";import{t as Ne}from"./createLucideIcon-BHp8sXmF.js";import{D as Pe,_ as Fe,d as Ie,h as Le,j as Re,k as ze,l as Be,m as Ve,s as He,u as Ue,x as We}from"./pill-QfwkuR50.js";import{t as Ge}from"./external-link-BE6y205O.js";import{I as Ke,S as qe,_ as Je,b as Ye,c as Xe,g as Ze,l as Qe,v as $e,x as et}from"./prompt-templates-Cfna_S0T.js";import{a as tt,c as nt,d as rt,i as it,l as at,n as ot,o as st,r as ct,s as lt,t as ut,u as dt}from"./run-header-DMgIbr1d.js";import{s as ft,t as K,u as pt}from"./project-router-CkAA39N5.js";import{t as mt}from"./message-square-B-MD-8rD.js";import{t as ht}from"./search-x-I9Q8pgUa.js";import{t as gt}from"./square-terminal-B6RYYieR.js";import{t as _t}from"./markdown-CFWZnvMh.js";import{c as vt,i as yt,l as bt,n as xt,o as St,s as Ct,t as wt}from"./thread-loading-NW8Mthco.js";import{t as Tt}from"./use-submit-shortcut-KWJsC906.js";import{t as Et}from"./lib-BQXq3kEf.js";import{t as Dt}from"./zoomable-image-YW3Qdrr_.js";import{t as Ot}from"./run-diff-YbCEQn5I.js";import{t as kt}from"./use-desktop-BaYgO7YW.js";var At=120;function jt(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Mt(e){let t=e.replace(/\s+/g,` `).trim();return t.length>At?`${t.slice(0,At-1)}…`:t}function q(e,...t){if(jt(e))for(let n of t){let t=e[n];if(typeof t==`string`&&t.trim()!==``)return Mt(t)}}function Nt(e){if(!jt(e))return;let t=e.command;if(typeof t==`string`&&t.trim()!==``)return Mt(t);if(Array.isArray(t)){let e=t.filter(e=>typeof e==`string`);if(e.length>0)return Mt(e.join(` `))}}function Pt(e){if(!jt(e)||!Array.isArray(e.changes))return[];let t=[];for(let n of e.changes)jt(n)&&typeof n.path==`string`&&n.path.trim()!==``&&t.push(n.path);return t}function Ft(e){return q(e,`description`,`query`,`url`,`filePath`,`file_path`,`path`,`pattern`,`name`)}function J(e,t){return t?`${e} ${t}`:e}function It(e,t){let n=typeof e==`string`?e.toLowerCase():``;switch(n){case`bash`:case`commandexecution`:return{toolKind:`execute`,title:J(`Ran`,Nt(t)),subtitle:q(t,`description`)};case`edit`:case`multiedit`:return{toolKind:`edit`,title:J(`Edit`,q(t,`file_path`,`filePath`,`path`))};case`write`:return{toolKind:`edit`,title:J(`Write`,q(t,`file_path`,`filePath`,`path`))};case`notebookedit`:return{toolKind:`edit`,title:J(`Edit`,q(t,`notebook_path`,`notebookPath`,`file_path`,`filePath`,`path`))};case`filechange`:{let e=Pt(t);return{toolKind:`edit`,title:J(`Edit`,e.length===1?e[0]:e.length>1?`${e.length} files`:void 0)}}case`read`:return{toolKind:`read`,title:J(`Read`,q(t,`file_path`,`filePath`,`path`))};case`imageview`:return{toolKind:`read`,title:J(`View image`,q(t,`path`))};case`glob`:case`grep`:return{toolKind:`search`,title:J(`Search`,q(t,`pattern`,`query`)),subtitle:q(t,`path`)};case`webfetch`:return{toolKind:`fetch`,title:J(`Fetch`,q(t,`url`))};case`websearch`:return{toolKind:`fetch`,title:J(`Web search`,q(t,`query`))};case`task`:case`agent`:{let e=n===`agent`?`Agent`:`Task`,r=q(t,`subagent_type`,`subagentType`),i=q(t,`description`,`prompt`)??r;return{toolKind:`task`,title:i?`${e}: ${i}`:e,subtitle:i===r?void 0:r}}case`skill`:{let e=q(t,`skill`,`name`,`command`);return{toolKind:`task`,title:e?`Skill: ${e}`:`Skill`,subtitle:q(t,`args`,`description`)}}case`todowrite`:case`todolist`:case`plan`:case`taskcreate`:case`taskupdate`:case`tasklist`:return{toolKind:`plan`,title:`Update plan`};case`contextcompaction`:return{toolKind:`other`,title:`Compacted context`};case`mcptoolcall`:{let e=q(t,`server`),n=q(t,`tool`);return e&&n?{toolKind:`other`,title:`${e}.${n}`}:{toolKind:`other`,title:`MCP tool`,subtitle:Ft(t)}}}if(n.startsWith(`mcp__`)){let t=e.split(`__`).filter(e=>e!==``);if(t.length>=3)return{toolKind:`other`,title:`${t[1]}.${t.slice(2).join(`__`)}`}}return{toolKind:`other`,title:typeof e==`string`&&e.trim()!==``?Mt(e):`Tool`,subtitle:Ft(t)}}var Lt=class extends f{constructor(e,t){super(e,t)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(e){e._type=`infinite`,super.setOptions(e)}getOptimisticResult(e){return e._type=`infinite`,super.getOptimisticResult(e)}fetchNextPage(e){return this.fetch({...e,meta:{fetchMore:{direction:`forward`}}})}fetchPreviousPage(e){return this.fetch({...e,meta:{fetchMore:{direction:`backward`}}})}createResult(e,t){let{state:n}=e,r=super.createResult(e,t),{isFetching:i,isRefetching:a,isError:o,isRefetchError:s}=r,c=n.fetchMeta?.fetchMore?.direction,l=o&&c===`forward`,d=i&&c===`forward`,f=o&&c===`backward`,p=i&&c===`backward`;return{...r,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:E(t,n.data),hasPreviousPage:u(t,n.data),isFetchNextPageError:l,isFetchingNextPage:d,isFetchPreviousPageError:f,isFetchingPreviousPage:p,isRefetchError:s&&!l&&!f,isRefetching:a&&!d&&!p}}};function Rt(e,t){return g(e,Lt,t)}var zt=Ne(`brain`,[[`path`,{d:`M12 18V5`,key:`adv99a`}],[`path`,{d:`M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4`,key:`1e3is1`}],[`path`,{d:`M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5`,key:`1gqd8o`}],[`path`,{d:`M17.997 5.125a4 4 0 0 1 2.526 5.77`,key:`iwvgf7`}],[`path`,{d:`M18 18a4 4 0 0 0 2-7.464`,key:`efp6ie`}],[`path`,{d:`M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517`,key:`1gq6am`}],[`path`,{d:`M6 18a4 4 0 0 1-2-7.464`,key:`k1g0md`}],[`path`,{d:`M6.003 5.125a4 4 0 0 0-2.526 5.77`,key:`q97ue3`}]]),Bt=Ne(`corner-up-left`,[[`path`,{d:`M20 20v-7a4 4 0 0 0-4-4H4`,key:`1nkjon`}],[`path`,{d:`M9 14 4 9l5-5`,key:`102s5s`}]]),Vt=Ne(`folder-input`,[[`path`,{d:`M2 9V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-1`,key:`fm4g5t`}],[`path`,{d:`M2 13h10`,key:`pgb2dq`}],[`path`,{d:`m9 16 3-3-3-3`,key:`6m91ic`}]]),Ht=Ne(`message-square-text`,[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}],[`path`,{d:`M7 11h10`,key:`1twpyw`}],[`path`,{d:`M7 15h6`,key:`d9of3u`}],[`path`,{d:`M7 7h8`,key:`af5zfr`}]]),Ut=Ne(`square-pen`,[[`path`,{d:`M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7`,key:`1m0v6g`}],[`path`,{d:`M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z`,key:`ohrbg2`}]]),Y=e(t(),1),Wt=[`run-event`,`ui-event`];function Gt(e){let t;try{t=JSON.parse(e)}catch{return null}if(typeof t!=`object`||!t||Array.isArray(t))return null;let{seq:n,type:r}=t;return typeof n!=`number`||typeof r!=`string`||r===``?null:t}function Kt(e,t={}){let[n,r]=(0,Y.useState)([]),{cursor:i,afterSeq:a=0,maxEvents:o,compactAt:s,onCompact:c}=t;return(0,Y.useEffect)(()=>{if(r([]),!e)return;let t=globalThis.EventSource;if(typeof t!=`function`)return;let n=a,l=null,u,d=!1,f=!1,p=Date.now(),m,h=e=>{p=Date.now();let t=Gt(e.data);!t||!(t.seq>n)||(n=t.seq,r(e=>{let n=[...e,t];return!f&&s!==void 0&&n.length>=s&&(f=!0,queueMicrotask(()=>{d||c?.()})),o===void 0||n.length<=o?n:n.slice(-o)}))},g=()=>{p=Date.now()},_=()=>{d||u!==void 0||(u=setTimeout(()=>{u=void 0,d||v()},1500))},v=()=>{l?.close(),p=Date.now();let r=new URLSearchParams;i!==void 0&&r.set(`cursor`,i),(i!==void 0||a>0)&&r.set(`afterSeq`,String(n));let o=r.size>0?`?${r.toString()}`:``;l=new t(Se(`/runs/${encodeURIComponent(e)}/events${o}`),{withCredentials:!0});for(let e of Wt)l.addEventListener(e,h);l.addEventListener(`ping`,g),l.addEventListener(`error`,()=>{l?.readyState===2&&_()})},y=()=>{document.visibilityState===`visible`&&(!l||l.readyState===2)&&(clearTimeout(u),u=void 0,v())},b=()=>{clearTimeout(u),u=void 0,l?.close()},x=e=>{e.persisted&&v()};return m=setInterval(()=>{d||document.visibilityState!==`visible`||Date.now()-p<=4e4||(clearTimeout(u),u=void 0,v())},1e4),document.addEventListener(`visibilitychange`,y),window.addEventListener(`pagehide`,b),window.addEventListener(`pageshow`,x),v(),()=>{d=!0,clearTimeout(u),clearInterval(m),document.removeEventListener(`visibilitychange`,y),window.removeEventListener(`pagehide`,b),window.removeEventListener(`pageshow`,x),l?.close()}},[e,i,a,o,s,c]),n}var qt=5,Jt=200,Yt=5e3;function Xt(...e){let t=new Map;for(let n of e)for(let e of n)t.set(e.seq,e);return[...t.values()].sort((e,t)=>e.seq-t.seq)}function Zt(e){let t=we(),n=r(),a=[`run-history`,t,e],o=[`run-history-context`,t,e],s=Rt({queryKey:a,enabled:e!==void 0,initialPageParam:void 0,queryFn:({pageParam:t,signal:n})=>i(e,t,{signal:n}),getPreviousPageParam:e=>e.olderCursor,getNextPageParam:e=>e.newerCursor,maxPages:qt,retry:1}),c=p({queryKey:o,enabled:e!==void 0,queryFn:({signal:t})=>w(e,{signal:t}),retry:1}),l=s.isError||c.isError,u=Kt(l?e:void 0),d=s.data?.pages??[],f=d.reduce((e,t)=>t.newerCursor===void 0?t:e??t,void 0),m=(0,Y.useRef)(!1),h=(0,Y.useCallback)(()=>{e===void 0||m.current||(m.current=!0,i(e,void 0).then(r=>{n.setQueryData([`run-history`,t,e],e=>{if(!e)return{pages:[r],pageParams:[void 0]};let t=[...e.pages],n=[...e.pageParams],i=-1;for(let e=0;e<t.length;e+=1)(i===-1||t[e].asOfSeq>t[i].asOfSeq)&&(i=e);for(i>=0&&t[i].newerCursor===void 0?(t[i]=r,n[i]=void 0):(t.push(r),n.push(void 0));t.length>qt;)t.shift(),n.shift();return{pages:t,pageParams:n}})}).catch(()=>{}).finally(()=>{m.current=!1}))},[n,e,t]),g=Kt(!l&&f?e:void 0,{cursor:f?.liveCursor,afterSeq:f?.asOfSeq,maxEvents:Yt,compactAt:Jt,onCompact:h}),_=(0,Y.useMemo)(()=>Xt(...d.map(e=>e.events)),[d]),v=(0,Y.useMemo)(()=>l?u:Xt(_,g),[l,u,_,g]),y=(0,Y.useMemo)(()=>{if(l)return u;let e=c.data?.contextEvents??[],t=c.data?.asOfSeq??0;return Xt(e,v.filter(({seq:e})=>e>t))},[c.data,l,u,v]),b=(0,Y.useCallback)(async()=>{await s.fetchPreviousPage()},[s.fetchPreviousPage]),x=(0,Y.useCallback)(async()=>{l||await n.resetQueries({queryKey:a,exact:!0})},[l,a,n]);return{visibleEvents:v,currentEvents:y,isPending:!l&&s.isPending,contextPending:!l&&c.isPending,fallback:l,hasOlder:!l&&!!s.hasPreviousPage,isFetchingOlder:s.isFetchingPreviousPage,olderError:s.isFetchPreviousPageError?s.error instanceof Error?s.error.message:`Could not load earlier items`:void 0,loadOlder:b,jumpToLatest:x,retainedPages:d.length}}var X=n();function Qt({run:e}){let t=r(),n=c({mutationFn:()=>ie(e.id),onSuccess:()=>{t.invalidateQueries({queryKey:V.runs.detail(e.id)}),t.invalidateQueries({queryKey:V.runs.list()}),R(`This task will not resume itself`)},onError:e=>R(e.message,{tone:`danger`})});if(e.status!==`failed`||!e.autoResumeAt)return null;let i=new Date(e.autoResumeAt);if(!Number.isFinite(i.getTime()))return null;let o=new Intl.DateTimeFormat(void 0,{dateStyle:`medium`,timeStyle:`long`}).format(i);return(0,X.jsxs)(`div`,{"data-slot":`auto-resume-hint`,role:`status`,className:`flex flex-wrap items-center gap-x-2 gap-y-1 px-1 text-xs text-muted-foreground`,children:[(0,X.jsx)(ze,{tone:`pending`,pulse:!0}),(0,X.jsxs)(`span`,{children:[`Usage limit reached — this task resumes automatically at`,` `,(0,X.jsx)(`time`,{dateTime:e.autoResumeAt,className:`font-medium text-foreground`,children:o})]}),(0,X.jsx)(`button`,{type:`button`,"data-action":`auto-resume-cancel`,disabled:n.isPending,onClick:()=>n.mutate(),className:`font-medium text-foreground underline decoration-border underline-offset-2 hover:decoration-foreground disabled:opacity-50`,children:`Don’t resume`}),(0,X.jsx)(a,{to:`/settings/global/resources`,"data-slot":`auto-resume-settings-link`,className:`font-medium text-foreground underline decoration-border underline-offset-2 hover:decoration-foreground`,children:`Auto-resume settings`})]})}var $t=e=>e.kind===`tool`,en=e=>e.kind===`conversation`,tn=e=>(e.toolKind===`read`||e.toolKind===`search`)&&e.status===`completed`,nn=(e,t,n)=>`${e} ${e===1?t:n}`;function rn(e,t){let n=[];return e>0&&n.push(nn(e,`file`,`files`)),t>0&&n.push(nn(t,`search`,`searches`)),`Explored ${n.join(` · `)}`}function an(e){return`${e} earlier tool call${e===1?``:`s`}`}var on=[`Web search`,`Ran`,`Edit`,`Write`,`Read`,`Search`,`Fetch`,`Task:`];function sn(e){for(let t of on)if(e.startsWith(`${t} `)&&e.length>t.length+1)return{verb:t===`Task:`?`Task`:t,detail:e.slice(t.length+1)};return{verb:e}}function cn(e){let t=e.filter(e=>!(e.kind===`tool`&&e.toolKind===`plan`)&&!(e.kind===`reasoning`&&e.text.trim()===``)),n=new Set(t.filter($t).map(e=>e.id)),r=new Map,i=[];for(let e of t){let t=(e.kind===`message`||e.kind===`reasoning`||e.kind===`tool`)&&e.parentItemId!==void 0&&e.parentItemId!==e.id&&n.has(e.parentItemId)?e.parentItemId:void 0;if(t===void 0)i.push(e);else{let n=r.get(t);n?n.push(e):r.set(t,[e])}}let a=[],o=[],s=()=>{if(o.length>=2){let e=o.filter(e=>e.toolKind===`read`).length;a.push({kind:`context-group`,id:`group:${o[0].id}`,tools:o,files:e,searches:o.length-e,label:rn(e,o.length-e)})}else for(let e of o)a.push({kind:`tool-card`,id:e.id,item:e,children:r.get(e.id)??[]});o=[]},c=[],l=()=>{if(c.length!==0){for(let e of ln(c).batches)a.push({kind:`worker-conversation`,id:`worker:${e.messages[0].id}`,batches:[e]});c=[]}};for(let e of i){if(en(e)){s(),c.push(e);continue}l(),$t(e)&&tn(e)&&!r.has(e.id)?o.push(e):(s(),$t(e)?a.push({kind:`tool-card`,id:e.id,item:e,children:r.get(e.id)??[]}):a.push({kind:`entry`,id:e.id,entry:e}))}s(),l();let u=e=>e.kind===`context-group`||e.kind===`tool-card`&&e.item.status===`completed`,d=e=>e.kind===`context-group`?e.tools.length:1,f=[],p=[],m=()=>{if(p.length>3){let e=p.slice(0,p.length-3);f.push({kind:`streak`,id:`streak:${e[0].id}`,count:e.reduce((e,t)=>e+d(t),0),blocks:e}),f.push(...p.slice(p.length-3))}else f.push(...p);p=[]};for(let e of a)u(e)?p.push(e):(m(),f.push(e));return m(),f}function ln(e){let t=[];for(let n of e){let e=t.at(-1);n.messageKind===`request`&&e?.kind===`request`&&e.senderRunId===n.senderRunId&&e.text===n.text&&!e.messages.some(e=>e.recipientRunId===n.recipientRunId)?e.messages.push(n):t.push({id:`worker-batch:${n.messageId}`,kind:n.messageKind,text:n.text,senderRunId:n.senderRunId,messages:[n]})}return{kind:`worker-conversation`,id:`worker:${e[0].id}`,batches:t}}var un=new Map,dn=(0,Y.createContext)(null);function fn(){return(0,Y.useContext)(dn)}function pn({runId:e,children:t}){let n=(0,Y.useMemo)(()=>({get:t=>un.get(e)?.get(t),set:(t,n)=>{let r=un.get(e)??new Map;r.set(t,n),un.set(e,r)}}),[e]);return(0,X.jsx)(dn.Provider,{value:n,children:t})}var mn=(0,Y.createContext)({targets:new Map,replies:new Map,navigate:()=>{}});function hn(e){return e.scrollTop<Math.max(600,e.clientHeight)}function gn(e,t){let n=t.find(({bottom:t})=>t>e);return n===void 0?void 0:{key:n.key,offset:n.top-e}}function _n(e,t,n,r,i){if(n===void 0)return i;let a=r.find(({key:e})=>e===n.key);return a===void 0?i:e+(a.top-t-n.offset)}function vn(e,t=24){return e.scrollHeight-e.scrollTop-e.clientHeight<t}function yn(e,t){let n=new URLSearchParams(e).get(`thread`);return n===`flat`||n===`virtual`?n:t>300?`virtual`:`flat`}var bn=new Map;function xn(e,t){bn.set(e,t)}function Sn(e){return bn.get(e)}var Cn=new Map;function wn(e,t){Cn.set(e,t)}function Tn(e,t){let n=Cn.get(e);return n!==void 0&&n.rows===t?n.cache:void 0}function En(e,t){let n={[e.id]:k(e)};for(let e of t??[])n[e.id]=k(e);return n}function Z(e,t){return t?.[e]??`Task`}function Dn(e,t){return e.senderRunId===t?`outbound`:`inbound`}function On(e){switch(e){case`request`:return`Request`;case`progress`:return`Progress`;case`follow-up`:return`Follow-up`;case`reply`:return`Reply`;default:return e}}function kn(e){switch(e){case`pending`:return`Pending`;case`replied`:return`Replied`;case`timed-out`:return`Timed out`;case`cancelled`:return`Cancelled`;case`completed-without-reply`:return`Completed without reply`;case`failed`:return`Failed`;case`destroyed`:return`Destroyed`;case`sender-closed`:return`Sender closed`;case`human-fallback`:return`Sent to a human`;default:return e}}function An(e){if(e.outcome)return kn(e.outcome.status);if(e.delivery===`not-delivered`)return jn(`not-delivered`)}function jn(e){switch(e){case`queued`:return`Queued`;case`delivered`:return`Delivered`;case`consumed`:return`Read`;case`not-delivered`:return`Not delivered`;default:return e}}var Mn={user:{label:`YOUR MESSAGE`,speaker:`Your message`,classes:`border-message-user-border bg-message-user-bg`,accent:`text-message-user-accent`,body:`max-md:text-[12px]`},agent:{label:`AGENT RESPONSE`,speaker:`Agent response`,classes:`border-message-agent-border bg-message-agent-bg`,accent:`text-message-agent-accent`,body:`max-w-[65ch] text-[15px] md:text-[14px]`}};function Nn({role:e,children:t,className:n,...r}){let i=Mn[e];return(0,X.jsxs)(`article`,{...r,"data-role":e,"aria-label":i.speaker,className:U(`flex w-full min-w-0 flex-col gap-2 self-stretch rounded-[8px] border p-3 md:px-4 md:py-[14px]`,i.classes,n),children:[(0,X.jsxs)(`p`,{className:U(`m-0 flex items-center gap-2 text-[11px] leading-[1.2] font-semibold tracking-[0.6px] uppercase`,i.accent),children:[(0,X.jsx)(mt,{"aria-hidden":`true`,className:`size-4 shrink-0`}),i.label]}),(0,X.jsx)(`div`,{className:U(`min-w-0 break-words text-[14px] text-foreground select-text [overflow-wrap:anywhere]`,i.body,`leading-[1.6]`),children:t})]})}function Pn({text:e,imageCount:t=0,images:n=[],onEdit:r,onRemove:i,editLabel:a=`Edit message`,removeLabel:o=`Remove message`}){let s=t-n.length,[c,l]=(0,Y.useState)(!1),[u,d]=(0,Y.useState)(e),[f,p]=(0,Y.useState)(!1),[m,g]=(0,Y.useState)(),_=()=>{d(e),g(void 0),l(!0)},v=async()=>{let t=u.trim();if(!t||t===e){l(!1);return}p(!0),g(void 0);try{await r?.(t),l(!1)}catch(e){g(e instanceof Error?e.message:`Could not save the message`)}finally{p(!1)}},y=async()=>{p(!0),g(void 0);try{await i?.()}catch(e){g(e instanceof Error?e.message:`Could not remove the message`)}finally{p(!1)}};return c?(0,X.jsxs)(Nn,{role:`user`,"data-slot":`user-bubble`,"data-editing":`true`,children:[(0,X.jsx)(`textarea`,{autoFocus:!0,"aria-label":`Edit the message`,value:u,onChange:e=>d(e.target.value),onKeyDown:e=>{e.key===`Escape`?(e.stopPropagation(),l(!1)):e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),v())},className:`block max-h-[220px] min-h-[60px] w-full resize-none rounded-md bg-background px-2 py-1.5 text-[14px] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50`}),(0,X.jsxs)(`span`,{className:`mt-1.5 flex justify-end gap-1.5`,children:[(0,X.jsx)(`button`,{type:`button`,onClick:()=>l(!1),disabled:f,className:`inline-flex min-h-11 min-w-11 items-center justify-center rounded-sm px-2 text-xs font-medium text-muted-foreground hover:bg-background hover:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none`,children:`Cancel`}),(0,X.jsx)(`button`,{type:`button`,onClick:()=>void v(),disabled:f,className:`inline-flex min-h-11 min-w-11 items-center justify-center rounded-sm bg-action px-2 text-xs font-semibold text-action-foreground hover:brightness-[0.96] focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none`,children:f?(0,X.jsx)(pt,{className:`size-3.5 animate-spin`}):`Save`})]}),m?(0,X.jsx)(`p`,{role:`alert`,className:`mt-1.5 text-xs text-danger`,children:m}):null]}):(0,X.jsxs)(Nn,{role:`user`,"data-slot":`user-bubble`,className:`group`,children:[r||i?(0,X.jsxs)(`span`,{"data-slot":`bubble-actions`,className:`mb-1 flex justify-end gap-0.5 opacity-0 transition-opacity group-hover:opacity-100 focus-within:opacity-100`,children:[r?(0,X.jsx)(`button`,{type:`button`,"aria-label":a,onClick:_,disabled:f,className:`inline-flex size-11 items-center justify-center rounded-sm text-soft-foreground hover:bg-background hover:text-foreground focus-visible:opacity-100 focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none`,children:(0,X.jsx)(Ut,{className:`size-3.5`})}):null,i?(0,X.jsx)(`button`,{type:`button`,"aria-label":o,onClick:()=>void y(),disabled:f,className:`inline-flex size-11 items-center justify-center rounded-sm text-soft-foreground hover:bg-background hover:text-danger focus-visible:opacity-100 focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none`,children:(0,X.jsx)(h,{className:`size-3.5`})}):null]}):null,m?(0,X.jsx)(`p`,{role:`alert`,className:`mb-1 text-xs text-danger`,children:m}):null,(0,X.jsx)(_t,{breaks:!0,children:e}),n.length>0?(0,X.jsx)(`span`,{"data-slot":`user-images`,className:`mt-2 flex flex-wrap items-center justify-end gap-1.5`,children:n.map(e=>De(e.split(`/`).pop()??``)?(0,X.jsx)(Dt,{src:e,alt:`attached`,className:`max-h-40 max-w-[220px] rounded-md border border-border object-contain`},e):(0,X.jsxs)(`a`,{href:xe(e),download:!0,"data-slot":`user-file`,className:`inline-flex min-h-11 min-w-11 max-w-[220px] items-center gap-1.5 rounded-md border border-border bg-background/60 px-2 py-1 text-xs text-muted-foreground hover:text-foreground`,children:[(0,X.jsx)(b,{"aria-hidden":`true`,className:`size-3.5 shrink-0`}),(0,X.jsx)(`span`,{className:`truncate`,children:e.split(`/`).pop()})]},e))}):null,s>0?(0,X.jsxs)(`span`,{className:`mt-1 block text-xs text-soft-foreground`,children:[s,` image`,s>1?`s`:``,` attached`]}):null]})}function Fn({text:e}){return(0,X.jsx)(Nn,{role:`agent`,"data-slot":`assistant-message`,children:(0,X.jsx)(_t,{children:e})})}var In={outbound:{classes:`border-message-outbound-border bg-message-outbound-bg`,accent:`text-message-outbound-accent`},inbound:{classes:`border-message-inbound-border bg-message-inbound-bg`,accent:`text-message-inbound-accent`}},Ln=`inline-flex min-h-11 max-w-full items-center break-words underline underline-offset-4 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`;function Rn({block:e,runId:t,taskTitles:n}){return(0,X.jsx)(`div`,{"data-slot":`worker-conversation`,className:`flex min-w-0 flex-col gap-2`,children:e.batches.map(e=>(0,X.jsx)(zn,{batch:e,runId:t,taskTitles:n},e.id))})}function zn({batch:e,runId:t,taskTitles:n}){let r=Dn(e.messages[0]??{senderRunId:e.senderRunId},t),i=In[r],a=Un(e.messages.map(e=>r===`outbound`?e.recipientRunId:e.senderRunId)),o=r===`outbound`?`SENT to`:`RECEIVED from`,s=`${o} ${a.map(e=>Z(e,n)).join(`, `)}`,c=e.messages[0],l=c?An(c):void 0;return(0,X.jsxs)(`article`,{"data-slot":`worker-conversation-card`,"data-direction":r,"data-kind":e.kind,className:U(`flex w-full min-w-0 flex-col gap-2 rounded-[8px] border p-3 md:px-4 md:py-[14px]`,i.classes),children:[(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,X.jsxs)(`p`,{className:U(`m-0 flex min-w-0 flex-wrap items-center gap-x-2 text-[11px] leading-[1.2] font-semibold tracking-[0.6px] uppercase`,i.accent),children:[(0,X.jsx)(`span`,{children:o}),a.map((e,t)=>(0,X.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-x-2 normal-case tracking-normal`,children:[t>0?(0,X.jsx)(`span`,{"aria-hidden":!0,children:`,`}):null,(0,X.jsx)(K,{className:Ln,to:`/tasks/${e}`,"aria-label":`${o} ${Z(e,n)}`,children:Z(e,n)})]},e))]}),(0,X.jsx)(`span`,{"data-slot":`conversation-kind`,className:`rounded-full bg-background/60 px-2 py-0.5 text-[11px] font-semibold tracking-[0.05em] text-foreground uppercase`,children:On(e.kind)}),e.messages.length===1&&l?(0,X.jsx)(`span`,{"data-slot":`conversation-outcome`,className:`text-xs font-medium text-muted-foreground`,children:l}):null]}),(0,X.jsx)(`div`,{className:`min-w-0 break-words text-[14px] leading-[1.6] text-foreground select-text [overflow-wrap:anywhere]`,children:(0,X.jsx)(_t,{breaks:!0,children:e.text})}),[...new Set(e.messages.map(e=>e.instruction??(e.delivery===`queued`?`Queued for the next safe turn. Pending messages are delivered together within the batch size limit; human questions and scheduler capacity can delay delivery.`:e.state===`continuation-required`?`Not delivered. The recipient needs a new instruction to resume. A parent can resume its owned worker with --resume; workers cannot resume parents.`:e.state===`destroyed`?`Not delivered. This worker was destroyed.`:void 0)))].map(e=>e?(0,X.jsx)(`p`,{"data-slot":`conversation-delivery-explanation`,className:`min-w-0 text-xs leading-relaxed text-muted-foreground [overflow-wrap:anywhere]`,children:e},e):null),e.kind===`request`&&e.messages.length>1?(0,X.jsx)(`ul`,{className:`grid min-w-0 gap-1 text-xs text-muted-foreground`,children:e.messages.map(e=>{let r=An(e);return(0,X.jsxs)(`li`,{className:`flex min-h-11 min-w-0 flex-wrap items-center gap-2`,children:[(0,X.jsx)(K,{className:Ln,to:`/tasks/${e.recipientRunId}`,"aria-label":`${Z(e.recipientRunId,n)}${r?` — ${r}`:``}`,children:Z(e.recipientRunId,n)}),r?(0,X.jsx)(`span`,{"data-slot":`conversation-outcome`,children:r}):null,(0,X.jsx)(Bn,{message:e,runId:t,taskTitles:n})]},e.id)})}):null,e.messages.length===1&&c?(0,X.jsx)(Bn,{message:c,runId:t,taskTitles:n}):null,(0,X.jsx)(Vn,{batch:e,heading:s})]})}function Bn({message:e,runId:t,taskTitles:n}){let{targets:r,replies:i,navigate:a}=(0,Y.useContext)(mn),o=e.requestId?r.get(e.requestId):void 0,s=e.requestId?o?[o]:[]:i.get(e.messageId)??[],c=e.requestId?`request`:`reply`;return s.length===0?e.requestId||e.outcome?.replyId?(0,X.jsxs)(`p`,{"data-slot":`conversation-connector`,className:`text-xs text-muted-foreground`,children:[`Linked `,c,` is outside loaded history.`]}):null:s.map(e=>{let r=Dn(e.message,t)===`outbound`,i=r?e.message.recipientRunId:e.message.senderRunId;return(0,X.jsxs)(`button`,{type:`button`,"data-slot":`conversation-connector`,className:U(Ln,`w-fit gap-1.5 text-xs text-muted-foreground`),onClick:()=>a(e),children:[(0,X.jsx)(`span`,{"aria-hidden":!0,children:`↗`}),`View `,c,` `,r?`to`:`from`,` `,Z(i,n)]},e.message.messageId)})}function Vn({batch:e,heading:t}){return(0,X.jsxs)(Oe,{"data-slot":`conversation-details`,className:`group/details`,children:[(0,X.jsxs)(G,{type:`button`,className:`inline-flex min-h-11 min-w-11 items-center gap-1.5 rounded-md px-2 text-left text-xs font-medium text-muted-foreground hover:bg-background/40 hover:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none`,children:[(0,X.jsx)(j,{"aria-hidden":!0,className:`size-3.5 shrink-0 transition-transform group-data-[state=open]/details:rotate-90`}),`Details`]}),(0,X.jsx)(W,{children:(0,X.jsxs)(`dl`,{className:`grid min-w-0 gap-1 break-all px-2 pb-1 font-mono text-[11px] text-muted-foreground`,children:[(0,X.jsx)(`div`,{className:`sr-only`,children:t}),e.messages.flatMap(e=>Hn(e)).map((e,t)=>(0,X.jsxs)(`div`,{children:[(0,X.jsxs)(`dt`,{className:`inline font-sans font-medium text-soft-foreground`,children:[e.label,`: `]}),(0,X.jsx)(`dd`,{className:`inline`,children:e.value})]},`${e.label}:${e.value}:${t}`))]})})]})}function Hn(e){let t=[{label:`Message`,value:e.messageId},{label:`Sender`,value:e.senderRunId},{label:`Recipient`,value:e.recipientRunId},{label:`Delivery`,value:jn(e.delivery)}];return e.requestId&&t.push({label:`Request`,value:e.requestId}),e.outcome?.replyId&&t.push({label:`Reply`,value:e.outcome.replyId}),e.state&&t.push({label:`State`,value:e.state}),e.createdAt&&t.push({label:`Created`,value:e.createdAt}),e.deliveredAt&&t.push({label:e.resumed?`Opening turn completed`:`Delivery acknowledged`,value:e.deliveredAt}),e.recordedAt&&t.push({label:`Event recorded`,value:e.recordedAt}),e.resumed&&t.push({label:`Continuation`,value:`Requested by parent with this instruction`}),e.deadline&&t.push({label:`Deadline`,value:e.deadline}),e.requestHash&&t.push({label:`Hash`,value:e.requestHash}),t}function Un(e){let t=new Set,n=[];for(let r of e)t.has(r)||(t.add(r),n.push(r));return n}function Wn({note:e}){return(0,X.jsxs)(`div`,{"data-slot":`note-line`,"data-tone":e.tone,className:U(`px-0.5 text-xs`,e.tone===`danger`?`text-danger [.light_&]:text-red-700`:`text-soft-foreground`),children:[e.tone===`danger`?`✗ `:`· `,e.text]})}var Gn={claude:`Claude Code`,codex:`Codex`,opencode:`OpenCode`,pi:`pi`,cursor:`Cursor`};function Kn({incident:e}){let t=Gn[e.provider];return(0,X.jsxs)(`div`,{role:`alert`,"data-slot":`provider-auth-required`,className:`rounded-md border border-danger/30 bg-danger/5 px-3.5 py-3`,children:[(0,X.jsxs)(`p`,{className:`text-[13px] font-semibold text-foreground`,children:[`This run needed `,t,` authorization`]}),(0,X.jsxs)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:[`Review `,t,` settings before retrying.`]}),(0,X.jsx)(K,{to:`/settings/agents#providers`,className:`mt-2 inline-flex text-xs font-medium text-foreground underline-offset-2 hover:underline`,children:`Open provider settings`})]})}function qn({text:e}){let t=(0,Y.useId)();if(e.trim()===``)return null;let n=e.split(`
2
+ `,1)[0]??``,r=n.length<e.length;return(0,X.jsxs)(Oe,{"data-slot":`reasoning`,className:`group/reasoning min-w-0`,children:[(0,X.jsxs)(`div`,{id:t,className:`relative flex w-full items-center gap-1.5 rounded-md p-0.5 text-left text-[13px] text-soft-foreground hover:text-muted-foreground`,children:[(0,X.jsx)(j,{"aria-hidden":!0,className:`size-3.5 shrink-0 transition-transform group-data-[state=open]/reasoning:rotate-90`}),(0,X.jsx)(`span`,{className:`shrink-0`,children:`Thinking — `}),(0,X.jsx)(`div`,{className:`min-w-0 truncate text-muted-foreground`,children:(0,X.jsx)(_t,{inline:!0,children:n})}),r?(0,X.jsx)(`span`,{"aria-hidden":!0,children:`…`}):null,(0,X.jsx)(G,{"aria-labelledby":t,className:`absolute inset-0 rounded-md focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none`})]}),(0,X.jsx)(W,{children:(0,X.jsx)(`div`,{className:`px-6 py-1.5 text-[13px] leading-[1.6] text-soft-foreground`,children:(0,X.jsx)(_t,{children:e})})})]})}function Jn(){return(0,X.jsxs)(`div`,{"data-slot":`working-indicator`,className:`flex items-center gap-2 py-1 text-[13px] text-soft-foreground`,children:[(0,X.jsx)(pt,{role:`status`,"aria-label":`Working`,className:`size-3.5 shrink-0 animate-spin`}),(0,X.jsx)(`span`,{className:`shimmer font-medium`,children:`Working…`})]})}var Yn={read:rt,edit:Ut,delete:h,move:Vt,search:C,execute:gt,think:zt,fetch:Re,task:m,plan:o,other:I},Xn=e=>e.split(`
3
+ `).length;function Zn({text:e,streaming:t}){let[n,r]=(0,Y.useState)(!1),i=(0,Y.useRef)(null),a=(0,Y.useRef)(!0);(0,Y.useEffect)(()=>{let e=i.current;t&&e&&a.current&&(e.scrollTop=e.scrollHeight)},[e,t]);let o=Xn(e),s=!t&&!n&&o>12;return(0,X.jsxs)(`div`,{"data-slot":`tool-output`,"data-clamped":s?`true`:void 0,children:[(0,X.jsxs)(`div`,{className:`relative`,children:[(0,X.jsx)(`div`,{ref:i,onScroll:t?e=>{a.current=vn(e.currentTarget)}:void 0,className:U(`overflow-x-auto`,t&&`max-h-[216px] overflow-y-auto`,s&&`max-h-[216px] overflow-y-hidden`),children:(0,X.jsx)(`pre`,{className:`px-4 py-3 font-mono text-xs leading-[1.7] whitespace-pre text-muted-foreground`,children:e})}),s?(0,X.jsx)(`div`,{"data-slot":`tool-output-fade`,"aria-hidden":!0,className:`pointer-events-none absolute inset-x-0 bottom-0 h-14 bg-gradient-to-b from-transparent to-card-2`}):null]}),!t&&o>12?(0,X.jsx)(`button`,{type:`button`,"data-slot":`tool-output-toggle`,onClick:()=>r(e=>!e),className:`block w-full border-t border-border/50 px-4 py-1.5 text-left text-[11px] font-medium text-soft-foreground hover:text-foreground`,children:n?`Show less`:`Show all ${o} lines`}):null]})}function Qn({diffs:e}){return(0,X.jsx)(X.Fragment,{children:e.map((e,t)=>(0,X.jsxs)(`div`,{"data-slot":`diff-preview`,className:`min-w-0`,children:[(0,X.jsx)(`div`,{className:`border-b border-border/50 px-4 py-1.5 font-mono text-[11px] text-soft-foreground`,children:e.path}),(0,X.jsx)(`pre`,{className:`overflow-x-auto py-2 font-mono text-xs leading-[1.7] whitespace-pre`,children:e.unified===void 0?[...$n(e.oldText).map((e,t)=>(0,X.jsxs)(`span`,{className:`block bg-diff-del px-4 text-muted-foreground`,children:[`- `,e]},`old-${t}`)),...$n(e.newText).map((e,t)=>(0,X.jsxs)(`span`,{className:`block bg-diff-add px-4`,children:[`+ `,e]},`new-${t}`))]:e.unified.split(`
4
+ `).map((e,t)=>(0,X.jsx)(er,{text:e},t))})]},`${e.path}:${t}`))})}function $n(e){return e==null||e===``?[]:e.replace(/\n$/,``).split(`
5
+ `)}function er({text:e}){return(0,X.jsx)(`span`,{className:U(`block px-4`,e.startsWith(`+`)&&`bg-diff-add`,e.startsWith(`-`)&&`bg-diff-del text-muted-foreground`,e.startsWith(`@@`)&&`text-soft-foreground`),children:e})}function tr(e){return e.toolKind===`execute`&&e.status===`running`&&e.output!==void 0}function nr({item:e,nested:t=[],cacheKey:n,renderNested:r}){let i=fn(),[a,o]=(0,Y.useState)(()=>n===void 0?null:i?.get(n)??null),s=e=>{n!==void 0&&i?.set(n,e),o(e)},c=e.status===`running`||e.status===`pending`,l=sn(e.title),{verb:u,detail:d}=e.toolKind===`execute`&&l.detail===void 0?{verb:`Ran`,detail:e.title}:l,f=e.output!==void 0&&e.output!==``||e.error!==void 0&&e.error!==``||e.diffs!==void 0&&e.diffs.length>0||t.length>0,p=d!==void 0||f,m=p&&(a??(f&&tr(e))),h=Yn[e.toolKind]??I;return(0,X.jsxs)(Oe,{"data-slot":`tool-card`,"data-status":e.status,"data-kind":e.toolKind,open:m,onOpenChange:s,className:U(`min-w-0 overflow-hidden rounded-md border bg-card`,e.status===`failed`?`border-danger/25`:`border-border`),children:[(0,X.jsxs)(G,{disabled:!p,className:`group flex min-h-[28px] w-full items-center gap-1.5 px-2.5 py-0.5 text-left text-[13px] enabled:hover:bg-muted`,children:[(0,X.jsx)(j,{"aria-hidden":!0,className:U(`size-3 shrink-0 text-soft-foreground transition-transform group-data-[state=open]:rotate-90`,!p&&`invisible`)}),(0,X.jsx)(h,{"aria-hidden":!0,className:`size-3.5 shrink-0 text-muted-foreground`}),(0,X.jsx)(`span`,{className:U(`shrink-0 font-semibold`,c&&`shimmer`,e.status===`declined`&&`text-muted-foreground`),children:u}),d===void 0?null:(0,X.jsx)(`code`,{title:d,className:`block min-w-0 flex-1 truncate font-mono text-xs text-muted-foreground`,children:d}),(0,X.jsxs)(`span`,{className:`ml-auto flex shrink-0 items-center gap-2 pl-2`,children:[c?(0,X.jsx)(pt,{role:`status`,"aria-label":`Running`,className:`size-3.5 animate-spin text-soft-foreground`}):null,e.status===`failed`?(0,X.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`failed`}):null,e.status===`declined`?(0,X.jsx)(`span`,{className:`text-xs text-soft-foreground`,children:`declined`}):null,e.toolKind===`execute`&&typeof e.exitCode==`number`?(0,X.jsx)(`span`,{"data-slot":`tool-exit`,className:U(`rounded-full px-2 py-px font-mono text-[11px] font-semibold`,e.exitCode===0?`bg-success/10 text-success`:`bg-danger/10 text-danger`),children:e.exitCode}):null]})]}),(0,X.jsx)(W,{children:(0,X.jsxs)(`div`,{className:`border-t border-border bg-card-2`,children:[d===void 0?null:(0,X.jsx)(`pre`,{"data-slot":`tool-command`,className:`px-3 py-2 font-mono text-xs whitespace-pre-wrap break-words [overflow-wrap:anywhere]`,children:d}),e.error!==void 0&&e.error!==``?(0,X.jsx)(`div`,{"data-slot":`tool-error`,className:`px-4 py-3 font-mono text-xs leading-[1.7] whitespace-pre-wrap text-danger`,children:e.error}):null,e.diffs!==void 0&&e.diffs.length>0?(0,X.jsx)(Qn,{diffs:e.diffs}):null,e.output!==void 0&&e.output!==``?(0,X.jsx)(Zn,{text:e.output,streaming:c}):null,t.length>0?(0,X.jsx)(`div`,{"data-slot":`tool-nested`,className:`flex flex-col gap-2 border-l-2 border-border py-2.5 pr-3 pl-3 ml-4 my-2`,children:r?.(t,n??e.id)}):null]})})]})}function rr({group:e,scope:t}){return(0,X.jsxs)(Oe,{"data-slot":`ctx-group`,className:`min-w-0`,children:[(0,X.jsxs)(G,{className:`group flex h-[34px] tabular-nums w-full items-center gap-2 rounded-md px-2 -mx-2 text-left text-[13px] font-medium text-muted-foreground hover:bg-muted hover:text-foreground`,children:[(0,X.jsx)(j,{"aria-hidden":!0,className:`size-3.5 shrink-0 text-soft-foreground transition-transform group-data-[state=open]:rotate-90`}),e.label]}),(0,X.jsx)(W,{children:(0,X.jsx)(`div`,{className:`flex flex-col gap-1.5 pt-1.5 pl-4`,children:e.tools.map(e=>(0,X.jsx)(nr,{item:e,cacheKey:t===void 0?void 0:`${t}:${e.id}`},e.id))})})]})}function ir({count:e,children:t}){return(0,X.jsxs)(Oe,{"data-slot":`tool-streak`,className:`min-w-0`,children:[(0,X.jsxs)(G,{className:`group flex items-center gap-1.5 rounded-md p-0.5 tabular-nums text-left text-xs text-soft-foreground hover:text-muted-foreground`,children:[(0,X.jsx)(j,{"aria-hidden":!0,className:`size-3.5 shrink-0 transition-transform group-data-[state=open]:rotate-90`}),an(e)]}),(0,X.jsx)(W,{children:(0,X.jsx)(`div`,{className:`flex flex-col gap-2 pt-2`,children:t})})]})}function ar({image:e}){return(0,X.jsx)(Dt,{"data-slot":`thread-image`,src:e.url,alt:e.name??`image from the agent session`,className:`max-h-72 max-w-full self-start rounded-lg border border-border`})}function or(e,t=null){let n=T(),r=ae(),i=Ie(e),a=i&&!e.runner,o=ge(n.data),s=e.runner??(i?r.data?.defaultRunner:void 0)??`claude`,c=qe(t,o,s),l=o.includes(s),u=(i?Ee(e.workflowDef,c):[c]).filter(e=>!o.includes(e)),d=n.isSuccess&&(!a||r.isSuccess)&&u.length===0,f=a&&r.isPending?`Checking task settings…`:a&&r.isError?`Task settings could not be loaded.`:n.isPending?`Checking agent providers…`:n.isError?`Provider authentication could not be verified.`:d?void 0:i?`Connect the required workflow providers (${u.join(`, `)}) to continue.`:`Connect an agent provider to continue.`;return{runners:o,currentRunner:s,runner:c,currentRunnerConnected:l,canContinue:d,providerPending:n.isPending||a&&r.isPending,providerError:n.isError,reason:f,runnerOverride:t!==null||!l?c:void 0}}function sr(e){let t=r(),n=Fe(e).continueRun,i=ae(),[a,o]=(0,Y.useState)(null),[s,l]=(0,Y.useState)(null),[u,d]=(0,Y.useState)(null),[f,p]=(0,Y.useState)(null),[m,h]=(0,Y.useState)(e.id);m!==e.id&&(h(e.id),o(null),l(null),d(null),p(null));let g=or(e,a),{runners:_,canContinue:v,currentRunner:y,runner:b}=g,x=pe(b,n),S=i.data?.modelsLocked===!0,C=b!==y,w=!S&&!C&&e.model?{...i.data?.defaultModels,[b]:e.model}:i.data?.defaultModels,T=S?null:s,E=$e(b,x.data,[T,w?.[b]]),D=et(T,b,w,x.data),O=Ze(b,D,x.data),k=S?``:u??e.effort??``,A=Ye(k,O),j=!S&&u===null&&k!==``&&A===``,{accounts:P,repoAccount:F}=ke(),I=[...e.steps].reverse().find(e=>e.sessionId),L=I?.profileId??e.agentProfile??`default`,R=C?F:{...F,[y]:L},z=P.some(e=>e.provider===b&&e.id===f)?f:null,ee=c({mutationFn:({text:t,images:n})=>v?N(e.id,{text:t.trim()?t:void 0,images:n.length?n:void 0,runner:g.runnerOverride,model:!S&&s!==null?D:void 0,effort:!S&&u!==null?A:j?``:void 0,agentProfile:z??void 0}):Promise.reject(Error(g.reason??`Connect an agent provider to continue.`)),onSuccess:()=>t.invalidateQueries({queryKey:V.runs.all}),onError:e=>{e instanceof le&&e.status===409&&t.invalidateQueries({queryKey:V.runs.all})}});return{available:n,canContinue:v,startsNewConversation:!!I&&(b!==(I.backend??y)||(z??e.agentProfile??I.profileId??`default`)!==(I.profileId??`default`)),reason:g.reason,providerPending:g.providerPending,pills:(0,X.jsxs)(`div`,{"data-slot":`follow-up-engine`,className:`session-engine-controls`,children:[_.length>1||_.some(e=>je(P,e))?(0,X.jsx)(Qe,{icon:(0,X.jsx)(H,{"aria-hidden":`true`,className:`size-[18px] shrink-0 text-accent-text`}),fieldLabel:!0,runners:_,value:b,accounts:P,account:z,repoAccount:R,onPick:(e,t)=>{p(t),e!==b&&(o(e),l(null))}}):(0,X.jsx)(Xe,{icon:(0,X.jsx)(H,{"aria-hidden":`true`,className:`size-[18px] shrink-0 text-accent-text`}),fieldLabel:!0,readOnly:!0,slot:`session-runner-value`,ariaLabel:`Runner`,label:b,value:b,onPick:()=>{},options:[{value:b,label:b}]}),(0,X.jsx)(Xe,{icon:(0,X.jsx)(M,{"aria-hidden":`true`,className:`size-[18px] shrink-0 text-accent-text`}),fieldLabel:!0,slot:`follow-up-model-pill`,ariaLabel:`Model`,label:E.find(e=>e.id===D)?.label??`auto`,value:D,readOnly:S,disabledHint:`Model selection is locked to native coding-agent settings.`,onPick:e=>{l(e);let t=Ze(b,e,x.data);A!==``&&Ye(A,t)===``&&d(``)},options:E.map(e=>({value:e.id,label:e.label,desc:e.desc})),status:Je(b,x.data,x.isError,x.isFetching)}),(0,X.jsx)(Xe,{icon:(0,X.jsx)(B,{"aria-hidden":`true`,className:`size-[18px] shrink-0 text-accent-text`}),fieldLabel:!0,slot:`follow-up-effort-pill`,ariaLabel:`Effort`,label:O.find(e=>e.value===A)?.label??`auto`,value:A,readOnly:S,disabledHint:`Effort selection is locked to native coding-agent settings.`,onPick:e=>d(e),options:O.map(e=>({value:e.value,label:e.label,desc:e.desc}))})]}),continueWith:(e,t)=>ee.mutateAsync({text:e,images:t})}}var cr=120,lr=e=>e!==`pending`&&e!==`running`,ur=e=>e.kind===`tool`&&e.toolKind===`task`,Q=e=>ur(e)&&e.parentItemId===void 0,dr=e=>(e.kind===`message`||e.kind===`reasoning`||e.kind===`tool`)&&!(e.kind===`tool`&&e.toolKind===`plan`);function fr(e,t){for(let n=0;n<e.length;n+=1)if(e[n].items.some(e=>Q(e)&&t.has(e.id)))return n;return 0}function pr(e){let t=e.input;if(typeof t!=`object`||!t)return;let n=t;for(let e of[`subagent_type`,`subagentType`,`agent`]){let t=n[e];if(typeof t==`string`&&t.trim()!==``)return t.trim()}}function mr(e){if(e.kind===`tool`)return hr(e.title);if(e.kind===`message`||e.kind===`reasoning`){let t=e.text.split(`
6
+ `);for(let e=t.length-1;e>=0;--e){let n=t[e].trim();if(n!==``)return hr(n)}}}function hr(e){return e.length>cr?`${e.slice(0,cr-1).trimEnd()}…`:e}function gr(e,t=!1){let n=br(e,e=>e.items.some(Q));if(n===-1)return[];let r=e=>!t&&!lr(e.status),i=[];for(let t=n-1;t>=0;--t){let n=e[t].items.filter(Q);if(n.length!==0){if(!n.some(r))break;i.unshift(...n)}}let a=[...i,...e[n].items.filter(Q)];if(n!==e.length-1&&!a.some(r))return[];let o=new Set(a.map(e=>e.id)),s=i.length>0?fr(e,o):n,c=new Map;for(let t=s;t<e.length;t+=1)for(let n of e[t].items){if(!dr(n))continue;let e=n.parentItemId;if(e===void 0||!o.has(e))continue;let t=c.get(e);t?t.push(n):c.set(e,[n])}return a.map(e=>_r(e,c.get(e.id)??[],t))}function _r(e,t,n){let r={id:e.id,title:sn(e.title).detail??e.title,status:e.status,toolCalls:t.filter(e=>e.kind===`tool`).length},i=pr(e);i!==void 0&&(r.agentType=i),n&&!lr(e.status)&&(r.stalled=!0);for(let e=t.length-1;e>=0;--e){let n=mr(t[e]);if(n!==void 0){r.activity=n;break}}return r}function vr(e){return{done:e.filter(e=>e.status===`completed`).length,total:e.length}}function yr(e){return e.activity??(e.stalled===!0?`never finished`:`starting…`)}function br(e,t){for(let n=e.length-1;n>=0;--n)if(t(e[n]))return n;return-1}function xr(e,t,n=!1){for(let r=e.length-1;r>=0;--r){let i=e[r].items.find(e=>e.id===t&&Q(e));if(i!==void 0)return _r(i,Sr(e,t),n)}}function Sr(e,t){let n=e.findIndex(e=>e.items.some(e=>e.id===t&&Q(e)));if(n===-1)return[];let r=[];for(let i=n;i<e.length;i+=1)for(let n of e[i].items)dr(n)&&n.parentItemId===t&&n.id!==t&&r.push(n);return r}function Cr(e,t={}){let{surface:n=`document`,onLoadOlder:r,onJumpToLatest:i,rowKeys:a=[]}=t,o=(0,Y.useRef)(e);o.current=e;let s=(0,Y.useRef)(null),[c,l]=(0,Y.useState)(null),[u,d]=(0,Y.useState)(!1),f=(0,Y.useRef)(!0),p=(0,Y.useRef)(0),m=(0,Y.useRef)(null),h=(0,Y.useRef)(null),g=(0,Y.useRef)(null),_=(0,Y.useCallback)(e=>{let t=s.current;if(!t)return;let n=g.current;n?n.scrollTo(e):t.scrollTop=e},[]),v=(0,Y.useCallback)(()=>{let e=s.current;e&&_(e.scrollHeight-e.clientHeight)},[_]),y=(0,Y.useCallback)(()=>{if(s.current){if(h.current!==e){h.current=e;let t=Sn(e);t&&!t.atBottom?(f.current=!1,m.current=t.top):(f.current=!0,m.current=null)}m.current===null?f.current&&v():_(m.current)}},[e,_,v]),b=(0,Y.useCallback)(e=>{l(e),e&&(s.current=e.closest(n===`panel`?`[data-slot="transcript-viewport"]`:`[data-slot="main"]`),y())},[n,y]),x=(0,Y.useCallback)(()=>{f.current&&v()},[v]),S=(0,Y.useRef)(!1),C=(0,Y.useRef)(0),w=(0,Y.useRef)(!1),T=(0,Y.useRef)(void 0),E=(0,Y.useRef)(!1),D=(0,Y.useRef)(!1),O=(0,Y.useRef)(a);O.current=a;let k=(0,Y.useCallback)(e=>[...e.querySelectorAll(`[data-slot="thread-row"][data-row-key]`)].map(e=>{let t=e.getBoundingClientRect();return{key:e.dataset.rowKey,top:t.top,bottom:t.bottom}}),[]),A=(0,Y.useRef)(null),j=(0,Y.useRef)(0),M=(0,Y.useCallback)(()=>{let e=A.current,t=s.current;if(!e||!t)return;A.current=null;let n=e.beforeTop+Math.max(0,t.scrollHeight-e.beforeHeight),r=t.getBoundingClientRect().top,i=e.anchor===void 0?-1:O.current.indexOf(e.anchor.key),a=g.current;a&&i>=0?a.scrollToIndex(i,{align:`start`,offset:-e.anchor.offset}):_(_n(t.scrollTop,r,e.anchor,k(t),n))},[k,_]),N=(0,Y.useCallback)(()=>{let e=s.current;if(!e||!r||S.current)return;m.current=null,f.current=!1,S.current=!0;let t=C.current+1;C.current=t;let n=e.scrollHeight,i=e.scrollTop,a=e.getBoundingClientRect().top,c=gn(a,k(e)),l=c===void 0?-1:O.current.indexOf(c.key),u=o.current,d=j.current;r().then(()=>{o.current===u&&j.current===d&&(A.current={beforeHeight:n,beforeTop:i,anchor:c,anchorIndex:l})},()=>{}).finally(()=>{C.current===t&&(S.current=!1)})},[k,r]);(0,Y.useEffect)(()=>()=>clearTimeout(T.current),[]);let P=(0,Y.useRef)(null);(0,Y.useEffect)(()=>()=>P.current?.disconnect(),[e,c]);let F=(0,Y.useCallback)((t,n)=>{let r=s.current;if(!r||!c)return;m.current=null,j.current+=1,A.current=null,f.current=!1,p.current=0,d(!0),P.current?.disconnect();let i=()=>[...c.querySelectorAll(`[data-row-key]`)].find(e=>e.dataset.rowKey===t),a=()=>{let e=i();return!e||getComputedStyle(e).visibility===`hidden`||(e.tabIndex=-1,e.focus({preventScroll:!0}),document.activeElement!==e)?!1:(P.current?.disconnect(),!0)},o=r.querySelector(`[data-slot="run-header"]`),l=o&&getComputedStyle(o).position===`sticky`?o.getBoundingClientRect().height:0,u=g.current;if(u)u.scrollToIndex(n,{align:`start`,...l>0?{offset:-l}:{}});else{let e=i();e&&_(r.scrollTop+e.getBoundingClientRect().top-r.getBoundingClientRect().top-l)}a()||(P.current=new MutationObserver(()=>{a()}),P.current.observe(c,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`style`,`class`]})),xn(e,{top:r.scrollTop,atBottom:!1})},[c,_,e]),I=(0,Y.useCallback)(()=>{P.current?.disconnect();let t=s.current;if(!t)return;m.current=null,j.current+=1,A.current=null,f.current=!0,xn(e,{top:t.scrollHeight-t.clientHeight,atBottom:!0});let n=()=>{f.current&&v()};(i?.()??Promise.resolve()).finally(()=>{requestAnimationFrame(()=>{n(),requestAnimationFrame(n)})})},[i,e,v]),L=a.at(-1),R=a.length;return(0,Y.useLayoutEffect)(()=>{j.current+=1,A.current=null,S.current=!1},[e]),(0,Y.useLayoutEffect)(()=>{let e=A.current;e?(e.anchor===void 0?-1:O.current.indexOf(e.anchor.key))>e.anchorIndex?M():A.current=null:f.current&&v()},[L,R,M,v]),(0,Y.useLayoutEffect)(()=>{!s.current||!c||y()},[c,y]),(0,Y.useEffect)(()=>{let t=s.current,n=c;if(!t||!n)return;p.current=0;let r=null,i=!1,a=t.scrollTop,o=()=>{P.current?.disconnect(),m.current=null,j.current+=1,A.current=null,f.current=!1,p.current=0},l=()=>{j.current+=1,A.current=null,p.current=Date.now()},u=e=>{if(e.deltaY<0){o();let e=!w.current;w.current=!0,clearTimeout(T.current),T.current=setTimeout(()=>{w.current=!1},180),e&&hn(t)&&N()}else l()},h=e=>{[`ArrowUp`,`PageUp`,`Home`].includes(e.key)?(o(),!e.repeat&&hn(t)&&N()):[`ArrowDown`,`PageDown`,`End`].includes(e.key)&&l()},g=()=>{i=!0,D.current=!1,a=t.scrollTop,vn(t,80)||(o(),l())},y=()=>{i=!1},b=e=>{E.current=!1,r=e.touches[0]?.clientY??null},x=e=>{let n=e.touches[0]?.clientY;n!==void 0&&(r!==null&&n>r+1?(o(),!E.current&&hn(t)&&(E.current=!0,N())):r!==null&&n<r-1&&l(),r=n)},S=()=>{i&&!D.current&&t.scrollTop<a&&hn(t)&&(D.current=!0,N()),a=t.scrollTop;let n=vn(t,80);n&&m.current===null&&(f.current||Date.now()-p.current<2e3)&&(f.current=!0),d(!n),m.current===null&&xn(e,{top:t.scrollTop,atBottom:n})};t.addEventListener(`scroll`,S,{passive:!0}),t.addEventListener(`wheel`,u,{passive:!0}),t.addEventListener(`touchstart`,b,{passive:!0}),t.addEventListener(`touchmove`,x,{passive:!0}),t.addEventListener(`pointerdown`,g,{passive:!0}),window.addEventListener(`pointerup`,y,{passive:!0}),t.addEventListener(`keydown`,h);let C;if(typeof ResizeObserver<`u`){C=new ResizeObserver(()=>{let e=m.current;if(e!==null){let n=t.scrollHeight-t.clientHeight;_(Math.min(e,n)),n>=e&&(m.current=null)}else f.current&&v()}),C.observe(n);let e=n.closest(`[data-route="task-thread"]`),r=e?.querySelector(`[data-slot="run-header"]`),i=e?.querySelector(`[data-slot="thread-dock"]`);r&&C.observe(r),i&&C.observe(i)}return()=>{t.removeEventListener(`scroll`,S),t.removeEventListener(`wheel`,u),t.removeEventListener(`touchstart`,b),t.removeEventListener(`touchmove`,x),t.removeEventListener(`pointerdown`,g),window.removeEventListener(`pointerup`,y),t.removeEventListener(`keydown`,h),C?.disconnect()}},[e,c,N,_,v]),{attachContent:b,scrollElRef:s,virtualizerRef:g,pillVisible:u,jumpToLatest:I,jumpToRow:F,loadOlder:N,restickIfStuck:x}}function wr({runId:e,rows:t,mode:n,controls:r}){return n===`virtual`?(0,X.jsx)(Tr,{runId:e,rows:t,controls:r}):(0,X.jsx)(`div`,{ref:r.attachContent,"data-slot":`thread-rows`,"data-virtualized":`false`,className:`[overflow-anchor:none]`,children:t.map(e=>(0,X.jsx)(`div`,{"data-slot":`thread-row`,"data-row-key":e.key,className:`flex w-full flex-col pb-2.5 [contain-intrinsic-block-size:auto_3rem] [content-visibility:auto]`,children:e.node},e.key))})}function Tr({runId:e,rows:t,controls:n}){return(0,X.jsx)(Er,{runId:e,rows:t,controls:n},e)}function Er({runId:e,rows:t,controls:n}){let r=(0,Y.useRef)(null),i=(0,Y.useRef)(t),a=t[0]?.key,o=i.current[0]?.key,s=a!==o&&(t.some(e=>e.key===o)||i.current.some(e=>e.key===a));(0,Y.useLayoutEffect)(()=>{i.current=t},[t]);let[c]=(0,Y.useState)(()=>Tn(e,t.length)),l=(0,Y.useRef)(t.length);l.current=t.length;let u=(0,Y.useRef)(null),d=(0,Y.useCallback)(t=>{n.virtualizerRef.current=t,t?u.current=t:u.current&&=(wn(e,{rows:l.current,cache:u.current.cache}),null)},[e,n.virtualizerRef]),[f,p]=(0,Y.useState)(0);return(0,Y.useLayoutEffect)(()=>{let e=()=>{let e=r.current,t=n.scrollElRef.current;!e||!t||p(Math.max(0,Math.round(e.getBoundingClientRect().top-t.getBoundingClientRect().top+t.scrollTop)))};return e(),window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[n.scrollElRef]),(0,X.jsx)(`div`,{ref:e=>{r.current=e,n.attachContent(e)},"data-slot":`thread-rows`,"data-virtualized":`true`,className:`[overflow-anchor:none]`,children:(0,X.jsx)(Et,{ref:d,scrollRef:n.scrollElRef,startMargin:f,shift:s,...c===void 0?{}:{cache:c},children:t.map(e=>(0,X.jsx)(`div`,{"data-slot":`thread-row`,"data-row-key":e.key,className:`flex w-full flex-col pb-2.5`,children:e.node},e.key))})})}function Dr({onJump:e}){return(0,X.jsxs)(`button`,{type:`button`,"data-slot":`jump-to-latest`,onClick:e,className:`pointer-events-auto inline-flex min-h-11 min-w-11 items-center gap-1.5 rounded-full border border-border bg-background px-3.5 text-xs font-medium text-muted-foreground shadow-modal hover:text-foreground`,children:[(0,X.jsx)(d,{"aria-hidden":!0,className:`size-3.5`}),`Jump to latest`]})}function Or(e,t){let n=[];e.task&&n.push({id:`task`,userMessageKey:`task`,userMessage:{text:e.task,images:e.taskImages??[]},entries:[]});for(let t of e.queuedMessages??[])n.push({id:`queued:${t.id}`,userMessageKey:`queued:${t.id}`,userMessage:{text:t.text,images:t.images??[]},entries:[]});for(let e of t.turns)n.push({id:e.id,userMessageKey:`${e.id}:user`,...e.userMessage===void 0?{}:{userMessage:{text:e.userMessage.text,imageCount:e.userMessage.imageCount,images:e.userMessage.images}},entries:e.items});return n}function kr(e,t){return[{id:`agent:${e}`,entries:t}]}function Ar(e,t){let n=[];for(let t of e){t.userMessage!==void 0&&n.push({key:t.userMessageKey??`${t.id}:user`,scope:t.id,content:{kind:`user-message`,message:t.userMessage}});for(let e of cn([...t.entries]))n.push({key:`${t.id}:${e.id}`,scope:t.id,content:{kind:`block`,block:e}})}return n}function jr({runId:e,viewId:t,sections:n,mode:r,empty:i,renderAsk:a,messageActions:o,scrollControls:s,renderMode:c,taskTitles:l}){let u=(0,Y.useMemo)(()=>Ar(n,e),[n,e]),d=Cr(`${e}:${t}`,{surface:r}),f=s??d,p=(0,Y.useMemo)(()=>{let e=new Map;u.forEach((t,n)=>{if(!(t.content.kind!==`block`||t.content.block.kind!==`worker-conversation`))for(let r of t.content.block.batches)for(let i of r.messages)e.set(i.messageId,{message:i,rowKey:t.key,rowIndex:n})});let t=new Map;for(let n of e.values()){let{message:e}=n;if(e.messageKind!==`reply`||!e.requestId)continue;let r=t.get(e.requestId)??[];r.push(n),t.set(e.requestId,r)}return{targets:e,replies:t,navigate:e=>f.jumpToRow(e.rowKey,e.rowIndex)}},[u,f.jumpToRow]),m=(0,Y.useMemo)(()=>u.map(t=>({key:t.key,node:t.content.kind===`user-message`?(0,X.jsx)(Mr,{message:t.content.message,actions:o?.[t.key]}):(0,X.jsx)(Nr,{block:t.content.block,scope:t.scope,renderAsk:a,runId:e,taskTitles:l})})),[o,a,u,e,l]),h=c??yn(``,m.length),g=m.length===0?i??null:(0,X.jsx)(wr,{runId:`${e}:${t}`,rows:m,mode:h,controls:f});return(0,X.jsx)(at,{runId:e,children:(0,X.jsx)(pn,{runId:e,children:(0,X.jsx)(mn.Provider,{value:p,children:r===`panel`?(0,X.jsxs)(`div`,{"data-slot":`transcript-viewport`,"aria-label":`Agent transcript`,role:`region`,tabIndex:0,className:`relative flex min-h-0 flex-1 flex-col overflow-y-auto [scrollbar-gutter:stable]`,children:[(0,X.jsx)(`div`,{"data-slot":`subagent-stream`,className:`flex flex-col px-5 py-4`,children:g}),f.pillVisible?(0,X.jsx)(`div`,{className:`pointer-events-none sticky inset-x-0 bottom-4 flex justify-center`,children:(0,X.jsx)(Dr,{onJump:f.jumpToLatest})}):null]}):g})})})}function Mr({message:e,actions:t}){return(0,X.jsx)(Pn,{text:e.text,imageCount:e.imageCount,images:e.images,onEdit:t?.onEdit,onRemove:t?.onRemove,editLabel:t?.editLabel,removeLabel:t?.removeLabel})}function Nr({block:e,scope:t,renderAsk:n,runId:r,taskTitles:i}){switch(e.kind){case`entry`:return(0,X.jsx)(Fr,{entry:e.entry,scope:t,renderAsk:n,runId:r,taskTitles:i});case`tool-card`:return(0,X.jsx)(nr,{item:e.item,nested:e.children,cacheKey:`${t}:${e.id}`,renderNested:(e,t)=>(0,X.jsx)(Pr,{entries:e,scope:t,renderAsk:n,runId:r,taskTitles:i})});case`context-group`:return(0,X.jsx)(rr,{group:e,scope:t});case`streak`:return(0,X.jsx)(ir,{count:e.count,children:e.blocks.map(e=>(0,X.jsx)(Nr,{block:e,scope:t,renderAsk:n,runId:r,taskTitles:i},e.id))});case`worker-conversation`:return(0,X.jsx)(Rn,{block:e,runId:r,taskTitles:i});default:return Ir(e)}}function Pr({entries:e,scope:t,renderAsk:n,runId:r,taskTitles:i}){return cn([...e]).map(e=>(0,X.jsx)(Nr,{block:e,scope:t,renderAsk:n,runId:r,taskTitles:i},e.id))}function Fr({entry:e,scope:t,renderAsk:n,runId:r,taskTitles:i}){switch(e.kind){case`message`:return e.role===`assistant`?(0,X.jsx)(Fn,{text:e.text}):(0,X.jsx)(Pn,{text:e.text});case`reasoning`:return(0,X.jsx)(qn,{text:e.text});case`tool`:return(0,X.jsx)(nr,{item:e,cacheKey:`${t}:${e.id}`});case`note`:return e.attribution?(0,X.jsxs)(`div`,{className:`min-w-0 rounded-md border border-border px-4 py-3 text-sm`,children:[(0,X.jsx)(`p`,{className:`mb-2 break-all text-xs text-muted-foreground`,children:e.attribution.source===`agent`?`Agent input from parent ${e.attribution.parentRunId}`:`Worker lifecycle context for parent ${e.attribution.parentRunId}`}),(0,X.jsx)(Wn,{note:e})]}):(0,X.jsx)(Wn,{note:e});case`conversation`:return(0,X.jsx)(Rn,{runId:r,taskTitles:i,block:{kind:`worker-conversation`,id:e.id,batches:[{id:e.id,kind:e.messageKind,text:e.text,senderRunId:e.senderRunId,messages:[e]}]}});case`image`:return(0,X.jsx)(ar,{image:e});case`ask`:return n===void 0?(0,X.jsx)(`div`,{"data-slot":`ask-card`,className:`rounded-lg border border-border bg-card px-4 py-3 text-sm`,children:`The agent asked a question. Open the main session to answer it.`}):n(e);case`provider-auth-required`:return(0,X.jsx)(Kn,{incident:e});default:return Ir(e)}}function Ir(e){throw Error(`Unhandled transcript variant: ${JSON.stringify(e)}`)}function Lr({runId:e,renderAsk:t,agent:n,entries:r,onClose:i,taskTitles:a}){return(0,X.jsx)(yt,{open:n!==void 0,onOpenChange:e=>{e||i()},children:(0,X.jsx)(St,{"data-slot":`subagent-sheet`,side:`right`,className:`flex min-h-0 w-full gap-0 p-0 sm:max-w-xl`,children:n===void 0?null:(0,X.jsx)(Rr,{runId:e,renderAsk:t,agent:n,entries:r,taskTitles:a})})})}function Rr({runId:e,renderAsk:t,agent:n,entries:r,taskTitles:i}){return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(vt,{className:`gap-1.5 border-b border-border px-5 py-4`,children:[(0,X.jsxs)(bt,{className:`flex min-w-0 items-center gap-2 pr-8 text-[16px]`,children:[(0,X.jsx)(`span`,{className:`min-w-0 truncate`,children:n.title}),n.agentType===void 0?null:(0,X.jsx)(`span`,{"data-slot":`agent-type`,className:`shrink-0 rounded-full bg-muted px-2 py-0.5 text-[11px] font-semibold tracking-[0.05em] text-muted-foreground uppercase`,children:n.agentType})]}),(0,X.jsxs)(Ct,{"data-slot":`subagent-meta`,className:`flex items-center gap-2 text-xs`,children:[(0,X.jsx)(zr,{status:n.status}),(0,X.jsxs)(`span`,{className:`tabular-nums`,children:[n.toolCalls,` `,n.toolCalls===1?`tool call`:`tool calls`]})]})]}),(0,X.jsx)(jr,{runId:e,viewId:`agent:${n.id}`,sections:kr(n.id,r),mode:`panel`,renderAsk:t,taskTitles:i,empty:(0,X.jsx)(`div`,{"data-slot":`subagent-empty`,className:`py-2 text-[13px] text-muted-foreground`,children:`No attributed output — see the thread card for this agent's result.`})})]})}function zr({status:e}){let t=e===`completed`?`Completed`:e===`failed`?`Failed`:e===`declined`?`Declined`:e===`pending`?`Pending`:`Running`;return(0,X.jsx)(`span`,{"data-slot":`subagent-status`,"data-status":e,className:U(`rounded-full px-2 py-0.5 text-[11px] font-semibold tracking-[0.05em] uppercase`,e===`completed`&&`bg-success/15 text-success`,(e===`failed`||e===`declined`)&&`bg-danger/15 text-danger`,(e===`running`||e===`pending`)&&`bg-muted text-muted-foreground`),children:t})}function Br(e){let t=r();return c({mutationFn:()=>re(e),onSuccess:()=>t.invalidateQueries({queryKey:V.runs.all}),onError:e=>R(e.message,{tone:`danger`})})}function Vr({run:e}){return(0,X.jsxs)(`section`,{"data-slot":`review-panel`,"aria-label":`Review the changes`,className:`flex flex-col gap-3`,children:[(0,X.jsxs)(`div`,{"data-slot":`review-banner`,className:`flex items-center gap-2.5 rounded-md border border-accent-strong/30 bg-accent-strong/10 px-3.5 py-2.5`,children:[(0,X.jsx)(Ke,{className:`size-4 shrink-0 text-accent-icon`,"aria-hidden":`true`}),(0,X.jsxs)(`p`,{className:`min-w-0 text-[13px]`,children:[(0,X.jsx)(`span`,{className:`font-semibold`,children:`Review the changes before anything lands.`}),` `,(0,X.jsx)(`span`,{className:`text-muted-foreground`,children:`Read the diff, send notes back, draft a PR — or accept. Nothing merges on its own.`})]})]}),(0,X.jsx)(Ot,{runId:e.id}),(0,X.jsx)(Hr,{run:e})]})}function Hr({run:e}){let t=r(),n=(0,Y.useRef)(null),[i,a]=(0,Y.useState)(``),[o,s]=(0,Y.useState)(null),l=Br(e.id),u=or(e),d=()=>t.invalidateQueries({queryKey:V.runs.all}),f=c({mutationFn:async t=>u.canContinue?N(e.id,{text:`Review feedback:\n${t}`,runner:u.runnerOverride}):null,onSuccess:e=>{e!==null&&(a(``),d())},onError:e=>R(e.message,{tone:`danger`})}),p=c({mutationFn:()=>he(e.id),onSuccess:e=>{R(`Draft PR created — ${e.url}`),d()},onError:e=>{e instanceof le&&e.manual!==void 0&&s(e.manual),R(e.message,{tone:`danger`})}}),m=()=>{let e=i.trim();if(e.length===0){R(`Write what to change first.`),n.current?.focus();return}f.mutate(e)};return(0,X.jsxs)(`div`,{"data-slot":`review-actions`,className:`flex flex-col gap-2`,children:[(0,X.jsx)(Me,{ref:n,"data-slot":`review-notes`,"aria-label":`Notes for the agent`,placeholder:`Notes for the agent — what should change?`,rows:2,value:i,onChange:e=>a(e.target.value),onKeyDown:e=>{Tt({key:e.key,shiftKey:e.shiftKey,metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey,repeat:e.repeat,isComposing:e.nativeEvent.isComposing})&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),m())},className:`min-h-[52px] text-[13px]`}),u.canContinue?null:(0,X.jsxs)(`p`,{id:`review-provider-guidance`,className:`flex flex-wrap items-center gap-1.5 text-xs text-muted-foreground`,children:[(0,X.jsx)(`span`,{children:u.reason}),u.providerPending?null:(0,X.jsx)(K,{to:`/settings/agents#providers`,className:`font-medium text-foreground underline underline-offset-4`,children:`Configure providers`})]}),(0,X.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,X.jsxs)(P,{"data-slot":`review-send-back`,variant:`outline`,size:`sm`,title:u.reason??`Send the notes back into the agent's session`,"aria-describedby":u.canContinue?void 0:`review-provider-guidance`,disabled:f.isPending||!u.canContinue,onClick:m,children:[(0,X.jsx)(Bt,{"aria-hidden":`true`}),`Send back`]}),Ce(e.pullRequestUrl)?(0,X.jsx)(P,{asChild:!0,variant:`outline`,size:`sm`,children:(0,X.jsxs)(`a`,{"data-slot":`pr-link`,href:e.pullRequestUrl,target:`_blank`,rel:`noopener noreferrer`,title:`The PR for this task is already open`,children:[(0,X.jsx)(Ge,{"aria-hidden":`true`}),`PR ↗`]})}):(0,X.jsxs)(P,{"data-slot":`review-draft-pr`,variant:`outline`,size:`sm`,title:`Push the branch and open a draft PR`,disabled:p.isPending,onClick:()=>p.mutate(),children:[(0,X.jsx)(_e,{"aria-hidden":`true`}),`Draft PR`]}),e.finishBlocked===null?(0,X.jsxs)(P,{"data-slot":`review-accept`,variant:`primary`,size:`sm`,className:`ml-auto`,title:Be(`review`),disabled:l.isPending,onClick:()=>l.mutate(),children:[(0,X.jsx)(A,{"aria-hidden":`true`}),`Accept`]}):null]}),o===null?null:(0,X.jsx)(Ur,{command:o})]})}function Ur({command:e}){return(0,X.jsxs)(`button`,{type:`button`,"data-slot":`review-manual`,title:`Copy the command`,onClick:()=>{navigator.clipboard.writeText(e).then(()=>R(`Command copied to clipboard.`)).catch(()=>R(`Run manually: ${e}`))},className:`flex w-full min-w-0 items-center gap-1.5 rounded-sm px-1 py-0.5 text-left font-mono text-[11px] text-soft-foreground hover:bg-muted hover:text-foreground`,children:[(0,X.jsx)(ee,{className:`size-3 shrink-0`,"aria-hidden":`true`}),(0,X.jsxs)(`span`,{className:`truncate`,children:[`manual path: `,e]})]})}function Wr(){return typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches}var Gr=1500;function Kr({status:e}){let t=(0,Y.useRef)(e),[n,r]=(0,Y.useState)(!1);return(0,Y.useEffect)(()=>{let n=t.current;if(t.current=e,n!==`review`||e!==`done`||Wr())return;r(!0);let i=setTimeout(()=>r(!1),Gr);return()=>clearTimeout(i)},[e]),n?(0,X.jsxs)(`div`,{"data-slot":`accept-celebration`,"aria-hidden":`true`,className:`pointer-events-none fixed inset-0 isolate z-40`,children:[(0,X.jsx)(se,{}),(0,X.jsx)(`div`,{className:`flex justify-center pt-24`,children:(0,X.jsx)(`span`,{className:`rounded-full border border-accent-strong/30 bg-accent-strong/15 px-4 py-1.5 text-[13px] font-medium text-accent-text shadow-modal`,children:`✓ Changes accepted`})})]}):null}function qr(e){let t=r(),[n,i]=(0,Y.useState)(),a=Ue(e.status);(0,Y.useEffect)(()=>{(!a||n&&n!==e.id)&&i(void 0)},[a,e.id,n]);let o=c({mutationFn:async()=>{i(e.id);try{if(!(await z(e.id)).cancelled)throw Error(`The task changed before Stop was accepted. Check its status and retry.`)}catch(e){throw i(void 0),e}},onSettled:()=>t.invalidateQueries({queryKey:V.runs.all})});return{stopping:!!e.stopping||o.isPending||a&&n===e.id,stop:()=>o.mutateAsync()}}function Jr({agents:e,onSelect:t}){return e.length===0?null:(0,X.jsx)(`ul`,{"data-slot":`agents-list`,className:`flex min-w-0 flex-col gap-[7px]`,children:e.map(e=>(0,X.jsx)(Yr,{agent:e,onSelect:t},e.id))})}function Yr({agent:e,onSelect:t}){let n=(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(Xr,{status:e.status,stalled:e.stalled===!0}),(0,X.jsx)(`span`,{className:`min-w-0 shrink truncate font-medium`,children:e.title}),e.agentType===void 0?null:(0,X.jsx)(`span`,{"data-slot":`agent-type`,className:`shrink-0 rounded-full bg-muted px-2 py-0.5 text-[11px] font-semibold tracking-[0.05em] text-muted-foreground uppercase`,children:e.agentType}),(0,X.jsx)(`span`,{"data-slot":`agent-activity`,className:`min-w-0 flex-1 truncate text-muted-foreground`,children:yr(e)}),(0,X.jsxs)(`span`,{"data-slot":`agent-tools`,className:`shrink-0 text-muted-foreground tabular-nums`,children:[e.toolCalls,` `,e.toolCalls===1?`tool`:`tools`]})]});return(0,X.jsx)(`li`,{"data-slot":`agent-item`,"data-status":e.status,className:`min-w-0 text-[13px]`,children:t?(0,X.jsx)(`button`,{type:`button`,onClick:()=>t(e.id),"aria-haspopup":`dialog`,className:`flex min-h-5 w-full min-w-0 items-center gap-2.5 rounded-sm text-left hover:bg-muted/50`,children:n}):(0,X.jsx)(`div`,{className:`flex min-h-5 min-w-0 items-center gap-2.5`,children:n})})}function Xr({status:e,stalled:t=!1}){return t?(0,X.jsx)(`svg`,{"aria-hidden":!0,"data-slot":`agent-glyph`,"data-stalled":`true`,className:`size-[15px] shrink-0 text-soft-foreground`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeDasharray:`3 2.5`,children:(0,X.jsx)(`circle`,{cx:`12`,cy:`12`,r:`8.5`})}):e===`completed`?(0,X.jsxs)(`svg`,{"aria-hidden":!0,"data-slot":`agent-glyph`,className:`size-[15px] shrink-0 text-success`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,X.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`,opacity:`.35`}),(0,X.jsx)(`path`,{d:`m8.5 12.2 2.4 2.4 4.6-5`})]}):e===`failed`||e===`declined`?(0,X.jsxs)(`svg`,{"aria-hidden":!0,"data-slot":`agent-glyph`,className:`size-[15px] shrink-0 text-danger`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,children:[(0,X.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`,opacity:`.35`}),(0,X.jsx)(`path`,{d:`m9 9 6 6M15 9l-6 6`})]}):(0,X.jsxs)(`svg`,{"aria-hidden":!0,"data-slot":`agent-glyph`,className:`size-[15px] shrink-0 animate-pulse motion-reduce:animate-none`,viewBox:`0 0 24 24`,fill:`none`,children:[(0,X.jsx)(`circle`,{className:`stroke-pending`,cx:`12`,cy:`12`,r:`8.5`,strokeWidth:`2`}),(0,X.jsx)(`path`,{className:`fill-pending`,d:`M12 3.5 A8.5 8.5 0 0 1 12 20.5 Z`})]})}function Zr(e){return{done:e.filter(e=>e.status===`completed`).length,total:e.filter(e=>e.status!==`cancelled`).length}}function Qr({entries:e}){return e.length===0?null:(0,X.jsx)(`ul`,{"data-slot":`plan-list`,className:`flex min-w-0 flex-col gap-[7px]`,children:e.map((e,t)=>(0,X.jsx)($r,{entry:e},`${t}:${e.content}`))})}function $r({entry:e}){return(0,X.jsxs)(`li`,{"data-slot":`plan-item`,"data-status":e.status,className:U(`flex min-h-5 min-w-0 items-center gap-2.5 text-[13px]`,e.status===`completed`&&`text-soft-foreground line-through`,e.status===`in_progress`&&`font-medium`,e.status===`pending`&&`text-muted-foreground`,e.status===`cancelled`&&`text-soft-foreground/70 line-through`),children:[(0,X.jsx)(ei,{status:e.status}),(0,X.jsx)(`span`,{className:`min-w-0 truncate`,children:e.content}),e.status===`in_progress`?(0,X.jsx)(`span`,{"data-slot":`plan-tag`,className:`ml-auto shrink-0 rounded-full bg-muted px-2 py-0.5 text-[11px] font-semibold tracking-[0.05em] text-muted-foreground uppercase`,children:`in progress`}):null]})}function ei({status:e}){return e===`cancelled`?(0,X.jsxs)(`svg`,{"aria-hidden":!0,className:`size-[15px] shrink-0 text-soft-foreground/70`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,children:[(0,X.jsx)(`circle`,{cx:`12`,cy:`12`,r:`8.5`,opacity:`.5`}),(0,X.jsx)(`path`,{d:`m8.5 15.5 7-7`})]}):e===`completed`?(0,X.jsxs)(`svg`,{"aria-hidden":!0,className:`size-[15px] shrink-0 text-success`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,X.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`,opacity:`.35`}),(0,X.jsx)(`path`,{d:`m8.5 12.2 2.4 2.4 4.6-5`})]}):e===`in_progress`?(0,X.jsxs)(`svg`,{"aria-hidden":!0,className:`size-[15px] shrink-0 animate-pulse motion-reduce:animate-none`,viewBox:`0 0 24 24`,fill:`none`,children:[(0,X.jsx)(`circle`,{className:`stroke-pending`,cx:`12`,cy:`12`,r:`8.5`,strokeWidth:`2`}),(0,X.jsx)(`path`,{className:`fill-pending`,d:`M12 3.5 A8.5 8.5 0 0 1 12 20.5 Z`})]}):(0,X.jsx)(`svg`,{"aria-hidden":!0,className:`size-[15px] shrink-0 text-soft-foreground`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:(0,X.jsx)(`circle`,{cx:`12`,cy:`12`,r:`8.5`})})}var ti={"not-delivered":0,queued:1,delivered:2,consumed:3};function ni(e){for(let t=e.turns.length-1;t>=0;--t){let n=e.turns[t].planEntries;if(n!==void 0)return n}}function ri(e){let t=[];for(let n of e.turns)for(let e of n.items)if(e.kind===`tool`){for(let n of e.locations??[])t.push(n.path);for(let n of e.diffs??[])t.push(n.path)}let n=[];for(let e=t.length-1;e>=0;--e)n.includes(t[e])||n.push(t[e]);return n}function ii(e,t){switch(e){case`waiting`:return{state:`waiting`};case`failed`:return{state:`closed`,tone:`danger`,label:t?`Session failed — ${t}`:`Session failed`};case`review`:return{state:`closed`,tone:`dim`,label:`Session closed — waiting for your review`};case`done`:case`cancelled`:return{state:`closed`,tone:`dim`,label:`Session closed`};default:return null}}function ai(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function $(e){return typeof e==`string`?e:void 0}function oi(e){return e===`claude`||e===`codex`||e===`opencode`||e===`pi`||e===`cursor`?e:void 0}function si(e,t){let n=e.replace(/\s*CEZ:DONE\s*$/,``).replace(/\s*CEZ:MONITORING\s*$/,``);return t&&(n=n.replace(/\s*CEZ:ASK[ \t]+[\s\S]*$/,``)),n.includes(`CEZ:`)?n.split(`
7
+ `).filter(e=>!/^CEZ:(?:PR=\d+|ISSUE=\d+|TITLE=.+)\s*$/.test(e)).join(`
8
+ `):n}function ci(e){let t=e=>si(e,!0).replace(/\s+/g,``),n=new Set,r=[];for(let{origin:i,entry:a}of e.entries)if(i===`v2`&&a.kind===`message`){let e=t(a.text);n.add(e),r.push(e)}if(r.length===0)return;n.add(r.join(``));let i=[],a={entries:[],texts:[]},o=()=>{if(a.entries.length>=2&&n.has(t(a.texts.join(``)))){a={entries:[],texts:[]};return}i.push(...a.entries),a={entries:[],texts:[]}};for(let t of e.entries)t.origin===`v1`&&t.entry.kind===`message`?(a.entries.push(t),a.texts.push(t.entry.text)):(o(),i.push(t));o(),e.entries=i}function li(e){if(typeof e==`string`)return e;if(e==null)return``;try{return JSON.stringify(e)}catch{return String(e)}}var ui=e=>e.kind===`message`||e.kind===`reasoning`||e.kind===`tool`,di=new Set([`pending`,`in_progress`,`completed`,`cancelled`]);function fi(e){if(!ai(e)||!Array.isArray(e.todos))return;let t=[];for(let n of e.todos){if(!ai(n)||typeof n.content!=`string`)return;t.push({content:n.content,status:di.has(n.status)?n.status:`pending`,...typeof n.activeForm==`string`?{activeForm:n.activeForm}:{}})}return t}function pi(e,t={}){let n=[],r=new Map,i,a=0,o,s=e=>{a+=1;let t={id:e===void 0?`turn-fallback-${a}`:`turn-seq-${e}`,entries:[],v2Items:!1};return n.push(t),t},c=()=>n.at(-1)??s(),l=(e,t)=>{let n=$(e.stepId);return n===void 0?t:`${n}:${t}`},u=(e,t,n)=>{let i={...t};if(!e.v2Items){e.v2Items=!0;for(let t of e.entries)t.origin===`v1`&&t.entry.kind===`tool`&&r.delete(t.entry.id);e.entries=e.entries.filter(e=>!(e.origin===`v1`&&e.entry.kind===`tool`))}let a=r.get(n);if(a&&a.turn===e){a.entry.entry=i,r.set(n,a);return}let o={origin:`v2`,entry:i};e.entries.push(o),r.set(n,{turn:e,entry:o})},d=new Map,f=new Map,p=new Set,m=e=>{if(e.messageKind!==`request`)return;let t=f.get(e.messageId);t&&(e.outcome={status:t.status,...t.replyId===void 0?{}:{replyId:t.replyId},observedAt:t.observedAt})},h=(e,t,n)=>{let r=d.get(e.id);if(r)return(ti[r.delivery]<ti.delivered||ti[t]>ti[r.delivery])&&(r.delivery=t),e.text!==``&&(r.text=e.text),e.state!==void 0&&(r.state=e.state),e.createdAt!==void 0&&(r.createdAt=e.createdAt),e.requestHash!==void 0&&(r.requestHash=e.requestHash),e.deadline!==void 0&&(r.deadline=e.deadline),e.requestId!==void 0&&(r.requestId=e.requestId),e.instruction!==void 0&&(r.instruction=e.instruction),e.resumed!==void 0&&(r.resumed=e.resumed),n?.deliveredAt!==void 0&&(r.deliveredAt=n.deliveredAt),n?.consumedAt!==void 0&&(r.consumedAt=n.consumedAt),n?.recordedAt!==void 0&&(t===`delivered`||r.delivery!==`delivered`)&&(r.recordedAt=n.recordedAt),m(r),r;let i={kind:`conversation`,id:`conversation-message:${e.id}`,messageId:e.id,text:e.text,senderRunId:e.senderRunId,recipientRunId:e.recipientRunId,messageKind:e.kind,delivery:t,...n,...e.instruction===void 0?{}:{instruction:e.instruction},...e.resumed===void 0?{}:{resumed:e.resumed},...e.requestId===void 0?{}:{requestId:e.requestId},...e.state===void 0?{}:{state:e.state},...e.createdAt===void 0?{}:{createdAt:e.createdAt},...e.requestHash===void 0?{}:{requestHash:e.requestHash},...e.deadline===void 0?{}:{deadline:e.deadline}};return m(i),d.set(e.id,i),c().entries.push({origin:`meta`,entry:i}),i};for(let t of e)switch(t.type){case`conversation-message`:{let e=Te.safeParse(t);if(!e.success)break;h(e.data.message,e.data.delivery,{deliveredAt:e.data.deliveredAt,consumedAt:e.data.consumedAt,recordedAt:e.data.ts});break}case`request-outcome`:{let e=be.safeParse(t);if(!e.success||f.has(e.data.outcome.requestId))break;let{outcome:n}=e.data;f.set(n.requestId,n);let r=d.get(n.requestId);r&&m(r);break}case`agent-input`:{let e=ve.safeParse(t);if(!e.success)break;let{input:n}=e.data;if(p.has(n.id))break;if(p.add(n.id),n.conversation){h({id:n.id,text:n.text,createdAt:n.createdAt,...n.conversation},`delivered`,{deliveredAt:n.deliveredAt,recordedAt:e.data.ts});break}c().entries.push({origin:`meta`,entry:{kind:`note`,id:`agent-input:${n.id}`,text:n.text,tone:`dim`,attribution:{source:n.source,parentRunId:n.parentRunId}}});break}case`user-message`:{let e=$(t.text)??``;o&&!o.resolved&&(o.resolved=!0,o.answeredBy=`human`,e!==``&&(o.answer=e),o=void 0);let n=s(t.seq);n.userMessage={text:e,imageCount:typeof t.imageCount==`number`?t.imageCount:0,images:Array.isArray(t.images)?t.images.filter(e=>typeof e==`string`):[]};break}case`turn.started`:{let e=$(t.turnId),r=n.at(-1);r&&r.turnId===void 0&&!r.v2Items?r.turnId=e:s(t.seq).turnId=e;break}case`turn.completed`:{let e=$(t.turnId),r;for(let t=n.length-1;t>=0&&!r;--t)n[t].turnId===e&&(r=n[t]);let i=r??n.at(-1);i&&(i.completed={stopReason:$(t.stopReason)??`end_turn`,...typeof t.costUsd==`number`?{costUsd:t.costUsd}:{}});break}case`item.started`:case`item.updated`:case`item.completed`:{if(!ai(t.item))break;let e=t.item.kind,n=t.item.id;if(e!==`message`&&e!==`reasoning`&&e!==`tool`||typeof n!=`string`||n===``)break;let i=t.item,a=l(t,i.id);u(r.get(a)?.turn??c(),i,a);break}case`item.delta`:{let e=$(t.itemId)??``,n=r.get(l(t,e)),i=$(t.delta)??``;if(!n||i===``||!ui(n.entry.entry))break;let a=n.entry.entry;t.field===`output`&&a.kind===`tool`?a.output=(a.output??``)+i:t.field!==`output`&&a.kind!==`tool`&&(a.text+=i);break}case`text`:{let e=c(),n=$(t.text)??``;if(n===``)break;e.entries.push({origin:`v1`,entry:{kind:`message`,id:`v1:${t.seq}`,role:`assistant`,text:n}});break}case`tool-call`:{let e=c();if(e.v2Items)break;let n=$(t.tool)??`Tool`;if(mi.has(n))break;let i=It(n,t.input);if(i.toolKind===`plan`){let n=fi(t.input);n!==void 0&&(e.planEntries=n)}let a={kind:`tool`,id:$(t.id)??`v1:${t.seq}`,name:n,toolKind:i.toolKind,title:i.title,status:`running`,input:t.input},o={origin:`v1`,entry:a};e.entries.push(o),r.set(a.id,{turn:e,entry:o});break}case`tool-result`:{let e=r.get($(t.toolCallId)??``);if(!e||e.turn.v2Items||e.entry.origin!==`v1`)break;let n=e.entry.entry;if(n.kind!==`tool`)break;n.status=`completed`,n.output=li(t.result);break}case`note`:case`lifecycle`:{let e=$(t.message)??``;if(e===``)break;let n=t.tone===`danger`?`danger`:`dim`;c().entries.push({origin:`meta`,entry:{kind:`note`,id:`v1:${t.seq}`,text:e,tone:n}});break}case`error`:{let e=$(t.message)??``;if(e===``)break;c().entries.push({origin:`meta`,entry:{kind:`note`,id:`v1:${t.seq}`,text:e,tone:`danger`}});break}case`session.error`:{let e=$(t.message)??``;if(e===``)break;c().entries.push({origin:`meta`,entry:{kind:`note`,id:`v2:${t.seq}`,text:e,tone:`danger`}});break}case`step-end`:{if(t.status!==`failed`)break;let e=$(t.error)?` — ${$(t.error)}`:``;c().entries.push({origin:`meta`,entry:{kind:`note`,id:`v1:${t.seq}`,text:`step ${$(t.stepId)??`?`} failed${e}`,tone:`danger`}});break}case`check-output`:{let e=$(t.command)??`check`,n=typeof t.exitCode==`number`?t.exitCode:-1,r={kind:`tool`,id:`v1:${t.seq}`,name:`check`,toolKind:`execute`,title:`Ran ${e}`,status:n===0?`completed`:`failed`,output:$(t.text)??``,exitCode:n};c().entries.push({origin:`meta`,entry:r});break}case`provider-auth-required`:{let e=oi(t.provider),n=$(t.authFailureId);if(e===void 0||n===void 0||n.length<1||n.length>128)break;c().entries.push({origin:`meta`,entry:{kind:`provider-auth-required`,id:`v1:${t.seq}`,provider:e,authFailureId:n}});break}case`image`:{let e=$(t.url);if(e===void 0)break;let n={kind:`image`,id:`v1:${t.seq}`,url:e},r=$(t.name);r!==void 0&&(n.name=r),c().entries.push({origin:`meta`,entry:n});break}case`plan.updated`:Array.isArray(t.entries)&&(c().planEntries=t.entries);break;case`session.ended`:i={reason:$(t.reason)??`end_turn`,...$(t.message)===void 0?{}:{message:$(t.message)}};break;case`ask.requested`:{let e=$(t.requestId);if(e===void 0||!Array.isArray(t.questions))break;let n=t.questions.filter(e=>ai(e)&&typeof e.header==`string`&&Array.isArray(e.options));if(n.length===0)break;let r={kind:`ask`,id:e,questions:n,resolved:!1,askSeq:t.seq};c().entries.push({origin:`meta`,entry:r}),o=r;break}case`worker-question-routed`:if(o&&!o.resolved&&o.askSeq===t.askSeq){o.routedToParent=!0;let e=$(t.parentRunId);e!==void 0&&(o.parentRunId=e)}break;case`worker-question-fallback`:o&&!o.resolved&&o.askSeq===t.askSeq&&(o.routedToParent=!1);break;case`human-input-delivered`:t.source===`parent`&&o&&!o.resolved&&o.askSeq===t.askSeq&&(o.resolved=!0,o.answeredBy=`parent`,o=void 0);break;case`step-start`:case`token-usage`:case`cost`:case`turn-end`:case`done`:case`session`:break;default:break}for(let e of n){if(!e.v2Items)continue;let t=new Set;for(let{origin:n,entry:r}of e.entries)n===`v2`&&r.kind===`message`&&t.add(si(r.text,!0).trim());t.size!==0&&(e.entries=e.entries.filter(e=>!(e.origin===`v1`&&e.entry.kind===`message`&&t.has(si(e.entry.text,!0).trim()))),ci(e))}for(let e of d.values())e.messageKind!==`request`||e.outcome!==void 0||e.delivery!==`not-delivered`&&(e.state!==void 0&&e.state!==`accepted`||(e.outcome={status:`pending`}));return{turns:n.map((e,r)=>{let i=e.entries.some(({entry:e})=>e.kind===`ask`),a=t.activeTurn===!0&&r===n.length-1;return{id:e.id,...e.turnId===void 0?{}:{turnId:e.turnId},...e.userMessage===void 0?{}:{userMessage:e.userMessage},...e.planEntries===void 0?{}:{planEntries:e.planEntries},...e.completed===void 0?{}:{completed:e.completed},items:e.entries.map(({entry:e})=>e.kind===`message`&&e.role===`assistant`?{...e,text:si(e.text,i||a)}:e)}}),...i===void 0?{}:{sessionEnded:i}}}var mi=new Set([`subAgentActivity`,`collabAgentToolCall`,`collabToolCall`]),hi=new Map,gi=new Map;function _i({run:e,currentThread:t,onOpenWorker:n}){let r=kt(),[i,a]=(0,Y.useState)(()=>hi.get(e.id)??r),[c,l]=(0,Y.useState)({}),u=!(e.status===`running`||e.status===`waiting`)&&e.status!==`queued`,d=e.steps,f=(0,Y.useMemo)(()=>gr(t.turns,u),[t.turns,u]),p=ni(t)??[],h=e.delegation!==void 0&&e.delegation.role!==`invalid`,g=st(e),_=d.length===0||d.every(e=>e.status===`done`||e.status===`skipped`),v=vr(f),y=Zr(p),b=[d.length>0?`workflow`:void 0,f.length>0?`subagents`:void 0,h?`workers`:void 0,p.length>0?`plan`:void 0].filter(e=>e!==void 0);if(b.length===0)return null;let S=t=>c[t]??gi.get(`${e.id}:${t}`)??t===`workers`,C=t=>{let n=!S(t);gi.set(`${e.id}:${t}`,n),l(e=>({...e,[t]:n}))},w=e.status===`done`&&_&&g===`complete`&&v.done===v.total&&y.done===y.total,T=g===`pending`,E=w?`All complete`:e.status===`failed`?`Failed`:e.status===`cancelled`?`Cancelled`:e.status===`running`?`Working`:e.status===`done`?g===`unknown`?`Workers unavailable`:T?`In progress`:`Incomplete`:`In progress`,O=e.status===`failed`||e.status===`cancelled`;return(0,X.jsxs)(`section`,{"data-slot":`run-activity-dock`,"data-state":i?`open`:`collapsed`,className:`min-w-0 overflow-hidden rounded-xl border border-border bg-card shadow-xs`,children:[(0,X.jsxs)(`button`,{type:`button`,"aria-expanded":i,onClick:()=>{hi.set(e.id,!i),a(!i)},className:`flex min-h-11 w-full min-w-0 items-center gap-2.5 px-3.5 py-2 text-left text-[14px] hover:bg-muted/40`,children:[(0,X.jsx)(s,{"aria-hidden":!0,className:`size-4 shrink-0 text-accent-text`}),(0,X.jsx)(`span`,{className:`shrink-0 font-semibold`,children:`Run activity`}),(0,X.jsxs)(`span`,{"data-slot":`run-activity-count`,className:`shrink-0 text-[13px] text-muted-foreground tabular-nums`,children:[`· `,b.length,` `,b.length===1?`section`:`sections`]}),(0,X.jsxs)(`span`,{"data-slot":`run-activity-status`,className:U(`ml-auto flex min-w-0 shrink items-center gap-1.5 truncate text-[13px]`,w?`text-success`:O?`text-danger`:`text-muted-foreground`),children:[w?(0,X.jsx)(x,{"aria-hidden":!0,className:`size-3.5 shrink-0`}):null,(0,X.jsx)(`span`,{className:`truncate`,children:E})]}),(0,X.jsx)(D,{"aria-hidden":!0,className:U(`size-4 shrink-0 text-soft-foreground transition-transform`,i&&`rotate-180`)})]}),i?(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-col`,children:[d.length>0?(0,X.jsx)(lt,{slot:`workflow`,icon:(0,X.jsx)(vi,{steps:d}),title:d[ct(d)].name,meta:nt(ct(d)+1,d.length,r,`step`),open:S(`workflow`),onToggle:()=>C(`workflow`),children:(0,X.jsx)(ot,{steps:d})}):null,f.length>0?(0,X.jsx)(lt,{slot:`subagents`,icon:(0,X.jsx)(m,{className:`size-4`}),title:`Subagents`,meta:nt(v.done,v.total,r),open:S(`subagents`),onToggle:()=>C(`subagents`),children:(0,X.jsx)(Jr,{agents:f,onSelect:n})}):null,h?(0,X.jsx)(tt,{run:e,open:S(`workers`),onToggle:()=>C(`workers`)}):null,p.length>0?(0,X.jsx)(lt,{slot:`plan`,icon:(0,X.jsx)(o,{className:`size-4`}),title:`Plan`,meta:nt(y.done,y.total,r),open:S(`plan`),onToggle:()=>C(`plan`),children:(0,X.jsx)(Qr,{entries:p})}):null]}):null]})}function vi({steps:e}){let t=it(e[ct(e)].status),n=`size-4 shrink-0`;switch(t){case`active`:return(0,X.jsx)(pt,{role:`status`,"aria-label":`Step running`,"data-slot":`workflow-glyph`,"data-visual":t,className:U(n,`animate-spin stroke-pending motion-reduce:animate-none`)});case`failed`:return(0,X.jsx)(ce,{"aria-hidden":!0,"data-slot":`workflow-glyph`,"data-visual":t,className:U(n,`text-danger`)});case`pending`:return(0,X.jsx)(L,{"aria-hidden":!0,"data-slot":`workflow-glyph`,"data-visual":t,className:U(n,`text-soft-foreground`)});case`done`:return(0,X.jsx)(x,{"aria-hidden":!0,"data-slot":`workflow-glyph`,"data-visual":t,className:U(n,`text-success`)})}}function yi(e,t,n){return`${e.header}: ${n?.trim()||t.join(`, `)}`}function bi({ask:e,run:t}){return e.resolved?(0,X.jsxs)(`div`,{"data-slot":`ask-card`,"data-resolved":`true`,className:`rounded-lg border border-border bg-card px-3.5 py-2.5 text-xs text-muted-foreground`,children:[(0,X.jsx)(`span`,{className:`text-soft-foreground`,children:e.answeredBy===`parent`?`Answered by parent`:`Answered`}),e.answer?(0,X.jsx)(`span`,{className:`ml-1.5 break-words whitespace-pre-line text-foreground`,children:e.answer}):null]}):e.routedToParent?(0,X.jsx)(xi,{ask:e}):(0,X.jsx)(Si,{ask:e,run:t})}function xi({ask:e}){return(0,X.jsxs)(`div`,{"data-slot":`ask-card`,"data-resolved":`false`,"data-routed":`parent`,className:`rounded-lg border border-border bg-card px-4 pt-3.5 pb-3.5`,children:[(0,X.jsx)(`div`,{className:`mb-2.5 flex items-center gap-2`,children:(0,X.jsx)(`span`,{className:`text-xs font-medium text-link-foreground`,children:`The agent is asking its parent`})}),(0,X.jsx)(`div`,{className:`flex flex-col gap-3`,children:e.questions.map((e,t)=>(0,X.jsxs)(`div`,{role:`group`,"aria-label":e.question,children:[(0,X.jsx)(`div`,{className:`mb-0.5 flex items-center gap-2`,children:(0,X.jsx)(`span`,{className:`rounded-md bg-muted px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground`,children:e.header})}),(0,X.jsx)(`p`,{className:`mb-1.5 break-words text-sm font-semibold text-foreground`,children:e.question}),(0,X.jsx)(`ul`,{className:`flex list-disc flex-col gap-0.5 pl-5 text-[13px] text-muted-foreground`,children:e.options.map(e=>(0,X.jsxs)(`li`,{className:`break-words`,children:[(0,X.jsx)(`span`,{className:`text-foreground`,children:e.label}),e.description?(0,X.jsxs)(`span`,{children:[`: `,e.description]}):null]},e.label))})]},e.id??t))}),(0,X.jsxs)(`p`,{"data-slot":`ask-routed-hint`,className:`mt-3 text-xs text-muted-foreground`,children:[`Routed to parent: answer it in the`,` `,e.parentRunId?(0,X.jsx)(K,{to:`/tasks/${e.parentRunId}`,className:`font-medium text-foreground underline underline-offset-4`,children:`parent task`}):`parent task`,`.`]})]})}function Si({ask:e,run:t}){let n=He(t),r=n.blockedBy!==void 0,i=e.questions,a=i.length===1&&i[0]?.multiSelect!==!0,[o,s]=(0,Y.useState)({}),[c,l]=(0,Y.useState)({}),u=(e,t)=>s(n=>({...n,[e]:t})),d=e=>l(t=>{if(t[e]===void 0)return t;let n={...t};return delete n[e],n}),f=e=>{u(e,[]),l(t=>({...t,[e]:t[e]??``}))},p=i.some((e,t)=>c[t]!==void 0),m=i.every((e,t)=>(o[t]?.length??0)>0||!!c[t]?.trim()),h=()=>void n.send(i.map((e,t)=>yi(e,o[t]??[],c[t])).join(`
9
+ `)),g=n.mode===`resume`;return(0,X.jsxs)(`div`,{"data-slot":`ask-card`,"data-resolved":`false`,"data-delivery":n.mode,className:`rounded-lg border border-accent-strong/25 bg-accent-strong/[0.04] px-4 pt-3.5 pb-3.5`,children:[(0,X.jsx)(`div`,{className:`mb-2.5 flex items-center gap-2`,children:(0,X.jsx)(`span`,{className:`text-xs font-medium text-link-foreground`,children:`The agent is asking`})}),(0,X.jsx)(`div`,{className:`flex flex-col gap-4`,children:i.map((e,t)=>(0,X.jsx)(Ci,{question:e,disabled:n.isPending||r,selected:o[t]??[],isOther:c[t]!==void 0,otherAnswer:c[t]??``,onSelect:i=>{r||(d(t),a?n.send(yi(e,i)):u(t,i))},onOtherToggle:()=>{r||(c[t]===void 0?f(t):d(t))},onOtherChange:e=>l(n=>({...n,[t]:e}))},e.id??t))}),a&&!p?g?(0,X.jsx)(`p`,{"data-slot":`ask-resume-hint`,className:`mt-3 text-[11px] text-soft-foreground`,children:`The session has ended — your answer reopens it and goes to the agent.`}):null:(0,X.jsxs)(`div`,{className:`mt-3 flex items-center gap-2.5`,children:[(0,X.jsx)(P,{size:`sm`,className:`min-h-11`,disabled:n.isPending||r||!m,onClick:h,children:g?`Send answer & reopen`:`Send answer`}),(0,X.jsx)(`span`,{"data-slot":g?`ask-resume-hint`:`ask-hint`,className:`text-[11px] text-soft-foreground`,children:g?`the session has ended — sending reopens it`:p?`${i.length>1?`answer each question above`:`enter your answer above`} — or type a reply below`:`${i.length>1?`answer each question`:`pick one or more`} — or type a reply below`})]}),n.blockedBy===`provider`?(0,X.jsxs)(`div`,{"data-slot":`ask-provider-gate`,className:`mt-3 flex flex-wrap items-center gap-1.5 text-xs text-muted-foreground`,children:[(0,X.jsx)(`span`,{children:n.reason}),(0,X.jsx)(K,{to:`/settings/agents#providers`,className:`font-medium text-foreground underline underline-offset-4`,children:`Configure providers`})]}):null,n.blockedBy===`no-session`?(0,X.jsx)(`p`,{"data-slot":`ask-no-session`,className:`mt-3 text-xs text-muted-foreground`,children:n.reason}):null,n.error?(0,X.jsx)(`p`,{"data-slot":`ask-error`,role:`alert`,className:`mt-3 text-xs text-danger`,children:n.error}):null]})}function Ci({question:e,disabled:t,selected:n,isOther:r,otherAnswer:i,onSelect:a,onOtherToggle:o,onOtherChange:s}){let c=(0,Y.useId)(),l=e.multiSelect===!0,u=e=>{if(!l){a([e]);return}a(n.includes(e)?n.filter(t=>t!==e):[...n,e])};return(0,X.jsxs)(`div`,{role:`group`,"aria-label":e.question,children:[(0,X.jsxs)(`div`,{className:`mb-0.5 flex items-center gap-2`,children:[(0,X.jsx)(`span`,{className:`rounded-md bg-accent-strong px-1.5 py-0.5 text-[12px] font-semibold uppercase tracking-wide text-accent-strong-foreground`,children:e.header}),l?(0,X.jsx)(`span`,{className:`ml-auto text-[11px] text-soft-foreground`,children:`select all that apply`}):null]}),(0,X.jsx)(`p`,{className:`mb-2.5 break-words text-sm font-semibold text-foreground`,children:e.question}),(0,X.jsx)(`div`,{className:`flex flex-col gap-2`,children:e.options.map(e=>{let r=n.includes(e.label);return(0,X.jsxs)(`button`,{type:`button`,disabled:t,"aria-pressed":r,onClick:()=>u(e.label),className:U(`flex min-h-11 w-full flex-col gap-0.5 rounded-md border px-3.5 py-2.5 text-left transition-colors`,`hover:border-accent-strong/50 hover:bg-accent-strong/[0.06] disabled:pointer-events-none disabled:opacity-50`,r?`border-accent-strong/60 bg-accent-strong/[0.06]`:`border-border bg-card`),children:[(0,X.jsxs)(`span`,{className:`flex min-w-0 items-start gap-2 text-[14px] font-semibold text-foreground`,children:[l?(0,X.jsx)(`span`,{"aria-hidden":!0,className:U(`flex size-4 shrink-0 items-center justify-center rounded border text-[12px]`,r?`border-accent-strong bg-accent-strong text-accent-strong-foreground`:`border-soft-foreground`),children:r?`✓`:``}):null,(0,X.jsx)(`span`,{className:`min-w-0 break-words`,children:e.label})]}),e.description?(0,X.jsx)(`span`,{className:`min-w-0 break-words text-xs text-muted-foreground`,children:e.description}):null]},e.label)})}),(0,X.jsxs)(`div`,{className:`mt-2`,children:[(0,X.jsx)(P,{type:`button`,variant:`outline`,"aria-pressed":r,"aria-expanded":r,"aria-controls":r?c:void 0,disabled:t,onClick:o,className:U(`w-full justify-start text-left`,r&&`border-accent-strong/60 bg-accent-strong/[0.06]`),children:`Other`}),r?(0,X.jsxs)(`div`,{className:`mt-2.5`,children:[(0,X.jsx)(`label`,{htmlFor:c,className:`mb-1.5 block text-xs font-medium text-foreground`,children:`Your answer`}),(0,X.jsx)(Me,{id:c,rows:2,value:i,disabled:t,onChange:e=>s(e.target.value),className:`bg-card`})]}):null]})]})}var wi=2e3;function Ti(e){let t=0,n=0;for(let r of e)typeof r.seq==`number`&&(r.type===`session.ended`&&r.seq>t&&(t=r.seq),(r.type===`session.started`||r.type===`step-start`&&r.kind===`agent`)&&r.seq>n&&(n=r.seq));return t>n?t:0}function Ei(e){let t=0,n=0;for(let r of e)typeof r.seq==`number`&&(r.type===`turn-end`&&r.seq>t&&(t=r.seq),(r.type===`turn.started`||r.type===`session.started`||r.type===`user-message`||r.type===`step-start`&&r.kind===`agent`)&&r.seq>n&&(n=r.seq));return t>n?t:0}function Di(e,t){let n=r(),i=(0,Y.useMemo)(()=>Ti(t),[t]),a=(0,Y.useMemo)(()=>Ei(t),[t]),o=e?.id,s=e?.status,c=e?.activity;(0,Y.useEffect)(()=>{if(!(i!==0&&(s===`running`||s===`waiting`))&&!(a!==0&&s===`running`&&c!==`monitoring`)||o===void 0)return;let e=setTimeout(()=>{n.invalidateQueries({queryKey:V.runs.detail(o)}),n.invalidateQueries({queryKey:V.runs.list()})},wi);return()=>clearTimeout(e)},[i,a,o,s,c,n])}function Oi(){let{id:e}=y(),t=fe(e),n=Zt(e),r=t.data?.status,i=(0,Y.useMemo)(()=>pi(n.visibleEvents,{activeTurn:r===`running`}),[n.visibleEvents,r]),a=(0,Y.useMemo)(()=>pi(n.currentEvents,{activeTurn:r===`running`}),[n.currentEvents,r]),o=(0,Y.useRef)(void 0),s=(0,Y.useCallback)(e=>{o.current=e},[]),{mutate:c}=ne();if((0,Y.useEffect)(()=>{t.data&&o.current!==t.data.id&&Pe(t.data)&&c(t.data.id)},[c,t.data?.id,t.data?.status,t.data?.finishedAt,t.data?.seenAt,t.data?.archived]),Di(t.data,n.visibleEvents),t.isPending)return(0,X.jsx)(wt,{});if(t.isError){let e=t.error instanceof le&&t.error.status===404;return(0,X.jsx)(`div`,{"data-route":`task-thread`,className:`flex min-h-full flex-col`,children:(0,X.jsx)(ue,{icon:e?(0,X.jsx)(ht,{}):(0,X.jsx)(Ht,{}),tone:e?`neutral`:`danger`,title:e?`Task not found`:`Could not load this task`,subtitle:e?`No run has this id. It may have been deleted, or the link is from another machine.`:t.error.message,actions:(0,X.jsx)(P,{asChild:!0,variant:`outline`,children:(0,X.jsx)(K,{to:`/`,children:`Back to tasks`})})})})}return n.isPending?(0,X.jsx)(wt,{}):(0,X.jsx)(ki,{run:t.data,thread:i,currentThread:a,history:n,onMarkedUnread:s})}function ki({run:e,thread:t,currentThread:n=t,history:r,onMarkedUnread:i}){ft();let a=F(),o=r?ye(r.currentEvents)!==void 0:n.turns.some(e=>e.items.some(e=>e.kind===`ask`&&!e.resolved)),s=de(e,o),c=ii(e.status,e.error),u=e.status===`running`||e.status===`waiting`,d=!u&&e.status!==`queued`,f=e.status===`queued`,p=sr(e),m=qr(e),h=Br(e.id),g=o||e.hasPendingHumanAsk===!0,y=!u&&!f&&p.available,b=y&&p.canContinue,[x,C]=(0,Y.useState)(void 0),[w,T]=(0,Y.useState)(e.id);w!==e.id&&(T(e.id),C(void 0));let E=(0,Y.useMemo)(()=>x===void 0?void 0:xr(n.turns,x,d),[n.turns,x,d]),D=(0,Y.useMemo)(()=>x===void 0?[]:Sr(n.turns,x),[n.turns,x]),k=oe(e.id),A=He(e),j=We(e),M=u&&!j.usable,N=y&&!p.canContinue,P=M||N,I=M?j.reason:p.reason,{mutateAsync:L}=l(e.id),{mutateAsync:R}=me(e.id),{mutateAsync:z}=O(e.id),B=(0,Y.useMemo)(()=>f?{onEditTask:async e=>{await L({task:e})},onEditMessage:(e,t)=>R({msgId:e,message:{text:t}}).then(()=>void 0),onRemoveMessage:e=>z(e).then(()=>void 0)}:void 0,[f,L,R,z]),V=(0,Y.useMemo)(()=>Or(e,t),[e,t]),ee=(0,Y.useMemo)(()=>Ar(V,e.id),[V,e.id]),ne=(0,Y.useMemo)(()=>En(e,a.data),[e,a.data]),re=(0,Y.useCallback)(t=>(0,X.jsx)(bi,{ask:t,run:e}),[e]),ie=(0,Y.useMemo)(()=>{if(B===void 0)return;let t={task:{onEdit:B.onEditTask,editLabel:`Edit the prompt`}};for(let n of e.queuedMessages??[])t[`queued:${n.id}`]={onEdit:e=>B.onEditMessage(n.id,e),onRemove:()=>B.onRemoveMessage(n.id)};return t},[B,e.queuedMessages]),ae=v(e,_()),{search:se}=te(),ce=yn(se,ee.length),H=Cr(`${e.id}:main`,{onLoadOlder:r?.hasOlder?r.loadOlder:void 0,onJumpToLatest:r?.jumpToLatest,rowKeys:ee.map(({key:e})=>e)});return Ae(H.restickIfStuck),(0,X.jsxs)(`div`,{"data-route":`task-thread`,"data-run-id":e.id,className:`flex min-h-full flex-col`,children:[(0,X.jsx)(ut,{run:e,hasPendingHumanAsk:o,onMarkedUnread:()=>i?.(e.id)}),(0,X.jsxs)(`div`,{"data-slot":`session-conversation`,className:`mx-auto flex w-full max-w-[var(--measure)] flex-1 flex-col gap-2.5 px-[18px] py-3 md:gap-3.5 md:px-16 md:py-5`,children:[r?(0,X.jsx)(Ai,{hasOlder:r.hasOlder,loading:r.isFetchingOlder,error:r.olderError,fallback:r.fallback,retainedPages:r.retainedPages,onLoad:H.loadOlder}):null,(0,X.jsx)(jr,{runId:e.id,viewId:`main`,sections:V,mode:`document`,renderAsk:re,messageActions:ie,scrollControls:H,renderMode:ce,taskTitles:ne}),t.turns.length===0?e.status===`queued`?(0,X.jsx)(ji,{run:e}):(0,X.jsx)(`p`,{"data-slot":`thread-empty`,className:`py-6 text-center text-xs text-soft-foreground`,children:`No session events yet.`}):null,e.status===`running`&&e.activity!==`monitoring`?(0,X.jsx)(Jn,{}):null,c&&c.state===`closed`?(0,X.jsxs)(`div`,{"data-slot":`thread-footer`,"data-state":c.state,className:U(`mt-auto flex items-center gap-2 border-t border-border pt-3 text-xs`,c.tone===`danger`?`text-danger`:`text-soft-foreground`),children:[c.label,Ce(S(e))?(0,X.jsx)(`a`,{"data-slot":`pr-link`,href:S(e),target:`_blank`,rel:`noopener noreferrer`,className:`font-medium text-foreground underline-offset-2 hover:underline`,children:`PR ↗`}):null,Ce(ae)?(0,X.jsx)(`a`,{"data-slot":`issue-link`,href:ae,target:`_blank`,rel:`noopener noreferrer`,className:`font-medium text-foreground underline-offset-2 hover:underline`,children:`Issue ↗`}):null]}):null,e.status===`review`?(0,X.jsx)(Vr,{run:e}):null]}),(0,X.jsx)(Kr,{status:e.status}),(0,X.jsx)(Lr,{runId:e.id,renderAsk:re,agent:E,entries:D,taskTitles:ne,onClose:()=>C(void 0)}),(0,X.jsxs)(`div`,{"data-slot":`thread-dock`,className:`relative z-10 bg-background pt-1 pb-2 md:pt-1.5 md:pb-4`,children:[H.pillVisible?(0,X.jsx)(`div`,{className:`pointer-events-none fixed right-6 bottom-[calc(24px+env(safe-area-inset-bottom))] z-30 flex justify-center`,children:(0,X.jsx)(Dr,{onJump:H.jumpToLatest})}):null,(0,X.jsxs)(`div`,{className:`mx-auto flex w-full max-w-[var(--measure)] flex-col gap-1.5 px-[14px] md:gap-2.5 md:px-16`,children:[(0,X.jsx)(_i,{run:e,currentThread:n,onOpenWorker:C},e.id),(0,X.jsx)(Qt,{run:e}),e.status===`waiting`?(0,X.jsxs)(`div`,{"data-slot":`paused-hint`,className:`flex items-center gap-2 px-1 text-xs text-muted-foreground`,children:[(0,X.jsx)(ze,{tone:s.tone,pulse:s.pulse}),s.bucket===`waiting`?`The agent is paused, waiting for your reply`:`${s.label.charAt(0).toUpperCase()}${s.label.slice(1)} — you can send a message to resume`]}):null,f?(0,X.jsxs)(`div`,{"data-slot":`queued-hint`,className:`flex items-center gap-2 px-1 text-xs text-muted-foreground`,children:[(0,X.jsx)(ze,{tone:`pending`}),`Messages you add now are folded into the prompt before the run starts.`]}):null,b&&p.startsNewConversation?(0,X.jsx)(`p`,{className:`px-1 text-xs text-muted-foreground`,role:`status`,children:`Starts a new agent conversation.`}):null,(0,X.jsx)(xt,{onStop:Fe(e).cancel?m.stop:void 0,onFinish:Ve(e,o)?()=>h.mutateAsync().catch(()=>void 0):void 0,finishing:h.isPending,secondaryAction:Fe(e).archive?(0,X.jsx)(dt,{run:e,compactOnMobile:!0}):void 0,stopOnEmpty:e.status===`queued`||e.status===`running`||e.status===`waiting`&&s.bucket===`none`&&!g,stopping:m.stopping,retainDraftUntilSuccess:!0,compactFeedback:!0,pendingLabel:b?`Continuing…`:`Sending…`,failureHint:`Your draft is kept. Check the task status and connection, then retry.`,sessionControls:b?p.pills:void 0,onSubmit:b?(e,t)=>p.continueWith(e,t):f?(e,t)=>k.mutateAsync({text:e,images:t}):async(e,t)=>{let n=await A.send(e,t);if(n!==void 0)throw Error(n)},disabled:P||!u&&!f&&!b,disabledReason:P?I:`Session closed — no session to resume.`,footerEnd:P&&!p.providerPending?(0,X.jsx)(K,{to:`/settings/agents#providers`,className:`text-xs font-medium text-foreground underline underline-offset-4`,children:`Configure providers`}):void 0,allowEmptySubmit:b&&!g,emptySubmitLabel:b&&!g?`Continue`:void 0,placeholder:f?`Add to the prompt — sent when the run starts…`:b?`Continue — add a prompt, or send to just reopen the session…`:e.status===`waiting`?`Reply — / for skills, @ for files…`:`Message the agent — / for skills, @ for files…`,autocompleteSkills:!0,quickReplies:!0,getMentionCandidates:()=>ri(t)})]})]}),(0,X.jsx)(`div`,{"data-slot":`thread-tail-anchor`,"aria-hidden":`true`,className:`h-px shrink-0 md:hidden`})]})}function Ai({hasOlder:e,loading:t,error:n,fallback:r,retainedPages:i,onLoad:a}){return r?(0,X.jsx)(`p`,{"data-slot":`history-fallback`,className:`text-center text-xs text-soft-foreground`,role:`status`,children:`Progressive history is unavailable; showing the complete session.`}):!e&&!n?(0,X.jsxs)(`div`,{"data-slot":`history-start`,className:`flex items-center gap-3 text-[11px] text-soft-foreground`,children:[(0,X.jsx)(`span`,{"aria-hidden":!0,className:`h-px flex-1 bg-border`}),`Start of session`,(0,X.jsx)(`span`,{"aria-hidden":!0,className:`h-px flex-1 bg-border`})]}):(0,X.jsxs)(`div`,{"data-slot":`history-boundary`,"data-retained-pages":i,"aria-busy":t,className:`flex min-h-8 items-center justify-center text-xs text-muted-foreground`,children:[(0,X.jsx)(`button`,{type:`button`,onClick:a,disabled:t,className:`rounded-md px-3 py-1.5 font-medium hover:bg-muted disabled:cursor-wait`,children:t?`Loading 100 earlier items…`:n?`Couldn’t load earlier items · Retry`:`Load 100 earlier items`}),(0,X.jsx)(`span`,{className:`sr-only`,"aria-live":`polite`,children:t?`Loading earlier session history`:n||``})]})}function ji({run:e}){let t=Le(F().data??[],e.id);return(0,X.jsxs)(`div`,{"data-slot":`queued-state`,className:`flex flex-col items-center gap-1.5 py-10 text-center`,children:[(0,X.jsx)(ze,{tone:`pending`,pulse:!0}),(0,X.jsxs)(`p`,{className:`text-[13px] font-medium`,children:[`Waiting for a free agent slot`,t===void 0?``:` — #${t} in queue`]}),(0,X.jsxs)(`p`,{className:`text-xs text-soft-foreground`,children:[e.workflow,` · starts automatically when a slot frees up`]})]})}export{Oi as TaskThreadRoute};
@@ -1 +1 @@
1
- import"./rolldown-runtime-QTnfLwEv.js";import{i as e,t}from"./react-runtime-CCIEwYL0.js";import{_ as n,d as r,f as i,g as a,h as o,m as s,p as c,tn as l,v as u}from"./centered-state-wm14n-hB.js";import{t as d}from"./utils-DKheTxGD.js";e();var f=t();function p({...e}){return(0,f.jsx)(i,{"data-slot":`dialog`,...e})}function m({...e}){return(0,f.jsx)(n,{"data-slot":`dialog-portal`,...e})}function h({className:e,...t}){return(0,f.jsx)(a,{"data-slot":`dialog-overlay`,className:d(`fixed inset-0 z-50 bg-black/50 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0`,e),...t})}function g({className:e,children:t,showCloseButton:n=!0,...r}){return(0,f.jsxs)(m,{"data-slot":`dialog-portal`,children:[(0,f.jsx)(h,{}),(0,f.jsxs)(s,{"data-slot":`dialog-content`,className:d(`fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border bg-card p-6 shadow-modal duration-200 outline-none data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 sm:max-w-lg`,e),...r,children:[t,n&&(0,f.jsxs)(c,{"data-slot":`dialog-close`,className:`absolute top-4 right-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,children:[(0,f.jsx)(l,{}),(0,f.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})]})}function _({className:e,...t}){return(0,f.jsx)(`div`,{"data-slot":`dialog-header`,className:d(`flex flex-col gap-2 text-center sm:text-left`,e),...t})}function v({className:e,showCloseButton:t=!1,children:n,...i}){return(0,f.jsxs)(`div`,{"data-slot":`dialog-footer`,className:d(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,e),...i,children:[n,t&&(0,f.jsx)(c,{asChild:!0,children:(0,f.jsx)(r,{variant:`outline`,children:`Close`})})]})}function y({className:e,...t}){return(0,f.jsx)(u,{"data-slot":`dialog-title`,className:d(`text-lg leading-none font-semibold`,e),...t})}function b({className:e,...t}){return(0,f.jsx)(o,{"data-slot":`dialog-description`,className:d(`text-sm text-muted-foreground`,e),...t})}function x({className:e,...t}){return(0,f.jsx)(`textarea`,{"data-slot":`textarea`,className:d(`flex field-sizing-content min-h-16 w-full resize-none rounded-md border border-input bg-[var(--task-brand-bg)] px-3 py-2 text-base shadow-none transition-[color,box-shadow] outline-none placeholder:text-soft-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 md:text-sm`,e),...t})}export{v as a,b as i,p as n,_ as o,g as r,y as s,x as t};
1
+ import"./rolldown-runtime-QTnfLwEv.js";import{i as e,t}from"./react-runtime-CCIEwYL0.js";import{_ as n,d as r,f as i,g as a,h as o,m as s,p as c,tn as l,v as u}from"./centered-state-HwCqQkH3.js";import{t as d}from"./utils-DKheTxGD.js";e();var f=t();function p({...e}){return(0,f.jsx)(i,{"data-slot":`dialog`,...e})}function m({...e}){return(0,f.jsx)(n,{"data-slot":`dialog-portal`,...e})}function h({className:e,...t}){return(0,f.jsx)(a,{"data-slot":`dialog-overlay`,className:d(`fixed inset-0 z-50 bg-black/50 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0`,e),...t})}function g({className:e,children:t,showCloseButton:n=!0,...r}){return(0,f.jsxs)(m,{"data-slot":`dialog-portal`,children:[(0,f.jsx)(h,{}),(0,f.jsxs)(s,{"data-slot":`dialog-content`,className:d(`fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border bg-card p-6 shadow-modal duration-200 outline-none data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 sm:max-w-lg`,e),...r,children:[t,n&&(0,f.jsxs)(c,{"data-slot":`dialog-close`,className:`absolute top-4 right-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,children:[(0,f.jsx)(l,{}),(0,f.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})]})}function _({className:e,...t}){return(0,f.jsx)(`div`,{"data-slot":`dialog-header`,className:d(`flex flex-col gap-2 text-center sm:text-left`,e),...t})}function v({className:e,showCloseButton:t=!1,children:n,...i}){return(0,f.jsxs)(`div`,{"data-slot":`dialog-footer`,className:d(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,e),...i,children:[n,t&&(0,f.jsx)(c,{asChild:!0,children:(0,f.jsx)(r,{variant:`outline`,children:`Close`})})]})}function y({className:e,...t}){return(0,f.jsx)(u,{"data-slot":`dialog-title`,className:d(`text-lg leading-none font-semibold`,e),...t})}function b({className:e,...t}){return(0,f.jsx)(o,{"data-slot":`dialog-description`,className:d(`text-sm text-muted-foreground`,e),...t})}function x({className:e,...t}){return(0,f.jsx)(`textarea`,{"data-slot":`textarea`,className:d(`flex field-sizing-content min-h-16 w-full resize-none rounded-md border border-input bg-[var(--task-brand-bg)] px-3 py-2 text-base shadow-none transition-[color,box-shadow] outline-none placeholder:text-soft-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 md:text-sm`,e),...t})}export{v as a,b as i,p as n,_ as o,g as r,y as s,x as t};
@@ -1 +1 @@
1
- import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{i as t,t as n}from"./react-runtime-CCIEwYL0.js";import{At as r,Ba as i,G as a,Gt as o,Pt as s,X as ee,Y as te,_ as ne,d as c,f as l,g as re,ga as u,h as ie,hr as ae,in as oe,m as d,p as f,qt as se,t as ce,ta as le,tn as ue,v as de,vr as fe,y as pe}from"./centered-state-wm14n-hB.js";import{_ as me,b as he,t as p,v as m}from"./utils-DKheTxGD.js";import{a as ge,i as _e,r as ve}from"./agent-accounts-B7aDlJ4I.js";import{E as ye,F as be,M as xe,j as Se,r as Ce}from"./prompt-templates-BsHnTixc.js";import{u as we}from"./project-router-BSpCQc8A.js";import{i as Te,n as Ee,r as De,t as Oe}from"./skills-DFBiAuJG.js";import{t as ke}from"./use-submit-shortcut-KWJsC906.js";var h=n(),g=e(t(),1);function Ae(e){if(!(e instanceof HTMLElement))return!1;let t=e.tagName;return t===`INPUT`||t===`TEXTAREA`||t===`SELECT`||e.isContentEditable?!0:e.closest(`[contenteditable=""], [contenteditable="true"]`)!==null}function je(e){return e instanceof HTMLElement&&e.closest(`[cmdk-input]`)!==null}function Me(e,t){return!(typeof e.key!=`string`||e.key.toLowerCase()!==t.toLowerCase()||!e.metaKey&&!e.ctrlKey||e.altKey||e.shiftKey||e.repeat||Ae(e.target)&&!je(e.target))}function _(e,t){let n=g.useRef(t);g.useLayoutEffect(()=>{n.current=t}),g.useEffect(()=>{let t=t=>{Me(t,e)&&(t.preventDefault(),n.current(t))};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e])}function Ne(e,t){return!(typeof e.key!=`string`||e.key.toLowerCase()!==t.toLowerCase()||e.metaKey||e.ctrlKey||e.altKey||e.shiftKey||e.repeat||Ae(e.target))}function Pe(e,t=typeof navigator>`u`?``:navigator.platform){let n=e.toUpperCase();return/mac|iphone|ipad|ipod/i.test(t)?`⌘${n}`:`Ctrl+${n}`}function v(e,t){let n=g.useRef(t);g.useLayoutEffect(()=>{n.current=t}),g.useEffect(()=>{let t=t=>{Ne(t,e)&&n.current(t)};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e])}function y({...e}){return(0,h.jsx)(l,{"data-slot":`sheet`,...e})}function b({...e}){return(0,h.jsx)(pe,{"data-slot":`sheet-trigger`,...e})}function Fe({...e}){return(0,h.jsx)(f,{"data-slot":`sheet-close`,...e})}function Ie({...e}){return(0,h.jsx)(ne,{"data-slot":`sheet-portal`,...e})}function x({className:e,...t}){return(0,h.jsx)(re,{"data-slot":`sheet-overlay`,className:p(`fixed inset-0 z-50 bg-black/50 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0`,e),...t})}function Le({className:e,children:t,side:n=`right`,showCloseButton:r=!0,overlayClassName:i,...a}){return(0,h.jsxs)(Ie,{children:[(0,h.jsx)(x,{className:i}),(0,h.jsxs)(d,{"data-slot":`sheet-content`,className:p(`fixed z-50 flex flex-col gap-4 bg-background shadow-modal transition ease-in-out data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:animate-in data-[state=open]:duration-500`,n===`right`&&`inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm`,n===`left`&&`inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm`,n===`top`&&`inset-x-0 top-0 h-auto border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top`,n===`bottom`&&`inset-x-0 bottom-0 h-auto border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom`,e),...a,children:[t,r&&(0,h.jsxs)(f,{className:`absolute top-4 right-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none data-[state=open]:bg-secondary`,children:[(0,h.jsx)(ue,{className:`size-4`}),(0,h.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})]})}function S({className:e,...t}){return(0,h.jsx)(`div`,{"data-slot":`sheet-header`,className:p(`flex flex-col gap-1.5 p-4`,e),...t})}function Re({className:e,...t}){return(0,h.jsx)(de,{"data-slot":`sheet-title`,className:p(`font-semibold text-foreground`,e),...t})}function ze({className:e,...t}){return(0,h.jsx)(ie,{"data-slot":`sheet-description`,className:p(`text-sm text-muted-foreground`,e),...t})}function C(e){let[t,n]=g.useState(()=>Date.now());return g.useEffect(()=>{let t=setInterval(()=>n(Date.now()),e);return()=>clearInterval(t)},[e]),t}var Be={png:`image/png`,jpg:`image/jpeg`,jpeg:`image/jpeg`,gif:`image/gif`,webp:`image/webp`,svg:`image/svg+xml`,bmp:`image/bmp`,avif:`image/avif`,md:`text/markdown`,markdown:`text/markdown`,txt:`text/plain`,log:`text/plain`,pdf:`application/pdf`};function w(e){return m(e.type)?e.type:Be[e.name.split(`.`).pop()?.toLowerCase()??``]??null}async function Ve(e){let t=new Uint8Array(await e.arrayBuffer()),n=``;for(let e=0;e<t.length;e+=32768)n+=String.fromCharCode(...t.subarray(e,e+32768));let r=btoa(n),i=w(e)??`application/octet-stream`,a=he(i);return{mediaType:i,data:r,...a?{preview:`data:${i};base64,${r}`}:{},name:e.name||(a?`pasted image`:`pasted.${me(i)}`),isImage:a}}function He(e,t){let n=[],r=[],i=t;for(let t of e){let e=t.name||`attachment`;if(w(t)===null){r.push(`${e} is not a supported attachment (images, PDF and plain-text files such as TXT or MD)`);continue}if(t.size>5242880){r.push(`${e} is too large (max 5 MB)`);continue}if(i>=4){r.push(`${e} skipped — max 4 attachments per message`);continue}n.push(t),i+=1}return{accepted:n,rejected:r}}var Ue=new Set([`/`,`@`]);function We(e,t){for(let n=t-1;n>=0;--n){let r=e[n];if(/\s/.test(r))return null;if(Ue.has(r))return n>0&&!/\s/.test(e[n-1])?null:{trigger:r,start:n,query:e.slice(n+1,t)}}return null}function Ge(e,t,n,r){let i=`${t.trigger}${r} `;return{text:e.slice(0,t.start)+i+e.slice(n),caret:t.start+i.length}}function Ke(){let e=window;return e.SpeechRecognition??e.webkitSpeechRecognition}function qe(e,t){let n=e,r=``;for(let e=t.resultIndex;e<t.results.length;e+=1){let i=t.results[e],a=i[0]?.transcript??``;i.isFinal?n+=a:r+=a}return{finalText:n,interim:r}}function Je(e){let[t,n]=g.useState(null),r=g.useRef(null),i=g.useRef(``),[a]=g.useState(()=>Ke()!==void 0),o=g.useCallback(()=>{let e=r.current;r.current=null,i.current=``,n(null),e&&(e.onresult=null,e.onerror=null,e.onend=null,e.abort())},[]);return g.useEffect(()=>o,[o]),{supported:a,recording:t,start:g.useCallback(()=>{if(r.current)return;let t=Ke();if(!t)return;let a;try{a=new t,a.lang=navigator.language||`en-US`,a.continuous=!0,a.interimResults=!0;let s=Date.now();a.onresult=e=>{let t=qe(i.current,e);i.current=t.finalText,n({transcript:t.finalText+t.interim,startedAt:s})},a.onerror=t=>{e(`Dictation failed${t.error?` — ${t.error}`:``}`),o()},a.start(),r.current=a,n({transcript:``,startedAt:s})}catch{e(`Dictation failed — the microphone could not be started`),o()}},[e,o]),cancel:g.useCallback(()=>o(),[o]),finish:g.useCallback(()=>{let e=r.current,a=(i.current+``).trim()===``?``:i.current,o=t?.transcript??a;return e&&(e.onresult=null,e.onerror=null,e.onend=null,e.stop()),r.current=null,i.current=``,n(null),o.trim()},[t])}}function T(e,t){let n=Math.max(0,Math.floor((t-e)/1e3));return`${Math.floor(n/60)}:${String(n%60).padStart(2,`0`)}`}var Ye=new Map,Xe={KeyA:`Yes, approved.`,KeyC:`Continue.`};function E({onSubmit:e,retainDraftUntilSuccess:t=!1,onStop:n,onFinish:ne,finishing:l=!1,secondaryAction:re,stopOnEmpty:ie=!1,stopping:d=!1,emptySubmitLabel:f,compactFeedback:ce=!1,idleFeedback:de,pendingLabel:pe=`Starting task…`,failureHint:me=`Could not confirm submission. Check Tasks before you retry. Your draft is kept.`,clearOnSuccess:he=!0,onPendingChange:m,value:we,onValueChange:je,autoFocus:Me=!1,mobileCollapsible:_=!1,mobileDisclosureKey:Ne,footerStart:Pe,footerEnd:v,sessionControls:y,executionOptions:b,agentOptions:Fe,sendAriaLabel:Ie=`Send`,disabled:x=!1,disabledReason:Le=`Session closed — Continue to reopen.`,allowEmptySubmit:S=!1,placeholder:Re=`Reply — / for skills, @ for files…`,ariaLabel:ze=`Reply to the agent`,autocompleteSkills:C=!0,quickReplies:Be=!1,getMentionCandidates:w,ref:Ue}){let[Ke,qe]=(0,g.useState)(``),T=we??Ke,E=(0,g.useRef)(T);E.current=T;let $e=(0,g.useRef)(je);$e.current=je;let D=(0,g.useCallback)(e=>{let t=typeof e==`function`?e(E.current):e;qe(t),$e.current?.(t)},[]),[O,k]=(0,g.useState)([]),A=(0,g.useRef)(O);A.current=O;let[et,tt]=(0,g.useState)(!1),j=d||et,M=(0,g.useRef)(j);M.current=j;let N=T.trim()!==``||O.length>0,nt=!N&&(n!==void 0&&ie||j),rt=!N&&!nt&&ne!==void 0,it=nt||rt||!N&&f!==void 0,at=!N&&f?f:Ie,[P,F]=(0,g.useState)(!1),I=(0,g.useRef)(!1),ot=(0,g.useRef)(0),L=(0,g.useRef)(!0);(0,g.useEffect)(()=>(L.current=!0,()=>{L.current=!1}),[]);let[R,z]=(0,g.useState)(null),B=j||t&&P,V=()=>M.current||t&&I.current,[H,U]=(0,g.useState)(null),[st,ct]=(0,g.useState)(``),[lt,ut]=(0,g.useState)(!1),W=(0,g.useRef)(null),G=(0,g.useId)(),dt=(0,g.useId)(),ft=(0,g.useRef)(new Map),pt=Ne===void 0?ft.current:Ye,mt=Ne??`default`,[,ht]=(0,g.useReducer)(e=>e+1,0),K=pt.get(mt)??!1,gt=_&&!K,_t=(0,g.useRef)(null),q=(0,g.useRef)(null),J=ae(C&&lt),Y=fe(),vt=i(),X=Je(e=>u(e,{tone:`danger`}));(0,g.useEffect)(()=>{Me&&W.current?.focus()},[]),(0,g.useImperativeHandle)(Ue,()=>({insertAtCaret:e=>{if(V())return;let t=W.current,n=Ce(E.current,t?.selectionStart??E.current.length,e);D(n.text),q.current=n.caret,t?.focus()}}),[D,t]);let yt=(0,g.useCallback)(()=>{let e=W.current;if(!e||x||V()){U(null);return}let t=We(e.value,e.selectionStart??e.value.length);if(t?.trigger===`/`&&!C||t?.trigger===`@`&&w===void 0)return U(null);t?.trigger===`/`&&ut(!0),U(t)},[C,x,w,t]),Z=(0,g.useMemo)(()=>H===null?[]:H.trigger===`/`?Ee(J.data??[],H.query,Y.data?.skillUsage).map(e=>({value:`${e.name} ${e.path}`,insert:e.name,label:e.name,description:e.description,emphasized:Te(e)})):(w?.()??[]).filter(e=>De(e,H.query)).map(e=>({value:e,insert:e,label:e,emphasized:!1})),[w,J.data,H,Y.data?.skillUsage]),bt=Z.some(e=>e.value===st)?st:Z[0]?.value,xt=H!==null,St=(0,g.useCallback)(()=>U(null),[]),Ct=e=>{let t=W.current;if(!t||H===null||V())return;let n=t.selectionStart??t.value.length,r=Ge(t.value,H,n,e.insert);H.trigger===`/`&&Y.data!==void 0&&le({skillUsage:Oe(Y.data.skillUsage,e.insert)}).then(()=>vt.invalidateQueries({queryKey:oe.uiState})).catch(()=>{}),D(r.text),q.current=r.caret,U(null),t.focus()};(0,g.useLayoutEffect)(()=>{let e=q.current,t=W.current;e!==null&&t&&(t.setSelectionRange(e,e),q.current=null)},[T]),(0,g.useLayoutEffect)(()=>{let e=W.current;e&&(e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,220)}px`)},[T,K]);let wt=(0,g.useCallback)(e=>{if(x||V())return;let n=ot.current,r=He(e,A.current.length);for(let e of r.rejected)u(e,{tone:`danger`});for(let e of r.accepted)Ve(e).then(e=>{!L.current||t&&I.current&&!M.current||n!==ot.current||k(t=>t.length>=4?t:[...t,e])},()=>u(`${e.name||`Attachment`} could not be read — try attaching it again`,{tone:`danger`}))},[x,t]),Tt=e=>{let t=[...e.clipboardData?.items??[]].filter(e=>e.kind===`file`).map(e=>e.getAsFile()).filter(e=>e!==null);t.length!==0&&(e.preventDefault(),wt(t))},Et=e=>{let t=[...e.dataTransfer?.files??[]];t.length!==0&&(e.preventDefault(),wt(t))},Q=(0,g.useCallback)(async(n,r,i)=>{let a=n.trim();if(!(x||d||I.current)&&!(a===``&&r.length===0&&!S)){I.current=!0,t&&(ot.current+=1),F(!0),z(null),m?.(!0),U(null),i&&!t&&(D(``),k([]));try{await e(a,r.map(({mediaType:e,data:t})=>({mediaType:e,data:t}))),L.current&&t&&he&&(E.current===n&&D(``),A.current===r&&k([]))}catch(e){if(!L.current&&t)return;let a=e instanceof Error?e.message:String(e);t?z(a):(u(a,{tone:`danger`}),i&&(D(e=>e===``?n:`${n}\n${e}`),k(e=>[...r,...e].slice(0,4))))}finally{I.current=!1,L.current&&(m?.(!1),F(!1))}}},[S,x,d,e,t,he,m,D]),Dt=(0,g.useCallback)(()=>{x||d||I.current||Q(E.current,A.current,!0)},[x,d,Q]),Ot=async()=>{if(!(!n||d||I.current)){I.current=!0,F(!0),tt(!0),z(null);try{await n()}catch(e){L.current&&z(e instanceof Error?e.message:String(e))}finally{I.current=!1,L.current&&(F(!1),tt(!1))}}},kt=e=>{if(xt){if(e.key===`ArrowDown`||e.key===`ArrowUp`){if(e.preventDefault(),Z.length===0)return;let t=Z.findIndex(e=>e.value===bt),n=e.key===`ArrowDown`?1:-1,r=Z[(t+n+Z.length)%Z.length];ct(r.value);return}if(e.key===`Escape`){e.preventDefault(),St();return}if((e.key===`Enter`||e.key===`Tab`)&&!e.shiftKey){let t=Z.find(e=>e.value===bt);if(t){e.preventDefault(),Ct(t);return}St()}}ke({key:e.key,shiftKey:e.shiftKey,metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey,repeat:e.repeat,isComposing:e.nativeEvent.isComposing})&&(e.preventDefault(),Dt())};(0,g.useEffect)(()=>{if(!Be||x)return;let e=e=>{if(!e.altKey||e.metaKey||e.ctrlKey||e.repeat||Ae(e.target))return;let t=Xe[e.code];t!==void 0&&(e.preventDefault(),Q(t,[],!1))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[x,Be,Q]);let At=e=>{if(x||M.current||I.current&&(e||t))return;let n=X.finish();if(n===``)return;let r=T.trim()===``?n:`${T.replace(/\s*$/,``)} ${n}`;if(e){t&&D(r),Q(r,O,!0);return}D(r),q.current=r.length,W.current?.focus()},$=X.recording,jt=X.supported?(0,h.jsxs)(c,{type:`button`,variant:`ghost`,size:`sm`,disabled:x||B,"aria-label":`Start dictation`,title:`Dictation`,className:p(`h-11 gap-1.5 px-2.5 text-xs font-medium text-muted-foreground md:h-8`,gt&&`hidden md:inline-flex`),onClick:()=>{V()||X.start()},children:[(0,h.jsx)(r,{"aria-hidden":`true`,className:`size-3.5`}),b||y?null:`Dictation`]}):null,Mt=rt?(0,h.jsxs)(c,{type:`button`,"data-slot":`composer-finish`,"aria-label":l?`Finishing…`:`Finish`,"aria-busy":l||void 0,title:`Close the session and mark this task done`,disabled:P||j||l,className:`h-11 w-auto gap-[7px] px-5 active:opacity-80`,onClick:()=>void ne?.(),children:[(0,h.jsx)(te,{"aria-hidden":`true`}),l?`Finishing…`:`Finish`]}):null,Nt=n||j?(0,h.jsxs)(c,{type:`button`,variant:`outline`,size:`icon-sm`,"aria-label":j?`Stopping…`:`Stop`,"aria-busy":j||void 0,title:j?`Waiting for execution to stop`:`Stop execution; keep existing work`,disabled:P||j,className:p(`h-11 min-w-11 active:opacity-80`,it?`w-auto px-3`:`w-11`),onClick:()=>void Ot(),children:[(0,h.jsx)(o,{"aria-hidden":`true`,className:`size-3 fill-current`}),it?j?`Stopping…`:`Stop`:null]}):null,Pt=j||P||R!==null||de!=null,Ft=(0,h.jsx)(h.Fragment,{children:t||n||d?(0,h.jsx)(`div`,{className:p(`overflow-y-auto text-xs leading-5 text-muted-foreground`,ce&&!Pt?`h-0`:`px-3 pb-2 md:px-4`,ce?Pt&&`min-h-6`:`h-24 md:h-20`),children:(0,h.jsx)(`div`,{id:`${G}-submission`,role:R===null?`status`:`alert`,"aria-atomic":`true`,tabIndex:R===null?void 0:0,className:`break-words`,children:j?`Stopping execution. Your draft is kept.`:P?pe:R===null?de??null:(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`p`,{className:`font-medium text-foreground`,children:R}),(0,h.jsx)(`p`,{children:me})]})})}):null}),It=(0,h.jsxs)(`div`,{"data-slot":`composer-submit-row`,className:p(`ml-auto flex min-w-0 flex-wrap items-center justify-end gap-1 md:flex-nowrap`,b&&`new-task-submission`),children:[b||y?null:jt,v?(0,h.jsx)(`div`,{id:dt,"data-slot":`composer-footer-end`,className:p(`min-w-0 flex-wrap items-center gap-1.5 md:flex-nowrap`,b&&`mr-auto`,_&&`max-md:[&_button]:min-h-11 max-md:[&_button]:min-w-11`,gt?`hidden md:flex`:`flex`),children:(0,h.jsx)(`div`,{className:`contents`,inert:B||void 0,children:v})}):null,(0,h.jsxs)(`div`,{className:`flex min-w-[100px] items-center justify-end gap-1`,"data-slot":`composer-actions`,children:[Nt??re,Mt,!nt&&!rt?(0,h.jsxs)(c,{type:`button`,size:`icon-sm`,"aria-label":at,"aria-busy":P&&!j||void 0,disabled:x||P||j||!N&&!S,className:p(b?`h-12 w-full gap-2 px-6`:y?`h-11 w-auto gap-2 px-5`:`size-11`,!N&&f&&`w-auto px-3`,`active:opacity-80`),onClick:Dt,children:[!y&&!N&&f?(0,h.jsx)(be,{"aria-hidden":`true`}):null,b||y||!N&&f?at:null,y||N||!f?(0,h.jsx)(a,{"aria-hidden":`true`}):null]}):null]})]});return(0,h.jsxs)(ve,{open:xt,onOpenChange:e=>e?void 0:St(),children:[(0,h.jsx)(_e,{asChild:!0,children:(0,h.jsxs)(`div`,{ref:_t,"data-slot":`composer`,"data-disabled":x||void 0,onDrop:Et,onDragOver:e=>e.preventDefault(),className:p(b&&`new-task-composer`,y&&`session-composer`,x&&`opacity-80`),children:[(0,h.jsxs)(`div`,{"data-slot":`composer-editor`,className:p(`rounded-xl border border-[var(--composer-border)] bg-card shadow-none transition-[border-color,box-shadow] focus-within:border-ring focus-within:ring-[3px] focus-within:ring-ring/15`,b&&`new-task-editor`),children:[O.length>0?(0,h.jsx)(`div`,{"data-slot":`composer-thumbs`,className:`flex flex-nowrap items-center gap-2 overflow-x-auto px-4 pt-3 md:flex-wrap md:overflow-visible`,children:O.map((e,t)=>(0,h.jsxs)(`button`,{type:`button`,"aria-label":`Remove ${e.name}`,title:B?`Attachment submitted`:`Click to remove`,disabled:B,className:p(`group relative shrink-0 overflow-hidden rounded-md border border-border`,e.isImage?`size-12`:`flex h-12 min-w-11 max-w-[200px] items-center gap-1.5 bg-muted/40 px-2.5 text-xs text-muted-foreground`),onClick:()=>{V()||k(e=>e.filter((e,n)=>n!==t))},children:[e.isImage?(0,h.jsx)(`img`,{src:e.preview,alt:``,className:`size-full object-cover`}):(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(s,{"aria-hidden":`true`,className:`size-3.5 shrink-0`}),(0,h.jsx)(`span`,{className:`truncate`,children:e.name})]}),(0,h.jsx)(`span`,{className:`absolute inset-0 hidden items-center justify-center bg-background/70 group-hover:flex group-focus-visible:flex`,children:(0,h.jsx)(ue,{"aria-hidden":`true`,className:`size-4`})})]},`${e.name}-${t}`))}):null,(0,h.jsx)(`label`,{htmlFor:G,className:b?`hidden px-5 pt-5 text-xs text-muted-foreground md:block`:`sr-only`,children:b?`Task description`:ze}),(0,h.jsx)(`textarea`,{ref:W,id:G,autoComplete:`off`,rows:1,value:T,disabled:x,readOnly:B,"aria-busy":B||void 0,"aria-describedby":t?`${G}-submission`:void 0,"aria-label":ze,placeholder:x?Le:Re,className:p(`block min-h-11 w-full resize-none bg-transparent px-3 pt-2.5 pb-1 text-base leading-normal outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed md:min-h-[54px] md:px-4 md:pt-3 md:text-sm`,gt?`max-h-11 md:max-h-[220px]`:`max-h-[220px]`),onChange:e=>{V()||(D(e.target.value),yt())},onKeyDown:kt,onSelect:yt,onPaste:Tt}),b?(0,h.jsxs)(`p`,{"data-slot":`composer-skill-hint`,className:`flex items-center gap-2 px-5 pt-3 pb-2 text-xs text-muted-foreground`,children:[(0,h.jsx)(se,{"aria-hidden":`true`,className:`size-[15px] shrink-0`}),`Type / for a skill or workflow`]}):null,y&&$?(0,h.jsx)(`div`,{"data-slot":`session-controls`,inert:B||void 0,children:y}):null,$?(0,h.jsxs)(`div`,{children:[(0,h.jsx)(Qe,{transcript:$.transcript,startedAt:$.startedAt,insertionDisabled:B,onCancel:X.cancel,onInsert:()=>At(!1),onInsertAndSend:()=>At(!0)}),Nt?(0,h.jsx)(`div`,{className:`flex justify-end px-2 pb-2`,children:Nt}):null]}):(0,h.jsxs)(`div`,{"data-slot":`composer-toolbar`,className:`flex flex-wrap items-center gap-1 gap-y-1 px-1.5 pt-1 pb-1.5 md:gap-y-1.5 md:px-2 md:pt-1.5 md:pb-2`,children:[y?(0,h.jsx)(`div`,{"data-slot":`session-controls`,inert:B||void 0,children:y}):null,(0,h.jsxs)(`div`,{"data-slot":`composer-footer-start`,className:p(`flex min-w-0 flex-wrap items-center gap-1`,b&&`w-full`),children:[(0,h.jsx)(Ze,{disabled:x||B,onFiles:wt}),_?(0,h.jsx)(c,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`size-11 md:hidden`,"aria-label":K?`Collapse composer`:`Expand composer`,"aria-expanded":K,"aria-controls":v?`${G} ${dt}`:G,onClick:()=>{pt.set(mt,!K),ht()},children:(0,h.jsx)(ee,{"aria-hidden":`true`,className:p(`transition-transform motion-reduce:transition-none`,!K&&`rotate-180`)})}):null,(0,h.jsx)(`div`,{className:`contents`,inert:B||void 0,children:Pe}),b||y?(0,h.jsx)(`div`,{children:jt}):null]}),b?null:It]}),b?null:Ft]}),b?(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`div`,{"data-slot":`composer-agent-options`,inert:B||void 0,children:Fe}),(0,h.jsx)(`div`,{"data-slot":`composer-execution-panel`,inert:B||void 0,children:b}),It,(0,h.jsx)(`div`,{"data-slot":`composer-feedback`,children:Ft})]}):null]})}),(0,h.jsx)(ge,{side:`top`,align:`start`,sideOffset:8,className:`w-80 max-w-[calc(100vw-2rem)] p-0`,onOpenAutoFocus:e=>e.preventDefault(),onInteractOutside:e=>{_t.current?.contains(e.target)&&e.preventDefault()},children:(0,h.jsx)(ye,{shouldFilter:!1,value:bt??``,onValueChange:ct,children:(0,h.jsx)(xe,{"data-slot":`composer-menu`,"data-trigger":H?.trigger,className:`max-h-[min(16rem,var(--radix-popover-content-available-height))] p-1`,children:Z.length===0?(0,h.jsx)(`p`,{className:`px-3 py-4 text-center text-xs text-muted-foreground`,children:H?.trigger===`@`?`No files seen in this session yet — full file search arrives with the Files tab.`:J.isPending?`Loading skills…`:`No matching skills.`}):Z.map(e=>(0,h.jsxs)(Se,{value:e.value,"data-slot":`composer-menu-item`,"data-emphasized":e.emphasized||void 0,onSelect:()=>Ct(e),children:[(0,h.jsx)(`span`,{className:p(`shrink-0 truncate`,e.emphasized&&`font-semibold`,H?.trigger===`@`&&`font-mono text-xs`),children:e.label}),e.description?(0,h.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs text-soft-foreground`,children:e.description}):null]},e.value))})})})]})}function Ze({disabled:e,onFiles:t}){let n=(0,g.useRef)(null);return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(c,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":`Attach files`,title:`Attach an image, PDF, TXT or MD file (or paste a screenshot)`,disabled:e,className:`size-11 text-muted-foreground`,onClick:()=>n.current?.click(),children:(0,h.jsx)(s,{"aria-hidden":`true`,className:`size-[15px]`})}),(0,h.jsx)(`input`,{ref:n,type:`file`,accept:`image/*,application/pdf,text/plain,text/markdown,.pdf,.txt,.md,.markdown,.log`,multiple:!0,className:`hidden`,"aria-hidden":`true`,tabIndex:-1,onChange:e=>{t([...e.target.files??[]]),e.target.value=``}})]})}function Qe({transcript:e,startedAt:t,insertionDisabled:n,onCancel:r,onInsert:i,onInsertAndSend:o}){let s=C(1e3);return(0,h.jsxs)(`div`,{"data-slot":`dictation-overlay`,role:`status`,"aria-label":`Dictation in progress`,className:`flex items-center gap-2.5 rounded-b-xl border-t border-border bg-muted/60 px-3 py-2`,children:[(0,h.jsx)(`span`,{"aria-hidden":`true`,className:`size-2 flex-none animate-pulse rounded-full bg-danger motion-reduce:animate-none`}),(0,h.jsx)(`span`,{"data-slot":`dictation-timer`,className:`text-xs font-medium text-muted-foreground tabular-nums`,children:T(t,s)}),(0,h.jsx)(`span`,{"data-slot":`dictation-transcript`,"aria-live":`polite`,className:`min-w-0 flex-1 truncate text-sm text-foreground`,children:e===``?(0,h.jsx)(`span`,{className:`text-muted-foreground`,children:`Listening…`}):e}),(0,h.jsx)(c,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":`Cancel dictation`,className:`size-11 text-muted-foreground md:size-8`,onClick:r,children:(0,h.jsx)(ue,{"aria-hidden":`true`})}),(0,h.jsx)(c,{type:`button`,variant:`outline`,size:`icon-sm`,disabled:n,"aria-label":`Insert transcription`,className:`size-11 md:size-8`,onClick:i,children:(0,h.jsx)(te,{"aria-hidden":`true`})}),(0,h.jsx)(c,{type:`button`,size:`icon-sm`,disabled:n,"aria-label":`Insert transcription and send`,className:`size-11 md:size-8`,onClick:o,children:(0,h.jsx)(a,{"aria-hidden":`true`})})]})}function $e(){return(0,h.jsx)(`div`,{"data-route":`task-thread`,className:`flex min-h-full flex-col`,children:(0,h.jsx)(ce,{icon:(0,h.jsx)(we,{className:`motion-safe:animate-spin`}),tone:`neutral`,title:`Loading task…`,subtitle:`Fetching the run and its session transcript.`})})}export{Fe as a,S as c,Pe as d,_ as f,y as i,Re as l,E as n,Le as o,v as p,C as r,ze as s,$e as t,b as u};
1
+ import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{i as t,t as n}from"./react-runtime-CCIEwYL0.js";import{At as r,Ba as i,G as a,Gt as o,Pt as s,X as ee,Y as te,_ as ne,d as c,f as l,g as re,ga as u,h as ie,hr as ae,in as oe,m as d,p as f,qt as se,t as ce,ta as le,tn as ue,v as de,vr as fe,y as pe}from"./centered-state-HwCqQkH3.js";import{_ as me,b as he,t as p,v as m}from"./utils-DKheTxGD.js";import{a as ge,i as _e,r as ve}from"./agent-accounts-JPfZPgKn.js";import{E as ye,F as be,M as xe,j as Se,r as Ce}from"./prompt-templates-Cfna_S0T.js";import{u as we}from"./project-router-CkAA39N5.js";import{i as Te,n as Ee,r as De,t as Oe}from"./skills-DFBiAuJG.js";import{t as ke}from"./use-submit-shortcut-KWJsC906.js";var h=n(),g=e(t(),1);function Ae(e){if(!(e instanceof HTMLElement))return!1;let t=e.tagName;return t===`INPUT`||t===`TEXTAREA`||t===`SELECT`||e.isContentEditable?!0:e.closest(`[contenteditable=""], [contenteditable="true"]`)!==null}function je(e){return e instanceof HTMLElement&&e.closest(`[cmdk-input]`)!==null}function Me(e,t){return!(typeof e.key!=`string`||e.key.toLowerCase()!==t.toLowerCase()||!e.metaKey&&!e.ctrlKey||e.altKey||e.shiftKey||e.repeat||Ae(e.target)&&!je(e.target))}function _(e,t){let n=g.useRef(t);g.useLayoutEffect(()=>{n.current=t}),g.useEffect(()=>{let t=t=>{Me(t,e)&&(t.preventDefault(),n.current(t))};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e])}function Ne(e,t){return!(typeof e.key!=`string`||e.key.toLowerCase()!==t.toLowerCase()||e.metaKey||e.ctrlKey||e.altKey||e.shiftKey||e.repeat||Ae(e.target))}function Pe(e,t=typeof navigator>`u`?``:navigator.platform){let n=e.toUpperCase();return/mac|iphone|ipad|ipod/i.test(t)?`⌘${n}`:`Ctrl+${n}`}function v(e,t){let n=g.useRef(t);g.useLayoutEffect(()=>{n.current=t}),g.useEffect(()=>{let t=t=>{Ne(t,e)&&n.current(t)};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e])}function y({...e}){return(0,h.jsx)(l,{"data-slot":`sheet`,...e})}function b({...e}){return(0,h.jsx)(pe,{"data-slot":`sheet-trigger`,...e})}function Fe({...e}){return(0,h.jsx)(f,{"data-slot":`sheet-close`,...e})}function Ie({...e}){return(0,h.jsx)(ne,{"data-slot":`sheet-portal`,...e})}function x({className:e,...t}){return(0,h.jsx)(re,{"data-slot":`sheet-overlay`,className:p(`fixed inset-0 z-50 bg-black/50 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0`,e),...t})}function Le({className:e,children:t,side:n=`right`,showCloseButton:r=!0,overlayClassName:i,...a}){return(0,h.jsxs)(Ie,{children:[(0,h.jsx)(x,{className:i}),(0,h.jsxs)(d,{"data-slot":`sheet-content`,className:p(`fixed z-50 flex flex-col gap-4 bg-background shadow-modal transition ease-in-out data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:animate-in data-[state=open]:duration-500`,n===`right`&&`inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm`,n===`left`&&`inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm`,n===`top`&&`inset-x-0 top-0 h-auto border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top`,n===`bottom`&&`inset-x-0 bottom-0 h-auto border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom`,e),...a,children:[t,r&&(0,h.jsxs)(f,{className:`absolute top-4 right-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none data-[state=open]:bg-secondary`,children:[(0,h.jsx)(ue,{className:`size-4`}),(0,h.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})]})}function S({className:e,...t}){return(0,h.jsx)(`div`,{"data-slot":`sheet-header`,className:p(`flex flex-col gap-1.5 p-4`,e),...t})}function Re({className:e,...t}){return(0,h.jsx)(de,{"data-slot":`sheet-title`,className:p(`font-semibold text-foreground`,e),...t})}function ze({className:e,...t}){return(0,h.jsx)(ie,{"data-slot":`sheet-description`,className:p(`text-sm text-muted-foreground`,e),...t})}function C(e){let[t,n]=g.useState(()=>Date.now());return g.useEffect(()=>{let t=setInterval(()=>n(Date.now()),e);return()=>clearInterval(t)},[e]),t}var Be={png:`image/png`,jpg:`image/jpeg`,jpeg:`image/jpeg`,gif:`image/gif`,webp:`image/webp`,svg:`image/svg+xml`,bmp:`image/bmp`,avif:`image/avif`,md:`text/markdown`,markdown:`text/markdown`,txt:`text/plain`,log:`text/plain`,pdf:`application/pdf`};function w(e){return m(e.type)?e.type:Be[e.name.split(`.`).pop()?.toLowerCase()??``]??null}async function Ve(e){let t=new Uint8Array(await e.arrayBuffer()),n=``;for(let e=0;e<t.length;e+=32768)n+=String.fromCharCode(...t.subarray(e,e+32768));let r=btoa(n),i=w(e)??`application/octet-stream`,a=he(i);return{mediaType:i,data:r,...a?{preview:`data:${i};base64,${r}`}:{},name:e.name||(a?`pasted image`:`pasted.${me(i)}`),isImage:a}}function He(e,t){let n=[],r=[],i=t;for(let t of e){let e=t.name||`attachment`;if(w(t)===null){r.push(`${e} is not a supported attachment (images, PDF and plain-text files such as TXT or MD)`);continue}if(t.size>5242880){r.push(`${e} is too large (max 5 MB)`);continue}if(i>=4){r.push(`${e} skipped — max 4 attachments per message`);continue}n.push(t),i+=1}return{accepted:n,rejected:r}}var Ue=new Set([`/`,`@`]);function We(e,t){for(let n=t-1;n>=0;--n){let r=e[n];if(/\s/.test(r))return null;if(Ue.has(r))return n>0&&!/\s/.test(e[n-1])?null:{trigger:r,start:n,query:e.slice(n+1,t)}}return null}function Ge(e,t,n,r){let i=`${t.trigger}${r} `;return{text:e.slice(0,t.start)+i+e.slice(n),caret:t.start+i.length}}function Ke(){let e=window;return e.SpeechRecognition??e.webkitSpeechRecognition}function qe(e,t){let n=e,r=``;for(let e=t.resultIndex;e<t.results.length;e+=1){let i=t.results[e],a=i[0]?.transcript??``;i.isFinal?n+=a:r+=a}return{finalText:n,interim:r}}function Je(e){let[t,n]=g.useState(null),r=g.useRef(null),i=g.useRef(``),[a]=g.useState(()=>Ke()!==void 0),o=g.useCallback(()=>{let e=r.current;r.current=null,i.current=``,n(null),e&&(e.onresult=null,e.onerror=null,e.onend=null,e.abort())},[]);return g.useEffect(()=>o,[o]),{supported:a,recording:t,start:g.useCallback(()=>{if(r.current)return;let t=Ke();if(!t)return;let a;try{a=new t,a.lang=navigator.language||`en-US`,a.continuous=!0,a.interimResults=!0;let s=Date.now();a.onresult=e=>{let t=qe(i.current,e);i.current=t.finalText,n({transcript:t.finalText+t.interim,startedAt:s})},a.onerror=t=>{e(`Dictation failed${t.error?` — ${t.error}`:``}`),o()},a.start(),r.current=a,n({transcript:``,startedAt:s})}catch{e(`Dictation failed — the microphone could not be started`),o()}},[e,o]),cancel:g.useCallback(()=>o(),[o]),finish:g.useCallback(()=>{let e=r.current,a=(i.current+``).trim()===``?``:i.current,o=t?.transcript??a;return e&&(e.onresult=null,e.onerror=null,e.onend=null,e.stop()),r.current=null,i.current=``,n(null),o.trim()},[t])}}function T(e,t){let n=Math.max(0,Math.floor((t-e)/1e3));return`${Math.floor(n/60)}:${String(n%60).padStart(2,`0`)}`}var Ye=new Map,Xe={KeyA:`Yes, approved.`,KeyC:`Continue.`};function E({onSubmit:e,retainDraftUntilSuccess:t=!1,onStop:n,onFinish:ne,finishing:l=!1,secondaryAction:re,stopOnEmpty:ie=!1,stopping:d=!1,emptySubmitLabel:f,compactFeedback:ce=!1,idleFeedback:de,pendingLabel:pe=`Starting task…`,failureHint:me=`Could not confirm submission. Check Tasks before you retry. Your draft is kept.`,clearOnSuccess:he=!0,onPendingChange:m,value:we,onValueChange:je,autoFocus:Me=!1,mobileCollapsible:_=!1,mobileDisclosureKey:Ne,footerStart:Pe,footerEnd:v,sessionControls:y,executionOptions:b,agentOptions:Fe,sendAriaLabel:Ie=`Send`,disabled:x=!1,disabledReason:Le=`Session closed — Continue to reopen.`,allowEmptySubmit:S=!1,placeholder:Re=`Reply — / for skills, @ for files…`,ariaLabel:ze=`Reply to the agent`,autocompleteSkills:C=!0,quickReplies:Be=!1,getMentionCandidates:w,ref:Ue}){let[Ke,qe]=(0,g.useState)(``),T=we??Ke,E=(0,g.useRef)(T);E.current=T;let $e=(0,g.useRef)(je);$e.current=je;let D=(0,g.useCallback)(e=>{let t=typeof e==`function`?e(E.current):e;qe(t),$e.current?.(t)},[]),[O,k]=(0,g.useState)([]),A=(0,g.useRef)(O);A.current=O;let[et,tt]=(0,g.useState)(!1),j=d||et,M=(0,g.useRef)(j);M.current=j;let N=T.trim()!==``||O.length>0,nt=!N&&(n!==void 0&&ie||j),rt=!N&&!nt&&ne!==void 0,it=nt||rt||!N&&f!==void 0,at=!N&&f?f:Ie,[P,F]=(0,g.useState)(!1),I=(0,g.useRef)(!1),ot=(0,g.useRef)(0),L=(0,g.useRef)(!0);(0,g.useEffect)(()=>(L.current=!0,()=>{L.current=!1}),[]);let[R,z]=(0,g.useState)(null),B=j||t&&P,V=()=>M.current||t&&I.current,[H,U]=(0,g.useState)(null),[st,ct]=(0,g.useState)(``),[lt,ut]=(0,g.useState)(!1),W=(0,g.useRef)(null),G=(0,g.useId)(),dt=(0,g.useId)(),ft=(0,g.useRef)(new Map),pt=Ne===void 0?ft.current:Ye,mt=Ne??`default`,[,ht]=(0,g.useReducer)(e=>e+1,0),K=pt.get(mt)??!1,gt=_&&!K,_t=(0,g.useRef)(null),q=(0,g.useRef)(null),J=ae(C&&lt),Y=fe(),vt=i(),X=Je(e=>u(e,{tone:`danger`}));(0,g.useEffect)(()=>{Me&&W.current?.focus()},[]),(0,g.useImperativeHandle)(Ue,()=>({insertAtCaret:e=>{if(V())return;let t=W.current,n=Ce(E.current,t?.selectionStart??E.current.length,e);D(n.text),q.current=n.caret,t?.focus()}}),[D,t]);let yt=(0,g.useCallback)(()=>{let e=W.current;if(!e||x||V()){U(null);return}let t=We(e.value,e.selectionStart??e.value.length);if(t?.trigger===`/`&&!C||t?.trigger===`@`&&w===void 0)return U(null);t?.trigger===`/`&&ut(!0),U(t)},[C,x,w,t]),Z=(0,g.useMemo)(()=>H===null?[]:H.trigger===`/`?Ee(J.data??[],H.query,Y.data?.skillUsage).map(e=>({value:`${e.name} ${e.path}`,insert:e.name,label:e.name,description:e.description,emphasized:Te(e)})):(w?.()??[]).filter(e=>De(e,H.query)).map(e=>({value:e,insert:e,label:e,emphasized:!1})),[w,J.data,H,Y.data?.skillUsage]),bt=Z.some(e=>e.value===st)?st:Z[0]?.value,xt=H!==null,St=(0,g.useCallback)(()=>U(null),[]),Ct=e=>{let t=W.current;if(!t||H===null||V())return;let n=t.selectionStart??t.value.length,r=Ge(t.value,H,n,e.insert);H.trigger===`/`&&Y.data!==void 0&&le({skillUsage:Oe(Y.data.skillUsage,e.insert)}).then(()=>vt.invalidateQueries({queryKey:oe.uiState})).catch(()=>{}),D(r.text),q.current=r.caret,U(null),t.focus()};(0,g.useLayoutEffect)(()=>{let e=q.current,t=W.current;e!==null&&t&&(t.setSelectionRange(e,e),q.current=null)},[T]),(0,g.useLayoutEffect)(()=>{let e=W.current;e&&(e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,220)}px`)},[T,K]);let wt=(0,g.useCallback)(e=>{if(x||V())return;let n=ot.current,r=He(e,A.current.length);for(let e of r.rejected)u(e,{tone:`danger`});for(let e of r.accepted)Ve(e).then(e=>{!L.current||t&&I.current&&!M.current||n!==ot.current||k(t=>t.length>=4?t:[...t,e])},()=>u(`${e.name||`Attachment`} could not be read — try attaching it again`,{tone:`danger`}))},[x,t]),Tt=e=>{let t=[...e.clipboardData?.items??[]].filter(e=>e.kind===`file`).map(e=>e.getAsFile()).filter(e=>e!==null);t.length!==0&&(e.preventDefault(),wt(t))},Et=e=>{let t=[...e.dataTransfer?.files??[]];t.length!==0&&(e.preventDefault(),wt(t))},Q=(0,g.useCallback)(async(n,r,i)=>{let a=n.trim();if(!(x||d||I.current)&&!(a===``&&r.length===0&&!S)){I.current=!0,t&&(ot.current+=1),F(!0),z(null),m?.(!0),U(null),i&&!t&&(D(``),k([]));try{await e(a,r.map(({mediaType:e,data:t})=>({mediaType:e,data:t}))),L.current&&t&&he&&(E.current===n&&D(``),A.current===r&&k([]))}catch(e){if(!L.current&&t)return;let a=e instanceof Error?e.message:String(e);t?z(a):(u(a,{tone:`danger`}),i&&(D(e=>e===``?n:`${n}\n${e}`),k(e=>[...r,...e].slice(0,4))))}finally{I.current=!1,L.current&&(m?.(!1),F(!1))}}},[S,x,d,e,t,he,m,D]),Dt=(0,g.useCallback)(()=>{x||d||I.current||Q(E.current,A.current,!0)},[x,d,Q]),Ot=async()=>{if(!(!n||d||I.current)){I.current=!0,F(!0),tt(!0),z(null);try{await n()}catch(e){L.current&&z(e instanceof Error?e.message:String(e))}finally{I.current=!1,L.current&&(F(!1),tt(!1))}}},kt=e=>{if(xt){if(e.key===`ArrowDown`||e.key===`ArrowUp`){if(e.preventDefault(),Z.length===0)return;let t=Z.findIndex(e=>e.value===bt),n=e.key===`ArrowDown`?1:-1,r=Z[(t+n+Z.length)%Z.length];ct(r.value);return}if(e.key===`Escape`){e.preventDefault(),St();return}if((e.key===`Enter`||e.key===`Tab`)&&!e.shiftKey){let t=Z.find(e=>e.value===bt);if(t){e.preventDefault(),Ct(t);return}St()}}ke({key:e.key,shiftKey:e.shiftKey,metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey,repeat:e.repeat,isComposing:e.nativeEvent.isComposing})&&(e.preventDefault(),Dt())};(0,g.useEffect)(()=>{if(!Be||x)return;let e=e=>{if(!e.altKey||e.metaKey||e.ctrlKey||e.repeat||Ae(e.target))return;let t=Xe[e.code];t!==void 0&&(e.preventDefault(),Q(t,[],!1))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[x,Be,Q]);let At=e=>{if(x||M.current||I.current&&(e||t))return;let n=X.finish();if(n===``)return;let r=T.trim()===``?n:`${T.replace(/\s*$/,``)} ${n}`;if(e){t&&D(r),Q(r,O,!0);return}D(r),q.current=r.length,W.current?.focus()},$=X.recording,jt=X.supported?(0,h.jsxs)(c,{type:`button`,variant:`ghost`,size:`sm`,disabled:x||B,"aria-label":`Start dictation`,title:`Dictation`,className:p(`h-11 gap-1.5 px-2.5 text-xs font-medium text-muted-foreground md:h-8`,gt&&`hidden md:inline-flex`),onClick:()=>{V()||X.start()},children:[(0,h.jsx)(r,{"aria-hidden":`true`,className:`size-3.5`}),b||y?null:`Dictation`]}):null,Mt=rt?(0,h.jsxs)(c,{type:`button`,"data-slot":`composer-finish`,"aria-label":l?`Finishing…`:`Finish`,"aria-busy":l||void 0,title:`Close the session and mark this task done`,disabled:P||j||l,className:`h-11 w-auto gap-[7px] px-5 active:opacity-80`,onClick:()=>void ne?.(),children:[(0,h.jsx)(te,{"aria-hidden":`true`}),l?`Finishing…`:`Finish`]}):null,Nt=n||j?(0,h.jsxs)(c,{type:`button`,variant:`outline`,size:`icon-sm`,"aria-label":j?`Stopping…`:`Stop`,"aria-busy":j||void 0,title:j?`Waiting for execution to stop`:`Stop execution; keep existing work`,disabled:P||j,className:p(`h-11 min-w-11 active:opacity-80`,it?`w-auto px-3`:`w-11`),onClick:()=>void Ot(),children:[(0,h.jsx)(o,{"aria-hidden":`true`,className:`size-3 fill-current`}),it?j?`Stopping…`:`Stop`:null]}):null,Pt=j||P||R!==null||de!=null,Ft=(0,h.jsx)(h.Fragment,{children:t||n||d?(0,h.jsx)(`div`,{className:p(`overflow-y-auto text-xs leading-5 text-muted-foreground`,ce&&!Pt?`h-0`:`px-3 pb-2 md:px-4`,ce?Pt&&`min-h-6`:`h-24 md:h-20`),children:(0,h.jsx)(`div`,{id:`${G}-submission`,role:R===null?`status`:`alert`,"aria-atomic":`true`,tabIndex:R===null?void 0:0,className:`break-words`,children:j?`Stopping execution. Your draft is kept.`:P?pe:R===null?de??null:(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`p`,{className:`font-medium text-foreground`,children:R}),(0,h.jsx)(`p`,{children:me})]})})}):null}),It=(0,h.jsxs)(`div`,{"data-slot":`composer-submit-row`,className:p(`ml-auto flex min-w-0 flex-wrap items-center justify-end gap-1 md:flex-nowrap`,b&&`new-task-submission`),children:[b||y?null:jt,v?(0,h.jsx)(`div`,{id:dt,"data-slot":`composer-footer-end`,className:p(`min-w-0 flex-wrap items-center gap-1.5 md:flex-nowrap`,b&&`mr-auto`,_&&`max-md:[&_button]:min-h-11 max-md:[&_button]:min-w-11`,gt?`hidden md:flex`:`flex`),children:(0,h.jsx)(`div`,{className:`contents`,inert:B||void 0,children:v})}):null,(0,h.jsxs)(`div`,{className:`flex min-w-[100px] items-center justify-end gap-1`,"data-slot":`composer-actions`,children:[Nt??re,Mt,!nt&&!rt?(0,h.jsxs)(c,{type:`button`,size:`icon-sm`,"aria-label":at,"aria-busy":P&&!j||void 0,disabled:x||P||j||!N&&!S,className:p(b?`h-12 w-full gap-2 px-6`:y?`h-11 w-auto gap-2 px-5`:`size-11`,!N&&f&&`w-auto px-3`,`active:opacity-80`),onClick:Dt,children:[!y&&!N&&f?(0,h.jsx)(be,{"aria-hidden":`true`}):null,b||y||!N&&f?at:null,y||N||!f?(0,h.jsx)(a,{"aria-hidden":`true`}):null]}):null]})]});return(0,h.jsxs)(ve,{open:xt,onOpenChange:e=>e?void 0:St(),children:[(0,h.jsx)(_e,{asChild:!0,children:(0,h.jsxs)(`div`,{ref:_t,"data-slot":`composer`,"data-disabled":x||void 0,onDrop:Et,onDragOver:e=>e.preventDefault(),className:p(b&&`new-task-composer`,y&&`session-composer`,x&&`opacity-80`),children:[(0,h.jsxs)(`div`,{"data-slot":`composer-editor`,className:p(`rounded-xl border border-[var(--composer-border)] bg-card shadow-none transition-[border-color,box-shadow] focus-within:border-ring focus-within:ring-[3px] focus-within:ring-ring/15`,b&&`new-task-editor`),children:[O.length>0?(0,h.jsx)(`div`,{"data-slot":`composer-thumbs`,className:`flex flex-nowrap items-center gap-2 overflow-x-auto px-4 pt-3 md:flex-wrap md:overflow-visible`,children:O.map((e,t)=>(0,h.jsxs)(`button`,{type:`button`,"aria-label":`Remove ${e.name}`,title:B?`Attachment submitted`:`Click to remove`,disabled:B,className:p(`group relative shrink-0 overflow-hidden rounded-md border border-border`,e.isImage?`size-12`:`flex h-12 min-w-11 max-w-[200px] items-center gap-1.5 bg-muted/40 px-2.5 text-xs text-muted-foreground`),onClick:()=>{V()||k(e=>e.filter((e,n)=>n!==t))},children:[e.isImage?(0,h.jsx)(`img`,{src:e.preview,alt:``,className:`size-full object-cover`}):(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(s,{"aria-hidden":`true`,className:`size-3.5 shrink-0`}),(0,h.jsx)(`span`,{className:`truncate`,children:e.name})]}),(0,h.jsx)(`span`,{className:`absolute inset-0 hidden items-center justify-center bg-background/70 group-hover:flex group-focus-visible:flex`,children:(0,h.jsx)(ue,{"aria-hidden":`true`,className:`size-4`})})]},`${e.name}-${t}`))}):null,(0,h.jsx)(`label`,{htmlFor:G,className:b?`hidden px-5 pt-5 text-xs text-muted-foreground md:block`:`sr-only`,children:b?`Task description`:ze}),(0,h.jsx)(`textarea`,{ref:W,id:G,autoComplete:`off`,rows:1,value:T,disabled:x,readOnly:B,"aria-busy":B||void 0,"aria-describedby":t?`${G}-submission`:void 0,"aria-label":ze,placeholder:x?Le:Re,className:p(`block min-h-11 w-full resize-none bg-transparent px-3 pt-2.5 pb-1 text-base leading-normal outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed md:min-h-[54px] md:px-4 md:pt-3 md:text-sm`,gt?`max-h-11 md:max-h-[220px]`:`max-h-[220px]`,b&&`md:text-base`),onChange:e=>{V()||(D(e.target.value),yt())},onKeyDown:kt,onSelect:yt,onPaste:Tt}),b?(0,h.jsxs)(`p`,{"data-slot":`composer-skill-hint`,className:`flex items-center gap-2 px-5 pt-3 pb-2 text-xs text-muted-foreground`,children:[(0,h.jsx)(se,{"aria-hidden":`true`,className:`size-[15px] shrink-0`}),`Type / for a skill or workflow`]}):null,y&&$?(0,h.jsx)(`div`,{"data-slot":`session-controls`,inert:B||void 0,children:y}):null,$?(0,h.jsxs)(`div`,{children:[(0,h.jsx)(Qe,{transcript:$.transcript,startedAt:$.startedAt,insertionDisabled:B,onCancel:X.cancel,onInsert:()=>At(!1),onInsertAndSend:()=>At(!0)}),Nt?(0,h.jsx)(`div`,{className:`flex justify-end px-2 pb-2`,children:Nt}):null]}):(0,h.jsxs)(`div`,{"data-slot":`composer-toolbar`,className:`flex flex-wrap items-center gap-1 gap-y-1 px-1.5 pt-1 pb-1.5 md:gap-y-1.5 md:px-2 md:pt-1.5 md:pb-2`,children:[y?(0,h.jsx)(`div`,{"data-slot":`session-controls`,inert:B||void 0,children:y}):null,(0,h.jsxs)(`div`,{"data-slot":`composer-footer-start`,className:p(`flex min-w-0 flex-wrap items-center gap-1`,b&&`w-full`),children:[(0,h.jsx)(Ze,{disabled:x||B,onFiles:wt}),_?(0,h.jsx)(c,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`size-11 md:hidden`,"aria-label":K?`Collapse composer`:`Expand composer`,"aria-expanded":K,"aria-controls":v?`${G} ${dt}`:G,onClick:()=>{pt.set(mt,!K),ht()},children:(0,h.jsx)(ee,{"aria-hidden":`true`,className:p(`transition-transform motion-reduce:transition-none`,!K&&`rotate-180`)})}):null,(0,h.jsx)(`div`,{className:`contents`,inert:B||void 0,children:Pe}),b||y?(0,h.jsx)(`div`,{children:jt}):null]}),b?null:It]}),b?null:Ft]}),b?(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`div`,{"data-slot":`composer-agent-options`,inert:B||void 0,children:Fe}),(0,h.jsx)(`div`,{"data-slot":`composer-execution-panel`,inert:B||void 0,children:b}),It,(0,h.jsx)(`div`,{"data-slot":`composer-feedback`,children:Ft})]}):null]})}),(0,h.jsx)(ge,{side:`top`,align:`start`,sideOffset:8,className:`w-80 max-w-[calc(100vw-2rem)] p-0`,onOpenAutoFocus:e=>e.preventDefault(),onInteractOutside:e=>{_t.current?.contains(e.target)&&e.preventDefault()},children:(0,h.jsx)(ye,{shouldFilter:!1,value:bt??``,onValueChange:ct,children:(0,h.jsx)(xe,{"data-slot":`composer-menu`,"data-trigger":H?.trigger,className:`max-h-[min(16rem,var(--radix-popover-content-available-height))] p-1`,children:Z.length===0?(0,h.jsx)(`p`,{className:`px-3 py-4 text-center text-xs text-muted-foreground`,children:H?.trigger===`@`?`No files seen in this session yet — full file search arrives with the Files tab.`:J.isPending?`Loading skills…`:`No matching skills.`}):Z.map(e=>(0,h.jsxs)(Se,{value:e.value,"data-slot":`composer-menu-item`,"data-emphasized":e.emphasized||void 0,onSelect:()=>Ct(e),children:[(0,h.jsx)(`span`,{className:p(`shrink-0 truncate`,e.emphasized&&`font-semibold`,H?.trigger===`@`&&`font-mono text-xs`),children:e.label}),e.description?(0,h.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs text-soft-foreground`,children:e.description}):null]},e.value))})})})]})}function Ze({disabled:e,onFiles:t}){let n=(0,g.useRef)(null);return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(c,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":`Attach files`,title:`Attach an image, PDF, TXT or MD file (or paste a screenshot)`,disabled:e,className:`size-11 text-muted-foreground`,onClick:()=>n.current?.click(),children:(0,h.jsx)(s,{"aria-hidden":`true`,className:`size-[15px]`})}),(0,h.jsx)(`input`,{ref:n,type:`file`,accept:`image/*,application/pdf,text/plain,text/markdown,.pdf,.txt,.md,.markdown,.log`,multiple:!0,className:`hidden`,"aria-hidden":`true`,tabIndex:-1,onChange:e=>{t([...e.target.files??[]]),e.target.value=``}})]})}function Qe({transcript:e,startedAt:t,insertionDisabled:n,onCancel:r,onInsert:i,onInsertAndSend:o}){let s=C(1e3);return(0,h.jsxs)(`div`,{"data-slot":`dictation-overlay`,role:`status`,"aria-label":`Dictation in progress`,className:`flex items-center gap-2.5 rounded-b-xl border-t border-border bg-muted/60 px-3 py-2`,children:[(0,h.jsx)(`span`,{"aria-hidden":`true`,className:`size-2 flex-none animate-pulse rounded-full bg-danger motion-reduce:animate-none`}),(0,h.jsx)(`span`,{"data-slot":`dictation-timer`,className:`text-xs font-medium text-muted-foreground tabular-nums`,children:T(t,s)}),(0,h.jsx)(`span`,{"data-slot":`dictation-transcript`,"aria-live":`polite`,className:`min-w-0 flex-1 truncate text-sm text-foreground`,children:e===``?(0,h.jsx)(`span`,{className:`text-muted-foreground`,children:`Listening…`}):e}),(0,h.jsx)(c,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":`Cancel dictation`,className:`size-11 text-muted-foreground md:size-8`,onClick:r,children:(0,h.jsx)(ue,{"aria-hidden":`true`})}),(0,h.jsx)(c,{type:`button`,variant:`outline`,size:`icon-sm`,disabled:n,"aria-label":`Insert transcription`,className:`size-11 md:size-8`,onClick:i,children:(0,h.jsx)(te,{"aria-hidden":`true`})}),(0,h.jsx)(c,{type:`button`,size:`icon-sm`,disabled:n,"aria-label":`Insert transcription and send`,className:`size-11 md:size-8`,onClick:o,children:(0,h.jsx)(a,{"aria-hidden":`true`})})]})}function $e(){return(0,h.jsx)(`div`,{"data-route":`task-thread`,className:`flex min-h-full flex-col`,children:(0,h.jsx)(ce,{icon:(0,h.jsx)(we,{className:`motion-safe:animate-spin`}),tone:`neutral`,title:`Loading task…`,subtitle:`Fetching the run and its session transcript.`})})}export{Fe as a,S as c,Pe as d,_ as f,y as i,Re as l,E as n,Le as o,v as p,C as r,ze as s,$e as t,b as u};
@@ -1 +1 @@
1
- import{t as e}from"./react-runtime-CCIEwYL0.js";import{t}from"./utils-DKheTxGD.js";import{r as n}from"./markdown-BnjmXdz2.js";var r=e();function i(e){return e===void 0?`unknown`:new Intl.NumberFormat().format(e)}function a(e,t){return`Input tokens: ${i(e)}; output tokens: ${i(t)}`}function o(e,t,r=`compact`){let i=e===void 0?`—`:n(e),a=t===void 0?`—`:n(t);return r===`table`?`${i} / ${a}`:`IN ${i} · OUT ${a}`}function s({inputTokens:e,outputTokens:n,variant:i=`compact`,omitWhenUnknown:s=!0,className:c,title:l}){return s&&e===void 0&&n===void 0?null:(0,r.jsx)(`span`,{"data-slot":`directional-usage`,"aria-label":a(e,n),title:l,className:t(`font-mono tabular-nums`,c),children:o(e,n,i)})}function c(e){let t=e?.capabilities,n=t?.tokenMetrics!==!1;return{tokens:t?.tokenUsageMetrics??n,cost:t?.costMetrics??n}}export{o as i,s as n,a as r,c as t};
1
+ import{t as e}from"./react-runtime-CCIEwYL0.js";import{t}from"./utils-DKheTxGD.js";import{r as n}from"./markdown-CFWZnvMh.js";var r=e();function i(e){return e===void 0?`unknown`:new Intl.NumberFormat().format(e)}function a(e,t){return`Input tokens: ${i(e)}; output tokens: ${i(t)}`}function o(e,t,r=`compact`){let i=e===void 0?`—`:n(e),a=t===void 0?`—`:n(t);return r===`table`?`${i} / ${a}`:`IN ${i} · OUT ${a}`}function s({inputTokens:e,outputTokens:n,variant:i=`compact`,omitWhenUnknown:s=!0,className:c,title:l}){return s&&e===void 0&&n===void 0?null:(0,r.jsx)(`span`,{"data-slot":`directional-usage`,"aria-label":a(e,n),title:l,className:t(`font-mono tabular-nums`,c),children:o(e,n,i)})}function c(e){let t=e?.capabilities,n=t?.tokenMetrics!==!1;return{tokens:t?.tokenUsageMetrics??n,cost:t?.costMetrics??n}}export{o as i,s as n,a as r,c as t};
@@ -1,4 +1,4 @@
1
- import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{i as t,r as n,t as r}from"./react-runtime-CCIEwYL0.js";import{Ba as i,Di as a,Fa as o,G as s,H as c,It as l,Ji as u,Jt as d,Na as f,Qt as p,Rt as m,Ti as h,Ut as g,X as _,Xt as v,Y as y,Yt as b,Zi as x,a as ee,c as S,ct as C,d as w,ga as T,hr as E,i as te,in as D,it as ne,l as re,o as O,ot as ie,r as ae,s as oe,si as k,st as se,t as ce,tn as le,u as A,vr as ue,xr as j}from"./centered-state-wm14n-hB.js";import{t as M}from"./utils-DKheTxGD.js";import{i as N,l as de,r as P,t as fe}from"./dropdown-menu-Bwvi4Ono.js";import{i as pe,n as me,o as he,r as ge,s as _e,t as ve}from"./textarea-COQtp9cB.js";import{i as ye,l as be,s as xe}from"./skills-DFBiAuJG.js";import{h as Se,i as Ce}from"./index-yCn9jZqm.js";import{n as we}from"./skill-empty-hint-oOtzR3v0.js";var F=e(n()),I=e(t());function Te(){var e=[...arguments];return(0,I.useMemo)(()=>t=>{e.forEach(e=>e(t))},e)}var L=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function R(e){let t=Object.prototype.toString.call(e);return t===`[object Window]`||t===`[object global]`}function Ee(e){return`nodeType`in e}function z(e){return e?R(e)?e:Ee(e)?e.ownerDocument?.defaultView??window:window:window}function B(e){let{Document:t}=z(e);return e instanceof t}function V(e){return!R(e)&&e instanceof z(e).HTMLElement}function De(e){return e instanceof z(e).SVGElement}function Oe(e){return e?R(e)?e.document:Ee(e)?B(e)?e:V(e)||De(e)?e.ownerDocument:document:document:document}var H=L?I.useLayoutEffect:I.useEffect;function ke(e){let t=(0,I.useRef)(e);return H(()=>{t.current=e}),(0,I.useCallback)(function(){var e=[...arguments];return t.current==null?void 0:t.current(...e)},[])}function Ae(){let e=(0,I.useRef)(null);return[(0,I.useCallback)((t,n)=>{e.current=setInterval(t,n)},[]),(0,I.useCallback)(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[])]}function U(e,t){t===void 0&&(t=[e]);let n=(0,I.useRef)(e);return H(()=>{n.current!==e&&(n.current=e)},t),n}function je(e,t){let n=(0,I.useRef)();return(0,I.useMemo)(()=>{let t=e(n.current);return n.current=t,t},[...t])}function Me(e){let t=ke(e),n=(0,I.useRef)(null);return[n,(0,I.useCallback)(e=>{e!==n.current&&t?.(e,n.current),n.current=e},[])]}function Ne(e){let t=(0,I.useRef)();return(0,I.useEffect)(()=>{t.current=e},[e]),t.current}var Pe={};function Fe(e,t){return(0,I.useMemo)(()=>{if(t)return t;let n=Pe[e]==null?0:Pe[e]+1;return Pe[e]=n,e+`-`+n},[e,t])}function Ie(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>{let r=Object.entries(n);for(let[n,i]of r){let r=t[n];r!=null&&(t[n]=r+e*i)}return t},{...t})}}var W=Ie(1),Le=Ie(-1);function Re(e){return`clientX`in e&&`clientY`in e}function ze(e){if(!e)return!1;let{KeyboardEvent:t}=z(e.target);return t&&e instanceof t}function Be(e){if(!e)return!1;let{TouchEvent:t}=z(e.target);return t&&e instanceof t}function Ve(e){if(Be(e)){if(e.touches&&e.touches.length){let{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){let{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return Re(e)?{x:e.clientX,y:e.clientY}:null}var G=Object.freeze({Translate:{toString(e){if(!e)return;let{x:t,y:n}=e;return`translate3d(`+(t?Math.round(t):0)+`px, `+(n?Math.round(n):0)+`px, 0)`}},Scale:{toString(e){if(!e)return;let{scaleX:t,scaleY:n}=e;return`scaleX(`+t+`) scaleY(`+n+`)`}},Transform:{toString(e){if(e)return[G.Translate.toString(e),G.Scale.toString(e)].join(` `)}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+` `+n+`ms `+r}}}),He=`a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]`;function Ue(e){return e.matches(He)?e:e.querySelector(He)}var K={display:`none`};function We(e){let{id:t,value:n}=e;return I.createElement(`div`,{id:t,style:K},n)}function Ge(e){let{id:t,announcement:n,ariaLiveType:r=`assertive`}=e;return I.createElement(`div`,{id:t,style:{position:`fixed`,top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0 0 0 0)`,clipPath:`inset(100%)`,whiteSpace:`nowrap`},role:`status`,"aria-live":r,"aria-atomic":!0},n)}function Ke(){let[e,t]=(0,I.useState)(``);return{announce:(0,I.useCallback)(e=>{e!=null&&t(e)},[]),announcement:e}}var qe=(0,I.createContext)(null);function Je(e){let t=(0,I.useContext)(qe);(0,I.useEffect)(()=>{if(!t)throw Error(`useDndMonitor must be used within a children of <DndContext>`);return t(e)},[e,t])}function Ye(){let[e]=(0,I.useState)(()=>new Set),t=(0,I.useCallback)(t=>(e.add(t),()=>e.delete(t)),[e]);return[(0,I.useCallback)(t=>{let{type:n,event:r}=t;e.forEach(e=>e[n]?.call(e,r))},[e]),t]}var Xe={draggable:`
1
+ import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{i as t,r as n,t as r}from"./react-runtime-CCIEwYL0.js";import{Ba as i,Di as a,Fa as o,G as s,H as c,It as l,Ji as u,Jt as d,Na as f,Qt as p,Rt as m,Ti as h,Ut as g,X as _,Xt as v,Y as y,Yt as b,Zi as x,a as ee,c as S,ct as C,d as w,ga as T,hr as E,i as te,in as D,it as ne,l as re,o as O,ot as ie,r as ae,s as oe,si as k,st as se,t as ce,tn as le,u as A,vr as ue,xr as j}from"./centered-state-HwCqQkH3.js";import{t as M}from"./utils-DKheTxGD.js";import{i as N,l as de,r as P,t as fe}from"./dropdown-menu-_YAzCaoQ.js";import{i as pe,n as me,o as he,r as ge,s as _e,t as ve}from"./textarea-D2vAVgYW.js";import{i as ye,l as be,s as xe}from"./skills-DFBiAuJG.js";import{h as Se,i as Ce}from"./index-BJtve0Pm.js";import{n as we}from"./skill-empty-hint-oOtzR3v0.js";var F=e(n()),I=e(t());function Te(){var e=[...arguments];return(0,I.useMemo)(()=>t=>{e.forEach(e=>e(t))},e)}var L=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function R(e){let t=Object.prototype.toString.call(e);return t===`[object Window]`||t===`[object global]`}function Ee(e){return`nodeType`in e}function z(e){return e?R(e)?e:Ee(e)?e.ownerDocument?.defaultView??window:window:window}function B(e){let{Document:t}=z(e);return e instanceof t}function V(e){return!R(e)&&e instanceof z(e).HTMLElement}function De(e){return e instanceof z(e).SVGElement}function Oe(e){return e?R(e)?e.document:Ee(e)?B(e)?e:V(e)||De(e)?e.ownerDocument:document:document:document}var H=L?I.useLayoutEffect:I.useEffect;function ke(e){let t=(0,I.useRef)(e);return H(()=>{t.current=e}),(0,I.useCallback)(function(){var e=[...arguments];return t.current==null?void 0:t.current(...e)},[])}function Ae(){let e=(0,I.useRef)(null);return[(0,I.useCallback)((t,n)=>{e.current=setInterval(t,n)},[]),(0,I.useCallback)(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[])]}function U(e,t){t===void 0&&(t=[e]);let n=(0,I.useRef)(e);return H(()=>{n.current!==e&&(n.current=e)},t),n}function je(e,t){let n=(0,I.useRef)();return(0,I.useMemo)(()=>{let t=e(n.current);return n.current=t,t},[...t])}function Me(e){let t=ke(e),n=(0,I.useRef)(null);return[n,(0,I.useCallback)(e=>{e!==n.current&&t?.(e,n.current),n.current=e},[])]}function Ne(e){let t=(0,I.useRef)();return(0,I.useEffect)(()=>{t.current=e},[e]),t.current}var Pe={};function Fe(e,t){return(0,I.useMemo)(()=>{if(t)return t;let n=Pe[e]==null?0:Pe[e]+1;return Pe[e]=n,e+`-`+n},[e,t])}function Ie(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>{let r=Object.entries(n);for(let[n,i]of r){let r=t[n];r!=null&&(t[n]=r+e*i)}return t},{...t})}}var W=Ie(1),Le=Ie(-1);function Re(e){return`clientX`in e&&`clientY`in e}function ze(e){if(!e)return!1;let{KeyboardEvent:t}=z(e.target);return t&&e instanceof t}function Be(e){if(!e)return!1;let{TouchEvent:t}=z(e.target);return t&&e instanceof t}function Ve(e){if(Be(e)){if(e.touches&&e.touches.length){let{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){let{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return Re(e)?{x:e.clientX,y:e.clientY}:null}var G=Object.freeze({Translate:{toString(e){if(!e)return;let{x:t,y:n}=e;return`translate3d(`+(t?Math.round(t):0)+`px, `+(n?Math.round(n):0)+`px, 0)`}},Scale:{toString(e){if(!e)return;let{scaleX:t,scaleY:n}=e;return`scaleX(`+t+`) scaleY(`+n+`)`}},Transform:{toString(e){if(e)return[G.Translate.toString(e),G.Scale.toString(e)].join(` `)}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+` `+n+`ms `+r}}}),He=`a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]`;function Ue(e){return e.matches(He)?e:e.querySelector(He)}var K={display:`none`};function We(e){let{id:t,value:n}=e;return I.createElement(`div`,{id:t,style:K},n)}function Ge(e){let{id:t,announcement:n,ariaLiveType:r=`assertive`}=e;return I.createElement(`div`,{id:t,style:{position:`fixed`,top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0 0 0 0)`,clipPath:`inset(100%)`,whiteSpace:`nowrap`},role:`status`,"aria-live":r,"aria-atomic":!0},n)}function Ke(){let[e,t]=(0,I.useState)(``);return{announce:(0,I.useCallback)(e=>{e!=null&&t(e)},[]),announcement:e}}var qe=(0,I.createContext)(null);function Je(e){let t=(0,I.useContext)(qe);(0,I.useEffect)(()=>{if(!t)throw Error(`useDndMonitor must be used within a children of <DndContext>`);return t(e)},[e,t])}function Ye(){let[e]=(0,I.useState)(()=>new Set),t=(0,I.useCallback)(t=>(e.add(t),()=>e.delete(t)),[e]);return[(0,I.useCallback)(t=>{let{type:n,event:r}=t;e.forEach(e=>e[n]?.call(e,r))},[e]),t]}var Xe={draggable:`
2
2
  To pick up a draggable item, press the space bar.
3
3
  While dragging, use the arrow keys to move the item.
4
4
  Press space again to drop the item in its new position, or press escape to cancel.
@@ -8,4 +8,4 @@ import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{i as t,r as n,t as r}f
8
8
  `)}\n`}function Qr(e){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``)||`workflow`}function $r(e){let t=Gr(e)?`skill`:`step`;return`${e.length} ${t}${e.length===1?``:`s`}`}function ei(e,t){let n=new Set,r=[];for(let t of e.steps.slice(0,8)){let e=t.id||`step`,i=e;for(let t=2;n.has(i);t++)i=`${e}-${t}`;n.add(i),r.push({...t,id:i})}return{name:e.name?.trim()||t,steps:r}}function ti(e,t,n){let r=Gr(n);return{name:e.trim(),...t.trim()?{description:t.trim()}:{},...r?{skills:r}:{steps:[...n]}}}var $=r(),ni=`wb-canvas`;function ri(){return{name:`my-workflow`,description:``,steps:[]}}function ii(e){return{name:e.name,description:e.description??``,steps:structuredClone(e.steps??[])}}function ai(){let{name:e}=f();return(0,$.jsx)(oi,{routeName:e},e??``)}function oi({routeName:e}){let t=j(),n=E(),r=ue(),s=i(),[c,f]=(0,I.useState)(null),[ne,se]=(0,I.useState)(``),[M,N]=(0,I.useState)(!1),[de,P]=(0,I.useState)(``),[fe,ye]=(0,I.useState)(null),[we,F]=(0,I.useState)(!1),[Te,L]=(0,I.useState)(``),[R,Ee]=(0,I.useState)(``),[z,B]=(0,I.useState)(!1),[V,De]=(0,I.useState)(``),[Oe,H]=(0,I.useState)(!1),[ke,Ae]=(0,I.useState)(!1),[U,je]=(0,I.useState)(null),[Me,Ne]=(0,I.useState)(null),Pe=(0,I.useRef)(null),Fe=(0,I.useRef)(null),Ie=t.data?.workflows??[],W=n.data??[],Le=xe(W,r.data?.skillUsage),Re=be(Le,de,r.data?.skillUsage);(0,I.useEffect)(()=>{if(c!==null||t.data===void 0)return;let n=t.data.workflows,r=(e?n.find(t=>t.name===e):void 0)??n.find(e=>e.source===`file`);f(r?ii(r):ri())},[c,t.data,e]);let ze=e=>f(t=>t===null?t:{...t,steps:e}),Be=o({mutationFn:e=>u(e),onSuccess:e=>{f({name:e.name,description:e.description??``,steps:e.steps}),F(!1),L(``),Ee(``),T(`Imported "${e.name}" — review, then Save.`)},onError:e=>Ee(e.message)}),Ve=o({mutationFn:e=>x(e),onSuccess:e=>{f(t=>{let n=t??ri(),{name:r,steps:i}=ei(e,n.name);return{...n,name:r,steps:i}}),B(!1),De(``),T(e.fallback?`Planner unavailable — added a single step. Edit, then Save.`:`Built "${e.name??c?.name??`workflow`}" — review, tweak, then Save.`,e.fallback?{tone:`danger`}:void 0)},onError:e=>T(e instanceof Error?e.message:String(e),{tone:`danger`})}),G=o({mutationFn:e=>h({...ti(c?.name??``,c?.description??``,c?.steps??[]),...e?{overwrite:!0}:{}}),onSuccess:e=>{H(!1),T(`Saved — ${e.path.split(`/`).pop()??e.path}`),s.invalidateQueries({queryKey:D.workflows})},onError:e=>{e instanceof k&&e.exists===!0?H(!0):T(e instanceof Error?e.message:String(e),{tone:`danger`})}}),He=o({mutationFn:e=>a(e),onSuccess:(e,t)=>{Ae(!1),T(`Deleted "${t}".`),f(ri()),s.invalidateQueries({queryKey:D.workflows})},onError:e=>{Ae(!1),T(e instanceof Error?e.message:String(e),{tone:`danger`})}}),Ue=tt(et(en,{activationConstraint:{distance:4}}),et(Yt,{coordinateGetter:Hr}));if(t.isError)return(0,$.jsx)(`div`,{"data-route":`workflows`,className:`@container mx-auto min-h-full w-full px-[18px] py-6 md:p-9`,children:(0,$.jsx)(ce,{icon:(0,$.jsx)(b,{}),tone:`danger`,title:`Could not load workflows`,subtitle:t.error.message})});if(c===null)return(0,$.jsx)(Ce,{});let K=c.steps,We=c.name.trim(),Ge=Ie.find(e=>e.name===We&&e.source===`file`),Ke=Zr(c.name,c.description,K),qe=(e,t=K.length)=>{if(K.length>=8){T(`A workflow holds at most 8 steps.`,{tone:`danger`});return}ze(qr(K,Kr(e,K),t))},Je=e=>{let t=e.active.data.current;je(t??null)},Ye=e=>{Ne(e.over?String(e.over.id):null)},Xe=e=>{je(null),Ne(null);let{active:t,over:n}=e;if(n===null)return;let r=t.data.current;if(r?.type===`palette`){let e=n.id===ni?K.length:K.findIndex(e=>e.id===n.id);qe(r.skill,e===-1?K.length:e);return}if(n.id===t.id)return;let i=K.findIndex(e=>e.id===t.id),a=K.findIndex(e=>e.id===n.id);i!==-1&&a!==-1&&ze(Jr(K,i,a))},Ze=()=>{let e=Te.trim();e!==``&&Be.mutate(e)},Qe=()=>{let e=V.trim();e===``||Ve.isPending||Ve.mutate(e)};return(0,$.jsxs)(`div`,{"data-route":`workflows`,className:`@container mx-auto min-h-full w-full px-[18px] py-6 md:p-9`,children:[(0,$.jsxs)(`header`,{className:`mb-[22px] flex flex-wrap items-center justify-between gap-4`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`h1`,{className:`text-[25px] font-semibold md:text-[30px]`,children:`Workflows`}),(0,$.jsx)(`p`,{className:`mt-2 text-xs text-muted-foreground md:text-[13px]`,children:`Portable skill chains. Steps run from top to bottom.`})]}),(0,$.jsxs)(w,{variant:`primary`,"data-slot":`wb-new`,className:`min-h-11`,onClick:()=>f(ri()),children:[(0,$.jsx)(l,{"aria-hidden":`true`,className:`size-4`}),`New workflow`]})]}),(0,$.jsxs)(Qn,{sensors:Ue,collisionDetection:lt,onDragStart:Je,onDragOver:Ye,onDragEnd:Xe,onDragCancel:()=>{je(null),Ne(null)},children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-[22px] pb-[calc(32px+env(safe-area-inset-bottom))]`,children:[(0,$.jsxs)(`section`,{"data-slot":`wb-metadata`,className:`flex min-w-0 flex-col gap-3`,children:[(0,$.jsxs)(`div`,{"data-slot":`wb-load`,className:`flex flex-col items-start gap-2`,children:[(0,$.jsx)(`label`,{htmlFor:`workflow-load`,className:`text-xs text-muted-foreground`,children:`Load an existing workflow`}),(0,$.jsxs)(`div`,{className:`relative max-w-full`,children:[(0,$.jsx)(_,{"aria-hidden":`true`,className:`pointer-events-none absolute left-3 top-3.5 size-4 text-muted-foreground`}),(0,$.jsxs)(`select`,{id:`workflow-load`,value:Ie.some(e=>e.name===We)?We:``,onChange:e=>{let t=Ie.find(t=>t.name===e.target.value);t&&f(ii(t))},className:`h-11 max-w-full rounded-lg border border-border bg-card pl-9 pr-3 text-xs font-medium appearance-none focus-visible:outline-2 focus-visible:outline-ring`,children:[(0,$.jsx)(`option`,{value:``,disabled:!0,children:`Choose a workflow`}),Ie.map(e=>(0,$.jsx)(`option`,{value:e.name,"data-slot":`wb-load-option`,"data-name":e.name,children:e.name},e.name))]})]})]}),(0,$.jsx)(`label`,{htmlFor:`workflow-name`,className:`text-xs font-semibold`,children:`Workflow name`}),(0,$.jsx)(Se,{id:`workflow-name`,ref:Pe,"data-slot":`wb-name`,"aria-label":`Workflow name`,spellCheck:!1,value:c.name,onChange:e=>f({...c,name:e.target.value}),className:`h-12 bg-card text-sm`}),(0,$.jsx)(`label`,{htmlFor:`workflow-description`,className:`text-xs font-semibold`,children:`Description`}),(0,$.jsx)(ve,{id:`workflow-description`,"data-slot":`wb-description`,"aria-label":`Description`,value:c.description,onChange:e=>f({...c,description:e.target.value}),className:`min-h-[72px] bg-card p-3.5 text-sm`})]}),(0,$.jsxs)(`div`,{"data-slot":`wb-actions`,className:`grid grid-cols-[max-content_max-content] items-center justify-start gap-2 sm:flex sm:flex-wrap [&_button]:min-h-11 [&_button]:border [&_button]:border-border [&_button]:bg-card`,children:[(0,$.jsxs)(w,{type:`button`,variant:`ghost`,size:`sm`,"data-slot":`wb-import`,className:`col-span-2 justify-self-start`,onClick:()=>{Ee(``),B(!1),F(e=>!e)},children:[(0,$.jsx)(v,{"aria-hidden":`true`,className:`size-3`}),`Import`]}),(0,$.jsxs)(w,{type:`button`,variant:`ghost`,size:`sm`,"data-slot":`wb-export`,className:`col-span-2 justify-self-start`,title:`Download workflow.yaml`,onClick:()=>{let e=new Blob([Ke],{type:`text/yaml`}),t=URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=`${Qr(c.name)}.yaml`,document.body.appendChild(n),n.click(),n.remove(),setTimeout(()=>URL.revokeObjectURL(t),1e3)},children:[(0,$.jsx)(ie,{"aria-hidden":`true`,className:`size-3`}),`Export`]}),(0,$.jsxs)(w,{type:`button`,variant:`ghost`,size:`sm`,"data-slot":`wb-auto`,"aria-expanded":z,title:`Describe a chain — the agent builds it`,onClick:()=>{F(!1),B(e=>!e)},children:[(0,$.jsx)(p,{"aria-hidden":`true`,className:`size-3`}),`Auto`]}),Ge?(0,$.jsxs)(w,{type:`button`,variant:`ghost`,size:`sm`,"data-slot":`wb-delete`,className:`text-danger hover:text-danger`,title:`Delete the saved workflow file`,onClick:()=>Ae(!0),children:[(0,$.jsx)(d,{"aria-hidden":`true`,className:`size-3`}),`Delete`]}):null]}),z?(0,$.jsxs)(`div`,{"data-slot":`wb-auto-panel`,className:`rounded-xl border border-border bg-card p-5 [&_button]:min-h-11`,children:[(0,$.jsx)(`h2`,{className:`text-lg font-normal`,children:`Build a chain from a prompt`}),(0,$.jsx)(`p`,{className:`mt-4 text-[13px] leading-relaxed text-muted-foreground`,children:`Describe the outcome. An agent proposes a title and ordered skill/check steps. Review the result, edit it, then Save.`}),(0,$.jsx)(ve,{"data-slot":`wb-auto-text`,"aria-label":`Describe the chain to build`,rows:3,autoFocus:!0,placeholder:`e.g. Fix the bug, run the tests, then review the diff for regressions.`,value:V,onChange:e=>De(e.target.value),onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&e.key===`Enter`&&(e.preventDefault(),Qe())},className:`mt-4 min-h-[108px] bg-background p-4 text-sm`}),(0,$.jsxs)(`div`,{className:`mt-3 flex items-center gap-1.5`,children:[(0,$.jsxs)(w,{type:`button`,variant:`primary`,size:`sm`,"data-slot":`wb-auto-run`,disabled:Ve.isPending||V.trim()===``,onClick:Qe,children:[(0,$.jsx)(p,{"aria-hidden":`true`,className:`size-3`}),Ve.isPending?`Building…`:`Build chain`]}),(0,$.jsxs)(w,{type:`button`,variant:`ghost`,size:`sm`,"data-slot":`wb-auto-cancel`,onClick:()=>{B(!1),De(``)},children:[(0,$.jsx)(le,{"aria-hidden":`true`,className:`size-4`}),`Cancel`]})]}),(0,$.jsx)(`p`,{className:`mt-4 text-xs text-muted-foreground`,children:`Creates an editable draft. Review the generated name and steps before saving.`})]}):null,(0,$.jsx)(me,{open:we,onOpenChange:F,children:(0,$.jsxs)(ge,{showCloseButton:!1,"data-slot":`wb-import-panel`,className:`max-md:translate-x-0 max-md:translate-y-0 sm:max-w-[660px] rounded-xl border border-border bg-card p-5 [&_button]:min-h-11`,children:[(0,$.jsx)(_e,{className:`text-xl font-normal`,children:`Import workflow YAML`}),(0,$.jsx)(pe,{className:`sr-only`,children:`Paste a portable workflow definition to import.`}),(0,$.jsx)(ve,{"data-slot":`wb-import-text`,"aria-label":`Workflow YAML to import`,rows:4,spellCheck:!1,placeholder:`name: my-flow
9
9
  skills:
10
10
  - test-conventions
11
- - commit-style`,value:Te,onChange:e=>L(e.target.value),className:`mt-4 min-h-[124px] bg-background p-4 font-mono text-[13px] leading-relaxed`}),(0,$.jsx)(`p`,{className:`mt-4 text-[13px] text-muted-foreground`,children:`Paste a portable workflow definition. Imported steps appear in execution order.`}),R===``?null:(0,$.jsx)(`p`,{"data-slot":`wb-import-error`,role:`alert`,className:`mt-2 text-xs text-danger`,children:R}),(0,$.jsxs)(`div`,{className:`mt-3 flex items-center gap-1.5`,children:[(0,$.jsx)(w,{type:`button`,variant:`primary`,size:`sm`,"data-slot":`wb-import-run`,disabled:Be.isPending,onClick:Ze,children:`Import`}),(0,$.jsx)(w,{type:`button`,variant:`ghost`,size:`sm`,"data-slot":`wb-import-cancel`,onClick:()=>{F(!1),L(``),Ee(``)},children:`Cancel`})]})]})}),(0,$.jsxs)(`div`,{className:`grid min-w-0 items-start gap-[22px] @min-[700px]:grid-cols-[minmax(0,1fr)_300px]`,children:[(0,$.jsxs)(`section`,{"data-slot":`wb-main`,className:`min-w-0 rounded-xl border border-border bg-card p-5`,children:[(0,$.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Steps · `,K.length,` of `,8,(0,$.jsx)(`span`,{"data-slot":`wb-count`,className:`sr-only`,children:$r(K)})]}),(0,$.jsx)(si,{steps:K,skills:W,dragging:U!==null,overId:Me,activeStepId:U?.type===`step`?U.step.id:null,onRemove:e=>ze(Yr(K,e)),onMove:(e,t)=>ze(Jr(K,e,t))}),(0,$.jsxs)(w,{ref:Fe,variant:`outline`,className:`mt-4 min-h-11`,onClick:()=>{ye(null),P(``),N(!0)},children:[(0,$.jsx)(l,{"aria-hidden":`true`,className:`size-4`}),`Add step`]}),(0,$.jsxs)(`p`,{className:`mt-4 text-xs leading-relaxed text-muted-foreground`,children:[(0,$.jsx)(`span`,{className:`hidden @min-[900px]:inline`,children:`Drag to reorder. The agent follows this sequence from top to bottom.`}),(0,$.jsx)(`span`,{className:`@min-[900px]:hidden`,children:`Use Move up / Move down to reorder without dragging.`})]}),(0,$.jsxs)(`footer`,{className:`mt-4 flex flex-wrap items-center justify-between gap-4 border-t border-border pt-4`,children:[(0,$.jsx)(`p`,{className:`text-xs leading-relaxed text-muted-foreground`,children:`Review the name and steps, then save to a workflow file.`}),(0,$.jsxs)(w,{type:`button`,variant:`primary`,size:`sm`,className:`min-h-11 max-sm:w-full`,"data-slot":`wb-save`,disabled:G.isPending,onClick:()=>{if(We===``){Pe.current?.focus();return}if(K.length===0){T(`Add at least one step first.`,{tone:`danger`});return}G.mutate(!1)},children:[(0,$.jsx)(y,{"aria-hidden":`true`,className:`size-3`}),`Save`]})]})]}),(0,$.jsxs)(`aside`,{"data-slot":`wb-aside`,className:`min-w-0 rounded-xl border border-border bg-card p-5`,children:[(0,$.jsx)(`h2`,{className:`text-[15px] font-semibold`,children:`Available skills`}),(0,$.jsxs)(`div`,{className:`sw-search relative mt-4`,children:[(0,$.jsx)(m,{"aria-hidden":`true`,className:`pointer-events-none absolute left-3 top-3.5 size-4 text-muted-foreground`}),(0,$.jsx)(Se,{"data-slot":`wb-filter`,placeholder:`Find a skill…`,"aria-label":`Filter skills`,value:ne,onChange:e=>se(e.target.value),className:`h-11 pl-9 text-xs`})]}),(0,$.jsx)(ui,{skills:Le,query:ne,error:n.isError?n.error.message:null,inFlow:new Set(K.map(e=>e.skill).filter(e=>!!e)),onAdd:e=>qe(e)}),(0,$.jsx)(`h3`,{className:`mt-5 text-sm font-semibold`,children:`workflow.yaml`}),(0,$.jsx)(`p`,{className:`mt-3 text-xs leading-relaxed text-muted-foreground`,children:`Export the workflow to use this chain in another project.`}),(0,$.jsxs)(`details`,{className:`mt-4 min-w-0`,children:[(0,$.jsxs)(`summary`,{"data-slot":`wb-yaml-toggle`,className:`inline-flex min-h-[44px] cursor-pointer items-center rounded-lg border border-border px-3 text-xs font-medium focus-visible:outline-2 focus-visible:outline-ring`,children:[(0,$.jsx)(C,{"aria-hidden":`true`,className:`mr-2 size-4`}),`View YAML`]}),(0,$.jsx)(`div`,{className:`mt-3 flex justify-end`,children:(0,$.jsx)(fi,{yaml:Ke})}),(0,$.jsx)(`pre`,{"data-slot":`wb-yaml`,className:`mt-2 max-h-96 overflow-auto rounded-lg border border-border bg-background p-3 font-mono text-[11.5px] leading-relaxed whitespace-pre text-muted-foreground`,children:Ke})]})]})]})]}),(0,$.jsx)(vr,{children:U?.type===`palette`?(0,$.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md border border-border bg-card px-2.5 py-1.5 font-mono text-[13px] font-medium shadow-md`,children:[(0,$.jsx)(g,{"aria-hidden":`true`,className:`size-3.5 text-link-foreground`}),U.skill]}):U?.type===`step`?(0,$.jsx)(li,{step:U.step,index:K.findIndex(e=>e.id===U.step.id),skills:W,overlay:!0}):null})]}),(0,$.jsx)(me,{open:M,onOpenChange:N,children:(0,$.jsxs)(ge,{"data-slot":`wb-add-dialog`,onCloseAutoFocus:e=>{e.preventDefault(),Fe.current?.focus()},className:`max-h-[85dvh] overflow-y-auto sm:max-w-[660px] [&_button]:min-h-11`,children:[(0,$.jsxs)(he,{children:[(0,$.jsx)(_e,{className:`text-xl font-normal`,children:`Add step`}),(0,$.jsx)(pe,{className:`sr-only`,children:`Choose a skill to append to this workflow.`})]}),(0,$.jsx)(Se,{"aria-label":`Filter skills`,placeholder:`Filter skills…`,value:de,onChange:e=>P(e.target.value)}),n.isError?(0,$.jsxs)(`p`,{role:`alert`,className:`text-sm text-danger`,children:[`Could not load skills: `,n.error.message]}):(0,$.jsxs)(`div`,{role:`radiogroup`,"aria-label":`Available skills`,className:`grid max-h-80 gap-2 overflow-y-auto`,children:[Re.map(e=>(0,$.jsxs)(`label`,{className:`flex cursor-pointer items-start gap-3 rounded-lg py-2 has-[:checked]:bg-accent-strong/10 has-[:focus-visible]:outline-2`,children:[(0,$.jsx)(`input`,{type:`radio`,name:`workflow-add-skill`,className:`sr-only`,value:e.name,checked:fe===e.name,onChange:()=>ye(e.name)}),(0,$.jsxs)(`span`,{className:`min-w-0 break-words text-sm`,children:[(0,$.jsx)(`span`,{className:`block`,children:e.name}),(0,$.jsx)(`span`,{className:`mt-2 block text-xs text-muted-foreground`,children:e.description})]})]},e.name)),Re.length===0?(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:W.length===0?`No skills available in this project.`:`No matching skills.`}):null]}),(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-3`,children:[(0,$.jsx)(w,{variant:`outline`,onClick:()=>N(!1),children:`Cancel`}),(0,$.jsx)(w,{variant:`primary`,disabled:!fe||K.length>=8,onClick:()=>{fe&&(qe(fe),N(!1))},children:`Add selected skill`})]}),(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Append the selected skill, then reorder it in the existing canvas.`}),K.length>=8?(0,$.jsxs)(`p`,{role:`status`,className:`text-sm text-muted-foreground`,children:[`A workflow can contain up to `,8,` steps. Remove a step before adding another.`]}):null]})}),(0,$.jsx)(ae,{open:Oe,onOpenChange:e=>!e&&H(!1),children:(0,$.jsxs)(O,{"data-slot":`wb-overwrite-dialog`,className:`sw-workflow-confirm sm:max-w-[660px]`,children:[(0,$.jsxs)(re,{children:[(0,$.jsxs)(A,{children:[`“`,We,`” already exists`]}),(0,$.jsx)(oe,{children:`Saving overwrites the existing workflow file. There is no undo.`})]}),(0,$.jsxs)(S,{children:[(0,$.jsx)(ee,{children:`Keep the file`}),(0,$.jsx)(te,{"data-slot":`wb-overwrite-confirm`,className:`bg-danger text-danger-foreground`,onClick:()=>G.mutate(!0),children:`Overwrite`})]})]})}),(0,$.jsx)(ae,{open:ke,onOpenChange:e=>!e&&Ae(!1),children:(0,$.jsxs)(O,{"data-slot":`wb-delete-dialog`,className:`sw-workflow-confirm sm:max-w-[660px]`,children:[(0,$.jsxs)(re,{children:[(0,$.jsxs)(A,{children:[`Delete workflow “`,We,`”?`]}),(0,$.jsxs)(oe,{children:[`Removes `,Ge?.path?.split(`/`).pop()??`the saved file`,` from`,` `,(0,$.jsx)(`span`,{className:`font-mono`,children:`.ai/cezar/workflows/`}),`. There is no undo.`]})]}),(0,$.jsxs)(S,{children:[(0,$.jsx)(ee,{children:`Keep the file`}),(0,$.jsx)(te,{"data-slot":`wb-delete-confirm`,className:`bg-danger text-danger-foreground hover:brightness-[0.96]`,onClick:()=>He.mutate(We),children:`Delete workflow`})]})]})})]})}function si({steps:e,skills:t,dragging:n,overId:r,activeStepId:i,onRemove:a,onMove:o}){let{setNodeRef:s,isOver:c}=or({id:ni}),l=n&&r===ni;return(0,$.jsx)(`div`,{ref:s,"data-slot":`wb-steps`,"data-dragging":n||void 0,className:M(`relative mt-4 rounded-lg transition-colors`,c?`border-accent-strong/60 bg-accent-strong/5`:`border-muted-foreground/25`),children:e.length===0?(0,$.jsx)(`p`,{className:M(`rounded-md px-3 py-10 text-center text-[13px] transition-colors`,c?`text-link-foreground`:`text-muted-foreground`),children:`Drop a skill here — or Import a workflow.yaml`}):(0,$.jsxs)(Ar,{items:e.map(e=>e.id),strategy:Er,children:[(0,$.jsx)(`ol`,{className:`flex flex-col gap-4`,children:e.map((s,c)=>(0,$.jsx)(ci,{step:s,index:c,skills:t,dragging:n,insertBefore:n&&r===s.id&&i!==s.id,onRemove:()=>a(c),onMoveUp:c>0?()=>o(c,c-1):void 0,onMoveDown:c<e.length-1?()=>o(c,c+1):void 0},s.id))}),(0,$.jsx)(`div`,{"aria-hidden":`true`,className:M(`absolute inset-x-0 mt-1 h-[3px] rounded-full transition-colors`,l?`bg-accent-strong`:`bg-transparent`)})]})})}function ci({step:e,index:t,skills:n,dragging:r,insertBefore:i,onRemove:a,onMoveUp:o,onMoveDown:s}){let{attributes:c,listeners:l,setNodeRef:u,transform:d,transition:f,isDragging:p}=Rr({id:e.id,data:{type:`step`,step:e}});return(0,$.jsxs)(`li`,{ref:u,style:{transform:G.Transform.toString(d),transition:f},className:M(`relative`,p&&`opacity-40`),children:[i?(0,$.jsx)(`span`,{"aria-hidden":`true`,"data-slot":`wb-drop-line`,className:`pointer-events-none absolute -top-[7px] right-0 left-0 h-[3px] rounded-full bg-accent-strong`}):null,(0,$.jsx)(li,{step:e,index:t,skills:n,onRemove:a,onMoveUp:o,onMoveDown:s,gripProps:{...c,...l}})]})}function li({step:e,index:t,skills:n,onRemove:r,gripProps:i,onMoveUp:a,onMoveDown:o,overlay:l=!1}){let u=n.find(t=>t.name===e.skill),f=!!e.command,p=e.name??e.skill??e.id,m=e.prompt?.trim()===`{{task}}`?void 0:e.prompt?.trim(),h=f?`$ ${e.command}${e.onFail?` — on fail retry from "${e.onFail.retry}" (×${e.onFail.max??2})`:``}`:e.skill?m||u?.description||`Not in this repo or the team skills — the step runs on its plain prompt.`:e.prompt??``,g=e.skill&&!u?`unknown`:null;return(0,$.jsxs)(`div`,{"data-slot":`wb-step`,"data-id":e.id,"data-index":t,className:M(`rounded-lg border border-border bg-background p-4`,l&&`shadow-md`),children:[(0,$.jsxs)(`div`,{"data-slot":`wb-step-heading`,className:`flex min-w-0 items-center gap-2.5`,children:[(0,$.jsx)(`button`,{type:`button`,"data-slot":`wb-step-grip`,"aria-label":`Reorder step ${t+1}: ${p}`,className:`inline-flex size-[26px] shrink-0 cursor-grab items-center justify-center rounded-md text-muted-foreground transition-colors outline-none hover:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50`,...i,children:(0,$.jsx)(`span`,{className:`rounded bg-accent-strong/10 px-2 py-1 font-mono text-[10px] text-link-foreground`,children:String(t+1).padStart(2,`0`)})}),(0,$.jsx)(`div`,{className:`min-w-0 flex-1 break-words text-sm font-medium [overflow-wrap:anywhere]`,children:p}),g?(0,$.jsx)(`span`,{"data-slot":`wb-step-badge`,className:M(`shrink-0 rounded-full border px-2 py-px font-mono text-[10.5px]`,g===`unknown`&&`border-danger/35 text-danger`),children:g}):null,r?(0,$.jsxs)(fe,{children:[(0,$.jsx)(de,{asChild:!0,children:(0,$.jsx)(w,{"data-slot":`wb-step-actions`,variant:`ghost`,size:`icon`,className:`size-[26px]`,"aria-label":`Step ${t+1} actions: ${p}`,children:(0,$.jsx)(se,{"aria-hidden":`true`,className:`size-4`})})}),(0,$.jsx)(P,{align:`end`,children:(0,$.jsxs)(N,{"data-slot":`wb-step-remove`,"aria-label":`Remove step ${t+1}: ${p}`,onSelect:r,children:[(0,$.jsx)(d,{"aria-hidden":`true`}),` Remove step`]})})]}):null]}),h?(0,$.jsx)(`div`,{"data-slot":`wb-step-summary`,className:`mt-3 break-words text-xs leading-relaxed text-muted-foreground`,children:h}):null,(0,$.jsx)(`p`,{"data-slot":`wb-step-kind`,className:`mt-3 text-[10px] text-link-foreground`,children:f?`Command step${e.onFail?` · Retry ×${e.onFail.max??2}`:``}`:e.skill?`Skill step`:`Prompt step`}),l?null:(0,$.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-2 @min-[900px]:hidden`,children:[(0,$.jsxs)(w,{variant:`outline`,size:`sm`,className:`min-h-11`,"aria-label":`Move step ${t+1} up`,disabled:!a,onClick:a,children:[(0,$.jsx)(s,{"aria-hidden":`true`,className:`size-4`}),`Move up`]}),(0,$.jsxs)(w,{variant:`outline`,size:`sm`,className:`min-h-11`,"aria-label":`Move step ${t+1} down`,disabled:!o,onClick:o,children:[(0,$.jsx)(c,{"aria-hidden":`true`,className:`size-4`}),`Move down`]})]})]})}function ui({skills:e,query:t,error:n,inFlow:r,onAdd:i}){if(n!==null)return(0,$.jsxs)(`p`,{"data-slot":`wb-palette`,className:`mt-2.5 text-xs text-danger`,children:[`Could not load skills: `,n]});let a=be(e,t);return(0,$.jsx)(`div`,{"data-slot":`wb-palette`,className:`mt-2.5 flex flex-col gap-1`,children:a.length>0?a.map(e=>(0,$.jsx)(di,{skill:e,inFlow:r.has(e.name),onAdd:i},e.path)):(0,$.jsx)(`p`,{className:`py-1 text-xs leading-relaxed text-soft-foreground`,children:e.length>0?`No skills match.`:(0,$.jsx)(we,{})})})}function di({skill:e,inFlow:t,onAdd:n}){let{attributes:r,listeners:i,setNodeRef:a,isDragging:o}=nr({id:`palette:${e.name}`,data:{type:`palette`,skill:e.name}});return(0,$.jsxs)(`div`,{ref:a,"data-slot":`wb-skill`,"data-skill":e.name,"data-in-flow":t||void 0,title:e.description??``,className:M(`flex min-h-11 cursor-grab items-center gap-2 rounded-md py-1 transition-colors hover:bg-muted`,o&&`opacity-40`),...r,...i,children:[(0,$.jsx)(`span`,{className:M(`min-w-0 flex-1 break-words text-xs`,ye(e)?`font-semibold text-foreground`:`font-medium text-muted-foreground`),children:e.name}),(0,$.jsx)(`button`,{type:`button`,"data-slot":`wb-skill-add`,"aria-label":`Add ${e.name} to the flow`,title:`Add to the flow`,onClick:()=>n(e.name),className:`inline-flex size-11 shrink-0 items-center justify-center rounded-md text-link-foreground transition-colors outline-none hover:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50`,children:(0,$.jsx)(l,{"aria-hidden":`true`,className:`size-3.5`})})]})}function fi({yaml:e}){let[t,n]=(0,I.useState)(!1),r=(0,I.useRef)(null);return(0,I.useEffect)(()=>()=>{r.current!==null&&clearTimeout(r.current)},[]),(0,$.jsx)(`button`,{type:`button`,"data-slot":`wb-copy`,title:`Copy the YAML`,onClick:()=>{navigator.clipboard?.writeText(e).catch(()=>{}),n(!0),r.current!==null&&clearTimeout(r.current),r.current=setTimeout(()=>n(!1),1600)},className:`flex items-center gap-1 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground`,children:t?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(y,{"aria-hidden":`true`,className:`size-3 text-success`}),`Copied`]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(ne,{"aria-hidden":`true`,className:`size-3`}),`Copy`]})})}export{ai as WorkflowsRoute};
11
+ - commit-style`,value:Te,onChange:e=>L(e.target.value),className:`mt-4 min-h-[124px] bg-background p-4 font-mono text-[13px] leading-relaxed`}),(0,$.jsx)(`p`,{className:`mt-4 text-[13px] text-muted-foreground`,children:`Paste a portable workflow definition. Imported steps appear in execution order.`}),R===``?null:(0,$.jsx)(`p`,{"data-slot":`wb-import-error`,role:`alert`,className:`mt-2 text-xs text-danger`,children:R}),(0,$.jsxs)(`div`,{className:`mt-3 flex items-center gap-1.5`,children:[(0,$.jsx)(w,{type:`button`,variant:`primary`,size:`sm`,"data-slot":`wb-import-run`,disabled:Be.isPending,onClick:Ze,children:`Import`}),(0,$.jsx)(w,{type:`button`,variant:`ghost`,size:`sm`,"data-slot":`wb-import-cancel`,onClick:()=>{F(!1),L(``),Ee(``)},children:`Cancel`})]})]})}),(0,$.jsxs)(`div`,{className:`grid min-w-0 items-start gap-[22px] @min-[700px]:grid-cols-[minmax(0,1fr)_300px]`,children:[(0,$.jsxs)(`section`,{"data-slot":`wb-main`,className:`min-w-0 rounded-xl border border-border bg-card p-5`,children:[(0,$.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Steps · `,K.length,` of `,8,(0,$.jsx)(`span`,{"data-slot":`wb-count`,className:`sr-only`,children:$r(K)})]}),(0,$.jsx)(si,{steps:K,skills:W,dragging:U!==null,overId:Me,activeStepId:U?.type===`step`?U.step.id:null,onRemove:e=>ze(Yr(K,e)),onMove:(e,t)=>ze(Jr(K,e,t))}),(0,$.jsxs)(w,{ref:Fe,variant:`outline`,className:`mt-4 min-h-11`,onClick:()=>{ye(null),P(``),N(!0)},children:[(0,$.jsx)(l,{"aria-hidden":`true`,className:`size-4`}),`Add step`]}),(0,$.jsxs)(`p`,{className:`mt-4 text-xs leading-relaxed text-muted-foreground`,children:[(0,$.jsx)(`span`,{className:`hidden @min-[900px]:inline`,children:`Drag to reorder. The agent follows this sequence from top to bottom.`}),(0,$.jsx)(`span`,{className:`@min-[900px]:hidden`,children:`Use Move up / Move down to reorder without dragging.`})]}),(0,$.jsxs)(`footer`,{className:`mt-4 flex flex-wrap items-center justify-between gap-4 border-t border-border pt-4`,children:[(0,$.jsx)(`p`,{className:`text-xs leading-relaxed text-muted-foreground`,children:`Review the name and steps, then save to a workflow file.`}),(0,$.jsxs)(w,{type:`button`,variant:`primary`,size:`sm`,className:`min-h-11 max-sm:w-full`,"data-slot":`wb-save`,disabled:G.isPending,onClick:()=>{if(We===``){Pe.current?.focus();return}if(K.length===0){T(`Add at least one step first.`,{tone:`danger`});return}G.mutate(!1)},children:[(0,$.jsx)(y,{"aria-hidden":`true`,className:`size-3`}),`Save`]})]})]}),(0,$.jsxs)(`aside`,{"data-slot":`wb-aside`,className:`min-w-0 rounded-xl border border-border bg-card p-5`,children:[(0,$.jsx)(`h2`,{className:`text-[16px] font-semibold`,children:`Available skills`}),(0,$.jsxs)(`div`,{className:`sw-search relative mt-4`,children:[(0,$.jsx)(m,{"aria-hidden":`true`,className:`pointer-events-none absolute left-3 top-3.5 size-4 text-muted-foreground`}),(0,$.jsx)(Se,{"data-slot":`wb-filter`,placeholder:`Find a skill…`,"aria-label":`Filter skills`,value:ne,onChange:e=>se(e.target.value),className:`h-11 pl-9 text-xs`})]}),(0,$.jsx)(ui,{skills:Le,query:ne,error:n.isError?n.error.message:null,inFlow:new Set(K.map(e=>e.skill).filter(e=>!!e)),onAdd:e=>qe(e)}),(0,$.jsx)(`h3`,{className:`mt-5 text-sm font-semibold`,children:`workflow.yaml`}),(0,$.jsx)(`p`,{className:`mt-3 text-xs leading-relaxed text-muted-foreground`,children:`Export the workflow to use this chain in another project.`}),(0,$.jsxs)(`details`,{className:`mt-4 min-w-0`,children:[(0,$.jsxs)(`summary`,{"data-slot":`wb-yaml-toggle`,className:`inline-flex min-h-[44px] cursor-pointer items-center rounded-lg border border-border px-3 text-xs font-medium focus-visible:outline-2 focus-visible:outline-ring`,children:[(0,$.jsx)(C,{"aria-hidden":`true`,className:`mr-2 size-4`}),`View YAML`]}),(0,$.jsx)(`div`,{className:`mt-3 flex justify-end`,children:(0,$.jsx)(fi,{yaml:Ke})}),(0,$.jsx)(`pre`,{"data-slot":`wb-yaml`,className:`mt-2 max-h-96 overflow-auto rounded-lg border border-border bg-background p-3 font-mono text-[11px] leading-relaxed whitespace-pre text-muted-foreground`,children:Ke})]})]})]})]}),(0,$.jsx)(vr,{children:U?.type===`palette`?(0,$.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md border border-border bg-card px-2.5 py-1.5 font-mono text-[13px] font-medium shadow-md`,children:[(0,$.jsx)(g,{"aria-hidden":`true`,className:`size-3.5 text-link-foreground`}),U.skill]}):U?.type===`step`?(0,$.jsx)(li,{step:U.step,index:K.findIndex(e=>e.id===U.step.id),skills:W,overlay:!0}):null})]}),(0,$.jsx)(me,{open:M,onOpenChange:N,children:(0,$.jsxs)(ge,{"data-slot":`wb-add-dialog`,onCloseAutoFocus:e=>{e.preventDefault(),Fe.current?.focus()},className:`max-h-[85dvh] overflow-y-auto sm:max-w-[660px] [&_button]:min-h-11`,children:[(0,$.jsxs)(he,{children:[(0,$.jsx)(_e,{className:`text-xl font-normal`,children:`Add step`}),(0,$.jsx)(pe,{className:`sr-only`,children:`Choose a skill to append to this workflow.`})]}),(0,$.jsx)(Se,{"aria-label":`Filter skills`,placeholder:`Filter skills…`,value:de,onChange:e=>P(e.target.value)}),n.isError?(0,$.jsxs)(`p`,{role:`alert`,className:`text-sm text-danger`,children:[`Could not load skills: `,n.error.message]}):(0,$.jsxs)(`div`,{role:`radiogroup`,"aria-label":`Available skills`,className:`grid max-h-80 gap-2 overflow-y-auto`,children:[Re.map(e=>(0,$.jsxs)(`label`,{className:`flex cursor-pointer items-start gap-3 rounded-lg py-2 has-[:checked]:bg-accent-strong/10 has-[:focus-visible]:outline-2`,children:[(0,$.jsx)(`input`,{type:`radio`,name:`workflow-add-skill`,className:`sr-only`,value:e.name,checked:fe===e.name,onChange:()=>ye(e.name)}),(0,$.jsxs)(`span`,{className:`min-w-0 break-words text-sm`,children:[(0,$.jsx)(`span`,{className:`block`,children:e.name}),(0,$.jsx)(`span`,{className:`mt-2 block text-xs text-muted-foreground`,children:e.description})]})]},e.name)),Re.length===0?(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:W.length===0?`No skills available in this project.`:`No matching skills.`}):null]}),(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-3`,children:[(0,$.jsx)(w,{variant:`outline`,onClick:()=>N(!1),children:`Cancel`}),(0,$.jsx)(w,{variant:`primary`,disabled:!fe||K.length>=8,onClick:()=>{fe&&(qe(fe),N(!1))},children:`Add selected skill`})]}),(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Append the selected skill, then reorder it in the existing canvas.`}),K.length>=8?(0,$.jsxs)(`p`,{role:`status`,className:`text-sm text-muted-foreground`,children:[`A workflow can contain up to `,8,` steps. Remove a step before adding another.`]}):null]})}),(0,$.jsx)(ae,{open:Oe,onOpenChange:e=>!e&&H(!1),children:(0,$.jsxs)(O,{"data-slot":`wb-overwrite-dialog`,className:`sw-workflow-confirm sm:max-w-[660px]`,children:[(0,$.jsxs)(re,{children:[(0,$.jsxs)(A,{children:[`“`,We,`” already exists`]}),(0,$.jsx)(oe,{children:`Saving overwrites the existing workflow file. There is no undo.`})]}),(0,$.jsxs)(S,{children:[(0,$.jsx)(ee,{children:`Keep the file`}),(0,$.jsx)(te,{"data-slot":`wb-overwrite-confirm`,className:`bg-danger text-danger-foreground`,onClick:()=>G.mutate(!0),children:`Overwrite`})]})]})}),(0,$.jsx)(ae,{open:ke,onOpenChange:e=>!e&&Ae(!1),children:(0,$.jsxs)(O,{"data-slot":`wb-delete-dialog`,className:`sw-workflow-confirm sm:max-w-[660px]`,children:[(0,$.jsxs)(re,{children:[(0,$.jsxs)(A,{children:[`Delete workflow “`,We,`”?`]}),(0,$.jsxs)(oe,{children:[`Removes `,Ge?.path?.split(`/`).pop()??`the saved file`,` from`,` `,(0,$.jsx)(`span`,{className:`font-mono`,children:`.ai/cezar/workflows/`}),`. There is no undo.`]})]}),(0,$.jsxs)(S,{children:[(0,$.jsx)(ee,{children:`Keep the file`}),(0,$.jsx)(te,{"data-slot":`wb-delete-confirm`,className:`bg-danger text-danger-foreground hover:brightness-[0.96]`,onClick:()=>He.mutate(We),children:`Delete workflow`})]})]})})]})}function si({steps:e,skills:t,dragging:n,overId:r,activeStepId:i,onRemove:a,onMove:o}){let{setNodeRef:s,isOver:c}=or({id:ni}),l=n&&r===ni;return(0,$.jsx)(`div`,{ref:s,"data-slot":`wb-steps`,"data-dragging":n||void 0,className:M(`relative mt-4 rounded-lg transition-colors`,c?`border-accent-strong/60 bg-accent-strong/5`:`border-muted-foreground/25`),children:e.length===0?(0,$.jsx)(`p`,{className:M(`rounded-md px-3 py-10 text-center text-[13px] transition-colors`,c?`text-link-foreground`:`text-muted-foreground`),children:`Drop a skill here — or Import a workflow.yaml`}):(0,$.jsxs)(Ar,{items:e.map(e=>e.id),strategy:Er,children:[(0,$.jsx)(`ol`,{className:`flex flex-col gap-4`,children:e.map((s,c)=>(0,$.jsx)(ci,{step:s,index:c,skills:t,dragging:n,insertBefore:n&&r===s.id&&i!==s.id,onRemove:()=>a(c),onMoveUp:c>0?()=>o(c,c-1):void 0,onMoveDown:c<e.length-1?()=>o(c,c+1):void 0},s.id))}),(0,$.jsx)(`div`,{"aria-hidden":`true`,className:M(`absolute inset-x-0 mt-1 h-[3px] rounded-full transition-colors`,l?`bg-accent-strong`:`bg-transparent`)})]})})}function ci({step:e,index:t,skills:n,dragging:r,insertBefore:i,onRemove:a,onMoveUp:o,onMoveDown:s}){let{attributes:c,listeners:l,setNodeRef:u,transform:d,transition:f,isDragging:p}=Rr({id:e.id,data:{type:`step`,step:e}});return(0,$.jsxs)(`li`,{ref:u,style:{transform:G.Transform.toString(d),transition:f},className:M(`relative`,p&&`opacity-40`),children:[i?(0,$.jsx)(`span`,{"aria-hidden":`true`,"data-slot":`wb-drop-line`,className:`pointer-events-none absolute -top-[7px] right-0 left-0 h-[3px] rounded-full bg-accent-strong`}):null,(0,$.jsx)(li,{step:e,index:t,skills:n,onRemove:a,onMoveUp:o,onMoveDown:s,gripProps:{...c,...l}})]})}function li({step:e,index:t,skills:n,onRemove:r,gripProps:i,onMoveUp:a,onMoveDown:o,overlay:l=!1}){let u=n.find(t=>t.name===e.skill),f=!!e.command,p=e.name??e.skill??e.id,m=e.prompt?.trim()===`{{task}}`?void 0:e.prompt?.trim(),h=f?`$ ${e.command}${e.onFail?` — on fail retry from "${e.onFail.retry}" (×${e.onFail.max??2})`:``}`:e.skill?m||u?.description||`Not in this repo or the team skills — the step runs on its plain prompt.`:e.prompt??``,g=e.skill&&!u?`unknown`:null;return(0,$.jsxs)(`div`,{"data-slot":`wb-step`,"data-id":e.id,"data-index":t,className:M(`rounded-lg border border-border bg-background p-4`,l&&`shadow-md`),children:[(0,$.jsxs)(`div`,{"data-slot":`wb-step-heading`,className:`flex min-w-0 items-center gap-2.5`,children:[(0,$.jsx)(`button`,{type:`button`,"data-slot":`wb-step-grip`,"aria-label":`Reorder step ${t+1}: ${p}`,className:`inline-flex size-[26px] shrink-0 cursor-grab items-center justify-center rounded-md text-muted-foreground transition-colors outline-none hover:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50`,...i,children:(0,$.jsx)(`span`,{className:`rounded bg-accent-strong/10 px-2 py-1 font-mono text-[12px] text-link-foreground`,children:String(t+1).padStart(2,`0`)})}),(0,$.jsx)(`div`,{className:`min-w-0 flex-1 break-words text-sm font-medium [overflow-wrap:anywhere]`,children:p}),g?(0,$.jsx)(`span`,{"data-slot":`wb-step-badge`,className:M(`shrink-0 rounded-full border px-2 py-px font-mono text-[11px]`,g===`unknown`&&`border-danger/35 text-danger`),children:g}):null,r?(0,$.jsxs)(fe,{children:[(0,$.jsx)(de,{asChild:!0,children:(0,$.jsx)(w,{"data-slot":`wb-step-actions`,variant:`ghost`,size:`icon`,className:`size-[26px]`,"aria-label":`Step ${t+1} actions: ${p}`,children:(0,$.jsx)(se,{"aria-hidden":`true`,className:`size-4`})})}),(0,$.jsx)(P,{align:`end`,children:(0,$.jsxs)(N,{"data-slot":`wb-step-remove`,"aria-label":`Remove step ${t+1}: ${p}`,onSelect:r,children:[(0,$.jsx)(d,{"aria-hidden":`true`}),` Remove step`]})})]}):null]}),h?(0,$.jsx)(`div`,{"data-slot":`wb-step-summary`,className:`mt-3 break-words text-xs leading-relaxed text-muted-foreground`,children:h}):null,(0,$.jsx)(`p`,{"data-slot":`wb-step-kind`,className:`mt-3 text-[12px] text-link-foreground`,children:f?`Command step${e.onFail?` · Retry ×${e.onFail.max??2}`:``}`:e.skill?`Skill step`:`Prompt step`}),l?null:(0,$.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-2 @min-[900px]:hidden`,children:[(0,$.jsxs)(w,{variant:`outline`,size:`sm`,className:`min-h-11`,"aria-label":`Move step ${t+1} up`,disabled:!a,onClick:a,children:[(0,$.jsx)(s,{"aria-hidden":`true`,className:`size-4`}),`Move up`]}),(0,$.jsxs)(w,{variant:`outline`,size:`sm`,className:`min-h-11`,"aria-label":`Move step ${t+1} down`,disabled:!o,onClick:o,children:[(0,$.jsx)(c,{"aria-hidden":`true`,className:`size-4`}),`Move down`]})]})]})}function ui({skills:e,query:t,error:n,inFlow:r,onAdd:i}){if(n!==null)return(0,$.jsxs)(`p`,{"data-slot":`wb-palette`,className:`mt-2.5 text-xs text-danger`,children:[`Could not load skills: `,n]});let a=be(e,t);return(0,$.jsx)(`div`,{"data-slot":`wb-palette`,className:`mt-2.5 flex flex-col gap-1`,children:a.length>0?a.map(e=>(0,$.jsx)(di,{skill:e,inFlow:r.has(e.name),onAdd:i},e.path)):(0,$.jsx)(`p`,{className:`py-1 text-xs leading-relaxed text-soft-foreground`,children:e.length>0?`No skills match.`:(0,$.jsx)(we,{})})})}function di({skill:e,inFlow:t,onAdd:n}){let{attributes:r,listeners:i,setNodeRef:a,isDragging:o}=nr({id:`palette:${e.name}`,data:{type:`palette`,skill:e.name}});return(0,$.jsxs)(`div`,{ref:a,"data-slot":`wb-skill`,"data-skill":e.name,"data-in-flow":t||void 0,title:e.description??``,className:M(`flex min-h-11 cursor-grab items-center gap-2 rounded-md py-1 transition-colors hover:bg-muted`,o&&`opacity-40`),...r,...i,children:[(0,$.jsx)(`span`,{className:M(`min-w-0 flex-1 break-words text-xs`,ye(e)?`font-semibold text-foreground`:`font-medium text-muted-foreground`),children:e.name}),(0,$.jsx)(`button`,{type:`button`,"data-slot":`wb-skill-add`,"aria-label":`Add ${e.name} to the flow`,title:`Add to the flow`,onClick:()=>n(e.name),className:`inline-flex size-11 shrink-0 items-center justify-center rounded-md text-link-foreground transition-colors outline-none hover:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50`,children:(0,$.jsx)(l,{"aria-hidden":`true`,className:`size-3.5`})})]})}function fi({yaml:e}){let[t,n]=(0,I.useState)(!1),r=(0,I.useRef)(null);return(0,I.useEffect)(()=>()=>{r.current!==null&&clearTimeout(r.current)},[]),(0,$.jsx)(`button`,{type:`button`,"data-slot":`wb-copy`,title:`Copy the YAML`,onClick:()=>{navigator.clipboard?.writeText(e).catch(()=>{}),n(!0),r.current!==null&&clearTimeout(r.current),r.current=setTimeout(()=>n(!1),1600)},className:`flex items-center gap-1 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground`,children:t?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(y,{"aria-hidden":`true`,className:`size-3 text-success`}),`Copied`]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(ne,{"aria-hidden":`true`,className:`size-3`}),`Copy`]})})}export{ai as WorkflowsRoute};
@@ -47,33 +47,33 @@
47
47
  }
48
48
  })()
49
49
  </script>
50
- <script type="module" crossorigin src="/assets/index-yCn9jZqm.js"></script>
50
+ <script type="module" crossorigin src="/assets/index-BJtve0Pm.js"></script>
51
51
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-QTnfLwEv.js">
52
52
  <link rel="modulepreload" crossorigin href="/assets/react-runtime-CCIEwYL0.js">
53
53
  <link rel="modulepreload" crossorigin href="/assets/bundle-mjs-BT31bpU6.js">
54
54
  <link rel="modulepreload" crossorigin href="/assets/utils-DKheTxGD.js">
55
- <link rel="modulepreload" crossorigin href="/assets/centered-state-wm14n-hB.js">
56
- <link rel="modulepreload" crossorigin href="/assets/dropdown-menu-Bwvi4Ono.js">
57
- <link rel="modulepreload" crossorigin href="/assets/agent-accounts-B7aDlJ4I.js">
58
- <link rel="modulepreload" crossorigin href="/assets/textarea-COQtp9cB.js">
55
+ <link rel="modulepreload" crossorigin href="/assets/centered-state-HwCqQkH3.js">
56
+ <link rel="modulepreload" crossorigin href="/assets/dropdown-menu-_YAzCaoQ.js">
57
+ <link rel="modulepreload" crossorigin href="/assets/agent-accounts-JPfZPgKn.js">
58
+ <link rel="modulepreload" crossorigin href="/assets/textarea-D2vAVgYW.js">
59
59
  <link rel="modulepreload" crossorigin href="/assets/createLucideIcon-BHp8sXmF.js">
60
60
  <link rel="modulepreload" crossorigin href="/assets/external-link-BE6y205O.js">
61
61
  <link rel="modulepreload" crossorigin href="/assets/square-terminal-B6RYYieR.js">
62
- <link rel="modulepreload" crossorigin href="/assets/pill-DqEXer06.js">
62
+ <link rel="modulepreload" crossorigin href="/assets/pill-QfwkuR50.js">
63
63
  <link rel="modulepreload" crossorigin href="/assets/chevron-right-BENZ-1ZN.js">
64
- <link rel="modulepreload" crossorigin href="/assets/prompt-templates-BsHnTixc.js">
65
- <link rel="modulepreload" crossorigin href="/assets/project-router-BSpCQc8A.js">
64
+ <link rel="modulepreload" crossorigin href="/assets/prompt-templates-Cfna_S0T.js">
65
+ <link rel="modulepreload" crossorigin href="/assets/project-router-CkAA39N5.js">
66
66
  <link rel="modulepreload" crossorigin href="/assets/search-x-I9Q8pgUa.js">
67
67
  <link rel="modulepreload" crossorigin href="/assets/lib-BxQXEXDF.js">
68
68
  <link rel="modulepreload" crossorigin href="/assets/chunk-BO2N2NFS-DE6qKn3r.js">
69
69
  <link rel="modulepreload" crossorigin href="/assets/highlighter-CdHqIwFr.js">
70
- <link rel="modulepreload" crossorigin href="/assets/markdown-BnjmXdz2.js">
70
+ <link rel="modulepreload" crossorigin href="/assets/markdown-CFWZnvMh.js">
71
71
  <link rel="modulepreload" crossorigin href="/assets/skills-DFBiAuJG.js">
72
72
  <link rel="modulepreload" crossorigin href="/assets/use-submit-shortcut-KWJsC906.js">
73
- <link rel="modulepreload" crossorigin href="/assets/thread-loading-B7mgkPaL.js">
73
+ <link rel="modulepreload" crossorigin href="/assets/thread-loading-NW8Mthco.js">
74
74
  <link rel="modulepreload" crossorigin href="/assets/diff-stat-Cn7rzy1H.js">
75
- <link rel="modulepreload" crossorigin href="/assets/token-metrics-CFWQYcgY.js">
76
- <link rel="stylesheet" crossorigin href="/assets/index-dgQfUHKO.css">
75
+ <link rel="modulepreload" crossorigin href="/assets/token-metrics-D188e6_0.js">
76
+ <link rel="stylesheet" crossorigin href="/assets/index-D0WAgmTQ.css">
77
77
  </head>
78
78
  <body>
79
79
  <div id="root"></div>