@open-mercato/cezar 0.16.2 → 0.16.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.
Files changed (111) hide show
  1. package/dist/api-origin.d.ts +6 -0
  2. package/dist/api-origin.js +32 -0
  3. package/dist/api-origin.js.map +1 -0
  4. package/dist/automations/schedule-runner.d.ts +1 -0
  5. package/dist/automations/schedule-runner.js +2 -2
  6. package/dist/automations/schedule-runner.js.map +1 -1
  7. package/dist/core/agent-errors.d.ts +5 -0
  8. package/dist/core/agent-errors.js +49 -0
  9. package/dist/core/agent-errors.js.map +1 -1
  10. package/dist/core/claude-cli-runner.d.ts +3 -0
  11. package/dist/core/claude-cli-runner.js +20 -4
  12. package/dist/core/claude-cli-runner.js.map +1 -1
  13. package/dist/core/codex-ui-mapper.js +4 -1
  14. package/dist/core/codex-ui-mapper.js.map +1 -1
  15. package/dist/core/copilot-acp-runner.d.ts +1 -1
  16. package/dist/core/copilot-acp-runner.js +26 -5
  17. package/dist/core/copilot-acp-runner.js.map +1 -1
  18. package/dist/core/model-presets.d.ts +11 -0
  19. package/dist/core/model-presets.js +35 -1
  20. package/dist/core/model-presets.js.map +1 -1
  21. package/dist/core/opencode-model-catalog.js +3 -0
  22. package/dist/core/opencode-model-catalog.js.map +1 -1
  23. package/dist/core/opencode-server-runner.d.ts +7 -0
  24. package/dist/core/opencode-server-runner.js +36 -1
  25. package/dist/core/opencode-server-runner.js.map +1 -1
  26. package/dist/core/pi-runner.js +2 -0
  27. package/dist/core/pi-runner.js.map +1 -1
  28. package/dist/core/provider-auth.d.ts +6 -0
  29. package/dist/core/provider-auth.js +59 -13
  30. package/dist/core/provider-auth.js.map +1 -1
  31. package/dist/core/usage-limit.js +8 -2
  32. package/dist/core/usage-limit.js.map +1 -1
  33. package/dist/index.js +3 -19
  34. package/dist/index.js.map +1 -1
  35. package/dist/release/bump.d.ts +1 -1
  36. package/dist/release/bump.js +1 -1
  37. package/dist/release/stable.d.ts +21 -4
  38. package/dist/release/stable.js +48 -15
  39. package/dist/release/stable.js.map +1 -1
  40. package/dist/runs/agent-error-telemetry.js +4 -2
  41. package/dist/runs/agent-error-telemetry.js.map +1 -1
  42. package/dist/runs/store.d.ts +1 -1
  43. package/dist/runs/store.js +31 -4
  44. package/dist/runs/store.js.map +1 -1
  45. package/dist/server/git-changes.d.ts +22 -0
  46. package/dist/server/git-changes.js +19 -1
  47. package/dist/server/git-changes.js.map +1 -1
  48. package/dist/server/open-in-app.js +14 -3
  49. package/dist/server/open-in-app.js.map +1 -1
  50. package/dist/server/preview/location-reporter.d.ts +12 -0
  51. package/dist/server/preview/location-reporter.js +45 -0
  52. package/dist/server/preview/location-reporter.js.map +1 -0
  53. package/dist/server/preview/picker-script.d.ts +0 -22
  54. package/dist/server/preview/picker-script.js +3 -1
  55. package/dist/server/preview/picker-script.js.map +1 -1
  56. package/dist/server/provider-telemetry.d.ts +3 -1
  57. package/dist/server/provider-telemetry.js +4 -2
  58. package/dist/server/provider-telemetry.js.map +1 -1
  59. package/dist/server/repo-sync.js +5 -10
  60. package/dist/server/repo-sync.js.map +1 -1
  61. package/dist/server/server.d.ts +1854 -1854
  62. package/dist/server/server.js +7 -2
  63. package/dist/server/server.js.map +1 -1
  64. package/dist/server/worktree-lifecycle.d.ts +8 -8
  65. package/dist/telemetry.js +3 -1
  66. package/dist/telemetry.js.map +1 -1
  67. package/dist/workflows/continuation-context.d.ts +3 -1
  68. package/dist/workflows/continuation-context.js +22 -3
  69. package/dist/workflows/continuation-context.js.map +1 -1
  70. package/dist/workflows/run.d.ts +20 -9
  71. package/dist/workflows/run.js +49 -11
  72. package/dist/workflows/run.js.map +1 -1
  73. package/package.json +3 -3
  74. package/scripts/mock-copilot-acp.mjs +4 -0
  75. package/web/dist/assets/{agent-task-pickers-DEW3Vgdv.js → agent-task-pickers-CNuwgeJL.js} +1 -1
  76. package/web/dist/assets/{automations-route-Cx7mzYhD.js → automations-route-Cs1tsu1W.js} +1 -1
  77. package/web/dist/assets/{commit-list-xMdmPYbz.js → commit-list-Ti2arrt8.js} +1 -1
  78. package/web/dist/assets/{compare-variants-B6ja1M4D.js → compare-variants-CdchlJMs.js} +1 -1
  79. package/web/dist/assets/{dashboard-ClEGBFFq.js → dashboard-wi0EQack.js} +2 -2
  80. package/web/dist/assets/{file-preview-iucr8WDo.js → file-preview-pS9i9ZDR.js} +1 -1
  81. package/web/dist/assets/git-tab-loading-BC6WP7W4.js +1 -0
  82. package/web/dist/assets/{git-toolbar-DU5Ca6RI.js → git-toolbar-Dra1QlHb.js} +1 -1
  83. package/web/dist/assets/github-DZcdhMzw.js +1 -0
  84. package/web/dist/assets/{host-usage-DjDYDU0A.js → host-usage-DnkXF0CT.js} +1 -1
  85. package/web/dist/assets/index-qeFtKZ4e.js +22 -0
  86. package/web/dist/assets/{layout-cards-Sur4EWtx.js → layout-cards-CXMlrDUf.js} +1 -1
  87. package/web/dist/assets/{project-router-DZsR9P9C.js → project-router-CZzr7lzN.js} +2 -2
  88. package/web/dist/assets/queries-Bn7zl9OU.js +1 -0
  89. package/web/dist/assets/{reference-chip-DnemrSPW.js → reference-chip-CScP5y_O.js} +1 -1
  90. package/web/dist/assets/repo-git-CV-yXaSx.js +1 -0
  91. package/web/dist/assets/{run-diff-BPZ85gAE.js → run-diff-GHEaeAio.js} +2 -2
  92. package/web/dist/assets/{skills-BgCN1gTp.js → skills-DuSNv5op.js} +1 -1
  93. package/web/dist/assets/{task-commits-W1ZZiEt4.js → task-commits-D_gLpFQo.js} +1 -1
  94. package/web/dist/assets/{task-graph-DI2fn5M8.js → task-graph-BgHk8Y3v.js} +1 -1
  95. package/web/dist/assets/{task-notes-lmvd1UM7.js → task-notes-BBp0rdzM.js} +1 -1
  96. package/web/dist/assets/task-workspace-Cr9AjTxP.js +27 -0
  97. package/web/dist/assets/{terminal-drawer-DAkquqSe.js → terminal-drawer-CcPOjWwP.js} +2 -2
  98. package/web/dist/assets/{tracker-Cqdpt9RN.js → tracker-BHwMGsDY.js} +2 -2
  99. package/web/dist/assets/use-automations-Dh3Wj-79.js +5 -0
  100. package/web/dist/assets/{use-now-pBdvhv13.js → use-now-BB7W0F--.js} +1 -1
  101. package/web/dist/assets/{workflow-graph-l7O50dsV.js → workflow-graph-CcOTCItr.js} +3 -3
  102. package/web/dist/assets/worktree-lifecycle-operation-vTgExKUM.js +18 -0
  103. package/web/dist/index.html +10 -10
  104. package/web/dist/assets/git-tab-loading-BfC2ir8N.js +0 -1
  105. package/web/dist/assets/github-CELdSmld.js +0 -1
  106. package/web/dist/assets/index-BBND6Sg3.js +0 -22
  107. package/web/dist/assets/queries-CI0EmEcH.js +0 -1
  108. package/web/dist/assets/repo-git-Bj0PBOjX.js +0 -1
  109. package/web/dist/assets/task-workspace-B8Fpho3e.js +0 -27
  110. package/web/dist/assets/use-automations-v77gHYDG.js +0 -5
  111. package/web/dist/assets/worktree-lifecycle-operation-DOTiqQFx.js +0 -18
@@ -1,27 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/terminal-drawer-DAkquqSe.js","assets/rolldown-runtime-QTnfLwEv.js","assets/react-runtime-CCIEwYL0.js","assets/queries-CI0EmEcH.js","assets/button-Clwd6u4_.js","assets/bundle-mjs-BT31bpU6.js","assets/host-usage-DjDYDU0A.js","assets/use-desktop-BNN3U2y9.js","assets/tooltip-B628Gs7C.js","assets/icon-tooltip-YXzUubMO.js","assets/terminal-F3ZJ5fI8.js","assets/loader-circle-D-ter0qP.js","assets/square-8OFxLPoA.js","assets/plus-CBVm02wz.js","assets/x-DMIsmLBt.js","assets/alert-dialog-DvPnvVvK.js","assets/tabs-BUk8rSoE.js","assets/input-DIWTlsx6.js","assets/drawer-state-DasOAIpO.js","assets/terminal-drawer-BrP-ENHg.css","assets/task-graph-DI2fn5M8.js","assets/project-router-DZsR9P9C.js","assets/git-tab-loading-BfC2ir8N.js","assets/reference-chip-DnemrSPW.js","assets/circle-check-DnEaQ9Rj.js","assets/triangle-alert-BqI_9MkV.js","assets/git-pull-request-draft-Cn24ayXz.js","assets/token-metrics-Dk2ZNHb_.js","assets/textarea-ewNKsXDa.js","assets/check-Dt8U0Zvm.js","assets/git-toolbar-DU5Ca6RI.js","assets/upload-J0hBTVF7.js","assets/diff-stat-CiWUpWY0.js","assets/use-submit-shortcut-hAaAH4HY.js","assets/search-x-CuinYQnl.js","assets/collapsible-Bdyuw-he.js","assets/centered-state-nM7v9xtl.js","assets/workflow-graph-l7O50dsV.js","assets/download-DOJ8Dqfh.js","assets/settings-2-COky68xN.js","assets/message-square-EWpWB_Gr.js","assets/save-B8DEQI2V.js","assets/tag-yruQH0i-.js","assets/index-BBND6Sg3.js","assets/use-automations-v77gHYDG.js","assets/use-now-pBdvhv13.js","assets/arrow-left-BELOeFyX.js","assets/worktree-lifecycle-operation-DOTiqQFx.js","assets/file-1a6_DhLG.js","assets/chevron-right-VbYrJ_st.js","assets/markdown-Rbaca31B.js","assets/chunk-BO2N2NFS-MDrqQfMl.js","assets/lib-BxQXEXDF.js","assets/index-BCATUrmu.css","assets/workflow-graph-DLioOiRN.css"])))=>i.map(i=>d[i]);
2
- import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{i as t,t as n}from"./react-runtime-CCIEwYL0.js";import{Br as r,Ci as i,Ct as a,F as o,Gr as s,Hr as c,In as l,Ji as u,Jr as d,K as f,Nt as p,Qt as m,Ri as h,Rn as g,Rr as _,Sa as v,Ur as y,V as b,Vr as x,Wi as S,Wr as C,Xt as w,Yn as T,_t as E,a as D,aa as O,b as k,ba as A,ft as j,h as M,ha as N,hr as P,ii as F,it as I,j as ee,jt as L,mn as R,mr as z,na as B,nr as te,oi as ne,pn as re,pt as ie,r as V,rt as H,u as U,ur as ae,va as oe,vi as se,vt as ce,wt as le,x as ue,ya as W,yi as de,z as fe,zr as pe}from"./queries-CI0EmEcH.js";import{B as me,Ct as he,F as G,i as ge,jt as _e,r as K,t as q}from"./button-Clwd6u4_.js";import{i as ve}from"./bundle-mjs-BT31bpU6.js";import{C as ye,T as be,c as xe,f as J,m as Se,s as Ce,t as Y,w as we,x as Te}from"./project-router-DZsR9P9C.js";import{_ as Ee,f as De,g as Oe,h as ke,m as Ae,p as je,s as Me,v as Ne,y as Pe}from"./reference-chip-DnemrSPW.js";import{a as Fe,b as Ie,i as Le,n as Re,o as ze,s as Be,v as Ve,y as He}from"./use-now-pBdvhv13.js";import{t as Ue}from"./use-desktop-BNN3U2y9.js";import{A as We,An as Ge,B as Ke,Cn as qe,Ct as Je,D as Ye,En as Xe,Et as Ze,G as Qe,Gt as $e,H as et,I as tt,J as nt,Jt as rt,K as it,Kt as at,On as ot,St as st,T as ct,Tt as lt,U as ut,Ut as dt,V as ft,W as pt,Wt as mt,X as ht,Z as gt,Zt as _t,_ as vt,_t as yt,at as bt,bn as xt,bt as St,ct as Ct,dn as wt,dt as Tt,et as Et,fn as Dt,ft as Ot,g as kt,gt as At,ht as jt,it as Mt,jn as Nt,jt as Pt,k as Ft,l as It,lt as Lt,mt as Rt,n as zt,nt as Bt,ot as Vt,pt as Ht,q as Ut,qt as Wt,r as Gt,rt as Kt,st as qt,tn as Jt,tt as Yt,u as Xt,ut as Zt,v as Qt,vt as $t,wn as en,wt as tn,xn as nn,xt as rn,yn as an,yt as on,z as sn}from"./git-tab-loading-BfC2ir8N.js";import{c as cn,i as ln,l as un,n as dn,o as fn,r as pn,s as mn,t as hn,u as gn}from"./file-preview-iucr8WDo.js";import{t as _n}from"./arrow-left-BELOeFyX.js";import{C as vn,E as yn,G as bn,O as xn,U as Sn,W as Cn,i as wn,m as Tn,n as En,p as Dn,r as On,x as kn,y as An}from"./worktree-lifecycle-operation-DOTiqQFx.js";import{t as jn}from"./file-1a6_DhLG.js";import{a as Mn,i as Nn,r as Pn,t as Fn}from"./textarea-ewNKsXDa.js";import{t as In}from"./check-Dt8U0Zvm.js";import{f as Ln,i as Rn,n as zn,r as Bn,t as Vn}from"./tooltip-B628Gs7C.js";import{t as Hn}from"./chevron-right-VbYrJ_st.js";import{t as Un}from"./circle-check-DnEaQ9Rj.js";import{a as Wn,c as Gn,i as Kn,n as qn,r as Jn,t as Yn,u as Xn}from"./icon-tooltip-YXzUubMO.js";import{n as Zn,t as Qn}from"./terminal-F3ZJ5fI8.js";import{a as $n,f as er,l as tr,m as nr,p as rr,r as ir}from"./git-toolbar-DU5Ca6RI.js";import{t as ar}from"./file-text-DmMQx3hx.js";import{n as or}from"./upload-J0hBTVF7.js";import{n as sr,t as cr}from"./triangle-alert-BqI_9MkV.js";import{t as lr}from"./loader-circle-D-ter0qP.js";import{t as ur}from"./message-square-EWpWB_Gr.js";import{r as dr,t as fr}from"./use-submit-shortcut-hAaAH4HY.js";import{n as pr}from"./square-8OFxLPoA.js";import{t as mr}from"./plus-CBVm02wz.js";import{t as hr}from"./search-x-CuinYQnl.js";import{t as gr}from"./x-DMIsmLBt.js";import{n as _r,r as vr,t as yr}from"./collapsible-Bdyuw-he.js";import{a as br,c as xr,i as Sr,n as Cr,o as wr,r as Tr,s as Er,t as Dr}from"./alert-dialog-DvPnvVvK.js";import{i as Or,r as kr,t as Ar}from"./tabs-BUk8rSoE.js";import{t as jr}from"./input-DIWTlsx6.js";import{i as Mr}from"./token-metrics-Dk2ZNHb_.js";import{n as Nr,r as Pr}from"./drawer-state-DasOAIpO.js";import{n as Fr,t as Ir}from"./centered-state-nM7v9xtl.js";import{t as Lr}from"./markdown-Rbaca31B.js";import{a as Rr,o as zr}from"./scroll-within-Cm6fjjNd.js";import{t as Br}from"./markdown-BzqT8I8y.js";import{n as Vr,t as Hr}from"./types-BTlmexWF.js";import{t as Ur}from"./run-diff-BPZ85gAE.js";import{t as Wr}from"./diff-CJKocK17.js";import{i as Gr,r as Kr,t as qr}from"./task-commits-W1ZZiEt4.js";import{n as Jr,t as Yr}from"./layout-cards-Sur4EWtx.js";var Xr=120;function Zr(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Qr(e){let t=e.replace(/\s+/g,` `).trim();return t.length>Xr?`${t.slice(0,Xr-1)}…`:t}function X(e,...t){if(Zr(e))for(let n of t){let t=e[n];if(typeof t==`string`&&t.trim()!==``)return Qr(t)}}function $r(e){if(!Zr(e))return;let t=e.command;if(typeof t==`string`&&t.trim()!==``)return Qr(t);if(Array.isArray(t)){let e=t.filter(e=>typeof e==`string`);if(e.length>0)return Qr(e.join(` `))}}function ei(e){if(!Zr(e)||!Array.isArray(e.changes))return[];let t=[];for(let n of e.changes)Zr(n)&&typeof n.path==`string`&&n.path.trim()!==``&&t.push(n.path);return t}function ti(e){return X(e,`description`,`query`,`url`,`filePath`,`file_path`,`path`,`pattern`,`name`)}function ni(e,t){return t?`${e} ${t}`:e}function ri(e,t){let n=typeof e==`string`?e.toLowerCase():``;switch(n){case`bash`:case`commandexecution`:return{toolKind:`execute`,title:ni(`Ran`,$r(t)),subtitle:X(t,`description`)};case`edit`:case`multiedit`:return{toolKind:`edit`,title:ni(`Edit`,X(t,`file_path`,`filePath`,`path`))};case`write`:return{toolKind:`edit`,title:ni(`Write`,X(t,`file_path`,`filePath`,`path`))};case`notebookedit`:return{toolKind:`edit`,title:ni(`Edit`,X(t,`notebook_path`,`notebookPath`,`file_path`,`filePath`,`path`))};case`filechange`:{let e=ei(t);return{toolKind:`edit`,title:ni(`Edit`,e.length===1?e[0]:e.length>1?`${e.length} files`:void 0)}}case`read`:return{toolKind:`read`,title:ni(`Read`,X(t,`file_path`,`filePath`,`path`))};case`imageview`:return{toolKind:`read`,title:ni(`View image`,X(t,`path`))};case`glob`:case`grep`:return{toolKind:`search`,title:ni(`Search`,X(t,`pattern`,`query`)),subtitle:X(t,`path`)};case`webfetch`:return{toolKind:`fetch`,title:ni(`Fetch`,X(t,`url`))};case`websearch`:return{toolKind:`fetch`,title:ni(`Web search`,X(t,`query`))};case`task`:case`agent`:{let e=n===`agent`?`Agent`:`Task`,r=X(t,`subagent_type`,`subagentType`),i=X(t,`description`,`prompt`)??r;return{toolKind:`task`,title:i?`${e}: ${i}`:e,subtitle:i===r?void 0:r}}case`skill`:{let e=X(t,`skill`,`name`,`command`);return{toolKind:`skill`,title:e?`Skill: ${e}`:`Skill`,subtitle:X(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=X(t,`server`),n=X(t,`tool`);return e&&n?{toolKind:`other`,title:`${e}.${n}`}:{toolKind:`other`,title:`MCP tool`,subtitle:ti(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()!==``?Qr(e):`Tool`,subtitle:ti(t)}}var ii=G(`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`}]]),ai=G(`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`}]]),oi=G(`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`}]]),si=G(`list-todo`,[[`path`,{d:`M13 5h8`,key:`a7qcls`}],[`path`,{d:`M13 12h8`,key:`h98zly`}],[`path`,{d:`M13 19h8`,key:`c3s6r1`}],[`path`,{d:`m3 17 2 2 4-4`,key:`1jhpwq`}],[`rect`,{x:`3`,y:`4`,width:`6`,height:`6`,rx:`1`,key:`cif1o7`}]]),ci=G(`minimize-2`,[[`path`,{d:`m14 10 7-7`,key:`oa77jy`}],[`path`,{d:`M20 10h-6V4`,key:`mjg0md`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M4 14h6v6`,key:`rmj7iw`}]]),li=G(`rotate-cw`,[[`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`,key:`1p45f6`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}]]),ui=G(`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`}]]),Z=e(t(),1);function di(e,t,n){let[r,i]=(0,Z.useState)({key:n,value:e}),a=(0,Z.useRef)(e);a.current=e;let o=(0,Z.useRef)(n);o.current=n;let s=(0,Z.useRef)(0),c=(0,Z.useRef)(void 0),l=(0,Z.useRef)(!1),u=!Object.is(r.value,e);return r.key===n?u&&c.current===void 0&&Date.now()-s.current>=t&&i({key:n,value:e}):i({key:n,value:e}),(0,Z.useEffect)(()=>{if(!l.current){l.current=!0;return}clearTimeout(c.current),c.current=void 0,s.current=Date.now()},[r]),(0,Z.useEffect)(()=>{if(Object.is(r.value,e)||c.current!==void 0)return;let n=Math.max(0,s.current+t-Date.now());c.current=setTimeout(()=>{c.current=void 0,s.current=Date.now(),i({key:o.current,value:a.current})},n)},[r,e,t]),(0,Z.useEffect)(()=>()=>clearTimeout(c.current),[]),r.value}var fi=5,pi=120,mi=200,hi=5e3,gi=15e3,_i=[];function vi(...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 yi(e){let t=-1/0;for(let n of e){if(n.seq<=t)return!1;t=n.seq}return!0}function bi(e){for(let t=e.length-1;t>=0;--t)if(e[t].newerCursor===void 0)return e[t]}function xi(...e){if(!e.every(yi))return vi(...e);let t=e.map(()=>0),n=[];for(;;){let r=1/0;for(let n=0;n<e.length;n+=1){let i=e[n][t[n]];i!==void 0&&i.seq<r&&(r=i.seq)}if(r===1/0)return n;let i;for(let n=0;n<e.length;n+=1){let a=e[n][t[n]];a?.seq===r&&(i=a,t[n]=t[n]+1)}i!==void 0&&n.push(i)}}function Si(e,t,n=-1/0){let r=new Set(t.map(({seq:e})=>e)),i=new Map;for(let e of t){if(e.type!==`item.updated`&&e.type!==`item.completed`)continue;let t=Ve(e);t!==void 0&&i.set(t,Math.max(i.get(t)??-1/0,e.seq))}return e.filter(e=>{if(r.has(e.seq)||e.seq<=n&&e.type!==`item.delta`&&e.type!==`item.updated`)return!0;if(e.type!==`item.delta`&&e.type!==`item.updated`)return!1;let t=i.get(Ve(e)??``);return t!==void 0&&t>e.seq}).map(({seq:e})=>e)}function Ci(e,t){if(t.length===0)return e.slice();let n=e.at(-1)?.seq??-1/0,r=-1/0;for(let n of t){if(n.seq<=r)return vi(e,t);r=n.seq}return e.length===0||t[0].seq>n?[...e,...t]:xi(e,t)}function wi(e){let t=me(),n=v(),i=[`run-history`,t,e],a=[`run-history-context`,t,e],o=[`run-history-tail`,t,e],s=oe({queryKey:i,enabled:e!==void 0,initialPageParam:void 0,queryFn:({pageParam:t,signal:n})=>r(e,t,{signal:n}),getPreviousPageParam:e=>e.olderCursor,getNextPageParam:e=>e.newerCursor,maxPages:fi,retry:1}),c=A({queryKey:a,enabled:e!==void 0,queryFn:({signal:t})=>x(e,{signal:t}),retry:1}),l=s.isError&&s.data===void 0&&!s.isFetchPreviousPageError&&!s.isFetchNextPageError&&!s.isRefetchError,u=c.isError&&c.data===void 0&&!c.isRefetchError,d=s.data?.pages??[],f=(0,Z.useRef)(void 0),p=`${t}\0${e??``}`,m=(0,Z.useRef)({key:p,fallbackLatched:!1}),h=(0,Z.useRef)(Promise.resolve()),g=(0,Z.useRef)(0);m.current.key!==p&&(m.current={key:p,fallbackLatched:!1},h.current=Promise.resolve(),g.current+=1,f.current=void 0),(l||u)&&(m.current.fallbackLatched=!0);let _=m.current.fallbackLatched,y=(0,Z.useCallback)(e=>{let t=h.current,n;return h.current=new Promise(e=>{n=e}),t.then(e).finally(n)},[]),b=bi(d),S=d.length>0?n.getQueryData(o):void 0;b&&(!f.current||b.asOfSeq>=f.current.asOfSeq)?f.current=b:S&&(!f.current||S.asOfSeq>=f.current.asOfSeq)&&(f.current=S);let C=f.current??b??S??(d.length>0?d.at(-1):void 0),w=(0,Z.useRef)(void 0),T=(0,Z.useCallback)(async t=>{if(e===void 0||w.current===p)return!1;w.current=p;let a=g.current,s=new AbortController,c;try{let l=await Promise.race([r(e,void 0,{signal:s.signal}),new Promise((e,t)=>{c=setTimeout(()=>{s.abort(),t(Error(`history compaction timed out`))},gi)})]);if(m.current.key!==p||g.current!==a)return!1;let u=n.getQueryData(i),d=bi(u?.pages??[]),h=n.getQueryData(o);if(Math.max(d?.asOfSeq??-1/0,h?.asOfSeq??-1/0,f.current?.asOfSeq??-1/0)>=l.asOfSeq)return!1;let _=u?(()=>{let e=[...u.pages],t=[...u.pageParams],n=d?e.indexOf(d):-1;for(n>=0?(e[n]=l,t[n]=void 0):(e.push(l),t.push(void 0));e.length>fi;)e.shift(),t.shift();return{pages:e,pageParams:t}})():{pages:[l],pageParams:[void 0]};return n.setQueryData(i,_),n.setQueryData(o,l),f.current=l,Si(t,_.pages.flatMap(e=>e.events),l.asOfSeq)}catch{return!1}finally{clearTimeout(c),s.abort(),w.current===p&&(w.current=void 0)}},[i,p,n,e,o]),E=Ie(C&&!_?e:void 0,C?{cursor:C.liveCursor,afterSeq:C.asOfSeq,compactWhenOver:hi,compactAt:mi,onCompact:T}:{}),D=Ie(_?e:void 0),O=di(E,pi,e),k=di(D,pi,e),j=(0,Z.useRef)({runId:void 0,scope:t,events:[]});(j.current.runId!==e||j.current.scope!==t)&&(j.current={runId:e,scope:t,events:[]}),_||(j.current.events=O);let M=_?j.current.events:_i,N=(0,Z.useMemo)(()=>{let e=d.map(e=>e.events);return C!==void 0&&!d.includes(C)&&e.push(C.events),vi(...e)},[C,d]);(0,Z.useEffect)(()=>{let e=bi(d);e&&n.setQueryData(o,e)},[d,n,e,t]);let P=(0,Z.useMemo)(()=>_?xi(N,M,k):Ci(N,O),[_,k,M,O,N]),F=(0,Z.useMemo)(()=>{if(_)return P;let e=c.data?.contextEvents??[],t=c.data?.asOfSeq??0;return xi(e,P.filter(({seq:e})=>e>t),O.filter(({seq:e})=>e<=t))},[c.data,_,O,P]),I=(0,Z.useCallback)(async()=>{let e=p,t=g.current,r=bi(n.getQueryData(i)?.pages??[]);r&&n.setQueryData(o,r);try{await y(()=>s.fetchPreviousPage())}finally{if(m.current.key!==e||g.current!==t)return;let r=f.current;if(!r)return;n.setQueryData(i,e=>{if(!e)return e;let t=bi(e.pages),n=t?e.pages.indexOf(t):-1;if(n<0||e.pages[n].asOfSeq>=r.asOfSeq)return e;let i=[...e.pages];return i[n]=r,{...e,pages:i}})}},[y,s.fetchPreviousPage,i,n,o]),ee=(0,Z.useCallback)(async()=>{g.current+=1,h.current=Promise.resolve();let e=e=>f.current??bi(e)??n.getQueryData(o),t=n.getQueryData(i);if(!e(t?.pages??[])){f.current=void 0,n.removeQueries({queryKey:o,exact:!0}),n.resetQueries({queryKey:i,exact:!0});return}if(t?.pages.length===1&&t.pages[0]===e(t.pages)&&!s.isFetchingPreviousPage)return;await n.cancelQueries({queryKey:i,exact:!0});let r=e(n.getQueryData(i)?.pages??[]);r&&(n.setQueryData(i,{pages:[r],pageParams:[void 0]}),n.setQueryData(o,r),f.current=r)},[s.isFetchingPreviousPage,i,n,o]);return{visibleEvents:P,currentEvents:F,isPending:!_&&s.isPending,contextPending:!_&&c.isPending,fallback:_,hasOlder:!_&&!!s.hasPreviousPage,isFetchingOlder:s.isFetchingPreviousPage,olderError:s.isFetchPreviousPageError?s.error instanceof Error?s.error.message:`Could not load earlier items`:void 0,loadOlder:I,jumpToLatest:ee,retainedPages:d.length}}var Ti=`design-picks`,Ei=1e5,Di=(e,t)=>typeof e==`string`?e.slice(0,t):``,Oi=e=>typeof e==`number`&&Number.isFinite(e)?Math.round(e):0;function ki(e){if(typeof e!=`object`||!e)return null;let t=e,n=Di(t.selector,400),r=Di(t.tag,40);if(n===``||r===``)return null;let i=t.rect??{},a=t.viewport??{},o={};if(t.styles!==null&&typeof t.styles==`object`)for(let[e,n]of Object.entries(t.styles).slice(0,30))typeof n==`string`&&/^[a-z-]{1,40}$/.test(e)&&(o[e]=n.slice(0,160));return{url:Di(t.url,2e3),selector:n,tag:r,text:Di(t.text,200),html:Di(t.html,1600),styles:o,rect:{x:Oi(i.x),y:Oi(i.y),width:Oi(i.width),height:Oi(i.height)},viewport:{width:Oi(a.width),height:Oi(a.height)},components:Array.isArray(t.components)?t.components.filter(e=>typeof e==`string`).slice(0,6).map(e=>e.slice(0,80)):[],source:Di(t.source,300),...typeof t.mark==`string`&&/^[a-z0-9-]{1,24}$/.test(t.mark)?{mark:t.mark}:{}}}function Ai(e){let t=e.selector.split(` > `).at(-1)??e.tag;return e.components[0]?`${e.components[0]} · ${t}`:t}var ji=`Elements selected in the app preview:`;function Mi(e,t){let n=Math.max(0,...(e.match(/`+/g)??[]).map(e=>e.length)),r="`".repeat(Math.max(3,n+1));return`${r}${t}\n${e}\n${r}`}var Ni=e=>e.split(`
3
- `).map(e=>e===``?``:` ${e}`).join(`
4
- `);function Pi(e){return e.length===0?``:`${ji}\n\n${e.map(e=>{let t=[`- \`${e.selector}\`${e.url?` on ${e.url}`:``}`];e.components.length>0?t.push(` component: ${[...e.components].reverse().join(` › `)}${e.source?` (${e.source})`:``}`):e.source&&t.push(` source: ${e.source}`),t.push(` box: ${e.rect.width}×${e.rect.height} at ${e.rect.x},${e.rect.y} (viewport ${e.viewport.width}×${e.viewport.height})`),e.text&&t.push(` text: ${JSON.stringify(e.text)}`);let n=Object.entries(e.styles);return n.length>0&&t.push(` styles: ${n.map(([e,t])=>`${e}: ${t}`).join(`; `)}`),`${t.join(`
5
- `)}\n\n${Ni(Mi(e.html,`html`))}`}).join(`
6
-
7
- `)}`}function Fi(e,t){let n=Pi(t);if(n===``)return e;let r=e.trim()===``?n:`${e}\n\n${n}`;if(r.length>Ei)throw Error(`Too long with the ${t.length===1?`selected element`:`${t.length} selected elements`} attached — remove some of them.`);return r}var Q=n(),Ii=12e3,Li=/^(localhost|127\.0\.0\.1|0\.0\.0\.0|\[?::1\]?|.+\.local)$/i;function Ri({state:e,onChange:t,onPickElement:n,designMarks:r,renderDesignNote:i,onDesignEscape:a,renderEmpty:o}){let s=e.tabs.length>0?e.tabs:[``],c=Math.min(e.active,s.length-1),l=s[c]??``,[u,d]=(0,Z.useState)(l),[f,p]=(0,Z.useState)(l===``?`idle`:`loading`),[m,h]=(0,Z.useState)(0),[g,_]=(0,Z.useState)(l),v=ee(),y=(0,Z.useRef)(null),[b,x]=(0,Z.useState)({}),S=b[c]??Gi(l),C=S.position>0,w=S.position>=0&&S.position<S.stack.length-1;(0,Z.useEffect)(()=>{if(y.current&&y.current.index===c&&y.current.url===l){y.current=null;return}y.current=null,d(l),_(l),p(l===``?`idle`:`loading`)},[c,l]);let T=v.data?.capabilities?.localHandoff??!0,E=g!==``&&!T&&Zi(g),[D,O]=(0,Z.useState)(!1),[k,A]=(0,Z.useState)(null),[j,M]=(0,Z.useState)(!1),N=(0,Z.useRef)(null),P=n!==void 0,I=P&&(v.data?.capabilities?.designMode??!1),L=I?null:v.data?.capabilities?.localHandoff===!1?`Design Mode needs a local cockpit — a hosted one cannot reach the task's local dev server`:`Design Mode is turned off on this cockpit (CEZ_DESIGN_MODE=0)`,R=Yi(g),z=I&&D&&R!==null,B=k!==null&&k.upstream===R?k.origin:null,te=z&&B===null,ne=B!==null&&R!==null?B+g.slice(R.length):g;(0,Z.useEffect)(()=>{if(!z||R===null)return;let e=!1;return F({target:R,parentOrigin:window.location.origin}).then(t=>{e||A({upstream:R,origin:t.origin})}).catch(t=>{e||(O(!1),J(t instanceof Error&&t.message?t.message:`Design Mode could not start.`,{tone:`danger`}))}),()=>{e=!0}},[z,m,R]),(0,Z.useEffect)(()=>M(!1),[ne,m]),(0,Z.useEffect)(()=>{!j||B===null||N.current?.contentWindow?.postMessage({source:`cezar-design-host`,type:`set-active`,active:z},B)},[z,B,j]);let re=i!==void 0,[ie,V]=(0,Z.useState)(!1),[H,U]=(0,Z.useState)(null),[ae,oe]=(0,Z.useState)({}),[se,ce]=(0,Z.useState)(!1),le=(0,Z.useRef)(null),ue=(0,Z.useRef)(null),[W,de]=(0,Z.useState)(null),fe=(0,Z.useCallback)(()=>V(!1),[]),pe=r??Bi,me=H!==null&&pe.some(e=>e.key===H),he=re&&I&&ie&&me,G=H===null?void 0:ae[H],ge=re&&B!==null&&se?pe.filter(e=>e.draft&&!(e.key in ae)):Bi,_e=(0,Z.useRef)(null);(0,Z.useEffect)(()=>{me?_e.current=H:ie&&_e.current===H&&V(!1)},[H,me,ie]),(0,Z.useEffect)(()=>{oe({}),ce(!1)},[ne,m]),(0,Z.useLayoutEffect)(()=>{if(!he)return;let e=le.current,t=ue.current;!e||!t||de(Wi(G,{width:e.clientWidth,height:e.clientHeight},{width:t.offsetWidth,height:t.offsetHeight}))},[H,G,he]);let ve=W!==null;(0,Z.useEffect)(()=>{he&&ve&&ue.current?.querySelector(`textarea`)?.focus()},[H,he,ve]);let ye=JSON.stringify(pe.map(({key:e,n:t,selector:n,path:r})=>({key:e,n:t,selector:n,path:r}))),be=(0,Z.useCallback)(()=>{B!==null&&N.current?.contentWindow?.postMessage({source:`cezar-design-host`,type:`set-marks`,marks:JSON.parse(ye)},B)},[ye,B]);(0,Z.useEffect)(()=>{j&&be()},[j,be]);let xe=(0,Z.useRef)(null);xe.current=he?H:null,(0,Z.useEffect)(()=>{if(B===null)return;let e=e=>{if(e.origin!==B||e.source!==N.current?.contentWindow)return;let t=e.data;if(!(typeof t!=`object`||!t||t.source!==`cezar-design`)){if(t.type===`ready`)M(!0);else if(t.type===`cancel`)xe.current===null?O(!1):(a?.(xe.current),V(!1));else if(t.type===`mark-clicked`&&typeof t.key==`string`)U(t.key),V(!0);else if(t.type===`rects`)oe(Vi(t.rects)),ce(!0);else if(t.type===`picked`){let e=ki(t.element);if(!e||!n?.(e)){be();return}if(!re){J(`Element picked.`);return}let r=e.mark;r!==void 0&&oe(t=>({...t,[r]:e.rect})),U(r??null),V(!0)}}};return window.addEventListener(`message`,e),()=>window.removeEventListener(`message`,e)},[re,B,a,n,be]);let Se=(0,Z.useCallback)(()=>{D||A(null)},[D]);(0,Z.useEffect)(()=>{if(f!==`loading`||g===``||E)return;let e=setTimeout(()=>p(`failed`),Ii);return()=>clearTimeout(e)},[E,m,f,g]);let Ce=(0,Z.useCallback)(e=>{let t=Ji(e);t!==null&&(Se(),_(t),d(t),p(`loading`),h(e=>e+1),x(e=>{let n=e[c]??Gi(l),r=n.stack.slice(0,n.position+1);if(r[r.length-1]===t)return e;let i=[...r,t].slice(-Ki);return{...e,[c]:{stack:i,position:i.length-1}}}))},[c,l,Se]),Y=(0,Z.useCallback)(e=>{let t=S.position+e,n=S.stack[t];n!==void 0&&(Se(),x(e=>({...e,[c]:{stack:S.stack,position:t}})),_(n),d(n),p(`loading`),h(e=>e+1))},[c,S.position,S.stack,Se]),we=(0,Z.useCallback)(()=>{g!==``&&(p(`idle`),s[c]!==g&&g.length<=ht&&(y.current={index:c,url:g},t({...e,tabs:s.map((e,t)=>t===c?g:e)})))},[c,t,e,s,g]),Te=(0,Z.useCallback)(()=>{s.length>=Ut||t({tabs:[...s,``],active:s.length})},[t,s]),Ee=(0,Z.useCallback)(e=>{let n=s.filter((t,n)=>n!==e);if(n.length===0){t(Lt()),x({});return}t({tabs:n,active:e<c?c-1:Math.min(c,n.length-1)}),x(t=>{let n={};for(let[r,i]of Object.entries(t)){let t=Number(r);t!==e&&(n[t>e?t-1:t]=i)}return n})},[c,t,s]);return(0,Q.jsxs)(`div`,{"data-slot":`browser-view`,className:`flex h-full min-h-0 flex-col`,children:[(0,Q.jsx)(Ar,{value:String(c),onValueChange:n=>t({...e,active:Number(n)}),className:`shrink-0 gap-0`,children:(0,Q.jsxs)(kr,{"aria-label":`Browser tabs`,className:`flex w-full justify-start gap-0.5 overflow-x-auto rounded-none bg-transparent px-3 py-0`,children:[s.map((n,r)=>(0,Q.jsxs)(`div`,{"data-slot":`browser-tab`,"data-active":r===c?``:void 0,className:K(`group flex h-6 shrink-0 items-center rounded-sm pl-2 pr-0.5 text-xs font-medium`,r===c?`bg-muted text-foreground`:`text-muted-foreground hover:text-foreground`),children:[(0,Q.jsx)(Or,{value:String(r),onClick:()=>{r!==c&&t({...e,active:r})},title:n||`New tab`,className:`inline-block h-auto max-w-32 flex-none truncate rounded-none border-0 p-0 text-xs font-medium text-inherit hover:text-inherit focus-visible:underline focus-visible:ring-0 focus-visible:outline-0 data-[state=active]:bg-transparent data-[state=active]:font-medium data-[state=active]:text-inherit group-data-[variant=default]/tabs-list:data-[state=active]:shadow-none`,children:qi(n)}),(0,Q.jsx)(q,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":`Close tab ${qi(n)}`,onClick:()=>Ee(r),className:K(`ml-1 size-4 rounded text-inherit opacity-0 transition-opacity hover:bg-background hover:text-inherit focus-visible:opacity-100 group-hover:opacity-100`,r===c&&`opacity-60`),children:(0,Q.jsx)(gr,{"aria-hidden":`true`,className:`size-3`})})]},r)),s.length<Ut?(0,Q.jsx)(q,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":`New tab`,title:`New tab`,onClick:Te,className:`size-6 rounded`,children:(0,Q.jsx)(mr,{"aria-hidden":`true`,className:`size-3.5`})}):null]})}),(0,Q.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1 border-b border-border/70 px-3 pb-2`,children:[(0,Q.jsx)(zi,{label:`Back`,disabled:!C,onClick:()=>Y(-1),icon:(0,Q.jsx)(_n,{"aria-hidden":`true`,className:`size-3.5`})}),(0,Q.jsx)(zi,{label:`Forward`,disabled:!w,onClick:()=>Y(1),icon:(0,Q.jsx)(bn,{"aria-hidden":`true`,className:`size-3.5`})}),(0,Q.jsx)(zi,{label:`Reload`,onClick:()=>{g!==``&&(Se(),p(`loading`),h(e=>e+1))},icon:(0,Q.jsx)(li,{"aria-hidden":`true`,className:K(`size-3.5`,f===`loading`&&`animate-spin`)})}),(0,Q.jsx)(`form`,{className:`min-w-0 flex-1`,onSubmit:e=>{e.preventDefault(),Ce(u)},children:(0,Q.jsx)(jr,{value:u,onChange:e=>d(e.target.value),placeholder:`Enter an address, e.g. http://localhost:3000`,"aria-label":`Address`,spellCheck:!1,className:`h-8 text-[13px] focus-visible:ring-ring/30 md:text-[13px]`})}),P?(0,Q.jsxs)(q,{type:`button`,"data-slot":`browser-design-toggle`,variant:z?`primary`:`outline`,size:`sm`,"aria-pressed":z,disabled:L!==null||R===null,title:L??(R===null?`Design Mode works on local http:// addresses`:z?`Stop selecting elements (Esc)`:`Click an element of the page to send it to the agent`),onClick:()=>O(e=>!e),className:`ml-1 disabled:opacity-40`,children:[(0,Q.jsx)(mn,{"aria-hidden":`true`,className:`size-3.5`}),`Design Mode`]}):null]}),(0,Q.jsxs)(`div`,{ref:le,className:`relative min-h-0 flex-1`,children:[E?(0,Q.jsx)(Ir,{icon:(0,Q.jsx)(cr,{}),tone:`neutral`,heading:`h2`,title:`This address points at the machine you are sitting at`,subtitle:`This cockpit runs remotely, so a local address would open on your computer rather than on the task's host. Open the cockpit on the task's machine to preview its app.`}):g===``&&o&&T?o(Ce):g===``?(0,Q.jsx)(Ir,{icon:(0,Q.jsx)(Xe,{}),tone:`neutral`,heading:`h2`,title:`Empty tab`,subtitle:`Enter the address of the task's app, e.g. http://localhost:3000 — then switch on Design Mode to point at an element and tell the agent what to change.`}):(0,Q.jsxs)(Q.Fragment,{children:[f===`failed`?(0,Q.jsxs)(`div`,{"data-slot":`browser-failed`,className:`absolute inset-x-0 top-0 z-10 border-b border-border bg-background px-3 py-2 text-xs text-soft-foreground`,children:[(0,Q.jsx)(`span`,{className:`font-medium text-foreground`,children:`Could not open`}),` — the page did not respond or does not allow embedding. The address is still in the bar; you can fix it.`]}):null,ge.length>0?(0,Q.jsx)(`div`,{"data-slot":`browser-design-adrift`,className:`absolute bottom-3 left-3 z-10 flex max-w-[60%] flex-wrap gap-1.5`,children:ge.map(e=>(0,Q.jsx)(q,{type:`button`,variant:`outline`,size:`sm`,title:`A note in progress — its element could not be found on this page`,onClick:()=>{U(e.key),V(!0)},className:`max-w-48`,children:(0,Q.jsxs)(`span`,{className:`truncate`,children:[`Draft · `,e.label]})},e.key))}):null,z&&f===`idle`&&!he&&ge.length===0?(0,Q.jsx)(`p`,{"data-slot":`browser-design-hint`,className:`pointer-events-none absolute bottom-3 left-1/2 z-10 -translate-x-1/2 rounded-full border border-border bg-background/95 px-3 py-1 text-xs whitespace-nowrap text-soft-foreground shadow-sm`,children:re?`Click an element to write a note about it · Esc to stop`:`Click an element to pick it · Esc to stop`}):null,te?null:(0,Q.jsx)(`iframe`,{ref:N,src:ne,title:`Preview`,onLoad:we,sandbox:`allow-same-origin allow-scripts allow-forms allow-modals allow-popups`,allow:``,referrerPolicy:`no-referrer`,className:K(`size-full border-0`,f===`loading`&&`invisible`)},`${ne}#${m}`),f===`loading`?(0,Q.jsx)(`p`,{className:`absolute inset-0 grid place-items-center text-xs text-soft-foreground`,children:`Loading…`}):null]}),he?(0,Q.jsx)(`div`,{ref:ue,"data-slot":`browser-design-note`,role:`dialog`,"aria-label":`Note about the selected elements`,style:W?{left:W.left,top:W.top}:{left:0,top:0,visibility:`hidden`},className:`absolute z-20 w-[min(360px,calc(100%-16px))] rounded-xl border border-border bg-background shadow-lg`,children:H===null?null:i({mark:H,close:fe})}):null]})]})}function zi({label:e,icon:t,onClick:n,disabled:r}){return(0,Q.jsx)(q,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":e,title:e,onClick:n,disabled:r,className:`disabled:opacity-40`,children:t})}var Bi=[];function Vi(e){let t={};if(!Array.isArray(e))return t;for(let n of e.slice(0,50)){if(typeof n!=`object`||!n)continue;let e=n;if(typeof e.key!=`string`||!/^[a-z0-9-]{1,24}$/.test(e.key))continue;let r=e=>typeof e==`number`&&Number.isFinite(e)?e:0;t[e.key]={x:r(e.x),y:r(e.y),width:r(e.width),height:r(e.height)}}return t}var Hi=10,Ui=8;function Wi(e,t,n){let r=Math.max(Ui,t.width-n.width-Ui),i=Math.max(Ui,t.height-n.height-Ui);if(!e)return{left:r,top:i};let a=(e,t)=>Math.min(Math.max(e,Ui),t),o=e.y+e.height+Hi,s=e.y-Hi-n.height,c=o+n.height+Ui<=t.height?o:s>=Ui?s:o;return{left:a(e.x,r),top:a(c,i)}}function Gi(e){return e===``?{stack:[],position:-1}:{stack:[e],position:0}}var Ki=50;function qi(e){if(e===``)return`New tab`;try{let t=new URL(e),n=t.pathname===`/`?``:t.pathname;return`${t.host}${n}`}catch{return e}}function Ji(e){let t=e.trim();if(t===``)return null;let n=/^[a-z][a-z0-9+.-]*:\/\//i.test(t);if(!n&&/^[a-z][a-z0-9+.-]*:(?!\d)/i.test(t))return null;let r=n?t:`http://${t}`,i;try{i=new URL(r)}catch{return null}return i.protocol!==`http:`&&i.protocol!==`https:`?null:i.toString()}function Yi(e){if(e===``)return null;try{let t=new URL(e);return t.protocol!==`http:`||!Xi.test(t.hostname)?null:t.origin}catch{return null}}var Xi=/^(localhost|127\.0\.0\.1|\[::1\])$/i;function Zi(e){try{return Li.test(new URL(e).hostname)}catch{return!1}}var Qi=5,$i=[{scope:`project`,title:`Team`,detail:`Saved in the repo's .ai/cezar/config.json. Commit it and everyone gets the same Start app.`},{scope:`personal`,title:`Only me`,detail:`Saved in your ~/.cezar/config.json, and used instead of the team recipe.`}];function ea({open:e,onOpenChange:t,suggestion:n,onSaved:r}){let[i,a]=(0,Z.useState)(null),[o,s]=(0,Z.useState)(`project`),[c,l]=(0,Z.useState)([``]),[f,p]=(0,Z.useState)(``),[m,h]=(0,Z.useState)(null),[g,_]=(0,Z.useState)(!1),v=e=>{let t=e??n;l(t.services.length>0?[...t.services]:[``]),p(t.url??``)};(0,Z.useEffect)(()=>{if(!e)return;h(null);let t=!1;return d().then(e=>{if(t)return;a(e);let n=e.personal?`personal`:`project`;s(n),v(e[n])}).catch(e=>!t&&h(e instanceof Error?e.message:String(e))),()=>{t=!0}},[e]);let y=async e=>{_(!0),h(null);try{a(await u({scope:o,recipe:e})),r(),t(!1)}catch(e){h(e instanceof Error?e.message:String(e))}finally{_(!1)}},b=c.map(e=>e.trim()).filter(Boolean),x=f.trim(),S=x!==``&&!/^https?:\/\/\S+$/.test(x);return(0,Q.jsx)(De,{open:e,onOpenChange:t,children:(0,Q.jsxs)(je,{className:`sm:max-w-lg`,children:[(0,Q.jsxs)(Oe,{children:[(0,Q.jsx)(Ee,{children:`Start recipe`}),(0,Q.jsx)(Ae,{children:`What starts this project's app for the Preview. Each command runs in its own terminal tab of the task. Installing dependencies is not part of it.`})]}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsx)(`div`,{role:`radiogroup`,"aria-label":`Who uses this recipe`,className:`grid grid-cols-2 gap-2`,children:$i.map(e=>{let t=e.scope===`personal`&&i?.personalAvailable===!1,n=o===e.scope;return(0,Q.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":n,disabled:t,onClick:()=>{s(e.scope),v(i?.[e.scope]??null)},className:K(`flex flex-col gap-1 rounded-md border p-2.5 text-left text-xs transition-colors disabled:opacity-50`,n?`border-foreground/40 bg-muted`:`border-border hover:bg-muted/50`),children:[(0,Q.jsxs)(`span`,{className:`font-medium text-foreground`,children:[e.title,i?.[e.scope]?(0,Q.jsx)(`span`,{className:`ml-1.5 font-normal text-muted-foreground`,children:`· saved`}):null]}),(0,Q.jsx)(`span`,{className:`text-muted-foreground`,children:t?`This project is not in your project list.`:e.detail})]},e.scope)})}),(0,Q.jsxs)(`fieldset`,{className:`flex flex-col gap-1.5`,children:[(0,Q.jsx)(`legend`,{className:`mb-1.5 text-xs font-medium text-foreground`,children:`Services`}),c.map((e,t)=>(0,Q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Q.jsx)(jr,{value:e,onChange:e=>l(n=>n.map((n,r)=>r===t?e.target.value:n)),placeholder:t===0?`npm run dev`:`npm run api`,"aria-label":`Service ${t+1}`,spellCheck:!1,className:`h-8 font-mono text-xs md:text-xs`}),(0,Q.jsx)(q,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":`Remove service ${t+1}`,disabled:c.length===1,onClick:()=>l(e=>e.filter((e,n)=>n!==t)),children:(0,Q.jsx)(gr,{"aria-hidden":`true`})})]},t)),(0,Q.jsxs)(q,{type:`button`,variant:`ghost`,size:`xs`,className:`self-start text-muted-foreground`,disabled:c.length>=Qi,onClick:()=>l(e=>[...e,``]),children:[(0,Q.jsx)(mr,{"aria-hidden":`true`}),`Add service`]})]}),(0,Q.jsxs)(`label`,{className:`flex flex-col gap-1.5 text-xs`,children:[(0,Q.jsx)(`span`,{className:`font-medium text-foreground`,children:`Address to show (optional)`}),(0,Q.jsx)(jr,{value:f,onChange:e=>p(e.target.value),placeholder:`http://localhost:5173 — empty: the first address a service prints`,"aria-label":`Address to show`,"aria-invalid":S,spellCheck:!1,className:`h-8 font-mono text-xs md:text-xs`}),S?(0,Q.jsx)(`span`,{className:`text-danger`,children:`Start it with http:// or https://`}):null]}),m?(0,Q.jsx)(`p`,{role:`alert`,className:`text-xs text-danger`,children:m}):null]}),(0,Q.jsxs)(ke,{className:`gap-2 sm:justify-between`,children:[i?.[o]?(0,Q.jsxs)(q,{type:`button`,variant:`ghost`,disabled:g,onClick:()=>void y(null),children:[`Remove `,o===`project`?`team`:`your`,` recipe`]}):(0,Q.jsx)(`span`,{}),(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Q.jsx)(q,{type:`button`,variant:`outline`,onClick:()=>t(!1),children:`Cancel`}),(0,Q.jsx)(q,{type:`button`,disabled:g||b.length===0||S,onClick:()=>void y({services:b,...x?{url:x}:{}}),children:`Save`})]})]})]})})}var ta=1e3,na=12e4,ra=6e5,ia=[`dev`,`start`,`serve`,`preview`,`run`],aa=e=>`cez:preview-run:${e??`default`}`;function oa(e){try{return window.localStorage.getItem(aa(e))}catch{return null}}function sa(e,t){try{window.localStorage.setItem(aa(e),t)}catch{}}function ca(e){for(let t of ia){let n=e.find(e=>RegExp(`^(npm run|make) ${t}$`).test(e.command));if(n)return n.command}return null}function la(e,t){try{let n=new URL(e),r=new URL(t),i=e=>e.hostname===`127.0.0.1`||e.hostname===`[::1]`?`localhost`:e.hostname,a=e=>e.port||(e.protocol===`https:`?`443`:`80`);return n.protocol===r.protocol&&i(n)===i(r)&&a(n)===a(r)}catch{return!1}}function ua(e,t,n){let r=e.filter(e=>Date.parse(e.lastSeenAt)>=t&&e.running!==!1);return n?r.some(e=>la(e.url,n))?n:null:(r.find(e=>e.running===!0)??r[0])?.url??null}function da({runId:e,projectId:t,onOpen:n,onShowTerminal:r,setup:i}){let a=i?.phase===`setup`&&i.needsAttention,o=i?.phase===`setup`&&!i.needsAttention&&i.activeOperationId!==void 0,[c,l]=(0,Z.useState)(null),[u,d]=(0,Z.useState)(null),[f,p]=(0,Z.useState)(null),[m,h]=(0,Z.useState)(()=>oa(t)),[g,_]=(0,Z.useState)(``),[v,b]=(0,Z.useState)({kind:`idle`}),[x,S]=(0,Z.useState)(!1),w=(0,Z.useCallback)(()=>{let t=!1;return C(e).then(e=>{t||(l(e.commands),d(e.install??null),p(e.recipe??null))}).catch(()=>!t&&l([])),()=>{t=!0}},[e]);(0,Z.useEffect)(()=>w(),[w]);let T=m??(c?ca(c):null),E=(0,Z.useRef)(null),D=(0,Z.useRef)([]);(0,Z.useEffect)(()=>()=>{E.current=null;for(let e of D.current)clearTimeout(e)},[]);let k=(0,Z.useCallback)((r,i={})=>{let a=r.services.map(e=>e.trim()).filter(Boolean);if(a.length===0)return;let o={};E.current=o;let c=()=>E.current===o,l=e=>D.current.push(setTimeout(e,ta)),f={services:a,...r.url?{url:r.url}:{}};i.remember&&a[0]&&(sa(t,a[0]),h(a[0]));let p=async t=>{let n=await y(e).catch(()=>null);for(let[e,r]of t.entries()){let t=n?.sessions.find(e=>e.id===r)?.exitCode;if(t!=null)return{index:e,code:t}}return null},m=async()=>{b({kind:`starting`,plan:f});let t=Date.now()-1e3,r=[];for(let t of a){let n=await P(e,{});if(!c())return;r.push(n.id),await O(e,n.id,`${t}\r`)}let i=async()=>{if(!c())return;if(Date.now()-t>na){b({kind:`no-address`,plan:f});return}let o=await s(e).catch(()=>null);if(!c())return;let u=o?ua(o.urls,t,f.url):null;if(u){E.current=null,n(u);return}let d=await p(r);if(c()){if(d){b({kind:`exited`,command:a[d.index],code:d.code});return}l(()=>void i())}};await i()};(async()=>{if(!u)return m();b({kind:`installing`,install:u,plan:f});let t=Date.now(),n=await P(e,{});if(!c())return;await O(e,n.id,`${u} && exit 0 || exit 1\r`);let r=async()=>{if(!c())return;if(Date.now()-t>ra){b({kind:`no-address`,plan:f});return}let e=await p([n.id]);if(c()){if(!e)return l(()=>void r());if(e.code!==0){b({kind:`exited`,command:u,code:e.code});return}d(null),await m()}};l(()=>void r())})().catch(()=>{c()&&b({kind:`failed`})})},[u,n,t,e]),A=(c??[]).filter(e=>f!==null||e.command!==T),j=r?(0,Q.jsxs)(q,{type:`button`,variant:`outline`,size:`sm`,onClick:r,children:[(0,Q.jsx)(Qn,{"aria-hidden":`true`}),`Show terminal`]}):null,M=(0,Q.jsx)(ea,{open:x,onOpenChange:S,suggestion:f?{services:f.services,...f.url?{url:f.url}:{}}:{services:T?[T]:[``]},onSaved:w});if(v.kind===`installing`||v.kind===`starting`){let e=v.plan.services.join(` · `);return(0,Q.jsx)(fa,{icon:(0,Q.jsx)(lr,{"aria-hidden":`true`,className:`size-5 motion-safe:animate-spin`}),title:v.kind===`installing`?`Installing dependencies (${v.install})`:`Starting ${e}`,subtitle:v.kind===`installing`?`This worktree has no dependencies yet. ${e} starts as soon as they are installed.`:`Running in ${v.plan.services.length>1?`new terminal tabs`:`a new terminal tab`} of this task. The page opens here as soon as the app is up${v.plan.url?` at ${v.plan.url}`:``}.`,children:j})}let N=v.kind===`exited`?`${v.command} exited with code ${v.code} before the app was up.`:v.kind===`no-address`?`${v.plan.services.join(` · `)} is still running, but ${v.plan.url?`nothing answered at ${v.plan.url}`:`printed no address`} yet. Enter it above, or check the terminal.`:v.kind===`failed`?`Could not open a terminal for this task.`:null,F=(0,Q.jsxs)(qn,{children:[(0,Q.jsx)(Xn,{asChild:!0,children:(0,Q.jsxs)(q,{type:`button`,variant:f||T?`outline`:`primary`,size:`sm`,"data-action":`run-app-other`,disabled:o,children:[f||T?`Other command`:`Choose a command`,(0,Q.jsx)(Ln,{"aria-hidden":`true`})]})}),(0,Q.jsxs)(Jn,{align:`center`,className:`max-h-80 w-80 overflow-y-auto`,children:[(0,Q.jsx)(Wn,{children:`Project commands`}),A.length===0?(0,Q.jsx)(`p`,{className:`px-2 py-1.5 text-xs text-soft-foreground`,children:c===null?`Looking…`:`No other commands in package.json or a Makefile.`}):A.map(e=>(0,Q.jsxs)(Kn,{onSelect:()=>k({services:[e.command]},{remember:!0}),className:`flex-col items-start gap-0`,children:[(0,Q.jsx)(`span`,{className:`font-mono text-xs`,children:e.command}),(0,Q.jsxs)(`span`,{className:`text-[11px] text-soft-foreground`,children:[e.source,e.detail?` — ${e.detail}`:``]})]},`${e.source}:${e.command}`)),(0,Q.jsx)(Gn,{}),(0,Q.jsx)(Wn,{className:`font-normal text-soft-foreground`,children:`Custom command`}),(0,Q.jsx)(`form`,{className:`px-2 pb-1`,onSubmit:e=>{e.preventDefault(),k({services:[g]},{remember:!0}),_(``)},children:(0,Q.jsx)(jr,{value:g,onChange:e=>_(e.target.value),onKeyDown:e=>e.stopPropagation(),placeholder:`e.g. npm run dev`,"aria-label":`Custom command`,spellCheck:!1,className:`h-8 px-2 font-mono text-xs shadow-none focus-visible:ring-0 md:text-xs`})})]})]}),I=u?` Installs its dependencies first (${u}).`:``,ee=o?`This worktree's setup scripts are still running. Start the app when they finish.`:a?`This worktree's setup needs attention — retry it from the task's Chat, or start the app anyway.`:null;return(0,Q.jsxs)(fa,{icon:(0,Q.jsx)(pr,{"aria-hidden":`true`,className:`size-5`}),title:f?`Start the app`:`Run the app`,subtitle:N??(f?`${f.scope===`personal`?`Your`:`This project's`} start recipe runs each service in its own terminal tab and opens ${f.url??`the address it prints`}.${I}`:`Starts the task's app in a terminal of its worktree and opens the address it prints.${I} Or enter an address above.`),children:[ee?(0,Q.jsx)(`p`,{"data-slot":`run-app-setup`,role:`status`,className:`max-w-md text-xs text-foreground`,children:ee}):null,f?(0,Q.jsx)(`ul`,{"data-slot":`start-app-services`,className:`flex flex-col gap-0.5 font-mono text-xs text-foreground`,children:f.services.map((e,t)=>(0,Q.jsx)(`li`,{children:e},t))}):null,(0,Q.jsxs)(`div`,{"data-slot":`run-app-actions`,className:`flex flex-wrap items-center justify-center gap-2`,children:[f?(0,Q.jsxs)(q,{type:`button`,size:`sm`,"data-action":`start-app`,disabled:o,onClick:()=>k(f),children:[(0,Q.jsx)(pr,{"aria-hidden":`true`}),`Start app`]}):T?(0,Q.jsxs)(q,{type:`button`,size:`sm`,"data-action":`run-app`,disabled:o,onClick:()=>k({services:[T]},{remember:!0}),children:[(0,Q.jsx)(pr,{"aria-hidden":`true`}),`Run `,(0,Q.jsx)(`code`,{className:`font-mono text-[12px]`,children:T})]}):null,F,N?j:null]}),(0,Q.jsxs)(q,{type:`button`,variant:`ghost`,size:`xs`,"data-action":`edit-start-app`,className:`text-muted-foreground`,onClick:()=>S(!0),children:[(0,Q.jsx)(dr,{"aria-hidden":`true`}),f?`Edit start recipe`:`Save a start recipe for this project`]}),M]})}function fa({icon:e,title:t,subtitle:n,children:r}){return(0,Q.jsxs)(`div`,{"data-slot":`run-app`,className:`flex h-full flex-col items-center justify-center gap-3 px-6 py-8 text-center`,children:[(0,Q.jsx)(`span`,{className:`flex size-10 items-center justify-center rounded-full bg-muted text-muted-foreground`,children:e}),(0,Q.jsxs)(`div`,{className:`flex max-w-md flex-col gap-1`,children:[(0,Q.jsx)(`h2`,{className:`text-sm font-medium text-foreground`,children:t}),(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n})]}),r]})}var pa={running:{label:`In progress`,tone:`pending`,pulse:!0},asking:{label:`Agent is waiting for your answer`,tone:`violet`},done:{label:`Done`,tone:`success`}};function ma(e){return e===`running`?{action:`Send`,hint:`The agent is working — the note goes into its session now.`}:e===`waiting`?{action:`Send`,hint:`The agent is free — this starts right away.`}:e===`queued`?{action:`Send`,hint:`This task has not started — the note joins its first prompt.`}:{action:`Reopen & send`,hint:`The session is closed — this reopens it with the note.`}}function ha({note:e,run:t,notes:n,onClose:r}){let[i,a]=(0,Z.useState)(!1),o=e.phase===`draft`,s=async(e,t)=>{a(!0);try{return await e(),!0}catch(e){return J(e instanceof Error&&e.message?e.message:t,{tone:`danger`}),!1}finally{a(!1)}},c=()=>{o&&n.discard(e.key),r()},l=async()=>{e.text.trim()===``||i||await s(()=>n.send(e.key),`Could not send the note.`)&&r()},u=ma(t.status),d=o?null:pa[e.phase];return(0,Q.jsxs)(`div`,{"data-slot":`design-note`,"data-phase":e.phase,className:`flex flex-col gap-2 p-2.5 text-xs`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[e.number===void 0?null:(0,Q.jsxs)(`span`,{"data-slot":`design-note-number`,"aria-label":`Note ${e.number}`,className:`flex h-[21px] shrink-0 items-center gap-1 rounded-md bg-primary pr-[7px] pl-1.5 text-xs leading-none font-bold text-primary-foreground`,children:[(0,Q.jsx)(ur,{"aria-hidden":`true`,className:`size-3`,strokeWidth:2.5}),e.number]}),(0,Q.jsx)(`span`,{"data-slot":`design-note-element`,className:`min-w-0 flex-1 truncate font-mono text-[11px] font-medium text-foreground`,title:e.pick.selector,children:Ai(e.pick)}),(0,Q.jsx)(q,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`size-6`,"aria-label":o?`Discard note`:`Close`,title:o?`Discard this note and deselect the element (Esc)`:`Close (Esc)`,onClick:c,children:(0,Q.jsx)(gr,{"aria-hidden":`true`})})]}),d?(0,Q.jsxs)(`p`,{"data-slot":`design-note-status`,className:`flex items-center gap-1.5 text-soft-foreground`,children:[(0,Q.jsx)(Mr,{tone:d.tone,pulse:d.pulse??!1}),d.label]}):null,o?(0,Q.jsx)(Fn,{value:e.text,onChange:t=>n.setText(e.key,t.target.value),onKeyDown:e=>{e.key===`Escape`?(e.preventDefault(),c()):e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),l())},placeholder:`What should change here?`,"aria-label":`Note for the agent`,autoFocus:!0,rows:3,className:`min-h-16 resize-none text-[13px] md:text-[13px]`}):(0,Q.jsx)(`p`,{"data-slot":`design-note-text`,className:`max-h-40 overflow-y-auto rounded-md border border-border bg-muted/40 px-2 py-1.5 text-[13px] break-words whitespace-pre-wrap text-foreground`,children:e.text}),o?(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(`p`,{"data-slot":`design-note-hint`,className:`min-w-0 flex-1 text-soft-foreground`,children:u.hint}),(0,Q.jsx)(q,{type:`button`,size:`sm`,disabled:i||e.text.trim()===``,onClick:()=>void l(),children:u.action})]}):null]})}function ga(e){return e===`running`||e===`waiting`||e===`queued`?`live`:`continue`}var _a=[250,500,1e3,1e3,2e3,2e3,3e3],va=e=>new Promise(t=>setTimeout(t,e));function ya(e){return e instanceof T&&e.status===409&&e.message===`session closed`}function ba(e,t,n={}){let{wait:r=va,surface:i=`existing_session`}=n,a=v(),{mutateAsync:o}=L(e.id);return(0,Z.useCallback)(async(n,s)=>{let c=async e=>{let r=await(e===`live`?o({text:n,images:s}):t(n,s));return i&&Dt(i),r},l=ga(e.status);try{return await c(l)}catch(t){if(!(t instanceof T)||t.status!==409)throw t;let i=t;for(let t=0;;t+=1){let o;try{o=await a.fetchQuery({...D(e.id),staleTime:0})}catch{throw i}let u=ga(o.status);if(u===l){let e=l===`live`&&ya(i)?_a[t]:void 0;if(e===void 0)throw i;await r(e);try{return await c(`live`)}catch(e){if(!ya(e))throw e;i=e;continue}}if(u===`live`&&n.trim()===``&&s.length===0)return;if(u===`continue`&&$e(o)===void 0)throw i;return await c(u)}}},[t,a,e.id,e.status,o,i,r])}var xa=2e4,Sa=new Map;function Ca(e){let t=Sa.get(e);return t||(t={drafts:void 0,sent:[],counter:0,listeners:new Set,chain:Promise.resolve(),timer:void 0,version:0},Sa.set(e,t)),t}function wa(e){if(e===``)return[];let t;try{t=JSON.parse(e)}catch{return[]}if(!Array.isArray(t))return[];let n=[];for(let e of t.slice(0,12)){if(typeof e!=`object`||!e)continue;let t=e,r=ki(t.pick);!r||r.mark===void 0||n.push({key:r.mark,pick:{...r,mark:r.mark},text:typeof t.text==`string`?t.text.slice(0,xa):``})}return n}var Ta=e=>e.length===0?``:JSON.stringify(e.map(e=>({pick:e.pick,text:e.text}))),Ea=e=>{try{return new URL(e).pathname}catch{return}};function Da(e){return Fi(e.text.trim(),[{...e.pick,id:e.key}])}function Oa(e,t,n){let r=t.status===`running`,i=!1,a=e.map(e=>{let a=e;return a.phase===`asking`&&r&&(a={...a,phase:`running`,sawRunning:!0}),a.phase===`running`&&(r?a.sawRunning||(a={...a,sawRunning:!0}):(a.sawRunning||n-(a.deliveredAt??n)>ka)&&(a={...a,phase:t.asking?`asking`:`done`})),a!==e&&(i=!0),a}),o=a.filter(e=>e.phase===`running`||e.phase===`asking`);if(o.length>1){let e=o.reduce((e,t)=>(t.deliveredAt??0)>=(e.deliveredAt??0)?t:e);a=a.map(t=>o.includes(t)&&t!==e?{...t,phase:`done`}:t),i=!0}return i?a:e}var ka=15e3;function Aa(e){let t=e.id,n=Ca(t),r=E(t),i=r.data?.surfaces?.[Ti]?.text;(0,Z.useSyncExternalStore)((0,Z.useCallback)(e=>(n.listeners.add(e),()=>n.listeners.delete(e)),[n]),()=>n.version);let a=(0,Z.useCallback)(()=>{n.version++,n.listeners.forEach(e=>e())},[n]);(0,Z.useEffect)(()=>{!r.isSuccess||n.drafts!==void 0||(n.drafts=wa(typeof i==`string`?i:``),a())},[r.isSuccess,a,n,i]);let o=(0,Z.useCallback)(e=>{clearTimeout(n.timer),n.timer=setTimeout(()=>{let e=Ta(n.drafts??[]);e.length>1e5||(n.chain=n.chain.catch(()=>{}).then(()=>se(t,Ti,{text:e,images:[]})).catch(()=>{}))},e)},[t,n]),s=(0,Z.useRef)(e);s.current=e;let c=e.status===`waiting`&&e.askParked===!0;(0,Z.useEffect)(()=>{let t=Oa(n.sent,{status:e.status,asking:c},Date.now());t!==n.sent&&(n.sent=t,a())},[c,a,e.status,n,n.version]);let l=(0,Z.useCallback)(e=>n.drafts===void 0?(J(`Still loading this task — click the element again in a moment.`),!1):e.mark===void 0?!1:n.drafts.length>=12?(J(`12 notes are already open — send or close some first.`,{tone:`danger`}),!1):(n.drafts=[...n.drafts,{key:e.mark,pick:{...e,mark:e.mark},text:``}],a(),o(0),!0),[o,a,n]),u=(0,Z.useCallback)((e,t)=>{n.drafts?.some(t=>t.key===e)&&(n.drafts=n.drafts.map(n=>n.key===e?{...n,text:t.slice(0,xa)}:n),a(),o(500))},[o,a,n]),d=(0,Z.useCallback)(e=>{n.drafts?.some(t=>t.key===e)&&(n.drafts=n.drafts.filter(t=>t.key!==e),a(),o(0))},[o,a,n]),f=(0,Z.useCallback)(async e=>{let r=n.drafts?.find(t=>t.key===e);if(!r||r.text.trim()===``)return;let i=Da(r),c=e=>e===`live`?S(t,{text:i}):ae(t,{text:i}),l=ga(s.current.status);try{await c(l)}catch(e){if(!(e instanceof T)||e.status!==409)throw e;await c(l===`live`?`continue`:`live`).catch(()=>{throw e})}let u=Date.now();n.counter++,n.sent=[...n.sent,{key:e,pick:r.pick,text:r.text.trim(),number:n.counter,sawRunning:!1,phase:`running`,deliveredAt:u}],n.drafts=(n.drafts??[]).filter(t=>t.key!==e),a(),o(0)},[o,a,t,n]),p=(0,Z.useMemo)(()=>[...(n.drafts??[]).map(e=>({...e,phase:`draft`})),...n.sent],[n,n.version]);return{notes:p,marks:(0,Z.useMemo)(()=>p.map(e=>e.phase===`draft`?{key:e.key,selector:e.pick.selector,path:Ea(e.pick.url),label:Ai(e.pick),draft:!0}:{key:e.key,n:e.number,label:Ai(e.pick),draft:!1}),[p]),note:(0,Z.useCallback)(e=>p.find(t=>t.key===e),[p]),addDraft:l,setText:u,discard:d,send:f}}var ja=`diff-comments`;function Ma(e){if(e===``)return[];let t;try{t=JSON.parse(e)}catch{return[]}if(!Array.isArray(t))return[];let n=[];for(let e of t){if(typeof e!=`object`||!e)continue;let t=e;typeof t.id!=`string`||typeof t.path!=`string`||t.side!==`old`&&t.side!==`new`||typeof t.line!=`number`||typeof t.body!=`string`||n.push({id:t.id,path:t.path,side:t.side,line:t.line,body:t.body,excerpt:typeof t.excerpt==`string`?t.excerpt:``,...typeof t.oldPath==`string`&&t.oldPath!==``?{oldPath:t.oldPath}:{},...Na(t.start)?{start:{side:t.start.side,line:t.start.line}}:{}})}return n}function Na(e){if(typeof e!=`object`||!e)return!1;let t=e;return(t.side===`old`||t.side===`new`)&&typeof t.line==`number`}function Pa(e){return Vr(e,e.start)}function Fa(e){let t=e=>e.side===`old`?0:1,n=e=>e.start??e;return[...e].sort((e,r)=>e.path.localeCompare(r.path)||t(n(e))-t(n(r))||n(e).line-n(r).line)}var Ia=`Review comments on the diff:`;function La(e){return e.length===0?``:`${Ia}\n\n${Fa(e).map(e=>{let t=e.side===`old`?`\`${e.oldPath??e.path}\` line ${e.line} (removed line${e.oldPath?`, renamed to \`${e.path}\``:``})`:`\`${e.path}\` line ${e.line}`;return`- ${e.start?Wa(e):t}:\n\n${Ka(Ga(e.excerpt))}\n\n${Ka(e.body)}`}).join(`
8
-
9
- `)}`}var Ra=/^- `([^`]+)` (.+):$/;function za(e){let t=e.indexOf(`${Ia}\n\n`);if(t===-1||t>0&&e[t-1]!==`
10
- `)return;let n=e.slice(0,t).trim(),r=e.slice(t+28+2).split(`
11
- `),i=[],a=0;for(;a<r.length;){let e=Ra.exec(r[a]??``);if(!e){if((r[a]??``).trim()===``){a++;continue}return}a++;let t=[];for(;a<r.length&&!Ra.test(r[a]??``);)t.push((r[a]??``).replace(/^ {2}/,``)),a++;i.push(Ba(e[1],e[2],t))}return i.length>0?{lead:n,items:i}:void 0}function Ba(e,t,n){let r=/renamed to `([^`]+)`/.exec(t)?.[1],i=/lines? (\d+)/.exec(t),a=t.startsWith(`removed `)||t.includes(`(removed line`)?`old`:`new`,o=n;for(;o[0]?.trim()===``;)o=o.slice(1);let s=``,c=/^(`{3,})\s*$/.exec(o[0]??``);if(c){let e=o.findIndex((e,t)=>t>0&&e.trim()===c[1]);s=o.slice(1,e===-1?void 0:e).join(`
12
- `),o=e===-1?[]:o.slice(e+1)}else{let e=[];for(;o[0]?.startsWith(`> `);)e.push(o[0].slice(2)),o=o.slice(1);s=e.join(`
13
- `)}return{path:r??e,label:t,...i?{line:Number(i[1])}:{},side:a,excerpt:s,body:o.join(`
14
- `).trim()}}function Va(e,t){let n=La(t);return n===``?e:e.trim()===``?n:`${e}\n\n${n}`}function Ha(e){return/^\/([A-Za-z0-9][A-Za-z0-9._-]*)(?=\s|$)/.exec(e.trimStart())?.[1]}function Ua(e,t){let n=Ha(e);return n===void 0||(t?.includes(n)??!1)}function Wa(e){let t=e.side===`old`||e.start?.side===`old`,n=e.oldPath&&t?` (removed lines numbered in \`${e.oldPath}\`)`:``;return`\`${e.path}\` ${Pa(e)}${n}`}function Ga(e){let t=Math.max(0,...(e.match(/`+/g)??[]).map(e=>e.length)),n="`".repeat(Math.max(3,t+1));return`${n}\n${Ya(e).split(`
15
- `).map(e=>e.trimEnd()).join(`
16
- `)}\n${n}`}function Ka(e){return e.split(`
17
- `).map(e=>` ${e}`).join(`
18
- `)}var qa=1e3;function Ja(e,t=200){let n=Ya(e);return n.length<=t?n:`${n.slice(0,t)}…`}function Ya(e){return e.replace(/^(?:[ \t]*\r?\n)+/,``).replace(/\s+$/,``)}function Xa(e,t){let n=Va(e,t);if(n.length>1e5)throw Error(`Too long with the ${t.length===1?`diff comment`:`${t.length} diff comments`} attached — shorten the message or remove some comments.`);return n}function Za(){return`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}var Qa=new WeakMap;function $a(e){let t=Qa.get(e);return t||(t={lists:new Map,listeners:new Map,chains:new Map,removed:new Map,base:new Map,pending:new Map},Qa.set(e,t)),t}var eo=[];function to(e){let t=v(),n=$a(t),r=E(e===``?void 0:e),i=r.data?.surfaces?.[ja]?.text,a=(0,Z.useMemo)(()=>Ma(typeof i==`string`?i:``),[i]),o=(0,Z.useSyncExternalStore)((0,Z.useCallback)(t=>{let r=n.listeners.get(e)??new Set;return r.add(t),n.listeners.set(e,r),()=>r.delete(t)},[e,n]),()=>n.lists.get(e));(0,Z.useEffect)(()=>{if(!r.isSuccess)return;let t=n.lists.get(e);if(t===void 0){n.lists.set(e,a),n.base.set(e,a),n.listeners.get(e)?.forEach(e=>e());return}if((n.pending.get(e)??0)>0)return;let i=ro(t,a,n.base.get(e)??[],n.removed.get(e));n.base.set(e,a),i!==t&&(n.lists.set(e,i),n.listeners.get(e)?.forEach(e=>e()))},[r.isSuccess,e,a,n]),(0,Z.useEffect)(()=>{if(e===``)return;let n=()=>{document.visibilityState===`visible`&&t.invalidateQueries({queryKey:V.runs.drafts(e)})};return window.addEventListener(`focus`,n),document.addEventListener(`visibilitychange`,n),()=>{window.removeEventListener(`focus`,n),document.removeEventListener(`visibilitychange`,n)}},[t,e]);let s=o??(r.isSuccess?a:eo),c=(0,Z.useCallback)(()=>n.lists.get(e)??a,[e,a,n]),l=(0,Z.useCallback)(r=>{n.lists.set(e,r),n.listeners.get(e)?.forEach(e=>e());let i=no(r);t.setQueryData(V.runs.drafts(e),e=>{let t={...e?.surfaces??{}};return i===``?delete t[ja]:t[ja]={text:i,images:[],updatedAt:new Date().toISOString()},{surfaces:t}})},[t,e,n]),u=(0,Z.useCallback)((t,r=[])=>{if(no(t).length>1e5)return J(`Too many comments to keep as a draft — send the ones you have first.`,{tone:`danger`}),!1;if(r.length>0){let t=n.removed.get(e)??new Set;for(let e of r)t.add(e);n.removed.set(e,t)}l(t),n.pending.set(e,(n.pending.get(e)??0)+1);let i=(n.chains.get(e)??Promise.resolve()).catch(()=>{}).then(async()=>{let r=n.lists.get(e)??t,i=r;try{let t=(await _(e)).surfaces?.[ja]?.text;i=ro(r,Ma(typeof t==`string`?t:``),n.base.get(e)??[],n.removed.get(e))}catch{}i!==r&&l(i);let a=no(i);a.length>1e5||(await se(e,ja,{text:a,images:[]}),n.base.set(e,i))}).catch(()=>{}).finally(()=>{n.pending.set(e,Math.max(0,(n.pending.get(e)??1)-1))});return n.chains.set(e,i),!0},[l,e,n]),d=(0,Z.useCallback)(e=>u([...c(),{...e,body:e.body.slice(0,Hr),excerpt:Ja(e.excerpt,e.start?qa:200),id:Za()}]),[c,u]),f=(0,Z.useCallback)((e,t)=>u(c().map(n=>n.id===e?{...n,body:t.slice(0,Hr)}:n)),[c,u]),p=(0,Z.useCallback)(e=>void u(c().filter(t=>t.id!==e),[e]),[c,u]),m=(0,Z.useCallback)(()=>void u([],c().map(e=>e.id)),[c,u]),h=(0,Z.useCallback)(async e=>{let t=c(),n=await e(t);if(t.length>0){let e=new Map(t.map(e=>[e.id,e.body])),n=c();u(n.filter(t=>e.get(t.id)!==t.body),n.filter(t=>e.get(t.id)===t.body).map(e=>e.id))}return n},[c,u]);return{ready:o!==void 0||r.isSuccess,comments:s,add:d,update:f,remove:p,clear:m,submit:h}}function no(e){return e.length===0?``:JSON.stringify(e)}function ro(e,t,n,r){let i=new Map(n.map(e=>[e.id,e])),a=new Map(t.map(e=>[e.id,e])),o=[];for(let t of e){let e=i.get(t.id),n=a.get(t.id);if(e&&!n)continue;let r=!e||e.body!==t.body;o.push(n&&!r?n:t)}let s=new Set(e.map(e=>e.id));for(let e of t)!s.has(e.id)&&!r?.has(e.id)&&o.push(e);return o.length===e.length&&o.every((t,n)=>t===e[n]||JSON.stringify(t)===JSON.stringify(e[n]))?e:o}function io(e,t=null){let n=f(),r=N(n.data),i=e.runner??`claude`,a=We(t,r,i),o=r.includes(i),s=n.isSuccess&&r.length>0,c=n.isPending?`Checking agent providers…`:n.isError?`Provider authentication could not be verified.`:s?void 0:`Connect an agent provider to continue.`;return{runners:r,currentRunner:i,runner:a,currentRunnerConnected:o,canContinue:s,providerPending:n.isPending,providerError:n.isError,reason:c,runnerOverride:t!==null||!o?a:void 0}}function ao(e){let t=v(),n=Wt(e).continueRun,r=M(),[i,o]=(0,Z.useState)(null),[s,c]=(0,Z.useState)(null),[l,u]=(0,Z.useState)(null),d=io(e,i),{runners:f,canContinue:p,currentRunner:m,runner:h}=d,g=a(h,n),_=r.data?.modelsLocked===!0,y=h!==m,b=!_&&!y&&e.model?{...r.data?.defaultModels,[h]:e.model}:r.data?.defaultModels,x=_?null:s,S=Ye(h,g.data,[x,b?.[h]]),C=Ft(x,h,b,g.data),{accounts:w,repoAccount:T}=Tn(),E=[...e.steps].reverse().find(e=>e.profileId)?.profileId??e.agentProfile??`default`,D=y?T:{...T,[m]:E},O=w.some(e=>e.provider===h&&e.id===l)?l:null,k=W({mutationFn:({text:t,images:n})=>p?ae(e.id,{text:t.trim()?t:void 0,images:n.length?n:void 0,runner:d.runnerOverride,model:!_&&s!==null?C:void 0,agentProfile:O??void 0}):Promise.reject(Error(d.reason??`Connect an agent provider to continue.`)),onSuccess:()=>t.invalidateQueries({queryKey:V.runs.all})});return{available:n,canContinue:p,reason:d.reason,providerPending:d.providerPending,pills:(0,Q.jsxs)(`div`,{"data-slot":`follow-up-engine`,className:`flex flex-wrap items-center gap-1.5`,children:[f.length>1||f.some(e=>Dn(w,e))?(0,Q.jsx)(Qt,{runners:f,value:h,accounts:w,account:O,repoAccount:D,onPick:(e,t)=>{u(t),e!==h&&(o(e),c(null))}}):null,(0,Q.jsx)(vt,{slot:`follow-up-model-pill`,ariaLabel:`Model`,label:S.find(e=>e.id===C)?.label??`auto`,value:C,readOnly:_,disabledHint:`Model selection is locked to native coding-agent settings.`,onPick:e=>c(e),options:S.map(e=>({value:e.id,label:e.label,desc:e.desc})),status:ct(h,g.data,g.isError)})]}),continueWith:(e,t)=>k.mutateAsync({text:e,images:t})}}function oo({items:e}){let{id:t}=we();return(0,Q.jsxs)(`div`,{"data-slot":`review-comments`,className:`mt-1 flex flex-col gap-2 text-left`,children:[(0,Q.jsxs)(`p`,{className:`text-[12px] font-medium text-muted-foreground`,children:[e.length,` `,e.length===1?`comment`:`comments`,` on the diff`]}),e.map((e,n)=>(0,Q.jsxs)(`div`,{"data-slot":`review-comment`,className:`overflow-hidden rounded-lg border border-border bg-background/60`,children:[(0,Q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5 border-b border-border/60 px-2.5 py-1.5 text-[12px]`,children:[(0,Q.jsx)(jn,{"aria-hidden":`true`,className:`size-3.5 shrink-0 text-muted-foreground`}),t?(0,Q.jsx)(Y,{to:so(t,e),className:`min-w-0 truncate font-mono font-medium text-foreground underline-offset-2 hover:underline`,title:`Open ${e.path} on the Changes tab`,children:e.path}):(0,Q.jsx)(`span`,{className:`min-w-0 truncate font-mono font-medium`,children:e.path}),(0,Q.jsxs)(`span`,{className:`shrink-0 text-muted-foreground`,children:[`· `,e.label]})]}),e.excerpt===``?null:(0,Q.jsx)(`pre`,{"data-slot":`review-comment-code`,className:`max-h-48 overflow-auto border-b border-border/60 bg-muted/40 px-2.5 py-1.5 font-mono text-[12px] leading-[1.6] whitespace-pre text-muted-foreground`,children:e.excerpt}),(0,Q.jsx)(`p`,{"data-slot":`review-comment-body`,className:`px-2.5 py-2 break-words whitespace-pre-wrap text-foreground`,children:e.body})]},n))]})}function so(e,t){let n=new URLSearchParams({file:t.path,side:t.side});return t.line!==void 0&&n.set(`line`,String(t.line)),t.commentId!==void 0&&n.set(`comment`,t.commentId),`/tasks/${e}/changes?${n.toString()}`}function co(e){let t=e.get(`file`);if(!t)return;let n=Number(e.get(`line`)),r=e.get(`comment`);return{path:t,side:e.get(`side`)===`old`?`old`:`new`,...Number.isInteger(n)&&n>0?{line:n}:{},...r?{commentId:r}:{}}}function lo({runId:e,comments:t,onRemove:n,onOpen:r}){return t.length===0?null:(0,Q.jsx)(Bn,{delayDuration:300,children:Fa(t).map(t=>{let i=t.path.split(`/`).at(-1)??t.path,a=e=>e===`old`?`−`:`+`,o=`${i} ${t.start&&(t.start.side!==t.side||t.start.line!==t.line)?t.start.side===t.side?`${a(t.side)}${t.start.line}–${t.line}`:`${a(t.start.side)}${t.start.line}–${a(t.side)}${t.line}`:`${a(t.side)}${t.line}`}`,s=Pa(t);return(0,Q.jsxs)(Vn,{children:[(0,Q.jsx)(Rn,{asChild:!0,children:(0,Q.jsxs)(`span`,{"data-slot":`diff-comment-chip`,className:`flex h-8 max-w-[260px] items-center overflow-hidden rounded-md border border-border bg-muted/40 text-xs text-foreground`,children:[(0,Q.jsx)(`span`,{"aria-hidden":`true`,className:`flex h-full items-center border-r border-border px-2 text-muted-foreground`,children:(0,Q.jsx)(jn,{className:`size-3.5`})}),r?(0,Q.jsx)(`button`,{type:`button`,onClick:()=>r(t),className:`min-w-0 truncate px-2 font-medium hover:underline`,"aria-label":`Show comment on ${t.path} ${s}`,children:o}):(0,Q.jsx)(Y,{to:so(e,{path:t.path,side:t.side,line:t.line,commentId:t.id}),className:`min-w-0 truncate px-2 font-medium hover:underline`,"aria-label":`Comment on ${t.path} ${s}`,children:o}),(0,Q.jsx)(`button`,{type:`button`,"aria-label":`Remove comment on ${i} ${s}`,onClick:()=>n(t.id),className:`flex h-full items-center px-1.5 text-soft-foreground hover:bg-muted hover:text-foreground`,children:(0,Q.jsx)(gr,{"aria-hidden":`true`,className:`size-3.5`})})]})}),(0,Q.jsx)(zn,{side:`top`,sideOffset:6,className:`max-w-[320px] text-left`,children:(0,Q.jsxs)(`div`,{"data-slot":`diff-comment-tooltip`,className:`flex flex-col gap-1`,children:[(0,Q.jsxs)(`span`,{className:`font-mono text-[11px] text-contrast-foreground/80`,children:[t.path,` · `,s]}),(0,Q.jsx)(`span`,{className:`line-clamp-6 break-words whitespace-pre-wrap`,children:t.body})]})})]},t.id)})})}function uo({run:e,draft:t,diffComments:n,continueAction:r,getMentionCandidates:i,onSendingChange:a,onOpenComment:o}){let s=e.status===`running`||e.status===`waiting`,c=e.status===`queued`,l=!s&&!c&&r.available,u=l&&r.canContinue,d=ba(e,r.continueWith),f=n.comments.length>0,m=p(f),h=(0,Z.useMemo)(()=>Array.isArray(m.data)?m.data.map(e=>e.name):void 0,[m.data]),g=Jt(e),_=s&&!g.usable,v=l&&!r.canContinue,y=_||v,b=_?g.reason:r.reason,x=u?r.pills:(0,Q.jsxs)(Q.Fragment,{children:[y&&!r.providerPending?(0,Q.jsx)(Y,{to:`/settings/agents#providers`,className:`text-xs font-medium text-foreground underline underline-offset-4`,children:`Configure providers`}):null,(0,Q.jsx)(kt,{run:e})]}),S=tt(e),C=e.status===`running`||e.status===`queued`;return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(wn,{value:t.text,onValueChange:t.setText,images:t.images,onImagesChange:t.setImages,onSubmit:async(e,r,i)=>{if(i?.quickReply)return d(e,r);a?.(!0);try{return await t.submit(()=>f&&!Ua(e,h)?(J(`Diff comments kept — /${Ha(e)} is a command, so they go with your next message.`),d(e,r)):n.submit(async t=>d(Xa(e,t),r)))}finally{a?.(!1)}},draftItems:f?(0,Q.jsx)(lo,{runId:e.id,comments:n.comments,onRemove:n.remove,onOpen:o}):void 0,disabled:y||!s&&!c&&!u,disabledReason:y?b:`Session closed — no session to resume.`,footerEnd:x,allowEmptySubmit:u||f,sendAriaLabel:u?`Continue`:`Send`,stop:C?{label:`Stop the run`,onStop:S.request,pending:S.pending}:void 0,placeholder:c?`Add to the prompt — sent when the run starts…`:u?`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:i}),S.dialog]})}function fo({children:e,overlay:t,floating:n=!1,className:r,style:i,ref:a}){return(0,Q.jsxs)(`div`,{ref:a,"data-slot":`thread-dock`,"data-floating":n||void 0,style:i,className:K(`sticky bottom-[var(--kb,0px)] z-10 bg-background px-3 pt-1 pb-2 max-md:border-t max-md:border-border md:px-6 md:pt-1.5 md:pb-4`,n&&`pointer-events-none bg-transparent max-md:border-t-0 [&_[data-slot=composer]]:shadow-lg`,r),children:[t,(0,Q.jsx)(`div`,{className:K(`mx-auto flex w-full max-w-[var(--measure)] flex-col gap-1.5 md:gap-2.5`,n&&`pointer-events-auto`),children:e})]})}function po({run:e,embedded:t=!1,stateKey:n}){let r=ee();I();let i=ie(e.id,rt(e.status)),a=Ue(),[o,s]=(0,Z.useState)(`unified`),[c,l]=(0,Z.useState)(!1),[u,d]=(0,Z.useState)(!1),[f,p]=Gr(n,null),m=(0,Z.useRef)(null),g=to(e.id),{add:_}=g,y=(0,Z.useCallback)(e=>{let t=_(e);return t&&wt(e.start?`multi_line`:`single_line`),t},[_]),b=g.comments.length,x=Xt(e.id,`composer`),[S,C]=(0,Z.useState)(!1),[w,E]=(0,Z.useState)(!1);b>0&&!w&&E(!0),w&&b===0&&!x.hasDraft&&!S&&E(!1);let D=b>0||S||w&&x.hasDraft,[O,k]=(0,Z.useState)(0),A=(0,Z.useCallback)(e=>{if(!e){k(0);return}if(k(e.offsetHeight),typeof ResizeObserver>`u`)return;let t=new ResizeObserver(()=>k(e.offsetHeight));return t.observe(e),()=>t.disconnect()},[]),j=(0,Z.useMemo)(()=>{let e=new Map;for(let t of g.comments)e.set(t.path,(e.get(t.path)??0)+1);return e},[g.comments]);v();let M=W({mutationFn:t=>ne(e.id,t),onError:e=>J(e.message,{tone:`danger`})}),N=i.isError&&i.error instanceof T&&i.error.status===409,P=i.data?.files??ho,F=(0,Z.useDeferredValue)(P,ho),L=F!==P,R=!i.isPending&&!i.isError&&P.length>0,z=(0,Z.useMemo)(()=>ln(P),[P]),B=(0,Z.useMemo)(()=>P.some(Br),[P]),te=a?o:`unified`,re=!a||c,V=(0,Z.useCallback)(e=>{let t=m.current;`side`in e&&t?.reveal?t.reveal(e):t?.scrollToPath(e.path)},[]),[H,U]=(0,Z.useState)(null),ae=(0,Z.useCallback)(e=>{m.current&&!L?V(e):U(e)},[L,V]);(0,Z.useEffect)(()=>{if(H===null||L)return;let e=0,t=setInterval(()=>{!m.current&&++e<40||(clearInterval(t),V(H),U(null))},75);return()=>clearInterval(t)},[L,V,H]);let oe=e=>{p(e),ae({path:e})},se=(0,Z.useCallback)(e=>{p(e.path),ae(e)},[ae,p]),[ce]=be(),le=(0,Z.useMemo)(()=>co(ce),[ce]),ue=(0,Z.useRef)(null);return(0,Z.useEffect)(()=>{if(!le||!R||L)return;let e=ce.toString();if(ue.current===e)return;let t=0,n=setInterval(()=>{!m.current&&++t<40||(clearInterval(n),ue.current=e,se(le))},75);return()=>clearInterval(n)},[L,R,se,ce,le]),(0,Q.jsxs)(`div`,{"data-route":`task-changes`,className:K(`flex min-h-full flex-col md:h-full`,t&&`@container`),children:[t?null:(0,Q.jsx)(Gt,{run:e,tab:`changes`}),(0,Q.jsx)($n,{branch:e.branch,stat:i.data?.stat,mode:te,wrap:re,preview:u,onModeChange:s,onWrapChange:l,onPreviewChange:B?d:void 0}),i.data?.repointedHead?(0,Q.jsxs)(`p`,{"data-slot":`repointed-head-note`,className:`border-b px-4 py-2 text-xs text-soft-foreground md:px-6`,children:[`HEAD is on `,(0,Q.jsx)(`code`,{children:i.data.repointedHead.headBranch}),`, not this task's branch`,` `,(0,Q.jsx)(`code`,{children:i.data.repointedHead.taskBranch}),` — showing only what this task changed there.`]}):null,i.isPending?(0,Q.jsx)(`p`,{"data-slot":`changes-loading`,className:`px-4 py-6 text-center text-xs text-soft-foreground md:px-6`,children:`Loading changes…`}):i.isError?(0,Q.jsx)(Ir,{icon:N?(0,Q.jsx)(rr,{}):(0,Q.jsx)(or,{}),tone:N?`neutral`:`danger`,heading:`h2`,title:N?`No changes to show`:`Could not load the changes`,subtitle:i.error.message}):P.length===0?(0,Q.jsx)(Ir,{icon:(0,Q.jsx)(rr,{}),tone:`neutral`,heading:`h2`,title:`No changes yet`,subtitle:`The worktree matches its base branch. Changes appear here as the agent works.`}):(0,Q.jsxs)(`div`,{className:`flex min-h-0 flex-1 gap-5 px-4 py-4 max-md:pb-[calc(1rem_+_var(--changes-dock,0px))] md:px-6 md:py-0`,style:{"--changes-dock":`${D?O:0}px`},children:[(0,Q.jsx)(`aside`,{"data-slot":`changes-tree-pane`,className:K(`hidden w-60 shrink-0 overflow-y-auto overscroll-contain pt-4 pb-[calc(1rem_+_var(--changes-dock,0px))]`,t?`md:@xl:block @4xl:w-72`:`md:block lg:w-72`),children:(0,Q.jsx)(fn,{root:z,selected:f,onSelect:oe,commentCounts:j})}),(0,Q.jsx)(`div`,{"data-slot":`diff-pane`,"data-diff-scroller":a?``:void 0,className:`min-w-0 flex-1 md:overflow-y-auto md:overscroll-contain`,children:F.length===0?(0,Q.jsxs)(`p`,{"data-slot":`diff-rendering`,className:`px-1 pt-4 text-xs text-soft-foreground`,children:[`Rendering `,P.length.toLocaleString(),` `,P.length===1?`file`:`files`,`…`]}):(0,Q.jsx)(Wr,{files:F,viewRef:m,mode:te,wrap:re,preview:a&&B&&u,loadFileText:t=>go(e.id,t),imageSrc:t=>h(e.id,t),onOpenInApp:r.data?.capabilities.localHandoff?e=>M.mutate(e):void 0,comments:g.comments,onAddComment:g.ready?y:void 0,onEditComment:g.update,onRemoveComment:g.remove,className:`min-w-0 md:pt-4 md:pb-[calc(1rem_+_var(--changes-dock,0px))] [&_[data-slot=diff-comment-editor]]:scroll-mb-[var(--changes-dock,0px)] [&_[data-slot=diff-line-comment]]:scroll-mb-[var(--changes-dock,0px)] [&_[data-slot=diff-line]]:scroll-mb-[var(--changes-dock,0px)]`},e.id)})]}),D?(0,Q.jsx)(fo,{ref:A,floating:!0,className:`mt-auto`,style:{marginTop:R&&O?-O:void 0},children:(0,Q.jsx)(mo,{run:e,draft:x,diffComments:g,onSendingChange:C,onOpenComment:e=>se({path:e.path,side:e.side,line:e.line,commentId:e.id}),getMentionCandidates:()=>P.map(e=>e.path)})}):null]})}function mo(e){let t=ao(e.run);return Me(),(0,Q.jsx)(uo,{...e,continueAction:t})}var ho=[];async function go(e,t){try{let n=await pe(e,t);return n.type!==`file`||n.binary||n.tooLarge?null:n.content??null}catch{return null}}function _o({runId:e,selected:t,onSelect:n}){return(0,Q.jsx)(`nav`,{"data-slot":`files-tree`,"aria-label":`Worktree files`,className:`min-w-0 text-[13px]`,children:(0,Q.jsx)(`ul`,{className:`flex flex-col gap-px`,children:(0,Q.jsx)(vo,{runId:e,path:``,depth:0,selected:t,onSelect:n})})})}function vo({runId:e,path:t,depth:n,selected:r,onSelect:i}){let a=ce(e,t);return a.isPending?(0,Q.jsx)(`li`,{"data-slot":`files-tree-loading`,className:`px-1.5 py-1 text-xs text-soft-foreground`,style:{paddingLeft:`${24+n*14}px`},children:`Loading…`}):a.isError?(0,Q.jsx)(`li`,{"data-slot":`files-tree-error`,className:`px-1.5 py-1 text-xs text-danger`,style:{paddingLeft:`${24+n*14}px`},children:a.error.message}):a.data.type===`dir`?a.data.entries.length===0?(0,Q.jsx)(`li`,{"data-slot":`files-tree-empty`,className:`px-1.5 py-1 text-xs text-soft-foreground`,style:{paddingLeft:`${24+n*14}px`},children:`Empty directory`}):(0,Q.jsx)(Q.Fragment,{children:a.data.entries.map(a=>a.type===`dir`?(0,Q.jsx)(yo,{runId:e,name:a.name,path:t===``?a.name:`${t}/${a.name}`,depth:n,selected:r,onSelect:i},a.name):(0,Q.jsx)(bo,{name:a.name,path:t===``?a.name:`${t}/${a.name}`,size:a.size,depth:n,selected:r,onSelect:i},a.name))}):null}function yo({runId:e,name:t,path:n,depth:r,selected:i,onSelect:a}){let[o,s]=(0,Z.useState)(!1);return(0,Q.jsxs)(`li`,{children:[(0,Q.jsxs)(`button`,{type:`button`,"data-slot":`files-dir`,"data-path":n,"data-state":o?`open`:`closed`,"aria-expanded":o,onClick:()=>s(e=>!e),className:`flex w-full min-w-0 items-center gap-1.5 rounded-sm px-1.5 py-1 text-left text-muted-foreground hover:bg-muted hover:text-foreground`,style:{paddingLeft:`${6+r*14}px`},children:[(0,Q.jsx)(Hn,{"aria-hidden":`true`,className:K(`size-3.5 shrink-0 transition-transform`,o&&`rotate-90`)}),(0,Q.jsx)(er,{"aria-hidden":`true`,className:`size-3.5 shrink-0`}),(0,Q.jsx)(`span`,{className:`min-w-0 truncate font-medium`,children:t})]}),o?(0,Q.jsx)(`ul`,{className:`flex flex-col gap-px`,children:(0,Q.jsx)(vo,{runId:e,path:n,depth:r+1,selected:i,onSelect:a})}):null]})}function bo({name:e,path:t,size:n,depth:r,selected:i,onSelect:a}){let o=i===t,s=pn(t)?cn:jn;return(0,Q.jsx)(`li`,{children:(0,Q.jsxs)(`button`,{type:`button`,"data-slot":`files-file`,"data-path":t,"aria-current":o?`true`:void 0,onClick:()=>a(t),className:K(`flex w-full min-w-0 items-center gap-1.5 rounded-sm px-1.5 py-1 text-left hover:bg-muted`,o?`bg-muted font-medium text-foreground`:`text-muted-foreground hover:text-foreground`),style:{paddingLeft:`${24+r*14}px`},children:[(0,Q.jsx)(s,{"aria-hidden":`true`,className:`size-3.5 shrink-0`}),(0,Q.jsx)(`span`,{className:`min-w-0 truncate`,children:e}),n===void 0?null:(0,Q.jsx)(`span`,{className:`ml-auto shrink-0 pl-2 font-mono text-[11px] tabular-nums text-soft-foreground`,children:dn(n)})]})})}function xo({run:e,embedded:t=!1,stateKey:n}){let r=ce(e.id,``),[i,a]=Gr(n,null),o=Ue(),s=r.isError&&r.error instanceof T&&r.error.status===409;return(0,Q.jsxs)(`div`,{"data-route":`task-files`,className:K(`flex min-h-full flex-col md:h-full`,t&&`@container`),children:[t?null:(0,Q.jsx)(Gt,{run:e,tab:`files`}),r.isPending?(0,Q.jsx)(`p`,{"data-slot":`files-loading`,className:`px-4 py-6 text-center text-xs text-soft-foreground md:px-6`,children:`Loading files…`}):r.isError?(0,Q.jsx)(Ir,{icon:s?(0,Q.jsx)(un,{}):(0,Q.jsx)(cr,{}),tone:s?`neutral`:`danger`,heading:`h2`,title:s?`No files to browse`:`Could not load the files`,subtitle:r.error.message}):(0,Q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-5 px-4 py-4 md:flex-row md:px-6 md:py-0`,children:[(0,Q.jsx)(`aside`,{"data-slot":`files-tree-pane`,className:K(`w-full shrink-0 md:overflow-y-auto md:overscroll-contain md:py-4`,t?`md:w-44 @xl:w-60 @4xl:w-72`:`md:w-60 lg:w-72`),children:(0,Q.jsx)(_o,{runId:e.id,selected:i,onSelect:a})}),(0,Q.jsx)(`div`,{"data-slot":`file-preview-pane`,...o?{role:`region`,"aria-label":`File preview`,tabIndex:0}:{},className:`min-w-0 flex-1 md:overflow-y-auto md:overscroll-contain`,children:(0,Q.jsx)(`div`,{className:`md:py-4`,children:(0,Q.jsx)(hn,{source:{kind:`run`,runId:e.id},path:i,className:`min-w-0`})})})]})]})}var So=2e3;function Co(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{lastEnd:t,lastStart:n}}function wo(e){let{lastEnd:t,lastStart:n}=Co(e);return t>n?t:0}function To(e){let{lastEnd:t,lastStart:n}=Co(e);return n>t?n:0}function Eo(e,t){let n=v(),r=(0,Z.useMemo)(()=>wo(t),[t]),i=(0,Z.useMemo)(()=>To(t),[t]),a=e?.id,o=e?.status;(0,Z.useEffect)(()=>{if(a===void 0||o===void 0||o===`queued`||!(o===`running`||o===`waiting`?r>0:i>0))return;let e=setTimeout(()=>{n.invalidateQueries({queryKey:V.runs.detail(a)}),n.invalidateQueries({queryKey:V.runs.list()})},So);return()=>clearTimeout(e)},[r,i,a,o,n])}function Do({run:e}){let t=v(),n=W({mutationFn:()=>te(e.id),onSuccess:()=>{t.invalidateQueries({queryKey:V.runs.detail(e.id)}),t.invalidateQueries({queryKey:V.runs.list()}),J(`This task will not resume itself`)},onError:e=>J(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,Q.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,Q.jsx)(Mr,{tone:`pending`,pulse:!0}),(0,Q.jsxs)(`span`,{children:[`Usage limit reached — this task resumes automatically at`,` `,(0,Q.jsx)(`time`,{dateTime:e.autoResumeAt,className:`font-medium text-foreground`,children:i})]}),(0,Q.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,Q.jsx)(Se,{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`})]})}function Oo({run:e}){let t=e.status===`done`||e.status===`review`||e.status===`failed`||e.status===`cancelled`;return e.workflow!==`e2e-setup`||!t?null:(0,Q.jsx)(ko,{run:e})}function ko({run:e}){let t=!!k().data?.configFile,n=e.status===`done`||e.status===`review`,r=e.steps.find(e=>e.status===`failed`&&e.id!==`pr`),i=e.pullRequestUrl&&/^https?:\/\//.test(e.pullRequestUrl)?e.pullRequestUrl:void 0,a=(0,Q.jsx)(Y,{className:`font-medium underline underline-offset-2`,to:`/settings/integrations`,children:`Settings → External integrations`});return(0,Q.jsxs)(`div`,{"data-slot":`e2e-setup-verdict`,"data-verdict":n?`works`:`not-working`,role:`status`,className:K(`mt-4 flex gap-3 rounded-lg border p-4 text-sm`,n?`border-success/40 bg-success/5`:`border-danger/40 bg-danger/5`),children:[n?(0,Q.jsx)(Un,{className:`mt-0.5 size-5 shrink-0 text-success`,"aria-hidden":!0}):(0,Q.jsx)(Pe,{className:`mt-0.5 size-5 shrink-0 text-danger`,"aria-hidden":!0}),(0,Q.jsxs)(`div`,{className:`min-w-0`,children:[(0,Q.jsx)(`p`,{className:`font-semibold`,children:n?`e2e works`:e.status===`cancelled`?`e2e is not set up — the setup was cancelled`:`e2e is not working yet`}),n?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`p`,{className:`mt-1 text-muted-foreground`,children:`The config loads and the smoke test passed in a real browser.`}),(0,Q.jsx)(`p`,{className:`mt-1`,children:t?(0,Q.jsxs)(Q.Fragment,{children:[`It is live in this project: pick the `,(0,Q.jsx)(`code`,{children:`implement-and-e2e`}),` workflow for your next task.`]}):i?(0,Q.jsxs)(Q.Fragment,{children:[`One step left: merge the `,(0,Q.jsx)(`a`,{className:`font-medium underline underline-offset-2`,href:i,target:`_blank`,rel:`noreferrer`,children:`draft PR`}),`. Then pick the `,(0,Q.jsx)(`code`,{children:`implement-and-e2e`}),` workflow for your next task.`]}):(0,Q.jsxs)(Q.Fragment,{children:[`One step left: merge branch `,(0,Q.jsx)(`code`,{children:e.branch??`of this task`}),` (or open a draft PR from the header). Then pick the `,(0,Q.jsx)(`code`,{children:`implement-and-e2e`}),` workflow for your next task.`]})})]}):e.status===`cancelled`?(0,Q.jsxs)(`p`,{className:`mt-1 text-muted-foreground`,children:[`Start it again from `,a,`.`]}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`p`,{className:`mt-1 text-muted-foreground`,children:r?(0,Q.jsxs)(Q.Fragment,{children:[`“`,r.name,`” did not pass — its output is above.`]}):`The setup stopped before it could prove e2e works — the reason is above.`}),(0,Q.jsxs)(`p`,{className:`mt-1`,children:[`Continue this task to fix it, or set it up again from `,a,`.`]})]})]})]})}var Ao=e=>e.kind===`tool`,jo=e=>(e.toolKind===`read`||e.toolKind===`search`)&&e.status===`completed`,Mo=(e,t,n)=>`${e} ${e===1?t:n}`;function No(e,t){let n=[];return e>0&&n.push(Mo(e,`file`,`files`)),t>0&&n.push(Mo(t,`search`,`searches`)),`Explored ${n.join(` · `)}`}function Po(e){return`${e} earlier tool call${e===1?``:`s`}`}var Fo=[`Web search`,`Ran`,`Edit`,`Write`,`Read`,`Search`,`Fetch`,`Task:`,`Skill:`];function Io(e){for(let t of Fo)if(e.startsWith(`${t} `)&&e.length>t.length+1)return{verb:t.endsWith(`:`)?t.slice(0,-1):t,detail:e.slice(t.length+1)};return{verb:e}}function Lo(e){let t=e.filter(e=>!(e.kind===`tool`&&e.toolKind===`plan`)&&!(e.kind===`reasoning`&&e.text.trim()===``)),n=new Set(t.filter(Ao).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:No(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)Ao(e)&&jo(e)&&!r.has(e.id)?o.push(e):(s(),Ao(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 Ro=new Map,zo=(0,Z.createContext)(null);function Bo(){return(0,Z.useContext)(zo)}function Vo({runId:e,children:t}){let n=(0,Z.useMemo)(()=>({get:t=>Ro.get(e)?.get(t),set:(t,n)=>{let r=Ro.get(e)??new Map;r.set(t,n),Ro.set(e,r)}}),[e]);return(0,Q.jsx)(zo.Provider,{value:n,children:t})}function Ho(e){let t=`flex w-full flex-col pb-2.5`;return e?`${t} [contain-intrinsic-block-size:auto_3rem] [content-visibility:auto]`:t}function Uo(e){return e.scrollTop<Math.max(600,e.clientHeight)}function Wo(e,t){let n=t.find(({bottom:t})=>t>e);return n===void 0?void 0:{key:n.key,offset:n.top-e}}function Go(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 Ko(e,t=24){return e.scrollHeight-e.scrollTop-e.clientHeight<t}function qo(e,t){let n=new URLSearchParams(e).get(`thread`);return n===`flat`||n===`virtual`?n:t>300?`virtual`:`flat`}var Jo=new Map;function Yo(e,t){Jo.set(e,t)}function Xo(e){return Jo.get(e)}var Zo=new Map;function Qo(e,t){Zo.set(e,t)}function $o(e,t){let n=Zo.get(e);return n!==void 0&&n.rows===t?n.cache:void 0}var es=new Intl.DateTimeFormat(void 0,{hour:`numeric`,minute:`2-digit`}),ts=new Intl.DateTimeFormat(void 0,{dateStyle:`medium`,timeStyle:`medium`}),ns=new Intl.DateTimeFormat(void 0,{weekday:`short`,month:`short`,day:`numeric`}),rs=new Intl.DateTimeFormat(void 0,{weekday:`short`,year:`numeric`,month:`short`,day:`numeric`}),is=new Intl.DateTimeFormat(void 0,{dateStyle:`full`});function as(e){if(typeof e!=`string`||e===``)return;let t=new Date(e);return Number.isFinite(t.getTime())?t:void 0}function os(e){let t=as(e);return t===void 0?void 0:es.format(t)}function ss(e){let t=as(e);return t===void 0?void 0:ts.format(t)}var cs=e=>`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`;function ls(e){let t=as(e);return t===void 0?void 0:cs(t)}function us(e,t=new Date){let n=as(e);if(n===void 0)return;let r=cs(n);return r===cs(t)?`Today`:r===cs(new Date(t.getFullYear(),t.getMonth(),t.getDate()-1))?`Yesterday`:(n.getFullYear()===t.getFullYear()?ns:rs).format(n)}function ds(e,t){let n=as(e),r=as(t);if(!(n===void 0||r===void 0))return ps(Math.round((r.getTime()-n.getTime())/1e3))}function fs(e,t){let n=as(e);if(n!==void 0)return ps(Math.floor((t-n.getTime())/1e3))}function ps(e){if(e<0)return;if(e<60)return`${e}s`;let t=Math.floor(e/60);return t<60?`${t}m ${String(e%60).padStart(2,`0`)}s`:`${Math.floor(t/60)}h ${String(t%60).padStart(2,`0`)}m`}function ms(e=1e3){let[t,n]=(0,Z.useState)(()=>Date.now());return(0,Z.useEffect)(()=>{let t=setInterval(()=>n(Date.now()),e);return()=>clearInterval(t)},[e]),t}function hs({ts:e}){let t=os(e);return t===void 0?null:(0,Q.jsx)(`time`,{"data-slot":`message-time`,dateTime:e,title:ss(e),className:`text-[11px] leading-none text-soft-foreground`,children:t})}function gs({startedAt:e,completedAt:t}){let n=os(t);if(n===void 0)return null;let r=ds(e,t);return(0,Q.jsxs)(`div`,{"data-slot":`turn-time`,className:`flex items-center gap-1.5 px-0.5 text-[11px] leading-none text-soft-foreground`,children:[(0,Q.jsx)(`time`,{dateTime:t,title:ss(t),children:n}),r===void 0?null:(0,Q.jsxs)(`span`,{title:`Replied in ${r}`,children:[`· `,r]})]})}function _s({ts:e}){let t=us(e),n=as(e);if(t===void 0||n===void 0)return null;let r=is.format(n);return(0,Q.jsxs)(`div`,{"data-slot":`day-separator`,role:`separator`,"aria-label":t===`Today`||t===`Yesterday`?`${t}, ${r}`:r,className:`flex items-center gap-3 py-1 text-[11px] font-medium text-soft-foreground`,children:[(0,Q.jsx)(`span`,{"aria-hidden":!0,className:`h-px flex-1 bg-border`}),(0,Q.jsx)(`time`,{dateTime:ls(e),title:r,children:t}),(0,Q.jsx)(`span`,{"aria-hidden":!0,className:`h-px flex-1 bg-border`})]})}function vs({text:e,imageCount:t=0,images:n=[],ts:r,onEdit:i,onRemove:a,editLabel:o=`Edit message`,removeLabel:s=`Remove message`,draftRunId:c,draftSurface:l}){let u=t-n.length,[d,f]=(0,Z.useState)(!1),[p,m]=(0,Z.useState)(e),[h,g]=(0,Z.useState)(!1),[_,v]=(0,Z.useState)(),y=Xt(c??``,l??``,{enabled:i!==void 0&&c!==void 0&&l!==void 0}),b=`${c??``} ${l??``}`,[x,S]=(0,Z.useState)(b);x!==b&&(S(b),f(!1),m(e),v(void 0)),(0,Z.useEffect)(()=>{d||!y.ready||!y.hasDraft||(m(y.text),v(void 0),f(!0))},[d,y.hasDraft,y.ready,y.text]);let C=e=>{m(e),y.setText(e)},w=()=>{m(e),v(void 0),f(!0)},T=async()=>{let t=p.trim();if(!t||t===e){y.clear(),f(!1);return}g(!0),v(void 0);try{await y.submit(()=>i?.(t)??Promise.resolve()),f(!1)}catch(e){v(e instanceof Error?e.message:`Could not save the message`)}finally{g(!1)}},E=()=>{y.clear(),f(!1)},D=async()=>{g(!0),v(void 0);try{await a?.(),y.clear()}catch(e){v(e instanceof Error?e.message:`Could not remove the message`)}finally{g(!1)}};return d?(0,Q.jsxs)(`div`,{"data-slot":`user-bubble`,"data-editing":`true`,className:`max-w-[78%] self-end rounded-2xl rounded-br-md bg-muted px-[15px] py-2.5 text-[13.5px] leading-[1.55] md:max-w-[70%]`,children:[(0,Q.jsx)(`textarea`,{autoFocus:!0,"aria-label":`Edit the message`,value:p,onChange:e=>C(e.target.value),onKeyDown:e=>{e.key===`Escape`?(e.stopPropagation(),E()):e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),T())},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,Q.jsxs)(`span`,{className:`mt-1.5 flex justify-end gap-1.5`,children:[(0,Q.jsx)(`button`,{type:`button`,onClick:E,disabled:h,className:`rounded-sm px-2 py-1 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,Q.jsx)(`button`,{type:`button`,onClick:()=>void T(),disabled:h,className:`rounded-sm bg-primary px-2 py-1 text-xs font-semibold text-primary-foreground hover:brightness-[0.96] focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none`,children:h?(0,Q.jsx)(lr,{className:`size-3.5 animate-spin`}):`Save`})]}),_?(0,Q.jsx)(`p`,{role:`alert`,className:`mt-1.5 text-xs text-danger`,children:_}):null]}):(0,Q.jsxs)(`div`,{"data-slot":`user-bubble`,className:`group max-w-[78%] min-w-0 self-end rounded-2xl rounded-br-md bg-muted px-[15px] py-2.5 text-[13.5px] leading-[1.55] md:max-w-[70%]`,children:[i||a?(0,Q.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:[i?(0,Q.jsx)(`button`,{type:`button`,"aria-label":o,onClick:w,disabled:h,className:`rounded-sm p-1 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,Q.jsx)(ui,{className:`size-3.5`})}):null,a?(0,Q.jsx)(`button`,{type:`button`,"aria-label":s,onClick:()=>void D(),disabled:h,className:`rounded-sm p-1 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,Q.jsx)(Pn,{className:`size-3.5`})}):null]}):null,_?(0,Q.jsx)(`p`,{role:`alert`,className:`mb-1 text-xs text-danger`,children:_}):null,(0,Q.jsx)(ys,{text:e}),n.length>0?(0,Q.jsx)(`span`,{"data-slot":`user-images`,className:`mt-2 flex flex-wrap items-center justify-end gap-1.5`,children:n.map(e=>_e(e.split(`/`).pop()??``)?(0,Q.jsx)(Rr,{src:e,alt:`attached`,className:`max-h-40 max-w-[220px] rounded-md border border-border object-contain`},e):(0,Q.jsxs)(`a`,{href:e,download:!0,"data-slot":`user-file`,className:`inline-flex 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,Q.jsx)(Sn,{"aria-hidden":`true`,className:`size-3.5 shrink-0`}),(0,Q.jsx)(`span`,{className:`truncate`,children:e.split(`/`).pop()})]},e))}):null,u>0?(0,Q.jsxs)(`span`,{className:`mt-1 block text-xs text-soft-foreground`,children:[u,` image`,u>1?`s`:``,` attached`]}):null,r===void 0?null:(0,Q.jsx)(`span`,{className:`mt-1 flex justify-end`,children:(0,Q.jsx)(hs,{ts:r})})]})}function ys({text:e}){let t=(0,Z.useMemo)(()=>za(e),[e]);return t?(0,Q.jsxs)(Q.Fragment,{children:[t.lead===``?null:(0,Q.jsx)(Lr,{breaks:!0,children:t.lead}),(0,Q.jsx)(oo,{items:t.items})]}):(0,Q.jsx)(Lr,{breaks:!0,children:e})}function bs({text:e}){return(0,Q.jsx)(`div`,{"data-slot":`assistant-message`,className:`min-w-0 text-[15px] leading-[1.65]`,children:(0,Q.jsx)(Lr,{children:e})})}function xs({note:e}){return(0,Q.jsxs)(`div`,{"data-slot":`note-line`,"data-tone":e.tone,className:K(`px-0.5 text-xs`,e.tone===`danger`?`text-danger`:`text-soft-foreground`),children:[e.tone===`danger`?`✗ `:`· `,e.text]})}var Ss={claude:`Claude Code`,codex:`Codex`,junie:`Junie`,opencode:`OpenCode`,cursor:`Cursor`,pi:`pi`,copilot:`GitHub Copilot CLI`};function Cs({incident:e}){if(e.profileId!==void 0)return(0,Q.jsx)(ws,{incident:e,profileId:e.profileId});let t=Ss[e.provider];return(0,Q.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,Q.jsxs)(`p`,{className:`text-[13px] font-semibold text-foreground`,children:[`This run needed `,t,` authorization`]}),(0,Q.jsxs)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:[`Review `,t,` settings before retrying.`]}),(0,Q.jsx)(Y,{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 ws({incident:e,profileId:t}){let n=U(),r=Ss[e.provider];return(0,Q.jsxs)(`div`,{role:`alert`,"data-slot":`provider-auth-required`,"data-profile-id":t,className:`rounded-md border border-danger/30 bg-danger/5 px-3.5 py-3`,children:[(0,Q.jsxs)(`p`,{className:`text-[13px] font-semibold text-foreground`,children:[`This run needed `,r,` account “`,n.data?.profiles.find(n=>n.id===t&&n.provider===e.provider)?.label??t,`” to be signed in`]}),(0,Q.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:`Sign that account in again before retrying.`}),(0,Q.jsx)(Se,{to:`/settings/global/accounts`,className:`mt-2 inline-flex text-xs font-medium text-foreground underline-offset-2 hover:underline`,children:`Open agent accounts`})]})}var Ts=new Set([`claude`,`opencode`,`cursor`]);function Es({incident:e}){let t=Ss[e.provider],[n,r]=(0,Z.useState)(null),i=W({mutationFn:()=>B(e.provider),onSuccess:()=>{r(null),J(`Updating ${t} in a terminal. Continue the task once it finishes.`)},onError:e=>r({message:e.message,command:e instanceof T?e.command:void 0})}),a=async e=>{try{await navigator.clipboard.writeText(e),J(`Command copied`)}catch{J(`Could not copy the command`,{tone:`danger`})}};return(0,Q.jsxs)(`div`,{role:`alert`,"data-slot":`agent-update-required`,className:`rounded-md border border-danger/30 bg-danger/5 px-3.5 py-3`,children:[(0,Q.jsxs)(`p`,{className:`text-[13px] font-semibold text-foreground`,children:[t,` needs an update`]}),Ts.has(e.provider)?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:`Update it, then continue the task.`}),(0,Q.jsxs)(q,{type:`button`,variant:`outline`,size:`sm`,className:`mt-2`,disabled:i.isPending,onClick:()=>i.mutate(),children:[`Update `,t]})]}):(0,Q.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:`Update it the way you installed it, then continue the task.`}),n?(0,Q.jsxs)(`div`,{"data-slot":`agent-update-manual`,className:`mt-2 text-xs text-muted-foreground`,children:[(0,Q.jsx)(`p`,{children:n.message}),n.command?(0,Q.jsxs)(`div`,{className:`mt-1 flex items-center gap-2`,children:[(0,Q.jsx)(`code`,{className:`rounded bg-muted px-1.5 py-0.5 font-mono text-foreground`,children:n.command}),(0,Q.jsx)(q,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>void a(n.command),children:`Copy`})]}):null]}):null]})}function Ds({text:e}){let t=(0,Z.useId)();if(e.trim()===``)return null;let n=e.split(`
19
- `,1)[0]??``,r=n.length<e.length;return(0,Q.jsxs)(yr,{"data-slot":`reasoning`,className:`group/reasoning min-w-0`,children:[(0,Q.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,Q.jsx)(Hn,{"aria-hidden":!0,className:`size-3.5 shrink-0 transition-transform group-data-[state=open]/reasoning:rotate-90`}),(0,Q.jsx)(`span`,{className:`shrink-0`,children:`Thinking — `}),(0,Q.jsx)(`div`,{className:`min-w-0 truncate text-muted-foreground`,children:(0,Q.jsx)(Lr,{inline:!0,children:n})}),r?(0,Q.jsx)(`span`,{"aria-hidden":!0,children:`…`}):null,(0,Q.jsx)(vr,{"aria-labelledby":t,className:`absolute inset-0 rounded-md focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none`})]}),(0,Q.jsx)(_r,{children:(0,Q.jsx)(`div`,{className:`px-6 py-1.5 text-[13px] leading-[1.6] text-soft-foreground`,children:(0,Q.jsx)(Lr,{children:e})})})]})}function Os({since:e,lastActivityAt:t}={}){let n=ms(),r=fs(e,n),i=fs(t,n),a=os(t);return(0,Q.jsxs)(`div`,{"data-slot":`working-indicator`,className:`flex flex-wrap items-center gap-x-2 gap-y-0.5 py-1 text-[13px] text-soft-foreground`,children:[(0,Q.jsx)(lr,{role:`status`,"aria-label":`Working`,className:`size-3.5 shrink-0 animate-spin`}),(0,Q.jsx)(`span`,{className:`shimmer font-medium`,children:`Working…`}),r===void 0?null:(0,Q.jsx)(`span`,{"data-slot":`working-elapsed`,title:`Started ${ss(e)}`,className:`font-mono text-xs tabular-nums`,children:r}),i!==void 0&&a!==void 0?(0,Q.jsxs)(`span`,{"data-slot":`working-last-activity`,title:ss(t),className:`text-xs`,children:[`· last activity `,a,` (`,i,` ago)`]}):null]})}var ks={read:ar,edit:ui,delete:Pn,move:oi,search:Ne,execute:an,think:ii,fetch:Xe,task:Mn,skill:xt,plan:si,other:tr},As=e=>e.split(`
20
- `).length;function js({text:e,streaming:t}){let[n,r]=(0,Z.useState)(!1),i=(0,Z.useRef)(null),a=(0,Z.useRef)(!0);(0,Z.useEffect)(()=>{let e=i.current;t&&e&&a.current&&(e.scrollTop=e.scrollHeight)},[e,t]);let o=As(e),s=!t&&!n&&o>12;return(0,Q.jsxs)(`div`,{"data-slot":`tool-output`,"data-clamped":s?`true`:void 0,children:[(0,Q.jsxs)(`div`,{className:`relative`,children:[(0,Q.jsx)(`div`,{ref:i,onScroll:t?e=>{a.current=Ko(e.currentTarget)}:void 0,className:K(`overflow-x-auto`,t&&`max-h-[216px] overflow-y-auto`,s&&`max-h-[216px] overflow-y-hidden`),children:(0,Q.jsx)(`pre`,{className:`px-4 py-3 font-mono text-xs leading-[1.7] whitespace-pre text-muted-foreground`,children:e})}),s?(0,Q.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,Q.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 Ms({diffs:e}){return(0,Q.jsx)(Q.Fragment,{children:e.map((e,t)=>(0,Q.jsxs)(`div`,{"data-slot":`diff-preview`,className:`min-w-0`,children:[(0,Q.jsx)(`div`,{className:`border-b border-border/50 px-4 py-1.5 font-mono text-[11px] text-soft-foreground`,children:e.path}),(0,Q.jsx)(`pre`,{className:`overflow-x-auto py-2 font-mono text-xs leading-[1.7] whitespace-pre`,children:e.unified===void 0?[...Ns(e.oldText).map((e,t)=>(0,Q.jsxs)(`span`,{className:`block bg-diff-del px-4 text-muted-foreground`,children:[`- `,e]},`old-${t}`)),...Ns(e.newText).map((e,t)=>(0,Q.jsxs)(`span`,{className:`block bg-diff-add px-4`,children:[`+ `,e]},`new-${t}`))]:e.unified.split(`
21
- `).map((e,t)=>(0,Q.jsx)(Ps,{text:e},t))})]},`${e.path}:${t}`))})}function Ns(e){return e==null||e===``?[]:e.replace(/\n$/,``).split(`
22
- `)}function Ps({text:e}){return(0,Q.jsx)(`span`,{className:K(`block px-4`,e.startsWith(`+`)&&`bg-diff-add`,e.startsWith(`-`)&&`bg-diff-del text-muted-foreground`,e.startsWith(`@@`)&&`text-soft-foreground`),children:e})}function Fs(e){if(e.toolKind!==`execute`)return;let t=e.input,n=typeof t==`object`&&t&&`command`in t?t.command:void 0,r=typeof n==`string`?n:Array.isArray(n)&&n.every(e=>typeof e==`string`)?n.join(` `):Io(e.title).detail;return r!==void 0&&r.trim()!==``?r:void 0}function Is({command:e}){let[t,n]=(0,Z.useState)(!1);return(0,Q.jsx)(`button`,{type:`button`,"aria-label":t?`Copied`:`Copy command`,onClick:()=>{navigator.clipboard?.writeText(e).then(()=>{n(!0),setTimeout(()=>n(!1),1500)})},className:`mt-[3px] mr-1.5 shrink-0 rounded p-1 text-soft-foreground hover:bg-muted hover:text-foreground`,children:t?(0,Q.jsx)(In,{"aria-hidden":!0,className:`size-3.5`}):(0,Q.jsx)(Ge,{"aria-hidden":!0,className:`size-3.5`})})}function Ls(e){return e.toolKind===`execute`&&e.status===`running`&&e.output!==void 0}function Rs({item:e,nested:t=[],cacheKey:n,renderNested:r}){let i=Bo(),[a,o]=(0,Z.useState)(()=>n===void 0?null:i?.get(n)??null),s=e=>{n!==void 0&&i?.set(n,e),o(e)},c=e.status===`running`||e.status===`pending`,l=Fs(e),{verb:u,detail:d}=Io(e.title),f=l!==void 0&&(l!==d||l.includes(`
23
- `)||l.length>80),p=l!==void 0&&f,m=f||e.output!==void 0&&e.output!==``||e.error!==void 0&&e.error!==``||e.diffs!==void 0&&e.diffs.length>0||t.length>0,h=m&&(a??Ls(e)),g=h&&p?l:void 0,_=ks[e.toolKind]??tr;return(0,Q.jsxs)(yr,{"data-slot":`tool-card`,"data-status":e.status,"data-kind":e.toolKind,open:h,onOpenChange:s,className:K(`min-w-0 overflow-hidden rounded-md border bg-card`,e.status===`failed`?`border-danger/25`:`border-border`),children:[(0,Q.jsxs)(`div`,{className:`flex min-w-0 items-start`,children:[(0,Q.jsxs)(vr,{disabled:!m,className:K(`group flex min-h-[28px] w-full min-w-0 gap-1.5 px-2.5 py-0.5 text-left text-[13px] enabled:hover:bg-muted`,g===void 0?`items-center`:`items-start [&>svg]:mt-[7px] [&>span]:mt-[2px]`),children:[(0,Q.jsx)(Hn,{"aria-hidden":!0,className:K(`size-3 shrink-0 text-soft-foreground transition-transform group-data-[state=open]:rotate-90`,!m&&`invisible`)}),(0,Q.jsx)(_,{"aria-hidden":!0,className:`size-3.5 shrink-0 text-muted-foreground`}),(0,Q.jsx)(`span`,{className:K(`shrink-0 font-semibold`,c&&`shimmer`,e.status===`declined`&&`text-muted-foreground`),children:u}),g===void 0?d===void 0?null:(0,Q.jsx)(`code`,{className:`min-w-0 truncate font-mono text-xs text-muted-foreground`,children:d}):(0,Q.jsx)(`code`,{"data-slot":`tool-command`,className:`max-h-48 min-w-0 overflow-y-auto py-1 font-mono text-xs leading-[1.6] whitespace-pre-wrap break-all text-muted-foreground`,children:g}),(0,Q.jsxs)(`span`,{className:`ml-auto flex shrink-0 items-center gap-2 pl-2`,children:[c?(0,Q.jsx)(lr,{role:`status`,"aria-label":`Running`,className:`size-3.5 animate-spin text-soft-foreground`}):null,e.status===`failed`?(0,Q.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`failed`}):null,e.status===`declined`?(0,Q.jsx)(`span`,{className:`text-xs text-soft-foreground`,children:`declined`}):null,e.toolKind===`execute`&&typeof e.exitCode==`number`?(0,Q.jsx)(`span`,{"data-slot":`tool-exit`,className:K(`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]})]}),g===void 0?null:(0,Q.jsx)(Is,{command:g})]}),(0,Q.jsx)(_r,{children:(0,Q.jsxs)(`div`,{className:`border-t border-border bg-card-2 empty:hidden`,children:[e.error!==void 0&&e.error!==``?(0,Q.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,Q.jsx)(Ms,{diffs:e.diffs}):null,e.output!==void 0&&e.output!==``?(0,Q.jsx)(js,{text:e.output,streaming:c}):null,t.length>0?(0,Q.jsx)(`div`,{"data-slot":`tool-nested`,className:`flex flex-col gap-2 border-l-2 border-border py-2.5 pr-3 pl-3 ml-4 my-2`,children:r?.(t,n??e.id)}):null]})})]})}function zs({group:e,scope:t}){return(0,Q.jsxs)(yr,{"data-slot":`ctx-group`,className:`min-w-0`,children:[(0,Q.jsxs)(vr,{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,Q.jsx)(Hn,{"aria-hidden":!0,className:`size-3.5 shrink-0 text-soft-foreground transition-transform group-data-[state=open]:rotate-90`}),e.label]}),(0,Q.jsx)(_r,{children:(0,Q.jsx)(`div`,{className:`flex flex-col gap-1.5 pt-1.5 pl-4`,children:e.tools.map(e=>(0,Q.jsx)(Rs,{item:e,cacheKey:t===void 0?void 0:`${t}:${e.id}`},e.id))})})]})}function Bs({count:e,children:t}){return(0,Q.jsxs)(yr,{"data-slot":`tool-streak`,className:`min-w-0`,children:[(0,Q.jsxs)(vr,{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,Q.jsx)(Hn,{"aria-hidden":!0,className:`size-3.5 shrink-0 transition-transform group-data-[state=open]:rotate-90`}),Po(e)]}),(0,Q.jsx)(_r,{children:(0,Q.jsx)(`div`,{className:`flex flex-col gap-2 pt-2`,children:t})})]})}function Vs({image:e}){return(0,Q.jsx)(Rr,{"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`})}var Hs=120,Us=e=>e!==`pending`&&e!==`running`,Ws=e=>e.kind===`tool`&&e.toolKind===`task`,Gs=e=>Ws(e)&&e.parentItemId===void 0,Ks=e=>(e.kind===`message`||e.kind===`reasoning`||e.kind===`tool`)&&!(e.kind===`tool`&&e.toolKind===`plan`);function qs(e,t){for(let n=0;n<e.length;n+=1)if(e[n].items.some(e=>Gs(e)&&t.has(e.id)))return n;return 0}function Js(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 Ys(e){if(e.kind===`tool`)return Xs(e.title);if(e.kind===`message`||e.kind===`reasoning`){let t=e.text.split(`
24
- `);for(let e=t.length-1;e>=0;--e){let n=t[e].trim();if(n!==``)return Xs(n)}}}function Xs(e){return e.length>Hs?`${e.slice(0,Hs-1).trimEnd()}…`:e}function Zs(e,t=!1){let n=rc(e,e=>e.items.some(Gs));if(n===-1)return[];let r=e=>!t&&!Us(e.status),i=[];for(let t=n-1;t>=0;--t){let n=e[t].items.filter(Gs);if(n.length!==0){if(!n.some(r))break;i.unshift(...n)}}let a=[...i,...e[n].items.filter(Gs)];if(n!==e.length-1&&!a.some(r))return[];let o=new Set(a.map(e=>e.id)),s=i.length>0?qs(e,o):n,c=new Map;for(let t=s;t<e.length;t+=1)for(let n of e[t].items){if(!Ks(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=>$s(e,c.get(e.id)??[],t))}function Qs(e){let t=new Map;for(let n of e)for(let e of n.items){if(e.kind!==`tool`||e.toolKind!==`skill`||e.parentItemId!==void 0||e.status===`failed`||e.status===`declined`)continue;let n=Io(e.title).detail??e.title;t.has(n)||t.set(n,{id:e.id,name:n})}return[...t.values()]}function $s(e,t,n){let r={id:e.id,title:Io(e.title).detail??e.title,status:e.status,toolCalls:t.filter(e=>e.kind===`tool`).length},i=Js(e);i!==void 0&&(r.agentType=i),n&&!Us(e.status)&&(r.stalled=!0);for(let e=t.length-1;e>=0;--e){let n=Ys(t[e]);if(n!==void 0){r.activity=n;break}}return r}function ec(e){return{done:e.filter(e=>e.status===`completed`).length,total:e.length}}function tc(e){return e.activity??(e.stalled===!0?`never finished`:`starting…`)}function nc(e){return e.find(e=>!Us(e.status))??e[0]}function rc(e,t){for(let n=e.length-1;n>=0;--n)if(t(e[n]))return n;return-1}function ic(e,t,n=!1){for(let r=e.length-1;r>=0;--r){let i=e[r].items.find(e=>e.id===t&&Gs(e));if(i!==void 0)return $s(i,ac(e,t),n)}}function ac(e,t){let n=e.findIndex(e=>e.items.some(e=>e.id===t&&Gs(e)));if(n===-1)return[];let r=[];for(let i=n;i<e.length;i+=1)for(let n of e[i].items)Ks(n)&&n.parentItemId===t&&n.id!==t&&r.push(n);return r}var oc=new Map,sc=!1;function cc({runId:e,agents:t,onSelect:n}){let[r,i]=(0,Z.useState)(()=>oc.get(e)??sc),a=t.every(e=>e.status!==`pending`&&e.status!==`running`),o=(0,Z.useRef)(a);if((0,Z.useEffect)(()=>{!o.current&&a&&i(t=>t&&(oc.set(e,!1),!1)),o.current=a},[a,e]),t.length===0)return null;let{done:s,total:c}=ec(t),l=nc(t);return(0,Q.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,Q.jsx)(`div`,{"aria-hidden":!0,"data-slot":`grad-edge`,className:`h-[3px]`,style:{background:`var(--grad)`}}),(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>i(t=>(oc.set(e,!t),!t)),"aria-expanded":r,className:K(`flex w-full items-center gap-2 px-3.5 text-left text-[13px]`,r?`pt-2 pb-1.5`:`py-2`),children:[(0,Q.jsx)(Mn,{"aria-hidden":!0,className:`size-3.5 shrink-0 text-soft-foreground`}),(0,Q.jsx)(`span`,{className:`shrink-0 font-semibold`,children:`Agents`}),(0,Q.jsxs)(`span`,{"data-slot":`agents-count`,className:`shrink-0 text-muted-foreground tabular-nums`,children:[`· `,s,`/`,c]}),!r&&l!==void 0?(0,Q.jsxs)(`span`,{"data-slot":`agents-current`,className:`min-w-0 truncate text-muted-foreground`,children:[`— `,tc(l)]}):null,(0,Q.jsx)(Ln,{"aria-hidden":!0,className:K(`ml-auto size-3.5 shrink-0 text-soft-foreground transition-transform`,!r&&`rotate-180`)})]}),r?(0,Q.jsx)(`ul`,{"data-slot":`agents-list`,className:`flex flex-col gap-[7px] px-3.5 pb-3`,children:t.map(e=>(0,Q.jsx)(lc,{agent:e,onSelect:n},e.id))}):null]})}function lc({agent:e,onSelect:t}){let n=(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(uc,{status:e.status,stalled:e.stalled===!0}),(0,Q.jsx)(`span`,{className:`min-w-0 shrink truncate font-medium`,children:e.title}),e.agentType===void 0?null:(0,Q.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,Q.jsx)(`span`,{"data-slot":`agent-activity`,className:`min-w-0 flex-1 truncate text-muted-foreground`,children:tc(e)}),(0,Q.jsxs)(`span`,{"data-slot":`agent-tools`,className:`shrink-0 text-muted-foreground tabular-nums`,children:[e.toolCalls,` `,e.toolCalls===1?`tool`:`tools`]})]});return(0,Q.jsx)(`li`,{"data-slot":`agent-item`,"data-status":e.status,className:`min-w-0 text-[13px]`,children:t?(0,Q.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,Q.jsx)(`div`,{className:`flex min-h-5 min-w-0 items-center gap-2.5`,children:n})})}function uc({status:e,stalled:t=!1}){return t?(0,Q.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,Q.jsx)(`circle`,{cx:`12`,cy:`12`,r:`8.5`})}):e===`completed`?(0,Q.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,Q.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`,opacity:`.35`}),(0,Q.jsx)(`path`,{d:`m8.5 12.2 2.4 2.4 4.6-5`})]}):e===`failed`||e===`declined`?(0,Q.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,Q.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`,opacity:`.35`}),(0,Q.jsx)(`path`,{d:`m9 9 6 6M15 9l-6 6`})]}):(0,Q.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,Q.jsx)(`circle`,{className:`stroke-pending`,cx:`12`,cy:`12`,r:`8.5`,strokeWidth:`2`}),(0,Q.jsx)(`path`,{className:`fill-pending`,d:`M12 3.5 A8.5 8.5 0 0 1 12 20.5 Z`})]})}var dc=new Map;function fc(){return typeof window.matchMedia!=`function`||window.matchMedia(`(min-width: 768px)`).matches}function pc(e){return{done:e.filter(e=>e.status===`completed`).length,total:e.filter(e=>e.status!==`cancelled`).length}}function mc(e){return e.find(e=>e.status===`in_progress`)??e.find(e=>e.status===`pending`)}function hc({runId:e,entries:t,settled:n=!1}){let[r,i]=(0,Z.useState)(()=>dc.get(e)??fc());if(t.length===0)return null;let{done:a,total:o}=pc(t),s=n?void 0:mc(t),c=n&&a<o;return(0,Q.jsxs)(`section`,{"data-slot":`plan-dock`,"data-state":r?`open`:`collapsed`,"data-settled":n?`true`:void 0,className:`min-w-0 overflow-hidden rounded-lg border border-border bg-card shadow-xs`,children:[(0,Q.jsx)(`div`,{"aria-hidden":!0,"data-slot":`grad-edge`,className:`h-0.5 md:h-[3px]`,style:{background:`var(--grad)`}}),(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>i(t=>(dc.set(e,!t),!t)),"aria-expanded":r,className:K(`flex w-full items-center gap-2 px-3.5 text-left text-[13px]`,r?`pt-2 pb-1.5`:`py-2`),children:[(0,Q.jsx)(`span`,{className:`shrink-0 font-semibold`,children:`Plan`}),(0,Q.jsxs)(`span`,{"data-slot":`plan-count`,className:`shrink-0 text-muted-foreground tabular-nums`,children:[`· `,a,`/`,o]}),c?(0,Q.jsx)(`span`,{"data-slot":`plan-unfinished`,className:`shrink-0 text-soft-foreground`,children:`· left unfinished`}):null,!r&&s!==void 0?(0,Q.jsxs)(`span`,{"data-slot":`plan-current`,className:`min-w-0 truncate text-muted-foreground`,children:[`— `,s.activeForm??s.content]}):null,(0,Q.jsx)(Ln,{"aria-hidden":!0,className:K(`ml-auto size-3.5 shrink-0 text-soft-foreground transition-transform`,!r&&`rotate-180`)})]}),r?(0,Q.jsx)(`ul`,{"data-slot":`plan-list`,className:`flex flex-col gap-[7px] px-3.5 pb-3`,children:t.map((e,t)=>(0,Q.jsx)(gc,{entry:e,settled:n},`${t}:${e.content}`))}):null]})}function gc({entry:e,settled:t}){let n=t&&e.status===`in_progress`?`pending`:e.status;return(0,Q.jsxs)(`li`,{"data-slot":`plan-item`,"data-status":e.status,className:K(`flex min-h-5 min-w-0 items-center gap-2.5 text-[13px]`,n===`completed`&&`text-soft-foreground line-through`,n===`in_progress`&&`font-medium`,n===`pending`&&`text-muted-foreground`,n===`cancelled`&&`text-soft-foreground/70 line-through`),children:[(0,Q.jsx)(_c,{status:n}),(0,Q.jsx)(`span`,{className:`min-w-0 truncate`,children:e.content}),n===`in_progress`?(0,Q.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 _c({status:e}){return e===`cancelled`?(0,Q.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,Q.jsx)(`circle`,{cx:`12`,cy:`12`,r:`8.5`,opacity:`.5`}),(0,Q.jsx)(`path`,{d:`m8.5 15.5 7-7`})]}):e===`completed`?(0,Q.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,Q.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`,opacity:`.35`}),(0,Q.jsx)(`path`,{d:`m8.5 12.2 2.4 2.4 4.6-5`})]}):e===`in_progress`?(0,Q.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,Q.jsx)(`circle`,{className:`stroke-pending`,cx:`12`,cy:`12`,r:`8.5`,strokeWidth:`2`}),(0,Q.jsx)(`path`,{className:`fill-pending`,d:`M12 3.5 A8.5 8.5 0 0 1 12 20.5 Z`})]}):(0,Q.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,Q.jsx)(`circle`,{cx:`12`,cy:`12`,r:`8.5`})})}function vc({skills:e}){return e.length===0?null:(0,Q.jsxs)(`section`,{"data-slot":`skills-dock`,className:`flex min-w-0 items-center gap-2 overflow-hidden rounded-lg border border-border bg-card px-3.5 py-2 text-[13px] shadow-xs`,children:[(0,Q.jsx)(xt,{"aria-hidden":!0,className:`size-3.5 shrink-0 text-soft-foreground`}),(0,Q.jsx)(`span`,{className:`shrink-0 font-semibold`,children:e.length===1?`Skill`:`Skills`}),(0,Q.jsxs)(`span`,{"data-slot":`skills-names`,className:`min-w-0 truncate text-muted-foreground`,children:[`· `,e.map(e=>e.name).join(` · `)]})]})}function yc(e,t){if(Object.is(e,t))return!0;if(typeof e!=`object`||typeof t!=`object`||e===null||t===null)return!1;if(Array.isArray(e)||Array.isArray(t)){if(!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(!yc(e[n],t[n]))return!1;return!0}if(!bc(e)||!bc(t))return!1;let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n)if(!Object.hasOwn(t,r)||!yc(e[r],t[r]))return!1;return!0}function bc(e){let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function xc(){return typeof CSS>`u`||typeof CSS.supports!=`function`||CSS.supports(`overflow-anchor`,`auto`)}function Sc(e,t={}){let{surface:n=`document`,onLoadOlder:r,onJumpToLatest:i,rowKeys:a=[]}=t,o=(0,Z.useRef)(null),[s,c]=(0,Z.useState)(null),[l,u]=(0,Z.useState)(!1),d=(0,Z.useRef)(!0),f=(0,Z.useRef)(null),p=(0,Z.useRef)(null),m=(0,Z.useRef)(null),h=(0,Z.useCallback)(e=>{let t=o.current;if(!t)return;let n=m.current;n?n.scrollTo(e):t.scrollTop=e},[]),g=(0,Z.useCallback)(()=>{let e=o.current;e&&h(e.scrollHeight-e.clientHeight)},[h]),_=(0,Z.useCallback)(()=>{if(o.current){if(p.current!==e){p.current=e;let t=Xo(e);t&&!t.atBottom?(d.current=!1,f.current=t.top):(d.current=!0,f.current=null)}f.current===null?d.current&&g():h(f.current)}},[e,h,g]),v=(0,Z.useCallback)(e=>{c(e),e&&(o.current=e.closest(n===`panel`?`[data-slot="transcript-viewport"]`:`[data-slot="main"]`),_())},[n,_]),y=(0,Z.useCallback)(()=>{d.current&&g()},[g]),b=(0,Z.useRef)(!1),x=(0,Z.useRef)(!1),S=(0,Z.useRef)(void 0),C=(0,Z.useRef)(!1),w=(0,Z.useRef)(!1),T=(0,Z.useRef)(!1),E=(0,Z.useRef)(void 0),D=(0,Z.useRef)(0),O=(0,Z.useRef)(a);O.current=a;let k=(0,Z.useCallback)(e=>[...e.querySelectorAll(`[data-slot="thread-row"][data-row-key]`)].map(e=>{let t=e.getBoundingClientRect();return{key:e.dataset.rowKey,top:t.top,bottom:t.bottom}}),[]),A=(0,Z.useCallback)(()=>{let e=o.current;if(!e||!r||b.current)return;b.current=!0;let t=e.scrollHeight,n=e.scrollTop,i=e.getBoundingClientRect().top,a=Wo(i,k(e));r().finally(()=>{requestAnimationFrame(()=>{let e=o.current;if(e&&!d.current){let r=n+Math.max(0,e.scrollHeight-t),i=e.getBoundingClientRect().top,o=a===void 0?-1:O.current.indexOf(a.key),s=m.current;s&&o>=0?s.scrollToIndex(o,{align:`start`,offset:-a.offset}):h(Go(e.scrollTop,i,a,k(e),r))}b.current=!1})})},[k,r,h]);(0,Z.useEffect)(()=>()=>clearTimeout(S.current),[]);let j=(0,Z.useCallback)(()=>{o.current&&(f.current=null,d.current=!0,(i?.()??Promise.resolve()).finally(()=>{requestAnimationFrame(()=>{let e=o.current;e?.scrollTo({top:e.scrollHeight-e.clientHeight,behavior:`smooth`})})}))},[i]);return(0,Z.useLayoutEffect)(()=>{!o.current||!s||_()},[s,_]),(0,Z.useEffect)(()=>{let t=o.current,n=s;if(!t||!n)return;let r=!xc(),i=(e,t)=>{if(typeof document.elementsFromPoint==`function`){let n=document.elementsFromPoint(t.left+t.width/2,t.top+1).map(e=>e.closest(`[data-slot="thread-row"][data-row-key]`)).find(t=>t!==null&&e.contains(t));if(n){let e=n.getBoundingClientRect();return{key:n.dataset.rowKey,top:e.top,bottom:e.bottom}}return}return k(e).find(({bottom:e})=>e>t.top)},a=(e,t)=>{let n=typeof CSS<`u`&&typeof CSS.escape==`function`?CSS.escape(t):t.replace(/["\\]/g,`\\$&`),r=e.querySelector(`[data-slot="thread-row"][data-row-key="${n}"]`);if(!r)return;let i=r.getBoundingClientRect();return{key:t,top:i.top,bottom:i.bottom}},c=()=>{!r||d.current||f.current!==null||D.current===0&&(D.current=requestAnimationFrame(()=>{D.current=0;let e=o.current;if(!e||d.current)return;let t=e.getBoundingClientRect(),n=i(e,t);E.current=n===void 0?void 0:{key:n.key,offset:n.top-t.top}}))},l=()=>{let e=E.current;if(!r||e===void 0||m.current)return;let n=t.getBoundingClientRect().top,i=a(t,e.key),o=i===void 0?t.scrollTop:t.scrollTop+(i.top-n-e.offset);Math.abs(o-t.scrollTop)>=1&&h(o)},p=0,_=null,v=!1,y=t.scrollTop,b=()=>{f.current=null,d.current=!1,p=0},O=()=>{p=Date.now()},j=e=>{if(e.deltaY<0){b();let e=!x.current;x.current=!0,clearTimeout(S.current),S.current=setTimeout(()=>{x.current=!1},180),e&&Uo(t)&&A()}else O()},M=e=>{[`ArrowUp`,`PageUp`,`Home`].includes(e.key)?(b(),!e.repeat&&Uo(t)&&A()):[`ArrowDown`,`PageDown`,`End`].includes(e.key)&&O()},N=()=>{v=!0,T.current=!1,y=t.scrollTop,Ko(t,80)||(b(),O())},P=()=>{v=!1},F=e=>{C.current=!1,w.current=!0,_=e.touches[0]?.clientY??null},I=()=>{w.current&&(w.current=!1,d.current&&f.current===null&&g())},ee=e=>{let n=e.touches[0]?.clientY;n!==void 0&&(_!==null&&n>_+1?(b(),!C.current&&Uo(t)&&(C.current=!0,A())):_!==null&&n<_-1&&O(),_=n)},L=()=>{v&&!T.current&&t.scrollTop<y&&Uo(t)&&(T.current=!0,A()),y=t.scrollTop;let n=Ko(t,80);n&&f.current===null&&(d.current||Date.now()-p<2e3)&&(d.current=!0),u(!n),f.current===null&&Yo(e,{top:t.scrollTop,atBottom:n}),c()};t.addEventListener(`scroll`,L,{passive:!0}),t.addEventListener(`wheel`,j,{passive:!0}),t.addEventListener(`touchstart`,F,{passive:!0}),t.addEventListener(`touchmove`,ee,{passive:!0}),window.addEventListener(`touchend`,I,{passive:!0}),window.addEventListener(`touchcancel`,I,{passive:!0}),t.addEventListener(`pointerdown`,N,{passive:!0}),window.addEventListener(`pointerup`,P,{passive:!0}),t.addEventListener(`keydown`,M);let R;return typeof ResizeObserver<`u`&&(R=new ResizeObserver(()=>{let e=f.current;if(e!==null){let n=t.scrollHeight-t.clientHeight;h(Math.min(e,n)),n>=e&&(f.current=null,c())}else d.current?w.current||g():l()}),R.observe(n)),c(),()=>{cancelAnimationFrame(D.current),D.current=0,E.current=void 0,t.removeEventListener(`scroll`,L),t.removeEventListener(`wheel`,j),t.removeEventListener(`touchstart`,F),t.removeEventListener(`touchmove`,ee),window.removeEventListener(`touchend`,I),window.removeEventListener(`touchcancel`,I),t.removeEventListener(`pointerdown`,N),window.removeEventListener(`pointerup`,P),t.removeEventListener(`keydown`,M),R?.disconnect()}},[e,s,A,h,g]),{attachContent:v,scrollElRef:o,virtualizerRef:m,pillVisible:l,jumpToLatest:j,loadOlder:A,restickIfStuck:y}}function Cc({runId:e,rows:t,mode:n,controls:r}){if(n===`virtual`)return(0,Q.jsx)(wc,{runId:e,rows:t,controls:r});let i=Ho(xc());return(0,Q.jsx)(`div`,{ref:r.attachContent,"data-slot":`thread-rows`,"data-virtualized":`false`,children:t.map(e=>(0,Q.jsx)(`div`,{"data-slot":`thread-row`,"data-row-key":e.key,className:i,children:e.node},e.key))})}function wc({runId:e,rows:t,controls:n}){let r=(0,Z.useRef)(null),[i]=(0,Z.useState)(()=>$o(e,t.length)),a=(0,Z.useRef)(t.length);a.current=t.length;let o=(0,Z.useRef)(null),s=(0,Z.useCallback)(t=>{n.virtualizerRef.current=t,t?o.current=t:o.current&&=(Qo(e,{rows:a.current,cache:o.current.cache}),null)},[e,n.virtualizerRef]),[c,l]=(0,Z.useState)(0);return(0,Z.useLayoutEffect)(()=>{let e=()=>{let e=r.current,t=n.scrollElRef.current;!e||!t||l(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,Q.jsx)(`div`,{ref:e=>{r.current=e,n.attachContent(e)},"data-slot":`thread-rows`,"data-virtualized":`true`,children:(0,Q.jsx)(zr,{ref:s,scrollRef:n.scrollElRef,startMargin:c,...i===void 0?{}:{cache:i},children:t.map(e=>(0,Q.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 Tc({onJump:e}){return(0,Q.jsxs)(`button`,{type:`button`,"data-slot":`jump-to-latest`,onClick:e,className:`pointer-events-auto inline-flex min-h-8 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,Q.jsx)(gn,{"aria-hidden":!0,className:`size-3.5`}),`Jump to latest`]})}function Ec(e,t){let n=[];(e.task||e.taskImages?.length)&&n.push({id:`task`,userMessageKey:`task`,userMessage:{text:e.task,images:e.taskImages??[],ts:e.createdAt},entries:[]});for(let t of e.queuedMessages??[])n.push({id:`queued:${t.id}`,userMessageKey:`queued:${t.id}`,userMessage:{text:t.text,images:t.images??[],ts:t.createdAt},inDaySequence:!1,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,...e.userMessage.ts===void 0?{}:{ts:e.userMessage.ts}}},...e.startedAt===void 0?{}:{startedAt:e.startedAt},...e.completed?.ts===void 0?{}:{completedAt:e.completed.ts},entries:e.items});return n}function Dc(e,t){return[{id:`agent:${e}`,entries:t}]}function Oc(e){if(e.inDaySequence!==!1)return e.userMessage?.ts??e.startedAt??e.completedAt}function kc(e,t){let n=[],r;for(let t of e){let e=Oc(t),i=ls(e);i!==void 0&&e!==void 0&&(r===void 0||i>r)&&(r!==void 0&&n.push({key:`${t.id}:day-separator`,scope:t.id,content:{kind:`day-separator`,ts:e}}),r=i),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 Lo([...t.entries]))n.push({key:`${t.id}:${e.id}`,scope:t.id,content:{kind:`block`,block:e}});t.completedAt!==void 0&&n.push({key:`${t.id}:turn-time`,scope:t.id,content:{kind:`turn-time`,completedAt:t.completedAt,...t.startedAt===void 0?{}:{startedAt:t.startedAt}}})}return n}function Ac({runId:e,viewId:t,sections:n,mode:r,empty:i,renderAsk:a,messageActions:o,scrollControls:s,renderMode:c,rowModels:l}){let u=(0,Z.useMemo)(()=>l??kc(n,e),[l,n,e]),d=Sc(`${e}:${t}`,{surface:r}),f=s??d,p=(0,Z.useMemo)(()=>u.map(t=>({key:t.key,node:(0,Q.jsx)(Mc,{runId:e,row:t,actions:o?.[t.key],renderAsk:a})})),[o,a,u,e]),m=c??qo(``,p.length),h=p.length===0?i??null:(0,Q.jsx)(Cc,{runId:`${e}:${t}`,rows:p,mode:m,controls:f});return(0,Q.jsx)(Vo,{runId:e,children:r===`panel`?(0,Q.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,Q.jsx)(`div`,{"data-slot":`subagent-stream`,className:`flex flex-col px-5 py-4`,children:h}),f.pillVisible?(0,Q.jsx)(`div`,{className:`pointer-events-none sticky inset-x-0 bottom-4 flex justify-center`,children:(0,Q.jsx)(Tc,{onJump:f.jumpToLatest})}):null]}):h})}function jc({runId:e,row:t,actions:n,renderAsk:r}){return Nc(e,t,n,r)}var Mc=(0,Z.memo)(jc,(e,t)=>e.runId===t.runId&&e.actions===t.actions&&e.renderAsk===t.renderAsk&&yc(e.row,t.row));function Nc(e,t,n,r){switch(t.content.kind){case`user-message`:return(0,Q.jsx)(Pc,{runId:e,message:t.content.message,actions:n});case`day-separator`:return(0,Q.jsx)(_s,{ts:t.content.ts});case`turn-time`:return(0,Q.jsx)(gs,{completedAt:t.content.completedAt,...t.content.startedAt===void 0?{}:{startedAt:t.content.startedAt}});case`block`:return(0,Q.jsx)(Fc,{block:t.content.block,scope:t.scope,renderAsk:r});default:return Rc(t.content)}}function Pc({runId:e,message:t,actions:n}){return(0,Q.jsx)(vs,{text:t.text,imageCount:t.imageCount,images:t.images,...t.ts===void 0?{}:{ts:t.ts},onEdit:n?.onEdit,onRemove:n?.onRemove,editLabel:n?.editLabel,removeLabel:n?.removeLabel,draftRunId:n?.draftSurface===void 0?void 0:e,draftSurface:n?.draftSurface})}var Fc=(0,Z.memo)(function e({block:t,scope:n,renderAsk:r}){switch(t.kind){case`entry`:return(0,Q.jsx)(Lc,{entry:t.entry,scope:n,renderAsk:r});case`tool-card`:return(0,Q.jsx)(Rs,{item:t.item,nested:t.children,cacheKey:`${n}:${t.id}`,renderNested:(e,t)=>(0,Q.jsx)(Ic,{entries:e,scope:t,renderAsk:r})});case`context-group`:return(0,Q.jsx)(zs,{group:t,scope:n});case`streak`:return(0,Q.jsx)(Bs,{count:t.count,children:t.blocks.map(t=>(0,Q.jsx)(e,{block:t,scope:n,renderAsk:r},t.id))});default:return Rc(t)}},zc);function Ic({entries:e,scope:t,renderAsk:n}){return Lo([...e]).map(e=>(0,Q.jsx)(Fc,{block:e,scope:t,renderAsk:n},e.id))}function Lc({entry:e,scope:t,renderAsk:n}){switch(e.kind){case`message`:return e.role===`assistant`?(0,Q.jsx)(bs,{text:e.text}):(0,Q.jsx)(vs,{text:e.text});case`reasoning`:return(0,Q.jsx)(Ds,{text:e.text});case`tool`:return(0,Q.jsx)(Rs,{item:e,cacheKey:`${t}:${e.id}`});case`note`:return(0,Q.jsx)(xs,{note:e});case`image`:return(0,Q.jsx)(Vs,{image:e});case`ask`:return n===void 0?(0,Q.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,Q.jsx)(Cs,{incident:e});case`agent-update-required`:return(0,Q.jsx)(Es,{incident:e});default:return Rc(e)}}function Rc(e){throw Error(`Unhandled transcript variant: ${JSON.stringify(e)}`)}function zc(e,t){return e.scope===t.scope&&Vc(e.block,t.block)&&(!Bc(t.block)||e.renderAsk===t.renderAsk)}function Bc(e){return e.kind===`entry`?e.entry.kind===`ask`:e.kind===`tool-card`?e.children.some(e=>e.kind===`ask`):e.kind!==`context-group`&&e.blocks.some(Bc)}function Vc(e,t){if(e.kind!==t.kind||e.id!==t.id)return!1;switch(t.kind){case`entry`:return Uc(e.kind===`entry`?e.entry:void 0,t.entry);case`tool-card`:return e.kind===`tool-card`&&$c(e.item,t.item)&&Hc(e.children,t.children);case`context-group`:return e.kind===`context-group`&&e.files===t.files&&e.searches===t.searches&&e.label===t.label&&e.tools.length===t.tools.length&&e.tools.every((e,n)=>$c(e,t.tools[n]));case`streak`:return e.kind===`streak`&&e.count===t.count&&e.blocks.length===t.blocks.length&&e.blocks.every((e,n)=>Vc(e,t.blocks[n]));default:return!1}}function Hc(e,t){return e.length===t.length&&e.every((e,n)=>Uc(e,t[n]))}function Uc(e,t){if(e===void 0||e.kind!==t.kind||e.id!==t.id)return!1;switch(t.kind){case`message`:return e.kind===`message`&&Qc(e,t,Wc);case`reasoning`:return e.kind===`reasoning`&&Qc(e,t,Gc);case`tool`:return e.kind===`tool`&&$c(e,t);case`note`:return e.kind===`note`&&Qc(e,t,Kc);case`image`:return e.kind===`image`&&Qc(e,t,qc);case`ask`:return e.kind===`ask`&&Qc(e,t,Jc);case`provider-auth-required`:return e.kind===`provider-auth-required`&&Qc(e,t,Yc);case`agent-update-required`:return e.kind===`agent-update-required`&&Qc(e,t,Xc);default:return!1}}var Wc={kind:!0,id:!0,role:!0,text:!0,phase:!0,parentItemId:!0},Gc={kind:!0,id:!0,text:!0,parentItemId:!0},Kc={kind:!0,id:!0,text:!0,tone:!0},qc={kind:!0,id:!0,url:!0,name:!0},Jc={kind:!0,id:!0,questions:!0,resolved:!0,answer:!0,fromWorkflow:!0},Yc={kind:!0,id:!0,provider:!0,authFailureId:!0,profileId:!0},Xc={kind:!0,id:!0,provider:!0},Zc={kind:!0,id:!0,name:!0,toolKind:!0,title:!0,status:!0,input:!0,output:!0,error:!0,diffs:!0,locations:!0,exitCode:!0,parentItemId:!0};function Qc(e,t,n){return Object.keys(n).every(n=>e[n]===t[n])}function $c(e,t){return Qc(e,t,Zc)}function el({runId:e,renderAsk:t,agent:n,entries:r,onClose:i}){return(0,Q.jsx)(Re,{open:n!==void 0,onOpenChange:e=>{e||i()},children:(0,Q.jsx)(Le,{"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,Q.jsx)(tl,{runId:e,renderAsk:t,agent:n,entries:r})})})}function tl({runId:e,renderAsk:t,agent:n,entries:r}){return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(ze,{className:`gap-1.5 border-b border-border px-5 py-4`,children:[(0,Q.jsxs)(Be,{className:`flex min-w-0 items-center gap-2 text-[15px]`,children:[(0,Q.jsx)(`span`,{className:`min-w-0 truncate`,children:n.title}),n.agentType===void 0?null:(0,Q.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,Q.jsxs)(Fe,{"data-slot":`subagent-meta`,className:`flex items-center gap-2 text-xs`,children:[(0,Q.jsx)(nl,{status:n.status}),(0,Q.jsxs)(`span`,{className:`tabular-nums`,children:[n.toolCalls,` `,n.toolCalls===1?`tool call`:`tool calls`]})]})]}),(0,Q.jsx)(Ac,{runId:e,viewId:`agent:${n.id}`,sections:Dc(n.id,r),mode:`panel`,renderAsk:t,empty:(0,Q.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 nl({status:e}){let t=e===`completed`?`Completed`:e===`failed`?`Failed`:e===`declined`?`Declined`:e===`pending`?`Pending`:`Running`;return(0,Q.jsx)(`span`,{"data-slot":`subagent-status`,"data-status":e,className:K(`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 rl({run:e,diffComments:t}){return(0,Q.jsxs)(`section`,{"data-slot":`review-panel`,"aria-label":`Review the changes`,className:`flex flex-col gap-3`,children:[(0,Q.jsxs)(`div`,{"data-slot":`review-banner`,className:`flex items-center gap-2.5 rounded-md border border-violet/30 bg-violet/10 px-3.5 py-2.5`,children:[(0,Q.jsx)(nr,{className:`size-4 shrink-0 text-violet`,"aria-hidden":`true`}),(0,Q.jsxs)(`p`,{className:`min-w-0 text-[13px]`,children:[(0,Q.jsx)(`span`,{className:`font-semibold`,children:`Review the changes before anything lands.`}),` `,(0,Q.jsx)(`span`,{className:`text-muted-foreground`,children:`Read the diff, send notes back, draft a PR — or accept. Nothing merges on its own.`})]})]}),(0,Q.jsx)(Ur,{runId:e.id}),(0,Q.jsx)(il,{run:e,diffComments:t})]})}function il({run:e,diffComments:t}){let n=v(),r=(0,Z.useRef)(null),i=Xt(e.id,`review-notes`),a=i.text,o=i.setText,[s,c]=(0,Z.useState)(null),l=It(e.id),u=io(e),d=ba(e,(0,Z.useCallback)(t=>ae(e.id,{text:t,runner:u.runnerOverride}),[e.id,u.runnerOverride]),{surface:`review`}),f=()=>n.invalidateQueries({queryKey:V.runs.all}),p=W({mutationFn:async e=>{if(!u.canContinue)return null;let n=async t=>{let n=`Review feedback:\n${Xa(e,t)}`;if(n.length>1e5)throw Error(`Too long with the diff comments attached — shorten the notes or remove some comments.`);return d(n,[])};return i.submit(()=>t?t.submit(n):n([]))},onSuccess:e=>{e!==null&&f()},onError:e=>J(e.message,{tone:`danger`})}),m=Pt(e),h=W({mutationFn:()=>z(e.id),onSuccess:e=>{J(`Draft PR created — ${e.url}`),f()},onError:e=>{e instanceof T&&e.manual!==void 0&&c(e.manual),J(e.message,{tone:`danger`})}}),g=h.isPending||m.pending!==null,_=()=>m.byAgent?m.onAction(`create-draft-pr`):h.mutate(),y=t?.comments.length??0,b=()=>{let e=a.trim();if(e.length===0&&y===0){J(`Write what to change first.`),r.current?.focus();return}p.mutate(e)};return(0,Q.jsxs)(`div`,{"data-slot":`review-actions`,className:`flex flex-col gap-2`,children:[(0,Q.jsx)(Fn,{ref:r,"data-slot":`review-notes`,"aria-label":`Notes for the agent`,placeholder:`Notes for the agent — what should change?`,rows:2,value:a,onChange:e=>o(e.target.value),onKeyDown:e=>{fr({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(),b())},className:`min-h-[52px] text-[13px]`}),y>0?(0,Q.jsxs)(`p`,{"data-slot":`review-diff-comments`,className:`text-xs text-muted-foreground`,children:[`+ `,y,` `,y===1?`comment`:`comments`,` on the diff — sent back with these notes.`]}):null,u.canContinue?null:(0,Q.jsxs)(`p`,{id:`review-provider-guidance`,className:`flex flex-wrap items-center gap-1.5 text-xs text-muted-foreground`,children:[(0,Q.jsx)(`span`,{children:u.reason}),u.providerPending?null:(0,Q.jsx)(Y,{to:`/settings/agents#providers`,className:`font-medium text-foreground underline underline-offset-4`,children:`Configure providers`})]}),(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Q.jsxs)(q,{"data-slot":`review-send-back`,variant:`outline`,size:`sm`,title:u.reason??`Send the notes back into the agent's session`,"aria-describedby":u.canContinue?void 0:`review-provider-guidance`,disabled:p.isPending||!u.canContinue,onClick:b,children:[(0,Q.jsx)(ai,{"aria-hidden":`true`}),`Send back`]}),ge(e.pullRequestUrl)?(0,Q.jsx)(q,{asChild:!0,variant:`outline`,size:`sm`,children:(0,Q.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,Q.jsx)(Zn,{"aria-hidden":`true`}),`PR ↗`]})}):(0,Q.jsxs)(q,{"data-slot":`review-draft-pr`,variant:`outline`,size:`sm`,title:m.byAgent?`Ask the agent to push the branch and open a draft PR`:`Push the branch and open a draft PR`,disabled:g,"aria-busy":g||void 0,onClick:_,children:[g?(0,Q.jsx)(lr,{"aria-hidden":`true`,className:`motion-safe:animate-spin`}):(0,Q.jsx)(sr,{"aria-hidden":`true`}),g?ir[`create-draft-pr`]:`Draft PR`]}),(0,Q.jsxs)(q,{"data-slot":`review-accept`,variant:`contrast`,size:`sm`,className:`ml-auto`,title:mt(`review`),disabled:l.isPending,onClick:()=>l.mutate(),children:[(0,Q.jsx)(In,{"aria-hidden":`true`}),`Accept`]})]}),s===null?null:(0,Q.jsx)(al,{command:s})]})}function al({command:e}){return(0,Q.jsxs)(`button`,{type:`button`,"data-slot":`review-manual`,title:`Copy the command`,onClick:()=>{navigator.clipboard.writeText(e).then(()=>J(`Command copied to clipboard.`)).catch(()=>J(`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,Q.jsx)(Ge,{className:`size-3 shrink-0`,"aria-hidden":`true`}),(0,Q.jsxs)(`span`,{className:`truncate`,children:[`manual path: `,e]})]})}function ol(){return typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches}var sl=1500;function cl({status:e}){let t=(0,Z.useRef)(e),[n,r]=(0,Z.useState)(!1);return(0,Z.useEffect)(()=>{let n=t.current;if(t.current=e,n!==`review`||e!==`done`||ol())return;r(!0);let i=setTimeout(()=>r(!1),sl);return()=>clearTimeout(i)},[e]),n?(0,Q.jsxs)(`div`,{"data-slot":`accept-celebration`,"aria-hidden":`true`,className:`pointer-events-none fixed inset-0 isolate z-40`,children:[(0,Q.jsx)(Fr,{}),(0,Q.jsx)(`div`,{className:`flex justify-center pt-24`,children:(0,Q.jsx)(`span`,{className:`rounded-full border border-violet/30 bg-violet/15 px-4 py-1.5 text-[13px] font-medium text-violet shadow-modal`,children:`✓ Changes accepted`})})]}):null}var ll=new Map,ul=(e,t)=>JSON.stringify([e,t.id,t.questions.map(e=>[e.header,e.question,e.options.map(e=>e.label)])]);function dl(e,t){return ll.get(ul(e,t))??{}}function fl(e,t,n){ll.set(ul(e,t),n)}function pl(e,t){ll.delete(ul(e,t))}function ml(e,t){return`${e.header}: ${t.join(`, `)}`}function hl({ask:e,run:t}){return(0,Z.useEffect)(()=>{e.resolved&&pl(t.id,e)},[e,t.id]),e.resolved?(0,Q.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,Q.jsx)(`span`,{className:`text-soft-foreground`,children:`Answered`}),e.answer?(0,Q.jsx)(`span`,{className:`ml-1.5 break-words whitespace-pre-line text-foreground`,children:e.answer}):null]}):(0,Q.jsx)(gl,{ask:e,run:t})}function gl({ask:e,run:t}){let n=dt(t),r=n.blockedBy!==void 0,i=e.questions,a=i.length===1&&i[0]?.multiSelect!==!0,[o,s]=(0,Z.useState)(()=>dl(t.id,e)),c=(n,r)=>s(i=>{let a={...i,[n]:r};return fl(t.id,e,a),a}),l=e=>(o[e]?.length??0)>0,u=i.every((e,t)=>l(t)),d=i.some((e,t)=>l(t))?i.filter((e,t)=>!l(t)).map(e=>e.header):[],f=()=>void n.send(i.map((e,t)=>ml(e,o[t]??[])).join(`
25
- `)),p=n.mode===`resume`;return(0,Q.jsxs)(`div`,{"data-slot":`ask-card`,"data-resolved":`false`,"data-delivery":n.mode,className:`rounded-lg border border-primary/25 bg-primary/[0.04] px-4 pt-3.5 pb-3.5`,children:[(0,Q.jsx)(`div`,{className:`mb-2.5 flex items-center gap-2`,children:(0,Q.jsx)(`span`,{className:`text-xs font-medium text-primary`,children:e.fromWorkflow?`The workflow is asking`:`The agent is asking`})}),(0,Q.jsx)(`div`,{className:`flex flex-col gap-4`,children:i.map((e,t)=>(0,Q.jsx)(_l,{question:e,disabled:n.isPending||r,selected:o[t]??[],onSelect:i=>{r||(a?n.send(ml(e,i)):c(t,i))}},e.id??t))}),a?p?(0,Q.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,Q.jsxs)(`div`,{className:`mt-3 flex items-center gap-2.5`,children:[(0,Q.jsx)(q,{size:`sm`,disabled:n.isPending||r||!u,onClick:f,children:p?`Send answer & reopen`:`Send answer`}),(0,Q.jsx)(`span`,{"data-slot":p?`ask-resume-hint`:`ask-hint`,className:`text-[11.5px] text-soft-foreground`,children:p?`the session has ended — sending reopens it`:`${i.length>1?`answer each question`:`pick one or more`} — or type a reply below`})]}),!a&&d.length>0?(0,Q.jsxs)(`p`,{"data-slot":`ask-unanswered`,className:`mt-2 text-[11.5px] text-soft-foreground`,children:[`unanswered: `,d.join(`, `)]}):null,n.blockedBy===`provider`?(0,Q.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,Q.jsx)(`span`,{children:n.reason}),(0,Q.jsx)(Y,{to:`/settings/agents#providers`,className:`font-medium text-foreground underline underline-offset-4`,children:`Configure providers`})]}):null,n.blockedBy===`no-session`?(0,Q.jsx)(`p`,{"data-slot":`ask-no-session`,className:`mt-3 text-xs text-muted-foreground`,children:n.reason}):null,n.error?(0,Q.jsx)(`p`,{"data-slot":`ask-error`,role:`alert`,className:`mt-3 text-xs text-danger`,children:n.error}):null]})}function _l({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,Q.jsxs)(`div`,{role:`group`,"aria-label":e.question,children:[(0,Q.jsxs)(`div`,{className:`mb-0.5 flex items-center gap-2`,children:[(0,Q.jsx)(`span`,{className:`rounded-md bg-primary px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-primary-foreground`,children:e.header}),i?(0,Q.jsx)(`span`,{className:`ml-auto text-[10.5px] text-soft-foreground`,children:`select all that apply`}):null]}),(0,Q.jsx)(`p`,{className:`mb-2.5 break-words text-sm font-semibold text-foreground`,children:e.question}),(0,Q.jsx)(`div`,{className:`flex flex-col gap-2`,children:e.options.map(e=>{let r=n.includes(e.label);return(0,Q.jsxs)(`button`,{type:`button`,disabled:t,"aria-pressed":r,onClick:()=>a(e.label),className:K(`flex w-full flex-col gap-0.5 rounded-md border px-3.5 py-2.5 text-left transition-colors`,`hover:border-primary/50 hover:bg-primary/[0.06] disabled:pointer-events-none disabled:opacity-50`,r?`border-primary/60 bg-primary/[0.06]`:`border-border bg-card`),children:[(0,Q.jsxs)(`span`,{className:`flex min-w-0 items-start gap-2 text-[13.5px] font-semibold text-foreground`,children:[i?(0,Q.jsx)(`span`,{"aria-hidden":!0,className:K(`flex size-4 shrink-0 items-center justify-center rounded border text-[10px]`,r?`border-primary bg-primary text-primary-foreground`:`border-soft-foreground`),children:r?`✓`:``}):null,(0,Q.jsx)(`span`,{className:`min-w-0 break-words`,children:e.label})]}),e.description?(0,Q.jsx)(`span`,{className:`min-w-0 break-words text-xs text-muted-foreground`,children:e.description}):null]},e.label)})})]})}var vl=/\b\d+\.\d+(?:\.\d+)?\+? or (?:newer|later|higher|above) is required\b|\brequires? (?:version |v)?\d+\.\d+(?:\.\d+)? or (?:newer|later|higher)\b/i;function yl(e){return vl.test(e)}function bl(e){for(let t=e.turns.length-1;t>=0;--t){let n=e.turns[t].planEntries;if(n!==void 0)return n}}function xl(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 Sl(e,t,n=!1){switch(e){case`waiting`:return{state:`waiting`};case`failed`:return n?{state:`closed`,tone:`dim`,label:`Session closed — waiting for your answer, which reopens it`}:{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 Cl(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function $(e){return typeof e==`string`?e:void 0}function wl(e){if(!(typeof e!=`string`||e===``))return Number.isFinite(new Date(e).getTime())?e:void 0}function Tl(e){return e===`claude`||e===`codex`||e===`junie`||e===`opencode`||e===`cursor`||e===`pi`||e===`copilot`?e:void 0}var El=e=>Cl(e)&&typeof e.header==`string`&&Array.isArray(e.options);function Dl(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]*\}\s*$/,``)),n.includes(`CEZ:`)?n.split(`
26
- `).filter(e=>!/^CEZ:(?:PR=\d+|ISSUE=\d+|TITLE=.+)\s*$/.test(e)).join(`
27
- `):n}function Ol(e){let t=e=>Dl(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 kl(e){if(typeof e==`string`)return e;if(e==null)return``;try{return JSON.stringify(e)}catch{return String(e)}}var Al=e=>e.kind===`message`||e.kind===`reasoning`||e.kind===`tool`,jl=new Set([`pending`,`in_progress`,`completed`,`cancelled`]);function Ml(e){if(!Cl(e)||!Array.isArray(e.todos))return;let t=[];for(let n of e.todos){if(!Cl(n)||typeof n.content!=`string`)return;t.push({content:n.content,status:jl.has(n.status)?n.status:`pending`,...typeof n.activeForm==`string`?{activeForm:n.activeForm}:{}})}return t}function Nl(e,t={}){let n=[],r=new Map,i,a=0,o,s,c=e=>{a+=1;let t={id:e===void 0?`turn-fallback-${a}`:`turn-seq-${e}`,entries:[],v2Items:!1};return n.push(t),t},l=()=>n.at(-1)??c(),u=Tl(t.runner),d=new WeakSet,f=(e,t)=>{let n=l();u===void 0||d.has(n)||!yl(e)||(d.add(n),n.entries.push({origin:`meta`,entry:{kind:`agent-update-required`,id:`${t}:update`,provider:u}}))},p=(e,t)=>He(e.stepId,t),m=(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})};for(let t of e)switch(s=wl(t.ts)??s,t.type){case`user-message`:{let e=$(t.text)??``;o&&!o.resolved&&(o.resolved=!0,e!==``&&(o.answer=e),o=void 0);let n=c(t.seq),r=wl(t.ts);n.userMessage={text:e,imageCount:typeof t.imageCount==`number`?t.imageCount:0,images:Array.isArray(t.images)?t.images.filter(e=>typeof e==`string`):[],...r===void 0?{}:{ts:r}},r!==void 0&&(n.startedAt=r);break}case`turn.started`:{let e=$(t.turnId),r=n.at(-1),i=r&&r.turnId===void 0&&!r.v2Items?r:c(t.seq);i.turnId=e;let a=wl(t.ts);i.startedAt===void 0&&a!==void 0&&(i.startedAt=a);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);if(i){let e=wl(t.ts);i.completed={stopReason:$(t.stopReason)??`end_turn`,...typeof t.costUsd==`number`?{costUsd:t.costUsd}:{},...e===void 0?{}:{ts:e}}}break}case`item.started`:case`item.updated`:case`item.completed`:{if(!Cl(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=p(t,i.id);m(r.get(a)?.turn??l(),i,a);break}case`item.delta`:{let e=$(t.itemId)??``,n=r.get(p(t,e)),i=$(t.delta)??``;if(!n||i===``||!Al(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=l(),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=l();if(e.v2Items)break;let n=$(t.tool)??`Tool`;if(Pl.has(n))break;let i=ri(n,t.input);if(i.toolKind===`plan`){let n=Ml(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=kl(t.result);break}case`note`:case`lifecycle`:{let e=$(t.message)??``;if(e===``)break;let n=t.tone===`danger`?`danger`:`dim`;l().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;l().entries.push({origin:`meta`,entry:{kind:`note`,id:`v1:${t.seq}`,text:e,tone:`danger`}}),f(e,`v1:${t.seq}`);break}case`session.error`:{let e=$(t.message)??``;if(e===``)break;l().entries.push({origin:`meta`,entry:{kind:`note`,id:`v2:${t.seq}`,text:e,tone:`danger`}}),f(e,`v2:${t.seq}`);break}case`session.started`:u=Tl(t.backend)??u;break;case`step-end`:{if(t.status!==`failed`)break;let e=$(t.error)?` — ${$(t.error)}`:``;l().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};l().entries.push({origin:`meta`,entry:r});break}case`provider-auth-required`:{let e=Tl(t.provider),n=$(t.authFailureId);if(e===void 0||n===void 0||n.length<1||n.length>128)break;let r=$(t.profileId);l().entries.push({origin:`meta`,entry:{kind:`provider-auth-required`,id:`v1:${t.seq}`,provider:e,authFailureId:n,...r!==void 0&&r.length<=128?{profileId:r}:{}}});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),l().entries.push({origin:`meta`,entry:n});break}case`plan.updated`:Array.isArray(t.entries)&&(l().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,r=n.every(El)?n:n.filter(El);if(r.length===0)break;let i={kind:`ask`,id:e,questions:r,resolved:!1,...t.source===`workflow`?{fromWorkflow:!0}:{}};l().entries.push({origin:`meta`,entry:i}),o=i;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(Dl(r.text,!0).trim());t.size!==0&&(e.entries=e.entries.filter(e=>!(e.origin===`v1`&&e.entry.kind===`message`&&t.has(Dl(e.entry.text,!0).trim()))),Ol(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.startedAt===void 0?{}:{startedAt:e.startedAt},...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:Dl(e.text,i||a)}:e)}}),...i===void 0?{}:{sessionEnded:i},...s===void 0?{}:{lastEventAt:s}}}var Pl=new Set([`subAgentActivity`,`collabAgentToolCall`,`collabToolCall`]);function Fl({run:e,thread:t,currentThread:n=t,history:r,onMarkedUnread:i,embedded:a=!1}){let o=Sl(e.status,e.error,g(e)),s=(0,Z.useCallback)(()=>i?.(e.id),[i,e.id]),c=bl(n),u=l(e),d=c!==void 0&&c.length>0?pc(c):void 0,f=e.status===`running`||e.status===`waiting`,p=e.status===`queued`,m=ao(e),h=!f&&!p&&m.available,_=h&&m.canContinue,v=ba(e,m.continueWith,{surface:null}),y=!!e.worktreeLifecycle?.activeOperationId,x=!f&&e.status!==`queued`,S=(0,Z.useMemo)(()=>Zs(n.turns,x),[n.turns,x]),C=(0,Z.useMemo)(()=>Qs(n.turns),[n.turns]),[w,T]=(0,Z.useState)(void 0),[E,D]=(0,Z.useState)(e.id);E!==e.id&&(D(e.id),T(void 0));let O=(0,Z.useMemo)(()=>w===void 0?void 0:ic(n.turns,w,x),[n.turns,w,x]),k=(0,Z.useMemo)(()=>w===void 0?[]:ac(n.turns,w),[n.turns,w]),A=Xt(e.id,`composer`),j=to(e.id),{mutateAsync:M}=fe(e.id),{mutateAsync:N}=ue(e.id),{mutateAsync:P}=H(e.id),F=(0,Z.useMemo)(()=>p?{onEditTask:async e=>{await M({task:e})},onEditMessage:(e,t)=>N({msgId:e,message:{text:t}}).then(()=>void 0),onRemoveMessage:e=>P(e).then(()=>void 0)}:void 0,[p,M,N,P]),I=(0,Z.useMemo)(()=>Ec(e,t),[e,t]),ee=(0,Z.useMemo)(()=>kc(I,e.id),[I,e.id]),L=(0,Z.useCallback)(t=>(0,Q.jsx)(hl,{ask:t,run:e}),[e]),z=(0,Z.useMemo)(()=>{if(F===void 0)return;let t={task:{onEdit:F.onEditTask,editLabel:`Edit the prompt`,draftSurface:`task-prompt`}};for(let n of e.queuedMessages??[])t[`queued:${n.id}`]={onEdit:e=>F.onEditMessage(n.id,e),onRemove:()=>F.onRemoveMessage(n.id),draftSurface:`message:${n.id}`};return t},[F,e.queuedMessages]),B=re(e,b()),{search:te}=Te(),ne=qo(te,ee.length),ie=Sc(`${e.id}:main`,{onLoadOlder:r?.hasOlder?r.loadOlder:void 0,onJumpToLatest:r?.jumpToLatest,rowKeys:ee.map(({key:e})=>e)});return Me(ie.restickIfStuck),(0,Q.jsxs)(`div`,{"data-route":`task-thread`,"data-run-id":e.id,className:`flex min-h-full flex-col`,children:[a?null:(0,Q.jsx)(Gt,{run:e,planTally:d,onMarkedUnread:s,continuationEngine:_?m.pills:void 0}),(0,Q.jsxs)(`div`,{className:`mx-auto flex w-full max-w-[var(--measure)] flex-1 flex-col gap-2.5 px-3 py-3 md:gap-3.5 md:px-6 md:py-5`,children:[e.worktreeLifecycle?(0,Q.jsx)(En,{worktreeId:e.worktreeLifecycle.worktreeId,operationId:e.worktreeLifecycle.activeOperationId,worktreePath:e.worktreePath,taskTitle:e.title??e.task}):null,r?(0,Q.jsx)(Bl,{hasOlder:r.hasOlder,loading:r.isFetchingOlder,error:r.olderError,fallback:r.fallback,retainedPages:r.retainedPages,onLoad:ie.loadOlder}):null,(0,Q.jsx)(Ac,{runId:e.id,viewId:`main`,sections:I,mode:`document`,renderAsk:L,messageActions:z,scrollControls:ie,renderMode:ne,rowModels:ee}),t.turns.length===0?e.status===`queued`?(0,Q.jsx)(Hl,{run:e}):(0,Q.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`&&!y?(0,Q.jsx)(Os,{since:Vl(e,n),lastActivityAt:n.lastEventAt}):null,(0,Q.jsx)(Oo,{run:e}),o&&o.state===`closed`?(0,Q.jsxs)(`div`,{"data-slot":`thread-footer`,"data-state":o.state,className:K(`mt-auto flex items-center gap-2 border-t border-border pt-3 text-xs`,o.tone===`danger`?`text-danger`:`text-soft-foreground`),children:[(0,Q.jsx)(Ll,{label:o.label,offerContinue:o.tone===`danger`&&!e.autoResumeAt,onContinue:h?()=>v(``,[]):void 0,blockedReason:_?void 0:m.providerPending?`Checking the agent provider…`:m.reason??`Connect an agent provider to continue.`}),ge(R(e))?(0,Q.jsx)(`a`,{"data-slot":`pr-link`,href:R(e),target:`_blank`,rel:`noopener noreferrer`,className:`font-medium text-foreground underline-offset-2 hover:underline`,children:`PR ↗`}):null,ge(B)?(0,Q.jsx)(`a`,{"data-slot":`issue-link`,href:B,target:`_blank`,rel:`noopener noreferrer`,className:`font-medium text-foreground underline-offset-2 hover:underline`,children:`Issue ↗`}):null]}):null,e.status===`review`&&!y?(0,Q.jsx)(rl,{run:e,diffComments:j}):null]}),(0,Q.jsx)(cl,{status:e.status}),(0,Q.jsx)(el,{runId:e.id,renderAsk:L,agent:O,entries:k,onClose:()=>T(void 0)}),(0,Q.jsxs)(fo,{overlay:ie.pillVisible?(0,Q.jsx)(`div`,{className:`pointer-events-none absolute inset-x-0 -top-12 flex justify-center`,children:(0,Q.jsx)(Tc,{onJump:ie.jumpToLatest})}):null,children:[(0,Q.jsx)(cc,{runId:e.id,agents:S,onSelect:T},`agents:${e.id}`),(0,Q.jsx)(vc,{skills:C}),c!==void 0&&c.length>0?(0,Q.jsx)(hc,{runId:e.id,entries:c,settled:x},e.id):null,(0,Q.jsx)(Do,{run:e}),!y&&u?(0,Q.jsxs)(`div`,{"data-slot":`budget-hint`,className:`flex items-center gap-2 px-1 text-xs text-muted-foreground`,children:[(0,Q.jsx)(Mr,{tone:`pending`,pulse:!0}),`Budget reached — spent $`,u.spent.toFixed(2),` of $`,u.ceiling.toFixed(2),`; send a message to continue.`,e.status===`waiting`?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`span`,{"aria-hidden":`true`,children:`·`}),(0,Q.jsx)(zl,{runId:e.id})]}):null]}):!y&&e.status===`waiting`?(0,Q.jsxs)(`div`,{"data-slot":`paused-hint`,className:`flex items-center gap-2 px-1 text-xs text-muted-foreground`,children:[(0,Q.jsx)(Mr,{tone:`pending`,pulse:!0}),`The agent is paused, waiting for your reply`,(0,Q.jsx)(`span`,{"aria-hidden":`true`,children:`·`}),(0,Q.jsx)(zl,{runId:e.id})]}):null,p?(0,Q.jsxs)(`div`,{"data-slot":`queued-hint`,className:`flex items-center gap-2 px-1 text-xs text-muted-foreground`,children:[(0,Q.jsx)(Mr,{tone:`pending`}),`Messages you add now are folded into the prompt before the run starts.`]}):null,y?(0,Q.jsx)(`p`,{className:`px-1 text-xs text-muted-foreground`,children:`Resolve the worktree operation above before continuing this task.`}):(0,Q.jsx)(uo,{run:e,draft:A,diffComments:j,continueAction:m,getMentionCandidates:()=>xl(t)})]})]})}var Il=/— continue to /i;function Ll({label:e,offerContinue:t=!1,onContinue:n,blockedReason:r}){let i=n?Il.exec(e):null;if(!n)return(0,Q.jsx)(`span`,{children:e});if(!i)return t?(0,Q.jsxs)(`span`,{children:[e,` `,(0,Q.jsx)(`span`,{"aria-hidden":`true`,children:`·`}),` `,(0,Q.jsx)(Rl,{onContinue:n,blockedReason:r})]}):(0,Q.jsx)(`span`,{children:e});let a=e.slice(0,i.index),o=e.slice(i.index+i[0].length);return(0,Q.jsxs)(`span`,{children:[a,`—`,` `,(0,Q.jsx)(Rl,{onContinue:n,blockedReason:r}),` to `,o]})}function Rl({onContinue:e,blockedReason:t}){let[n,r]=(0,Z.useState)(!1);return(0,Q.jsx)(`button`,{type:`button`,"data-slot":`footer-continue`,disabled:n||t!==void 0,title:t??`Reopen the session and pick up where it stopped`,onClick:()=>{r(!0),e().catch(e=>J(e instanceof Error?e.message:String(e),{tone:`danger`})).finally(()=>r(!1))},className:`rounded-sm font-semibold underline underline-offset-2 hover:brightness-125 focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none disabled:cursor-not-allowed disabled:no-underline disabled:opacity-60`,children:`Continue`})}function zl({runId:e}){let t=It(e);return(0,Q.jsx)(`button`,{type:`button`,"data-slot":`end-session`,title:`Close the session — the task finishes (or goes to review if it changed files)`,disabled:t.isPending,onClick:()=>t.mutate(),className:`rounded-sm font-medium text-foreground underline-offset-2 hover:underline focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none disabled:opacity-60`,children:`End session`})}function Bl({hasOlder:e,loading:t,error:n,fallback:r,retainedPages:i,onLoad:a}){return r?(0,Q.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,Q.jsxs)(`div`,{"data-slot":`history-start`,className:`flex items-center gap-3 text-[11px] text-soft-foreground`,children:[(0,Q.jsx)(`span`,{"aria-hidden":!0,className:`h-px flex-1 bg-border`}),`Start of session`,(0,Q.jsx)(`span`,{"aria-hidden":!0,className:`h-px flex-1 bg-border`})]}):(0,Q.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,Q.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,Q.jsx)(`span`,{className:`sr-only`,"aria-live":`polite`,children:t?`Loading earlier session history`:n||``})]})}function Vl(e,t){let n=t.turns.at(-1);return n===void 0?e.startedAt:n.completed===void 0?n.startedAt??e.startedAt:n.completed.ts??e.startedAt}function Hl({run:e}){let t=at(le().data??[],e.id);return(0,Q.jsxs)(`div`,{"data-slot":`queued-state`,className:`flex flex-col items-center gap-1.5 py-10 text-center`,children:[(0,Q.jsx)(Mr,{tone:`pending`,pulse:!0}),(0,Q.jsxs)(`p`,{className:`text-[13px] font-medium`,children:[`Waiting for a free agent slot`,t===void 0?``:` — #${t} in queue`]}),(0,Q.jsxs)(`p`,{className:`text-xs text-soft-foreground`,children:[e.workflow,` · starts automatically when a slot frees up`]})]})}var Ul=(0,Z.createContext)(null);function Wl(){return(0,Z.useContext)(Ul)}function Gl(e,t){let n=(0,Z.useRef)(null),[r,i]=(0,Z.useState)(null);return(0,Z.useLayoutEffect)(()=>{if(!e){i(null);return}let t=n.current?.closest(`[data-slot="panel"]`)??n.current?.closest(`[data-slot="main"]`);if(!t)return;let r=()=>{let e=t.getBoundingClientRect();i({top:e.top,left:e.left,width:e.width,height:e.height})};r();let a=new ResizeObserver(r);return a.observe(t),window.addEventListener(`resize`,r),()=>{a.disconnect(),window.removeEventListener(`resize`,r)}},[e]),(0,Z.useEffect)(()=>{if(!e)return;let n=e=>{e.key!==`Escape`||e.defaultPrevented||document.querySelector(`[role="dialog"], [role="alertdialog"], [role="menu"], [role="listbox"]`)||t()};return window.addEventListener(`keydown`,n),()=>window.removeEventListener(`keydown`,n)},[e,t]),{ref:n,covering:e&&r!==null,style:e&&r?r:void 0}}function Kl({className:e}){let t=Wl();return t?.maximized?(0,Q.jsxs)(q,{type:`button`,variant:`outline`,size:`xs`,"data-action":`exit-full-view`,title:`Exit full view (Esc)`,onClick:t.toggle,className:K(`shrink-0 text-foreground`,e),children:[(0,Q.jsx)(ci,{"aria-hidden":`true`}),`Exit full view`]}):null}var ql=[];function Jl(e){return Array.isArray(e)?e.flatMap(e=>{let t=he.safeParse(e);return t.success?[t.data]:[]}):[]}function Yl(){let e=v(),t=w(),n=Z.useRef(0),r=Z.useRef(Promise.resolve()),a=t.data?.savedLayouts,o=Z.useMemo(()=>a?Jl(a).filter(e=>!Tt(e.name)&&e.columns.every(e=>Ot(e.view))):ql,[a]),s=Z.useCallback(t=>{let a=e.getQueryData(m.uiState);if(a===void 0)return;let o=t(Jl(a.savedLayouts)).slice(0,50);e.setQueryData(m.uiState,{...a,savedLayouts:o});let s=++n.current,c=r.current.then(async()=>{let t=await i({savedLayouts:o},{keepalive:!0});s===n.current&&e.setQueryData(m.uiState,t)});r.current=c.catch(t=>{J(t instanceof Error?t.message:String(t),{tone:`danger`}),s===n.current&&e.invalidateQueries({queryKey:m.uiState})})},[e]);return{saved:o,save:Z.useCallback(e=>s(t=>{let n={name:e.name,columns:e.columns.map(({view:e,width:t})=>({view:e,width:t}))},r=t.findIndex(t=>t.name===e.name);return r<0?[...t,n]:t.map((e,t)=>t===r?n:e)}),[s]),remove:Z.useCallback(e=>s(t=>t.filter(t=>t.name!==e)),[s])}}var Xl=400,Zl=1500,Ql=2e3,$l=3e4;function eu(e){let[t,n]=(0,Z.useState)(Vt),[r,i]=(0,Z.useState)(!1),[a,o]=(0,Z.useState)(!1),[s,l]=(0,Z.useState)(!1),[u,d]=(0,Z.useState)(0),f=(0,Z.useRef)(null),p=(0,Z.useRef)({taskId:e,state:null});p.current.taskId!==e&&(p.current={taskId:e,state:null},n(Vt()),i(!1),o(!1),l(!1),d(0)),(0,Z.useEffect)(()=>{let t=!1,r=null;f.current=null;let a=t=>{p.current={taskId:e,state:t},_.current=t,g.current={taskId:e,state:t},n(t),i(!0)},o=async n=>{let i;try{i=await c(e)}catch{if(t)return;n===0&&a(Vt()),l(!0),r=setTimeout(()=>void o(n+1),Math.min($l,Ql*2**n));return}t||(f.current=e,m.current&&clearTimeout(m.current),m.current=null,l(!1),!(n>0&&i.layouts===null)&&(a(i.layouts===null?Vt():rn(i.layouts)),n>0&&d(e=>e+1)))};return o(0),()=>{t=!0,r&&clearTimeout(r)}},[e]);let m=(0,Z.useRef)(null),h=(0,Z.useRef)(0),g=(0,Z.useRef)(null),_=(0,Z.useRef)(null),v=(0,Z.useCallback)((e,t,n=!1)=>{if(f.current!==e)return;_.current=t;let r=h.current+=1,i=t=>{r===h.current&&p.current.taskId===e&&o(t)},a=o=>{(n?de(e,t,{keepalive:n}):de(e,t)).then(()=>i(!1)).catch(e=>{if(r===h.current){if(e?.status===400)return i(!0);if(o>0){setTimeout(()=>{r===h.current&&a(o-1)},Zl);return}i(!0)}})};a(1)},[]),y=(0,Z.useCallback)((e=!1)=>{let t=g.current;!t||t.state===_.current||(m.current&&clearTimeout(m.current),m.current=null,v(t.taskId,t.state,e))},[v]);(0,Z.useEffect)(()=>{if(!(!r||p.current.taskId!==e||t===p.current.state))return g.current={taskId:e,state:t},m.current&&clearTimeout(m.current),m.current=setTimeout(()=>{m.current=null,v(e,t)},Xl),()=>{m.current&&clearTimeout(m.current),m.current=null}},[r,v,e,t,s]),(0,Z.useEffect)(()=>{let e=()=>y(!0);return window.addEventListener(`pagehide`,e),()=>{window.removeEventListener(`pagehide`,e),y()}},[y,e]);let b=(0,Z.useCallback)(e=>{n(t=>t.active?e(t,t.active):t)},[]);return{state:t,ready:r,saveFailed:a,loadFailed:s,replaced:u,layout:Et(t),addLayout:(0,Z.useCallback)(e=>n(t=>Bt(t,e)),[]),closeLayout:(0,Z.useCallback)(e=>n(t=>bt(t,e)),[]),selectLayout:(0,Z.useCallback)(e=>n(t=>st(t,e)),[]),renameLayout:(0,Z.useCallback)((e,t)=>n(n=>on(n,e,t)),[]),applySaved:(0,Z.useCallback)(e=>n(t=>Kt(t,e)),[]),keepAs:(0,Z.useCallback)(e=>n(t=>Ht(t,e)),[]),addColumn:(0,Z.useCallback)(e=>b((t,n)=>Yt(t,n,e)),[b]),closeColumn:(0,Z.useCallback)(e=>b((t,n)=>Mt(t,n,e)),[b]),setColumnView:(0,Z.useCallback)((e,t)=>b((n,r)=>tn(n,r,e,t)),[b]),resizeColumns:(0,Z.useCallback)((e,t)=>b((n,r)=>St(n,r,e,t)),[b]),moveColumn:(0,Z.useCallback)((e,t)=>b((n,r)=>jt(n,r,e,t)),[b]),openDeepLink:(0,Z.useCallback)(e=>n(t=>yt(t,e)),[]),dropView:(0,Z.useCallback)((e,t,r)=>n(n=>Ct(n,e,t,r)),[]),setColumnBrowser:(0,Z.useCallback)((e,t)=>b((n,r)=>Je(n,r,e,t)),[b]),openInBrowser:(0,Z.useCallback)(e=>{let t=g.current?.state;return!t||$t(t,e)===null?!1:(n(t=>$t(t,e)??t),!0)},[]),openBeside:(0,Z.useCallback)(e=>{let t=g.current?.state??p.current.state;if(!t)return null;let r=At(t,e);return r?(n(t=>At(t,e)?.state??t),{name:r.name,index:r.index}):null},[])}}function tu({view:e,columns:t,onDrop:n}){let[r,i]=(0,Z.useState)(null),a=t.length>=nt;return(0,Q.jsx)(`div`,{"data-slot":`view-drop-zones`,className:`absolute inset-0 z-30 flex gap-px bg-background/40 backdrop-blur-[1px]`,children:(t.length===0?[{width:100,zones:[{key:`only`,at:0,mode:`insert`,label:`Open ${Ze(e)} here`}]}]:t.map((t,n)=>{let r={key:`replace:${n}`,at:n,mode:`replace`,label:t.view===e?Ze(e):`Replace ${Ze(t.view)}`,hint:a?`${nt} columns is the limit`:void 0},i=a?[r]:[{key:`insert:${n}`,at:n,mode:`insert`,label:`Beside`,hint:`left`},r,{key:`insert:${n+1}:${n}`,at:n+1,mode:`insert`,label:`Beside`,hint:`right`}];return{width:t.width,zones:i}})).map((e,t)=>(0,Q.jsx)(`div`,{style:{flexBasis:`${e.width}%`},className:K(`grid min-w-0 grow gap-1.5 p-2.5`,e.zones.length===3?`grid-cols-[26%_1fr_26%]`:`grid-cols-1`),children:e.zones.map(e=>(0,Q.jsxs)(`div`,{"data-drop-zone":e.mode,onDragOver:t=>{t.dataTransfer.types.includes(`text/cez-view`)&&(t.preventDefault(),t.dataTransfer.dropEffect=`move`,i(e.key))},onDragLeave:()=>i(t=>t===e.key?null:t),onDrop:t=>{let r=t.dataTransfer.getData(Jr);Ot(r)&&(t.preventDefault(),n(r,e.at,e.mode))},className:K(`flex flex-col items-center justify-center rounded-lg border-[1.5px] border-dashed border-border bg-background/80 p-2 text-center text-xs font-medium text-muted-foreground transition-colors`,r===e.key&&`border-foreground/60 bg-muted text-foreground`),children:[e.label,e.hint?(0,Q.jsx)(`span`,{className:`text-[11px] font-normal opacity-80`,children:e.hint}):null]},e.key))},t))})}var nu=1024;function ru({columns:e,actions:t,renderView:n,headerExtras:r}){let i=Ue(nu),a=(0,Z.useRef)(null),[o,s]=(0,Z.useState)(0),[c,l]=(0,Z.useState)(null),u=c===null?null:Math.min(c,e.length),d=e.length+(u===null?0:1)<nt,f=n=>{if(u===null)return;let r=u;l(null),t.addColumn(n),r<e.length&&t.moveColumn(e.length,r)},p=(n,r)=>(0,Q.jsx)(au,{index:n,column:r,count:e.length,actions:t});if(e.length===0)return(0,Q.jsx)(`div`,{"data-slot":`workspace-columns`,className:`flex min-h-0 flex-1 flex-col`,children:(0,Q.jsx)(et,{onPick:t.addColumn})});let m=e.length+(u===null?0:1),h=e=>u===null?e.width:100/m,g=(0,Q.jsxs)(`header`,{className:`flex h-8 shrink-0 items-center gap-1.5 border-b border-border/70 bg-background pl-4 pr-1.5 text-xs font-medium text-muted-foreground`,children:[(0,Q.jsx)(Nn,{"aria-hidden":`true`,className:`size-3.5 shrink-0`}),(0,Q.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:`New window`}),(0,Q.jsx)(q,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":`Close new window`,title:`Close`,onClick:()=>l(null),className:`text-soft-foreground`,children:(0,Q.jsx)(gr,{"aria-hidden":`true`,className:`size-3.5`})})]}),_=u===null?null:(0,Q.jsxs)(`div`,{"data-slot":`workspace-column`,"data-pending":``,className:`relative flex min-w-0 flex-col border-l border-border/70 first:border-l-0`,style:{width:`${100/m}%`},children:[g,(0,Q.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:(0,Q.jsx)(et,{scope:`window`,onPick:f})})]},`pending`);if(!i){let i=e.map((e,t)=>t);u!==null&&i.splice(u,0,`pending`);let a=Math.min(o,i.length-1),c=i[a],m=c===`pending`?null:e[c];return(0,Q.jsxs)(`div`,{"data-slot":`workspace-columns`,"data-narrow":``,className:`flex min-h-0 flex-1 flex-col`,children:[i.length>1?(0,Q.jsx)(Ar,{value:String(a),onValueChange:e=>s(Number(e)),className:`shrink-0 gap-0`,children:(0,Q.jsx)(kr,{"aria-label":`Windows of this layout`,className:`grid w-full auto-cols-fr grid-flow-col gap-1 rounded-none border-b border-border bg-transparent px-3 py-1.5 group-data-[orientation=horizontal]/tabs:h-auto`,children:i.map((t,n)=>{let r=t===`pending`?Nn:Ke[e[t].view];return(0,Q.jsxs)(Or,{value:String(n),className:`h-auto min-w-0 rounded-md border-0 px-2 py-1 text-xs data-[state=active]:bg-muted data-[state=active]:font-medium group-data-[variant=default]/tabs-list:data-[state=active]:shadow-none`,children:[(0,Q.jsx)(r,{"aria-hidden":`true`,className:`size-3.5 shrink-0`}),(0,Q.jsx)(`span`,{className:`truncate`,children:t===`pending`?`New window`:Ze(e[t].view)})]},n)})})}):null,m===null?(0,Q.jsxs)(Q.Fragment,{children:[g,(0,Q.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:(0,Q.jsx)(et,{scope:`window`,onPick:f})})]}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(iu,{index:c,column:m,count:e.length,actions:t,menu:e.length>1?p(c,m):null,onSplit:()=>{l(c+1),s(c+1)},canSplit:d,grip:!1,extras:r?.(m.view,c)}),(0,Q.jsx)(`div`,{"data-slot":`main`,className:`min-h-0 flex-1 overflow-y-auto overscroll-contain`,children:n(m.view,c,m)})]})]})}return(0,Q.jsxs)(`div`,{ref:a,"data-slot":`workspace-columns`,className:`flex min-h-0 flex-1 items-stretch`,children:[e.flatMap((i,o)=>[o===u?_:null,(0,Q.jsxs)(`div`,{"data-slot":`workspace-column`,"data-view":i.view,className:`relative flex min-w-0 flex-col border-l border-border/70 first:border-l-0`,style:{width:`${h(i)}%`},children:[o>0&&u===null?(0,Q.jsx)(ou,{index:o-1,width:e[o-1].width,pair:e[o-1].width+i.width,rowRef:a,onResize:t.resizeColumns}):null,(0,Q.jsx)(iu,{index:o,column:i,count:e.length,actions:t,menu:e.length>1?p(o,i):null,onSplit:()=>l(o+1),canSplit:d,trailing:o===e.length-1?(0,Q.jsx)(Kl,{className:`ml-1.5`}):null,extras:r?.(i.view,o)}),(0,Q.jsx)(`div`,{"data-slot":`main`,className:`min-h-0 flex-1 overflow-y-auto overscroll-contain`,children:(0,Q.jsx)(Ul.Provider,{value:null,children:n(i.view,o,i)})})]},o)]),u===e.length?_:null]})}function iu({index:e,column:t,count:n,actions:r,menu:i,trailing:a,onSplit:o,canSplit:s=!0,grip:c=!0,extras:l}){let[u,d]=(0,Z.useState)(!1),f=Ke[t.view],p=t=>{t.dataTransfer.setData(`text/cez-column`,String(e)),t.dataTransfer.effectAllowed=`move`};return(0,Q.jsxs)(`header`,{"data-slot":`workspace-column-header`,onDragOver:e=>{e.dataTransfer.types.includes(`text/cez-column`)&&(e.preventDefault(),e.dataTransfer.dropEffect=`move`,d(!0))},onDragLeave:()=>d(!1),onDrop:t=>{if(d(!1),!t.dataTransfer.types.includes(`text/cez-column`))return;let n=t.dataTransfer.getData(`text/cez-column`),i=Number(n);n===``||!Number.isInteger(i)||(t.preventDefault(),r.moveColumn(i,e))},className:K(`group/column flex h-8 shrink-0 items-center gap-0.5 border-b border-border/70 bg-background pl-4 pr-1.5`,u&&`bg-muted`),children:[n>1&&c?(0,Q.jsx)(`span`,{draggable:!0,onDragStart:p,title:`Drag to reorder`,className:`-ml-2 flex h-full shrink-0 cursor-grab items-center text-soft-foreground/70 active:cursor-grabbing`,children:(0,Q.jsx)(Cn,{"aria-hidden":`true`,className:`size-3.5`})}):null,n===1?null:(0,Q.jsxs)(qn,{children:[(0,Q.jsx)(Xn,{asChild:!0,children:(0,Q.jsxs)(q,{type:`button`,variant:`ghost`,size:`sm`,"data-action":`change-view`,"aria-label":`${Ze(t.view)} — change view`,className:`-ml-1.5 h-6 gap-1.5 px-1.5 text-xs font-medium text-muted-foreground hover:text-foreground data-[state=open]:bg-muted data-[state=open]:text-foreground`,children:[(0,Q.jsx)(f,{"aria-hidden":`true`,className:`size-3.5 shrink-0`}),(0,Q.jsx)(`span`,{className:`truncate`,children:Ze(t.view)}),(0,Q.jsx)(Ln,{"aria-hidden":`true`,className:`size-3 shrink-0 opacity-60`})]})}),(0,Q.jsxs)(Jn,{align:`start`,className:`w-48`,children:[(0,Q.jsx)(Wn,{children:`Change view`}),(0,Q.jsx)(ft,{onPick:t=>r.setColumnView(e,t),disabled:t.view})]})]}),(0,Q.jsx)(`span`,{draggable:n>1&&c,onDragStart:p,className:K(`h-full min-w-0 flex-1`,n>1&&c&&`cursor-grab active:cursor-grabbing`)}),l,o?(0,Q.jsx)(Bn,{children:(0,Q.jsxs)(Vn,{children:[(0,Q.jsx)(Rn,{asChild:!0,children:(0,Q.jsx)(`span`,{className:`inline-flex`,children:(0,Q.jsx)(q,{type:`button`,variant:`ghost`,size:`icon-xs`,"data-action":`split-view`,"aria-label":`Split view`,disabled:!s,onClick:o,className:`text-soft-foreground hover:text-foreground`,children:(0,Q.jsx)(Nt,{"aria-hidden":`true`,className:`size-3.5`})})})}),(0,Q.jsx)(zn,{side:`bottom`,children:s?`Split view (\\)`:`At most ${nt} windows`})]})}):null,i,n>1?(0,Q.jsx)(q,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":`Close ${Ze(t.view)}`,title:`Close view`,onClick:()=>r.closeColumn(e),className:`text-soft-foreground`,children:(0,Q.jsx)(gr,{"aria-hidden":`true`,className:`size-3.5`})}):null,a]})}function au({index:e,column:t,count:n,actions:r}){return(0,Q.jsxs)(qn,{children:[(0,Q.jsx)(Xn,{asChild:!0,children:(0,Q.jsx)(q,{variant:`ghost`,size:`icon-sm`,className:`size-6 shrink-0 text-soft-foreground hover:text-foreground`,"aria-label":`Column menu ${Ze(t.view)}`,children:(0,Q.jsx)(ot,{"aria-hidden":`true`,className:`size-3.5`})})}),(0,Q.jsxs)(Jn,{align:`end`,className:`w-52`,children:[n>1?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(Kn,{disabled:e===0,onSelect:()=>r.moveColumn(e,e-1),children:[(0,Q.jsx)(_n,{"aria-hidden":`true`}),`Move left`]}),(0,Q.jsxs)(Kn,{disabled:e===n-1,onSelect:()=>r.moveColumn(e,e+1),children:[(0,Q.jsx)(bn,{"aria-hidden":`true`}),`Move right`]})]}):null,(0,Q.jsx)(Gn,{}),(0,Q.jsxs)(Kn,{onSelect:()=>r.closeColumn(e),children:[(0,Q.jsx)(gr,{"aria-hidden":`true`}),`Close view`]})]})]})}function ou({index:e,width:t,pair:n,rowRef:r,onResize:i}){let a=(0,Z.useRef)(null),o=e=>{e.button===0&&(a.current={x:e.clientX,width:t},e.currentTarget.setPointerCapture(e.pointerId),e.preventDefault(),e.currentTarget.focus())},s=n=>{let o=a.current,s=r.current;if(!o||!s)return;let c=s.getBoundingClientRect().width;c<=0||i(e,o.width+(n.clientX-o.x)/c*100-t)},c=e=>{a.current&&(a.current=null,e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId))};return(0,Q.jsx)(`div`,{"data-slot":`column-divider`,role:`separator`,"aria-orientation":`vertical`,"aria-label":`Resize column ${e+1}`,"aria-valuenow":Math.round(t),"aria-valuemin":Math.round(qt(n)),"aria-valuemax":Math.round(n-qt(n)),tabIndex:0,onPointerDown:o,onPointerMove:s,onPointerUp:c,onPointerCancel:c,onKeyDown:t=>{let n=t.shiftKey?10:2,r=t.key===`ArrowLeft`?-n:t.key===`ArrowRight`?n:null;r!==null&&(t.preventDefault(),i(e,r))},title:`Drag to resize — arrow keys adjust precisely`,className:`absolute inset-y-0 -left-[5px] z-20 w-[9px] cursor-col-resize touch-none bg-transparent transition-colors hover:bg-violet/40 focus-visible:bg-violet/60 focus-visible:outline-none`})}var su=(0,Z.lazy)(()=>ve(()=>import(`./terminal-drawer-DAkquqSe.js`).then(e=>({default:e.TerminalDrawer})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]))),cu=(0,Z.lazy)(()=>ve(()=>import(`./task-graph-DI2fn5M8.js`).then(e=>({default:e.TaskGraphView})),__vite__mapDeps([20,1,2,3,4,5,21,22,23,8,24,25,26,14,27,28,29,9,10,30,31,11,32,33,34,35,15,36,37,38,39,40,12,13,41,42,17,43,44,45,6,7,46,47,48,49,16,50,51,52,53,54])));function lu({view:e}){let{id:t}=we(),n=j(t),r=(0,Z.useRef)(void 0);(0,Z.useEffect)(()=>{r.current!==t&&(r.current=void 0)},[t]);let i=(0,Z.useCallback)(e=>{r.current=e},[]),{mutate:a}=o();if((0,Z.useEffect)(()=>{n.data&&r.current!==n.data.id&&_t(n.data)&&a(n.data.id)},[a,n.data?.id,n.data?.status,n.data?.finishedAt,n.data?.seenAt,n.data?.archived,t]),n.isPending)return(0,Q.jsx)(uu,{view:e});if(n.isError){let e=n.error instanceof T&&n.error.status===404;return(0,Q.jsx)(`div`,{"data-route":`task-workspace`,className:`flex min-h-full flex-col`,children:(0,Q.jsx)(Ir,{icon:e?(0,Q.jsx)(hr,{}):(0,Q.jsx)(qe,{}),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.`:n.error.message,actions:(0,Q.jsx)(q,{asChild:!0,variant:`outline`,children:(0,Q.jsx)(Y,{to:`/`,children:`Back to tasks`})})})})}return(0,Q.jsx)(du,{run:n.data,deepLinkView:e,onMarkedUnread:i})}function uu({view:e}){return e===`files`?(0,Q.jsx)(zt,{tab:`files`}):e===`terminal`?(0,Q.jsx)(zt,{tab:`terminal`}):e===`browser`?(0,Q.jsx)(zt,{tab:`preview`}):e===`changes`||e===`commits`||e===`graph`?(0,Q.jsx)(zt,{tab:`changes`}):(0,Q.jsx)(On,{})}function du({run:e,deepLinkView:t,onMarkedUnread:n}){let r=eu(e.id),{openDeepLink:i,addLayout:a,closeLayout:o,selectLayout:s,setColumnBrowser:c,openInBrowser:l,applySaved:u,keepAs:d}=r,f=Yl(),{save:p,remove:m}=f,h=r.state,g=(r.layout?.columns.length??0)>0,_=(0,Z.useCallback)(e=>{let t=lt(h,e);t&&(p(t),d(t.name))},[d,h,p]),v=ee().data?.capabilities?.terminal===!0,y=(0,Z.useMemo)(()=>gt.filter(e=>e!==`terminal`||v),[v]),b=ye(),x=(0,Z.useRef)(null),S=(0,Z.useRef)(new Map),C=(0,Z.useRef)(e.id);C.current!==e.id&&(C.current=e.id,S.current=new Map,x.current=null),(0,Z.useEffect)(()=>{if(!r.ready)return;if(t){x.current?.runId!==e.id&&(x.current={runId:e.id,name:r.state.active});let n=S.current.get(t);n!==void 0&&r.state.layouts.some(e=>e.name===n)?s(n):i(t);return}let n=x.current;x.current=null,b===`POP`&&n&&n.runId===e.id&&n.name!==r.state.active&&s(n.name)},[t,r.ready,r.replaced,b,i,e.id,s]),(0,Z.useEffect)(()=>{if(!r.ready||!t||S.current.has(t))return;let e=r.layout;e&&e.columns.length===1&&e.columns[0]?.view===t&&S.current.set(t,e.name)},[t,r.layout,r.ready]);let w=(0,Z.useCallback)(()=>n(e.id),[n,e.id]),T=(0,Z.useMemo)(()=>it.filter(t=>y.includes(t)&&(t!==`graph`||!!e.workflowDef)),[y,e.workflowDef]),E=r.ready?r.layout?Zt(r.layout):`session`:null,D=(0,Z.useMemo)(()=>r.state.layouts.filter(e=>Zt(e)===null),[r.state.layouts]),O=(0,Z.useCallback)(()=>a(),[a]),{hints:k,show:A}=Qe((0,Z.useMemo)(()=>ut(T),[T])),j=xe(),[M,N]=(0,Z.useState)(null),P=(0,Z.useCallback)(e=>{setTimeout(()=>N(e),0)},[]),F=(0,Z.useCallback)(()=>N(null),[]),I=r.dropView,L=(0,Z.useRef)({runId:e.id,current:r.state.active,previous:null});L.current.runId===e.id?L.current.current!==r.state.active&&(L.current={runId:e.id,current:r.state.active,previous:L.current.current}):L.current={runId:e.id,current:r.state.active,previous:null};let R=(0,Z.useCallback)(e=>{if(E!==e)return null;let t=L.current.previous,n=t===null?void 0:r.state.layouts.find(e=>e.name===t);return n&&!(n.columns.length===1&&n.columns[0]?.view===e)?(s(n.name),n.columns.length):(i(e===`session`?`changes`:`session`),1)},[E,r.state.layouts,i,s]),z=(0,Z.useCallback)((e,t,n)=>{if(N(null),n===`insert`&&R(e)!==null){I(e,t===0?0:nt,n);return}I(e,t,n)},[R,I]),B=(0,Z.useCallback)(e=>{let t=R(e)??r.layout?.columns.length??0;I(e,t,`insert`)},[R,I,r.layout?.columns.length]),te=r.layout?.columns.length??0,ne=E===null&&te>1?r.closeColumn:void 0,[re,ie]=(0,Z.useState)(()=>Nr(e.id)),V=(0,Z.useRef)(e.id);V.current!==e.id&&(V.current=e.id,ie(Nr(e.id)));let H=(0,Z.useCallback)(t=>{ie(n=>{let r={...n,...t};return Pr(e.id,r),r})},[e.id]),U=r.layout?.columns.some(e=>e.view===`terminal`)??!1,ae=Ce(),oe=v&&re.open&&!U,[se,ce]=(0,Z.useState)(!1),le=(0,Z.useRef)(e.id);le.current!==e.id&&(le.current=e.id,ce(!1));let ue=(0,Z.useCallback)(()=>ce(!1),[]),W=(0,Z.useCallback)(()=>ce(e=>!e),[]),de=Gl(se,ue),fe=(0,Z.useMemo)(()=>({maximized:se,toggle:W}),[se,W]),pe=re.open,me=(0,Z.useCallback)(()=>{U||H({open:!pe})},[pe,U,H]),{closeColumn:he}=r,G=r.layout?.columns,ge=(0,Z.useCallback)(()=>{H({open:!0});let e=G?.findIndex(e=>e.view===`terminal`)??-1;e<0||(E!==null||G.length===1?i(`session`):he(e))},[he,E,i,G,H]),_e=(0,Z.useMemo)(()=>oe||U?[`terminal`]:[],[oe,U]),ve=(0,Z.useMemo)(()=>(0,Q.jsx)(Yr,{layouts:D,active:r.state.active,fixedViews:T,fixedActive:E,onViews:_e,onSelectFixed:i,onSelect:s,onClose:o,saved:f.saved,onApplySaved:u,onSaveCurrent:g?_:void 0,onDeleteSaved:m,notesHref:`/tasks/${e.id}/notes`,onViewDragStart:P,onViewDragEnd:F,onOpenBeside:B,onColumnDropClose:ne,keyHints:k,showKeyHints:A}),[D,r.state.active,T,E,_e,i,s,o,f.saved,u,g,_,m,e.id,P,F,B,ne,k,A]),be=(0,Z.useMemo)(()=>(0,Q.jsx)(q,{variant:`ghost`,size:`icon-sm`,"data-action":`maximize-layout`,"aria-label":`Full view`,title:`Full view — hide everything but this layout (F)`,className:`text-muted-foreground`,onClick:W,children:(0,Q.jsx)(en,{"aria-hidden":`true`})}),[W]),J=(0,Z.useMemo)(()=>[...T.map(e=>({select:()=>i(e),active:E===e})),...D.map(e=>({select:()=>s(e.name),active:E===null&&e.name===r.state.active}))],[T,D,E,r.state.active,i,s]),Se=(0,Z.useMemo)(()=>[...pt(T).map(t=>t===`notes`?()=>j(`/tasks/${e.id}/notes`):()=>i(t))],[T,i,j,e.id]),Y=(0,Z.useRef)({stripOrder:J,numbered:Se,toggleMaximized:W,terminalAllowed:v,toggleDrawer:me});Y.current={stripOrder:J,numbered:Se,toggleMaximized:W,terminalAllowed:v,toggleDrawer:me},(0,Z.useEffect)(()=>{let e=e=>{if(e.metaKey||e.ctrlKey||e.altKey||e.repeat||e.defaultPrevented||xn(e.target)||document.querySelector(`[role="dialog"], [role="alertdialog"], [role="menu"], [role="listbox"]`))return;let t=Y.current,n=document.querySelector(pu),r=t.stripOrder.findIndex(e=>e.active),i=e=>{if(t.stripOrder.length===0)return;let n=(Math.max(r,0)+e+t.stripOrder.length)%t.stripOrder.length;t.stripOrder[n].select()};if(/^[1-9]$/.test(e.key)){let n=t.numbered[Number(e.key)-1];if(!n)return;n()}else if(e.key===`[`)i(-1);else if(e.key===`]`)i(1);else if(e.key===`f`||e.key===`F`)t.toggleMaximized();else if(e.key===`\\`){let e=n?.querySelectorAll(`[data-action="split-view"]:not(:disabled)`),t=e?.[e.length-1];if(!t)return;t.click()}else if(e.key===`/`){let e=n?.querySelector(`[data-slot="composer"] textarea, [data-slot="composer-input"]`);if(!e)return;e.focus()}else if(e.key==="`"){if(!t.terminalAllowed)return;t.toggleDrawer()}else return;e.preventDefault()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]);let we=to(e.id),[Te,Ee]=(0,Z.useState)(null),De=r.layout?.columns,Oe=(0,Z.useCallback)((e,t)=>{let n=De?.[e]?.view===`changes`,i=De?.filter(e=>e.view===`changes`).length===1;if(n&&i&&we.comments.length>0){Ee({index:e,view:t});return}r.setColumnView(e,t)},[De,we.comments.length,r.setColumnView]),ke=(0,Z.useMemo)(()=>({addColumn:E===null?r.addColumn:e=>I(e,te,`insert`),closeColumn:r.closeColumn,setColumnView:Oe,resizeColumns:r.resizeColumns,moveColumn:r.moveColumn}),[E,I,te,r.addColumn,r.closeColumn,Oe,r.resizeColumns,r.moveColumn]),Ae=r.openBeside,je=(0,Z.useCallback)(t=>{let n=Ae(t.view);n&&Kr(`${e.id}:${n.name}:${n.index}:${t.view}`,t.value)},[Ae,e.id]);(0,Z.useEffect)(()=>yn(e.id),[e.id]),(0,Z.useEffect)(()=>{if(!r.ready)return;let t=kn(e.id);t&&je({view:`files`,value:t})},[r.ready,je,e.id]),(0,Z.useEffect)(()=>{let t=()=>document.querySelector(pu),n=()=>{let e=t()?.querySelectorAll(`[data-action="split-view"]:not(:disabled)`);return e?.[e.length-1]??null},a=()=>t()?.querySelector(`[data-slot="composer"] textarea, [data-slot="composer-input"]`)??null,o={runId:e.id,views:T,activeView:E,openView:i,openViewBeside:B,layouts:D.map(e=>({name:e.name,label:Rt(e.name),active:E===null&&e.name===r.state.active})),selectLayout:s,maximized:se,toggleMaximized:W,get splitView(){return n()?()=>n()?.click():null},terminal:{allowed:v,open:pe,inColumn:U,toggle:me,openInColumn:()=>{H({open:!1}),Ae(`terminal`)}},get focusComposer(){return a()?()=>a()?.focus():null},openFile:e=>je({view:`files`,value:e}),markedUnread:w};return An(o),()=>vn(o)});let Me=r.state.active,Ne=De?.some(e=>e.view===`session`)?`session`:`changes`,Pe=Aa(e),{addDraft:Fe,discard:Ie,note:Le,marks:Re}=Pe,ze=(0,Z.useCallback)(e=>{Le(e)?.phase===`draft`&&Ie(e)},[Ie,Le]),Be=hu(e.id,r.layout?Me:null,r.state.layouts),Ve=(0,Z.useCallback)(e=>e===`terminal`&&v?(0,Q.jsx)(Yn,{label:`Move to bottom — under every view`,children:(0,Q.jsx)(q,{type:`button`,variant:`ghost`,size:`icon-xs`,"data-action":`terminal-to-drawer`,"aria-label":`Move to bottom`,onClick:ge,className:`text-soft-foreground hover:text-foreground`,children:(0,Q.jsx)(nn,{"aria-hidden":`true`,className:`size-3.5`})})}):null,[ge,v]),He=(0,Z.useCallback)((t,r,i,a)=>{switch(t){case`session`:return(0,Q.jsx)(vu,{run:e,onMarkedUnread:n,onOpenReference:je});case`changes`:return(0,Q.jsx)(po,{run:e,embedded:!0,stateKey:`${e.id}:${a}:${r}:changes`},e.id);case`commits`:return(0,Q.jsx)(qr,{run:e,embedded:!0,stateKey:`${e.id}:${a}:${r}:commits`});case`files`:return(0,Q.jsx)(xo,{run:e,embedded:!0,stateKey:`${e.id}:${a}:${r}:files`});case`graph`:return(0,Q.jsx)(Z.Suspense,{fallback:(0,Q.jsx)(_u,{title:`Loading graph…`}),children:(0,Q.jsx)(cu,{run:e,embedded:!0})});case`terminal`:return v?(0,Q.jsx)(Z.Suspense,{fallback:(0,Q.jsx)(_u,{title:`Loading terminal…`}),children:(0,Q.jsx)(su,{runId:e.id,height:0,onHeightChange:fu,onOpenInBrowser:l,fill:!0})}):(0,Q.jsx)(Ir,{icon:(0,Q.jsx)(Qn,{}),tone:`neutral`,heading:`h2`,title:`Terminal disabled`,subtitle:`The terminal is off on this cockpit — it is off in hosted mode unless CEZ_TERMINAL=1.`});case`browser`:return(0,Q.jsx)(Ri,{state:i.browser??Lt(),onChange:e=>c(r,e),onPickElement:Fe,designMarks:Re,onDesignEscape:ze,renderEmpty:v?t=>(0,Q.jsx)(da,{runId:e.id,projectId:ae,onOpen:t,setup:e.worktreeLifecycle,onShowTerminal:U?void 0:()=>H({open:!0})}):void 0,renderDesignNote:({mark:t,close:n})=>{let r=Le(t);return r?(0,Q.jsx)(ha,{note:r,run:e,notes:Pe,onClose:n}):null}})}},[Fe,Re,Pe,ze,Le,n,l,je,e,c,v,ae,U,H]);return(0,Q.jsxs)(`div`,{"data-route":`task-workspace`,"data-run-id":e.id,className:`flex h-full min-h-0 flex-col`,children:[(0,Q.jsx)(Gt,{run:e,tab:Ne,onMarkedUnread:w,tabs:ve,headerActions:be,wide:!0}),r.loadFailed?(0,Q.jsx)(`div`,{"data-slot":`layouts-unloaded`,role:`status`,className:`shrink-0 border-b border-border bg-muted/40 px-4 py-1.5 text-xs text-muted-foreground sm:px-6`,children:`This task's saved layouts could not be loaded yet — retrying. Changes made meanwhile are not saved.`}):null,r.saveFailed?(0,Q.jsx)(`div`,{"data-slot":`layouts-unsaved`,role:`status`,className:`shrink-0 border-b border-border bg-muted/40 px-4 py-1.5 text-xs text-muted-foreground sm:px-6`,children:`This layout could not be saved on this host — it keeps working in this tab, but will not come back after a refresh.`}):null,(0,Q.jsx)(sn.Provider,{value:y,children:(0,Q.jsx)(Ul.Provider,{value:fe,children:(0,Q.jsxs)(`div`,{ref:de.ref,"data-slot":`workspace-stage`,"data-maximized":de.covering?``:void 0,style:de.style,className:K(`relative flex min-h-0 flex-1 flex-col`,de.covering&&`fixed z-40 overflow-hidden bg-background md:rounded-xl md:border md:border-border/70`),children:[r.ready?r.layout?Be.map(e=>(0,Q.jsx)(gu,{layout:e,active:e.name===Me,actions:ke,renderView:He,headerExtras:Ve},e.name)):(0,Q.jsx)(Ir,{icon:(0,Q.jsx)(Nn,{}),tone:`neutral`,heading:`h2`,title:`No layouts`,subtitle:`You closed every layout of this task. Create a new one, or come back later — the task will open with a Chat layout.`,actions:(0,Q.jsx)(q,{variant:`outline`,onClick:O,children:`New layout`})}):(0,Q.jsx)(uu,{view:t}),M?(0,Q.jsx)(tu,{view:M,columns:r.layout?.columns??[],onDrop:z}):null,de.covering&&E!==null?(0,Q.jsx)(Kl,{className:`absolute top-2 right-3 z-20 bg-card shadow-sm`}):null]})})}),(0,Q.jsx)(Dr,{open:Te!==null,onOpenChange:e=>!e&&Ee(null),children:(0,Q.jsxs)(Sr,{children:[(0,Q.jsxs)(Er,{children:[(0,Q.jsx)(xr,{children:`You have an unsent comment`}),(0,Q.jsxs)(br,{children:[we.comments.length===1?`One comment on the changes has not been sent yet.`:`${we.comments.length} comments on the changes have not been sent yet.`,` `,`This is the last column showing them.`]})]}),(0,Q.jsxs)(wr,{children:[(0,Q.jsx)(Tr,{children:`Go back`}),(0,Q.jsx)(Cr,{onClick:()=>{Te&&r.setColumnView(Te.index,Te.view),Ee(null)},children:`Change anyway`})]})]})}),oe?(0,Q.jsx)(Z.Suspense,{fallback:null,children:(0,Q.jsx)(su,{runId:e.id,height:re.height,onHeightChange:e=>H({height:e}),onClose:()=>H({open:!1}),onMoveToColumn:()=>{H({open:!1}),Ae(`terminal`)},onOpenInBrowser:l})}):null]})}var fu=()=>{},pu=`[data-slot="workspace-stage"] [data-slot="workspace-layout"][data-active]`;function mu(e){return e.columns.every(e=>e.view!==`terminal`&&e.view!==`browser`)}function hu(e,t,n){let[r,i]=(0,Z.useState)({runId:e,names:[]}),a=r.runId===e?r.names:[];return t!==null&&a[0]!==t&&i({runId:e,names:[t,...a.filter(e=>e!==t)].slice(0,5)}),n.filter(e=>e.name===t||a.includes(e.name)&&mu(e))}function gu({layout:e,active:t,actions:n,renderView:r,headerExtras:i}){let a=e.name,o=(0,Z.useCallback)((e,t,n)=>r(e,t,n,a),[r,a]);return(0,Q.jsx)(Z.Activity,{mode:t?`visible`:`hidden`,children:(0,Q.jsx)(`div`,{"data-slot":`workspace-layout`,"data-active":t?``:void 0,className:`flex min-h-0 flex-1 flex-col`,children:(0,Q.jsx)(ru,{columns:e.columns,actions:n,renderView:o,headerExtras:i})})})}function _u({title:e}){return(0,Q.jsx)(Ir,{icon:(0,Q.jsx)(lr,{className:`motion-safe:animate-spin`}),tone:`neutral`,heading:`h2`,title:e})}function vu({run:e,onMarkedUnread:t,onOpenReference:n}){let r=wi(e.id),i=(0,Z.useMemo)(()=>Nl(r.visibleEvents,{activeTurn:e.status===`running`,runner:e.runner}),[r.visibleEvents,e.status,e.runner]),a=(0,Z.useMemo)(()=>Nl(r.currentEvents,{activeTurn:e.status===`running`,runner:e.runner}),[r.currentEvents,e.status,e.runner]);if(Eo(e,r.visibleEvents),r.isPending)return(0,Q.jsx)(On,{});let o=t=>{let n=t.target instanceof Element?t.target.closest(`[data-streamdown="inline-code"]`):null;if(!(n instanceof HTMLElement)||n.closest(`[data-slot="user-message"]`))return null;let r=yu(n.textContent??``,e.worktreePath??void 0);return r?{node:n,reference:r}:null};return(0,Q.jsx)(`div`,{className:`contents`,onPointerOver:e=>{let t=o(e);t&&!t.node.dataset.open&&(t.node.dataset.open=t.reference.view,t.node.title=t.reference.view===`files`?`Open in Files`:`Open in Commits`)},onClick:e=>{if(!n||window.getSelection()?.toString())return;let t=o(e);t&&n(t.reference)},children:(0,Q.jsx)(Fl,{run:e,thread:i,currentThread:a,history:r,onMarkedUnread:t,embedded:!0})})}function yu(e,t){let n=e.trim();if(n.length<3||n.length>260||/\s/.test(n))return null;if(/^[0-9a-f]{7,40}$/.test(n)&&/[a-f]/.test(n)&&/[0-9]/.test(n))return{view:`commits`,value:n};let r=n.replace(/:\d+(?::\d+)?$/,``);return t&&r.startsWith(`${t}/`)&&(r=r.slice(t.length+1)),r.startsWith(`/`)||r.startsWith(`~`)||/^[a-z]+:\/\//i.test(r)||(r=r.replace(/^\.\//,``),r.startsWith(`..`))||!/^[\w@.+\-()[\]]+(?:\/[\w@.+\-()[\]]+)*\.[A-Za-z][A-Za-z0-9]{0,7}$/.test(r)||!r.includes(`/`)&&!/\.(?:tsx?|jsx?|mjs|cjs|json|md|mdx|css|scss|html|ya?ml|toml|py|rs|go|rb|java|kt|swift|sh|sql|lock|txt|env|svg|png|jpe?g)$/i.test(r)?null:{view:`files`,value:r}}export{lu as TaskWorkspaceRoute};