@wjarka/cezarion 0.14.2 → 0.14.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -2
- package/dist/contract/delegation.d.ts +9 -0
- package/dist/contract/index.js +4 -2
- package/dist/contract/runs.d.ts +18 -0
- package/dist/core/cursor-acp-runner.js +13 -0
- package/dist/core/cursor-acp-runner.js.map +1 -1
- package/dist/runs/agent-tmpdir.d.ts +44 -4
- package/dist/runs/agent-tmpdir.js +209 -31
- package/dist/runs/agent-tmpdir.js.map +1 -1
- package/dist/server/server.d.ts +63 -58
- package/dist/workflows/run.d.ts +4 -0
- package/dist/workflows/run.js +8 -1
- package/dist/workflows/run.js.map +1 -1
- package/package.json +3 -3
- package/scripts/mock-cursor-acp.mjs +15 -3
- package/web/dist/assets/agent-accounts-BxBsIXGa.js +1 -0
- package/web/dist/assets/alert-dialog-BOp2HnnL.js +43 -0
- package/web/dist/assets/{collapsible-D7QXWXZq.js → collapsible-bb0csfMs.js} +1 -1
- package/web/dist/assets/{commit-list-AwLNQE91.js → commit-list-CEVhJoCF.js} +1 -1
- package/web/dist/assets/{compare-variants-CBggabVc.js → compare-variants-CZqdiqvW.js} +1 -1
- package/web/dist/assets/{diff-C4aSZfrQ2.js → diff-BjLZHKfD2.js} +2 -2
- package/web/dist/assets/{diff-controls-74Z0C3ay.js → diff-controls-DaO836o4.js} +1 -1
- package/web/dist/assets/{diff-stat-B7f-F8cC.js → diff-stat-DpHwISUB.js} +1 -1
- package/web/dist/assets/{diff-view-BPKHTL85.js → diff-view-BaYxuP8L.js} +1 -1
- package/web/dist/assets/dropdown-menu-DAmCVaLJ.js +1 -0
- package/web/dist/assets/{git-toolbar-Dntzprrr.js → git-toolbar-rk3doc2w.js} +1 -1
- package/web/dist/assets/github-BPfdr6aa.js +1 -0
- package/web/dist/assets/{image-preview-BhuwWeyP.js → image-preview-CFHgISfb.js} +1 -1
- package/web/dist/assets/index-C4iEPAUV.js +7 -0
- package/web/dist/assets/index-DPOGn7D5.css +1 -0
- package/web/dist/assets/{markdown-BssEOroY.js → markdown-Ir62-VMS.js} +1 -1
- package/web/dist/assets/pill-Dvvq0Otw.js +1 -0
- package/web/dist/assets/{project-router-a1gx3dfP.js → project-router-CvFAMDcP.js} +1 -1
- package/web/dist/assets/{prompt-templates-B4eJ8kQZ.js → prompt-templates-BGGpAIzb.js} +1 -1
- package/web/dist/assets/repo-git-C1Qv1JmM.js +1 -0
- package/web/dist/assets/{run-diff-CHDwMBEQ.js → run-diff-DrQsmf3-.js} +1 -1
- package/web/dist/assets/run-header-C9Aeh27u.js +1 -0
- package/web/dist/assets/skills-_ZVZxmKz.js +1 -0
- package/web/dist/assets/{tab-link-DRP4FV8D.js → tab-link-CkIV8ixq.js} +1 -1
- package/web/dist/assets/task-changes-BU9upwUw.js +1 -0
- package/web/dist/assets/{task-commits-DTdRtZur.js → task-commits-CbJutMBx.js} +1 -1
- package/web/dist/assets/{task-files-Cr2qKUk2.js → task-files-_hQyxAc7.js} +2 -2
- package/web/dist/assets/task-thread-Yo52ML6l.js +9 -0
- package/web/dist/assets/{textarea-DAHMUyAp.js → textarea-DfvlPIgO.js} +1 -1
- package/web/dist/assets/thread-loading-B9uTF0dX.js +1 -0
- package/web/dist/assets/{token-metrics-Q0paVq5n.js → token-metrics-BLzFUb8F.js} +1 -1
- package/web/dist/assets/{utils-CG8vWc5K.js → utils-GZNjgma4.js} +1 -1
- package/web/dist/assets/workflows-B6Er16t0.js +11 -0
- package/web/dist/assets/{zoomable-image-BXioMWqb.js → zoomable-image-COhBxkky.js} +1 -1
- package/web/dist/index.html +14 -14
- package/web/dist/assets/agent-accounts-BP0XBzQP.js +0 -1
- package/web/dist/assets/alert-dialog-Bv9zV9w1.js +0 -43
- package/web/dist/assets/dropdown-menu-DkzcT6aO.js +0 -1
- package/web/dist/assets/github-CBYawanT.js +0 -1
- package/web/dist/assets/index-BpI26cbM.js +0 -7
- package/web/dist/assets/index-CG0CPeOx.css +0 -1
- package/web/dist/assets/pill-C7gWe96Z.js +0 -1
- package/web/dist/assets/repo-git-D8GN9ork.js +0 -1
- package/web/dist/assets/run-header-BlqnTQeP.js +0 -1
- package/web/dist/assets/skills-CkWBfIfQ.js +0 -1
- package/web/dist/assets/task-changes-CEyHhiK1.js +0 -1
- package/web/dist/assets/task-thread-C8XeQXO4.js +0 -9
- package/web/dist/assets/thread-loading-OtvWGq9Y.js +0 -1
- package/web/dist/assets/workflows-uDL1z3Qp.js +0 -11
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{i as t,t as n}from"./react-runtime-CCIEwYL0.js";import{$ as r,An as i,Bn as a,Ca as o,Cn as s,Gr as c,Ii as l,Ir as u,J as d,Jr as f,Li as p,Ln as m,Mn as h,Nn as g,Nr as _,Oa as v,On as y,Or as b,Pr as x,Pt as S,Rr as ee,Ur as te,V as ne,Y as C,Z as re,Zn as ie,_i as ae,a as oe,aa as w,c as se,d as T,dn as ce,ei as le,en as E,ht as ue,i as de,ii as fe,ir as pe,jn as me,jr as he,ln as ge,n as _e,o as ve,ot as ye,q as D,qt as be,r as xe,rn as O,rr as Se,rt as k,s as Ce,sr as A,t as we,tt as Te,ua as Ee,yi as De}from"./alert-dialog-Bv9zV9w1.js";import{n as j,t as M}from"./utils-CG8vWc5K.js";import{a as N,c as Oe,i as P,l as F,n as ke,r as I,t as L}from"./dropdown-menu-DkzcT6aO.js";import{n as Ae,r as je,t as Me}from"./collapsible-D7QXWXZq.js";import{n as Ne,t as Pe}from"./agent-accounts-BP0XBzQP.js";import{t as R}from"./createLucideIcon-BHp8sXmF.js";import{M as Fe,S as Ie,c as Le,f as Re,g as z,h as B,i as ze,k as Be,n as Ve,r as He,t as Ue,v as We,x as V,y as Ge}from"./pill-C7gWe96Z.js";import{c as Ke,s as qe,t as H,u as Je}from"./project-router-a1gx3dfP.js";import{t as Ye}from"./square-terminal-B6RYYieR.js";import{t as Xe}from"./markdown-BssEOroY.js";import{t as Ze}from"./diff-stat-B7f-F8cC.js";import{n as Qe,t as $e}from"./token-metrics-Q0paVq5n.js";import{t as U}from"./tab-link-DRP4FV8D.js";import{t as et}from"./use-desktop-BaYgO7YW.js";var W=R(`file-text`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]),tt=R(`mail`,[[`path`,{d:`m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7`,key:`132q7q`}],[`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`,key:`izxlao`}]]),nt=R(`pin-off`,[[`path`,{d:`M12 17v5`,key:`bb1du9`}],[`path`,{d:`M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89`,key:`znwnzq`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}],[`path`,{d:`M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11`,key:`c9qhm2`}]]),G=e(t(),1),K=n(),q=`flex min-h-11 min-w-0 items-center rounded-md px-2 text-sm text-foreground hover:bg-muted break-words focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`;function rt({run:e}){return!e.delegation||e.delegation.role===`invalid`?null:(0,K.jsx)(it,{run:e})}function it({run:e}){let t=pe(e.id),n=et(),[r,i]=(0,G.useState)(null),a=n||r===e.id,o=(0,G.useId)(),s=A(),l=e.delegation,u=l?.role===`worker`?l.parentRunId:t.data?.parentRunId,d=l?.role===`root`?l.receipts.map(e=>e.workerId):[],f=new Map(t.data?.workers.map(e=>[e.workerId,e])),p=[...new Set([...d,...f.keys()])].slice(0,32),m=l&&l.role!==`invalid`?l.wait:void 0;return(0,K.jsxs)(`section`,{"aria-label":`Task relationships`,className:`min-w-0 border-t border-border py-2 text-sm text-muted-foreground`,children:[(0,K.jsxs)(`button`,{type:`button`,className:`flex min-h-11 w-full items-center gap-2 text-left text-xs md:hidden`,"aria-expanded":a,"aria-controls":o,onClick:()=>i(r===e.id?null:e.id),children:[(0,K.jsx)(ue,{"aria-hidden":`true`,className:`size-4 text-accent-text`}),l?.role===`worker`?`Worker session`:`Parent`,(0,K.jsx)(D,{"aria-hidden":`true`,className:`ml-1 size-4`}),l?.role===`worker`?`Parent & workers`:p.length>0?`Workers ${p.length}`:t.isSuccess?`Workers 0`:t.isError?`Workers unavailable`:`Workers…`,(0,K.jsx)(C,{"aria-hidden":`true`,className:`ml-auto size-4 ${a?`rotate-180`:``}`})]}),l?.role===`worker`&&l.destroy?(0,K.jsx)(J,{state:l.destroy}):null,m?(0,K.jsxs)(`p`,{className:`px-2 break-words`,children:[m.requestIds?m.phase===`parked`?`Waiting on request replies`:m.phase===`wake-pending`?`Conversation update queued for this task`:`Request wait registered — the agent is finishing its turn`:m.phase===`parked`?`Waiting on workers`:m.phase===`wake-pending`?`Worker update queued for the parent`:`Worker wait registered — the agent is finishing its turn`,`.`,` `,`Deadline: `,(0,K.jsx)(`time`,{dateTime:m.deadline,children:m.deadline})]}):null,(0,K.jsxs)(`div`,{id:o,hidden:!a,children:[u?(0,K.jsx)(at,{id:u}):null,p.length>0?(0,K.jsx)(`ul`,{className:`grid max-h-64 min-w-0 gap-1 overflow-y-auto`,children:p.map(e=>{let n=f.get(e),r=s.data?.find(t=>t.id===e);return(0,K.jsxs)(`li`,{className:`min-w-0 rounded-md bg-muted/40 px-1`,children:[(0,K.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-x-2`,children:[(0,K.jsx)(H,{to:`/tasks/${e}`,"aria-label":`Worker task ${e}`,className:q,children:r?c(r):`Worker ${e.slice(0,8)}`}),(0,K.jsx)(`span`,{className:`px-2 text-xs`,children:n?.status??(t.isSuccess?`Record unavailable or deleted`:`Status unavailable`)})]}),n?.destroy?(0,K.jsx)(J,{state:n.destroy}):null]},e)})}):l?.role===`root`&&t.isSuccess?(0,K.jsx)(`p`,{className:`px-2`,children:`No workers`}):null,t.fetchStatus===`paused`?(0,K.jsx)(`p`,{role:`status`,className:`px-2`,children:`Offline — relationship details will refresh when connected.`}):t.isPending?(0,K.jsx)(`p`,{role:`status`,className:`px-2`,children:`Loading relationships…`}):null,t.isError?(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 px-2`,children:[(0,K.jsx)(`p`,{role:`status`,children:`Could not load relationships. Known task links are retained.`}),(0,K.jsx)(T,{variant:`outline`,className:`min-h-11`,onClick:()=>void t.refetch(),children:`Retry relationships`})]}):null]})]})}function at({id:e}){let t=ie(e);return(0,K.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-x-2`,children:[(0,K.jsx)(H,{to:`/tasks/${e}`,"aria-label":`Parent task ${e}`,className:q,children:t.data?`Parent · ${c(t.data)}`:`Parent task ${e}`}),t.isError?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`span`,{className:`px-2 text-xs`,children:`Parent record unavailable or deleted`}),(0,K.jsx)(T,{variant:`outline`,className:`min-h-11`,onClick:()=>void t.refetch(),children:`Retry parent task`})]}):null]})}function J({state:e}){return(0,K.jsxs)(`p`,{className:`px-2 pb-2 break-words`,children:[e.phase===`incomplete`?`Cleanup incomplete`:e.phase===`complete`?`Cleanup complete`:`Cleanup ${e.phase}`,e.remaining.length?` — remaining: ${e.remaining.join(`, `)}`:``,e.error?` — ${e.error}`:``]})}function Y(e){switch(e){case`done`:return`done`;case`running`:case`waiting`:case`review`:return`active`;case`failed`:case`cancelled`:return`failed`;case`pending`:case`skipped`:return`pending`}}function X(e){if(e.length===0)return 0;let t=new Set([`done`,`failed`,`cancelled`,`skipped`]),n=new Set([`running`,`waiting`,`review`]),r=0;for(let i of e)t.has(i.status)?r+=1:n.has(i.status)&&(r+=.5);return r/e.length}function ot({steps:e}){if(e.length===0)return null;let t=X(e)*100;return(0,K.jsxs)(`div`,{"data-slot":`step-rail`,className:`flex min-w-0 flex-col gap-1`,children:[e.map((t,n)=>(0,K.jsxs)(`div`,{"data-slot":`step-row`,"data-visual":Y(t.status),className:`flex min-h-[22px] min-w-0 items-center gap-2 text-[13px] text-muted-foreground`,children:[(0,K.jsx)(st,{visual:Y(t.status)}),(0,K.jsx)(`span`,{className:`min-w-0 truncate font-medium text-foreground`,children:t.name}),t.iterations>1?(0,K.jsxs)(`span`,{"data-slot":`step-iterations`,className:`shrink-0 text-xs text-soft-foreground tabular-nums`,children:[`×`,t.iterations]}):null,(0,K.jsxs)(`span`,{className:`ml-auto shrink-0 pl-2 text-[11.5px] text-soft-foreground tabular-nums`,children:[t.kind,` · step `,n+1,` of `,e.length]})]},t.id)),(0,K.jsx)(`div`,{"data-slot":`step-progress`,className:`mt-1 h-0.5 overflow-hidden rounded-full bg-muted`,children:(0,K.jsx)(`div`,{className:`h-full rounded-full bg-pending`,style:{width:`${t}%`}})})]})}function st({visual:e}){let t=`size-[13px] shrink-0`;switch(e){case`done`:return(0,K.jsx)(re,{"aria-hidden":!0,className:M(t,`text-success`)});case`active`:return(0,K.jsx)(Je,{role:`status`,"aria-label":`Step running`,className:M(t,`animate-spin stroke-pending motion-reduce:animate-none`)});case`failed`:return(0,K.jsx)(Te,{"aria-hidden":!0,className:M(t,`text-danger`)});case`pending`:return(0,K.jsx)(r,{"aria-hidden":!0,className:M(t,`text-soft-foreground`)})}}function ct(e){let t=e.findIndex(e=>Y(e.status)===`active`);if(t>=0)return t;let n=e.findIndex(e=>Y(e.status)===`pending`);return n>=0?n:Math.max(0,e.length-1)}function lt({visual:e}){return(0,K.jsx)(`span`,{"aria-hidden":!0,"data-slot":`step-dot`,"data-visual":e,className:M(`size-1.5 rounded-full`,e===`done`?`bg-success`:e===`failed`?`bg-danger`:e===`active`?`bg-pending`:`bg-soft-foreground`,e===`active`&&`animate-pulse motion-reduce:animate-none`)})}var Z=new Map;function ut({runId:e,steps:t}){let[n,r]=(0,G.useState)(()=>Z.get(e)??!1);if(t.length===0)return null;let i=t=>{Z.set(e,t),r(t)},a=ct(t),o=t[a],s=X(t)*100;return(0,K.jsxs)(Me,{"data-slot":`workflow-steps`,open:n,onOpenChange:i,className:`min-w-0`,children:[(0,K.jsxs)(je,{"aria-label":`Workflow: ${o.name}, step ${a+1} of ${t.length}`,className:`group flex min-h-11 w-full items-center gap-2 text-left text-xs text-muted-foreground hover:text-foreground md:min-h-[30px] md:gap-2.5`,children:[(0,K.jsx)(`span`,{"data-slot":`step-dots`,className:`flex shrink-0 items-center gap-1`,children:t.map(e=>(0,K.jsx)(lt,{visual:Y(e.status)},e.id))}),(0,K.jsx)(`span`,{className:`min-w-0 max-w-[45%] shrink truncate font-semibold text-foreground`,children:o.name}),(0,K.jsxs)(`span`,{className:`shrink-0 text-soft-foreground tabular-nums`,children:[`step `,a+1,` of `,t.length]}),(0,K.jsx)(`span`,{"data-slot":`step-summary-progress`,className:`h-0.5 min-w-[36px] flex-1 overflow-hidden rounded-full bg-muted`,children:(0,K.jsx)(`span`,{className:`block h-full rounded-full bg-pending`,style:{width:`${s}%`}})}),(0,K.jsx)(C,{"aria-hidden":!0,className:`size-4 shrink-0 text-soft-foreground transition-transform group-data-[state=open]:rotate-180`})]}),(0,K.jsx)(Ae,{children:(0,K.jsx)(`div`,{className:`pt-2`,children:(0,K.jsx)(ot,{steps:t})})})]})}function dt(e){let t=v();return o({mutationFn:()=>De(e),onSuccess:()=>t.invalidateQueries({queryKey:O.runs.all}),onError:e=>w(e.message,{tone:`danger`})})}var ft=new Map;function pt({run:e,planTally:t,tab:n=`session`,hasPendingHumanAsk:r=!1,onMarkedUnread:i}){let a=f(e,r),[o,c]=(0,G.useState)(!1),[l,u]=(0,G.useState)(!1),d=mt(e,i),[,p]=(0,G.useReducer)(e=>e+1,0),m=(0,G.useId)(),h=qe(),g=JSON.stringify([h,e.id]),_=ft.get(g)??!1,v=()=>{ft.set(g,!_),p()},y=A(),b=s(),x=$e(b.data),S=e.status===`queued`?te(y.data??[]).get(e.id):void 0;return(0,K.jsxs)(`header`,{"data-slot":`run-header`,className:M(`relative z-20 bg-background px-[18px] pt-[18px] md:px-9 md:pt-7`,n===`session`&&`md:sticky md:top-0`),children:[(0,K.jsxs)(`div`,{className:`w-full`,children:[(0,K.jsxs)(`div`,{"data-slot":`run-title-row`,className:`flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1 md:flex-nowrap`,children:[(0,K.jsx)(`p`,{"data-slot":`session-kind`,className:`text-[10px] font-semibold tracking-[0.14em] text-muted-foreground uppercase md:hidden`,children:e.delegation?.role===`worker`?`Worker session`:e.delegation?.role===`root`?`Parent session`:`Task session`}),(0,K.jsx)(ht,{run:e}),(0,K.jsxs)(Ue,{dot:a.tone,pulse:a.pulse,children:[a.label,S===void 0?``:` #${S}`]}),(0,K.jsxs)(`span`,{className:`ml-auto flex shrink-0 items-center gap-1 md:gap-2.5`,children:[t?(0,K.jsxs)(`span`,{"data-slot":`plan-mirror`,className:`hidden text-[11px] text-soft-foreground tabular-nums md:inline`,children:[`Plan `,t.done,`/`,t.total]}):null,(0,K.jsx)(T,{variant:`ghost`,size:`icon-sm`,className:`size-11 md:hidden`,"aria-label":_?`Hide run details`:`Show run details`,"aria-controls":m,"aria-expanded":_,onClick:v,children:(0,K.jsx)(C,{"aria-hidden":`true`,className:M(`transition-transform motion-reduce:transition-none`,_&&`rotate-180`)})}),(0,K.jsx)(yt,{run:e,actions:d,onOpenChooser:()=>u(!0),onToggleNotes:()=>c(e=>!e)})]})]}),(0,K.jsx)(`div`,{id:m,"data-slot":`run-details`,className:M(_?`block`:`hidden`,`md:block`),children:(0,K.jsx)(gt,{run:e,showTokens:x.tokens,showCost:x.cost,automationsAvailable:b.data?.capabilities?.automations===!0})}),(0,K.jsx)(_t,{run:e}),(0,K.jsxs)(`div`,{"data-slot":`run-tabs`,className:`mt-3 flex flex-wrap items-end gap-1 border-b border-border md:mt-5 max-md:[&>a]:min-h-11`,children:[(0,K.jsx)(U,{to:`/tasks/${e.id}`,active:n===`session`,children:`Session`}),(0,K.jsx)(U,{to:`/tasks/${e.id}/changes`,active:n===`changes`,children:`Changes`}),(0,K.jsx)(U,{to:`/tasks/${e.id}/commits`,active:n===`commits`,children:`Commits`}),(0,K.jsx)(U,{to:`/tasks/${e.id}/files`,active:n===`files`,children:`Files`})]}),(0,K.jsx)(rt,{run:e}),n!==`session`&&e.steps.length>0?(0,K.jsx)(`div`,{className:`border-t border-border pt-1 pb-0 md:pt-2 md:pb-1`,children:(0,K.jsx)(ut,{runId:e.id,steps:e.steps})}):null,o?(0,K.jsx)(xt,{runId:e.id,onClose:()=>c(!1)}):null,l?(0,K.jsx)(Q,{run:e,canResume:z(e).terminal,onResume:()=>d.terminal.mutate(),onClose:()=>u(!1)}):null]}),(0,K.jsx)(bt,{run:e,actions:d})]})}function Q({run:e,canResume:t,onResume:n,onOpen:r,onClose:a}){let s=i(),c=m(),u=o({mutationFn:t=>l(e.id,t),onError:e=>w(e.message,{tone:`danger`})}),d=Ee(c.data),f=e=>!c.isSuccess||d.includes(e??`claude`),p=t&&f(Re(e)),h=e.worktreePath?(s.data?.targets??[]).filter(e=>{let t=We(e.id);return t===void 0||f(t)}).map(t=>({target:t,...Le(e,t.id)?{suffix:` (resume)`,title:`Resume this run's session`}:{}})):[];if(!p&&h.length===0)return null;let g=()=>{let t=e.worktreePath;t&&navigator.clipboard.writeText(t).then(()=>w(`Worktree path copied`)).catch(()=>w(`Path: ${t}`))};if(r)return(0,K.jsx)(P,{onSelect:r,children:`Open in…`});let _=B(e);return(0,K.jsxs)(`section`,{"aria-label":`Open task worktree in…`,className:`task-action-panel my-5 rounded-xl border border-border bg-card p-6`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,K.jsx)(`h2`,{className:`text-lg font-medium`,children:`Open task worktree in…`}),(0,K.jsx)(T,{variant:`ghost`,size:`icon`,"aria-label":`Close worktree chooser`,onClick:a,children:(0,K.jsx)(E,{})})]}),e.worktreePath?(0,K.jsx)(`p`,{className:`my-4 break-all text-xs text-muted-foreground`,children:e.worktreePath}):null,(0,K.jsxs)(`div`,{className:`task-open-targets mt-4 flex flex-wrap gap-3`,children:[p?(0,K.jsxs)(T,{variant:`outline`,"data-target":`terminal-resume`,onClick:n,children:[(0,K.jsx)(Ye,{}),`Terminal (resume session)`]}):null,h.map(({target:e,suffix:t,title:n})=>{let r=Ge(e);return(0,K.jsxs)(T,{variant:`outline`,"data-target":e.id,title:n,disabled:u.isPending,onClick:()=>u.mutate(e.id),children:[(0,K.jsx)(r,{"aria-hidden":`true`}),e.label,t??``]},e.id)}),e.worktreePath?(0,K.jsxs)(T,{variant:`outline`,onClick:g,children:[(0,K.jsx)(k,{}),`Copy worktree path`]}):null]}),_?(0,K.jsxs)(`div`,{className:`mt-5 border-t border-border pt-5`,children:[(0,K.jsx)(`h3`,{className:`text-base font-medium`,children:`Resume in a terminal`}),(0,K.jsx)(`pre`,{className:`my-4 whitespace-pre-wrap break-all rounded-lg border border-border bg-background p-4 text-xs`,children:_}),(0,K.jsxs)(T,{variant:`outline`,onClick:()=>void $(_,`Command copied to clipboard.`),children:[(0,K.jsx)(k,{}),`Copy resume command`]})]}):null]})}function mt(e,t){let n=v(),r=Ke(),[i,a]=(0,G.useState)(null),s=()=>n.invalidateQueries({queryKey:O.runs.all}),c=e=>w(e.message,{tone:`danger`}),l=dt(e.id),u=o({mutationFn:()=>fe(e.id,!e.archived),onSuccess:s,onError:c}),d=h(),f={isPending:d.isPending,mutate:()=>d.mutate({id:e.id,pinned:!e.pinned})},m=y();return{finish:l,archive:u,pin:f,markUnread:{isPending:m.isPending,mutate:()=>{t?.(),m.mutate(e.id,{onError:c})}},delete:o({mutationFn:()=>ae(e.id),onSuccess:()=>{s(),r(`/`)},onError:c}),terminal:o({mutationFn:()=>p(e.id),onError:e=>{if(e instanceof le&&e.command){$(e.command,`No terminal found — command copied to clipboard.`);return}c(e)}}),confirming:i,setConfirming:a}}async function $(e,t){try{await navigator.clipboard.writeText(e),w(t)}catch{w(`Run manually: ${e}`)}}function ht({run:e}){let t=me(e.id),n=c(e),r=He(n,e=>t.mutate({title:e},{onError:e=>w(e.message,{tone:`danger`})}));return r.editing?(0,K.jsx)(Ve,{editor:r,className:`flex-1 text-[15px] font-semibold`}):(0,K.jsxs)(`span`,{className:`group flex min-w-0 items-center gap-1`,children:[(0,K.jsx)(`h1`,{className:`line-clamp-2 min-w-0 break-words text-2xl font-semibold tracking-tight`,title:e.task,children:n}),(0,K.jsx)(`button`,{type:`button`,"aria-label":`Rename task`,onClick:r.begin,className:`shrink-0 rounded-sm p-1 text-soft-foreground opacity-0 transition-opacity group-hover:opacity-100 hover:bg-muted hover:text-foreground focus-visible:opacity-100 focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none`,children:(0,K.jsx)(Be,{className:`size-3.5`,"aria-hidden":`true`})})]})}function gt({run:e,showTokens:t,showCost:n,automationsAvailable:r}){let i=g(),o=a(),s=(0,G.useMemo)(()=>u(e,i),[e,i]),l=(0,G.useMemo)(()=>o===void 0?[]:s.map(e=>({projectId:o,kind:e.kind,number:e.number})),[s,o]),d=[(0,K.jsx)(`span`,{className:`max-md:max-w-full max-md:break-all`,children:ee(e)},`workflow`)];e.branch&&d.push((0,K.jsx)(`span`,{"data-slot":`branch-chip`,className:`rounded-sm border border-border bg-card px-1.5 py-px font-mono text-[11px] font-medium max-md:max-w-full max-md:break-all`,children:e.branch},`branch`));let f=s.filter(e=>e.kind===`PR`);for(let t of f)d.push((0,K.jsx)(V,{reference:t,taskTitle:c(e),className:`h-5`,conflictAction:(0,K.jsx)(ze,{run:e,prNumber:t.number})},`pr-${t.number}`));let p=x(e);p&&j(p)&&!f.some(e=>e.url===p)&&d.push((0,K.jsx)(V,{reference:{kind:`PR`,url:p},taskTitle:c(e),className:`h-5`},`pr`));let m=_(e,i);if(m&&j(m)){let t=he(m);d.push((0,K.jsx)(V,{reference:{kind:`Issue`,...t?{number:Number(t)}:{},url:m},taskTitle:c(e),className:`h-5`},`issue`))}e.diffStat&&d.push((0,K.jsx)(Ze,{stat:e.diffStat},`diff`)),e.automation&&d.push(r?(0,K.jsx)(H,{to:`/automations/${encodeURIComponent(e.automation.automationId)}/log`,className:`rounded-sm border border-border bg-card px-1.5 py-px text-[11px] font-medium hover:text-foreground`,children:`Automation`},`automation`):(0,K.jsx)(`span`,{"data-slot":`automation-origin`,title:`Automations are off on this server (CEZ_AUTOMATIONS)`,className:`rounded-sm border border-border bg-card px-1.5 py-px text-[11px] font-medium`,children:`Automation`},`automation`));let h=[];return t&&(e.inputTokens!==void 0||e.outputTokens!==void 0)&&h.push((0,K.jsx)(Qe,{inputTokens:e.inputTokens,outputTokens:e.outputTokens},`tokens`)),n&&e.costUsd&&h.push((0,K.jsx)(`span`,{className:`tabular-nums`,children:b(e.costUsd)},`cost`)),(0,K.jsx)(Ie,{projectId:o,requests:l,children:(0,K.jsxs)(`div`,{"data-slot":`run-meta`,className:`mt-1 flex flex-wrap items-center gap-x-2 gap-y-0.5 text-xs text-muted-foreground md:mt-1.5 md:gap-y-1`,children:[d.map((e,t)=>(0,K.jsxs)(G.Fragment,{children:[t>0?(0,K.jsx)(`span`,{className:`text-soft-foreground`,"aria-hidden":`true`,children:`·`}):null,e]},t)),(0,K.jsxs)(`span`,{className:`ml-auto flex shrink-0 items-center gap-1.5 max-md:min-w-0 max-md:max-w-full`,children:[h.map((e,t)=>(0,K.jsxs)(G.Fragment,{children:[t>0?(0,K.jsx)(`span`,{className:`text-soft-foreground`,"aria-hidden":`true`,children:`·`}):null,e]},t)),(0,K.jsx)(vt,{run:e})]})]})})}function _t({run:e}){if(e.status!==`running`||e.activity!==`monitoring`)return null;if(e.monitoringWakeCapReached)return(0,K.jsx)(`p`,{"data-slot":`monitoring-schedule`,role:`status`,className:`mt-1 text-xs text-muted-foreground`,children:`Automatic checks paused — 40/40 reached`});let t=e.monitoringWakeAt?new Date(e.monitoringWakeAt):null,n=t&&Number.isFinite(t.getTime())?t:null;if(!n)return(0,K.jsx)(`p`,{"data-slot":`monitoring-schedule`,role:`status`,className:`mt-1 text-xs text-muted-foreground`,children:`Parked — no automatic check scheduled`});let r=new Intl.DateTimeFormat(void 0,{dateStyle:`medium`,timeStyle:`long`}).format(n);return(0,K.jsxs)(`p`,{"data-slot":`monitoring-schedule`,role:`status`,className:`mt-1 text-xs text-muted-foreground`,children:[`Next automatic check`,` `,(0,K.jsx)(`time`,{dateTime:e.monitoringWakeAt,className:`font-medium text-foreground`,children:r})]})}function vt({run:e}){let t=ce(),n=ge(),{accounts:r}=Ne(),i=e.runner??t.data?.defaultRunner??`claude`,a=e.model??`auto`,o=e.effort||void 0,s=[...e.steps].reverse().find(e=>e.profileId),c=s?.profileId,l=s?.backend??i,u=n.data?.profiles.find(e=>e.id===c),d=c===void 0||n.isPending?void 0:n.isError?c:u?Pe(r,l)?c==="default"?`default`:u.label:void 0:`${c} (removed)`,f=e.modelIdentity&&e.modelIdentity!==a?e.modelIdentity:void 0,p=[i,d,a,o].filter(Boolean).join(` · `);return(0,K.jsxs)(L,{children:[(0,K.jsx)(F,{asChild:!0,children:(0,K.jsxs)(`button`,{type:`button`,"data-slot":`agent-badge`,title:p,"aria-label":`Agent: ${i}, ${d?`account ${d}, `:``}model ${a}${o?`, effort ${o}`:``}`,className:`flex min-w-0 shrink items-center max-md:min-h-11 gap-1.5 rounded-sm px-1 py-1 text-soft-foreground hover:bg-muted hover:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none`,children:[(0,K.jsx)(D,{className:`size-3.5 shrink-0`,"aria-hidden":`true`}),(0,K.jsx)(`span`,{"data-slot":`agent-badge-summary`,className:`truncate font-mono text-[11px]`,children:p})]})}),(0,K.jsxs)(I,{align:`end`,className:`min-w-[9rem] max-md:max-w-[calc(100vw-2rem)] max-md:break-all`,children:[(0,K.jsxs)(N,{className:`font-mono text-[11px] font-normal text-muted-foreground`,children:[`runner: `,i]}),d?(0,K.jsxs)(N,{"data-slot":`agent-badge-account`,className:`font-mono text-[11px] font-normal text-muted-foreground`,children:[`account: `,d]}):null,(0,K.jsxs)(N,{className:`font-mono text-[11px] font-normal text-muted-foreground`,children:[`model: `,a]}),o?(0,K.jsxs)(N,{"data-slot":`agent-badge-effort`,className:`font-mono text-[11px] font-normal text-muted-foreground`,children:[`effort: `,o]}):null,f?(0,K.jsxs)(N,{"data-slot":`agent-badge-identity`,className:`font-mono text-[11px] font-normal text-muted-foreground`,children:[`identity: `,f]}):null]})]})}function yt({run:e,actions:t,onToggleNotes:n,onOpenChooser:r}){let i=z(e),a=B(e);return(0,K.jsxs)(L,{children:[(0,K.jsx)(F,{asChild:!0,children:(0,K.jsx)(T,{variant:`ghost`,size:`icon-sm`,className:`size-11`,"aria-label":`Run actions`,children:(0,K.jsx)(ye,{"aria-hidden":`true`})})}),(0,K.jsxs)(I,{align:`end`,"data-slot":`run-actions-menu`,className:`w-[270px] max-w-[calc(100vw-2rem)] p-3`,children:[(0,K.jsx)(N,{className:`px-2 py-3 text-[10px] font-normal text-muted-foreground`,children:`TASK ACTIONS`}),(0,K.jsxs)(P,{onSelect:n,children:[(0,K.jsx)(W,{"aria-hidden":`true`}),` Notes / handoff`]}),(0,K.jsx)(Q,{run:e,canResume:i.terminal,onResume:()=>t.terminal.mutate(),onOpen:r}),a?(0,K.jsxs)(P,{onSelect:()=>void $(a,`Command copied to clipboard.`),children:[(0,K.jsx)(k,{"aria-hidden":`true`}),` Copy resume command`]}):null,i.finish?(0,K.jsxs)(P,{disabled:t.finish.isPending,onSelect:()=>t.setConfirming(`finish`),children:[(0,K.jsx)(d,{"aria-hidden":`true`}),` Finish`]}):null,i.markUnread?(0,K.jsxs)(P,{disabled:t.markUnread.isPending,onSelect:()=>t.markUnread.mutate(),children:[(0,K.jsx)(tt,{"aria-hidden":`true`}),` Mark unread`]}):null,i.pin?(0,K.jsxs)(ke,{"data-slot":`pin-run`,className:`min-h-11`,checked:!!e.pinned,disabled:t.pin.isPending,onCheckedChange:()=>t.pin.mutate(),children:[e.pinned?(0,K.jsx)(nt,{"aria-hidden":`true`}):(0,K.jsx)(S,{"aria-hidden":`true`}),e.pinned?`Unpin task`:`Pin task`]}):null,i.archive?(0,K.jsxs)(P,{disabled:t.archive.isPending,onSelect:()=>e.archived?t.archive.mutate():t.setConfirming(`archive`),children:[e.archived?(0,K.jsx)(Fe,{"aria-hidden":`true`}):(0,K.jsx)(ne,{"aria-hidden":`true`}),e.archived?`Unarchive`:`Archive task`]}):null,i.deleteRun?(0,K.jsx)(Oe,{}):null,i.deleteRun?(0,K.jsxs)(P,{variant:`destructive`,onSelect:()=>t.setConfirming(`delete`),children:[(0,K.jsx)(be,{"aria-hidden":`true`}),` Delete task…`]}):null]})]})}function bt({run:e,actions:t}){let n=t.confirming,r=(0,G.useRef)(n);n!==null&&(r.current=n);let i=n??r.current,a=i===`finish`?`Finish task?`:i===`archive`?`Archive task?`:`Delete task permanently?`,o=i===`finish`?`Review and finish`:i===`archive`?`Archive task`:`Delete task`;return(0,K.jsx)(we,{open:n!==null,onOpenChange:e=>!e&&t.setConfirming(null),children:(0,K.jsxs)(de,{"data-slot":`task-confirmation`,className:`sm:max-w-[660px]`,children:[(0,K.jsxs)(Ce,{children:[(0,K.jsx)(se,{className:i===`delete`?`text-danger`:void 0,children:a}),(0,K.jsx)(oe,{children:(0,K.jsxs)(K.Fragment,{children:[i===`finish`?`Finish “`:i===`archive`?`Move “`:`Delete “`,(0,K.jsx)(`span`,{className:`font-medium text-foreground`,title:c(e),children:c(e)}),i===`finish`?`”. Continue through the existing change-review gate before finalizing.`:i===`archive`?`” out of Active tasks. You can restore it from Archived.`:`” and its transcript, worktree and branch. This cannot be undone.`]})})]}),(0,K.jsxs)(ve,{children:[(0,K.jsx)(xe,{children:`Cancel`}),(0,K.jsx)(_e,{className:i===`delete`?`bg-danger text-danger-foreground hover:brightness-[0.96]`:`bg-accent-strong text-accent-strong-foreground hover:brightness-[0.96]`,onClick:()=>{i===`finish`?t.finish.mutate():i===`archive`?t.archive.mutate():t.delete.mutate(),t.setConfirming(null)},children:o})]})]})})}function xt({runId:e,onClose:t}){let n=Se(e);return(0,K.jsxs)(`div`,{"data-slot":`notes-panel`,className:`my-5 rounded-xl border border-border bg-card p-6`,children:[(0,K.jsxs)(`div`,{className:`mb-4 flex items-center justify-between gap-3`,children:[(0,K.jsx)(`h2`,{className:`text-lg font-medium`,children:`Notes / handoff`}),(0,K.jsx)(T,{variant:`ghost`,size:`icon`,"aria-label":`Close notes`,onClick:t,children:(0,K.jsx)(E,{})})]}),n.isPending?(0,K.jsx)(`p`,{className:`text-xs text-soft-foreground`,children:`Loading notes…`}):n.isError?(0,K.jsx)(`p`,{className:`text-xs text-danger`,children:n.error.message}):n.data.trim().length>0?(0,K.jsx)(Xe,{children:n.data}):(0,K.jsx)(`p`,{className:`text-xs text-soft-foreground`,children:`No notes yet — the handoff file is seeded when the task starts.`}),(0,K.jsxs)(`div`,{className:`mt-4 flex gap-3`,children:[(0,K.jsx)(T,{variant:`outline`,disabled:!n.data?.trim(),onClick:()=>void $(n.data??``,`Notes copied`),children:`Copy notes`}),(0,K.jsx)(T,{variant:`outline`,onClick:t,children:`Close`})]})]})}export{W as i,dt as n,ut as r,pt as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{i as t,t as n}from"./react-runtime-CCIEwYL0.js";import{$r as r,At as i,Ca as a,Ft as o,Ht as s,In as c,It as l,Jt as u,Lt as d,Oa as f,Sa as p,Tn as m,U as h,Ut as g,Wt as _,Yi as v,Z as y,_r as b,aa as x,at as S,ci as C,d as w,dr as T,fr as E,l as D,mi as O,qi as k,rn as A,ti as j,tn as M,xr as N,yr as P}from"./alert-dialog-Bv9zV9w1.js";import{t as F}from"./utils-CG8vWc5K.js";import{a as I,i as ee,n as te,o as ne,r as re,s as ie}from"./textarea-DAHMUyAp.js";import{T as ae}from"./prompt-templates-B4eJ8kQZ.js";import{c as oe,t as L}from"./project-router-a1gx3dfP.js";import{i as R,l as z,n as B,o as V,p as H}from"./skills-DFBiAuJG.js";import{c as U,h as W,o as G,t as K}from"./index-BpI26cbM.js";import{t as se}from"./skill-empty-hint-oOtzR3v0.js";var q=e(t(),1),J=n(),ce=`https://github.com/open-mercato/skills`;function Y(e){let t=e?.importedSkills;if(Array.isArray(t))return t.filter(e=>typeof e==`string`&&!!e)}function X(e,t){return Y(e)??[...t]}function le({projectId:e}){let t=f(),n=P(),r=m(),[a,s]=(0,q.useState)(``),c=E(e,!!e),l=r.data??[],p=(0,q.useMemo)(()=>l.map(e=>e.name),[l]),h=(0,q.useRef)([]);h.current=p;let v=(0,q.useMemo)(()=>new Set(X(n.data,p)),[n.data,p]),y=(0,q.useRef)(Promise.resolve()),b=(0,q.useRef)(0),S=(0,q.useCallback)(e=>{let n=N.uiState,r=t.getQueryData(n),i=e(X(r,h.current));t.setQueryData(n,{...r,importedSkills:i});let a=++b.current;y.current=y.current.then(async()=>{try{let e=await k({importedSkills:i});a===b.current&&(t.setQueryData(n,e),t.invalidateQueries({queryKey:A.skills}))}catch(e){x(e instanceof Error?e.message:String(e),{tone:`danger`}),a===b.current&&t.invalidateQueries({queryKey:n})}})},[t]),C=(0,q.useCallback)(e=>{S(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[S]),w=p.length>0&&p.every(e=>v.has(e)),T=(0,q.useCallback)(()=>{if(w){let e=new Set(h.current);S(t=>t.filter(t=>!e.has(t)))}else S(e=>[...new Set([...e,...h.current])])},[w,S]);if(r.isError)return(0,J.jsx)(D,{icon:(0,J.jsx)(u,{}),tone:`danger`,heading:`h2`,title:`Could not load importable skills`,subtitle:r.error.message});let O=z(l,a);return(0,J.jsxs)(`div`,{"data-slot":`skills-import-panel`,className:`w-full min-w-0 [&_button]:min-h-11`,children:[(0,J.jsx)(`p`,{className:`mb-4 text-[10px] font-medium tracking-wide text-link-foreground`,children:`OPEN-MERCATO / SKILLS`}),(0,J.jsx)(`h2`,{className:`text-2xl font-medium`,children:`Manage skills`}),(0,J.jsxs)(`p`,{className:`mt-2 text-[13px] leading-relaxed text-muted-foreground`,children:[`Choose which `,(0,J.jsx)(`a`,{href:ce,target:`_blank`,rel:`noreferrer`,children:`open-mercato`}),` skills appear in your catalog and composer picker. All are enabled by default; uncheck any you don’t want.`]}),(0,J.jsx)(`p`,{className:`mt-3 text-xs text-muted-foreground`,children:`Applies across projects · saved automatically`}),(0,J.jsx)(ue,{projectId:e,state:c.data,loadError:c.error}),(0,J.jsx)(`p`,{className:`mt-4 text-xs text-soft-foreground`,children:`Checkboxes control visibility. Updating refreshes installed skill files; it does not change your selection.`}),(0,J.jsxs)(`div`,{className:`sw-import-controls mt-4 flex flex-wrap items-center gap-2`,children:[(0,J.jsxs)(`div`,{className:`sw-search relative min-w-0 flex-1`,children:[(0,J.jsx)(d,{"aria-hidden":`true`,className:`pointer-events-none absolute left-3 top-3.5 size-4 text-muted-foreground`}),(0,J.jsx)(W,{"data-slot":`import-filter`,placeholder:`Filter skills…`,"aria-label":`Filter skills`,value:a,onChange:e=>s(e.target.value),className:`h-11 min-w-0 pl-9 text-xs`})]}),(0,J.jsxs)(`button`,{type:`button`,"data-slot":`import-all`,disabled:p.length===0||n.isPending,onClick:T,className:`h-11 shrink-0 rounded-md border border-border bg-card px-2.5 text-xs font-medium text-muted-foreground transition-colors hover:bg-muted hover:text-foreground disabled:opacity-55`,children:[w?(0,J.jsx)(i,{"aria-hidden":`true`,className:`size-4`}):(0,J.jsx)(o,{"aria-hidden":`true`,className:`size-4`}),w?`Remove all`:`Enable all`]})]}),(0,J.jsx)(`div`,{"data-slot":`import-list`,className:`mt-3 flex flex-col gap-1.5`,children:r.isPending?(0,J.jsx)(`p`,{className:`px-1 py-2 text-[13px] text-soft-foreground`,children:`Loading…`}):O.length>0?O.map(e=>{let t=v.has(e.name);return(0,J.jsxs)(`label`,{"data-slot":`import-row`,"data-skill":e.name,"data-imported":t?`true`:void 0,className:F(`flex min-h-16 cursor-pointer items-start gap-3 rounded-lg border border-border p-4 transition-colors hover:bg-muted`,t&&`bg-background`),children:[(0,J.jsxs)(`span`,{className:`relative size-5 shrink-0`,children:[(0,J.jsx)(`input`,{type:`checkbox`,"data-slot":`import-toggle`,checked:t,onChange:()=>C(e.name),className:`peer absolute inset-0 m-0 size-5 opacity-0`}),t?(0,J.jsx)(g,{"aria-hidden":`true`,className:`pointer-events-none size-5 text-link-foreground peer-focus-visible:outline-2 peer-focus-visible:outline-ring`}):(0,J.jsx)(_,{"aria-hidden":`true`,className:`pointer-events-none size-5 text-link-foreground peer-focus-visible:outline-2 peer-focus-visible:outline-ring`})]}),(0,J.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,J.jsx)(`span`,{className:`flex min-w-0 items-center gap-2`,children:(0,J.jsx)(`span`,{className:`min-w-0 break-words text-[13px] font-medium text-foreground`,children:e.name})}),e.description?(0,J.jsx)(`span`,{className:`mt-2 block text-xs leading-relaxed text-soft-foreground`,children:e.description}):null]})]},e.name)}):(0,J.jsx)(`p`,{className:`px-1 py-2 text-xs text-soft-foreground`,children:l.length>0?`(no skills match)`:`(no skills available — the repo may still be cloning)`})})]})}function Z(e){return e===`project`?`Project installation`:`Global installation`}function ue({projectId:e,state:t,loadError:n}){let r=f(),i=oe(),o=(0,q.useRef)(0),[s,c]=(0,q.useState)(!1),u=a({mutationFn:()=>O({task:`Apply the upgrade notes after updating the installed Open Mercato skills.`,steps:[{id:`apply-upgrade-notes`,name:`Apply upgrade notes`,skill:`om-apply-upgrade-notes`,prompt:`{{task}}`}]}),onSuccess:e=>{c(!1),i(ae(e))},onError:e=>x(e.message,{tone:`danger`})}),d=(t,n)=>{n.seq===o.current&&(r.setQueryData(N.skillsUpdate(e),t),n.action===`apply`&&t.updatedAt&&t.updatedAt!==n.previousUpdatedAt&&(r.invalidateQueries({queryKey:A.skills}),x(t.status===`error`?`Some skill updates failed.`:`Open Mercato skills updated.`),c(!0)))},p=(e,t)=>{t.seq===o.current&&x(e.message,{tone:`danger`})},m=a({mutationFn:t=>C(e).then(e=>({result:e,request:t})),onSuccess:({result:e,request:t})=>d(e,t),onError:(e,t)=>p(e,t)}),h=a({mutationFn:t=>j(e).then(e=>({result:e,request:t})),onSuccess:({result:e,request:t})=>d(e,t),onError:(e,t)=>p(e,t)}),g=e=>{let n=++o.current;e===`apply`?h.mutate({action:e,seq:n,previousUpdatedAt:t?.updatedAt??null}):m.mutate({action:e,seq:n})},_=t?.scopes.some(e=>e.skills.length>0)??!1,v=t?.status===`error`,b=_&&(t?.available||v),S=h.isPending||t?.status===`updating`,T=t?.scopes.filter(e=>e.status===`error`||e.status===`unavailable`)??[],E=t?.scopes.filter(e=>e.updatedAt&&!T.includes(e))??[],D=`Checking installed Open Mercato skills…`;return n?D=`Update status is unavailable right now.`:t?.status===`available`?D=`An update is available for your installed Open Mercato skills.`:t?.status===`updating`?D=`Updating installed Open Mercato skills…`:t?.status===`current`?D=`Installed Open Mercato skills are up to date.`:t?.status===`unavailable`?D=t.scopes.find(e=>e.reason)?.reason??`Automatic updates are unavailable.`:t?.status===`error`&&(D=`The update did not finish for every installation.`),(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`section`,{"data-slot":`skills-update-card`,"aria-live":`polite`,className:`mt-4 rounded-lg border border-border bg-background p-4`,children:[(0,J.jsxs)(`div`,{className:`flex flex-col items-start gap-3`,children:[(0,J.jsxs)(`div`,{className:`min-w-0`,children:[(0,J.jsx)(`p`,{className:`text-[13px] font-medium text-foreground`,children:D}),(0,J.jsx)(`p`,{className:`mt-4 text-xs text-soft-foreground`,children:`Project and global installations are checked separately.`}),t?.checkedAt?(0,J.jsxs)(`p`,{className:`mt-1 text-xs text-soft-foreground`,children:[`Last checked `,new Date(t.checkedAt).toLocaleString(),`.`]}):null,t?.scopes.some(e=>e.skills.length>0)?(0,J.jsx)(`ul`,{className:`mt-1 text-xs text-soft-foreground`,children:t.scopes.filter(e=>e.skills.length>0).map(e=>(0,J.jsxs)(`li`,{children:[Z(e.scope),` · `,e.skills.length,` tracked`]},e.scope))}):null,T.length>0?(0,J.jsxs)(`p`,{className:`mt-1 text-xs text-destructive`,children:[`Failed: `,T.map(e=>Z(e.scope)).join(`, `),E.length?`; updated: ${E.map(e=>Z(e.scope)).join(`, `)}`:``,`.`]}):null]}),b?(0,J.jsxs)(w,{"data-action":`skills-update-apply`,size:`sm`,disabled:S,onClick:()=>g(`apply`),children:[(0,J.jsx)(l,{"aria-hidden":`true`,className:F(`size-3.5`,S&&`motion-safe:animate-spin`)}),S?`Updating…`:v?`Retry`:`Update now`]}):t?.status===`current`?(0,J.jsxs)(w,{"data-action":`skills-update-check`,variant:`outline`,size:`sm`,disabled:m.isPending,onClick:()=>g(`check`),children:[(0,J.jsx)(l,{"aria-hidden":`true`,className:`size-4`}),`Check again`]}):t?.status===`unavailable`||n?(0,J.jsx)(w,{"data-action":`skills-update-check`,variant:`outline`,size:`sm`,disabled:m.isPending,onClick:()=>g(`check`),children:`Retry check`}):null]}),t?.status===`unavailable`||n?(0,J.jsxs)(`div`,{className:`mt-2 text-xs text-soft-foreground`,children:[`Manual examples: `,(0,J.jsx)(`code`,{children:`npx skills update -p`}),` · `,(0,J.jsx)(`code`,{children:`npx skills update -g`}),`. These broad commands may update other tracked sources.`]}):null,t?.needsUpgradeNotes?(0,J.jsxs)(`div`,{"data-slot":`skills-upgrade-notes`,className:`mt-3 flex gap-2 rounded-md border border-accent-strong/30 bg-background p-2.5 text-xs text-foreground`,children:[(0,J.jsx)(y,{"aria-hidden":`true`,className:`mt-0.5 size-3.5 shrink-0 text-link-foreground`}),(0,J.jsxs)(`span`,{children:[`Skill files were updated. Run `,(0,J.jsx)(`code`,{children:`/om-apply-upgrade-notes`}),` in each configured repository to apply descriptor migrations while preserving local edits.`]})]}):null]}),(0,J.jsx)(te,{open:s,onOpenChange:e=>u.isPending?void 0:c(e),children:(0,J.jsxs)(re,{"data-slot":`skills-upgrade-notes-dialog`,showCloseButton:!1,children:[(0,J.jsxs)(ne,{children:[(0,J.jsx)(ie,{children:`Apply the upgrade notes now?`}),(0,J.jsxs)(ee,{children:[`The skill files were updated successfully. Start a new session with`,` `,(0,J.jsx)(`code`,{children:`/om-apply-upgrade-notes`}),` to sync repository descriptors while preserving local edits?`]})]}),(0,J.jsxs)(I,{children:[(0,J.jsx)(w,{type:`button`,variant:`outline`,disabled:u.isPending,onClick:()=>c(!1),children:`No`}),(0,J.jsx)(w,{type:`button`,disabled:u.isPending,onClick:()=>u.mutate(),children:u.isPending?`Starting…`:`Yes, start session`})]})]})})]})}var Q=`__bm`,$=`__import`;function de(){return(0,J.jsx)(`div`,{"data-route":`skills`,className:`mx-auto min-h-full w-full px-[18px] py-6 md:p-9`,children:(0,J.jsx)(fe,{})})}function fe(){let e=T(),t=b(),n=m(),[i]=p(),[o,g]=(0,q.useState)(``),_=f(),y=c(),C=r().projectId??y.data?.bootProject??``,w=a({mutationFn:()=>v(),onSuccess:e=>{_.setQueryData(A.skills,e),x(`Team skills refreshed.`)},onError:e=>x(e.message,{tone:`danger`})});if(e.isError)return(0,J.jsx)(D,{icon:(0,J.jsx)(u,{}),tone:`danger`,heading:`h2`,title:`Could not load skills`,subtitle:e.error.message});let E=V(e.data??[]),O=(n.data?.length??0)>0,k=i.get(`skill`),j=k===Q||k===$||k!==null&&E.some(e=>e.name===k)?k:E[0]?.name??(O?$:Q),N=E.find(e=>e.name===j)??null,P=B(E,o);return(0,J.jsxs)(`div`,{"data-slot":`skills-section`,className:`@container flex min-w-0 flex-col gap-[22px]`,children:[(0,J.jsxs)(`header`,{className:`flex flex-col gap-4 @min-[700px]:flex-row @min-[700px]:items-center @min-[700px]:justify-between`,children:[(0,J.jsxs)(`div`,{children:[(0,J.jsx)(`h1`,{className:`text-[25px] font-semibold md:text-[30px]`,children:`Skills`}),(0,J.jsx)(`p`,{className:`mt-2 text-xs text-muted-foreground md:text-[13px]`,children:`Markdown playbooks your agents can follow.`})]}),(0,J.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[O?(0,J.jsxs)(L,{to:`/skills?skill=${$}`,"data-slot":`import-skills-row`,"aria-current":j===$?`page`:void 0,className:`inline-flex min-h-11 items-center gap-2 rounded-lg border border-border bg-card px-3 text-xs font-medium aria-[current=page]:bg-accent-strong/10 hover:bg-muted focus-visible:outline-2 focus-visible:outline-ring`,children:[(0,J.jsx)(S,{"aria-hidden":`true`,className:`size-4 text-link-foreground`}),`Manage skills`]}):null,(0,J.jsxs)(L,{to:`/skills?skill=${Q}`,"data-slot":`bookmarklets-row`,"aria-current":j===Q?`page`:void 0,className:`inline-flex min-h-11 items-center gap-2 rounded-lg border border-border bg-card px-3 text-xs font-medium aria-[current=page]:bg-accent-strong/10 hover:bg-muted focus-visible:outline-2 focus-visible:outline-ring`,children:[(0,J.jsx)(M,{"aria-hidden":`true`,className:`size-4 text-link-foreground`}),`Run from GitHub`]})]})]}),(0,J.jsxs)(`div`,{className:F(`flex-col items-start gap-2 sm:flex-row sm:items-center md:flex`,k===null?`flex`:`hidden`),children:[(0,J.jsxs)(`div`,{className:`sw-search relative w-full min-w-0 flex-1`,children:[(0,J.jsx)(d,{"aria-hidden":`true`,className:`pointer-events-none absolute left-3 top-3.5 size-4 text-muted-foreground`}),(0,J.jsx)(W,{"data-slot":`skills-filter`,placeholder:`Filter skills…`,"aria-label":`Filter skills`,value:o,onChange:e=>g(e.target.value),className:`h-11 min-w-0 bg-card pl-9 text-xs`})]}),(0,J.jsxs)(`button`,{type:`button`,"data-slot":`skills-refresh`,title:`git fetch the team skills repos`,disabled:w.isPending,onClick:()=>w.mutate(),className:`flex h-11 shrink-0 items-center gap-1.5 rounded-md border border-border bg-card px-2.5 text-xs font-medium text-muted-foreground transition-colors hover:bg-muted hover:text-foreground disabled:opacity-55`,children:[(0,J.jsx)(l,{"aria-hidden":`true`,className:F(`size-3`,w.isPending&&`motion-safe:animate-spin`)}),`Refresh`]})]}),(0,J.jsxs)(`div`,{className:`grid min-w-0 items-start gap-[22px] md:grid-cols-[minmax(220px,310px)_minmax(0,1fr)]`,children:[(0,J.jsx)(`section`,{"data-slot":`skills-list`,className:F(`min-w-0 flex-col rounded-xl border border-border bg-card p-3 md:flex`,k===null?`flex`:`hidden`),children:(0,J.jsx)(`ul`,{"data-slot":`skill-rows`,className:`flex min-h-0 flex-col gap-1 overflow-y-auto md:max-h-[calc(100dvh-280px)]`,children:e.isPending?(0,J.jsx)(`li`,{role:`status`,"aria-busy":`true`,className:`min-h-72 p-3 text-[13px] text-soft-foreground`,children:`Loading skills…`}):P.length>0?P.map(e=>(0,J.jsx)(pe,{skill:e,active:j===e.name,highlighted:j===$&&e===E[0]},e.path)):(0,J.jsx)(`li`,{className:`px-2.5 py-2 text-xs leading-relaxed text-soft-foreground`,children:E.length>0?`(no skills match)`:(0,J.jsx)(se,{})})})}),(0,J.jsx)(`section`,{"data-slot":`skills-detail`,className:F(`min-w-0 flex-col rounded-xl border border-border bg-card md:flex`,k===null?`hidden`:`flex`),children:(0,J.jsxs)(`div`,{className:`min-w-0 p-5`,children:[(0,J.jsxs)(L,{to:`/skills`,"data-slot":`skills-back`,className:`mb-4 inline-flex min-h-11 items-center gap-2 rounded-lg border border-border px-3 text-xs font-medium hover:bg-muted md:hidden`,children:[(0,J.jsx)(h,{"aria-hidden":`true`,className:`size-3.5`}),`Back to skills`]}),j===$?(0,J.jsx)(le,{projectId:C}):j===Q?(0,J.jsx)(K,{skills:E}):N?(0,J.jsx)(G,{skill:N,usedBy:H(t.data?.workflows??[],N.name)}):e.isPending?(0,J.jsx)(`div`,{role:`status`,"aria-busy":`true`,className:`min-h-72 text-xs text-muted-foreground`,children:`Loading skill…`}):(0,J.jsx)(D,{icon:(0,J.jsx)(s,{}),tone:`neutral`,heading:`h2`,title:`No skill selected`,subtitle:`Pick a skill from the catalog.`})]})})]})]})}function pe({skill:e,active:t,highlighted:n}){let r=R(e);return(0,J.jsx)(`li`,{children:(0,J.jsxs)(L,{to:`/skills?skill=${encodeURIComponent(e.name)}`,"data-slot":`skill-row`,"data-skill":e.name,"data-highlighted":n||void 0,"data-project":r?`true`:void 0,"aria-current":t?`page`:void 0,className:F(`selection-row flex min-h-24 flex-col gap-2 rounded-lg border-b border-border p-3 transition-colors hover:bg-muted focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-link-foreground`,(t||n)&&`border-transparent bg-accent-strong/10`),children:[(0,J.jsx)(`span`,{className:`flex min-w-0 items-center gap-2`,children:(0,J.jsx)(`span`,{className:F(`min-w-0 break-words text-[13px]`,r?`font-semibold text-foreground`:`font-normal text-muted-foreground`),children:e.name})}),e.description?(0,J.jsx)(`span`,{className:`line-clamp-2 text-xs leading-relaxed text-supporting-foreground`,children:e.description}):null,(0,J.jsx)(U,{source:e.source,className:`self-start border-0 bg-transparent p-0 text-link-foreground`})]})})}export{de as SkillsRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{i as t,t as n}from"./react-runtime-CCIEwYL0.js";import{Ca as r,Cn as i,Fi as a,Gr as o,Li as s,Oa as c,Qi as l,Qn as u,Ui as d,Zn as f,aa as p,ct as m,d as h,ei as g,gt as _,hi as v,ki as y,l as b,li as x,qn as S,rn as C,xa as w}from"./alert-dialog-Bv9zV9w1.js";import{a as T,i as E,n as D,o as O,r as k,s as A,t as j}from"./textarea-DAHMUyAp.js";import{p as M,u as ee}from"./pill-C7gWe96Z.js";import{i as te,n as N,r as P}from"./git-toolbar-Dntzprrr.js";import{t as F}from"./run-header-BlqnTQeP.js";import{t as I}from"./use-submit-shortcut-KWJsC906.js";import{n as L,r as R}from"./index-BpI26cbM.js";import{t as z}from"./diff-C4aSZfrQ2.js";import{t as B}from"./use-desktop-BaYgO7YW.js";var V=e(t(),1),H=e=>e===`running`||e===`queued`||e===`waiting`,U=`no worktree — this task ran directly in the repo working tree`;function W(e){let t=e=>({id:`commit`,label:`Commit`,enabled:!1,reason:e});return e.hasWorktree?e.status===`running`?t(`Commit unavailable — the agent is still working in this worktree`):e.changedFiles===void 0?t(`Commit unavailable — changes are still loading`):e.changedFiles===0?t(`Commit unavailable — no changes to commit`):{id:`commit`,label:`Commit`,enabled:!0}:t(`Commit unavailable — ${U}`)}function G(e){let t=e=>({id:`push`,label:`Push`,enabled:!1,reason:e});return e.hasWorktree?e.remote===void 0?t(`Push unavailable — no remote configured`):e.branch===void 0?t(`Push unavailable — the run has no branch to push`):e.status===`running`?t(`Push unavailable — the agent is still working in this worktree`):{id:`push`,label:`Push`,enabled:!0}:t(`Push unavailable — ${U}`)}function K(e){let t=e=>({id:`create-pr`,label:`Create PR`,enabled:!1,reason:e});return!e.hasWorktree||e.branch===void 0?t(`Create PR unavailable — ${U}`):e.forge===null?t(`Create PR unavailable — no supported forge remote (GitHub) detected`):e.forge.available?H(e.status)?t(`Create PR unavailable — the run is still active; wait for the review gate`):{id:`create-pr`,label:`Create PR`,enabled:!0}:t(`Create PR unavailable — ${e.forge.reason??`the forge is unreachable`}`)}function q(e){let t=e.prUrl?{id:`view-pr`,label:`View PR`,enabled:!0,href:e.prUrl}:W(e),n=e.prUrl?[W(e),G(e)]:[G(e),K(e)],r=[];if(e.localHandoff){let t=e.hasSession?H(e.status)?{id:`open-terminal`,label:`Open in terminal`,enabled:!1,reason:`Terminal unavailable — the session is still active in the engine`}:{id:`open-terminal`,label:`Open in terminal`,enabled:!0}:{id:`open-terminal`,label:`Open in terminal`,enabled:!1,reason:`Terminal unavailable — no agent session to resume`};r.push(t)}return{primary:t,secondary:n,menu:r}}var J=n();function Y({run:e,open:t,onOpenChange:n}){let i=c(),[a,s]=(0,V.useState)(``),l=o(e),u=(0,V.useRef)(l);u.current=l,(0,V.useEffect)(()=>{t&&s(u.current)},[t]);let d=r({mutationFn:t=>x(e.id,t),onSuccess:t=>{p(`Committed ${t.sha.slice(0,7)}`),n(!1),i.invalidateQueries({queryKey:C.runs.changes(e.id)}),i.invalidateQueries({queryKey:C.runs.all})},onError:e=>p(e.message,{tone:`danger`})}),f=()=>{let e=a.trim();e.length===0||d.isPending||d.mutate(e)};return(0,J.jsx)(D,{open:t,onOpenChange:n,children:(0,J.jsxs)(k,{"data-slot":`commit-dialog`,children:[(0,J.jsxs)(O,{children:[(0,J.jsx)(A,{children:`Commit changes`}),(0,J.jsxs)(E,{children:[`Stages everything in the task's worktree (git add -A) and commits to`,` `,e.branch?(0,J.jsx)(`span`,{className:`font-mono`,children:e.branch}):`its branch`,`.`]})]}),(0,J.jsx)(j,{"data-slot":`commit-message`,"aria-label":`Commit message`,rows:3,value:a,onChange:e=>s(e.target.value),onKeyDown:e=>{I({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(),f())}}),(0,J.jsxs)(T,{children:[(0,J.jsx)(h,{variant:`outline`,onClick:()=>n(!1),children:`Cancel`}),(0,J.jsx)(h,{"data-slot":`commit-confirm`,disabled:a.trim().length===0||d.isPending,onClick:f,children:d.isPending?`Committing…`:`Commit`})]})]})})}function X(){let{id:e}=w(),t=f(e);return t.isPending?(0,J.jsx)(R,{tab:`changes`}):t.isError?(0,J.jsx)(L,{tab:`changes`,error:t.error}):(0,J.jsx)(Z,{run:t.data})}function Z({run:e}){let t=i(),n=S(),o=u(e.id,ee(e.status)),f=B(),[h,y]=(0,V.useState)(`unified`),[x,w]=(0,V.useState)(!1),[T,E]=(0,V.useState)(null),[D,O]=(0,V.useState)(!1),k=(0,V.useRef)(null),A=c(),j=()=>A.invalidateQueries({queryKey:C.runs.all}),I=e=>p(e.message,{tone:`danger`}),L=r({mutationFn:()=>d(e.id),onSuccess:e=>p(e.upstreamSet?`Pushed ${e.branch} to ${e.remote} (upstream set)`:`Pushed ${e.branch} to ${e.remote}`),onError:I}),R=r({mutationFn:()=>v(e.id),onSuccess:e=>{p(`Draft PR created — ${e.url}`),j()},onError:I}),H=r({mutationFn:()=>s(e.id),onError:e=>{if(e instanceof g&&e.command){navigator.clipboard.writeText(e.command).then(()=>p(`No terminal found — command copied to clipboard.`)).catch(()=>p(`Run manually: ${e.command}`));return}I(e)}}),U=r({mutationFn:t=>a(e.id,t),onError:I}),W=o.isError&&o.error instanceof g&&o.error.status===409,G=q({status:e.status,hasWorktree:!!e.worktreePath&&!W,branch:e.branch,changedFiles:o.data?.stat.files,remote:n.data?.info?.remote,forge:t.data?.forge??null,localHandoff:t.data?.capabilities.localHandoff??!1,hasSession:M(e)!==void 0,prUrl:e.pullRequestUrl}),K=e=>{switch(e){case`commit`:O(!0);break;case`push`:L.mutate();break;case`create-pr`:R.mutate();break;case`open-terminal`:H.mutate();break;case`view-pr`:break}},X=o.data?.files??[],Z=(0,V.useMemo)(()=>P(X),[X]),Q=f?h:`unified`,$=!f||x;return(0,J.jsxs)(`div`,{"data-route":`task-changes`,className:`flex min-h-full flex-col`,children:[(0,J.jsx)(F,{run:e,tab:`changes`}),(0,J.jsx)(N,{bar:G,branch:e.branch,stat:o.data?.stat,mode:Q,wrap:$,onModeChange:y,onWrapChange:w,onAction:K}),o.data?.repointedHead?(0,J.jsxs)(`p`,{"data-slot":`repointed-head-note`,className:`border-b px-4 py-2 text-xs text-soft-foreground md:px-9`,children:[`HEAD is on `,(0,J.jsx)(`code`,{children:o.data.repointedHead.headBranch}),`, not this task's branch`,` `,(0,J.jsx)(`code`,{children:o.data.repointedHead.taskBranch}),` — showing only what this task changed there.`]}):null,o.isPending?(0,J.jsx)(`p`,{"data-slot":`changes-loading`,className:`px-4 py-6 text-center text-xs text-soft-foreground md:px-9`,children:`Loading changes…`}):o.isError?(0,J.jsx)(b,{icon:W?(0,J.jsx)(m,{size:16}):(0,J.jsx)(_,{size:16}),tone:W?`neutral`:`danger`,heading:`h2`,title:W?`No changes to show`:`Could not load the changes`,subtitle:o.error.message}):X.length===0?(0,J.jsx)(b,{icon:(0,J.jsx)(m,{size:16}),tone:`neutral`,heading:`h2`,title:`No changes yet`,subtitle:`The worktree matches its base branch. Changes appear here as the agent works.`}):(0,J.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col items-stretch gap-5 md:flex-row md:items-start px-[18px] pb-9 pt-0 [--diff-sticky-top:0px] md:[--diff-sticky-top:1rem] md:px-9`,children:[(0,J.jsxs)(`aside`,{"data-slot":`changes-tree-pane`,className:`md:sticky md:top-4 max-h-[calc(100dvh_-_64px_-_var(--diff-sticky-top)_-_1rem)] w-full md:w-60 shrink-0 overflow-y-auto overscroll-contain rounded-xl border border-border bg-card p-3.5 md:block lg:w-[250px]`,children:[(0,J.jsx)(`h2`,{className:`mb-3 border-b border-border pb-3 text-xs font-semibold`,children:`Changed files`}),(0,J.jsx)(te,{root:Z,selected:T,onSelect:e=>{E(e),k.current?.scrollToPath(e)}})]}),(0,J.jsx)(z,{files:X,viewRef:k,mode:Q,wrap:$,loadFileText:t=>ne(e.id,t),imageSrc:t=>l(e.id,t),onOpenInApp:t.data?.capabilities.localHandoff?e=>U.mutate(e):void 0,className:`min-w-0 flex-1`})]}),(0,J.jsx)(Y,{run:e,open:D,onOpenChange:O})]})}async function ne(e,t){try{let n=await y(e,t);return n.type!==`file`||n.binary||n.tooLarge?null:n.content??null}catch{return null}}export{X as TaskChangesRoute};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{i as t,t as n}from"./react-runtime-CCIEwYL0.js";import{$t as r,Aa as i,Ai as a,Ca as o,Dn as s,Et as c,H as l,J as u,Jr as d,Kn as f,Kt as p,Ln as m,Lt as h,Ma as g,Na as _,Nn as v,Nr as y,Nt as b,Oa as x,Pr as S,Ta as C,X as w,Y as T,Zn as E,aa as D,ai as O,bt as k,d as A,di as j,dn as M,ei as N,fa as P,hi as F,hn as ee,it as te,ji as I,jn as L,l as ne,mt as re,oi as R,or as ie,q as z,qt as B,rn as V,rt as ae,sr as oe,u as se,ua as H,ur as ce,wa as le,xa as ue,ya as de}from"./alert-dialog-Bv9zV9w1.js";import{C as fe,S as pe,T as me,c as he,i as ge,n as _e,s as ve,t as U,w as ye,x as be,y as xe}from"./utils-CG8vWc5K.js";import{n as W,r as G,t as Se}from"./collapsible-D7QXWXZq.js";import{n as Ce,s as we,t as Te}from"./agent-accounts-BP0XBzQP.js";import{t as Ee}from"./textarea-DAHMUyAp.js";import{t as K}from"./createLucideIcon-BHp8sXmF.js";import{A as De,E as Oe,O as ke,b as Ae,d as je,g as Me,l as Ne,m as Pe,s as Fe,u as Ie}from"./pill-C7gWe96Z.js";import{t as Le}from"./external-link-BE6y205O.js";import{I as Re,S as ze,_ as Be,b as Ve,c as He,g as Ue,l as We,v as Ge,x as Ke}from"./prompt-templates-B4eJ8kQZ.js";import{i as qe,n as Je,r as Ye,t as Xe}from"./run-header-BlqnTQeP.js";import{s as Ze,t as q,u as Qe}from"./project-router-a1gx3dfP.js";import{t as $e}from"./message-square-B-MD-8rD.js";import{t as et}from"./search-x-I9Q8pgUa.js";import{t as tt}from"./square-terminal-B6RYYieR.js";import{t as nt}from"./markdown-BssEOroY.js";import{c as rt,i as it,l as at,n as ot,o as st,s as ct,t as lt}from"./thread-loading-OtvWGq9Y.js";import{t as ut}from"./use-submit-shortcut-KWJsC906.js";import{t as dt}from"./lib-BQXq3kEf.js";import{t as ft}from"./zoomable-image-BXioMWqb.js";import{t as pt}from"./run-diff-CHDwMBEQ.js";var mt=120;function ht(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function gt(e){let t=e.replace(/\s+/g,` `).trim();return t.length>mt?`${t.slice(0,mt-1)}…`:t}function J(e,...t){if(ht(e))for(let n of t){let t=e[n];if(typeof t==`string`&&t.trim()!==``)return gt(t)}}function _t(e){if(!ht(e))return;let t=e.command;if(typeof t==`string`&&t.trim()!==``)return gt(t);if(Array.isArray(t)){let e=t.filter(e=>typeof e==`string`);if(e.length>0)return gt(e.join(` `))}}function vt(e){if(!ht(e)||!Array.isArray(e.changes))return[];let t=[];for(let n of e.changes)ht(n)&&typeof n.path==`string`&&n.path.trim()!==``&&t.push(n.path);return t}function yt(e){return J(e,`description`,`query`,`url`,`filePath`,`file_path`,`path`,`pattern`,`name`)}function Y(e,t){return t?`${e} ${t}`:e}function bt(e,t){let n=typeof e==`string`?e.toLowerCase():``;switch(n){case`bash`:case`commandexecution`:return{toolKind:`execute`,title:Y(`Ran`,_t(t)),subtitle:J(t,`description`)};case`edit`:case`multiedit`:return{toolKind:`edit`,title:Y(`Edit`,J(t,`file_path`,`filePath`,`path`))};case`write`:return{toolKind:`edit`,title:Y(`Write`,J(t,`file_path`,`filePath`,`path`))};case`notebookedit`:return{toolKind:`edit`,title:Y(`Edit`,J(t,`notebook_path`,`notebookPath`,`file_path`,`filePath`,`path`))};case`filechange`:{let e=vt(t);return{toolKind:`edit`,title:Y(`Edit`,e.length===1?e[0]:e.length>1?`${e.length} files`:void 0)}}case`read`:return{toolKind:`read`,title:Y(`Read`,J(t,`file_path`,`filePath`,`path`))};case`imageview`:return{toolKind:`read`,title:Y(`View image`,J(t,`path`))};case`glob`:case`grep`:return{toolKind:`search`,title:Y(`Search`,J(t,`pattern`,`query`)),subtitle:J(t,`path`)};case`webfetch`:return{toolKind:`fetch`,title:Y(`Fetch`,J(t,`url`))};case`websearch`:return{toolKind:`fetch`,title:Y(`Web search`,J(t,`query`))};case`task`:case`agent`:{let e=n===`agent`?`Agent`:`Task`,r=J(t,`subagent_type`,`subagentType`),i=J(t,`description`,`prompt`)??r;return{toolKind:`task`,title:i?`${e}: ${i}`:e,subtitle:i===r?void 0:r}}case`skill`:{let e=J(t,`skill`,`name`,`command`);return{toolKind:`task`,title:e?`Skill: ${e}`:`Skill`,subtitle:J(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=J(t,`server`),n=J(t,`tool`);return e&&n?{toolKind:`other`,title:`${e}.${n}`}:{toolKind:`other`,title:`MCP tool`,subtitle:yt(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()!==``?gt(e):`Tool`,subtitle:yt(t)}}var xt=class extends i{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`,u=i&&c===`forward`,d=o&&c===`backward`,f=i&&c===`backward`;return{...r,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:g(t,n.data),hasPreviousPage:_(t,n.data),isFetchNextPageError:l,isFetchingNextPage:u,isFetchPreviousPageError:d,isFetchingPreviousPage:f,isRefetchError:s&&!l&&!d,isRefetching:a&&!u&&!f}}};function St(e,t){return C(e,xt,t)}var Ct=K(`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`}]]),wt=K(`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`}]]),Tt=K(`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`}]]),Et=K(`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`}]]),Dt=K(`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`}]]),X=e(t(),1),Ot=[`run-event`,`ui-event`];function kt(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 At(e,t={}){let[n,r]=(0,X.useState)([]),{cursor:i,afterSeq:a=0,maxEvents:o,compactAt:s,onCompact:c}=t;return(0,X.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=kt(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(ge(`/runs/${encodeURIComponent(e)}/events${o}`),{withCredentials:!0});for(let e of Ot)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 jt=5,Mt=200,Nt=5e3;function Pt(...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 Ft(e){let t=ve(),n=x(),r=[`run-history`,t,e],i=[`run-history-context`,t,e],o=St({queryKey:r,enabled:e!==void 0,initialPageParam:void 0,queryFn:({pageParam:t,signal:n})=>a(e,t,{signal:n}),getPreviousPageParam:e=>e.olderCursor,getNextPageParam:e=>e.newerCursor,maxPages:jt,retry:1}),s=le({queryKey:i,enabled:e!==void 0,queryFn:({signal:t})=>I(e,{signal:t}),retry:1}),c=o.isError||s.isError,l=At(c?e:void 0),u=o.data?.pages??[],d=u.reduce((e,t)=>t.newerCursor===void 0?t:e??t,void 0),f=(0,X.useRef)(!1),p=(0,X.useCallback)(()=>{e===void 0||f.current||(f.current=!0,a(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>jt;)t.shift(),n.shift();return{pages:t,pageParams:n}})}).catch(()=>{}).finally(()=>{f.current=!1}))},[n,e,t]),m=At(!c&&d?e:void 0,{cursor:d?.liveCursor,afterSeq:d?.asOfSeq,maxEvents:Nt,compactAt:Mt,onCompact:p}),h=(0,X.useMemo)(()=>Pt(...u.map(e=>e.events)),[u]),g=(0,X.useMemo)(()=>c?l:Pt(h,m),[c,l,h,m]),_=(0,X.useMemo)(()=>{if(c)return l;let e=s.data?.contextEvents??[],t=s.data?.asOfSeq??0;return Pt(e,g.filter(({seq:e})=>e>t))},[s.data,c,l,g]),v=(0,X.useCallback)(async()=>{await o.fetchPreviousPage()},[o.fetchPreviousPage]),y=(0,X.useCallback)(async()=>{c||await n.resetQueries({queryKey:r,exact:!0})},[c,r,n]);return{visibleEvents:g,currentEvents:_,isPending:!c&&o.isPending,contextPending:!c&&s.isPending,fallback:c,hasOlder:!c&&!!o.hasPreviousPage,isFetchingOlder:o.isFetchingPreviousPage,olderError:o.isFetchPreviousPageError?o.error instanceof Error?o.error.message:`Could not load earlier items`:void 0,loadOlder:v,jumpToLatest:y,retainedPages:u.length}}var Z=n();function It({run:e}){let t=x(),n=o({mutationFn:()=>O(e.id),onSuccess:()=>{t.invalidateQueries({queryKey:V.runs.detail(e.id)}),t.invalidateQueries({queryKey:V.runs.list()}),D(`This task will not resume itself`)},onError:e=>D(e.message,{tone:`danger`})});if(e.status!==`failed`||!e.autoResumeAt)return null;let r=new Date(e.autoResumeAt);if(!Number.isFinite(r.getTime()))return null;let i=new Intl.DateTimeFormat(void 0,{dateStyle:`medium`,timeStyle:`long`}).format(r);return(0,Z.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,Z.jsx)(ke,{tone:`pending`,pulse:!0}),(0,Z.jsxs)(`span`,{children:[`Usage limit reached — this task resumes automatically at`,` `,(0,Z.jsx)(`time`,{dateTime:e.autoResumeAt,className:`font-medium text-foreground`,children:i})]}),(0,Z.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,Z.jsx)(P,{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 Lt=e=>e.kind===`tool`,Rt=e=>(e.toolKind===`read`||e.toolKind===`search`)&&e.status===`completed`,zt=(e,t,n)=>`${e} ${e===1?t:n}`;function Bt(e,t){let n=[];return e>0&&n.push(zt(e,`file`,`files`)),t>0&&n.push(zt(t,`search`,`searches`)),`Explored ${n.join(` · `)}`}function Vt(e){return`${e} earlier tool call${e===1?``:`s`}`}var Ht=[`Web search`,`Ran`,`Edit`,`Write`,`Read`,`Search`,`Fetch`,`Task:`];function Ut(e){for(let t of Ht)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 Wt(e){let t=e.filter(e=>!(e.kind===`tool`&&e.toolKind===`plan`)&&!(e.kind===`reasoning`&&e.text.trim()===``)),n=new Set(t.filter(Lt).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:Bt(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=[]};for(let e of i)Lt(e)&&Rt(e)&&!r.has(e.id)?o.push(e):(s(),Lt(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();let c=e=>e.kind===`context-group`||e.kind===`tool-card`&&e.item.status===`completed`,l=e=>e.kind===`context-group`?e.tools.length:1,u=[],d=[],f=()=>{if(d.length>3){let e=d.slice(0,d.length-3);u.push({kind:`streak`,id:`streak:${e[0].id}`,count:e.reduce((e,t)=>e+l(t),0),blocks:e}),u.push(...d.slice(d.length-3))}else u.push(...d);d=[]};for(let e of a)c(e)?d.push(e):(f(),u.push(e));return f(),u}var Gt=new Map,Kt=(0,X.createContext)(null);function qt(){return(0,X.useContext)(Kt)}function Jt({runId:e,children:t}){let n=(0,X.useMemo)(()=>({get:t=>Gt.get(e)?.get(t),set:(t,n)=>{let r=Gt.get(e)??new Map;r.set(t,n),Gt.set(e,r)}}),[e]);return(0,Z.jsx)(Kt.Provider,{value:n,children:t})}function Yt(e){return e.scrollTop<Math.max(600,e.clientHeight)}function Xt(e,t){let n=t.find(({bottom:t})=>t>e);return n===void 0?void 0:{key:n.key,offset:n.top-e}}function Zt(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 Qt(e,t=24){return e.scrollHeight-e.scrollTop-e.clientHeight<t}function $t(e,t){let n=new URLSearchParams(e).get(`thread`);return n===`flat`||n===`virtual`?n:t>300?`virtual`:`flat`}var en=new Map;function tn(e,t){en.set(e,t)}function nn(e){return en.get(e)}var rn=new Map;function an(e,t){rn.set(e,t)}function on(e,t){let n=rn.get(e);return n!==void 0&&n.rows===t?n.cache:void 0}var sn={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-md:text-[13px]`}};function cn({role:e,children:t,className:n,...r}){let i=sn[e];return(0,Z.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,Z.jsxs)(`p`,{className:U(`m-0 flex items-center gap-2 text-[11px] leading-none font-semibold tracking-[0.6px] uppercase`,i.accent),children:[(0,Z.jsx)($e,{"aria-hidden":`true`,className:`size-4 shrink-0`}),i.label]}),(0,Z.jsx)(`div`,{className:U(`min-w-0 break-words text-[14px] leading-[1.6] text-foreground select-text [overflow-wrap:anywhere]`,i.body),children:t})]})}function ln({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,X.useState)(!1),[u,d]=(0,X.useState)(e),[f,p]=(0,X.useState)(!1),[m,h]=(0,X.useState)(),g=()=>{d(e),h(void 0),l(!0)},_=async()=>{let t=u.trim();if(!t||t===e){l(!1);return}p(!0),h(void 0);try{await r?.(t),l(!1)}catch(e){h(e instanceof Error?e.message:`Could not save the message`)}finally{p(!1)}},v=async()=>{p(!0),h(void 0);try{await i?.()}catch(e){h(e instanceof Error?e.message:`Could not remove the message`)}finally{p(!1)}};return c?(0,Z.jsxs)(cn,{role:`user`,"data-slot":`user-bubble`,"data-editing":`true`,children:[(0,Z.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(),_())},className:`block max-h-[220px] min-h-[60px] w-full resize-none rounded-md bg-background px-2 py-1.5 text-[13.5px] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50`}),(0,Z.jsxs)(`span`,{className:`mt-1.5 flex justify-end gap-1.5`,children:[(0,Z.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,Z.jsx)(`button`,{type:`button`,onClick:()=>void _(),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,Z.jsx)(Qe,{className:`size-3.5 animate-spin`}):`Save`})]}),m?(0,Z.jsx)(`p`,{role:`alert`,className:`mt-1.5 text-xs text-danger`,children:m}):null]}):(0,Z.jsxs)(cn,{role:`user`,"data-slot":`user-bubble`,className:`group`,children:[r||i?(0,Z.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,Z.jsx)(`button`,{type:`button`,"aria-label":a,onClick:g,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,Z.jsx)(Dt,{className:`size-3.5`})}):null,i?(0,Z.jsx)(`button`,{type:`button`,"aria-label":o,onClick:()=>void v(),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,Z.jsx)(B,{className:`size-3.5`})}):null]}):null,m?(0,Z.jsx)(`p`,{role:`alert`,className:`mb-1 text-xs text-danger`,children:m}):null,(0,Z.jsx)(nt,{breaks:!0,children:e}),n.length>0?(0,Z.jsx)(`span`,{"data-slot":`user-images`,className:`mt-2 flex flex-wrap items-center justify-end gap-1.5`,children:n.map(e=>xe(e.split(`/`).pop()??``)?(0,Z.jsx)(ft,{src:e,alt:`attached`,className:`max-h-40 max-w-[220px] rounded-md border border-border object-contain`},e):(0,Z.jsxs)(`a`,{href:he(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,Z.jsx)(b,{"aria-hidden":`true`,className:`size-3.5 shrink-0`}),(0,Z.jsx)(`span`,{className:`truncate`,children:e.split(`/`).pop()})]},e))}):null,s>0?(0,Z.jsxs)(`span`,{className:`mt-1 block text-xs text-soft-foreground`,children:[s,` image`,s>1?`s`:``,` attached`]}):null]})}function un({text:e}){return(0,Z.jsx)(cn,{role:`agent`,"data-slot":`assistant-message`,children:(0,Z.jsx)(nt,{children:e})})}function dn({note:e}){return(0,Z.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 fn={claude:`Claude Code`,codex:`Codex`,opencode:`OpenCode`,pi:`pi`,cursor:`Cursor`};function pn({incident:e}){let t=fn[e.provider];return(0,Z.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,Z.jsxs)(`p`,{className:`text-[13px] font-semibold text-foreground`,children:[`This run needed `,t,` authorization`]}),(0,Z.jsxs)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:[`Review `,t,` settings before retrying.`]}),(0,Z.jsx)(q,{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 mn({text:e}){let t=(0,X.useId)();if(e.trim()===``)return null;let n=e.split(`
|
|
2
|
-
`,1)[0]??``,r=n.length<e.length;return(0,Z.jsxs)(Se,{"data-slot":`reasoning`,className:`group/reasoning min-w-0`,children:[(0,Z.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,Z.jsx)(w,{"aria-hidden":!0,className:`size-3.5 shrink-0 transition-transform group-data-[state=open]/reasoning:rotate-90`}),(0,Z.jsx)(`span`,{className:`shrink-0`,children:`Thinking — `}),(0,Z.jsx)(`div`,{className:`min-w-0 truncate text-muted-foreground`,children:(0,Z.jsx)(nt,{inline:!0,children:n})}),r?(0,Z.jsx)(`span`,{"aria-hidden":!0,children:`…`}):null,(0,Z.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,Z.jsx)(W,{children:(0,Z.jsx)(`div`,{className:`px-6 py-1.5 text-[13px] leading-[1.6] text-soft-foreground`,children:(0,Z.jsx)(nt,{children:e})})})]})}function hn(){return(0,Z.jsxs)(`div`,{"data-slot":`working-indicator`,className:`flex items-center gap-2 py-1 text-[13px] text-soft-foreground`,children:[(0,Z.jsx)(Qe,{role:`status`,"aria-label":`Working`,className:`size-3.5 shrink-0 animate-spin`}),(0,Z.jsx)(`span`,{className:`shimmer font-medium`,children:`Working…`})]})}var gn={read:qe,edit:Dt,delete:B,move:Tt,search:h,execute:tt,think:Ct,fetch:De,task:z,plan:c,other:r},_n=e=>e.split(`
|
|
3
|
-
`).length;function vn({text:e,streaming:t}){let[n,r]=(0,X.useState)(!1),i=(0,X.useRef)(null),a=(0,X.useRef)(!0);(0,X.useEffect)(()=>{let e=i.current;t&&e&&a.current&&(e.scrollTop=e.scrollHeight)},[e,t]);let o=_n(e),s=!t&&!n&&o>12;return(0,Z.jsxs)(`div`,{"data-slot":`tool-output`,"data-clamped":s?`true`:void 0,children:[(0,Z.jsxs)(`div`,{className:`relative`,children:[(0,Z.jsx)(`div`,{ref:i,onScroll:t?e=>{a.current=Qt(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,Z.jsx)(`pre`,{className:`px-4 py-3 font-mono text-xs leading-[1.7] whitespace-pre text-muted-foreground`,children:e})}),s?(0,Z.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,Z.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 yn({diffs:e}){return(0,Z.jsx)(Z.Fragment,{children:e.map((e,t)=>(0,Z.jsxs)(`div`,{"data-slot":`diff-preview`,className:`min-w-0`,children:[(0,Z.jsx)(`div`,{className:`border-b border-border/50 px-4 py-1.5 font-mono text-[11px] text-soft-foreground`,children:e.path}),(0,Z.jsx)(`pre`,{className:`overflow-x-auto py-2 font-mono text-xs leading-[1.7] whitespace-pre`,children:e.unified===void 0?[...bn(e.oldText).map((e,t)=>(0,Z.jsxs)(`span`,{className:`block bg-diff-del px-4 text-muted-foreground`,children:[`- `,e]},`old-${t}`)),...bn(e.newText).map((e,t)=>(0,Z.jsxs)(`span`,{className:`block bg-diff-add px-4`,children:[`+ `,e]},`new-${t}`))]:e.unified.split(`
|
|
4
|
-
`).map((e,t)=>(0,Z.jsx)(xn,{text:e},t))})]},`${e.path}:${t}`))})}function bn(e){return e==null||e===``?[]:e.replace(/\n$/,``).split(`
|
|
5
|
-
`)}function xn({text:e}){return(0,Z.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 Sn(e){return e.toolKind===`execute`&&e.status===`running`&&e.output!==void 0}function Cn({item:e,nested:t=[],cacheKey:n,renderNested:i}){let a=qt(),[o,s]=(0,X.useState)(()=>n===void 0?null:a?.get(n)??null),c=e=>{n!==void 0&&a?.set(n,e),s(e)},l=e.status===`running`||e.status===`pending`,u=e.output!==void 0&&e.output!==``||e.error!==void 0&&e.error!==``||e.diffs!==void 0&&e.diffs.length>0||t.length>0,d=u&&(o??Sn(e)),{verb:f,detail:p}=Ut(e.title),m=gn[e.toolKind]??r;return(0,Z.jsxs)(Se,{"data-slot":`tool-card`,"data-status":e.status,"data-kind":e.toolKind,open:d,onOpenChange:c,className:U(`min-w-0 overflow-hidden rounded-md border bg-card`,e.status===`failed`?`border-danger/25`:`border-border`),children:[(0,Z.jsxs)(G,{disabled:!u,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,Z.jsx)(w,{"aria-hidden":!0,className:U(`size-3 shrink-0 text-soft-foreground transition-transform group-data-[state=open]:rotate-90`,!u&&`invisible`)}),(0,Z.jsx)(m,{"aria-hidden":!0,className:`size-3.5 shrink-0 text-muted-foreground`}),(0,Z.jsx)(`span`,{className:U(`shrink-0 font-semibold`,l&&`shimmer`,e.status===`declined`&&`text-muted-foreground`),children:f}),p===void 0?null:(0,Z.jsx)(`code`,{className:`min-w-0 truncate font-mono text-xs text-muted-foreground`,children:p}),(0,Z.jsxs)(`span`,{className:`ml-auto flex shrink-0 items-center gap-2 pl-2`,children:[l?(0,Z.jsx)(Qe,{role:`status`,"aria-label":`Running`,className:`size-3.5 animate-spin text-soft-foreground`}):null,e.status===`failed`?(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`failed`}):null,e.status===`declined`?(0,Z.jsx)(`span`,{className:`text-xs text-soft-foreground`,children:`declined`}):null,e.toolKind===`execute`&&typeof e.exitCode==`number`?(0,Z.jsx)(`span`,{"data-slot":`tool-exit`,className:U(`rounded-full px-2 py-px font-mono text-[10.5px] font-semibold`,e.exitCode===0?`bg-success/10 text-success`:`bg-danger/10 text-danger`),children:e.exitCode}):null]})]}),(0,Z.jsx)(W,{children:(0,Z.jsxs)(`div`,{className:`border-t border-border bg-card-2`,children:[e.error!==void 0&&e.error!==``?(0,Z.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,Z.jsx)(yn,{diffs:e.diffs}):null,e.output!==void 0&&e.output!==``?(0,Z.jsx)(vn,{text:e.output,streaming:l}):null,t.length>0?(0,Z.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:i?.(t,n??e.id)}):null]})})]})}function wn({group:e,scope:t}){return(0,Z.jsxs)(Se,{"data-slot":`ctx-group`,className:`min-w-0`,children:[(0,Z.jsxs)(G,{className:`group flex h-[34px] 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,Z.jsx)(w,{"aria-hidden":!0,className:`size-3.5 shrink-0 text-soft-foreground transition-transform group-data-[state=open]:rotate-90`}),e.label]}),(0,Z.jsx)(W,{children:(0,Z.jsx)(`div`,{className:`flex flex-col gap-1.5 pt-1.5 pl-4`,children:e.tools.map(e=>(0,Z.jsx)(Cn,{item:e,cacheKey:t===void 0?void 0:`${t}:${e.id}`},e.id))})})]})}function Tn({count:e,children:t}){return(0,Z.jsxs)(Se,{"data-slot":`tool-streak`,className:`min-w-0`,children:[(0,Z.jsxs)(G,{className:`group flex items-center gap-1.5 rounded-md p-0.5 text-left text-xs text-soft-foreground hover:text-muted-foreground`,children:[(0,Z.jsx)(w,{"aria-hidden":!0,className:`size-3.5 shrink-0 transition-transform group-data-[state=open]:rotate-90`}),Vt(e)]}),(0,Z.jsx)(W,{children:(0,Z.jsx)(`div`,{className:`flex flex-col gap-2 pt-2`,children:t})})]})}function En({image:e}){return(0,Z.jsx)(ft,{"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 Dn(e,t=null){let n=m(),r=M(),i=je(e),a=i&&!e.runner,o=H(n.data),s=e.runner??(i?r.data?.defaultRunner:void 0)??`claude`,c=ze(t,o,s),l=o.includes(s),u=(i?be(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 On(e){let t=x(),n=Me(e).continueRun,r=M(),[i,a]=(0,X.useState)(null),[s,c]=(0,X.useState)(null),[l,u]=(0,X.useState)(null),[d,f]=(0,X.useState)(null),[m,h]=(0,X.useState)(e.id);m!==e.id&&(h(e.id),a(null),c(null),u(null),f(null));let g=Dn(e,i),{runners:_,canContinue:v,currentRunner:y,runner:b}=g,S=ie(b,n),C=r.data?.modelsLocked===!0,w=b!==y,T=!C&&!w&&e.model?{...r.data?.defaultModels,[b]:e.model}:r.data?.defaultModels,E=C?null:s,D=Ge(b,S.data,[E,T?.[b]]),O=Ke(E,b,T,S.data),k=Ue(b,O,S.data),A=C?``:l??e.effort??``,P=Ve(A,k),F=!C&&l===null&&A!==``&&P===``,{accounts:ee,repoAccount:I}=Ce(),L=[...e.steps].reverse().find(e=>e.sessionId),ne=L?.profileId??e.agentProfile??`default`,R=w?I:{...I,[y]:ne},z=ee.some(e=>e.provider===b&&e.id===d)?d:null,B=o({mutationFn:({text:t,images:n})=>v?j(e.id,{text:t.trim()?t:void 0,images:n.length?n:void 0,runner:g.runnerOverride,model:!C&&s!==null?O:void 0,effort:!C&&l!==null?P:F?``: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 N&&e.status===409&&t.invalidateQueries({queryKey:V.runs.all})}});return{available:n,canContinue:v,startsNewConversation:!!L&&(b!==(L.backend??y)||(z??e.agentProfile??L.profileId??`default`)!==(L.profileId??`default`)),reason:g.reason,providerPending:g.providerPending,pills:(0,Z.jsxs)(`div`,{"data-slot":`follow-up-engine`,className:`session-engine-controls`,children:[_.length>1||_.some(e=>Te(ee,e))?(0,Z.jsx)(We,{icon:(0,Z.jsx)(p,{"aria-hidden":`true`,className:`size-[18px] shrink-0 text-accent-text`}),fieldLabel:!0,runners:_,value:b,accounts:ee,account:z,repoAccount:R,onPick:(e,t)=>{f(t),e!==b&&(a(e),c(null))}}):(0,Z.jsx)(He,{icon:(0,Z.jsx)(p,{"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,Z.jsx)(He,{icon:(0,Z.jsx)(re,{"aria-hidden":`true`,className:`size-[18px] shrink-0 text-accent-text`}),fieldLabel:!0,slot:`follow-up-effort-pill`,ariaLabel:`Effort`,label:k.find(e=>e.value===P)?.label??`auto`,value:P,readOnly:C,disabledHint:`Effort selection is locked to native coding-agent settings.`,onPick:e=>u(e),options:k.map(e=>({value:e.value,label:e.label,desc:e.desc}))})]}),modelPicker:(0,Z.jsx)(He,{icon:(0,Z.jsx)(te,{"aria-hidden":`true`,className:`size-[18px] shrink-0 text-accent-text`}),fieldLabel:!0,slot:`follow-up-model-pill`,ariaLabel:`Model`,label:D.find(e=>e.id===O)?.label??`auto`,value:O,readOnly:C,disabledHint:`Model selection is locked to native coding-agent settings.`,onPick:e=>{c(e);let t=Ue(b,e,S.data);P!==``&&Ve(P,t)===``&&u(``)},options:D.map(e=>({value:e.id,label:e.label,desc:e.desc})),status:Be(b,S.data,S.isError,S.isFetching)}),continueWith:(e,t)=>B.mutateAsync({text:e,images:t})}}var kn=120,An=e=>e!==`pending`&&e!==`running`,jn=e=>e.kind===`tool`&&e.toolKind===`task`,Q=e=>jn(e)&&e.parentItemId===void 0,Mn=e=>(e.kind===`message`||e.kind===`reasoning`||e.kind===`tool`)&&!(e.kind===`tool`&&e.toolKind===`plan`);function Nn(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 Pn(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 Fn(e){if(e.kind===`tool`)return In(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 In(n)}}}function In(e){return e.length>kn?`${e.slice(0,kn-1).trimEnd()}…`:e}function Ln(e,t=!1){let n=Hn(e,e=>e.items.some(Q));if(n===-1)return[];let r=e=>!t&&!An(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?Nn(e,o):n,c=new Map;for(let t=s;t<e.length;t+=1)for(let n of e[t].items){if(!Mn(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=>Rn(e,c.get(e.id)??[],t))}function Rn(e,t,n){let r={id:e.id,title:Ut(e.title).detail??e.title,status:e.status,toolCalls:t.filter(e=>e.kind===`tool`).length},i=Pn(e);i!==void 0&&(r.agentType=i),n&&!An(e.status)&&(r.stalled=!0);for(let e=t.length-1;e>=0;--e){let n=Fn(t[e]);if(n!==void 0){r.activity=n;break}}return r}function zn(e){return{done:e.filter(e=>e.status===`completed`).length,total:e.length}}function Bn(e){return e.activity??(e.stalled===!0?`never finished`:`starting…`)}function Vn(e){return e.find(e=>!An(e.status))??e[0]}function Hn(e,t){for(let n=e.length-1;n>=0;--n)if(t(e[n]))return n;return-1}function Un(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 Rn(i,Wn(e,t),n)}}function Wn(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)Mn(n)&&n.parentItemId===t&&n.id!==t&&r.push(n);return r}var Gn=new Map,Kn=!1;function qn({runId:e,agents:t,onSelect:n}){let[r,i]=(0,X.useState)(()=>Gn.get(e)??Kn);if(t.length===0)return null;let{done:a,total:o}=zn(t),s=Vn(t);return(0,Z.jsxs)(`section`,{"data-slot":`agents-dock`,"data-state":r?`open`:`collapsed`,className:`min-w-0 overflow-hidden rounded-lg border border-border bg-card shadow-xs`,children:[(0,Z.jsx)(`div`,{"aria-hidden":!0,"data-slot":`grad-edge`,className:`h-[3px]`,style:{background:`var(--grad)`}}),(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>i(t=>(Gn.set(e,!t),!t)),"aria-expanded":r,className:U(`flex w-full items-center gap-2 px-3.5 text-left text-[13px]`,r?`pt-2 pb-1.5`:`py-2`),children:[(0,Z.jsx)(z,{"aria-hidden":!0,className:`size-3.5 shrink-0 text-soft-foreground`}),(0,Z.jsx)(`span`,{className:`shrink-0 font-semibold`,children:`Agents`}),(0,Z.jsxs)(`span`,{"data-slot":`agents-count`,className:`shrink-0 text-muted-foreground tabular-nums`,children:[`· `,a,`/`,o]}),!r&&s!==void 0?(0,Z.jsxs)(`span`,{"data-slot":`agents-current`,className:`min-w-0 truncate text-muted-foreground`,children:[`— `,Bn(s)]}):null,(0,Z.jsx)(T,{"aria-hidden":!0,className:U(`ml-auto size-3.5 shrink-0 text-soft-foreground transition-transform`,!r&&`rotate-180`)})]}),r?(0,Z.jsx)(`ul`,{"data-slot":`agents-list`,className:`flex flex-col gap-[7px] px-3.5 pb-3`,children:t.map(e=>(0,Z.jsx)(Jn,{agent:e,onSelect:n},e.id))}):null]})}function Jn({agent:e,onSelect:t}){let n=(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(Yn,{status:e.status,stalled:e.stalled===!0}),(0,Z.jsx)(`span`,{className:`min-w-0 shrink truncate font-medium`,children:e.title}),e.agentType===void 0?null:(0,Z.jsx)(`span`,{"data-slot":`agent-type`,className:`shrink-0 rounded-full bg-muted px-2 py-0.5 text-[10.5px] font-semibold tracking-[0.05em] text-muted-foreground uppercase`,children:e.agentType}),(0,Z.jsx)(`span`,{"data-slot":`agent-activity`,className:`min-w-0 flex-1 truncate text-muted-foreground`,children:Bn(e)}),(0,Z.jsxs)(`span`,{"data-slot":`agent-tools`,className:`shrink-0 text-muted-foreground tabular-nums`,children:[e.toolCalls,` `,e.toolCalls===1?`tool`:`tools`]})]});return(0,Z.jsx)(`li`,{"data-slot":`agent-item`,"data-status":e.status,className:`min-w-0 text-[13px]`,children:t?(0,Z.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,Z.jsx)(`div`,{className:`flex min-h-5 min-w-0 items-center gap-2.5`,children:n})})}function Yn({status:e,stalled:t=!1}){return t?(0,Z.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,Z.jsx)(`circle`,{cx:`12`,cy:`12`,r:`8.5`})}):e===`completed`?(0,Z.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,Z.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`,opacity:`.35`}),(0,Z.jsx)(`path`,{d:`m8.5 12.2 2.4 2.4 4.6-5`})]}):e===`failed`||e===`declined`?(0,Z.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,Z.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`,opacity:`.35`}),(0,Z.jsx)(`path`,{d:`m9 9 6 6M15 9l-6 6`})]}):(0,Z.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,Z.jsx)(`circle`,{className:`stroke-pending`,cx:`12`,cy:`12`,r:`8.5`,strokeWidth:`2`}),(0,Z.jsx)(`path`,{className:`fill-pending`,d:`M12 3.5 A8.5 8.5 0 0 1 12 20.5 Z`})]})}var Xn=new Map;function Zn(){return typeof window.matchMedia!=`function`||window.matchMedia(`(min-width: 768px)`).matches}function Qn(e){return{done:e.filter(e=>e.status===`completed`).length,total:e.filter(e=>e.status!==`cancelled`).length}}function $n(e){return e.find(e=>e.status===`in_progress`)??e.find(e=>e.status===`pending`)}function er({runId:e,entries:t}){let[n,r]=(0,X.useState)(()=>Xn.get(e)??Zn());if(t.length===0)return null;let{done:i,total:a}=Qn(t),o=$n(t);return(0,Z.jsxs)(`section`,{"data-slot":`plan-dock`,"data-state":n?`open`:`collapsed`,className:`min-w-0 overflow-hidden rounded-lg border border-border bg-card shadow-xs`,children:[(0,Z.jsx)(`div`,{"aria-hidden":!0,"data-slot":`grad-edge`,className:`h-0.5 md:h-[3px]`,style:{background:`var(--grad)`}}),(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>r(t=>(Xn.set(e,!t),!t)),"aria-expanded":n,className:U(`flex min-h-11 w-full items-center md:min-h-0 gap-2 px-3.5 text-left text-[13px]`,n?`pt-2 pb-1.5`:`py-2`),children:[(0,Z.jsx)(`span`,{className:`shrink-0 font-semibold`,children:`Plan`}),(0,Z.jsxs)(`span`,{"data-slot":`plan-count`,className:`shrink-0 text-muted-foreground tabular-nums`,children:[`· `,i,`/`,a]}),!n&&o!==void 0?(0,Z.jsxs)(`span`,{"data-slot":`plan-current`,className:`min-w-0 truncate text-muted-foreground`,children:[`— `,o.activeForm??o.content]}):null,(0,Z.jsx)(T,{"aria-hidden":!0,className:U(`ml-auto size-3.5 shrink-0 text-soft-foreground transition-transform`,!n&&`rotate-180`)})]}),n?(0,Z.jsx)(`ul`,{"data-slot":`plan-list`,className:`flex flex-col gap-[7px] px-3.5 pb-3`,children:t.map((e,t)=>(0,Z.jsx)(tr,{entry:e},`${t}:${e.content}`))}):null]})}function tr({entry:e}){return(0,Z.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,Z.jsx)(nr,{status:e.status}),(0,Z.jsx)(`span`,{className:`min-w-0 truncate`,children:e.content}),e.status===`in_progress`?(0,Z.jsx)(`span`,{"data-slot":`plan-tag`,className:`ml-auto shrink-0 rounded-full bg-muted px-2 py-0.5 text-[10.5px] font-semibold tracking-[0.05em] text-muted-foreground uppercase`,children:`in progress`}):null]})}function nr({status:e}){return e===`cancelled`?(0,Z.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,Z.jsx)(`circle`,{cx:`12`,cy:`12`,r:`8.5`,opacity:`.5`}),(0,Z.jsx)(`path`,{d:`m8.5 15.5 7-7`})]}):e===`completed`?(0,Z.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,Z.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`,opacity:`.35`}),(0,Z.jsx)(`path`,{d:`m8.5 12.2 2.4 2.4 4.6-5`})]}):e===`in_progress`?(0,Z.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,Z.jsx)(`circle`,{className:`stroke-pending`,cx:`12`,cy:`12`,r:`8.5`,strokeWidth:`2`}),(0,Z.jsx)(`path`,{className:`fill-pending`,d:`M12 3.5 A8.5 8.5 0 0 1 12 20.5 Z`})]}):(0,Z.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,Z.jsx)(`circle`,{cx:`12`,cy:`12`,r:`8.5`})})}function rr(e,t={}){let{surface:n=`document`,onLoadOlder:r,onJumpToLatest:i,rowKeys:a=[]}=t,o=(0,X.useRef)(e);o.current=e;let s=(0,X.useRef)(null),[c,l]=(0,X.useState)(null),[u,d]=(0,X.useState)(!1),f=(0,X.useRef)(!0),p=(0,X.useRef)(null),m=(0,X.useRef)(null),h=(0,X.useRef)(null),g=(0,X.useCallback)(e=>{let t=s.current;if(!t)return;let n=h.current;n?n.scrollTo(e):t.scrollTop=e},[]),_=(0,X.useCallback)(()=>{let e=s.current;e&&g(e.scrollHeight-e.clientHeight)},[g]),v=(0,X.useCallback)(()=>{if(s.current){if(m.current!==e){m.current=e;let t=nn(e);t&&!t.atBottom?(f.current=!1,p.current=t.top):(f.current=!0,p.current=null)}p.current===null?f.current&&_():g(p.current)}},[e,g,_]),y=(0,X.useCallback)(e=>{l(e),e&&(s.current=e.closest(n===`panel`?`[data-slot="transcript-viewport"]`:`[data-slot="main"]`),v())},[n,v]),b=(0,X.useCallback)(()=>{f.current&&_()},[_]),x=(0,X.useRef)(!1),S=(0,X.useRef)(0),C=(0,X.useRef)(!1),w=(0,X.useRef)(void 0),T=(0,X.useRef)(!1),E=(0,X.useRef)(!1),D=(0,X.useRef)(a);D.current=a;let O=(0,X.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}}),[]),k=(0,X.useRef)(null),A=(0,X.useRef)(0),j=(0,X.useCallback)(()=>{let e=k.current,t=s.current;if(!e||!t)return;k.current=null;let n=e.beforeTop+Math.max(0,t.scrollHeight-e.beforeHeight),r=t.getBoundingClientRect().top,i=e.anchor===void 0?-1:D.current.indexOf(e.anchor.key),a=h.current;a&&i>=0?a.scrollToIndex(i,{align:`start`,offset:-e.anchor.offset}):g(Zt(t.scrollTop,r,e.anchor,O(t),n))},[O,g]),M=(0,X.useCallback)(()=>{let e=s.current;if(!e||!r||x.current)return;p.current=null,f.current=!1,x.current=!0;let t=S.current+1;S.current=t;let n=e.scrollHeight,i=e.scrollTop,a=e.getBoundingClientRect().top,c=Xt(a,O(e)),l=c===void 0?-1:D.current.indexOf(c.key),u=o.current,d=A.current;r().then(()=>{o.current===u&&A.current===d&&(k.current={beforeHeight:n,beforeTop:i,anchor:c,anchorIndex:l})},()=>{}).finally(()=>{S.current===t&&(x.current=!1)})},[O,r]);(0,X.useEffect)(()=>()=>clearTimeout(w.current),[]);let N=(0,X.useCallback)(()=>{let t=s.current;if(!t)return;p.current=null,A.current+=1,k.current=null,f.current=!0,tn(e,{top:t.scrollHeight-t.clientHeight,atBottom:!0});let n=()=>{f.current&&_()};(i?.()??Promise.resolve()).finally(()=>{requestAnimationFrame(()=>{n(),requestAnimationFrame(n)})})},[i,e,_]),P=a.at(-1),F=a.length;return(0,X.useLayoutEffect)(()=>{A.current+=1,k.current=null,x.current=!1},[e]),(0,X.useLayoutEffect)(()=>{let e=k.current;e?(e.anchor===void 0?-1:D.current.indexOf(e.anchor.key))>e.anchorIndex?j():k.current=null:f.current&&_()},[P,F,j,_]),(0,X.useLayoutEffect)(()=>{!s.current||!c||v()},[c,v]),(0,X.useEffect)(()=>{let t=s.current,n=c;if(!t||!n)return;let r=0,i=null,a=!1,o=t.scrollTop,l=()=>{p.current=null,A.current+=1,k.current=null,f.current=!1,r=0},u=()=>{A.current+=1,k.current=null,r=Date.now()},m=e=>{if(e.deltaY<0){l();let e=!C.current;C.current=!0,clearTimeout(w.current),w.current=setTimeout(()=>{C.current=!1},180),e&&Yt(t)&&M()}else u()},h=e=>{[`ArrowUp`,`PageUp`,`Home`].includes(e.key)?(l(),!e.repeat&&Yt(t)&&M()):[`ArrowDown`,`PageDown`,`End`].includes(e.key)&&u()},v=()=>{a=!0,E.current=!1,o=t.scrollTop,Qt(t,80)||(l(),u())},y=()=>{a=!1},b=e=>{T.current=!1,i=e.touches[0]?.clientY??null},x=e=>{let n=e.touches[0]?.clientY;n!==void 0&&(i!==null&&n>i+1?(l(),!T.current&&Yt(t)&&(T.current=!0,M())):i!==null&&n<i-1&&u(),i=n)},S=()=>{a&&!E.current&&t.scrollTop<o&&Yt(t)&&(E.current=!0,M()),o=t.scrollTop;let n=Qt(t,80);n&&p.current===null&&(f.current||Date.now()-r<2e3)&&(f.current=!0),d(!n),p.current===null&&tn(e,{top:t.scrollTop,atBottom:n})};t.addEventListener(`scroll`,S,{passive:!0}),t.addEventListener(`wheel`,m,{passive:!0}),t.addEventListener(`touchstart`,b,{passive:!0}),t.addEventListener(`touchmove`,x,{passive:!0}),t.addEventListener(`pointerdown`,v,{passive:!0}),window.addEventListener(`pointerup`,y,{passive:!0}),t.addEventListener(`keydown`,h);let D;if(typeof ResizeObserver<`u`){D=new ResizeObserver(()=>{let e=p.current;if(e!==null){let n=t.scrollHeight-t.clientHeight;g(Math.min(e,n)),n>=e&&(p.current=null)}else f.current&&_()}),D.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&&D.observe(r),i&&D.observe(i)}return()=>{t.removeEventListener(`scroll`,S),t.removeEventListener(`wheel`,m),t.removeEventListener(`touchstart`,b),t.removeEventListener(`touchmove`,x),t.removeEventListener(`pointerdown`,v),window.removeEventListener(`pointerup`,y),t.removeEventListener(`keydown`,h),D?.disconnect()}},[e,c,M,g,_]),{attachContent:y,scrollElRef:s,virtualizerRef:h,pillVisible:u,jumpToLatest:N,loadOlder:M,restickIfStuck:b}}function ir({runId:e,rows:t,mode:n,controls:r}){return n===`virtual`?(0,Z.jsx)(ar,{runId:e,rows:t,controls:r}):(0,Z.jsx)(`div`,{ref:r.attachContent,"data-slot":`thread-rows`,"data-virtualized":`false`,className:`[overflow-anchor:none]`,children:t.map(e=>(0,Z.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 ar({runId:e,rows:t,controls:n}){return(0,Z.jsx)(or,{runId:e,rows:t,controls:n},e)}function or({runId:e,rows:t,controls:n}){let r=(0,X.useRef)(null),i=(0,X.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,X.useLayoutEffect)(()=>{i.current=t},[t]);let[c]=(0,X.useState)(()=>on(e,t.length)),l=(0,X.useRef)(t.length);l.current=t.length;let u=(0,X.useRef)(null),d=(0,X.useCallback)(t=>{n.virtualizerRef.current=t,t?u.current=t:u.current&&=(an(e,{rows:l.current,cache:u.current.cache}),null)},[e,n.virtualizerRef]),[f,p]=(0,X.useState)(0);return(0,X.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,Z.jsx)(`div`,{ref:e=>{r.current=e,n.attachContent(e)},"data-slot":`thread-rows`,"data-virtualized":`true`,className:`[overflow-anchor:none]`,children:(0,Z.jsx)(dt,{ref:d,scrollRef:n.scrollElRef,startMargin:f,shift:s,...c===void 0?{}:{cache:c},children:t.map(e=>(0,Z.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 sr({onJump:e}){return(0,Z.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,Z.jsx)(l,{"aria-hidden":!0,className:`size-3.5`}),`Jump to latest`]})}function cr(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 lr(e,t){return[{id:`agent:${e}`,entries:t}]}function ur(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 Wt([...t.entries]))n.push({key:`${t.id}:${e.id}`,scope:t.id,content:{kind:`block`,block:e}})}return n}function dr({runId:e,viewId:t,sections:n,mode:r,empty:i,renderAsk:a,messageActions:o,scrollControls:s,renderMode:c}){let l=(0,X.useMemo)(()=>ur(n,e),[n,e]),u=rr(`${e}:${t}`,{surface:r}),d=s??u,f=(0,X.useMemo)(()=>l.map(e=>({key:e.key,node:e.content.kind===`user-message`?(0,Z.jsx)(fr,{message:e.content.message,actions:o?.[e.key]}):(0,Z.jsx)(pr,{block:e.content.block,scope:e.scope,renderAsk:a})})),[o,a,l]),p=c??$t(``,f.length),m=f.length===0?i??null:(0,Z.jsx)(ir,{runId:`${e}:${t}`,rows:f,mode:p,controls:d});return(0,Z.jsx)(Jt,{runId:e,children:r===`panel`?(0,Z.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,Z.jsx)(`div`,{"data-slot":`subagent-stream`,className:`flex flex-col px-5 py-4`,children:m}),d.pillVisible?(0,Z.jsx)(`div`,{className:`pointer-events-none sticky inset-x-0 bottom-4 flex justify-center`,children:(0,Z.jsx)(sr,{onJump:d.jumpToLatest})}):null]}):m})}function fr({message:e,actions:t}){return(0,Z.jsx)(ln,{text:e.text,imageCount:e.imageCount,images:e.images,onEdit:t?.onEdit,onRemove:t?.onRemove,editLabel:t?.editLabel,removeLabel:t?.removeLabel})}function pr({block:e,scope:t,renderAsk:n}){switch(e.kind){case`entry`:return(0,Z.jsx)(hr,{entry:e.entry,scope:t,renderAsk:n});case`tool-card`:return(0,Z.jsx)(Cn,{item:e.item,nested:e.children,cacheKey:`${t}:${e.id}`,renderNested:(e,t)=>(0,Z.jsx)(mr,{entries:e,scope:t,renderAsk:n})});case`context-group`:return(0,Z.jsx)(wn,{group:e,scope:t});case`streak`:return(0,Z.jsx)(Tn,{count:e.count,children:e.blocks.map(e=>(0,Z.jsx)(pr,{block:e,scope:t,renderAsk:n},e.id))});default:return gr(e)}}function mr({entries:e,scope:t,renderAsk:n}){return Wt([...e]).map(e=>(0,Z.jsx)(pr,{block:e,scope:t,renderAsk:n},e.id))}function hr({entry:e,scope:t,renderAsk:n}){switch(e.kind){case`message`:return e.role===`assistant`?(0,Z.jsx)(un,{text:e.text}):(0,Z.jsx)(ln,{text:e.text});case`reasoning`:return(0,Z.jsx)(mn,{text:e.text});case`tool`:return(0,Z.jsx)(Cn,{item:e,cacheKey:`${t}:${e.id}`});case`note`:if(e.conversation){let t=e.conversation,n=`inline-flex min-h-11 max-w-full items-center break-all underline underline-offset-4 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`;return(0,Z.jsxs)(`div`,{"data-slot":`conversation-message`,className:`min-w-0 rounded-md border border-border px-4 py-3 text-sm`,children:[(0,Z.jsxs)(`div`,{className:`mb-2 min-w-0 space-y-1 break-all text-xs text-muted-foreground`,children:[(0,Z.jsxs)(`p`,{className:`capitalize`,children:[`Agent `,t.kind]}),(0,Z.jsx)(`p`,{children:(0,Z.jsxs)(q,{className:n,to:`/tasks/${t.senderRunId}`,"aria-label":`Sender task ${t.senderRunId}`,children:[`Sender task `,t.senderRunId]})}),(0,Z.jsx)(`p`,{children:(0,Z.jsxs)(q,{className:n,to:`/tasks/${t.recipientRunId}`,"aria-label":`Recipient task ${t.recipientRunId}`,children:[`Recipient task `,t.recipientRunId]})}),(0,Z.jsxs)(`p`,{children:[`Message `,t.id,t.kind===`request`||t.requestId?` · Request ${t.requestId??t.id}`:``]}),(0,Z.jsxs)(`p`,{children:[`Delivery: `,t.delivery,t.state&&t.state!==`accepted`?` · ${t.state}`:``]})]}),(0,Z.jsx)(`div`,{className:`whitespace-pre-wrap break-words [overflow-wrap:anywhere]`,children:(0,Z.jsx)(dn,{note:e})})]})}return e.attribution?(0,Z.jsxs)(`div`,{className:`min-w-0 rounded-md border border-border px-4 py-3 text-sm`,children:[(0,Z.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,Z.jsx)(dn,{note:e})]}):(0,Z.jsx)(dn,{note:e});case`image`:return(0,Z.jsx)(En,{image:e});case`ask`:return n===void 0?(0,Z.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,Z.jsx)(pn,{incident:e});default:return gr(e)}}function gr(e){throw Error(`Unhandled transcript variant: ${JSON.stringify(e)}`)}function _r({runId:e,renderAsk:t,agent:n,entries:r,onClose:i}){return(0,Z.jsx)(it,{open:n!==void 0,onOpenChange:e=>{e||i()},children:(0,Z.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,Z.jsx)(vr,{runId:e,renderAsk:t,agent:n,entries:r})})})}function vr({runId:e,renderAsk:t,agent:n,entries:r}){return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(rt,{className:`gap-1.5 border-b border-border px-5 py-4`,children:[(0,Z.jsxs)(at,{className:`flex min-w-0 items-center gap-2 pr-8 text-[15px]`,children:[(0,Z.jsx)(`span`,{className:`min-w-0 truncate`,children:n.title}),n.agentType===void 0?null:(0,Z.jsx)(`span`,{"data-slot":`agent-type`,className:`shrink-0 rounded-full bg-muted px-2 py-0.5 text-[10.5px] font-semibold tracking-[0.05em] text-muted-foreground uppercase`,children:n.agentType})]}),(0,Z.jsxs)(ct,{"data-slot":`subagent-meta`,className:`flex items-center gap-2 text-xs`,children:[(0,Z.jsx)(yr,{status:n.status}),(0,Z.jsxs)(`span`,{className:`tabular-nums`,children:[n.toolCalls,` `,n.toolCalls===1?`tool call`:`tool calls`]})]})]}),(0,Z.jsx)(dr,{runId:e,viewId:`agent:${n.id}`,sections:lr(n.id,r),mode:`panel`,renderAsk:t,empty:(0,Z.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 yr({status:e}){let t=e===`completed`?`Completed`:e===`failed`?`Failed`:e===`declined`?`Declined`:e===`pending`?`Pending`:`Running`;return(0,Z.jsx)(`span`,{"data-slot":`subagent-status`,"data-status":e,className:U(`rounded-full px-2 py-0.5 text-[10.5px] 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({run:e}){return(0,Z.jsxs)(`section`,{"data-slot":`review-panel`,"aria-label":`Review the changes`,className:`flex flex-col gap-3`,children:[(0,Z.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,Z.jsx)(Re,{className:`size-4 shrink-0 text-accent-icon`,"aria-hidden":`true`}),(0,Z.jsxs)(`p`,{className:`min-w-0 text-[13px]`,children:[(0,Z.jsx)(`span`,{className:`font-semibold`,children:`Review the changes before anything lands.`}),` `,(0,Z.jsx)(`span`,{className:`text-muted-foreground`,children:`Read the diff, send notes back, draft a PR — or accept. Nothing merges on its own.`})]})]}),(0,Z.jsx)(pt,{runId:e.id}),(0,Z.jsx)(xr,{run:e})]})}function xr({run:e}){let t=x(),n=(0,X.useRef)(null),[r,i]=(0,X.useState)(``),[a,s]=(0,X.useState)(null),c=Je(e.id),l=Dn(e),d=()=>t.invalidateQueries({queryKey:V.runs.all}),f=o({mutationFn:async t=>l.canContinue?j(e.id,{text:`Review feedback:\n${t}`,runner:l.runnerOverride}):null,onSuccess:e=>{e!==null&&(i(``),d())},onError:e=>D(e.message,{tone:`danger`})}),p=o({mutationFn:()=>F(e.id),onSuccess:e=>{D(`Draft PR created — ${e.url}`),d()},onError:e=>{e instanceof N&&e.manual!==void 0&&s(e.manual),D(e.message,{tone:`danger`})}}),m=()=>{let e=r.trim();if(e.length===0){D(`Write what to change first.`),n.current?.focus();return}f.mutate(e)};return(0,Z.jsxs)(`div`,{"data-slot":`review-actions`,className:`flex flex-col gap-2`,children:[(0,Z.jsx)(Ee,{ref:n,"data-slot":`review-notes`,"aria-label":`Notes for the agent`,placeholder:`Notes for the agent — what should change?`,rows:2,value:r,onChange:e=>i(e.target.value),onKeyDown:e=>{ut({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]`}),l.canContinue?null:(0,Z.jsxs)(`p`,{id:`review-provider-guidance`,className:`flex flex-wrap items-center gap-1.5 text-xs text-muted-foreground`,children:[(0,Z.jsx)(`span`,{children:l.reason}),l.providerPending?null:(0,Z.jsx)(q,{to:`/settings/agents#providers`,className:`font-medium text-foreground underline underline-offset-4`,children:`Configure providers`})]}),(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Z.jsxs)(A,{"data-slot":`review-send-back`,variant:`outline`,size:`sm`,title:l.reason??`Send the notes back into the agent's session`,"aria-describedby":l.canContinue?void 0:`review-provider-guidance`,disabled:f.isPending||!l.canContinue,onClick:m,children:[(0,Z.jsx)(wt,{"aria-hidden":`true`}),`Send back`]}),_e(e.pullRequestUrl)?(0,Z.jsx)(A,{asChild:!0,variant:`outline`,size:`sm`,children:(0,Z.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,Z.jsx)(Le,{"aria-hidden":`true`}),`PR ↗`]})}):(0,Z.jsxs)(A,{"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,Z.jsx)(k,{"aria-hidden":`true`}),`Draft PR`]}),(0,Z.jsxs)(A,{"data-slot":`review-accept`,variant:`primary`,size:`sm`,className:`ml-auto`,title:Ne(`review`),disabled:c.isPending,onClick:()=>c.mutate(),children:[(0,Z.jsx)(u,{"aria-hidden":`true`}),`Accept`]})]}),a===null?null:(0,Z.jsx)(Sr,{command:a})]})}function Sr({command:e}){return(0,Z.jsxs)(`button`,{type:`button`,"data-slot":`review-manual`,title:`Copy the command`,onClick:()=>{navigator.clipboard.writeText(e).then(()=>D(`Command copied to clipboard.`)).catch(()=>D(`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,Z.jsx)(ae,{className:`size-3 shrink-0`,"aria-hidden":`true`}),(0,Z.jsxs)(`span`,{className:`truncate`,children:[`manual path: `,e]})]})}function Cr(){return typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches}var wr=1500;function Tr({status:e}){let t=(0,X.useRef)(e),[n,r]=(0,X.useState)(!1);return(0,X.useEffect)(()=>{let n=t.current;if(t.current=e,n!==`review`||e!==`done`||Cr())return;r(!0);let i=setTimeout(()=>r(!1),wr);return()=>clearTimeout(i)},[e]),n?(0,Z.jsxs)(`div`,{"data-slot":`accept-celebration`,"aria-hidden":`true`,className:`pointer-events-none fixed inset-0 isolate z-40`,children:[(0,Z.jsx)(se,{}),(0,Z.jsx)(`div`,{className:`flex justify-center pt-24`,children:(0,Z.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 Er(e){let t=x(),[n,r]=(0,X.useState)(),i=Ie(e.status);(0,X.useEffect)(()=>{(!i||n&&n!==e.id)&&r(void 0)},[i,e.id,n]);let a=o({mutationFn:async()=>{r(e.id);try{if(!(await R(e.id)).cancelled)throw Error(`The task changed before Stop was accepted. Check its status and retry.`)}catch(e){throw r(void 0),e}},onSettled:()=>t.invalidateQueries({queryKey:V.runs.all})});return{stopping:!!e.stopping||a.isPending||i&&n===e.id,stop:()=>a.mutateAsync()}}function Dr(e,t){return`${e.header}: ${t.join(`, `)}`}function Or({ask:e,run:t}){return e.resolved?(0,Z.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,Z.jsx)(`span`,{className:`text-soft-foreground`,children:`Answered`}),e.answer?(0,Z.jsx)(`span`,{className:`ml-1.5 break-words whitespace-pre-line text-foreground`,children:e.answer}):null]}):(0,Z.jsx)(kr,{ask:e,run:t})}function kr({ask:e,run:t}){let n=Fe(t),r=n.blockedBy!==void 0,i=e.questions,a=i.length===1&&i[0]?.multiSelect!==!0,[o,s]=(0,X.useState)({}),c=(e,t)=>s(n=>({...n,[e]:t})),l=i.every((e,t)=>(o[t]?.length??0)>0),u=()=>void n.send(i.map((e,t)=>Dr(e,o[t]??[])).join(`
|
|
7
|
-
`)),d=n.mode===`resume`;return(0,Z.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,Z.jsx)(`div`,{className:`mb-2.5 flex items-center gap-2`,children:(0,Z.jsx)(`span`,{className:`text-xs font-medium text-link-foreground`,children:`The agent is asking`})}),(0,Z.jsx)(`div`,{className:`flex flex-col gap-4`,children:i.map((e,t)=>(0,Z.jsx)(Ar,{question:e,disabled:n.isPending||r,selected:o[t]??[],onSelect:i=>{r||(a?n.send(Dr(e,i)):c(t,i))}},e.id??t))}),a?d?(0,Z.jsx)(`p`,{"data-slot":`ask-resume-hint`,className:`mt-3 text-[11.5px] text-soft-foreground`,children:`The session has ended — your answer reopens it and goes to the agent.`}):null:(0,Z.jsxs)(`div`,{className:`mt-3 flex items-center gap-2.5`,children:[(0,Z.jsx)(A,{size:`sm`,disabled:n.isPending||r||!l,onClick:u,children:d?`Send answer & reopen`:`Send answer`}),(0,Z.jsx)(`span`,{"data-slot":d?`ask-resume-hint`:`ask-hint`,className:`text-[11.5px] text-soft-foreground`,children:d?`the session has ended — sending reopens it`:`${i.length>1?`answer each question`:`pick one or more`} — or type a reply below`})]}),n.blockedBy===`provider`?(0,Z.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,Z.jsx)(`span`,{children:n.reason}),(0,Z.jsx)(q,{to:`/settings/agents#providers`,className:`font-medium text-foreground underline underline-offset-4`,children:`Configure providers`})]}):null,n.blockedBy===`no-session`?(0,Z.jsx)(`p`,{"data-slot":`ask-no-session`,className:`mt-3 text-xs text-muted-foreground`,children:n.reason}):null,n.error?(0,Z.jsx)(`p`,{"data-slot":`ask-error`,role:`alert`,className:`mt-3 text-xs text-danger`,children:n.error}):null]})}function Ar({question:e,disabled:t,selected:n,onSelect:r}){let i=e.multiSelect===!0,a=e=>{if(!i){r([e]);return}r(n.includes(e)?n.filter(t=>t!==e):[...n,e])};return(0,Z.jsxs)(`div`,{role:`group`,"aria-label":e.question,children:[(0,Z.jsxs)(`div`,{className:`mb-0.5 flex items-center gap-2`,children:[(0,Z.jsx)(`span`,{className:`rounded-md bg-accent-strong px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-accent-strong-foreground`,children:e.header}),i?(0,Z.jsx)(`span`,{className:`ml-auto text-[10.5px] text-soft-foreground`,children:`select all that apply`}):null]}),(0,Z.jsx)(`p`,{className:`mb-2.5 break-words text-sm font-semibold text-foreground`,children:e.question}),(0,Z.jsx)(`div`,{className:`flex flex-col gap-2`,children:e.options.map(e=>{let r=n.includes(e.label);return(0,Z.jsxs)(`button`,{type:`button`,disabled:t,"aria-pressed":r,onClick:()=>a(e.label),className:U(`flex 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,Z.jsxs)(`span`,{className:`flex min-w-0 items-start gap-2 text-[13.5px] font-semibold text-foreground`,children:[i?(0,Z.jsx)(`span`,{"aria-hidden":!0,className:U(`flex size-4 shrink-0 items-center justify-center rounded border text-[10px]`,r?`border-accent-strong bg-accent-strong text-accent-strong-foreground`:`border-soft-foreground`),children:r?`✓`:``}):null,(0,Z.jsx)(`span`,{className:`min-w-0 break-words`,children:e.label})]}),e.description?(0,Z.jsx)(`span`,{className:`min-w-0 break-words text-xs text-muted-foreground`,children:e.description}):null]},e.label)})})]})}var jr=2e3;function Mr(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 Nr(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 Pr(e,t){let n=x(),r=(0,X.useMemo)(()=>Mr(t),[t]),i=(0,X.useMemo)(()=>Nr(t),[t]),a=e?.id,o=e?.status,s=e?.activity;(0,X.useEffect)(()=>{if(!(r!==0&&(o===`running`||o===`waiting`))&&!(i!==0&&o===`running`&&s!==`monitoring`)||a===void 0)return;let e=setTimeout(()=>{n.invalidateQueries({queryKey:V.runs.detail(a)}),n.invalidateQueries({queryKey:V.runs.list()})},jr);return()=>clearTimeout(e)},[r,i,a,o,s,n])}function Fr(e){for(let t=e.turns.length-1;t>=0;--t){let n=e.turns[t].planEntries;if(n!==void 0)return n}}function Ir(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 Lr(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 Rr(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function $(e){return typeof e==`string`?e:void 0}function zr(e){return e===`claude`||e===`codex`||e===`opencode`||e===`pi`||e===`cursor`?e:void 0}function Br(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(`
|
|
8
|
-
`).filter(e=>!/^CEZ:(?:PR=\d+|ISSUE=\d+|TITLE=.+)\s*$/.test(e)).join(`
|
|
9
|
-
`):n}function Vr(e){let t=e=>Br(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 Hr(e){if(typeof e==`string`)return e;if(e==null)return``;try{return JSON.stringify(e)}catch{return String(e)}}var Ur=e=>e.kind===`message`||e.kind===`reasoning`||e.kind===`tool`,Wr=new Set([`pending`,`in_progress`,`completed`,`cancelled`]);function Gr(e){if(!Rr(e)||!Array.isArray(e.todos))return;let t=[];for(let n of e.todos){if(!Rr(n)||typeof n.content!=`string`)return;t.push({content:n.content,status:Wr.has(n.status)?n.status:`pending`,...typeof n.activeForm==`string`?{activeForm:n.activeForm}:{}})}return t}function Kr(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 Set,p=new Set;for(let t of e)switch(t.type){case`conversation-message`:{let e=ye.safeParse(t);if(!e.success)break;let{message:n}=e.data,r=d.get(n.id);if(r){r.conversation&&r.conversation.delivery!==`delivered`&&(r.conversation.delivery=e.data.delivery);break}let i={kind:`note`,id:`conversation-message:${n.id}`,text:n.text,tone:`dim`,conversation:{...n,delivery:e.data.delivery}};d.set(n.id,i),c().entries.push({origin:`meta`,entry:i});break}case`request-outcome`:{let e=me.safeParse(t);if(!e.success||f.has(e.data.outcome.requestId))break;let{outcome:n}=e.data;f.add(n.requestId),c().entries.push({origin:`meta`,entry:{kind:`note`,id:`request-outcome:${n.requestId}`,text:`Request outcome: ${n.status} · Request ${n.requestId}${n.replyId?` · Reply ${n.replyId}`:``}`,tone:`dim`}});break}case`agent-input`:{let e=fe.safeParse(t);if(!e.success)break;let{input:n}=e.data;if(p.has(n.id))break;if(p.add(n.id),n.conversation){let e=d.get(n.id);if(e?.conversation)e.conversation.delivery=`delivered`;else{let e={kind:`note`,id:`conversation-message:${n.id}`,text:n.text,tone:`dim`,conversation:{id:n.id,...n.conversation,delivery:`delivered`}};d.set(n.id,e),c().entries.push({origin:`meta`,entry:e})}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,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(!Rr(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===``||!Ur(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(qr.has(n))break;let i=bt(n,t.input);if(i.toolKind===`plan`){let n=Gr(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=Hr(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=zr(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=>Rr(e)&&typeof e.header==`string`&&Array.isArray(e.options));if(n.length===0)break;let r={kind:`ask`,id:e,questions:n,resolved:!1};c().entries.push({origin:`meta`,entry:r}),o=r;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(Br(r.text,!0).trim());t.size!==0&&(e.entries=e.entries.filter(e=>!(e.origin===`v1`&&e.entry.kind===`message`&&t.has(Br(e.entry.text,!0).trim()))),Vr(e))}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:Br(e.text,i||a)}:e)}}),...i===void 0?{}:{sessionEnded:i}}}var qr=new Set([`subAgentActivity`,`collabAgentToolCall`,`collabToolCall`]);function Jr(){let{id:e}=ue(),t=E(e),n=Ft(e),r=t.data?.status,i=(0,X.useMemo)(()=>Kr(n.visibleEvents,{activeTurn:r===`running`}),[n.visibleEvents,r]),a=(0,X.useMemo)(()=>Kr(n.currentEvents,{activeTurn:r===`running`}),[n.currentEvents,r]),o=(0,X.useRef)(void 0),c=(0,X.useCallback)(e=>{o.current=e},[]),{mutate:l}=s();if((0,X.useEffect)(()=>{t.data&&o.current!==t.data.id&&Oe(t.data)&&l(t.data.id)},[l,t.data?.id,t.data?.status,t.data?.finishedAt,t.data?.seenAt,t.data?.archived]),Pr(t.data,n.visibleEvents),t.isPending)return(0,Z.jsx)(lt,{});if(t.isError){let e=t.error instanceof N&&t.error.status===404;return(0,Z.jsx)(`div`,{"data-route":`task-thread`,className:`flex min-h-full flex-col`,children:(0,Z.jsx)(ne,{icon:e?(0,Z.jsx)(et,{}):(0,Z.jsx)(Et,{}),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,Z.jsx)(A,{asChild:!0,variant:`outline`,children:(0,Z.jsx)(q,{to:`/`,children:`Back to tasks`})})})})}return n.isPending?(0,Z.jsx)(lt,{}):(0,Z.jsx)(Yr,{run:t.data,thread:i,currentThread:a,history:n,onMarkedUnread:c})}function Yr({run:e,thread:t,currentThread:n=t,history:r,onMarkedUnread:i}){Ze();let a=r?pe(r.currentEvents)!==void 0:n.turns.some(e=>e.items.some(e=>e.kind===`ask`&&!e.resolved)),o=d(e,a),s=Lr(e.status,e.error),c=Fr(n),l=c!==void 0&&c.length>0?Qn(c):void 0,u=e.status===`running`||e.status===`waiting`,p=e.status===`queued`,m=On(e),h=Er(e),g=a||e.hasPendingHumanAsk===!0,_=!u&&!p&&m.available,b=_&&m.canContinue,x=!u&&e.status!==`queued`,C=(0,X.useMemo)(()=>Ln(n.turns,x),[n.turns,x]),[w,T]=(0,X.useState)(void 0),[E,D]=(0,X.useState)(e.id);E!==e.id&&(D(e.id),T(void 0));let O=(0,X.useMemo)(()=>w===void 0?void 0:Un(n.turns,w,x),[n.turns,w,x]),k=(0,X.useMemo)(()=>w===void 0?[]:Wn(n.turns,w),[n.turns,w]),A=ce(e.id),j=Fe(e),M=Ae(e),N=u&&!M.usable,P=_&&!m.canContinue,F=N||P,te=N?M.reason:m.reason,{mutateAsync:I}=L(e.id),{mutateAsync:ne}=ee(e.id),{mutateAsync:re}=f(e.id),R=(0,X.useMemo)(()=>p?{onEditTask:async e=>{await I({task:e})},onEditMessage:(e,t)=>ne({msgId:e,message:{text:t}}).then(()=>void 0),onRemoveMessage:e=>re(e).then(()=>void 0)}:void 0,[p,I,ne,re]),ie=(0,X.useMemo)(()=>cr(e,t),[e,t]),z=(0,X.useMemo)(()=>ur(ie,e.id),[ie,e.id]),B=(0,X.useCallback)(t=>(0,Z.jsx)(Or,{ask:t,run:e}),[e]),V=(0,X.useMemo)(()=>{if(R===void 0)return;let t={task:{onEdit:R.onEditTask,editLabel:`Edit the prompt`}};for(let n of e.queuedMessages??[])t[`queued:${n.id}`]={onEdit:e=>R.onEditMessage(n.id,e),onRemove:()=>R.onRemoveMessage(n.id)};return t},[R,e.queuedMessages]),ae=y(e,v()),{search:oe}=de(),se=$t(oe,z.length),H=rr(`${e.id}:main`,{onLoadOlder:r?.hasOlder?r.loadOlder:void 0,onJumpToLatest:r?.jumpToLatest,rowKeys:z.map(({key:e})=>e)});return we(H.restickIfStuck),(0,Z.jsxs)(`div`,{"data-route":`task-thread`,"data-run-id":e.id,className:`flex min-h-full flex-col`,children:[(0,Z.jsx)(Xe,{run:e,hasPendingHumanAsk:a,planTally:l,onMarkedUnread:()=>i?.(e.id)}),(0,Z.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,Z.jsx)(Xr,{hasOlder:r.hasOlder,loading:r.isFetchingOlder,error:r.olderError,fallback:r.fallback,retainedPages:r.retainedPages,onLoad:H.loadOlder}):null,(0,Z.jsx)(dr,{runId:e.id,viewId:`main`,sections:ie,mode:`document`,renderAsk:B,messageActions:V,scrollControls:H,renderMode:se}),t.turns.length===0?e.status===`queued`?(0,Z.jsx)(Zr,{run:e}):(0,Z.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,Z.jsx)(hn,{}):null,s&&s.state===`closed`?(0,Z.jsxs)(`div`,{"data-slot":`thread-footer`,"data-state":s.state,className:U(`mt-auto flex items-center gap-2 border-t border-border pt-3 text-xs`,s.tone===`danger`?`text-danger`:`text-soft-foreground`),children:[s.label,_e(S(e))?(0,Z.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,_e(ae)?(0,Z.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,Z.jsx)(br,{run:e}):null]}),(0,Z.jsx)(Tr,{status:e.status}),(0,Z.jsx)(_r,{runId:e.id,renderAsk:B,agent:O,entries:k,onClose:()=>T(void 0)}),(0,Z.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,Z.jsx)(`div`,{className:`pointer-events-none fixed right-6 bottom-[calc(24px+env(safe-area-inset-bottom))] z-30 flex justify-center`,children:(0,Z.jsx)(sr,{onJump:H.jumpToLatest})}):null,(0,Z.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:[e.steps.length>0?(0,Z.jsx)(`div`,{"data-slot":`session-workflow-summary`,className:`rounded-xl border border-border bg-card px-3 py-2`,children:(0,Z.jsx)(Ye,{runId:e.id,steps:e.steps})}):null,(0,Z.jsx)(qn,{runId:e.id,agents:C,onSelect:T},`agents:${e.id}`),c!==void 0&&c.length>0?(0,Z.jsx)(er,{runId:e.id,entries:c},e.id):null,(0,Z.jsx)(It,{run:e}),e.status===`waiting`?(0,Z.jsxs)(`div`,{"data-slot":`paused-hint`,className:`flex items-center gap-2 px-1 text-xs text-muted-foreground`,children:[(0,Z.jsx)(ke,{tone:o.tone,pulse:o.pulse}),o.bucket===`waiting`?`The agent is paused, waiting for your reply`:`Waiting on workers — you can send a message to resume`]}):null,p?(0,Z.jsxs)(`div`,{"data-slot":`queued-hint`,className:`flex items-center gap-2 px-1 text-xs text-muted-foreground`,children:[(0,Z.jsx)(ke,{tone:`pending`}),`Messages you add now are folded into the prompt before the run starts.`]}):null,b&&m.startsNewConversation?(0,Z.jsx)(`p`,{className:`px-1 text-xs text-muted-foreground`,role:`status`,children:`Starts a new agent conversation.`}):null,(0,Z.jsx)(ot,{onStop:Me(e).cancel?h.stop:void 0,stopOnEmpty:e.status===`queued`||e.status===`running`||e.status===`waiting`&&o.label===`waiting on workers`&&!g,stopping:h.stopping,retainDraftUntilSuccess:!0,compactFeedback:!0,pendingLabel:b?`Continuing…`:`Sending…`,failureHint:`Your draft is kept. Check the task status and connection, then retry.`,sessionControls:b?m.pills:void 0,sessionModel:b?m.modelPicker:void 0,onSubmit:b?(e,t)=>m.continueWith(e,t):p?(e,t)=>A.mutateAsync({text:e,images:t}):async(e,t)=>{let n=await j.send(e,t);if(n!==void 0)throw Error(n)},disabled:F||!u&&!p&&!b,disabledReason:F?te:`Session closed — no session to resume.`,footerEnd:F&&!m.providerPending?(0,Z.jsx)(q,{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:p?`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:()=>Ir(t)})]})]}),(0,Z.jsx)(`div`,{"data-slot":`thread-tail-anchor`,"aria-hidden":`true`,className:`h-px shrink-0 md:hidden`})]})}function Xr({hasOlder:e,loading:t,error:n,fallback:r,retainedPages:i,onLoad:a}){return r?(0,Z.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,Z.jsxs)(`div`,{"data-slot":`history-start`,className:`flex items-center gap-3 text-[11px] text-soft-foreground`,children:[(0,Z.jsx)(`span`,{"aria-hidden":!0,className:`h-px flex-1 bg-border`}),`Start of session`,(0,Z.jsx)(`span`,{"aria-hidden":!0,className:`h-px flex-1 bg-border`})]}):(0,Z.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,Z.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,Z.jsx)(`span`,{className:`sr-only`,"aria-live":`polite`,children:t?`Loading earlier session history`:n||``})]})}function Zr({run:e}){let t=Pe(oe().data??[],e.id);return(0,Z.jsxs)(`div`,{"data-slot":`queued-state`,className:`flex flex-col items-center gap-1.5 py-10 text-center`,children:[(0,Z.jsx)(ke,{tone:`pending`,pulse:!0}),(0,Z.jsxs)(`p`,{className:`text-[13px] font-medium`,children:[`Waiting for a free agent slot`,t===void 0?``:` — #${t} in queue`]}),(0,Z.jsxs)(`p`,{className:`text-xs text-soft-foreground`,children:[e.workflow,` · starts automatically when a slot frees up`]})]})}export{Jr as TaskThreadRoute};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{i as t,t as n}from"./react-runtime-CCIEwYL0.js";import{G as r,Gi as i,J as a,Kt as o,Nt as s,Oa as ee,Wt as te,Y as ne,_ as c,aa as l,d as u,dr as re,en as ie,f as d,g as ae,h as oe,kt as se,l as ce,m as le,mr as ue,p as f,rn as de,v as p,y as fe}from"./alert-dialog-Bv9zV9w1.js";import{_ as pe,b as me,t as m,v as h}from"./utils-CG8vWc5K.js";import{a as he,i as ge,r as _e}from"./agent-accounts-BP0XBzQP.js";import{E as ve,F as ye,M as be,j as xe,r as Se}from"./prompt-templates-B4eJ8kQZ.js";import{u as Ce}from"./project-router-a1gx3dfP.js";import{i as we,n as Te,r as Ee,t as De}from"./skills-DFBiAuJG.js";import{t as Oe}from"./use-submit-shortcut-KWJsC906.js";var g=n(),_=e(t(),1);function v(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 ke(e){return e instanceof HTMLElement&&e.closest(`[cmdk-input]`)!==null}function y(e,t){return!(typeof e.key!=`string`||e.key.toLowerCase()!==t.toLowerCase()||!e.metaKey&&!e.ctrlKey||e.altKey||e.shiftKey||e.repeat||v(e.target)&&!ke(e.target))}function b(e,t){let n=_.useRef(t);_.useLayoutEffect(()=>{n.current=t}),_.useEffect(()=>{let t=t=>{y(t,e)&&(t.preventDefault(),n.current(t))};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e])}function Ae(e,t){return!(typeof e.key!=`string`||e.key.toLowerCase()!==t.toLowerCase()||e.metaKey||e.ctrlKey||e.altKey||e.shiftKey||e.repeat||v(e.target))}function x(e,t=typeof navigator>`u`?``:navigator.platform){let n=e.toUpperCase();return/mac|iphone|ipad|ipod/i.test(t)?`⌘${n}`:`Ctrl+${n}`}function je(e,t){let n=_.useRef(t);_.useLayoutEffect(()=>{n.current=t}),_.useEffect(()=>{let t=t=>{Ae(t,e)&&n.current(t)};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e])}function Me({...e}){return(0,g.jsx)(d,{"data-slot":`sheet`,...e})}function S({...e}){return(0,g.jsx)(fe,{"data-slot":`sheet-trigger`,...e})}function Ne({...e}){return(0,g.jsx)(f,{"data-slot":`sheet-close`,...e})}function C({...e}){return(0,g.jsx)(c,{"data-slot":`sheet-portal`,...e})}function Pe({className:e,...t}){return(0,g.jsx)(ae,{"data-slot":`sheet-overlay`,className:m(`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 Fe({className:e,children:t,side:n=`right`,showCloseButton:r=!0,overlayClassName:i,...a}){return(0,g.jsxs)(C,{children:[(0,g.jsx)(Pe,{className:i}),(0,g.jsxs)(le,{"data-slot":`sheet-content`,className:m(`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,g.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,g.jsx)(ie,{className:`size-4`}),(0,g.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})]})}function w({className:e,...t}){return(0,g.jsx)(`div`,{"data-slot":`sheet-header`,className:m(`flex flex-col gap-1.5 p-4`,e),...t})}function Ie({className:e,...t}){return(0,g.jsx)(p,{"data-slot":`sheet-title`,className:m(`font-semibold text-foreground`,e),...t})}function T({className:e,...t}){return(0,g.jsx)(oe,{"data-slot":`sheet-description`,className:m(`text-sm text-muted-foreground`,e),...t})}function Le(e){let[t,n]=_.useState(()=>Date.now());return _.useEffect(()=>{let t=setInterval(()=>n(Date.now()),e);return()=>clearInterval(t)},[e]),t}var Re={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 ze(e){return h(e.type)?e.type:Re[e.name.split(`.`).pop()?.toLowerCase()??``]??null}async function Be(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=ze(e)??`application/octet-stream`,a=me(i);return{mediaType:i,data:r,...a?{preview:`data:${i};base64,${r}`}:{},name:e.name||(a?`pasted image`:`pasted.${pe(i)}`),isImage:a}}function Ve(e,t){let n=[],r=[],i=t;for(let t of e){let e=t.name||`attachment`;if(ze(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 E=new Set([`/`,`@`]);function He(e,t){for(let n=t-1;n>=0;--n){let r=e[n];if(/\s/.test(r))return null;if(E.has(r))return n>0&&!/\s/.test(e[n-1])?null:{trigger:r,start:n,query:e.slice(n+1,t)}}return null}function Ue(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 D(){let e=window;return e.SpeechRecognition??e.webkitSpeechRecognition}function We(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 Ge(e){let[t,n]=_.useState(null),r=_.useRef(null),i=_.useRef(``),[a]=_.useState(()=>D()!==void 0),o=_.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 _.useEffect(()=>o,[o]),{supported:a,recording:t,start:_.useCallback(()=>{if(r.current)return;let t=D();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=We(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:_.useCallback(()=>o(),[o]),finish:_.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 O(e,t){let n=Math.max(0,Math.floor((t-e)/1e3));return`${Math.floor(n/60)}:${String(n%60).padStart(2,`0`)}`}var Ke=new Map,qe={KeyA:`Yes, approved.`,KeyC:`Continue.`};function k({onSubmit:e,retainDraftUntilSuccess:t=!1,onStop:n,stopOnEmpty:a=!1,stopping:c=!1,emptySubmitLabel:d,compactFeedback:ae=!1,idleFeedback:oe,pendingLabel:ce=`Starting task…`,failureHint:le=`Could not confirm submission. Check Tasks before you retry. Your draft is kept.`,clearOnSuccess:f=!0,onPendingChange:p,value:fe,onValueChange:pe,autoFocus:me=!1,mobileCollapsible:h=!1,mobileDisclosureKey:Ce,footerStart:ke,footerEnd:y,sessionControls:b,sessionModel:Ae,executionOptions:x,agentOptions:je,sendAriaLabel:Me=`Send`,disabled:S=!1,disabledReason:Ne=`Session closed — Continue to reopen.`,allowEmptySubmit:C=!1,placeholder:Pe=`Reply — / for skills, @ for files…`,ariaLabel:Fe=`Reply to the agent`,autocompleteSkills:w=!0,quickReplies:Ie=!1,getMentionCandidates:T,ref:Le}){let[Re,ze]=(0,_.useState)(``),E=fe??Re,D=(0,_.useRef)(E);D.current=E;let We=(0,_.useRef)(pe);We.current=pe;let O=(0,_.useCallback)(e=>{let t=typeof e==`function`?e(D.current):e;ze(t),We.current?.(t)},[]),[k,A]=(0,_.useState)([]),j=(0,_.useRef)(k);j.current=k;let[Xe,Ze]=(0,_.useState)(!1),M=c||Xe,N=(0,_.useRef)(M);N.current=M;let P=E.trim()!==``||k.length>0,Qe=!P&&(n!==void 0&&a||M),$e=!P&&d?d:Me,[F,I]=(0,_.useState)(!1),L=(0,_.useRef)(!1),et=(0,_.useRef)(0),R=(0,_.useRef)(!0);(0,_.useEffect)(()=>(R.current=!0,()=>{R.current=!1}),[]);let[z,B]=(0,_.useState)(null),V=M||t&&F,H=()=>N.current||t&&L.current,[U,W]=(0,_.useState)(null),[tt,nt]=(0,_.useState)(``),[rt,it]=(0,_.useState)(!1),G=(0,_.useRef)(null),K=(0,_.useId)(),at=(0,_.useId)(),ot=(0,_.useRef)(new Map),st=Ce===void 0?ot.current:Ke,ct=Ce??`default`,[,lt]=(0,_.useReducer)(e=>e+1,0),q=st.get(ct)??!1,ut=h&&!q,dt=(0,_.useRef)(null),J=(0,_.useRef)(null),ft=re(w&&rt),Y=ue(),pt=ee(),X=Ge(e=>l(e,{tone:`danger`}));(0,_.useEffect)(()=>{me&&G.current?.focus()},[]),(0,_.useImperativeHandle)(Le,()=>({insertAtCaret:e=>{if(H())return;let t=G.current,n=Se(D.current,t?.selectionStart??D.current.length,e);O(n.text),J.current=n.caret,t?.focus()}}),[O,t]);let mt=(0,_.useCallback)(()=>{let e=G.current;if(!e||S||H()){W(null);return}let t=He(e.value,e.selectionStart??e.value.length);if(t?.trigger===`/`&&!w||t?.trigger===`@`&&T===void 0)return W(null);t?.trigger===`/`&&it(!0),W(t)},[w,S,T,t]),Z=(0,_.useMemo)(()=>U===null?[]:U.trigger===`/`?Te(ft.data??[],U.query,Y.data?.skillUsage).map(e=>({value:`${e.name} ${e.path}`,insert:e.name,label:e.name,description:e.description,emphasized:we(e)})):(T?.()??[]).filter(e=>Ee(e,U.query)).map(e=>({value:e,insert:e,label:e,emphasized:!1})),[T,ft.data,U,Y.data?.skillUsage]),ht=Z.some(e=>e.value===tt)?tt:Z[0]?.value,gt=U!==null,_t=(0,_.useCallback)(()=>W(null),[]),vt=e=>{let t=G.current;if(!t||U===null||H())return;let n=t.selectionStart??t.value.length,r=Ue(t.value,U,n,e.insert);U.trigger===`/`&&Y.data!==void 0&&i({skillUsage:De(Y.data.skillUsage,e.insert)}).then(()=>pt.invalidateQueries({queryKey:de.uiState})).catch(()=>{}),O(r.text),J.current=r.caret,W(null),t.focus()};(0,_.useLayoutEffect)(()=>{let e=J.current,t=G.current;e!==null&&t&&(t.setSelectionRange(e,e),J.current=null)},[E]),(0,_.useLayoutEffect)(()=>{let e=G.current;e&&(e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,220)}px`)},[E,q]);let yt=(0,_.useCallback)(e=>{if(S||H())return;let n=et.current,r=Ve(e,j.current.length);for(let e of r.rejected)l(e,{tone:`danger`});for(let e of r.accepted)Be(e).then(e=>{!R.current||t&&L.current&&!N.current||n!==et.current||A(t=>t.length>=4?t:[...t,e])},()=>l(`${e.name||`Attachment`} could not be read — try attaching it again`,{tone:`danger`}))},[S,t]),bt=e=>{let t=[...e.clipboardData?.items??[]].filter(e=>e.kind===`file`).map(e=>e.getAsFile()).filter(e=>e!==null);t.length!==0&&(e.preventDefault(),yt(t))},xt=e=>{let t=[...e.dataTransfer?.files??[]];t.length!==0&&(e.preventDefault(),yt(t))},Q=(0,_.useCallback)(async(n,r,i)=>{let a=n.trim();if(!(S||c||L.current)&&!(a===``&&r.length===0&&!C)){L.current=!0,t&&(et.current+=1),I(!0),B(null),p?.(!0),W(null),i&&!t&&(O(``),A([]));try{await e(a,r.map(({mediaType:e,data:t})=>({mediaType:e,data:t}))),R.current&&t&&f&&(D.current===n&&O(``),j.current===r&&A([]))}catch(e){if(!R.current&&t)return;let a=e instanceof Error?e.message:String(e);t?B(a):(l(a,{tone:`danger`}),i&&(O(e=>e===``?n:`${n}\n${e}`),A(e=>[...r,...e].slice(0,4))))}finally{L.current=!1,R.current&&(p?.(!1),I(!1))}}},[C,S,c,e,t,f,p,O]),St=(0,_.useCallback)(()=>{S||c||L.current||Q(D.current,j.current,!0)},[S,c,Q]),Ct=async()=>{if(!(!n||c||L.current)){L.current=!0,I(!0),Ze(!0),B(null);try{await n()}catch(e){R.current&&B(e instanceof Error?e.message:String(e))}finally{L.current=!1,R.current&&(I(!1),Ze(!1))}}},wt=e=>{if(gt){if(e.key===`ArrowDown`||e.key===`ArrowUp`){if(e.preventDefault(),Z.length===0)return;let t=Z.findIndex(e=>e.value===ht),n=e.key===`ArrowDown`?1:-1,r=Z[(t+n+Z.length)%Z.length];nt(r.value);return}if(e.key===`Escape`){e.preventDefault(),_t();return}if((e.key===`Enter`||e.key===`Tab`)&&!e.shiftKey){let t=Z.find(e=>e.value===ht);if(t){e.preventDefault(),vt(t);return}_t()}}Oe({key:e.key,shiftKey:e.shiftKey,metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey,repeat:e.repeat,isComposing:e.nativeEvent.isComposing})&&(e.preventDefault(),St())};(0,_.useEffect)(()=>{if(!Ie||S)return;let e=e=>{if(!e.altKey||e.metaKey||e.ctrlKey||e.repeat||v(e.target))return;let t=qe[e.code];t!==void 0&&(e.preventDefault(),Q(t,[],!1))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[S,Ie,Q]);let Tt=e=>{if(S||N.current||L.current&&(e||t))return;let n=X.finish();if(n===``)return;let r=E.trim()===``?n:`${E.replace(/\s*$/,``)} ${n}`;if(e){t&&O(r),Q(r,k,!0);return}O(r),J.current=r.length,G.current?.focus()},$=X.recording,Et=X.supported?(0,g.jsxs)(u,{type:`button`,variant:`ghost`,size:`sm`,disabled:S||V,"aria-label":`Start dictation`,title:`Dictation`,className:m(`h-11 gap-1.5 px-2.5 text-xs font-medium text-muted-foreground md:h-8`,ut&&`hidden md:inline-flex`),onClick:()=>{H()||X.start()},children:[(0,g.jsx)(se,{"aria-hidden":`true`,className:`size-3.5`}),x||b?null:`Dictation`]}):null,Dt=n||M?(0,g.jsxs)(u,{type:`button`,variant:`outline`,size:`icon-sm`,"aria-label":M?`Stopping…`:`Stop`,"aria-busy":M||void 0,title:M?`Waiting for execution to stop`:`Stop execution; keep existing work`,disabled:F||M,className:m(`h-11 min-w-11 active:opacity-80`,Qe?`w-auto px-3`:`w-11`),onClick:()=>void Ct(),children:[(0,g.jsx)(te,{"aria-hidden":`true`,className:`size-3 fill-current`}),Qe?M?`Stopping…`:`Stop`:null]}):null,Ot=(0,g.jsx)(g.Fragment,{children:t||n||c?(0,g.jsx)(`div`,{className:m(`overflow-y-auto px-3 pb-2 text-xs leading-5 text-muted-foreground md:px-4`,ae?`min-h-6`:`h-24 md:h-20`),children:(0,g.jsx)(`div`,{id:`${K}-submission`,role:z===null?`status`:`alert`,"aria-atomic":`true`,tabIndex:z===null?void 0:0,className:`break-words`,children:M?`Stopping execution. Your draft is kept.`:F?ce:z===null?oe??null:(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(`p`,{className:`font-medium text-foreground`,children:z}),(0,g.jsx)(`p`,{children:le})]})})}):null}),kt=(0,g.jsxs)(`div`,{"data-slot":`composer-submit-row`,className:m(`ml-auto flex min-w-0 flex-wrap items-center justify-end gap-1 md:flex-nowrap`,x&&`new-task-submission`),children:[x||b?null:Et,y?(0,g.jsx)(`div`,{id:at,"data-slot":`composer-footer-end`,className:m(`min-w-0 flex-wrap items-center gap-1.5 md:flex-nowrap`,x&&`mr-auto`,h&&`max-md:[&_button]:min-h-11 max-md:[&_button]:min-w-11`,ut?`hidden md:flex`:`flex`),children:(0,g.jsx)(`div`,{className:`contents`,inert:V||void 0,children:y})}):null,(0,g.jsxs)(`div`,{className:`flex min-w-[100px] items-center justify-end gap-1`,"data-slot":`composer-actions`,children:[Dt,Qe?null:(0,g.jsxs)(u,{type:`button`,size:`icon-sm`,"aria-label":$e,"aria-busy":F&&!M||void 0,disabled:S||F||M||!P&&!C,className:m(x?`h-12 w-full gap-2 px-6`:b?`h-11 w-auto gap-2 px-5`:`size-11`,!P&&d&&`w-auto px-3`,`active:opacity-80`),onClick:St,children:[!b&&!P&&d?(0,g.jsx)(ye,{"aria-hidden":`true`}):null,x||b||!P&&d?$e:null,b||P||!d?(0,g.jsx)(r,{"aria-hidden":`true`}):null]})]})]});return(0,g.jsxs)(_e,{open:gt,onOpenChange:e=>e?void 0:_t(),children:[(0,g.jsx)(ge,{asChild:!0,children:(0,g.jsxs)(`div`,{ref:dt,"data-slot":`composer`,"data-disabled":S||void 0,onDrop:xt,onDragOver:e=>e.preventDefault(),className:m(x&&`new-task-composer`,b&&`session-composer`,S&&`opacity-80`),children:[(0,g.jsxs)(`div`,{"data-slot":`composer-editor`,className:m(`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`,x&&`new-task-editor`),children:[k.length>0?(0,g.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:k.map((e,t)=>(0,g.jsxs)(`button`,{type:`button`,"aria-label":`Remove ${e.name}`,title:V?`Attachment submitted`:`Click to remove`,disabled:V,className:m(`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:()=>{H()||A(e=>e.filter((e,n)=>n!==t))},children:[e.isImage?(0,g.jsx)(`img`,{src:e.preview,alt:``,className:`size-full object-cover`}):(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(s,{"aria-hidden":`true`,className:`size-3.5 shrink-0`}),(0,g.jsx)(`span`,{className:`truncate`,children:e.name})]}),(0,g.jsx)(`span`,{className:`absolute inset-0 hidden items-center justify-center bg-background/70 group-hover:flex group-focus-visible:flex`,children:(0,g.jsx)(ie,{"aria-hidden":`true`,className:`size-4`})})]},`${e.name}-${t}`))}):null,(0,g.jsx)(`label`,{htmlFor:K,className:x?`hidden px-5 pt-5 text-xs text-muted-foreground md:block`:`sr-only`,children:x?`Task description`:Fe}),(0,g.jsx)(`textarea`,{ref:G,id:K,autoComplete:`off`,rows:1,value:E,disabled:S,readOnly:V,"aria-busy":V||void 0,"aria-describedby":t?`${K}-submission`:void 0,"aria-label":Fe,placeholder:S?Ne:Pe,className:m(`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`,ut?`max-h-11 md:max-h-[220px]`:`max-h-[220px]`),onChange:e=>{H()||(O(e.target.value),mt())},onKeyDown:wt,onSelect:mt,onPaste:bt}),x?(0,g.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,g.jsx)(o,{"aria-hidden":`true`,className:`size-[15px] shrink-0`}),`Type / for a skill or workflow`]}):null,b&&$?(0,g.jsx)(`div`,{"data-slot":`session-controls`,inert:V||void 0,children:b}):null,$?(0,g.jsxs)(`div`,{children:[(0,g.jsx)(Ye,{transcript:$.transcript,startedAt:$.startedAt,insertionDisabled:V,onCancel:X.cancel,onInsert:()=>Tt(!1),onInsertAndSend:()=>Tt(!0)}),Dt?(0,g.jsx)(`div`,{className:`flex justify-end px-2 pb-2`,children:Dt}):null]}):(0,g.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:[b?(0,g.jsx)(`div`,{"data-slot":`session-controls`,inert:V||void 0,children:b}):null,(0,g.jsxs)(`div`,{"data-slot":`composer-footer-start`,className:m(`flex min-w-0 flex-wrap items-center gap-1`,x&&`w-full`),children:[(0,g.jsx)(Je,{disabled:S||V,onFiles:yt}),h?(0,g.jsx)(u,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`size-11 md:hidden`,"aria-label":q?`Collapse composer`:`Expand composer`,"aria-expanded":q,"aria-controls":y?`${K} ${at}`:K,onClick:()=>{st.set(ct,!q),lt()},children:(0,g.jsx)(ne,{"aria-hidden":`true`,className:m(`transition-transform motion-reduce:transition-none`,!q&&`rotate-180`)})}):null,(0,g.jsx)(`div`,{className:`contents`,inert:V||void 0,children:ke}),x||b?(0,g.jsx)(`div`,{children:Et}):null]}),Ae?(0,g.jsx)(`div`,{"data-slot":`session-model`,inert:V||void 0,children:Ae}):null,x?null:kt]}),x?null:Ot]}),x?(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(`div`,{"data-slot":`composer-agent-options`,inert:V||void 0,children:je}),(0,g.jsx)(`div`,{"data-slot":`composer-execution-panel`,inert:V||void 0,children:x}),kt,(0,g.jsx)(`div`,{"data-slot":`composer-feedback`,children:Ot})]}):null]})}),(0,g.jsx)(he,{side:`top`,align:`start`,sideOffset:8,className:`w-80 max-w-[calc(100vw-2rem)] p-0`,onOpenAutoFocus:e=>e.preventDefault(),onInteractOutside:e=>{dt.current?.contains(e.target)&&e.preventDefault()},children:(0,g.jsx)(ve,{shouldFilter:!1,value:ht??``,onValueChange:nt,children:(0,g.jsx)(be,{"data-slot":`composer-menu`,"data-trigger":U?.trigger,className:`max-h-[min(16rem,var(--radix-popover-content-available-height))] p-1`,children:Z.length===0?(0,g.jsx)(`p`,{className:`px-3 py-4 text-center text-xs text-muted-foreground`,children:U?.trigger===`@`?`No files seen in this session yet — full file search arrives with the Files tab.`:ft.isPending?`Loading skills…`:`No matching skills.`}):Z.map(e=>(0,g.jsxs)(xe,{value:e.value,"data-slot":`composer-menu-item`,"data-emphasized":e.emphasized||void 0,onSelect:()=>vt(e),children:[(0,g.jsx)(`span`,{className:m(`shrink-0 truncate`,e.emphasized&&`font-semibold`,U?.trigger===`@`&&`font-mono text-xs`),children:e.label}),e.description?(0,g.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs text-soft-foreground`,children:e.description}):null]},e.value))})})})]})}function Je({disabled:e,onFiles:t}){let n=(0,_.useRef)(null);return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(u,{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,g.jsx)(s,{"aria-hidden":`true`,className:`size-[15px]`})}),(0,g.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 Ye({transcript:e,startedAt:t,insertionDisabled:n,onCancel:i,onInsert:o,onInsertAndSend:s}){let ee=Le(1e3);return(0,g.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,g.jsx)(`span`,{"aria-hidden":`true`,className:`size-2 flex-none animate-pulse rounded-full bg-danger motion-reduce:animate-none`}),(0,g.jsx)(`span`,{"data-slot":`dictation-timer`,className:`text-xs font-medium text-muted-foreground tabular-nums`,children:O(t,ee)}),(0,g.jsx)(`span`,{"data-slot":`dictation-transcript`,"aria-live":`polite`,className:`min-w-0 flex-1 truncate text-sm text-foreground`,children:e===``?(0,g.jsx)(`span`,{className:`text-muted-foreground`,children:`Listening…`}):e}),(0,g.jsx)(u,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":`Cancel dictation`,className:`size-11 text-muted-foreground md:size-8`,onClick:i,children:(0,g.jsx)(ie,{"aria-hidden":`true`})}),(0,g.jsx)(u,{type:`button`,variant:`outline`,size:`icon-sm`,disabled:n,"aria-label":`Insert transcription`,className:`size-11 md:size-8`,onClick:o,children:(0,g.jsx)(a,{"aria-hidden":`true`})}),(0,g.jsx)(u,{type:`button`,size:`icon-sm`,disabled:n,"aria-label":`Insert transcription and send`,className:`size-11 md:size-8`,onClick:s,children:(0,g.jsx)(r,{"aria-hidden":`true`})})]})}function A(){return(0,g.jsx)(`div`,{"data-route":`task-thread`,className:`flex min-h-full flex-col`,children:(0,g.jsx)(ce,{icon:(0,g.jsx)(Ce,{className:`motion-safe:animate-spin`}),tone:`neutral`,title:`Loading task…`,subtitle:`Fetching the run and its session transcript.`})})}export{Ne as a,w as c,x as d,b as f,Me as i,Ie as l,k as n,Fe as o,je as p,Le as r,T as s,A as t,S as u};
|