ompgui 0.5.0 → 0.5.1

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 (69) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +6 -6
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/required-server-files.js +3 -3
  6. package/.next/required-server-files.json +3 -3
  7. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/_global-error.html +1 -1
  9. package/.next/server/app/_global-error.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  14. package/.next/server/app/_not-found.html +1 -1
  15. package/.next/server/app/_not-found.rsc +1 -1
  16. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  19. package/.next/server/app/api/agent/[id]/events/route.js +2 -4
  20. package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -1
  21. package/.next/server/app/api/agent/[id]/route.js +1 -1
  22. package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -1
  23. package/.next/server/app/api/agent/new/route.js +1 -1
  24. package/.next/server/app/api/agent/new/route.js.nft.json +1 -1
  25. package/.next/server/app/api/agent/running/events/route.js +2 -2
  26. package/.next/server/app/api/agent/running/events/route.js.nft.json +1 -1
  27. package/.next/server/app/api/app-update/route.js +1 -1
  28. package/.next/server/app/api/mcp/route.js +2 -2
  29. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  30. package/.next/server/app/api/omp-update/route.js +1 -1
  31. package/.next/server/app/api/omp-update/route.js.nft.json +1 -1
  32. package/.next/server/app/api/sessions/[id]/archive/route.js +1 -1
  33. package/.next/server/app/api/sessions/[id]/archive/route.js.nft.json +1 -1
  34. package/.next/server/app/api/sessions/[id]/auto-name/route.js +1 -1
  35. package/.next/server/app/api/sessions/[id]/auto-name/route.js.nft.json +1 -1
  36. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  37. package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  38. package/.next/server/app/api/sessions/[id]/state/route.js +1 -1
  39. package/.next/server/app/api/sessions/[id]/state/route.js.nft.json +1 -1
  40. package/.next/server/app/api/sessions/[id]/subagents/route.js +1 -1
  41. package/.next/server/app/api/sessions/[id]/subagents/route.js.nft.json +1 -1
  42. package/.next/server/app/api/sessions/route.js +1 -1
  43. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  44. package/.next/server/app/index.html +1 -1
  45. package/.next/server/app/index.rsc +2 -2
  46. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  47. package/.next/server/app/index.segments/_full.segment.rsc +2 -2
  48. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  49. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  50. package/.next/server/app/login.html +1 -1
  51. package/.next/server/app/login.rsc +1 -1
  52. package/.next/server/app/login.segments/_full.segment.rsc +1 -1
  53. package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  54. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  55. package/.next/server/app/page.js +4 -4
  56. package/.next/server/app/page_client-reference-manifest.js +1 -1
  57. package/.next/server/app-paths-manifest.json +6 -6
  58. package/.next/server/chunks/6209.js +1 -1
  59. package/.next/server/chunks/6465.js +1 -0
  60. package/.next/server/middleware-build-manifest.js +1 -1
  61. package/.next/server/pages/404.html +1 -1
  62. package/.next/server/pages/500.html +1 -1
  63. package/.next/server/server-reference-manifest.json +1 -1
  64. package/.next/static/chunks/app/page-42f14d1d105b560f.js +76 -0
  65. package/package.json +1 -1
  66. package/.next/server/chunks/2407.js +0 -1
  67. package/.next/static/chunks/app/page-996c13eb0fd7f2f5.js +0 -76
  68. /package/.next/static/{2RFCzMViB3kmtz57FAIur → p27_8jX1Nr1Q_uA0Whr9L}/_buildManifest.js +0 -0
  69. /package/.next/static/{2RFCzMViB3kmtz57FAIur → p27_8jX1Nr1Q_uA0Whr9L}/_ssgManifest.js +0 -0
@@ -0,0 +1,76 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974],{5456:(e,t,r)=>{Promise.resolve().then(r.bind(r,31323))},6014:(e,t,r)=>{"use strict";r.d(t,{q:()=>i});var n=r(12115),a=r(7834);function i(){let[e,t]=(0,n.useState)(!1),r=(0,n.useRef)(null),i=(0,n.useRef)(!0),s=(0,n.useCallback)(e=>{(0,a.D)(e).then(()=>{i.current&&(t(!0),r.current&&clearTimeout(r.current),r.current=setTimeout(()=>t(!1),1500))}).catch(()=>{})},[]);return(0,n.useEffect)(()=>()=>{i.current=!1,r.current&&clearTimeout(r.current)},[]),{copied:e,copy:s}}},7834:(e,t,r)=>{"use strict";function n(e){if(navigator.clipboard?.writeText)return navigator.clipboard.writeText(e);try{let t=document.createElement("textarea");return t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t),Promise.resolve()}catch{return Promise.reject()}}r.d(t,{D:()=>n})},18136:(e,t,r)=>{"use strict";r.d(t,{K:()=>a});var n=r(4315);function a(e,t="errors.generic"){if("string"==typeof e)return e;let r=e?.code;if(r){let e=`errors.${r}`,t=(0,n.Tl)(e);if(t!==e)return t}if(e?.error)return e.error;let i=(0,n.Tl)(t);return i===t?"Request failed":i}},19870:(e,t,r)=>{"use strict";function n(e){try{return decodeURIComponent(e)}catch{return e}}function a(e){return/^[a-zA-Z]:[\\/]/.test(e)||e.startsWith("\\\\")?e.replace(/\\/g,"/"):e}function i(e){let t=a(e),r=/^[a-zA-Z]:\//.test(t),n=t.startsWith("//"),i=t.startsWith("/")&&!r&&!n,s=[];for(let e of t.split("/"))if(e&&"."!==e){if(".."===e){s.length>0&&".."!==s[s.length-1]?s.pop():i||r||n||s.push(e);continue}s.push(e)}let o=s.join("/");return r?o:n?`//${o}`:i?`/${o}`:o}function s(e,t,r=t){let o,l,d,c,u;if(!e)return null;let p=e.split("#",1)[0].split("?",1)[0].trim();if(!p)return null;let h=null,m=null,f=n(p),g=f.startsWith("\\\\"),x=a(f),v=x.toLowerCase();if(v.startsWith("/api/")||v.startsWith("/_next/")||!g&&x.startsWith("//")||/^[a-zA-Z][a-zA-Z0-9+.-]*:/i.test(x)&&!v.startsWith("file:")&&!/^[a-zA-Z]:\//.test(x))return null;if(v.startsWith("file:")?m=(h=function(e){try{let t=new URL(e);if("file:"!==t.protocol)return null;let r=n(t.pathname);if(t.hostname)return`//${t.hostname}${r.startsWith("/")?r:`/${r}`}`;if(/^\/[a-zA-Z]:\//.test(r))return r.slice(1);return r}catch{return null}}(x))?"absolute":null:/^[a-zA-Z]:\//.test(x)||x.startsWith("/")?(h=x,m="absolute"):t&&!(x.startsWith("#")||x.startsWith("?"))&&(x.startsWith("./")||x.startsWith("../")||x.includes("/")||/(^|\/)\.?[^/]+\.[^/.]+$/.test(x))&&(h=`${a(t).replace(/\/+$/,"")}/${x}`,m="relative"),!h)return null;let y=i(h).replace(/:\d+(?::\d+)?$/,"");return"relative"===m&&r&&(o=i(y).replace(/\/+$/,""),l=i(r).replace(/\/+$/,""),c=(d=/^[a-zA-Z]:\//.test(o)||/^[a-zA-Z]:\//.test(l))?o.toLowerCase():o,!(c===(u=d?l.toLowerCase():l)||c.startsWith(`${u}/`)))?null:y}r.d(t,{V:()=>s})},28999:(e,t,r)=>{"use strict";function n(e){return/^[a-zA-Z]:[\\/]/.test(e)||e.startsWith("\\\\")?e.replace(/\\/g,"/"):e}function a(e){let t=n(e),r=t.startsWith("//"),a=t.split("/").filter(Boolean);return r&&a.length>0&&(a[0]=`//${a[0]}`),a.map(encodeURIComponent).join("/")}function i(e){let t=n(e).replace(/\/+$/,"");return t.split("/").pop()??t}function s(e){let t=n(e).replace(/\/+$/,""),r=t.lastIndexOf("/");return r<0?"":0===r?"/":2===r&&/^[a-zA-Z]:\//.test(t)?t.slice(0,3):t.slice(0,r)}function o(e,t){if(!t)return e;let r=n(e),a=n(t).replace(/\/$/,""),i=/^[a-zA-Z]:\//.test(r)||r.startsWith("//")||/^[a-zA-Z]:\//.test(a)||a.startsWith("//"),s=i?r.toLowerCase():r,o=i?a.toLowerCase():a;return s.startsWith(o+"/")?r.slice(a.length+1):e}function l(e,t){return`${n(e).replace(/\/$/,"")}/${t}`}r.d(t,{A0:()=>n,HG:()=>a,WP:()=>i,e_:()=>l,gX:()=>s,qP:()=>o})},30808:(e,t,r)=>{"use strict";r.d(t,{Cf:()=>b,HM:()=>k,L3:()=>w,Nt:()=>S,R6:()=>C,je:()=>T,lG:()=>y,m_:()=>j});var n=r(95155),a=r(53474),i=r(72222),s=r(45477),o=r(59567),l=r(11975),d=r(52579),c=r(3683),u=r(11412),p=r(80403),h=r(15383),m=r(96238),f=r(27443),g=r(98197),x=r(11827),v=r(977);function y({open:e,onOpenChange:t,children:r}){return(0,n.jsx)(a.D,{open:e,onOpenChange:t,children:r})}function b({children:e,className:t,style:r,ariaLabel:a}){return(0,n.jsxs)(i.Z,{children:[(0,n.jsx)(s.X,{style:{position:"fixed",inset:0,background:"var(--overlay-backdrop)",backdropFilter:"blur(2px)",zIndex:"var(--z-dialog-backdrop)"}}),(0,n.jsx)(o.h,{"aria-label":a,className:t,style:{position:"fixed",top:"50%",left:"50%",transform:"translate(-50%, -50%)",animation:"dialog-pop-in var(--dur-med) var(--ease-out-warm) both",zIndex:"var(--z-dialog)",background:"var(--bg)",color:"var(--text)",border:"1px solid var(--border)",borderRadius:"var(--radius-modal)",boxShadow:"var(--shadow-modal)",padding:"calc(var(--space-6) + var(--space-2))",maxWidth:"min(92vw, 560px)",maxHeight:"85dvh",overflow:"auto",...r},children:e})]})}function w({children:e,style:t}){return(0,n.jsx)(l.L,{className:"display-serif",style:{fontSize:"calc(var(--text-xl) + var(--space-3) / 2)",margin:"0 0 var(--space-5)",...t},children:e})}let k=d.H;function j({content:e,children:t,side:r="top"}){return(0,n.jsx)(c.B,{delay:350,closeDelay:0,children:(0,n.jsxs)(u.s,{children:[(0,n.jsx)(p.k,{render:t}),(0,n.jsx)(h.K,{children:(0,n.jsx)(m.o,{side:r,sideOffset:6,style:{zIndex:"var(--z-tooltip)"},children:(0,n.jsx)(f.o,{style:{background:"var(--bg-panel)",color:"var(--text)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",boxShadow:"var(--shadow-pop)",padding:"var(--space-2) calc(var(--space-4) + var(--space-1) / 2)",fontSize:"var(--text-md)",lineHeight:1.4,maxWidth:260},children:e})})})]})})}function S({open:e,onOpenChange:t,defaultOpen:r,children:a}){return(0,n.jsx)(g.N,{open:e,onOpenChange:t,defaultOpen:r,children:a})}let C=x.R;function T({children:e,style:t}){return(0,n.jsx)(v.j,{style:t,children:e})}},31323:(e,t,r)=>{"use strict";r.d(t,{AppShell:()=>ax});var n=r(95155),a=r(12115),i=r(37206),s=r(73321);let o=null;var l=r(47650),d=r(4315),c=r(18136);let u=[];function p({onClose:e,active:t=!0}){let r=(0,a.useRef)(null),n=(0,a.useRef)(e);return n.current=e,(0,a.useEffect)(()=>{if(!t)return;let e=r.current;if(!e)return;let a=document.activeElement instanceof HTMLElement?document.activeElement:null;u.push(e),e.contains(document.activeElement)||e.focus();let i=t=>{if(u[u.length-1]!==e)return;if("Escape"===t.key){if(t.isComposing||229===t.keyCode)return;t.preventDefault(),n.current();return}if("Tab"!==t.key)return;let r=Array.from(e.querySelectorAll('a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])')).filter(e=>e.getClientRects().length>0||e===document.activeElement);if(0===r.length){t.preventDefault(),e.focus();return}let a=document.activeElement,i=a instanceof Node&&e.contains(a);t.shiftKey?i&&a!==r[0]&&a!==e||(t.preventDefault(),r[r.length-1].focus()):i&&a!==r[r.length-1]||(t.preventDefault(),r[0].focus())};return document.addEventListener("keydown",i,!0),()=>{document.removeEventListener("keydown",i,!0);let t=u.indexOf(e);-1!==t&&u.splice(t,1),a&&a.isConnected&&a.focus()}},[t]),r}async function h(e){let t=e?`?path=${encodeURIComponent(e)}`:"",r=await fetch(`/api/cwd/browse${t}`),n=await r.json();if(!r.ok||n.error)throw Error((0,c.K)({...n,error:n.error??`HTTP ${r.status}`}));return n}function m(){return(0,n.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.3","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M1.5 3h4l1.5 2h7.5v7.5h-13z"})})}function f(){return(0,n.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),(0,n.jsx)("path",{d:"M2 9h12"}),(0,n.jsx)("circle",{cx:"11.5",cy:"11",r:"0.6",fill:"currentColor",stroke:"none"})]})}function g({onCancel:e,onSelect:t,busy:r=!1,error:i}){let{t:s}=(0,d.s9)(),[o,c]=(0,a.useState)(null),[u,x]=(0,a.useState)(""),[v,y]=(0,a.useState)(null),[b,w]=(0,a.useState)(""),[k,j]=(0,a.useState)([]),[S,C]=(0,a.useState)(null),[T,I]=(0,a.useState)(null),[E,M]=(0,a.useState)(!0),R=p({onClose:()=>{r||e()},active:null!==o}),W=(0,a.useCallback)(async e=>{M(!0),I(null);try{let t=await h(e),r=t.path??e??"/";x(r),y(t.parentPath??null),w(r),j(t.directories??[]),C(t.drives??null)}catch(e){I(e instanceof Error?e.message:String(e))}finally{M(!1)}},[]);(0,a.useEffect)(()=>{c(document.body),W()},[W]);let $=b.trim()!==u,z=!!u&&!$&&!r,N=!!v||/^[a-zA-Z]:[\\/]?$/.test(u);return o?(0,l.createPortal)((0,n.jsx)("div",{className:"directory-picker-backdrop animate-fade-in",onClick:t=>{t.target!==t.currentTarget||r||e()},style:{position:"fixed",inset:0,zIndex:"var(--z-directory-picker)",display:"flex",alignItems:"center",justifyContent:"center",background:"var(--overlay-backdrop)"},children:(0,n.jsxs)("div",{className:"directory-picker-panel animate-scale-in",ref:R,role:"dialog","aria-modal":"true","aria-label":s("directoryPicker.selectDirectory"),tabIndex:-1,style:{width:520,maxWidth:"calc(100vw - 16px)",height:"min(620px, calc(100dvh - 16px))",maxHeight:"calc(100dvh - 16px)",display:"flex",flexDirection:"column",overflow:"hidden",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-modal)",boxShadow:"var(--shadow-modal)",outline:"none"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",flexShrink:0,padding:"12px 18px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("div",{style:{minWidth:0,flex:1},children:(0,n.jsx)("div",{style:{color:"var(--text)",fontWeight:700,fontSize:15},children:s("directoryPicker.selectDirectory")})}),(0,n.jsx)("button",{type:"button",onClick:e,disabled:r,title:s("directoryPicker.close"),"aria-label":s("directoryPicker.close"),style:{padding:"2px 6px",border:0,background:"none",color:"var(--text-muted)",fontSize:20,lineHeight:1,cursor:r?"default":"pointer",opacity:r?.5:1,transition:"color var(--dur-fast) var(--ease-out-warm), opacity var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{r||(e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)"},children:"\xd7"})]}),(0,n.jsxs)("form",{onSubmit:e=>{e.preventDefault();let t=b.trim();t&&W(t)},style:{display:"flex",alignItems:"center",gap:"var(--space-4)",flexShrink:0,padding:"10px 14px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("button",{className:"directory-picker-back",type:"button",onClick:()=>void W(v??void 0),disabled:E||!N,title:s("directoryPicker.goToParent"),"aria-label":s("directoryPicker.goToParent"),style:{width:"var(--control-height-lg)",height:"var(--control-height-lg)",padding:0,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-hover)",color:"var(--text-muted)",cursor:N?"pointer":"default",opacity:N?1:.45,transition:"background-color var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{N&&!E&&(e.currentTarget.style.background="var(--bg-selected)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:"m18 15-6-6-6 6"})})}),(0,n.jsx)("label",{htmlFor:"directory-path",style:{position:"absolute",width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:0},children:s("directoryPicker.directoryPath")}),(0,n.jsx)("input",{className:"directory-picker-path",id:"directory-path",type:"text",value:b,"aria-label":s("directoryPicker.pathPlaceholder")||"Directory path",placeholder:s("directoryPicker.pathPlaceholder"),autoFocus:!0,autoComplete:"off",spellCheck:!1,onChange:e=>{w(e.target.value),I(null)},style:{minWidth:0,flex:1,height:"var(--control-height-lg)",padding:"0 10px",border:"1px solid var(--border)",borderRadius:6,outline:"none",background:"var(--bg-panel)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:"var(--text-md)",transition:"border-color var(--dur-fast) var(--ease-out-warm)"}}),(0,n.jsx)("button",{className:"directory-picker-action",type:"submit",disabled:E||!b.trim(),title:s("directoryPicker.goToDirectory"),style:{minWidth:58,height:"var(--control-height-lg)",padding:"0 12px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-hover)",color:"var(--text-muted)",cursor:E||!b.trim()?"default":"pointer",opacity:E||!b.trim()?.6:1,transition:"background-color var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm), opacity var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{!E&&b.trim()&&(e.currentTarget.style.background="var(--bg-selected)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text-muted)"},children:s("directoryPicker.go")})]}),(0,n.jsxs)("div",{className:"directory-picker-list",style:{flex:1,minHeight:0,overflow:"auto",padding:"var(--space-4) 10px"},children:[E?(0,n.jsx)("div",{style:{display:"grid",gap:"var(--space-3)",padding:"var(--space-4)"},"aria-busy":"true","aria-label":s("directoryPicker.loadingDirectories"),children:Array.from({length:7}).map((e,t)=>(0,n.jsx)("div",{className:"skeleton",style:{height:22,width:`${55+37*t%40}%`}},t))}):null!==S?S.length>0?S.map(e=>(0,n.jsxs)("button",{className:"directory-picker-entry",type:"button",onClick:()=>void W(e.path),title:e.path,style:{width:"100%",minHeight:30,display:"flex",alignItems:"center",gap:7,padding:"5px var(--space-4)",border:0,borderRadius:5,background:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)"},children:[(0,n.jsx)(f,{}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]},e.path)):(0,n.jsx)("div",{style:{padding:"var(--space-4)",color:"var(--text-dim)",fontSize:"var(--text-sm)"},children:s("directoryPicker.noDrives")}):k.length>0?k.map(e=>(0,n.jsxs)("button",{className:"directory-picker-entry",type:"button",onClick:()=>void W(e.path),title:e.path,style:{width:"100%",minHeight:30,display:"flex",alignItems:"center",gap:7,padding:"5px var(--space-4)",border:0,borderRadius:5,background:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)",transition:"background-color var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent",e.currentTarget.style.color="var(--text-muted)"},children:[(0,n.jsx)(m,{}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]},e.path)):(0,n.jsx)("div",{style:{padding:"var(--space-4)",color:"var(--text-dim)",fontSize:"var(--text-sm)"},children:s("directoryPicker.noSubdirectories")}),(T||i)&&(0,n.jsx)("div",{style:{padding:"var(--space-4)",color:"var(--status-error)",fontSize:"var(--text-sm)"},children:T??i})]}),(0,n.jsxs)("div",{className:"directory-picker-footer",style:{display:"flex",justifyContent:"flex-end",alignItems:"center",gap:10,flexShrink:0,padding:"10px 18px",borderTop:"1px solid var(--border)"},children:[(0,n.jsx)("button",{className:"directory-picker-action",type:"button",onClick:e,disabled:r,style:{padding:"6px 14px",border:"1px solid var(--border)",borderRadius:6,background:"none",color:"var(--text-muted)",cursor:r?"default":"pointer",fontSize:"var(--text-base)"},children:s("directoryPicker.cancel")}),(0,n.jsx)("button",{className:"directory-picker-action",type:"button",onClick:()=>t(u),disabled:!z,title:s($?"directoryPicker.openPathBeforeSelecting":"directoryPicker.selectCurrentDirectory"),style:{padding:"6px 16px",border:0,borderRadius:6,background:"var(--accent)",color:"var(--on-accent)",fontSize:"var(--text-base)",fontWeight:600,opacity:z?1:.6,cursor:z?"pointer":"default"},children:s(r?"directoryPicker.checking":"directoryPicker.selectThisFolder")})]})]})}),o):null}var x=r(9005),v=r(76721),y=r(95660),b=r(14225),w=r(92571),k=r(83254),j=r(50825),S=r(68562),C=r(64577),T=r(79530),I=r(11012),E=r(35484);let M="var(--text-dim)";function R({size:e=14,open:t=!1}){return t?(0,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 16 16",fill:"none",children:[(0,n.jsx)("path",{d:"M1 4.5A1 1 0 0 1 2 3.5H5.5L7 5h7.5v1H1V4.5Z",fill:M}),(0,n.jsx)("path",{d:"M1 6h14.5L14 13H2L1 6Z",stroke:M,strokeWidth:"1",fill:M,fillOpacity:"0.12"})]}):(0,n.jsx)("svg",{width:e,height:e,viewBox:"0 0 16 16",fill:"none",children:(0,n.jsx)("path",{d:"M1 4.5A1 1 0 0 1 2 3.5H5.5L7 5H14a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V4.5Z",stroke:M,strokeWidth:"1",fill:M,fillOpacity:"0.1"})})}function W({size:e=14}){return(0,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 16 16",fill:"none",children:[(0,n.jsx)("path",{d:"M3 2h7l3 3v9H3V2Z",stroke:M,strokeWidth:"1",fill:M,fillOpacity:"0.08"}),(0,n.jsx)("path",{d:"M10 2v3h3",stroke:M,strokeWidth:"1",fill:"none",strokeLinejoin:"round"})]})}function $({label:e,size:t=14}){let r=t/14;return(0,n.jsxs)("svg",{width:t,height:t,viewBox:"0 0 14 14",fill:"none",children:[(0,n.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:M,strokeWidth:"0.9",fill:M,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:M,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,n.jsx)("text",{x:"7",y:"9.5",textAnchor:"middle",fontSize:3.4*r,fontFamily:"var(--font-mono), monospace",fontWeight:"600",fill:M,letterSpacing:"0",children:e})]})}function z({size:e=14}){return(0,n.jsx)($,{label:"TS",size:e})}function N({size:e=14}){return(0,n.jsx)($,{label:"TSX",size:e})}function L({size:e=14}){return(0,n.jsx)($,{label:"JS",size:e})}function A({size:e=14}){return(0,n.jsx)($,{label:"JSX",size:e})}function F({size:e=14}){return(0,n.jsx)($,{label:"PY",size:e})}function D({size:e=14}){return(0,n.jsx)($,{label:"{}",size:e})}function P({size:e=14}){return(0,n.jsx)($,{label:"CSS",size:e})}function B({size:e=14}){return(0,n.jsx)($,{label:"SC",size:e})}function O({size:e=14}){return(0,n.jsx)($,{label:"HTM",size:e})}function H({size:e=14}){return(0,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,n.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:M,strokeWidth:"0.9",fill:M,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:M,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M3.5 9.5V7l1.5 1.5L6.5 7v2.5",stroke:M,strokeWidth:"0.9",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"}),(0,n.jsx)("path",{d:"M8 7v2.5M7 9l1 1.5 1-1.5",stroke:M,strokeWidth:"0.9",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})]})}function U({size:e=14}){return(0,n.jsx)($,{label:"YML",size:e})}function _({size:e=14}){return(0,n.jsx)($,{label:"TOM",size:e})}function V({size:e=14}){return(0,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,n.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:M,strokeWidth:"0.9",fill:M,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:M,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M4 7.5l2 1.5-2 1.5",stroke:M,strokeWidth:"0.95",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"}),(0,n.jsx)("path",{d:"M7.5 10.5h2.5",stroke:M,strokeWidth:"0.95",strokeLinecap:"round"})]})}function q({size:e=14}){return(0,n.jsx)($,{label:"RS",size:e})}function K({size:e=14}){return(0,n.jsx)($,{label:"GO",size:e})}function Z({size:e=14}){return(0,n.jsx)($,{label:"SQL",size:e})}function J({size:e=14}){return(0,n.jsx)($,{label:"GQL",size:e})}function Y({size:e=14}){return(0,n.jsx)($,{label:"TF",size:e})}function G({size:e=14}){return(0,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,n.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:M,strokeWidth:"0.9",fill:M,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:M,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,n.jsx)("rect",{x:"3.5",y:"6.5",width:"2",height:"1.5",rx:"0.3",stroke:M,strokeWidth:"0.8"}),(0,n.jsx)("rect",{x:"6",y:"6.5",width:"2",height:"1.5",rx:"0.3",stroke:M,strokeWidth:"0.8"}),(0,n.jsx)("rect",{x:"3.5",y:"8.5",width:"2",height:"1.5",rx:"0.3",stroke:M,strokeWidth:"0.8"})]})}function X({size:e=14}){return(0,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,n.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:M,strokeWidth:"0.9",fill:M,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:M,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,n.jsx)("circle",{cx:"5.5",cy:"8.5",r:"1.5",stroke:M,strokeWidth:"0.9"}),(0,n.jsx)("path",{d:"M7 8.5h2.5M8.5 8.5v1.5",stroke:M,strokeWidth:"0.9",strokeLinecap:"round"})]})}function Q({size:e=14}){return(0,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,n.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:M,strokeWidth:"0.9",fill:M,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:M,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,n.jsx)("circle",{cx:"5",cy:"6.5",r:"1",stroke:M,strokeWidth:"0.85"}),(0,n.jsx)("circle",{cx:"9",cy:"6.5",r:"1",stroke:M,strokeWidth:"0.85"}),(0,n.jsx)("circle",{cx:"5",cy:"10",r:"1",stroke:M,strokeWidth:"0.85"}),(0,n.jsx)("path",{d:"M5 7.5V9",stroke:M,strokeWidth:"0.85",strokeLinecap:"round"}),(0,n.jsx)("path",{d:"M9 7.5v.5a2 2 0 0 1-2 2H6",stroke:M,strokeWidth:"0.85",strokeLinecap:"round",fill:"none"})]})}function ee({size:e=14}){return(0,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,n.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:M,strokeWidth:"0.9",fill:M,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:M,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,n.jsx)("rect",{x:"4.5",y:"8.5",width:"5",height:"3",rx:"0.6",stroke:M,strokeWidth:"0.9"}),(0,n.jsx)("path",{d:"M5.5 8.5V7.5a1.5 1.5 0 0 1 3 0v1",stroke:M,strokeWidth:"0.9",strokeLinecap:"round",fill:"none"})]})}function et({size:e=14}){return(0,n.jsx)($,{label:"DOC",size:e})}function er({size:e=14}){return(0,n.jsx)($,{label:"PDF",size:e})}function en({size:e=14}){return(0,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,n.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:M,strokeWidth:"0.9",fill:M,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:M,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,n.jsx)("circle",{cx:"7",cy:"8.5",r:"1.3",stroke:M,strokeWidth:"0.9"}),(0,n.jsx)("path",{d:"M7 6.5v.7M7 10.3v.7M5 8.5h.7M8.3 8.5H9M5.5 6.9l.5.5M8.5 9.6l-.5-.5M5.5 10.1l.5-.5M8.5 7.4l-.5.5",stroke:M,strokeWidth:"0.8",strokeLinecap:"round"})]})}function ea(e,t=14){let r=e.toLowerCase(),a=r.split(".").pop()??"";if("dockerfile"===r||r.startsWith("dockerfile."))return(0,n.jsx)(G,{size:t});if(".env"===r||r.startsWith(".env."))return(0,n.jsx)(X,{size:t});if(".gitignore"===r||".gitattributes"===r||".gitmodules"===r)return(0,n.jsx)(Q,{size:t});if("package-lock.json"===r||"yarn.lock"===r||"bun.lock"===r||"pnpm-lock.yaml"===r||"cargo.lock"===r)return(0,n.jsx)(ee,{size:t});if(r.endsWith(".config.ts")||r.endsWith(".config.js")||r.endsWith(".config.mjs")||r.endsWith(".config.cjs")||[".eslintrc",".eslintrc.js",".eslintrc.json",".eslintrc.yml","eslint.config.mjs","eslint.config.js"].includes(r))return(0,n.jsx)(en,{size:t});switch(a){case"ts":return(0,n.jsx)(z,{size:t});case"tsx":return(0,n.jsx)(N,{size:t});case"js":case"mjs":case"cjs":return(0,n.jsx)(L,{size:t});case"jsx":return(0,n.jsx)(A,{size:t});case"py":return(0,n.jsx)(F,{size:t});case"json":case"jsonl":return(0,n.jsx)(D,{size:t});case"css":case"less":return(0,n.jsx)(P,{size:t});case"scss":return(0,n.jsx)(B,{size:t});case"html":case"htm":return(0,n.jsx)(O,{size:t});case"md":case"mdx":return(0,n.jsx)(H,{size:t});case"yaml":case"yml":return(0,n.jsx)(U,{size:t});case"toml":return(0,n.jsx)(_,{size:t});case"sh":case"bash":case"zsh":case"fish":return(0,n.jsx)(V,{size:t});case"rs":return(0,n.jsx)(q,{size:t});case"go":return(0,n.jsx)(K,{size:t});case"sql":return(0,n.jsx)(Z,{size:t});case"graphql":case"gql":return(0,n.jsx)(J,{size:t});case"tf":case"hcl":return(0,n.jsx)(Y,{size:t});case"docx":return(0,n.jsx)(et,{size:t});case"pdf":return(0,n.jsx)(er,{size:t});case"lock":return(0,n.jsx)(ee,{size:t});default:return(0,n.jsx)(W,{size:t})}}var ei=r(30808),es=r(28999);async function eo(e){let t=(0,es.HG)(e),r=await fetch(`/api/files/${t}?type=list`);if(!r.ok){let e=(0,d.Tl)("fileExplorer.loadFailed",{status:r.status});try{let t=await r.json();t.error&&(e=t.error)}catch{}throw Error(e)}return((await r.json()).entries??[]).map(t=>({name:t.name,fullPath:(0,es.e_)(e,t.name),isDir:t.isDir,size:t.size,children:t.isDir?[]:void 0,loaded:!t.isDir}))}async function el(e){let t=new URLSearchParams({cwd:e}),r=await fetch(`/api/git/status?${t.toString()}`);if(!r.ok)throw Error((0,d.Tl)("fileExplorer.gitStatusFailed",{status:r.status}));return r.json()}let ed={modified:"fileExplorer.gitModified",added:"fileExplorer.gitAdded",deleted:"fileExplorer.gitDeleted",renamed:"fileExplorer.gitRenamed",untracked:"fileExplorer.gitUntracked",conflict:"fileExplorer.gitConflict"},ec={modified:"var(--status-modified)",added:"var(--status-success)",deleted:"var(--status-error)",renamed:"var(--status-renamed)",untracked:"var(--status-success)",conflict:"var(--status-error)"};function eu({onClick:e,title:t}){return(0,n.jsx)("button",{type:"button",onClick:e,title:t,"aria-label":t,style:{width:24,height:24,padding:0,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,border:"none",borderRadius:"var(--radius-control)",background:"none",color:"var(--text-dim)",cursor:"pointer",transition:"background var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:(0,n.jsx)(x.A,{size:13,strokeWidth:2.2,"aria-hidden":"true"})})}function ep({node:e,depth:t,cwd:r,onOpenFile:i,onAtMention:s,expandedPaths:o,onToggleExpanded:l,refreshToken:c,highlightedPaths:u,gitStatusByPath:p,changedDirectoryPaths:h}){let{t:m}=(0,d.s9)(),f=o.has(e.fullPath),g=u.has(e.fullPath),x=(0,es.A0)(e.fullPath),S=p.get(x),C=e.isDir&&(void 0!==S||h.has(x)),[T,I]=(0,a.useState)(e.children??[]),[E,M]=(0,a.useState)(e.loaded??!1),[R,W]=(0,a.useState)(!1),[$,z]=(0,a.useState)(!1),[N,L]=(0,a.useState)(!1),A=(0,a.useCallback)(async(t=!1)=>{if(!E||t){W(!0);try{let t=await eo(e.fullPath);I(t),M(!0)}catch{}finally{W(!1)}}},[E,e.fullPath]);(0,a.useEffect)(()=>{f?E&&A(!0):M(!1)},[c]);let F=(0,a.useCallback)(()=>{if(e.isDir){let t=!f;l(e.fullPath,t),t&&!E&&A()}else i(e.fullPath,e.name)},[e.isDir,e.fullPath,e.name,E,f,A,i,l]),D=(0,a.useCallback)(t=>{if(t.target===t.currentTarget){if("Enter"===t.key||" "===t.key)t.preventDefault(),F();else if("ArrowRight"===t.key){if(e.isDir)if(t.preventDefault(),f){let e=t.currentTarget.parentElement?.querySelector('[role="group"] [role="treeitem"]');e?.focus()}else l(e.fullPath,!0),E||A()}else if("ArrowLeft"===t.key)if(e.isDir&&f)t.preventDefault(),l(e.fullPath,!1);else{let e=t.currentTarget.closest('[role="group"]')?.parentElement?.querySelector(':scope > [role="treeitem"]');e?.focus()}else if("ArrowDown"===t.key||"ArrowUp"===t.key){t.preventDefault();let e=t.currentTarget.closest('[role="tree"]');if(!e)return;let r=Array.from(e.querySelectorAll('[role="treeitem"]')).filter(e=>!e.closest("[inert]")),n=r.indexOf(t.currentTarget);if(-1!==n){let e="ArrowDown"===t.key?Math.min(r.length-1,n+1):Math.max(0,n-1);r[e]?.focus()}}}},[e.isDir,e.fullPath,f,E,A,l,F]),P=m("fileExplorer.insertPathIntoChat"),B=m("fileExplorer.downloadFile");return(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{onClick:F,onKeyDown:D,onMouseEnter:()=>z(!0),onMouseLeave:()=>z(!1),onFocus:e=>{e.target===e.currentTarget&&L(!0)},onBlur:()=>L(!1),role:"treeitem",tabIndex:0,"aria-selected":g,"aria-expanded":e.isDir?f:void 0,"aria-label":e.isDir?e.name+" (folder"+(f?", expanded":", collapsed")+")":e.name+" (file)",style:{position:"relative",display:"flex",alignItems:"center",gap:"var(--space-2)",paddingLeft:8+14*t,paddingRight:"var(--space-4)",height:24,cursor:"pointer",background:$?"var(--bg-hover)":"transparent",borderRadius:"var(--radius-control)",userSelect:"none",boxShadow:N?"inset 0 0 0 1px color-mix(in srgb, var(--accent) 70%, transparent)":"none",outline:"none",transition:"background var(--dur-fast) var(--ease-out-warm)"},children:[e.isDir&&(0,n.jsx)(v.A,{size:10,strokeWidth:2,color:"var(--text-dim)",style:{flexShrink:0,transform:f?"rotate(90deg)":"none",transition:"transform var(--dur-med) var(--ease-out-warm)"},"aria-hidden":"true"}),!e.isDir&&(0,n.jsx)("span",{style:{width:10,flexShrink:0}}),(0,n.jsx)("span",{style:{flexShrink:0,display:"flex",alignItems:"center",color:e.isDir?"var(--text-muted)":"var(--text-dim)"},children:e.isDir?f?(0,n.jsx)(y.A,{size:14,strokeWidth:1.8,"aria-hidden":"true"}):(0,n.jsx)(b.A,{size:14,strokeWidth:1.8,"aria-hidden":"true"}):ea(e.name,14)}),(0,n.jsx)("span",{style:{fontSize:"var(--text-md)",color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},title:e.fullPath,children:e.name}),g&&(0,n.jsx)("span",{title:m("fileExplorer.newlyUploaded"),"aria-label":m("fileExplorer.newlyUploaded"),style:{width:6,height:6,flexShrink:0,borderRadius:"50%",background:"var(--accent)"}}),!$&&!e.isDir&&S&&(0,n.jsx)("span",{title:m(ed[S.status]),"aria-label":m(ed[S.status]),style:{width:14,flexShrink:0,color:ec[S.status],fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)",fontWeight:600,textAlign:"center"},children:S.code}),!$&&C&&(0,n.jsx)("span",{title:m("fileExplorer.containsChangedFiles"),"aria-label":m("fileExplorer.containsChangedFiles"),style:{width:6,height:6,flexShrink:0,borderRadius:"50%",background:"var(--status-modified)"}}),R&&(0,n.jsx)(w.A,{size:10,strokeWidth:2,color:"var(--text-dim)",style:{animation:"spin var(--dur-spin) linear infinite",flexShrink:0},"aria-hidden":"true"}),s&&$&&(0,n.jsx)(ei.m_,{content:P,children:(0,n.jsxs)("button",{onClick:t=>{t.stopPropagation(),s((0,es.qP)(e.fullPath,r),e.isDir)},"aria-label":P,style:{position:"absolute",right:e.isDir?4:28,top:"50%",transform:"translateY(-50%)",display:"flex",alignItems:"center",justifyContent:"center",gap:"var(--space-2)",padding:"0 var(--space-4)",height:20,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",color:"var(--accent)",cursor:"pointer",fontSize:"var(--text-sm)",fontWeight:600,whiteSpace:"nowrap",transition:"background var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},children:[(0,n.jsx)(k.A,{size:11,strokeWidth:2.2,"aria-hidden":"true"}),m("fileExplorer.mention")]})}),$&&!e.isDir&&(0,n.jsx)(ei.m_,{content:B,children:(0,n.jsx)("a",{href:`/api/files/${(0,es.HG)(e.fullPath)}?type=download`,download:!0,onClick:e=>e.stopPropagation(),"aria-label":B,style:{position:"absolute",right:4,top:"50%",transform:"translateY(-50%)",display:"flex",alignItems:"center",justifyContent:"center",gap:"var(--space-2)",padding:"0 5px",height:20,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",color:"var(--text-muted)",cursor:"pointer",fontSize:"var(--text-sm)",fontWeight:600,whiteSpace:"nowrap",textDecoration:"none",transition:"background var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},children:(0,n.jsx)(j.A,{size:11,strokeWidth:2.2,"aria-hidden":"true"})})})]}),e.isDir&&(0,n.jsx)("div",{role:"group",inert:!f||void 0,className:"accordion-flow "+(f?"is-open":""),children:(0,n.jsxs)("div",{className:"accordion-flow-inner",children:[T.map(e=>(0,n.jsx)(ep,{node:e,depth:t+1,cwd:r,onOpenFile:i,onAtMention:s,expandedPaths:o,onToggleExpanded:l,refreshToken:c,highlightedPaths:u,gitStatusByPath:p,changedDirectoryPaths:h},e.fullPath)),0===T.length&&E&&(0,n.jsx)("div",{style:{paddingLeft:8+(t+1)*14,fontSize:"var(--text-sm)",color:"var(--text-dim)",height:22,display:"flex",alignItems:"center"},children:m("fileExplorer.emptyDir")})]})})]})}let eh=(0,a.forwardRef)(function({cwd:e,onOpenFile:t,refreshKey:r,onAtMention:i,onAtMentions:s,onUploadBusyChange:o,onRefreshDone:l},c){let{t:u,tn:p}=(0,d.s9)(),[h,m]=(0,a.useState)([]),[f,g]=(0,a.useState)(!0),[x,v]=(0,a.useState)(null),[y,b]=(0,a.useState)(new Set),[j,M]=(0,a.useState)(0),[R,W]=(0,a.useState)(new Set),[$,z]=(0,a.useState)([]),[N,L]=(0,a.useState)("idle"),[A,F]=(0,a.useState)(0),[D,P]=(0,a.useState)(null),[B,O]=(0,a.useState)(null),[H,U]=(0,a.useState)(null),_=(0,a.useRef)(null),V=(0,a.useRef)(null),q=`${r??0}:${j}`,K="idle"!==N,Z=(0,a.useMemo)(()=>new Map($.map(e=>[(0,es.A0)(e.filePath),e])),[$]),J=(0,a.useMemo)(()=>{let t=new Set,r=(0,es.A0)(e).replace(/\/$/,"");for(let e of $){let n=(0,es.gX)((0,es.A0)(e.filePath));for(;(n===r||n.startsWith(`${r}/`))&&(t.add(n),n!==r);){let e=(0,es.gX)(n);if(e===n)break;n=e}}return t},[e,$]),Y=(0,a.useCallback)((e,t)=>{b(r=>{let n=new Set(r);return t?n.add(e):n.delete(e),n})},[]),G=(0,a.useCallback)(t=>{let r=t.uploaded??[];O({uploaded:r,skipped:t.skipped??[],errors:t.errors??[]}),r.length>0&&(W(new Set(r.map(t=>(0,es.e_)(e,t)))),M(e=>e+1))},[e]),X=(0,a.useCallback)(async(t,r)=>{U(null),P(null),F(0),L("uploading");try{let{status:n,data:a}=await new Promise((n,a)=>{let i=new FormData;t.forEach(e=>i.append("files",e,e.name));let s=new XMLHttpRequest;s.open("POST",`/api/files/${(0,es.HG)(e)}?type=upload&conflict=${r}`),s.upload.onprogress=e=>{e.lengthComputable&&e.total>0&&F(Math.round(e.loaded/e.total*100))},s.onerror=()=>a(Error((0,d.Tl)("fileExplorer.uploadNetworkError"))),s.onabort=()=>a(Error((0,d.Tl)("fileExplorer.uploadCancelled"))),s.onload=()=>{let e={};try{e=JSON.parse(s.responseText)}catch{s.responseText&&(e.error=s.responseText)}n({status:s.status,data:e})},s.send(i)});if(409===n&&a.conflicts?.length)return void U({files:t,conflicts:a.conflicts,nonReplaceable:a.nonReplaceable??[]});if(n<200||n>=300)throw Error(a.error??(0,d.Tl)("fileExplorer.uploadFailed",{status:n}));F(100),G(a)}catch(e){P(e instanceof Error?e.message:String(e))}finally{L("idle")}},[G,e]),Q=(0,a.useCallback)(async t=>{if(0!==t.length&&!K){O(null),W(new Set),U(null),P(null),F(0),L("checking");try{let r=await fetch(`/api/files/${(0,es.HG)(e)}?type=upload-check`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({fileNames:t.map(e=>e.name)})}),n=await r.json().catch(()=>({}));if(!r.ok)throw Error(n.error??(0,d.Tl)("fileExplorer.uploadCheckFailed",{status:r.status}));if(n.conflicts?.length)return void U({files:t,conflicts:n.conflicts,nonReplaceable:n.nonReplaceable??[]});await X(t,"error")}catch(e){P(e instanceof Error?e.message:String(e))}finally{L("idle")}}},[e,X,K]),ee=(0,a.useCallback)(e=>{let t=Array.from(e.target.files??[]);e.target.value="",Q(t)},[Q]);(0,a.useImperativeHandle)(c,()=>({openUploadPicker(){K||V.current?.click()}}),[K]),(0,a.useEffect)(()=>{o?.(K)},[o,K]),(0,a.useEffect)(()=>()=>o?.(!1),[o]);let et=(0,a.useRef)(l);et.current=l,(0,a.useEffect)(()=>{let t=_.current!==e;_.current=e,t&&(b(new Set),W(new Set),O(null),U(null),P(null)),g(t),v(null);let r=!1;return eo(e).then(e=>{r||m(e)}).catch(e=>{r||v(e instanceof Error?e.message:String(e))}).finally(()=>{r||g(!1),et.current?.()}),()=>{r=!0}},[e,r,j]),(0,a.useEffect)(()=>{let t=!1;return el(e).then(e=>{t||z(e.isGitRepository?e.files:[])}).catch(()=>{t||z([])}),()=>{t=!0}},[e,r,j]);let er=K||null!==H||null!==D||null!==B,en=(0,a.useCallback)(()=>{B&&0!==B.uploaded.length&&s?.(B.uploaded.map(t=>(0,es.qP)((0,es.e_)(e,t),e)))},[e,s,B]);return(0,n.jsxs)("div",{style:{minHeight:"100%"},children:[(0,n.jsx)("input",{ref:V,type:"file",multiple:!0,hidden:!0,onChange:ee}),er&&(0,n.jsxs)("div",{style:{padding:"var(--space-3) var(--space-4)",borderBottom:"1px solid var(--border)"},children:[K&&(0,n.jsxs)("div",{role:"status","aria-live":"polite","aria-label":"checking"===N?u("fileExplorer.checkingFiles"):u("fileExplorer.uploadingPercent",{percent:A}),children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"var(--space-4)",minHeight:14,color:"var(--text-muted)"},children:["checking"===N?(0,n.jsx)(w.A,{size:13,strokeWidth:2.2,style:{animation:"spin var(--dur-spin) linear infinite"},"aria-hidden":"true"}):(0,n.jsx)(S.A,{size:13,strokeWidth:2,"aria-hidden":"true"}),"uploading"===N&&(0,n.jsxs)("span",{style:{fontSize:"var(--text-xs)"},children:[A,"%"]})]}),"uploading"===N&&(0,n.jsx)("div",{style:{height:3,marginTop:"var(--space-2)",overflow:"hidden",borderRadius:2,background:"var(--border)"},children:(0,n.jsx)("div",{style:{width:`${A}%`,height:"100%",background:"var(--accent)",transition:"width var(--dur-fast) var(--ease-out-warm)"}})})]}),H&&(0,n.jsxs)("div",{role:"alert",style:{padding:7,border:"1px solid color-mix(in srgb, var(--status-warning) 55%, var(--border))",borderRadius:4,background:"color-mix(in srgb, var(--status-warning) 9%, var(--bg-panel))"},children:[(0,n.jsx)("div",{style:{fontSize:"var(--text-sm)",color:"var(--text)",lineHeight:1.35,overflowWrap:"anywhere"},children:p("fileExplorer.filesAlreadyExist",H.conflicts.length,{files:H.conflicts.join(", ")})}),H.nonReplaceable.length>0&&(0,n.jsx)("div",{style:{marginTop:3,fontSize:"var(--text-xs)",color:"var(--status-warning)",lineHeight:1.35,overflowWrap:"anywhere"},children:u("fileExplorer.cannotReplace",{files:H.nonReplaceable.join(", ")})}),(0,n.jsxs)("div",{style:{display:"flex",gap:5,marginTop:7},children:[(0,n.jsx)("button",{type:"button",onClick:()=>void X(H.files,"overwrite"),style:{height:24,minHeight:24,padding:"0 var(--space-4)",border:"1px solid var(--status-error)",borderRadius:"var(--radius-control)",background:"transparent",color:"var(--status-error)",cursor:"pointer",fontSize:"var(--text-sm)"},children:u("fileExplorer.replace")}),(0,n.jsx)("button",{type:"button",onClick:()=>void X(H.files,"skip"),style:{height:24,minHeight:24,padding:"0 var(--space-4)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)",color:"var(--text)",cursor:"pointer",fontSize:"var(--text-sm)"},children:u("fileExplorer.skipExisting")}),(0,n.jsx)("button",{type:"button",onClick:()=>U(null),style:{height:24,minHeight:24,padding:"0 var(--space-4)",border:"none",borderRadius:"var(--radius-control)",background:"transparent",color:"var(--text-muted)",cursor:"pointer",fontSize:"var(--text-sm)"},children:u("fileExplorer.cancel")})]})]}),D&&(0,n.jsxs)("div",{role:"alert",style:{display:"flex",alignItems:"flex-start",gap:"var(--space-3)",fontSize:"var(--text-sm)",lineHeight:1.35,color:"var(--status-error)"},children:[(0,n.jsx)("span",{style:{minWidth:0,flex:1,overflowWrap:"anywhere"},children:D}),(0,n.jsx)(eu,{onClick:()=>P(null),title:u("fileExplorer.dismissError")})]}),B&&(0,n.jsxs)("div",{"aria-live":"polite",children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-4)",minHeight:22,fontSize:"var(--text-sm)"},children:[(0,n.jsxs)("div",{style:{minWidth:0,flex:1,display:"flex",alignItems:"center",gap:"var(--space-4)"},children:[B.uploaded.length>0&&(0,n.jsxs)("span",{title:u("fileExplorer.uploadedCount",{count:B.uploaded.length}),"aria-label":u("fileExplorer.uploadedCount",{count:B.uploaded.length}),style:{display:"flex",alignItems:"center",gap:3,color:"var(--status-success)"},children:[(0,n.jsx)(C.A,{size:13,strokeWidth:2.4,"aria-hidden":"true"}),(0,n.jsx)("span",{children:B.uploaded.length})]}),B.skipped.length>0&&(0,n.jsxs)("span",{title:u("fileExplorer.skippedCount",{count:B.skipped.length}),"aria-label":u("fileExplorer.skippedCount",{count:B.skipped.length}),style:{display:"flex",alignItems:"center",gap:3,color:"var(--text-dim)"},children:[(0,n.jsx)(T.A,{size:13,strokeWidth:2,"aria-hidden":"true"}),(0,n.jsx)("span",{children:B.skipped.length})]}),B.errors.length>0&&(0,n.jsxs)("span",{title:u("fileExplorer.failedCount",{count:B.errors.length}),"aria-label":u("fileExplorer.failedCount",{count:B.errors.length}),style:{display:"flex",alignItems:"center",gap:3,color:"var(--status-error)"},children:[(0,n.jsx)(I.A,{size:13,strokeWidth:2,"aria-hidden":"true"}),(0,n.jsx)("span",{children:B.errors.length})]})]}),B.uploaded.length>0&&s&&(0,n.jsx)(ei.m_,{content:u(1===B.uploaded.length?"fileExplorer.addUploadedFile":"fileExplorer.addAllUploadedFiles"),children:(0,n.jsxs)("button",{type:"button",onClick:en,"aria-label":u(1===B.uploaded.length?"fileExplorer.addUploadedFile":"fileExplorer.addAllUploadedFiles"),style:{height:22,padding:"0 7px",display:"flex",alignItems:"center",justifyContent:"center",gap:"var(--space-2)",flexShrink:0,border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)",color:"var(--accent)",cursor:"pointer",fontSize:"var(--text-sm)",fontWeight:600,whiteSpace:"nowrap",transition:"background var(--dur-fast) var(--ease-out-warm), border-color var(--dur-fast) var(--ease-out-warm)"},children:[(0,n.jsx)(k.A,{size:11,strokeWidth:2.2,"aria-hidden":"true"}),u("fileExplorer.mention")]})}),(0,n.jsx)(eu,{onClick:()=>O(null),title:u("fileExplorer.dismissUploadResults")})]}),B.errors.map(e=>(0,n.jsxs)("div",{title:e.error,style:{display:"flex",alignItems:"center",gap:"var(--space-2)",marginTop:3,minWidth:0,fontSize:"var(--text-xs)",color:"var(--status-error)"},children:[(0,n.jsx)(E.A,{size:11,strokeWidth:2,style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]},e.name))]})]}),(0,n.jsxs)("div",{role:"tree","aria-label":u("sessionSidebar.explorer"),style:{padding:"var(--space-1) var(--space-2)"},children:[f?(0,n.jsx)("div",{style:{padding:"var(--space-4) var(--space-5)",fontSize:"var(--text-sm)",color:"var(--text-dim)"},children:u("fileExplorer.loadingFiles")}):x?(0,n.jsx)("div",{style:{padding:"var(--space-4) var(--space-5)",fontSize:"var(--text-sm)",color:"var(--status-error)"},children:x}):h.map(r=>(0,n.jsx)(ep,{node:r,depth:0,cwd:e,onOpenFile:t,onAtMention:i,expandedPaths:y,onToggleExpanded:Y,refreshToken:q,highlightedPaths:R,gitStatusByPath:Z,changedDirectoryPaths:J},r.fullPath)),!f&&!x&&0===h.length&&(0,n.jsx)("div",{style:{padding:"var(--space-4) var(--space-5)",fontSize:"var(--text-sm)",color:"var(--text-dim)"},children:u("fileExplorer.noFilesFound")})]})]})});var em=r(51087);function ef(){let[e,t]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{if(!window.matchMedia)return;let e=window.matchMedia("(prefers-reduced-motion: reduce)");t(e.matches);let r=e=>t(e.matches);return e.addEventListener("change",r),()=>e.removeEventListener("change",r)},[]),e}let eg="omp-web:last-open-by-project";function ex(){try{return window.localStorage}catch{return null}}function ev(e){try{let t=e.getItem(eg);if(!t)return{};let r=JSON.parse(t);if(!r||"object"!=typeof r||Array.isArray(r))return{};return Object.fromEntries(Object.entries(r).filter(([,e])=>"string"==typeof e&&e.length>0))}catch{return{}}}function ey(e){return e.projectKey??e.projectRoot??e.cwd}let eb=/^[a-zA-Z]:[\\/]/,ew=/^\/\//;function ek(e){let t=e.replace(/\\/g,"/"),r=eb.test(t)||ew.test(t);return t=t.replace(/\/{2,}/g,"/").replace(/\/+$/,""),r?t.toLowerCase():t}var ej=r(23637),eS=r(82749),eC=r(2125),eT=r(65377),eI=r(80846),eE=r(66763),eM=r(44236),eR=r(59680),eW=r(12363),e$=r(65738),ez=r(15480);function eN(e){let t=/^[a-zA-Z]:/.test(e)||e.includes("\\"),r=e.replace(/[\/]+$/,"").replace(/\\/g,"/");return t?r.toLowerCase():r}let eL="omp-web:unread-session-ids",eA="ompgui:expanded-projects",eF=new Set;function eD(e,t){return t&&e.startsWith(t)?"~"+e.slice(t.length):e}function eP(e){let t=e.replace(/[\\/]+$/,""),r=Math.max(t.lastIndexOf("/"),t.lastIndexOf("\\"));return r>=0?t.slice(r+1):t}function eB({text:e}){return(0,n.jsx)("span",{className:"sidebar-path-label",children:(0,n.jsx)("span",{className:"sidebar-path-label-text",children:e})})}function eO({label:e,title:t,onClick:r,active:a=!1,disabled:i=!1,children:s}){return(0,n.jsx)("button",{type:"button","aria-label":e,title:t??e,onClick:r,disabled:i,"aria-pressed":a,className:"sidebar-icon-button",children:s})}function eH({anchor:e,open:t,onClose:r,placement:i="below",align:s="end",minWidth:o=136,className:d,style:c,children:u}){let p=(0,a.useRef)(null),[h,m]=(0,a.useState)(null),f=(0,a.useCallback)((e,t)=>{let r;if(!e||!t)return;let n=e.getBoundingClientRect(),a=t.offsetWidth,o=t.offsetHeight;"above"===i?(r=n.top-o-5)<8&&(r=Math.min(n.bottom+5,window.innerHeight-o-8)):(r=n.bottom+5)+o>window.innerHeight-8&&(r=n.top-o-5),r<8&&(r=8),m({top:r,left:"start"===s?Math.max(8,Math.min(n.left,window.innerWidth-a-8)):Math.max(8,Math.min(n.right-a,window.innerWidth-a-8))})},[i,s]);return((0,a.useLayoutEffect)(()=>{t&&f(e.current,p.current)},[t,f,e]),(0,a.useEffect)(()=>{if(!t)return;let r=()=>f(e.current,p.current);return window.addEventListener("scroll",r,!0),window.addEventListener("resize",r),()=>{window.removeEventListener("scroll",r,!0),window.removeEventListener("resize",r)}},[t,f,e]),(0,a.useEffect)(()=>{if(!t)return;let n=setTimeout(()=>{let e=p.current?.querySelector("button:not([disabled])");e?.focus()},0),a=t=>{let n=t.target;e.current?.contains(n)||p.current?.contains(n)||r()},i=t=>{if("Escape"===t.key)t.stopPropagation(),t.preventDefault(),r(),e.current?.focus();else if("ArrowDown"===t.key||"ArrowUp"===t.key){t.preventDefault();let e=Array.from(p.current?.querySelectorAll("button:not([disabled])")??[]);if(0===e.length)return;let r=e.indexOf(document.activeElement),n="ArrowDown"===t.key?(r+1)%e.length:(r-1+e.length)%e.length;e[n]?.focus()}};return document.addEventListener("mousedown",a),document.addEventListener("touchstart",a),document.addEventListener("keydown",i),()=>{clearTimeout(n),document.removeEventListener("mousedown",a),document.removeEventListener("touchstart",a),document.removeEventListener("keydown",i)}},[t,r,e]),!t||"u"<typeof document)?null:(0,l.createPortal)((0,n.jsx)("div",{ref:p,role:"menu",className:`sidebar-portal-menu${d?` ${d}`:""}`,style:{top:h?h.top:-9999,left:h?h.left:-9999,visibility:h?"visible":"hidden",minWidth:o,...c},children:u}),document.body)}function eU(e){let t=new Map;for(let r of e)t.set(r.id,{session:r,children:[]});let r=new Map;for(let t of e)t.parentSessionId&&r.set(t.id,t.parentSessionId);let n=[];for(let e of t.values()){let a=function(e){let n=r.get(e),a=new Set;for(;n&&!a.has(n);){if(a.add(n),t.has(n))return n;n=r.get(n)}return null}(e.session.id);a?t.get(a).children.push(e):n.push(e)}let a=e=>{e.sort((e,t)=>t.session.modified.localeCompare(e.session.modified)),e.forEach(e=>a(e.children))};return a(n),n}let e_="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*";function eV(){let[e,t]=(0,a.useState)(!1),[r,i]=(0,a.useState)(!1),s=(0,a.useRef)(null),o=(0,a.useRef)(null),l=ef(),d=function(e,t,r){let[n,i]=(0,a.useState)(e),s=(0,a.useRef)(null),o=(0,a.useRef)(0);return(0,a.useEffect)(()=>{if(!t||r)return void i(e);o.current=0;let n=4*e.length,a=()=>{o.current+=1;let t=Math.floor(o.current/n*e.length);i(e.split("").map((e,r)=>" "===e?" ":r<t?e:e_[Math.floor(Math.random()*e_.length)]).join("")),o.current<n?s.current=requestAnimationFrame(a):i(e)};return s.current=requestAnimationFrame(a),()=>{s.current&&cancelAnimationFrame(s.current)}},[e,t,r]),n}(e?"v0.5.1":"ompgui",r,l),c=(0,a.useCallback)(e=>{t(e),s.current&&clearTimeout(s.current),l||(i(!0),s.current=setTimeout(()=>i(!1),(e?6:8)*4*(1e3/60)+100))},[l]),u=(0,a.useCallback)(()=>{o.current&&clearTimeout(o.current);let t=!e;c(t),t&&(o.current=setTimeout(()=>c(!1),3e3))},[e,c]);return(0,a.useEffect)(()=>()=>{o.current&&clearTimeout(o.current),s.current&&clearTimeout(s.current)},[]),(0,n.jsx)("button",{onClick:u,className:"sidebar-brand",title:e?"Show ompgui name":"Show ompgui version",children:r||e?(0,n.jsx)("span",{className:"sidebar-brand-dynamic","data-version":e?"true":"false",children:d}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"sidebar-brand-accent",children:"omp"}),(0,n.jsx)("span",{className:"sidebar-brand-name",children:"gui"})]})})}function eq({selectedSessionId:e,optimisticSession:t,onSelectSession:r,onNewSession:i,initialSessionId:s,skipInitialProjectSelection:o,onInitialRestoreDone:l,refreshKey:u,onSessionDeleted:p,selectedCwd:h,onCwdChange:m,onOpenFile:f,explorerRefreshKey:x,onExplorerRefresh:y,explorerRefreshing:b,onExplorerRefreshDone:w,onAtMention:k,onAtMentions:j,onOpenSettings:T,onOpenUsage:I,updateAvailable:E}){let{t:M}=(0,d.s9)(),[R,W]=(0,a.useState)([]),[$,z]=(0,a.useState)(!0),[N,L]=(0,a.useState)(null),[A,F]=(0,a.useState)(null),[D,P]=(0,a.useState)(""),[B,O]=(0,a.useState)([]),[H,U]=(0,a.useState)(null),[_,V]=(0,a.useState)(!1),[q,K]=(0,a.useState)(!1),[Z,J]=(0,a.useState)(null),[Y,G]=(0,a.useState)(()=>(function(){try{let e=window.localStorage.getItem(eA)||window.localStorage.getItem("omp-web:expanded-projects");if(!e)return null;let t=JSON.parse(e);if(Array.isArray(t))return new Set(t.filter(e=>"string"==typeof e&&e.length>0));return null}catch{return null}})()),[X,Q]=(0,a.useState)(null),[ee,et]=(0,a.useState)({}),[er,en]=(0,a.useState)(!1),[ea,es]=(0,a.useState)(!1),[eo,el]=(0,a.useState)(""),[ed,ec]=(0,a.useState)(null),[eu,ep]=(0,a.useState)(!1),[ef,eb]=(0,a.useState)(null),ew=(0,a.useRef)(null),eR=(0,a.useRef)(null),[eW,e$]=(0,a.useState)(!0),[ez,eB]=(0,a.useState)(0),[eH,e_]=(0,a.useState)(!1),[eY,eG]=(0,a.useState)(!1),[eX,eQ]=(0,a.useState)(()=>new Set),[e0,e1]=(0,a.useState)(()=>(function(){try{let e=window.localStorage.getItem(eL);if(!e)return new Set;let t=JSON.parse(e);if(Array.isArray(t))return new Set(t.filter(e=>"string"==typeof e));return new Set}catch{return new Set}})()),e2=(0,a.useRef)(new Set),[e5,e4]=(0,a.useState)(()=>Date.now()),[e3,e6]=(0,a.useState)(!1),[e8,e9]=(0,a.useState)(""),[e7,te]=(0,a.useState)(!1),tt=(0,a.useRef)(null),tr=(0,a.useRef)(!1),tn=(0,a.useRef)(null),ta=(0,a.useRef)(null),ti=(0,a.useRef)(null),ts=(0,a.useRef)(null),to=(0,a.useCallback)(async(e=!1)=>{ts.current?.abort();let t=new AbortController;ts.current=t;try{e&&z(!0);let r={};ti.current&&(r["If-None-Match"]=ti.current);let n=await fetch("/api/sessions",{headers:r,signal:t.signal});if(304===n.status)return;if(!n.ok)throw Error(`HTTP ${n.status}`);let a=n.headers.get("ETag");a&&(ti.current=a);let i=await n.json();W(i.sessions),tr.current||eQ(new Set(i.runningSessionIds??[]));let s=new Set(i.sessions.map(e=>e.id));e1(e=>{if(0===e.size)return e;let t=new Set([...e].filter(e=>s.has(e)));return t.size===e.size?e:t}),L(null),e||(eG(!0),tn.current&&clearTimeout(tn.current),tn.current=setTimeout(()=>eG(!1),2e3))}catch(e){if(e?.name==="AbortError")return;L((0,d.Tl)("sessionSidebar.loadFailed",{detail:e instanceof Error?e.message:String(e)}))}finally{e&&z(!1)}},[]),tl=(0,a.useRef)(!1);(0,a.useEffect)(()=>{let e=!tl.current;tl.current=!0,to(e)},[to,u]);let td=(0,a.useCallback)(async()=>{try{let e=await fetch("/api/projects");if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();O(t.projects??[]),U(null),th.current=!0}catch(e){U((0,d.Tl)("projects.loadFailed",{detail:e instanceof Error?e.message:String(e)}))}},[]);(0,a.useEffect)(()=>{td()},[td,u]),(0,a.useEffect)(()=>{let e=setInterval(()=>e4(Date.now()),6e4);return()=>clearInterval(e)},[]),(0,a.useEffect)(()=>{if(null!==Y)try{window.localStorage.setItem(eA,JSON.stringify([...Y]))}catch{}},[Y]),(0,a.useEffect)(()=>{try{0===e0.size?window.localStorage.removeItem(eL):window.localStorage.setItem(eL,JSON.stringify([...e0]))}catch{}},[e0]);let tc=(0,a.useRef)(null),tu=(0,a.useCallback)(()=>{tc.current||(tc.current=setTimeout(()=>{tc.current=null,to(!1)},300))},[to]);(0,a.useEffect)(()=>{let e=new EventSource("/api/agent/running/events");return e.onmessage=e=>{try{let t=JSON.parse(e.data);"running"===t.type&&(tr.current=!0,eQ(new Set(t.runningSessionIds??[])),t.refreshSessionList&&tu())}catch{}},()=>{tc.current&&clearTimeout(tc.current),e.close()}},[to,tu]),(0,a.useEffect)(()=>{let t=e2.current,r=[...t].filter(t=>!eX.has(t)&&t!==e),n=[...eX].filter(e=>!t.has(e));(r.length>0||n.length>0)&&e1(e=>{let t=new Set(e);return n.forEach(e=>t.delete(e)),r.forEach(e=>t.add(e)),t}),(r.length>0||n.length>0)&&to(!1),e2.current=eX},[eX,e,to]),(0,a.useEffect)(()=>{e&&e1(t=>{if(!t.has(e))return t;let r=new Set(t);return r.delete(e),r})},[e]),(0,a.useEffect)(()=>{void 0!==x&&eB(e=>e+1)},[x]),(0,a.useEffect)(()=>{fetch("/api/home").then(e=>e.json()).then(e=>{e.home&&P(e.home)}).catch(()=>{})},[]);let tp=(0,a.useRef)(!1),th=(0,a.useRef)(!1),tm=(0,a.useCallback)(e=>{if(!e)return null;for(let t of Object.values(ee))if(t.worktrees.some(t=>eN(t.path)===eN(e)))return t.projectRoot;let t=B.find(t=>ek(t.path)===ek(e));if(t)return t.path;let r=ek(e),n=R.find(e=>ek(e.cwd)===r);return n?.projectRoot??e},[ee,R,B]),tf=(0,a.useCallback)(e=>{G(t=>{if(t?.has(e))return t;let r=new Set(t??[]);return r.add(e),r})},[]),tg=(0,a.useCallback)(e=>{G(t=>{if(!t?.has(e))return t;let r=new Set(t);return r.delete(e),r})},[]),tx=(0,a.useCallback)(e=>{G(t=>{let r=new Set(t??[]);return r.has(e)?r.delete(e):r.add(e),r})},[]),tv=(0,a.useCallback)(e=>{tD.current=!1,F(e),tf(e)},[tf]),ty=(0,a.useRef)(null);(0,a.useEffect)(()=>{ty.current!==A&&(ty.current=A,m?.(A,tm(A)))},[A,m,tm]);let tb=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(h&&h!==tb.current){tb.current=h,F(h);let e=tm(h);e&&tf(e)}},[h,tm,tf]);let[tw,tk]=(0,a.useState)(0);(0,a.useLayoutEffect)(()=>{if(!A)return;let e=!1;return fetch(`/api/worktrees?cwd=${encodeURIComponent(A)}`).then(e=>e.json()).then(t=>{if(e||t.error||!t.projectRoot)return;let r=t.projectRoot,n={forCwd:A,projectRoot:r,isGit:t.isGit??!1,isTopLevel:t.isTopLevel??!1,worktrees:t.worktrees??[]};et(e=>{let t=eN(r),a=e[t];if(a&&eN(a.projectRoot)!==t){let r={...e};return delete r[eN(a.projectRoot)],r[t]=n,r}return{...e,[t]:n}})}).catch(()=>{}),()=>{e=!0}},[A,tw,u]);let tj=(()=>{if(!t)return null;if(t.projectRoot)return t.projectRoot;if(t.projectKey)return t.projectKey;let e=t.cwd??"";if(!e)return null;let r=B.find(t=>ek(t.path)===ek(e));return r?r.path:e})(),tS=(0,a.useRef)(new Map),tC=(0,a.useMemo)(()=>{let e=R;if(t&&!e.some(e=>e.id===t.id)){let r=tj??t.cwd,n=r?ek(r):void 0;e=[...e,{...t,projectRoot:r??t.cwd,...n?{projectKey:n}:{}}]}let r=new Set(e.map(e=>e.id)),n=[];for(let e of eX){if(r.has(e))continue;let t=tS.current.get(e);t||(t=new Date().toISOString(),tS.current.set(e,t));let a=tj??A??"",i=a?ek(a):void 0;n.push({id:e,path:"",cwd:A??"",name:void 0,created:t,modified:t,messageCount:1,firstMessage:"",projectRoot:a,...i?{projectKey:i}:{}})}if(tS.current.size>n.length)for(let e of[...tS.current.keys()])(!eX.has(e)||r.has(e))&&tS.current.delete(e);return n.length?[...e,...n]:e},[R,t,tj,eX,A]),tT=(0,a.useMemo)(()=>{let e=B,t=!!tj&&e.some(e=>ek(e.path)===ek(tj));tj&&!t&&(e=[...e,{path:tj}]);let r=new Set(e.map(e=>ek(e.path)));for(let t of eX){if(R.some(e=>e.id===t))continue;let n=tj??A??"";n&&!r.has(ek(n))&&(e=[...e,{path:n}],r.add(ek(n)))}return e},[tj,B,eX,R,A]),tI=(0,a.useMemo)(()=>tm(A),[tm,A]),tE=!!(t||[...eX].some(e=>!R.some(t=>t.id===e))),tM=(0,a.useMemo)(()=>[...tT].sort((e,t)=>{let r=void 0!==e.addedAt,n=void 0!==t.addedAt;if(r!==n)return r?-1:1;if(r&&n){let r=t.addedAt.localeCompare(e.addedAt);if(0!==r)return r}return e.path.localeCompare(t.path)}),[tT]),tR=(0,a.useRef)(null),tW=(0,a.useMemo)(()=>{if(tE&&tR.current){let e=tR.current,t=new Set(e.map(e=>ek(e.path))),r=[...e];for(let e of tM)t.has(ek(e.path))||r.push(e);return r}return tR.current=tM,tM},[tM,tE]),t$=(0,a.useMemo)(()=>(function(e,t){let r=new Map,n=new Map;for(let t of e){let e=[];r.set(t.path,e),n.set(ek(t.path),e)}for(let e of t){let t=ey(e);if(!t)continue;let a=n.get(ek(e.projectKey??t))??r.get(t);a&&a.push(e)}return r})(tW,tC),[tW,tC]),tz=(0,a.useMemo)(()=>(function(e,t,r){let n=new Set(t),a=new Set(r),i=new Map;for(let t of e){let e=ey(t);if(!e)continue;let r=ek(t.projectKey??e),s=i.get(r)??{running:0,unread:0};n.has(t.id)&&(s.running+=1),a.has(t.id)&&(s.unread+=1),i.set(r,s)}return i})(tC,eX,e0),[tC,eX,e0]),tN=(0,a.useDeferredValue)(e8),tL=e3||e7||tN.trim().length>0,tA=(0,a.useMemo)(()=>{let e=tN.trim().toLowerCase(),t=[];for(let r of tW){let n=t$.get(r.path)??[];if(e7&&(n=n.filter(e=>eX.has(e.id))),e){let t=eP(r.path).toLowerCase();if(0===(n=n.filter(t=>(t.name??"").toLowerCase().includes(e)||t.firstMessage.toLowerCase().includes(e))).length&&!t.includes(e))continue}0===n.length&&(e7||e)||t.push({project:r,sessions:n})}return t},[tW,t$,e7,tN,eX]),tF=(0,a.useMemo)(()=>{let e=new Map;for(let{project:t,sessions:r}of tA)e.set(t.path,eU(r));return e},[tA]);(0,a.useEffect)(()=>{if(null===Y||!th.current)return;let e=new Set(tW.map(e=>e.path)),t=[...Y].filter(t=>!e.has(t));0!==t.length&&G(e=>{if(!e)return e;let r=new Set(e);return t.forEach(e=>r.delete(e)),r})},[Y,tW]);let tD=(0,a.useRef)(!1),tP=(0,a.useRef)(0),tB=(0,a.useRef)(null);(0,a.useEffect)(()=>()=>{tB.current&&(clearTimeout(tB.current),tB.current=null)},[]),(0,a.useEffect)(()=>{if(o)return;if(s&&!tp.current){if(0===R.length)return;let e=R.find(e=>e.id===s);if(e){tP.current=0,tp.current=!0,F(e.cwd),tf(ey(e)),r(e,!0);return}if(tP.current<8){tP.current+=1,tB.current&&(clearTimeout(tB.current),tB.current=null),tB.current=setTimeout(()=>{tB.current=null,to(!1)},1e3);return}tP.current=0,tp.current=!0,l?.()}if(null!==A&&!tD.current)return;let e=tW[0];e&&(F(e.path),tf(e.path),tD.current=0===R.length)},[R,A,s,o,r,l,tW,tf,to]);let tO=(0,a.useRef)(!1);(0,a.useEffect)(()=>{tO.current||tI&&(tO.current=!0,null===Y&&tf(tI))},[tI,Y,tf]);let tH=(0,a.useCallback)(async e=>{let t=(e??"").trim();if(t&&!q){K(!0),J(null);try{let e=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:t})}),r=await e.json().catch(()=>({}));if(!e.ok||r.error||!r.project)return void J((0,c.K)({...r,error:r.error??`HTTP ${e.status}`}));await td(),F(r.project.path),tf(r.project.path),V(!1)}catch(e){J(e instanceof Error?e.message:String(e))}finally{K(!1)}}},[q,td,tf]),tU=(0,a.useCallback)(async e=>{if(!X){Q(e);try{let t=await fetch("/api/projects",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e})}),r=await t.json().catch(()=>({}));if(!t.ok||!r.success)return void em.oR.error((0,c.K)({...r,error:r.error??`HTTP ${t.status}`}));if(null!==tI&&ek(tI)===ek(e)){let t=tW.find(t=>t.path!==e);F(t?t.path:null)}tg(e),await td()}finally{Q(null)}}},[X,tI,tW,tg,td]),t_=(0,a.useCallback)(async()=>{let e=eo.trim(),t=tI?ee[eN(tI)]:void 0;if(!e||eu||!t)return;let r=t.projectRoot;ep(!0),ec(null);try{let t=await fetch("/api/worktrees",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:r,branch:e})}),n=await t.json().catch(()=>({}));if(!t.ok||n.error||!n.path)return void ec((0,c.K)({...n,error:n.error??`HTTP ${t.status}`}));let a=n.path;es(!1),el(""),en(!1),et(t=>{let n=eN(r),i=t[n];return i?{...t,[n]:{...i,forCwd:a,worktrees:[...i.worktrees,{path:a,branch:e,isMain:!1}]}}:t}),F(a),tk(e=>e+1)}catch(e){ec(e instanceof Error?e.message:String(e))}finally{ep(!1)}},[eo,eu,tI,ee]),tV=(0,a.useCallback)(async(e,t)=>{let r=tI?ee[eN(tI)]:void 0;if(!r||eu)return;let n=r.projectRoot;ep(!0),ec(null);try{let r=await fetch("/api/worktrees",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:n,path:e,force:t})}),a=await r.json().catch(()=>({}));if(!r.ok){if(a.dirty&&!t)return void eb(e);ec((0,c.K)({...a,error:a.error??`HTTP ${r.status}`}));return}eb(null),null!==A&&ek(A)===ek(e)&&F(n),tk(e=>e+1)}catch(e){ec(e instanceof Error?e.message:String(e))}finally{ep(!1)}},[tI,ee,eu,A]),tq=(0,a.useCallback)(()=>{en(!1),es(!1),el(""),ec(null),eb(null)},[]),tK=(0,a.useCallback)(e=>{tD.current=!1,e.cwd&&F(e.cwd),tf(ey(e)),r(e)},[r,tf]),tZ=(0,a.useCallback)(()=>{if(!A)return;let e="function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${Math.random().toString(36).slice(2)}`;i?.(e,A)},[A,i]),[tJ,tY]=(0,a.useState)(!1),tG=(0,a.useRef)(null),tX=(0,a.useCallback)(async e=>{if(e&&!tJ){tY(!0);try{let t=await e.text(),r=await fetch("/api/sessions/import",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({fileName:e.name,content:t})}),n=await r.json().catch(()=>({}));if(!r.ok||!n.success)return void em.oR.error(n.error??`HTTP ${r.status}`);em.oR.success(M("sessionSidebar.imported")),to(!1),td()}catch(e){em.oR.error(e instanceof Error?e.message:String(e))}finally{tY(!1)}}},[tJ,to,td,M]),tQ=Y??eF,t0=tI?ee[eN(tI)]:void 0,t1=(0,a.useCallback)(e=>{let t=ee[eN(e)];if(!t||!t.isGit||!t.isTopLevel)return null;let r=t.worktrees.find(e=>eN(e.path)===eN(A??""))??t.worktrees.find(e=>e.isMain);return r?r.branch??eD(r.path,D):null},[ee,A,D]),t2=!!(t0?.isGit&&t0.isTopLevel&&A&&null!==tI&&ek(tI)===ek(t0.projectRoot)),t5=(0,a.useCallback)(()=>{en(e=>!e)},[]),t4=(0,a.useCallback)(e=>{let t=R.find(t=>t.id===e);t&&function(e,t=ex()){if(t)try{let r=ev(t);if(!(e in r))return;delete r[e],0===Object.keys(r).length?t.removeItem(eg):t.setItem(eg,JSON.stringify(r))}catch{}}(ey(t)),p?.(e),to()},[R,p,to]);(0,a.useEffect)(()=>{let t=R.find(t=>t.id===e);t&&function(e,t,r=ex()){if(r)try{let n=ev(r);n[e]=t,r.setItem(eg,JSON.stringify(n))}catch{}}(ey(t),t.id)},[R,e]);let t3=t2&&t0?(0,n.jsx)(eJ,{worktreeState:t0,selectedCwd:A,homeDir:D,wtDropdownOpen:er,wtNewOpen:ea,setWtNewOpen:es,wtNewBranch:eo,setWtNewBranch:el,wtError:ed,setWtError:ec,wtBusy:eu,wtConfirmRemove:ef,setWtConfirmRemove:eb,onSelectWorktree:e=>{F(e),en(!1),ec(null)},onCreateWorktree:t_,onRemoveWorktree:(e,t)=>void tV(e,t),anchorRef:ew,newInputRef:eR,onClose:tq}):null;return(0,n.jsxs)("div",{className:"sidebar-shell",children:[_&&(0,n.jsx)(g,{busy:q,error:Z,onCancel:()=>{V(!1),J(null)},onSelect:e=>void tH(e)}),(0,n.jsxs)("div",{className:"sidebar-header",children:[(0,n.jsxs)("div",{className:"sidebar-header-row",children:[(0,n.jsx)(eV,{}),(0,n.jsxs)("div",{className:"sidebar-header-actions",children:[(0,n.jsx)(ei.m_,{content:M("sessionSidebar.importTitle"),side:"bottom",children:(0,n.jsx)(eO,{label:M("sessionSidebar.import"),onClick:()=>tG.current?.click(),disabled:tJ,children:(0,n.jsx)(ej.A,{size:14,strokeWidth:1.9,"aria-hidden":"true"})})}),(0,n.jsx)(ei.m_,{content:M("sessionSidebar.refresh"),side:"bottom",children:(0,n.jsx)(eO,{label:M("sessionSidebar.refresh"),active:eY,onClick:()=>{to(!1),td()},children:eY?(0,n.jsx)(C.A,{size:14,strokeWidth:2.2,"aria-hidden":"true"}):(0,n.jsx)(eS.A,{size:14,strokeWidth:1.9,"aria-hidden":"true"})})})]})]}),(0,n.jsx)("input",{ref:tG,type:"file",accept:".jsonl,.json,application/json,application/jsonl",className:"sidebar-import-input",onChange:e=>{let t=e.target.files?.[0]??null;e.target.value="",tX(t)}}),(0,n.jsxs)("button",{onClick:tZ,disabled:!A,className:"sidebar-new-session",title:A?M("sessionSidebar.newSessionIn",{cwd:A}):M("sessionSidebar.selectProjectFirst"),children:[(0,n.jsx)(eC.A,{size:15,strokeWidth:2.2,className:"sidebar-new-session-icon","aria-hidden":"true"}),(0,n.jsx)("span",{children:M("sessionSidebar.new")})]})]}),(0,n.jsxs)("div",{className:"sidebar-workspaces-header",children:[(0,n.jsx)("span",{className:"sidebar-section-label",children:M("projects.heading")}),(0,n.jsx)(eO,{label:M("sessionSidebar.search"),title:M("sessionSidebar.searchTitle"),active:e3,onClick:()=>{let e=!e3;e6(e),e?setTimeout(()=>tt.current?.focus(),0):e9("")},children:(0,n.jsx)(eT.A,{size:15,strokeWidth:1.9,"aria-hidden":"true"})}),(0,n.jsx)(eO,{label:M("sessionSidebar.filterRunning"),title:M("sessionSidebar.filterRunningTitle"),active:e7,onClick:()=>te(e=>!e),children:(0,n.jsx)(eI.A,{size:15,strokeWidth:1.9,"aria-hidden":"true"})}),(0,n.jsx)(eO,{label:M("projects.add"),title:M("projects.addTitle"),onClick:()=>{V(!0),J(null)},children:(0,n.jsx)(eC.A,{size:15,strokeWidth:1.9,"aria-hidden":"true"})})]}),e3&&(0,n.jsx)("div",{className:"sidebar-search-wrap",children:(0,n.jsx)("input",{ref:tt,value:e8,onChange:e=>e9(e.target.value),onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),e6(!1),e9(""))},placeholder:M("sessionSidebar.searchPlaceholder"),"aria-label":M("sessionSidebar.search"),className:"sidebar-search-input"})}),(0,n.jsxs)("div",{className:"sidebar-workspaces-list",style:{flex:eW&&(h||A)?"1 1 0":"1 1 auto"},children:[$&&(0,n.jsx)("div",{className:"sidebar-state-message sidebar-state-message-muted",children:M("sessionSidebar.loading")}),H&&(0,n.jsx)("div",{className:"sidebar-state-message sidebar-state-message-error",children:H}),N&&(0,n.jsx)("div",{className:"sidebar-state-message sidebar-state-message-error",children:N}),!$&&!H&&!N&&0===tW.length&&(0,n.jsx)("div",{className:"sidebar-state-message sidebar-state-message-muted sidebar-state-message-empty",children:M("projects.noProjects")}),!$&&!H&&!N&&tW.length>0&&0===tA.length&&(0,n.jsx)("div",{className:"sidebar-state-message sidebar-state-message-dim sidebar-state-message-no-matches",children:M("sessionSidebar.noMatches")}),tA.map(({project:t,sessions:r})=>{let a=tF.get(t.path)??eU(r),i=null!==tI&&ek(tI)===ek(t.path),s=t1(t.path);return(0,n.jsx)(eZ,{project:t,isActive:i,isExpanded:tQ.has(t.path),activity:tz.get(ek(t.path)),tree:a,hiddenCount:tL?0:Math.max(0,a.length-eK),selectedSessionId:e,runningSessionIds:eX,unreadSessionIds:e0,relativeTimeNow:e5,onActivate:tv,onToggleExpand:tx,onRemoveProject:tU,removeBusy:X===t.path,onSelectSession:tK,onRenamed:to,onSessionDeleted:t4,activeWorktreeSwitcher:i?t3:null,worktreeBranch:s,worktreeToggleRef:i&&s?ew:void 0,worktreeOpen:!!i&&er,onToggleWorktrees:i?t5:void 0,homeDir:D},t.path)})]}),(h||A)&&(0,n.jsxs)("div",{className:"sidebar-explorer",style:{flex:eW?"1 1 0":"0 0 auto"},children:[(0,n.jsxs)("div",{className:"sidebar-explorer-header",children:[(0,n.jsxs)("button",{onClick:()=>e$(e=>!e),className:"sidebar-explorer-toggle","aria-expanded":eW,children:[(0,n.jsx)(v.A,{size:12,strokeWidth:1.8,className:"sidebar-explorer-chevron","data-open":eW?"true":"false","aria-hidden":"true"}),M("sessionSidebar.explorer")]}),(0,n.jsx)("div",{className:"sidebar-explorer-actions",inert:!eW||void 0,"data-open":eW?"true":"false",children:(0,n.jsx)(ei.m_,{content:M("sessionSidebar.uploadFilesTitle"),side:"top",children:(0,n.jsx)("button",{onClick:()=>ta.current?.openUploadPicker(),disabled:eH,title:M("sessionSidebar.uploadFilesTitle"),"aria-label":M("sessionSidebar.uploadFiles"),className:"sidebar-explorer-icon-button sidebar-explorer-upload",children:(0,n.jsx)(S.A,{size:13,strokeWidth:2,"aria-hidden":"true"})})})}),(0,n.jsx)(ei.m_,{content:M("sessionSidebar.refreshExplorer"),side:"top",children:(0,n.jsx)("button",{"aria-label":M("sessionSidebar.refreshExplorer"),onClick:()=>{y?y():eB(e=>e+1)},title:M("sessionSidebar.refreshExplorer"),className:"sidebar-explorer-icon-button sidebar-explorer-refresh","data-refreshing":b?"true":"false",children:b?(0,n.jsx)(eS.A,{size:13,strokeWidth:2,"aria-hidden":"true",className:"icon-spin"}):(0,n.jsx)(eS.A,{size:13,strokeWidth:2,"aria-hidden":"true"})})})]}),(0,n.jsx)("div",{className:"accordion-flow sidebar-explorer-flow "+(eW?"is-open":""),inert:!eW||void 0,style:{flex:eW?"1 1 auto":"0 0 0px"},children:(0,n.jsx)("div",{className:"accordion-flow-inner sidebar-explorer-flow-inner",children:(0,n.jsx)(eh,{ref:ta,cwd:A??h,onOpenFile:f??(()=>{}),refreshKey:ez,onAtMention:k,onAtMentions:j,onUploadBusyChange:e_,onRefreshDone:w})})})]}),(0,n.jsxs)("div",{className:"sidebar-footer",children:[(0,n.jsxs)("button",{className:"sidebar-settings-row",onClick:T,title:M("settingsConfig.title"),"aria-label":M("settingsConfig.title"),children:[(0,n.jsxs)("span",{className:"sidebar-footer-icon",children:[(0,n.jsx)(eE.A,{size:14,strokeWidth:2,"aria-hidden":"true"}),E&&(0,n.jsx)("span",{"aria-label":"Update available",role:"status",className:"sidebar-update-dot"})]}),(0,n.jsx)("span",{className:"sidebar-footer-label",children:M("settingsConfig.title")}),(0,n.jsx)(v.A,{size:13,strokeWidth:2,className:"sidebar-footer-chevron","aria-hidden":"true"})]}),(0,n.jsx)("span",{className:"sidebar-footer-divider","aria-hidden":"true"}),(0,n.jsxs)("button",{className:"sidebar-settings-row",onClick:I,title:M("usageConfig.title"),"aria-label":M("usageConfig.title"),children:[(0,n.jsx)("span",{className:"sidebar-footer-icon",children:(0,n.jsx)(eM.A,{size:14,strokeWidth:2,"aria-hidden":"true"})}),(0,n.jsx)("span",{className:"sidebar-footer-label",children:M("usageConfig.title")}),(0,n.jsx)(v.A,{size:13,strokeWidth:2,className:"sidebar-footer-chevron","aria-hidden":"true"})]})]})]})}let eK=5;function eZ({project:e,isActive:t,isExpanded:r,activity:i,tree:s,hiddenCount:o,selectedSessionId:l,runningSessionIds:c,unreadSessionIds:u,relativeTimeNow:p,onActivate:h,onToggleExpand:m,onRemoveProject:f,removeBusy:g,onSelectSession:x,onRenamed:y,onSessionDeleted:w,activeWorktreeSwitcher:k,worktreeBranch:j,worktreeToggleRef:S,worktreeOpen:C,onToggleWorktrees:T}){let{t:I}=(0,d.s9)(),[E,M]=(0,a.useState)(!1),[R,W]=(0,a.useState)(!1),[$,z]=(0,a.useState)(!1),[N,L]=(0,a.useState)(!1),A=(0,a.useRef)(null),F=eP(e.path),D=!!(i&&(i.running>0||i.unread>0)),P=o>0&&!$?s.slice(0,eK):s,B=E||R||N;return(0,n.jsxs)("section",{className:"sidebar-project","data-active":t?"true":"false",children:[(0,n.jsxs)("div",{className:"sidebar-project-header",onMouseEnter:()=>M(!0),onMouseLeave:()=>M(!1),onFocus:()=>W(!0),onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||W(!1)},onKeyDown:e=>{"Escape"===e.key&&N&&(e.stopPropagation(),L(!1))},children:[(0,n.jsxs)("button",{className:"sidebar-project-identity",onClick:()=>h(e.path),"aria-current":t?"true":void 0,title:e.path,"data-active":t?"true":"false",children:[(0,n.jsx)(b.A,{size:15,strokeWidth:1.8,className:"sidebar-project-folder-icon","aria-hidden":"true"}),(0,n.jsx)("span",{className:"sidebar-project-label",children:F})]}),j&&S&&(0,n.jsxs)("button",{type:"button",ref:S,onClick:T,"aria-expanded":C,"aria-haspopup":"menu",title:I("sessionSidebar.switchWorktreeTo",{path:j}),className:"sidebar-project-worktree-toggle","data-open":C?"true":"false",children:[(0,n.jsx)("span",{"aria-hidden":"true",className:"sidebar-project-worktree-dot",children:"\xb7"}),(0,n.jsx)("span",{className:"sidebar-project-worktree-label",children:j})]}),(0,n.jsx)("div",{className:"sidebar-project-spacer"}),D&&(0,n.jsx)("span",{"aria-label":I("projects.activity",{running:i?.running??0,unread:i?.unread??0}),title:I("projects.activity",{running:i?.running??0,unread:i?.unread??0}),className:"sidebar-project-activity",role:"status","aria-live":"polite","data-running":(i?.running??0)>0?"true":"false",children:(0,n.jsx)("span",{"aria-hidden":"true",className:"sidebar-project-activity-dot"})}),(0,n.jsxs)("div",{className:"sidebar-project-action-slot",style:{visibility:B?"visible":"hidden"},children:[(0,n.jsx)("button",{type:"button",ref:A,className:"sidebar-project-action",onClick:()=>L(e=>!e),disabled:g,"aria-label":I("commandPalette.actions"),title:I("commandPalette.actions"),"aria-expanded":N,"aria-haspopup":"menu","data-open":N?"true":"false",children:(0,n.jsx)(eR.A,{size:13,strokeWidth:2,"aria-hidden":"true"})}),(0,n.jsx)(eH,{anchor:A,open:N,onClose:()=>L(!1),placement:"below",minWidth:136,children:(0,n.jsx)("button",{type:"button",role:"menuitem",className:"sidebar-menu-item sidebar-menu-item-danger sidebar-project-remove-item",disabled:g,onClick:()=>{L(!1),f(e.path)},children:I("projects.remove",{name:F})})})]}),(0,n.jsx)("button",{className:"sidebar-project-toggle",onClick:()=>m(e.path),"aria-label":I(r?"projects.collapseProject":"projects.expandProject",{name:F}),"aria-expanded":r,title:I(r?"projects.collapseProjectTitle":"projects.expandProjectTitle",{path:e.path}),"data-expanded":r?"true":"false",children:(0,n.jsx)(v.A,{size:13,strokeWidth:1.8,className:"sidebar-project-toggle-icon","aria-hidden":"true"})})]}),t&&k,r&&(0,n.jsx)("div",{className:"sidebar-project-sessions",children:0===P.length?(0,n.jsx)("div",{className:"sidebar-project-empty",children:I("projects.emptyProject")}):(0,n.jsxs)(n.Fragment,{children:[P.map(e=>(0,n.jsx)(eY,{node:e,selectedSessionId:l,runningSessionIds:c,unreadSessionIds:u,relativeTimeNow:p,onSelectSession:x,onRenamed:y,onSessionDeleted:w,depth:0},e.session.id)),o>0&&(0,n.jsxs)("button",{onClick:()=>z(e=>!e),"aria-expanded":$,className:"sidebar-show-more",children:[(0,n.jsx)(eW.A,{size:11,strokeWidth:1.8,className:"sidebar-show-more-icon","data-expanded":$?"true":"false","aria-hidden":"true"}),$?I("projects.showLess"):I("projects.showMoreSessions",{count:o})]})]})})]})}function eJ({worktreeState:e,selectedCwd:t,homeDir:r,wtDropdownOpen:a,wtNewOpen:i,setWtNewOpen:s,wtNewBranch:o,setWtNewBranch:l,wtError:c,setWtError:u,wtBusy:p,wtConfirmRemove:h,setWtConfirmRemove:m,onSelectWorktree:f,onCreateWorktree:g,onRemoveWorktree:x,anchorRef:v,newInputRef:y,onClose:b}){let{t:w}=(0,d.s9)();return(0,n.jsxs)(eH,{anchor:v,open:a,onClose:b,placement:"below",align:"start",minWidth:240,className:"sidebar-worktree-menu",children:[(0,n.jsx)("div",{className:"sidebar-worktree-list",children:e.worktrees.map(a=>{let i=a.path===t||a.isMain&&!e.worktrees.some(e=>e.path===t);return h===a.path?(0,n.jsxs)("div",{className:"sidebar-worktree-confirm-row",children:[(0,n.jsx)("span",{className:"sidebar-worktree-confirm-text",children:w("sessionSidebar.uncommittedForceRemove")}),(0,n.jsx)("button",{onClick:()=>x(a.path,!0),disabled:p,className:"sidebar-worktree-force-button",children:w("sessionSidebar.force")}),(0,n.jsx)("button",{onClick:()=>m(null),className:"sidebar-worktree-cancel-button",children:w("sessionSidebar.cancel")})]},a.path):(0,n.jsxs)("div",{className:"wt-row sidebar-worktree-row",children:[(0,n.jsxs)("button",{onClick:()=>f(a.path),"aria-pressed":i,title:a.path,className:"sidebar-worktree-select",children:[i?(0,n.jsx)(C.A,{size:10,strokeWidth:2,className:"sidebar-worktree-check","aria-hidden":"true"}):(0,n.jsx)("span",{className:"sidebar-worktree-check-spacer"}),(0,n.jsx)(eB,{text:a.branch??eD(a.path,r)}),a.isMain&&(0,n.jsx)("span",{className:"sidebar-worktree-main-badge",children:w("sessionSidebar.mainBadge")})]}),!a.isMain&&(0,n.jsx)("button",{onClick:()=>x(a.path,!1),disabled:p,title:w("sessionSidebar.removeWorktreeTitle",{path:a.path}),className:"sidebar-worktree-remove",children:(0,n.jsx)(e$.A,{size:12,strokeWidth:2,"aria-hidden":"true"})})]},a.path)})}),i?(0,n.jsxs)("div",{className:"sidebar-worktree-form",children:[(0,n.jsx)("input",{ref:y,value:o,onChange:e=>{l(e.target.value),u(null)},onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),g()),"Escape"===e.key&&(s(!1),l(""),u(null))},placeholder:w("sessionSidebar.branchNamePlaceholder"),className:"sidebar-worktree-input"}),(0,n.jsxs)("div",{className:"sidebar-worktree-form-actions",children:[(0,n.jsx)("button",{onClick:g,disabled:p||!o.trim(),className:"sidebar-worktree-create",children:p?w("sessionSidebar.creating"):w("sessionSidebar.create")}),(0,n.jsx)("button",{onClick:()=>{s(!1),l(""),u(null)},className:"sidebar-worktree-form-cancel",children:w("sessionSidebar.cancel")})]})]}):(0,n.jsxs)("button",{onClick:e=>{e.stopPropagation(),s(!0),u(null),setTimeout(()=>y.current?.focus(),0)},title:w("sessionSidebar.newWorktreeTitle"),className:"sidebar-worktree-new",children:[(0,n.jsx)(eC.A,{size:12,strokeWidth:1.8,className:"sidebar-worktree-new-icon","aria-hidden":"true"}),(0,n.jsx)("span",{children:w("sessionSidebar.newWorktree")})]}),c&&(0,n.jsx)("div",{className:"sidebar-worktree-error",children:c})]})}let eY=(0,a.memo)(function e({node:t,selectedSessionId:r,runningSessionIds:i,unreadSessionIds:s,relativeTimeNow:o,onSelectSession:l,onRenamed:d,onSessionDeleted:c,depth:u}){let[p,h]=(0,a.useState)(!1),m=t.children.length>0,f=t.session.id,g=f===r,x=i.has(f),v=s.has(f),y=(0,a.useCallback)(()=>{l(t.session)},[l,t.session]),b=(0,a.useCallback)(e=>{c?.(e)},[c]),w=(0,a.useCallback)(()=>{h(e=>!e)},[]);return(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{className:"sidebar-session-tree-row",children:[u>0&&(0,n.jsx)("div",{className:"sidebar-session-indent-line",style:{left:14*u+22}}),(0,n.jsx)(eQ,{session:t.session,isSelected:g,isRunning:x,isUnread:v,relativeTimeNow:o,onClick:y,onRenamed:d,onDeleted:b,depth:u,hasChildren:m,collapsed:p,onToggleCollapse:w})]}),m&&!p&&(0,n.jsx)("div",{children:t.children.map(t=>(0,n.jsx)(e,{node:t,selectedSessionId:r,runningSessionIds:i,unreadSessionIds:s,relativeTimeNow:o,onSelectSession:l,onRenamed:d,onSessionDeleted:c,depth:u+1},t.session.id))})]})},(e,t)=>{if(e.node!==t.node)return!1;if(e.selectedSessionId!==t.selectedSessionId){let r=e.node.session.id;if(r===e.selectedSessionId!=(r===t.selectedSessionId))return!1}if(e.runningSessionIds!==t.runningSessionIds){let r=e.node.session.id;if(e.runningSessionIds.has(r)!==t.runningSessionIds.has(r))return!1}if(e.unreadSessionIds!==t.unreadSessionIds){let r=e.node.session.id;if(e.unreadSessionIds.has(r)!==t.unreadSessionIds.has(r))return!1}return e.relativeTimeNow===t.relativeTimeNow&&e.onSelectSession===t.onSelectSession&&e.onRenamed===t.onRenamed&&e.onSessionDeleted===t.onSessionDeleted});function eG({size:e=14}){let{t}=(0,d.s9)(),r=ef();return(0,n.jsx)("span",{title:t("sessionSidebar.agentRunning"),"aria-label":t("sessionSidebar.agentRunningAria"),className:"sidebar-session-indicator",style:{width:e,height:e},children:(0,n.jsx)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",className:"sidebar-session-indicator-svg",children:(0,n.jsxs)("g",{children:[(0,n.jsx)("path",{d:"M21 12a9 9 0 1 1-3.8-7.4",stroke:"currentColor",strokeWidth:"2.8",strokeLinecap:"round"}),!r&&(0,n.jsx)("animateTransform",{attributeName:"transform",type:"rotate",from:"0 12 12",to:"360 12 12",dur:"0.9s",repeatCount:"indefinite"})]})})})}function eX({size:e=14}){let{t}=(0,d.s9)(),r=ef();return(0,n.jsx)("span",{title:t("sessionSidebar.newActivity"),"aria-label":t("sessionSidebar.newSessionActivity"),className:"sidebar-session-indicator",style:{width:e,height:e},children:(0,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none","aria-hidden":"true",className:"sidebar-session-indicator-svg",children:[(0,n.jsx)("circle",{cx:"7",cy:"7",r:"2.5",fill:"currentColor"}),!r&&(0,n.jsxs)("circle",{cx:"7",cy:"7",r:"3",stroke:"currentColor",strokeWidth:"1.4",opacity:"0.32",children:[(0,n.jsx)("animate",{attributeName:"r",values:"3;6;3",dur:"1.6s",repeatCount:"indefinite"}),(0,n.jsx)("animate",{attributeName:"opacity",values:"0.32;0;0.32",dur:"1.6s",repeatCount:"indefinite"})]})]})})}let eQ=(0,a.memo)(function({session:e,isSelected:t,isRunning:r,isUnread:i,onClick:s,onRenamed:o,onDeleted:l,depth:c=0,hasChildren:u=!1,collapsed:p=!1,relativeTimeNow:h,onToggleCollapse:m}){let{t:f,locale:g}=(0,d.s9)(),[x,v]=(0,a.useState)(!1),[y,b]=(0,a.useState)(!1),[w,k]=(0,a.useState)(!1),[j,S]=(0,a.useState)(""),C=(0,a.useRef)(!1),[T,I]=(0,a.useState)(!1),[E,M]=(0,a.useState)(!1),[R,W]=(0,a.useState)(!1),[$,z]=(0,a.useState)(!1),N=(0,a.useRef)(null),L=(0,a.useRef)(null),A=(0,a.useRef)(null),F=e.name||e.firstMessage.slice(0,50)||e.id.slice(0,12),D=function(e,t,r){let n=new Date(e).getTime();if(!Number.isFinite(n))return null;let a=Math.max(0,Math.floor((r-n)/6e4)),i=new Intl.RelativeTimeFormat(t,{numeric:"auto",style:"narrow"});if(a<1)return i.format(0,"minute");if(a<60)return i.format(-a,"minute");let s=Math.floor(a/60);return s<24?i.format(-s,"hour"):i.format(-Math.floor(s/24),"day")}(e.modified,g,h),P=T||E,B=(0,a.useCallback)(t=>{t.stopPropagation(),S(e.name??""),k(!0),setTimeout(()=>N.current?.select(),0)},[e.name]),O=(0,a.useCallback)(async()=>{if(C.current){C.current=!1;return}let t=j.trim();if(k(!1),t!==(e.name??""))try{if(!(await fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t})})).ok)throw Error("Session rename failed");o?.()}catch{}},[j,e.id,e.name,o]),H=(0,a.useCallback)(async()=>{I(!1),z(!0);try{if(!(await fetch(`/api/sessions/${encodeURIComponent(e.id)}/archive`,{method:"POST"})).ok)throw Error("Session archive failed");l?.(e.id)}catch{z(!1),em.oR.error((0,d.Tl)("sessionSidebar.archiveFailed"))}},[e.id,l]),U=(0,a.useCallback)(async()=>{M(!1),z(!0);try{if(!(await fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"DELETE"})).ok)throw Error("Session deletion failed");l?.(e.id)}catch{z(!1),em.oR.error((0,d.Tl)("sessionSidebar.deleteFailed"))}},[e.id,l]),_=(0,a.useCallback)(()=>{I(!1),M(!1),W(!1),requestAnimationFrame(()=>L.current?.focus())},[]);return(0,n.jsxs)("div",{onClick:T||E||w?void 0:s,onMouseEnter:()=>v(!0),onMouseLeave:()=>v(!1),onFocus:()=>b(!0),onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||b(!1)},onKeyDown:e=>{(T||E||R)&&"Escape"===e.key&&(e.stopPropagation(),_())},className:"sidebar-session-row","data-selected":t?"true":"false","data-confirming":P?"true":"false","data-deleting":$?"true":"false","data-interactive":P||w?"false":"true",style:{height:P?34:30,paddingLeft:30+14*c},children:[(t||P)&&(0,n.jsx)("span",{"aria-hidden":"true",className:"sidebar-session-selection-indicator",style:{left:20+14*c}}),P?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"sidebar-session-confirm-text",children:f(T?"sessionSidebar.archiveConfirm":"sessionSidebar.deleteConfirm",{title:F.length>22?`${F.slice(0,22)}…`:F})}),(0,n.jsx)("button",{className:"sidebar-session-confirm-button",onClick:e=>{e.stopPropagation(),T?H():U()},children:f(T?"sessionSidebar.archive":"sessionSidebar.delete")}),(0,n.jsx)("button",{className:"sidebar-session-cancel-button",onClick:e=>{e.stopPropagation(),_()},autoFocus:!0,children:f("sessionSidebar.cancel")})]}):w?(0,n.jsx)("input",{ref:N,autoFocus:!0,"aria-label":f("sessionSidebar.rename"),value:j,onChange:e=>S(e.target.value),onBlur:O,onKeyDown:e=>{"Enter"===e.key&&O(),"Escape"===e.key&&(e.preventDefault(),C.current=!0,k(!1))},className:"sidebar-session-rename-input"}):(0,n.jsxs)(n.Fragment,{children:[c>0&&(0,n.jsx)(ez.A,{size:11,strokeWidth:2,className:"sidebar-session-branch-icon","aria-hidden":"true"}),(0,n.jsx)("button",{ref:L,type:"button",className:"session-item-button sidebar-session-content","aria-current":t?"true":void 0,onKeyDown:e=>{"Delete"===e.key&&(e.preventDefault(),M(!0))},children:(0,n.jsx)("span",{title:F,className:"sidebar-session-title",children:F})}),e.worktreeBranch&&(0,n.jsxs)("span",{title:f("sessionSidebar.worktreeTitle",{path:e.cwd}),className:"sidebar-session-worktree",children:[(0,n.jsx)(ez.A,{size:10,strokeWidth:2.4,"aria-hidden":"true"}),(0,n.jsx)("span",{className:"sidebar-session-worktree-label",children:e.worktreeBranch})]}),r&&(0,n.jsx)(eG,{size:12}),!r&&i&&(0,n.jsx)(eX,{size:11}),D&&(0,n.jsx)("span",{title:new Date(e.modified).toLocaleString(g),className:"sidebar-session-time","data-selected":t?"true":"false",children:D}),u&&(0,n.jsx)("button",{className:"session-item-icon-button sidebar-session-collapse",onClick:e=>{e.stopPropagation(),m?.()},title:f(p?"sessionSidebar.expandForks":"sessionSidebar.collapseForks"),"aria-label":f(p?"sessionSidebar.expandForks":"sessionSidebar.collapseForks"),"aria-expanded":!p,"data-collapsed":p?"true":"false",children:(0,n.jsx)(eW.A,{size:12,strokeWidth:1.8,"aria-hidden":"true"})}),(0,n.jsxs)("div",{className:"sidebar-session-action-slot",style:{visibility:x||y||R?"visible":"hidden"},children:[(0,n.jsx)("button",{type:"button",ref:A,className:"session-item-icon-button sidebar-session-action",onClick:e=>{e.stopPropagation(),W(e=>!e)},title:"Session actions","aria-label":"Session actions","aria-expanded":R,"aria-haspopup":"menu","data-open":R?"true":"false",children:(0,n.jsx)(eR.A,{size:14,strokeWidth:2,"aria-hidden":"true"})}),(0,n.jsxs)(eH,{anchor:A,open:R,onClose:()=>W(!1),placement:"above",minWidth:128,children:[(0,n.jsx)("button",{type:"button",role:"menuitem",className:"sidebar-menu-item",onClick:e=>{e.stopPropagation(),W(!1),I(!0)},disabled:u,title:f(u?"sessionSidebar.archiveLeafOnly":"sessionSidebar.archive"),children:f("sessionSidebar.archive")}),(0,n.jsx)("button",{type:"button",role:"menuitem",className:"sidebar-menu-item",onClick:e=>{B(e),W(!1)},children:f("sessionSidebar.rename")}),(0,n.jsx)("button",{type:"button",role:"menuitem",className:"sidebar-menu-item sidebar-menu-item-danger",onClick:e=>{e.stopPropagation(),W(!1),M(!0)},children:f("sessionSidebar.delete")})]})]})]})]})});function e0(e,t={}){return"thinking"===e.type&&!e.deferred&&!t.isStreaming&&""===e.thinking.trim()}function e1(e,t={}){return(e.content??[]).filter(e=>!e0(e,t))}function e2(e,t={}){let r=e1(e,t),n=r.findLastIndex(e=>"text"!==e.type&&"image"!==e.type);return -1===n?{answerBlocks:r,processBlocks:[]}:{answerBlocks:r.slice(n+1),processBlocks:r.slice(0,n+1)}}function e5(e){return e.filter(e=>"toolCall"===e.type).length}var e4=r(99314),e3=r(66958),e6=r(72788),e8=r(5045),e9=r(32316),e7=r(19870),te=r(68925),tt=r(94309);function tr({src:e,alt:t,...r}){let{t:i}=(0,d.s9)(),[s,o]=(0,a.useState)(!1),[c,u]=(0,a.useState)(null);(0,a.useEffect)(()=>{if("string"==typeof e||void 0===e)return void u(null);let t=URL.createObjectURL(e);return u(t),()=>URL.revokeObjectURL(t)},[e]);let p="string"==typeof e?e:c??"";return p?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button",className:"image-clickable",onClick:e=>{e.preventDefault(),e.stopPropagation(),o(!0)},"aria-label":t?i("imagePreview.openWithAlt",{alt:t}):i("imagePreview.open"),title:t?i("imagePreview.openWithAlt",{alt:t}):i("imagePreview.open"),children:(0,n.jsx)("img",{src:p,alt:t??"",loading:"lazy",...r})}),s&&(0,l.createPortal)((0,n.jsx)(tn,{src:p,alt:t??"",onClose:()=>o(!1)}),document.body)]}):null}function tn({src:e,alt:t,onClose:r}){let i=(0,a.useRef)(null),[s,o]=(0,a.useState)(1),{t:l}=(0,d.s9)();return(0,a.useEffect)(()=>{let e=i.current;if(!e)return;let t=document.body.style.overflow;return document.body.style.overflow="hidden",e.showModal(),()=>{document.body.style.overflow=t,e.open&&e.close()}},[]),(0,n.jsx)("dialog",{ref:i,className:"image-lightbox-dialog","aria-label":l("imagePreview.viewerLabel"),onClick:e=>{e.stopPropagation()},onCancel:e=>{e.preventDefault(),r()},onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),r())},children:(0,n.jsxs)("div",{className:"image-lightbox-layout",children:[(0,n.jsxs)("div",{className:"image-lightbox-toolbar",children:[(0,n.jsx)("span",{className:"image-lightbox-title",children:t||l("imagePreview.imageTitle")}),(0,n.jsxs)("div",{className:"image-lightbox-actions",children:[(0,n.jsxs)("div",{className:"image-lightbox-stepper",children:[(0,n.jsx)("button",{type:"button",onClick:()=>o(e=>Math.max(.25,e-.25)),disabled:s<=.25,title:l("imagePreview.zoomOut"),"aria-label":l("imagePreview.zoomOut"),children:(0,n.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M5 12h14"})})}),(0,n.jsxs)("span",{className:"image-lightbox-zoom-value",children:[Math.round(100*s),"%"]}),(0,n.jsx)("button",{type:"button",onClick:()=>o(e=>Math.min(8,e+.25)),disabled:s>=8,title:l("imagePreview.zoomIn"),"aria-label":l("imagePreview.zoomIn"),children:(0,n.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M12 5v14M5 12h14"})})})]}),(0,n.jsx)("button",{type:"button",className:"image-lightbox-icon-button",onClick:()=>o(1),title:l("imagePreview.resetZoom"),"aria-label":l("imagePreview.resetZoom"),children:(0,n.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M8 3H3v5M16 3h5v5M8 21H3v-5M16 21h5v-5"})})}),(0,n.jsx)("button",{type:"button",className:"image-lightbox-icon-button",onClick:r,title:l("imagePreview.close"),"aria-label":l("imagePreview.close"),children:(0,n.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M6 6l12 12M18 6 6 18"})})})]})]}),(0,n.jsx)("div",{className:"image-lightbox-viewport",onClick:e=>{e.target===e.currentTarget&&r()},children:(0,n.jsx)("img",{src:e,alt:t,className:"image-lightbox-img",style:{transform:`scale(${s})`}})})]})})}function ta({children:e,className:t,isStreaming:r,cwd:i,onOpenFile:s}){let o=(0,a.useMemo)(()=>(0,te.Ep)(e),[e]),{remarkPlugins:l,rehypePlugins:d}=(0,te.T6)(o),c=(0,a.useMemo)(()=>{let e=({src:e,alt:t,...r})=>{delete r.node;let a="string"==typeof e?(0,e7.V)(e,i):null,s=a?`/api/files/${(0,es.HG)(a)}?type=read`:e;return(0,n.jsx)(tr,{src:s,alt:t??"",loading:"lazy",...r})},t=e=>(0,a.isValidElement)(e),o=r=>{let n=[],i=[];for(let s of a.Children.toArray(r)){if(!t(s)){n.push(s);continue}if(s.type===e){i.push(s);continue}let r=o(s.props.children);0===r.imageParts.length?n.push(s):0===r.textParts.length?i.push(s):(n.push((0,a.cloneElement)(s,void 0,r.textParts)),i.push(...r.imageParts))}return{textParts:n,imageParts:i}},l=e=>e.some(e=>"string"==typeof e?e.trim().length>0:"number"==typeof e||!!t(e)&&l(a.Children.toArray(e.props.children)));return{code:(0,tt.Q)({isStreaming:r,inlineClassName:"markdown-inline-code"}),pre:({children:e})=>(0,n.jsx)(n.Fragment,{children:e}),a({href:e,children:t,...r}){delete r.node;let{textParts:a,imageParts:d}=o(t);if(d.length>0&&!l(a))return(0,n.jsx)(n.Fragment,{children:t});let c=s?(0,e7.V)(e,i):null;if(c&&s){let t=(0,n.jsx)("a",{href:e,...r,onClick:e=>{if(e.defaultPrevented||0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;let t=e.currentTarget.getAttribute("target");t&&"_self"!==t||(e.preventDefault(),s(c))},children:a});return d.length>0?(0,n.jsxs)(n.Fragment,{children:[t,d]}):t}let u=(0,n.jsx)("a",{href:e,...r,target:"_blank",rel:"noopener noreferrer",children:a});return d.length>0?(0,n.jsxs)(n.Fragment,{children:[u,d]}):u},img:e,table:({children:e})=>(0,n.jsx)("div",{className:"markdown-table-wrap",children:(0,n.jsx)("table",{children:e})})}},[r,i,s]);return(0,n.jsx)("div",{className:["markdown-body",t].filter(Boolean).join(" "),children:(0,n.jsx)(e9.oz,{remarkPlugins:l,rehypePlugins:d,components:c,children:o})})}let ti=/<(read-files|modified-files)>\s*([\s\S]*?)\s*<\/\1>/g,ts=/(?:\r?\n){2,}((?:[ \t]*<(?:read-files|modified-files)>[ \t]*\r?\n[\s\S]*?\r?\n[ \t]*<\/(?:read-files|modified-files)>[ \t]*(?:\r?\n)?)+)\s*$/;var to=r(82490),tl=r(6014),td=r(64962),tc=r(79762),tu=r(67401);function tp({status:e,live:t}){let r={size:12,strokeWidth:2,"aria-hidden":!0};return"completed"===e?(0,n.jsx)(td.A,{...r,color:"var(--accent)"}):"failed"===e?(0,n.jsx)(E.A,{...r,color:"var(--accent-strong)"}):"aborted"===e?(0,n.jsx)(tc.A,{...r,color:"var(--text-dim)"}):!0===t?(0,n.jsx)("span",{"aria-hidden":!0,className:"live-status-dot live-pulse inline-block h-1.5 w-1.5 shrink-0 rounded-full bg-accent"}):!1===t?(0,n.jsx)(tu.A,{...r,color:"var(--text-dim)"}):(0,n.jsx)("span",{"aria-hidden":!0,className:"live-status-dot inline-block h-1.5 w-1.5 shrink-0 rounded-full bg-accent"})}function th(e){if(null==e||!Number.isFinite(e)||e<=0)return null;if(e>=1e3){let t=(e/1e3).toFixed(e>=1e4?0:1);return t.endsWith(".0")?`${t.slice(0,-2)}k`:`${t}k`}return String(e)}function tm(e){return null==e||!Number.isFinite(e)||e<=0?null:`$${e.toFixed(e<.01?4:2)}`}function tf(e){return null==e||!Number.isFinite(e)||e<=0||e<1e3?null:e<6e4?`${Math.floor(e/1e3)}s`:`${Math.round(e/6e4)}m`}function tg(e){if(!e)return null;let t=e.lastIndexOf("/");return(t>=0?e.slice(t+1):e).replace(/:.*$/,"")||null}let tx=new Map,tv={display:"flex",alignItems:"center",gap:"var(--space-2)",padding:"calc(var(--space-3) / 2) var(--space-4)",height:"calc(var(--control-height-sm) - var(--space-2))",minHeight:"calc(var(--control-height-sm) - var(--space-2))",background:"none",border:"none",borderRadius:"calc(var(--radius-control) - var(--space-3) / 2)",cursor:"pointer",fontSize:"var(--text-sm)",fontWeight:400,whiteSpace:"nowrap",transition:"color var(--dur-fast) var(--ease-out-warm)"};function ty({children:e,className:t,...r}){let{t:i}=(0,d.s9)(),[s,o]=(0,a.useState)(!1);if(e.length<=1e5)return(0,n.jsx)(ta,{className:t,...r,children:e});if(!s){var l;return(0,n.jsx)("button",{type:"button",onClick:()=>o(!0),style:{display:"block",width:"100%",margin:"var(--space-2) 0",padding:"calc(var(--space-4) - var(--space-1) / 2) var(--control-padding-inline)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:"var(--text-md)",textAlign:"left"},children:i("messageView.largeMessageReveal",{size:(l=e.length)>=1e6?`${(l/1e6).toFixed(1)} MB`:`${Math.round(l/1e3)} KB`})})}return(0,n.jsx)("div",{className:t,style:{maxHeight:420,overflow:"auto",fontSize:"var(--text-md)",lineHeight:1.5},children:(0,n.jsx)("pre",{style:{margin:0,padding:"var(--space-4) var(--control-padding-inline)",whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"var(--font-mono)",color:"var(--text-muted)"},children:e})})}function tb(e,t){if(!e)return null;let r=new Date(e),n=new Date,a=r.getFullYear()===n.getFullYear()&&r.getMonth()===n.getMonth()&&r.getDate()===n.getDate(),i=r.toLocaleTimeString(t,{hour:"2-digit",minute:"2-digit"});if(a)return i;let s=r.toLocaleDateString(t,{month:"short",day:"numeric",year:r.getFullYear()!==n.getFullYear()?"numeric":void 0});return`${s} ${i}`}let tw=(0,a.memo)(function({message:e,isStreaming:t,toolResults:r,modelNames:a,cwd:i,onOpenFile:s,entryId:o,onFork:l,forking:d,onNavigate:c,prevAssistantEntryId:u,onEditContent:p,showTimestamp:h,prevTimestamp:m,sessionId:f,toolCallsDefaultCollapsed:g=!0}){return"user"===e.role?(0,n.jsx)(tk,{message:e,cwd:i,onOpenFile:s,entryId:o,onFork:l,forking:d,onNavigate:c,prevAssistantEntryId:u,onEditContent:p}):"assistant"===e.role?(0,n.jsx)(tj,{message:e,isStreaming:t,toolResults:r,modelNames:a,cwd:i,onOpenFile:s,showTimestamp:h,prevTimestamp:m,sessionId:f,entryId:o,toolCallsDefaultCollapsed:g}):"toolResult"===e.role?null:"custom"===e.role?"xdev-mount-notice"===e.customType?null:"compaction"===e.customType?(0,n.jsx)(tF,{message:e}):(0,n.jsx)(tB,{message:e,cwd:i,onOpenFile:s}):"bashExecution"===e.role?(0,n.jsx)(t_,{message:e,sessionId:f}):null},(e,t)=>e.message===t.message&&e.isStreaming===t.isStreaming&&function(e,t,r){if(t===r||"assistant"!==e.role)return!0;for(let n of e.content??[])if("toolCall"===n.type&&t?.get(n.toolCallId)!==r?.get(n.toolCallId))return!1;return!0}(e.message,e.toolResults,t.toolResults)&&e.modelNames===t.modelNames&&e.cwd===t.cwd&&e.onOpenFile===t.onOpenFile&&e.entryId===t.entryId&&e.onFork===t.onFork&&e.forking===t.forking&&e.onNavigate===t.onNavigate&&e.prevAssistantEntryId===t.prevAssistantEntryId&&e.onEditContent===t.onEditContent&&e.showTimestamp===t.showTimestamp&&e.prevTimestamp===t.prevTimestamp&&e.sessionId===t.sessionId&&e.toolCallsDefaultCollapsed===t.toolCallsDefaultCollapsed);function tk({message:e,cwd:t,onOpenFile:r,entryId:i,onFork:s,forking:o,onNavigate:l,prevAssistantEntryId:c,onEditContent:u}){let{t:p,locale:h}=(0,d.s9)(),[m,f]=(0,a.useState)(!1),[g,x]=(0,a.useState)(!1),{copied:v,copy:y}=(0,tl.q)(),b="string"==typeof e.content?e.content:e.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n"),w="string"==typeof e.content?[]:e.content.filter(e=>"image"===e.type),k=tb(e.timestamp,h),j=!!i&&!!s,S=!!c&&!!l;return(0,n.jsx)("div",{style:{marginBottom:18,display:"flex",flexDirection:"column",alignItems:"flex-end",paddingRight:6},onMouseEnter:()=>f(!0),onMouseLeave:()=>f(!1),children:(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-end",maxWidth:"85%",minWidth:0},children:[(0,n.jsxs)("div",{className:"chat-message-card",style:{maxWidth:"100%",minWidth:0,background:"var(--user-bg)",border:"1px solid color-mix(in srgb, var(--accent) 28%, transparent)",borderRadius:"var(--radius-card)",boxShadow:"var(--shadow-card)",padding:"var(--space-4) var(--space-5)",fontSize:"var(--text-lg)",lineHeight:1.6,color:"var(--text)",wordBreak:"break-word",maxHeight:300,overflowY:"auto"},children:[w.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:"var(--space-3)",flexWrap:"wrap",marginBottom:b?"var(--space-4)":0},children:w.map((e,t)=>{let r=e.source?"base64"===e.source.type?`data:${e.source.media_type};base64,${e.source.data}`:e.source.url??"":e.data?`data:${e.mimeType};base64,${e.data}`:"";return(0,n.jsx)(tr,{src:r,alt:"",style:{maxWidth:240,maxHeight:240,borderRadius:6,objectFit:"contain",display:"block",border:"1px solid color-mix(in srgb, var(--accent) 18%, transparent)"}},t)})}),b&&(0,n.jsx)(ty,{className:"markdown-user-message",cwd:t,onOpenFile:r,children:b})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:"var(--space-3)",marginTop:3,width:"100%"},children:[(0,n.jsx)("div",{style:{display:"flex",gap:"calc(var(--space-3) / 2)",opacity:m||g?1:0,pointerEvents:m||g?"auto":"none",transition:"opacity var(--dur-fast) var(--ease-out-warm)"},onFocusCapture:()=>x(!0),onBlurCapture:()=>x(!1),children:(0,n.jsx)(ei.m_,{content:p("messageView.copyMessage"),children:(0,n.jsxs)("button",{onClick:()=>y(b),"aria-label":p("messageView.copyMessage"),style:{...tv,color:v?"var(--accent)":"var(--text-dim)"},onMouseEnter:e=>{v||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{v||(e.currentTarget.style.color="var(--text-dim)")},children:[v?(0,n.jsx)(C.A,{size:11,strokeWidth:1.8}):(0,n.jsx)(e4.A,{size:11,strokeWidth:1.8}),p(v?"messageView.copied":"messageView.copy")]})})}),(j||S)&&(0,n.jsxs)("div",{style:{display:"flex",gap:"calc(var(--space-3) / 2)",opacity:m||g||o?1:0,pointerEvents:m||g||o?"auto":"none",transition:"opacity var(--dur-fast) var(--ease-out-warm)"},onFocusCapture:()=>x(!0),onBlurCapture:()=>x(!1),children:[S&&(0,n.jsx)(ei.m_,{content:p("messageView.editFromHereTitle"),children:(0,n.jsxs)("button",{onClick:()=>{l(c),u?.(b)},"aria-label":p("messageView.editFromHereTitle"),style:{...tv,color:"var(--text-dim)"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:[(0,n.jsx)(e3.A,{size:11,strokeWidth:1.8}),p("messageView.editFromHere")]})}),j&&(0,n.jsx)(ei.m_,{content:p(o?"messageView.creatingSession":"messageView.newSessionTitle"),children:(0,n.jsxs)("button",{onClick:()=>{s(i)},disabled:o,"aria-label":p(o?"messageView.creatingSession":"messageView.newSessionTitle"),style:{...tv,color:o?"var(--accent)":"var(--text-dim)",cursor:o?"not-allowed":"pointer"},onMouseEnter:e=>{o||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{o||(e.currentTarget.style.color="var(--text-dim)")},children:[(0,n.jsx)(e6.A,{size:11,strokeWidth:1.8}),p(o?"messageView.creating":"messageView.newSession")]})})]}),k&&(0,n.jsx)("span",{style:{fontSize:"var(--text-xs)",color:"var(--text-dim)"},children:k})]})]})})}function tj({message:e,isStreaming:t,toolResults:r,modelNames:i,cwd:s,onOpenFile:o,showTimestamp:l,prevTimestamp:c,sessionId:u,entryId:p,toolCallsDefaultCollapsed:h}){var m,f,g;let x,{t:v,locale:y}=(0,d.s9)(),b=l?tb(e.timestamp,y):null,w=(e.content??[]).map((e,t)=>({block:e,originalIndex:t})).filter(({block:e})=>!e0(e,{isStreaming:t})),k=w.map(({block:e})=>e),[j,S]=(0,a.useState)(!1),[T,I]=(0,a.useState)(!1),{copied:E,copy:M}=(0,tl.q)(),R=(0,a.useRef)(null),[W,$]=(0,a.useState)(null),z=(0,a.useRef)(w);z.current=w;let N=(0,a.useRef)(new Map),[L,A]=(0,a.useState)(new Map),F=(0,a.useMemo)(()=>{if(!e.timestamp||!c)return;let t=Math.round((e.timestamp-c)/1e3);return t>0?t:void 0},[e.timestamp,c]),D=(0,a.useMemo)(()=>{let t=new Map;if(!r||!e.timestamp)return t;for(let[n,a]of r)if(a.timestamp&&e.timestamp){let r=Math.round((a.timestamp-e.timestamp)/1e3);r>0&&t.set(n,r)}return t},[r,e.timestamp]),P=t?"":k.filter(e=>"text"===e.type).map(e=>e.text).join("\n");if((0,a.useEffect)(()=>{if(!t){let e=new Date().getTime();A(t=>{let r=new Map(t);for(let[t,n]of N.current)r.has(t)||r.set(t,Math.round((e-n)/1e3));return r}),R.current=null,$(null);return}let e=setInterval(()=>{let e=z.current,t=e.map(({block:e})=>e),r=Date.now();e.forEach(({originalIndex:e})=>{N.current.has(e)||N.current.set(e,r)}),A(t=>{let n=!1,a=new Map(t);for(let t=0;t<e.length-1;t++){let i=e[t].originalIndex,s=e[t+1].originalIndex;if(!a.has(i)&&N.current.has(i)){let e=N.current.get(i),t=N.current.get(s)??r;a.set(i,Math.round((t-e)/1e3)),n=!0}}return n?a:t});let n=0;for(let e of t)"text"===e.type?n+=e.text?.length??0:"thinking"===e.type&&(n+=e.thinking?.length??0);if(0===n)return;null===R.current&&(R.current=r);let a=(r-R.current)/1e3;a>.5&&$(n/4/a)},300);return()=>clearInterval(e)},[t]),0===k.length&&!t)return null;let B=t&&!k.some(e=>"toolCall"===e.type||"thinking"===e.type);return(0,n.jsxs)("div",{className:`chat-message${B?" chat-message--live":""}`,style:{marginBottom:18},onMouseEnter:()=>S(!0),onMouseLeave:()=>S(!1),children:[(0,n.jsxs)("div",{style:{fontSize:"var(--text-sm)",color:"var(--text-dim)",marginBottom:"var(--space-2)",display:"flex",alignItems:"center",gap:"var(--space-3)"},children:[e.provider&&(0,n.jsx)("span",{children:i?.[`${e.provider}:${e.model}`]??i?.[e.model]??e.model}),t&&(()=>{let e,t,r=0;for(let e of k)"text"===e.type?r+=e.text?.length??0:"thinking"===e.type&&(r+=e.thinking?.length??0);let a=Math.round(r/4);return(0,n.jsx)(n.Fragment,{children:a>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:"var(--space-2)",color:"var(--text)"},title:v("messageView.estimatedTokens"),children:[(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:"var(--space-1)",fontSize:"var(--text-sm)",fontWeight:400},children:[(0,n.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("line",{x1:"5",y1:"1.5",x2:"5",y2:"8.5"}),(0,n.jsx)("polyline",{points:"2 6 5 8.5 8 6"})]}),a]}),null!==W&&(e=W>=50?"success":W>=30?"renamed":W>=15?"warning":"error",t=`var(--status-${e})`,(0,n.jsx)("span",{style:{marginLeft:"var(--space-3)",padding:"1px 6px",borderRadius:4,background:`color-mix(in srgb, ${t} 14%, var(--bg-panel))`,color:t,fontSize:"var(--text-sm)",fontWeight:400},children:v("messageView.tokensPerSecond",{tps:W.toFixed(1)})}))]})})})()]}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"var(--space-4)"},children:w.map(({block:e,originalIndex:a})=>(0,n.jsx)(tS,{block:e,toolResults:r,isStreaming:t,streamingDuration:L.get(a)??("thinking"===e.type?F:void 0),toolCallDurations:D,cwd:s,onOpenFile:o,sessionId:u,entryId:p,blockIndex:a,toolCallsDefaultCollapsed:h},`${p??"stream"}-${a}`))}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-4)",marginTop:"var(--space-2)"},children:[e.usage&&!t&&(0,n.jsx)("div",{style:{fontSize:"var(--text-sm)",color:"var(--text-dim)"},children:(m=e.usage,f=v,g=y,x=[],m.input&&x.push(f("messageView.usageInput",{tokens:m.input.toLocaleString(g)})),m.output&&x.push(f("messageView.usageOutput",{tokens:m.output.toLocaleString(g)})),m.cacheRead&&x.push(f("messageView.usageCacheRead",{tokens:m.cacheRead.toLocaleString(g)})),m.cacheWrite&&x.push(f("messageView.usageCacheWrite",{tokens:m.cacheWrite.toLocaleString(g)})),m.cost?.total&&x.push(`$${m.cost.total.toFixed(4)}`),x.join(" \xb7 "))}),P&&!t&&(0,n.jsx)(ei.m_,{content:v("messageView.copyMessage"),children:(0,n.jsxs)("button",{onClick:()=>M(P),"aria-label":v("messageView.copyMessage"),style:{...tv,color:E?"var(--accent)":"var(--text-dim)",opacity:j||T?1:0,pointerEvents:j||T?"auto":"none",transition:"opacity var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},onFocus:()=>I(!0),onBlur:()=>I(!1),onMouseEnter:e=>{E||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{E||(e.currentTarget.style.color="var(--text-dim)")},children:[E?(0,n.jsx)(C.A,{size:11,strokeWidth:1.8}):(0,n.jsx)(e4.A,{size:11,strokeWidth:1.8}),E?v("messageView.copied"):v("messageView.copy")]})}),b&&!t&&(0,n.jsx)("span",{style:{fontSize:"var(--text-xs)",color:"var(--text-dim)",marginLeft:"auto"},children:b})]})]})}function tS({block:e,toolResults:t,isStreaming:r,streamingDuration:a,toolCallDurations:i,cwd:s,onOpenFile:o,sessionId:l,entryId:d,blockIndex:c,toolCallsDefaultCollapsed:u}){if("text"===e.type)return(0,n.jsx)(tC,{block:e,isStreaming:r,cwd:s,onOpenFile:o});if("thinking"===e.type)return(0,n.jsx)(tT,{block:e,duration:a,sessionId:l,entryId:d,blockIndex:c});if("toolCall"===e.type){let a=t?.get(e.toolCallId),s=i?.get(e.toolCallId);return(0,n.jsx)(tI,{block:e,result:a,duration:s,isStreaming:r,defaultCollapsed:u})}return null}let tC=(0,a.memo)(function({block:e,isStreaming:t,cwd:r,onOpenFile:a}){return(0,n.jsx)(ty,{isStreaming:t,cwd:r,onOpenFile:a,children:e.text})},(e,t)=>e.block.text===t.block.text&&e.isStreaming===t.isStreaming&&e.cwd===t.cwd&&e.onOpenFile===t.onOpenFile),tT=(0,a.memo)(function({block:e,duration:t,sessionId:r,entryId:i,blockIndex:s}){let{t:o}=(0,d.s9)(),[l,c]=(0,a.useState)(!1),[u,p]=(0,a.useState)(null),[h,m]=(0,a.useState)(!1),[f,g]=(0,a.useState)(null);return(0,n.jsx)("div",{style:{border:"1px solid var(--border)",borderRadius:6,overflow:"hidden",fontSize:"var(--text-base)"},children:(0,n.jsxs)(ei.Nt,{open:l,onOpenChange:t=>{if(c(t),t&&e.deferred&&null===u){if(!r||!i)return void g(o("messageView.thinkingUnavailable"));m(!0),g(null),(function(e,t,r){let n=`${e}:${t}:${r}`,a=tx.get(n);if(a)return tx.delete(n),tx.set(n,a),a;let i=fetch(`/api/sessions/${encodeURIComponent(e)}/entries/${encodeURIComponent(t)}/thinking?blockIndex=${r}`).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();if("string"!=typeof t.thinking)throw Error((0,d.Tl)("messageView.invalidThinkingResponse"));return t.thinking}).catch(e=>{throw tx.delete(n),e});if(tx.set(n,i),tx.size>100){let e=tx.keys().next().value;e&&tx.delete(e)}return i})(r,i,s).then(e=>p(e)).catch(e=>g(e instanceof Error?e.message:String(e))).finally(()=>m(!1))}},children:[(0,n.jsxs)(ei.R6,{style:{display:"flex",alignItems:"center",gap:"var(--space-3)",width:"100%",padding:"var(--space-3) var(--control-padding-inline)",background:"var(--bg-panel)",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:"var(--text-md)",fontWeight:400,textAlign:"left"},children:[(0,n.jsx)(e8.A,{size:11,strokeWidth:1.8,style:{flexShrink:0}}),(0,n.jsx)("span",{children:o("messageView.thinking")}),void 0!==t&&(0,n.jsx)("span",{style:{marginLeft:"auto",fontSize:"var(--text-sm)",color:"var(--text-dim)",fontVariantNumeric:"tabular-nums"},children:o("messageView.durationSeconds",{seconds:t})}),(0,n.jsx)(v.A,{size:10,strokeWidth:1.6,style:{flexShrink:0,marginLeft:void 0===t?"auto":4,transform:l?"rotate(90deg)":"none",transition:"transform var(--dur-fast) var(--ease-out-warm)"}})]}),(0,n.jsx)(ei.je,{style:{padding:"var(--space-4) var(--control-padding-inline)",color:f?"var(--status-error)":"var(--text-muted)",fontSize:"var(--text-md)",lineHeight:1.6,whiteSpace:"pre-wrap",background:"var(--bg-panel)",borderTop:"1px solid var(--border)"},children:h?o("messageView.loadingThinking"):f??(e.deferred?u:e.thinking)})]})})},(e,t)=>e.block.thinking===t.block.thinking&&e.block.deferred===t.block.deferred&&e.duration===t.duration&&e.sessionId===t.sessionId&&e.entryId===t.entryId&&e.blockIndex===t.blockIndex),tI=(0,a.memo)(function({block:e,result:t,duration:r,isStreaming:i,defaultCollapsed:s=!0}){let o,{t:l}=(0,d.s9)(),[c,u]=(0,a.useState)(!!i&&!s),p="edit"===(o=e.toolName.toLowerCase())||"apply_patch"===o||o.includes("apply_patch")||o.startsWith("edit_")||o.endsWith(".edit")||o.endsWith("_edit")||o.includes("str_replace")||o.includes("replace_editor"),h=c&&t&&!t.isError?function(e){let t=e.details;if(!tL(t))return null;let r="string"==typeof t.patch?t.patch:null;if(r)return{text:r};let n="string"==typeof t.diff?t.diff:null;return n?{text:n}:null}(t):null,m=t?"string"==typeof t.content?t.content:(Array.isArray(t.content)?t.content:[]).filter(e=>"text"===e.type&&"string"==typeof e.text).map(e=>e.text).join("\n"):null,f=null!==m&&("(no output)"===m.trim()||""===m.trim()),g=t?.isError??!1;return(0,n.jsx)("div",{style:{borderRadius:7,overflow:"hidden",fontSize:"var(--text-md)",border:g?"1px solid color-mix(in srgb, var(--status-error) 45%, transparent)":"1px solid color-mix(in srgb, var(--status-success) 25%, transparent)",background:g?"color-mix(in srgb, var(--status-error) 5%, transparent)":"color-mix(in srgb, var(--status-success) 4%, transparent)"},children:(0,n.jsxs)(ei.Nt,{open:c,onOpenChange:u,children:[(0,n.jsxs)(ei.R6,{style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"var(--space-3) var(--control-padding-inline)",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:"var(--text-md)",fontWeight:400,textAlign:"left",minWidth:0},children:[(0,n.jsx)("span",{style:{color:g?"var(--status-error)":"var(--status-success)",fontFamily:"var(--font-mono)",fontWeight:600,fontSize:"var(--text-sm)",flexShrink:0},children:e.toolName}),(0,n.jsx)("span",{style:{color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:function(e){let t=e.input;if(!t||"object"!=typeof t)return"";let r=Object.keys(t);if(0===r.length)return"";if("command"in t)return String(t.command).slice(0,120);if("path"in t)return String(t.path).slice(0,120);if("file_path"in t)return String(t.file_path).slice(0,120);if("pattern"in t)return String(t.pattern).slice(0,120);if("query"in t)return String(t.query).slice(0,120);if("input"in t&&"string"==typeof t.input){let e=t.input.match(/\*\*\*\s*(?:Update|Add|Delete)\s*File:\s*([^\r\n]+)/i);if(e)return e[1].trim();let r=t.input.match(/--- (?:a\/)?([^\r\n]+)/);if(r)return r[1].trim()}return String(t[r[0]]).slice(0,120)}(e)}),void 0!==r&&(0,n.jsx)("span",{style:{fontSize:"var(--text-sm)",color:"var(--text-dim)",flexShrink:0,fontVariantNumeric:"tabular-nums"},children:l("messageView.durationSeconds",{seconds:r})}),(0,n.jsx)(v.A,{size:10,strokeWidth:1.6,style:{flexShrink:0,transform:c?"rotate(90deg)":"none",transition:"transform var(--dur-fast) var(--ease-out-warm)"}})]}),c&&!p&&(0,n.jsx)("pre",{style:{margin:0,padding:"var(--space-4) var(--control-padding-inline)",color:"var(--text-muted)",fontSize:"var(--text-md)",lineHeight:1.5,overflow:"auto",backgroundColor:"var(--bg-subtle)",borderTop:g?"1px solid color-mix(in srgb, var(--status-error) 25%, transparent)":"1px solid color-mix(in srgb, var(--status-success) 20%, transparent)",whiteSpace:"pre-wrap",wordBreak:"break-all"},children:JSON.stringify(e.input,null,2)}),c&&t&&(h?(0,n.jsx)(tR,{diff:h}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(tM,{details:t.details}),(0,n.jsx)(tA,{text:m??"",isEmpty:f,isError:g})]}))]})})},(e,t)=>e.block.toolCallId===t.block.toolCallId&&e.block.toolName===t.block.toolName&&e.block.input===t.block.input&&e.result===t.result&&e.duration===t.duration&&e.defaultCollapsed===t.defaultCollapsed);function tE({status:e}){return(0,n.jsx)(tp,{status:e})}function tM({details:e}){let{t,tn:r}=(0,d.s9)();if(!tL(e))return null;let a=(Array.isArray(e.results)?e.results:[]).filter(tL),i=(Array.isArray(e.progress)?e.progress:[]).filter(tL),s=tL(e.async)?e.async:null;if(0===a.length&&0===i.length&&!s)return null;let o=a.length>0?a:i.length>0?i:s&&"string"==typeof s.jobId?[{id:s.jobId,agent:"task",status:"started",task:s.jobId}]:[],l=o.reduce((e,t)=>e+("number"==typeof t.tokens?t.tokens:0),0),c=o.reduce((e,t)=>e+("number"==typeof t.cost?t.cost:0),0),u="number"==typeof e.totalDurationMs?e.totalDurationMs:void 0,p=th(l),h=[r("chatWindow.subagentCount",o.length),p?t("chatWindow.tokensUnit",{count:p}):null,tm(c),tf(u)].filter(Boolean);return(0,n.jsxs)("div",{style:{borderTop:"1px solid var(--border)",background:"var(--bg-subtle)",padding:"var(--space-4) var(--control-padding-inline)",display:"grid",gap:"var(--space-2)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-4)",fontSize:"var(--text-sm)",color:"var(--text-muted)"},children:[(0,n.jsx)("span",{style:{fontWeight:600,color:"var(--text)"},children:t("messageView.taskSubagents")}),(0,n.jsx)("span",{style:{marginLeft:"auto",fontFamily:"var(--font-mono)",color:"var(--text-dim)",fontSize:10.5},children:h.join(" \xb7 ")}),s&&(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:"var(--text-xs)",color:"var(--text-dim)"},children:"⤴"})]}),o.map((e,r)=>{let a="string"==typeof e.id?e.id:`row-${r}`,i=function(e){if(!0===e.aborted)return"aborted";if("string"==typeof e.error&&e.error)return"failed";if("number"==typeof e.exitCode)return 0===e.exitCode?"completed":"failed";let t=e.status;return"completed"===t?"completed":"failed"===t?"failed":"aborted"===t?"aborted":"started"}(e),s="string"==typeof e.task&&e.task?e.task:"string"==typeof e.assignment?e.assignment:null,o=th("number"==typeof e.tokens?e.tokens:void 0),l=[o?t("chatWindow.tokensUnit",{count:o}):null,tm("number"==typeof e.cost?e.cost:void 0),"started"!==i?tf("number"==typeof e.durationMs?e.durationMs:void 0):null,tg("string"==typeof e.resolvedModel?e.resolvedModel:void 0)].filter(Boolean);return(0,n.jsxs)("div",{"aria-label":`${"string"==typeof e.agent?e.agent:"subagent"}: ${t(`chatWindow.subagentState.${i}`)}${s?` — ${s}`:""}`,style:{display:"flex",alignItems:"center",gap:"var(--space-3)",minWidth:0,fontSize:11.5},children:[(0,n.jsx)(tE,{status:i}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontWeight:600,fontSize:10.5,color:"var(--accent)",flexShrink:0},children:"string"==typeof e.agent?e.agent:"subagent"}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,color:"var(--text)"},children:s??""}),l.length>0&&(0,n.jsx)("span",{style:{flexShrink:0,fontFamily:"var(--font-mono)",fontSize:"var(--text-xs)",color:"var(--text-dim)"},children:l.join(" \xb7 ")})]},a)})]})}function tR({diff:e}){return(0,n.jsx)("div",{style:{borderTop:"1px solid color-mix(in srgb, var(--status-success) 15%, transparent)",background:"var(--bg)"},children:(0,n.jsx)(tW,{text:e.text})})}function tW({text:e}){let{t}=(0,d.s9)(),r=(0,a.useMemo)(()=>(0,to.y)(e),[e]);if(!r)return(0,n.jsx)(tN,{text:e});let i=r.length>1;return(0,n.jsx)("div",{style:{maxHeight:560,overflowY:"auto",overflowX:"hidden",background:"var(--bg)"},children:r.map((e,r)=>(0,n.jsxs)("div",{style:{minWidth:0,borderTop:0===r?"none":"1px solid var(--border)",fontFamily:"var(--font-mono)",fontSize:"var(--text-md)",lineHeight:1.55},children:[i&&(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr) minmax(0, 1fr)",position:"sticky",top:0,zIndex:1,background:"var(--bg-panel)",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)(t$,{title:e.oldPath||t("messageView.diffBefore"),side:"left"}),(0,n.jsx)(t$,{title:e.newPath||t("messageView.diffAfter"),side:"right"})]}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr) minmax(0, 1fr)"},children:e.rows.map((e,t)=>"hunk"===e.type?null:(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)(tz,{cell:e.left,side:"left"}),(0,n.jsx)(tz,{cell:e.right,side:"right"})]},t))})]},r))})}function t$({title:e,side:t}){return(0,n.jsx)("div",{title:e,style:{padding:"5px 10px",color:"var(--text-dim)",borderRight:"left"===t?"1px solid var(--border)":"none",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e})}function tz({cell:e,side:t}){let r="added"===e.type?"var(--status-success-subtle)":"removed"===e.type?"color-mix(in srgb, var(--status-error) 13%, transparent)":"empty"===e.type?"var(--bg-subtle)":"transparent",a="added"===e.type?"+":"removed"===e.type?"-":" ",i="added"===e.type?"var(--status-success)":"removed"===e.type?"var(--status-error)":"var(--text-dim)";return(0,n.jsxs)("div",{style:{display:"flex",minWidth:0,background:r,borderRight:"left"===t?"1px solid var(--border)":"none"},children:[(0,n.jsx)("span",{style:{width:42,padding:"0 var(--space-3)",textAlign:"right",color:"var(--text-dim)",userSelect:"none",background:"var(--bg-panel)",borderRight:"1px solid var(--border)",flexShrink:0},children:e.lineNo??""}),(0,n.jsx)("span",{style:{width:18,padding:"0 5px",color:i,userSelect:"none",fontWeight:"context"===e.type||"empty"===e.type?400:700,flexShrink:0},children:a}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,padding:"0 10px 0 0",color:"empty"===e.type?"var(--text-dim)":"var(--text)",whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:e.text||"\xa0"})]})}function tN({text:e}){let t=e.split(/\r?\n/);return(0,n.jsx)("div",{style:{maxHeight:520,overflowY:"auto",overflowX:"hidden",fontFamily:"var(--font-mono)",fontSize:"var(--text-md)",lineHeight:1.55,minWidth:0},children:t.map((e,t)=>{let r=e.startsWith("@@")?"hunk":e.startsWith("+")&&!e.startsWith("+++")?"added":e.startsWith("-")&&!e.startsWith("---")?"removed":"context";return(0,n.jsxs)("div",{style:{display:"flex",background:"added"===r?"var(--status-success-subtle)":"removed"===r?"color-mix(in srgb, var(--status-error) 13%, transparent)":"hunk"===r?"var(--accent-subtle)":"transparent",borderLeft:"added"===r?"3px solid var(--status-success)":"removed"===r?"3px solid var(--status-error)":"hunk"===r?"3px solid var(--accent)":"3px solid transparent"},children:[(0,n.jsx)("span",{style:{width:48,padding:"0 var(--space-4)",color:"var(--text-dim)",background:"var(--bg-panel)",borderRight:"1px solid var(--border)",textAlign:"right",userSelect:"none",flexShrink:0},children:t+1}),(0,n.jsx)("span",{style:{padding:"0 var(--control-padding-inline)",whiteSpace:"pre-wrap",overflowWrap:"anywhere",color:"added"===r?"var(--status-success)":"removed"===r?"var(--status-error)":"hunk"===r?"var(--accent)":"var(--text)"},children:e||"\xa0"})]},t)})})}function tL(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function tA({text:e,isEmpty:t,isError:r}){let{t:a}=(0,d.s9)();return(0,n.jsx)("div",{style:{borderTop:`1px solid ${r?"color-mix(in srgb, var(--status-error) 30%, transparent)":"color-mix(in srgb, var(--status-success) 15%, transparent)"}`,background:r?"color-mix(in srgb, var(--status-error) 4%, transparent)":"var(--bg-subtle)"},children:(0,n.jsx)("pre",{style:{margin:0,padding:"var(--space-4) var(--control-padding-inline)",color:r?"var(--status-error)":t?"var(--text-dim)":"var(--text-muted)",fontSize:"var(--text-md)",lineHeight:1.5,overflow:"auto",maxHeight:400,backgroundColor:"var(--bg)",whiteSpace:"pre-wrap",wordBreak:"break-all",fontStyle:t?"italic":"normal",opacity:t?.6:1},children:t?a("messageView.noOutput"):e})})}function tF({message:e}){let{t,locale:r}=(0,d.s9)(),i=tO(e.content),s=(0,a.useMemo)(()=>{let e,t,r,n,a;return e=[],t=[],r=i.match(ts),n=r?.[1]??"",a=r?.index===void 0?i:i.slice(0,r.index),n.replace(ti,(r,n,a)=>{let i=a.split(/\r?\n/).map(e=>e.trim()).filter(Boolean);return"read-files"===n?e.push(...i):t.push(...i),""}),{body:a.trim(),readFiles:e,modifiedFiles:t}},[i]),o=tb(e.timestamp,r);return(0,n.jsx)("div",{style:{marginBottom:"var(--space-6)"},children:(0,n.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:"var(--radius-control)",overflow:"hidden",background:"var(--bg)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-4)",padding:"calc(var(--space-4) - var(--space-1) / 2) var(--control-padding-inline)",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)"},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)",fontWeight:650},children:t("messageView.compactionLabel")}),o&&(0,n.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:"var(--text-xs)"},children:o})]}),(0,n.jsxs)("div",{style:{padding:"11px 13px 12px"},children:[(0,n.jsx)("div",{style:{color:"var(--text)",fontSize:15,fontWeight:700,lineHeight:1.35},children:t("messageView.conversationCompacted")}),(0,n.jsx)("div",{style:{marginTop:3,marginBottom:10,color:"var(--text)",fontSize:"var(--text-lg)",lineHeight:1.5},children:t("messageView.compactionDescription")}),s.body?(0,n.jsx)(ta,{className:"markdown-compaction-message",children:s.body}):(0,n.jsx)("span",{style:{color:"var(--text-dim)",fontSize:"var(--text-md)"},children:t("messageView.noSummary")}),(0,n.jsx)(tD,{readFiles:s.readFiles,modifiedFiles:s.modifiedFiles})]})]})})}function tD({readFiles:e,modifiedFiles:t}){let{t:r}=(0,d.s9)();if(0===e.length+t.length)return null;let a=[];return e.length>0&&a.push(r("messageView.filesReadCount",{count:e.length})),t.length>0&&a.push(r("messageView.filesModifiedCount",{count:t.length})),(0,n.jsxs)("details",{className:"compaction-file-details",children:[(0,n.jsx)("summary",{children:r("messageView.fileContext",{parts:a.join(", ")})}),t.length>0&&(0,n.jsx)(tP,{title:r("messageView.modifiedFiles"),files:t}),e.length>0&&(0,n.jsx)(tP,{title:r("messageView.readFiles"),files:e})]})}function tP({title:e,files:t}){return(0,n.jsxs)("div",{className:"compaction-file-section",children:[(0,n.jsx)("div",{className:"compaction-file-title",children:e}),(0,n.jsx)("ul",{className:"compaction-file-list",children:t.map(e=>(0,n.jsx)("li",{children:e},e))})]})}function tB({message:e,cwd:t,onOpenFile:r}){var i;let s,{t:o,locale:l}=(0,d.s9)(),c=!1===e.display,[u,p]=(0,a.useState)(!c),[h,m]=(0,a.useState)(!1),{copied:f,copy:g}=(0,tl.q)(),x=tO(e.content),v="string"==typeof(i=e.content)?[]:i.filter(e=>"image"===e.type),y=void 0!==e.details,b=y?function(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}}(e.details):"",w=tU.has(e.customType),k=w?function(e){let t=e.split("\n"),r=null,n=0;for(let e=0;e<t.length;e+=1){let a=t[e].match(/agent\s*`([^`]+)`/);if(a){r=a[1],n=e+1;break}}return{sender:r,body:t.slice(n).join("\n").trim()}}(x):null,j=k?k.body:x,S=w?k?.sender??tH(e.customType):"advisor"===e.customType?o("messageView.advisorLabel"):tH(e.customType),C=tb(e.timestamp,l);return(0,n.jsx)("div",{style:{marginBottom:"var(--space-6)"},children:(0,n.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:"var(--radius-control)",overflow:"hidden",background:c?"var(--bg-subtle)":"var(--bg)",opacity:c&&!u?.82:1},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-4)",padding:"calc(var(--space-4) - var(--space-1) / 2) var(--control-padding-inline)",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",fontSize:"var(--text-md)"},children:[(0,n.jsx)("span",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)",fontWeight:650},children:w&&"irc:incoming"===e.customType?`← ${S}`:S}),c&&(0,n.jsx)("span",{style:{color:"var(--text-dim)",fontSize:"var(--text-sm)"},children:o("messageView.hiddenExtensionMessage")}),C&&(0,n.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:"var(--text-xs)"},children:C})]}),u?(0,n.jsxs)("div",{style:{padding:"6px 9px"},children:[v.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:"var(--space-3)",flexWrap:"wrap",marginBottom:j?"var(--space-4)":0},children:v.map((e,t)=>{var r;let a=(r=e).source?"base64"===r.source.type?`data:${r.source.media_type};base64,${r.source.data}`:r.source.url??"":r.data?`data:${r.mimeType};base64,${r.data}`:"";return a?(0,n.jsx)(tr,{src:a,alt:"",style:{maxWidth:240,maxHeight:240,borderRadius:6,objectFit:"contain",display:"block",border:"1px solid var(--border)"}},t):null})}),j?(0,n.jsx)(ta,{className:"markdown-custom-message",cwd:t,onOpenFile:r,children:j}):(0,n.jsx)("span",{style:{color:"var(--text-dim)",fontSize:"var(--text-md)"},children:o("messageView.noMessage")})]}):(0,n.jsx)("button",{onClick:()=>p(!0),style:{display:"block",width:"100%",padding:"var(--space-4) var(--control-padding-inline)",border:"none",background:"transparent",color:"var(--text-dim)",cursor:"pointer",fontSize:"var(--text-md)",textAlign:"left"},children:j?(s=j.replace(/\s+/g," ").trim())?s.length>140?`${s.slice(0,140)}...`:s:(0,d.Tl)("messageView.showExtensionMessage"):o("messageView.showExtensionMessage")}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-4)",padding:"4px 9px",borderTop:"1px solid var(--border)",background:"var(--bg-subtle)"},children:[x||b?(0,n.jsx)("button",{onClick:()=>g(j||b),style:{padding:"3px 7px",border:"none",background:"none",color:f?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:"var(--text-sm)"},children:o(f?"messageView.copied":"messageView.copy")}):null,(y||c)&&(0,n.jsx)("button",{onClick:()=>{c?p(e=>!e):m(e=>!e)},style:{marginLeft:"auto",padding:"3px 7px",border:"none",background:"none",color:"var(--text-dim)",cursor:"pointer",fontSize:"var(--text-sm)"},children:o(c?u?"messageView.collapse":"messageView.expand":h?"messageView.hideDetails":"messageView.showDetails")})]}),y&&(c&&u||!c&&h)&&(0,n.jsx)("pre",{style:{margin:0,padding:"9px 10px",borderTop:"1px solid var(--border)",backgroundColor:"var(--bg)",color:"var(--text-muted)",fontSize:"var(--text-md)",lineHeight:1.5,whiteSpace:"pre-wrap",wordBreak:"break-word",maxHeight:360,overflow:"auto",fontFamily:"var(--font-mono)"},children:b})]})})}function tO(e){return"string"==typeof e?e:e.filter(e=>"text"===e.type).map(e=>e.text).join("\n")}function tH(e){return e||(0,d.Tl)("messageView.extensionType")}let tU=new Set(["irc:incoming","irc:autoreply","irc:relay"]);function t_({message:e,sessionId:t}){let{t:r}=(0,d.s9)(),[i,s]=(0,a.useState)(null),o=(0,a.useRef)(0);(0,a.useEffect)(()=>{o.current+=1,s(null)},[e.command,e.fullOutputPath,e.output,e.timestamp]);let l=!e.output&&void 0===e.exitCode&&!e.cancelled,c=e.cancelled||void 0!==e.exitCode&&0!==e.exitCode,u=e.excludeFromContext?"bash (local)":"bash",p={type:"toolCall",toolCallId:`bash-${e.timestamp??""}`,toolName:u,input:{command:e.command}},h=l?void 0:{role:"toolResult",toolCallId:p.toolCallId,toolName:u,content:e.output?[{type:"text",text:e.output}]:[],isError:c,timestamp:e.timestamp},m=(0,a.useCallback)(async()=>{if(!e.fullOutputPath||!t||i?.phase==="ready")return;let r=o.current;s({phase:"loading"});try{let n=await fetch(`/api/agent/${encodeURIComponent(t)}/bash-output?path=${encodeURIComponent(e.fullOutputPath)}`),a=await n.json();if(o.current!==r)return;if(!n.ok||!a.success)throw Error(a.error??`HTTP ${n.status}`);s({phase:"ready",output:a.data?.output??""})}catch(e){if(o.current!==r)return;s({phase:"error",message:e instanceof Error?e.message:String(e)})}},[e.fullOutputPath,t,i?.phase]),f=e.fullOutputPath&&t?`/api/agent/${encodeURIComponent(t)}/bash-output?path=${encodeURIComponent(e.fullOutputPath)}&download=1`:null;return(0,n.jsxs)("div",{style:{margin:"6px 0"},children:[(0,n.jsx)(tI,{block:p,result:h}),f&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-5)",marginTop:"var(--space-3)"},children:[i?.phase!=="ready"&&(0,n.jsx)("button",{type:"button",disabled:i?.phase==="loading",onClick:()=>void m(),style:{padding:0,border:"none",background:"none",color:"var(--accent)",cursor:i?.phase==="loading"?"default":"pointer",fontSize:"var(--text-md)",opacity:i?.phase==="loading"?.6:1,fontFamily:"inherit"},children:r(i?.phase==="loading"?"messageView.fullOutputLoading":"messageView.viewFullOutput")}),(0,n.jsx)("a",{href:f,download:!0,style:{color:"var(--text-dim)",fontSize:"var(--text-md)",textDecoration:"none"},children:r("messageView.fullOutputDownload")})]}),i?.phase==="ready"&&(0,n.jsx)("div",{style:{maxHeight:420,overflow:"auto",marginTop:"var(--space-3)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)"},children:(0,n.jsx)("pre",{style:{margin:0,padding:"var(--space-4) var(--control-padding-inline)",whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"var(--font-mono)",fontSize:"var(--text-md)",color:"var(--text-muted)"},children:i.output})}),i?.phase==="error"&&(0,n.jsx)("div",{style:{marginTop:"var(--space-3)",fontSize:"var(--text-md)",color:"var(--status-error)"},children:i.message})]})}var tV=r(17494),tq=r(8143),tK=r(86272),tZ=r(35893),tJ=r(84111);let tY=new Map;function tG(e){return{value:e.value,images:e.images.map(e=>({...e})),files:e.files.map(e=>({...e}))}}function tX(e){let t=tY.get(e);return t?tG(t):null}function tQ(e,t){t.value||0!==t.images.length||0!==t.files.length?tY.set(e,tG(t)):tY.delete(e)}let t0=[{name:"goal",descriptionKey:"chatInput.cmdGoal",argumentHintKey:"chatInput.cmdGoalArg",requiresArgs:!0,buildPrompt:e=>`Work toward this goal for the rest of the session:
2
+
3
+ ${e}
4
+
5
+ Treat it as the objective to prioritize when deciding what to do next.`},{name:"plan",descriptionKey:"chatInput.cmdPlan",argumentHintKey:"chatInput.cmdPlanArg",requiresArgs:!0,buildPrompt:e=>`Create a plan for this task before doing anything else:
6
+
7
+ ${e}
8
+
9
+ Think it through step by step, list concrete steps, and state what you will verify when done.`},{name:"review",descriptionKey:"chatInput.cmdReview",argumentHintKey:"chatInput.cmdReviewArg",requiresArgs:!1,buildPrompt:e=>e?`Review ${e} for bugs, security issues, and opportunities to simplify. Summarize what you find, then fix anything clearly wrong.`:"Review the current project state and recent changes for bugs, security issues, and opportunities to simplify. Summarize what you find, then fix anything clearly wrong."},{name:"fix",descriptionKey:"chatInput.cmdFix",argumentHintKey:"chatInput.cmdFixArg",requiresArgs:!0,buildPrompt:e=>`Fix this issue:
10
+
11
+ ${e}
12
+
13
+ Reproduce the problem, apply the smallest correct fix, and verify it works before finishing.`},{name:"test",descriptionKey:"chatInput.cmdTest",argumentHintKey:"chatInput.cmdTestArg",requiresArgs:!0,buildPrompt:e=>`Write tests for ${e}. Follow the project's test conventions, cover the important behavior and edge cases, and run the tests to confirm they pass.`},{name:"explain",descriptionKey:"chatInput.cmdExplain",argumentHintKey:"chatInput.cmdExplainArg",requiresArgs:!0,buildPrompt:e=>`Explain ${e} concisely: what it does, how it works, and the key details worth knowing.`},{name:"simplify",descriptionKey:"chatInput.cmdSimplify",argumentHintKey:"chatInput.cmdSimplifyArg",requiresArgs:!0,buildPrompt:e=>`Simplify ${e}. Remove unnecessary complexity while preserving behavior, keep the change focused, and verify nothing breaks.`},{name:"commit",descriptionKey:"chatInput.cmdCommit",argumentHintKey:"chatInput.cmdCommitArg",requiresArgs:!1,buildPrompt:e=>e?`Stage the relevant files and commit the current changes with this message: ${JSON.stringify(e)}. Run the project's checks first so the commit is green.`:"Stage the relevant files and commit the current changes with a clear conventional commit message. Run the project's checks first so the commit is green."}],t1=new Map(t0.map(e=>[e.name,e]));function t2(e){var t;if(!e.startsWith("/"))return{kind:"not-web"};let r=e.match(/^\/([^\s]+)(?:\s+([\s\S]*))?$/);if(!r)return{kind:"not-web"};let n=(t=r[1],t1.get(t));if(!n)return{kind:"not-web"};let a=(r[2]??"").trim();return n.requiresArgs&&!a?{kind:"usage-error",command:`/${n.name}`,argumentHintKey:n.argumentHintKey}:{kind:"expand",prompt:n.buildPrompt(a)}}function t5(e){if(!e||"object"!=typeof e||"string"!=typeof e.data||"string"!=typeof e.mimeType||!e.mimeType.startsWith("image/"))return!1;let t=function(e){if(!e||e.length%4!=0)return null;let t=e.endsWith("==")?2:+!!e.endsWith("="),r=e.length-t;for(let t=0;t<r;t+=1){var n;if(!((n=e.charCodeAt(t))>=65&&n<=90||n>=97&&n<=122||n>=48&&n<=57||43===n||47===n))return null}for(let t=r;t<e.length;t+=1)if("="!==e[t])return null;return e.length/4*3-t}(e.data);return null!==t&&t<=0xa00000}function t4(e){let t=/(?:^|\s)@"([^"\n]*)$/.exec(e);if(t)return{start:e.length-(t[1].length+2),query:t[1],quoted:!0};let r=/(?:^|\s)@([^\s"]*)$/.exec(e);return r?{start:e.length-(r[1].length+1),query:r[1],quoted:!1}:null}function t3(e){let t=0;for(let r=0;r<e.length;r++)"/"===e[r]&&t++;return t}function t6(e,t){if(!e)return!0;let r=0;for(let n=0;n<t.length&&r<e.length;n++)t[n]===e[r]&&r++;return r===e.length}function t8(e,t){let r=t?`${e}/`:e;return r.includes(" ")?`@"${r}" `:`@${r} `}var t9=r(31590);let t7=["auto","off","minimal","low","medium","high","xhigh","max"];function re(e){return"number"==typeof e&&Number.isFinite(e)&&e>0}function rt(e){let t=Math.round(10*e)/10;return`${t%1==0?t.toFixed(0):t.toFixed(1)}%`}let rr=2*Math.PI*9.5;function rn(e,t,r){return e.compare(t.name||t.modelId,r.name||r.modelId)||e.compare(t.provider,r.provider)||e.compare(t.modelId,r.modelId)}let ra={auto:"chatInput.thinkingAuto",off:"chatInput.thinkingOff",minimal:"chatInput.thinkingMinimal",low:"chatInput.thinkingLow",medium:"chatInput.thinkingMedium",high:"chatInput.thinkingHigh",xhigh:"chatInput.thinkingXhigh",max:"chatInput.thinkingMax"};function ri(e,t){return"skill"===e.source&&t.has(e.name)}let rs=[...t0.map(e=>({name:e.name,descriptionKey:e.descriptionKey,argumentHintKey:e.argumentHintKey})),{name:"compact",descriptionKey:"chatInput.cmdCompact"},{name:"reload",descriptionKey:"chatInput.cmdReload"},{name:"name",descriptionKey:"chatInput.cmdName"},{name:"session",descriptionKey:"chatInput.cmdSession"},{name:"agents",descriptionKey:"chatInput.cmdAgents"},{name:"copy",descriptionKey:"chatInput.cmdCopy"}],ro=new Set(rs.map(e=>e.name)),rl=["builtin","extension","prompt","skill","ompBuiltin"],rd={builtin:"chatInput.groupBuiltin",extension:"chatInput.groupExtensions",prompt:"chatInput.groupPrompts",skill:"chatInput.groupSkills",ompBuiltin:"chatInput.groupOmpBuiltin"},rc={builtin:0,extension:1,prompt:2,skill:3,ompBuiltin:4};function ru(e,t){let r=e.name.toLowerCase(),n=e.description?.toLowerCase()??"";return r===t?0:r.startsWith(t)?1:r.includes(t)?2:n.includes(t)?3:4}function rp(e){return{data:e.data,mimeType:e.mimeType}}function rh(e){return{...e,previewUrl:`data:${e.mimeType};base64,${e.data}`}}function rm(e){return(e??[]).filter(t5).slice(0,10).map(rh)}function rf(e){return{name:e.name,mimeType:e.mimeType,content:e.content,size:e.size}}function rg(e){return(e??[]).filter(e=>"string"==typeof e.name&&"string"==typeof e.mimeType&&"string"==typeof e.content&&Number.isFinite(e.size)&&e.size<=262144).slice(0,10)}function rx(e){e.previewUrl.startsWith("blob:")&&URL.revokeObjectURL(e.previewUrl)}function rv({onClick:e,title:t,accent:r=!1,children:a}){return(0,n.jsx)("button",{type:"button",onClick:e,title:t,style:{flexShrink:0,padding:"4px 8px",minHeight:24,border:"none",borderRadius:6,background:"transparent",color:r?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:11,fontWeight:r?600:400,transition:"background var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",r||(e.currentTarget.style.color="var(--text-muted)")},onMouseLeave:e=>{e.currentTarget.style.background="transparent",r||(e.currentTarget.style.color="var(--text-dim)")},children:a})}function ry({error:e}){let{t}=(0,d.s9)();return e?(0,n.jsxs)("div",{role:"alert",style:{display:"flex",alignItems:"flex-start",gap:8,maxHeight:120,marginBottom:8,padding:"7px 10px",overflowY:"auto",border:"1px solid color-mix(in srgb, var(--status-error) 35%, transparent)",borderRadius:"var(--radius-control)",background:"color-mix(in srgb, var(--status-error) 8%, transparent)",color:"var(--status-error)",fontSize:11,lineHeight:1.45},children:[(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,marginTop:1},"aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M10.3 2.9 1.8 17a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 2.9a2 2 0 0 0-3.4 0Z"}),(0,n.jsx)("line",{x1:"12",y1:"9",x2:"12",y2:"13"}),(0,n.jsx)("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})]}),(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontWeight:600},children:t("chatInput.modelError")}),(0,n.jsx)("div",{style:{whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:e})]})]}):null}function rb({goal:e,plan:t}){let r,i,s,{t:o}=(0,d.s9)(),[l,c]=(0,a.useState)(!1),[u,p]=(0,a.useState)(()=>Date.now());return((0,a.useEffect)(()=>{if(!e)return;c(!1),p(Date.now());let t=window.setInterval(()=>p(Date.now()),3e4);return()=>window.clearInterval(t)},[e]),e||t)?(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6,marginBottom:8},children:[e&&(0,n.jsxs)("button",{type:"button","aria-expanded":l,onClick:()=>c(e=>!e),title:o(l?"chatInput.collapseGoal":"chatInput.expandGoal"),style:{display:"flex",alignItems:l?"flex-start":"center",gap:8,width:"100%",padding:"6px 9px",border:"1px solid color-mix(in srgb, var(--accent) 32%, var(--border))",borderRadius:"var(--radius-control)",background:"color-mix(in srgb, var(--accent) 7%, var(--bg-panel))",color:"var(--text)",cursor:"pointer",textAlign:"left",transition:"background var(--dur-fast) var(--ease-out-warm), border-color var(--dur-fast) var(--ease-out-warm)"},children:[(0,n.jsx)(tV.A,{size:14,strokeWidth:2,style:{flexShrink:0,marginTop:+!!l,color:"var(--accent)"},"aria-hidden":"true"}),(0,n.jsxs)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:10,fontFamily:"var(--font-mono)",textTransform:"uppercase",letterSpacing:"0.04em"},children:[o("chatInput.goalActive")," \xb7 ",(i=Math.floor((r=Math.max(0,Math.floor((u-e.startedAt)/6e4)))/60),s=r%60,i>0?`${i}h ${s}m`:`${s}m`)]}),(0,n.jsx)("span",{style:{minWidth:0,flex:1,overflow:l?"visible":"hidden",textOverflow:l?void 0:"ellipsis",whiteSpace:l?"pre-wrap":"nowrap",fontSize:12,lineHeight:1.4},children:e.objective})]}),t&&(0,n.jsxs)("div",{role:"status","aria-live":"polite",style:{display:"flex",alignItems:"center",gap:7,padding:"5px 9px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)",color:"var(--text-muted)",fontSize:12},children:[(0,n.jsx)(tq.A,{size:14,strokeWidth:2,style:{flexShrink:0,color:"var(--accent)"},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{fontWeight:600},children:o("chatInput.planningInProgress")}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-dim)"},children:t.objective})]})]}):null}let rw=(0,a.memo)((0,a.forwardRef)(function({onSend:e,onAbort:t,onSteer:r,onFollowUp:i,isStreaming:s,model:o,isAutoModelSelection:l,modelNames:c,modelList:u,modelError:p,modelsLoading:h,onModelChange:m,fastModeEnabled:f,fastModeActive:g,fastModeSupported:x,onFastModeChange:v,onAbortCompaction:y,isCompacting:b,compactResult:w,thinkingLevel:k,onThinkingLevelChange:j,availableThinkingLevels:S,thinkingLevelMap:C,modelNameOverride:T,retryInfo:I,queuedMessages:E,inputHistory:M=[],onAbortRetry:W,slashCommands:$,slashCommandsLoading:z,onLoadSlashCommands:N,onBuiltinCommand:L,onAudioUnlock:A,onPromptWithStreamingBehavior:F,contextUsage:D,onRemoveQueuedMessage:P,onPromoteQueuedToSteer:B,draftKey:O,cwd:H,activeGoal:U,activePlan:_,advisorEnabled:V},q){var K,Z,J,Y;let G,X,Q,ee,et,er,en,ei,es=(0,t9.a)(),{t:eo,tn:el,locale:ed}=(0,d.s9)(),ec=a.useMemo(()=>new Intl.Collator(ed,{numeric:!0,sensitivity:"base"}),[ed]),[eu,ep]=(0,a.useState)(()=>O?tX(O)?.value??"":""),[eh,ef]=(0,a.useState)(!1),[eg,ex]=(0,a.useState)(null),[ev,ey]=(0,a.useState)(!1),[eb,ew]=(0,a.useState)(!1),[ek,ej]=(0,a.useState)(""),[eS,eC]=(0,a.useState)(()=>O?rm(tX(O)?.images):[]),[eI,eE]=(0,a.useState)(()=>O?rg(tX(O)?.files):[]),[eM,eR]=(0,a.useState)(null),e$=eu.trimStart(),ez=0===eS.length&&0===eI.length&&e$.startsWith("!"),eN=ez&&e$.startsWith("!!"),[eL,eA]=(0,a.useState)(!1),[eF,eD]=(0,a.useState)(0),[eP,eB]=(0,a.useState)(null),[eO,eH]=(0,a.useState)(!1),[eU,e_]=(0,a.useState)(0),[eV,eq]=(0,a.useState)(!1),[eK,eZ]=(0,a.useState)(0),[eJ,eY]=(0,a.useState)(null),[eG,eX]=(0,a.useState)(!1),[eQ,e0]=(0,a.useState)(null),e1=(0,a.useRef)(null),e2=(0,a.useRef)(null),e5=(0,a.useRef)(null),e4=(0,a.useRef)(null),e3=(0,a.useRef)(null),e6=(0,a.useRef)(null),e8=(0,a.useRef)(null),e9=(0,a.useRef)(null),e7=(0,a.useRef)(!1),te=(0,a.useRef)(0),tt=(0,a.useRef)(!1),tr=(0,a.useRef)([]),tn=(0,a.useRef)([]),ta=(0,a.useRef)([]),ti=(0,a.useRef)(null),ts=(0,a.useRef)(null),to=(0,a.useRef)(O),tl=(0,a.useRef)(eu),td=(0,a.useRef)(eS),tc=(0,a.useRef)(eI),tu=(0,a.useRef)(0),tp=(0,a.useRef)(0),th=(0,a.useRef)(0);tl.current=eu,td.current=eS,tc.current=eI,(0,a.useImperativeHandle)(q,()=>({insertIfEmpty(e){let t=e1.current;(t?t.value:eu).trim()||(ep(e),eB(null),requestAnimationFrame(()=>{t&&(t.focus(),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)}))},prependText(e){if(!e.trim())return;let t=e1.current,r=[e,t?t.value:eu].filter(e=>e.trim()).join("\n\n");ep(r),eB(null),requestAnimationFrame(()=>{t&&(t.focus(),t.setSelectionRange(r.length,r.length),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)})},insertText(e){let t=e1.current;if(!t)return void ep(t=>t+(t?" ":"")+e);let r=t.selectionStart??t.value.length,n=t.selectionEnd??t.value.length,a=t.value.slice(0,r),i=t.value.slice(n),s=a.length>0&&!a.endsWith(" ")?" ":"";ep(a+s+e+i),eB(null),requestAnimationFrame(()=>{if(!t)return;let n=r+s.length+e.length;t.setSelectionRange(n,n),t.focus(),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`})},addFiles(e){tg(e)}}));let tm=(0,a.useCallback)(async e=>{let t=Math.max(0,10-td.current.length-tp.current),r=e.filter(e=>e.type.startsWith("image/")&&e.size<=0xa00000).slice(0,t);if(!r.length){e.length>0&&eR(0===t?"Maximum of 10 attached images reached.":`${e.length} image(s) skipped: images up to ${Math.round(10)} MB are supported.`);return}let n=tu.current;tp.current+=r.length;let a=[];try{let e=await Promise.all(r.map(e=>new Promise((t,r)=>{let n=new FileReader;n.onload=()=>{let r={data:n.result.split(",")[1],mimeType:e.type,previewUrl:URL.createObjectURL(e)};a.push(r),t(r)},n.onerror=r,n.readAsDataURL(e)})));if(tu.current!==n)return void e.forEach(rx);eC(t=>{let r=e.slice(0,Math.max(0,10-t.length));return e.slice(r.length).forEach(rx),[...t,...r]}),eR(null)}catch{a.forEach(rx),eR("One or more images could not be read. Try a different file.")}finally{tp.current-=r.length}},[]),tf=(0,a.useCallback)(async e=>{let t=Math.max(0,10-tc.current.length-th.current),r=e.filter(e=>e.size<=262144).slice(0,t);if(!r.length){e.length>0&&eR(0===t?"Maximum of 10 text files reached.":`${e.length} file(s) skipped: files up to ${Math.round(256)} KB are supported.`);return}let n=tu.current;th.current+=r.length;try{let e=await Promise.all(r.map(async e=>({name:e.name,mimeType:e.type,content:await e.text(),size:e.size})));if(tu.current!==n)return;let t=e.filter(e=>!e.content.includes("\0")&&!e.content.includes("�")),a=r.length-t.length;eE(e=>[...e,...t.slice(0,Math.max(0,10-e.length))]),a>0?eR(`${a} file(s) skipped: binary or non-text files cannot be attached.`):eR(null)}catch{eR("One or more files could not be read. Try a different file.")}finally{th.current-=r.length}},[]),tg=(0,a.useCallback)(e=>{if(s)return void eR("Attachments are disabled while the agent is running.");let t=e.filter(e=>e.type.startsWith("image/")),r=e.filter(e=>!e.type.startsWith("image/"));tm(t),tf(r)},[s,tm,tf]),tx=(0,a.useCallback)(e=>{eC(t=>{let r=[...t],[n]=r.splice(e,1);return n&&rx(n),r}),eR(null)},[]),tv=(0,a.useCallback)(e=>{eE(t=>t.filter((t,r)=>r!==e)),eR(null)},[]),ty=(0,a.useCallback)(()=>{eC(e=>(e.forEach(rx),[]))},[]),tb=(0,a.useCallback)(()=>{eE([])},[]),tw=(0,a.useCallback)(()=>{var e;ep(""),eB(null),eq(!1),O&&tY.delete(O),to.current&&to.current!==O&&(e=to.current,tY.delete(e)),ty(),tb(),tu.current+=1,e1.current&&(e1.current.style.height="auto")},[ty,tb,O]);(0,a.useEffect)(()=>{O&&to.current===O&&tQ(O,{value:eu,images:eS.map(rp),files:eI.map(rf)})},[eS,eI,O,eu]),(0,a.useEffect)(()=>{let e=to.current;if(e===O)return;e&&tQ(e,{value:tl.current,images:td.current.map(rp),files:tc.current.map(rf)});let t=O?tX(O):null;to.current=O,ep(t?.value??""),eB(null),eq(!1),eC(e=>(e.forEach(rx),rm(t?.images))),eE(rg(t?.files))},[O]),(0,a.useEffect)(()=>{let e=e1.current;e&&(e.style.height="auto",eu&&(e.style.height=`${Math.min(e.scrollHeight,200)}px`))},[eu]),(0,a.useEffect)(()=>()=>{td.current.forEach(rx)},[]);let tk=(0,a.useCallback)(async()=>{let t=eu.trim();if(!t&&!eS.length&&!eI.length||s)return;A?.();let r=function(e,t){if(0===t.length)return e;let r=t.map(e=>{var t,r;let n,a,i=(t=e.content,n=t.match(/`+/g)?.reduce((e,t)=>Math.max(e,t.length),0)??0,"`".repeat(Math.max(3,n+1)));return`Attached file: ${e.name}
14
+ ${i}${r=e.name,"md"===(a=r.toLowerCase().replace(/\\/g,"/").split("/").pop()?.split(".").pop()??"")||"markdown"===a||"mdx"===a?"markdown":"text"}
15
+ ${e.content}
16
+ ${i}`});return[e.trim(),...r].filter(Boolean).join("\n\n")}(t,eI);if(!eS.length&&!eI.length&&t.startsWith("/")&&L){let e=await L(t);if(e.handled){e.error||e.retainInput||tw();return}}e(r,eS.length?eS:void 0),tw()},[eu,eS,eI,s,L,e,tw,A]),tj=eu.startsWith("/")&&!/\s/.test(eu.slice(1))?eu.slice(1).toLowerCase():null,[tS,tC]=(0,a.useState)(()=>new Set);(0,a.useEffect)(()=>{if(null===tj||!H)return;let e=new AbortController;return fetch(`/api/skills?cwd=${encodeURIComponent(H)}`,{signal:e.signal}).then(e=>e.ok?e.json():null).then(e=>{e&&tC(new Set((e.skills??[]).flatMap(e=>e.disableModelInvocation&&e.name?[e.name]:[])))}).catch(()=>{}),()=>e.abort()},[H,tj]);let tT=a.useMemo(()=>rs.map(e=>({name:e.name,description:eo(e.descriptionKey),...e.argumentHintKey?{argumentHint:eo(e.argumentHintKey)}:{},source:"builtin"})),[eo]),tI=a.useMemo(()=>($??[]).flatMap(e=>{let t=e.source;return ro.has(e.name)?[]:"builtin"===t||"ompBuiltin"===t?[{name:e.name,description:e.description,source:"ompBuiltin"}]:[e]}),[$]),tE=null===tj?[]:[...s?[]:tT,...tI].filter(e=>{let t=e.name.toLowerCase(),r=e.description?.toLowerCase()??"";return t.includes(tj)||r.includes(tj)}).sort((e,t)=>{let r=ru(e,tj)-ru(t,tj);if(0!==r)return r;let n=Number(ri(e,tS))-Number(ri(t,tS));return 0!==n?n:rc[e.source]-rc[t.source]||ec.compare(e.name,t.name)}),tM=(()=>{let e=new Map;for(let t of rl)e.set(t,{source:t,items:[]});return tE.forEach((t,r)=>{e.get(t.source)?.items.push({command:t,index:r})}),rl.map(t=>e.get(t)).filter(e=>e.items.length>0)})(),tR=el(tj?"chatInput.matchCount":"chatInput.commandCount",tE.length),tW=(0,a.useCallback)((e,t)=>{if(!H)return void eB(null);let r=t??e.length;eB(t4(e.slice(0,r)))},[H]),t$=eP?.query??null,tz=a.useMemo(()=>null!==t$&&eJ&&eJ.cwd===H?function(e,t,r=20){let n=t.toLowerCase();if(!n)return e.slice(0,r);let a=[];for(let t of e){let e=function(e,t){let r=e.path.toLowerCase(),n=0;if(t.includes("/"))r===t?n=100:r.startsWith(t)?n=80:r.includes(t)?n=50:t6(t,r)&&(n=10);else{let e=r.lastIndexOf("/"),a=-1===e?r:r.slice(e+1);a===t?n=100:a.startsWith(t)?n=80:a.includes(t)?n=50:r.includes(t)?n=30:t6(t,r)&&(n=10)}return e.isDir&&n>0&&(n+=10),n}(t,n);e>0&&a.push({entry:t,score:e})}return a.sort((e,t)=>t.score-e.score||t3(e.entry.path)-t3(t.entry.path)||e.entry.path.localeCompare(t.entry.path)),a.slice(0,r).map(e=>e.entry)}(eJ.entries,t$):[],[t$,eJ,H]),tN=!!(t$&&eJ?.truncated&&eJ.cwd===H);(0,a.useEffect)(()=>{if(!tN||!H||!t$)return;let e=setTimeout(()=>{fetch(`/api/file-index?cwd=${encodeURIComponent(H)}&q=${encodeURIComponent(t$)}`).then(e=>{if(!e.ok)throw Error(`file search failed: ${e.status}`);return e.json()}).then(e=>e0({cwd:H,query:t$,matches:e.matches??[]})).catch(()=>{})},150);return()=>clearTimeout(e)},[tN,t$,H]);let tL=tN&&null!==eQ&&eQ.cwd===H&&eQ.query===t$,tA=tL?eQ.matches:tz,tF=null===eP?null:`${eP.start}:${+!!eP.quoted}:${eP.query}`;(0,a.useEffect)(()=>{if(null===tF){eH(!1),e_(0);return}eH(!0),e_(0)},[tF]);let tD=null!==eP;(0,a.useEffect)(()=>{if(!tD||!H)return;let e=ti.current;e&&e.cwd===H&&Date.now()-e.fetchedAt<1e4||ts.current===H||(ts.current=H,eX(!0),fetch(`/api/file-index?cwd=${encodeURIComponent(H)}`).then(e=>{if(!e.ok)throw Error(`file index failed: ${e.status}`);return e.json()}).then(e=>{eY({cwd:H,entries:function(e){let t=new Set;for(let r of e){let e=r.indexOf("/");for(;-1!==e;)t.add(r.slice(0,e)),e=r.indexOf("/",e+1)}let r=[];for(let e of t)r.push({path:e,isDir:!0});for(let t of e)t&&r.push({path:t,isDir:!1});return r.sort((e,t)=>t3(e.path)-t3(t.path)||e.path.localeCompare(t.path)),r}(e.files??[]),truncated:!!e.truncated}),ti.current={cwd:H,fetchedAt:Date.now()}}).catch(()=>{ti.current=null}).finally(()=>{ts.current=null,eX(!1)}))},[tD,H]);let tP=(0,a.useCallback)(e=>{if(!eP)return;let t=e1.current,r=t?.selectionStart??eu.length,n=eu.slice(0,eP.start),a=eu.slice(r);eP.quoted&&a.startsWith('"')&&(a=a.slice(1));let i=function(e,t,r=!1){let n=t?`${e}/`:e,a=r||n.includes(" ");if(t){let e=a?`@"${n}"`:`@${n}`;return{text:e,cursorOffset:a?e.length-1:e.length}}let i=a?`@"${n}" `:`@${n} `;return{text:i,cursorOffset:i.length}}(e.path,e.isDir,eP.quoted),s=n+i.text+a,o=n.length+i.cursorOffset;ep(s),eB(t4(s.slice(0,o))),requestAnimationFrame(()=>{let e=e1.current;e&&(e.focus(),e.setSelectionRange(o,o),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[eP,eu]);(0,a.useEffect)(()=>{eU>=tA.length&&e_(Math.max(0,tA.length-1))},[tA.length,eU]),(0,a.useEffect)(()=>{tn.current.length=tA.length},[tA.length]),(0,a.useEffect)(()=>{eO&&tn.current[eU]?.scrollIntoView({block:"nearest",inline:"nearest"})},[eU,eO]),(0,a.useEffect)(()=>{eK>=M.length&&eZ(Math.max(0,M.length-1))},[M.length,eK]),(0,a.useEffect)(()=>{ta.current.length=M.length},[M.length]),(0,a.useEffect)(()=>{eV&&ta.current[eK]?.scrollIntoView({block:"nearest",inline:"nearest"})},[eK,eV]);let tB=(0,a.useCallback)(e=>{ep(e),eq(!1),eZ(0),eB(null),requestAnimationFrame(()=>{let t=e1.current;t&&(t.focus(),t.setSelectionRange(e.length,e.length),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)})},[]),tO=(0,a.useCallback)(e=>{let t=`/${e.name} `;ep(t),eA(!1),eD(0),requestAnimationFrame(()=>{let e=e1.current;e&&(e.focus(),e.setSelectionRange(t.length,t.length),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[]),tH=(0,a.useCallback)(e=>{let t=eu.trim();if(!t&&!eS.length&&!eI.length||eS.length||eI.length)return;A?.();let n="steer"===e?"steer":"followUp";if(t.startsWith("/")&&F){let e=t2(t);if("expand"===e.kind){F(e.prompt,n,eS.length?eS:void 0),tw();return}return"usage-error"===e.kind?void em.oR.error(eo("chatInput.commandUsageTitle"),eo("agentSession.commandRequiresArgs",{command:e.command,usage:eo(e.argumentHintKey)})):(F(t,n,eS.length?eS:void 0),void tw())}"steer"===e&&r?r(t,eS.length?eS:void 0):"followup"===e&&i&&i(t,eS.length?eS:void 0),tw()},[eu,eS,eI,F,r,i,tw,A,eo]),tU=[...(E?.followUp??[]).map(e=>({kind:"follow-up",text:e})),...(E?.steering??[]).map(e=>({kind:"steer",text:e}))],t_=tU[0]??null,tV=tU.length,tq=(0,a.useCallback)(()=>{t_&&(P?.(t_.text),ep(t_.text),eB(null),eq(!1),requestAnimationFrame(()=>{let e=e1.current;e&&(e.focus(),e.setSelectionRange(t_.text.length,t_.text.length),e.style.height="auto",e.style.height=Math.min(e.scrollHeight,200)+"px")}))},[t_,P]),tG=(0,a.useCallback)(()=>{t_&&P?.(t_.text)},[t_,P]),t0=(0,a.useCallback)(()=>{t_&&"follow-up"===t_.kind&&B?.(t_.text)},[t_,B]),t1=(0,a.useCallback)(e=>{let t=tE.length-1;if(t<0)return 0;if("left"===e)return Math.max(0,eF-1);if("right"===e)return Math.min(t,eF+1);let r=tr.current[eF];if(!r)return"down"===e?Math.min(t,eF+1):Math.max(0,eF-1);let n=r.getBoundingClientRect(),a=n.left+n.width/2,i=n.top+n.height/2,s=-1,o=1/0;for(let r=0;r<=t;r+=1){if(r===eF)continue;let t=tr.current[r];if(!t)continue;let n=t.getBoundingClientRect(),l=n.top+n.height/2-i;if("down"===e?l<=4:l>=-4)continue;let d=1e3*Math.abs(l)+Math.abs(n.left+n.width/2-a);d<o&&(s=r,o=d)}return s>=0?s:"down"===e?Math.min(t,eF+1):Math.max(0,eF-1)},[tE.length,eF]),t5=(0,a.useCallback)(e=>{let n=e.nativeEvent,a=Date.now()-te.current<100,o=e7.current||n.isComposing||229===n.keyCode;if("Enter"===e.key&&!e.shiftKey&&(o||a)){a&&e.preventDefault();return}if(eV&&!o){if("ArrowDown"===e.key){e.preventDefault(),eZ(e=>Math.min(Math.max(0,M.length-1),e+1));return}if("ArrowUp"===e.key){e.preventDefault(),eZ(e=>Math.max(0,e-1));return}if("Escape"===e.key){e.preventDefault(),eq(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&M[eK]){e.preventDefault(),tB(M[eK]);return}}if(eL&&null!==tj){if("ArrowDown"===e.key){e.preventDefault(),eD(t1("down"));return}if("ArrowUp"===e.key){e.preventDefault(),eD(t1("up"));return}if("ArrowRight"===e.key){e.preventDefault(),eD(t1("right"));return}if("ArrowLeft"===e.key){e.preventDefault(),eD(t1("left"));return}if("Escape"===e.key){e.preventDefault(),eA(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&tE[eF]){e.preventDefault(),tO(tE[eF]);return}}if(eO&&null!==eP&&!o){if("ArrowDown"===e.key){e.preventDefault(),e_(e=>Math.min(Math.max(0,tA.length-1),e+1));return}if("ArrowUp"===e.key){e.preventDefault(),e_(e=>Math.max(0,e-1));return}if("Escape"===e.key){e.preventDefault(),eH(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&tA[eU]){e.preventDefault(),tP(tA[eU]);return}}if("ArrowUp"===e.key&&!o&&!s&&M.length>0&&0===eu.trim().length){e.preventDefault(),eA(!1),eH(!1),eZ(M.length-1),eq(!0);return}if("Escape"===e.key&&!o&&s&&t){e.preventDefault(),t();return}if("Enter"===e.key&&!e.shiftKey){if(es)return;e.preventDefault(),s&&(r||i)?"steer"===(0,tZ.v)()&&r?tH("steer"):tH("followup"):tk()}},[es,s,r,i,t,eL,tj,tE,eF,tO,tH,tk,t1,eO,eP,tA,eU,tP,eV,M,eK,tB,eu]),t8=(0,a.useCallback)(()=>{let e=e1.current;e&&(e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)},[]),rh=(0,a.useCallback)(e=>{let t=Array.from(e.clipboardData?.items??[]).filter(e=>e.type.startsWith("image/"));t.length&&(e.preventDefault(),tg(t.map(e=>e.getAsFile()).filter(e=>null!==e)))},[tg]);(0,a.useEffect)(()=>{if(null===tj){eA(!1),eD(0),tt.current=!1;return}eA(!0),eD(0),!tt.current&&N&&(tt.current=!0,Promise.resolve(N()).catch(()=>{tt.current=!1}))},[tj,N]),(0,a.useEffect)(()=>{eF>=tE.length&&eD(Math.max(0,tE.length-1))},[tE.length,eF]),(0,a.useEffect)(()=>{tr.current.length=tE.length},[tE.length]),(0,a.useEffect)(()=>{eL&&tr.current[eF]?.scrollIntoView({block:"nearest",inline:"nearest"})},[eF,eL]);let[rw,rk]=(0,a.useState)(null);(0,a.useEffect)(()=>{let e=()=>rk(function(){try{let e=JSON.parse(localStorage.getItem("omp-composer-models")??"null");return Array.isArray(e)?new Set(e.filter(e=>"string"==typeof e)):null}catch{return null}}());return e(),window.addEventListener("omp-composer-models-change",e),()=>window.removeEventListener("omp-composer-models-change",e)},[]);let rj=a.useMemo(()=>u&&u.length>0?u.map(e=>({provider:e.provider,modelId:e.id,name:e.name})).filter(e=>null===rw||rw.has(`${e.provider}:${e.modelId}`)).sort((e,t)=>rn(ec,e,t)):Object.entries(c??{}).map(([e,t])=>({provider:o?.provider??"unknown",modelId:e,name:t})).sort((e,t)=>rn(ec,e,t)),[u,c,o?.provider,rw,ec]),rS=a.useMemo(()=>{let e;return(e=ek.trim().toLocaleLowerCase(ed))?rj.filter(t=>t.name.toLocaleLowerCase(ed).includes(e)||t.modelId.toLocaleLowerCase(ed).includes(e)||t.provider.toLocaleLowerCase(ed).includes(e)):rj},[ed,rj,ek]),rC=a.useMemo(()=>{let e=[];for(let t of rS){let r=e.find(e=>e.provider===t.provider);r?r.options.push(t):e.push({provider:t.provider,options:[t]})}return e},[rS]),rT=o?rj.find(e=>e.modelId===o.modelId&&e.provider===o.provider)?.name??T??c?.[`${o.provider}:${o.modelId}`]??o.modelId:null,rI=!!h&&!p,rE=s||rI&&0===rj.length,rM=w?Math.max(0,w.tokensBefore-w.estimatedTokensAfter):0,rR=w?.reason&&"manual"!==w.reason?eo("chatInput.compactedWithReason",{reason:`${w.reason[0].toUpperCase()}${w.reason.slice(1)}`}):eo("chatInput.compacted"),rW=w?eo("chatInput.compactResult",{verb:rR,before:(K=w.tokensBefore,(0,tJ.w)(K,ed)),after:(Z=w.estimatedTokensAfter,(0,tJ.w)(Z,ed)),saved:(0,tJ.w)(rM,ed)}):null,r$="auto"!==(G=k??"auto")&&C?C[G]??G:G,rz="medium"===r$.toLowerCase()?"med":r$,rN=null==(J=D?.percent)||Number.isNaN(J)?0:Math.min(100,Math.max(0,J)),rL=rN>0&&rN<10?rt(rN):`${Math.round(rN)}%`,rA=!!(D&&null!=D.percent&&D.contextWindow>0),rF=rA&&D?`${rt(rN)} / ${!re(Y=D.contextWindow)?"":Y>=1e6?`${Y/1e6}M`:Y>=1e3?`${Y/1e3}k`:String(Y)}`:null,rD=a.useMemo(()=>(function(e){if(!e)return[...t7];let t=new Set(e.filter(e=>e&&"auto"!==e));return[...t7.filter(e=>"auto"===e||t.delete(e)),...t]})(S),[S]);return(0,a.useEffect)(()=>{s&&ey(!1)},[s]),(0,a.useEffect)(()=>{if(!rA)return void ew(!1);if(!eb)return;let e=e=>{let t=e6.current;t&&!t.contains(e.target)&&ew(!1)},t=e=>{"Escape"===e.key&&ew(!1)};return document.addEventListener("pointerdown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("pointerdown",e),document.removeEventListener("keydown",t)}},[eb,rA]),(0,a.useEffect)(()=>{eh?requestAnimationFrame(()=>e4.current?.focus()):ej("")},[eh]),(0,a.useEffect)(()=>{let e=e=>{e2.current&&!e2.current.contains(e.target)&&e5.current&&!e5.current.contains(e.target)&&ef(!1),e3.current&&!e3.current.contains(e.target)&&ey(!1),!e8.current||e8.current.contains(e.target)||e1.current?.contains(e.target)||eq(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,n.jsxs)("div",{style:{flexShrink:0,background:"transparent",padding:"0 16px calc(8px + env(safe-area-inset-bottom))",paddingRight:es?16:52},children:[(0,n.jsx)("input",{ref:e9,type:"file",accept:"*/*",multiple:!0,disabled:s,style:{display:"none"},onChange:e=>{tg(Array.from(e.target.files??[])),e.target.value=""}}),(0,n.jsxs)("div",{style:{maxWidth:960,margin:"0 auto"},children:[(0,n.jsx)(ry,{error:p}),(0,n.jsx)(rb,{goal:U,plan:_}),I&&(0,n.jsxs)("div",{style:{marginBottom:8,padding:"5px 10px",background:"color-mix(in srgb, var(--status-warning) 8%, transparent)",border:"1px solid color-mix(in srgb, var(--status-warning) 25%, transparent)",borderRadius:6,fontSize:12,color:"var(--status-warning)",display:"flex",alignItems:"center",gap:6},children:[(0,n.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:[(0,n.jsx)("path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}),(0,n.jsx)("path",{d:"M3 3v5h5"})]}),eo("chatInput.retrying",{attempt:I.attempt,maxAttempts:I.maxAttempts}),I.errorMessage&&(0,n.jsxs)("span",{style:{opacity:.7,marginLeft:4},children:["— ",I.errorMessage]}),W&&(0,n.jsx)("button",{type:"button",onClick:W,title:"Stop the automatic retry and leave the failed turn as-is",style:{marginLeft:"auto",padding:"3px 9px",fontSize:11,color:"var(--status-warning)",background:"transparent",border:"1px solid color-mix(in srgb, var(--status-warning) 45%, transparent)",borderRadius:6,cursor:"pointer",whiteSpace:"nowrap",transition:"background var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{e.currentTarget.style.background="color-mix(in srgb, var(--status-warning) 12%, transparent)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},children:"Abort retry"})]}),rW&&(0,n.jsxs)("div",{style:{marginBottom:8,padding:"5px 10px",background:"color-mix(in srgb, var(--status-success) 8%, transparent)",border:"1px solid color-mix(in srgb, var(--status-success) 24%, transparent)",borderRadius:6,fontSize:12,color:"var(--status-success)",display:"flex",alignItems:"center",gap:6},children:[(0,n.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:(0,n.jsx)("polyline",{points:"20 6 9 17 4 12"})}),rW]}),eM&&(0,n.jsx)("div",{role:"alert",style:{marginBottom:8,padding:"5px 10px",background:"color-mix(in srgb, var(--status-error) 7%, transparent)",border:"1px solid color-mix(in srgb, var(--status-error) 30%, transparent)",borderRadius:6,fontSize:12,color:"var(--status-error)"},children:eM}),eS.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:6,marginBottom:6,flexWrap:"wrap"},children:eS.map((e,t)=>(0,n.jsxs)("div",{style:{position:"relative",flexShrink:0},children:[(0,n.jsx)("img",{src:e.previewUrl,alt:"",style:{width:56,height:56,objectFit:"cover",borderRadius:6,border:"1px solid var(--border)",display:"block"}}),(0,n.jsx)("button",{onClick:()=>tx(t),title:"Remove image","aria-label":"Remove image",style:{position:"absolute",top:-5,right:-5,width:24,height:24,borderRadius:"50%",background:"var(--bg-panel)",border:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",padding:0,color:"var(--text-muted)",transition:"color var(--dur-fast) var(--ease-out-warm), background var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-panel)"},children:(0,n.jsxs)("svg",{width:"9",height:"9",viewBox:"0 0 8 8",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:[(0,n.jsx)("line",{x1:"1",y1:"1",x2:"7",y2:"7"}),(0,n.jsx)("line",{x1:"7",y1:"1",x2:"1",y2:"7"})]})})]},t))}),eI.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:6,marginBottom:6,flexWrap:"wrap"},children:eI.map((e,t)=>(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:7,maxWidth:260,height:30,padding:"0 6px 0 9px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",fontSize:12,color:"var(--text)"},children:[(0,n.jsx)("span",{style:{flexShrink:0,display:"flex",color:"var(--text-muted)"},children:(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"}),(0,n.jsx)("polyline",{points:"14 2 14 8 20 8"})]})}),(0,n.jsx)("span",{title:e.name,style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)",fontSize:11.5},children:e.name}),(0,n.jsx)("span",{style:{flexShrink:0,fontSize:10,color:"var(--text-dim)"},children:e.size<1024?`${e.size} B`:`${Math.round(e.size/1024)} KB`}),(0,n.jsx)("button",{onClick:()=>tv(t),title:"Remove file","aria-label":"Remove file",style:{flexShrink:0,width:18,height:18,borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",background:"transparent",border:"none",cursor:"pointer",padding:0,color:"var(--text-muted)",transition:"color var(--dur-fast) var(--ease-out-warm), background var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="transparent"},children:(0,n.jsxs)("svg",{width:"9",height:"9",viewBox:"0 0 8 8",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:[(0,n.jsx)("line",{x1:"1",y1:"1",x2:"7",y2:"7"}),(0,n.jsx)("line",{x1:"7",y1:"1",x2:"1",y2:"7"})]})})]},t))}),(0,n.jsxs)("div",{style:{position:"relative"},children:[eV&&M.length>0&&(0,n.jsxs)("div",{ref:e8,className:"dropdown-surface",style:{position:"absolute",left:0,right:0,bottom:"calc(100% + 8px)",zIndex:120,maxHeight:"min(44vh, 360px)"},children:[(0,n.jsx)("div",{title:eo("chatInput.inputHistory"),style:{height:30,padding:"0 10px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",color:"var(--text-dim)"},children:(0,n.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M3 12a9 9 0 1 0 3-6.7"}),(0,n.jsx)("path",{d:"M3 4v5h5"}),(0,n.jsx)("path",{d:"M12 7v5l3 2"})]})}),(0,n.jsx)("div",{style:{maxHeight:"calc(min(44vh, 360px) - 31px)",overflowY:"auto",padding:4},children:M.map((e,t)=>{let r=t===eK;return(0,n.jsxs)("button",{ref:e=>{ta.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),tB(e)},onMouseEnter:()=>eZ(t),style:{width:"100%",display:"flex",alignItems:"flex-start",gap:8,padding:"7px 8px",border:"none",borderRadius:6,background:r?"var(--bg-selected)":"none",color:"var(--text)",cursor:"pointer",textAlign:"left",fontSize:12.5,lineHeight:1.45},children:[(0,n.jsx)("span",{style:{flexShrink:0,fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-dim)",paddingTop:1},children:t+1}),(0,n.jsx)("span",{style:{minWidth:0,display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2,overflow:"hidden",overflowWrap:"anywhere"},children:e})]},`${t}:${e}`)})})]}),eL&&null!==tj&&(0,n.jsxs)("div",{className:"dropdown-surface",style:{position:"absolute",left:0,right:0,bottom:"calc(100% + 8px)",zIndex:120,maxHeight:"min(56vh, 460px)"},children:[(0,n.jsxs)("div",{style:{padding:"8px 10px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,fontSize:11,color:"var(--text-dim)"},children:[(0,n.jsx)("span",{children:z?eo("chatInput.loadingCommands"):eo("chatInput.slashCommandsHeader",{countLabel:tR})}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:eo("chatInput.tabEnterHint")})]}),(0,n.jsx)("div",{style:{maxHeight:"calc(min(56vh, 460px) - 34px)",overflowY:"auto",padding:10},children:z||0!==tE.length?tM.map(e=>(0,n.jsxs)("section",{style:{marginBottom:12},children:[(0,n.jsxs)("div",{style:{position:"sticky",top:-10,zIndex:1,display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"4px 0 6px",background:"var(--bg)",color:"var(--text-dim)",fontSize:10,fontWeight:600,textTransform:"uppercase"},children:[(0,n.jsx)("span",{children:eo(rd[e.source])}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontWeight:500},children:e.items.length})]}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(220px, 1fr))",gap:8},children:e.items.map(({command:e,index:t})=>{let r=t===eF,a=ri(e,tS);return(0,n.jsxs)("button",{ref:e=>{tr.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),tO(e)},onMouseEnter:()=>eD(t),style:{width:"100%",minWidth:0,minHeight:58,display:"flex",flexDirection:"column",gap:4,justifyContent:"center",padding:"9px 10px",border:`1px solid ${r?"var(--accent)":"var(--border)"}`,borderRadius:7,background:r?"var(--bg-selected)":"var(--bg-panel)",color:a?"var(--text-dim)":"var(--text)",cursor:"pointer",textAlign:"left",boxShadow:r?"0 0 0 1px color-mix(in srgb, var(--accent) 28%, transparent)":"none"},children:[(0,n.jsxs)("span",{style:{fontSize:13,fontFamily:"var(--font-mono)",overflowWrap:"anywhere",wordBreak:"break-word"},children:["/",e.name,e.argumentHint&&(0,n.jsx)("span",{style:{marginLeft:6,fontSize:10,color:"var(--text-dim)"},children:e.argumentHint}),a&&(0,n.jsx)("span",{style:{marginLeft:6,fontSize:10,color:"var(--text-dim)"},children:eo("chatInput.dormant")})]}),e.description&&(0,n.jsx)("span",{style:{display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2,overflow:"hidden",fontSize:11,lineHeight:1.35,color:"var(--text-dim)"},children:e.description})]},`${e.source}:${e.name}`)})})]},e.source)):(0,n.jsx)("div",{style:{padding:"2px 2px 4px",fontSize:12,color:"var(--text-dim)"},children:eo("chatInput.noCommandsFound")})})]}),eO&&null!==eP&&(X=eG&&(!eJ||eJ.cwd!==H),Q=el("chatInput.matchCount",tA.length),ee=eJ?.truncated&&!tL?` \xb7 ${eP.query?eo("chatInput.searchingAllFiles"):eo("chatInput.indexTruncated")}`:"",(0,n.jsxs)("div",{className:"dropdown-surface",style:{position:"absolute",left:0,right:0,bottom:"calc(100% + 8px)",zIndex:120,maxHeight:"min(48vh, 400px)"},children:[(0,n.jsxs)("div",{style:{padding:"8px 10px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,fontSize:11,color:"var(--text-dim)"},children:[(0,n.jsx)("span",{children:X?eo("chatInput.loadingFiles"):`${eo("chatInput.filesHeader",{countLabel:Q})}${ee}`}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:eo("chatInput.tabEnterHint")})]}),(0,n.jsx)("div",{style:{maxHeight:"calc(min(48vh, 400px) - 34px)",overflowY:"auto",padding:4},children:X||0!==tA.length?tA.map((e,t)=>{let r=t===eU,a=e.path.split("/").pop()??e.path,i=e.path.slice(0,e.path.length-a.length);return(0,n.jsxs)("button",{ref:e=>{tn.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),tP(e)},onMouseEnter:()=>e_(t),style:{width:"100%",display:"flex",alignItems:"center",gap:8,padding:"6px 8px",border:"none",borderRadius:6,background:r?"var(--bg-selected)":"none",color:"var(--text)",cursor:"pointer",textAlign:"left",fontSize:12.5,fontFamily:"var(--font-mono)"},children:[(0,n.jsx)("span",{style:{flexShrink:0,display:"flex",alignItems:"center"},children:e.isDir?(0,n.jsx)(R,{size:14}):ea(a,14)}),(0,n.jsxs)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[i&&(0,n.jsx)("span",{style:{color:"var(--text-dim)"},children:i}),a,e.isDir&&(0,n.jsx)("span",{style:{color:"var(--text-dim)"},children:"/"})]})]},`${e.isDir?"d":"f"}:${e.path}`)}):(0,n.jsx)("div",{style:{padding:"6px 8px",fontSize:12,color:"var(--text-dim)"},children:tN&&!tL?eo("chatInput.searching"):eo("chatInput.noMatchingFiles")})})]})),t_&&(0,n.jsxs)("div",{style:{border:"1px solid var(--border)",borderBottom:"none",borderRadius:"var(--radius-card) var(--radius-card) 0 0",background:"var(--bg-panel)",padding:"5px 8px 5px 12px",display:"flex",alignItems:"center",gap:8,minWidth:0},children:[(0,n.jsxs)("span",{style:{flexShrink:0,fontSize:10,fontWeight:600,letterSpacing:"0.06em",textTransform:"uppercase",color:"var(--text-muted)"},children:["steer"===t_.kind?eo("chatInput.queuedSteer"):eo("chatInput.queuedFollowUp"),tV>1&&(0,n.jsx)("span",{style:{color:"var(--text-dim)"},children:" \xb7 "+tV})]}),(0,n.jsx)("span",{title:t_.text,style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12,color:"var(--text-muted)"},children:t_.text}),(0,n.jsx)(rv,{onClick:tq,title:eo("chatInput.queuedEditTitle"),children:eo("chatInput.queuedEdit")}),(0,n.jsx)(rv,{onClick:tG,title:eo("chatInput.queuedDeleteTitle"),children:eo("chatInput.queuedDelete")}),(0,n.jsx)(rv,{onClick:t0,title:eo("chatInput.queuedSteerTitle"),accent:!0,children:eo("chatInput.queuedSteerAction")})]}),(0,n.jsxs)("div",{className:"chat-input-shell",style:{display:"flex",flexDirection:"column",background:"var(--bg)",border:`1px solid ${ez?"var(--tool-bg)":"color-mix(in srgb, var(--border) 70%, transparent)"}`,borderRadius:"var(--radius-card)",padding:"var(--composer-shell-padding)",boxShadow:"var(--shadow-card)",transition:"border-color var(--dur-fast) var(--ease-out-warm), background var(--dur-fast) var(--ease-out-warm), box-shadow var(--dur-fast) var(--ease-out-warm)"},children:[(0,n.jsx)("textarea",{ref:e1,value:eu,onChange:e=>{ep(e.target.value),eq(!1),tW(e.target.value,e.target.selectionStart)},onSelect:e=>{let t=e.currentTarget;tW(t.value,t.selectionStart)},onKeyDown:t5,onCompositionStart:()=>{e7.current=!0},onCompositionEnd:e=>{e7.current=!1,te.current=Date.now();let t=e.currentTarget;tW(t.value,t.selectionStart)},onInput:t8,onPaste:rh,placeholder:eo("chatInput.placeholder"),rows:1,style:{width:"100%",background:"none",border:"none",outline:"none",resize:"none",color:"var(--text)",fontSize:14,lineHeight:1.6,fontFamily:"inherit",minHeight:24,maxHeight:200,overflow:"auto"}}),(0,n.jsxs)("div",{className:"composer-toolbar",style:{display:"flex",alignItems:"center",gap:2,marginTop:"var(--composer-toolbar-separation)",paddingTop:"var(--composer-toolbar-separation)",borderTop:"1px solid color-mix(in srgb, var(--border) 62%, transparent)",flexWrap:es?"wrap":"nowrap"},children:[(0,n.jsx)("button",{className:"composer-attachment ui-focus-ring",onClick:()=>e9.current?.click(),disabled:s,title:eo("chatInput.attachFile"),"aria-label":eo("chatInput.attachFile"),"data-has-attachments":eS.length||eI.length?"true":void 0,children:(0,n.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),(0,n.jsx)("polyline",{points:"14 2 14 8 20 8"})]})}),(rj.length>0||rT||p||rI)&&m&&(0,n.jsxs)("div",{ref:e2,className:"composer-model-control",style:{position:"relative",minWidth:0},children:[(0,n.jsxs)("button",{className:"composer-model-button ui-focus-ring",onClick:e=>{let t=e.currentTarget.getBoundingClientRect();ex({top:t.top,left:t.left,width:t.width}),ef(e=>!e)},disabled:rE,style:{background:eh?"var(--bg-hover)":"none",cursor:rE?"not-allowed":"pointer",opacity:rE?.5:1},onMouseEnter:e=>{s||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background=eh?"var(--bg-hover)":"none",e.currentTarget.style.color="var(--text-muted)"},title:rj.length>0?eo("chatInput.changeModel"):rI?eo("chatInput.loadingModels"):eo("chatInput.noAvailableModels"),children:[(0,n.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:[(0,n.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"}),(0,n.jsx)("rect",{x:"9",y:"9",width:"6",height:"6"}),(0,n.jsx)("line",{x1:"9",y1:"1",x2:"9",y2:"4"}),(0,n.jsx)("line",{x1:"15",y1:"1",x2:"15",y2:"4"}),(0,n.jsx)("line",{x1:"9",y1:"20",x2:"9",y2:"23"}),(0,n.jsx)("line",{x1:"15",y1:"20",x2:"15",y2:"23"}),(0,n.jsx)("line",{x1:"20",y1:"9",x2:"23",y2:"9"}),(0,n.jsx)("line",{x1:"20",y1:"14",x2:"23",y2:"14"}),(0,n.jsx)("line",{x1:"1",y1:"9",x2:"4",y2:"9"}),(0,n.jsx)("line",{x1:"1",y1:"14",x2:"4",y2:"14"})]}),V&&(0,n.jsx)("span",{title:eo("chatInput.advisorEnabled"),"aria-label":eo("chatInput.advisorEnabled"),style:{display:"flex",flexShrink:0,color:"var(--accent)"},children:(0,n.jsx)(tK.A,{size:13,strokeWidth:2,"aria-hidden":"true"})}),(0,n.jsx)("span",{className:"composer-model-name",title:rT??void 0,children:rT??(rj.length>0?eo("chatInput.selectModel"):rI?eo("chatInput.loadingModels"):eo("chatInput.noModels"))}),(0,n.jsx)(eW.A,{size:12,strokeWidth:1.8,style:{flexShrink:0,opacity:.7},"aria-hidden":"true"})]}),eh&&eg&&(er=(et=window.visualViewport?.height??window.innerHeight)-eg.top+6,en=Math.max(120,Math.min(eg.top-8,.6*et)),ei=es?{left:8,right:8,maxWidth:"calc(100vw - 16px)"}:{left:eg.left,width:"max-content",minWidth:eg.width,maxWidth:"calc(100vw - 16px)"},(0,n.jsxs)("div",{ref:e5,className:"dropdown-surface",style:{position:"fixed",bottom:er,...ei,zIndex:500,display:"flex",flexDirection:"column",overflow:"hidden",maxHeight:en},children:[(0,n.jsx)("div",{style:{padding:"8px 8px 6px",flexShrink:0},children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 10px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)"},children:[(0,n.jsx)(eT.A,{size:13,strokeWidth:1.8,color:"var(--text-dim)","aria-hidden":"true"}),(0,n.jsx)("input",{ref:e4,type:"search",autoComplete:"off",spellCheck:!1,value:ek,onChange:e=>ej(e.target.value),onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),ef(!1))},placeholder:eo("chatInput.searchModels"),"aria-label":eo("chatInput.searchModels"),style:{flex:1,background:"none",border:"none",outline:"none",color:"var(--text)",fontSize:13,boxSizing:"border-box",minWidth:0}})]})}),(0,n.jsx)("div",{style:{overflowY:"auto",minHeight:0,paddingBottom:4},children:0===rC.length?(0,n.jsx)("div",{style:{padding:"8px 12px",color:"var(--text-dim)",fontSize:12,whiteSpace:"nowrap"},children:ek.trim()?eo("chatInput.noMatchingModels"):rI?eo("chatInput.loadingModels"):eo("chatInput.noAvailableModels")}):rC.map((e,t)=>(0,n.jsxs)("div",{children:[rC.length>1&&(0,n.jsx)("div",{style:{padding:"6px 12px 4px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em",borderTop:t>0?"1px solid var(--border)":"none"},children:e.provider}),e.options.map(e=>{let t=e.modelId===o?.modelId&&e.provider===o?.provider;return(0,n.jsxs)("button",{className:"dropdown-item",onClick:()=>{ef(!1),(!t||l)&&m(e.provider,e.modelId)},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 12px",background:t?"var(--bg-selected)":"transparent",border:"none",color:t?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left",fontWeight:t?600:400,whiteSpace:"nowrap"},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="none")},children:[t?(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--accent)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:(0,n.jsx)("polyline",{points:"1.5 5 4 7.5 8.5 2.5"})}):(0,n.jsx)("span",{style:{width:10,flexShrink:0}}),(0,n.jsx)("span",{className:"model-option-name",title:e.name,style:{flex:1,minWidth:0},children:e.name})]},`${e.provider}:${e.modelId}`)})]},e.provider))})]}))]}),j&&(0,n.jsxs)("div",{ref:e3,className:"composer-thinking-control",style:{position:"relative"},children:[(0,n.jsxs)("button",{className:"composer-thinking-button ui-focus-ring",onClick:()=>ey(e=>!e),disabled:s,title:eo("chatInput.changeReasoningTitle",{level:r$}),"aria-label":`${eo("chatInput.changeReasoning")}: ${r$}`,style:{background:ev?"var(--bg-hover)":"none",cursor:s?"not-allowed":"pointer",opacity:s?.5:1},onMouseEnter:e=>{s||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background=ev?"var(--bg-hover)":"none",e.currentTarget.style.color="var(--text-muted)"},children:[(0,n.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:[(0,n.jsx)("path",{d:"M9.5 2A5.5 5.5 0 0 0 4 7.5c0 1.7.78 3.21 2 4.21V14a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1v-2.29c1.22-1 2-2.51 2-4.21A5.5 5.5 0 0 0 9.5 2z"}),(0,n.jsx)("line",{x1:"7",y1:"18",x2:"12",y2:"18"}),(0,n.jsx)("line",{x1:"8",y1:"21",x2:"11",y2:"21"})]}),(0,n.jsx)("span",{style:{whiteSpace:"nowrap"},children:rz}),(0,n.jsx)(eW.A,{size:12,strokeWidth:1.8,style:{flexShrink:0,opacity:.7},"aria-hidden":"true"})]}),ev&&(0,n.jsx)("div",{className:"dropdown-surface",style:{position:"absolute",bottom:"calc(100% + 6px)",left:es?"auto":0,right:es?0:void 0,zIndex:100,minWidth:250,maxWidth:"calc(100vw - 32px)"},children:rD.map(e=>{let t=(k??"auto")===e,r=ra[e],a=r?eo(r):"",i="auto"!==e&&C?C[e]:void 0,o=null!=i&&i!==e?i:e,l=null!=i&&i!==e;return(0,n.jsxs)("button",{className:"dropdown-item",onClick:()=>{ey(!1),t||s||j(e)},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 12px",background:t?"var(--bg-selected)":"transparent",border:"none",color:t?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left",fontWeight:t?600:400,whiteSpace:"nowrap"},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="transparent")},children:[t?(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--accent)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:(0,n.jsx)("polyline",{points:"1.5 5 4 7.5 8.5 2.5"})}):(0,n.jsx)("span",{style:{width:10,flexShrink:0}}),(0,n.jsxs)("span",{style:{flexShrink:0,whiteSpace:"nowrap"},children:[o,l&&(0,n.jsxs)("span",{style:{color:"var(--text-dim)",fontWeight:400},children:[" (",e,")"]})]}),a&&(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:11,color:"var(--text-dim)",marginLeft:8},children:a})]},e)})})]}),x&&v&&(0,n.jsxs)("button",{className:"composer-fast-toggle ui-focus-ring",type:"button",onClick:()=>{s||v(!f)},disabled:s,title:f&&!1===g?"Fast mode is enabled but inactive for this model":`Turn OMP Fast mode ${f?"off":"on"} for this model`,"aria-pressed":f,style:{background:f?"var(--bg-selected)":"none",color:f&&!1===g?"var(--status-warning)":f?"var(--accent)":"var(--text-muted)",cursor:s?"not-allowed":"pointer",opacity:s?.5:1},children:[(0,n.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("polygon",{points:"13 2 3 14 12 14 11 22 21 10 12 10 13 2"})}),eo("chatInput.fastLabel")]}),(0,n.jsx)("div",{className:"composer-toolbar-spacer",style:{flex:1}}),(0,n.jsxs)("div",{ref:e6,className:"composer-context-ring-wrap",children:[(0,n.jsxs)("button",{type:"button",className:"composer-context-ring","aria-haspopup":rA?"dialog":void 0,"aria-expanded":eb,"aria-label":rA?"Context window usage":"Context window usage unavailable",title:rF??void 0,disabled:!rA,onClick:()=>ew(e=>!e),children:[(0,n.jsxs)("svg",{width:"100%",height:"100%",viewBox:"0 0 26 26","aria-hidden":"true",style:{position:"absolute",inset:0},children:[(0,n.jsx)("circle",{cx:"13",cy:"13",r:"9.5",fill:"none",stroke:"var(--border)",strokeWidth:"2.5"}),(0,n.jsx)("circle",{cx:"13",cy:"13",r:"9.5",fill:"none",stroke:"var(--accent)",strokeWidth:"2.5",strokeLinecap:"round",strokeDasharray:rr,strokeDashoffset:rr*(1-rN/100),transform:"rotate(-90 13 13)"})]}),(0,n.jsx)("span",{className:"composer-context-ring-label",children:rL})]}),rA&&rF&&eb&&(0,n.jsx)("div",{className:"dropdown-surface composer-context-ring-popup",role:"dialog","aria-label":"Context window usage",children:(0,n.jsx)("span",{className:"composer-context-ring-popup-summary",children:rF})})]}),s&&r&&(0,n.jsxs)("button",{type:"button",className:"composer-queue-action composer-queue-action-steer ui-focus-ring",onClick:()=>tH("steer"),disabled:!eu.trim()||!!eS.length||!!eI.length,title:eS.length||eI.length?eo("chatInput.imagesCannotQueue"):eo("chatInput.steerNowTitle"),"aria-label":eo("chatInput.steer"),children:[(0,n.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},"aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M5 1 L9 5 L5 9"}),(0,n.jsx)("line",{x1:"1",y1:"5",x2:"9",y2:"5"})]}),(0,n.jsx)("span",{className:"composer-queue-action-label",children:eo("chatInput.steer")})]}),s&&i&&(0,n.jsxs)("button",{type:"button",className:"composer-queue-action composer-queue-action-followup ui-focus-ring",onClick:()=>tH("followup"),disabled:!eu.trim()||!!eS.length||!!eI.length,title:eS.length||eI.length?eo("chatInput.imagesCannotQueue"):eo("chatInput.followUpTitle"),"aria-label":eo("chatInput.followUp"),children:[(0,n.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},"aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"5",y1:"1",x2:"5",y2:"6"}),(0,n.jsx)("polyline",{points:"2.5 3.5 5 1 7.5 3.5"}),(0,n.jsx)("line",{x1:"2",y1:"9",x2:"8",y2:"9"})]}),(0,n.jsx)("span",{className:"composer-queue-action-label",children:eo("chatInput.followUp")})]}),s?(0,n.jsxs)("button",{className:"composer-primary-action ui-focus-ring",type:"button",onClick:b?y:t,title:eo("chatInput.stopAgent"),"aria-label":eo("chatInput.stopAgent"),"data-state":"stop",children:[(0,n.jsx)("svg",{width:"9",height:"9",viewBox:"0 0 10 10",fill:"none","aria-hidden":"true",children:(0,n.jsx)("rect",{x:"1.5",y:"1.5",width:"7",height:"7",rx:"1.5",fill:"currentColor"})}),(0,n.jsx)("span",{className:"composer-primary-label",children:eo("chatInput.stop")})]}):(0,n.jsxs)("button",{className:"composer-primary-action ui-focus-ring",type:"button",onClick:tk,disabled:!eu.trim()&&!eS.length&&!eI.length,title:eo("chatInput.send"),"aria-label":eo("chatInput.send"),"data-state":"send",children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"2",y1:"7",x2:"11",y2:"7"}),(0,n.jsx)("polyline",{points:"7.5 3 12 7 7.5 11"})]}),(0,n.jsx)("span",{className:"composer-primary-label",children:eo("chatInput.send")})]})]})]})]}),ez&&(0,n.jsx)("div",{className:"text-xs px-2 py-1",style:{color:eN?"var(--text-muted)":"var(--accent)",marginTop:4},children:eN?eo("chatInput.shellLocal"):eo("chatInput.shellToModel")})]})]})}));function rk({request:e,onRespond:t}){let{t:r}=(0,d.s9)(),[i,s]=(0,a.useState)("editor"===e.method?e.prefill??"":"");(0,a.useEffect)(()=>{s("editor"===e.method?e.prefill??"":"")},[e]);let o=()=>t(e,{cancelled:!0}),l=p({onClose:o,active:!0}),c=()=>{"confirm"===e.method?t(e,{confirmed:!0}):t(e,{value:i})};return(0,n.jsx)("div",{className:"animate-fade-in",onMouseDown:e=>{e.target===e.currentTarget&&o()},style:{position:"absolute",inset:0,zIndex:"var(--z-dialog)",display:"flex",alignItems:"center",justifyContent:"center",padding:20,background:"var(--overlay-backdrop)"},children:(0,n.jsxs)("div",{ref:l,role:"dialog","aria-modal":"true","aria-label":e.title,tabIndex:-1,className:"animate-scale-in",style:{width:"min(560px, 100%)",border:"1px solid var(--border)",borderRadius:"var(--radius-modal)",background:"var(--bg)",boxShadow:"var(--shadow-modal)",overflow:"hidden",outline:"none"},children:[(0,n.jsxs)("div",{style:{padding:"var(--space-5) 14px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("div",{style:{color:"var(--text)",fontSize:"var(--text-lg)",fontWeight:650},children:e.title}),(0,n.jsx)("div",{style:{marginTop:3,color:"var(--text-dim)",fontSize:"var(--text-sm)",fontFamily:"var(--font-mono)"},children:r("chatWindow.extensionRequest")})]}),(0,n.jsxs)("div",{style:{padding:14},children:["confirm"===e.method&&(0,n.jsx)("div",{style:{color:"var(--text-muted)",fontSize:"var(--text-base)",lineHeight:1.6,whiteSpace:"pre-wrap"},children:e.message}),"select"===e.method&&(0,n.jsx)("div",{style:{display:"grid",gap:"var(--space-4)"},children:e.options.map(r=>(0,n.jsx)("button",{onClick:()=>t(e,{value:r}),style:{width:"100%",padding:"9px 10px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",cursor:"pointer",textAlign:"left",fontSize:"var(--text-base)",transition:"background-color var(--dur-fast) var(--ease-out-warm), border-color var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg-panel)"},children:r},r))}),"input"===e.method&&(0,n.jsx)("input",{autoFocus:!0,"aria-label":e.title||e.placeholder||"Input value",value:i,placeholder:e.placeholder,onChange:e=>s(e.target.value),onKeyDown:e=>{"Enter"===e.key&&c()},style:{width:"100%",padding:"9px 10px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",outline:"none",fontSize:"var(--text-base)"}}),"editor"===e.method&&(0,n.jsx)("textarea",{autoFocus:!0,"aria-label":e.title||"Input value",value:i,onChange:e=>s(e.target.value),onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&"Enter"===e.key&&c()},style:{width:"100%",minHeight:220,padding:10,borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",outline:"none",resize:"vertical",fontSize:"var(--text-base)",lineHeight:1.55,fontFamily:"var(--font-mono)"}})]}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:"var(--space-4)",padding:"10px 14px",borderTop:"1px solid var(--border)",background:"var(--bg-panel)"},children:[(0,n.jsx)("button",{onClick:o,style:{padding:"var(--space-3) 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text-muted)",cursor:"pointer",transition:"background-color var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg)",e.currentTarget.style.color="var(--text-muted)"},children:r("chatWindow.cancel")}),"confirm"===e.method?(0,n.jsx)("button",{onClick:c,style:{padding:"var(--space-3) 10px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--on-accent)",cursor:"pointer",transition:"background-color var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{e.currentTarget.style.background="var(--accent-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="var(--accent)"},children:r("chatWindow.confirm")}):"select"!==e.method?(0,n.jsx)("button",{onClick:c,style:{padding:"var(--space-3) 10px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--on-accent)",cursor:"pointer",transition:"background-color var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{e.currentTarget.style.background="var(--accent-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="var(--accent)"},children:r("chatWindow.submit")}):null]})]})})}var rj=r(32383);function rS({message:e}){let t="user"===e.role?"U":"assistant"===e.role?"A":"R",r="user"===e.role?"var(--accent)":"assistant"===e.role?"var(--text-muted)":"var(--text-dim)",a=e.content,i=("string"==typeof a?[{type:"text",text:a}]:Array.isArray(a)?a:[]).filter(e=>"text"===e.type&&"string"==typeof e.text).map(e=>e.text).join("\n").slice(0,400),s=!0===e.isError;return(0,n.jsxs)("div",{style:{display:"flex",gap:"var(--space-4)",minWidth:0},children:[(0,n.jsx)("span",{style:{flexShrink:0,fontSize:"var(--text-xs)",fontFamily:"var(--font-mono)",color:r,paddingTop:"var(--space-1)"},children:t}),(0,n.jsx)("div",{style:{fontSize:"toolResult"===e.role||"assistant"===e.role?11.5:12.5,lineHeight:1.55,minWidth:0,whiteSpace:"pre-wrap",wordBreak:"break-word",color:"toolResult"===e.role?"var(--text-muted)":"var(--text)",fontFamily:"toolResult"===e.role?"var(--font-mono)":"inherit"},children:"assistant"===e.role&&"string"!=typeof a&&Array.isArray(a)?a.map((e,t)=>(0,n.jsx)("div",{children:e&&"object"==typeof e&&"toolCall"===e.type?`→ ${e.toolName??"tool"} ${JSON.stringify(e.input??{})}`:e&&"object"==typeof e&&"text"===e.type?e.text??"":""},t)):i||("user"===e.role||"assistant"===e.role?"":s?"(error)":"(no output)")})]})}let rC="calc(var(--space-4) + var(--space-1)) var(--space-5)",rT={fontFamily:"var(--font-mono)",fontSize:"var(--text-xs)",fontWeight:700,letterSpacing:.4,textTransform:"uppercase",color:"var(--text-dim)"};function rI({value:e}){return"string"==typeof e?(0,n.jsx)("div",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",color:"var(--text-muted)",fontSize:"var(--text-md)",lineHeight:1.55},children:e}):Array.isArray(e)?(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"calc(var(--space-3) / 2)"},children:e.map((e,t)=>(0,n.jsxs)("div",{style:{display:"flex",gap:"var(--space-3)",alignItems:"flex-start"},children:[(0,n.jsx)("span",{style:{color:"var(--text-dim)",flexShrink:0},children:"•"}),(0,n.jsx)("div",{style:{minWidth:0,flex:1},children:(0,n.jsx)(rI,{value:e})})]},t))}):null!==e&&"object"==typeof e?(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"var(--space-2)"},children:Object.keys(e).map(t=>(0,n.jsxs)("div",{style:{display:"flex",gap:"var(--space-4)",alignItems:"flex-start"},children:[(0,n.jsx)("span",{style:{flexShrink:0,fontFamily:"var(--font-mono)",fontSize:10.5,color:"var(--text-dim)",minWidth:110,textAlign:"right",paddingTop:"var(--space-1)"},children:t}),(0,n.jsx)("div",{style:{minWidth:0,flex:1},children:(0,n.jsx)(rI,{value:e[t]})})]},t))}):(0,n.jsx)("span",{style:{color:"var(--text-muted)",fontSize:"var(--text-md)"},children:String(e)})}function rE({task:e}){let{t}=(0,d.s9)();return e?(0,n.jsxs)("section",{style:{border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-subtle)",padding:rC},children:[(0,n.jsx)("span",{style:rT,children:t("subagentTranscript.taskLabel")}),(0,n.jsx)("div",{style:{marginTop:"var(--space-3)"},children:(0,n.jsx)(ta,{className:"markdown-subagent-text",children:e})})]}):null}function rM({completion:e,truncated:t}){let{t:r}=(0,d.s9)(),a=null;if(e)try{let t=JSON.parse(e);null===t||"object"!=typeof t||Array.isArray(t)||(a=t)}catch{a=null}let i=a?Object.keys(a):[],s=a&&1===i.length&&"string"==typeof a[i[0]]?a[i[0]]:null;return(0,n.jsxs)("section",{style:{border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)",padding:rC},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:"var(--space-4)"},children:[(0,n.jsx)("span",{style:rT,children:r("subagentTranscript.resultLabel")}),t&&(0,n.jsx)("span",{style:{fontSize:10.5,color:"var(--text-dim)"},children:r("subagentTranscript.completionTruncated")})]}),s?(0,n.jsx)("div",{style:{marginTop:"var(--space-3)",whiteSpace:"pre-wrap",wordBreak:"break-word",color:"var(--text-muted)",fontSize:"var(--text-md)",lineHeight:1.55},children:s}):a?(0,n.jsx)("div",{style:{marginTop:"var(--space-3)"},children:(0,n.jsx)(rI,{value:a})}):e?(0,n.jsx)("div",{style:{marginTop:"var(--space-3)"},children:(0,n.jsx)(ta,{className:"markdown-subagent-text",children:e})}):(0,n.jsx)("div",{style:{marginTop:"var(--space-3)",fontSize:"var(--text-md)",color:"var(--text-dim)",fontStyle:"italic"},children:r("subagentTranscript.noCompletion")})]})}function rR({subagent:e,sessionId:t,transcriptVersion:r,events:i,onClose:s}){let{t:o}=(0,d.s9)(),[l,c]=(0,a.useState)(null),[u,p]=(0,a.useState)(null),[h,m]=(0,a.useState)(!1),[f,g]=(0,a.useState)(!1),[x,v]=(0,a.useState)(null),[y,b]=(0,a.useState)(!1),[w,k]=(0,a.useState)([]),[j,S]=(0,a.useState)(0),[C,T]=(0,a.useState)(!1),[I,E]=(0,a.useState)(null),[M,R]=(0,a.useState)(!1),W=(0,a.useRef)(0),$=(0,a.useRef)(0),z=(0,a.useRef)(0),N=(0,a.useRef)(0),L=(0,a.useRef)(0),A=(0,a.useRef)(null),F=null!==e,D=e?.source==="history",P=!D,B=(0,a.useCallback)(async()=>{if(!t||!e?.id)throw Error("No session");let r=await fetch(`/api/sessions/${encodeURIComponent(t)}/subagents/${encodeURIComponent(e.id)}?mode=completion`);if(404===r.status)return{completion:null,truncated:!1};if(!r.ok)throw Error(`HTTP ${r.status}`);return await r.json()},[t,e?.id]),O=(0,a.useCallback)(async(r,n)=>{if(!t||!e?.id)throw Error("No session");if(n){let n=await fetch(`/api/sessions/${encodeURIComponent(t)}/subagents/${encodeURIComponent(e.id)}?fromByte=${r}`);if(!n.ok)throw Error(`HTTP ${n.status}`);return await n.json()}return await (0,rj.$)(t,{type:"get_subagent_messages",subagentId:e.id,sessionFile:e.sessionFile,fromByte:r})},[t,e?.id,e?.sessionFile]),H=(0,a.useCallback)(async r=>{if(!t||!e?.id)return;let n=++$.current;T(!0),E(null);try{let t;try{t=await O(r,D)}catch(n){if(D||!e.id)throw n;t=await O(r,!0)}if(n!==$.current)return;t.reset?k(t.messages):k(e=>[...e,...t.messages]),S(t.nextByte);let a="number"==typeof t.totalBytes?t.nextByte>=t.totalBytes:0===t.messages.length;R(a||t.nextByte<=t.fromByte)}catch(e){if(n!==$.current)return;E(e instanceof Error?e.message:String(e))}finally{n===$.current&&T(!1)}},[t,e?.id,D,O]),U=(0,a.useCallback)(async()=>{if(!t||!e?.id)return;let r=++W.current;g(!0),v(null);try{let n=await B();if(null===n.completion&&P){let n=((await (0,rj.$)(t,{type:"get_subagents"})).subagents??[]).find(t=>t.id===e?.id);if(r!==W.current)return;n&&c(n)}if(r!==W.current)return;p(n.completion),m(n.truncated)}catch(e){if(r!==W.current)return;v(e instanceof Error?e.message:String(e))}finally{r===W.current&&g(!1)}},[t,e?.id,P,B]);(0,a.useEffect)(()=>{F&&t&&(W.current+=1,$.current+=1,p(null),m(!1),v(null),c(null),b(!1),k([]),S(0),R(!1),E(null),T(!1),U())},[F,t,U]),(0,a.useEffect)(()=>{if(!F||!t||0===r||f)return;let e=r===z.current&&r===L.current,n=r===N.current;if(!e||!n)return L.current=r,A.current&&clearTimeout(A.current),A.current=setTimeout(()=>{A.current=null,z.current!==L.current&&(z.current=L.current,U()),y&&!C&&N.current!==L.current&&(N.current=L.current,H(j))},600),()=>{A.current&&clearTimeout(A.current)}},[F,t,r,f,y,C,U,H,j]);let _=l?.agent??e?.agent??"",V=l?.description??e?.description??"",q=l?.task??e?.task??e?.assignment??"",K=e?.progress,Z=th(K?.tokens),J=e?.source==="history"?[Z?o("chatWindow.tokensUnit",{count:Z}):null,tm(K?.cost),tf(K?.durationMs),K?.resolvedModel?K.resolvedModel.replace(/:.*$/,""):null].filter(Boolean).join(" \xb7 "):null,Y=e?.source==="history"?e?.result?.abortReason??e?.result?.error:void 0,G=P&&!u&&i&&i.length>0?i.slice(-4):null;return(0,n.jsx)(ei.lG,{open:F,onOpenChange:e=>{e||s()},children:e&&(0,n.jsx)(ei.Cf,{ariaLabel:o("subagentTranscript.title"),style:{width:"min(94vw, 920px)",maxWidth:"min(94vw, 920px)"},children:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:"calc(var(--space-4) + var(--space-1))",marginBottom:"var(--space-5)"},children:[(0,n.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,n.jsx)(ei.L3,{style:{marginBottom:2,fontSize:16,lineHeight:1.3},children:(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",color:"var(--accent)",fontSize:"var(--text-lg)"},children:_})}),V&&(0,n.jsx)("div",{style:{fontSize:12.5,color:"var(--text-muted)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginBottom:"var(--space-2)"},children:V}),(0,n.jsx)("div",{style:{fontSize:"var(--text-sm)",color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:l?.sessionFile??e.sessionFile??e.id}),J&&(0,n.jsx)("div",{style:{fontSize:10.5,color:"var(--text-dim)",fontFamily:"var(--font-mono)",marginTop:"var(--space-1)"},children:J}),Y&&(0,n.jsx)("div",{style:{fontSize:"var(--text-sm)",color:"var(--status-error)",marginTop:"var(--space-1)",wordBreak:"break-word"},children:Y})]}),(0,n.jsx)(ei.HM,{style:{flexShrink:0,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:18,lineHeight:1,padding:"2px 6px"},"aria-label":o("subagentTranscript.close"),children:"\xd7"})]}),G&&(0,n.jsx)("div",{"aria-live":"polite",style:{display:"grid",gap:"var(--space-1)",marginBottom:"var(--space-4)",padding:"var(--space-3) var(--control-padding-inline)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)"},children:G.map((e,t)=>(0,n.jsxs)("div",{style:{display:"flex",gap:"var(--space-3)",fontSize:"var(--text-sm)",fontFamily:"var(--font-mono)",color:"tool"===e.kind?"var(--accent)":"var(--text-muted)",minWidth:0},children:[(0,n.jsx)("span",{style:{color:"var(--text-dim)",flexShrink:0},children:"tool"===e.kind?"\xb7":"notice"===e.kind?"!":"\xbb"}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.label})]},t))}),x?(0,n.jsx)("div",{style:{fontSize:"var(--text-md)",color:"var(--status-error)",padding:"8px 2px"},children:x}):(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"calc(var(--space-4) + var(--space-1))"},children:[(0,n.jsx)(rE,{task:q}),(0,n.jsx)(rM,{completion:u,truncated:h}),f&&(0,n.jsx)("div",{style:{fontSize:"var(--text-sm)",color:"var(--text-dim)"},children:o("subagentTranscript.loading")}),(0,n.jsx)("button",{type:"button","aria-expanded":y,"aria-controls":"subagent-transcript-panel",onClick:()=>{let e=!y;b(e),e&&0===w.length&&!C&&H(0)},style:{alignSelf:"flex-start",background:"none",border:"none",color:"var(--accent)",cursor:"pointer",fontSize:"var(--text-md)",fontFamily:"inherit",padding:0},children:o(y?"subagentTranscript.hideTranscript":"subagentTranscript.showTranscript")}),y&&(0,n.jsxs)("div",{id:"subagent-transcript-panel",style:{display:"grid",gap:"var(--space-4)",padding:rC,border:"1px solid var(--border)",borderRadius:"var(--radius-card)",background:"var(--bg-panel)",maxHeight:"50dvh",overflowY:"auto"},children:[I?(0,n.jsx)("div",{style:{fontSize:"var(--text-md)",color:"var(--status-error)"},children:I}):0!==w.length||C?w.map((e,t)=>(0,n.jsx)(rS,{message:e},t)):(0,n.jsx)("div",{style:{fontSize:"var(--text-md)",color:"var(--text-dim)",fontStyle:"italic"},children:o("subagentTranscript.noMessages")}),C&&(0,n.jsx)("div",{style:{fontSize:"var(--text-sm)",color:"var(--text-dim)"},children:o("subagentTranscript.loading")}),!M&&!C&&(0,n.jsx)("button",{type:"button",onClick:()=>void H(j),style:{background:"none",border:"none",color:"var(--accent)",cursor:"pointer",fontSize:"var(--text-md)",fontFamily:"inherit",padding:0},children:o("subagentTranscript.loadMore")})]})]})]})},e.id)})}function rW(e){if("user"===e.role){let t=e.content;return"string"==typeof t?t.slice(0,200):Array.isArray(t)?t.filter(e=>"text"===e.type&&e.text).map(e=>e.text).join("\n").slice(0,200):""}if("assistant"===e.role){let t=e.content??[],r=t.filter(e=>"text"===e.type).map(e=>e.text).join(" ");if(r)return r.slice(0,200);let n=t.filter(e=>"toolCall"===e.type).map(e=>e.toolName);if(n.length)return n.join(", ")}return""}function r$(e){return"user"===e.role?{bg:"color-mix(in srgb, var(--accent) 18%, transparent)",border:"color-mix(in srgb, var(--accent) 70%, transparent)"}:{bg:"color-mix(in srgb, var(--text-dim) 12%, transparent)",border:"color-mix(in srgb, var(--text-dim) 50%, transparent)"}}let rz=(0,a.memo)(function({messages:e,scrollContainer:t,messageRefs:r}){let[i,s]=(0,a.useState)(0),[o,l]=(0,a.useState)(1),[d,c]=(0,a.useState)(!1),[u,p]=(0,a.useState)([]),[h,m]=(0,a.useState)(!1),[f,g]=(0,a.useState)(null),x=(0,a.useRef)(!1),v=(0,a.useRef)(null),y=(0,a.useRef)(null),b=(0,a.useRef)(null),w=(0,a.useRef)(null),k=(0,a.useRef)(e);k.current=e;let j=(0,a.useCallback)(()=>{let e=t.current;if(!e)return;let r=e.scrollHeight,n=e.clientHeight,a=r-n;c(a>20),a<=0?(s(0),l(1)):(s(e.scrollTop/a),l(n/r))},[t]),S=(0,a.useRef)(null),C=(0,a.useCallback)(()=>{S.current||(S.current=setTimeout(()=>{S.current=null;let e=t.current;if(!e)return;let n=e.scrollHeight;if(n<=0)return;let a=r.current,i=[],s=0,o=k.current,l=e.getBoundingClientRect();for(let t=0;t<o.length;t++){let r=o[t];if("user"!==r.role&&"assistant"!==r.role)continue;let d=a?.[s];if(s++,("user"===r.role||"assistant"===r.role&&(r.content??[]).some(e=>"text"===e.type))&&d){let t=d.getBoundingClientRect(),a=t.top-l.top+e.scrollTop,s=t.height;i.push({topRatio:a/n,heightRatio:s/n,msg:r,index:i.length})}}p(i)},150))},[t,r]),T=(0,a.useRef)(null),I=(0,a.useCallback)(()=>{T.current=null,j()},[j]);(0,a.useEffect)(()=>{let e=t.current;if(!e)return;let r=()=>{null===T.current&&(T.current=requestAnimationFrame(I))};return e.addEventListener("scroll",r,{passive:!0}),()=>{e.removeEventListener("scroll",r),null!==T.current&&(cancelAnimationFrame(T.current),T.current=null)}},[t,I]),(0,a.useEffect)(()=>{let e=t.current;if(!e)return;let r=()=>{j(),C()},n=new ResizeObserver(r);return n.observe(e),e.firstElementChild&&n.observe(e.firstElementChild),r(),()=>{n.disconnect(),S.current&&(clearTimeout(S.current),S.current=null)}},[t,C,j]),(0,a.useEffect)(()=>{let e=setTimeout(()=>{j(),C()},50);return()=>clearTimeout(e)},[e.length,C,j]),(0,a.useEffect)(()=>()=>{null!==b.current&&(cancelAnimationFrame(b.current),b.current=null)},[]);let E=(0,a.useCallback)(e=>{let r=t.current;if(!r)return;let n=r.scrollHeight-r.clientHeight;n<=0||(r.scrollTop=Math.max(0,Math.min(1-o,e))/(1-o)*n)},[t,o]),M=(0,a.useCallback)(()=>{b.current=null,null!==w.current&&(g(w.current),w.current=null)},[]),R=(0,a.useCallback)(e=>{let t=e.currentTarget.getBoundingClientRect();w.current=(e.clientY-t.top)/t.height,null===b.current&&(b.current=requestAnimationFrame(M))},[M]),W=(0,a.useCallback)(e=>{if(!d)return;x.current=!0;let t=e.currentTarget.getBoundingClientRect(),r=(e.clientY-t.top)/t.height,n=r-i*(1-o),a=n>=0&&n<=o?n:o/2;E(r-a);let s=e=>{x.current&&E((e.clientY-t.top)/t.height-a)},l=()=>{x.current=!1,v.current=null,window.removeEventListener("mousemove",s),window.removeEventListener("mouseup",l)};window.addEventListener("mousemove",s),window.addEventListener("mouseup",l),v.current={onMove:s,onUp:l}},[d,o,i,E]);(0,a.useEffect)(()=>()=>{let e=v.current;e&&(window.removeEventListener("mousemove",e.onMove),window.removeEventListener("mouseup",e.onUp),v.current=null),x.current=!1},[]);let $=y.current?.clientHeight??600,z=(0,a.useMemo)(()=>u.map(e=>r$(e.msg)),[u]),N=(0,a.useMemo)(()=>u.map(e=>rW(e.msg)),[u]),L=(0,a.useMemo)(()=>{if(!h||0===u.length)return[];let e=u.map(e=>Math.round(e.topRatio*$-11));for(let t=0;t<10;t++){for(let t=1;t<e.length;t++){let r=e[t-1]+22+2;e[t]<r&&(e[t]=r)}for(let t=e.length-2;t>=0;t--){let r=e[t+1]-22-2;e[t]>r&&(e[t]=r)}}for(let t=0;t<e.length;t++)e[t]=Math.max(0,Math.min($-22,e[t]));return e},[h,u,$]);if(!d)return null;let A=i*(1-o)*100,F=100*o,D=null!==f&&u.length>0?u.reduce((e,t)=>Math.abs(t.topRatio-f)<Math.abs(u[e].topRatio-f)?t.index:e,0):null;return(0,n.jsxs)("div",{ref:y,onMouseDown:W,onMouseEnter:()=>m(!0),onMouseLeave:()=>{m(!1),g(null)},onMouseMove:R,style:{position:"absolute",top:0,right:0,bottom:0,width:20,zIndex:20,cursor:"default",userSelect:"none",background:"transparent",overflow:"visible"},children:[(0,n.jsx)("div",{style:{position:"absolute",right:3,width:3,top:`${A}%`,height:`${F}%`,background:"color-mix(in srgb, var(--text-dim) 32%, transparent)",borderRadius:2,pointerEvents:"none",zIndex:1}}),u.map(e=>{let t=z[e.index]??r$(e.msg),r=h&&D===e.index,a="user"===e.msg.role,i=100*e.topRatio;return(0,n.jsx)("div",{style:{position:"absolute",top:`${i}%`,transform:"translateY(-50%)",left:0,right:0,height:"12px",display:"flex",alignItems:"center",justifyContent:"flex-end",paddingRight:1,cursor:"pointer",zIndex:2},children:(0,n.jsx)("div",{style:{width:a?8:6,height:a?8:6,borderRadius:a?2:"50%",background:t.bg,border:`1.5px solid ${t.border}`,flexShrink:0,transition:"transform var(--dur-fast) var(--ease-out-warm)",transform:r?"scale(1.6)":"scale(1)"}})},e.index)}),(0,n.jsx)("div",{style:{position:"absolute",right:4,top:0,bottom:0,width:1,background:"color-mix(in srgb, var(--border) 72%, transparent)",zIndex:0}}),h&&u.map((e,t)=>{let r=N[t]??rW(e.msg),a=z[t]??r$(e.msg),i=D===e.index;return r&&0!==L.length?(0,n.jsx)("div",{style:{position:"absolute",top:L[t],right:"100%",marginRight:6,background:"var(--bg)",borderTop:`1px solid ${i?a.border:"var(--border)"}`,borderRight:`1px solid ${i?a.border:"var(--border)"}`,borderBottom:`1px solid ${i?a.border:"var(--border)"}`,borderLeft:`2px solid ${a.border}`,borderRadius:4,padding:"2px 7px",width:200,zIndex:100,pointerEvents:"none",opacity:i?1:.45,transition:"top var(--dur-fast) var(--ease-out-warm), opacity var(--dur-fast) var(--ease-out-warm)"},children:(0,n.jsx)("div",{style:{fontSize:"var(--text-sm)",color:i?"var(--text)":"var(--text-muted)",lineHeight:1.4,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:r})},e.index):null})]})});var rN=r(58769);let rL={display:"flex",alignItems:"center",gap:"var(--space-4)",padding:"var(--space-4) var(--space-5)",fontSize:"var(--text-xs)",color:"var(--text-muted)"};function rA({status:e}){let t={size:14,strokeWidth:1.8,"aria-hidden":!0};return"completed"===e?(0,n.jsx)(td.A,{...t,color:"var(--accent)"}):"in_progress"===e?(0,n.jsx)(rN.A,{...t,color:"var(--accent)"}):"blocked"===e?(0,n.jsx)(E.A,{...t,color:"var(--text-muted)"}):"abandoned"===e?(0,n.jsx)(tc.A,{...t,color:"var(--text-dim)"}):(0,n.jsx)(tu.A,{...t,color:"var(--text-dim)"})}function rF({phases:e=[],collapsible:t=!1,defaultExpanded:r=!1}){let{t:i}=(0,d.s9)(),[s,o]=(0,a.useState)(!1),[l,c]=(0,a.useState)(!!t&&!r);if(0===e.length)return null;let u=e.flatMap(e=>e.tasks),p=u.filter(e=>"completed"===e.status).length,h=5,m=(s?e:e.slice(0,4)).map(e=>{let t=s?e.tasks:e.tasks.slice(0,h);return h-=t.length,{...e,tasks:t}}).filter(e=>e.tasks.length>0),f=m.reduce((e,t)=>e+t.tasks.length,0)<u.length,g=l?"":"border-b border-border",x=i("chatWindow.todoProgress",{done:p,total:u.length});return(0,n.jsxs)("section",{"aria-label":i("chatWindow.todoList"),className:"overflow-hidden border border-border bg-bg-subtle",style:{borderRadius:"var(--radius-card)",marginBlock:t?void 0:"var(--space-4)"},children:[t?(0,n.jsxs)("button",{type:"button","aria-expanded":!l,onClick:()=>c(e=>!e),title:l?i("chatWindow.expandPanel"):i("chatWindow.collapsePanel"),className:`${g} w-full cursor-pointer text-left`,style:{...rL,background:"none"},children:[(0,n.jsx)(tq.A,{size:15,strokeWidth:1.8,"aria-hidden":!0}),(0,n.jsx)("strong",{className:"font-medium text-text",children:i("chatWindow.todoList")}),(0,n.jsx)("span",{className:"ml-auto",children:x}),(0,n.jsx)(eW.A,{size:14,strokeWidth:1.8,"aria-hidden":!0,style:{color:"var(--text-dim)",transform:l?"rotate(-90deg)":"rotate(0deg)",transition:"transform var(--dur-med) var(--ease-out-warm)"}})]}):(0,n.jsxs)("div",{className:g,style:rL,children:[(0,n.jsx)(tq.A,{size:15,strokeWidth:1.8,"aria-hidden":!0}),(0,n.jsx)("strong",{className:"font-medium text-text",children:i("chatWindow.todoList")}),(0,n.jsx)("span",{className:"ml-auto",children:x})]}),!l&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"animate-slide-down",style:{display:"grid",gap:"var(--space-5)",padding:"calc(var(--space-4) + var(--space-1)) var(--space-5)"},children:m.map((e,t)=>(0,n.jsxs)("div",{style:{display:"grid",gap:"var(--space-3)"},children:[(0,n.jsx)("div",{className:"text-sm font-medium text-text-muted",children:e.name}),(0,n.jsx)("div",{style:{display:"grid",gap:"var(--space-3)"},children:e.tasks.map((e,t)=>(0,n.jsxs)("div",{style:{display:"flex",minWidth:0,alignItems:"flex-start",gap:"var(--space-4)",fontSize:"var(--text-base)",color:"var(--text)"},"aria-label":`${i(`chatWindow.todoStatus.${e.status}`)}: ${e.content}`,children:[(0,n.jsx)("span",{style:{marginTop:"var(--space-1)",flexShrink:0},children:(0,n.jsx)(rA,{status:e.status})}),(0,n.jsxs)("span",{className:"min-w-0",children:[(0,n.jsx)("span",{className:"completed"===e.status||"abandoned"===e.status?"text-text-dim line-through":void 0,children:e.content}),e.blocker&&(0,n.jsx)("span",{style:{display:"block",marginTop:"var(--space-1)",fontSize:"var(--text-sm)",color:"var(--text-muted)"},children:i("chatWindow.todoBlocker",{blocker:e.blocker})})]})]},e.id??`${e.content}-${t}`))})]},e.id??`${e.name}-${t}`))}),(f||s)&&(0,n.jsx)("button",{type:"button",className:"border-t border-border text-left text-xs text-accent hover:text-accent-hover",style:{padding:"var(--space-4) var(--space-5)"},onClick:()=>o(e=>!e),children:s?i("chatWindow.todoShowLess"):i("chatWindow.todoShowAll")})]})]})}var rD=r(57990),rP=r(36338),rB=r(88359),rO=r(12651),rH=r(85302),rU=r(90710),r_=r(59103),rV=r(83599),rq=r(14577);function rK(e,t){switch(t){case"active":return e.filter(e=>"history"!==e.source&&"started"===e.status);case"completed":return e.filter(e=>"completed"===e.status);case"failed":return e.filter(e=>"failed"===e.status||"aborted"===e.status);default:return e}}function rZ(e){return"history"===e.source?"history":"live"}function rJ(e){return"started"!==e.status}function rY(e,t,r){if(0===t.length)return e;let n=new Map;for(let t of e)n.set(t.id,t);let a=r?.skipNewerThan;for(let e of t){let t=n.get(e.id);if(!t){n.set(e.id,e);continue}if(void 0!==a&&(t.lastUpdate??0)>=a)continue;let r=rZ(t),i=rZ(e);if("history"===i&&"live"===r){if(!rJ(e))continue;let r={...t};for(let[t,n]of Object.entries(e))void 0!==n&&(r[t]=n);r.source="history",n.set(e.id,r);continue}if("live"===i&&"history"===r){n.set(e.id,e);continue}"history"===i&&!rJ(e)&&rJ(t)||n.set(e.id,{...t,...e,source:i})}return[...n.values()].sort((e,t)=>e.index-t.index||e.id.localeCompare(t.id))}let rG={started:"chatWindow.subagentState.started",completed:"chatWindow.subagentState.completed",failed:"chatWindow.subagentState.failed",aborted:"chatWindow.subagentState.aborted"},rX=[{value:"all",key:"chatWindow.subagentHub.filter.all"},{value:"active",key:"chatWindow.subagentHub.filter.active"},{value:"completed",key:"chatWindow.subagentHub.filter.completed"},{value:"failed",key:"chatWindow.subagentHub.filter.failed"}];function rQ({icon:e,label:t,children:r}){return(0,n.jsxs)("span",{"aria-label":t,title:t,"data-subagent-metric":t,style:{display:"inline-flex",alignItems:"center",gap:"var(--space-2)",minWidth:0,fontVariantNumeric:"tabular-nums"},children:[(0,n.jsx)(e,{"aria-hidden":!0,style:{width:"var(--text-md)",height:"var(--text-md)",flexShrink:0}}),(0,n.jsx)("span",{children:r})]})}function r0({subagent:e}){let{t}=(0,d.s9)(),r=e.progress,a=!!(r?.retryState??r?.retryFailure),i=[];if(a){let e=r?.retryState?.attempt??r?.retryFailure?.attempt??0,a=r?.retryState?.maxAttempts??0,s=a>0?t("chatWindow.subagentRetrying",{attempt:e,max:a}):t("chatWindow.subagentRetryAttempt",{attempt:e});i.push((0,n.jsx)(rQ,{icon:eS.A,label:s,children:a>0?`${e}/${a}`:e},"retry"))}else if("started"===e.status){let e=r?.currentTool?`${r.currentTool}${r.lastIntent?` — ${r.lastIntent}`:""}`:r?.lastIntent;e&&i.push((0,n.jsx)(rQ,{icon:r?.currentTool?rD.A:rP.A,label:e,children:e},"activity"))}let s=function(e){if(!e)return 0;let t=0,r=e.inflightTaskDetails;r&&"object"==typeof r&&!Array.isArray(r)&&Array.isArray(r.progress)&&(t+=r.progress.length);let n=e.extractedToolData?.task;if(Array.isArray(n))for(let e of n)e&&"object"==typeof e&&!Array.isArray(e)&&Array.isArray(e.progress)&&(t+=e.progress.length);return t}(r),o=e.agentSource&&"bundled"!==e.agentSource?e.agentSource:null,l=th(r?.tokens),c=tm(r?.cost??e.result?.cost),u=th(r?.contextTokens),p=u?`${u}/${th(r?.contextWindow)??"?"}`:null,h=tg(r?.resolvedModel),m=tf(r?.durationMs),f=[o?(0,n.jsx)(rQ,{icon:rB.A,label:o,children:"user"===o?null:o},"source"):null,s>0?(0,n.jsx)(rQ,{icon:ez.A,label:t("chatWindow.subagentNestedCount",{count:s}),children:s},"nested"):null,l?(0,n.jsx)(rQ,{icon:rO.A,label:t("chatWindow.tokensUnit",{count:l}),children:l},"tokens"):null,c?(0,n.jsx)(rQ,{icon:rH.A,label:c,children:c},"cost"):null,p?(0,n.jsx)(rQ,{icon:eM.A,label:t("chatWindow.contextGauge",{used:u??"?",total:th(r?.contextWindow)??"?"}),children:p},"context"):null,h?(0,n.jsx)(rQ,{icon:rU.A,label:h,children:h},"model"):null,m?(0,n.jsx)(rQ,{icon:r_.A,label:m,children:m},"duration"):null].filter(Boolean);return(f.length>0&&i.push((0,n.jsx)("span",{style:{display:"inline-flex",flexWrap:"wrap",gap:"var(--space-2) var(--space-4)"},children:f},"meta")),0===i.length)?null:(0,n.jsx)("span",{style:{display:"flex",minWidth:0,overflow:"hidden",fontSize:"var(--text-xs)",fontFamily:"var(--font-mono)",color:a?"var(--accent)":"var(--text-dim)",lineHeight:1.4,fontVariantNumeric:"tabular-nums",gap:"var(--space-4)",flexWrap:"wrap"},children:i})}function r1({events:e}){let{t}=(0,d.s9)(),r=(e??[]).slice(-2).map(e=>e.label.trim()).filter(Boolean);if(0===r.length)return null;let a=r.join(" \xb7 "),i=`${t("chatWindow.subagentHub.preview")}: ${a}`;return(0,n.jsxs)("span",{title:i,"aria-label":i,style:{display:"flex",minWidth:0,overflow:"hidden",color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:"var(--text-xs)",lineHeight:1.4,wordBreak:"keep-all"},children:[(0,n.jsxs)("span",{style:{flexShrink:0,color:"var(--text-muted)"},children:[t("chatWindow.subagentHub.preview"),":"]}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginLeft:"var(--space-2)"},children:a})]})}function r2({children:e,depth:t=0}){return(0,n.jsx)("div",{style:{marginLeft:t>0?`calc(var(--space-6) * ${t})`:void 0,color:"var(--text-dim)",fontSize:"var(--text-xs)",fontWeight:650,letterSpacing:"0.04em",textTransform:"uppercase",padding:"var(--space-2) var(--space-5) var(--space-2)",wordBreak:"keep-all"},children:e})}function r5({subagent:e,events:t,freshnessNow:r,onSelectSubagent:a}){let{t:i}=(0,d.s9)(),s="history"!==e.source,o=i(rG[e.status]),l="history"!==e.source||"started"!==e.status,c=e.task??e.description??e.assignment??i("chatWindow.subagentHub.noTask"),u=void 0===r?"history"===e.source?"history":"live":function(e,t=Date.now()){return"history"===e.source?"history":"started"!==e.status?"live":void 0===e.lastUpdate||t-e.lastUpdate>15e3?"stale":"live"}(e,r),p=i(`chatWindow.subagentHub.fresh.${u}`),h="stale"===u&&void 0!==r&&"number"==typeof e.lastUpdate?Math.max(Math.ceil(15),Math.floor(Math.max(0,r-e.lastUpdate)/1e3)):null,m=null===h?null:i("chatWindow.subagentHub.lastUpdated",{value:`${h}s`}),f=m?`${p} \xb7 ${m}`:p,g="live"===u?"var(--status-success)":"stale"===u?"var(--status-warning)":"var(--text-dim)",x=[e.agent,c,l?o:null,f].filter(Boolean).join(" \xb7 ");return(0,n.jsxs)("button",{type:"button",className:"ui-focus-ring",onClick:()=>a(e),"aria-label":x,title:x,style:{display:"flex",width:"100%",minWidth:0,minHeight:"var(--control-touch, 44px)",flexDirection:"column",alignItems:"stretch",justifyContent:"center",gap:"var(--space-2)",padding:"var(--space-4) var(--space-5)",border:"thin solid var(--border)",borderRadius:"var(--radius-control)",background:s?"var(--bg)":"var(--bg-panel)",color:s?"var(--text)":"var(--text-dim)",opacity:s?1:.72,fontFamily:"inherit",fontSize:"var(--text-sm)",textAlign:"left",cursor:"pointer",wordBreak:"keep-all",transition:"border-color var(--dur-fast) var(--ease-out-warm), background var(--dur-fast) var(--ease-out-warm), opacity var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{e.currentTarget.style.borderColor="color-mix(in srgb, var(--accent) 40%, var(--border))",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background=s?"var(--bg)":"var(--bg-panel)"},children:[(0,n.jsxs)("span",{style:{display:"flex",minWidth:0,alignItems:"center",gap:"var(--space-3)"},children:[(0,n.jsx)(tp,{status:e.status,live:s}),(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--accent)",fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)",fontWeight:650},children:e.agent}),(0,n.jsx)("span",{title:c,style:{minWidth:0,flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"inherit"},children:c}),l&&(0,n.jsx)("span",{style:{flexShrink:0,color:s?"var(--text-muted)":"var(--text-dim)",fontSize:"var(--text-xs)"},children:o}),(0,n.jsxs)("span",{"data-subagent-freshness":u,"aria-label":f,title:f,style:{display:"inline-flex",flexShrink:0,alignItems:"center",gap:"var(--space-2)",color:g,fontSize:"var(--text-xs)",fontVariantNumeric:"tabular-nums",opacity:"history"===u?.8:.9},children:[(0,n.jsx)("span",{"aria-hidden":!0,style:{width:"var(--space-2)",height:"var(--space-2)",flexShrink:0,borderRadius:"var(--radius-control)",background:g}}),(0,n.jsx)("span",{children:p}),m&&(0,n.jsx)("span",{children:m})]}),e.detached&&(0,n.jsx)("span",{"aria-hidden":!0,style:{flexShrink:0,color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)"},children:"⤴"})]}),(0,n.jsx)(r0,{subagent:e}),(0,n.jsx)(r1,{events:t})]})}function r4({subagents:e,subagentEvents:t={},onSelectSubagent:r,defaultExpanded:i=!1,now:s}){let{t:o}=(0,d.s9)(),[l,c]=(0,a.useState)(!i),[u,p]=(0,a.useState)("all"),[h,m]=(0,a.useState)(null),f=e.filter(e=>"history"!==e.source&&"started"===e.status).length,g=e.some(e=>"history"!==e.source&&"started"===e.status);(0,a.useEffect)(()=>{if(void 0!==s||l||!g)return;let e=()=>m(Date.now());e();let t=window.setInterval(e,5e3);return()=>window.clearInterval(t)},[l,g,s]);let x=s??h??0,v=void 0!==s||null!==h,y=(0,a.useMemo)(()=>({all:e.length,active:rK(e,"active").length,completed:rK(e,"completed").length,failed:rK(e,"failed").length}),[e]),b=(0,a.useMemo)(()=>rK(e,u),[e,u]),w=(0,a.useMemo)(()=>(function(e){let t=[...e].sort((e,t)=>e.index-t.index||e.id.localeCompare(t.id)),r=new Set(t.map(e=>e.id)),n=new Map,a=[],i=new Map;for(let e of t){let t=e.parentToolCallId;if(!t){a.push(e);continue}let s=n.get(t)??[];if(s.push(e),n.set(t,s),!r.has(t)){let r=i.get(t)??[];r.push(e),i.set(t,r)}}let s=[],o=new Set,l=(e,t)=>{for(let r of e){if(o.has(r.id))continue;o.add(r.id),s.push({kind:"row",key:`row-${r.id}`,subagent:r,depth:t});let e=(n.get(r.id)??[]).filter(e=>!o.has(e.id));0!==e.length&&(s.push({kind:"group",key:`group-nested-${r.id}`,group:"nested",parentLabel:r.agent,depth:t+1}),l(e,t+1))}};if(a.length>0&&(s.push({kind:"group",key:"group-roots",group:"roots",depth:0}),l(a,0)),i.size>0)for(let[e,t]of(s.push({kind:"group",key:"group-orphans",group:"orphans",depth:0}),i))s.push({kind:"group",key:`group-parent-${e}`,group:"nested",parentLabel:e,depth:0}),l(t,0);let d=t.filter(e=>!o.has(e.id));return d.length>0&&l(d,0),s})(b),[b]);return(0,n.jsxs)("section",{"aria-label":o("chatWindow.subagentsPanel"),style:{width:"100%",minWidth:0,overflow:"hidden",border:"thin solid var(--border)",borderRadius:"var(--radius-card)",background:"var(--bg-panel)"},children:[(0,n.jsxs)("button",{type:"button",className:"ui-focus-ring","aria-expanded":!l,onClick:()=>c(e=>!e),title:l?o("chatWindow.subagentHub.expand"):o("chatWindow.subagentHub.collapse"),style:{display:"flex",width:"100%",minHeight:"var(--control-touch, 44px)",alignItems:"center",gap:"var(--space-3)",padding:"var(--space-4) var(--space-5)",border:"none",borderBottom:l?"none":"thin solid var(--border)",background:"transparent",color:"var(--text-muted)",fontFamily:"inherit",fontSize:"var(--text-sm)",textAlign:"left",cursor:"pointer",wordBreak:"keep-all"},children:[(0,n.jsx)(rV.A,{"aria-hidden":!0,style:{width:"var(--text-lg)",height:"var(--text-lg)",flexShrink:0}}),(0,n.jsx)("strong",{style:{color:"var(--text)",fontWeight:650},children:o("chatWindow.subagentsPanel")}),(0,n.jsxs)("span",{"aria-label":o("chatWindow.subagentSummary",{running:f,total:e.length}),title:o("chatWindow.subagentSummary",{running:f,total:e.length}),style:{display:"inline-flex",alignItems:"center",gap:"var(--space-2)",marginLeft:"auto",fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)",fontVariantNumeric:"tabular-nums"},children:[(0,n.jsx)("span",{children:f}),(0,n.jsx)("span",{"aria-hidden":!0,children:"/"}),(0,n.jsx)("span",{children:e.length})]}),(0,n.jsx)(eW.A,{"aria-hidden":!0,style:{width:"var(--text-lg)",height:"var(--text-lg)",flexShrink:0,color:"var(--text-dim)",transform:l?"rotate(-90deg)":"rotate(0deg)",transition:"transform var(--dur-med) var(--ease-out-warm)"}})]}),!l&&(0,n.jsxs)("div",{style:{display:"grid",maxHeight:"30vh",gap:"var(--space-4)",overflowY:"auto",padding:"var(--space-4) var(--space-5) var(--space-5)"},children:[(0,n.jsx)("div",{"data-subagent-filter-row":!0,role:"group",style:{display:"flex",minWidth:0,flexWrap:"wrap",gap:"var(--space-1)",alignItems:"center",padding:"var(--space-1)",border:"thin solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-subtle)"},children:rX.map(({value:e,key:t})=>{let r=u===e,a=o(t);return(0,n.jsxs)("button",{type:"button",className:"ui-focus-ring","data-subagent-filter":e,"aria-pressed":r,title:`${a} (${y[e]})`,onClick:()=>p(e),style:{display:"inline-flex",minHeight:"var(--control-touch, 44px)",alignItems:"center",gap:"var(--space-2)",padding:"var(--space-2) var(--space-3)",border:"none",borderRadius:"var(--radius-control)",background:r?"color-mix(in srgb, var(--accent) 16%, var(--bg))":"transparent",color:r?"var(--accent)":"var(--text-muted)",fontFamily:"inherit",fontSize:"var(--text-xs)",fontWeight:r?650:550,cursor:"pointer",wordBreak:"keep-all",transition:"background var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},children:[(0,n.jsx)("span",{children:a}),(0,n.jsx)("span",{"aria-hidden":!0,style:{display:"inline-flex",minWidth:"var(--space-8)",height:"var(--space-6)",alignItems:"center",justifyContent:"center",padding:"0 var(--space-2)",borderRadius:"var(--radius-control)",background:r?"color-mix(in srgb, var(--accent) 20%, transparent)":"var(--bg-subtle)",color:r?"var(--accent)":"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:"var(--text-xs)",fontVariantNumeric:"tabular-nums"},children:y[e]})]},e)})}),0===b.length?(0,n.jsx)("div",{style:{padding:"var(--space-5)",color:"var(--text-dim)",fontSize:"var(--text-sm)",textAlign:"center",wordBreak:"keep-all"},children:o("chatWindow.subagentHub.empty")}):w.map(e=>{if("group"===e.kind){let t="roots"===e.group?o("chatWindow.subagentHub.group.roots"):"orphans"===e.group?o("chatWindow.subagentHub.group.orphans"):o("chatWindow.subagentHub.group.nested",{agent:e.parentLabel??""});return(0,n.jsx)(r2,{depth:e.depth,children:t},e.key)}let a=e.depth>0?{marginLeft:`calc(var(--space-6) * ${e.depth})`,paddingLeft:"var(--space-5)",borderLeft:"thin solid var(--border)"}:void 0;return(0,n.jsx)("div",{style:{display:"grid",gap:"var(--space-3)",...a},children:(0,n.jsx)(r5,{subagent:e.subagent,events:t[e.subagent.id],freshnessNow:v?x:void 0,onSelectSubagent:r})},e.key)}),(0,n.jsxs)("div",{"data-subagent-observe-only":!0,role:"note",style:{display:"flex",minWidth:0,alignItems:"flex-start",gap:"var(--space-3)",padding:"var(--space-3) var(--space-4)",border:"thin solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-subtle)",color:"var(--text-dim)",wordBreak:"keep-all"},children:[(0,n.jsx)(rq.A,{"aria-hidden":!0,style:{width:"var(--text-md)",height:"var(--text-md)",flexShrink:0,marginTop:"var(--space-1)"}}),(0,n.jsxs)("span",{style:{display:"grid",minWidth:0,gap:"var(--space-1)",fontSize:"var(--text-xs)",lineHeight:1.4},children:[(0,n.jsx)("strong",{style:{color:"var(--text-muted)",fontWeight:650},children:o("chatWindow.subagentHub.observeOnly")}),(0,n.jsx)("span",{title:o("chatWindow.subagentHub.observeOnlyHint"),children:o("chatWindow.subagentHub.observeOnlyHint")})]})]})]})]})}function r3({todoPhases:e,subagents:t,subagentEvents:r,onSelectSubagent:a,defaultExpanded:i=!1}){return 0===e.length&&0===t.length?null:(0,n.jsxs)("div",{style:{display:"grid",gap:"var(--space-3)",marginBottom:"var(--space-4)"},children:[(0,n.jsx)(rF,{phases:e,collapsible:!0,defaultExpanded:i}),t.length>0&&(0,n.jsx)(r4,{subagents:t,subagentEvents:r,onSelectSubagent:a,defaultExpanded:i})]})}function r6(e){if("assistant"!==e.role)return e;let t=e.content;if(!Array.isArray(t))return e;let r=t.map(e=>("object"!=typeof e||null===e||Array.isArray(e)||"toolCall"!==e.type?null:{type:"toolCall",toolCallId:"string"==typeof e.toolCallId?e.toolCallId:"string"==typeof e.id?e.id:"",toolName:"string"==typeof e.toolName?e.toolName:"string"==typeof e.name?e.name:"",input:"object"!=typeof e.input||null===e.input||Array.isArray(e.input)?"object"!=typeof e.arguments||null===e.arguments||Array.isArray(e.arguments)?{}:e.arguments:e.input})??e);return{...e,content:r}}let r8=[],r9=["read","bash","edit","write","task"],r7=["bash","read","edit","write","grep","find","ls","task"],ne="omp-web:tool-preset";function nt(){try{return window.localStorage}catch{return null}}function nr(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function nn(e){return"string"==typeof e?e:void 0}function na(e){return"number"==typeof e&&Number.isFinite(e)?e:void 0}function ni(e){return"bundled"===e||"user"===e||"project"===e?e:void 0}function ns(e){var t;if(!nr(e))return;let r={},n=na(e.index);void 0!==n&&(r.index=n);let a=nn(e.id);void 0!==a&&(r.id=a);let i=nn(e.agent);void 0!==i&&(r.agent=i);let s=ni(e.agentSource);void 0!==s&&(r.agentSource=s);let o="pending"===(t=e.status)||"running"===t||"completed"===t||"failed"===t||"aborted"===t?t:void 0;void 0!==o&&(r.status=o);let l=nn(e.task);void 0!==l&&(r.task=l);let d=nn(e.assignment);void 0!==d&&(r.assignment=d);let c=nn(e.description);void 0!==c&&(r.description=c);let u=nn(e.lastIntent);void 0!==u&&(r.lastIntent=u);let p=nn(e.currentTool);void 0!==p&&(r.currentTool=p);let h=nn(e.currentToolArgs);void 0!==h&&(r.currentToolArgs=h);let m=na(e.currentToolStartMs);void 0!==m&&(r.currentToolStartMs=m),Array.isArray(e.recentTools)&&(r.recentTools=e.recentTools),Array.isArray(e.recentOutput)&&(r.recentOutput=e.recentOutput.filter(e=>"string"==typeof e));let f=na(e.toolCount);void 0!==f&&(r.toolCount=f);let g=na(e.requests);void 0!==g&&(r.requests=g);let x=na(e.tokens);void 0!==x&&(r.tokens=x);let v=na(e.contextTokens);void 0!==v&&(r.contextTokens=v);let y=na(e.contextWindow);void 0!==y&&(r.contextWindow=y);let b=na(e.cost);void 0!==b&&(r.cost=b);let w=na(e.durationMs);void 0!==w&&(r.durationMs=w),("string"==typeof e.modelOverride||Array.isArray(e.modelOverride)&&e.modelOverride.every(e=>"string"==typeof e))&&(r.modelOverride=e.modelOverride);let k=nn(e.modelRole);void 0!==k&&(r.modelRole=k);let j=nn(e.resolvedModel);if(void 0!==j&&(r.resolvedModel=j),"boolean"==typeof e.resolvedModelIsFallback&&(r.resolvedModelIsFallback=e.resolvedModelIsFallback),nr(e.retryState)){let t=na(e.retryState.attempt),n=na(e.retryState.maxAttempts),a=na(e.retryState.delayMs),i=nn(e.retryState.errorMessage),s=na(e.retryState.startedAtMs);void 0!==t&&void 0!==n&&void 0!==a&&void 0!==i&&void 0!==s&&(r.retryState={attempt:t,maxAttempts:n,delayMs:a,errorMessage:i,startedAtMs:s})}if(nr(e.retryFailure)){let t=na(e.retryFailure.attempt),n=nn(e.retryFailure.errorMessage);void 0!==t&&void 0!==n&&(r.retryFailure={attempt:t,errorMessage:n})}return void 0!==e.inflightTaskDetails&&(r.inflightTaskDetails=e.inflightTaskDetails),nr(e.extractedToolData)&&(r.extractedToolData=e.extractedToolData),Object.keys(r).length>0?r:void 0}function no(e){let t;if(!nr(e))return;let r=nn(e.id),n=nn(e.agent);if(!r||!n)return;if("started"===e.status||"completed"===e.status||"failed"===e.status||"aborted"===e.status)t=e.status;else{if("pending"!==e.status&&"running"!==e.status)return;t="started"}let a={id:r,agent:n,status:t,index:na(e.index)??-1,source:"live"},i=ni(e.agentSource);void 0!==i&&(a.agentSource=i);let s=nn(e.description);void 0!==s&&(a.description=s);let o=nn(e.task);void 0!==o&&(a.task=o);let l=nn(e.assignment);void 0!==l&&(a.assignment=l);let d=nn(e.sessionFile);void 0!==d&&(a.sessionFile=d);let c=nn(e.parentToolCallId);void 0!==c&&(a.parentToolCallId=c);let u=na(e.lastUpdate);void 0!==u&&(a.lastUpdate=u);let p=ns(e.progress);return void 0!==p&&(a.progress=p),a}function nl(e,t){switch(t.type){case"start":return{isStreaming:!0,streamingMessage:null};case"update":return{isStreaming:!0,streamingMessage:t.message};case"end":case"reset":return{isStreaming:!1,streamingMessage:null};default:return e}}function nd(e){let t=Object.keys(e);if(t.length<=64)return e;let r={...e},n=t.length-64;for(let e of t.filter(e=>!/^(?:0|[1-9]\d*)$/.test(e))){if(n<=0)break;delete r[e],n-=1}if(n>0)for(let e of t){if(n<=0)break;void 0!==r[e]&&(delete r[e],n-=1)}return r}function nc(e){let t={id:e.id,agent:e.agent,agentSource:e.agentSource,description:e.description,status:e.status,task:e.task,assignment:e.assignment,index:e.index,sessionFile:e.sessionFile,source:"history",detached:e.detached,result:e.result};return t.progress={status:"started"===e.status?"running":e.status,task:e.task,assignment:e.assignment,description:e.description,lastIntent:e.lastIntent,toolCount:e.toolCount,requests:e.requests,tokens:e.tokens,contextTokens:e.contextTokens,contextWindow:e.contextWindow,cost:e.cost,durationMs:e.durationMs,modelOverride:e.modelOverride,modelRole:e.modelRole,resolvedModel:e.resolvedModel,resolvedModelIsFallback:e.resolvedModelIsFallback,retryFailure:e.retryFailure},t}let nu={steering:[],followUp:[]},np="omp-queue-";function nh(e){return 0===e.steering.length&&0===e.followUp.length}function nm(e){return e&&"inherit"!==e?e:"auto"}function nf(e){return e?.provider&&e.id?{provider:e.provider,modelId:e.id,name:e.name,reasoning:e.reasoning,thinking:e.thinking}:null}let ng=new Set(["ArrowUp","ArrowDown","PageUp","PageDown","Home","End"," ","Space","Spacebar"]);class nx extends Error{constructor(e){super("timeout"===e?(0,d.Tl)("agentSession.eventStreamTimeout"):(0,d.Tl)("agentSession.eventStreamFailed")),this.status=e,this.name="EventStreamConnectionError"}}function nv(e){if("string"!=typeof e)return!1;let t=e.trim();if(!t||t.startsWith("//"))return!1;let r=/^([a-zA-Z][a-zA-Z0-9+.-]*):/.exec(t);if(!r)return!1;let n=r[1].toLowerCase();return"http"===n||"https"===n||"mailto"===n}function ny(e){return new Promise(t=>setTimeout(t,e))}function nb(e){let t=e.findIndex(e=>!e.exiting);return -1===t?e:e.map((e,r)=>r===t?{...e,exiting:!0}:e)}function nw(e,t){switch(t.type){case"add":if(e.visible.some(e=>e.exiting)||e.visible.length>=5)return{visible:e.visible.some(e=>e.exiting)?e.visible:nb(e.visible),pending:[...e.pending,t.notice]};return{...e,visible:[...e.visible,t.notice]};case"mark_oldest_exiting":return{...e,visible:nb(e.visible)};case"remove":return function(e,t){let r=e,n=t;for(;n.length>0&&r.length<5;){let[e,...t]=n;r=[...r,e],n=t}return n.length>0&&!r.some(e=>e.exiting)&&(r=nb(r)),{visible:r,pending:n}}(e.visible.filter(e=>e.id!==t.id),e.pending);default:return e}}function nk(e){let t=e.content;return"string"==typeof t?t:Array.isArray(t)?t.map(e=>e&&"object"==typeof e&&"text"===e.type&&"string"==typeof e.text?e.text:"").filter(Boolean).join("\n"):""}function nj(e){if(!e||"object"!=typeof e||"image"!==e.type)return"";let t=e.source;return t&&"object"==typeof t?["url"===t.type?"url":"base64","string"==typeof t.media_type?t.media_type:"","string"==typeof t.data?t.data:"","string"==typeof t.url?t.url:""].join(":"):["base64","string"==typeof e.mimeType?e.mimeType:"","string"==typeof e.data?e.data:"",""].join(":")}function nS(e){let t=e.content;return"string"==typeof t?JSON.stringify({text:t,images:[]}):Array.isArray(t)?JSON.stringify({text:nk(e),images:t.map(nj).filter(Boolean)}):JSON.stringify({text:"",images:[]})}function nC(e,t){return e&&"object"==typeof e?"number"!=typeof e.tokensBefore?null:{reason:t,tokensBefore:e.tokensBefore,estimatedTokensAfter:"number"==typeof e.estimatedTokensAfter?e.estimatedTokensAfter:0}:null}function nT(e,t){let r=t?.map(e=>({type:"image",source:{type:"base64",media_type:e.mimeType,data:e.data}}));return{userMsg:{role:"user",content:r?.length?[...e.trim()?[{type:"text",text:e}]:[],...r]:e,timestamp:Date.now()},piImages:t?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}))}}function nI(e){if("builtin"===e.source)return null;let t="extension"===e.source?"extension":"skill"===e.source?"skill":"prompt";return{name:e.name,description:e.description,source:t}}function nE(e){return e.type.startsWith("image/")||"text/plain"===e.type||"text/markdown"===e.type}let nM=/\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/g,nR=/^\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/,nW=/\x1B\[([0-9;]*)m/g,n$=/\x1B_pi:c\x07/g,nz=["#1f2937","#dc2626","#16a34a","#d97706","#2563eb","#9333ea","#0891b2","#6b7280"],nN=["#9ca3af","#ef4444","#22c55e","#f59e0b","#3b82f6","#a855f7","#06b6d4","#e5e7eb"];function nL(e){return e.replace(n$,"").replace(nM,"")}function nA(e){let t=[],r=0;for(;r<e.length;){if(27===e.charCodeAt(r)){let t=e.slice(r).match(nR);if(t){r+=t[0].length;continue}}let n=e.codePointAt(r);if(void 0===n)break;let a=String.fromCodePoint(n);t.push({start:r,end:r+a.length,char:a}),r+=a.length}return t}function nF(e,t){let r=nA(e)[t];return r?e.slice(0,r.start)+e.slice(r.end):e}function nD(e){return nA(e)[0]?.char}let nP={ArrowUp:"\x1b[A",ArrowDown:"\x1b[B",ArrowRight:"\x1b[C",ArrowLeft:"\x1b[D",Home:"\x1b[H",End:"\x1b[F",Insert:"\x1b[2~",Delete:"\x1b[3~",PageUp:"\x1b[5~",PageDown:"\x1b[6~",Escape:"\x1b",Backspace:""},nB={ArrowLeft:"\x1bb",ArrowRight:"\x1bf",ArrowUp:"\x1bp",ArrowDown:"\x1bn"};function nO(e,t=50){return e+t}function nH(e){return"user"===e.role||"custom"===e.role&&"compaction"===e.customType}function nU(e,t,r={}){let n={...e,content:t};return r.omitUsage&&(n.usage=void 0),n}function n_(){let{t:e}=(0,d.s9)(),[t,r]=(0,a.useState)(null);return(0,a.useEffect)(()=>{let e=!1;return fetch("/api/omp-version").then(e=>e.ok?e.json():null).then(t=>{!e&&t?.version&&r(t.version.replace(/^omp\//,""))}).catch(()=>{}),()=>{e=!0}},[]),(0,n.jsxs)("span",{style:{fontSize:"var(--text-sm)",color:"var(--text-muted)"},children:["omp ",(0,n.jsx)("span",{style:{color:"var(--text)"},children:t?`v${t}`:e("chatWindow.versionNotFound")})]})}function nV({messageCount:e,toolCallCount:t,children:r}){let{t:i,tn:s}=(0,d.s9)(),[o,l]=(0,a.useState)(!1),c=[i("chatWindow.processDetails"),s("chatWindow.messageCount",e)];return t>0&&c.push(s("chatWindow.toolCallCount",t)),(0,n.jsxs)("div",{style:{marginBottom:"var(--space-5)"},children:[(0,n.jsxs)("button",{type:"button","aria-expanded":o,onClick:()=>l(e=>!e),className:"process-details-toggle",title:i(o?"chatWindow.collapseProcessDetails":"chatWindow.expandProcessDetails"),children:[(0,n.jsx)(eW.A,{size:12,strokeWidth:1.8,"aria-hidden":"true",style:{flexShrink:0,transform:o?"rotate(180deg)":"none",transition:"transform var(--dur-fast) var(--ease-out-warm)"}}),(0,n.jsx)("span",{className:"process-details-label",children:c.join(" \xb7 ")})]}),o&&(0,n.jsx)("div",{style:{marginTop:"var(--space-4)"},children:r})]})}let nq=(0,a.memo)(function({messages:e,entryIds:t,conversationMeta:r,messageRefs:i,isStreaming:s,sessionBusy:o,isNew:l,forkingEntryId:c,handleFork:u,handleNavigate:p,handleEditContent:h,modelNames:m,messageCwd:f,onOpenFile:g,sessionId:x,toolCallsDefaultCollapsed:v,visibleCount:y,nearBottom:b,sentinelRef:w,handleLoadMoreClick:k}){let{t:j}=(0,d.s9)(),{toolResultsMap:S,lastAnchorIdx:C,visibleRefIndexByMessage:T}=r,I=(r,a={})=>{let d=a.messageOverride??e[r],y="user"===d.role&&r>0&&"assistant"===e[r-1].role?t[r-1]:void 0,b="user"===d.role||"assistant"===d.role,w=T.get(r),k=a.keyPrefix??"message",j=!1;if("assistant"===d.role){j=!0;for(let t=r+1;t<e.length;t++){let r=e[t].role;if("user"===r)break;if("assistant"===r){j=!1;break}}j&&s&&r===e.length-1&&(j=!1)}void 0!==a.showTimestamp&&(j=a.showTimestamp);let C=(0,n.jsx)(tw,{message:d,toolResults:S,modelNames:m,cwd:f,onOpenFile:g,entryId:t[r],onFork:o||l||0===r&&"user"===d.role?void 0:u,forking:c===t[r],onNavigate:o?void 0:p,prevAssistantEntryId:o?void 0:y,onEditContent:h,showTimestamp:j,prevTimestamp:r>0?e[r-1].timestamp:void 0,sessionId:x,toolCallsDefaultCollapsed:v},`${k}-view-${r}`);return b&&!1!==a.attachRef&&void 0!==w?(0,n.jsx)("div",{ref:e=>{i.current[w]=e},children:C},`${k}-${r}`):C},E=[];for(let t=0;t<e.length;){if(!nH(e[t])){E.push(I(t)),t+=1;continue}let r=t,a=r+1;for(;a<e.length&&!nH(e[a]);)a+=1;let l=function(e,t,r){for(let a=r-1;a>t;a--){var n;if("assistant"===(n=e[a]).role&&e2(n).answerBlocks.some(e=>"image"===e.type||"text"===e.type&&e.text.trim().length>0))return a}for(let n=r-1;n>t;n--)if(e[n]?.role==="assistant")return n;return -1}(e,r,a);if(-1===l||(o||s)&&a===e.length&&r===C){for(let e=r;e<a;e++)E.push(I(e));t=a;continue}E.push(I(r));let d=[];for(let e=r+1;e<l;e++)d.push(e);let c=d.filter(t=>{var r;return"assistant"===(r=e[t]).role?e1(r).length>0:"custom"===r.role}),u=e[l],p=e2(u),h=p.processBlocks.length>0?nU(u,p.processBlocks,{omitUsage:!0}):null,m=p.answerBlocks.length>0?nU(u,p.answerBlocks):null,f=c.length+ +!!h;if(f>0){let t=c.map(e=>T.get(e)).find(e=>"number"==typeof e)??(m?void 0:T.get(l)),a=(0,n.jsxs)(nV,{messageCount:f,toolCallCount:function(e,t){let r=0;for(let n of t){let t=e[n];t?.role==="assistant"&&(r+=e5(e1(t)))}return r}(e,c)+e5(p.processBlocks),children:[c.map(e=>I(e,{attachRef:!1,keyPrefix:"process"})),h&&I(l,{attachRef:!1,keyPrefix:"process-final",messageOverride:h,showTimestamp:!1})]});E.push((0,n.jsx)("div",{ref:void 0===t?void 0:e=>{i.current[t]=e},children:a},`process-group-${r}-${l}`))}m&&E.push(I(l,{messageOverride:m}));for(let e=l+1;e<a;e++)E.push(I(e));t=a}let M=(0,a.useRef)(null),{startIndex:R,hasMore:W}=(0,a.useMemo)(()=>{let e=Math.max(0,E.length-y);if(b||null===M.current)return M.current=e,{startIndex:e,hasMore:e>0};let t=Math.min(M.current,e);return M.current=t,{startIndex:t,hasMore:t>0}},[E.length,y,b]);return(0,n.jsxs)(n.Fragment,{children:[W&&(0,n.jsx)("button",{ref:w,type:"button",onClick:k,className:"py-3 w-full text-center text-xs text-text-muted hover:text-text transition-colors cursor-pointer",children:j("chatWindow.scrollUpToLoad",{count:R})}),E.slice(R)]})});function nK({session:e,newSessionCwd:t,advisorEnabled:r,toolCallsDefaultCollapsed:i=!0,onAgentEnd:s,onSessionCreated:l,onSessionForked:c,modelsRefreshKey:u,chatInputRef:p,onBranchDataChange:h,onSystemPromptChange:m,onSystemPromptLoaderChange:f,onSessionStatsChange:g,onSessionStatsPanelOpen:x,onOpenSettingsTab:v,onContextUsageChange:y,onOpenFile:b}){let{t:w,tn:k}=(0,d.s9)(),{playDoneSound:j,unlockAudio:S}=function(){let[e,t]=(0,a.useState)(()=>{let e=localStorage.getItem("omp-sound-enabled");return null===e||"true"===e}),r=(0,a.useRef)(e);(0,a.useEffect)(()=>{r.current=e},[e]),(0,a.useEffect)(()=>{let e=e=>{let n=e.detail;"boolean"==typeof n&&(r.current=n,t(n))};return window.addEventListener("omp-sound-pref-change",e),()=>window.removeEventListener("omp-sound-pref-change",e)},[]);let n=(0,a.useRef)(null),i=(0,a.useCallback)(()=>{if(n.current&&"closed"!==n.current.state)return n.current;try{n.current=new AudioContext}catch{return null}return n.current},[]),s=(0,a.useCallback)((e=!1)=>{if(!e&&!r.current)return;let t=i();t&&"suspended"===t.state&&t.resume().catch(()=>{})},[i]);return{soundEnabled:e,onSoundToggle:(0,a.useCallback)(()=>{let e=!r.current;e&&s(!0),r.current=e,localStorage.setItem("omp-sound-enabled",String(e)),t(e)},[s]),playDoneSound:(0,a.useCallback)(()=>{if(!r.current)return;let e=i();if(!e)return;let t=()=>{try{let t;t=e.currentTime,[523.25,659.25].forEach((r,n)=>{let a=e.createOscillator(),i=e.createGain();a.connect(i),i.connect(e.destination),a.type="sine",a.frequency.value=r;let s=t+.18*n;i.gain.setValueAtTime(0,s),i.gain.linearRampToValueAtTime(.18,s+.02),i.gain.exponentialRampToValueAtTime(.001,s+.45),a.start(s),a.stop(s+.45),a.onended=()=>{a.disconnect(),i.disconnect()}})}catch{}};"suspended"===e.state?e.resume().then(t).catch(()=>{}):t()},[i]),unlockAudio:s,soundEnabledRef:r}}(),C=(0,t9.a)(),T=(0,a.useRef)(j);T.current=j;let I=(0,a.useCallback)(()=>{T.current(),s?.()},[s]),E=(0,a.useCallback)(e=>{p?.current?.insertIfEmpty(e)},[p]),{loading:M,error:R,messages:W,entryIds:$,streamState:z,agentRunning:N,bashRunning:L,pendingBash:A,modelNames:F,modelList:D,modelsLoading:P,modelError:B,modelThinkingLevels:O,modelThinkingLevelMaps:H,thinkingLevel:U,fastModeEnabled:_,fastModeActive:V,liveModelMeta:q,retryInfo:K,contextUsage:Z,forkingEntryId:J,isCompacting:Y,compactResult:G,displayModel:X,sessionStats:Q,slashCommands:ee,slashCommandsLoading:et,queuedMessages:er,notices:en,extensionDialog:ea,extensionCustomUi:ei,extensionStatuses:es,extensionWidgets:eo,respondToExtensionUi:el,sendExtensionCustomInput:ed,isAutoModelSelection:ec,agentPhase:eu,activeGoal:ep,activePlan:eh,subagents:eg,subagentEvents:ex,subagentTranscriptVersions:ev,activeSubagentCount:ey,currentTodoPhase:eb,todoPhases:ew,isNew:ek,sessionIdRef:ej,messagesEndRef:eS,scrollContainerRef:eC,handleSend:eT,handleAbort:eI,handleFork:eE,handleNavigate:eM,handleModelChange:eR,handleSteer:eW,handleFollowUp:e$,handlePromptWithStreamingBehavior:ez,handleAbortCompaction:eN,removeQueuedMessage:eL,promoteQueuedToSteer:eA,handleBuiltinSlashCommand:eF,handleThinkingLevelChange:eD,handleFastModeChange:eP,handleCycleModel:eB,handleCycleThinkingLevel:eO,handleAbortRetry:eH,loadSlashCommands:eU}=function(e){let{session:t,newSessionCwd:r,advisorEnabled:n,onAgentEnd:i,onSessionCreated:s,onSessionForked:o,modelsRefreshKey:l,onBranchDataChange:c,onSystemPromptChange:u,onSystemPromptLoaderChange:p,onSessionStatsPanelOpen:h,onOpenSettingsTab:m,onOpenFile:f}=e,g=ef(),x=null===t&&null!==r,[v,y]=(0,a.useState)(null),[b,w]=(0,a.useState)(!x),[k,j]=(0,a.useState)(null),[S,C]=(0,a.useState)(null),[T,I]=(0,a.useState)([]),[E,M]=(0,a.useState)([]),[R,W]=(0,a.useReducer)(nl,{isStreaming:!1,streamingMessage:null}),[$,z]=(0,a.useState)(!1),[N,L]=(0,a.useState)(!1),[A,F]=(0,a.useState)(null),D=(0,a.useRef)(!0),[P,B]=(0,a.useState)({}),[O,H]=(0,a.useState)([]),[U,_]=(0,a.useState)(!1),[V,q]=(0,a.useState)(null),[K,Z]=(0,a.useState)(null),[J,Y]=(0,a.useState)({}),[G,X]=(0,a.useState)({}),[Q,ee]=(0,a.useState)(null),[et,er]=(0,a.useState)(null),[en,ea]=(0,a.useState)(()=>(function(e=nt()){if(!e)return"default";try{let t=e.getItem(ne);return"none"===t||"default"===t||"full"===t?t:"default"}catch{return"default"}})()),[ei,es]=(0,a.useState)("auto"),[eo,el]=(0,a.useState)(!1),[ed,ec]=(0,a.useState)(void 0),[eu,ep]=(0,a.useState)("immediate"),[eh,eg]=(0,a.useState)(!0),[ex,ev]=(0,a.useState)(!1),[ey,eb]=(0,a.useState)("all"),[ew,ek]=(0,a.useState)("all"),[ej,eS]=(0,a.useState)(null),[eC,eT]=(0,a.useState)(null),eI=(0,a.useRef)(0),eE=(0,a.useCallback)(e=>{e&&e.contextWindow>0&&(eI.current=e.contextWindow),eT(t=>(function(e,t){if(!t)return null;let r=0===t.tokens||null===t.tokens,n=(e?.tokens??0)>0;if(r&&n||null!=t.tokens&&t.contextWindow>0&&t.tokens>1.1*t.contextWindow)return e;let a=t.tokens??e?.tokens??null;return{percent:t.percent??(t.contextWindow>0&&null!=a?a/t.contextWindow*100:e?.percent??null),contextWindow:t.contextWindow,tokens:a}})(t,e))},[]),[eM,eR]=(0,a.useState)(null),[eW,e$]=(0,a.useState)(null),[ez,eN]=(0,a.useState)(null),[eL,eA]=(0,a.useState)(null),[eF,eD]=(0,a.useState)(!1),[eP,eB]=(0,a.useState)(null),[eO,eH]=(0,a.useState)(null),[eU,e_]=(0,a.useState)(null),[eV,eq]=(0,a.useState)([]),[eK,eZ]=(0,a.useState)(!1),[eJ,eY]=(0,a.useReducer)(nw,{visible:[],pending:[]}),[eG,eX]=(0,a.useState)(null),[eQ,e0]=(0,a.useState)(null),[e1,e2]=(0,a.useState)(null),[e5,e4]=(0,a.useState)([]),[e3,e6]=(0,a.useState)([]),[e8,e9]=(0,a.useState)({steering:[],followUp:[]}),[e7,te]=(0,a.useState)([]),[tt,tr]=(0,a.useState)({}),[tn,ta]=(0,a.useState)({}),[ti,ts]=(0,a.useState)([]),[to,tl]=(0,a.useState)(null),[td,tc]=(0,a.useState)(null),tu=e7.filter(e=>"history"!==e.source&&"started"===e.status).length,tp=(0,a.useRef)(null),th=(0,a.useRef)(null),tm=(0,a.useRef)(null),tf=(0,a.useRef)(null),tg=(0,a.useRef)(null),tx=(0,a.useRef)(t?.id??null),tv=(0,a.useRef)(0),ty=(0,a.useRef)(!1),tb=(0,a.useRef)(!1),tw=(0,a.useRef)(0),tk=(0,a.useRef)(!1),tj=(0,a.useRef)(!1),tS=(0,a.useRef)(0),tC=(0,a.useRef)(null),tT=(0,a.useRef)(!1),tI=(0,a.useRef)(!1),tE=(0,a.useRef)(!0),tM=(0,a.useRef)(void 0),tR=(0,a.useRef)(0),tW=(0,a.useRef)(0),t$=(0,a.useRef)(null),tz=(0,a.useRef)(null),tN=(0,a.useRef)(null),tL=(0,a.useRef)(!1),tA=(0,a.useRef)(null),tF=(0,a.useRef)(null),tD=(0,a.useRef)(null),tP=(0,a.useRef)(null),tB=(0,a.useRef)(0),tO=(0,a.useRef)(0),tH=(0,a.useRef)(null),tU=(0,a.useRef)(!1),t_=(0,a.useRef)(null);null===t_.current&&(t_.current=function(e,t=function(e){if("u">typeof document&&!document.hidden&&"function"==typeof requestAnimationFrame){let t=requestAnimationFrame(e);return()=>cancelAnimationFrame(t)}let t=setTimeout(e,50);return()=>clearTimeout(t)}){let r=null,n=null,a=()=>{n&&(n(),n=null)},i=()=>{n=null;let t=r;r=null,t&&e(t)};return{push(s){if("message_update"===s.type){r=s,n||(n=t(i));return}if("message_end"===s.type)r=null,a();else if(r){a();let t=r;r=null,e(t)}e(s)},reset(){r=null,a()}}}(e=>{tC.current?.(e)}));let tV=t_.current;null===th.current&&(th.current=function({createSource:e,timeoutMs:t,onFatalClose:r}){let n=null,a=e=>n===e&&!e.invalidated,i=e=>{null!==e.timeout&&(clearTimeout(e.timeout),e.timeout=null),e.timeout=setTimeout(()=>{a(e)&&o(e,"timeout")},t)},s=e=>{e.promise=new Promise(t=>{e.resolve=t}),e.settled=!1,i(e)},o=(e,t)=>{e.settled||(e.settled=!0,null!==e.timeout&&(clearTimeout(e.timeout),e.timeout=null),e.resolve({status:t,source:e.source}))},l=(e,t)=>{!e.invalidated&&(e.invalidated=!0,n===e&&(n=null),o(e,"closed"),t&&2!==e.source.readyState&&e.source.close())},d=e=>{a(e)&&2!==e.source.readyState&&o(e,"connected")},c=e=>{if(a(e)){if(2===e.source.readyState){o(e,"closed"),l(e,!1),r?.(e.sessionId,e.source);return}0===e.source.readyState&&e.settled&&s(e)}};return{ensure(t){let r,a,u,p,h=n;if(h&&h.sessionId===t){if(1===h.source.readyState)return h.settled||o(h,"connected"),Promise.resolve({status:"connected",source:h.source});if(0===h.source.readyState)return h.settled&&s(h),h.promise;l(h,!0)}else h&&l(h,!0);return a=null,u=new Promise(e=>{r=e}),p=e(t,{onOpen:()=>{a&&d(a)},onError:()=>{a&&c(a)}}),n=a={sessionId:t,source:p,promise:u,resolve:r,settled:!1,invalidated:!1,timeout:null},i(a),1===p.readyState?o(a,"connected"):2===p.readyState&&c(a),a.promise},currentSource:e=>n?.sessionId!==e||n.invalidated?null:n.source,isCurrent:(e,t)=>n?.sessionId===e&&n.source===t&&!n.invalidated,markConnected(e,t){let r=n;r&&r.sessionId===e&&r.source===t&&d(r)},invalidate(e,t){let r=n;r&&(void 0===e||r.sessionId===e)&&(void 0===t||r.source===t)&&l(r,!0)}}}({timeoutMs:6e4,createSource:(e,t)=>{tV.reset();let r=new EventSource(`/api/agent/${encodeURIComponent(e)}/events`);return r.onopen=t.onOpen,r.onerror=t.onError,tp.current=r,r},onFatalClose:(e,t)=>{tp.current!==t||(tp.current=null,tg.current&&(clearTimeout(tg.current),tg.current=null),tk.current&&(tg.current=setTimeout(()=>{tg.current=null,tk.current&&tx.current===e&&(tm.current?.(e),tf.current?.(e))},1e3)))}}));let tq=th.current,tK=e.setToolPreset??ea,tZ=ez??v?.context.model??eL??null,tJ=x?Q??et:ez??(K?{provider:K.provider,modelId:K.modelId}:v?.context.model??eL),tY=function(e,t,r){if(re(r))return r;if(!t)return 0;let n=e.find(e=>e.provider===t.provider&&e.id===t.modelId);return re(n?.contextWindow)?n.contextWindow:0}(O,tJ,eI.current),tG=(0,a.useMemo)(()=>eC??function(e,t){if(!t||!(t>0))return null;for(let r=e.length-1;r>=0;r--){let n=e[r];if("assistant"!==n.role||!n.usage)continue;let a=n.usage,i=(a.input??0)+(a.output??0)+(a.cacheRead??0)+(a.cacheWrite??0);if(!(i<=0)&&!(i>1.1*t))return{tokens:i,contextWindow:t,percent:i/t*100}}return null}(T,tY),[eC,T,tY]),tX=(0,a.useMemo)(()=>{if(eG)return eG;let e={input:0,output:0,cacheRead:0,cacheWrite:0,total:0},r=0,n=0,a=0,i=0,s=0;for(let t of T){if("user"===t.role&&(n+=1),"toolResult"===t.role&&(i+=1),"assistant"!==t.role)continue;a+=1;let o=t.usage;s+=t.content.filter(e=>"toolCall"===e.type).length,o&&(e.input+=o.input??0,e.output+=o.output??0,e.cacheRead+=o.cacheRead??0,e.cacheWrite+=o.cacheWrite??0,r+=o.cost?.total??0)}return(e.total=e.input+e.output+e.cacheRead+e.cacheWrite,0===e.total&&0===T.length)?null:{sessionFile:v?.filePath||void 0,sessionId:tx.current??t?.id??"",sessionName:t?.name,userMessages:n,assistantMessages:a,toolCalls:s,toolResults:i,totalMessages:T.length,tokens:e,cost:r,...tG?{contextUsage:tG}:{}}},[T,eG,tG,v?.filePath,t?.id,t?.name]);(0,a.useEffect)(()=>{eT(null),eI.current=0},[t?.id]),(0,a.useEffect)(()=>{let e=t?.id;(tc(null),e)?tl(function(e){if(!e)return null;try{let t=JSON.parse(e);if(!t||"object"!=typeof t)return null;let{objective:r,startedAt:n}=t;if("string"!=typeof r||!r.trim()||"number"!=typeof n||!Number.isFinite(n)||n<0)return null;return{objective:r,startedAt:n}}catch{return null}}(sessionStorage.getItem(`ompgui:goal:${e}`)||sessionStorage.getItem(`omp-web:goal:${e}`))):tl(null)},[t?.id]),(0,a.useEffect)(()=>{$||tc(null)},[$]);let tQ=(0,a.useMemo)(()=>{for(let e=0;e<ti.length;e++){let t=ti[e],r=Array.isArray(t?.tasks)?t.tasks:[],n=r.filter(e=>"completed"===e.status).length;if(r.some(e=>"pending"===e.status||"in_progress"===e.status))return{name:t.name,index:e+1,phaseCount:ti.length,done:n,total:r.length}}return null},[ti]),t0=(0,a.useCallback)((e,t)=>{te(r=>rY(r,e,t))},[]),t1=(0,a.useCallback)(async e=>{let t=tO.current;try{let r=await fetch(`/api/sessions/${encodeURIComponent(e)}/subagents`);if(!r.ok)return;let n=await r.json();if(tx.current!==e||tO.current!==t)return;let a=(n.subagents??[]).map(nc);t0(a)}catch{}},[t0]),t5=(0,a.useCallback)(async e=>{let t=Date.now(),r=tB.current,n=tO.current;try{let a=await (0,rj.$)(e,{type:"get_subagents"});if(tx.current!==e||tB.current!==r||tO.current!==n)return;let i=(a.subagents??[]).map(no).filter(e=>void 0!==e);t0(i,{skipNewerThan:t});let s=new Set(i.map(e=>e.id));te(e=>{let r,n;return r=!1,n=e.filter(e=>{if("history"===e.source)return!0;let n=s.has(e.id)||(e.lastUpdate??0)>=t;return n||(r=!0),n}),r?n:e}),t1(e)}catch{}},[t0,t1]),t4=(0,a.useCallback)(()=>{null!==tD.current&&(cancelAnimationFrame(tD.current),tD.current=null),tA.current=null,tF.current=null,tr({}),ta({})},[]),t3=(0,a.useRef)(0),t6=(0,a.useCallback)(()=>(t3.current+=1,t3.current),[]),t8=(0,a.useCallback)((e,t)=>(void 0===t||t===t3.current)&&(t3.current+=1,Z(e),!e||(eN(t=>t&&(t.provider!==e.provider||t.modelId!==e.modelId)?null:t),!0)),[]),t9=(0,a.useCallback)(async e=>{let t=t6();try{let r=await fetch(`/api/sessions/${encodeURIComponent(e)}/state`);if(!r.ok)return;let n=await r.json();if(tx.current!==e||!t8(nf(n.state?.model),t))return;n.state?.thinkingLevel!==void 0&&es(nm(n.state.thinkingLevel)),n.state?.fastModeEnabled!==void 0&&el(n.state.fastModeEnabled),ec(n.state?.fastModeActive),n.state?.autoRetryEnabled!==void 0&&ev(n.state.autoRetryEnabled),n.state?.interruptMode!==void 0&&ep(n.state.interruptMode),n.state?.autoCompactionEnabled!==void 0&&eg(n.state.autoCompactionEnabled),n.state?.steeringMode!==void 0&&eb(n.state.steeringMode),n.state?.followUpMode!==void 0&&ek(n.state.followUpMode)}catch{}},[t8,t6]),t7=(0,a.useCallback)(async(e,t=!1,r=!1,n)=>{let a=!1;try{t&&w(!0);let i=new URLSearchParams({deferThinking:"1",deferMedia:"1"}),s=await fetch(`/api/sessions/${encodeURIComponent(e)}?${i}`);if(404===s.status)return t&&(y(null),C(null),I([]),j(null)),null;if(!s.ok)throw Error(`HTTP ${s.status}`);let o=await s.json();if(tx.current!==e||void 0!==n&&tB.current!==n)return null;if(y(o),C(o.leafId),I(o.context.messages),M(o.context.entryIds??[]),ts(o.context.todoPhases??[]),t1(e),eN(null),j(null),o.context.thinkingLevel&&"off"!==o.context.thinkingLevel&&es(o.context.thinkingLevel),a=!0,!r)return t&&w(!1),null;try{let r=t6(),a=await fetch(`/api/sessions/${encodeURIComponent(e)}/state`);if(!a.ok)throw Error(`HTTP ${a.status}`);let i=await a.json();if(tx.current!==e||void 0!==n&&tB.current!==n)return t&&w(!1),null;let s=i.state,o=t8(nf(s?.model),r);return s?(void 0!==s.contextUsage&&eE(s.contextUsage??null),void 0!==s.systemPrompt&&eR(s.systemPrompt||null),o&&void 0!==s.thinkingLevel&&es(nm(s.thinkingLevel)),void 0!==s.fastModeEnabled&&el(s.fastModeEnabled),ec(s.fastModeActive),void 0!==s.autoRetryEnabled&&ev(s.autoRetryEnabled),void 0!==s.interruptMode&&ep(s.interruptMode),void 0!==s.autoCompactionEnabled&&eg(s.autoCompactionEnabled),void 0!==s.steeringMode&&eb(s.steeringMode),void 0!==s.followUpMode&&ek(s.followUpMode),void 0!==s.extensionStatuses&&e4(s.extensionStatuses??[]),void 0!==s.extensionWidgets&&e6(s.extensionWidgets??[]),void 0!==s.todoPhases&&ts(s.todoPhases??[]),0===s.queuedMessageCount&&Date.now()-tw.current>=5e3&&e9(nu)):(eE(null),!i.running&&Date.now()-tw.current>=5e3&&e9(nu)),t&&w(!1),i}catch(e){return console.error("Failed to load agent state:",e),t&&w(!1),null}}catch(e){return j(String(e)),null}finally{t&&!a&&w(!1)}},[t1,t8,t6,eE]),rt=(0,a.useCallback)(async(e,t)=>{let r=++tv.current;try{let n=new URLSearchParams({deferThinking:"1",deferMedia:"1"});t&&n.set("leafId",t);let a=`/api/sessions/${encodeURIComponent(e)}/context?${n}`,i=await fetch(a);if(!i.ok)throw Error(`HTTP ${i.status}`);let s=await i.json();if(tx.current!==e||tv.current!==r)return;I(s.context.messages),M(s.context.entryIds??[]),ts(s.context.todoPhases??[])}catch(e){console.error("Failed to load context:",e)}},[]),rr=(0,a.useCallback)((e=0,t)=>{t??=(0,d.Tl)("agentSession.noMessages");let n=tx.current;x&&r&&n&&!tL.current&&(tL.current=!0,s?.({id:n,path:"",cwd:r,name:void 0,created:new Date().toISOString(),modified:new Date().toISOString(),messageCount:e,firstMessage:t}))},[x,r,s]),rn=(0,a.useCallback)(async()=>{if(tx.current||!x||!r)return tx.current;if(tN.current)return tN.current;let e=(async()=>{let e=Q??et;e&&eA(e);let t="none"===en?[...r8]:"full"===en?[...r7]:[...r9],a=await fetch("/api/agent/new",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:r,type:"ensure_session",toolNames:t,...e?{provider:e.provider,modelId:e.modelId}:{},..."auto"!==ei?{thinkingLevel:ei}:{},...n?{advisor:!0}:{}})});if(!a.ok)throw Error(`HTTP ${a.status}`);let i=(await a.json()).sessionId;return tx.current=i,i})();tN.current=e;try{return await e}finally{tN.current=null}},[n,x,r,Q,et,en,ei]),ra=(0,a.useCallback)(async()=>{let e=tx.current??await rn();if(!e)return;let t=await (0,rj.$)(e,{type:"get_state"});D.current&&tx.current===e&&eR(t.systemPrompt??"")},[rn]),ri=(0,a.useCallback)(async()=>{let e=tx.current??await rn();if(!e)return eq([]),[];eZ(!0);try{let t=await (0,rj.$)(e,{type:"get_commands"}),r=(t?.commands??[]).map(nI).filter(e=>null!==e);return eq(r),r}catch(e){return console.error("Failed to load slash commands:",e),eq([]),[]}finally{eZ(!1)}},[rn]),rs=(0,a.useCallback)(e=>{let t=tq.ensure(e),r=tq.currentSource(e);return r&&(r.onmessage=t=>{if(tq.isCurrent(e,r))try{let n=JSON.parse(t.data);if("connected"===n.type&&tq.markConnected(e,r),"session_closed"===n.type){tV.push(n),tq.invalidate(e,r),tp.current===r&&(tp.current=null);return}tV.push(n)}catch{}}),t},[tV,tq]);tm.current=rs;let ro=(0,a.useCallback)(async(e,t)=>{let r=tx.current;if(e0(t=>t?.id===e.id?null:t),r)try{await (0,rj.$)(r,{type:"extension_ui_response",id:e.id,...t})}catch(e){console.error("Failed to send extension UI response:",e)}},[]),rl=(0,a.useMemo)(()=>[{name:"open_url",description:"Open a URL in the user's browser.",parameters:{type:"object",properties:{url:{type:"string"}},required:["url"]}},{name:"notify",description:"Show a browser notification to the user.",parameters:{type:"object",properties:{title:{type:"string"},message:{type:"string",description:"Optional notification body."}},required:["title"]}},{name:"open_file",description:"Open a file in the workspace file viewer.",parameters:{type:"object",properties:{path:{type:"string",description:"Absolute or workspace-relative file path."}},required:["path"]}}],[]),rd=(0,a.useCallback)(async e=>{try{await (0,rj.$)(e,{type:"set_host_tools",tools:rl})}catch{}},[rl]),rc=(0,a.useMemo)(()=>[{scheme:"pi-web",description:"Browser-integrated resources: pi-web://clipboard reads/writes the user's clipboard via the web UI.",writable:!0}],[]),ru=(0,a.useCallback)(async e=>{try{await (0,rj.$)(e,{type:"set_host_uri_schemes",schemes:rc})}catch{}},[rc]);tf.current=e=>{rd(e),ru(e),t5(e)};let rp=(0,a.useCallback)(async(e,t,r,n=!1)=>{try{await (0,rj.$)(e,{type:"host_tool_result",id:t,isError:n,result:{content:[{type:"text",text:r}]}})}catch(e){console.error("Failed to send host tool result:",e)}},[]),rh=(0,a.useCallback)(async(e,t,r)=>{let n=tx.current;if(!n)return;let a=e=>"string"==typeof e?e:void 0;switch(t){case"open_url":{let t="string"==typeof r.url?r.url:"",a=nv(t),i=a?t:"";if(i&&1){let e=window.open(i,"_blank","noopener,noreferrer");e?.focus?.()}let s=a?t?`Opened ${t}`:"No URL provided":"Unsafe or invalid URL not opened";await rp(n,e,s,!a&&!!t);break}case"notify":{let t=a(r.title)??"OMP",i=a(r.message)??"";if("u">typeof Notification)try{if("granted"===Notification.permission)new Notification(t,{body:i});else if("default"===Notification.permission){let e=await Notification.requestPermission();"granted"===e&&new Notification(t,{body:i})}}catch{}await rp(n,e,"Notification shown");break}case"open_file":{let t=a(r.path)??"";if(t&&f)try{let e=t.split(/[\\/]/).pop()||t;f(t,e,n)}catch{}await rp(n,e,t?`Opened ${t}`:"No path provided",!t);break}default:await rp(n,e,`Host tool "${t}" is not available in omp-web`,!0)}},[f,rp]),rm=(0,a.useCallback)(async(e,t,r)=>{try{await (0,rj.$)(e,{type:"host_uri_result",id:t,...r})}catch(e){console.error("Failed to send host URI result:",e)}},[]),rf=(0,a.useCallback)(async(e,t,r,n)=>{let a=tx.current;if(!a)return;let i=r.replace(/^pi-web:\/\//i,"")||"";if("clipboard"===i){if("read"===t){if("u"<typeof navigator||!navigator.clipboard?.readText)return void await rm(a,e,{isError:!0,error:"Clipboard read is not available in this browser"});try{let t=await navigator.clipboard.readText();await rm(a,e,{content:t||"(clipboard is empty)",contentType:"text/plain"})}catch{await rm(a,e,{isError:!0,error:"Clipboard read was denied. Click into the omp-web window and try again."})}return}if("u">typeof navigator&&navigator.clipboard?.writeText)try{await navigator.clipboard.writeText(n??""),await rm(a,e,{});return}catch{await rm(a,e,{isError:!0,error:"Clipboard write failed in this browser"});return}return void await rm(a,e,{isError:!0,error:"Clipboard write is not available in this browser"})}await rm(a,e,{isError:!0,error:`Unknown pi-web resource: ${i}`})},[rm]),rg=(0,a.useCallback)(async(e,t)=>{let r=tx.current;if(r)try{await (0,rj.$)(r,{type:"extension_ui_input",id:e.id,data:t})}catch(e){console.error("Failed to send extension custom UI input:",e)}},[]),rx=(0,a.useCallback)(e=>{let t=e.message.trim();t&&eY({type:"add",notice:{id:e.id??("u">typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2)}`),message:t,type:e.type??"info"}})},[]),rv=(0,a.useCallback)(async e=>{let t,r=setTimeout(()=>{rx({type:"info",message:(0,d.Tl)("agentSession.startingAgent")})},4e3);try{t=await rs(e)}finally{clearTimeout(r)}if("connected"===t.status||t.source.readyState===EventSource.OPEN)return;let n=tq.isCurrent(e,t.source);throw tp.current===t.source&&(tp.current=null),n?tq.invalidate(e,t.source):t.source.close(),new nx(t.status)},[rx,rs,tq]),ry=(0,a.useCallback)(t=>{switch(t.method){case"select":case"confirm":case"input":case"editor":e0(t);break;case"cancel":e0(e=>e?.id===t.targetId?null:e);break;case"open_url":{let e=t.launchUrl??t.url,r=nv(e)?e:"";if(r)try{window.open(r,"_blank","noopener,noreferrer")}catch{}rx({id:t.id,type:"info",message:r?t.instructions?`${t.instructions}
17
+ ${r}`:(0,d.Tl)("agentSession.openInBrowser",{url:r}):(0,d.Tl)("agentSession.unsafeUrlBlocked")});break}case"notify":rx({id:t.id,message:t.message,type:t.notifyType??"info"});break;case"setStatus":e4(e=>{let r=e.filter(e=>e.key!==t.statusKey);return t.statusText?[...r,{key:t.statusKey,text:t.statusText}]:r});break;case"setWidget":e6(e=>{let r=e.filter(e=>e.key!==t.widgetKey);return t.widgetLines?[...r,{key:t.widgetKey,lines:t.widgetLines,placement:t.widgetPlacement??"aboveEditor"}]:r});break;case"setTitle":t.title&&(document.title=t.title);break;case"set_editor_text":e.chatInputRef?.current?.insertText(t.text);break;case"custom":e2(e=>t.closed?e?.id===t.id?null:e:t)}},[rx,e.chatInputRef]),rb=(0,a.useCallback)(async(e=tx.current,t)=>{if(void 0===t||tB.current===t)try{e&&await t7(e,!1,!0,t)}finally{if(void 0!==t&&tB.current!==t||(tH.current=null,!tk.current))return;tk.current=!1,z(!1),e_(null),eS(null),te([]),tO.current+=1,t4(),e&&t1(e),W({type:"end"}),i?.()}},[t7,i,t1,t4]),rw=(0,a.useCallback)(async(e,t)=>{await ny(800);let r=Date.now();for(;D.current&&tx.current===e&&tk.current&&Date.now()-r<2e4;){if(void 0!==t&&tB.current!==t)return;try{let r=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(r.ok){let n=await r.json(),a=n.state;if(!n.running||!a||!a.isStreaming&&!a.isPromptRunning)return void await rb(e,t)}}catch{}await ny(600)}},[rb]),rk=(0,a.useCallback)(async e=>{let t=tS.current+1;for(tS.current=t;tj.current&&tS.current===t&&tx.current===e;){await ny(1e3);try{let r=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(!r.ok)continue;let n=await r.json();if(n.state?.isBashRunning)continue;if(await t7(e),tS.current!==t||tx.current!==e)return;tj.current=!1,L(!1),F(null);return}catch{}}},[t7]),rS=(0,a.useCallback)(async e=>{if(!tk.current)return;let t=tB.current;try{let r=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(!r.ok)return;let n=await r.json();if(tB.current!==t)return;let a=n.state;if(ty.current=a?.isCompacting??!1,eD(a?.isCompacting??!1),a?.todoPhases!==void 0&&ts(a.todoPhases??[]),t5(e),(!a||0===a.queuedMessageCount)&&Date.now()-tw.current>=5e3&&e9(nu),n.running&&a&&(a.isStreaming||a.isPromptRunning||a.isCompacting)||!tk.current)return;a?(void 0!==a.contextUsage&&eE(a.contextUsage??null),void 0!==a.systemPrompt&&eR(a.systemPrompt??null),void 0!==a.extensionStatuses&&e4(a.extensionStatuses??[]),void 0!==a.extensionWidgets&&e6(a.extensionWidgets??[])):eE(null),await rb(e,t)}catch{}},[rb,t5,eE]);(0,a.useEffect)(()=>{if(!$)return;let e=()=>{let e=tx.current;e&&rS(e)},t=()=>{"visible"===document.visibilityState&&e()},r=setInterval(e,15e3);return document.addEventListener("visibilitychange",t),window.addEventListener("online",e),()=>{clearInterval(r),document.removeEventListener("visibilitychange",t),window.removeEventListener("online",e)}},[$,rS]),(0,a.useEffect)(()=>{tk.current=$},[$]);let rC=(0,a.useCallback)(e=>{e&&e9(t=>{let r=t.steering.indexOf(e);if(-1!==r)return{...t,steering:t.steering.filter((e,t)=>t!==r)};let n=t.followUp.indexOf(e);return -1!==n?{...t,followUp:t.followUp.filter((e,t)=>t!==n)}:t})},[]),rT=(0,a.useCallback)(e=>{e&&e9(t=>{let r=t.steering.indexOf(e),n=t.followUp.indexOf(e);return -1===r&&-1===n?t:{steering:-1===r?t.steering:t.steering.filter((e,t)=>t!==r),followUp:-1===n?t.followUp:t.followUp.filter((e,t)=>t!==n)}})},[]),rI=(0,a.useCallback)(e=>{e&&e9(t=>{let r=t.followUp.indexOf(e);return -1===r?t:{steering:[...t.steering,e],followUp:t.followUp.filter((e,t)=>t!==r)}})},[]);(0,a.useEffect)(()=>{let e=tx.current;if(!e)return;let t=nh(e8);(!t||tU.current)&&(tU.current=!t,function(e,t){try{let r=np+e;if(nh(t))return void sessionStorage.removeItem(r);let n=t,a=JSON.stringify(n);for(;a.length>5e4&&n.steering.length+n.followUp.length>1;)n=n.steering.length>=n.followUp.length?{...n,steering:n.steering.slice(1)}:{...n,followUp:n.followUp.slice(1)},a=JSON.stringify(n);if(a.length>5e4)return void sessionStorage.removeItem(r);sessionStorage.setItem(r,a)}catch{}}(e,e8))},[e8]),tC.current=(0,a.useCallback)(e=>{switch(e.type){case"agent_start":tb.current=!1,tk.current=!0,z(!0),e_({kind:"waiting_model"}),W({type:"start"});break;case"agent_end":if(!1===e.isTerminal)break;if(tb.current){tb.current=!1;break}if(!tk.current)break;let t=tx.current,r=tB.current;if(tk.current=!1,z(!1),e_(null),eS(null),te([]),tO.current+=1,t4(),W({type:"end"}),t){t7(t,!1,!1,r);let e=t6();fetch(`/api/agent/${encodeURIComponent(t)}`).then(e=>e.ok?e.json():null).then(n=>{!n?.state?.model||tx.current!==t||tB.current!==r||t8(nf(n.state.model),e)&&(n.state?.contextUsage!==void 0&&eE(n.state.contextUsage??null),n.state?.systemPrompt!==void 0&&eR(n.state.systemPrompt||null),n.state?.fastModeEnabled!==void 0&&el(n.state.fastModeEnabled),ec(n.state?.fastModeActive),n.state?.extensionStatuses!==void 0&&e4(n.state.extensionStatuses??[]),n.state?.extensionWidgets!==void 0&&e6(n.state.extensionWidgets??[]),n.state?.todoPhases!==void 0&&ts(n.state.todoPhases??[]),(!n.state||0===n.state.queuedMessageCount)&&Date.now()-tw.current>=5e3&&e9(nu))}).catch(()=>{})}i?.();break;case"prompt_result":if(!1!==e.agentInvoked||!tk.current)break;rb(tx.current,tB.current);break;case"prompt_error":rx({type:"error",message:e.errorMessage??(0,d.Tl)("agentSession.commandFailed")}),tk.current&&rb(tx.current,tB.current);break;case"notice":{let t=e.level,r=e.message?.trim()??"";/^xd:\/\/:\s*mounted\s+mcp__/i.test(r)?em.oR.info("MCP tools updated",r,{clamp:!0}):rx({type:"error"===t?"error":"warning"===t?"warning":"info",message:r});break}case"command_output":{let t=e.text?.trim()??"";/^xd:\/\/:\s*mounted\s+mcp__/i.test(t)?em.oR.info("MCP tools updated",t,{clamp:!0}):t&&rx({type:"info",message:t});break}case"thinking_level_changed":es(nm(e.thinkingLevel));break;case"model_changed":{let e=tx.current;if(!e)break;let t=t6();fetch(`/api/agent/${encodeURIComponent(e)}`).then(e=>e.ok?e.json():null).then(r=>{!r?.state?.model||tx.current!==e||t8(nf(r.state.model),t)&&(void 0!==r.state.thinkingLevel&&es(nm(r.state.thinkingLevel)),void 0!==r.state.fastModeEnabled&&el(r.state.fastModeEnabled),ec(r.state.fastModeActive),void 0!==r.state.autoRetryEnabled&&ev(r.state.autoRetryEnabled),void 0!==r.state.interruptMode&&ep(r.state.interruptMode),void 0!==r.state.autoCompactionEnabled&&eg(r.state.autoCompactionEnabled),void 0!==r.state.steeringMode&&eb(r.state.steeringMode),void 0!==r.state.followUpMode&&ek(r.state.followUpMode))}).catch(()=>{});break}case"config_update":{let t=e.model;t&&t8(nf(t)),void 0!==e.thinkingLevel&&es(nm(e.thinkingLevel));break}case"available_commands_update":eq((e.commands??[]).map(nI).filter(e=>null!==e));break;case"message_start":case"message_update":{if(!tk.current)break;let t=e.message;if(t?.role==="user")break;t&&W({type:"update",message:r6(t)}),e_(null);break}case"message_end":{if(!tk.current)break;let t=e.message;if(t&&"user"===t.role){let e=r6(t),r=nS(e),n=tH.current;tH.current=null,rC(nk(e)),I(t=>{let a=t[t.length-1];return n&&a?.role==="user"&&nS(a)===n?n===r?t:[...t.slice(0,-1),e]:[...t,e]})}else t?.role==="custom"&&"xdev-mount-notice"===t.customType?em.oR.info("MCP tools updated",nk(t).trim()||"The MCP tool inventory changed.",{clamp:!0}):t&&I(e=>[...e,r6(t)]);W({type:"reset"}),e_({kind:"waiting_model"});break}case"tool_execution_start":{let t=e.toolCallId,r=e.toolName;e_(e=>{let n=e?.kind==="running_tools"?[...e.tools]:[];return n.some(e=>e.id===t)||n.push({id:t,name:r}),{kind:"running_tools",tools:n}});break}case"tool_execution_end":{let t=e.toolCallId;"todo"===e.toolName&&tx.current&&rS(tx.current),e_(e=>{if(e?.kind!=="running_tools")return e;let r=e.tools.filter(e=>e.id!==t);return 0===r.length?{kind:"waiting_model"}:{kind:"running_tools",tools:r}});break}case"todo_reminder":case"todo_auto_clear":tx.current&&rS(tx.current);break;case"auto_retry_start":eS({attempt:e.attempt,maxAttempts:e.maxAttempts,errorMessage:e.errorMessage});break;case"auto_retry_end":eS(null);break;case"auto_compaction_start":eD(!0),eB(null),eH(null);break;case"auto_compaction_end":eD(!1),e.errorMessage?(eB(e.errorMessage),eH(null)):e.aborted||e.skipped||(eH(nC(e.result,"auto")),tx.current&&t7(tx.current));break;case"subagent_lifecycle":{let t=function(e){if(!nr(e))return;let t=nn(e.id),r=nn(e.status);if(!t||!r||"started"!==r&&"completed"!==r&&"failed"!==r&&"aborted"!==r)return;let n={id:t,agent:nn(e.agent)??"subagent",status:r,index:na(e.index)??-1,lastUpdate:Date.now(),source:"live"},a=ni(e.agentSource);void 0!==a&&(n.agentSource=a);let i=nn(e.description);void 0!==i&&(n.description=i);let s=nn(e.sessionFile);void 0!==s&&(n.sessionFile=s);let o=nn(e.parentToolCallId);return void 0!==o&&(n.parentToolCallId=o),"boolean"==typeof e.detached&&(n.detached=e.detached),n}(e.payload);if(!t)break;t0([t]);break}case"host_tool_call":{let t="string"==typeof e.id?e.id:"",r="string"==typeof e.toolName?e.toolName:"",n=nr(e.arguments)?e.arguments:{};t&&r&&rh(t,r,n);break}case"host_uri_request":{let t="string"==typeof e.id?e.id:"",r="string"==typeof e.url?e.url:"",n="write"===e.operation?"write":"read",a="string"==typeof e.content?e.content:void 0;t&&r&&rf(t,n,r,a);break}case"subagent_progress":{let t=e.payload,r=ns(t?.progress),n=r?.id,a="number"==typeof t?.index&&Number.isFinite(t.index)?t.index:r?.index??-1,i="string"==typeof t?.parentToolCallId?t.parentToolCallId:null,s="string"==typeof t?.task&&t.task.trim()?t.task:r?.task??null,o="string"==typeof t?.assignment?t.assignment:r?.assignment;if(!n&&!s&&!i&&a<0)break;te(e=>{let l=-1;if(n){if(-1===(l=e.findIndex(e=>e.id===n))&&r){let n=function(e,t,r=Date.now()){let n=t.id;if(!n)return;let a=e?.index,i=t.index,s="number"==typeof a&&Number.isFinite(a)&&a>=0?a:"number"==typeof i&&Number.isFinite(i)&&i>=0?i:0,o="pending"===t.status||"running"===t.status?"started":"failed"===t.status?"failed":"aborted"===t.status?"aborted":"completed",l={id:n,agent:e?.agent||t.agent||"task",index:s,status:o,progress:t,lastUpdate:r,source:"live"},d=e?.agentSource??t.agentSource;void 0!==d&&(l.agentSource=d);let c=e?.task?.trim()?e.task:t.task;void 0!==c&&(l.task=c);let u=e?.assignment??t.assignment;void 0!==u&&(l.assignment=u);let p=e?.description??t.description;return void 0!==p&&(l.description=p),e?.parentToolCallId!==void 0&&(l.parentToolCallId=e.parentToolCallId),e?.sessionFile!==void 0&&(l.sessionFile=e.sessionFile),e?.detached!==void 0&&(l.detached=e.detached),l}({index:"number"==typeof t?.index&&Number.isFinite(t.index)?t.index:void 0,agent:"string"==typeof t?.agent?t.agent:void 0,agentSource:"string"==typeof t?.agentSource&&("bundled"===t.agentSource||"user"===t.agentSource||"project"===t.agentSource)?t.agentSource:void 0,task:"string"==typeof t?.task?t.task:void 0,assignment:o,description:"string"==typeof t?.description?t.description:void 0,parentToolCallId:i??void 0,sessionFile:"string"==typeof t?.sessionFile?t.sessionFile:void 0,detached:"boolean"==typeof t?.detached?t.detached:void 0},r);return n?rY(e,[n]):e}}else i&&a>=0&&(l=e.findIndex(e=>e.parentToolCallId===i&&e.index===a)),-1===l&&i&&(l=e.findIndex(e=>e.parentToolCallId===i)),-1===l&&a>=0&&(l=e.findIndex(e=>e.index===a));if(-1===l)return e;let d=e[l],c={...d,agent:"string"==typeof t?.agent?t.agent:d.agent,agentSource:"string"==typeof t?.agentSource&&("bundled"===t.agentSource||"user"===t.agentSource||"project"===t.agentSource)?t.agentSource:d.agentSource,..."string"==typeof t?.sessionFile?{sessionFile:t.sessionFile}:{},..."boolean"==typeof t?.detached?{detached:t.detached}:{},...s?{task:s}:{},...void 0!==o?{assignment:o}:{},...r?{progress:r}:{},lastUpdate:Date.now(),source:"live"};if(d.agent===c.agent&&d.agentSource===c.agentSource&&d.sessionFile===c.sessionFile&&d.detached===c.detached&&d.task===c.task&&d.assignment===c.assignment&&JSON.stringify(d.progress)===JSON.stringify(c.progress))return e;let u=[...e];return u[l]=c,u});break}case"subagent_event":{let t=e.payload,r="string"==typeof t?.id?t.id:null;if(r){(tA.current??(tA.current=new Set)).add(r);let e=function(e){if(!nr(e))return null;let t=nr(e.event)?e.event:null;if(!t)return null;let r=nn(t.type),n=Date.now();if("tool_execution_start"===r){let e=nn(t.toolName)??"tool",r=nn(t.intent)?.trim();if(r)return{kind:"tool",label:`→ ${e} — ${r}`,ts:n};let a=nr(t.args)?Object.keys(t.args).slice(0,3).join(", "):void 0;return{kind:"tool",label:a?`→ ${e} (${a})`:`→ ${e}`,ts:n}}if("message_end"===r){let e=nr(t.message)?t.message:null;if(e&&"assistant"===e.role){let t=e.content,r=("string"==typeof t?t:Array.isArray(t)?t.filter(e=>nr(e)&&"text"===e.type).map(e=>"string"==typeof e.text?e.text:"").join("\n"):"").trim();if(r)return{kind:"text",label:r.slice(0,140),ts:n}}}if("notice"===r){let e=nn(t.message);if(e)return{kind:"notice",label:e.slice(0,140),ts:n}}return null}(t);if(e){let t=tF.current??(tF.current=new Map),n=t.get(r);n?(n.length>=50&&n.shift(),n.push(e),t.delete(r),t.set(r,n)):t.set(r,[e])}null===tD.current&&(tD.current=requestAnimationFrame(()=>{tD.current=null;let e=tA.current;tA.current=null;let t=tF.current;tF.current=null;let r=null!==e&&e.size>0,n=null!==t&&t.size>0;(r||n)&&(e&&e.size>0&&ta(t=>{let r=t;for(let t of e)r={...r,[t]:(r[t]??0)+1};return nd(r)}),t&&t.size>0&&tr(e=>{let r=e;for(let[n,a]of t){let t=e[n]??[],i=0===t.length?a.length<=50?a:a.slice(-50):[...t,...a].slice(-50);r===e&&(r={...e}),delete r[n],r[n]=i}return nd(r)}))}))}break}case"extension_ui_request":ry(e)}},[rx,rC,rb,ry,rh,rf,t7,t0,i,rS,t4,t8,t6,eE]);let rE=(0,a.useCallback)(async(n,a)=>{let i=n.trim();if(!i&&!a?.length||tk.current||tj.current)return!1;let s=!a?.length&&i.startsWith("/");if(!a?.length&&i.startsWith("!")){let e=i.startsWith("!!"),t=(e?i.slice(2):i.slice(1)).trim();return!!t&&(await tM.current?.(t,e),!0)}let o=tB.current+1,{userMsg:l,piImages:c}=nT(n,a);I(e=>[...e,l]),tH.current=nS(l),tB.current=o,tk.current=!0,z(!0),e_(s?{kind:"running_command"}:{kind:"waiting_model"}),W({type:"start"}),tI.current=!0,tE.current=!0,tR.current=0;try{let e=null;if(x&&r){let t=tx.current??await tN.current,r=t??await rn();r&&(e=r,rr(1,n),Q&&(eA(Q),t&&await (0,rj.$)(r,{type:"set_model",provider:Q.provider,modelId:Q.modelId})),await rv(r),t5(r),await (0,rj.$)(r,{type:"prompt",message:n,...c?.length?{images:c}:{}}))}else t&&(e=t.id,await rv(t.id),t5(t.id),rd(t.id),ru(t.id),await (0,rj.$)(t.id,{type:"prompt",message:n,...c?.length?{images:c}:{}}));return s&&e&&rw(e,o),!0}catch(r){console.error("Failed to send message:",r);let t=tH.current;return t&&I(e=>{let r=e[e.length-1];return r?.role==="user"&&nS(r)===t?e.slice(0,-1):e}),rx({type:"error",message:r instanceof nx?r.message:(0,d.Tl)("agentSession.sendFailed",{detail:r instanceof Error?r.message:String(r)})}),n&&e.chatInputRef?.current?.insertIfEmpty(n),tH.current=null,tk.current=!1,z(!1),e_(null),W({type:"end"}),!1}},[x,r,Q,t,rn,rv,rr,rw,rx,e.chatInputRef,t5,rd,ru]),rM=(0,a.useCallback)(async(e,t)=>{let r=e.trim();if(!r&&!t?.length)return!1;let n=tx.current;if(!n||!tk.current)return!1;let{userMsg:a,piImages:i}=nT(e,t);I(e=>[...e,a]),tH.current=nS(a),tb.current=!0,tI.current=!0,tE.current=!0,tR.current=0;try{return await rv(n),t5(n),await (0,rj.$)(n,{type:"abort_and_prompt",message:r,...i?.length?{images:i}:{}}),!0}catch(t){console.error("Failed to interrupt and reply:",t),tb.current=!1;let e=tH.current;return e&&I(t=>{let r=t[t.length-1];return r?.role==="user"&&nS(r)===e?t.slice(0,-1):t}),tH.current=null,rx({type:"error",message:t instanceof Error?t.message:String(t)}),!1}},[rx,rv,t5]);tM.current=(0,a.useCallback)(async(r,n)=>{if(tk.current||tj.current)return;let a=`${n?"!!":"!"}${r}`;tj.current=!0,F({command:r,excludeFromContext:n}),L(!0);try{let e=tx.current??t?.id??await rn();if(!e)throw Error((0,d.Tl)("agentSession.shellSessionFailed"));await (0,rj.$)(e,{type:"bash",command:r,excludeFromContext:n}),await t7(e),rr(1,a)}catch(t){console.error("Failed to execute shell command:",t),rx({type:"error",message:t instanceof Error?t.message:String(t)}),e.chatInputRef?.current?.insertIfEmpty(a)}finally{tj.current=!1,F(null),L(!1)}},[rx,rn,t7,e.chatInputRef,rr,t]);let rR=(0,a.useCallback)(async()=>{let e=tx.current;if(e){if(tj.current){try{await (0,rj.$)(e,{type:"abort_bash"})}catch(e){console.error("Failed to abort bash:",e)}return}try{await (0,rj.$)(e,{type:"abort"})}catch(e){console.error("Failed to abort:",e)}}},[]),rW=(0,a.useCallback)(async e=>{if(tj.current)return;let t=tx.current;if(t){e$(e);try{let{cancelled:r,newSessionId:n}=await (0,rj.$)(t,{type:"fork",entryId:e})??{};!r&&n&&o?.(n)}catch(e){console.error("Fork failed:",e)}finally{e$(null)}}},[o]),r$=(0,a.useCallback)(async e=>{if(tj.current||tk.current)return;let t=tx.current;t&&(C(e),await rt(t,e))},[rt]),rz=(0,a.useCallback)(async e=>{if(tj.current||tk.current)return;C(e);let t=tx.current;t&&await rt(t,e)},[rt]),rN=(0,a.useCallback)(async(e,t)=>{if(x){ee({provider:e,modelId:t}),eA({provider:e,modelId:t});let r=tx.current??await tN.current;if(!r)return;try{await (0,rj.$)(r,{type:"set_model",provider:e,modelId:t})}catch(e){console.error("Failed to set model:",e)}return}let r=tx.current;if(r)try{await (0,rj.$)(r,{type:"set_model",provider:e,modelId:t}),eN({provider:e,modelId:t}),t9(r)}catch(e){console.error("Failed to set model:",e)}},[x,ee,t9]),rL=(0,a.useCallback)(async e=>{let t=tx.current??await tN.current??await rn();if(t)try{let r=await (0,rj.$)(t,{type:"set_fast_mode",enabled:e});el(r?.enabled??e),ec(r?.active),t9(t)}catch(e){console.error("Failed to change Fast mode:",e),rx({type:"error",message:e instanceof Error?e.message:String(e)})}},[rx,rn,t9]),rA=(0,a.useCallback)(async e=>{let t=tx.current??await tN.current;if(t){ev(e);try{await (0,rj.$)(t,{type:"set_auto_retry",enabled:e})}catch(t){ev(t=>t===e?!e:t),rx({type:"error",message:t instanceof Error?t.message:String(t)})}}},[rx]),rF=(0,a.useCallback)(async e=>{let t=tx.current??await tN.current;if(t){ep(e);try{await (0,rj.$)(t,{type:"set_interrupt_mode",mode:e})}catch(e){console.error("Failed to change interrupt mode:",e),rx({type:"error",message:e instanceof Error?e.message:String(e)})}}},[rx]),rD=(0,a.useCallback)(async e=>{let t=tx.current??await tN.current;if(t){eg(e);try{await (0,rj.$)(t,{type:"set_auto_compaction",enabled:e})}catch(e){console.error("Failed to change auto-compaction:",e),rx({type:"error",message:e instanceof Error?e.message:String(e)})}}},[rx]),rP=(0,a.useCallback)(async e=>{let t=tx.current??await tN.current;if(t){eb(e);try{await (0,rj.$)(t,{type:"set_steering_mode",mode:e})}catch(e){console.error("Failed to change steering mode:",e),rx({type:"error",message:e instanceof Error?e.message:String(e)})}}},[rx]),rB=(0,a.useCallback)(async e=>{let t=tx.current??await tN.current;if(t){ek(e);try{await (0,rj.$)(t,{type:"set_follow_up_mode",mode:e})}catch(e){console.error("Failed to change follow-up mode:",e),rx({type:"error",message:e instanceof Error?e.message:String(e)})}}},[rx]),rO=(0,a.useCallback)(async()=>{let e=tx.current;if(e)try{await (0,rj.$)(e,{type:"cycle_model"}),t9(e)}catch(e){console.error("Failed to cycle model:",e),rx({type:"error",message:e instanceof Error?e.message:String(e)})}},[rx,t9]),rH=(0,a.useCallback)(async()=>{let e=tx.current;if(e)try{await (0,rj.$)(e,{type:"cycle_thinking_level"}),t9(e)}catch(e){console.error("Failed to cycle thinking level:",e),rx({type:"error",message:e instanceof Error?e.message:String(e)})}},[rx,t9]),rU=(0,a.useCallback)(async()=>{let e=tx.current;if(e){eS(null);try{await (0,rj.$)(e,{type:"abort_retry"})}catch(e){console.error("Failed to abort retry:",e),rx({type:"error",message:e instanceof Error?e.message:String(e)})}}},[rx]),r_=(0,a.useCallback)(async()=>{let e=tx.current;if(e&&!ty.current&&!tk.current&&!tj.current)try{await (0,rj.$)(e,{type:"handoff"}),await t7(e,!0),t9(e)}catch(e){rx({type:"error",message:e instanceof Error?e.message:String(e)})}},[rx,t7,t9]),rV=(0,a.useCallback)(async()=>{let e=tx.current;if(e&&!ty.current&&!eF){ty.current=!0,eD(!0),eB(null),eH(null);try{let t=await (0,rj.$)(e,{type:"compact"});eH(nC(t,"manual")),await t7(e,!0),t9(e)}catch(e){eB(e instanceof Error?e.message:String(e)),eH(null)}finally{ty.current=!1,eD(!1)}}},[eF,t7,t9]),rq=(0,a.useCallback)(async e=>{_(!0);try{let n=r??t?.cwd??"",a=n?`/api/models?cwd=${encodeURIComponent(n)}`:"/api/models",i=await fetch(a,e?{signal:e}:void 0);if(!i.ok)throw Error(`HTTP ${i.status}`);let s=await i.json();B(s.models),q(s.modelError??null),Y(s.thinkingLevels??{}),X(s.thinkingLevelMaps??{});let o=s.modelList??[];if(H(o),x){let e=(s.defaultModel?o.find(e=>e.id===s.defaultModel?.modelId&&e.provider===s.defaultModel?.provider):void 0)??o[0];er(e?{provider:e.provider,modelId:e.id}:null)}}catch(t){e?.aborted||q(t instanceof Error?t.message:String(t))}finally{_(!1)}},[x,r,t?.cwd]),rK=(0,a.useCallback)(async e=>{if(!e.startsWith("/"))return{handled:!1};let t=e.match(/^\/([^\s]+)(?:\s+([\s\S]*))?$/);if(!t)return{handled:!1};let[,r,n=""]=t,a=n.trim(),i=tx.current??await rn(),s=e=>(e.handled&&(e.error?rx({type:"error",message:e.error}):"openSessionStats"!==e.action&&rx({type:"success",message:e.message??(0,d.Tl)("agentSession.commandCompleted")})),e);try{switch(r){case"compact":{if(!i||ty.current||eF)return s({handled:!0,error:(0,d.Tl)("agentSession.noSessionToCompact")});ty.current=!0,eD(!0),eB(null),eH(null);let e=await (0,rj.$)(i,{type:"compact",...a?{customInstructions:a}:{}});return eH(nC(e,"manual")),await t7(i,!0),ty.current=!1,eD(!1),rr(),s({handled:!0,message:(0,d.Tl)("agentSession.compactedContext")})}case"reload":if(!i)return s({handled:!0,error:(0,d.Tl)("agentSession.noSessionToReload")});return await (0,rj.$)(i,{type:"reload"}),await Promise.all([t7(i,!1,!0),ri(),rq()]),s({handled:!0,message:(0,d.Tl)("agentSession.reloadedResources")});case"name":if(!i)return s({handled:!0,error:(0,d.Tl)("agentSession.noSessionToName")});if(!a)return s({handled:!0,error:(0,d.Tl)("agentSession.nameUsage")});return await (0,rj.$)(i,{type:"set_session_name",name:a}),await t7(i),rr(),s({handled:!0,message:(0,d.Tl)("agentSession.sessionRenamed",{name:a})});case"session":{if(!i)return s({handled:!0,error:(0,d.Tl)("agentSession.noActiveSession")});let e=await (0,rj.$)(i,{type:"get_session_stats"});return e&&eX(e),h?.(),s({handled:!0,action:"openSessionStats"})}case"agents":return m?.("agents"),s({handled:!0,action:"openSettings"});case"copy":{if(!i)return s({handled:!0,error:(0,d.Tl)("agentSession.noActiveSession")});let e=await (0,rj.$)(i,{type:"get_last_assistant_text"}),t=e?.text??"";if(!t)return s({handled:!0,error:(0,d.Tl)("agentSession.noMessageToCopy")});return await navigator.clipboard.writeText(t),s({handled:!0,message:(0,d.Tl)("agentSession.copiedLastMessage")})}default:{let t=t2(e);if("not-web"===t.kind)return{handled:!1};if("usage-error"===t.kind)return s({handled:!0,error:(0,d.Tl)("agentSession.commandRequiresArgs",{command:t.command,usage:(0,d.Tl)(t.argumentHintKey)})});if("plan"===r&&tc({objective:a}),!await rE(t.prompt))return"plan"===r&&tc(null),{handled:!0,retainInput:!0};if("goal"===r){let e=function(e,t=Date.now()){return{objective:e.trim(),startedAt:t}}(a);tl(e);let t=tx.current;t&&sessionStorage.setItem(`ompgui:goal:${t}`,JSON.stringify(e))}return{handled:!0}}}}catch(e){return s({handled:!0,error:e instanceof Error?e.message:String(e)})}finally{"compact"===r&&(ty.current=!1,eD(!1))}},[rx,rn,rE,eF,rq,t7,ri,rr,m,h]),rZ=e=>e?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType})),rJ=(0,a.useCallback)(async(t,r)=>{let n=tx.current;if(!n)return;let a=rZ(r);try{await (0,rj.$)(n,{type:"prompt",message:t,streamingBehavior:"steer",...a?.length?{images:a}:{}}),tw.current=Date.now(),e9(e=>({...e,steering:[...e.steering,t]}))}catch(r){console.error("Failed to steer:",r),rx({type:"error",message:r instanceof Error?r.message:String(r)}),e.chatInputRef?.current?.insertIfEmpty(t)}},[rx,e.chatInputRef]),rG=(0,a.useCallback)(async(t,r,n)=>{let a=tx.current;if(!a)return;let i=rZ(n);try{await (0,rj.$)(a,{type:"prompt",message:t,streamingBehavior:r,...i?.length?{images:i}:{}}),tw.current=Date.now(),e9(e=>"steer"===r?{...e,steering:[...e.steering,t]}:{...e,followUp:[...e.followUp,t]})}catch(r){console.error("Failed to queue prompt:",r),rx({type:"error",message:r instanceof Error?r.message:String(r)}),e.chatInputRef?.current?.insertIfEmpty(t)}},[rx,e.chatInputRef]),rX=(0,a.useCallback)(async(t,r)=>{let n=tx.current;if(!n)return;let a=rZ(r);try{await (0,rj.$)(n,{type:"prompt",message:t,streamingBehavior:"followUp",...a?.length?{images:a}:{}}),tw.current=Date.now(),e9(e=>({...e,followUp:[...e.followUp,t]}))}catch(r){console.error("Failed to follow up:",r),rx({type:"error",message:r instanceof Error?r.message:String(r)}),e.chatInputRef?.current?.insertIfEmpty(t)}},[rx,e.chatInputRef]),rQ=(0,a.useCallback)(async()=>{let e=tx.current;if(e)try{await (0,rj.$)(e,{type:"abort_compaction"})}catch(e){console.error("Failed to abort compaction:",e)}},[]),r0=(0,a.useCallback)(async e=>{if(es(e),"auto"===e)return;let t=tx.current??await tN.current;if(t)try{await (0,rj.$)(t,{type:"set_thinking_level",level:e}),t9(t)}catch(e){console.error("Failed to set thinking level:",e)}},[t9]),r1=(0,a.useCallback)(async e=>{tK(e),function(e,t=nt()){if(t)try{t.setItem(ne,e)}catch{}}(e),(tx.current??await tN.current)&&rx({type:"info",message:(0,d.Tl)("agentSession.toolPresetNotice")})},[tK,rx]),r2=(0,a.useCallback)((e="smooth")=>{let t=tz.current,r=t$.current;t&&r&&(tW.current=Date.now()+700,r.scrollIntoView({block:"nearest",behavior:g?"instant":e}))},[g]),r5=(0,a.useCallback)(e=>{e instanceof KeyboardEvent&&(!ng.has(e.key)||e.target instanceof Element&&e.target.closest("input, textarea, [contenteditable='true']"))||(tR.current=Date.now()+1200)},[]),r4=(0,a.useCallback)(()=>{let e=Date.now()<=tR.current;if(!e&&Date.now()<tW.current||!e)return;let t=tz.current,r=t$.current;t&&r&&(tE.current=r.getBoundingClientRect().bottom-t.getBoundingClientRect().bottom<=24)},[]);(0,a.useEffect)(()=>(t&&(tx.current=t.id,t7(t.id,!0,!0).then(e=>{if(e?.running){if(e.state?.isStreaming||e.state?.isPromptRunning){tk.current=!0,z(!0),e_(e.state.isStreaming?{kind:"waiting_model"}:{kind:"running_command"}),W({type:"start"}),rs(t.id),rd(t.id),ru(t.id),tP.current&&(clearTimeout(tP.current),tP.current=null);let r=t.id;tP.current=setTimeout(()=>{tP.current=null,tx.current===r&&t5(r)},600),!e.state.isStreaming&&e.state.isPromptRunning&&rw(t.id)}e.state?.isBashRunning&&(tj.current=!0,L(!0),rk(t.id))}if(e?.state){if(void 0!==e.state.isCompacting&&eD(e.state.isCompacting),void 0!==e.state.contextUsage&&eE(e.state.contextUsage??null),void 0!==e.state.systemPrompt&&eR(e.state.systemPrompt||null),void 0!==e.state.extensionStatuses&&e4(e.state.extensionStatuses??[]),void 0!==e.state.extensionWidgets&&e6(e.state.extensionWidgets??[]),0===e.state.queuedMessageCount&&Date.now()-tw.current>=5e3){e9(nu);var r=t.id;if(r)try{sessionStorage.removeItem(np+r)}catch{}}else if("number"==typeof e.state.queuedMessageCount){let e=function(e){try{let t=sessionStorage.getItem(np+e);if(!t)return null;let r=JSON.parse(t),n=e=>Array.isArray(e)?e.filter(e=>"string"==typeof e):[],a={steering:n(r?.steering),followUp:n(r?.followUp)};return nh(a)?null:a}catch{return null}}(t.id);e&&e9(t=>nh(t)?e:t)}}else eE(null)})),()=>{tS.current+=1,t_.current?.reset();let e=tp.current;tq.invalidate(),e&&e.readyState!==EventSource.CLOSED&&e.close(),tp.current=null,tg.current&&(clearTimeout(tg.current),tg.current=null),tP.current&&(clearTimeout(tP.current),tP.current=null),null!==tD.current&&(cancelAnimationFrame(tD.current),tD.current=null),tA.current=null,tF.current=null}),[t5,rd,ru]),(0,a.useEffect)(()=>{u?.(eM)},[eM,u]),(0,a.useEffect)(()=>(p?.(ra),()=>p?.(null)),[ra,p]),(0,a.useEffect)(()=>{c&&c(v?.tree??[],S,rz)},[v?.tree,S,rz,c]),(0,a.useEffect)(()=>(window.addEventListener("keydown",r5),window.addEventListener("pointerdown",r5,{passive:!0}),()=>{window.removeEventListener("keydown",r5),window.removeEventListener("pointerdown",r5)}),[r5]),(0,a.useEffect)(()=>{let e=tz.current;if(e)return e.addEventListener("wheel",r5,{passive:!0}),e.addEventListener("touchstart",r5,{passive:!0}),e.addEventListener("scroll",r4,{passive:!0}),()=>{e.removeEventListener("wheel",r5),e.removeEventListener("touchstart",r5),e.removeEventListener("scroll",r4)}},[T.length,b,r4,r5]);let r3=(0,a.useRef)(null),nb=(0,a.useRef)(null);return(0,a.useEffect)(()=>{let e=t?.id??null;nb.current!==e&&(nb.current=e,tT.current=!1,tE.current=!0,tI.current=!1,null!==r3.current&&(cancelAnimationFrame(r3.current),r3.current=null))},[t?.id]),(0,a.useEffect)(()=>{if(T.length>0||R.isStreaming)if(tI.current)tI.current=!1,tT.current=!0,r2(R.isStreaming||tk.current?"instant":"smooth");else if(tT.current)tE.current&&null===r3.current&&(r3.current=requestAnimationFrame(()=>{r3.current=null,tE.current&&r2(tk.current||R.isStreaming?"instant":"smooth")}));else{if(b)return;tT.current=!0,r2("instant")}},[T,R,$,eU,e3,eF,ej,tu,ti,r2,b]),(0,a.useEffect)(()=>()=>{D.current=!1,null!==r3.current&&cancelAnimationFrame(r3.current)},[]),(0,a.useEffect)(()=>{let e=new AbortController;return rq(e.signal).catch(e=>{if(e instanceof DOMException&&"AbortError"===e.name)return}),()=>e.abort()},[rq,l]),(0,a.useEffect)(()=>{if(!eP)return;let e=setTimeout(()=>eB(null),3e3);return()=>clearTimeout(e)},[eP]),(0,a.useEffect)(()=>{if(!eO)return;let e=setTimeout(()=>eH(null),6e3);return()=>clearTimeout(e)},[eO]),(0,a.useEffect)(()=>{if(0===eJ.visible.length)return;let e=eJ.visible.find(e=>e.exiting);if(e){let t=setTimeout(()=>{eY({type:"remove",id:e.id})},180);return()=>clearTimeout(t)}if(!eJ.visible[0])return;let t=setTimeout(()=>{eY({type:"mark_oldest_exiting"})},5e3);return()=>clearTimeout(t)},[eJ.visible]),(0,a.useEffect)(()=>{eX(null)},[T.length,tG?.tokens,tG?.percent,tG?.contextWindow]),{data:v,loading:b,error:k,activeLeafId:S,messages:T,entryIds:E,streamState:R,agentRunning:$,modelNames:P,modelList:O,modelsLoading:U,modelError:V,modelThinkingLevels:J,modelThinkingLevelMaps:G,newSessionModel:Q,toolPreset:en,thinkingLevel:ei,fastModeEnabled:eo,fastModeActive:ed,autoRetryEnabled:ex,interruptMode:eu,autoCompactionEnabled:eh,steeringMode:ey,followUpMode:ew,liveModelMeta:K,retryInfo:ej,contextUsage:tG,systemPrompt:eM,forkingEntryId:eW,isCompacting:eF,compactError:eP,compactResult:eO,currentModel:tZ,displayModel:tJ,sessionStats:tX,slashCommands:eV,slashCommandsLoading:eK,queuedMessages:e8,notices:eJ.visible,extensionDialog:eQ,extensionCustomUi:e1,extensionStatuses:e5,extensionWidgets:e3,respondToExtensionUi:ro,sendExtensionCustomInput:rg,isAutoModelSelection:x&&null===Q,agentPhase:eU,subagents:e7,subagentEvents:tt,subagentTranscriptVersions:tn,activeSubagentCount:tu,currentTodoPhase:tQ,todoPhases:ti,activeGoal:to,activePlan:td,isNew:x,sessionIdRef:tx,messagesEndRef:t$,scrollContainerRef:tz,pendingScrollToUserRef:tI,initialScrollDoneRef:tT,handleSend:rE,handleAbort:rR,handleFork:rW,handleNavigate:r$,handleModelChange:rN,handleFastModeChange:rL,handleAutoRetryChange:rA,handleInterruptModeChange:rF,handleAutoCompactionChange:rD,handleSteeringModeChange:rP,handleFollowUpModeChange:rB,handleCycleModel:rO,handleCycleThinkingLevel:rH,handleAbortRetry:rU,handleInterruptAndReply:rM,handleCompact:rV,handleHandoff:r_,handleSteer:rJ,handleFollowUp:rX,handlePromptWithStreamingBehavior:rG,handleAbortCompaction:rQ,removeQueuedMessage:rT,promoteQueuedToSteer:rI,handleBuiltinSlashCommand:rK,handleToolPresetChange:r1,handleThinkingLevelChange:r0,loadSlashCommands:ri,setActiveLeafId:C,setData:y,setMessages:I,dispatch:W,setAgentRunning:z,setForkingEntryId:e$,bashRunning:N,pendingBash:A,handleAgentEventRef:tC}}({session:e,newSessionCwd:t,advisorEnabled:r,onAgentEnd:I,onSessionCreated:l,onSessionForked:c,modelsRefreshKey:u,chatInputRef:p,onBranchDataChange:h,onSystemPromptChange:m,onSystemPromptLoaderChange:f,onSessionStatsPanelOpen:x,onOpenSettingsTab:v,onOpenFile:b}),e_=N||L;(0,a.useEffect)(()=>(o=e_?eI:null,()=>void(o=null)),[e_,eI]),(0,a.useEffect)(()=>{if(!e)return;let t=e=>{if(!(e.metaKey||e.ctrlKey)||!e.altKey)return;let t=e.key.toLowerCase();"m"===t?(e.preventDefault(),eB()):"t"===t&&(e.preventDefault(),eO())};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[e,eB,eO]);let[eV,eq]=(0,a.useState)(50),eK=(0,a.useRef)(null),eZ=e?.id??(t?`new:${t}`:"empty");(0,a.useEffect)(()=>{eK.current!==eZ&&(eK.current=eZ,eq(50))},[eZ]);let[eJ,eY]=(0,a.useState)(null),[eG,eX]=(0,a.useState)(!0);(0,a.useEffect)(()=>{let e=eC.current;if(!e)return;let t=null,r=()=>{t=null;let r=e.scrollTop+e.clientHeight>=e.scrollHeight-96;eX(e=>e===r?e:r)},n=()=>{null===t&&(t=requestAnimationFrame(r))};return r(),e.addEventListener("scroll",n,{passive:!0}),()=>{e.removeEventListener("scroll",n),null!==t&&cancelAnimationFrame(t)}},[eC]);let eQ=(0,a.useRef)(null),e0=(0,a.useRef)(null),e1=(0,a.useRef)("auto");(0,a.useEffect)(()=>{let e=eQ.current,t=eC.current;if(!e||!t)return;let r=new IntersectionObserver(e=>{e[0]?.isIntersecting&&t.scrollTop>0&&(e0.current=t.scrollHeight-t.scrollTop,e1.current="auto",eq(e=>nO(e)))},{root:t,rootMargin:"400px 0px 0px 0px",threshold:0});return r.observe(e),()=>r.disconnect()},[eV,W.length,eC]),(0,a.useEffect)(()=>{if(null==e0.current)return;let e=eC.current;if(e){if("click"===e1.current){let t=eQ.current;if(t){let r=e.getBoundingClientRect(),n=t.getBoundingClientRect();e.scrollTop=e.scrollTop+(n.bottom-r.top)+1}else e.scrollTop=0}else{var t;t=e.scrollHeight,e.scrollTop=Math.max(0,t-e0.current)}e1.current="auto",e0.current=null}},[eV,eC]);let e2=(0,a.useCallback)(()=>{let e=eC.current;e&&(e0.current=e.scrollHeight-e.scrollTop),e1.current="click",eq(e=>nO(e))},[eC]),e5=Q?[Q.sessionId,Q.sessionFile??"",Q.sessionName??"",Q.userMessages,Q.assistantMessages,Q.toolCalls,Q.toolResults,Q.totalMessages,Q.tokens.input,Q.tokens.output,Q.tokens.cacheRead,Q.tokens.cacheWrite,Q.tokens.total,Q.cost??0].join("|"):null,e4=(0,a.useRef)(Q);e4.current=Q,(0,a.useEffect)(()=>{g?.(e4.current)},[e5,g]),(0,a.useEffect)(()=>()=>{g?.(null)},[g]);let e3=Z?`${Z.percent??"null"}|${Z.contextWindow}|${Z.tokens??"null"}`:null,e6=(0,a.useRef)(Z);e6.current=Z,(0,a.useEffect)(()=>{y?.(e6.current)},[e3,y]),(0,a.useEffect)(()=>()=>{y?.(null)},[y]);let{isDragOver:e8,handleDragEnter:e9,handleDragOver:e7,handleDragLeave:te,handleDrop:tt}=function(e){let[t,r]=(0,a.useState)(!1),n=(0,a.useRef)(0);(0,a.useEffect)(()=>{let e=()=>{n.current=0,r(!1)};return window.addEventListener("drop",e),window.addEventListener("dragend",e),()=>{window.removeEventListener("drop",e),window.removeEventListener("dragend",e)}},[]);let i=(0,a.useCallback)(e=>{Array.from(e.dataTransfer.items).some(nE)&&(e.preventDefault(),n.current+=1,r(!0))},[]),s=(0,a.useCallback)(e=>{Array.from(e.dataTransfer.items).some(nE)&&e.preventDefault()},[]);return{isDragOver:t,handleDragEnter:i,handleDragOver:s,handleDragLeave:(0,a.useCallback)(()=>{n.current-=1,n.current<=0&&(n.current=0,r(!1))},[]),handleDrop:(0,a.useCallback)(t=>{t.preventDefault(),n.current=0,r(!1),e(Array.from(t.dataTransfer.files))},[e])}}((0,a.useCallback)(e=>{e_||p?.current?.addFiles(e)},[e_,p])),tr=(0,a.useMemo)(()=>{let e=new Set,t=[];for(let r=W.length-1;r>=0;r-=1){let n=function(e){if("user"!==e.role)return null;if("string"==typeof e.content){let t=e.content.trim();return t.length>0?t:null}let t=e.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n").trim();return t.length>0?t:null}(W[r]);if(!(!n||e.has(n))&&(e.add(n),t.push(n),t.length>=50))break}return t.reverse()},[W]),tn=(0,a.useMemo)(()=>{let e=new Map,t=-1,r=new Map,n=0;return W.forEach((a,i)=>{"toolResult"===a.role&&e.set(a.toolCallId,a),nH(a)&&(t=i),("user"===a.role||"assistant"===a.role)&&r.set(i,n++)}),{toolResultsMap:e,lastAnchorIdx:t,visibleRefIndexByMessage:r}},[W]),ta=function(e){let t=(0,a.useRef)([]),r=(0,a.useRef)(0);if(r.current!==e){r.current=e;let n=Array(e);for(let r=0;r<e;r+=1)n[r]=t.current[r]??null;t.current=n}return t}(tn.visibleRefIndexByMessage.size),ti=(0,a.useMemo)(()=>{let e=new Set;for(let t of W)if(t?.role==="assistant")for(let r of t.content??[])"toolCall"===r.type&&e.add(r.toolCallId);return e},[W]),ts=(0,a.useMemo)(()=>{if(eu?.kind!=="running_tools")return[];let e=new Set(ti),t=z.streamingMessage;if(t?.role==="assistant")for(let r of t.content??[])"toolCall"===r.type&&e.add(r.toolCallId);return eu.tools.filter(t=>!e.has(t.id))},[eu,ti,z.streamingMessage]),to=ek&&0===W.length&&!z.isStreaming&&!e_,tl=e?.cwd??t??void 0,td=X?function(e,t,r){if(e&&e.length>0)return e;if(t&&r&&r.provider===t.provider&&r.modelId===t.modelId)return r.reasoning?["off",...r.thinking?.efforts??[]]:["off"];return null}(O[`${X.provider}:${X.modelId}`],X,q):null,tc=X?H[`${X.provider}:${X.modelId}`]??null:null,tu=(0,n.jsx)(rw,{ref:p,onSend:eT,onAbort:eI,onSteer:N?eW:void 0,onFollowUp:N?e$:void 0,onPromptWithStreamingBehavior:N?ez:void 0,isStreaming:e_,model:X,isAutoModelSelection:ec,modelNames:F,modelList:D,modelsLoading:P,modelError:B,onModelChange:eR,onAbortCompaction:eN,isCompacting:Y,compactResult:G,thinkingLevel:U,onThinkingLevelChange:e||ek?eD:void 0,fastModeEnabled:_,fastModeActive:V,fastModeSupported:!!(X&&D.some(e=>e.provider===X.provider&&e.id===X.modelId&&e.supportsFastMode)),onFastModeChange:e||ek?eP:void 0,onAbortRetry:e?eH:void 0,availableThinkingLevels:td,thinkingLevelMap:tc,modelNameOverride:q?.name??null,retryInfo:K,activeGoal:ep,activePlan:eh,advisorEnabled:r,queuedMessages:er,inputHistory:tr,contextUsage:Z,onRemoveQueuedMessage:eL,onPromoteQueuedToSteer:eA,slashCommands:ee,slashCommandsLoading:et,onLoadSlashCommands:eU,onBuiltinCommand:eF,onAudioUnlock:S,draftKey:e?.id??(t?`new:${t}`:void 0),cwd:e?.cwd??t}),tp=eo.filter(e=>"belowEditor"!==e.placement),th=eo.filter(e=>"belowEditor"===e.placement);return M?(0,n.jsx)("div",{role:"status",className:"flex h-full items-center justify-center",style:{color:"var(--text-muted)"},children:w("chatWindow.loadingSession")}):R?(0,n.jsx)("div",{role:"alert",className:"flex h-full items-center justify-center",style:{color:"var(--accent-strong)",padding:"0 var(--space-6)",textAlign:"center",fontSize:"var(--text-base)"},children:R}):(0,n.jsxs)("div",{className:"relative flex h-full flex-col overflow-hidden",onDragEnter:e9,onDragOver:e7,onDragLeave:te,onDrop:tt,children:[e8&&!e_&&(0,n.jsxs)("div",{className:"drop-zone-overlay pointer-events-none absolute inset-0 flex items-center justify-center backdrop-blur-[1px]",style:{zIndex:"var(--z-dropdown)"},children:[(0,n.jsx)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:[0,.8,1.6].map(e=>(0,n.jsx)("div",{className:"drop-ripple-ring absolute h-[720px] w-[720px] rounded-full border-[1.5px] border-solid",style:{transformOrigin:"center",animationDelay:`${e}s`}},e))}),(0,n.jsxs)("svg",{width:"280",height:"280",viewBox:"0 0 140 140",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"drop-zone-illustration",children:[(0,n.jsx)("rect",{x:"28",y:"44",width:"84",height:"60",rx:"8",fill:"color-mix(in srgb, var(--accent) 8%, transparent)",stroke:"color-mix(in srgb, var(--accent) 50%, transparent)",strokeWidth:"1.8"}),(0,n.jsx)("path",{d:"M36 100 L54 72 L68 88 L80 74 L104 100Z",fill:"color-mix(in srgb, var(--accent) 16%, transparent)",stroke:"color-mix(in srgb, var(--accent) 40%, transparent)",strokeWidth:"1.4",strokeLinejoin:"round"}),(0,n.jsx)("circle",{cx:"96",cy:"58",r:"8",fill:"color-mix(in srgb, var(--accent) 22%, transparent)",stroke:"color-mix(in srgb, var(--accent) 55%, transparent)",strokeWidth:"1.6"}),(0,n.jsxs)("g",{stroke:"color-mix(in srgb, var(--accent) 45%, transparent)",strokeWidth:"1.4",strokeLinecap:"round",children:[(0,n.jsx)("line",{x1:"96",y1:"46",x2:"96",y2:"43"}),(0,n.jsx)("line",{x1:"96",y1:"70",x2:"96",y2:"73"}),(0,n.jsx)("line",{x1:"84",y1:"58",x2:"81",y2:"58"}),(0,n.jsx)("line",{x1:"108",y1:"58",x2:"111",y2:"58"}),(0,n.jsx)("line",{x1:"87.5",y1:"49.5",x2:"85.4",y2:"47.4"}),(0,n.jsx)("line",{x1:"104.5",y1:"66.5",x2:"106.6",y2:"68.6"}),(0,n.jsx)("line",{x1:"104.5",y1:"49.5",x2:"106.6",y2:"47.4"}),(0,n.jsx)("line",{x1:"87.5",y1:"66.5",x2:"85.4",y2:"68.6"})]})]})]}),ea&&(0,n.jsx)(rk,{request:ea,onRespond:el}),(0,n.jsx)(rR,{subagent:eJ,sessionId:e?.id??ej.current??null,transcriptVersion:eJ?ev[eJ.id]??0:0,events:eJ?ex[eJ.id]??[]:void 0,onClose:()=>eY(null)}),ei&&(0,n.jsx)(nG,{request:ei,onInput:ed}),to?(0,n.jsx)("div",{className:"relative flex flex-1 flex-col overflow-hidden",children:(0,n.jsx)("div",{className:"flex flex-1 flex-col items-center justify-center overflow-y-auto px-4 py-8",style:{minHeight:0},children:(0,n.jsxs)("div",{className:"w-full",style:{maxWidth:960},children:[(0,n.jsxs)("div",{className:"mb-3 empty-chat-brand",style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"var(--space-5)",marginLeft:"var(--space-4)",marginRight:"var(--space-4)",fontFamily:"var(--font-mono)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10,minWidth:0,flex:1,lineHeight:1.4,overflow:"hidden"},children:[(0,n.jsx)("span",{style:{fontSize:18,fontWeight:600,letterSpacing:"0.04em",color:"var(--accent)",flexShrink:0,whiteSpace:"nowrap"},children:"⌥"}),(0,n.jsx)("span",{style:{fontSize:18,color:"var(--text)",fontWeight:600,letterSpacing:"0.02em",flexShrink:0,whiteSpace:"nowrap"},children:"ompgui"})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-end",gap:"var(--space-1)",flexShrink:0},children:[(0,n.jsxs)("span",{style:{fontSize:"var(--text-sm)",color:"var(--text-muted)"},children:["gui ",(0,n.jsxs)("span",{style:{color:"var(--text)"},children:["v","0.5.1"]})]}),(0,n.jsx)(n_,{})]})]}),(0,n.jsx)(nY,{notices:en,align:"right"}),tu]})})}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"relative flex flex-1 overflow-hidden",children:[(0,n.jsx)("div",{style:{position:"absolute",top:12,left:0,right:20*!C,zIndex:40,padding:"0 16px",pointerEvents:"none"},children:(0,n.jsx)("div",{style:{maxWidth:960,margin:"0 auto"},children:(0,n.jsx)(nY,{notices:en,floating:!0,align:"right"})})}),(0,n.jsx)("div",{ref:eC,className:"flex-1 overflow-y-auto pt-6"+(C?"":" [scrollbar-width:none]"),children:(0,n.jsx)("div",{style:{padding:"0 16px"},children:(0,n.jsxs)("div",{style:{maxWidth:960,margin:"0 auto"},children:[(0,n.jsx)(nZ,{statuses:es}),(0,n.jsx)(nJ,{widgets:tp}),(0,n.jsx)(nq,{messages:W,entryIds:$,conversationMeta:tn,messageRefs:ta,isStreaming:z.isStreaming,sessionBusy:e_,isNew:ek,forkingEntryId:J,handleFork:eE,handleNavigate:eM,handleEditContent:E,modelNames:F,messageCwd:tl,onOpenFile:b,sessionId:e?.id??ej.current??void 0,toolCallsDefaultCollapsed:i,visibleCount:eV,nearBottom:eG,sentinelRef:eQ,handleLoadMoreClick:e2}),z.isStreaming&&z.streamingMessage&&(0,n.jsx)(tw,{message:z.streamingMessage,isStreaming:!0,modelNames:F,cwd:tl,onOpenFile:b,toolCallsDefaultCollapsed:i}),i&&ts.map(e=>(0,n.jsxs)("div",{role:"status","aria-label":w("chatWindow.runningNamed",{names:e.name}),style:{display:"flex",alignItems:"center",gap:7,marginBottom:"var(--space-4)",padding:"var(--space-3) 10px",border:"1px solid color-mix(in srgb, var(--status-success) 25%, transparent)",borderRadius:"var(--radius-control)",background:"color-mix(in srgb, var(--status-success) 4%, transparent)",color:"var(--text-muted)",fontSize:"var(--text-md)"},children:[(0,n.jsx)("span",{"aria-hidden":!0,className:"live-status-dot live-pulse inline-block h-1.5 w-1.5 shrink-0 rounded-full bg-accent"}),(0,n.jsx)("span",{style:{color:"var(--status-success)",fontFamily:"var(--font-mono)",fontWeight:600,fontSize:"var(--text-sm)"},children:e.name})]},e.id)),N&&!z.streamingMessage&&0===ts.length&&(0,n.jsxs)("div",{role:"status","aria-live":"polite",className:"py-2 text-text-muted flex items-center gap-2",style:{fontSize:"var(--text-base)"},children:[(0,n.jsx)("span",{"aria-hidden":!0,className:"live-status-dot live-pulse inline-block h-2 w-2 shrink-0 rounded-full bg-accent"}),(0,n.jsx)("span",{children:[function(e){if(e?.kind==="running_tools"){let t=e.tools.map(e=>e.name);return 0===t.length?(0,d.Tl)("chatWindow.runningTool"):t.length<=3?(0,d.Tl)("chatWindow.runningNamed",{names:t.join(", ")}):(0,d.Tl)("chatWindow.runningNamedMore",{names:t.slice(0,2).join(", "),more:t.length-2})}return e?.kind==="waiting_model"?(0,d.Tl)("chatWindow.waitingModel"):e?.kind==="running_command"?(0,d.Tl)("chatWindow.runningCommand"):(0,d.Tl)("chatWindow.thinking")}(eu),ey>0?k("chatWindow.subagentCount",ey):null,eb?w("chatWindow.todoPhaseStatus",{name:eb.name,done:eb.done,total:eb.total}):null].filter(Boolean).join(" \xb7 ")})]}),L&&!A&&(0,n.jsxs)("div",{role:"status","aria-live":"polite",className:"py-2 text-text-muted flex items-center gap-2",style:{fontSize:"var(--text-base)"},children:[(0,n.jsx)("span",{"aria-hidden":!0,className:"live-status-dot live-pulse inline-block h-2 w-2 shrink-0 rounded-full bg-accent"}),(0,n.jsx)("span",{children:w("chatWindow.runningCommand")})]}),A&&(0,n.jsx)(tw,{message:{role:"bashExecution",command:A.command,output:"",excludeFromContext:A.excludeFromContext},sessionId:e?.id??ej.current??void 0}),(0,n.jsx)("div",{ref:eS})]})})}),C?null:(0,n.jsx)(rz,{messages:W,scrollContainer:eC,messageRefs:ta})]}),(0,n.jsxs)("div",{className:"relative",style:{flexShrink:0},children:[(0,n.jsx)("div",{style:{padding:"0 16px"},children:(0,n.jsxs)("div",{style:{maxWidth:960,margin:"0 auto"},children:[(0,n.jsx)(r3,{todoPhases:ew,subagents:eg,subagentEvents:ex,onSelectSubagent:eY}),(0,n.jsx)(nJ,{widgets:th})]})}),tu]})]})]})}function nZ({statuses:e}){return 0===e.length?null:(0,n.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"var(--space-2)",marginBottom:"var(--space-4)"},children:e.map(e=>(0,n.jsxs)("div",{className:"ui-compact-surface",style:{display:"flex",alignItems:"center",gap:"var(--space-3)",maxWidth:"100%",padding:"var(--space-2) var(--space-4)",border:"1px solid color-mix(in srgb, var(--accent) 24%, var(--border))",borderRadius:"var(--radius-control)",background:"color-mix(in srgb, var(--accent) 7%, var(--bg))",color:"var(--text-muted)",fontSize:"var(--text-md)"},children:[(0,n.jsx)("span",{style:{color:"var(--accent)",fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)"},children:e.key}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.text})]},e.key))})}function nJ({widgets:e}){return 0===e.length?null:(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"var(--space-3)",marginBottom:"var(--space-4)"},children:e.map(e=>(0,n.jsxs)("div",{className:"ui-compact-surface",style:{border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)",overflow:"hidden"},children:[(0,n.jsx)("div",{style:{padding:"5px 9px",borderBottom:"1px solid var(--border)",color:"var(--text-dim)",fontSize:"var(--text-sm)",fontFamily:"var(--font-mono)"},children:e.key}),(0,n.jsx)("pre",{style:{margin:0,padding:"var(--space-4) 9px",color:"var(--text-muted)",fontSize:"var(--text-md)",lineHeight:1.5,whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"var(--font-mono)"},children:e.lines.join("\n")})]},e.key))})}function nY({notices:e,floating:t=!1,align:r="left"}){return 0===e.length?null:(0,n.jsx)("div",{role:"status","aria-live":"polite",style:{display:"flex",flexDirection:"column",alignItems:"right"===r?"flex-end":"stretch",marginBottom:10*!t},children:e.map((r,a)=>{let i="error"===r.type?"var(--status-error)":"warning"===r.type?"var(--status-warning)":"success"===r.type?"var(--status-success)":"var(--accent)";return(0,n.jsxs)("div",{className:"notice-shelf-item",style:{display:"flex",alignItems:"center",gap:"var(--space-4)",minHeight:"var(--control-height-lg)",height:"var(--control-height-lg)",maxHeight:48,marginBottom:a===e.length-1?0:"var(--space-2)",overflow:"hidden",borderRadius:"var(--radius-control)",border:"1px solid color-mix(in srgb, var(--border) 70%, transparent)",background:"var(--bg)",color:"var(--text-muted)",width:"fit-content",maxWidth:"min(100%, 620px)",boxShadow:t?"var(--shadow-pop)":"var(--shadow-card)",fontSize:"var(--text-md)",lineHeight:1.35,transformOrigin:"top center",animation:r.exiting?"notice-shelf-out var(--dur-med) ease-in forwards":"notice-shelf-in var(--dur-med) var(--ease-out-warm) both",padding:"0 10px"},children:[(0,n.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:i,flexShrink:0}}),(0,n.jsx)("span",{style:{padding:"8px 0",minWidth:0,maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:r.message})]},r.id)})})}function nG({request:e,onInput:t}){let{t:r}=(0,d.s9)(),i=(0,a.useRef)(null),s=(0,a.useRef)(!1),o=function(e){let t=/^[┌├└╭╰][─┬┴┼]+[┐┤┘╮╯]$/,r=[];for(let n of e){let e=n.replace(n$,""),a=nL(e).trimEnd();if(t.test(a))continue;let i=e,s=nD(i);("│"===s||"┃"===s)&&" "===nD(i=nF(i,0))&&(i=nF(i,0));let o=function(e){let t=nA(e);for(let e=t.length-1;e>=0;e--)if(""!==t[e].char.trim())return e;return -1}(i),l=o>=0?nA(i)[o]?.char:void 0;("│"===l||"┃"===l)&&(i=nF(i,o)),r.push(function(e){let t=e;for(;;){let e=nA(t),r=e[e.length-1];if(!r||""!==r.char.trim())return t;t=t.slice(0,r.start)+t.slice(r.end)}}(i))}for(;r.length>0&&""===nL(r[0]).trim();)r.shift();for(;r.length>0&&""===nL(r[r.length-1]).trim();)r.pop();return r.length?r:e}(e.lines);return(0,a.useEffect)(()=>{i.current?.focus()},[e.id]),(0,n.jsx)("div",{style:{position:"absolute",inset:0,zIndex:"var(--z-extension-dialog)",display:"flex",alignItems:"center",justifyContent:"center",padding:20,background:"var(--overlay-backdrop)"},children:(0,n.jsxs)("div",{role:"dialog","aria-modal":"true",onClick:e=>{e.target.closest("button")||i.current?.focus()},style:{position:"relative",width:"min(920px, 100%)",maxHeight:"min(760px, calc(100vh - 40px))",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg)",boxShadow:"var(--shadow-modal)",overflow:"hidden",outline:"none"},children:[(0,n.jsx)("textarea",{ref:i,"aria-label":r("chatWindow.extensionTerminalInput"),autoCapitalize:"off",autoComplete:"off",autoCorrect:"off",spellCheck:!1,onKeyDown:r=>{if(s.current||r.nativeEvent.isComposing)return;let n=function(e){if(e.metaKey||e.ctrlKey&&!e.altKey&&"v"===e.key.toLowerCase())return null;if(e.ctrlKey&&!e.altKey){let t=function(e){if(1!==e.length)return null;let t=e.toUpperCase().charCodeAt(0);return t>=64&&t<=95?String.fromCharCode(31&t):"?"===e?"":null}(e.key);if(t)return t}if(e.altKey&&!e.ctrlKey){if("Backspace"===e.key)return"\x1b\x7f";let t=nB[e.key];if(t)return t;if(1===e.key.length)return`\x1b${e.key}`}return"Enter"===e.key?e.shiftKey?"\n":"\r":"Tab"===e.key?e.shiftKey?"\x1b[Z":" ":nP[e.key]??null}(r);n&&(r.preventDefault(),r.stopPropagation(),t(e,n))},onInput:r=>{if(s.current||r.nativeEvent.isComposing)return;let n=r.currentTarget.value;r.currentTarget.value="",n&&t(e,n)},onCompositionStart:()=>{s.current=!0},onCompositionEnd:r=>{s.current=!1;let n=r.currentTarget;queueMicrotask(()=>{let r=n.value;n.value="",r&&t(e,r)})},onPaste:r=>{r.preventDefault();let n=r.clipboardData.getData("text");n&&t(e,`\x1b[200~${n}\x1b[201~`)},style:{position:"absolute",width:1,height:1,padding:0,border:0,opacity:0,pointerEvents:"none"}}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"var(--space-5)",padding:"10px var(--space-5)",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("div",{style:{color:"var(--text)",fontSize:"var(--text-base)",fontWeight:650},children:r("chatWindow.extensionPanel")}),(0,n.jsx)("button",{onClick:()=>t(e,"\x03"),style:{padding:"5px 9px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:"var(--text-md)"},children:r("chatWindow.close")})]}),(0,n.jsx)("pre",{style:{margin:0,padding:14,maxHeight:"calc(min(760px, 100vh - 40px) - 48px)",overflow:"auto",background:"var(--bg-panel)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:"var(--text-base)",lineHeight:1.45,whiteSpace:"pre"},children:(o.length?o:[""]).map((e,t,r)=>{var i;return(0,n.jsxs)(a.Fragment,{children:[(i=`line-${t}`,(function(e){let t,r=[],n={},a=0;for(nW.lastIndex=0;null!==(t=nW.exec(e));)t.index>a&&r.push({text:e.slice(a,t.index),style:n}),n=function(e,t){let r={...e};for(let e=0;e<t.length;e++){let n=t[e];if(0===n)for(let e of Object.keys(r))delete r[e];else if(1===n)r.fontWeight=700;else if(2===n)r.opacity=.65;else if(3===n)r.fontStyle="italic";else if(4===n)r.textDecoration="underline";else if(22===n)delete r.fontWeight,delete r.opacity;else if(23===n)delete r.fontStyle;else if(24===n)delete r.textDecoration;else if(39===n)delete r.color;else if(49===n)delete r.background;else if(n>=30&&n<=37)r.color=nz[n-30];else if(n>=90&&n<=97)r.color=nN[n-90];else if(n>=40&&n<=47)r.background=nz[n-40];else if(n>=100&&n<=107)r.background=nN[n-100];else if((38===n||48===n)&&2===t[e+1]){let[a,i,s]=[t[e+2],t[e+3],t[e+4]];[a,i,s].every(e=>"number"==typeof e&&Number.isFinite(e))&&(38===n?r.color=`rgb(${a}, ${i}, ${s})`:r.background=`rgb(${a}, ${i}, ${s})`),e+=4}else if((38===n||48===n)&&5===t[e+1]){let a=function(e){if(e>=0&&e<8)return nz[e];if(e>=8&&e<16)return nN[e-8];if(e>=16&&e<=231){let t=e-16,r=Math.floor(t/36),n=Math.floor(t%36/6),a=e=>0===e?0:55+40*e;return`rgb(${a(r)}, ${a(n)}, ${a(t%6)})`}if(e>=232&&e<=255){let t=8+(e-232)*10;return`rgb(${t}, ${t}, ${t})`}}(t[e+2]);a&&(38===n?r.color=a:r.background=a),e+=2}}return r}(n,t[1]?t[1].split(";").map(e=>Number(e||"0")):[0]),a=t.index+t[0].length;return a<e.length&&r.push({text:e.slice(a),style:n}),r})(e).map((e,t)=>Object.keys(e.style).length>0?(0,n.jsx)("span",{style:e.style,children:e.text},`${i}-${t}`):e.text)),t<r.length-1?"\n":null]},t)})})]})})}function nX({tabs:e,activeTabId:t,onSelectTab:r,onCloseTab:i}){let{t:s}=(0,d.s9)(),[o,l]=(0,a.useState)(null),c=(0,a.useRef)(null);return(0,a.useEffect)(()=>{let e=c.current;if(!e)return;let r=e.querySelector(`[data-tab-id="${CSS.escape(t)}"]`);if(!r)return;let n=e.getBoundingClientRect(),a=r.getBoundingClientRect();a.left<n.left?e.scrollLeft-=n.left-a.left:a.right>n.right&&(e.scrollLeft+=a.right-n.right)},[t,e]),(0,n.jsx)("div",{ref:c,role:"tablist","aria-label":"Open files",className:"tabbar-scroll",style:{display:"flex",alignItems:"flex-end",background:"var(--bg-panel)",overflowX:"auto",flexShrink:0,height:"var(--control-height-lg)"},children:e.map(a=>{let d=a.id===t;return(0,n.jsxs)("div",{"data-tab-id":a.id,className:"tabbar-tab ui-focus-ring",onClick:()=>r(a.id),role:"tab",tabIndex:d?0:-1,"aria-selected":d,"aria-label":a.filePath,onKeyDown:t=>{if(("Enter"===t.key||" "===t.key)&&(t.preventDefault(),r(a.id)),("Delete"===t.key||"Backspace"===t.key)&&(t.preventDefault(),i(a.id)),"ArrowRight"===t.key||"ArrowLeft"===t.key){t.preventDefault();let n=e.findIndex(e=>e.id===a.id),i=e[(n+("ArrowRight"===t.key?1:-1)+e.length)%e.length];if(i){r(i.id);let e=c.current?.querySelector(`[data-tab-id="${CSS.escape(i.id)}"]`);e?.focus()}}},onMouseDown:e=>{1===e.button&&e.preventDefault()},onAuxClick:e=>{1===e.button&&(e.preventDefault(),e.stopPropagation(),i(a.id))},style:{display:"flex",alignItems:"center",gap:"var(--space-3)",height:"var(--control-height-lg)",paddingLeft:"var(--space-5)",paddingRight:"var(--space-3)",borderRight:"1px solid var(--border)",background:d?"var(--bg)":"var(--bg-panel)",cursor:"pointer",fontSize:"var(--text-md)",color:d?"var(--text)":"var(--text-muted)",whiteSpace:"nowrap",maxWidth:180,minWidth:80,flexShrink:0,userSelect:"none",position:"relative",transition:"background var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},children:[d&&(0,n.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",left:0,right:0,bottom:0,height:2,background:"var(--accent)",borderTopLeftRadius:"var(--radius-control)",borderTopRightRadius:"var(--radius-control)"}}),(0,n.jsx)("span",{style:{flexShrink:0,opacity:d?1:.7,display:"flex",alignItems:"center"},children:ea(a.label,13)}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",flex:1,fontWeight:d?500:400},title:a.filePath,children:a.label}),(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),i(a.id)},tabIndex:-1,className:"tabbar-close ui-focus-ring",onMouseEnter:()=>l(a.id),onMouseLeave:()=>l(null),style:{display:"flex",alignItems:"center",justifyContent:"center",width:"var(--space-8)",height:"var(--space-8)",background:o===a.id?"var(--bg-hover)":"transparent",border:"none",borderRadius:"var(--radius-control)",color:o===a.id?"var(--text)":"var(--text-dim)",cursor:"pointer",padding:0,flexShrink:0,transition:"background var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},title:s("tabBar.close"),"aria-label":s("tabBar.closeTab",{label:a.label}),children:(0,n.jsx)(x.A,{size:11,strokeWidth:2,"aria-hidden":"true"})})]},a.id)})})}function nQ(e){return"message"===e.type&&"message"in e}function n0(e){if(!nQ(e))return;let t=e.message.content,r="string"==typeof t?t:Array.isArray(t)?t.filter(e=>"object"==typeof e&&null!==e&&"text"===e.type&&"string"==typeof e.text).map(e=>e.text).join(" "):"";(r=r.replace(/\s+/g," ").trim()).length>40&&(r=`${r.slice(0,40)}…`),r||(r="assistant"===e.message.role?(0,d.Tl)("branchNavigator.assistantLabel"):"message");let n="user"===e.message.role||"assistant"===e.message.role?e.message.role:void 0;return{...n?{role:n}:{},text:r}}function n1(e){let t=e,r=t.branchPreview,n=t.entry;nQ(t.entry)&&(r??=n0(t.entry),n=t.entry);let a=t.compressedEntryIds?.length??0;for(;1===t.children.length;)t=t.children[0],r??=t.branchPreview??n0(t.entry),!nQ(n)&&nQ(t.entry)&&(n=t.entry),a+=1+(t.compressedEntryIds?.length??0);return{node:t,skipped:a,branchPreview:r,labelEntry:n}}let n2=(0,a.memo)(function e({node:t,activePathIds:r,depth:i,isLast:s,parentLines:o,onSelect:l}){let{t:c}=(0,d.s9)(),{node:u,skipped:p,branchPreview:h,labelEntry:m}=(0,a.useMemo)(()=>n1(t),[t]),f=u.entry.id,g=t.entry.id,x=r.has(f),v=r.has(g)||r.has(f),y=(0,a.useMemo)(()=>h?.text??n0(m)?.text??m.type,[h,m]),b=(0,a.useMemo)(()=>h?.role??("message"===m.type&&"message"in m?m.message.role:null),[h,m]);return(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{role:"button",tabIndex:0,"aria-label":y,style:{display:"flex",alignItems:"center",height:24,cursor:"pointer"},onClick:()=>l(u.entry.id),onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),l(u.entry.id))},children:[o.map((e,t)=>(0,n.jsx)("div",{style:{width:16,flexShrink:0,position:"relative",height:"100%",alignSelf:"stretch"},children:e&&(0,n.jsx)("div",{style:{position:"absolute",left:7,top:0,bottom:0,width:1,background:"var(--border)"}})},t)),(0,n.jsxs)("div",{style:{width:16,flexShrink:0,position:"relative",height:"100%",alignSelf:"stretch"},children:[(0,n.jsx)("div",{style:{position:"absolute",left:7,top:0,bottom:s?"50%":0,width:1,background:"var(--border)"}}),(0,n.jsx)("div",{style:{position:"absolute",left:7,top:"50%",width:9,height:1,background:"var(--border)"}})]}),(0,n.jsx)("div",{style:{width:7,height:7,borderRadius:"50%",flexShrink:0,background:x?"var(--accent)":v?"var(--text-muted)":"var(--border)",border:x?"none":"1px solid var(--text-dim)",marginRight:6,transition:"background var(--dur-fast) var(--ease-out-warm)"}}),b&&(0,n.jsx)("span",{style:{fontSize:9,fontFamily:"var(--font-mono)",color:"user"===b?"var(--accent)":"var(--text-dim)",background:"user"===b?"color-mix(in srgb, var(--accent) 8%, transparent)":"var(--bg-hover)",border:`1px solid ${"user"===b?"color-mix(in srgb, var(--accent) 20%, transparent)":"var(--border)"}`,borderRadius:3,padding:"0 4px",marginRight:5,flexShrink:0,lineHeight:"16px"},children:c("user"===b?"branchNavigator.roleUser":"branchNavigator.roleAssistant")}),p>0&&(0,n.jsxs)("span",{style:{fontSize:"var(--text-xs)",color:"var(--text-dim)",marginRight:5,flexShrink:0},children:["+",p]}),(0,n.jsx)("span",{style:{fontSize:"var(--text-sm)",color:x?"var(--text)":v?"var(--text-muted)":"var(--text-dim)",fontWeight:x?500:400,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:y})]}),u.children.map((t,a)=>(0,n.jsx)(e,{node:t,activePathIds:r,depth:i+1,isLast:a===u.children.length-1,parentLines:[...o,!s],onSelect:l},t.entry.id))]})},(e,t)=>{if(e.node!==t.node||e.onSelect!==t.onSelect)return!1;if(e.activePathIds===t.activePathIds)return!0;let r=t.node.entry.id,n=n1(t.node).node.entry.id;return e.activePathIds.has(n)===t.activePathIds.has(n)&&e.activePathIds.has(r)===t.activePathIds.has(r)});function n5({tree:e,activeLeafId:t,onLeafChange:r,inline:i,containerRef:s,open:o,onToggle:l,hasSession:c}){let{t:u}=(0,d.s9)(),[p,h]=(0,a.useState)(!1),m=void 0!==o?o:p,f=(0,a.useRef)(null),[g,x]=(0,a.useState)(null);(0,a.useEffect)(()=>{if(!m||!i)return;let e=s?.current??f.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect(),r=t.width,n=Math.min(260,window.innerHeight-t.bottom-8);x({top:t.bottom,left:Math.max(0,Math.min(t.left,window.innerWidth-r)),width:r,height:Math.max(60,n)})};t();let r=new ResizeObserver(t);return r.observe(e),window.addEventListener("scroll",t,!0),window.addEventListener("resize",t),()=>{r.disconnect(),window.removeEventListener("scroll",t,!0),window.removeEventListener("resize",t)}},[m,i,s]),(0,a.useEffect)(()=>{if(!m||!i)return;let e=()=>{l?l():h(!1)},t=t=>{let r=f.current;r&&r.contains(t.target)||t.target instanceof Element&&t.target.closest("[data-branch-panel]")||e()},r=t=>{"Escape"===t.key&&(t.stopPropagation(),e())};return document.addEventListener("mousedown",t),document.addEventListener("keydown",r),()=>{document.removeEventListener("mousedown",t),document.removeEventListener("keydown",r)}},[m,i,s,l]);let v=(0,a.useMemo)(()=>t?new Set(function e(r,n){for(let a of r){let r=[...n,a.entry.id];if(a.entry.id===t||a.compressedEntryIds?.includes(t))return r;let i=e(a.children,r);if(i)return i}return null}(e,[])??[]):new Set,[e,t]),y=(0,a.useCallback)(e=>{r(e),void 0===o&&h(!1)},[r,o]),b=(0,a.useMemo)(()=>c?!function e(t){if(t.length>1)return!0;for(let r of t)if(r.children.length>1||e(r.children))return!0;return!1}(e)?u("branchNavigator.noBranches"):null:u("branchNavigator.noActiveSession"),[c,e,u]),w=(0,a.useMemo)(()=>{let t=e.length>0?n1(e[0]):null;return t?.node??null},[e]),k=(0,a.useMemo)(()=>e.length>1?e:w&&w.children.length>1?w.children:[],[w,e]),j=!b&&k.length>0,S=(0,n.jsx)(ez.A,{size:16,strokeWidth:1.8,"aria-hidden":"true",style:{color:j?"var(--accent)":void 0,flexShrink:0}}),C=(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--text-dim)",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",style:{marginLeft:2,transform:m?"rotate(180deg)":"none",transition:"transform var(--dur-fast) var(--ease-out-warm)"},children:(0,n.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})});return i?(0,n.jsxs)("div",{style:{height:"100%",display:"flex",alignItems:"center"},children:[(0,n.jsx)("button",{ref:f,onClick:()=>l?l():h(e=>!e),className:"shell-toolbar-btn ui-focus-ring",style:{background:m?"var(--bg-selected)":void 0,color:m?"var(--text)":void 0},title:u("branchNavigator.branches"),"aria-label":u("branchNavigator.branches"),"aria-haspopup":"menu","aria-expanded":m,children:S}),m&&g&&(0,n.jsx)("div",{"data-branch-panel":!0,className:"dropdown-surface",style:{position:"fixed",top:g.top,left:g.left,width:g.width,maxHeight:g.height,overflowY:"auto",zIndex:"var(--z-branch-popover)"},children:j?(0,n.jsx)("div",{style:{padding:"var(--space-2) var(--space-5) var(--space-4) var(--space-5)",maxHeight:260,overflowY:"auto"},children:k.map((e,t)=>(0,n.jsx)(n2,{node:e,activePathIds:v,depth:0,isLast:t===k.length-1,parentLines:[],onSelect:y},e.entry.id))}):(0,n.jsx)("div",{style:{padding:"10px var(--space-6)",fontSize:"var(--text-md)",color:"var(--text-muted)",fontStyle:"italic"},children:b})})]}):(0,n.jsxs)("div",{style:{borderBottom:"1px solid var(--border)",background:"var(--bg)",flexShrink:0,position:"relative"},children:[(0,n.jsxs)("button",{onClick:()=>h(e=>!e),style:{display:"flex",alignItems:"center",gap:"var(--space-3)",width:"100%",padding:"5px var(--space-5)",background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",fontSize:"var(--text-sm)",textAlign:"left"},children:[S,(0,n.jsx)("span",{style:{color:"var(--text-muted)"},children:u("branchNavigator.branches")}),C]}),m&&(0,n.jsx)("div",{style:{position:"absolute",top:"100%",left:0,right:0,background:"var(--bg)",borderBottom:"1px solid var(--border)",boxShadow:"var(--shadow-pop)",zIndex:100},children:j?(0,n.jsx)("div",{style:{padding:"var(--space-2) var(--space-5) var(--space-4) var(--space-5)",maxHeight:260,overflowY:"auto"},children:k.map((e,t)=>(0,n.jsx)(n2,{node:e,activePathIds:v,depth:0,isLast:t===k.length-1,parentLines:[],onSelect:y},e.entry.id))}):(0,n.jsx)("div",{style:{padding:"10px var(--space-6)",fontSize:"var(--text-md)",color:"var(--text-muted)",fontStyle:"italic"},children:b??u("branchNavigator.noBranches")})})]})}function n4(){let{locale:e,setLocale:t,t:r}=(0,d.s9)(),i=(0,t9.a)(),[s,o]=(0,a.useState)(!1),[l,c]=(0,a.useState)(0),u=(0,a.useRef)(null),p=(0,a.useRef)([]),h=(0,a.useId)(),m=`${h}-listbox`,f=Math.max(0,d.YZ.findIndex(t=>t.value===e)),g=d.YZ[f];(0,a.useEffect)(()=>{s||c(f)},[f,s]),(0,a.useEffect)(()=>{s&&p.current[l]?.focus()},[s,l]);let x=(e=!0)=>{o(!1),e&&u.current?.focus()},v=e=>{t(e),x(!0)};return(0,n.jsxs)("div",{style:{position:"relative",flexShrink:0},onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||o(!1)},children:[(0,n.jsxs)("button",{ref:u,type:"button",onClick:()=>o(e=>!e),onKeyDown:e=>{("ArrowDown"===e.key||"Enter"===e.key||" "===e.key||"ArrowUp"===e.key)&&(e.preventDefault(),o(!0),c("ArrowUp"===e.key?d.YZ.length-1:f))},title:r("languageSwitcher.switchTo",{language:g.label}),"aria-haspopup":"menu","aria-expanded":s,"aria-controls":s?m:void 0,className:"shell-toolbar-btn ui-focus-ring",style:{width:"auto",minWidth:i?"var(--control-touch)":"var(--control-height-lg)",padding:"0 var(--space-4)",gap:"var(--space-2)",background:s?"var(--bg-selected)":void 0,color:s?"var(--text)":void 0,fontSize:"var(--text-sm)",whiteSpace:"nowrap"},children:[g.label,(0,n.jsx)(eW.A,{size:10,strokeWidth:2,"aria-hidden":"true",style:{flexShrink:0,transform:s?"rotate(180deg)":"none",transition:"transform var(--dur-fast) var(--ease-out-warm)"}})]}),s&&(0,n.jsx)("ul",{id:m,role:"menu",className:"dropdown-surface animate-slide-down",style:{position:"absolute",top:"calc(100% + var(--space-2))",right:0,zIndex:"var(--z-dropdown)",minWidth:120,margin:0,padding:"var(--space-2)",listStyle:"none",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",boxShadow:"var(--shadow-pop)"},children:d.YZ.map((t,r)=>{let a=t.value===e;return(0,n.jsx)("li",{role:"none",children:(0,n.jsxs)("button",{className:"dropdown-item",ref:e=>{p.current[r]=e},type:"button",role:"menuitem",tabIndex:-1,"aria-current":a||void 0,onClick:()=>v(t.value),onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background=a?"var(--bg-selected)":"transparent"},onKeyDown:e=>((e,t)=>{switch(e.key){case"ArrowDown":e.preventDefault(),c((t+1)%d.YZ.length);break;case"ArrowUp":e.preventDefault(),c((t-1+d.YZ.length)%d.YZ.length);break;case"Home":e.preventDefault(),c(0);break;case"End":e.preventDefault(),c(d.YZ.length-1);break;case"Enter":case" ":e.preventDefault(),v(d.YZ[t].value);break;case"Escape":e.preventDefault(),e.stopPropagation(),x(!0);break;case"Tab":x(!1)}})(e,r),style:{width:"100%",display:"flex",alignItems:"center",justifyContent:"space-between",gap:"var(--space-4)",padding:"7px 10px",border:0,borderRadius:5,background:a?"var(--bg-selected)":"transparent",color:a?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:"var(--text-md)",textAlign:"left",transition:"background-color var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},children:[(0,n.jsx)("span",{children:t.label}),a&&(0,n.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:"m3 8 3.5 3.5L13 5"})})]})},t.value)})})]})}var n3=r(91669),n6=r(96304),n8=r(47603),n9=r(78890),n7=r(61663),ae=r(61491),at=r(16449),ar=r(45486),an=r(96793),aa=r(7834);let ai=(0,i.default)(()=>Promise.all([r.e(4854),r.e(9754),r.e(5658)]).then(r.bind(r,65658)).then(e=>e.FileViewer),{loadableGenerated:{webpack:()=>[65658]},ssr:!1,loading:()=>(0,n.jsx)(af,{})}),as="ompgui:sidebar-width",ao="ompgui:tool-calls-collapsed",al="ompgui:right-panel-width";function ad(e){return Math.min(520,Math.max(200,Math.round(e)))}function ac(e){return Math.min(960,Math.max(300,Math.round(e)))}function au(){return ac(.42*window.innerWidth)}let ap=(0,i.default)(()=>r.e(9182).then(r.bind(r,9182)).then(e=>e.SettingsConfig),{loadableGenerated:{webpack:()=>[9182]},ssr:!1,loading:()=>(0,n.jsx)(ag,{})}),ah=(0,i.default)(()=>r.e(6604).then(r.bind(r,96604)).then(e=>e.UsageConfig),{loadableGenerated:{webpack:()=>[96604]},ssr:!1,loading:()=>(0,n.jsx)(ag,{})}),am=(0,i.default)(()=>Promise.all([r.e(8717),r.e(1133)]).then(r.bind(r,11133)).then(e=>e.CommandPalette),{loadableGenerated:{webpack:()=>[11133]},ssr:!1});function af(){let{t:e}=(0,d.s9)();return(0,n.jsx)("div",{role:"status",style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:"var(--text-md)"},children:e("appShell.loading")})}function ag(){let{t:e}=(0,d.s9)();return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:"var(--z-dialog-backdrop)",background:"var(--overlay-backdrop)",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:"var(--text-md)"},children:e("appShell.loading")})}function ax(){let e,t,r,i,l,u,p,h,m,f,g,x,v,y=(0,s.useRouter)(),b=(0,s.useSearchParams)(),[w]=(0,a.useState)(()=>{let e;return{requestedCwd:e=b.get("cwd")?.trim()||null,sessionId:e?null:b.get("session")}}),{isDark:k,preference:j,toggleTheme:S}=(0,an.DP)(),{t:T,locale:I}=(0,d.s9)(),E=(0,t9.a)(),[M,R]=(0,a.useState)(null),[W,$]=(0,a.useState)(null),[z,N]=(0,a.useState)(()=>w.requestedCwd?"validating":"idle"),[L,A]=(0,a.useState)(null),[F,D]=(0,a.useState)(0),[P,B]=(0,a.useState)(0),[O,H]=(0,a.useState)(0),[U,_]=(0,a.useState)(!1),[V,q]=(0,a.useState)(null),[K,Z]=(0,a.useState)(!1),[J,Y]=(0,a.useState)(0),[G,X]=(0,a.useState)(!1),[Q,ee]=(0,a.useState)(!0),[et,er]=(0,a.useState)(!1),[en,ea]=(0,a.useState)(260),[ei,eo]=(0,a.useState)(!0),[el,ed]=(0,a.useState)(!1),ec=(0,a.useRef)(null),eu=(0,a.useRef)(null),ep=(0,a.useRef)(260);(0,a.useEffect)(()=>{ea(function(){try{let e=window.localStorage.getItem(as),t=e?Number(e):NaN;return Number.isFinite(t)?ad(t):260}catch{return 260}}());try{eo("false"!==window.localStorage.getItem(ao))}catch{}},[]);let eh=(0,a.useCallback)(e=>{eo(e);try{window.localStorage.setItem(ao,String(e))}catch{}},[]),ef=(0,a.useRef)(!1);(0,a.useEffect)(()=>{if(!ef.current){ef.current=!0;return}if(!el)try{window.localStorage.setItem(as,String(en))}catch{}},[en,el]);let[eg,ex]=(0,a.useState)(!1),[ev,ey]=(0,a.useState)(!1);(0,a.useEffect)(()=>{E&&ee(!1)},[E]),(0,a.useEffect)(()=>{er(!0)},[]),(0,a.useEffect)(()=>{X("true"===localStorage.getItem("omp-advisor-enabled"))},[]);let eb=(0,a.useCallback)(e=>{X(e),localStorage.setItem("omp-advisor-enabled",String(e))},[]);(0,a.useEffect)(()=>{let e=new AbortController;return fetch("/api/omp-update",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"check"}),signal:e.signal}).then(e=>e.ok?e.json():null).then(e=>{if(ey(!!e?.updateAvailable),!e?.updateAvailable||!e.availableVersion)return;let t=e.updateCommand||"omp update";em.oR.info((0,d.Tl)("appShell.ompUpdateAvailable"),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"var(--space-3)",marginTop:"var(--space-2)"},children:[(0,n.jsx)("div",{children:(0,d.Tl)("appShell.updateVersion",{current:e.currentVersion??"?",available:e.availableVersion})}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-3)"},children:[(0,n.jsx)("code",{style:{background:"var(--bg-panel)",padding:"3px 7px",borderRadius:"var(--radius-control)",fontSize:"var(--text-sm)",fontFamily:"var(--font-mono)"},children:t}),(0,n.jsx)("button",{type:"button",onClick:()=>{(0,aa.D)(t).then(()=>em.oR.success((0,d.Tl)("appShell.commandCopied"))).catch(()=>em.oR.error((0,d.Tl)("appShell.commandCopyFailed")))},style:{padding:"3px 7px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)",color:"var(--text)",cursor:"pointer",fontSize:"var(--text-sm)"},children:(0,d.Tl)("appShell.copyCommand")})]})]}))}).catch(()=>{}),()=>e.abort()},[]),(0,a.useEffect)(()=>{let e=new AbortController;return fetch("/api/app-update",{signal:e.signal}).then(e=>e.ok?e.json():null).then(e=>{if(ex(!!e?.updateAvailable),!e?.updateAvailable||!e.availableVersion)return;let t=e.updateCommand||"npm install -g ompgui";em.oR.info((0,d.Tl)("appShell.appUpdateAvailable"),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"var(--space-3)",marginTop:"var(--space-2)"},children:[(0,n.jsx)("div",{children:(0,d.Tl)("appShell.updateVersion",{current:e.currentVersion??"?",available:e.availableVersion})}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-3)"},children:[(0,n.jsx)("code",{style:{background:"var(--bg-panel)",padding:"3px 7px",borderRadius:"var(--radius-control)",fontSize:"var(--text-sm)",fontFamily:"var(--font-mono)"},children:t}),(0,n.jsx)("button",{type:"button",onClick:()=>{(0,aa.D)(t).then(()=>em.oR.success((0,d.Tl)("appShell.commandCopied"))).catch(()=>em.oR.error((0,d.Tl)("appShell.commandCopyFailed")))},style:{padding:"3px 7px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)",color:"var(--text)",cursor:"pointer",fontSize:"var(--text-sm)"},children:(0,d.Tl)("appShell.copyCommand")})]})]}))}).catch(()=>{}),()=>e.abort()},[]);let ew=(0,a.useRef)(null),ej=(0,a.useRef)(null),[eS,eC]=(0,a.useState)([]),[eT,eI]=(0,a.useState)(null),eE=(0,a.useRef)(null),eM=(0,a.useCallback)((e,t,r)=>{eC(e),eI(t),eE.current=r},[]),eR=(0,a.useCallback)(e=>{eE.current?.(e)},[]),[eW,e$]=(0,a.useState)(null),[ez,eN]=(0,a.useState)(!1),eL=(0,a.useRef)(null),eA=(0,a.useRef)(0),eF=(0,a.useRef)(null),eD=(0,a.useRef)(null),eP=(0,a.useCallback)(e=>{e$(e),eN(!1)},[]),eB=(0,a.useCallback)(e=>{eA.current+=1,eL.current=e,eN(!1)},[]),[eO,eH]=(0,a.useState)(null),[eU,e_]=(0,a.useState)({kind:"idle"}),eV=(0,a.useRef)(null),eK=(0,a.useRef)(M?.id??null);eK.current=M?.id??null;let eZ=(0,a.useCallback)(e=>{eH(e)},[]),[eJ,eY]=(0,a.useState)(null),eG=(0,a.useRef)(null),eX=(0,a.useCallback)((e,t)=>{(0,aa.D)(t).then(()=>{eG.current&&clearTimeout(eG.current),eY(e),eG.current=setTimeout(()=>eY(null),1400)})},[]);(0,a.useEffect)(()=>()=>{eG.current&&clearTimeout(eG.current),eV.current&&clearTimeout(eV.current)},[]);let[eQ,e0]=(0,a.useState)(null),e1=(0,a.useCallback)(e=>{e0(e)},[]),[e2,e5]=(0,a.useState)(null),[e4,e3]=(0,a.useState)(null),e6=(0,a.useCallback)(e=>{E&&ee(!1),e5(t=>t===e?null:e)},[E]),e8=(0,a.useCallback)(()=>{let e="system"!==e2;if(e6("system"),!e||ez||null!==eW)return;let t=eL.current;if(!t)return;let r=++eA.current;eN(!0),t().catch(e=>{console.error("Failed to load system prompt:",e)}).finally(()=>{eA.current===r&&eN(!1)})},[e2,eW,ez,e6]),e9=(0,a.useCallback)(()=>{E&&ee(!1),e5("session")},[E]),e7=(0,a.useCallback)(()=>{E&&e5(null),ee(e=>!e)},[E]),te=(0,a.useCallback)(()=>{ea(260)},[]),tt=(0,a.useCallback)(e=>{ea(t=>ad(t+e))},[]),tr=(0,a.useCallback)(e=>{"ArrowLeft"===e.key?(e.preventDefault(),tt(-10)):"ArrowRight"===e.key?(e.preventDefault(),tt(10)):("Enter"===e.key||" "===e.key)&&(e.preventDefault(),te())},[tt,te]),tn=(0,a.useCallback)(e=>{if(E)return;e.preventDefault();let t=e.clientX;ed(!0);let r=e=>{let r=ad(en+(e.clientX-t));eu.current?.style.setProperty("--sidebar-width",`${r}px`),ep.current=r},n=()=>{window.removeEventListener("mousemove",r),window.removeEventListener("mouseup",n),ec.current=null,ed(!1),ea(ep.current),document.body.style.cursor="",document.body.style.userSelect=""};document.body.style.cursor="col-resize",document.body.style.userSelect="none",ep.current=en,ec.current={onMove:r,onUp:n},window.addEventListener("mousemove",r),window.addEventListener("mouseup",n)},[E,en]);(0,a.useEffect)(()=>()=>{let e=ec.current;e&&(window.removeEventListener("mousemove",e.onMove),window.removeEventListener("mouseup",e.onUp),ec.current=null,document.body.style.cursor="",document.body.style.userSelect="")},[]),(0,a.useEffect)(()=>{if(!e2||!ej.current)return;let e=()=>{let e=ej.current.getBoundingClientRect();e3({top:e.bottom,left:e.left,width:e.width})};e();let t=new ResizeObserver(e);return t.observe(ej.current),()=>t.disconnect()},[e2]),(0,a.useEffect)(()=>{if(!e2||"branches"===e2)return;let e=e=>{e.target instanceof Element&&e.target.closest("[data-top-panel]")||eF.current?.contains(e.target)||eD.current?.contains(e.target)||e5(null)},t=e=>{"Escape"===e.key&&(e.stopPropagation(),e5(null))};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[e2]);let[ta,ti]=(0,a.useState)([]),[ts,to]=(0,a.useState)(null),[tl,td]=(0,a.useState)(!1),[tc,tu]=(0,a.useState)(520),[tp,th]=(0,a.useState)(!1),tm=(0,a.useRef)(null),tf=(0,a.useRef)(520),tg=(0,a.useRef)(null),tx=(0,a.useRef)(!1);(0,a.useEffect)(()=>{tu(function(){try{let e=window.localStorage.getItem(al),t=e?Number(e):NaN;return Number.isFinite(t)?ac(t):au()}catch{return au()}}())},[]),(0,a.useEffect)(()=>{if(!tx.current){tx.current=!0;return}if(!tp)try{window.localStorage.setItem(al,String(tc))}catch{}},[tp,tc]);let tv=(0,a.useCallback)(()=>{tu(au())},[]),ty=(0,a.useCallback)(e=>{tu(t=>ac(t+e))},[]),tb=(0,a.useCallback)(e=>{"ArrowLeft"===e.key?(e.preventDefault(),ty(16)):"ArrowRight"===e.key?(e.preventDefault(),ty(-16)):("Enter"===e.key||" "===e.key)&&(e.preventDefault(),tv())},[ty,tv]),tw=(0,a.useCallback)(e=>{if(E)return;e.preventDefault();let t=e.clientX;th(!0);let r=e=>{let r=ac(tc+(t-e.clientX));tm.current?.style.setProperty("--right-panel-width",`${r}px`),tf.current=r},n=()=>{window.removeEventListener("pointermove",r),window.removeEventListener("pointerup",n),tg.current=null,th(!1),tu(tf.current),document.body.style.cursor="",document.body.style.userSelect=""};document.body.style.cursor="col-resize",document.body.style.userSelect="none",tf.current=tc,tg.current={onMove:r,onUp:n},window.addEventListener("pointermove",r),window.addEventListener("pointerup",n)},[E,tc]);(0,a.useEffect)(()=>()=>{let e=tg.current;e&&(window.removeEventListener("pointermove",e.onMove),window.removeEventListener("pointerup",e.onUp),tg.current=null,document.body.style.cursor="",document.body.style.userSelect="")},[]);let tk=(0,a.useCallback)((e,t)=>{ew.current?.insertText(t8(e,t))},[]),tj=(0,a.useCallback)(e=>{let t=e.map(e=>t8(e,!1)).join("");t&&ew.current?.insertText(t)},[]),tS=(0,a.useCallback)((e,t,r)=>{let n,a,i,s;ew.current?.insertText((n=Math.max(1,Math.min(t,r)),a=Math.max(1,Math.max(t,r)),i=e.includes(" ")?`@"${e}"`:`@${e}`,s=n===a?`:${n}`:`:${n}-${a}`,`${i}${s} `))},[]),tC=w.sessionId,[tT,tI]=(0,a.useState)(null),[tE,tM]=(0,a.useState)(()=>!tC),tR=(0,a.useRef)(!1);(0,a.useEffect)(()=>{let e=w.requestedCwd;if(!e)return;let t=new AbortController;return N("validating"),A(null),fetch("/api/cwd/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e}),signal:t.signal}).then(async e=>{let t=await e.json().catch(()=>({}));if(!e.ok||!t.cwd)throw Error(t.error||t.code?(0,c.K)(t):`HTTP ${e.status}`);tR.current=!0,$(t.cwd),N("ready")}).catch(e=>{t.signal.aborted||(A(e instanceof Error?e.message:String(e)),N("error"))}),()=>t.abort()},[w]);let tW=(0,a.useCallback)((e,t)=>{if(tI(e),!e)return;if(tR.current){tR.current=!1;return}let r=t??e,n=M?M.projectRoot??M.cwd:null;n&&ek(n)===ek(r)||(R(null),$(t=>t&&t!==e?null:t),B(e=>e+1),eC([]),eI(null),e$(null),eN(!1),e5(null),y.replace("/",{scroll:!1}))},[y,M]),t$=(0,a.useCallback)((e,t=!1)=>{$(null),R(e),B(e=>e+1),e$(null),eN(!1),tM(!0),E&&!t&&ee(!1),t&&(tR.current=!0),t||y.replace(`?session=${encodeURIComponent(e.id)}`,{scroll:!1})},[y,E]),tz=(0,a.useCallback)((e,t)=>{R(null),$(t),B(e=>e+1),eC([]),eI(null),e$(null),eN(!1),e5(null),E&&ee(!1),y.replace("/",{scroll:!1})},[y,E]);!function(e){let{onNewSession:t,activeCwd:r}=e;(0,a.useEffect)(()=>{let e=e=>{if("Escape"===e.key){if(!o)return;let t=e.target?.tagName;if("TEXTAREA"===t||"INPUT"===t)return;e.preventDefault(),o();return}if("n"===e.key&&e.ctrlKey&&e.altKey){if(!r||!t)return;e.preventDefault(),t(r)}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[r,t])}({onNewSession:e=>tz(`kb-${Date.now()}`,e),activeCwd:tT});let tN=(0,a.useCallback)(e=>{fetch("/api/sessions").then(e=>e.ok?e.json():null).then(t=>{let r=t?.sessions.find(t=>t.id===e);r&&R(t=>t&&t.id===e&&!t.projectRoot?r:t)}).catch(()=>{})},[]),tL=(0,a.useCallback)(e=>{$(null),R(e),D(e=>e+1),tN(e.id),y.replace(`?session=${encodeURIComponent(e.id)}`,{scroll:!1})},[y,tN]),tA=(0,a.useCallback)(()=>{if(D(e=>e+1),H(e=>e+1),"hidden"!==document.visibilityState||!("Notification"in window))return;let e=()=>{!function(e,t,r,n={createNotification:(e,t)=>new Notification(e,t)}){try{let a=n.createNotification(e,{body:t});a.onclick=()=>{a.close(),r()}}catch{return!1}}(M?.name??(0,d.Tl)("appShell.sessionComplete"),(0,d.Tl)("appShell.taskFinished"),()=>{window.focus(),M&&t$(M)})};"granted"===Notification.permission?e():"default"===Notification.permission&&Notification.requestPermission().then(t=>{"granted"===t&&e()})},[t$,M]),tF=(0,a.useCallback)(async()=>{let e=M?.id;if(e&&"naming"!==eU.kind){eV.current&&clearTimeout(eV.current),e5(null),e_({kind:"naming"});try{let t=await fetch(`/api/sessions/${encodeURIComponent(e)}/auto-name`,{method:"POST"}),r=await t.json().catch(()=>({}));if(!t.ok||!r.title)throw Error(r.error||r.code?(0,c.K)(r):`HTTP ${t.status}`);let n=r.title.trim();if(D(e=>e+1),eK.current!==e)return;R(t=>t?.id===e?{...t,name:n}:t),eH(t=>t?.sessionId===e?{...t,sessionName:n}:t),e_({kind:"success"}),eV.current=setTimeout(()=>e_({kind:"idle"}),1800)}catch(t){if(eK.current!==e)return;e_({kind:"error",message:t instanceof Error?t.message:String(t)}),eV.current=setTimeout(()=>e_({kind:"idle"}),5e3)}}},[eU.kind,M?.id]);(0,a.useEffect)(()=>{eV.current&&clearTimeout(eV.current),e_({kind:"idle"})},[M?.id]);let tD=(0,a.useCallback)(()=>{_(!0),H(e=>e+1)},[]),tP=(0,a.useCallback)(()=>{_(!1)},[]),tB=(0,a.useCallback)(e=>{D(e=>e+1),B(e=>e+1),$(null),R(t=>({...t??{path:"",cwd:"",created:"",modified:"",messageCount:0,firstMessage:""},id:e})),tN(e),y.replace(`?session=${encodeURIComponent(e)}`,{scroll:!1})},[y,tN]),tO=(0,a.useCallback)(()=>{tM(!0)},[]),tH=(0,a.useCallback)(e=>{if(D(e=>e+1),M?.id===e){let e=M.cwd;R(null),$(e??null),B(e=>e+1),eC([]),eI(null),e$(null),e5(null),y.replace("/",{scroll:!1})}},[M,y]),tU=(0,a.useCallback)((e,t,r)=>{let n=`file:${e}`;ti(a=>{let i=a.find(e=>e.id===n);return i?r&&i.sourceSessionId!==r?a.map(e=>e.id===n?{...e,sourceSessionId:r}:e):a:[...a,{id:n,label:t,filePath:e,sourceSessionId:r}]}),to(n),td(!0),E&&ee(!1)},[E]),t_=(0,a.useCallback)(e=>{tU(e,(0,es.WP)(e),M?.id??null)},[tU,M?.id]),tV=(0,a.useCallback)(e=>{let t=ta.filter(t=>t.id!==e);ti(t),0===t.length&&td(!1),to(r=>r!==e?r:t.length>0?t[t.length-1].id:null)},[ta]),tq=(0,a.useCallback)(()=>{M&&window.open(`/api/sessions/${encodeURIComponent(M.id)}/export?inline=1`,"_blank","noopener,noreferrer")},[M]),tK=W??(null===M&&tT?tT:null),tZ=null!==M||null!==tK,tY=tE&&!tZ,tG=tT?(0,es.WP)(tT)||tT:null,tX=tG?`${tG} - ompgui`:"ompgui";(0,a.useEffect)(()=>{let e=()=>{document.title!==tX&&(document.title=tX)};e();let t=new MutationObserver(e);return t.observe(document.head,{childList:!0,subtree:!0,characterData:!0}),()=>t.disconnect()},[tX]);let tQ=(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(am,{onSelectSession:t$,onNewSession:()=>tz(`palette-${Date.now()}`,tT??""),currentModel:null}),(0,n.jsx)(eq,{selectedSessionId:M?.id??null,optimisticSession:M?.path===""?M:null,onSelectSession:t$,onNewSession:tz,initialSessionId:tC,skipInitialProjectSelection:null!==w.requestedCwd,onInitialRestoreDone:tO,refreshKey:F,onSessionDeleted:tH,selectedCwd:M?.cwd??W??null,onCwdChange:tW,onOpenFile:tU,explorerRefreshKey:O,onExplorerRefresh:tD,explorerRefreshing:U,onExplorerRefreshDone:tP,onAtMention:tk,onAtMentions:tj,onOpenSettings:()=>q("general"),onOpenUsage:()=>Z(!0),updateAvailable:eg||ev})]});return(0,n.jsx)(n.Fragment,{children:(0,n.jsxs)(em.tE,{children:[(0,n.jsx)("style",{children:`
18
+ @keyframes session-info-pop {
19
+ 0% {
20
+ opacity: 0;
21
+ transform: translateY(-24px);
22
+ }
23
+ 100% {
24
+ opacity: 1;
25
+ transform: translateY(0);
26
+ }
27
+ }
28
+ @keyframes session-info-light-wash {
29
+ 0% {
30
+ opacity: 0;
31
+ transform: translateX(-110%) skewX(-16deg);
32
+ }
33
+ 24% {
34
+ opacity: 0.42;
35
+ }
36
+ 100% {
37
+ opacity: 0;
38
+ transform: translateX(115%) skewX(-16deg);
39
+ }
40
+ }
41
+ .session-info-popover {
42
+ position: relative;
43
+ overflow: hidden;
44
+ transform-origin: top right;
45
+ animation: session-info-pop var(--dur-slow) var(--ease-out-warm) both;
46
+ will-change: transform, opacity;
47
+ }
48
+ .session-info-popover::after {
49
+ content: "";
50
+ position: absolute;
51
+ top: 0;
52
+ bottom: 0;
53
+ left: 0;
54
+ width: 44%;
55
+ pointer-events: none;
56
+ background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 24%, transparent), transparent);
57
+ animation: session-info-light-wash var(--dur-slow) var(--ease-out-warm) both;
58
+ }
59
+ @media (prefers-reduced-motion: reduce) {
60
+ .session-info-popover,
61
+ .session-info-popover::after {
62
+ animation: none;
63
+ }
64
+ }
65
+ @media (max-width: 640px) {
66
+ .sidebar-overlay-backdrop.sidebar-mobile-pending {
67
+ opacity: 0 !important;
68
+ pointer-events: none !important;
69
+ }
70
+ .sidebar-container.sidebar-mobile-pending.sidebar-open {
71
+ transform: translateX(-100%);
72
+ box-shadow: none;
73
+ }
74
+ }
75
+ `}),(0,n.jsxs)("div",{style:{display:"flex",height:"100dvh",overflow:"hidden",background:"var(--bg)"},children:[(0,n.jsx)("div",{className:`sidebar-overlay-backdrop${et?"":" sidebar-mobile-pending"}`,onClick:()=>ee(!1),style:{position:"fixed",inset:0,zIndex:"var(--z-sidebar-backdrop)",background:"color-mix(in srgb, var(--text) 28%, transparent)",opacity:+!!Q,pointerEvents:Q?"auto":"none",transition:"opacity var(--dur-slow) var(--ease-out-warm)"}}),(0,n.jsx)("div",{ref:eu,className:`sidebar-container${Q?" sidebar-open":" sidebar-closed"}${et?"":" sidebar-mobile-pending"}${el?" sidebar-resizing":""}`,"aria-hidden":!!et&&!Q||void 0,inert:!!et&&!Q||void 0,style:{background:"var(--bg-panel)",borderRight:"1px solid var(--border)",display:"flex",flexDirection:"column",flexShrink:0,zIndex:"var(--z-sidebar)",...!E?{"--sidebar-width":`${en}px`}:{}},children:tQ}),!E&&Q&&(0,n.jsx)("div",{role:"separator","aria-orientation":"vertical","aria-label":T("appShell.resizeSidebar"),tabIndex:0,onMouseDown:tn,onDoubleClick:te,onKeyDown:tr,title:T("appShell.resizeSidebarTitle"),style:{width:5,flexShrink:0,marginLeft:-5,cursor:"col-resize",background:"transparent",zIndex:"var(--z-resize-handle)",outline:"none",transition:"background var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{e.currentTarget.style.background="color-mix(in srgb, var(--accent) 35%, transparent)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},onFocus:e=>{e.currentTarget.style.background="color-mix(in srgb, var(--accent) 35%, transparent)"},onBlur:e=>{e.currentTarget.style.background="transparent"}}),(0,n.jsxs)("main",{style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",minWidth:0},children:[(0,n.jsxs)("div",{ref:ej,className:"shell-topbar",children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-2)",height:"100%",paddingLeft:E?"var(--space-2)":"var(--space-4)"},children:[(0,n.jsx)("button",{onClick:e7,title:Q?T("appShell.hideSidebar"):T("appShell.showSidebar"),"aria-label":Q?T("appShell.hideSidebar"):T("appShell.showSidebar"),className:"shell-toolbar-btn ui-focus-ring",children:Q?(0,n.jsx)(n3.A,{size:16,strokeWidth:1.8,"aria-hidden":"true"}):(0,n.jsx)(n6.A,{size:16,strokeWidth:1.8,"aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:e=>{let t=e.currentTarget.getBoundingClientRect();S({x:t.left+t.width/2,y:t.top+t.height/2})},title:"system"===j?T("appShell.systemTheme"):k?T("appShell.switchToSystemTheme"):T("appShell.switchToDarkMode"),"aria-label":"system"===j?T("appShell.systemTheme"):k?T("appShell.switchToSystemTheme"):T("appShell.switchToDarkMode"),"aria-pressed":k,className:"shell-toolbar-btn ui-focus-ring",children:k?(0,n.jsx)(n8.A,{size:16,strokeWidth:1.8,"aria-hidden":"true"}):(0,n.jsx)(n9.A,{size:16,strokeWidth:1.8,"aria-hidden":"true"})}),(0,n.jsx)(n4,{})]}),tZ&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"shell-toolbar-divider","aria-hidden":"true"}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-2)",height:"100%"},children:[(0,n.jsx)("button",{onClick:tq,disabled:!M,title:M?T("appShell.fullHistory"):T("appShell.fullHistoryUnavailable"),"aria-label":T("appShell.fullHistory"),className:"shell-toolbar-btn ui-focus-ring",children:(0,n.jsx)(n7.A,{size:16,strokeWidth:1.8,"aria-hidden":"true"})}),(e=!!(M&&(eO?.userMessages??M.messageCount)>0),t=!M||!e||"naming"===eU.kind,r="success"===eU.kind,i="error"===eU.kind,l="naming"===eU.kind?T("appShell.generating"):r?T("appShell.titleUpdated"):i?T("appShell.generationFailed"):T("appShell.generateTitle"),u=M?e?i?eU.message:T("appShell.generateSessionTitle"):T("appShell.titleGenNeedsMessage"):T("appShell.titleGenUnavailable"),(0,n.jsx)("button",{type:"button",onClick:()=>void tF(),disabled:t,title:u,"aria-label":l,className:"shell-toolbar-btn ui-focus-ring",style:{opacity:"naming"===eU.kind?1:void 0},children:"naming"===eU.kind?(0,n.jsxs)("svg",{className:"animate-spin",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",opacity:"0.25"}),(0,n.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):r?(0,n.jsx)(C.A,{size:16,strokeWidth:1.8,"aria-hidden":"true",style:{color:"var(--accent)"}}):i?(0,n.jsx)(ae.A,{size:16,strokeWidth:1.8,"aria-hidden":"true",style:{color:"var(--status-error)"}}):(0,n.jsx)(ae.A,{size:16,strokeWidth:1.8,"aria-hidden":"true"})})),(0,n.jsx)(n5,{tree:eS,activeLeafId:eT,onLeafChange:eR,inline:!0,containerRef:ej,open:"branches"===e2,onToggle:()=>e6("branches"),hasSession:!0}),(0,n.jsx)("button",{ref:eF,onClick:e8,title:T("appShell.system"),"aria-label":T("appShell.system"),"aria-pressed":"system"===e2,className:"shell-toolbar-btn ui-focus-ring",children:(0,n.jsx)(at.A,{size:16,strokeWidth:1.8,"aria-hidden":"true",style:{color:eW?"var(--accent)":void 0}})})]})]}),tZ&&(eO||eQ)&&(()=>{let e=eO?.tokens,t=eO?.cost??0,r=t>0?t>=.01?`$${t.toFixed(2)}`:"<$0.01":null,a="var(--text-muted)",i=null;if(eQ?.contextWindow){let e=eQ.percent;null!==e&&e>90?a="var(--status-error)":null!==e&&e>70&&(a="var(--status-warning)"),i=null!==e?`${(0,tJ.l)(e)} / ${(0,tJ.w)(eQ.contextWindow)}`:`? / ${(0,tJ.w)(eQ.contextWindow)}`}let s=[];if(e&&(s.push(T("appShell.tooltipInput",{value:e.input.toLocaleString(I)})),s.push(T("appShell.tooltipOutput",{value:e.output.toLocaleString(I)})),s.push(T("appShell.tooltipCacheRead",{value:e.cacheRead.toLocaleString(I)})),s.push(T("appShell.tooltipCacheWrite",{value:e.cacheWrite.toLocaleString(I)})),t>0&&s.push(T("appShell.tooltipCost",{value:t.toFixed(4)}))),eQ?.contextWindow){let e=eQ.percent;s.push(T("appShell.tooltipContext",{percent:null!==e?e.toFixed(1)+"%":T("appShell.unknown"),tokens:eQ.contextWindow.toLocaleString(I)}))}let o=s.join(" | ");return(0,n.jsxs)("button",{ref:eD,type:"button",onClick:()=>e6("session"),title:o||T("appShell.sessionInfo"),"aria-label":T("appShell.sessionInfo"),"aria-pressed":"session"===e2,className:"shell-stats-btn ui-focus-ring",children:[E&&(0,n.jsx)(rq.A,{size:16,strokeWidth:1.8,"aria-hidden":"true"}),!E&&e&&e.input>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:"var(--space-2)"},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("line",{x1:"5",y1:"8.5",x2:"5",y2:"1.5"}),(0,n.jsx)("polyline",{points:"2 4 5 1.5 8 4"})]}),(0,tJ.w)(e.input)]}),!E&&e&&e.output>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:"var(--space-2)"},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("line",{x1:"5",y1:"1.5",x2:"5",y2:"8.5"}),(0,n.jsx)("polyline",{points:"2 6 5 8.5 8 6"})]}),(0,tJ.w)(e.output)]}),!E&&e&&e.cacheRead>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:"var(--space-2)"},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("path",{d:"M8.5 5a3.5 3.5 0 1 1-1-2.45"}),(0,n.jsx)("polyline",{points:"6.5 1.5 8.5 2.5 7.5 4.5"})]}),(0,tJ.w)(e.cacheRead)]}),!E&&r&&(0,n.jsx)("span",{style:{display:"flex",alignItems:"center",color:"var(--text)",fontWeight:500},children:r}),i&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:"var(--space-2)",color:a,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("path",{d:"M1 9 L1 5 Q1 1 5 1 Q9 1 9 5 L9 9"}),(0,n.jsx)("line",{x1:"1",y1:"9",x2:"9",y2:"9"})]}),i]})]})})(),("system"===e2||"session"===e2)&&e4&&(0,n.jsxs)("div",{"data-top-panel":!0,className:"dropdown-surface",style:{position:"fixed",top:e4.top,left:e4.left,width:e4.width,maxHeight:`calc(100dvh - ${e4.top}px)`,overflow:"auto",zIndex:"var(--z-dropdown)"},children:["system"===e2&&(0,n.jsx)("div",{style:{background:"var(--bg-panel)",borderBottom:"1px solid var(--border)"},children:eW?(0,n.jsx)("div",{style:{maxHeight:"min(600px, 75vh)",overflowY:"auto",padding:"var(--space-5) var(--space-6)",color:"var(--text-muted)",fontSize:"var(--text-md)",lineHeight:1.6,whiteSpace:"pre-wrap",fontFamily:"var(--font-mono)"},children:eW}):""===eW?(0,n.jsx)("div",{style:{padding:"10px var(--space-6)",fontSize:"var(--text-md)",color:"var(--text-muted)",fontStyle:"italic"},children:T("appShell.systemPromptEmpty")}):(0,n.jsx)("div",{style:{padding:"10px var(--space-6)",fontSize:"var(--text-md)",color:"var(--text-muted)",fontStyle:"italic"},children:ez?T("appShell.systemPromptLoading"):T("appShell.systemPromptLoadHint")})}),"session"===e2&&(0,n.jsx)("div",{className:"session-info-popover",style:{background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",boxShadow:"var(--shadow-pop)",padding:"var(--space-5) var(--space-6)"},children:eO?(p=[...eO.sessionName?[{label:T("appShell.statName"),value:eO.sessionName,copyField:null}]:[],{label:T("appShell.statFile"),value:eO.sessionFile??T("appShell.inMemory"),copyField:"file"},{label:T("appShell.statId"),value:eO.sessionId,copyField:"id"}],h=[[T("appShell.statUser"),eO.userMessages.toLocaleString(I)],[T("appShell.statAssistant"),eO.assistantMessages.toLocaleString(I)],[T("appShell.statToolCalls"),eO.toolCalls.toLocaleString(I)],[T("appShell.statToolResults"),eO.toolResults.toLocaleString(I)],[T("appShell.statTotal"),eO.totalMessages.toLocaleString(I)]],m=[[T("appShell.statInput"),eO.tokens.input.toLocaleString(I)],[T("appShell.statOutput"),eO.tokens.output.toLocaleString(I)],...eO.tokens.cacheRead>0?[[T("appShell.statCacheRead"),eO.tokens.cacheRead.toLocaleString(I)]]:[],...eO.tokens.cacheWrite>0?[[T("appShell.statCacheWrite"),eO.tokens.cacheWrite.toLocaleString(I)]]:[],[T("appShell.statTotal"),eO.tokens.total.toLocaleString(I)]],f=eQ??eO.contextUsage,g=[...eO.cost>0?[[T("appShell.statCost"),`$${eO.cost.toFixed(4)}`]]:[],...f?.contextWindow?[[T("appShell.statContext"),`${null!==f.percent?(0,tJ.l)(f.percent):"?"} / ${(0,tJ.w)(f.contextWindow)}`]]:[]],x=(e,t,r="left",a=!1)=>(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:"var(--text-sm)",fontWeight:700,color:"var(--text)",marginBottom:"var(--space-3)"},children:e}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:a?"max-content max-content":"auto minmax(0, 1fr)",columnGap:a?14:12,rowGap:"var(--space-2)",justifyContent:a?"start":void 0},children:t.map(([t,i])=>(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:t}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:a?"normal":"anywhere",textAlign:r,whiteSpace:"right"===r?"nowrap":"normal"},children:i})]},`${e}:${t}`))})]}),v=(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:"var(--text-sm)",fontWeight:700,color:"var(--text)",marginBottom:"var(--space-3)"},children:T("appShell.sectionSessionInfo")}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:"var(--space-5)",rowGap:"var(--space-4)",alignItems:"start"},children:p.map(e=>{var t,r;let a;return(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:e.label}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:"anywhere",wordBreak:"break-word",whiteSpace:"normal"},children:e.value}),(0,n.jsx)("div",{children:e.copyField?(t=e.copyField,r=e.value,a=eJ===t,(0,n.jsx)("button",{type:"button",title:a?T("appShell.copied"):"file"===t?T("appShell.copyFilePath"):T("appShell.copySessionId"),onClick:()=>eX(t,r),style:{alignSelf:"start",display:"inline-flex",alignItems:"center",justifyContent:"center",width:22,height:22,marginTop:-2,color:a?"var(--accent)":"var(--text-dim)",background:"transparent",border:"1px solid var(--border)",borderRadius:4,cursor:"pointer",flex:"0 0 auto",transition:"color var(--dur-fast) var(--ease-out-warm), border-color var(--dur-fast) var(--ease-out-warm), background var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)",e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color=a?"var(--accent)":"var(--text-dim)",e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="transparent"},children:a?(0,n.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,n.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})})):null})]},`session-info:${e.label}`)})})]}),(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:E?"1fr":"minmax(300px, 1.7fr) minmax(120px, 0.55fr) minmax(160px, 0.75fr)",gap:E?"var(--space-6)":"var(--space-8)",fontSize:"var(--text-md)",lineHeight:1.5,fontFamily:"var(--font-mono)"},children:[v,x(T("appShell.sectionMessages"),h),x(T("appShell.sectionTokens"),[...m,...g],"right",!0)]})):(0,n.jsx)("div",{style:{fontSize:"var(--text-md)",color:"var(--text-muted)",fontStyle:"italic"},children:T("appShell.sessionInfoLoadHint")})})]})]}),(0,n.jsx)("div",{style:{flex:1,overflow:"hidden",position:"relative"},children:tZ?(0,n.jsx)(nK,{session:M,newSessionCwd:tK,onAgentEnd:tA,onSessionCreated:tL,onSessionForked:tB,modelsRefreshKey:J,chatInputRef:ew,onBranchDataChange:eM,onSystemPromptChange:eP,onSystemPromptLoaderChange:eB,onSessionStatsChange:eZ,onSessionStatsPanelOpen:e9,onOpenSettingsTab:e=>q(e),onContextUsageChange:e1,onOpenFile:t_,advisorEnabled:G,toolCallsDefaultCollapsed:ei},P):"validating"===z?(0,n.jsxs)("div",{role:"status",style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:"var(--space-4)",padding:"var(--space-8)",color:"var(--text-muted)",textAlign:"center"},children:[(0,n.jsx)("div",{style:{fontSize:"var(--text-lg)",color:"var(--text)"},children:T("appShell.openingWorkspace")}),(0,n.jsx)("div",{style:{maxWidth:"min(720px, 100%)",overflowWrap:"anywhere",fontFamily:"var(--font-mono)",fontSize:"var(--text-md)"},children:w.requestedCwd})]}):"error"===z?(0,n.jsxs)("div",{role:"alert",style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:"var(--space-4)",padding:"var(--space-8)",color:"var(--text-muted)",textAlign:"center"},children:[(0,n.jsx)("div",{style:{fontSize:"var(--text-lg)",color:"var(--status-error)"},children:T("appShell.unableToOpenWorkspace")}),(0,n.jsx)("div",{style:{maxWidth:"min(720px, 100%)",overflowWrap:"anywhere",fontFamily:"var(--font-mono)",fontSize:"var(--text-md)"},children:w.requestedCwd}),(0,n.jsx)("div",{style:{maxWidth:720,fontSize:"var(--text-md)"},children:L})]}):tY?tT?(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:16},children:(0,n.jsx)("span",{className:"display-serif",children:T("appShell.selectSessionHint")})}):(0,n.jsxs)("div",{style:{position:"absolute",top:"var(--space-5)",left:"var(--space-5)",display:"flex",alignItems:"flex-start",gap:"var(--space-4)",userSelect:"none",pointerEvents:"none"},children:[(0,n.jsxs)("svg",{width:"44",height:"44",viewBox:"0 0 24 24",fill:"none",stroke:"var(--accent)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",style:{opacity:.7,flexShrink:0},children:[(0,n.jsx)("line",{x1:"20",y1:"12",x2:"4",y2:"12"}),(0,n.jsx)("polyline",{points:"10 6 4 12 10 18"})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"display-serif",style:{fontSize:20,color:"var(--text)",marginBottom:"var(--space-4)"},children:T("appShell.getStarted")}),(0,n.jsxs)("div",{style:{fontSize:"var(--text-md)",color:"var(--text-muted)",lineHeight:1.8},children:[(0,n.jsx)("span",{style:{color:"var(--text-dim)",marginRight:"var(--space-3)"},children:"1."}),T("appShell.getStartedStep1"),(0,n.jsx)("br",{}),(0,n.jsx)("span",{style:{color:"var(--text-dim)",marginRight:"var(--space-3)"},children:"2."}),(()=>{let[e,t]=T("appShell.getStartedStep2").split("{models}");return(0,n.jsxs)(n.Fragment,{children:[e,(0,n.jsx)("strong",{style:{color:"var(--text)"},children:T("appShell.models")}),t]})})()]})]})]}):(0,n.jsx)(af,{})})]}),!E&&tl&&(0,n.jsx)("div",{role:"separator","aria-orientation":"vertical","aria-label":T("appShell.resizeFilePanel"),"aria-valuemin":300,"aria-valuemax":960,"aria-valuenow":tc,tabIndex:0,onPointerDown:tw,onDoubleClick:tv,onKeyDown:tb,title:T("appShell.resizeFilePanelTitle"),style:{width:5,flexShrink:0,marginRight:-5,cursor:"col-resize",background:"transparent",zIndex:"var(--z-resize-handle)",outline:"none",transition:"background var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{e.currentTarget.style.background="color-mix(in srgb, var(--accent) 35%, transparent)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},onFocus:e=>{e.currentTarget.style.background="color-mix(in srgb, var(--accent) 35%, transparent)"},onBlur:e=>{e.currentTarget.style.background="transparent"}}),(0,n.jsxs)("div",{ref:tm,className:`right-panel-container${tl?" right-panel-open":" right-panel-closed"}${tp?" right-panel-resizing":""}`,style:{display:"flex",flexDirection:"column",borderLeft:"1px solid var(--border)",background:"var(--bg)",...!E?{"--right-panel-width":`${tc}px`}:{}},children:[(0,n.jsx)("div",{style:{display:"flex",alignItems:"center",flexShrink:0,background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",height:"var(--control-height-lg)"},children:(0,n.jsx)("div",{style:{flex:1,overflow:"hidden"},children:(0,n.jsx)(nX,{tabs:ta,activeTabId:ts??"",onSelectTab:to,onCloseTab:tV})})}),(0,n.jsx)("div",{style:{flex:1,overflow:"hidden"},children:ta.length>0?ta.map(e=>(0,n.jsx)("div",{style:{display:e.id===ts?"block":"none",height:"100%"},children:(0,n.jsx)(ai,{filePath:e.filePath,cwd:tT??void 0,sourceSessionId:e.sourceSessionId,gitRefreshKey:O,onMentionLines:e.id===ts&&tl?tS:void 0,onOpenFile:t=>tU(t,(0,es.WP)(t),e.sourceSessionId)})},e.id)):(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:"var(--text-md)"},children:T("appShell.noFileOpen")})})]})]}),(0,n.jsx)("button",{onClick:()=>td(e=>!e),title:tl?T("appShell.hideFilePanel"):T("appShell.showFilePanel"),"aria-label":tl?T("appShell.hideFilePanel"):T("appShell.showFilePanel"),"aria-pressed":tl,className:"shell-file-toggle ui-focus-ring",children:(0,n.jsx)(ar.A,{size:16,strokeWidth:1.8,"aria-hidden":"true"})}),V&&(0,n.jsx)(ap,{activeTab:V,advisorEnabled:G,onAdvisorChange:eb,toolCallsDefaultCollapsed:ei,onToolCallsDefaultCollapsedChange:eh,cwd:tT??M?.cwd??W,sessionId:M?.id??null,onModelsSaved:()=>Y(e=>e+1),onPluginsReloaded:()=>B(e=>e+1),onOmpUpdateAvailabilityChange:ey,onSelectTab:q,onClose:()=>q(null)}),K&&(0,n.jsx)(ah,{onClose:()=>Z(!1)})]})})}},31590:(e,t,r)=>{"use strict";r.d(t,{a:()=>l});var n=r(12115);let a="(max-width: 640px)";function i(e){if(!window.matchMedia)return()=>{};let t=window.matchMedia(a);return t.addEventListener("change",e),()=>t.removeEventListener("change",e)}function s(){return!!window.matchMedia&&window.matchMedia(a).matches}function o(){return!1}function l(){return(0,n.useSyncExternalStore)(i,s,o)}},32383:(e,t,r)=>{"use strict";r.d(t,{$:()=>a});var n=r(18136);async function a(e,t){let r=await fetch(`/api/agent/${encodeURIComponent(e)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),a=await r.json().catch(()=>({}));if(!r.ok||a.error)throw Error(a.error||a.code?(0,n.K)(a):`HTTP ${r.status}`);return a.data}},35893:(e,t,r)=>{"use strict";r.d(t,{t:()=>i,v:()=>a});let n="omp-web:submit-during-run";function a(){try{let e=window.localStorage.getItem(n);if("steer"===e||"queue"===e)return e}catch{}return"steer"}function i(e){try{window.localStorage.setItem(n,e)}catch{}}},51087:(e,t,r)=>{"use strict";r.d(t,{oR:()=>k,tE:()=>I});var n=r(95155),a=r(66101),i=r(33208),s=r(23083),o=r(97787),l=r(48262),d=r(99777),c=r(32031),u=r(56395),p=r(40323),h=r(25818),m=r(64577),f=r(35484),g=r(14577),x=r(9005),v=r(12115),y=r(31590);let b=a.V();function w(e,t,r,n){return b.add({title:t,description:r,type:e,data:{kind:e,clamp:n?.clamp}})}let k={success:(e,t,r)=>w("success",e,t,r),error:(e,t,r)=>w("error",e,t,r),info:(e,t,r)=>w("info",e,t,r),close:e=>b.close(e)};function j({kind:e}){let t={size:13,strokeWidth:2,style:{flexShrink:0,marginTop:"var(--space-1)"}};return"success"===e?(0,n.jsx)(m.A,{...t,style:{...t.style,color:"var(--accent)"},"aria-hidden":!0}):"error"===e?(0,n.jsx)(f.A,{...t,style:{...t.style,color:"var(--accent-strong)"},"aria-hidden":!0}):(0,n.jsx)(g.A,{...t,style:{...t.style,color:"var(--text-muted)"},"aria-hidden":!0})}let S={fontSize:"var(--text-md)",color:"var(--text-muted)",lineHeight:1.5,marginTop:"var(--space-1)"};function C({children:e}){let[t,r]=(0,v.useState)(!1);return(0,n.jsx)("span",{onClick:()=>r(e=>!e),"aria-expanded":t,title:t?void 0:"Click to expand",style:{...S,cursor:t?"default":"pointer",whiteSpace:"pre-wrap",wordBreak:"break-word",...t?{}:{display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden"}},children:e})}function T(){let{toasts:e}=i.I(),t=(0,y.a)();return(0,n.jsx)(s.S,{children:(0,n.jsx)(o.U,{style:{position:"fixed",top:t?88:80,right:"var(--space-6)",zIndex:"var(--z-toast)",display:"flex",flexDirection:"column",gap:"var(--space-4)",width:"min(92vw, 360px)",pointerEvents:"none"},children:e.map(e=>(0,n.jsxs)(l.m,{toast:e,className:"toast-card",style:{pointerEvents:"auto",display:"flex",alignItems:"flex-start",gap:"var(--space-4)",background:"var(--bg)",color:"var(--text)",border:"1px solid var(--border)",borderRadius:"var(--radius-card)",boxShadow:"var(--shadow-pop)",padding:"calc(var(--space-5) - var(--space-1)) var(--space-5)"},children:[(0,n.jsx)(j,{kind:e.type}),(0,n.jsxs)(d.p,{style:{flex:1,minWidth:0},children:[(0,n.jsx)(c.S,{className:"display-serif",style:{fontSize:"var(--text-base)",lineHeight:1.4}}),e.data?.clamp?(0,n.jsx)(u.a,{render:(0,n.jsx)("div",{}),style:S,children:(0,n.jsx)(C,{children:e.description})}):(0,n.jsx)(u.a,{render:(0,n.jsx)("div",{}),style:S})]}),(0,n.jsx)(p.e,{"aria-label":"Dismiss",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:"calc(var(--control-height-sm) - var(--space-4))",height:"calc(var(--control-height-sm) - var(--space-4))",padding:0,border:0,borderRadius:"var(--radius-control)",background:"transparent",color:"var(--text-dim)",cursor:"pointer",flexShrink:0},children:(0,n.jsx)(x.A,{size:12,strokeWidth:2,"aria-hidden":!0})})]},e.id))})})}function I({children:e}){return(0,n.jsxs)(h.t,{toastManager:b,timeout:4e3,limit:4,children:[e,(0,n.jsx)(T,{})]})}},68925:(e,t,r)=>{"use strict";r.d(t,{Ep:()=>h,T6:()=>p});var n=r(12115),a=r(5924),i=r(94764),s=r(63835),o=r(84678);let l={...i.j,attributes:{...i.j.attributes,code:[["className",/^language-./,"math-inline","math-display"]]},strip:[...i.j.strip||[],"iframe","object","style","form"]},d={remarkPlugins:[[o.A,{singleTilde:!1}]],rehypePlugins:[a.A,[s.A,l]]},c=null,u=null;function p(e){let t=e.includes("$")||e.includes("\\(")||e.includes("\\["),[,a]=(0,n.useState)(0);return(0,n.useEffect)(()=>{if(!t||c)return;let e=!1;return(!u&&(u=(async()=>{let[e,t]=await Promise.all([r.e(9365).then(r.bind(r,49365)).then(e=>e.default),Promise.all([r.e(7330),r.e(6202)]).then(r.bind(r,46202)).then(e=>e.default)]);return await Promise.all([r.e(5846),r.e(4559)]).then(r.t.bind(r,84559,23)),c={remarkPlugins:[...d.remarkPlugins,e],rehypePlugins:[...d.rehypePlugins,[t,{throwOnError:!1,strict:!1}]]}})().catch(e=>{throw u=null,e})),u).then(()=>{e||a(e=>e+1)}).catch(()=>{}),()=>{e=!0}},[t]),t&&c?c:d}function h(e){let t=e.includes("\r\n")?"\r\n":"\n",r=e.split(/\r?\n/),n=[],a=null,i=0,s=null,o=new Map;for(let e=0;e<r.length;e++){var l;let t=r[e];if(s){n.push(t),RegExp(`</${s}\\s*>`,"i").test(t)&&(s=null);continue}let d=t.match(/^ {0,3}(`{3,}|~{3,})/);if(d){let e=d[1][0],r=d[1].length;a?e===a.marker&&r>=a.size&&(a=null):a={marker:e,size:r},i=0,n.push(t);continue}if(a){n.push(t);continue}let c=t.match(/<(code|pre|script|style)\b/i);if(c){let e=c[1].toLowerCase(),r=t.slice((c.index??0)+c[0].length);RegExp(`</${e}\\s*>`,"i").test(r)||(s=e),i=0,n.push(t);continue}if(/^(?: {4}|\t)/.test(t)||""===t.trim()){i=0,n.push(t);continue}if(i||t.includes("`")){i=function(e,t){let r=t;for(let t=0;t<e.length;){if("`"!==e[t]){t++;continue}let n=t+1;for(;"`"===e[n];)n++;let a=n-t;0===r?r=a:a===r&&(r=0),t=n}return r}(t,i),n.push(t);continue}let u=t.match(/^([ ]{0,3})\\\[[ \t]*(.+?)[ \t]*\\\][ \t]*$/);if(u){let e=u[2].trim();if(e){n.push(`${u[1]}$$`,`${u[1]}${e}`,`${u[1]}$$`);continue}}let p=t.match(/^([ ]{0,3})\\\[[ \t]*$/);if(p){let t=function(e,t){for(let r=t;r<e.length;r++){let t=e[r];if(/^ {0,3}\\\][ \t]*$/.test(t))return r;if(/^ {0,3}(`{3,}|~{3,})/.test(t)||/^ {0,3}\\\[[ \t]*$/.test(t)||/<(code|pre|script|style)\b/i.test(t))break}return -1}(r,e+1);if(-1!==t){n.push(`${p[1]}$$`,...r.slice(e+1,t).map(e=>f(e,p[1])),`${p[1]}$$`),e=t;continue}}let h=t.match(/^([ \t]{0,3})\$\$(.+)\$\$[ \t]*$/);if(h){let e=h[2].trim();if(e){n.push(`${h[1]}$$`,`${h[1]}${e}`,`${h[1]}$$`);continue}}let g=t.match(/^([ \t]{0,3})\$\$(.+)$/);if(g){let t=g[1],a=g[2].trimEnd();if(a&&!a.includes("$$")){let i=m(r,e+1,t,o);if(i){n.push(`${t}$$`,`${t}${a}`);for(let a=e+1;a<i.index;a++)n.push(f(r[a],t));i.content&&n.push(`${t}${i.content}`),n.push(`${t}$$`),e=i.index;continue}}}let x=t.match(/^([ \t]{0,3})\$\$\s*$/);if(x){let t=x[1],a=m(r,e+1,t,o);if(a&&(a.glued||""!==t)){n.push(`${t}$$`);for(let i=e+1;i<a.index;i++)n.push(f(r[i],t));a.content&&n.push(`${t}${a.content}`),n.push(`${t}$$`),e=a.index;continue}}n.push((l=t,/^\s{0,3}\[[^\]]+\]:/.test(l)||/]\s*\(/.test(l)||/<(?:!--|\/?[A-Za-z][^>]*>)/.test(l)||/\b(?:https?|file|mailto):/i.test(l)||/\b[A-Za-z]:\\/.test(l)?l:l.replace(/(?<!\\)\\\(([^`\r\n$]+?)(?<!\\)\\\)/g,(e,t)=>t.trim()?`$${t}$`:e)))}return n.join(t)}function m(e,t,r,n){let a=n.get(r);if(void 0!==a&&t<a)return null;for(let a=t;a<e.length;a++){var i,s,o,l;let t=e[a];if(i=t,""===(s=r)?/^ {0,3}\$\$\s*$/.test(i):i.startsWith(s)&&/^\$\$\s*$/.test(i.slice(s.length)))return{index:a,content:"",glued:!1};if(o=t,/^ {0,3}(`{3,}|~{3,})/.test(o)||/^[ \t]*(?:[-+*]|\d{1,9}[.)])(?:[ \t]+|$)/.test(o)||/^ {0,3}#{1,6}(?:[ \t]+|$)/.test(o)||/^ {0,3}>/.test(o)||/<(code|pre|script|style)\b/i.test(o)||(l=t,/^ {0,3}\$\$(?:\S|[ \t]+\S)/.test(l)))return n.set(r,a),null;let d=function(e,t){if(!e.startsWith(t))return null;let r=e.slice(t.length).match(/^(.+?)\$\$\s*$/);if(!r)return null;let n=r[1].trimEnd();return n&&!n.includes("$$")?n:null}(t,r);if(null!==d)return{index:a,content:d,glued:!0}}return n.set(r,e.length),null}function f(e,t){if(!t||!e||e.startsWith(" "))return e;let r=e.match(/^ */)?.[0].length??0;return r>=t.length?e:`${t.slice(r)}${e}`}},82490:(e,t,r)=>{"use strict";function n(e){let t,r=[],n=null,i=0,s=0,o=[],l=[],d=()=>({lineNo:null,text:"",type:"empty"}),c=()=>{if(!n){o=[],l=[];return}let e=Math.max(o.length,l.length);for(let t=0;t<e;t++){let e=o[t]?{lineNo:o[t].lineNo,text:o[t].text,type:"removed"}:d(),r=l[t]?{lineNo:l[t].lineNo,text:l[t].text,type:"added"}:d();n.rows.push({type:"line",left:e,right:r})}o=[],l=[]};for(let d of e.split(/\r?\n/)){if(d.startsWith("--- ")){c(),t=a(d.slice(4));continue}if(d.startsWith("+++ ")){c(),n={oldPath:t,newPath:a(d.slice(4)),rows:[]},r.push(n);continue}let e=d.match(/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/);if(e){n||(n={rows:[]},r.push(n)),c(),i=Number(e[1]),s=Number(e[2]),n.rows.push({type:"hunk",text:d});continue}if(!n)continue;if(d.startsWith("\\ ")){c(),n.rows.push({type:"hunk",text:d});continue}let u=d[0],p=d.slice(1);" "===u?(c(),n.rows.push({type:"line",left:{lineNo:i++,text:p,type:"context"},right:{lineNo:s++,text:p,type:"context"}})):"-"===u?o.push({lineNo:i++,text:p}):"+"===u?l.push({lineNo:s++,text:p}):""!==d&&(c(),n.rows.push({type:"hunk",text:d}))}c();let u=r.filter(e=>e.rows.some(e=>"line"===e.type));return u.length>0?u:null}function a(e){return e.split(" ")[0].trim()}r.d(t,{y:()=>n})},84111:(e,t,r)=>{"use strict";function n(e,t){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${Math.round(e/1e3)}k`:t?e.toLocaleString(t):String(e)}function a(e){return`${e.toFixed(1)}%`}r.d(t,{l:()=>a,w:()=>n})},94309:(e,t,r)=>{"use strict";r.d(t,{Q:()=>u});var n=r(95155),a=r(12115),i=r(96793),s=r(4315),o=r(6014);function l({code:e,isStreaming:t,defaultPreview:o=!1}){let{isDark:u}=(0,i.DP)(),{t:p}=(0,s.s9)(),[h,m]=(0,a.useState)(o),[f,g]=(0,a.useState)(null),[x,v]=(0,a.useState)(!1),[y,b]=(0,a.useState)(0),w=`${u?"dark":"light"}
76
+ ${e}`,k=h&&!t;(0,a.useEffect)(()=>{if(!k)return;let t=!1;return g({key:w,status:"loading"}),(async()=>{let{default:n}=await Promise.all([r.e(988),r.e(9425),r.e(3308)]).then(r.bind(r,43328));if(n.initialize({startOnLoad:!1,securityLevel:"strict",suppressErrorRendering:!0,theme:u?"dark":"default"}),!await n.parse(e,{suppressErrors:!0}))throw Error("Invalid Mermaid diagram");let a="u">typeof crypto&&"randomUUID"in crypto?`mermaid-${crypto.randomUUID()}`:`mermaid-${Date.now()}-${Math.random().toString(36).slice(2)}`,i=await n.render(a,e);t||g({key:w,status:"ready",svg:i.svg})})().catch(()=>{t||g({key:w,status:"error"})}),()=>{t=!0}},[e,w,u,k,y]);let j=(0,n.jsx)("button",{type:"button",onClick:()=>m(e=>!e),disabled:t,title:p(t?"mermaidBlock.previewAfterStreaming":k?"mermaidBlock.showSourceTitle":"mermaidBlock.previewTitle"),className:["markdown-code-action",k?"is-active":""].filter(Boolean).join(" "),children:p(k?"mermaidBlock.source":"mermaidBlock.preview")});if(!k)return(0,n.jsx)(c,{code:e,lang:"mermaid",headerAction:j,isStreaming:t});let S=f?.key===w&&"error"===f.status?(0,n.jsxs)("div",{className:"mermaid-block mermaid-block-error",children:[(0,n.jsx)("span",{children:p("mermaidBlock.invalidDiagram")}),(0,n.jsx)("button",{type:"button",className:"markdown-code-action",onClick:()=>b(e=>e+1),title:p("mermaidBlock.retry"),children:p("mermaidBlock.retry")})]}):f?.key!==w||"ready"!==f.status?(0,n.jsx)("div",{className:"mermaid-block mermaid-block-loading",role:"status",children:p("mermaidBlock.rendering")}):(0,n.jsxs)(n.Fragment,{children:[!x&&(0,n.jsx)("button",{type:"button",className:"mermaid-block mermaid-preview-button",title:p("mermaidBlock.openViewer"),"aria-label":p("mermaidBlock.openViewer"),onClick:()=>v(!0),dangerouslySetInnerHTML:{__html:f.svg}}),x&&(0,n.jsx)(d,{svg:f.svg,onClose:()=>v(!1)})]});return(0,n.jsxs)("div",{className:"markdown-code-block",children:[(0,n.jsxs)("div",{className:"markdown-code-header",children:[(0,n.jsx)("span",{className:"markdown-code-lang",children:"mermaid"}),j]}),S]})}function d({svg:e,onClose:t}){let r=(0,a.useRef)(null),[i,o]=(0,a.useState)(1),{t:l}=(0,s.s9)();return(0,a.useEffect)(()=>{let e=r.current;if(!e)return;let t=document.body.style.overflow;return document.body.style.overflow="hidden",e.showModal(),()=>{document.body.style.overflow=t,e.open&&e.close()}},[]),(0,n.jsx)("dialog",{ref:r,className:"mermaid-zoom-dialog","aria-label":l("mermaidBlock.viewerLabel"),onCancel:e=>{e.preventDefault(),t()},onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),t())},children:(0,n.jsxs)("div",{className:"mermaid-zoom-layout",children:[(0,n.jsxs)("div",{className:"mermaid-zoom-toolbar",children:[(0,n.jsx)("span",{className:"mermaid-zoom-title",children:l("mermaidBlock.diagramTitle")}),(0,n.jsxs)("div",{className:"mermaid-zoom-actions",children:[(0,n.jsxs)("div",{className:"mermaid-zoom-stepper",children:[(0,n.jsx)("button",{type:"button",onClick:()=>o(e=>Math.max(.5,e-.25)),disabled:i<=.5,title:l("mermaidBlock.zoomOut"),"aria-label":l("mermaidBlock.zoomOut"),children:(0,n.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M5 12h14"})})}),(0,n.jsxs)("span",{className:"mermaid-zoom-value",children:[Math.round(100*i),"%"]}),(0,n.jsx)("button",{type:"button",onClick:()=>o(e=>Math.min(3,e+.25)),disabled:i>=3,title:l("mermaidBlock.zoomIn"),"aria-label":l("mermaidBlock.zoomIn"),children:(0,n.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M12 5v14M5 12h14"})})})]}),(0,n.jsx)("button",{type:"button",className:"mermaid-zoom-icon-button",onClick:()=>o(1),title:l("mermaidBlock.fitToWidth"),"aria-label":l("mermaidBlock.fitToWidth"),children:(0,n.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M8 3H3v5M16 3h5v5M8 21H3v-5M16 21h5v-5"})})}),(0,n.jsx)("button",{type:"button",className:"mermaid-zoom-icon-button",onClick:t,title:l("mermaidBlock.close"),"aria-label":l("mermaidBlock.close"),children:(0,n.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M6 6l12 12M18 6 6 18"})})})]})]}),(0,n.jsx)("div",{className:"mermaid-zoom-viewport",onClick:e=>{e.target===e.currentTarget&&t()},children:(0,n.jsx)("div",{className:"mermaid-zoom-canvas",style:{transform:`scale(${i})`,transformOrigin:"top left"},dangerouslySetInnerHTML:{__html:e}})})]})})}let c=(0,a.memo)(function({code:e,lang:t,headerAction:i,isStreaming:l}){let{t:d}=(0,s.s9)(),{copied:c,copy:u}=(0,o.q)(),[p,h]=(0,a.useState)(null);return(0,a.useEffect)(()=>{if(l||p)return;let e=!1;return Promise.all([r.e(4854),r.e(484)]).then(r.bind(r,30484)).then(({SyntaxHighlightedCode:t})=>{e||h(()=>t)}),()=>{e=!0}},[p,l]),(0,n.jsxs)("div",{className:"markdown-code-block",children:[(0,n.jsxs)("div",{className:"markdown-code-header",children:[(0,n.jsx)("span",{className:"markdown-code-lang",children:t||"text"}),(0,n.jsxs)("div",{className:"markdown-code-actions",children:[i,(0,n.jsx)("button",{onClick:()=>u(e),className:c?"markdown-code-action is-copied":"markdown-code-action",children:d(c?"codeBlock.copied":"codeBlock.copy")})]})]}),l||!p?(0,n.jsx)("pre",{style:{margin:0,padding:"var(--code-padding-block) var(--code-padding-inline)",fontSize:"var(--code-font-size)",lineHeight:"var(--code-line-height)",overflowX:"auto",backgroundColor:"var(--code-bg)"},children:(0,n.jsx)("code",{style:{fontFamily:"var(--font-mono)"},children:e})}):(0,n.jsx)(p,{code:e,lang:t})]})});function u(e){return function({className:t,children:r,...a}){let i=t?.replace("language-","").toLowerCase()??"",s=String(r);return t?.includes("language-")||s.includes("\n")?"mermaid"===i?(0,n.jsx)(l,{code:s.replace(/\n$/,""),isStreaming:e.isStreaming,defaultPreview:e.defaultPreview}):(0,n.jsx)(c,{code:s.replace(/\n$/,""),lang:i,isStreaming:e.isStreaming}):(0,n.jsx)("code",{className:e.inlineClassName??t,...a,children:r})}}},96793:(e,t,r)=>{"use strict";r.d(t,{DP:()=>h});var n=r(12115);let a="ompgui-theme",i="ompgui-palette",s=new Set;function o(e){return s.add(e),()=>s.delete(e)}function l(){try{let e=localStorage.getItem(a)||localStorage.getItem("omp-theme");return"light"===e||"dark"===e||"system"===e?e:"system"}catch{return"system"}}function d(){try{var e;return e=localStorage.getItem(i),"omp"===e?"omp":"warm"}catch{return"warm"}}function c(e,t=!1){return"system"===e?t?"dark":"light":e}function u(){return"system"}function p(){return"warm"}function h(){let e=(0,n.useSyncExternalStore)(o,l,u),t=(0,n.useSyncExternalStore)(o,d,p),[r,h]=(0,n.useState)(!1);(0,n.useEffect)(()=>{h(!0)},[]);let m=c(e,r&&window.matchMedia("(prefers-color-scheme: dark)").matches);(0,n.useEffect)(()=>{document.documentElement.dataset.palette=t},[t]),(0,n.useEffect)(()=>{if("system"!==e)return;let t=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{document.documentElement.classList.toggle("dark",t.matches),s.forEach(e=>e())};return t.addEventListener("change",r),()=>t.removeEventListener("change",r)},[e]);let f=(0,n.useCallback)((e,t)=>{let r=()=>(function(e){let t=c(e,window.matchMedia?.("(prefers-color-scheme: dark)").matches);document.documentElement.classList.toggle("dark","dark"===t);try{localStorage.setItem(a,e)}catch{}s.forEach(e=>e())})(e),n=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches;if("function"!=typeof document.startViewTransition||n)return void r();let i=t?.x??window.innerWidth/2,o=t?.y??window.innerHeight/2,l=Math.hypot(Math.max(i,window.innerWidth-i),Math.max(o,window.innerHeight-o)),d=document.startViewTransition(r);d.ready.then(()=>{let e=getComputedStyle(document.documentElement);document.documentElement.animate({clipPath:[`circle(0px at ${i}px ${o}px)`,`circle(${l}px at ${i}px ${o}px)`]},{duration:function(e){let t=getComputedStyle(document.documentElement).getPropertyValue(e).trim();if(t.endsWith("ms")){let e=Number.parseFloat(t);return Number.isFinite(e)?e:450}if(t.endsWith("s")){let e=Number.parseFloat(t);return Number.isFinite(e)?1e3*e:450}return 450}("--dur-theme"),easing:e.getPropertyValue("--ease-out-warm").trim()||"ease-out",pseudoElement:"::view-transition-new(root)"})}).catch(()=>{}),d.finished?.catch(()=>{})},[]),g=(0,n.useCallback)(t=>f("light"===e?"dark":"dark"===e?"system":"light",t),[e,f]);return{theme:m,preference:e,palette:t,isDark:"dark"===m,setTheme:f,setPalette:(0,n.useCallback)(e=>(function(e){document.documentElement.dataset.palette=e;try{localStorage.setItem(i,e)}catch{}s.forEach(e=>e())})(e),[]),toggleTheme:g}}}},e=>{e.O(0,[3451,4315,8441,3794,7358],()=>e(e.s=5456)),_N_E=e.O()}]);