ompgui 0.4.5 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +6 -6
- package/.next/build-manifest.json +3 -3
- package/.next/prerender-manifest.json +3 -3
- package/.next/react-loadable-manifest.json +8 -8
- package/.next/required-server-files.js +3 -3
- package/.next/required-server-files.json +3 -3
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +2 -2
- package/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +3 -3
- package/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/api/agent/[id]/events/route.js +3 -3
- package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/[id]/route.js +1 -1
- package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/new/route.js +1 -1
- package/.next/server/app/api/agent/new/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/running/events/route.js +2 -2
- package/.next/server/app/api/agent/running/events/route.js.nft.json +1 -1
- package/.next/server/app/api/app-update/route.js +1 -1
- package/.next/server/app/api/mcp/route.js +2 -2
- package/.next/server/app/api/mcp/route.js.nft.json +1 -1
- package/.next/server/app/api/models/route.js +1 -1
- package/.next/server/app/api/omp-update/route.js +1 -1
- package/.next/server/app/api/omp-update/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/archive/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/archive/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/auto-name/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/auto-name/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/state/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/state/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/subagents/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/subagents/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/route.js +1 -1
- package/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +4 -4
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login.html +1 -1
- package/.next/server/app/login.rsc +3 -3
- package/.next/server/app/login.segments/_full.segment.rsc +3 -3
- package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/page.js +6 -6
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +6 -6
- package/.next/server/chunks/2407.js +1 -0
- package/.next/server/chunks/2865.js +1 -1
- package/.next/server/chunks/6209.js +1 -1
- package/.next/server/chunks/933.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/1133.bacd2a00ac07e041.js +1 -0
- package/.next/static/chunks/2201.6abfe81cfb579cec.js +1 -0
- package/.next/static/chunks/3274.30d8439f3571079d.js +1 -0
- package/.next/static/chunks/{6876-5f6f58395158f0b8.js → 3451-3d65a6a41175e276.js} +1 -1
- package/.next/static/chunks/4315-c1043ad8843c6724.js +1 -0
- package/.next/static/chunks/484.b4abadb8cdd9c97f.js +1 -0
- package/.next/static/chunks/5658.00ec4620fb11878f.js +1 -0
- package/.next/static/chunks/9182.b5a8480a8c9fd1ce.js +1 -0
- package/.next/static/chunks/9668.50f63e37c76796c5.js +1 -0
- package/.next/static/chunks/9981.90f200903b3d454f.js +1 -0
- package/.next/static/chunks/app/page-996c13eb0fd7f2f5.js +76 -0
- package/.next/static/chunks/webpack-aa3ac8754f36a5a1.js +1 -0
- package/.next/static/css/fd6895a0365999bd.css +3 -0
- package/package.json +1 -1
- package/.next/server/chunks/6465.js +0 -1
- package/.next/static/chunks/1133.cec7d32308adb5b9.js +0 -1
- package/.next/static/chunks/2201.f49c9364bec5b109.js +0 -1
- package/.next/static/chunks/3274.08ed8ce5038ed170.js +0 -1
- package/.next/static/chunks/4315-5512005e1f15ba17.js +0 -1
- package/.next/static/chunks/484.c74eeb0fca9a9ddf.js +0 -1
- package/.next/static/chunks/5658.d00c8405a87f7366.js +0 -1
- package/.next/static/chunks/9182.b35b0b7f89ee106d.js +0 -1
- package/.next/static/chunks/9668.1d1b3d7d4555fccf.js +0 -1
- package/.next/static/chunks/9981.7fbe43b8b0e281ef.js +0 -1
- package/.next/static/chunks/app/page-749137abf6301709.js +0 -76
- package/.next/static/chunks/webpack-5a3a80b1c55422fb.js +0 -1
- package/.next/static/css/df5d4e1ac6600988.css +0 -3
- /package/.next/static/{_2kWqNvF8DXtw8pUI3vZE → 2RFCzMViB3kmtz57FAIur}/_buildManifest.js +0 -0
- /package/.next/static/{_2kWqNvF8DXtw8pUI3vZE → 2RFCzMViB3kmtz57FAIur}/_ssgManifest.js +0 -0
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974],{5456:(e,t,r)=>{Promise.resolve().then(r.bind(r,15089))},6014:(e,t,r)=>{"use strict";r.d(t,{q:()=>a});var n=r(12115),i=r(7834);function a(){let[e,t]=(0,n.useState)(!1),r=(0,n.useRef)(null),a=(0,n.useRef)(!0),o=(0,n.useCallback)(e=>{(0,i.D)(e).then(()=>{a.current&&(t(!0),r.current&&clearTimeout(r.current),r.current=setTimeout(()=>t(!1),1500))}).catch(()=>{})},[]);return(0,n.useEffect)(()=>()=>{a.current=!1,r.current&&clearTimeout(r.current)},[]),{copied:e,copy:o}}},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})},15089:(e,t,r)=>{"use strict";r.d(t,{AppShell:()=>ia});var n=r(95155),i=r(12115),a=r(37206),o=r(73321);let s=null;var l=r(47650),d=r(4315),c=r(18136);let u=[];function p({onClose:e,active:t=!0}){let r=(0,i.useRef)(null),n=(0,i.useRef)(e);return n.current=e,(0,i.useEffect)(()=>{if(!t)return;let e=r.current;if(!e)return;let i=document.activeElement instanceof HTMLElement?document.activeElement:null;u.push(e),e.contains(document.activeElement)||e.focus();let a=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 i=document.activeElement,a=i instanceof Node&&e.contains(i);t.shiftKey?a&&i!==r[0]&&i!==e||(t.preventDefault(),r[r.length-1].focus()):a&&i!==r[r.length-1]||(t.preventDefault(),r[0].focus())};return document.addEventListener("keydown",a,!0),()=>{document.removeEventListener("keydown",a,!0);let t=u.indexOf(e);-1!==t&&u.splice(t,1),i&&i.isConnected&&i.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 f(){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 g(){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 m({onCancel:e,onSelect:t,busy:r=!1,error:a}){let{t:o}=(0,d.s9)(),[s,c]=(0,i.useState)(null),[u,x]=(0,i.useState)(""),[v,y]=(0,i.useState)(null),[b,w]=(0,i.useState)(""),[k,j]=(0,i.useState)([]),[S,C]=(0,i.useState)(null),[T,I]=(0,i.useState)(null),[E,R]=(0,i.useState)(!0),M=p({onClose:()=>{r||e()},active:null!==s}),W=(0,i.useCallback)(async e=>{R(!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{R(!1)}},[]);(0,i.useEffect)(()=>{c(document.body),W()},[W]);let z=b.trim()!==u,$=!!u&&!z&&!r,A=!!v||/^[a-zA-Z]:[\\/]?$/.test(u);return s?(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:1002,display:"flex",alignItems:"center",justifyContent:"center",background:"var(--overlay-backdrop)"},children:(0,n.jsxs)("div",{className:"directory-picker-panel animate-scale-in",ref:M,role:"dialog","aria-modal":"true","aria-label":o("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:o("directoryPicker.selectDirectory")})}),(0,n.jsx)("button",{type:"button",onClick:e,disabled:r,title:o("directoryPicker.close"),"aria-label":o("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:8,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||!A,title:o("directoryPicker.goToParent"),"aria-label":o("directoryPicker.goToParent"),style:{width:36,height:36,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:A?"pointer":"default",opacity:A?1:.45,transition:"background-color var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{A&&!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:o("directoryPicker.directoryPath")}),(0,n.jsx)("input",{className:"directory-picker-path",id:"directory-path",type:"text",value:b,"aria-label":o("directoryPicker.pathPlaceholder")||"Directory path",placeholder:o("directoryPicker.pathPlaceholder"),autoFocus:!0,autoComplete:"off",spellCheck:!1,onChange:e=>{w(e.target.value),I(null)},style:{minWidth:0,flex:1,height:36,padding:"0 10px",border:"1px solid var(--border)",borderRadius:6,outline:"none",background:"var(--bg-panel)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:12,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:o("directoryPicker.goToDirectory"),style:{minWidth:58,height:36,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:o("directoryPicker.go")})]}),(0,n.jsxs)("div",{className:"directory-picker-list",style:{flex:1,minHeight:0,overflow:"auto",padding:"8px 10px"},children:[E?(0,n.jsx)("div",{style:{display:"grid",gap:6,padding:8},"aria-busy":"true","aria-label":o("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 8px",border:0,borderRadius:5,background:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontFamily:"var(--font-mono)",fontSize:11},children:[(0,n.jsx)(g,{}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]},e.path)):(0,n.jsx)("div",{style:{padding:8,color:"var(--text-dim)",fontSize:11},children:o("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 8px",border:0,borderRadius:5,background:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontFamily:"var(--font-mono)",fontSize:11,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)(f,{}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]},e.path)):(0,n.jsx)("div",{style:{padding:8,color:"var(--text-dim)",fontSize:11},children:o("directoryPicker.noSubdirectories")}),(T||a)&&(0,n.jsx)("div",{style:{padding:"8px",color:"var(--status-error)",fontSize:11},children:T??a})]}),(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:13},children:o("directoryPicker.cancel")}),(0,n.jsx)("button",{className:"directory-picker-action",type:"button",onClick:()=>t(u),disabled:!$,title:o(z?"directoryPicker.openPathBeforeSelecting":"directoryPicker.selectCurrentDirectory"),style:{padding:"6px 16px",border:0,borderRadius:6,background:"var(--accent)",color:"var(--on-accent)",fontSize:13,fontWeight:600,opacity:$?1:.6,cursor:$?"pointer":"default"},children:o(r?"directoryPicker.checking":"directoryPicker.selectThisFolder")})]})]})}),s):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 R="var(--text-dim)";function M({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:R}),(0,n.jsx)("path",{d:"M1 6h14.5L14 13H2L1 6Z",stroke:R,strokeWidth:"1",fill:R,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:R,strokeWidth:"1",fill:R,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:R,strokeWidth:"1",fill:R,fillOpacity:"0.08"}),(0,n.jsx)("path",{d:"M10 2v3h3",stroke:R,strokeWidth:"1",fill:"none",strokeLinejoin:"round"})]})}function z({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:R,strokeWidth:"0.9",fill:R,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:R,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:R,letterSpacing:"0",children:e})]})}function $({size:e=14}){return(0,n.jsx)(z,{label:"TS",size:e})}function A({size:e=14}){return(0,n.jsx)(z,{label:"TSX",size:e})}function L({size:e=14}){return(0,n.jsx)(z,{label:"JS",size:e})}function N({size:e=14}){return(0,n.jsx)(z,{label:"JSX",size:e})}function F({size:e=14}){return(0,n.jsx)(z,{label:"PY",size:e})}function D({size:e=14}){return(0,n.jsx)(z,{label:"{}",size:e})}function P({size:e=14}){return(0,n.jsx)(z,{label:"CSS",size:e})}function B({size:e=14}){return(0,n.jsx)(z,{label:"SC",size:e})}function O({size:e=14}){return(0,n.jsx)(z,{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:R,strokeWidth:"0.9",fill:R,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:R,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M3.5 9.5V7l1.5 1.5L6.5 7v2.5",stroke:R,strokeWidth:"0.9",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"}),(0,n.jsx)("path",{d:"M8 7v2.5M7 9l1 1.5 1-1.5",stroke:R,strokeWidth:"0.9",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})]})}function U({size:e=14}){return(0,n.jsx)(z,{label:"YML",size:e})}function _({size:e=14}){return(0,n.jsx)(z,{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:R,strokeWidth:"0.9",fill:R,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:R,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M4 7.5l2 1.5-2 1.5",stroke:R,strokeWidth:"0.95",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"}),(0,n.jsx)("path",{d:"M7.5 10.5h2.5",stroke:R,strokeWidth:"0.95",strokeLinecap:"round"})]})}function K({size:e=14}){return(0,n.jsx)(z,{label:"RS",size:e})}function q({size:e=14}){return(0,n.jsx)(z,{label:"GO",size:e})}function Z({size:e=14}){return(0,n.jsx)(z,{label:"SQL",size:e})}function Y({size:e=14}){return(0,n.jsx)(z,{label:"GQL",size:e})}function J({size:e=14}){return(0,n.jsx)(z,{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:R,strokeWidth:"0.9",fill:R,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:R,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:R,strokeWidth:"0.8"}),(0,n.jsx)("rect",{x:"6",y:"6.5",width:"2",height:"1.5",rx:"0.3",stroke:R,strokeWidth:"0.8"}),(0,n.jsx)("rect",{x:"3.5",y:"8.5",width:"2",height:"1.5",rx:"0.3",stroke:R,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:R,strokeWidth:"0.9",fill:R,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:R,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,n.jsx)("circle",{cx:"5.5",cy:"8.5",r:"1.5",stroke:R,strokeWidth:"0.9"}),(0,n.jsx)("path",{d:"M7 8.5h2.5M8.5 8.5v1.5",stroke:R,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:R,strokeWidth:"0.9",fill:R,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:R,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,n.jsx)("circle",{cx:"5",cy:"6.5",r:"1",stroke:R,strokeWidth:"0.85"}),(0,n.jsx)("circle",{cx:"9",cy:"6.5",r:"1",stroke:R,strokeWidth:"0.85"}),(0,n.jsx)("circle",{cx:"5",cy:"10",r:"1",stroke:R,strokeWidth:"0.85"}),(0,n.jsx)("path",{d:"M5 7.5V9",stroke:R,strokeWidth:"0.85",strokeLinecap:"round"}),(0,n.jsx)("path",{d:"M9 7.5v.5a2 2 0 0 1-2 2H6",stroke:R,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:R,strokeWidth:"0.9",fill:R,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:R,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:R,strokeWidth:"0.9"}),(0,n.jsx)("path",{d:"M5.5 8.5V7.5a1.5 1.5 0 0 1 3 0v1",stroke:R,strokeWidth:"0.9",strokeLinecap:"round",fill:"none"})]})}function et({size:e=14}){return(0,n.jsx)(z,{label:"DOC",size:e})}function er({size:e=14}){return(0,n.jsx)(z,{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:R,strokeWidth:"0.9",fill:R,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:R,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,n.jsx)("circle",{cx:"7",cy:"8.5",r:"1.3",stroke:R,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:R,strokeWidth:"0.8",strokeLinecap:"round"})]})}function ei(e,t=14){let r=e.toLowerCase(),i=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(i){case"ts":return(0,n.jsx)($,{size:t});case"tsx":return(0,n.jsx)(A,{size:t});case"js":case"mjs":case"cjs":return(0,n.jsx)(L,{size:t});case"jsx":return(0,n.jsx)(N,{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)(K,{size:t});case"go":return(0,n.jsx)(q,{size:t});case"sql":return(0,n.jsx)(Z,{size:t});case"graphql":case"gql":return(0,n.jsx)(Y,{size:t});case"tf":case"hcl":return(0,n.jsx)(J,{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 ea=r(30808),eo=r(28999);async function es(e){let t=(0,eo.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,eo.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:a,onAtMention:o,expandedPaths:s,onToggleExpanded:l,refreshToken:c,highlightedPaths:u,gitStatusByPath:p,changedDirectoryPaths:h}){let{t:f}=(0,d.s9)(),g=s.has(e.fullPath),m=u.has(e.fullPath),x=(0,eo.A0)(e.fullPath),S=p.get(x),C=e.isDir&&(void 0!==S||h.has(x)),[T,I]=(0,i.useState)(e.children??[]),[E,R]=(0,i.useState)(e.loaded??!1),[M,W]=(0,i.useState)(!1),[z,$]=(0,i.useState)(!1),[A,L]=(0,i.useState)(!1),N=(0,i.useCallback)(async(t=!1)=>{if(!E||t){W(!0);try{let t=await es(e.fullPath);I(t),R(!0)}catch{}finally{W(!1)}}},[E,e.fullPath]);(0,i.useEffect)(()=>{g?E&&N(!0):R(!1)},[c]);let F=(0,i.useCallback)(()=>{if(e.isDir){let t=!g;l(e.fullPath,t),t&&!E&&N()}else a(e.fullPath,e.name)},[e.isDir,e.fullPath,e.name,E,g,N,a,l]),D=(0,i.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(),g){let e=t.currentTarget.parentElement?.querySelector('[role="group"] [role="treeitem"]');e?.focus()}else l(e.fullPath,!0),E||N()}else if("ArrowLeft"===t.key)if(e.isDir&&g)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,g,E,N,l,F]),P=f("fileExplorer.insertPathIntoChat"),B=f("fileExplorer.downloadFile");return(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{onClick:F,onKeyDown:D,onMouseEnter:()=>$(!0),onMouseLeave:()=>$(!1),onFocus:e=>{e.target===e.currentTarget&&L(!0)},onBlur:()=>L(!1),role:"treeitem",tabIndex:0,"aria-selected":m,"aria-expanded":e.isDir?g:void 0,"aria-label":e.isDir?e.name+" (folder"+(g?", expanded":", collapsed")+")":e.name+" (file)",style:{position:"relative",display:"flex",alignItems:"center",gap:4,paddingLeft:8+14*t,paddingRight:8,height:24,cursor:"pointer",background:z?"var(--bg-hover)":"transparent",borderRadius:"var(--radius-control)",userSelect:"none",boxShadow:A?"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:g?"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?g?(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"}):ei(e.name,14)}),(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},title:e.fullPath,children:e.name}),m&&(0,n.jsx)("span",{title:f("fileExplorer.newlyUploaded"),"aria-label":f("fileExplorer.newlyUploaded"),style:{width:6,height:6,flexShrink:0,borderRadius:"50%",background:"var(--accent)"}}),!z&&!e.isDir&&S&&(0,n.jsx)("span",{title:f(ed[S.status]),"aria-label":f(ed[S.status]),style:{width:14,flexShrink:0,color:ec[S.status],fontFamily:"var(--font-mono)",fontSize:11,fontWeight:600,textAlign:"center"},children:S.code}),!z&&C&&(0,n.jsx)("span",{title:f("fileExplorer.containsChangedFiles"),"aria-label":f("fileExplorer.containsChangedFiles"),style:{width:6,height:6,flexShrink:0,borderRadius:"50%",background:"var(--status-modified)"}}),M&&(0,n.jsx)(w.A,{size:10,strokeWidth:2,color:"var(--text-dim)",style:{animation:"spin 0.8s linear infinite",flexShrink:0},"aria-hidden":"true"}),o&&z&&(0,n.jsx)(ea.m_,{content:P,children:(0,n.jsxs)("button",{onClick:t=>{t.stopPropagation(),o((0,eo.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:4,padding:"0 8px",height:20,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",color:"var(--accent)",cursor:"pointer",fontSize:11,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"}),f("fileExplorer.mention")]})}),z&&!e.isDir&&(0,n.jsx)(ea.m_,{content:B,children:(0,n.jsx)("a",{href:`/api/files/${(0,eo.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:4,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:11,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:!g||void 0,className:"accordion-flow "+(g?"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:a,onAtMention:o,expandedPaths:s,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:11,color:"var(--text-dim)",height:22,display:"flex",alignItems:"center"},children:f("fileExplorer.emptyDir")})]})})]})}let eh=(0,i.forwardRef)(function({cwd:e,onOpenFile:t,refreshKey:r,onAtMention:a,onAtMentions:o,onUploadBusyChange:s,onRefreshDone:l},c){let{t:u,tn:p}=(0,d.s9)(),[h,f]=(0,i.useState)([]),[g,m]=(0,i.useState)(!0),[x,v]=(0,i.useState)(null),[y,b]=(0,i.useState)(new Set),[j,R]=(0,i.useState)(0),[M,W]=(0,i.useState)(new Set),[z,$]=(0,i.useState)([]),[A,L]=(0,i.useState)("idle"),[N,F]=(0,i.useState)(0),[D,P]=(0,i.useState)(null),[B,O]=(0,i.useState)(null),[H,U]=(0,i.useState)(null),_=(0,i.useRef)(null),V=(0,i.useRef)(null),K=`${r??0}:${j}`,q="idle"!==A,Z=(0,i.useMemo)(()=>new Map(z.map(e=>[(0,eo.A0)(e.filePath),e])),[z]),Y=(0,i.useMemo)(()=>{let t=new Set,r=(0,eo.A0)(e).replace(/\/$/,"");for(let e of z){let n=(0,eo.gX)((0,eo.A0)(e.filePath));for(;(n===r||n.startsWith(`${r}/`))&&(t.add(n),n!==r);){let e=(0,eo.gX)(n);if(e===n)break;n=e}}return t},[e,z]),J=(0,i.useCallback)((e,t)=>{b(r=>{let n=new Set(r);return t?n.add(e):n.delete(e),n})},[]),G=(0,i.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,eo.e_)(e,t)))),R(e=>e+1))},[e]),X=(0,i.useCallback)(async(t,r)=>{U(null),P(null),F(0),L("uploading");try{let{status:n,data:i}=await new Promise((n,i)=>{let a=new FormData;t.forEach(e=>a.append("files",e,e.name));let o=new XMLHttpRequest;o.open("POST",`/api/files/${(0,eo.HG)(e)}?type=upload&conflict=${r}`),o.upload.onprogress=e=>{e.lengthComputable&&e.total>0&&F(Math.round(e.loaded/e.total*100))},o.onerror=()=>i(Error((0,d.Tl)("fileExplorer.uploadNetworkError"))),o.onabort=()=>i(Error((0,d.Tl)("fileExplorer.uploadCancelled"))),o.onload=()=>{let e={};try{e=JSON.parse(o.responseText)}catch{o.responseText&&(e.error=o.responseText)}n({status:o.status,data:e})},o.send(a)});if(409===n&&i.conflicts?.length)return void U({files:t,conflicts:i.conflicts,nonReplaceable:i.nonReplaceable??[]});if(n<200||n>=300)throw Error(i.error??(0,d.Tl)("fileExplorer.uploadFailed",{status:n}));F(100),G(i)}catch(e){P(e instanceof Error?e.message:String(e))}finally{L("idle")}},[G,e]),Q=(0,i.useCallback)(async t=>{if(0!==t.length&&!q){O(null),W(new Set),U(null),P(null),F(0),L("checking");try{let r=await fetch(`/api/files/${(0,eo.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,q]),ee=(0,i.useCallback)(e=>{let t=Array.from(e.target.files??[]);e.target.value="",Q(t)},[Q]);(0,i.useImperativeHandle)(c,()=>({openUploadPicker(){q||V.current?.click()}}),[q]),(0,i.useEffect)(()=>{s?.(q)},[s,q]),(0,i.useEffect)(()=>()=>s?.(!1),[s]);let et=(0,i.useRef)(l);et.current=l,(0,i.useEffect)(()=>{let t=_.current!==e;_.current=e,t&&(b(new Set),W(new Set),O(null),U(null),P(null)),m(t),v(null);let r=!1;return es(e).then(e=>{r||f(e)}).catch(e=>{r||v(e instanceof Error?e.message:String(e))}).finally(()=>{r||m(!1),et.current?.()}),()=>{r=!0}},[e,r,j]),(0,i.useEffect)(()=>{let t=!1;return el(e).then(e=>{t||$(e.isGitRepository?e.files:[])}).catch(()=>{t||$([])}),()=>{t=!0}},[e,r,j]);let er=q||null!==H||null!==D||null!==B,en=(0,i.useCallback)(()=>{B&&0!==B.uploaded.length&&o?.(B.uploaded.map(t=>(0,eo.qP)((0,eo.e_)(e,t),e)))},[e,o,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:"6px 8px",borderBottom:"1px solid var(--border)"},children:[q&&(0,n.jsxs)("div",{role:"status","aria-live":"polite","aria-label":"checking"===A?u("fileExplorer.checkingFiles"):u("fileExplorer.uploadingPercent",{percent:N}),children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,minHeight:14,color:"var(--text-muted)"},children:["checking"===A?(0,n.jsx)(w.A,{size:13,strokeWidth:2.2,style:{animation:"spin 0.8s linear infinite"},"aria-hidden":"true"}):(0,n.jsx)(S.A,{size:13,strokeWidth:2,"aria-hidden":"true"}),"uploading"===A&&(0,n.jsxs)("span",{style:{fontSize:10},children:[N,"%"]})]}),"uploading"===A&&(0,n.jsx)("div",{style:{height:3,marginTop:4,overflow:"hidden",borderRadius:2,background:"var(--border)"},children:(0,n.jsx)("div",{style:{width:`${N}%`,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:11,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:10,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 8px",border:"1px solid var(--status-error)",borderRadius:"var(--radius-control)",background:"transparent",color:"var(--status-error)",cursor:"pointer",fontSize:11},children:u("fileExplorer.replace")}),(0,n.jsx)("button",{type:"button",onClick:()=>void X(H.files,"skip"),style:{height:24,minHeight:24,padding:"0 8px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)",color:"var(--text)",cursor:"pointer",fontSize:11},children:u("fileExplorer.skipExisting")}),(0,n.jsx)("button",{type:"button",onClick:()=>U(null),style:{height:24,minHeight:24,padding:"0 8px",border:"none",borderRadius:"var(--radius-control)",background:"transparent",color:"var(--text-muted)",cursor:"pointer",fontSize:11},children:u("fileExplorer.cancel")})]})]}),D&&(0,n.jsxs)("div",{role:"alert",style:{display:"flex",alignItems:"flex-start",gap:6,fontSize:11,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:8,minHeight:22,fontSize:11},children:[(0,n.jsxs)("div",{style:{minWidth:0,flex:1,display:"flex",alignItems:"center",gap:8},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&&o&&(0,n.jsx)(ea.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:4,flexShrink:0,border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)",color:"var(--accent)",cursor:"pointer",fontSize:11,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:4,marginTop:3,minWidth:0,fontSize:10,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:"2px 4px"},children:[g?(0,n.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--text-dim)"},children:u("fileExplorer.loadingFiles")}):x?(0,n.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--status-error)"},children:x}):h.map(r=>(0,n.jsx)(ep,{node:r,depth:0,cwd:e,onOpenFile:t,onAtMention:a,expandedPaths:y,onToggleExpanded:J,refreshToken:K,highlightedPaths:M,gitStatusByPath:Z,changedDirectoryPaths:Y},r.fullPath)),!g&&!x&&0===h.length&&(0,n.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--text-dim)"},children:u("fileExplorer.noFilesFound")})]})]})});var ef=r(51087);function eg(){let[e,t]=(0,i.useState)(!1);return(0,i.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 em="omp-web:last-open-by-project";function ex(){try{return window.localStorage}catch{return null}}function ev(e){try{let t=e.getItem(em);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),eR=r(44236),eM=r(59680),eW=r(12363),ez=r(65738),e$=r(15480);function eA(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",eN="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,style:t}){return(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",display:"block",minWidth:0,lineHeight:1.35,direction:"rtl",textAlign:"left",...t},children:(0,n.jsx)("span",{style:{unicodeBidi:"plaintext"},children:e})})}let eO="background var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm), border-color var(--dur-fast) var(--ease-out-warm)";function eH({label:e,title:t,onClick:r,active:a=!1,disabled:o=!1,children:s}){let[l,d]=(0,i.useState)(!1);return(0,n.jsx)("button",{type:"button","aria-label":e,title:t??e,onClick:r,disabled:o,"aria-pressed":a,style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,flexShrink:0,lineHeight:0,background:a||l?"var(--bg-hover)":"none",border:"none",borderRadius:"var(--radius-control)",color:a||l?"var(--accent)":"var(--text-dim)",cursor:o?"default":"pointer",opacity:o?.5:1,transition:eO},onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),children:s})}function eU({anchor:e,open:t,onClose:r,placement:a="below",align:o="end",minWidth:s=136,style:d,children:c}){let u=(0,i.useRef)(null),[p,h]=(0,i.useState)(null),f=(0,i.useCallback)((e,t)=>{let r;if(!e||!t)return;let n=e.getBoundingClientRect(),i=t.offsetWidth,s=t.offsetHeight;"above"===a?(r=n.top-s-5)<8&&(r=Math.min(n.bottom+5,window.innerHeight-s-8)):(r=n.bottom+5)+s>window.innerHeight-8&&(r=n.top-s-5),r<8&&(r=8),h({top:r,left:"start"===o?Math.max(8,Math.min(n.left,window.innerWidth-i-8)):Math.max(8,Math.min(n.right-i,window.innerWidth-i-8))})},[a,o]);return((0,i.useLayoutEffect)(()=>{t&&f(e.current,u.current)},[t,f,e]),(0,i.useEffect)(()=>{if(!t)return;let r=()=>f(e.current,u.current);return window.addEventListener("scroll",r,!0),window.addEventListener("resize",r),()=>{window.removeEventListener("scroll",r,!0),window.removeEventListener("resize",r)}},[t,f,e]),(0,i.useEffect)(()=>{if(!t)return;let n=setTimeout(()=>{let e=u.current?.querySelector("button:not([disabled])");e?.focus()},0),i=t=>{let n=t.target;e.current?.contains(n)||u.current?.contains(n)||r()},a=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(u.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",i),document.addEventListener("touchstart",i),document.addEventListener("keydown",a),()=>{clearTimeout(n),document.removeEventListener("mousedown",i),document.removeEventListener("touchstart",i),document.removeEventListener("keydown",a)}},[t,r,e]),!t||"u"<typeof document)?null:(0,l.createPortal)((0,n.jsx)("div",{ref:u,role:"menu",style:{position:"fixed",top:p?p.top:-9999,left:p?p.left:-9999,visibility:p?"visible":"hidden",zIndex:1e3,minWidth:s,padding:4,border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)",boxShadow:"var(--shadow-pop)",...d},children:c}),document.body)}function e_(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 i=function(e){let n=r.get(e),i=new Set;for(;n&&!i.has(n);){if(i.add(n),t.has(n))return n;n=r.get(n)}return null}(e.session.id);i?t.get(i).children.push(e):n.push(e)}let i=e=>{e.sort((e,t)=>t.session.modified.localeCompare(e.session.modified)),e.forEach(e=>i(e.children))};return i(n),n}let eV="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*";function eK(){let[e,t]=(0,i.useState)(!1),[r,a]=(0,i.useState)(!1),o=(0,i.useRef)(null),s=(0,i.useRef)(null),l=eg(),d=function(e,t,r){let[n,a]=(0,i.useState)(e),o=(0,i.useRef)(null),s=(0,i.useRef)(0);return(0,i.useEffect)(()=>{if(!t||r)return void a(e);s.current=0;let n=4*e.length,i=()=>{s.current+=1;let t=Math.floor(s.current/n*e.length);a(e.split("").map((e,r)=>" "===e?" ":r<t?e:eV[Math.floor(Math.random()*eV.length)]).join("")),s.current<n?o.current=requestAnimationFrame(i):a(e)};return o.current=requestAnimationFrame(i),()=>{o.current&&cancelAnimationFrame(o.current)}},[e,t,r]),n}(e?"v0.4.5":"ompgui",r,l),c=(0,i.useCallback)(e=>{t(e),o.current&&clearTimeout(o.current),l||(a(!0),o.current=setTimeout(()=>a(!1),(e?6:8)*4*(1e3/60)+100))},[l]),u=(0,i.useCallback)(()=>{s.current&&clearTimeout(s.current);let t=!e;c(t),t&&(s.current=setTimeout(()=>c(!1),3e3))},[e,c]);return(0,i.useEffect)(()=>()=>{s.current&&clearTimeout(s.current),o.current&&clearTimeout(o.current)},[]),(0,n.jsx)("button",{onClick:u,style:{background:"none",border:"none",padding:0,cursor:"pointer",fontWeight:700,fontSize:14,letterSpacing:"-0.01em",fontFamily:"var(--font-mono)",minWidth:"6ch",lineHeight:1},title:e?"Show ompgui name":"Show ompgui version",children:r||e?(0,n.jsx)("span",{style:{color:e?"var(--accent)":"var(--text)"},children:d}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{style:{color:"var(--accent)"},children:"omp"}),(0,n.jsx)("span",{style:{color:"var(--text)"},children:"gui"})]})})}function eq({selectedSessionId:e,optimisticSession:t,onSelectSession:r,onNewSession:a,initialSessionId:o,skipInitialProjectSelection:s,onInitialRestoreDone:l,refreshKey:u,onSessionDeleted:p,selectedCwd:h,onCwdChange:f,onOpenFile:g,explorerRefreshKey:x,onExplorerRefresh:y,explorerRefreshing:b,onExplorerRefreshDone:w,onAtMention:k,onAtMentions:j,onOpenSettings:T,onOpenUsage:I,updateAvailable:E}){let{t:R}=(0,d.s9)(),[M,W]=(0,i.useState)([]),[z,$]=(0,i.useState)(!0),[A,L]=(0,i.useState)(null),[N,F]=(0,i.useState)(null),[D,P]=(0,i.useState)(""),[B,O]=(0,i.useState)([]),[H,U]=(0,i.useState)(null),[_,V]=(0,i.useState)(!1),[K,q]=(0,i.useState)(!1),[Z,Y]=(0,i.useState)(null),[J,G]=(0,i.useState)(()=>(function(){try{let e=window.localStorage.getItem(eN)||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,i.useState)(null),[ee,et]=(0,i.useState)({}),[er,en]=(0,i.useState)(!1),[ei,eo]=(0,i.useState)(!1),[es,el]=(0,i.useState)(""),[ed,ec]=(0,i.useState)(null),[eu,ep]=(0,i.useState)(!1),[eg,eb]=(0,i.useState)(null),ew=(0,i.useRef)(null),eM=(0,i.useRef)(null),[eW,ez]=(0,i.useState)(!0),[e$,eB]=(0,i.useState)(0),[eU,eV]=(0,i.useState)(!1),[eG,eX]=(0,i.useState)(!1),[eQ,e0]=(0,i.useState)(()=>new Set),[e1,e2]=(0,i.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}})()),e5=(0,i.useRef)(new Set),[e4,e6]=(0,i.useState)(()=>Date.now()),[e3,e8]=(0,i.useState)(!1),[e9,e7]=(0,i.useState)(""),[te,tt]=(0,i.useState)(!1),tr=(0,i.useRef)(null),tn=(0,i.useRef)(!1),ti=(0,i.useRef)(null),ta=(0,i.useRef)(null),to=(0,i.useRef)(null),ts=(0,i.useRef)(null),tl=(0,i.useCallback)(async(e=!1)=>{ts.current?.abort();let t=new AbortController;ts.current=t;try{e&&$(!0);let r={};to.current&&(r["If-None-Match"]=to.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 i=n.headers.get("ETag");i&&(to.current=i);let a=await n.json();W(a.sessions),tn.current||e0(new Set(a.runningSessionIds??[]));let o=new Set(a.sessions.map(e=>e.id));e2(e=>{if(0===e.size)return e;let t=new Set([...e].filter(e=>o.has(e)));return t.size===e.size?e:t}),L(null),e||(eX(!0),ti.current&&clearTimeout(ti.current),ti.current=setTimeout(()=>eX(!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&&$(!1)}},[]),td=(0,i.useRef)(!1);(0,i.useEffect)(()=>{let e=!td.current;td.current=!0,tl(e)},[tl,u]);let tc=(0,i.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),tf.current=!0}catch(e){U((0,d.Tl)("projects.loadFailed",{detail:e instanceof Error?e.message:String(e)}))}},[]);(0,i.useEffect)(()=>{tc()},[tc,u]),(0,i.useEffect)(()=>{let e=setInterval(()=>e6(Date.now()),6e4);return()=>clearInterval(e)},[]),(0,i.useEffect)(()=>{if(null!==J)try{window.localStorage.setItem(eN,JSON.stringify([...J]))}catch{}},[J]),(0,i.useEffect)(()=>{try{0===e1.size?window.localStorage.removeItem(eL):window.localStorage.setItem(eL,JSON.stringify([...e1]))}catch{}},[e1]);let tu=(0,i.useRef)(null),tp=(0,i.useCallback)(()=>{tu.current||(tu.current=setTimeout(()=>{tu.current=null,tl(!1)},300))},[tl]);(0,i.useEffect)(()=>{let e=new EventSource("/api/agent/running/events");return e.onmessage=e=>{try{let t=JSON.parse(e.data);"running"===t.type&&(tn.current=!0,e0(new Set(t.runningSessionIds??[])),t.refreshSessionList&&tp())}catch{}},()=>{tu.current&&clearTimeout(tu.current),e.close()}},[tl,tp]),(0,i.useEffect)(()=>{let t=e5.current,r=[...t].filter(t=>!eQ.has(t)&&t!==e),n=[...eQ].filter(e=>!t.has(e));(r.length>0||n.length>0)&&e2(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)&&tl(!1),e5.current=eQ},[eQ,e,tl]),(0,i.useEffect)(()=>{e&&e2(t=>{if(!t.has(e))return t;let r=new Set(t);return r.delete(e),r})},[e]),(0,i.useEffect)(()=>{void 0!==x&&eB(e=>e+1)},[x]),(0,i.useEffect)(()=>{fetch("/api/home").then(e=>e.json()).then(e=>{e.home&&P(e.home)}).catch(()=>{})},[]);let th=(0,i.useRef)(!1),tf=(0,i.useRef)(!1),tg=(0,i.useCallback)(e=>{if(!e)return null;for(let t of Object.values(ee))if(t.worktrees.some(t=>eA(t.path)===eA(e)))return t.projectRoot;let t=B.find(t=>ek(t.path)===ek(e));if(t)return t.path;let r=ek(e),n=M.find(e=>ek(e.cwd)===r);return n?.projectRoot??e},[ee,M,B]),tm=(0,i.useCallback)(e=>{G(t=>{if(t?.has(e))return t;let r=new Set(t??[]);return r.add(e),r})},[]),tx=(0,i.useCallback)(e=>{G(t=>{if(!t?.has(e))return t;let r=new Set(t);return r.delete(e),r})},[]),tv=(0,i.useCallback)(e=>{G(t=>{let r=new Set(t??[]);return r.has(e)?r.delete(e):r.add(e),r})},[]),ty=(0,i.useCallback)(e=>{tP.current=!1,F(e),tm(e)},[tm]),tb=(0,i.useRef)(null);(0,i.useEffect)(()=>{tb.current!==N&&(tb.current=N,f?.(N,tg(N)))},[N,f,tg]);let tw=(0,i.useRef)(null);(0,i.useEffect)(()=>{if(h&&h!==tw.current){tw.current=h,F(h);let e=tg(h);e&&tm(e)}},[h,tg,tm]);let[tk,tj]=(0,i.useState)(0);(0,i.useLayoutEffect)(()=>{if(!N)return;let e=!1;return fetch(`/api/worktrees?cwd=${encodeURIComponent(N)}`).then(e=>e.json()).then(t=>{if(e||t.error||!t.projectRoot)return;let r=t.projectRoot,n={forCwd:N,projectRoot:r,isGit:t.isGit??!1,isTopLevel:t.isTopLevel??!1,worktrees:t.worktrees??[]};et(e=>{let t=eA(r),i=e[t];if(i&&eA(i.projectRoot)!==t){let r={...e};return delete r[eA(i.projectRoot)],r[t]=n,r}return{...e,[t]:n}})}).catch(()=>{}),()=>{e=!0}},[N,tk,u]);let tS=(()=>{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})(),tC=(0,i.useRef)(new Map),tT=(0,i.useMemo)(()=>{let e=M;if(t&&!e.some(e=>e.id===t.id)){let r=tS??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 eQ){if(r.has(e))continue;let t=tC.current.get(e);t||(t=new Date().toISOString(),tC.current.set(e,t));let i=tS??N??"",a=i?ek(i):void 0;n.push({id:e,path:"",cwd:N??"",name:void 0,created:t,modified:t,messageCount:1,firstMessage:"",projectRoot:i,...a?{projectKey:a}:{}})}if(tC.current.size>n.length)for(let e of[...tC.current.keys()])(!eQ.has(e)||r.has(e))&&tC.current.delete(e);return n.length?[...e,...n]:e},[M,t,tS,eQ,N]),tI=(0,i.useMemo)(()=>{let e=B,t=!!tS&&e.some(e=>ek(e.path)===ek(tS));tS&&!t&&(e=[...e,{path:tS}]);let r=new Set(e.map(e=>ek(e.path)));for(let t of eQ){if(M.some(e=>e.id===t))continue;let n=tS??N??"";n&&!r.has(ek(n))&&(e=[...e,{path:n}],r.add(ek(n)))}return e},[tS,B,eQ,M,N]),tE=(0,i.useMemo)(()=>tg(N),[tg,N]),tR=!!(t||[...eQ].some(e=>!M.some(t=>t.id===e))),tM=(0,i.useMemo)(()=>[...tI].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)}),[tI]),tW=(0,i.useRef)(null),tz=(0,i.useMemo)(()=>{if(tR&&tW.current){let e=tW.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 tW.current=tM,tM},[tM,tR]),t$=(0,i.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 i=n.get(ek(e.projectKey??t))??r.get(t);i&&i.push(e)}return r})(tz,tT),[tz,tT]),tA=(0,i.useMemo)(()=>(function(e,t,r){let n=new Set(t),i=new Set(r),a=new Map;for(let t of e){let e=ey(t);if(!e)continue;let r=ek(t.projectKey??e),o=a.get(r)??{running:0,unread:0};n.has(t.id)&&(o.running+=1),i.has(t.id)&&(o.unread+=1),a.set(r,o)}return a})(tT,eQ,e1),[tT,eQ,e1]),tL=(0,i.useDeferredValue)(e9),tN=e3||te||tL.trim().length>0,tF=(0,i.useMemo)(()=>{let e=tL.trim().toLowerCase(),t=[];for(let r of tz){let n=t$.get(r.path)??[];if(te&&(n=n.filter(e=>eQ.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&&(te||e)||t.push({project:r,sessions:n})}return t},[tz,t$,te,tL,eQ]),tD=(0,i.useMemo)(()=>{let e=new Map;for(let{project:t,sessions:r}of tF)e.set(t.path,e_(r));return e},[tF]);(0,i.useEffect)(()=>{if(null===J||!tf.current)return;let e=new Set(tz.map(e=>e.path)),t=[...J].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})},[J,tz]);let tP=(0,i.useRef)(!1),tB=(0,i.useRef)(0),tO=(0,i.useRef)(null);(0,i.useEffect)(()=>()=>{tO.current&&(clearTimeout(tO.current),tO.current=null)},[]),(0,i.useEffect)(()=>{if(s)return;if(o&&!th.current){if(0===M.length)return;let e=M.find(e=>e.id===o);if(e){tB.current=0,th.current=!0,F(e.cwd),tm(ey(e)),r(e,!0);return}if(tB.current<8){tB.current+=1,tO.current&&(clearTimeout(tO.current),tO.current=null),tO.current=setTimeout(()=>{tO.current=null,tl(!1)},1e3);return}tB.current=0,th.current=!0,l?.()}if(null!==N&&!tP.current)return;let e=tz[0];e&&(F(e.path),tm(e.path),tP.current=0===M.length)},[M,N,o,s,r,l,tz,tm,tl]);let tH=(0,i.useRef)(!1);(0,i.useEffect)(()=>{tH.current||tE&&(tH.current=!0,null===J&&tm(tE))},[tE,J,tm]);let tU=(0,i.useCallback)(async e=>{let t=(e??"").trim();if(t&&!K){q(!0),Y(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 Y((0,c.K)({...r,error:r.error??`HTTP ${e.status}`}));await tc(),F(r.project.path),tm(r.project.path),V(!1)}catch(e){Y(e instanceof Error?e.message:String(e))}finally{q(!1)}}},[K,tc,tm]),t_=(0,i.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 ef.oR.error((0,c.K)({...r,error:r.error??`HTTP ${t.status}`}));if(null!==tE&&ek(tE)===ek(e)){let t=tz.find(t=>t.path!==e);F(t?t.path:null)}tx(e),await tc()}finally{Q(null)}}},[X,tE,tz,tx,tc]),tV=(0,i.useCallback)(async()=>{let e=es.trim(),t=tE?ee[eA(tE)]: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 i=n.path;eo(!1),el(""),en(!1),et(t=>{let n=eA(r),a=t[n];return a?{...t,[n]:{...a,forCwd:i,worktrees:[...a.worktrees,{path:i,branch:e,isMain:!1}]}}:t}),F(i),tj(e=>e+1)}catch(e){ec(e instanceof Error?e.message:String(e))}finally{ep(!1)}},[es,eu,tE,ee]),tK=(0,i.useCallback)(async(e,t)=>{let r=tE?ee[eA(tE)]: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})}),i=await r.json().catch(()=>({}));if(!r.ok){if(i.dirty&&!t)return void eb(e);ec((0,c.K)({...i,error:i.error??`HTTP ${r.status}`}));return}eb(null),null!==N&&ek(N)===ek(e)&&F(n),tj(e=>e+1)}catch(e){ec(e instanceof Error?e.message:String(e))}finally{ep(!1)}},[tE,ee,eu,N]),tq=(0,i.useCallback)(()=>{en(!1),eo(!1),el(""),ec(null),eb(null)},[]),tZ=(0,i.useCallback)(e=>{tP.current=!1,e.cwd&&F(e.cwd),tm(ey(e)),r(e)},[r,tm]),tY=(0,i.useCallback)(()=>{if(!N)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)}`;a?.(e,N)},[N,a]),[tJ,tG]=(0,i.useState)(!1),tX=(0,i.useRef)(null),tQ=(0,i.useCallback)(async e=>{if(e&&!tJ){tG(!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 ef.oR.error(n.error??`HTTP ${r.status}`);ef.oR.success(R("sessionSidebar.imported")),tl(!1),tc()}catch(e){ef.oR.error(e instanceof Error?e.message:String(e))}finally{tG(!1)}}},[tJ,tl,tc,R]),t0=J??eF,t1=tE?ee[eA(tE)]:void 0,t2=(0,i.useCallback)(e=>{let t=ee[eA(e)];if(!t||!t.isGit||!t.isTopLevel)return null;let r=t.worktrees.find(e=>eA(e.path)===eA(N??""))??t.worktrees.find(e=>e.isMain);return r?r.branch??eD(r.path,D):null},[ee,N,D]),t5=!!(t1?.isGit&&t1.isTopLevel&&N&&null!==tE&&ek(tE)===ek(t1.projectRoot)),t4=(0,i.useCallback)(()=>{en(e=>!e)},[]),t6=(0,i.useCallback)(e=>{let t=M.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(em):t.setItem(em,JSON.stringify(r))}catch{}}(ey(t)),p?.(e),tl()},[M,p,tl]);(0,i.useEffect)(()=>{let t=M.find(t=>t.id===e);t&&function(e,t,r=ex()){if(r)try{let n=ev(r);n[e]=t,r.setItem(em,JSON.stringify(n))}catch{}}(ey(t),t.id)},[M,e]);let t3=t5&&t1?(0,n.jsx)(eJ,{worktreeState:t1,selectedCwd:N,homeDir:D,wtDropdownOpen:er,wtNewOpen:ei,setWtNewOpen:eo,wtNewBranch:es,setWtNewBranch:el,wtError:ed,setWtError:ec,wtBusy:eu,wtConfirmRemove:eg,setWtConfirmRemove:eb,onSelectWorktree:e=>{F(e),en(!1),ec(null)},onCreateWorktree:tV,onRemoveWorktree:(e,t)=>void tK(e,t),anchorRef:ew,newInputRef:eM,onClose:tq}):null;return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[_&&(0,n.jsx)(m,{busy:K,error:Z,onCancel:()=>{V(!1),Y(null)},onSelect:e=>void tU(e)}),(0,n.jsxs)("div",{style:{padding:"10px 10px 8px",borderBottom:"1px solid var(--border)",flexShrink:0,display:"flex",flexDirection:"column",gap:8},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,n.jsx)(eK,{}),(0,n.jsxs)("div",{style:{display:"flex",gap:2},children:[(0,n.jsx)(ea.m_,{content:R("sessionSidebar.importTitle"),side:"bottom",children:(0,n.jsx)(eH,{label:R("sessionSidebar.import"),onClick:()=>tX.current?.click(),disabled:tJ,children:(0,n.jsx)(ej.A,{size:14,strokeWidth:1.9,"aria-hidden":"true"})})}),(0,n.jsx)(ea.m_,{content:R("sessionSidebar.refresh"),side:"bottom",children:(0,n.jsx)(eH,{label:R("sessionSidebar.refresh"),active:eG,onClick:()=>{tl(!1),tc()},children:eG?(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:tX,type:"file",accept:".jsonl,.json,application/json,application/jsonl",style:{display:"none"},onChange:e=>{let t=e.target.files?.[0]??null;e.target.value="",tQ(t)}}),(0,n.jsxs)("button",{onClick:tY,disabled:!N,className:"sidebar-new-session",title:N?R("sessionSidebar.newSessionIn",{cwd:N}):R("sessionSidebar.selectProjectFirst"),style:{width:"100%",height:38,boxSizing:"border-box",display:"flex",alignItems:"center",justifyContent:"center",gap:7,background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:9,color:N?"var(--text)":"var(--text-dim)",cursor:N?"pointer":"not-allowed",fontSize:12.5,fontWeight:600,letterSpacing:"-0.01em",opacity:N?1:.65,transition:eO},onMouseEnter:e=>{N&&(e.currentTarget.style.background="var(--bg-selected)",e.currentTarget.style.borderColor="color-mix(in srgb, var(--accent) 30%, transparent)")},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.borderColor="var(--border)"},children:[(0,n.jsx)(eC.A,{size:15,strokeWidth:2.2,style:{color:"var(--accent)",flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{children:R("sessionSidebar.new")})]})]}),(0,n.jsxs)("div",{style:{flexShrink:0,padding:"4px 10px 2px",display:"flex",alignItems:"center",gap:2},children:[(0,n.jsx)("span",{style:{flex:1,color:"var(--text-muted)",fontSize:11,fontWeight:600,letterSpacing:"0.08em",textTransform:"uppercase"},children:R("projects.heading")}),(0,n.jsx)(eH,{label:R("sessionSidebar.search"),title:R("sessionSidebar.searchTitle"),active:e3,onClick:()=>{let e=!e3;e8(e),e?setTimeout(()=>tr.current?.focus(),0):e7("")},children:(0,n.jsx)(eT.A,{size:15,strokeWidth:1.9,"aria-hidden":"true"})}),(0,n.jsx)(eH,{label:R("sessionSidebar.filterRunning"),title:R("sessionSidebar.filterRunningTitle"),active:te,onClick:()=>tt(e=>!e),children:(0,n.jsx)(eI.A,{size:15,strokeWidth:1.9,"aria-hidden":"true"})}),(0,n.jsx)(eH,{label:R("projects.add"),title:R("projects.addTitle"),onClick:()=>{V(!0),Y(null)},children:(0,n.jsx)(eC.A,{size:15,strokeWidth:1.9,"aria-hidden":"true"})})]}),e3&&(0,n.jsx)("div",{style:{padding:"0 10px 6px",flexShrink:0},children:(0,n.jsx)("input",{ref:tr,value:e9,onChange:e=>e7(e.target.value),onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),e8(!1),e7(""))},placeholder:R("sessionSidebar.searchPlaceholder"),"aria-label":R("sessionSidebar.search"),style:{width:"100%",height:27,boxSizing:"border-box",padding:"0 9px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",outline:"none",color:"var(--text)",fontSize:12},onFocus:e=>{e.currentTarget.style.borderColor="var(--accent)"},onBlur:e=>{e.currentTarget.style.borderColor="var(--border)"}})}),(0,n.jsxs)("div",{style:{flex:eW&&(h||N)?"1 1 0":"1 1 auto",transition:"flex var(--dur-med) var(--ease-out-warm)",overflowY:"auto",padding:"2px 10px 10px",minHeight:80},children:[z&&(0,n.jsx)("div",{style:{padding:"10px 4px",color:"var(--text-muted)",fontSize:12},children:R("sessionSidebar.loading")}),H&&(0,n.jsx)("div",{style:{padding:"10px 4px",color:"var(--accent)",fontSize:12},children:H}),A&&(0,n.jsx)("div",{style:{padding:"10px 4px",color:"var(--accent)",fontSize:12},children:A}),!z&&!H&&!A&&0===tz.length&&(0,n.jsx)("div",{style:{padding:"10px 4px",color:"var(--text-muted)",fontSize:12,lineHeight:1.5},children:R("projects.noProjects")}),!z&&!H&&!A&&tz.length>0&&0===tF.length&&(0,n.jsx)("div",{style:{padding:"14px 4px",color:"var(--text-dim)",fontSize:11.5,lineHeight:1.5},children:R("sessionSidebar.noMatches")}),tF.map(({project:t,sessions:r})=>{let i=tD.get(t.path)??e_(r),a=null!==tE&&ek(tE)===ek(t.path),o=t2(t.path);return(0,n.jsx)(eY,{project:t,isActive:a,isExpanded:t0.has(t.path),activity:tA.get(ek(t.path)),tree:i,hiddenCount:tN?0:Math.max(0,i.length-eZ),selectedSessionId:e,runningSessionIds:eQ,unreadSessionIds:e1,relativeTimeNow:e4,onActivate:ty,onToggleExpand:tv,onRemoveProject:t_,removeBusy:X===t.path,onSelectSession:tZ,onRenamed:tl,onSessionDeleted:t6,activeWorktreeSwitcher:a?t3:null,worktreeBranch:o,worktreeToggleRef:a&&o?ew:void 0,worktreeOpen:!!a&&er,onToggleWorktrees:a?t4:void 0,homeDir:D},t.path)})]}),(h||N)&&(0,n.jsxs)("div",{style:{borderTop:"1px solid var(--border)",display:"flex",flexDirection:"column",flex:eW?"1 1 0":"0 0 auto",minHeight:0,overflow:"hidden",transition:"flex var(--dur-med) var(--ease-out-warm)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",flexShrink:0},children:[(0,n.jsxs)("button",{onClick:()=>ez(e=>!e),style:{display:"flex",alignItems:"center",gap:6,flex:1,padding:"6px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:11,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",textAlign:"left"},children:[(0,n.jsx)(v.A,{size:12,strokeWidth:1.8,style:{transform:eW?"rotate(90deg)":"none",transition:"transform var(--dur-med) var(--ease-out-warm)",flexShrink:0},"aria-hidden":"true"}),R("sessionSidebar.explorer")]}),(0,n.jsx)("div",{inert:!eW||void 0,style:{display:"flex",alignItems:"center",opacity:+!!eW,pointerEvents:eW?"auto":"none",transition:"opacity var(--dur-fast) var(--ease-out-warm)"},children:(0,n.jsx)(ea.m_,{content:R("sessionSidebar.uploadFilesTitle"),side:"top",children:(0,n.jsx)("button",{onClick:()=>ta.current?.openUploadPicker(),disabled:eU,title:R("sessionSidebar.uploadFilesTitle"),"aria-label":R("sessionSidebar.uploadFiles"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,background:"none",border:"none",color:"var(--text-dim)",cursor:eU?"default":"pointer",borderRadius:"var(--radius-control)",flexShrink:0,opacity:eU?.6:1,transition:"color var(--dur-fast) var(--ease-out-warm), background var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{eU||(e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{eU||(e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none")},children:(0,n.jsx)(S.A,{size:13,strokeWidth:2,"aria-hidden":"true"})})})}),(0,n.jsx)(ea.m_,{content:R("sessionSidebar.refreshExplorer"),side:"top",children:(0,n.jsx)("button",{"aria-label":R("sessionSidebar.refreshExplorer"),onClick:()=>{y?y():eB(e=>e+1)},title:R("sessionSidebar.refreshExplorer"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,marginRight:6,background:"none",border:"none",color:b?"var(--accent)":"var(--text-dim)",cursor:"pointer",borderRadius:"var(--radius-control)",flexShrink:0,transition:"color var(--dur-fast) var(--ease-out-warm), background var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{b||(e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{b||(e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none")},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 "+(eW?"is-open":""),inert:!eW||void 0,style:{flex:eW?"1 1 auto":"0 0 0px",minHeight:0},children:(0,n.jsx)("div",{className:"accordion-flow-inner",style:{height:"100%",overflowY:"auto",overflowX:"hidden"},children:(0,n.jsx)(eh,{ref:ta,cwd:N??h,onOpenFile:g??(()=>{}),refreshKey:e$,onAtMention:k,onAtMentions:j,onUploadBusyChange:eV,onRefreshDone:w})})})]}),(0,n.jsxs)("div",{style:{borderTop:"1px solid var(--border)",flexShrink:0,display:"flex"},children:[(0,n.jsxs)("button",{className:"sidebar-settings-row",onClick:T,title:R("settingsConfig.title"),"aria-label":R("settingsConfig.title"),style:{flex:1,minWidth:0,height:36,boxSizing:"border-box",display:"flex",alignItems:"center",gap:8,padding:"0 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",transition:eO},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:[(0,n.jsxs)("span",{style:{position:"relative",display:"inline-flex",flexShrink:0,color:"var(--accent)"},children:[(0,n.jsx)(eE.A,{size:14,strokeWidth:2,"aria-hidden":"true"}),E&&(0,n.jsx)("span",{"aria-label":"Update available",role:"status",style:{position:"absolute",top:-3,right:-4,width:6,height:6,borderRadius:"50%",background:"var(--accent)",border:"1px solid var(--bg-panel)"}})]}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12,fontWeight:500},children:R("settingsConfig.title")}),(0,n.jsx)(v.A,{size:13,strokeWidth:2,style:{flexShrink:0,color:"var(--text-dim)"},"aria-hidden":"true"})]}),(0,n.jsx)("span",{style:{width:1,background:"var(--border)",alignSelf:"stretch"},"aria-hidden":"true"}),(0,n.jsxs)("button",{className:"sidebar-settings-row",onClick:I,title:R("usageConfig.title"),"aria-label":R("usageConfig.title"),style:{flex:1,minWidth:0,height:36,boxSizing:"border-box",display:"flex",alignItems:"center",gap:8,padding:"0 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",transition:eO},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:[(0,n.jsx)("span",{style:{position:"relative",display:"inline-flex",flexShrink:0,color:"var(--accent)"},children:(0,n.jsx)(eR.A,{size:14,strokeWidth:2,"aria-hidden":"true"})}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12,fontWeight:500},children:R("usageConfig.title")}),(0,n.jsx)(v.A,{size:13,strokeWidth:2,style:{flexShrink:0,color:"var(--text-dim)"},"aria-hidden":"true"})]})]})]})}let eZ=5;function eY({project:e,isActive:t,isExpanded:r,activity:a,tree:o,hiddenCount:s,selectedSessionId:l,runningSessionIds:c,unreadSessionIds:u,relativeTimeNow:p,onActivate:h,onToggleExpand:f,onRemoveProject:g,removeBusy:m,onSelectSession:x,onRenamed:y,onSessionDeleted:w,activeWorktreeSwitcher:k,worktreeBranch:j,worktreeToggleRef:S,worktreeOpen:C,onToggleWorktrees:T}){let{t:I}=(0,d.s9)(),[E,R]=(0,i.useState)(!1),[M,W]=(0,i.useState)(!1),[z,$]=(0,i.useState)(!1),[A,L]=(0,i.useState)(!1),N=(0,i.useRef)(null),F=eP(e.path),D=!!(a&&(a.running>0||a.unread>0)),P=s>0&&!z?o.slice(0,eZ):o,B=E||M||A;return(0,n.jsxs)("section",{className:"sidebar-project","data-active":t?"true":"false",style:{marginBottom:12},children:[(0,n.jsxs)("div",{className:"sidebar-project-header",onMouseEnter:()=>R(!0),onMouseLeave:()=>R(!1),onFocus:()=>W(!0),onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||W(!1)},onKeyDown:e=>{"Escape"===e.key&&A&&(e.stopPropagation(),L(!1))},style:{display:"flex",alignItems:"center",gap:2,height:30,margin:0,padding:"0 6px 0 0",borderRadius:"var(--radius-control)",background:E?"var(--bg-hover)":"transparent",transition:eO},children:[(0,n.jsxs)("button",{className:"sidebar-project-identity",onClick:()=>h(e.path),"aria-current":t?"true":void 0,title:e.path,style:{flex:"0 1 auto",minWidth:0,alignSelf:"stretch",display:"flex",alignItems:"center",gap:7,padding:"0 4px 0 10px",background:"none",border:"none",color:E?"var(--text)":"var(--text-muted)",cursor:"pointer",textAlign:"left"},children:[(0,n.jsx)(b.A,{size:15,strokeWidth:1.8,style:{flexShrink:0,color:t?"var(--accent)":E?"var(--text-muted)":"var(--text-dim)",transition:"color var(--dur-fast) var(--ease-out-warm)"},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)",fontSize:12,fontWeight:600,letterSpacing:"-0.01em",lineHeight:1.25},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}),style:{display:"inline-flex",alignItems:"center",gap:5,flexShrink:0,minWidth:0,maxWidth:104,height:24,padding:"0 6px",border:"none",borderRadius:"var(--radius-control)",background:C?"var(--bg-selected)":"none",color:C?"var(--accent)":E?"var(--text-muted)":"var(--text-dim)",cursor:"pointer",fontFamily:"var(--font-mono)",fontSize:10.5,lineHeight:1,transition:"color var(--dur-fast) var(--ease-out-warm), background var(--dur-fast) var(--ease-out-warm)"},children:[(0,n.jsx)("span",{"aria-hidden":"true",style:{flexShrink:0,opacity:.7},children:"\xb7"}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:j})]}),(0,n.jsx)("div",{style:{flex:1}}),D&&(0,n.jsx)("span",{"aria-label":I("projects.activity",{running:a?.running??0,unread:a?.unread??0}),title:I("projects.activity",{running:a?.running??0,unread:a?.unread??0}),className:"sidebar-project-activity",role:"status","aria-live":"polite",style:{display:"flex",alignItems:"center",margin:"0 2px 0 0",flexShrink:0,lineHeight:0},children:(0,n.jsx)("span",{"aria-hidden":"true",style:{width:7,height:7,borderRadius:"50%",background:"var(--accent)",boxShadow:(a?.running??0)>0?"0 0 0 3px color-mix(in srgb, var(--accent) 13%, transparent)":"none"}})}),(0,n.jsxs)("div",{style:{flexShrink:0,visibility:B?"visible":"hidden"},children:[(0,n.jsx)("button",{type:"button",ref:N,className:"sidebar-project-action",onClick:()=>L(e=>!e),disabled:m,"aria-label":I("commandPalette.actions"),title:I("commandPalette.actions"),"aria-expanded":A,"aria-haspopup":"menu",style:{display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,padding:0,border:"none",borderRadius:"var(--radius-control)",background:A?"var(--bg-selected)":"transparent",color:"var(--text-dim)",cursor:m?"default":"pointer",opacity:m?.5:1,lineHeight:0,transition:eO},children:(0,n.jsx)(eM.A,{size:13,strokeWidth:2,"aria-hidden":"true"})}),(0,n.jsx)(eU,{anchor:N,open:A,onClose:()=>L(!1),placement:"below",minWidth:136,children:(0,n.jsx)("button",{type:"button",role:"menuitem",className:"sidebar-menu-item",disabled:m,onClick:()=>{L(!1),g(e.path)},style:{display:"block",width:"100%",padding:"6px 9px",border:"none",borderRadius:6,background:"transparent",color:"var(--status-error)",cursor:m?"default":"pointer",textAlign:"left",fontSize:11},children:I("projects.remove",{name:F})})})]}),(0,n.jsx)("button",{className:"sidebar-project-toggle",onClick:()=>f(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}),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:26,padding:0,flexShrink:0,background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",lineHeight:0,borderRadius:"var(--radius-control)",transition:"color var(--dur-fast) var(--ease-out-warm)"},children:(0,n.jsx)(v.A,{size:13,strokeWidth:1.8,style:{transform:r?"rotate(90deg)":"none",transition:"transform var(--dur-fast) var(--ease-out-warm)"},"aria-hidden":"true"})})]}),t&&k,r&&(0,n.jsx)("div",{className:"sidebar-project-sessions",style:{margin:"2px 0 0"},children:0===P.length?(0,n.jsx)("div",{style:{padding:"6px 12px 8px 34px",color:"var(--text-dim)",fontSize:11},children:I("projects.emptyProject")}):(0,n.jsxs)(n.Fragment,{children:[P.map(e=>(0,n.jsx)(eG,{node:e,selectedSessionId:l,runningSessionIds:c,unreadSessionIds:u,relativeTimeNow:p,onSelectSession:x,onRenamed:y,onSessionDeleted:w,depth:0},e.session.id)),s>0&&(0,n.jsxs)("button",{onClick:()=>$(e=>!e),"aria-expanded":z,style:{display:"flex",alignItems:"center",gap:5,width:"100%",margin:"2px 0 0",padding:"5px 8px 5px 34px",background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",textAlign:"left",fontSize:11,fontWeight:600,borderRadius:"var(--radius-control)",transition:eO},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)",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)(eW.A,{size:11,strokeWidth:1.8,style:{flexShrink:0,transform:z?"rotate(180deg)":"none",transition:"transform var(--dur-fast) var(--ease-out-warm)"},"aria-hidden":"true"}),z?I("projects.showLess"):I("projects.showMoreSessions",{count:s})]})]})})]})}function eJ({worktreeState:e,selectedCwd:t,homeDir:r,wtDropdownOpen:i,wtNewOpen:a,setWtNewOpen:o,wtNewBranch:s,setWtNewBranch:l,wtError:c,setWtError:u,wtBusy:p,wtConfirmRemove:h,setWtConfirmRemove:f,onSelectWorktree:g,onCreateWorktree:m,onRemoveWorktree:x,anchorRef:v,newInputRef:y,onClose:b}){let{t:w}=(0,d.s9)();return(0,n.jsxs)(eU,{anchor:v,open:i,onClose:b,placement:"below",align:"start",minWidth:240,style:{overflow:"hidden"},children:[(0,n.jsx)("div",{style:{maxHeight:"min(40vh, 300px)",overflowY:"auto"},children:e.worktrees.map(i=>{let a=i.path===t||i.isMain&&!e.worktrees.some(e=>e.path===t);return h===i.path?(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"7px 10px",borderBottom:"1px solid var(--border)",background:"color-mix(in srgb, var(--accent) 6%, transparent)"},children:[(0,n.jsx)("span",{style:{flex:1,fontSize:11,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:w("sessionSidebar.uncommittedForceRemove")}),(0,n.jsx)("button",{onClick:()=>x(i.path,!0),disabled:p,style:{padding:"3px 9px",background:"var(--accent-strong)",border:"none",borderRadius:"var(--radius-control)",color:"var(--on-accent)",fontSize:11,fontWeight:600,cursor:"pointer",flexShrink:0},children:w("sessionSidebar.force")}),(0,n.jsx)("button",{onClick:()=>f(null),style:{padding:"3px 9px",background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",color:"var(--text-muted)",fontSize:11,cursor:"pointer",flexShrink:0},children:w("sessionSidebar.cancel")})]},i.path):(0,n.jsxs)("div",{className:"wt-row",style:{display:"flex",alignItems:"center",borderBottom:"1px solid var(--border)"},children:[(0,n.jsxs)("button",{onClick:()=>g(i.path),"aria-pressed":a,title:i.path,style:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:7,padding:"8px 10px",background:"var(--bg)",border:"none",color:a?"var(--text)":"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11,fontFamily:"var(--font-mono)"},children:[a?(0,n.jsx)(C.A,{size:10,strokeWidth:2,style:{flexShrink:0,color:"var(--accent)"},"aria-hidden":"true"}):(0,n.jsx)("span",{style:{width:10,flexShrink:0}}),(0,n.jsx)(eB,{text:i.branch??eD(i.path,r),style:{flex:1}}),i.isMain&&(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:10},children:w("sessionSidebar.mainBadge")})]}),!i.isMain&&(0,n.jsx)("button",{onClick:()=>x(i.path,!1),disabled:p,title:w("sessionSidebar.removeWorktreeTitle",{path:i.path}),style:{display:"flex",alignItems:"center",justifyContent:"center",width:34,height:28,padding:0,marginRight:4,background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",borderRadius:"var(--radius-control)",flexShrink:0,transition:"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.background="color-mix(in srgb, var(--accent) 8%, transparent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:(0,n.jsx)(ez.A,{size:12,strokeWidth:2,"aria-hidden":"true"})})]},i.path)})}),a?(0,n.jsxs)("div",{style:{padding:"6px 8px"},children:[(0,n.jsx)("input",{ref:y,value:s,onChange:e=>{l(e.target.value),u(null)},onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),m()),"Escape"===e.key&&(o(!1),l(""),u(null))},placeholder:w("sessionSidebar.branchNamePlaceholder"),style:{width:"100%",fontSize:11,fontFamily:"var(--font-mono)",padding:"5px 8px",border:"1px solid var(--accent)",borderRadius:"var(--radius-control)",outline:"none",background:"var(--bg)",color:"var(--text)",boxSizing:"border-box"}}),(0,n.jsxs)("div",{style:{display:"flex",gap:5,marginTop:5},children:[(0,n.jsx)("button",{onClick:m,disabled:p||!s.trim(),style:{flex:1,padding:"4px 0",background:"var(--accent-strong)",border:"none",borderRadius:"var(--radius-control)",color:"var(--on-accent)",fontSize:11,fontWeight:600,cursor:p||!s.trim()?"not-allowed":"pointer",opacity:p||!s.trim()?.65:1},children:p?w("sessionSidebar.creating"):w("sessionSidebar.create")}),(0,n.jsx)("button",{onClick:()=>{o(!1),l(""),u(null)},style:{flex:1,padding:"4px 0",background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",color:"var(--text-muted)",fontSize:11,cursor:"pointer"},children:w("sessionSidebar.cancel")})]})]}):(0,n.jsxs)("button",{onClick:e=>{e.stopPropagation(),o(!0),u(null),setTimeout(()=>y.current?.focus(),0)},title:w("sessionSidebar.newWorktreeTitle"),style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"8px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11},children:[(0,n.jsx)(eC.A,{size:12,strokeWidth:1.8,style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{children:w("sessionSidebar.newWorktree")})]}),c&&(0,n.jsx)("div",{style:{padding:"5px 10px 8px",color:"var(--accent)",fontSize:11,lineHeight:1.35,overflowWrap:"anywhere"},children:c})]})}let eG=(0,i.memo)(function e({node:t,selectedSessionId:r,runningSessionIds:a,unreadSessionIds:o,relativeTimeNow:s,onSelectSession:l,onRenamed:d,onSessionDeleted:c,depth:u}){let[p,h]=(0,i.useState)(!1),f=t.children.length>0,g=t.session.id,m=g===r,x=a.has(g),v=o.has(g),y=(0,i.useCallback)(()=>{l(t.session)},[l,t.session]),b=(0,i.useCallback)(e=>{c?.(e)},[c]),w=(0,i.useCallback)(()=>{h(e=>!e)},[]);return(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:{position:"relative"},children:[u>0&&(0,n.jsx)("div",{style:{position:"absolute",left:14*u+22,top:0,bottom:0,width:1,background:"var(--border)",pointerEvents:"none"}}),(0,n.jsx)(e0,{session:t.session,isSelected:m,isRunning:x,isUnread:v,relativeTimeNow:s,onClick:y,onRenamed:d,onDeleted:b,depth:u,hasChildren:f,collapsed:p,onToggleCollapse:w})]}),f&&!p&&(0,n.jsx)("div",{children:t.children.map(t=>(0,n.jsx)(e,{node:t,selectedSessionId:r,runningSessionIds:a,unreadSessionIds:o,relativeTimeNow:s,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 eX({size:e=14}){let{t}=(0,d.s9)(),r=eg();return(0,n.jsx)("span",{title:t("sessionSidebar.agentRunning"),"aria-label":t("sessionSidebar.agentRunningAria"),style:{width:e,height:e,display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:"var(--accent)"},children:(0,n.jsx)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",style:{display:"block"},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 eQ({size:e=14}){let{t}=(0,d.s9)(),r=eg();return(0,n.jsx)("span",{title:t("sessionSidebar.newActivity"),"aria-label":t("sessionSidebar.newSessionActivity"),style:{width:e,height:e,display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:"var(--accent)"},children:(0,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none","aria-hidden":"true",style:{display:"block"},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 e0=(0,i.memo)(function({session:e,isSelected:t,isRunning:r,isUnread:a,onClick:o,onRenamed:s,onDeleted:l,depth:c=0,hasChildren:u=!1,collapsed:p=!1,relativeTimeNow:h,onToggleCollapse:f}){let{t:g,locale:m}=(0,d.s9)(),[x,v]=(0,i.useState)(!1),[y,b]=(0,i.useState)(!1),[w,k]=(0,i.useState)(!1),[j,S]=(0,i.useState)(""),C=(0,i.useRef)(!1),[T,I]=(0,i.useState)(!1),[E,R]=(0,i.useState)(!1),[M,W]=(0,i.useState)(!1),[z,$]=(0,i.useState)(!1),A=(0,i.useRef)(null),L=(0,i.useRef)(null),N=(0,i.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 i=Math.max(0,Math.floor((r-n)/6e4)),a=new Intl.RelativeTimeFormat(t,{numeric:"auto",style:"narrow"});if(i<1)return a.format(0,"minute");if(i<60)return a.format(-i,"minute");let o=Math.floor(i/60);return o<24?a.format(-o,"hour"):a.format(-Math.floor(o/24),"day")}(e.modified,m,h),P=T||E,B=(0,i.useCallback)(t=>{t.stopPropagation(),S(e.name??""),k(!0),setTimeout(()=>A.current?.select(),0)},[e.name]),O=(0,i.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");s?.()}catch{}},[j,e.id,e.name,s]),H=(0,i.useCallback)(async()=>{I(!1),$(!0);try{if(!(await fetch(`/api/sessions/${encodeURIComponent(e.id)}/archive`,{method:"POST"})).ok)throw Error("Session archive failed");l?.(e.id)}catch{$(!1),ef.oR.error((0,d.Tl)("sessionSidebar.archiveFailed"))}},[e.id,l]),U=(0,i.useCallback)(async()=>{R(!1),$(!0);try{if(!(await fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"DELETE"})).ok)throw Error("Session deletion failed");l?.(e.id)}catch{$(!1),ef.oR.error((0,d.Tl)("sessionSidebar.deleteFailed"))}},[e.id,l]),_=(0,i.useCallback)(()=>{I(!1),R(!1),W(!1),requestAnimationFrame(()=>L.current?.focus())},[]);return(0,n.jsxs)("div",{onClick:T||E||w?void 0:o,onMouseEnter:()=>v(!0),onMouseLeave:()=>v(!1),onFocus:()=>b(!0),onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||b(!1)},onKeyDown:e=>{(T||E||M)&&"Escape"===e.key&&(e.stopPropagation(),_())},style:{height:P?34:30,display:"flex",alignItems:"center",gap:6,width:"100%",margin:"1px 0",padding:`0 8px 0 ${30+14*c}px`,position:"relative",overflow:"hidden",background:P?"color-mix(in srgb, var(--accent) 6%, transparent)":t?"color-mix(in srgb, var(--bg-selected) 70%, transparent)":x?"var(--bg-hover)":"transparent",opacity:z?.5:1,cursor:P||w?"default":"pointer",transition:"background var(--dur-fast) var(--ease-out-warm), opacity var(--dur-fast) var(--ease-out-warm)"},children:[(t||P)&&(0,n.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",left:20+14*c,top:0,bottom:0,width:2,borderRadius:1,background:"var(--accent)",pointerEvents:"none"}}),P?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12,color:"var(--text)"},children:g(T?"sessionSidebar.archiveConfirm":"sessionSidebar.deleteConfirm",{title:F.length>22?`${F.slice(0,22)}…`:F})}),(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),T?H():U()},style:{height:28,padding:"0 10px",border:"none",borderRadius:"var(--radius-control)",background:"var(--accent-strong)",color:"var(--on-accent)",cursor:"pointer",fontSize:11,fontWeight:600},children:g(T?"sessionSidebar.archive":"sessionSidebar.delete")}),(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),_()},autoFocus:!0,style:{height:28,padding:"0 10px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg)",color:"var(--text-muted)",cursor:"pointer",fontSize:11},children:g("sessionSidebar.cancel")})]}):w?(0,n.jsx)("input",{ref:A,autoFocus:!0,"aria-label":g("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))},style:{flex:1,height:25,padding:"3px 7px",border:"1px solid var(--accent)",borderRadius:"var(--radius-control)",outline:"none",background:"var(--bg)",color:"var(--text)",fontSize:12}}):(0,n.jsxs)(n.Fragment,{children:[c>0&&(0,n.jsx)(e$.A,{size:11,strokeWidth:2,style:{flexShrink:0,color:"var(--text-dim)"},"aria-hidden":"true"}),(0,n.jsx)("button",{ref:L,type:"button",className:"session-item-button","aria-current":t?"true":void 0,onKeyDown:e=>{"Delete"===e.key&&(e.preventDefault(),R(!0))},style:{display:"flex",alignItems:"center",flex:1,minWidth:0},children:(0,n.jsx)("span",{title:F,style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text)",fontSize:12.5,fontWeight:t?600:500,lineHeight:1.35,letterSpacing:"-0.005em"},children:F})}),e.worktreeBranch&&(0,n.jsxs)("span",{title:g("sessionSidebar.worktreeTitle",{path:e.cwd}),style:{display:"flex",alignItems:"center",gap:3,maxWidth:56,minWidth:0,overflow:"hidden",color:"var(--text-dim)",fontSize:10,flexShrink:1},children:[(0,n.jsx)(e$.A,{size:10,strokeWidth:2.4,"aria-hidden":"true"}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.worktreeBranch})]}),r&&(0,n.jsx)(eX,{size:12}),!r&&a&&(0,n.jsx)(eQ,{size:11}),D&&(0,n.jsx)("span",{title:new Date(e.modified).toLocaleString(m),style:{flexShrink:0,minWidth:30,textAlign:"right",color:t?"var(--accent)":"var(--text-dim)",fontSize:10,fontVariantNumeric:"tabular-nums"},children:D}),u&&(0,n.jsx)("button",{className:"session-item-icon-button",onClick:e=>{e.stopPropagation(),f?.()},title:g(p?"sessionSidebar.expandForks":"sessionSidebar.collapseForks"),"aria-label":g(p?"sessionSidebar.expandForks":"sessionSidebar.collapseForks"),"aria-expanded":!p,style:{display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,padding:0,flexShrink:0,border:"none",background:"none",color:"var(--text-dim)",cursor:"pointer",transform:p?"rotate(-90deg)":"none",transition:"transform var(--dur-fast) var(--ease-out-warm)"},children:(0,n.jsx)(eW.A,{size:12,strokeWidth:1.8,"aria-hidden":"true"})}),(0,n.jsxs)("div",{style:{position:"relative",flexShrink:0,visibility:x||y||M?"visible":"hidden"},children:[(0,n.jsx)("button",{type:"button",ref:N,className:"session-item-icon-button",onClick:e=>{e.stopPropagation(),W(e=>!e)},title:"Session actions","aria-label":"Session actions","aria-expanded":M,style:{display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,padding:0,lineHeight:0,border:"none",borderRadius:"var(--radius-control)",background:M?"var(--bg-selected)":"transparent",color:M?"var(--text)":"var(--text-dim)",cursor:"pointer"},children:(0,n.jsx)(eM.A,{size:14,strokeWidth:2,"aria-hidden":"true"})}),(0,n.jsxs)(eU,{anchor:N,open:M,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:g(u?"sessionSidebar.archiveLeafOnly":"sessionSidebar.archive"),style:{display:"block",width:"100%",padding:"6px 9px",border:"none",borderRadius:6,background:"transparent",color:u?"var(--text-dim)":"var(--text-muted)",cursor:u?"not-allowed":"pointer",textAlign:"left",fontSize:11,opacity:u?.55:1},children:g("sessionSidebar.archive")}),(0,n.jsx)("button",{type:"button",role:"menuitem",className:"sidebar-menu-item",onClick:e=>{B(e),W(!1)},style:{display:"block",width:"100%",padding:"6px 9px",border:"none",borderRadius:6,background:"transparent",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11},children:g("sessionSidebar.rename")}),(0,n.jsx)("button",{type:"button",role:"menuitem",className:"sidebar-menu-item",onClick:e=>{e.stopPropagation(),W(!1),R(!0)},style:{display:"block",width:"100%",padding:"6px 9px",border:"none",borderRadius:6,background:"transparent",color:"var(--status-error)",cursor:"pointer",textAlign:"left",fontSize:11},children:g("sessionSidebar.delete")})]})]})]})]})});function e1(e,t={}){return"thinking"===e.type&&!e.deferred&&!t.isStreaming&&""===e.thinking.trim()}function e2(e,t={}){return(e.content??[]).filter(e=>!e1(e,t))}function e5(e,t={}){let r=e2(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 e4(e){return e.filter(e=>"toolCall"===e.type).length}var e6=r(99314),e3=r(66958),e8=r(72788),e9=r(5045),e7=r(32316),te=r(19870),tt=r(68925),tr=r(94309);function tn({src:e,alt:t,...r}){let{t:a}=(0,d.s9)(),[o,s]=(0,i.useState)(!1),[c,u]=(0,i.useState)(null);(0,i.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(),s(!0)},"aria-label":t?a("imagePreview.openWithAlt",{alt:t}):a("imagePreview.open"),title:t?a("imagePreview.openWithAlt",{alt:t}):a("imagePreview.open"),children:(0,n.jsx)("img",{src:p,alt:t??"",loading:"lazy",...r})}),o&&(0,l.createPortal)((0,n.jsx)(ti,{src:p,alt:t??"",onClose:()=>s(!1)}),document.body)]}):null}function ti({src:e,alt:t,onClose:r}){let a=(0,i.useRef)(null),[o,s]=(0,i.useState)(1),{t:l}=(0,d.s9)();return(0,i.useEffect)(()=>{let e=a.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:a,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:()=>s(e=>Math.max(.25,e-.25)),disabled:o<=.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*o),"%"]}),(0,n.jsx)("button",{type:"button",onClick:()=>s(e=>Math.min(8,e+.25)),disabled:o>=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:()=>s(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(${o})`}})})]})})}function ta({children:e,className:t,isStreaming:r,cwd:a,onOpenFile:o}){let s=(0,i.useMemo)(()=>(0,tt.Ep)(e),[e]),{remarkPlugins:l,rehypePlugins:d}=(0,tt.T6)(s),c=(0,i.useMemo)(()=>{let e=({src:e,alt:t,...r})=>{delete r.node;let i="string"==typeof e?(0,te.V)(e,a):null,o=i?`/api/files/${(0,eo.HG)(i)}?type=read`:e;return(0,n.jsx)(tn,{src:o,alt:t??"",loading:"lazy",...r})},t=e=>(0,i.isValidElement)(e),s=r=>{let n=[],a=[];for(let o of i.Children.toArray(r)){if(!t(o)){n.push(o);continue}if(o.type===e){a.push(o);continue}let r=s(o.props.children);0===r.imageParts.length?n.push(o):0===r.textParts.length?a.push(o):(n.push((0,i.cloneElement)(o,void 0,r.textParts)),a.push(...r.imageParts))}return{textParts:n,imageParts:a}},l=e=>e.some(e=>"string"==typeof e?e.trim().length>0:"number"==typeof e||!!t(e)&&l(i.Children.toArray(e.props.children)));return{code:(0,tr.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:i,imageParts:d}=s(t);if(d.length>0&&!l(i))return(0,n.jsx)(n.Fragment,{children:t});let c=o?(0,te.V)(e,a):null;if(c&&o){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(),o(c))},children:i});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:i});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,a,o]);return(0,n.jsx)("div",{className:["markdown-body",t].filter(Boolean).join(" "),children:(0,n.jsx)(e7.oz,{remarkPlugins:l,rehypePlugins:d,components:c,children:s})})}let to=/<(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 tl=r(82490),td=r(6014),tc=r(64962),tu=r(79762),tp=r(67401);function th({status:e,live:t}){let r={size:12,strokeWidth:2,"aria-hidden":!0};return"completed"===e?(0,n.jsx)(tc.A,{...r,color:"var(--accent)"}):"failed"===e?(0,n.jsx)(E.A,{...r,color:"var(--accent-strong)"}):"aborted"===e?(0,n.jsx)(tu.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)(tp.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 tf(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 tg(e){return null==e||!Number.isFinite(e)||e<=0?null:`$${e.toFixed(e<.01?4:2)}`}function tm(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 tx(e){if(!e)return null;let t=e.lastIndexOf("/");return(t>=0?e.slice(t+1):e).replace(/:.*$/,"")||null}let tv=new Map;function ty({children:e,className:t,...r}){let{t:a}=(0,d.s9)(),[o,s]=(0,i.useState)(!1);if(e.length<=1e5)return(0,n.jsx)(ta,{className:t,...r,children:e});if(!o){var l;return(0,n.jsx)("button",{type:"button",onClick:()=>s(!0),style:{display:"block",width:"100%",margin:"4px 0",padding:"7px 10px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left"},children:a("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:12,lineHeight:1.5},children:(0,n.jsx)("pre",{style:{margin:0,padding:"8px 10px",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,i=r.getFullYear()===n.getFullYear()&&r.getMonth()===n.getMonth()&&r.getDate()===n.getDate(),a=r.toLocaleTimeString(t,{hour:"2-digit",minute:"2-digit"});if(i)return a;let o=r.toLocaleDateString(t,{month:"short",day:"numeric",year:r.getFullYear()!==n.getFullYear()?"numeric":void 0});return`${o} ${a}`}let tw=(0,i.memo)(function({message:e,isStreaming:t,toolResults:r,modelNames:i,cwd:a,onOpenFile:o,entryId:s,onFork:l,forking:d,onNavigate:c,prevAssistantEntryId:u,onEditContent:p,showTimestamp:h,prevTimestamp:f,sessionId:g,toolCallsDefaultCollapsed:m=!0}){return"user"===e.role?(0,n.jsx)(tk,{message:e,cwd:a,onOpenFile:o,entryId:s,onFork:l,forking:d,onNavigate:c,prevAssistantEntryId:u,onEditContent:p}):"assistant"===e.role?(0,n.jsx)(tj,{message:e,isStreaming:t,toolResults:r,modelNames:i,cwd:a,onOpenFile:o,showTimestamp:h,prevTimestamp:f,sessionId:g,entryId:s,toolCallsDefaultCollapsed:m}):"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:a,onOpenFile:o}):"bashExecution"===e.role?(0,n.jsx)(t_,{message:e,sessionId:g}):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:a,onFork:o,forking:s,onNavigate:l,prevAssistantEntryId:c,onEditContent:u}){let{t:p,locale:h}=(0,d.s9)(),[f,g]=(0,i.useState)(!1),[m,x]=(0,i.useState)(!1),{copied:v,copy:y}=(0,td.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=!!a&&!!o,S=!!c&&!!l;return(0,n.jsx)("div",{style:{marginBottom:18,display:"flex",flexDirection:"column",alignItems:"flex-end",paddingRight:6},onMouseEnter:()=>g(!0),onMouseLeave:()=>g(!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:"8px 12px",fontSize:14,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:6,flexWrap:"wrap",marginBottom:8*!!b},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)(tn,{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:6,marginTop:3,width:"100%"},children:[(0,n.jsx)("div",{style:{display:"flex",gap:3,opacity:f||m?1:0,pointerEvents:f||m?"auto":"none",transition:"opacity var(--dur-fast) var(--ease-out-warm)"},onFocusCapture:()=>x(!0),onBlurCapture:()=>x(!1),children:(0,n.jsx)(ea.m_,{content:p("messageView.copyMessage"),children:(0,n.jsxs)("button",{onClick:()=>y(b),"aria-label":p("messageView.copyMessage"),style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:24,minHeight:24,background:"none",border:"none",borderRadius:5,color:v?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:11,fontWeight:400,whiteSpace:"nowrap",transition:"color var(--dur-fast) var(--ease-out-warm)"},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)(e6.A,{size:11,strokeWidth:1.8}),p(v?"messageView.copied":"messageView.copy")]})})}),(j||S)&&(0,n.jsxs)("div",{style:{display:"flex",gap:3,opacity:f||m||s?1:0,pointerEvents:f||m||s?"auto":"none",transition:"opacity var(--dur-fast) var(--ease-out-warm)"},onFocusCapture:()=>x(!0),onBlurCapture:()=>x(!1),children:[S&&(0,n.jsx)(ea.m_,{content:p("messageView.editFromHereTitle"),children:(0,n.jsxs)("button",{onClick:()=>{l(c),u?.(b)},"aria-label":p("messageView.editFromHereTitle"),style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:24,minHeight:24,background:"none",border:"none",borderRadius:5,color:"var(--text-dim)",cursor:"pointer",fontSize:11,fontWeight:400,whiteSpace:"nowrap",transition:"color var(--dur-fast) var(--ease-out-warm)"},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)(ea.m_,{content:p(s?"messageView.creatingSession":"messageView.newSessionTitle"),children:(0,n.jsxs)("button",{onClick:()=>{o(a)},disabled:s,"aria-label":p(s?"messageView.creatingSession":"messageView.newSessionTitle"),style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:24,minHeight:24,background:"none",border:"none",borderRadius:5,color:s?"var(--accent)":"var(--text-dim)",cursor:s?"not-allowed":"pointer",fontSize:11,fontWeight:400,whiteSpace:"nowrap",transition:"color var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{s||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{s||(e.currentTarget.style.color="var(--text-dim)")},children:[(0,n.jsx)(e8.A,{size:11,strokeWidth:1.8}),p(s?"messageView.creating":"messageView.newSession")]})})]}),k&&(0,n.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)"},children:k})]})]})})}function tj({message:e,isStreaming:t,toolResults:r,modelNames:a,cwd:o,onOpenFile:s,showTimestamp:l,prevTimestamp:c,sessionId:u,entryId:p,toolCallsDefaultCollapsed:h}){var f,g,m;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})=>!e1(e,{isStreaming:t})),k=w.map(({block:e})=>e),[j,S]=(0,i.useState)(!1),[T,I]=(0,i.useState)(!1),{copied:E,copy:R}=(0,td.q)(),M=(0,i.useRef)(null),[W,z]=(0,i.useState)(null),$=(0,i.useRef)(w);$.current=w;let A=(0,i.useRef)(new Map),[L,N]=(0,i.useState)(new Map),F=(0,i.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,i.useMemo)(()=>{let t=new Map;if(!r||!e.timestamp)return t;for(let[n,i]of r)if(i.timestamp&&e.timestamp){let r=Math.round((i.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,i.useEffect)(()=>{if(!t){let e=new Date().getTime();N(t=>{let r=new Map(t);for(let[t,n]of A.current)r.has(t)||r.set(t,Math.round((e-n)/1e3));return r}),M.current=null,z(null);return}let e=setInterval(()=>{let e=$.current,t=e.map(({block:e})=>e),r=Date.now();e.forEach(({originalIndex:e})=>{A.current.has(e)||A.current.set(e,r)}),N(t=>{let n=!1,i=new Map(t);for(let t=0;t<e.length-1;t++){let a=e[t].originalIndex,o=e[t+1].originalIndex;if(!i.has(a)&&A.current.has(a)){let e=A.current.get(a),t=A.current.get(o)??r;i.set(a,Math.round((t-e)/1e3)),n=!0}}return n?i: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===M.current&&(M.current=r);let i=(r-M.current)/1e3;i>.5&&z(n/4/i)},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:11,color:"var(--text-dim)",marginBottom:4,display:"flex",alignItems:"center",gap:6},children:[e.provider&&(0,n.jsx)("span",{children:a?.[`${e.provider}:${e.model}`]??a?.[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 i=Math.round(r/4);return(0,n.jsx)(n.Fragment,{children:i>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,color:"var(--text)"},title:v("messageView.estimatedTokens"),children:[(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:2,fontSize:11,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"})]}),i]}),null!==W&&(e=W>=50?"success":W>=30?"renamed":W>=15?"warning":"error",t=`var(--status-${e})`,(0,n.jsx)("span",{style:{marginLeft:6,padding:"1px 6px",borderRadius:4,background:`color-mix(in srgb, ${t} 14%, var(--bg-panel))`,color:t,fontSize:11,fontWeight:400},children:v("messageView.tokensPerSecond",{tps:W.toFixed(1)})}))]})})})()]}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:w.map(({block:e,originalIndex:i})=>(0,n.jsx)(tS,{block:e,toolResults:r,isStreaming:t,streamingDuration:L.get(i)??("thinking"===e.type?F:void 0),toolCallDurations:D,cwd:o,onOpenFile:s,sessionId:u,entryId:p,blockIndex:i,toolCallsDefaultCollapsed:h},`${p??"stream"}-${i}`))}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:4},children:[e.usage&&!t&&(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)"},children:(f=e.usage,g=v,m=y,x=[],f.input&&x.push(g("messageView.usageInput",{tokens:f.input.toLocaleString(m)})),f.output&&x.push(g("messageView.usageOutput",{tokens:f.output.toLocaleString(m)})),f.cacheRead&&x.push(g("messageView.usageCacheRead",{tokens:f.cacheRead.toLocaleString(m)})),f.cacheWrite&&x.push(g("messageView.usageCacheWrite",{tokens:f.cacheWrite.toLocaleString(m)})),f.cost?.total&&x.push(`$${f.cost.total.toFixed(4)}`),x.join(" \xb7 "))}),P&&!t&&(0,n.jsx)(ea.m_,{content:v("messageView.copyMessage"),children:(0,n.jsxs)("button",{onClick:()=>R(P),"aria-label":v("messageView.copyMessage"),style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:24,minHeight:24,background:"none",border:"none",borderRadius:5,color:E?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:11,fontWeight:400,whiteSpace:"nowrap",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)(e6.A,{size:11,strokeWidth:1.8}),E?v("messageView.copied"):v("messageView.copy")]})}),b&&!t&&(0,n.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",marginLeft:"auto"},children:b})]})]})}function tS({block:e,toolResults:t,isStreaming:r,streamingDuration:i,toolCallDurations:a,cwd:o,onOpenFile:s,sessionId:l,entryId:d,blockIndex:c,toolCallsDefaultCollapsed:u}){if("text"===e.type)return(0,n.jsx)(tC,{block:e,isStreaming:r,cwd:o,onOpenFile:s});if("thinking"===e.type)return(0,n.jsx)(tT,{block:e,duration:i,sessionId:l,entryId:d,blockIndex:c});if("toolCall"===e.type){let i=t?.get(e.toolCallId),o=a?.get(e.toolCallId);return(0,n.jsx)(tI,{block:e,result:i,duration:o,isStreaming:r,defaultCollapsed:u})}return null}let tC=(0,i.memo)(function({block:e,isStreaming:t,cwd:r,onOpenFile:i}){return(0,n.jsx)(ty,{isStreaming:t,cwd:r,onOpenFile:i,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,i.memo)(function({block:e,duration:t,sessionId:r,entryId:a,blockIndex:o}){let{t:s}=(0,d.s9)(),[l,c]=(0,i.useState)(!1),[u,p]=(0,i.useState)(null),[h,f]=(0,i.useState)(!1),[g,m]=(0,i.useState)(null);return(0,n.jsx)("div",{style:{border:"1px solid var(--border)",borderRadius:6,overflow:"hidden",fontSize:13},children:(0,n.jsxs)(ea.Nt,{open:l,onOpenChange:t=>{if(c(t),t&&e.deferred&&null===u){if(!r||!a)return void m(s("messageView.thinkingUnavailable"));f(!0),m(null),(function(e,t,r){let n=`${e}:${t}:${r}`,i=tv.get(n);if(i)return tv.delete(n),tv.set(n,i),i;let a=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 tv.delete(n),e});if(tv.set(n,a),tv.size>100){let e=tv.keys().next().value;e&&tv.delete(e)}return a})(r,a,o).then(e=>p(e)).catch(e=>m(e instanceof Error?e.message:String(e))).finally(()=>f(!1))}},children:[(0,n.jsxs)(ea.R6,{style:{display:"flex",alignItems:"center",gap:6,width:"100%",padding:"6px 10px",background:"var(--bg-panel)",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:12,fontWeight:400,textAlign:"left"},children:[(0,n.jsx)(e9.A,{size:11,strokeWidth:1.8,style:{flexShrink:0}}),(0,n.jsx)("span",{children:s("messageView.thinking")}),void 0!==t&&(0,n.jsx)("span",{style:{marginLeft:"auto",fontSize:11,color:"var(--text-dim)",fontVariantNumeric:"tabular-nums"},children:s("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)(ea.je,{style:{padding:"8px 10px",color:g?"var(--status-error)":"var(--text-muted)",fontSize:12,lineHeight:1.6,whiteSpace:"pre-wrap",background:"var(--bg-panel)",borderTop:"1px solid var(--border)"},children:h?s("messageView.loadingThinking"):g??(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,i.memo)(function({block:e,result:t,duration:r,isStreaming:a,defaultCollapsed:o=!0}){let s,{t:l}=(0,d.s9)(),[c,u]=(0,i.useState)(!!a&&!o),p="edit"===(s=e.toolName.toLowerCase())||"apply_patch"===s||s.includes("apply_patch")||s.startsWith("edit_")||s.endsWith(".edit")||s.endsWith("_edit")||s.includes("str_replace")||s.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,f=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,g=null!==f&&("(no output)"===f.trim()||""===f.trim()),m=t?.isError??!1;return(0,n.jsx)("div",{style:{borderRadius:7,overflow:"hidden",fontSize:12,border:m?"1px solid color-mix(in srgb, var(--status-error) 45%, transparent)":"1px solid color-mix(in srgb, var(--status-success) 25%, transparent)",background:m?"color-mix(in srgb, var(--status-error) 5%, transparent)":"color-mix(in srgb, var(--status-success) 4%, transparent)"},children:(0,n.jsxs)(ea.Nt,{open:c,onOpenChange:u,children:[(0,n.jsxs)(ea.R6,{style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"6px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:12,fontWeight:400,textAlign:"left",minWidth:0},children:[(0,n.jsx)("span",{style:{color:m?"var(--status-error)":"var(--status-success)",fontFamily:"var(--font-mono)",fontWeight:600,fontSize:11,flexShrink:0},children:e.toolName}),(0,n.jsx)("span",{style:{color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:11,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:11,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:"8px 10px",color:"var(--text-muted)",fontSize:12,lineHeight:1.5,overflow:"auto",backgroundColor:"var(--bg-subtle)",borderTop:m?"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)(tM,{diff:h}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(tR,{details:t.details}),(0,n.jsx)(tN,{text:f??"",isEmpty:g,isError:m})]}))]})})},(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)(th,{status:e})}function tR({details:e}){let{t,tn:r}=(0,d.s9)();if(!tL(e))return null;let i=(Array.isArray(e.results)?e.results:[]).filter(tL),a=(Array.isArray(e.progress)?e.progress:[]).filter(tL),o=tL(e.async)?e.async:null;if(0===i.length&&0===a.length&&!o)return null;let s=i.length>0?i:a.length>0?a:o&&"string"==typeof o.jobId?[{id:o.jobId,agent:"task",status:"started",task:o.jobId}]:[],l=s.reduce((e,t)=>e+("number"==typeof t.tokens?t.tokens:0),0),c=s.reduce((e,t)=>e+("number"==typeof t.cost?t.cost:0),0),u="number"==typeof e.totalDurationMs?e.totalDurationMs:void 0,p=tf(l),h=[r("chatWindow.subagentCount",s.length),p?t("chatWindow.tokensUnit",{count:p}):null,tg(c),tm(u)].filter(Boolean);return(0,n.jsxs)("div",{style:{borderTop:"1px solid var(--border)",background:"var(--bg-subtle)",padding:"8px 10px",display:"grid",gap:4},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,fontSize:11,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 ")}),o&&(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:10,color:"var(--text-dim)"},children:"⤴"})]}),s.map((e,r)=>{let i="string"==typeof e.id?e.id:`row-${r}`,a=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),o="string"==typeof e.task&&e.task?e.task:"string"==typeof e.assignment?e.assignment:null,s=tf("number"==typeof e.tokens?e.tokens:void 0),l=[s?t("chatWindow.tokensUnit",{count:s}):null,tg("number"==typeof e.cost?e.cost:void 0),"started"!==a?tm("number"==typeof e.durationMs?e.durationMs:void 0):null,tx("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.${a}`)}${o?` — ${o}`:""}`,style:{display:"flex",alignItems:"center",gap:6,minWidth:0,fontSize:11.5},children:[(0,n.jsx)(tE,{status:a}),(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:o??""}),l.length>0&&(0,n.jsx)("span",{style:{flexShrink:0,fontFamily:"var(--font-mono)",fontSize:10,color:"var(--text-dim)"},children:l.join(" \xb7 ")})]},i)})]})}function tM({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,i.useMemo)(()=>(0,tl.y)(e),[e]);if(!r)return(0,n.jsx)(tA,{text:e});let a=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:12,lineHeight:1.55},children:[a&&(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)(tz,{title:e.oldPath||t("messageView.diffBefore"),side:"left"}),(0,n.jsx)(tz,{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)(t$,{cell:e.left,side:"left"}),(0,n.jsx)(t$,{cell:e.right,side:"right"})]},t))})]},r))})}function tz({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 t$({cell:e,side:t}){let r="added"===e.type?"color-mix(in srgb, var(--status-success) 12%, transparent)":"removed"===e.type?"color-mix(in srgb, var(--status-error) 13%, transparent)":"empty"===e.type?"var(--bg-subtle)":"transparent",i="added"===e.type?"+":"removed"===e.type?"-":" ",a="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 6px",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:a,userSelect:"none",fontWeight:"context"===e.type||"empty"===e.type?400:700,flexShrink:0},children:i}),(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 tA({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:12,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?"color-mix(in srgb, var(--status-success) 12%, transparent)":"removed"===r?"color-mix(in srgb, var(--status-error) 13%, transparent)":"hunk"===r?"color-mix(in srgb, var(--accent) 12%, transparent)":"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 8px",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 10px",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 tN({text:e,isEmpty:t,isError:r}){let{t:i}=(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:"8px 10px",color:r?"var(--status-error)":t?"var(--text-dim)":"var(--text-muted)",fontSize:12,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?i("messageView.noOutput"):e})})}function tF({message:e}){let{t,locale:r}=(0,d.s9)(),a=tO(e.content),o=(0,i.useMemo)(()=>{let e,t,r,n,i;return e=[],t=[],r=a.match(ts),n=r?.[1]??"",i=r?.index===void 0?a:a.slice(0,r.index),n.replace(to,(r,n,i)=>{let a=i.split(/\r?\n/).map(e=>e.trim()).filter(Boolean);return"read-files"===n?e.push(...a):t.push(...a),""}),{body:i.trim(),readFiles:e,modifiedFiles:t}},[a]),s=tb(e.timestamp,r);return(0,n.jsx)("div",{style:{marginBottom:16},children:(0,n.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:8,overflow:"hidden",background:"var(--bg)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"7px 10px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)"},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,fontWeight:650},children:t("messageView.compactionLabel")}),s&&(0,n.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10},children:s})]}),(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:14,lineHeight:1.5},children:t("messageView.compactionDescription")}),o.body?(0,n.jsx)(ta,{className:"markdown-compaction-message",children:o.body}):(0,n.jsx)("span",{style:{color:"var(--text-dim)",fontSize:12},children:t("messageView.noSummary")}),(0,n.jsx)(tD,{readFiles:o.readFiles,modifiedFiles:o.modifiedFiles})]})]})})}function tD({readFiles:e,modifiedFiles:t}){let{t:r}=(0,d.s9)();if(0===e.length+t.length)return null;let i=[];return e.length>0&&i.push(r("messageView.filesReadCount",{count:e.length})),t.length>0&&i.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:i.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 a;let o,{t:s,locale:l}=(0,d.s9)(),c=!1===e.display,[u,p]=(0,i.useState)(!c),[h,f]=(0,i.useState)(!1),{copied:g,copy:m}=(0,td.q)(),x=tO(e.content),v="string"==typeof(a=e.content)?[]:a.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 i=t[e].match(/agent\s*`([^`]+)`/);if(i){r=i[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?s("messageView.advisorLabel"):tH(e.customType),C=tb(e.timestamp,l);return(0,n.jsx)("div",{style:{marginBottom:16},children:(0,n.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:8,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:8,padding:"7px 10px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",fontSize:12},children:[(0,n.jsx)("span",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",fontSize:11,fontWeight:650},children:w&&"irc:incoming"===e.customType?`← ${S}`:S}),c&&(0,n.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11},children:s("messageView.hiddenExtensionMessage")}),C&&(0,n.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10},children:C})]}),u?(0,n.jsxs)("div",{style:{padding:"6px 9px"},children:[v.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:8*!!j},children:v.map((e,t)=>{var r;let i=(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 i?(0,n.jsx)(tn,{src:i,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:12},children:s("messageView.noMessage")})]}):(0,n.jsx)("button",{onClick:()=>p(!0),style:{display:"block",width:"100%",padding:"8px 10px",border:"none",background:"transparent",color:"var(--text-dim)",cursor:"pointer",fontSize:12,textAlign:"left"},children:j?(o=j.replace(/\s+/g," ").trim())?o.length>140?`${o.slice(0,140)}...`:o:(0,d.Tl)("messageView.showExtensionMessage"):s("messageView.showExtensionMessage")}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"4px 9px",borderTop:"1px solid var(--border)",background:"var(--bg-subtle)"},children:[x||b?(0,n.jsx)("button",{onClick:()=>m(j||b),style:{padding:"3px 7px",border:"none",background:"none",color:g?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:11},children:s(g?"messageView.copied":"messageView.copy")}):null,(y||c)&&(0,n.jsx)("button",{onClick:()=>{c?p(e=>!e):f(e=>!e)},style:{marginLeft:"auto",padding:"3px 7px",border:"none",background:"none",color:"var(--text-dim)",cursor:"pointer",fontSize:11},children:s(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:12,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)(),[a,o]=(0,i.useState)(null),s=(0,i.useRef)(0);(0,i.useEffect)(()=>{s.current+=1,o(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},f=(0,i.useCallback)(async()=>{if(!e.fullOutputPath||!t||a?.phase==="ready")return;let r=s.current;o({phase:"loading"});try{let n=await fetch(`/api/agent/${encodeURIComponent(t)}/bash-output?path=${encodeURIComponent(e.fullOutputPath)}`),i=await n.json();if(s.current!==r)return;if(!n.ok||!i.success)throw Error(i.error??`HTTP ${n.status}`);o({phase:"ready",output:i.data?.output??""})}catch(e){if(s.current!==r)return;o({phase:"error",message:e instanceof Error?e.message:String(e)})}},[e.fullOutputPath,t,a?.phase]),g=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}),g&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,marginTop:6},children:[a?.phase!=="ready"&&(0,n.jsx)("button",{type:"button",disabled:a?.phase==="loading",onClick:()=>void f(),style:{padding:0,border:"none",background:"none",color:"var(--accent)",cursor:a?.phase==="loading"?"default":"pointer",fontSize:12,opacity:a?.phase==="loading"?.6:1,fontFamily:"inherit"},children:r(a?.phase==="loading"?"messageView.fullOutputLoading":"messageView.viewFullOutput")}),(0,n.jsx)("a",{href:g,download:!0,style:{color:"var(--text-dim)",fontSize:12,textDecoration:"none"},children:r("messageView.fullOutputDownload")})]}),a?.phase==="ready"&&(0,n.jsx)("div",{style:{maxHeight:420,overflow:"auto",marginTop:6,border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)"},children:(0,n.jsx)("pre",{style:{margin:0,padding:"8px 10px",whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"var(--font-mono)",fontSize:12,color:"var(--text-muted)"},children:a.output})}),a?.phase==="error"&&(0,n.jsx)("div",{style:{marginTop:6,fontSize:12,color:"var(--status-error)"},children:a.message})]})}var tV=r(17494),tK=r(8143),tq=r(86272),tZ=r(35893),tY=r(84111);let tJ=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=tJ.get(e);return t?tG(t):null}function tQ(e,t){t.value||0!==t.images.length||0!==t.files.length?tJ.set(e,tG(t)):tJ.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 i=(r[2]??"").trim();return n.requiresArgs&&!i?{kind:"usage-error",command:`/${n.name}`,argumentHintKey:n.argumentHintKey}:{kind:"expand",prompt:n.buildPrompt(i)}}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 t6(e){let t=0;for(let r=0;r<e.length;r++)"/"===e[r]&&t++;return t}function t3(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"],re=2*Math.PI*9.5;function rt(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 rr={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 rn(e,t){return"skill"===e.source&&t.has(e.name)}let ri=[...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"}],ra=new Set(ri.map(e=>e.name)),ro=["builtin","extension","prompt","skill","ompBuiltin"],rs={builtin:"chatInput.groupBuiltin",extension:"chatInput.groupExtensions",prompt:"chatInput.groupPrompts",skill:"chatInput.groupSkills",ompBuiltin:"chatInput.groupOmpBuiltin"},rl={builtin:0,extension:1,prompt:2,skill:3,ompBuiltin:4};function rd(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 rc(e){return{data:e.data,mimeType:e.mimeType}}function ru(e){return{...e,previewUrl:`data:${e.mimeType};base64,${e.data}`}}function rp(e){return(e??[]).filter(t5).slice(0,10).map(ru)}function rh(e){return{name:e.name,mimeType:e.mimeType,content:e.content,size:e.size}}function rf(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 rg(e){e.previewUrl.startsWith("blob:")&&URL.revokeObjectURL(e.previewUrl)}function rm({onClick:e,title:t,accent:r=!1,children:i}){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:i})}function rx({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 rv({goal:e,plan:t}){let r,a,o,{t:s}=(0,d.s9)(),[l,c]=(0,i.useState)(!1),[u,p]=(0,i.useState)(()=>Date.now());return((0,i.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:s(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:[s("chatInput.goalActive")," \xb7 ",(a=Math.floor((r=Math.max(0,Math.floor((u-e.startedAt)/6e4)))/60),o=r%60,a>0?`${a}h ${o}m`:`${o}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)(tK.A,{size:14,strokeWidth:2,style:{flexShrink:0,color:"var(--accent)"},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{fontWeight:600},children:s("chatInput.planningInProgress")}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-dim)"},children:t.objective})]})]}):null}let ry=(0,i.memo)((0,i.forwardRef)(function({onSend:e,onAbort:t,onSteer:r,onFollowUp:a,isStreaming:o,model:s,isAutoModelSelection:l,modelNames:c,modelList:u,modelError:p,modelsLoading:h,onModelChange:f,fastModeEnabled:g,fastModeActive:m,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:R=[],onAbortRetry:W,slashCommands:z,slashCommandsLoading:$,onLoadSlashCommands:A,onBuiltinCommand:L,onAudioUnlock:N,onPromptWithStreamingBehavior:F,contextUsage:D,onRemoveQueuedMessage:P,onPromoteQueuedToSteer:B,draftKey:O,cwd:H,activeGoal:U,activePlan:_,advisorEnabled:V},K){var q,Z;let Y,J,G,X,Q,ee,et,er,en=(0,t9.a)(),{t:ea,tn:eo,locale:es}=(0,d.s9)(),el=i.useMemo(()=>new Intl.Collator(es,{numeric:!0,sensitivity:"base"}),[es]),[ed,ec]=(0,i.useState)(()=>O?tX(O)?.value??"":""),[eu,ep]=(0,i.useState)(!1),[eh,eg]=(0,i.useState)(null),[em,ex]=(0,i.useState)(!1),[ev,ey]=(0,i.useState)(""),[eb,ew]=(0,i.useState)(()=>O?rp(tX(O)?.images):[]),[ek,ej]=(0,i.useState)(()=>O?rf(tX(O)?.files):[]),[eS,eC]=(0,i.useState)(null),eI=ed.trimStart(),eE=0===eb.length&&0===ek.length&&eI.startsWith("!"),eR=eE&&eI.startsWith("!!"),[eM,ez]=(0,i.useState)(!1),[e$,eA]=(0,i.useState)(0),[eL,eN]=(0,i.useState)(null),[eF,eD]=(0,i.useState)(!1),[eP,eB]=(0,i.useState)(0),[eO,eH]=(0,i.useState)(!1),[eU,e_]=(0,i.useState)(0),[eV,eK]=(0,i.useState)(null),[eq,eZ]=(0,i.useState)(!1),[eY,eJ]=(0,i.useState)(null),eG=(0,i.useRef)(null),eX=(0,i.useRef)(null),eQ=(0,i.useRef)(null),e0=(0,i.useRef)(null),e1=(0,i.useRef)(null),e2=(0,i.useRef)(null),e5=(0,i.useRef)(null),e4=(0,i.useRef)(!1),e6=(0,i.useRef)(0),e3=(0,i.useRef)(!1),e8=(0,i.useRef)([]),e9=(0,i.useRef)([]),e7=(0,i.useRef)([]),te=(0,i.useRef)(null),tt=(0,i.useRef)(null),tr=(0,i.useRef)(O),tn=(0,i.useRef)(ed),ti=(0,i.useRef)(eb),ta=(0,i.useRef)(ek),to=(0,i.useRef)(0),ts=(0,i.useRef)(0),tl=(0,i.useRef)(0);tn.current=ed,ti.current=eb,ta.current=ek,(0,i.useImperativeHandle)(K,()=>({insertIfEmpty(e){let t=eG.current;(t?t.value:ed).trim()||(ec(e),eN(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=eG.current,r=[e,t?t.value:ed].filter(e=>e.trim()).join("\n\n");ec(r),eN(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=eG.current;if(!t)return void ec(t=>t+(t?" ":"")+e);let r=t.selectionStart??t.value.length,n=t.selectionEnd??t.value.length,i=t.value.slice(0,r),a=t.value.slice(n),o=i.length>0&&!i.endsWith(" ")?" ":"";ec(i+o+e+a),eN(null),requestAnimationFrame(()=>{if(!t)return;let n=r+o.length+e.length;t.setSelectionRange(n,n),t.focus(),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`})},addFiles(e){tu(e)}}));let td=(0,i.useCallback)(async e=>{let t=Math.max(0,10-ti.current.length-ts.current),r=e.filter(e=>e.type.startsWith("image/")&&e.size<=0xa00000).slice(0,t);if(!r.length){e.length>0&&eC(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=to.current;ts.current+=r.length;let i=[];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)};i.push(r),t(r)},n.onerror=r,n.readAsDataURL(e)})));if(to.current!==n)return void e.forEach(rg);ew(t=>{let r=e.slice(0,Math.max(0,10-t.length));return e.slice(r.length).forEach(rg),[...t,...r]}),eC(null)}catch{i.forEach(rg),eC("One or more images could not be read. Try a different file.")}finally{ts.current-=r.length}},[]),tc=(0,i.useCallback)(async e=>{let t=Math.max(0,10-ta.current.length-tl.current),r=e.filter(e=>e.size<=262144).slice(0,t);if(!r.length){e.length>0&&eC(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=to.current;tl.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(to.current!==n)return;let t=e.filter(e=>!e.content.includes("\0")&&!e.content.includes("�")),i=r.length-t.length;ej(e=>[...e,...t.slice(0,Math.max(0,10-e.length))]),i>0?eC(`${i} file(s) skipped: binary or non-text files cannot be attached.`):eC(null)}catch{eC("One or more files could not be read. Try a different file.")}finally{tl.current-=r.length}},[]),tu=(0,i.useCallback)(e=>{if(o)return void eC("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/"));td(t),tc(r)},[o,td,tc]),tp=(0,i.useCallback)(e=>{ew(t=>{let r=[...t],[n]=r.splice(e,1);return n&&rg(n),r}),eC(null)},[]),th=(0,i.useCallback)(e=>{ej(t=>t.filter((t,r)=>r!==e)),eC(null)},[]),tf=(0,i.useCallback)(()=>{ew(e=>(e.forEach(rg),[]))},[]),tg=(0,i.useCallback)(()=>{ej([])},[]),tm=(0,i.useCallback)(()=>{var e;ec(""),eN(null),eH(!1),O&&tJ.delete(O),tr.current&&tr.current!==O&&(e=tr.current,tJ.delete(e)),tf(),tg(),to.current+=1,eG.current&&(eG.current.style.height="auto")},[tf,tg,O]);(0,i.useEffect)(()=>{O&&tr.current===O&&tQ(O,{value:ed,images:eb.map(rc),files:ek.map(rh)})},[eb,ek,O,ed]),(0,i.useEffect)(()=>{let e=tr.current;if(e===O)return;e&&tQ(e,{value:tn.current,images:ti.current.map(rc),files:ta.current.map(rh)});let t=O?tX(O):null;tr.current=O,ec(t?.value??""),eN(null),eH(!1),ew(e=>(e.forEach(rg),rp(t?.images))),ej(rf(t?.files))},[O]),(0,i.useEffect)(()=>{let e=eG.current;e&&(e.style.height="auto",ed&&(e.style.height=`${Math.min(e.scrollHeight,200)}px`))},[ed]),(0,i.useEffect)(()=>()=>{ti.current.forEach(rg)},[]);let tx=(0,i.useCallback)(async()=>{let t=ed.trim();if(!t&&!eb.length&&!ek.length||o)return;N?.();let r=function(e,t){if(0===t.length)return e;let r=t.map(e=>{var t,r;let n,i,a=(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
|
-
${a}${r=e.name,"md"===(i=r.toLowerCase().replace(/\\/g,"/").split("/").pop()?.split(".").pop()??"")||"markdown"===i||"mdx"===i?"markdown":"text"}
|
|
15
|
-
${e.content}
|
|
16
|
-
${a}`});return[e.trim(),...r].filter(Boolean).join("\n\n")}(t,ek);if(!eb.length&&!ek.length&&t.startsWith("/")&&L){let e=await L(t);if(e.handled){e.error||e.retainInput||tm();return}}e(r,eb.length?eb:void 0),tm()},[ed,eb,ek,o,L,e,tm,N]),tv=ed.startsWith("/")&&!/\s/.test(ed.slice(1))?ed.slice(1).toLowerCase():null,[ty,tb]=(0,i.useState)(()=>new Set);(0,i.useEffect)(()=>{if(null===tv||!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&&tb(new Set((e.skills??[]).flatMap(e=>e.disableModelInvocation&&e.name?[e.name]:[])))}).catch(()=>{}),()=>e.abort()},[H,tv]);let tw=i.useMemo(()=>ri.map(e=>({name:e.name,description:ea(e.descriptionKey),...e.argumentHintKey?{argumentHint:ea(e.argumentHintKey)}:{},source:"builtin"})),[ea]),tk=i.useMemo(()=>(z??[]).flatMap(e=>{let t=e.source;return ra.has(e.name)?[]:"builtin"===t||"ompBuiltin"===t?[{name:e.name,description:e.description,source:"ompBuiltin"}]:[e]}),[z]),tj=null===tv?[]:[...o?[]:tw,...tk].filter(e=>{let t=e.name.toLowerCase(),r=e.description?.toLowerCase()??"";return t.includes(tv)||r.includes(tv)}).sort((e,t)=>{let r=rd(e,tv)-rd(t,tv);if(0!==r)return r;let n=Number(rn(e,ty))-Number(rn(t,ty));return 0!==n?n:rl[e.source]-rl[t.source]||el.compare(e.name,t.name)}),tS=(()=>{let e=new Map;for(let t of ro)e.set(t,{source:t,items:[]});return tj.forEach((t,r)=>{e.get(t.source)?.items.push({command:t,index:r})}),ro.map(t=>e.get(t)).filter(e=>e.items.length>0)})(),tC=eo(tv?"chatInput.matchCount":"chatInput.commandCount",tj.length),tT=(0,i.useCallback)((e,t)=>{if(!H)return void eN(null);let r=t??e.length;eN(t4(e.slice(0,r)))},[H]),tI=eL?.query??null,tE=i.useMemo(()=>null!==tI&&eV&&eV.cwd===H?function(e,t,r=20){let n=t.toLowerCase();if(!n)return e.slice(0,r);let i=[];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:t3(t,r)&&(n=10);else{let e=r.lastIndexOf("/"),i=-1===e?r:r.slice(e+1);i===t?n=100:i.startsWith(t)?n=80:i.includes(t)?n=50:r.includes(t)?n=30:t3(t,r)&&(n=10)}return e.isDir&&n>0&&(n+=10),n}(t,n);e>0&&i.push({entry:t,score:e})}return i.sort((e,t)=>t.score-e.score||t6(e.entry.path)-t6(t.entry.path)||e.entry.path.localeCompare(t.entry.path)),i.slice(0,r).map(e=>e.entry)}(eV.entries,tI):[],[tI,eV,H]),tR=!!(tI&&eV?.truncated&&eV.cwd===H);(0,i.useEffect)(()=>{if(!tR||!H||!tI)return;let e=setTimeout(()=>{fetch(`/api/file-index?cwd=${encodeURIComponent(H)}&q=${encodeURIComponent(tI)}`).then(e=>{if(!e.ok)throw Error(`file search failed: ${e.status}`);return e.json()}).then(e=>eJ({cwd:H,query:tI,matches:e.matches??[]})).catch(()=>{})},150);return()=>clearTimeout(e)},[tR,tI,H]);let tM=tR&&null!==eY&&eY.cwd===H&&eY.query===tI,tW=tM?eY.matches:tE,tz=null===eL?null:`${eL.start}:${+!!eL.quoted}:${eL.query}`;(0,i.useEffect)(()=>{if(null===tz){eD(!1),eB(0);return}eD(!0),eB(0)},[tz]);let t$=null!==eL;(0,i.useEffect)(()=>{if(!t$||!H)return;let e=te.current;e&&e.cwd===H&&Date.now()-e.fetchedAt<1e4||tt.current===H||(tt.current=H,eZ(!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=>{eK({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)=>t6(e.path)-t6(t.path)||e.path.localeCompare(t.path)),r}(e.files??[]),truncated:!!e.truncated}),te.current={cwd:H,fetchedAt:Date.now()}}).catch(()=>{te.current=null}).finally(()=>{tt.current=null,eZ(!1)}))},[t$,H]);let tA=(0,i.useCallback)(e=>{if(!eL)return;let t=eG.current,r=t?.selectionStart??ed.length,n=ed.slice(0,eL.start),i=ed.slice(r);eL.quoted&&i.startsWith('"')&&(i=i.slice(1));let a=function(e,t,r=!1){let n=t?`${e}/`:e,i=r||n.includes(" ");if(t){let e=i?`@"${n}"`:`@${n}`;return{text:e,cursorOffset:i?e.length-1:e.length}}let a=i?`@"${n}" `:`@${n} `;return{text:a,cursorOffset:a.length}}(e.path,e.isDir,eL.quoted),o=n+a.text+i,s=n.length+a.cursorOffset;ec(o),eN(t4(o.slice(0,s))),requestAnimationFrame(()=>{let e=eG.current;e&&(e.focus(),e.setSelectionRange(s,s),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[eL,ed]);(0,i.useEffect)(()=>{eP>=tW.length&&eB(Math.max(0,tW.length-1))},[tW.length,eP]),(0,i.useEffect)(()=>{e9.current.length=tW.length},[tW.length]),(0,i.useEffect)(()=>{eF&&e9.current[eP]?.scrollIntoView({block:"nearest",inline:"nearest"})},[eP,eF]),(0,i.useEffect)(()=>{eU>=R.length&&e_(Math.max(0,R.length-1))},[R.length,eU]),(0,i.useEffect)(()=>{e7.current.length=R.length},[R.length]),(0,i.useEffect)(()=>{eO&&e7.current[eU]?.scrollIntoView({block:"nearest",inline:"nearest"})},[eU,eO]);let tL=(0,i.useCallback)(e=>{ec(e),eH(!1),e_(0),eN(null),requestAnimationFrame(()=>{let t=eG.current;t&&(t.focus(),t.setSelectionRange(e.length,e.length),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)})},[]),tN=(0,i.useCallback)(e=>{let t=`/${e.name} `;ec(t),ez(!1),eA(0),requestAnimationFrame(()=>{let e=eG.current;e&&(e.focus(),e.setSelectionRange(t.length,t.length),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[]),tF=(0,i.useCallback)(e=>{let t=ed.trim();if(!t&&!eb.length&&!ek.length||eb.length||ek.length)return;N?.();let n="steer"===e?"steer":"followUp";if(t.startsWith("/")&&F){let e=t2(t);if("expand"===e.kind){F(e.prompt,n,eb.length?eb:void 0),tm();return}return"usage-error"===e.kind?void ef.oR.error(ea("chatInput.commandUsageTitle"),ea("agentSession.commandRequiresArgs",{command:e.command,usage:ea(e.argumentHintKey)})):(F(t,n,eb.length?eb:void 0),void tm())}"steer"===e&&r?r(t,eb.length?eb:void 0):"followup"===e&&a&&a(t,eb.length?eb:void 0),tm()},[ed,eb,ek,F,r,a,tm,N,ea]),tD=[...(E?.followUp??[]).map(e=>({kind:"follow-up",text:e})),...(E?.steering??[]).map(e=>({kind:"steer",text:e}))],tP=tD[0]??null,tB=tD.length,tO=(0,i.useCallback)(()=>{tP&&(P?.(tP.text),ec(tP.text),eN(null),eH(!1),requestAnimationFrame(()=>{let e=eG.current;e&&(e.focus(),e.setSelectionRange(tP.text.length,tP.text.length),e.style.height="auto",e.style.height=Math.min(e.scrollHeight,200)+"px")}))},[tP,P]),tH=(0,i.useCallback)(()=>{tP&&P?.(tP.text)},[tP,P]),tU=(0,i.useCallback)(()=>{tP&&"follow-up"===tP.kind&&B?.(tP.text)},[tP,B]),t_=(0,i.useCallback)(e=>{let t=tj.length-1;if(t<0)return 0;if("left"===e)return Math.max(0,e$-1);if("right"===e)return Math.min(t,e$+1);let r=e8.current[e$];if(!r)return"down"===e?Math.min(t,e$+1):Math.max(0,e$-1);let n=r.getBoundingClientRect(),i=n.left+n.width/2,a=n.top+n.height/2,o=-1,s=1/0;for(let r=0;r<=t;r+=1){if(r===e$)continue;let t=e8.current[r];if(!t)continue;let n=t.getBoundingClientRect(),l=n.top+n.height/2-a;if("down"===e?l<=4:l>=-4)continue;let d=1e3*Math.abs(l)+Math.abs(n.left+n.width/2-i);d<s&&(o=r,s=d)}return o>=0?o:"down"===e?Math.min(t,e$+1):Math.max(0,e$-1)},[tj.length,e$]),tV=(0,i.useCallback)(e=>{let n=e.nativeEvent,i=Date.now()-e6.current<100,s=e4.current||n.isComposing||229===n.keyCode;if("Enter"===e.key&&!e.shiftKey&&(s||i)){i&&e.preventDefault();return}if(eO&&!s){if("ArrowDown"===e.key){e.preventDefault(),e_(e=>Math.min(Math.max(0,R.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)&&R[eU]){e.preventDefault(),tL(R[eU]);return}}if(eM&&null!==tv){if("ArrowDown"===e.key){e.preventDefault(),eA(t_("down"));return}if("ArrowUp"===e.key){e.preventDefault(),eA(t_("up"));return}if("ArrowRight"===e.key){e.preventDefault(),eA(t_("right"));return}if("ArrowLeft"===e.key){e.preventDefault(),eA(t_("left"));return}if("Escape"===e.key){e.preventDefault(),ez(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&tj[e$]){e.preventDefault(),tN(tj[e$]);return}}if(eF&&null!==eL&&!s){if("ArrowDown"===e.key){e.preventDefault(),eB(e=>Math.min(Math.max(0,tW.length-1),e+1));return}if("ArrowUp"===e.key){e.preventDefault(),eB(e=>Math.max(0,e-1));return}if("Escape"===e.key){e.preventDefault(),eD(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&tW[eP]){e.preventDefault(),tA(tW[eP]);return}}if("ArrowUp"===e.key&&!s&&!o&&R.length>0&&0===ed.trim().length){e.preventDefault(),ez(!1),eD(!1),e_(R.length-1),eH(!0);return}if("Escape"===e.key&&!s&&o&&t){e.preventDefault(),t();return}if("Enter"===e.key&&!e.shiftKey){if(en)return;e.preventDefault(),o&&(r||a)?"steer"===(0,tZ.v)()&&r?tF("steer"):tF("followup"):tx()}},[en,o,r,a,t,eM,tv,tj,e$,tN,tF,tx,t_,eF,eL,tW,eP,tA,eO,R,eU,tL,ed]),tK=(0,i.useCallback)(()=>{let e=eG.current;e&&(e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)},[]),tG=(0,i.useCallback)(e=>{let t=Array.from(e.clipboardData?.items??[]).filter(e=>e.type.startsWith("image/"));t.length&&(e.preventDefault(),tu(t.map(e=>e.getAsFile()).filter(e=>null!==e)))},[tu]);(0,i.useEffect)(()=>{if(null===tv){ez(!1),eA(0),e3.current=!1;return}ez(!0),eA(0),!e3.current&&A&&(e3.current=!0,Promise.resolve(A()).catch(()=>{e3.current=!1}))},[tv,A]),(0,i.useEffect)(()=>{e$>=tj.length&&eA(Math.max(0,tj.length-1))},[tj.length,e$]),(0,i.useEffect)(()=>{e8.current.length=tj.length},[tj.length]),(0,i.useEffect)(()=>{eM&&e8.current[e$]?.scrollIntoView({block:"nearest",inline:"nearest"})},[e$,eM]);let[t0,t1]=(0,i.useState)(null);(0,i.useEffect)(()=>{let e=()=>t1(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 t5=i.useMemo(()=>u&&u.length>0?u.map(e=>({provider:e.provider,modelId:e.id,name:e.name})).filter(e=>null===t0||t0.has(`${e.provider}:${e.modelId}`)).sort((e,t)=>rt(el,e,t)):Object.entries(c??{}).map(([e,t])=>({provider:s?.provider??"unknown",modelId:e,name:t})).sort((e,t)=>rt(el,e,t)),[u,c,s?.provider,t0,el]),t8=i.useMemo(()=>{let e;return(e=ev.trim().toLocaleLowerCase(es))?t5.filter(t=>t.name.toLocaleLowerCase(es).includes(e)||t.modelId.toLocaleLowerCase(es).includes(e)||t.provider.toLocaleLowerCase(es).includes(e)):t5},[es,t5,ev]),ru=i.useMemo(()=>{let e=[];for(let t of t8){let r=e.find(e=>e.provider===t.provider);r?r.options.push(t):e.push({provider:t.provider,options:[t]})}return e},[t8]),ry=s?t5.find(e=>e.modelId===s.modelId&&e.provider===s.provider)?.name??T??c?.[`${s.provider}:${s.modelId}`]??s.modelId:null,rb=!!h&&!p,rw=o||rb&&0===t5.length,rk=w?Math.max(0,w.tokensBefore-w.estimatedTokensAfter):0,rj=w?.reason&&"manual"!==w.reason?ea("chatInput.compactedWithReason",{reason:`${w.reason[0].toUpperCase()}${w.reason.slice(1)}`}):ea("chatInput.compacted"),rS=w?ea("chatInput.compactResult",{verb:rj,before:(q=w.tokensBefore,(0,tY.w)(q,es)),after:(Z=w.estimatedTokensAfter,(0,tY.w)(Z,es)),saved:(0,tY.w)(rk,es)}):null,rC="auto"!==(Y=k??"auto")&&C?C[Y]??Y:Y,rT=Math.max(0,Math.min(100,D?.percent??0)),rI=i.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,i.useEffect)(()=>{o&&ex(!1)},[o]),(0,i.useEffect)(()=>{eu?requestAnimationFrame(()=>e0.current?.focus()):ey("")},[eu]),(0,i.useEffect)(()=>{let e=e=>{eX.current&&!eX.current.contains(e.target)&&eQ.current&&!eQ.current.contains(e.target)&&ep(!1),e1.current&&!e1.current.contains(e.target)&&ex(!1),!e2.current||e2.current.contains(e.target)||eG.current?.contains(e.target)||eH(!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:en?16:52},children:[(0,n.jsx)("input",{ref:e5,type:"file",accept:"*/*",multiple:!0,disabled:o,style:{display:"none"},onChange:e=>{tu(Array.from(e.target.files??[])),e.target.value=""}}),(0,n.jsxs)("div",{style:{maxWidth:960,margin:"0 auto"},children:[(0,n.jsx)(rx,{error:p}),(0,n.jsx)(rv,{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"})]}),ea("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"})]}),rS&&(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"})}),rS]}),eS&&(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:eS}),eb.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:6,marginBottom:6,flexWrap:"wrap"},children:eb.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:()=>tp(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))}),ek.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:6,marginBottom:6,flexWrap:"wrap"},children:ek.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:()=>th(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:[eO&&R.length>0&&(0,n.jsxs)("div",{ref:e2,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:ea("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:R.map((e,t)=>{let r=t===eU;return(0,n.jsxs)("button",{ref:e=>{e7.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),tL(e)},onMouseEnter:()=>e_(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}`)})})]}),eM&&null!==tv&&(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:$?ea("chatInput.loadingCommands"):ea("chatInput.slashCommandsHeader",{countLabel:tC})}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:ea("chatInput.tabEnterHint")})]}),(0,n.jsx)("div",{style:{maxHeight:"calc(min(56vh, 460px) - 34px)",overflowY:"auto",padding:10},children:$||0!==tj.length?tS.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:ea(rs[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===e$,i=rn(e,ty);return(0,n.jsxs)("button",{ref:e=>{e8.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),tN(e)},onMouseEnter:()=>eA(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:i?"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}),i&&(0,n.jsx)("span",{style:{marginLeft:6,fontSize:10,color:"var(--text-dim)"},children:ea("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:ea("chatInput.noCommandsFound")})})]}),eF&&null!==eL&&(J=eq&&(!eV||eV.cwd!==H),G=eo("chatInput.matchCount",tW.length),X=eV?.truncated&&!tM?` \xb7 ${eL.query?ea("chatInput.searchingAllFiles"):ea("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:J?ea("chatInput.loadingFiles"):`${ea("chatInput.filesHeader",{countLabel:G})}${X}`}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:ea("chatInput.tabEnterHint")})]}),(0,n.jsx)("div",{style:{maxHeight:"calc(min(48vh, 400px) - 34px)",overflowY:"auto",padding:4},children:J||0!==tW.length?tW.map((e,t)=>{let r=t===eP,i=e.path.split("/").pop()??e.path,a=e.path.slice(0,e.path.length-i.length);return(0,n.jsxs)("button",{ref:e=>{e9.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),tA(e)},onMouseEnter:()=>eB(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)(M,{size:14}):ei(i,14)}),(0,n.jsxs)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[a&&(0,n.jsx)("span",{style:{color:"var(--text-dim)"},children:a}),i,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:tR&&!tM?ea("chatInput.searching"):ea("chatInput.noMatchingFiles")})})]})),tP&&(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"===tP.kind?ea("chatInput.queuedSteer"):ea("chatInput.queuedFollowUp"),tB>1&&(0,n.jsx)("span",{style:{color:"var(--text-dim)"},children:" \xb7 "+tB})]}),(0,n.jsx)("span",{title:tP.text,style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12,color:"var(--text-muted)"},children:tP.text}),(0,n.jsx)(rm,{onClick:tO,title:ea("chatInput.queuedEditTitle"),children:ea("chatInput.queuedEdit")}),(0,n.jsx)(rm,{onClick:tH,title:ea("chatInput.queuedDeleteTitle"),children:ea("chatInput.queuedDelete")}),(0,n.jsx)(rm,{onClick:tU,title:ea("chatInput.queuedSteerTitle"),accent:!0,children:ea("chatInput.queuedSteerAction")})]}),(0,n.jsxs)("div",{className:"chat-input-shell",style:{display:"flex",flexDirection:"column",background:"var(--bg)",border:`1px solid ${eE?"var(--tool-bg)":"color-mix(in srgb, var(--border) 70%, transparent)"}`,borderRadius:"var(--radius-card)",padding:"12px 12px 10px 14px",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:eG,value:ed,onChange:e=>{ec(e.target.value),eH(!1),tT(e.target.value,e.target.selectionStart)},onSelect:e=>{let t=e.currentTarget;tT(t.value,t.selectionStart)},onKeyDown:tV,onCompositionStart:()=>{e4.current=!0},onCompositionEnd:e=>{e4.current=!1,e6.current=Date.now();let t=e.currentTarget;tT(t.value,t.selectionStart)},onInput:tK,onPaste:tG,placeholder:ea("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:8,paddingTop:8,borderTop:"1px solid color-mix(in srgb, var(--border) 62%, transparent)",flexWrap:en?"wrap":"nowrap"},children:[(0,n.jsx)("button",{className:"composer-attachment ui-focus-ring",onClick:()=>e5.current?.click(),disabled:o,title:ea("chatInput.attachFile"),"aria-label":ea("chatInput.attachFile"),style:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",width:28,height:28,padding:0,background:"none",border:"none",borderRadius:7,color:eb.length||ek.length?"var(--accent)":"var(--text-muted)",cursor:o?"not-allowed":"pointer",opacity:o?.5:1,transition:"background var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{o||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color=eb.length||ek.length?"var(--accent)":"var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color=eb.length||ek.length?"var(--accent)":"var(--text-muted)"},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"})]})}),(t5.length>0||ry||p||rb)&&f&&(0,n.jsxs)("div",{ref:eX,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();eg({top:t.top,left:t.left,width:t.width}),ep(e=>!e)},disabled:rw,style:{display:"flex",alignItems:"center",gap:5,height:28,maxWidth:190,padding:"0 8px",overflow:"hidden",background:eu?"var(--bg-hover)":"none",border:"none",borderRadius:7,color:"var(--text-muted)",cursor:rw?"not-allowed":"pointer",fontSize:12,opacity:rw?.5:1,transition:"background var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{o||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background=eu?"var(--bg-hover)":"none",e.currentTarget.style.color="var(--text-muted)"},title:t5.length>0?ea("chatInput.changeModel"):rb?ea("chatInput.loadingModels"):ea("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:ea("chatInput.advisorEnabled"),"aria-label":ea("chatInput.advisorEnabled"),style:{display:"flex",flexShrink:0,color:"var(--accent)"},children:(0,n.jsx)(tq.A,{size:13,strokeWidth:2,"aria-hidden":"true"})}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:ry??(t5.length>0?ea("chatInput.selectModel"):rb?ea("chatInput.loadingModels"):ea("chatInput.noModels"))}),(0,n.jsx)(eW.A,{size:12,strokeWidth:1.8,style:{flexShrink:0,opacity:.7},"aria-hidden":"true"})]}),eu&&eh&&(ee=(Q=window.visualViewport?.height??window.innerHeight)-eh.top+6,et=Math.max(120,Math.min(eh.top-8,.6*Q)),er=en?{left:8,right:8,maxWidth:"calc(100vw - 16px)"}:{left:eh.left,width:"max-content",minWidth:eh.width,maxWidth:"calc(100vw - 16px)"},(0,n.jsxs)("div",{ref:eQ,className:"dropdown-surface",style:{position:"fixed",bottom:ee,...er,zIndex:500,display:"flex",flexDirection:"column",overflow:"hidden",maxHeight:et},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:e0,type:"search",autoComplete:"off",spellCheck:!1,value:ev,onChange:e=>ey(e.target.value),onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),ep(!1))},placeholder:ea("chatInput.searchModels"),"aria-label":ea("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===ru.length?(0,n.jsx)("div",{style:{padding:"8px 12px",color:"var(--text-dim)",fontSize:12,whiteSpace:"nowrap"},children:ev.trim()?ea("chatInput.noMatchingModels"):rb?ea("chatInput.loadingModels"):ea("chatInput.noAvailableModels")}):ru.map((e,t)=>(0,n.jsxs)("div",{children:[ru.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===s?.modelId&&e.provider===s?.provider;return(0,n.jsxs)("button",{className:"dropdown-item",onClick:()=>{ep(!1),(!t||l)&&f(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}}),e.name]},`${e.provider}:${e.modelId}`)})]},e.provider))})]}))]}),j&&(0,n.jsxs)("div",{ref:e1,className:"composer-thinking-control",style:{position:"relative"},children:[(0,n.jsxs)("button",{className:"composer-thinking-button ui-focus-ring",onClick:()=>ex(e=>!e),disabled:o,title:ea("chatInput.changeReasoningTitle",{level:rC}),"aria-label":`${ea("chatInput.changeReasoning")}: ${rC}`,style:{display:"flex",alignItems:"center",gap:5,height:28,padding:"0 8px",background:em?"var(--bg-hover)":"none",border:"none",borderRadius:7,color:"var(--text-muted)",cursor:o?"not-allowed":"pointer",opacity:o?.5:1,fontSize:12,transition:"background var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{o||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background=em?"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:rC}),(0,n.jsx)(eW.A,{size:12,strokeWidth:1.8,style:{flexShrink:0,opacity:.7},"aria-hidden":"true"})]}),em&&(0,n.jsx)("div",{className:"dropdown-surface",style:{position:"absolute",bottom:"calc(100% + 6px)",left:en?"auto":0,right:en?0:void 0,zIndex:100,minWidth:250,maxWidth:"calc(100vw - 32px)"},children:rI.map(e=>{let t=(k??"auto")===e,r=rr[e],i=r?ea(r):"",a="auto"!==e&&C?C[e]:void 0,s=null!=a&&a!==e?a:e,l=null!=a&&a!==e;return(0,n.jsxs)("button",{className:"dropdown-item",onClick:()=>{ex(!1),t||o||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:[s,l&&(0,n.jsxs)("span",{style:{color:"var(--text-dim)",fontWeight:400},children:[" (",e,")"]})]}),i&&(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:11,color:"var(--text-dim)",marginLeft:8},children:i})]},e)})})]}),x&&v&&(0,n.jsxs)("button",{className:"composer-fast-toggle ui-focus-ring",type:"button",onClick:()=>{o||v(!g)},disabled:o,title:g&&!1===m?"Fast mode is enabled but inactive for this model":`Turn OMP Fast mode ${g?"off":"on"} for this model`,"aria-pressed":g,style:{display:"flex",alignItems:"center",gap:5,height:28,padding:"0 8px",background:g?"var(--bg-selected)":"none",border:"none",borderRadius:7,color:g&&!1===m?"var(--status-warning)":g?"var(--accent)":"var(--text-muted)",cursor:o?"not-allowed":"pointer",opacity:o?.5:1,fontSize:12,fontWeight:600,transition:"background var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},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"})}),ea("chatInput.fastLabel")]}),(0,n.jsx)("div",{className:"composer-toolbar-spacer",style:{flex:1}}),D?.percent!=null&&(0,n.jsxs)("span",{className:"composer-context-ring",title:`${Math.round(rT)}% \xb7 ${(0,tY.w)(D.tokens??0,es)} / ${(0,tY.w)(D.contextWindow,es)}`,style:{position:"relative",width:26,height:26,flexShrink:0,display:"inline-flex",alignItems:"center",justifyContent:"center"},children:[(0,n.jsxs)("svg",{width:"26",height:"26",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:re,strokeDashoffset:re*(1-rT/100),transform:"rotate(-90 13 13)"})]}),(0,n.jsxs)("span",{style:{fontSize:8,fontWeight:600,color:"var(--text-muted)",fontVariantNumeric:"tabular-nums"},children:[Math.round(rT),"%"]})]}),o?(0,n.jsxs)("button",{className:"composer-primary-action ui-focus-ring",type:"button",onClick:b?y:t,title:ea("chatInput.stopAgent"),style:{display:"flex",alignItems:"center",gap:6,height:28,padding:"0 14px",background:"var(--accent-strong)",border:"none",borderRadius:8,color:"var(--on-accent)",cursor:"pointer",fontSize:12,fontWeight:600,transition:"background var(--dur-fast) var(--ease-out-warm)"},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:ea("chatInput.stop")})]}):(0,n.jsxs)("button",{className:"composer-primary-action ui-focus-ring",type:"button",onClick:tx,disabled:!ed.trim()&&!eb.length&&!ek.length,style:{display:"flex",alignItems:"center",gap:6,height:28,padding:"0 14px",background:ed.trim()||eb.length||ek.length?"var(--accent-strong)":"var(--bg-panel)",border:"none",borderRadius:8,color:ed.trim()||eb.length||ek.length?"var(--on-accent)":"var(--text-dim)",cursor:ed.trim()||eb.length||ek.length?"pointer":"not-allowed",fontSize:12,fontWeight:600,boxShadow:ed.trim()||eb.length||ek.length?"var(--shadow-card)":"none",transition:"background var(--dur-fast) var(--ease-out-warm), box-shadow var(--dur-fast) var(--ease-out-warm)"},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",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:ea("chatInput.send")})]})]})]})]}),eE&&(0,n.jsx)("div",{className:"text-xs px-2 py-1",style:{color:eR?"var(--text-muted)":"var(--accent)",marginTop:4},children:eR?ea("chatInput.shellLocal"):ea("chatInput.shellToModel")})]})]})}));function rb({request:e,onRespond:t}){let{t:r}=(0,d.s9)(),[a,o]=(0,i.useState)("editor"===e.method?e.prefill??"":"");(0,i.useEffect)(()=>{o("editor"===e.method?e.prefill??"":"")},[e]);let s=()=>t(e,{cancelled:!0}),l=p({onClose:s,active:!0}),c=()=>{"confirm"===e.method?t(e,{confirmed:!0}):t(e,{value:a})};return(0,n.jsx)("div",{className:"animate-fade-in",onMouseDown:e=>{e.target===e.currentTarget&&s()},style:{position:"absolute",inset:0,zIndex:90,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:"12px 14px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("div",{style:{color:"var(--text)",fontSize:14,fontWeight:650},children:e.title}),(0,n.jsx)("div",{style:{marginTop:3,color:"var(--text-dim)",fontSize:11,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:13,lineHeight:1.6,whiteSpace:"pre-wrap"},children:e.message}),"select"===e.method&&(0,n.jsx)("div",{style:{display:"grid",gap:8},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:13,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:a,placeholder:e.placeholder,onChange:e=>o(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:13}}),"editor"===e.method&&(0,n.jsx)("textarea",{autoFocus:!0,"aria-label":e.title||"Input value",value:a,onChange:e=>o(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:13,lineHeight:1.55,fontFamily:"var(--font-mono)"}})]}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,padding:"10px 14px",borderTop:"1px solid var(--border)",background:"var(--bg-panel)"},children:[(0,n.jsx)("button",{onClick:s,style:{padding:"6px 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:"6px 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:"6px 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 rw=r(32383);function rk({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)",i=e.content,a=("string"==typeof i?[{type:"text",text:i}]:Array.isArray(i)?i:[]).filter(e=>"text"===e.type&&"string"==typeof e.text).map(e=>e.text).join("\n").slice(0,400),o=!0===e.isError;return(0,n.jsxs)("div",{style:{display:"flex",gap:8,minWidth:0},children:[(0,n.jsx)("span",{style:{flexShrink:0,fontSize:10,fontFamily:"var(--font-mono)",color:r,paddingTop:2},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 i&&Array.isArray(i)?i.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)):a||("user"===e.role||"assistant"===e.role?"":o?"(error)":"(no output)")})]})}let rj={fontFamily:"var(--font-mono)",fontSize:10,fontWeight:700,letterSpacing:.4,textTransform:"uppercase",color:"var(--text-dim)"};function rS({value:e}){return"string"==typeof e?(0,n.jsx)("div",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",color:"var(--text-muted)",fontSize:12,lineHeight:1.55},children:e}):Array.isArray(e)?(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:3},children:e.map((e,t)=>(0,n.jsxs)("div",{style:{display:"flex",gap:6,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)(rS,{value:e})})]},t))}):null!==e&&"object"==typeof e?(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:Object.keys(e).map(t=>(0,n.jsxs)("div",{style:{display:"flex",gap:8,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:2},children:t}),(0,n.jsx)("div",{style:{minWidth:0,flex:1},children:(0,n.jsx)(rS,{value:e[t]})})]},t))}):(0,n.jsx)("span",{style:{color:"var(--text-muted)",fontSize:12},children:String(e)})}function rC({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:"10px 12px"},children:[(0,n.jsx)("span",{style:rj,children:t("subagentTranscript.taskLabel")}),(0,n.jsx)("div",{style:{marginTop:6},children:(0,n.jsx)(ta,{className:"markdown-subagent-text",children:e})})]}):null}function rT({completion:e,truncated:t}){let{t:r}=(0,d.s9)(),i=null;if(e)try{let t=JSON.parse(e);null===t||"object"!=typeof t||Array.isArray(t)||(i=t)}catch{i=null}let a=i?Object.keys(i):[],o=i&&1===a.length&&"string"==typeof i[a[0]]?i[a[0]]:null;return(0,n.jsxs)("section",{style:{border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)",padding:"10px 12px"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:8},children:[(0,n.jsx)("span",{style:rj,children:r("subagentTranscript.resultLabel")}),t&&(0,n.jsx)("span",{style:{fontSize:10.5,color:"var(--text-dim)"},children:r("subagentTranscript.completionTruncated")})]}),o?(0,n.jsx)("div",{style:{marginTop:6,whiteSpace:"pre-wrap",wordBreak:"break-word",color:"var(--text-muted)",fontSize:12,lineHeight:1.55},children:o}):i?(0,n.jsx)("div",{style:{marginTop:6},children:(0,n.jsx)(rS,{value:i})}):e?(0,n.jsx)("div",{style:{marginTop:6},children:(0,n.jsx)(ta,{className:"markdown-subagent-text",children:e})}):(0,n.jsx)("div",{style:{marginTop:6,fontSize:12,color:"var(--text-dim)",fontStyle:"italic"},children:r("subagentTranscript.noCompletion")})]})}function rI({subagent:e,sessionId:t,transcriptVersion:r,events:a,onClose:o}){let{t:s}=(0,d.s9)(),[l,c]=(0,i.useState)(null),[u,p]=(0,i.useState)(null),[h,f]=(0,i.useState)(!1),[g,m]=(0,i.useState)(!1),[x,v]=(0,i.useState)(null),[y,b]=(0,i.useState)(!1),[w,k]=(0,i.useState)([]),[j,S]=(0,i.useState)(0),[C,T]=(0,i.useState)(!1),[I,E]=(0,i.useState)(null),[R,M]=(0,i.useState)(!1),W=(0,i.useRef)(0),z=(0,i.useRef)(0),$=(0,i.useRef)(0),A=(0,i.useRef)(0),L=(0,i.useRef)(0),N=(0,i.useRef)(null),F=null!==e,D=e?.source==="history",P=!D,B=(0,i.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,i.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,rw.$)(t,{type:"get_subagent_messages",subagentId:e.id,sessionFile:e.sessionFile,fromByte:r})},[t,e?.id,e?.sessionFile]),H=(0,i.useCallback)(async r=>{if(!t||!e?.id)return;let n=++z.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!==z.current)return;t.reset?k(t.messages):k(e=>[...e,...t.messages]),S(t.nextByte);let i="number"==typeof t.totalBytes?t.nextByte>=t.totalBytes:0===t.messages.length;M(i||t.nextByte<=t.fromByte)}catch(e){if(n!==z.current)return;E(e instanceof Error?e.message:String(e))}finally{n===z.current&&T(!1)}},[t,e?.id,D,O]),U=(0,i.useCallback)(async()=>{if(!t||!e?.id)return;let r=++W.current;m(!0),v(null);try{let n=await B();if(null===n.completion&&P){let n=((await (0,rw.$)(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),f(n.truncated)}catch(e){if(r!==W.current)return;v(e instanceof Error?e.message:String(e))}finally{r===W.current&&m(!1)}},[t,e?.id,P,B]);(0,i.useEffect)(()=>{F&&t&&(W.current+=1,z.current+=1,p(null),f(!1),v(null),c(null),b(!1),k([]),S(0),M(!1),E(null),T(!1),U())},[F,t,U]),(0,i.useEffect)(()=>{if(!F||!t||0===r||g)return;let e=r===$.current&&r===L.current,n=r===A.current;if(!e||!n)return L.current=r,N.current&&clearTimeout(N.current),N.current=setTimeout(()=>{N.current=null,$.current!==L.current&&($.current=L.current,U()),y&&!C&&A.current!==L.current&&(A.current=L.current,H(j))},600),()=>{N.current&&clearTimeout(N.current)}},[F,t,r,g,y,C,U,H,j]);let _=l?.agent??e?.agent??"",V=l?.description??e?.description??"",K=l?.task??e?.task??e?.assignment??"",q=e?.progress,Z=tf(q?.tokens),Y=e?.source==="history"?[Z?s("chatWindow.tokensUnit",{count:Z}):null,tg(q?.cost),tm(q?.durationMs),q?.resolvedModel?q.resolvedModel.replace(/:.*$/,""):null].filter(Boolean).join(" \xb7 "):null,J=e?.source==="history"?e?.result?.abortReason??e?.result?.error:void 0,G=P&&!u&&a&&a.length>0?a.slice(-4):null;return(0,n.jsx)(ea.lG,{open:F,onOpenChange:e=>{e||o()},children:e&&(0,n.jsx)(ea.Cf,{ariaLabel:s("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:10,marginBottom:12},children:[(0,n.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,n.jsx)(ea.L3,{style:{marginBottom:2,fontSize:16,lineHeight:1.3},children:(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",color:"var(--accent)",fontSize:14},children:_})}),V&&(0,n.jsx)("div",{style:{fontSize:12.5,color:"var(--text-muted)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginBottom:4},children:V}),(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:l?.sessionFile??e.sessionFile??e.id}),Y&&(0,n.jsx)("div",{style:{fontSize:10.5,color:"var(--text-dim)",fontFamily:"var(--font-mono)",marginTop:2},children:Y}),J&&(0,n.jsx)("div",{style:{fontSize:11,color:"var(--status-error)",marginTop:2,wordBreak:"break-word"},children:J})]}),(0,n.jsx)(ea.HM,{style:{flexShrink:0,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:18,lineHeight:1,padding:"2px 6px"},"aria-label":s("subagentTranscript.close"),children:"\xd7"})]}),G&&(0,n.jsx)("div",{"aria-live":"polite",style:{display:"grid",gap:2,marginBottom:8,padding:"6px 10px",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:6,fontSize:11,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:12,color:"var(--status-error)",padding:"8px 2px"},children:x}):(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,n.jsx)(rC,{task:K}),(0,n.jsx)(rT,{completion:u,truncated:h}),g&&(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)"},children:s("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:12,fontFamily:"inherit",padding:0},children:s(y?"subagentTranscript.hideTranscript":"subagentTranscript.showTranscript")}),y&&(0,n.jsxs)("div",{id:"subagent-transcript-panel",style:{display:"grid",gap:8,padding:"10px 12px",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:12,color:"var(--status-error)"},children:I}):0!==w.length||C?w.map((e,t)=>(0,n.jsx)(rk,{message:e},t)):(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-dim)",fontStyle:"italic"},children:s("subagentTranscript.noMessages")}),C&&(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)"},children:s("subagentTranscript.loading")}),!R&&!C&&(0,n.jsx)("button",{type:"button",onClick:()=>void H(j),style:{background:"none",border:"none",color:"var(--accent)",cursor:"pointer",fontSize:12,fontFamily:"inherit",padding:0},children:s("subagentTranscript.loadMore")})]})]})]})},e.id)})}function rE(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 rR(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 rM=(0,i.memo)(function({messages:e,scrollContainer:t,messageRefs:r}){let[a,o]=(0,i.useState)(0),[s,l]=(0,i.useState)(1),[d,c]=(0,i.useState)(!1),[u,p]=(0,i.useState)([]),[h,f]=(0,i.useState)(!1),[g,m]=(0,i.useState)(null),x=(0,i.useRef)(!1),v=(0,i.useRef)(null),y=(0,i.useRef)(null),b=(0,i.useRef)(null),w=(0,i.useRef)(null),k=(0,i.useRef)(e);k.current=e;let j=(0,i.useCallback)(()=>{let e=t.current;if(!e)return;let r=e.scrollHeight,n=e.clientHeight,i=r-n;c(i>20),i<=0?(o(0),l(1)):(o(e.scrollTop/i),l(n/r))},[t]),S=(0,i.useRef)(null),C=(0,i.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 i=r.current,a=[],o=0,s=k.current,l=e.getBoundingClientRect();for(let t=0;t<s.length;t++){let r=s[t];if("user"!==r.role&&"assistant"!==r.role)continue;let d=i?.[o];if(o++,("user"===r.role||"assistant"===r.role&&(r.content??[]).some(e=>"text"===e.type))&&d){let t=d.getBoundingClientRect(),i=t.top-l.top+e.scrollTop,o=t.height;a.push({topRatio:i/n,heightRatio:o/n,msg:r,index:a.length})}}p(a)},150))},[t,r]),T=(0,i.useRef)(null),I=(0,i.useCallback)(()=>{T.current=null,j()},[j]);(0,i.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,i.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,i.useEffect)(()=>{let e=setTimeout(()=>{j(),C()},50);return()=>clearTimeout(e)},[e.length,C,j]),(0,i.useEffect)(()=>()=>{null!==b.current&&(cancelAnimationFrame(b.current),b.current=null)},[]);let E=(0,i.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-s,e))/(1-s)*n)},[t,s]),R=(0,i.useCallback)(()=>{b.current=null,null!==w.current&&(m(w.current),w.current=null)},[]),M=(0,i.useCallback)(e=>{let t=e.currentTarget.getBoundingClientRect();w.current=(e.clientY-t.top)/t.height,null===b.current&&(b.current=requestAnimationFrame(R))},[R]),W=(0,i.useCallback)(e=>{if(!d)return;x.current=!0;let t=e.currentTarget.getBoundingClientRect(),r=(e.clientY-t.top)/t.height,n=r-a*(1-s),i=n>=0&&n<=s?n:s/2;E(r-i);let o=e=>{x.current&&E((e.clientY-t.top)/t.height-i)},l=()=>{x.current=!1,v.current=null,window.removeEventListener("mousemove",o),window.removeEventListener("mouseup",l)};window.addEventListener("mousemove",o),window.addEventListener("mouseup",l),v.current={onMove:o,onUp:l}},[d,s,a,E]);(0,i.useEffect)(()=>()=>{let e=v.current;e&&(window.removeEventListener("mousemove",e.onMove),window.removeEventListener("mouseup",e.onUp),v.current=null),x.current=!1},[]);let z=y.current?.clientHeight??600,$=(0,i.useMemo)(()=>u.map(e=>rR(e.msg)),[u]),A=(0,i.useMemo)(()=>u.map(e=>rE(e.msg)),[u]),L=(0,i.useMemo)(()=>{if(!h||0===u.length)return[];let e=u.map(e=>Math.round(e.topRatio*z-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(z-22,e[t]));return e},[h,u,z]);if(!d)return null;let N=a*(1-s)*100,F=100*s,D=null!==g&&u.length>0?u.reduce((e,t)=>Math.abs(t.topRatio-g)<Math.abs(u[e].topRatio-g)?t.index:e,0):null;return(0,n.jsxs)("div",{ref:y,onMouseDown:W,onMouseEnter:()=>f(!0),onMouseLeave:()=>{f(!1),m(null)},onMouseMove:M,style:{position:"absolute",top:0,right:0,bottom:0,width:36,zIndex:20,cursor:"default",userSelect:"none",background:"transparent",overflow:"visible"},children:[(0,n.jsx)("div",{style:{position:"absolute",left:0,right:0,top:`${N}%`,height:`${F}%`,background:"color-mix(in srgb, var(--text-dim) 10%, transparent)",borderTop:"1px solid color-mix(in srgb, var(--text-dim) 20%, transparent)",borderBottom:"1px solid color-mix(in srgb, var(--text-dim) 20%, transparent)",pointerEvents:"none",zIndex:1}}),u.map(e=>{let t=$[e.index]??rR(e.msg),r=h&&D===e.index,i="user"===e.msg.role,a=100*e.topRatio;return(0,n.jsx)("div",{style:{position:"absolute",top:`${a}%`,transform:"translateY(-50%)",left:0,right:0,height:"12px",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",zIndex:2},children:(0,n.jsx)("div",{style:{width:i?8:6,height:i?8:6,borderRadius:i?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",left:"50%",top:0,bottom:0,width:1,background:"var(--border)",transform:"translateX(-50%)",zIndex:0}}),h&&u.map((e,t)=>{let r=A[t]??rE(e.msg),i=$[t]??rR(e.msg),a=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 ${a?i.border:"var(--border)"}`,borderRight:`1px solid ${a?i.border:"var(--border)"}`,borderBottom:`1px solid ${a?i.border:"var(--border)"}`,borderLeft:`2px solid ${i.border}`,borderRadius:4,padding:"2px 7px",width:200,zIndex:100,pointerEvents:"none",opacity:a?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:11,color:a?"var(--text)":"var(--text-muted)",lineHeight:1.4,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:r})},e.index):null})]})});var rW=r(57990),rz=r(36338),r$=r(88359),rA=r(12651),rL=r(85302),rN=r(90710),rF=r(59103),rD=r(83599),rP=r(58769);function rB({status:e}){let t={size:14,strokeWidth:1.8,"aria-hidden":!0};return"completed"===e?(0,n.jsx)(tc.A,{...t,color:"var(--accent)"}):"in_progress"===e?(0,n.jsx)(rP.A,{...t,color:"var(--accent)"}):"blocked"===e?(0,n.jsx)(E.A,{...t,color:"var(--text-muted)"}):"abandoned"===e?(0,n.jsx)(tu.A,{...t,color:"var(--text-dim)"}):(0,n.jsx)(tp.A,{...t,color:"var(--text-dim)"})}function rO({phases:e=[],collapsible:t=!1,defaultExpanded:r=!1}){let{t:a}=(0,d.s9)(),[o,s]=(0,i.useState)(!1),[l,c]=(0,i.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,f=(o?e:e.slice(0,4)).map(e=>{let t=o?e.tasks:e.tasks.slice(0,h);return h-=t.length,{...e,tasks:t}}).filter(e=>e.tasks.length>0),g=f.reduce((e,t)=>e+t.tasks.length,0)<u.length,m="flex items-center gap-2 px-3 py-2 text-xs text-text-muted",x=l?"":"border-b border-border",v=a("chatWindow.todoProgress",{done:p,total:u.length});return(0,n.jsxs)("section",{"aria-label":a("chatWindow.todoList"),className:`overflow-hidden border border-border bg-bg-subtle ${t?"":"my-2"}`,style:{borderRadius:"var(--radius-card)"},children:[t?(0,n.jsxs)("button",{type:"button","aria-expanded":!l,onClick:()=>c(e=>!e),title:l?a("chatWindow.expandPanel"):a("chatWindow.collapsePanel"),className:`${m} ${x} w-full cursor-pointer text-left`,style:{background:"none"},children:[(0,n.jsx)(tK.A,{size:15,strokeWidth:1.8,"aria-hidden":!0}),(0,n.jsx)("strong",{className:"font-medium text-text",children:a("chatWindow.todoList")}),(0,n.jsx)("span",{className:"ml-auto",children:v}),(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:`${m} ${x}`,children:[(0,n.jsx)(tK.A,{size:15,strokeWidth:1.8,"aria-hidden":!0}),(0,n.jsx)("strong",{className:"font-medium text-text",children:a("chatWindow.todoList")}),(0,n.jsx)("span",{className:"ml-auto",children:v})]}),!l&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"grid gap-3 px-3 py-2.5 animate-slide-down",children:f.map((e,t)=>(0,n.jsxs)("div",{className:"grid gap-1.5",children:[(0,n.jsx)("div",{className:"text-[11px] font-medium text-text-muted",children:e.name}),(0,n.jsx)("div",{className:"grid gap-1.5",children:e.tasks.map((e,t)=>(0,n.jsxs)("div",{className:"flex min-w-0 items-start gap-2 text-[13px] text-text","aria-label":`${a(`chatWindow.todoStatus.${e.status}`)}: ${e.content}`,children:[(0,n.jsx)("span",{className:"mt-0.5 shrink-0",children:(0,n.jsx)(rB,{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",{className:"mt-0.5 block text-[11px] text-text-muted",children:a("chatWindow.todoBlocker",{blocker:e.blocker})})]})]},e.id??`${e.content}-${t}`))})]},e.id??`${e.name}-${t}`))}),(g||o)&&(0,n.jsx)("button",{type:"button",className:"border-t border-border px-3 py-2 text-left text-xs text-accent hover:text-accent-hover",onClick:()=>s(e=>!e),children:o?a("chatWindow.todoShowLess"):a("chatWindow.todoShowAll")})]})]})}let rH={started:"chatWindow.subagentState.started",completed:"chatWindow.subagentState.completed",failed:"chatWindow.subagentState.failed",aborted:"chatWindow.subagentState.aborted"};function rU({subagent:e}){return(0,n.jsx)(th,{status:e.status,live:"history"!==e.source})}function r_({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:3},children:[(0,n.jsx)(e,{size:11,strokeWidth:1.8,"aria-hidden":!0}),(0,n.jsx)("span",{children:r})]})}function rV({subagent:e}){let{t}=(0,d.s9)(),r=e.progress,i=!!(r?.retryState??r?.retryFailure),a=[];if(i){let e=r?.retryState?.attempt??r?.retryFailure?.attempt??0,i=r?.retryState?.maxAttempts??0,o=i>0?t("chatWindow.subagentRetrying",{attempt:e,max:i}):t("chatWindow.subagentRetryAttempt",{attempt:e});a.push((0,n.jsx)(r_,{icon:eS.A,label:o,children:i>0?`${e}/${i}`:e},"retry"))}else if("started"===e.status){let e=r?.currentTool?`${r.currentTool}${r.lastIntent?` — ${r.lastIntent}`:""}`:r?.lastIntent;e&&a.push((0,n.jsx)(r_,{icon:r?.currentTool?rW.A:rz.A,label:e,children:e},"activity"))}let o=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),s=e.agentSource&&"bundled"!==e.agentSource?e.agentSource:null,l=tf(r?.tokens),c=tg(r?.cost),u=tf(r?.contextTokens),p=u?`${u}/${tf(r?.contextWindow)??"?"}`:null,h=tx(r?.resolvedModel),f="history"===e.source?tm(r?.durationMs):null,g=[s?(0,n.jsx)(r_,{icon:r$.A,label:s,children:"user"===s?null:s},"source"):null,o>0?(0,n.jsx)(r_,{icon:e$.A,label:t("chatWindow.subagentNestedCount",{count:o}),children:o},"nested"):null,l?(0,n.jsx)(r_,{icon:rA.A,label:t("chatWindow.tokensUnit",{count:l}),children:l},"tokens"):null,c?(0,n.jsx)(r_,{icon:rL.A,label:c,children:c},"cost"):null,p?(0,n.jsx)(r_,{icon:eR.A,label:t("chatWindow.contextGauge",{used:u??"?",total:tf(r?.contextWindow)??"?"}),children:p},"context"):null,h?(0,n.jsx)(r_,{icon:rN.A,label:h,children:h},"model"):null,f?(0,n.jsx)(r_,{icon:rF.A,label:f,children:f},"duration"):null].filter(Boolean);return(g.length>0&&a.push((0,n.jsx)("span",{style:{display:"inline-flex",flexWrap:"wrap",gap:"2px 7px"},children:g},"meta")),0===a.length)?null:(0,n.jsx)("span",{style:{display:"flex",minWidth:0,overflow:"hidden",fontSize:10.5,fontFamily:"var(--font-mono)",color:i?"var(--accent)":"var(--text-dim)",lineHeight:1.4,gap:7,flexWrap:"wrap"},children:a})}function rK({subagents:e,onSelectSubagent:t,defaultExpanded:r=!1}){let{t:a}=(0,d.s9)(),[o,s]=(0,i.useState)(!r),l=e.filter(e=>"history"!==e.source&&"started"===e.status).length;return 0===e.length?null:(0,n.jsxs)("section",{"aria-label":a("chatWindow.subagentsPanel"),className:"overflow-hidden border border-border bg-bg-subtle",style:{borderRadius:"var(--radius-card)"},children:[(0,n.jsxs)("button",{type:"button","aria-expanded":!o,onClick:()=>s(e=>!e),title:o?a("chatWindow.expandPanel"):a("chatWindow.collapsePanel"),className:`ui-focus-ring flex w-full cursor-pointer items-center gap-2 px-3 py-2 text-left text-xs text-text-muted ${o?"":"border-b border-border"}`,style:{background:"none"},children:[(0,n.jsx)(rD.A,{size:14,strokeWidth:1.8,"aria-hidden":!0}),(0,n.jsx)("strong",{className:"font-medium text-text",children:a("chatWindow.subagentsPanel")}),(0,n.jsx)("span",{className:"ml-auto inline-flex items-center gap-1.5","aria-label":a("chatWindow.subagentSummary",{running:l,total:e.length}),title:a("chatWindow.subagentSummary",{running:l,total:e.length}),children:(0,n.jsxs)("span",{children:[l,"/",e.length]})}),(0,n.jsx)(eW.A,{size:14,strokeWidth:1.8,"aria-hidden":!0,style:{color:"var(--text-dim)",transform:o?"rotate(-90deg)":"rotate(0deg)",transition:"transform var(--dur-med) var(--ease-out-warm)"}})]}),!o&&(0,n.jsx)("div",{className:"flex flex-wrap gap-1.5 px-3 py-2.5 animate-slide-down",style:{maxHeight:"min(30vh, 240px)",overflowY:"auto"},children:e.map(e=>{let r=a(rH[e.status]),i=`${e.agent} \xb7 ${r} \xb7 ${e.task??e.description??""}`.replace(/\s+$/,""),o="history"!==e.source;return(0,n.jsxs)("button",{type:"button",className:"ui-focus-ring",onClick:()=>t(e),"aria-label":i,title:`${i}${e.detached?" (async)":""}`,style:{display:"inline-flex",flexDirection:"column",alignItems:"flex-start",gap:1,maxWidth:320,padding:"5px 9px",border:"1px solid color-mix(in srgb, var(--border) 86%, transparent)",borderRadius:"var(--radius-control)",background:"var(--bg)",fontSize:11.5,fontFamily:"inherit",cursor:"pointer",color:o&&"started"===e.status?"var(--text)":"var(--text-dim)",opacity:o&&"started"===e.status?1:.72,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="color-mix(in srgb, var(--border) 86%, transparent)",e.currentTarget.style.background="var(--bg)"},children:[(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6,minWidth:0,maxWidth:"100%"},children:[(0,n.jsx)(rU,{subagent:e}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontWeight:600,fontSize:10.5,color:"var(--accent)",flexShrink:0},children:e.agent}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:220},children:e.task??e.description??r}),e.detached&&(0,n.jsx)("span",{"aria-hidden":!0,style:{fontSize:10,color:"var(--text-dim)",flexShrink:0,fontFamily:"var(--font-mono)"},children:"⤴"})]}),(0,n.jsx)(rV,{subagent:e})]},e.id)})})]})}function rq({todoPhases:e,subagents:t,onSelectSubagent:r,defaultExpanded:i=!1}){return 0===e.length&&0===t.length?null:(0,n.jsxs)("div",{style:{display:"grid",gap:6,marginBottom:8},children:[(0,n.jsx)(rO,{phases:e,collapsible:!0,defaultExpanded:i}),(0,n.jsx)(rK,{subagents:t,onSelectSubagent:r,defaultExpanded:i})]})}function rZ(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 rY=[],rJ=["read","bash","edit","write"],rG=["bash","read","edit","write","grep","find","ls"],rX="omp-web:tool-preset";function rQ(){try{return window.localStorage}catch{return null}}function r0(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function r1(e){return"string"==typeof e?e:void 0}function r2(e){return"number"==typeof e&&Number.isFinite(e)?e:void 0}function r5(e){return"bundled"===e||"user"===e||"project"===e?e:void 0}function r4(e){var t;if(!r0(e))return;let r={},n=r2(e.index);void 0!==n&&(r.index=n);let i=r1(e.id);void 0!==i&&(r.id=i);let a=r1(e.agent);void 0!==a&&(r.agent=a);let o=r5(e.agentSource);void 0!==o&&(r.agentSource=o);let s="pending"===(t=e.status)||"running"===t||"completed"===t||"failed"===t||"aborted"===t?t:void 0;void 0!==s&&(r.status=s);let l=r1(e.task);void 0!==l&&(r.task=l);let d=r1(e.assignment);void 0!==d&&(r.assignment=d);let c=r1(e.description);void 0!==c&&(r.description=c);let u=r1(e.lastIntent);void 0!==u&&(r.lastIntent=u);let p=r1(e.currentTool);void 0!==p&&(r.currentTool=p);let h=r1(e.currentToolArgs);void 0!==h&&(r.currentToolArgs=h);let f=r2(e.currentToolStartMs);void 0!==f&&(r.currentToolStartMs=f),Array.isArray(e.recentTools)&&(r.recentTools=e.recentTools),Array.isArray(e.recentOutput)&&(r.recentOutput=e.recentOutput.filter(e=>"string"==typeof e));let g=r2(e.toolCount);void 0!==g&&(r.toolCount=g);let m=r2(e.requests);void 0!==m&&(r.requests=m);let x=r2(e.tokens);void 0!==x&&(r.tokens=x);let v=r2(e.contextTokens);void 0!==v&&(r.contextTokens=v);let y=r2(e.contextWindow);void 0!==y&&(r.contextWindow=y);let b=r2(e.cost);void 0!==b&&(r.cost=b);let w=r2(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=r1(e.modelRole);void 0!==k&&(r.modelRole=k);let j=r1(e.resolvedModel);if(void 0!==j&&(r.resolvedModel=j),"boolean"==typeof e.resolvedModelIsFallback&&(r.resolvedModelIsFallback=e.resolvedModelIsFallback),r0(e.retryState)){let t=r2(e.retryState.attempt),n=r2(e.retryState.maxAttempts),i=r2(e.retryState.delayMs),a=r1(e.retryState.errorMessage),o=r2(e.retryState.startedAtMs);void 0!==t&&void 0!==n&&void 0!==i&&void 0!==a&&void 0!==o&&(r.retryState={attempt:t,maxAttempts:n,delayMs:i,errorMessage:a,startedAtMs:o})}if(r0(e.retryFailure)){let t=r2(e.retryFailure.attempt),n=r1(e.retryFailure.errorMessage);void 0!==t&&void 0!==n&&(r.retryFailure={attempt:t,errorMessage:n})}return void 0!==e.inflightTaskDetails&&(r.inflightTaskDetails=e.inflightTaskDetails),r0(e.extractedToolData)&&(r.extractedToolData=e.extractedToolData),Object.keys(r).length>0?r:void 0}function r6(e){let t;if(!r0(e))return;let r=r1(e.id),n=r1(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 i={id:r,agent:n,status:t,index:r2(e.index)??-1,source:"live"},a=r5(e.agentSource);void 0!==a&&(i.agentSource=a);let o=r1(e.description);void 0!==o&&(i.description=o);let s=r1(e.task);void 0!==s&&(i.task=s);let l=r1(e.assignment);void 0!==l&&(i.assignment=l);let d=r1(e.sessionFile);void 0!==d&&(i.sessionFile=d);let c=r1(e.parentToolCallId);void 0!==c&&(i.parentToolCallId=c);let u=r2(e.lastUpdate);void 0!==u&&(i.lastUpdate=u);let p=r4(e.progress);return void 0!==p&&(i.progress=p),i}function r3(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 r8(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 r9(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 r7={steering:[],followUp:[]},ne="omp-queue-";function nt(e){return 0===e.steering.length&&0===e.followUp.length}function nr(e){return e&&"inherit"!==e?e:"auto"}function nn(e){return e?.provider&&e.id?{provider:e.provider,modelId:e.id,name:e.name,reasoning:e.reasoning,thinking:e.thinking}:null}let ni=new Set(["ArrowUp","ArrowDown","PageUp","PageDown","Home","End"," ","Space","Spacebar"]);class na extends Error{constructor(e){super("timeout"===e?(0,d.Tl)("agentSession.eventStreamTimeout"):(0,d.Tl)("agentSession.eventStreamFailed")),this.status=e,this.name="EventStreamConnectionError"}}function no(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 ns(e){return new Promise(t=>setTimeout(t,e))}function nl(e){let t=e.findIndex(e=>!e.exiting);return -1===t?e:e.map((e,r)=>r===t?{...e,exiting:!0}:e)}function nd(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:nl(e.visible),pending:[...e.pending,t.notice]};return{...e,visible:[...e.visible,t.notice]};case"mark_oldest_exiting":return{...e,visible:nl(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=nl(r)),{visible:r,pending:n}}(e.visible.filter(e=>e.id!==t.id),e.pending);default:return e}}function nc(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 nu(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 np(e){let t=e.content;return"string"==typeof t?JSON.stringify({text:t,images:[]}):Array.isArray(t)?JSON.stringify({text:nc(e),images:t.map(nu).filter(Boolean)}):JSON.stringify({text:"",images:[]})}function nh(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 nf(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 ng(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 nm(e){return e.type.startsWith("image/")||"text/plain"===e.type||"text/markdown"===e.type}let nx=/\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/g,nv=/^\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/,ny=/\x1B\[([0-9;]*)m/g,nb=/\x1B_pi:c\x07/g,nw=["#1f2937","#dc2626","#16a34a","#d97706","#2563eb","#9333ea","#0891b2","#6b7280"],nk=["#9ca3af","#ef4444","#22c55e","#f59e0b","#3b82f6","#a855f7","#06b6d4","#e5e7eb"];function nj(e){return e.replace(nb,"").replace(nx,"")}function nS(e){let t=[],r=0;for(;r<e.length;){if(27===e.charCodeAt(r)){let t=e.slice(r).match(nv);if(t){r+=t[0].length;continue}}let n=e.codePointAt(r);if(void 0===n)break;let i=String.fromCodePoint(n);t.push({start:r,end:r+i.length,char:i}),r+=i.length}return t}function nC(e,t){let r=nS(e)[t];return r?e.slice(0,r.start)+e.slice(r.end):e}function nT(e){return nS(e)[0]?.char}let nI={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:""},nE={ArrowLeft:"\x1bb",ArrowRight:"\x1bf",ArrowUp:"\x1bp",ArrowDown:"\x1bn"};function nR(e,t=50){return e+t}function nM(e){return"user"===e.role||"custom"===e.role&&"compaction"===e.customType}function nW(e,t,r={}){let n={...e,content:t};return r.omitUsage&&(n.usage=void 0),n}function nz(){let{t:e}=(0,d.s9)(),[t,r]=(0,i.useState)(null);return(0,i.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:11,color:"var(--text-muted)"},children:["omp ",(0,n.jsx)("span",{style:{color:"var(--text)"},children:t?`v${t}`:e("chatWindow.versionNotFound")})]})}function n$({messageCount:e,toolCallCount:t,children:r}){let{t:a,tn:o}=(0,d.s9)(),[s,l]=(0,i.useState)(!1),c=[a("chatWindow.processDetails"),o("chatWindow.messageCount",e)];return t>0&&c.push(o("chatWindow.toolCallCount",t)),(0,n.jsxs)("div",{style:{marginBottom:12},children:[(0,n.jsxs)("button",{type:"button","aria-expanded":s,onClick:()=>l(e=>!e),className:"process-details-toggle",title:a(s?"chatWindow.collapseProcessDetails":"chatWindow.expandProcessDetails"),children:[(0,n.jsx)(eW.A,{size:12,strokeWidth:1.8,"aria-hidden":"true",style:{flexShrink:0,transform:s?"rotate(180deg)":"none",transition:"transform var(--dur-fast) var(--ease-out-warm)"}}),(0,n.jsx)("span",{className:"process-details-label",children:c.join(" \xb7 ")})]}),s&&(0,n.jsx)("div",{style:{marginTop:8},children:r})]})}let nA=(0,i.memo)(function({messages:e,entryIds:t,conversationMeta:r,messageRefs:a,isStreaming:o,sessionBusy:s,isNew:l,forkingEntryId:c,handleFork:u,handleNavigate:p,handleEditContent:h,modelNames:f,messageCwd:g,onOpenFile:m,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,i={})=>{let d=i.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=i.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&&o&&r===e.length-1&&(j=!1)}void 0!==i.showTimestamp&&(j=i.showTimestamp);let C=(0,n.jsx)(tw,{message:d,toolResults:S,modelNames:f,cwd:g,onOpenFile:m,entryId:t[r],onFork:s||l||0===r&&"user"===d.role?void 0:u,forking:c===t[r],onNavigate:s?void 0:p,prevAssistantEntryId:s?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!==i.attachRef&&void 0!==w?(0,n.jsx)("div",{ref:e=>{a.current[w]=e},children:C},`${k}-${r}`):C},E=[];for(let t=0;t<e.length;){if(!nM(e[t])){E.push(I(t)),t+=1;continue}let r=t,i=r+1;for(;i<e.length&&!nM(e[i]);)i+=1;let l=function(e,t,r){for(let i=r-1;i>t;i--){var n;if("assistant"===(n=e[i]).role&&e5(n).answerBlocks.some(e=>"image"===e.type||"text"===e.type&&e.text.trim().length>0))return i}for(let n=r-1;n>t;n--)if(e[n]?.role==="assistant")return n;return -1}(e,r,i);if(-1===l||(s||o)&&i===e.length&&r===C){for(let e=r;e<i;e++)E.push(I(e));t=i;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?e2(r).length>0:"custom"===r.role}),u=e[l],p=e5(u),h=p.processBlocks.length>0?nW(u,p.processBlocks,{omitUsage:!0}):null,f=p.answerBlocks.length>0?nW(u,p.answerBlocks):null,g=c.length+ +!!h;if(g>0){let t=c.map(e=>T.get(e)).find(e=>"number"==typeof e)??(f?void 0:T.get(l)),i=(0,n.jsxs)(n$,{messageCount:g,toolCallCount:function(e,t){let r=0;for(let n of t){let t=e[n];t?.role==="assistant"&&(r+=e4(e2(t)))}return r}(e,c)+e4(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=>{a.current[t]=e},children:i},`process-group-${r}-${l}`))}f&&E.push(I(l,{messageOverride:f}));for(let e=l+1;e<i;e++)E.push(I(e));t=i}let R=(0,i.useRef)(null),{startIndex:M,hasMore:W}=(0,i.useMemo)(()=>{let e=Math.max(0,E.length-y);if(b||null===R.current)return R.current=e,{startIndex:e,hasMore:e>0};let t=Math.min(R.current,e);return R.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:M})}),E.slice(M)]})});function nL({session:e,newSessionCwd:t,advisorEnabled:r,toolCallsDefaultCollapsed:a=!0,onAgentEnd:o,onSessionCreated:l,onSessionForked:c,modelsRefreshKey:u,chatInputRef:p,onBranchDataChange:h,onSystemPromptChange:f,onSystemPromptLoaderChange:g,onSessionStatsChange:m,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,i.useState)(()=>{let e=localStorage.getItem("omp-sound-enabled");return null===e||"true"===e}),r=(0,i.useRef)(e);(0,i.useEffect)(()=>{r.current=e},[e]),(0,i.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,i.useRef)(null),a=(0,i.useCallback)(()=>{if(n.current&&"closed"!==n.current.state)return n.current;try{n.current=new AudioContext}catch{return null}return n.current},[]),o=(0,i.useCallback)((e=!1)=>{if(!e&&!r.current)return;let t=a();t&&"suspended"===t.state&&t.resume().catch(()=>{})},[a]);return{soundEnabled:e,onSoundToggle:(0,i.useCallback)(()=>{let e=!r.current;e&&o(!0),r.current=e,localStorage.setItem("omp-sound-enabled",String(e)),t(e)},[o]),playDoneSound:(0,i.useCallback)(()=>{if(!r.current)return;let e=a();if(!e)return;let t=()=>{try{let t;t=e.currentTime,[523.25,659.25].forEach((r,n)=>{let i=e.createOscillator(),a=e.createGain();i.connect(a),a.connect(e.destination),i.type="sine",i.frequency.value=r;let o=t+.18*n;a.gain.setValueAtTime(0,o),a.gain.linearRampToValueAtTime(.18,o+.02),a.gain.exponentialRampToValueAtTime(.001,o+.45),i.start(o),i.stop(o+.45),i.onended=()=>{i.disconnect(),a.disconnect()}})}catch{}};"suspended"===e.state?e.resume().then(t).catch(()=>{}):t()},[a]),unlockAudio:o,soundEnabledRef:r}}(),C=(0,t9.a)(),T=(0,i.useRef)(j);T.current=j;let I=(0,i.useCallback)(()=>{T.current(),o?.()},[o]),E=(0,i.useCallback)(e=>{p?.current?.insertIfEmpty(e)},[p]),{loading:R,error:M,messages:W,entryIds:z,streamState:$,agentRunning:A,bashRunning:L,pendingBash:N,modelNames:F,modelList:D,modelsLoading:P,modelError:B,modelThinkingLevels:O,modelThinkingLevelMaps:H,thinkingLevel:U,fastModeEnabled:_,fastModeActive:V,liveModelMeta:K,retryInfo:q,contextUsage:Z,forkingEntryId:Y,isCompacting:J,compactResult:G,displayModel:X,sessionStats:Q,slashCommands:ee,slashCommandsLoading:et,queuedMessages:er,notices:en,extensionDialog:ei,extensionCustomUi:ea,extensionStatuses:eo,extensionWidgets:es,respondToExtensionUi:el,sendExtensionCustomInput:ed,isAutoModelSelection:ec,agentPhase:eu,activeGoal:ep,activePlan:eh,subagents:em,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:eR,handleModelChange:eM,handleSteer:eW,handleFollowUp:ez,handlePromptWithStreamingBehavior:e$,handleAbortCompaction:eA,removeQueuedMessage:eL,promoteQueuedToSteer:eN,handleBuiltinSlashCommand:eF,handleThinkingLevelChange:eD,handleFastModeChange:eP,handleCycleModel:eB,handleCycleThinkingLevel:eO,handleAbortRetry:eH,loadSlashCommands:eU}=function(e){let{session:t,newSessionCwd:r,advisorEnabled:n,onAgentEnd:a,onSessionCreated:o,onSessionForked:s,modelsRefreshKey:l,onBranchDataChange:c,onSystemPromptChange:u,onSystemPromptLoaderChange:p,onSessionStatsPanelOpen:h,onOpenSettingsTab:f,onOpenFile:g}=e,m=eg(),x=null===t&&null!==r,[v,y]=(0,i.useState)(null),[b,w]=(0,i.useState)(!x),[k,j]=(0,i.useState)(null),[S,C]=(0,i.useState)(null),[T,I]=(0,i.useState)([]),[E,R]=(0,i.useState)([]),[M,W]=(0,i.useReducer)(r3,{isStreaming:!1,streamingMessage:null}),[z,$]=(0,i.useState)(!1),[A,L]=(0,i.useState)(!1),[N,F]=(0,i.useState)(null),D=(0,i.useRef)(!0),[P,B]=(0,i.useState)({}),[O,H]=(0,i.useState)([]),[U,_]=(0,i.useState)(!1),[V,K]=(0,i.useState)(null),[q,Z]=(0,i.useState)(null),[Y,J]=(0,i.useState)({}),[G,X]=(0,i.useState)({}),[Q,ee]=(0,i.useState)(null),[et,er]=(0,i.useState)(null),[en,ei]=(0,i.useState)(()=>(function(e=rQ()){if(!e)return"default";try{let t=e.getItem(rX);return"none"===t||"default"===t||"full"===t?t:"default"}catch{return"default"}})()),[ea,eo]=(0,i.useState)("auto"),[es,el]=(0,i.useState)(!1),[ed,ec]=(0,i.useState)(void 0),[eu,ep]=(0,i.useState)("immediate"),[eh,em]=(0,i.useState)(!0),[ex,ev]=(0,i.useState)(!1),[ey,eb]=(0,i.useState)("all"),[ew,ek]=(0,i.useState)("all"),[ej,eS]=(0,i.useState)(null),[eC,eT]=(0,i.useState)(null),[eI,eE]=(0,i.useState)(null),[eR,eM]=(0,i.useState)(null),[eW,ez]=(0,i.useState)(null),[e$,eA]=(0,i.useState)(null),[eL,eN]=(0,i.useState)(!1),[eF,eD]=(0,i.useState)(null),[eP,eB]=(0,i.useState)(null),[eO,eH]=(0,i.useState)(null),[eU,e_]=(0,i.useState)([]),[eV,eK]=(0,i.useState)(!1),[eq,eZ]=(0,i.useReducer)(nd,{visible:[],pending:[]}),[eY,eJ]=(0,i.useState)(null),[eG,eX]=(0,i.useState)(null),[eQ,e0]=(0,i.useState)(null),[e1,e2]=(0,i.useState)([]),[e5,e4]=(0,i.useState)([]),[e6,e3]=(0,i.useState)({steering:[],followUp:[]}),[e8,e9]=(0,i.useState)([]),[e7,te]=(0,i.useState)({}),[tt,tr]=(0,i.useState)({}),[tn,ti]=(0,i.useState)([]),[ta,to]=(0,i.useState)(null),[ts,tl]=(0,i.useState)(null),td=e8.filter(e=>"history"!==e.source&&"started"===e.status).length,tc=(0,i.useRef)(null),tu=(0,i.useRef)(null),tp=(0,i.useRef)(t?.id??null),th=(0,i.useRef)(0),tf=(0,i.useRef)(!1),tg=(0,i.useRef)(!1),tm=(0,i.useRef)(0),tx=(0,i.useRef)(!1),tv=(0,i.useRef)(!1),ty=(0,i.useRef)(0),tb=(0,i.useRef)(null),tw=(0,i.useRef)(!1),tk=(0,i.useRef)(!1),tj=(0,i.useRef)(!0),tS=(0,i.useRef)(void 0),tC=(0,i.useRef)(0),tT=(0,i.useRef)(0),tI=(0,i.useRef)(null),tE=(0,i.useRef)(null),tR=(0,i.useRef)(null),tM=(0,i.useRef)(!1),tW=(0,i.useRef)(null),tz=(0,i.useRef)(null),t$=(0,i.useRef)(null),tA=(0,i.useRef)(0),tL=(0,i.useRef)(0),tN=(0,i.useRef)(null),tF=(0,i.useRef)(!1),tD=(0,i.useRef)(null);null===tD.current&&(tD.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,i=()=>{n&&(n(),n=null)},a=()=>{n=null;let t=r;r=null,t&&e(t)};return{push(o){if("message_update"===o.type){r=o,n||(n=t(a));return}if("message_end"===o.type)r=null,i();else if(r){i();let t=r;r=null,e(t)}e(o)},reset(){r=null,i()}}}(e=>{tb.current?.(e)}));let tP=tD.current,tB=e.setToolPreset??ei,tO=eW??v?.context.model??e$??null,tH=x?Q??et:eW??(q?{provider:q.provider,modelId:q.modelId}:v?.context.model??e$),tU=(0,i.useMemo)(()=>{if(eY)return eY;let e={input:0,output:0,cacheRead:0,cacheWrite:0,total:0},r=0,n=0,i=0,a=0,o=0;for(let t of T){if("user"===t.role&&(n+=1),"toolResult"===t.role&&(a+=1),"assistant"!==t.role)continue;i+=1;let s=t.usage;o+=t.content.filter(e=>"toolCall"===e.type).length,s&&(e.input+=s.input??0,e.output+=s.output??0,e.cacheRead+=s.cacheRead??0,e.cacheWrite+=s.cacheWrite??0,r+=s.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:tp.current??t?.id??"",sessionName:t?.name,userMessages:n,assistantMessages:i,toolCalls:o,toolResults:a,totalMessages:T.length,tokens:e,cost:r,...eC?{contextUsage:eC}:{}}},[T,eY,eC,v?.filePath,t?.id,t?.name]);(0,i.useEffect)(()=>{let e=t?.id;(tl(null),e)?to(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}`))):to(null)},[t?.id]),(0,i.useEffect)(()=>{z||tl(null)},[z]);let t_=(0,i.useMemo)(()=>{for(let e=0;e<tn.length;e++){let t=tn[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:tn.length,done:n,total:r.length}}return null},[tn]),tV=(0,i.useCallback)((e,t)=>{if(!e.length)return;let r=t?.skipNewerThan;e9(t=>{let n=new Map(t.map(e=>[e.id,e]));for(let t of e){let e=n.get(t.id);if(!e||void 0===r||!((e.lastUpdate??0)>=r)){if(!e){n.set(t.id,t);continue}if("history"!==t.source||"history"===e.source){if("history"!==t.source&&"history"===e.source){n.set(t.id,t);continue}n.set(t.id,{...e,...t})}}}return[...n.values()].sort((e,t)=>e.index-t.index||e.id.localeCompare(t.id))})},[]),tK=(0,i.useCallback)(async e=>{let t=tL.current;try{let r=await fetch(`/api/sessions/${encodeURIComponent(e)}/subagents`);if(!r.ok)return;let n=await r.json();if(tp.current!==e||tL.current!==t)return;let i=(n.subagents??[]).map(r9);tV(i)}catch{}},[tV]),tq=(0,i.useCallback)(async e=>{let t=Date.now(),r=tA.current,n=tL.current;try{let i=await (0,rw.$)(e,{type:"get_subagents"});if(tp.current!==e||tA.current!==r||tL.current!==n)return;let a=(i.subagents??[]).map(r6).filter(e=>void 0!==e);tV(a,{skipNewerThan:t});let o=new Set(a.map(e=>e.id));e9(e=>{let r=e.filter(e=>"live"!==e.source||o.has(e.id)||(e.lastUpdate??0)>=t);return r.length===e.length?e:r}),tK(e)}catch{}},[tV,tK]),tZ=(0,i.useCallback)(()=>{null!==tz.current&&(cancelAnimationFrame(tz.current),tz.current=null),tW.current=null,te({}),tr({})},[]),tY=(0,i.useRef)(0),tJ=(0,i.useCallback)(()=>(tY.current+=1,tY.current),[]),tG=(0,i.useCallback)((e,t)=>(void 0===t||t===tY.current)&&(tY.current+=1,Z(e),!e||(ez(t=>t&&(t.provider!==e.provider||t.modelId!==e.modelId)?null:t),!0)),[]),tX=(0,i.useCallback)(async e=>{let t=tJ();try{let r=await fetch(`/api/sessions/${encodeURIComponent(e)}/state`);if(!r.ok)return;let n=await r.json();if(tp.current!==e||!tG(nn(n.state?.model),t))return;n.state?.thinkingLevel!==void 0&&eo(nr(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&&em(n.state.autoCompactionEnabled),n.state?.steeringMode!==void 0&&eb(n.state.steeringMode),n.state?.followUpMode!==void 0&&ek(n.state.followUpMode)}catch{}},[tG,tJ]),tQ=(0,i.useCallback)(async(e,t=!1,r=!1,n)=>{let i=!1;try{t&&w(!0);let a=new URLSearchParams({deferThinking:"1",deferMedia:"1"}),o=await fetch(`/api/sessions/${encodeURIComponent(e)}?${a}`);if(404===o.status)return t&&(y(null),C(null),I([]),j(null)),null;if(!o.ok)throw Error(`HTTP ${o.status}`);let s=await o.json();if(tp.current!==e||void 0!==n&&tA.current!==n)return null;if(y(s),C(s.leafId),I(s.context.messages),R(s.context.entryIds??[]),ti(s.context.todoPhases??[]),tK(e),ez(null),j(null),s.context.thinkingLevel&&"off"!==s.context.thinkingLevel&&eo(s.context.thinkingLevel),i=!0,!r)return t&&w(!1),null;try{let r=tJ(),i=await fetch(`/api/sessions/${encodeURIComponent(e)}/state`);if(!i.ok)throw Error(`HTTP ${i.status}`);let a=await i.json();if(tp.current!==e||void 0!==n&&tA.current!==n)return t&&w(!1),null;let o=a.state,s=tG(nn(o?.model),r);return o?(void 0!==o.contextUsage&&eT(o.contextUsage??null),void 0!==o.systemPrompt&&eE(o.systemPrompt||null),s&&void 0!==o.thinkingLevel&&eo(nr(o.thinkingLevel)),void 0!==o.fastModeEnabled&&el(o.fastModeEnabled),ec(o.fastModeActive),void 0!==o.autoRetryEnabled&&ev(o.autoRetryEnabled),void 0!==o.interruptMode&&ep(o.interruptMode),void 0!==o.autoCompactionEnabled&&em(o.autoCompactionEnabled),void 0!==o.steeringMode&&eb(o.steeringMode),void 0!==o.followUpMode&&ek(o.followUpMode),void 0!==o.extensionStatuses&&e2(o.extensionStatuses??[]),void 0!==o.extensionWidgets&&e4(o.extensionWidgets??[]),void 0!==o.todoPhases&&ti(o.todoPhases??[]),0===o.queuedMessageCount&&Date.now()-tm.current>=5e3&&e3(r7)):!a.running&&Date.now()-tm.current>=5e3&&e3(r7),t&&w(!1),a}catch(e){return console.error("Failed to load agent state:",e),t&&w(!1),null}}catch(e){return j(String(e)),null}finally{t&&!i&&w(!1)}},[tK,tG,tJ]),t0=(0,i.useCallback)(async(e,t)=>{let r=++th.current;try{let n=new URLSearchParams({deferThinking:"1",deferMedia:"1"});t&&n.set("leafId",t);let i=`/api/sessions/${encodeURIComponent(e)}/context?${n}`,a=await fetch(i);if(!a.ok)throw Error(`HTTP ${a.status}`);let o=await a.json();if(tp.current!==e||th.current!==r)return;I(o.context.messages),R(o.context.entryIds??[]),ti(o.context.todoPhases??[])}catch(e){console.error("Failed to load context:",e)}},[]),t1=(0,i.useCallback)((e=0,t)=>{t??=(0,d.Tl)("agentSession.noMessages");let n=tp.current;x&&r&&n&&!tM.current&&(tM.current=!0,o?.({id:n,path:"",cwd:r,name:void 0,created:new Date().toISOString(),modified:new Date().toISOString(),messageCount:e,firstMessage:t}))},[x,r,o]),t5=(0,i.useCallback)(async()=>{if(tp.current||!x||!r)return tp.current;if(tR.current)return tR.current;let e=(async()=>{let e=Q??et;e&&eA(e);let t="none"===en?[...rY]:"full"===en?[...rG]:[...rJ],i=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"!==ea?{thinkingLevel:ea}:{},...n?{advisor:!0}:{}})});if(!i.ok)throw Error(`HTTP ${i.status}`);let a=(await i.json()).sessionId;return tp.current=a,a})();tR.current=e;try{return await e}finally{tR.current=null}},[n,x,r,Q,et,en,ea]),t4=(0,i.useCallback)(async()=>{let e=tp.current??await t5();if(!e)return;let t=await (0,rw.$)(e,{type:"get_state"});D.current&&tp.current===e&&eE(t.systemPrompt??"")},[t5]),t6=(0,i.useCallback)(async()=>{let e=tp.current??await t5();if(!e)return e_([]),[];eK(!0);try{let t=await (0,rw.$)(e,{type:"get_commands"}),r=(t?.commands??[]).map(ng).filter(e=>null!==e);return e_(r),r}catch(e){return console.error("Failed to load slash commands:",e),e_([]),[]}finally{eK(!1)}},[t5]),t3=(0,i.useRef)(null),t8=(0,i.useCallback)(e=>{tc.current&&(tc.current.close(),tc.current=null),tP.reset();let t=new EventSource(`/api/agent/${encodeURIComponent(e)}/events`);return tc.current=t,new Promise(r=>{let n=!1,i=e=>{n||(n=!0,clearTimeout(a),r({status:e,source:t}))},a=setTimeout(()=>i("timeout"),6e4);t.onopen=()=>i("connected"),t.onmessage=e=>{try{let t=JSON.parse(e.data);"connected"===t.type&&i("connected"),tP.push(t)}catch{}},t.onerror=()=>{t.readyState===EventSource.CLOSED&&(i("closed"),tc.current===t&&tx.current&&(tc.current=null,tu.current&&clearTimeout(tu.current),tu.current=setTimeout(()=>{tu.current=null,tx.current&&tp.current===e&&(t8(e),t3.current?.(e))},1e3)))}})},[tP]),t9=(0,i.useCallback)(async(e,t)=>{let r=tp.current;if(eX(t=>t?.id===e.id?null:t),r)try{await (0,rw.$)(r,{type:"extension_ui_response",id:e.id,...t})}catch(e){console.error("Failed to send extension UI response:",e)}},[]),t7=(0,i.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"]}}],[]),re=(0,i.useCallback)(async e=>{try{await (0,rw.$)(e,{type:"set_host_tools",tools:t7})}catch{}},[t7]),rt=(0,i.useMemo)(()=>[{scheme:"pi-web",description:"Browser-integrated resources: pi-web://clipboard reads/writes the user's clipboard via the web UI.",writable:!0}],[]),rr=(0,i.useCallback)(async e=>{try{await (0,rw.$)(e,{type:"set_host_uri_schemes",schemes:rt})}catch{}},[rt]);t3.current=e=>{re(e),rr(e),tq(e)};let rn=(0,i.useCallback)(async(e,t,r,n=!1)=>{try{await (0,rw.$)(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)}},[]),ri=(0,i.useCallback)(async(e,t,r)=>{let n=tp.current;if(!n)return;let i=e=>"string"==typeof e?e:void 0;switch(t){case"open_url":{let t="string"==typeof r.url?r.url:"",i=no(t),a=i?t:"";if(a&&1){let e=window.open(a,"_blank","noopener,noreferrer");e?.focus?.()}let o=i?t?`Opened ${t}`:"No URL provided":"Unsafe or invalid URL not opened";await rn(n,e,o,!i&&!!t);break}case"notify":{let t=i(r.title)??"OMP",a=i(r.message)??"";if("u">typeof Notification)try{if("granted"===Notification.permission)new Notification(t,{body:a});else if("default"===Notification.permission){let e=await Notification.requestPermission();"granted"===e&&new Notification(t,{body:a})}}catch{}await rn(n,e,"Notification shown");break}case"open_file":{let t=i(r.path)??"";if(t&&g)try{let e=t.split(/[\\/]/).pop()||t;g(t,e,n)}catch{}await rn(n,e,t?`Opened ${t}`:"No path provided",!t);break}default:await rn(n,e,`Host tool "${t}" is not available in omp-web`,!0)}},[g,rn]),ra=(0,i.useCallback)(async(e,t,r)=>{try{await (0,rw.$)(e,{type:"host_uri_result",id:t,...r})}catch(e){console.error("Failed to send host URI result:",e)}},[]),ro=(0,i.useCallback)(async(e,t,r,n)=>{let i=tp.current;if(!i)return;let a=r.replace(/^pi-web:\/\//i,"")||"";if("clipboard"===a){if("read"===t){if("u"<typeof navigator||!navigator.clipboard?.readText)return void await ra(i,e,{isError:!0,error:"Clipboard read is not available in this browser"});try{let t=await navigator.clipboard.readText();await ra(i,e,{content:t||"(clipboard is empty)",contentType:"text/plain"})}catch{await ra(i,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 ra(i,e,{});return}catch{await ra(i,e,{isError:!0,error:"Clipboard write failed in this browser"});return}return void await ra(i,e,{isError:!0,error:"Clipboard write is not available in this browser"})}await ra(i,e,{isError:!0,error:`Unknown pi-web resource: ${a}`})},[ra]),rs=(0,i.useCallback)(async(e,t)=>{let r=tp.current;if(r)try{await (0,rw.$)(r,{type:"extension_ui_input",id:e.id,data:t})}catch(e){console.error("Failed to send extension custom UI input:",e)}},[]),rl=(0,i.useCallback)(e=>{let t=e.message.trim();t&&eZ({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"}})},[]),rd=(0,i.useCallback)(async e=>{let t,r=setTimeout(()=>{rl({type:"info",message:(0,d.Tl)("agentSession.startingAgent")})},4e3);try{t=await t8(e)}finally{clearTimeout(r)}if("connected"!==t.status&&t.source.readyState!==EventSource.OPEN)throw tc.current===t.source&&(tc.current=null),t.source.close(),new na(t.status)},[rl,t8]),rc=(0,i.useCallback)(t=>{switch(t.method){case"select":case"confirm":case"input":case"editor":eX(t);break;case"cancel":eX(e=>e?.id===t.targetId?null:e);break;case"open_url":{let e=t.launchUrl??t.url,r=no(e)?e:"";if(r)try{window.open(r,"_blank","noopener,noreferrer")}catch{}rl({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":rl({id:t.id,message:t.message,type:t.notifyType??"info"});break;case"setStatus":e2(e=>{let r=e.filter(e=>e.key!==t.statusKey);return t.statusText?[...r,{key:t.statusKey,text:t.statusText}]:r});break;case"setWidget":e4(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":e0(e=>t.closed?e?.id===t.id?null:e:t)}},[rl,e.chatInputRef]),ru=(0,i.useCallback)(async(e=tp.current,t)=>{if(void 0===t||tA.current===t)try{e&&await tQ(e,!1,!0,t)}finally{if(void 0!==t&&tA.current!==t||(tN.current=null,!tx.current))return;tx.current=!1,$(!1),eH(null),eS(null),e9([]),tL.current+=1,tZ(),e&&tK(e),W({type:"end"}),a?.()}},[tQ,a,tK,tZ]),rp=(0,i.useCallback)(async(e,t)=>{await ns(800);let r=Date.now();for(;D.current&&tp.current===e&&tx.current&&Date.now()-r<2e4;){if(void 0!==t&&tA.current!==t)return;try{let r=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(r.ok){let n=await r.json(),i=n.state;if(!n.running||!i||!i.isStreaming&&!i.isPromptRunning)return void await ru(e,t)}}catch{}await ns(600)}},[ru]),rh=(0,i.useCallback)(async e=>{let t=ty.current+1;for(ty.current=t;tv.current&&ty.current===t&&tp.current===e;){await ns(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 tQ(e),ty.current!==t||tp.current!==e)return;tv.current=!1,L(!1),F(null);return}catch{}}},[tQ]),rf=(0,i.useCallback)(async e=>{if(!tx.current)return;let t=tA.current;try{let r=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(!r.ok)return;let n=await r.json();if(tA.current!==t)return;let i=n.state;if(tf.current=i?.isCompacting??!1,eN(i?.isCompacting??!1),i?.todoPhases!==void 0&&ti(i.todoPhases??[]),tq(e),(!i||0===i.queuedMessageCount)&&Date.now()-tm.current>=5e3&&e3(r7),n.running&&i&&(i.isStreaming||i.isPromptRunning||i.isCompacting)||!tx.current)return;i&&(void 0!==i.contextUsage&&eT(i.contextUsage??null),void 0!==i.systemPrompt&&eE(i.systemPrompt??null),void 0!==i.extensionStatuses&&e2(i.extensionStatuses??[]),void 0!==i.extensionWidgets&&e4(i.extensionWidgets??[])),await ru(e,t)}catch{}},[ru,tq]);(0,i.useEffect)(()=>{if(!z)return;let e=()=>{let e=tp.current;e&&rf(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)}},[z,rf]),(0,i.useEffect)(()=>{tx.current=z},[z]);let rg=(0,i.useCallback)(e=>{e&&e3(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})},[]),rm=(0,i.useCallback)(e=>{e&&e3(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)}})},[]),rx=(0,i.useCallback)(e=>{e&&e3(t=>{let r=t.followUp.indexOf(e);return -1===r?t:{steering:[...t.steering,e],followUp:t.followUp.filter((e,t)=>t!==r)}})},[]);(0,i.useEffect)(()=>{let e=tp.current;if(!e)return;let t=nt(e6);(!t||tF.current)&&(tF.current=!t,function(e,t){try{let r=ne+e;if(nt(t))return void sessionStorage.removeItem(r);let n=t,i=JSON.stringify(n);for(;i.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)},i=JSON.stringify(n);if(i.length>5e4)return void sessionStorage.removeItem(r);sessionStorage.setItem(r,i)}catch{}}(e,e6))},[e6]),tb.current=(0,i.useCallback)(e=>{switch(e.type){case"agent_start":tg.current=!1,tx.current=!0,$(!0),eH({kind:"waiting_model"}),W({type:"start"});break;case"agent_end":if(!1===e.isTerminal)break;if(tg.current){tg.current=!1;break}if(!tx.current)break;let t=tp.current,r=tA.current;if(tx.current=!1,$(!1),eH(null),eS(null),e9([]),tL.current+=1,tZ(),W({type:"end"}),t){tQ(t,!1,!1,r);let e=tJ();fetch(`/api/agent/${encodeURIComponent(t)}`).then(e=>e.ok?e.json():null).then(n=>{!n?.state?.model||tp.current!==t||tA.current!==r||tG(nn(n.state.model),e)&&(n.state?.contextUsage!==void 0&&eT(n.state.contextUsage??null),n.state?.systemPrompt!==void 0&&eE(n.state.systemPrompt||null),n.state?.fastModeEnabled!==void 0&&el(n.state.fastModeEnabled),ec(n.state?.fastModeActive),n.state?.extensionStatuses!==void 0&&e2(n.state.extensionStatuses??[]),n.state?.extensionWidgets!==void 0&&e4(n.state.extensionWidgets??[]),n.state?.todoPhases!==void 0&&ti(n.state.todoPhases??[]),(!n.state||0===n.state.queuedMessageCount)&&Date.now()-tm.current>=5e3&&e3(r7))}).catch(()=>{})}a?.();break;case"prompt_result":if(!1!==e.agentInvoked||!tx.current)break;ru(tp.current,tA.current);break;case"prompt_error":rl({type:"error",message:e.errorMessage??(0,d.Tl)("agentSession.commandFailed")}),tx.current&&ru(tp.current,tA.current);break;case"notice":{let t=e.level,r=e.message?.trim()??"";/^xd:\/\/:\s*mounted\s+mcp__/i.test(r)?ef.oR.info("MCP tools updated",r,{clamp:!0}):rl({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)?ef.oR.info("MCP tools updated",t,{clamp:!0}):t&&rl({type:"info",message:t});break}case"thinking_level_changed":eo(nr(e.thinkingLevel));break;case"model_changed":{let e=tp.current;if(!e)break;let t=tJ();fetch(`/api/agent/${encodeURIComponent(e)}`).then(e=>e.ok?e.json():null).then(r=>{!r?.state?.model||tp.current!==e||tG(nn(r.state.model),t)&&(void 0!==r.state.thinkingLevel&&eo(nr(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&&em(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&&tG(nn(t)),void 0!==e.thinkingLevel&&eo(nr(e.thinkingLevel));break}case"available_commands_update":e_((e.commands??[]).map(ng).filter(e=>null!==e));break;case"message_start":case"message_update":{if(!tx.current)break;let t=e.message;if(t?.role==="user")break;t&&W({type:"update",message:rZ(t)}),eH(null);break}case"message_end":{if(!tx.current)break;let t=e.message;if(t&&"user"===t.role){let e=rZ(t),r=np(e),n=tN.current;tN.current=null,rg(nc(e)),I(t=>{let i=t[t.length-1];return n&&i?.role==="user"&&np(i)===n?n===r?t:[...t.slice(0,-1),e]:[...t,e]})}else t?.role==="custom"&&"xdev-mount-notice"===t.customType?ef.oR.info("MCP tools updated",nc(t).trim()||"The MCP tool inventory changed.",{clamp:!0}):t&&I(e=>[...e,rZ(t)]);W({type:"reset"}),eH({kind:"waiting_model"});break}case"tool_execution_start":{let t=e.toolCallId,r=e.toolName;eH(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&&tp.current&&rf(tp.current),eH(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":tp.current&&rf(tp.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":eN(!0),eD(null),eB(null);break;case"auto_compaction_end":eN(!1),e.errorMessage?(eD(e.errorMessage),eB(null)):e.aborted||e.skipped||(eB(nh(e.result,"auto")),tp.current&&tQ(tp.current));break;case"subagent_lifecycle":{let t=function(e){if(!r0(e))return;let t=r1(e.id),r=r1(e.status);if(!t||!r||"started"!==r&&"completed"!==r&&"failed"!==r&&"aborted"!==r)return;let n={id:t,agent:r1(e.agent)??"subagent",status:r,index:r2(e.index)??-1,lastUpdate:Date.now(),source:"live"},i=r5(e.agentSource);void 0!==i&&(n.agentSource=i);let a=r1(e.description);void 0!==a&&(n.description=a);let o=r1(e.sessionFile);void 0!==o&&(n.sessionFile=o);let s=r1(e.parentToolCallId);return void 0!==s&&(n.parentToolCallId=s),"boolean"==typeof e.detached&&(n.detached=e.detached),n}(e.payload);if(!t)break;tV([t]);break}case"host_tool_call":{let t="string"==typeof e.id?e.id:"",r="string"==typeof e.toolName?e.toolName:"",n=r0(e.arguments)?e.arguments:{};t&&r&&ri(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",i="string"==typeof e.content?e.content:void 0;t&&r&&ro(t,n,r,i);break}case"subagent_progress":{let t=e.payload,r=r4(t?.progress),n=r?.id,i="number"==typeof t?.index?t.index:r?.index??-1,a="string"==typeof t?.parentToolCallId?t.parentToolCallId:null,o="string"==typeof t?.task&&t.task.trim()?t.task:r?.task??null,s="string"==typeof t?.assignment?t.assignment:r?.assignment;if(!n&&!o&&!a&&i<0)break;e9(e=>{if(0===e.length)return e;let l=-1;if(n?l=e.findIndex(e=>e.id===n):(a&&i>=0&&(l=e.findIndex(e=>e.parentToolCallId===a&&e.index===i)),-1===l&&a&&(l=e.findIndex(e=>e.parentToolCallId===a)),-1===l&&i>=0&&(l=e.findIndex(e=>e.index===i))),-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}:{},...o?{task:o}:{},...void 0!==s?{assignment:s}:{},...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){(tW.current??(tW.current=new Set)).add(r),null===tz.current&&(tz.current=requestAnimationFrame(()=>{tz.current=null;let e=tW.current;tW.current=null,e&&0!==e.size&&tr(t=>{let r=t;for(let t of e)r={...r,[t]:(r[t]??0)+1};return r8(r)})}));let e=function(e){if(!r0(e))return null;let t=r0(e.event)?e.event:null;if(!t)return null;let r=r1(t.type),n=Date.now();if("tool_execution_start"===r){let e=r1(t.toolName)??"tool",r=r1(t.intent)?.trim();if(r)return{kind:"tool",label:`→ ${e} — ${r}`,ts:n};let i=r0(t.args)?Object.keys(t.args).slice(0,3).join(", "):void 0;return{kind:"tool",label:i?`→ ${e} (${i})`:`→ ${e}`,ts:n}}if("message_end"===r){let e=r0(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=>r0(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=r1(t.message);if(e)return{kind:"notice",label:e.slice(0,140),ts:n}}return null}(t);e&&te(t=>{let n=t[r]??[],i=n.length>=50?[...n.slice(n.length-50+1),e]:[...n,e],a={...t};return delete a[r],a[r]=i,r8(a)})}break}case"extension_ui_request":rc(e)}},[rl,rg,ru,rc,ri,ro,tQ,tV,a,rf,tZ,tG,tJ]);let rv=(0,i.useCallback)(async(n,i)=>{let a=n.trim();if(!a&&!i?.length||tx.current||tv.current)return!1;let o=!i?.length&&a.startsWith("/");if(!i?.length&&a.startsWith("!")){let e=a.startsWith("!!"),t=(e?a.slice(2):a.slice(1)).trim();return!!t&&(await tS.current?.(t,e),!0)}let s=tA.current+1,{userMsg:l,piImages:c}=nf(n,i);I(e=>[...e,l]),tN.current=np(l),tA.current=s,tx.current=!0,$(!0),eH(o?{kind:"running_command"}:{kind:"waiting_model"}),W({type:"start"}),tk.current=!0,tj.current=!0,tC.current=0;try{let e=null;if(x&&r){let t=tp.current??await tR.current,r=t??await t5();r&&(e=r,t1(1,n),Q&&(eA(Q),t&&await (0,rw.$)(r,{type:"set_model",provider:Q.provider,modelId:Q.modelId})),await rd(r),tq(r),await (0,rw.$)(r,{type:"prompt",message:n,...c?.length?{images:c}:{}}))}else t&&(e=t.id,await rd(t.id),tq(t.id),re(t.id),rr(t.id),await (0,rw.$)(t.id,{type:"prompt",message:n,...c?.length?{images:c}:{}}));return o&&e&&rp(e,s),!0}catch(r){console.error("Failed to send message:",r);let t=tN.current;return t&&I(e=>{let r=e[e.length-1];return r?.role==="user"&&np(r)===t?e.slice(0,-1):e}),rl({type:"error",message:r instanceof na?r.message:(0,d.Tl)("agentSession.sendFailed",{detail:r instanceof Error?r.message:String(r)})}),n&&e.chatInputRef?.current?.insertIfEmpty(n),tN.current=null,tx.current=!1,$(!1),eH(null),W({type:"end"}),!1}},[x,r,Q,t,t5,rd,t1,rp,rl,e.chatInputRef,tq,re,rr]),ry=(0,i.useCallback)(async(e,t)=>{let r=e.trim();if(!r&&!t?.length)return!1;let n=tp.current;if(!n||!tx.current)return!1;let{userMsg:i,piImages:a}=nf(e,t);I(e=>[...e,i]),tN.current=np(i),tg.current=!0,tk.current=!0,tj.current=!0,tC.current=0;try{return await rd(n),tq(n),await (0,rw.$)(n,{type:"abort_and_prompt",message:r,...a?.length?{images:a}:{}}),!0}catch(t){console.error("Failed to interrupt and reply:",t),tg.current=!1;let e=tN.current;return e&&I(t=>{let r=t[t.length-1];return r?.role==="user"&&np(r)===e?t.slice(0,-1):t}),tN.current=null,rl({type:"error",message:t instanceof Error?t.message:String(t)}),!1}},[rl,rd,tq]);tS.current=(0,i.useCallback)(async(r,n)=>{if(tx.current||tv.current)return;let i=`${n?"!!":"!"}${r}`;tv.current=!0,F({command:r,excludeFromContext:n}),L(!0);try{let e=tp.current??t?.id??await t5();if(!e)throw Error((0,d.Tl)("agentSession.shellSessionFailed"));await (0,rw.$)(e,{type:"bash",command:r,excludeFromContext:n}),await tQ(e),t1(1,i)}catch(t){console.error("Failed to execute shell command:",t),rl({type:"error",message:t instanceof Error?t.message:String(t)}),e.chatInputRef?.current?.insertIfEmpty(i)}finally{tv.current=!1,F(null),L(!1)}},[rl,t5,tQ,e.chatInputRef,t1,t]);let rb=(0,i.useCallback)(async()=>{let e=tp.current;if(e){if(tv.current){try{await (0,rw.$)(e,{type:"abort_bash"})}catch(e){console.error("Failed to abort bash:",e)}return}try{await (0,rw.$)(e,{type:"abort"})}catch(e){console.error("Failed to abort:",e)}}},[]),rk=(0,i.useCallback)(async e=>{if(tv.current)return;let t=tp.current;if(t){eM(e);try{let{cancelled:r,newSessionId:n}=await (0,rw.$)(t,{type:"fork",entryId:e})??{};!r&&n&&s?.(n)}catch(e){console.error("Fork failed:",e)}finally{eM(null)}}},[s]),rj=(0,i.useCallback)(async e=>{if(tv.current||tx.current)return;let t=tp.current;t&&(C(e),await t0(t,e))},[t0]),rS=(0,i.useCallback)(async e=>{if(tv.current||tx.current)return;C(e);let t=tp.current;t&&await t0(t,e)},[t0]),rC=(0,i.useCallback)(async(e,t)=>{if(x){ee({provider:e,modelId:t}),eA({provider:e,modelId:t});let r=tp.current??await tR.current;if(!r)return;try{await (0,rw.$)(r,{type:"set_model",provider:e,modelId:t})}catch(e){console.error("Failed to set model:",e)}return}let r=tp.current;if(r)try{await (0,rw.$)(r,{type:"set_model",provider:e,modelId:t}),ez({provider:e,modelId:t}),tX(r)}catch(e){console.error("Failed to set model:",e)}},[x,ee,tX]),rT=(0,i.useCallback)(async e=>{let t=tp.current??await tR.current??await t5();if(t)try{let r=await (0,rw.$)(t,{type:"set_fast_mode",enabled:e});el(r?.enabled??e),ec(r?.active),tX(t)}catch(e){console.error("Failed to change Fast mode:",e),rl({type:"error",message:e instanceof Error?e.message:String(e)})}},[rl,t5,tX]),rI=(0,i.useCallback)(async e=>{let t=tp.current??await tR.current;if(t){ev(e);try{await (0,rw.$)(t,{type:"set_auto_retry",enabled:e})}catch(t){ev(t=>t===e?!e:t),rl({type:"error",message:t instanceof Error?t.message:String(t)})}}},[rl]),rE=(0,i.useCallback)(async e=>{let t=tp.current??await tR.current;if(t){ep(e);try{await (0,rw.$)(t,{type:"set_interrupt_mode",mode:e})}catch(e){console.error("Failed to change interrupt mode:",e),rl({type:"error",message:e instanceof Error?e.message:String(e)})}}},[rl]),rR=(0,i.useCallback)(async e=>{let t=tp.current??await tR.current;if(t){em(e);try{await (0,rw.$)(t,{type:"set_auto_compaction",enabled:e})}catch(e){console.error("Failed to change auto-compaction:",e),rl({type:"error",message:e instanceof Error?e.message:String(e)})}}},[rl]),rM=(0,i.useCallback)(async e=>{let t=tp.current??await tR.current;if(t){eb(e);try{await (0,rw.$)(t,{type:"set_steering_mode",mode:e})}catch(e){console.error("Failed to change steering mode:",e),rl({type:"error",message:e instanceof Error?e.message:String(e)})}}},[rl]),rW=(0,i.useCallback)(async e=>{let t=tp.current??await tR.current;if(t){ek(e);try{await (0,rw.$)(t,{type:"set_follow_up_mode",mode:e})}catch(e){console.error("Failed to change follow-up mode:",e),rl({type:"error",message:e instanceof Error?e.message:String(e)})}}},[rl]),rz=(0,i.useCallback)(async()=>{let e=tp.current;if(e)try{await (0,rw.$)(e,{type:"cycle_model"}),tX(e)}catch(e){console.error("Failed to cycle model:",e),rl({type:"error",message:e instanceof Error?e.message:String(e)})}},[rl,tX]),r$=(0,i.useCallback)(async()=>{let e=tp.current;if(e)try{await (0,rw.$)(e,{type:"cycle_thinking_level"}),tX(e)}catch(e){console.error("Failed to cycle thinking level:",e),rl({type:"error",message:e instanceof Error?e.message:String(e)})}},[rl,tX]),rA=(0,i.useCallback)(async()=>{let e=tp.current;if(e){eS(null);try{await (0,rw.$)(e,{type:"abort_retry"})}catch(e){console.error("Failed to abort retry:",e),rl({type:"error",message:e instanceof Error?e.message:String(e)})}}},[rl]),rL=(0,i.useCallback)(async()=>{let e=tp.current;if(e&&!tf.current&&!tx.current&&!tv.current)try{await (0,rw.$)(e,{type:"handoff"}),await tQ(e,!0),tX(e)}catch(e){rl({type:"error",message:e instanceof Error?e.message:String(e)})}},[rl,tQ,tX]),rN=(0,i.useCallback)(async()=>{let e=tp.current;if(e&&!tf.current&&!eL){tf.current=!0,eN(!0),eD(null),eB(null);try{let t=await (0,rw.$)(e,{type:"compact"});eB(nh(t,"manual")),await tQ(e,!0),tX(e)}catch(e){eD(e instanceof Error?e.message:String(e)),eB(null)}finally{tf.current=!1,eN(!1)}}},[eL,tQ,tX]),rF=(0,i.useCallback)(async e=>{_(!0);try{let n=r??t?.cwd??"",i=n?`/api/models?cwd=${encodeURIComponent(n)}`:"/api/models",a=await fetch(i,e?{signal:e}:void 0);if(!a.ok)throw Error(`HTTP ${a.status}`);let o=await a.json();B(o.models),K(o.modelError??null),J(o.thinkingLevels??{}),X(o.thinkingLevelMaps??{});let s=o.modelList??[];if(H(s),x){let e=(o.defaultModel?s.find(e=>e.id===o.defaultModel?.modelId&&e.provider===o.defaultModel?.provider):void 0)??s[0];er(e?{provider:e.provider,modelId:e.id}:null)}}catch(t){e?.aborted||K(t instanceof Error?t.message:String(t))}finally{_(!1)}},[x,r,t?.cwd]),rD=(0,i.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,i=n.trim(),a=tp.current??await t5(),o=e=>(e.handled&&(e.error?rl({type:"error",message:e.error}):"openSessionStats"!==e.action&&rl({type:"success",message:e.message??(0,d.Tl)("agentSession.commandCompleted")})),e);try{switch(r){case"compact":{if(!a||tf.current||eL)return o({handled:!0,error:(0,d.Tl)("agentSession.noSessionToCompact")});tf.current=!0,eN(!0),eD(null),eB(null);let e=await (0,rw.$)(a,{type:"compact",...i?{customInstructions:i}:{}});return eB(nh(e,"manual")),await tQ(a,!0),tf.current=!1,eN(!1),t1(),o({handled:!0,message:(0,d.Tl)("agentSession.compactedContext")})}case"reload":if(!a)return o({handled:!0,error:(0,d.Tl)("agentSession.noSessionToReload")});return await (0,rw.$)(a,{type:"reload"}),await Promise.all([tQ(a,!1,!0),t6(),rF()]),o({handled:!0,message:(0,d.Tl)("agentSession.reloadedResources")});case"name":if(!a)return o({handled:!0,error:(0,d.Tl)("agentSession.noSessionToName")});if(!i)return o({handled:!0,error:(0,d.Tl)("agentSession.nameUsage")});return await (0,rw.$)(a,{type:"set_session_name",name:i}),await tQ(a),t1(),o({handled:!0,message:(0,d.Tl)("agentSession.sessionRenamed",{name:i})});case"session":{if(!a)return o({handled:!0,error:(0,d.Tl)("agentSession.noActiveSession")});let e=await (0,rw.$)(a,{type:"get_session_stats"});return e&&eJ(e),h?.(),o({handled:!0,action:"openSessionStats"})}case"agents":return f?.("agents"),o({handled:!0,action:"openSettings"});case"copy":{if(!a)return o({handled:!0,error:(0,d.Tl)("agentSession.noActiveSession")});let e=await (0,rw.$)(a,{type:"get_last_assistant_text"}),t=e?.text??"";if(!t)return o({handled:!0,error:(0,d.Tl)("agentSession.noMessageToCopy")});return await navigator.clipboard.writeText(t),o({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 o({handled:!0,error:(0,d.Tl)("agentSession.commandRequiresArgs",{command:t.command,usage:(0,d.Tl)(t.argumentHintKey)})});if("plan"===r&&tl({objective:i}),!await rv(t.prompt))return"plan"===r&&tl(null),{handled:!0,retainInput:!0};if("goal"===r){let e=function(e,t=Date.now()){return{objective:e.trim(),startedAt:t}}(i);to(e);let t=tp.current;t&&sessionStorage.setItem(`ompgui:goal:${t}`,JSON.stringify(e))}return{handled:!0}}}}catch(e){return o({handled:!0,error:e instanceof Error?e.message:String(e)})}finally{"compact"===r&&(tf.current=!1,eN(!1))}},[rl,t5,rv,eL,rF,tQ,t6,t1,f,h]),rP=e=>e?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType})),rB=(0,i.useCallback)(async(t,r)=>{let n=tp.current;if(!n)return;let i=rP(r);try{await (0,rw.$)(n,{type:"steer",message:t,...i?.length?{images:i}:{}}),tm.current=Date.now(),e3(e=>({...e,steering:[...e.steering,t]}))}catch(r){console.error("Failed to steer:",r),rl({type:"error",message:r instanceof Error?r.message:String(r)}),e.chatInputRef?.current?.insertIfEmpty(t)}},[rl,e.chatInputRef]),rO=(0,i.useCallback)(async(t,r,n)=>{let i=tp.current;if(!i)return;let a=rP(n);try{await (0,rw.$)(i,{type:"prompt",message:t,streamingBehavior:r,...a?.length?{images:a}:{}}),tm.current=Date.now(),e3(e=>"steer"===r?{...e,steering:[...e.steering,t]}:{...e,followUp:[...e.followUp,t]})}catch(r){console.error("Failed to queue prompt:",r),rl({type:"error",message:r instanceof Error?r.message:String(r)}),e.chatInputRef?.current?.insertIfEmpty(t)}},[rl,e.chatInputRef]),rH=(0,i.useCallback)(async(t,r)=>{let n=tp.current;if(!n)return;let i=rP(r);try{await (0,rw.$)(n,{type:"follow_up",message:t,...i?.length?{images:i}:{}}),tm.current=Date.now(),e3(e=>({...e,followUp:[...e.followUp,t]}))}catch(r){console.error("Failed to follow up:",r),rl({type:"error",message:r instanceof Error?r.message:String(r)}),e.chatInputRef?.current?.insertIfEmpty(t)}},[rl,e.chatInputRef]),rU=(0,i.useCallback)(async()=>{let e=tp.current;if(e)try{await (0,rw.$)(e,{type:"abort_compaction"})}catch(e){console.error("Failed to abort compaction:",e)}},[]),r_=(0,i.useCallback)(async e=>{if(eo(e),"auto"===e)return;let t=tp.current??await tR.current;if(t)try{await (0,rw.$)(t,{type:"set_thinking_level",level:e}),tX(t)}catch(e){console.error("Failed to set thinking level:",e)}},[tX]),rV=(0,i.useCallback)(async e=>{tB(e),function(e,t=rQ()){if(t)try{t.setItem(rX,e)}catch{}}(e),(tp.current??await tR.current)&&rl({type:"info",message:(0,d.Tl)("agentSession.toolPresetNotice")})},[tB,rl]),rK=(0,i.useCallback)((e="smooth")=>{let t=tE.current,r=tI.current;t&&r&&(tT.current=Date.now()+700,r.scrollIntoView({block:"nearest",behavior:m?"instant":e}))},[m]),rq=(0,i.useCallback)(e=>{e instanceof KeyboardEvent&&(!ni.has(e.key)||e.target instanceof Element&&e.target.closest("input, textarea, [contenteditable='true']"))||(tC.current=Date.now()+1200)},[]),nl=(0,i.useCallback)(()=>{let e=Date.now()<=tC.current;if(!e&&Date.now()<tT.current||!e)return;let t=tE.current,r=tI.current;t&&r&&(tj.current=r.getBoundingClientRect().bottom-t.getBoundingClientRect().bottom<=24)},[]);(0,i.useEffect)(()=>(t&&(tp.current=t.id,tQ(t.id,!0,!0).then(e=>{if(e?.running){if(e.state?.isStreaming||e.state?.isPromptRunning){tx.current=!0,$(!0),eH(e.state.isStreaming?{kind:"waiting_model"}:{kind:"running_command"}),W({type:"start"}),t8(t.id),re(t.id),rr(t.id),t$.current&&(clearTimeout(t$.current),t$.current=null);let r=t.id;t$.current=setTimeout(()=>{t$.current=null,tp.current===r&&tq(r)},600),!e.state.isStreaming&&e.state.isPromptRunning&&rp(t.id)}e.state?.isBashRunning&&(tv.current=!0,L(!0),rh(t.id))}if(e?.state){if(void 0!==e.state.isCompacting&&eN(e.state.isCompacting),void 0!==e.state.contextUsage&&eT(e.state.contextUsage??null),void 0!==e.state.systemPrompt&&eE(e.state.systemPrompt||null),void 0!==e.state.extensionStatuses&&e2(e.state.extensionStatuses??[]),void 0!==e.state.extensionWidgets&&e4(e.state.extensionWidgets??[]),0===e.state.queuedMessageCount&&Date.now()-tm.current>=5e3){e3(r7);var r=t.id;if(r)try{sessionStorage.removeItem(ne+r)}catch{}}else if("number"==typeof e.state.queuedMessageCount){let e=function(e){try{let t=sessionStorage.getItem(ne+e);if(!t)return null;let r=JSON.parse(t),n=e=>Array.isArray(e)?e.filter(e=>"string"==typeof e):[],i={steering:n(r?.steering),followUp:n(r?.followUp)};return nt(i)?null:i}catch{return null}}(t.id);e&&e3(t=>nt(t)?e:t)}}})),()=>{ty.current+=1,tD.current?.reset(),tc.current?.close(),tc.current=null,tu.current&&(clearTimeout(tu.current),tu.current=null),t$.current&&(clearTimeout(t$.current),t$.current=null),null!==tz.current&&(cancelAnimationFrame(tz.current),tz.current=null),tW.current=null}),[tq,re,rr]),(0,i.useEffect)(()=>{u?.(eI)},[eI,u]),(0,i.useEffect)(()=>(p?.(t4),()=>p?.(null)),[t4,p]),(0,i.useEffect)(()=>{c&&c(v?.tree??[],S,rS)},[v?.tree,S,rS,c]),(0,i.useEffect)(()=>(window.addEventListener("keydown",rq),window.addEventListener("pointerdown",rq,{passive:!0}),()=>{window.removeEventListener("keydown",rq),window.removeEventListener("pointerdown",rq)}),[rq]),(0,i.useEffect)(()=>{let e=tE.current;if(e)return e.addEventListener("wheel",rq,{passive:!0}),e.addEventListener("touchstart",rq,{passive:!0}),e.addEventListener("scroll",nl,{passive:!0}),()=>{e.removeEventListener("wheel",rq),e.removeEventListener("touchstart",rq),e.removeEventListener("scroll",nl)}},[T.length,b,nl,rq]);let nu=(0,i.useRef)(null),nm=(0,i.useRef)(null);return(0,i.useEffect)(()=>{let e=t?.id??null;nm.current!==e&&(nm.current=e,tw.current=!1,tj.current=!0,tk.current=!1,null!==nu.current&&(cancelAnimationFrame(nu.current),nu.current=null))},[t?.id]),(0,i.useEffect)(()=>{if(T.length>0||M.isStreaming)if(tk.current)tk.current=!1,tw.current=!0,rK(M.isStreaming||tx.current?"instant":"smooth");else if(tw.current)tj.current&&null===nu.current&&(nu.current=requestAnimationFrame(()=>{nu.current=null,tj.current&&rK(tx.current||M.isStreaming?"instant":"smooth")}));else{if(b)return;tw.current=!0,rK("instant")}},[T,M,z,eO,e5,eL,ej,td,tn,rK,b]),(0,i.useEffect)(()=>()=>{D.current=!1,null!==nu.current&&cancelAnimationFrame(nu.current)},[]),(0,i.useEffect)(()=>{let e=new AbortController;return rF(e.signal).catch(e=>{if(e instanceof DOMException&&"AbortError"===e.name)return}),()=>e.abort()},[rF,l]),(0,i.useEffect)(()=>{if(!eF)return;let e=setTimeout(()=>eD(null),3e3);return()=>clearTimeout(e)},[eF]),(0,i.useEffect)(()=>{if(!eP)return;let e=setTimeout(()=>eB(null),6e3);return()=>clearTimeout(e)},[eP]),(0,i.useEffect)(()=>{if(0===eq.visible.length)return;let e=eq.visible.find(e=>e.exiting);if(e){let t=setTimeout(()=>{eZ({type:"remove",id:e.id})},180);return()=>clearTimeout(t)}if(!eq.visible[0])return;let t=setTimeout(()=>{eZ({type:"mark_oldest_exiting"})},5e3);return()=>clearTimeout(t)},[eq.visible]),(0,i.useEffect)(()=>{eJ(null)},[T.length,eC?.tokens,eC?.percent,eC?.contextWindow]),{data:v,loading:b,error:k,activeLeafId:S,messages:T,entryIds:E,streamState:M,agentRunning:z,modelNames:P,modelList:O,modelsLoading:U,modelError:V,modelThinkingLevels:Y,modelThinkingLevelMaps:G,newSessionModel:Q,toolPreset:en,thinkingLevel:ea,fastModeEnabled:es,fastModeActive:ed,autoRetryEnabled:ex,interruptMode:eu,autoCompactionEnabled:eh,steeringMode:ey,followUpMode:ew,liveModelMeta:q,retryInfo:ej,contextUsage:eC,systemPrompt:eI,forkingEntryId:eR,isCompacting:eL,compactError:eF,compactResult:eP,currentModel:tO,displayModel:tH,sessionStats:tU,slashCommands:eU,slashCommandsLoading:eV,queuedMessages:e6,notices:eq.visible,extensionDialog:eG,extensionCustomUi:eQ,extensionStatuses:e1,extensionWidgets:e5,respondToExtensionUi:t9,sendExtensionCustomInput:rs,isAutoModelSelection:x&&null===Q,agentPhase:eO,subagents:e8,subagentEvents:e7,subagentTranscriptVersions:tt,activeSubagentCount:td,currentTodoPhase:t_,todoPhases:tn,activeGoal:ta,activePlan:ts,isNew:x,sessionIdRef:tp,messagesEndRef:tI,scrollContainerRef:tE,pendingScrollToUserRef:tk,initialScrollDoneRef:tw,handleSend:rv,handleAbort:rb,handleFork:rk,handleNavigate:rj,handleModelChange:rC,handleFastModeChange:rT,handleAutoRetryChange:rI,handleInterruptModeChange:rE,handleAutoCompactionChange:rR,handleSteeringModeChange:rM,handleFollowUpModeChange:rW,handleCycleModel:rz,handleCycleThinkingLevel:r$,handleAbortRetry:rA,handleInterruptAndReply:ry,handleCompact:rN,handleHandoff:rL,handleSteer:rB,handleFollowUp:rH,handlePromptWithStreamingBehavior:rO,handleAbortCompaction:rU,removeQueuedMessage:rm,promoteQueuedToSteer:rx,handleBuiltinSlashCommand:rD,handleToolPresetChange:rV,handleThinkingLevelChange:r_,loadSlashCommands:t6,setActiveLeafId:C,setData:y,setMessages:I,dispatch:W,setAgentRunning:$,setForkingEntryId:eM,bashRunning:A,pendingBash:N,handleAgentEventRef:tb}}({session:e,newSessionCwd:t,advisorEnabled:r,onAgentEnd:I,onSessionCreated:l,onSessionForked:c,modelsRefreshKey:u,chatInputRef:p,onBranchDataChange:h,onSystemPromptChange:f,onSystemPromptLoaderChange:g,onSessionStatsPanelOpen:x,onOpenSettingsTab:v,onOpenFile:b}),e_=A||L;(0,i.useEffect)(()=>(s=e_?eI:null,()=>void(s=null)),[e_,eI]),(0,i.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,eK]=(0,i.useState)(50),eq=(0,i.useRef)(null),eZ=e?.id??(t?`new:${t}`:"empty");(0,i.useEffect)(()=>{eq.current!==eZ&&(eq.current=eZ,eK(50))},[eZ]);let[eY,eJ]=(0,i.useState)(null),[eG,eX]=(0,i.useState)(!0);(0,i.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,i.useRef)(null),e0=(0,i.useRef)(null),e1=(0,i.useRef)("auto");(0,i.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",eK(e=>nR(e)))},{root:t,rootMargin:"400px 0px 0px 0px",threshold:0});return r.observe(e),()=>r.disconnect()},[eV,W.length,eC]),(0,i.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,i.useCallback)(()=>{let e=eC.current;e&&(e0.current=e.scrollHeight-e.scrollTop),e1.current="click",eK(e=>nR(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,i.useRef)(Q);e4.current=Q,(0,i.useEffect)(()=>{m?.(e4.current)},[e5,m]),(0,i.useEffect)(()=>()=>{m?.(null)},[m]);let e6=Z?`${Z.percent??"null"}|${Z.contextWindow}|${Z.tokens??"null"}`:null,e3=(0,i.useRef)(Z);e3.current=Z,(0,i.useEffect)(()=>{y?.(e3.current)},[e6,y]),(0,i.useEffect)(()=>()=>{y?.(null)},[y]);let{isDragOver:e8,handleDragEnter:e9,handleDragOver:e7,handleDragLeave:te,handleDrop:tt}=function(e){let[t,r]=(0,i.useState)(!1),n=(0,i.useRef)(0);(0,i.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 a=(0,i.useCallback)(e=>{Array.from(e.dataTransfer.items).some(nm)&&(e.preventDefault(),n.current+=1,r(!0))},[]),o=(0,i.useCallback)(e=>{Array.from(e.dataTransfer.items).some(nm)&&e.preventDefault()},[]);return{isDragOver:t,handleDragEnter:a,handleDragOver:o,handleDragLeave:(0,i.useCallback)(()=>{n.current-=1,n.current<=0&&(n.current=0,r(!1))},[]),handleDrop:(0,i.useCallback)(t=>{t.preventDefault(),n.current=0,r(!1),e(Array.from(t.dataTransfer.files))},[e])}}((0,i.useCallback)(e=>{e_||p?.current?.addFiles(e)},[e_,p])),tr=(0,i.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,i.useMemo)(()=>{let e=new Map,t=-1,r=new Map,n=0;return W.forEach((i,a)=>{"toolResult"===i.role&&e.set(i.toolCallId,i),nM(i)&&(t=a),("user"===i.role||"assistant"===i.role)&&r.set(a,n++)}),{toolResultsMap:e,lastAnchorIdx:t,visibleRefIndexByMessage:r}},[W]),ti=function(e){let t=(0,i.useRef)([]),r=(0,i.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),ta=(0,i.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]),to=(0,i.useMemo)(()=>{if(eu?.kind!=="running_tools")return[];let e=new Set(ta),t=$.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,ta,$.streamingMessage]),ts=ek&&0===W.length&&!$.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,K):null,tc=X?H[`${X.provider}:${X.modelId}`]??null:null,tu=(0,n.jsx)(ry,{ref:p,onSend:eT,onAbort:eI,onSteer:A?eW:void 0,onFollowUp:A?ez:void 0,onPromptWithStreamingBehavior:A?e$:void 0,isStreaming:e_,model:X,isAutoModelSelection:ec,modelNames:F,modelList:D,modelsLoading:P,modelError:B,onModelChange:eM,onAbortCompaction:eA,isCompacting:J,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:K?.name??null,retryInfo:q,activeGoal:ep,activePlan:eh,advisorEnabled:r,queuedMessages:er,inputHistory:tr,contextUsage:Z,onRemoveQueuedMessage:eL,onPromoteQueuedToSteer:eN,slashCommands:ee,slashCommandsLoading:et,onLoadSlashCommands:eU,onBuiltinCommand:eF,onAudioUnlock:S,draftKey:e?.id??(t?`new:${t}`:void 0),cwd:e?.cwd??t}),tp=es.filter(e=>"belowEditor"!==e.placement),th=es.filter(e=>"belowEditor"===e.placement);return R?(0,n.jsx)("div",{role:"status",className:"flex h-full items-center justify-center",style:{color:"var(--text-muted)"},children:w("chatWindow.loadingSession")}):M?(0,n.jsx)("div",{role:"alert",className:"flex h-full items-center justify-center",style:{color:"var(--accent-strong)",padding:"0 16px",textAlign:"center",fontSize:13},children:M}):(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 z-50 flex items-center justify-center backdrop-blur-[1px]",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"})]})]})]}),ei&&(0,n.jsx)(rb,{request:ei,onRespond:el}),(0,n.jsx)(rI,{subagent:eY,sessionId:e?.id??ej.current??null,transcriptVersion:eY?ev[eY.id]??0:0,events:eY?ex[eY.id]??[]:void 0,onClose:()=>eJ(null)}),ea&&(0,n.jsx)(nP,{request:ea,onInput:ed}),ts?(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:12,marginLeft:8,marginRight:8,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:2,flexShrink:0},children:[(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-muted)"},children:["gui ",(0,n.jsxs)("span",{style:{color:"var(--text)"},children:["v","0.4.5"]})]}),(0,n.jsx)(nz,{})]})]}),(0,n.jsx)(nD,{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:36*!C,zIndex:40,padding:"0 16px",pointerEvents:"none"},children:(0,n.jsx)("div",{style:{maxWidth:960,margin:"0 auto"},children:(0,n.jsx)(nD,{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)(nN,{statuses:eo}),(0,n.jsx)(nF,{widgets:tp}),(0,n.jsx)(nA,{messages:W,entryIds:z,conversationMeta:tn,messageRefs:ti,isStreaming:$.isStreaming,sessionBusy:e_,isNew:ek,forkingEntryId:Y,handleFork:eE,handleNavigate:eR,handleEditContent:E,modelNames:F,messageCwd:tl,onOpenFile:b,sessionId:e?.id??ej.current??void 0,toolCallsDefaultCollapsed:a,visibleCount:eV,nearBottom:eG,sentinelRef:eQ,handleLoadMoreClick:e2}),$.isStreaming&&$.streamingMessage&&(0,n.jsx)(tw,{message:$.streamingMessage,isStreaming:!0,modelNames:F,cwd:tl,onOpenFile:b,toolCallsDefaultCollapsed:a}),a&&to.map(e=>(0,n.jsxs)("div",{role:"status","aria-label":w("chatWindow.runningNamed",{names:e.name}),style:{display:"flex",alignItems:"center",gap:7,marginBottom:8,padding:"6px 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:12},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:11},children:e.name})]},e.id)),A&&!$.streamingMessage&&0===to.length&&(0,n.jsxs)("div",{role:"status","aria-live":"polite",className:"py-2 text-[13px] text-text-muted flex items-center gap-2",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&&!N&&(0,n.jsxs)("div",{role:"status","aria-live":"polite",className:"py-2 text-[13px] text-text-muted flex items-center gap-2",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")})]}),N&&(0,n.jsx)(tw,{message:{role:"bashExecution",command:N.command,output:"",excludeFromContext:N.excludeFromContext},sessionId:e?.id??ej.current??void 0}),(0,n.jsx)("div",{ref:eS})]})})}),C?null:(0,n.jsx)(rM,{messages:W,scrollContainer:eC,messageRefs:ti})]}),(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)(rq,{todoPhases:ew,subagents:em,onSelectSubagent:eJ}),(0,n.jsx)(nF,{widgets:th})]})}),tu]})]})]})}function nN({statuses:e}){return 0===e.length?null:(0,n.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:4,marginBottom:8},children:e.map(e=>(0,n.jsxs)("div",{className:"ui-compact-surface",style:{display:"flex",alignItems:"center",gap:6,maxWidth:"100%",padding:"4px 8px",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:12},children:[(0,n.jsx)("span",{style:{color:"var(--accent)",fontFamily:"var(--font-mono)",fontSize:11},children:e.key}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.text})]},e.key))})}function nF({widgets:e}){return 0===e.length?null:(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6,marginBottom:8},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:11,fontFamily:"var(--font-mono)"},children:e.key}),(0,n.jsx)("pre",{style:{margin:0,padding:"8px 9px",color:"var(--text-muted)",fontSize:12,lineHeight:1.5,whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"var(--font-mono)"},children:e.lines.join("\n")})]},e.key))})}function nD({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,i)=>{let a="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:8,minHeight:36,height:36,maxHeight:48,marginBottom:4*(i!==e.length-1),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:12,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:a,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 nP({request:e,onInput:t}){let{t:r}=(0,d.s9)(),a=(0,i.useRef)(null),o=(0,i.useRef)(!1),s=function(e){let t=/^[┌├└╭╰][─┬┴┼]+[┐┤┘╮╯]$/,r=[];for(let n of e){let e=n.replace(nb,""),i=nj(e).trimEnd();if(t.test(i))continue;let a=e,o=nT(a);("│"===o||"┃"===o)&&" "===nT(a=nC(a,0))&&(a=nC(a,0));let s=function(e){let t=nS(e);for(let e=t.length-1;e>=0;e--)if(""!==t[e].char.trim())return e;return -1}(a),l=s>=0?nS(a)[s]?.char:void 0;("│"===l||"┃"===l)&&(a=nC(a,s)),r.push(function(e){let t=e;for(;;){let e=nS(t),r=e[e.length-1];if(!r||""!==r.char.trim())return t;t=t.slice(0,r.start)+t.slice(r.end)}}(a))}for(;r.length>0&&""===nj(r[0]).trim();)r.shift();for(;r.length>0&&""===nj(r[r.length-1]).trim();)r.pop();return r.length?r:e}(e.lines);return(0,i.useEffect)(()=>{a.current?.focus()},[e.id]),(0,n.jsx)("div",{style:{position:"absolute",inset:0,zIndex:95,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")||a.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:a,"aria-label":r("chatWindow.extensionTerminalInput"),autoCapitalize:"off",autoComplete:"off",autoCorrect:"off",spellCheck:!1,onKeyDown:r=>{if(o.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=nE[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":" ":nI[e.key]??null}(r);n&&(r.preventDefault(),r.stopPropagation(),t(e,n))},onInput:r=>{if(o.current||r.nativeEvent.isComposing)return;let n=r.currentTarget.value;r.currentTarget.value="",n&&t(e,n)},onCompositionStart:()=>{o.current=!0},onCompositionEnd:r=>{o.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:12,padding:"10px 12px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("div",{style:{color:"var(--text)",fontSize:13,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:12},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:13,lineHeight:1.45,whiteSpace:"pre"},children:(s.length?s:[""]).map((e,t,r)=>{var a;return(0,n.jsxs)(i.Fragment,{children:[(a=`line-${t}`,(function(e){let t,r=[],n={},i=0;for(ny.lastIndex=0;null!==(t=ny.exec(e));)t.index>i&&r.push({text:e.slice(i,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=nw[n-30];else if(n>=90&&n<=97)r.color=nk[n-90];else if(n>=40&&n<=47)r.background=nw[n-40];else if(n>=100&&n<=107)r.background=nk[n-100];else if((38===n||48===n)&&2===t[e+1]){let[i,a,o]=[t[e+2],t[e+3],t[e+4]];[i,a,o].every(e=>"number"==typeof e&&Number.isFinite(e))&&(38===n?r.color=`rgb(${i}, ${a}, ${o})`:r.background=`rgb(${i}, ${a}, ${o})`),e+=4}else if((38===n||48===n)&&5===t[e+1]){let i=function(e){if(e>=0&&e<8)return nw[e];if(e>=8&&e<16)return nk[e-8];if(e>=16&&e<=231){let t=e-16,r=Math.floor(t/36),n=Math.floor(t%36/6),i=e=>0===e?0:55+40*e;return`rgb(${i(r)}, ${i(n)}, ${i(t%6)})`}if(e>=232&&e<=255){let t=8+(e-232)*10;return`rgb(${t}, ${t}, ${t})`}}(t[e+2]);i&&(38===n?r.color=i:r.background=i),e+=2}}return r}(n,t[1]?t[1].split(";").map(e=>Number(e||"0")):[0]),i=t.index+t[0].length;return i<e.length&&r.push({text:e.slice(i),style:n}),r})(e).map((e,t)=>Object.keys(e.style).length>0?(0,n.jsx)("span",{style:e.style,children:e.text},`${a}-${t}`):e.text)),t<r.length-1?"\n":null]},t)})})]})})}function nB({tabs:e,activeTabId:t,onSelectTab:r,onCloseTab:a}){let{t:o}=(0,d.s9)(),[s,l]=(0,i.useState)(null),c=(0,i.useRef)(null);return(0,i.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(),i=r.getBoundingClientRect();i.left<n.left?e.scrollLeft-=n.left-i.left:i.right>n.right&&(e.scrollLeft+=i.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:36},children:e.map(i=>{let d=i.id===t;return(0,n.jsxs)("div",{"data-tab-id":i.id,className:"tabbar-tab ui-focus-ring",onClick:()=>r(i.id),role:"tab",tabIndex:d?0:-1,"aria-selected":d,"aria-label":i.filePath,onKeyDown:t=>{if(("Enter"===t.key||" "===t.key)&&(t.preventDefault(),r(i.id)),("Delete"===t.key||"Backspace"===t.key)&&(t.preventDefault(),a(i.id)),"ArrowRight"===t.key||"ArrowLeft"===t.key){t.preventDefault();let n=e.findIndex(e=>e.id===i.id),a=e[(n+("ArrowRight"===t.key?1:-1)+e.length)%e.length];if(a){r(a.id);let e=c.current?.querySelector(`[data-tab-id="${CSS.escape(a.id)}"]`);e?.focus()}}},onMouseDown:e=>{1===e.button&&e.preventDefault()},onAuxClick:e=>{1===e.button&&(e.preventDefault(),e.stopPropagation(),a(i.id))},style:{display:"flex",alignItems:"center",gap:6,height:36,paddingLeft:12,paddingRight:6,borderRight:"1px solid var(--border)",background:d?"var(--bg)":"var(--bg-panel)",cursor:"pointer",fontSize:12,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:ei(i.label,13)}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",flex:1,fontWeight:d?500:400},title:i.filePath,children:i.label}),(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),a(i.id)},tabIndex:-1,className:"tabbar-close ui-focus-ring",onMouseEnter:()=>l(i.id),onMouseLeave:()=>l(null),style:{display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,background:s===i.id?"var(--bg-hover)":"transparent",border:"none",borderRadius:"var(--radius-control)",color:s===i.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:o("tabBar.close"),"aria-label":o("tabBar.closeTab",{label:i.label}),children:(0,n.jsx)(x.A,{size:11,strokeWidth:2,"aria-hidden":"true"})})]},i.id)})})}function nO(e){return"message"===e.type&&"message"in e}function nH(e){if(!nO(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 nU(e){let t=e,r=t.branchPreview,n=t.entry;nO(t.entry)&&(r??=nH(t.entry),n=t.entry);let i=t.compressedEntryIds?.length??0;for(;1===t.children.length;)t=t.children[0],r??=t.branchPreview??nH(t.entry),!nO(n)&&nO(t.entry)&&(n=t.entry),i+=1+(t.compressedEntryIds?.length??0);return{node:t,skipped:i,branchPreview:r,labelEntry:n}}let n_=(0,i.memo)(function e({node:t,activePathIds:r,depth:a,isLast:o,parentLines:s,onSelect:l}){let{t:c}=(0,d.s9)(),{node:u,skipped:p,branchPreview:h,labelEntry:f}=(0,i.useMemo)(()=>nU(t),[t]),g=u.entry.id,m=t.entry.id,x=r.has(g),v=r.has(m)||r.has(g),y=(0,i.useMemo)(()=>h?.text??nH(f)?.text??f.type,[h,f]),b=(0,i.useMemo)(()=>h?.role??("message"===f.type&&"message"in f?f.message.role:null),[h,f]);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:[s.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:o?"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:10,color:"var(--text-dim)",marginRight:5,flexShrink:0},children:["+",p]}),(0,n.jsx)("span",{style:{fontSize:11,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,i)=>(0,n.jsx)(e,{node:t,activePathIds:r,depth:a+1,isLast:i===u.children.length-1,parentLines:[...s,!o],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=nU(t.node).node.entry.id;return e.activePathIds.has(n)===t.activePathIds.has(n)&&e.activePathIds.has(r)===t.activePathIds.has(r)});function nV({tree:e,activeLeafId:t,onLeafChange:r,inline:a,containerRef:o,open:s,onToggle:l,hasSession:c}){let{t:u}=(0,d.s9)(),[p,h]=(0,i.useState)(!1),f=void 0!==s?s:p,g=(0,i.useRef)(null),[m,x]=(0,i.useState)(null);(0,i.useEffect)(()=>{if(!f||!a)return;let e=o?.current??g.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)}},[f,a,o]),(0,i.useEffect)(()=>{if(!f||!a)return;let e=()=>{l?l():h(!1)},t=t=>{let r=g.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)}},[f,a,o,l]);let v=(0,i.useMemo)(()=>t?new Set(function e(r,n){for(let i of r){let r=[...n,i.entry.id];if(i.entry.id===t||i.compressedEntryIds?.includes(t))return r;let a=e(i.children,r);if(a)return a}return null}(e,[])??[]):new Set,[e,t]),y=(0,i.useCallback)(e=>{r(e),void 0===s&&h(!1)},[r,s]),b=(0,i.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,i.useMemo)(()=>{let t=e.length>0?nU(e[0]):null;return t?.node??null},[e]),k=(0,i.useMemo)(()=>e.length>1?e:w&&w.children.length>1?w.children:[],[w,e]),j=!b&&k.length>0,S=(0,n.jsx)(e$.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:f?"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 a?(0,n.jsxs)("div",{style:{height:"100%",display:"flex",alignItems:"center"},children:[(0,n.jsx)("button",{ref:g,onClick:()=>l?l():h(e=>!e),className:"shell-toolbar-btn ui-focus-ring",style:{background:f?"var(--bg-selected)":void 0,color:f?"var(--text)":void 0},title:u("branchNavigator.branches"),"aria-label":u("branchNavigator.branches"),"aria-haspopup":"menu","aria-expanded":f,children:S}),f&&m&&(0,n.jsx)("div",{"data-branch-panel":!0,className:"dropdown-surface",style:{position:"fixed",top:m.top,left:m.left,width:m.width,maxHeight:m.height,overflowY:"auto",zIndex:600},children:j?(0,n.jsx)("div",{style:{padding:"4px 12px 8px 12px",maxHeight:260,overflowY:"auto"},children:k.map((e,t)=>(0,n.jsx)(n_,{node:e,activePathIds:v,depth:0,isLast:t===k.length-1,parentLines:[],onSelect:y},e.entry.id))}):(0,n.jsx)("div",{style:{padding:"10px 16px",fontSize:12,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:6,width:"100%",padding:"5px 12px",background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",fontSize:11,textAlign:"left"},children:[S,(0,n.jsx)("span",{style:{color:"var(--text-muted)"},children:u("branchNavigator.branches")}),C]}),f&&(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:"4px 12px 8px 12px",maxHeight:260,overflowY:"auto"},children:k.map((e,t)=>(0,n.jsx)(n_,{node:e,activePathIds:v,depth:0,isLast:t===k.length-1,parentLines:[],onSelect:y},e.entry.id))}):(0,n.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:b??u("branchNavigator.noBranches")})})]})}function nK(){let{locale:e,setLocale:t,t:r}=(0,d.s9)(),a=(0,t9.a)(),[o,s]=(0,i.useState)(!1),[l,c]=(0,i.useState)(0),u=(0,i.useRef)(null),p=(0,i.useRef)([]),h=(0,i.useId)(),f=`${h}-listbox`,g=Math.max(0,d.YZ.findIndex(t=>t.value===e)),m=d.YZ[g];(0,i.useEffect)(()=>{o||c(g)},[g,o]),(0,i.useEffect)(()=>{o&&p.current[l]?.focus()},[o,l]);let x=(e=!0)=>{s(!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)||s(!1)},children:[(0,n.jsxs)("button",{ref:u,type:"button",onClick:()=>s(e=>!e),onKeyDown:e=>{("ArrowDown"===e.key||"Enter"===e.key||" "===e.key||"ArrowUp"===e.key)&&(e.preventDefault(),s(!0),c("ArrowUp"===e.key?d.YZ.length-1:g))},title:r("languageSwitcher.switchTo",{language:m.label}),"aria-haspopup":"menu","aria-expanded":o,"aria-controls":o?f:void 0,className:"shell-toolbar-btn ui-focus-ring",style:{width:"auto",minWidth:a?44:36,padding:"0 8px",gap:4,background:o?"var(--bg-selected)":void 0,color:o?"var(--text)":void 0,fontSize:11,whiteSpace:"nowrap"},children:[m.label,(0,n.jsx)(eW.A,{size:10,strokeWidth:2,"aria-hidden":"true",style:{flexShrink:0,transform:o?"rotate(180deg)":"none",transition:"transform var(--dur-fast) var(--ease-out-warm)"}})]}),o&&(0,n.jsx)("ul",{id:f,role:"menu",className:"dropdown-surface animate-slide-down",style:{position:"absolute",top:"calc(100% + 4px)",right:0,zIndex:50,minWidth:120,margin:0,padding:4,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 i=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":i||void 0,onClick:()=>v(t.value),onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background=i?"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:8,padding:"7px 10px",border:0,borderRadius:5,background:i?"var(--bg-selected)":"transparent",color:i?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:12,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}),i&&(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 nq=r(91669),nZ=r(96304),nY=r(47603),nJ=r(78890),nG=r(61663),nX=r(61491),nQ=r(16449),n0=r(96793),n1=r(7834);let n2=(0,a.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)(ir,{})}),n5="ompgui:sidebar-width",n4="ompgui:tool-calls-collapsed",n6="ompgui:right-panel-width";function n3(e){return Math.min(520,Math.max(200,Math.round(e)))}function n8(e){return Math.min(960,Math.max(300,Math.round(e)))}function n9(){return n8(.42*window.innerWidth)}let n7=(0,a.default)(()=>r.e(9182).then(r.bind(r,9182)).then(e=>e.SettingsConfig),{loadableGenerated:{webpack:()=>[9182]},ssr:!1,loading:()=>(0,n.jsx)(ii,{})}),ie=(0,a.default)(()=>r.e(6604).then(r.bind(r,96604)).then(e=>e.UsageConfig),{loadableGenerated:{webpack:()=>[96604]},ssr:!1,loading:()=>(0,n.jsx)(ii,{})}),it=(0,a.default)(()=>Promise.all([r.e(8717),r.e(1133)]).then(r.bind(r,11133)).then(e=>e.CommandPalette),{loadableGenerated:{webpack:()=>[11133]},ssr:!1});function ir(){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:12},children:e("appShell.loading")})}function ii(){let{t:e}=(0,d.s9)();return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:1e3,background:"var(--overlay-backdrop)",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:12},children:e("appShell.loading")})}function ia(){let e,t,r,a,l,u,p,h,f,g,m,x,v,y=(0,o.useRouter)(),b=(0,o.useSearchParams)(),[w]=(0,i.useState)(()=>{let e;return{requestedCwd:e=b.get("cwd")?.trim()||null,sessionId:e?null:b.get("session")}}),{isDark:k,preference:j,toggleTheme:S}=(0,n0.DP)(),{t:T,locale:I}=(0,d.s9)(),E=(0,t9.a)(),[R,M]=(0,i.useState)(null),[W,z]=(0,i.useState)(null),[$,A]=(0,i.useState)(()=>w.requestedCwd?"validating":"idle"),[L,N]=(0,i.useState)(null),[F,D]=(0,i.useState)(0),[P,B]=(0,i.useState)(0),[O,H]=(0,i.useState)(0),[U,_]=(0,i.useState)(!1),[V,K]=(0,i.useState)(null),[q,Z]=(0,i.useState)(!1),[Y,J]=(0,i.useState)(0),[G,X]=(0,i.useState)(!1),[Q,ee]=(0,i.useState)(!0),[et,er]=(0,i.useState)(!1),[en,ei]=(0,i.useState)(260),[ea,es]=(0,i.useState)(!0),[el,ed]=(0,i.useState)(!1),ec=(0,i.useRef)(null),eu=(0,i.useRef)(null),ep=(0,i.useRef)(260);(0,i.useEffect)(()=>{ei(function(){try{let e=window.localStorage.getItem(n5),t=e?Number(e):NaN;return Number.isFinite(t)?n3(t):260}catch{return 260}}());try{es("false"!==window.localStorage.getItem(n4))}catch{}},[]);let eh=(0,i.useCallback)(e=>{es(e);try{window.localStorage.setItem(n4,String(e))}catch{}},[]),eg=(0,i.useRef)(!1);(0,i.useEffect)(()=>{if(!eg.current){eg.current=!0;return}if(!el)try{window.localStorage.setItem(n5,String(en))}catch{}},[en,el]);let[em,ex]=(0,i.useState)(!1),[ev,ey]=(0,i.useState)(!1);(0,i.useEffect)(()=>{E&&ee(!1)},[E]),(0,i.useEffect)(()=>{er(!0)},[]),(0,i.useEffect)(()=>{X("true"===localStorage.getItem("omp-advisor-enabled"))},[]);let eb=(0,i.useCallback)(e=>{X(e),localStorage.setItem("omp-advisor-enabled",String(e))},[]);(0,i.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";ef.oR.info((0,d.Tl)("appShell.ompUpdateAvailable"),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6,marginTop:4},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:6},children:[(0,n.jsx)("code",{style:{background:"var(--bg-panel)",padding:"3px 7px",borderRadius:"var(--radius-control)",fontSize:11,fontFamily:"var(--font-mono)"},children:t}),(0,n.jsx)("button",{type:"button",onClick:()=>{(0,n1.D)(t).then(()=>ef.oR.success((0,d.Tl)("appShell.commandCopied"))).catch(()=>ef.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:11},children:(0,d.Tl)("appShell.copyCommand")})]})]}))}).catch(()=>{}),()=>e.abort()},[]),(0,i.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";ef.oR.info((0,d.Tl)("appShell.appUpdateAvailable"),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6,marginTop:4},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:6},children:[(0,n.jsx)("code",{style:{background:"var(--bg-panel)",padding:"3px 7px",borderRadius:"var(--radius-control)",fontSize:11,fontFamily:"var(--font-mono)"},children:t}),(0,n.jsx)("button",{type:"button",onClick:()=>{(0,n1.D)(t).then(()=>ef.oR.success((0,d.Tl)("appShell.commandCopied"))).catch(()=>ef.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:11},children:(0,d.Tl)("appShell.copyCommand")})]})]}))}).catch(()=>{}),()=>e.abort()},[]);let ew=(0,i.useRef)(null),ej=(0,i.useRef)(null),[eS,eC]=(0,i.useState)([]),[eT,eI]=(0,i.useState)(null),eE=(0,i.useRef)(null),eR=(0,i.useCallback)((e,t,r)=>{eC(e),eI(t),eE.current=r},[]),eM=(0,i.useCallback)(e=>{eE.current?.(e)},[]),[eW,ez]=(0,i.useState)(null),[e$,eA]=(0,i.useState)(!1),eL=(0,i.useRef)(null),eN=(0,i.useRef)(0),eF=(0,i.useRef)(null),eD=(0,i.useRef)(null),eP=(0,i.useCallback)(e=>{ez(e),eA(!1)},[]),eB=(0,i.useCallback)(e=>{eN.current+=1,eL.current=e,eA(!1)},[]),[eO,eH]=(0,i.useState)(null),[eU,e_]=(0,i.useState)({kind:"idle"}),eV=(0,i.useRef)(null),eK=(0,i.useRef)(R?.id??null);eK.current=R?.id??null;let eZ=(0,i.useCallback)(e=>{eH(e)},[]),[eY,eJ]=(0,i.useState)(null),eG=(0,i.useRef)(null),eX=(0,i.useCallback)((e,t)=>{(0,n1.D)(t).then(()=>{eG.current&&clearTimeout(eG.current),eJ(e),eG.current=setTimeout(()=>eJ(null),1400)})},[]);(0,i.useEffect)(()=>()=>{eG.current&&clearTimeout(eG.current),eV.current&&clearTimeout(eV.current)},[]);let[eQ,e0]=(0,i.useState)(null),e1=(0,i.useCallback)(e=>{e0(e)},[]),[e2,e5]=(0,i.useState)(null),[e4,e6]=(0,i.useState)(null),e3=(0,i.useCallback)(e=>{E&&ee(!1),e5(t=>t===e?null:e)},[E]),e8=(0,i.useCallback)(()=>{let e="system"!==e2;if(e3("system"),!e||e$||null!==eW)return;let t=eL.current;if(!t)return;let r=++eN.current;eA(!0),t().catch(e=>{console.error("Failed to load system prompt:",e)}).finally(()=>{eN.current===r&&eA(!1)})},[e2,eW,e$,e3]),e9=(0,i.useCallback)(()=>{E&&ee(!1),e5("session")},[E]),e7=(0,i.useCallback)(()=>{E&&e5(null),ee(e=>!e)},[E]),te=(0,i.useCallback)(()=>{ei(260)},[]),tt=(0,i.useCallback)(e=>{ei(t=>n3(t+e))},[]),tr=(0,i.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,i.useCallback)(e=>{if(E)return;e.preventDefault();let t=e.clientX;ed(!0);let r=e=>{let r=n3(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),ei(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,i.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,i.useEffect)(()=>{if(!e2||!ej.current)return;let e=()=>{let e=ej.current.getBoundingClientRect();e6({top:e.bottom,left:e.left,width:e.width})};e();let t=new ResizeObserver(e);return t.observe(ej.current),()=>t.disconnect()},[e2]),(0,i.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[ti,ta]=(0,i.useState)([]),[to,ts]=(0,i.useState)(null),[tl,td]=(0,i.useState)(!1),[tc,tu]=(0,i.useState)(520),[tp,th]=(0,i.useState)(!1),tf=(0,i.useRef)(null),tg=(0,i.useRef)(520),tm=(0,i.useRef)(null),tx=(0,i.useRef)(!1);(0,i.useEffect)(()=>{tu(function(){try{let e=window.localStorage.getItem(n6),t=e?Number(e):NaN;return Number.isFinite(t)?n8(t):n9()}catch{return n9()}}())},[]),(0,i.useEffect)(()=>{if(!tx.current){tx.current=!0;return}if(!tp)try{window.localStorage.setItem(n6,String(tc))}catch{}},[tp,tc]);let tv=(0,i.useCallback)(()=>{tu(n9())},[]),ty=(0,i.useCallback)(e=>{tu(t=>n8(t+e))},[]),tb=(0,i.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,i.useCallback)(e=>{if(E)return;e.preventDefault();let t=e.clientX;th(!0);let r=e=>{let r=n8(tc+(t-e.clientX));tf.current?.style.setProperty("--right-panel-width",`${r}px`),tg.current=r},n=()=>{window.removeEventListener("pointermove",r),window.removeEventListener("pointerup",n),tm.current=null,th(!1),tu(tg.current),document.body.style.cursor="",document.body.style.userSelect=""};document.body.style.cursor="col-resize",document.body.style.userSelect="none",tg.current=tc,tm.current={onMove:r,onUp:n},window.addEventListener("pointermove",r),window.addEventListener("pointerup",n)},[E,tc]);(0,i.useEffect)(()=>()=>{let e=tm.current;e&&(window.removeEventListener("pointermove",e.onMove),window.removeEventListener("pointerup",e.onUp),tm.current=null,document.body.style.cursor="",document.body.style.userSelect="")},[]);let tk=(0,i.useCallback)((e,t)=>{ew.current?.insertText(t8(e,t))},[]),tj=(0,i.useCallback)(e=>{let t=e.map(e=>t8(e,!1)).join("");t&&ew.current?.insertText(t)},[]),tS=(0,i.useCallback)((e,t,r)=>{let n,i,a,o;ew.current?.insertText((n=Math.max(1,Math.min(t,r)),i=Math.max(1,Math.max(t,r)),a=e.includes(" ")?`@"${e}"`:`@${e}`,o=n===i?`:${n}`:`:${n}-${i}`,`${a}${o} `))},[]),tC=w.sessionId,[tT,tI]=(0,i.useState)(null),[tE,tR]=(0,i.useState)(()=>!tC),tM=(0,i.useRef)(!1);(0,i.useEffect)(()=>{let e=w.requestedCwd;if(!e)return;let t=new AbortController;return A("validating"),N(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}`);tM.current=!0,z(t.cwd),A("ready")}).catch(e=>{t.signal.aborted||(N(e instanceof Error?e.message:String(e)),A("error"))}),()=>t.abort()},[w]);let tW=(0,i.useCallback)((e,t)=>{if(tI(e),!e)return;if(tM.current){tM.current=!1;return}let r=t??e,n=R?R.projectRoot??R.cwd:null;n&&ek(n)===ek(r)||(M(null),z(t=>t&&t!==e?null:t),B(e=>e+1),eC([]),eI(null),ez(null),eA(!1),e5(null),y.replace("/",{scroll:!1}))},[y,R]),tz=(0,i.useCallback)((e,t=!1)=>{z(null),M(e),B(e=>e+1),ez(null),eA(!1),tR(!0),E&&!t&&ee(!1),t&&(tM.current=!0),t||y.replace(`?session=${encodeURIComponent(e.id)}`,{scroll:!1})},[y,E]),t$=(0,i.useCallback)((e,t)=>{M(null),z(t),B(e=>e+1),eC([]),eI(null),ez(null),eA(!1),e5(null),E&&ee(!1),y.replace("/",{scroll:!1})},[y,E]);!function(e){let{onNewSession:t,activeCwd:r}=e;(0,i.useEffect)(()=>{let e=e=>{if("Escape"===e.key){if(!s)return;let t=e.target?.tagName;if("TEXTAREA"===t||"INPUT"===t)return;e.preventDefault(),s();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=>t$(`kb-${Date.now()}`,e),activeCwd:tT});let tA=(0,i.useCallback)(e=>{fetch("/api/sessions").then(e=>e.ok?e.json():null).then(t=>{let r=t?.sessions.find(t=>t.id===e);r&&M(t=>t&&t.id===e&&!t.projectRoot?r:t)}).catch(()=>{})},[]),tL=(0,i.useCallback)(e=>{z(null),M(e),D(e=>e+1),tA(e.id),y.replace(`?session=${encodeURIComponent(e.id)}`,{scroll:!1})},[y,tA]),tN=(0,i.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 i=n.createNotification(e,{body:t});i.onclick=()=>{i.close(),r()}}catch{return!1}}(R?.name??(0,d.Tl)("appShell.sessionComplete"),(0,d.Tl)("appShell.taskFinished"),()=>{window.focus(),R&&tz(R)})};"granted"===Notification.permission?e():"default"===Notification.permission&&Notification.requestPermission().then(t=>{"granted"===t&&e()})},[tz,R]),tF=(0,i.useCallback)(async()=>{let e=R?.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;M(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,R?.id]);(0,i.useEffect)(()=>{eV.current&&clearTimeout(eV.current),e_({kind:"idle"})},[R?.id]);let tD=(0,i.useCallback)(()=>{_(!0),H(e=>e+1)},[]),tP=(0,i.useCallback)(()=>{_(!1)},[]),tB=(0,i.useCallback)(e=>{D(e=>e+1),B(e=>e+1),z(null),M(t=>({...t??{path:"",cwd:"",created:"",modified:"",messageCount:0,firstMessage:""},id:e})),tA(e),y.replace(`?session=${encodeURIComponent(e)}`,{scroll:!1})},[y,tA]),tO=(0,i.useCallback)(()=>{tR(!0)},[]),tH=(0,i.useCallback)(e=>{if(D(e=>e+1),R?.id===e){let e=R.cwd;M(null),z(e??null),B(e=>e+1),eC([]),eI(null),ez(null),e5(null),y.replace("/",{scroll:!1})}},[R,y]),tU=(0,i.useCallback)((e,t,r)=>{let n=`file:${e}`;ta(i=>{let a=i.find(e=>e.id===n);return a?r&&a.sourceSessionId!==r?i.map(e=>e.id===n?{...e,sourceSessionId:r}:e):i:[...i,{id:n,label:t,filePath:e,sourceSessionId:r}]}),ts(n),td(!0),E&&ee(!1)},[E]),t_=(0,i.useCallback)(e=>{tU(e,(0,eo.WP)(e),R?.id??null)},[tU,R?.id]),tV=(0,i.useCallback)(e=>{let t=ti.filter(t=>t.id!==e);ta(t),0===t.length&&td(!1),ts(r=>r!==e?r:t.length>0?t[t.length-1].id:null)},[ti]),tK=(0,i.useCallback)(()=>{R&&window.open(`/api/sessions/${encodeURIComponent(R.id)}/export?inline=1`,"_blank","noopener,noreferrer")},[R]),tq=W??(null===R&&tT?tT:null),tZ=null!==R||null!==tq,tJ=tE&&!tZ,tG=tT?(0,eo.WP)(tT)||tT:null,tX=tG?`${tG} - ompgui`:"ompgui";(0,i.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)(it,{onSelectSession:tz,onNewSession:()=>t$(`palette-${Date.now()}`,tT??""),currentModel:null}),(0,n.jsx)(eq,{selectedSessionId:R?.id??null,optimisticSession:R?.path===""?R:null,onSelectSession:tz,onNewSession:t$,initialSessionId:tC,skipInitialProjectSelection:null!==w.requestedCwd,onInitialRestoreDone:tO,refreshKey:F,onSessionDeleted:tH,selectedCwd:R?.cwd??W??null,onCwdChange:tW,onOpenFile:tU,explorerRefreshKey:O,onExplorerRefresh:tD,explorerRefreshing:U,onExplorerRefreshDone:tP,onAtMention:tk,onAtMentions:tj,onOpenSettings:()=>K("general"),onOpenUsage:()=>Z(!0),updateAvailable:em||ev})]});return(0,n.jsx)(n.Fragment,{children:(0,n.jsxs)(ef.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:199,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:200,...!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:205,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",style:{display:"flex",alignItems:"center",flexShrink:0,borderBottom:"1px solid var(--border)",height:E?44:36,background:"var(--bg-panel)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4,height:"100%",paddingLeft:E?4:8},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)(nq.A,{size:16,strokeWidth:1.8,"aria-hidden":"true"}):(0,n.jsx)(nZ.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)(nY.A,{size:16,strokeWidth:1.8,"aria-hidden":"true"}):(0,n.jsx)(nJ.A,{size:16,strokeWidth:1.8,"aria-hidden":"true"})}),(0,n.jsx)(nK,{})]}),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:4,height:"100%"},children:[(0,n.jsx)("button",{onClick:tK,disabled:!R,title:R?T("appShell.fullHistory"):T("appShell.fullHistoryUnavailable"),"aria-label":T("appShell.fullHistory"),className:"shell-toolbar-btn ui-focus-ring",children:(0,n.jsx)(nG.A,{size:16,strokeWidth:1.8,"aria-hidden":"true"})}),(e=!!(R&&(eO?.userMessages??R.messageCount)>0),t=!R||!e||"naming"===eU.kind,r="success"===eU.kind,a="error"===eU.kind,l="naming"===eU.kind?T("appShell.generating"):r?T("appShell.titleUpdated"):a?T("appShell.generationFailed"):T("appShell.generateTitle"),u=R?e?a?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)"}}):a?(0,n.jsx)(nX.A,{size:16,strokeWidth:1.8,"aria-hidden":"true",style:{color:"var(--status-error)"}}):(0,n.jsx)(nX.A,{size:16,strokeWidth:1.8,"aria-hidden":"true"})})),(0,n.jsx)(nV,{tree:eS,activeLeafId:eT,onLeafChange:eM,inline:!0,containerRef:ej,open:"branches"===e2,onToggle:()=>e3("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)(nQ.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,i="var(--text-muted)",a=null;if(eQ?.contextWindow){let e=eQ.percent;null!==e&&e>90?i="var(--status-error)":null!==e&&e>70&&(i="var(--status-warning)"),a=null!==e?`${(0,tY.l)(e)} / ${(0,tY.w)(eQ.contextWindow)}`:`? / ${(0,tY.w)(eQ.contextWindow)}`}let o=[];if(e&&(o.push(T("appShell.tooltipInput",{value:e.input.toLocaleString(I)})),o.push(T("appShell.tooltipOutput",{value:e.output.toLocaleString(I)})),o.push(T("appShell.tooltipCacheRead",{value:e.cacheRead.toLocaleString(I)})),o.push(T("appShell.tooltipCacheWrite",{value:e.cacheWrite.toLocaleString(I)})),t>0&&o.push(T("appShell.tooltipCost",{value:t.toFixed(4)}))),eQ?.contextWindow){let e=eQ.percent;o.push(T("appShell.tooltipContext",{percent:null!==e?e.toFixed(1)+"%":T("appShell.unknown"),tokens:eQ.contextWindow.toLocaleString(I)}))}let s=o.join(" | ");return(0,n.jsxs)("button",{ref:eD,type:"button",onClick:()=>e3("session"),title:s||T("appShell.sessionInfo"),"aria-label":T("appShell.sessionInfo"),"aria-pressed":"session"===e2,style:{marginLeft:"auto",display:"flex",alignItems:"center",justifyContent:"center",gap:10,paddingLeft:12*!E,paddingRight:E?44*!tl:tl?12:48,height:"100%",minWidth:44*!!E,overflow:"hidden",background:"session"===e2?"var(--bg-selected)":"none",border:"none",fontSize:11,color:"var(--text-muted)",whiteSpace:"nowrap",cursor:"pointer",fontVariantNumeric:"tabular-nums",transition:"color var(--dur-fast) var(--ease-out-warm), background var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{"session"!==e2&&(e.currentTarget.style.background="var(--bg-hover)"),e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="session"===e2?"var(--bg-selected)":"none",e.currentTarget.style.color="session"===e2?"var(--text)":"var(--text-muted)"},children:[E&&(0,n.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,n.jsx)("line",{x1:"12",y1:"16",x2:"12",y2:"12"}),(0,n.jsx)("line",{x1:"12",y1:"8",x2:"12.01",y2:"8"})]}),!E&&e&&e.input>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},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,tY.w)(e.input)]}),!E&&e&&e.output>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},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,tY.w)(e.output)]}),!E&&e&&e.cacheRead>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},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,tY.w)(e.cacheRead)]}),!E&&r&&(0,n.jsx)("span",{style:{display:"flex",alignItems:"center",color:"var(--text)",fontWeight:500},children:r}),a&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,color:i,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"})]}),a]})]})})(),("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:500},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:"12px 16px",color:"var(--text-muted)",fontSize:12,lineHeight:1.6,whiteSpace:"pre-wrap",fontFamily:"var(--font-mono)"},children:eW}):""===eW?(0,n.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:T("appShell.systemPromptEmpty")}):(0,n.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:e$?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:"12px 16px"},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)]],f=[[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)]],g=eQ??eO.contextUsage,m=[...eO.cost>0?[[T("appShell.statCost"),`$${eO.cost.toFixed(4)}`]]:[],...g?.contextWindow?[[T("appShell.statContext"),`${null!==g.percent?(0,tY.l)(g.percent):"?"} / ${(0,tY.w)(g.contextWindow)}`]]:[]],x=(e,t,r="left",i=!1)=>(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:e}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:i?"max-content max-content":"auto minmax(0, 1fr)",columnGap:i?14:12,rowGap:4,justifyContent:i?"start":void 0},children:t.map(([t,a])=>(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:i?"normal":"anywhere",textAlign:r,whiteSpace:"right"===r?"nowrap":"normal"},children:a})]},`${e}:${t}`))})]}),v=(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:T("appShell.sectionSessionInfo")}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:12,rowGap:8,alignItems:"start"},children:p.map(e=>{var t,r;let i;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,i=eY===t,(0,n.jsx)("button",{type:"button",title:i?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:i?"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=i?"var(--accent)":"var(--text-dim)",e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="transparent"},children:i?(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?16:24,fontSize:12,lineHeight:1.5,fontFamily:"var(--font-mono)"},children:[v,x(T("appShell.sectionMessages"),h),x(T("appShell.sectionTokens"),[...f,...m],"right",!0)]})):(0,n.jsx)("div",{style:{fontSize:12,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)(nL,{session:R,newSessionCwd:tq,onAgentEnd:tN,onSessionCreated:tL,onSessionForked:tB,modelsRefreshKey:Y,chatInputRef:ew,onBranchDataChange:eR,onSystemPromptChange:eP,onSystemPromptLoaderChange:eB,onSessionStatsChange:eZ,onSessionStatsPanelOpen:e9,onOpenSettingsTab:e=>K(e),onContextUsageChange:e1,onOpenFile:t_,advisorEnabled:G,toolCallsDefaultCollapsed:ea},P):"validating"===$?(0,n.jsxs)("div",{role:"status",style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:8,padding:24,color:"var(--text-muted)",textAlign:"center"},children:[(0,n.jsx)("div",{style:{fontSize:14,color:"var(--text)"},children:T("appShell.openingWorkspace")}),(0,n.jsx)("div",{style:{maxWidth:"min(720px, 100%)",overflowWrap:"anywhere",fontFamily:"var(--font-mono)",fontSize:12},children:w.requestedCwd})]}):"error"===$?(0,n.jsxs)("div",{role:"alert",style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:8,padding:24,color:"var(--text-muted)",textAlign:"center"},children:[(0,n.jsx)("div",{style:{fontSize:14,color:"var(--status-error)"},children:T("appShell.unableToOpenWorkspace")}),(0,n.jsx)("div",{style:{maxWidth:"min(720px, 100%)",overflowWrap:"anywhere",fontFamily:"var(--font-mono)",fontSize:12},children:w.requestedCwd}),(0,n.jsx)("div",{style:{maxWidth:720,fontSize:12},children:L})]}):tJ?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:12,left:12,display:"flex",alignItems:"flex-start",gap:8,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:8},children:T("appShell.getStarted")}),(0,n.jsxs)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.8},children:[(0,n.jsx)("span",{style:{color:"var(--text-dim)",marginRight:6},children:"1."}),T("appShell.getStartedStep1"),(0,n.jsx)("br",{}),(0,n.jsx)("span",{style:{color:"var(--text-dim)",marginRight:6},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)(ir,{})})]}),!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:205,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:tf,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:36},children:(0,n.jsx)("div",{style:{flex:1,overflow:"hidden"},children:(0,n.jsx)(nB,{tabs:ti,activeTabId:to??"",onSelectTab:ts,onCloseTab:tV})})}),(0,n.jsx)("div",{style:{flex:1,overflow:"hidden"},children:ti.length>0?ti.map(e=>(0,n.jsx)("div",{style:{display:e.id===to?"block":"none",height:"100%"},children:(0,n.jsx)(n2,{filePath:e.filePath,cwd:tT??void 0,sourceSessionId:e.sourceSessionId,gitRefreshKey:O,onMentionLines:e.id===to&&tl?tS:void 0,onOpenFile:t=>tU(t,(0,eo.WP)(t),e.sourceSessionId)})},e.id)):(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:12},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"),style:{position:"fixed",top:0,right:0,zIndex:300,display:"flex",alignItems:"center",justifyContent:"center",width:E?44:36,height:E?44:36,padding:0,background:"var(--bg-panel)",border:"none",borderLeft:"1px solid var(--border)",borderBottom:"1px solid var(--border)",color:tl?"var(--text)":"var(--text-muted)",cursor:"pointer",transition:"color var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.color=tl?"var(--text)":"var(--text-muted)"},children:(0,n.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,n.jsx)("line",{x1:"15",y1:"3",x2:"15",y2:"21"})]})}),V&&(0,n.jsx)(n7,{activeTab:V,advisorEnabled:G,onAdvisorChange:eb,toolCallsDefaultCollapsed:ea,onToolCallsDefaultCollapsedChange:eh,cwd:tT??R?.cwd??W,sessionId:R?.id??null,onModelsSaved:()=>J(e=>e+1),onPluginsReloaded:()=>B(e=>e+1),onOmpUpdateAvailabilityChange:ey,onSelectTab:K,onClose:()=>K(null)}),q&&(0,n.jsx)(ie,{onClose:()=>Z(!1)})]})})}},18136:(e,t,r)=>{"use strict";r.d(t,{K:()=>i});var n=r(4315);function i(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 a=(0,n.Tl)(t);return a===t?"Request failed":a}},19870:(e,t,r)=>{"use strict";function n(e){try{return decodeURIComponent(e)}catch{return e}}function i(e){return/^[a-zA-Z]:[\\/]/.test(e)||e.startsWith("\\\\")?e.replace(/\\/g,"/"):e}function a(e){let t=i(e),r=/^[a-zA-Z]:\//.test(t),n=t.startsWith("//"),a=t.startsWith("/")&&!r&&!n,o=[];for(let e of t.split("/"))if(e&&"."!==e){if(".."===e){o.length>0&&".."!==o[o.length-1]?o.pop():a||r||n||o.push(e);continue}o.push(e)}let s=o.join("/");return r?s:n?`//${s}`:a?`/${s}`:s}function o(e,t,r=t){let s,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,f=null,g=n(p),m=g.startsWith("\\\\"),x=i(g),v=x.toLowerCase();if(v.startsWith("/api/")||v.startsWith("/_next/")||!m&&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:")?f=(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,f="absolute"):t&&!(x.startsWith("#")||x.startsWith("?"))&&(x.startsWith("./")||x.startsWith("../")||x.includes("/")||/(^|\/)\.?[^/]+\.[^/.]+$/.test(x))&&(h=`${i(t).replace(/\/+$/,"")}/${x}`,f="relative"),!h)return null;let y=a(h).replace(/:\d+(?::\d+)?$/,"");return"relative"===f&&r&&(s=a(y).replace(/\/+$/,""),l=a(r).replace(/\/+$/,""),c=(d=/^[a-zA-Z]:\//.test(s)||/^[a-zA-Z]:\//.test(l))?s.toLowerCase():s,!(c===(u=d?l.toLowerCase():l)||c.startsWith(`${u}/`)))?null:y}r.d(t,{V:()=>o})},28999:(e,t,r)=>{"use strict";function n(e){return/^[a-zA-Z]:[\\/]/.test(e)||e.startsWith("\\\\")?e.replace(/\\/g,"/"):e}function i(e){let t=n(e),r=t.startsWith("//"),i=t.split("/").filter(Boolean);return r&&i.length>0&&(i[0]=`//${i[0]}`),i.map(encodeURIComponent).join("/")}function a(e){let t=n(e).replace(/\/+$/,"");return t.split("/").pop()??t}function o(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 s(e,t){if(!t)return e;let r=n(e),i=n(t).replace(/\/$/,""),a=/^[a-zA-Z]:\//.test(r)||r.startsWith("//")||/^[a-zA-Z]:\//.test(i)||i.startsWith("//"),o=a?r.toLowerCase():r,s=a?i.toLowerCase():i;return o.startsWith(s+"/")?r.slice(i.length+1):e}function l(e,t){return`${n(e).replace(/\/$/,"")}/${t}`}r.d(t,{A0:()=>n,HG:()=>i,WP:()=>a,e_:()=>l,gX:()=>o,qP:()=>s})},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),i=r(53474),a=r(72222),o=r(45477),s=r(59567),l=r(11975),d=r(52579),c=r(3683),u=r(11412),p=r(80403),h=r(15383),f=r(96238),g=r(27443),m=r(98197),x=r(11827),v=r(977);function y({open:e,onOpenChange:t,children:r}){return(0,n.jsx)(i.D,{open:e,onOpenChange:t,children:r})}function b({children:e,className:t,style:r,ariaLabel:i}){return(0,n.jsxs)(a.Z,{children:[(0,n.jsx)(o.X,{style:{position:"fixed",inset:0,background:"var(--overlay-backdrop)",backdropFilter:"blur(2px)",zIndex:1e3}}),(0,n.jsx)(s.h,{"aria-label":i,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:1001,background:"var(--bg)",color:"var(--text)",border:"1px solid var(--border)",borderRadius:"var(--radius-modal)",boxShadow:"var(--shadow-modal)",padding:20,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:20,margin:"0 0 12px",...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)(f.o,{side:r,sideOffset:6,style:{zIndex:120},children:(0,n.jsx)(g.o,{style:{background:"var(--bg-panel)",color:"var(--text)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",boxShadow:"var(--shadow-pop)",padding:"4px 9px",fontSize:12,lineHeight:1.4,maxWidth:260},children:e})})})]})})}function S({open:e,onOpenChange:t,defaultOpen:r,children:i}){return(0,n.jsx)(m.N,{open:e,onOpenChange:t,defaultOpen:r,children:i})}let C=x.R;function T({children:e,style:t}){return(0,n.jsx)(v.j,{style:t,children:e})}},31590:(e,t,r)=>{"use strict";r.d(t,{a:()=>l});var n=r(12115);let i="(max-width: 640px)";function a(e){if(!window.matchMedia)return()=>{};let t=window.matchMedia(i);return t.addEventListener("change",e),()=>t.removeEventListener("change",e)}function o(){return!!window.matchMedia&&window.matchMedia(i).matches}function s(){return!1}function l(){return(0,n.useSyncExternalStore)(a,o,s)}},32383:(e,t,r)=>{"use strict";r.d(t,{$:()=>i});var n=r(18136);async function i(e,t){let r=await fetch(`/api/agent/${encodeURIComponent(e)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),i=await r.json().catch(()=>({}));if(!r.ok||i.error)throw Error(i.error||i.code?(0,n.K)(i):`HTTP ${r.status}`);return i.data}},35893:(e,t,r)=>{"use strict";r.d(t,{t:()=>a,v:()=>i});let n="omp-web:submit-during-run";function i(){try{let e=window.localStorage.getItem(n);if("steer"===e||"queue"===e)return e}catch{}return"steer"}function a(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),i=r(66101),a=r(33208),o=r(23083),s=r(97787),l=r(48262),d=r(99777),c=r(32031),u=r(56395),p=r(40323),h=r(25818),f=r(64577),g=r(35484),m=r(14577),x=r(9005),v=r(12115),y=r(31590);let b=i.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:2}};return"success"===e?(0,n.jsx)(f.A,{...t,style:{...t.style,color:"var(--accent)"},"aria-hidden":!0}):"error"===e?(0,n.jsx)(g.A,{...t,style:{...t.style,color:"var(--accent-strong)"},"aria-hidden":!0}):(0,n.jsx)(m.A,{...t,style:{...t.style,color:"var(--text-muted)"},"aria-hidden":!0})}let S={fontSize:12,color:"var(--text-muted)",lineHeight:1.5,marginTop:2};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}=a.I(),t=(0,y.a)();return(0,n.jsx)(o.S,{children:(0,n.jsx)(s.U,{style:{position:"fixed",top:t?88:80,right:16,zIndex:2100,display:"flex",flexDirection:"column",gap:8,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:8,background:"var(--bg)",color:"var(--text)",border:"1px solid var(--border)",borderRadius:"var(--radius-card)",boxShadow:"var(--shadow-pop)",padding:"10px 12px"},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:13,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:20,height:20,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),i=r(5924),a=r(94764),o=r(63835),s=r(84678);let l={...a.j,attributes:{...a.j.attributes,code:[["className",/^language-./,"math-inline","math-display"]]},strip:[...a.j.strip||[],"iframe","object","style","form"]},d={remarkPlugins:[[s.A,{singleTilde:!1}]],rehypePlugins:[i.A,[o.A,l]]},c=null,u=null;function p(e){let t=e.includes("$")||e.includes("\\(")||e.includes("\\["),[,i]=(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||i(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=[],i=null,a=0,o=null,s=new Map;for(let e=0;e<r.length;e++){var l;let t=r[e];if(o){n.push(t),RegExp(`</${o}\\s*>`,"i").test(t)&&(o=null);continue}let d=t.match(/^ {0,3}(`{3,}|~{3,})/);if(d){let e=d[1][0],r=d[1].length;i?e===i.marker&&r>=i.size&&(i=null):i={marker:e,size:r},a=0,n.push(t);continue}if(i){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)||(o=e),a=0,n.push(t);continue}if(/^(?: {4}|\t)/.test(t)||""===t.trim()){a=0,n.push(t);continue}if(a||t.includes("`")){a=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 i=n-t;0===r?r=i:i===r&&(r=0),t=n}return r}(t,a),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=>g(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 m=t.match(/^([ \t]{0,3})\$\$(.+)$/);if(m){let t=m[1],i=m[2].trimEnd();if(i&&!i.includes("$$")){let a=f(r,e+1,t,s);if(a){n.push(`${t}$$`,`${t}${i}`);for(let i=e+1;i<a.index;i++)n.push(g(r[i],t));a.content&&n.push(`${t}${a.content}`),n.push(`${t}$$`),e=a.index;continue}}}let x=t.match(/^([ \t]{0,3})\$\$\s*$/);if(x){let t=x[1],i=f(r,e+1,t,s);if(i&&(i.glued||""!==t)){n.push(`${t}$$`);for(let a=e+1;a<i.index;a++)n.push(g(r[a],t));i.content&&n.push(`${t}${i.content}`),n.push(`${t}$$`),e=i.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 f(e,t,r,n){let i=n.get(r);if(void 0!==i&&t<i)return null;for(let i=t;i<e.length;i++){var a,o,s,l;let t=e[i];if(a=t,""===(o=r)?/^ {0,3}\$\$\s*$/.test(a):a.startsWith(o)&&/^\$\$\s*$/.test(a.slice(o.length)))return{index:i,content:"",glued:!1};if(s=t,/^ {0,3}(`{3,}|~{3,})/.test(s)||/^[ \t]*(?:[-+*]|\d{1,9}[.)])(?:[ \t]+|$)/.test(s)||/^ {0,3}#{1,6}(?:[ \t]+|$)/.test(s)||/^ {0,3}>/.test(s)||/<(code|pre|script|style)\b/i.test(s)||(l=t,/^ {0,3}\$\$(?:\S|[ \t]+\S)/.test(l)))return n.set(r,i),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:i,content:d,glued:!0}}return n.set(r,e.length),null}function g(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,a=0,o=0,s=[],l=[],d=()=>({lineNo:null,text:"",type:"empty"}),c=()=>{if(!n){s=[],l=[];return}let e=Math.max(s.length,l.length);for(let t=0;t<e;t++){let e=s[t]?{lineNo:s[t].lineNo,text:s[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})}s=[],l=[]};for(let d of e.split(/\r?\n/)){if(d.startsWith("--- ")){c(),t=i(d.slice(4));continue}if(d.startsWith("+++ ")){c(),n={oldPath:t,newPath:i(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(),a=Number(e[1]),o=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:a++,text:p,type:"context"},right:{lineNo:o++,text:p,type:"context"}})):"-"===u?s.push({lineNo:a++,text:p}):"+"===u?l.push({lineNo:o++,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 i(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 i(e){return`${e.toFixed(1)}%`}r.d(t,{l:()=>i,w:()=>n})},94309:(e,t,r)=>{"use strict";r.d(t,{Q:()=>u});var n=r(95155),i=r(12115),a=r(96793),o=r(4315),s=r(6014);function l({code:e,isStreaming:t,defaultPreview:s=!1}){let{isDark:u}=(0,a.DP)(),{t:p}=(0,o.s9)(),[h,f]=(0,i.useState)(s),[g,m]=(0,i.useState)(null),[x,v]=(0,i.useState)(!1),[y,b]=(0,i.useState)(0),w=`${u?"dark":"light"}
|
|
76
|
-
${e}`,k=h&&!t;(0,i.useEffect)(()=>{if(!k)return;let t=!1;return m({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 i="u">typeof crypto&&"randomUUID"in crypto?`mermaid-${crypto.randomUUID()}`:`mermaid-${Date.now()}-${Math.random().toString(36).slice(2)}`,a=await n.render(i,e);t||m({key:w,status:"ready",svg:a.svg})})().catch(()=>{t||m({key:w,status:"error"})}),()=>{t=!0}},[e,w,u,k,y]);let j=(0,n.jsx)("button",{type:"button",onClick:()=>f(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=g?.key===w&&"error"===g.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")})]}):g?.key!==w||"ready"!==g.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:g.svg}}),x&&(0,n.jsx)(d,{svg:g.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,i.useRef)(null),[a,s]=(0,i.useState)(1),{t:l}=(0,o.s9)();return(0,i.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:()=>s(e=>Math.max(.5,e-.25)),disabled:a<=.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*a),"%"]}),(0,n.jsx)("button",{type:"button",onClick:()=>s(e=>Math.min(3,e+.25)),disabled:a>=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:()=>s(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(${a})`,transformOrigin:"top left"},dangerouslySetInnerHTML:{__html:e}})})]})})}let c=(0,i.memo)(function({code:e,lang:t,headerAction:a,isStreaming:l}){let{t:d}=(0,o.s9)(),{copied:c,copy:u}=(0,s.q)(),[p,h]=(0,i.useState)(null);return(0,i.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:[a,(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:"11px 13px",fontSize:12.5,lineHeight:1.62,overflowX:"auto",backgroundColor:"color-mix(in srgb, var(--bg) 88%, var(--bg-panel))"},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,...i}){let a=t?.replace("language-","").toLowerCase()??"",o=String(r);return t?.includes("language-")||o.includes("\n")?"mermaid"===a?(0,n.jsx)(l,{code:o.replace(/\n$/,""),isStreaming:e.isStreaming,defaultPreview:e.defaultPreview}):(0,n.jsx)(c,{code:o.replace(/\n$/,""),lang:a,isStreaming:e.isStreaming}):(0,n.jsx)("code",{className:e.inlineClassName??t,...i,children:r})}}},96793:(e,t,r)=>{"use strict";r.d(t,{DP:()=>h});var n=r(12115);let i="ompgui-theme",a="ompgui-palette",o=new Set;function s(e){return o.add(e),()=>o.delete(e)}function l(){try{let e=localStorage.getItem(i)||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(a),"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)(s,l,u),t=(0,n.useSyncExternalStore)(s,d,p),[r,h]=(0,n.useState)(!1);(0,n.useEffect)(()=>{h(!0)},[]);let f=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),o.forEach(e=>e())};return t.addEventListener("change",r),()=>t.removeEventListener("change",r)},[e]);let g=(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(i,e)}catch{}o.forEach(e=>e())})(e),n=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches;if("function"!=typeof document.startViewTransition||n)return void r();let a=t?.x??window.innerWidth/2,s=t?.y??window.innerHeight/2,l=Math.hypot(Math.max(a,window.innerWidth-a),Math.max(s,window.innerHeight-s)),d=document.startViewTransition(r);d.ready.then(()=>{let e=getComputedStyle(document.documentElement);document.documentElement.animate({clipPath:[`circle(0px at ${a}px ${s}px)`,`circle(${l}px at ${a}px ${s}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(()=>{})},[]),m=(0,n.useCallback)(t=>g("light"===e?"dark":"dark"===e?"system":"light",t),[e,g]);return{theme:f,preference:e,palette:t,isDark:"dark"===f,setTheme:g,setPalette:(0,n.useCallback)(e=>(function(e){document.documentElement.dataset.palette=e;try{localStorage.setItem(a,e)}catch{}o.forEach(e=>e())})(e),[]),toggleTheme:m}}}},e=>{e.O(0,[6876,4315,8441,3794,7358],()=>e(e.s=5456)),_N_E=e.O()}]);
|