ompgui 0.7.5 → 0.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +5 -5
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/react-loadable-manifest.json +1 -1
  6. package/.next/required-server-files.js +2 -2
  7. package/.next/required-server-files.json +2 -2
  8. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/_global-error.html +1 -1
  10. package/.next/server/app/_global-error.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  14. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  15. package/.next/server/app/_not-found.html +1 -1
  16. package/.next/server/app/_not-found.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  20. package/.next/server/app/api/app-update/route.js +1 -1
  21. package/.next/server/app/index.html +1 -1
  22. package/.next/server/app/index.rsc +2 -2
  23. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  24. package/.next/server/app/index.segments/_full.segment.rsc +2 -2
  25. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  26. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  27. package/.next/server/app/login.html +1 -1
  28. package/.next/server/app/login.rsc +1 -1
  29. package/.next/server/app/login.segments/_full.segment.rsc +1 -1
  30. package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  31. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  32. package/.next/server/app/page.js +1 -1
  33. package/.next/server/app/page_client-reference-manifest.js +1 -1
  34. package/.next/server/app/pair/page_client-reference-manifest.js +1 -1
  35. package/.next/server/app/pair.html +1 -1
  36. package/.next/server/app/pair.rsc +1 -1
  37. package/.next/server/app/pair.segments/_full.segment.rsc +1 -1
  38. package/.next/server/app/pair.segments/_tree.segment.rsc +1 -1
  39. package/.next/server/app/pair.segments/pair/__PAGE__.segment.rsc +1 -1
  40. package/.next/server/app-paths-manifest.json +5 -5
  41. package/.next/server/chunks/6480.js +1 -1
  42. package/.next/server/chunks/7226.js +1 -1
  43. package/.next/server/middleware-build-manifest.js +1 -1
  44. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  45. package/.next/server/pages/404.html +1 -1
  46. package/.next/server/pages/500.html +1 -1
  47. package/.next/server/server-reference-manifest.json +1 -1
  48. package/.next/static/chunks/{4318.9c215a4cb05a3069.js → 4318.262b14251f05c7a0.js} +1 -1
  49. package/.next/static/chunks/app/{page-e7eb05ca875bdff3.js → page-52be30b788f58e8c.js} +1 -1
  50. package/.next/static/chunks/{webpack-6731a6d88b6564cc.js → webpack-71c49b2d000b4171.js} +1 -1
  51. package/README.ja.md +1 -1
  52. package/README.ko.md +1 -1
  53. package/README.md +1 -1
  54. package/README.zh-CN.md +1 -1
  55. package/package.json +1 -1
  56. /package/.next/static/{PqMs7GKEACvEL4dphX3Ma → kCY3TYrtVGBtbLBIXH4MJ}/_buildManifest.js +0 -0
  57. /package/.next/static/{PqMs7GKEACvEL4dphX3Ma → kCY3TYrtVGBtbLBIXH4MJ}/_ssgManifest.js +0 -0
@@ -14,4 +14,4 @@ Reproduce the problem, apply the smallest correct fix, and verify it works befor
14
14
  ${i}${r=e.name,"md"===(a=r.toLowerCase().replace(/\\/g,"/").split("/").pop()?.split(".").pop()??"")||"markdown"===a||"mdx"===a?"markdown":"text"}
15
15
  ${e.content}
16
16
  ${i}`});return[e.trim(),...r].filter(Boolean).join("\n\n")}var eJ=r(3099),eQ=r(30527),eZ=r(31590);let eX=["auto","off","minimal","low","medium","high","xhigh","max"];function e0(e,t,r){let n;return n=e&&"function"==typeof e.closest?e:e?.parentElement,("function"!=typeof n?.closest||null==n.closest(".mobile-sheet-overlay"))&&!!e&&"number"==typeof e.nodeType&&!t?.contains(e)&&!!r&&!r.contains(e)}function e1(e){return"number"==typeof e&&Number.isFinite(e)&&e>0}function e2(e){let t=Math.round(10*e)/10;return`${t%1==0?t.toFixed(0):t.toFixed(1)}%`}let e4=2*Math.PI*9.5;function e5(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 e6={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 e3(e,t){return(0,eD.wk)(e,t)}function e8(e,t){return"skill"===e.source&&t.has(e.name)}let e9=[...eV.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"}],e7=new Set(e9.map(e=>e.name)),te=["builtin","extension","prompt","skill","ompBuiltin"],tt={builtin:"chatInput.groupBuiltin",extension:"chatInput.groupExtensions",prompt:"chatInput.groupPrompts",skill:"chatInput.groupSkills",ompBuiltin:"chatInput.groupOmpBuiltin"},tr={builtin:0,extension:1,prompt:2,skill:3,ompBuiltin:4};function tn(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 ta(e){return{data:e.data,mimeType:e.mimeType}}function ti(e){return{...e,previewUrl:`data:${e.mimeType};base64,${e.data}`}}function to(e){return(e??[]).filter($).slice(0,10).map(ti)}function ts(e){return{name:e.name,mimeType:e.mimeType,content:e.content,size:e.size}}function tl(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 tu(e){e.previewUrl.startsWith("blob:")&&URL.revokeObjectURL(e.previewUrl)}function tc({onClick:e,title:t,accent:r=!1,disabled:a=!1,busy:i=!1,children:o}){return(0,n.jsx)("button",{type:"button",onClick:e,disabled:a||i,title:t,"aria-label":t,"aria-busy":i||void 0,style:{flexShrink:0,padding:"4px 8px",minHeight:24,border:"none",borderRadius:"var(--radius-control)",background:"transparent",color:r?"var(--accent)":"var(--text-dim)",cursor:a||i?"not-allowed":"pointer",opacity:a||i?.5:1,fontSize:"var(--text-sm)",fontWeight:r?600:400,transition:"background var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{a||i||(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:o})}function td({error:e}){let{t}=(0,u.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:"var(--text-sm)",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 tp({goal:e,plan:t}){let r,a,o,{t:s}=(0,u.s9)(),[l,c]=(0,i.useState)(!1),[d,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)(eA,{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:"var(--text-xs)",fontFamily:"var(--font-mono)",textTransform:"uppercase",letterSpacing:"0.04em"},children:[s("chatInput.goalActive")," \xb7 ",(a=Math.floor((r=Math.max(0,Math.floor((d-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:"var(--text-sm)",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:"var(--text-sm)"},children:[(0,n.jsx)(eE,{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 tm=(0,i.memo)((0,i.forwardRef)(function({onSend:e,onAbort:t,isStreaming:r,model:a,isAutoModelSelection:s,modelNames:l,modelList:c,modelError:d,modelsLoading:p,onModelChange:m,fastModeEnabled:f,fastModeActive:g,fastModeSupported:x,onFastModeChange:v,onAbortCompaction:y,isCompacting:b,compactResult:w,thinkingLevel:k,onThinkingLevelChange:j,availableThinkingLevels:S,thinkingLevelMap:C,modelNameOverride:I,retryInfo:M,queuedMessages:T,inputHistory:R=[],onAbortRetry:W,onRecallQueuedMessage:A,onDeleteQueuedMessage:E,onPromoteQueuedToSteer:$,queueEnqueuePending:z=!1,slashCommands:F,slashCommandsLoading:L,onLoadSlashCommands:N,onBuiltinCommand:B,onAudioUnlock:H,onPromptWithStreamingBehavior:_,runtimeReady:D=!0,contextUsage:O,sessionCost:P,draftKey:q,cwd:U,activeGoal:V,activePlan:K,advisorEnabled:G},Y){var J,Q,Z,X;let ee,et,er,en,ea,ei,eo,es,el,eu,ec,ed,ep,em=(0,eZ.a)(),{t:eh,tn:ef,locale:eg}=(0,u.s9)(),ex=i.useMemo(()=>new Intl.Collator(eg,{numeric:!0,sensitivity:"base"}),[eg]),[ev,ey]=(0,i.useState)(()=>q?eq(q)?.value??"":""),[eb,ew]=(0,i.useState)(!1),[ek,ej]=(0,i.useState)(null),[eS,eC]=(0,i.useState)(!1),[eI,eM]=(0,i.useState)(null),[eT,eR]=(0,i.useState)(!1),[eW,eA]=(0,i.useState)(""),[eE,eF]=(0,i.useState)(()=>q?to(eq(q)?.images):[]),[eL,eN]=(0,i.useState)(()=>q?tl(eq(q)?.files):[]),[eP,eV]=(0,i.useState)(null),eK=ev.trimStart(),tm=0===eE.length&&0===eL.length&&eK.startsWith("!"),th=tm&&eK.startsWith("!!"),[tf,tg]=(0,i.useState)(!1),[tx,tv]=(0,i.useState)(0),[ty,tb]=(0,i.useState)(null),[tw,tk]=(0,i.useState)(!1),[tj,tS]=(0,i.useState)(0),[tC,tI]=(0,i.useState)(!1),[tM,tT]=(0,i.useState)(0),[tR,tW]=(0,i.useState)(null),[tA,tE]=(0,i.useState)(!1),[t$,tz]=(0,i.useState)(null),[tF,tL]=(0,i.useState)(null),tN=(0,i.useRef)(null),tB=(0,i.useRef)(null),tH=(0,i.useRef)(null),t_=(0,i.useRef)(null),tD=(0,i.useRef)(null),tO=(0,i.useRef)(null),tP=(0,i.useRef)(null),tq=(0,i.useRef)(null),tU=(0,i.useRef)(null),tV=(0,i.useRef)(!1),tK=(0,i.useRef)(0),tG=(0,i.useRef)(!1),tY=(0,i.useRef)([]),tJ=(0,i.useRef)([]),tQ=(0,i.useRef)([]),tZ=(0,i.useRef)(null),tX=(0,i.useRef)(q),t0=(0,i.useRef)({draftKey:q,mounted:!0});t0.current.draftKey=q,(0,i.useEffect)(()=>{let e=t0.current;return e.mounted=!0,()=>{e.mounted=!1}},[]);let t1=(0,i.useRef)(ev),t2=(0,i.useRef)(!1),[t4,t5]=(0,i.useState)(!1),t6=z||t4,t3=(0,i.useRef)(eE),t8=(0,i.useRef)(eL),t9=(0,i.useRef)(0),t7=(0,i.useRef)(D);t7.current=D;let re=(0,i.useRef)(0),rt=(0,i.useRef)(0);t1.current=ev,t3.current=eE,t8.current=eL,(0,i.useEffect)(()=>{D||(t9.current+=1)},[D]);let rr=(0,i.useCallback)(e=>{if(!e.trim())return;let t=tN.current,r=[e,t?t.value:t1.current].filter(e=>e.trim()).join("\n\n");t1.current=r,ey(r),tb(null),requestAnimationFrame(()=>{t&&(t.focus(),t.setSelectionRange(r.length,r.length),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)})},[]);(0,i.useImperativeHandle)(Y,()=>({insertIfEmpty(e){let t=tN.current;(t?t.value:ev).trim()||(ey(e),tb(null),requestAnimationFrame(()=>{t&&(t.focus(),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)}))},prependText(e){rr(e)},insertText(e){let t=tN.current;if(!t)return void ey(t=>t+(t?" ":"")+e);let r=t.selectionStart??t.value.length,n=t.selectionEnd??t.value.length,a=t.value.slice(0,r),i=t.value.slice(n),o=a.length>0&&!a.endsWith(" ")?" ":"";ey(a+o+e+i),tb(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){t7.current&&ri(e)}}));let rn=(0,i.useCallback)(async e=>{if(!t7.current)return;let t=Math.max(0,10-t3.current.length-re.current),r=e.filter(e=>e.type.startsWith("image/")&&e.size<=0xa00000).slice(0,t);if(!r.length){e.length>0&&eV(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=t9.current;re.current+=r.length;let a=[];try{let e=await Promise.all(r.map(e=>new Promise((t,r)=>{let n=new FileReader;n.onload=()=>{let r={data:n.result.split(",")[1],mimeType:e.type,previewUrl:URL.createObjectURL(e)};a.push(r),t(r)},n.onerror=r,n.readAsDataURL(e)})));if(t9.current!==n||!t7.current)return void e.forEach(tu);eF(t=>{let r=e.slice(0,Math.max(0,10-t.length));return e.slice(r.length).forEach(tu),[...t,...r]}),eV(null)}catch{a.forEach(tu),eV("One or more images could not be read. Try a different file.")}finally{re.current-=r.length}},[]),ra=(0,i.useCallback)(async e=>{if(!t7.current)return;let t=Math.max(0,10-t8.current.length-rt.current),r=e.filter(e=>e.size<=262144).slice(0,t);if(!r.length){e.length>0&&eV(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=t9.current;rt.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(t9.current!==n||!t7.current)return;let t=e.filter(e=>!e.content.includes("\0")&&!e.content.includes("�")),a=r.length-t.length;eN(e=>[...e,...t.slice(0,Math.max(0,10-e.length))]),a>0?eV(`${a} file(s) skipped: binary or non-text files cannot be attached.`):eV(null)}catch{eV("One or more files could not be read. Try a different file.")}finally{rt.current-=r.length}},[]),ri=(0,i.useCallback)(e=>{if(!D||!t7.current||z||t2.current)return;let t=e.filter(e=>e.type.startsWith("image/")),r=e.filter(e=>!e.type.startsWith("image/"));rn(t),ra(r)},[rn,ra,D,z]),ro=(0,i.useCallback)(e=>{t7.current&&(eF(t=>{let r=[...t],[n]=r.splice(e,1);return n&&tu(n),r}),eV(null))},[]),rs=(0,i.useCallback)(e=>{t7.current&&(eN(t=>t.filter((t,r)=>r!==e)),eV(null))},[]),rl=(0,i.useCallback)(()=>{eF(e=>(e.forEach(tu),[]))},[]),ru=(0,i.useCallback)(()=>{eN([])},[]),rc=(0,i.useCallback)(()=>{var e;ey(""),tb(null),tI(!1),q&&eO.delete(q),tX.current&&tX.current!==q&&(e=tX.current,eO.delete(e)),rl(),ru(),t9.current+=1,tN.current&&(tN.current.style.height="auto")},[rl,ru,q]);(0,i.useEffect)(()=>{q&&tX.current===q&&eU(q,{value:ev,images:eE.map(ta),files:eL.map(ts)})},[eE,eL,q,ev]),(0,i.useEffect)(()=>{let e=tX.current;if(e===q)return;e&&eU(e,{value:t1.current,images:t3.current.map(ta),files:t8.current.map(ts)});let t=q?eq(q):null;tX.current=q,ey(t?.value??""),tb(null),tI(!1),eF(e=>(e.forEach(tu),to(t?.images))),eN(tl(t?.files))},[q]),(0,i.useEffect)(()=>{let e=tN.current;e&&(e.style.height="auto",ev&&(e.style.height=`${Math.min(e.scrollHeight,200)}px`))},[ev]),(0,i.useEffect)(()=>()=>{t3.current.forEach(tu)},[]);let rd=(0,i.useCallback)(async()=>{let t=ev.trim();if(!t&&!eE.length&&!eL.length||!D||r||z||t2.current)return;H?.();let n=eY(t,eL);if(!eE.length&&!eL.length&&t.startsWith("/")&&B){let e=await B(t);if(e.handled){e.error||e.retainInput||rc();return}}e(n,eE.length?eE:void 0),rc()},[ev,eE,eL,r,D,z,B,e,rc,H]),rp=ev.startsWith("/")&&!/\s/.test(ev.slice(1))?ev.slice(1).toLowerCase():null,[rm,rh]=(0,i.useState)(()=>new Set);(0,i.useEffect)(()=>{if(null===rp||!U)return;let e=new AbortController;return fetch(`/api/skills?cwd=${encodeURIComponent(U)}`,{signal:e.signal}).then(e=>e.ok?e.json():null).then(e=>{e&&rh(new Set((e.skills??[]).flatMap(e=>e.disableModelInvocation&&e.name?[e.name]:[])))}).catch(()=>{}),()=>e.abort()},[U,rp]);let rf=i.useMemo(()=>e9.map(e=>({name:e.name,description:eh(e.descriptionKey),...e.argumentHintKey?{argumentHint:eh(e.argumentHintKey)}:{},source:"builtin"})),[eh]),rg=i.useMemo(()=>(F??[]).flatMap(e=>{let t=e.source;return e7.has(e.name)?[]:"builtin"===t||"ompBuiltin"===t?[{name:e.name,description:e.description,source:"ompBuiltin"}]:[e]}),[F]),rx=null===rp?[]:[...r?[]:rf,...rg].filter(e=>{let t=e.name.toLowerCase(),r=e.description?.toLowerCase()??"";return t.includes(rp)||r.includes(rp)}).sort((e,t)=>{let r=tn(e,rp)-tn(t,rp);if(0!==r)return r;let n=Number(e8(e,rm))-Number(e8(t,rm));return 0!==n?n:tr[e.source]-tr[t.source]||ex.compare(e.name,t.name)}),rv=(()=>{let e=new Map;for(let t of te)e.set(t,{source:t,items:[]});return rx.forEach((t,r)=>{e.get(t.source)?.items.push({command:t,index:r})}),te.map(t=>e.get(t)).filter(e=>e.items.length>0)})(),ry=ef(rp?"chatInput.matchCount":"chatInput.commandCount",rx.length),rb=(0,i.useCallback)((e,t)=>{if(!U)return void tb(null);let r=t??e.length;tb((0,eJ.RO)(e.slice(0,r)))},[U]),rw=ty?.query??null,rk=i.useMemo(()=>null!==rw&&tR&&tR.cwd===U?(0,eJ.R7)(tR.entries,rw):[],[rw,tR,U]),rj=!!(rw&&tR?.truncated&&tR.cwd===U);(0,i.useEffect)(()=>{if(!rj||!U||!rw)return;let e=new AbortController,t=setTimeout(()=>{fetch(`/api/file-index?cwd=${encodeURIComponent(U)}&q=${encodeURIComponent(rw)}`,{signal:e.signal}).then(e=>{if(!e.ok)throw Error(`file search failed: ${e.status}`);return e.json()}).then(t=>{e.signal.aborted||tz({cwd:U,query:rw,matches:t.matches??[]})}).catch(()=>{})},150);return()=>{clearTimeout(t),e.abort()}},[rj,rw,U]);let rS=rj&&null!==t$&&t$.cwd===U&&t$.query===rw,rC=rS?t$.matches:rk,rI=null===ty?null:`${ty.start}:${+!!ty.quoted}:${ty.query}`;(0,i.useEffect)(()=>{if(null===rI){tk(!1),tS(0);return}tk(!0),tS(0)},[rI]);let rM=null!==ty;(0,i.useEffect)(()=>{let e=tZ.current;if(!rM||!U||e&&e.cwd===U&&Date.now()-e.fetchedAt<1e4)return void tE(!1);let t=new AbortController;return tE(!0),fetch(`/api/file-index?cwd=${encodeURIComponent(U)}`,{signal:t.signal}).then(e=>{if(!e.ok)throw Error(`file index failed: ${e.status}`);return e.json()}).then(e=>{t.signal.aborted||(tW({cwd:U,entries:(0,eJ.Yh)(e.files??[]),truncated:!!e.truncated}),tZ.current={cwd:U,fetchedAt:Date.now()})}).catch(()=>{t.signal.aborted||(tZ.current=null)}).finally(()=>{t.signal.aborted||tE(!1)}),()=>t.abort()},[rM,U]);let rT=(0,i.useCallback)(e=>{if(!ty)return;let t=tN.current,r=t?.selectionStart??ev.length,n=ev.slice(0,ty.start),a=ev.slice(r);ty.quoted&&a.startsWith('"')&&(a=a.slice(1));let i=(0,eJ.W)(e.path,e.isDir,ty.quoted),o=n+i.text+a,s=n.length+i.cursorOffset;ey(o),tb((0,eJ.RO)(o.slice(0,s))),requestAnimationFrame(()=>{let e=tN.current;e&&(e.focus(),e.setSelectionRange(s,s),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[ty,ev]);(0,i.useEffect)(()=>{tj>=rC.length&&tS(Math.max(0,rC.length-1))},[rC.length,tj]),(0,i.useEffect)(()=>{tJ.current.length=rC.length},[rC.length]),(0,i.useEffect)(()=>{tw&&tJ.current[tj]?.scrollIntoView({block:"nearest",inline:"nearest"})},[tj,tw]),(0,i.useEffect)(()=>{tM>=R.length&&tT(Math.max(0,R.length-1))},[R.length,tM]),(0,i.useEffect)(()=>{tQ.current.length=R.length},[R.length]),(0,i.useEffect)(()=>{tC&&tQ.current[tM]?.scrollIntoView({block:"nearest",inline:"nearest"})},[tM,tC]);let rR=(0,i.useCallback)(e=>{ey(e),tI(!1),tT(0),tb(null),requestAnimationFrame(()=>{let t=tN.current;t&&(t.focus(),t.setSelectionRange(e.length,e.length),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)})},[]),rW=(0,i.useCallback)(e=>{let t=`/${e.name} `;ey(t),tg(!1),tv(0),requestAnimationFrame(()=>{let e=tN.current;e&&(e.focus(),e.setSelectionRange(t.length,t.length),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[]),rA=(0,i.useCallback)(async e=>{let t=ev.trim();if(!D||z||t2.current||!_||!t&&!eE.length&&!eL.length)return;H?.();let r=eG(t);if("usage-error"===r.kind)return void e_.oR.error(eh("chatInput.commandUsageTitle"),eh("agentSession.commandRequiresArgs",{command:r.command,usage:eh(r.argumentHintKey)}));let n=t9.current;t2.current=!0,t5(!0);try{await _(eY("expand"===r.kind?r.prompt:t,eL),"steer"===e?"steer":"followUp",eE.length?eE:void 0)&&n===t9.current&&t1.current===ev&&t3.current===eE&&t8.current===eL&&rc()}finally{t2.current=!1,t5(!1)}},[ev,eE,eL,D,z,_,rc,H,eh]),rE=T?.items??[],r$=T?.nativeQueuedCount??0,rz=rE.length>0||r$>0,rF=(0,i.useCallback)(async(e,t)=>{if(D&&!tF){tL(e);try{await t()}finally{tL(t=>t===e?null:t)}}},[tF,D]),rL=(0,i.useCallback)(e=>{if("sending"===e.status||!A||(t1.current.trim()||t3.current.length||t8.current.length)&&!window.confirm(eh("chatInput.queuedRecallConfirm")))return;let t=e.attachments?.length??0;t3.current.length+re.current+t>10?e_.oR.error(eh("chatInput.queuedOpFailed"),eh("chatInput.queuedRecallImageLimit")):rF(e.id,async()=>{re.current+=t;try{let t=await A(e.id);if(!t)return;let r=t0.current.mounted&&t0.current.draftKey===q,n=t0.current.mounted&&tX.current===q,a=n?{value:t1.current,images:t3.current.map(ta),files:t8.current.map(ts)}:q?eq(q):null;if(q&&eU(q,{value:[t.text,a?.value??""].filter(e=>e.trim()).join("\n\n"),images:[...a?.images??[],...(t.images??[]).map(({data:e,mimeType:t})=>({data:e,mimeType:t}))],files:a?.files??[]}),!r){n&&(t1.current=[t.text,a?.value??""].filter(e=>e.trim()).join("\n\n"),t3.current=[...t3.current,...(t.images??[]).map(ti)]);return}if(rr(t.text),t.images?.length){let e=t.images.map(ti);t3.current=[...t3.current,...e],eF(t3.current)}}finally{re.current-=t}})},[q,A,rr,rF,eh]),rN=(0,i.useCallback)(e=>{"sending"!==e.status&&E&&rF(e.id,async()=>{await E(e.id)})},[E,rF]),rB=(0,i.useCallback)(e=>{"queued"===e.status&&"followUp"===e.lane&&$&&rF(e.id,async()=>{await $(e.id)})},[$,rF]),rH=(0,i.useCallback)(e=>{let t=rx.length-1;if(t<0)return 0;if("left"===e)return Math.max(0,tx-1);if("right"===e)return Math.min(t,tx+1);let r=tY.current[tx];if(!r)return"down"===e?Math.min(t,tx+1):Math.max(0,tx-1);let n=r.getBoundingClientRect(),a=n.left+n.width/2,i=n.top+n.height/2,o=-1,s=1/0;for(let r=0;r<=t;r+=1){if(r===tx)continue;let t=tY.current[r];if(!t)continue;let n=t.getBoundingClientRect(),l=n.top+n.height/2-i;if("down"===e?l<=4:l>=-4)continue;let u=1e3*Math.abs(l)+Math.abs(n.left+n.width/2-a);u<s&&(o=r,s=u)}return o>=0?o:"down"===e?Math.min(t,tx+1):Math.max(0,tx-1)},[rx.length,tx]),r_=(0,i.useCallback)(e=>{let n=e.nativeEvent,a=Date.now()-tK.current<100,i=tV.current||n.isComposing||229===n.keyCode;if("Enter"===e.key&&!e.shiftKey&&(i||a)){a&&e.preventDefault();return}if(tC&&!i){if("ArrowDown"===e.key){e.preventDefault(),tT(e=>Math.min(Math.max(0,R.length-1),e+1));return}if("ArrowUp"===e.key){e.preventDefault(),tT(e=>Math.max(0,e-1));return}if("Escape"===e.key){e.preventDefault(),tI(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&R[tM]){e.preventDefault(),rR(R[tM]);return}}if(tf&&null!==rp){if("ArrowDown"===e.key){e.preventDefault(),tv(rH("down"));return}if("ArrowUp"===e.key){e.preventDefault(),tv(rH("up"));return}if("ArrowRight"===e.key){e.preventDefault(),tv(rH("right"));return}if("ArrowLeft"===e.key){e.preventDefault(),tv(rH("left"));return}if("Escape"===e.key){e.preventDefault(),tg(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&rx[tx]){e.preventDefault(),rW(rx[tx]);return}}if(tw&&null!==ty&&!i){if("ArrowDown"===e.key){e.preventDefault(),tS(e=>Math.min(Math.max(0,rC.length-1),e+1));return}if("ArrowUp"===e.key){e.preventDefault(),tS(e=>Math.max(0,e-1));return}if("Escape"===e.key){e.preventDefault(),tk(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&rC[tj]){e.preventDefault(),rT(rC[tj]);return}}if("ArrowUp"===e.key&&!i&&!r&&R.length>0&&0===ev.trim().length){e.preventDefault(),tg(!1),tk(!1),tT(R.length-1),tI(!0);return}if("Escape"===e.key&&!i&&D&&r&&t){e.preventDefault(),t();return}if("Enter"===e.key&&!e.shiftKey){if(em)return;e.preventDefault(),r&&_?"steer"===(0,eH.vz)()?rA("steer"):rA("followup"):rd()}},[em,r,D,_,t,tf,rp,rx,tx,rW,rA,rd,rH,tw,ty,rC,tj,rT,tC,R,tM,rR,ev]),rD=(0,i.useCallback)(()=>{let e=tN.current;e&&(e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)},[]),rO=(0,i.useCallback)(e=>{let t=Array.from(e.clipboardData?.items??[]).filter(e=>e.type.startsWith("image/"));t.length&&(e.preventDefault(),ri(t.map(e=>e.getAsFile()).filter(e=>null!==e)))},[ri]);(0,i.useEffect)(()=>{if(null===rp){tg(!1),tv(0),tG.current=!1;return}tg(!0),tv(0),!tG.current&&N&&(tG.current=!0,Promise.resolve(N()).catch(()=>{tG.current=!1}))},[rp,N]),(0,i.useEffect)(()=>{tx>=rx.length&&tv(Math.max(0,rx.length-1))},[rx.length,tx]),(0,i.useEffect)(()=>{tY.current.length=rx.length},[rx.length]),(0,i.useEffect)(()=>{tf&&tY.current[tx]?.scrollIntoView({block:"nearest",inline:"nearest"})},[tx,tf]);let[rP,rq]=(0,i.useState)(null);(0,i.useEffect)(()=>{let e=()=>rq(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 rU=i.useMemo(()=>c&&c.length>0?c.map(e=>({provider:e.provider,modelId:e.id,name:e.name})).filter(e=>null===rP||rP.has(`${e.provider}:${e.modelId}`)).sort((e,t)=>e5(ex,e,t)):Object.entries(l??{}).map(([e,t])=>({provider:a?.provider??"unknown",modelId:e,name:t})).sort((e,t)=>e5(ex,e,t)),[c,l,a?.provider,rP,ex]),rV=i.useMemo(()=>{let e;return(e=eW.trim().toLocaleLowerCase(eg))?rU.filter(t=>t.name.toLocaleLowerCase(eg).includes(e)||t.modelId.toLocaleLowerCase(eg).includes(e)||t.provider.toLocaleLowerCase(eg).includes(e)):rU},[eg,rU,eW]),rK=i.useMemo(()=>{let e=[];for(let t of rV){let r=e.find(e=>e.provider===t.provider);r?r.options.push(t):e.push({provider:t.provider,options:[t]})}return e},[rV]),rG=a?rU.find(e=>e.modelId===a.modelId&&e.provider===a.provider)?.name??I??l?.[`${a.provider}:${a.modelId}`]??a.modelId:null,rY=!!p&&!d,rJ=!D||r||rY&&0===rU.length,rQ=w?Math.max(0,w.tokensBefore-w.estimatedTokensAfter):0,rZ=w?.reason&&"manual"!==w.reason?eh("chatInput.compactedWithReason",{reason:`${w.reason[0].toUpperCase()}${w.reason.slice(1)}`}):eh("chatInput.compacted"),rX=w?eh("chatInput.compactResult",{verb:rZ,before:e3(w.tokensBefore,eg),after:e3(w.estimatedTokensAfter,eg),saved:e3(rQ,eg)}):null,r0="auto"!==(ee=k??"auto")&&C?C[ee]??ee:ee,r1="medium"===r0.toLowerCase()?"med":r0,r2=null==(J=O?.percent)||Number.isNaN(J)?0:Math.min(100,Math.max(0,J)),r4=r2>0&&r2<10?e2(r2):`${Math.round(r2)}%`,r5=!!(O&&null!=O.percent&&O.contextWindow>0),r6=r5&&O?`${e2(r2)} / ${!e1(Q=O.contextWindow)?"":Q>=1e6?`${Q/1e6}M`:Q>=1e3?`${Q/1e3}k`:String(Q)}`:null,r3=r5&&O?.tokens!=null?eh("chatInput.contextTokens",{used:(0,eD.wk)(O.tokens,eg),total:(0,eD.wk)(O.contextWindow,eg)}):null,r8=null!=P&&Number.isFinite(P)&&P>=0?eh("chatInput.sessionCost",{cost:`$${P.toFixed(P>0&&P<.01?4:2)}`}):null,r9=i.useSyncExternalStore(eH.vR,eH.vz,()=>"steer"),r7=!!(ev.trim()||eE.length||eL.length),ne=(Z=!!_,X=!!_,em&&r&&r7?"steer"===r9&&Z?"steer":"queue"===r9&&X?"followup":Z?"steer":X?"followup":null:null),nt=i.useMemo(()=>(function(e){if(!e)return[...eX];let t=new Set(e.filter(e=>e&&"auto"!==e));return[...eX.filter(e=>"auto"===e||t.delete(e)),...t]})(S),[S]);return(0,i.useEffect)(()=>{if(!r5)return void eR(!1);if(!eT)return;let e=e=>{let t=tP.current;t&&!t.contains(e.target)&&eR(!1)},t=e=>{"Escape"===e.key&&eR(!1)};return document.addEventListener("pointerdown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("pointerdown",e),document.removeEventListener("keydown",t)}},[eT,r5]),(0,i.useEffect)(()=>{eb?requestAnimationFrame(()=>t_.current?.focus()):eA("")},[eb]),(0,i.useEffect)(()=>{let e=e=>{let t=e.target;e0(t,tB.current,tH.current)&&ew(!1),e0(t,tD.current,tO.current)&&eC(!1),e0(t,tq.current,tq.current)&&!tN.current?.contains(t)&&tI(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,n.jsxs)("div",{style:{flexShrink:0,background:"transparent",paddingTop:0,paddingBottom:"calc(8px + env(safe-area-inset-bottom, 0px))",paddingLeft:"max(16px, env(safe-area-inset-left, 0px))",paddingRight:"max(16px, env(safe-area-inset-right, 0px))"},children:[(0,n.jsx)("input",{ref:tU,type:"file",accept:"*/*",multiple:!0,disabled:t6||!D,style:{display:"none"},onChange:e=>{ri(Array.from(e.target.files??[])),e.target.value=""}}),(0,n.jsxs)("div",{style:{maxWidth:744,margin:"0 auto"},children:[(0,n.jsx)(td,{error:d}),(0,n.jsx)(tp,{goal:V,plan:K}),M&&(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:"var(--radius-control)",fontSize:"var(--text-sm)",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"})]}),eh("chatInput.retrying",{attempt:M.attempt,maxAttempts:M.maxAttempts}),M.errorMessage&&(0,n.jsxs)("span",{style:{opacity:.7,marginLeft:4},children:["— ",M.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:"var(--text-xs)",color:"var(--status-warning)",background:"transparent",border:"1px solid color-mix(in srgb, var(--status-warning) 45%, transparent)",borderRadius:"var(--radius-control)",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"})]}),rX&&(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:"var(--radius-control)",fontSize:"var(--text-sm)",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"})}),rX]}),eP&&(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:"var(--radius-control)",fontSize:"var(--text-sm)",color:"var(--status-error)"},children:eP}),eE.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:6,marginBottom:6,flexWrap:"wrap"},children:eE.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:"var(--radius-control)",border:"1px solid var(--border)",display:"block"}}),(0,n.jsx)("button",{onClick:()=>ro(t),disabled:!D,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))}),eL.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:6,marginBottom:6,flexWrap:"wrap"},children:eL.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:"var(--radius-control)",background:"var(--bg-panel)",fontSize:"var(--text-sm)",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:"var(--text-sm)"},children:e.name}),(0,n.jsx)("span",{style:{flexShrink:0,fontSize:"var(--text-xs)",color:"var(--text-dim)"},children:e.size<1024?`${e.size} B`:`${Math.round(e.size/1024)} KB`}),(0,n.jsx)("button",{onClick:()=>rs(t),disabled:!D,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:[tC&&!em&&R.length>0&&(0,n.jsxs)("div",{ref:tq,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:eh("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===tM;return(0,n.jsxs)("button",{ref:e=>{tQ.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),rR(e)},onMouseEnter:()=>tT(t),style:{width:"100%",display:"flex",alignItems:"flex-start",gap:8,padding:"7px 8px",border:"none",borderRadius:"var(--radius-control)",background:r?"var(--bg-selected)":"none",color:"var(--text)",cursor:"pointer",textAlign:"left",fontSize:"var(--text-base)",lineHeight:1.45},children:[(0,n.jsx)("span",{style:{flexShrink:0,fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)",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}`)})})]}),tC&&em&&R.length>0&&(0,n.jsx)(eB,{open:tC,onClose:()=>tI(!1),title:eh("chatInput.inputHistory"),maxHeight:"min(65dvh, 480px)",children:(0,n.jsx)("div",{style:{padding:"var(--space-2) var(--space-3)"},children:R.map((e,t)=>(0,n.jsxs)("button",{type:"button",onClick:()=>{rR(e),tI(!1)},style:{width:"100%",display:"flex",alignItems:"flex-start",gap:12,minHeight:48,padding:"10px 12px",border:"none",borderRadius:"var(--radius-control)",background:"transparent",color:"var(--text)",cursor:"pointer",textAlign:"left",fontSize:"var(--text-base)",lineHeight:1.45,touchAction:"manipulation"},children:[(0,n.jsx)("span",{style:{flexShrink:0,fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)",color:"var(--text-dim)",paddingTop:2},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}`))})}),tf&&null!==rp&&!em&&(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:"var(--text-sm)",color:"var(--text-dim)"},children:[(0,n.jsx)("span",{children:L?eh("chatInput.loadingCommands"):eh("chatInput.slashCommandsHeader",{countLabel:ry})}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:eh("chatInput.tabEnterHint")})]}),(0,n.jsx)("div",{style:{maxHeight:"calc(min(56vh, 460px) - 34px)",overflowY:"auto",padding:10},children:L||0!==rx.length?rv.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:"var(--text-xs)",fontWeight:600,textTransform:"uppercase"},children:[(0,n.jsx)("span",{children:eh(tt[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===tx,a=e8(e,rm);return(0,n.jsxs)("button",{ref:e=>{tY.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),rW(e)},onMouseEnter:()=>tv(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:"var(--radius-control)",background:r?"var(--bg-selected)":"var(--bg-panel)",color:a?"var(--text-dim)":"var(--text)",cursor:"pointer",textAlign:"left",boxShadow:r?"0 0 0 1px color-mix(in srgb, var(--accent) 28%, transparent)":"none"},children:[(0,n.jsxs)("span",{style:{fontSize:"var(--text-base)",fontFamily:"var(--font-mono)",overflowWrap:"anywhere",wordBreak:"break-word"},children:["/",e.name,e.argumentHint&&(0,n.jsx)("span",{style:{marginLeft:6,fontSize:"var(--text-xs)",color:"var(--text-dim)"},children:e.argumentHint}),a&&(0,n.jsx)("span",{style:{marginLeft:6,fontSize:"var(--text-xs)",color:"var(--text-dim)"},children:eh("chatInput.dormant")})]}),e.description&&(0,n.jsx)("span",{style:{display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2,overflow:"hidden",fontSize:"var(--text-sm)",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:"var(--text-sm)",color:"var(--text-dim)"},children:eh("chatInput.noCommandsFound")})})]}),tf&&null!==rp&&em&&(0,n.jsx)(eB,{open:tf,onClose:()=>tg(!1),title:L?eh("chatInput.loadingCommands"):eh("chatInput.slashCommandsHeader",{countLabel:ry}),maxHeight:"min(75dvh, 520px)",children:(0,n.jsx)("div",{style:{padding:"var(--space-2) var(--space-3)"},children:L||0!==rx.length?rv.map(e=>(0,n.jsxs)("section",{style:{marginBottom:12},children:[(0,n.jsxs)("div",{style:{position:"sticky",top:0,zIndex:1,display:"flex",alignItems:"center",justifyContent:"space-between",padding:"6px var(--space-2)",background:"var(--bg)",color:"var(--text-dim)",fontSize:"var(--text-sm)",fontWeight:600,textTransform:"uppercase"},children:[(0,n.jsx)("span",{children:eh(tt[e.source])}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontWeight:500},children:e.items.length})]}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:e.items.map(({command:e})=>{let t=e8(e,rm);return(0,n.jsxs)("button",{type:"button",onClick:()=>{rW(e),tg(!1)},style:{width:"100%",minHeight:52,display:"flex",flexDirection:"column",gap:4,justifyContent:"center",padding:"10px 12px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)",color:t?"var(--text-dim)":"var(--text)",cursor:"pointer",textAlign:"left",touchAction:"manipulation"},children:[(0,n.jsxs)("span",{style:{fontSize:"var(--text-base)",fontFamily:"var(--font-mono)",fontWeight:600},children:["/",e.name,e.argumentHint&&(0,n.jsx)("span",{style:{marginLeft:6,fontSize:"var(--text-sm)",color:"var(--text-dim)",fontWeight:400},children:e.argumentHint}),t&&(0,n.jsx)("span",{style:{marginLeft:6,fontSize:"var(--text-sm)",color:"var(--text-dim)",fontWeight:400},children:eh("chatInput.dormant")})]}),e.description&&(0,n.jsx)("span",{style:{fontSize:"var(--text-sm)",lineHeight:1.35,color:"var(--text-dim)",display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2,overflow:"hidden"},children:e.description})]},`${e.source}:${e.name}`)})})]},e.source)):(0,n.jsx)("div",{style:{padding:"16px var(--space-4)",fontSize:"var(--text-base)",color:"var(--text-dim)",textAlign:"center"},children:eh("chatInput.noCommandsFound")})})}),tw&&null!==ty&&!em&&(et=tA&&(!tR||tR.cwd!==U),er=ef("chatInput.matchCount",rC.length),en=tR?.truncated&&!rS?` \xb7 ${ty.query?eh("chatInput.searchingAllFiles"):eh("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:"var(--text-sm)",color:"var(--text-dim)"},children:[(0,n.jsx)("span",{children:et?eh("chatInput.loadingFiles"):`${eh("chatInput.filesHeader",{countLabel:er})}${en}`}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:eh("chatInput.tabEnterHint")})]}),(0,n.jsx)("div",{style:{maxHeight:"calc(min(48vh, 400px) - 34px)",overflowY:"auto",padding:4},children:et||0!==rC.length?rC.map((e,t)=>{let r=t===tj,a=e.path.split("/").pop()??e.path,i=e.path.slice(0,e.path.length-a.length);return(0,n.jsxs)("button",{ref:e=>{tJ.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),rT(e)},onMouseEnter:()=>tS(t),style:{width:"100%",display:"flex",alignItems:"center",gap:8,padding:"6px 8px",border:"none",borderRadius:"var(--radius-control)",background:r?"var(--bg-selected)":"none",color:"var(--text)",cursor:"pointer",textAlign:"left",fontSize:"var(--text-base)",fontFamily:"var(--font-mono)"},children:[(0,n.jsx)("span",{style:{flexShrink:0,display:"flex",alignItems:"center"},children:e.isDir?(0,n.jsx)(eQ.sj,{size:14}):(0,eQ.I3)(a,14)}),(0,n.jsxs)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[i&&(0,n.jsx)("span",{style:{color:"var(--text-dim)"},children:i}),a,e.isDir&&(0,n.jsx)("span",{style:{color:"var(--text-dim)"},children:"/"})]})]},`${e.isDir?"d":"f"}:${e.path}`)}):(0,n.jsx)("div",{style:{padding:"6px 8px",fontSize:"var(--text-sm)",color:"var(--text-dim)"},children:rj&&!rS?eh("chatInput.searching"):eh("chatInput.noMatchingFiles")})})]})),tw&&null!==ty&&em&&(ea=tA&&(!tR||tR.cwd!==U),ei=ef("chatInput.matchCount",rC.length),eo=tR?.truncated&&!rS?` \xb7 ${ty.query?eh("chatInput.searchingAllFiles"):eh("chatInput.indexTruncated")}`:"",(0,n.jsx)(eB,{open:tw,onClose:()=>tk(!1),title:ea?eh("chatInput.loadingFiles"):`${eh("chatInput.filesHeader",{countLabel:ei})}${eo}`,maxHeight:"min(75dvh, 520px)",children:(0,n.jsx)("div",{style:{padding:"var(--space-2) var(--space-3)"},children:ea||0!==rC.length?rC.map(e=>{let t=e.path.split("/").pop()??e.path,r=e.path.slice(0,e.path.length-t.length);return(0,n.jsxs)("button",{type:"button",onClick:()=>{rT(e),tk(!1)},style:{width:"100%",minHeight:48,display:"flex",alignItems:"center",gap:10,padding:"10px 12px",border:"none",borderRadius:"var(--radius-control)",background:"transparent",color:"var(--text)",cursor:"pointer",textAlign:"left",fontSize:"var(--text-base)",fontFamily:"var(--font-mono)",touchAction:"manipulation"},children:[(0,n.jsx)("span",{style:{flexShrink:0,display:"flex",alignItems:"center"},children:e.isDir?(0,n.jsx)(eQ.sj,{size:16}):(0,eQ.I3)(t,16)}),(0,n.jsxs)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[r&&(0,n.jsx)("span",{style:{color:"var(--text-dim)"},children:r}),t,e.isDir&&(0,n.jsx)("span",{style:{color:"var(--text-dim)"},children:"/"})]})]},`${e.isDir?"d":"f"}:${e.path}`)}):(0,n.jsx)("div",{style:{padding:"16px var(--space-4)",fontSize:"var(--text-base)",color:"var(--text-dim)",textAlign:"center"},children:rj&&!rS?eh("chatInput.searching"):eh("chatInput.noMatchingFiles")})})})),rz&&(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)",display:"flex",flexDirection:"column",maxHeight:168,overflowY:"auto",minWidth:0},children:[r$>0&&(0,n.jsx)("div",{role:"status",style:{padding:"5px 12px",fontSize:"var(--text-sm)",color:"var(--text-muted)"},children:eh("chatInput.queuedNativeCount",{count:String(r$)})}),rE.map(e=>{let t=tF===e.id,r="sending"===e.status,a="failed"===e.status,i=!D||t||r;return(0,n.jsxs)("div",{"data-queue-id":e.id,style:{padding:"5px 8px 5px 12px",display:"flex",alignItems:"center",gap:8,minWidth:0,borderTop:"1px solid color-mix(in srgb, var(--border) 70%, transparent)"},children:[(0,n.jsx)("span",{style:{flexShrink:0,fontSize:"var(--text-xs)",fontWeight:600,letterSpacing:"0.06em",textTransform:"uppercase",color:a?"var(--status-error)":"var(--text-muted)"},children:r?eh("chatInput.queuedSending"):a?eh("chatInput.queuedFailed"):"steer"===e.lane?eh("chatInput.queuedSteer"):eh("chatInput.queuedFollowUp")}),(0,n.jsx)("span",{title:e.text,style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:"var(--text-sm)",color:"var(--text-muted)"},children:e.text}),!!e.attachments?.length&&(0,n.jsx)("span",{style:{color:"var(--text-muted)",flexShrink:0},children:eh("chatInput.queuedImages",{count:e.attachments.length})}),a&&(0,n.jsx)("span",{role:"alert",title:e.error||eh("chatInput.queuedUncertain"),style:{flexShrink:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:"var(--text-xs)",color:"var(--status-error)"},children:e.error||eh("chatInput.queuedUncertain")}),(0,n.jsx)(tc,{disabled:i,busy:t,onClick:()=>rL(e),title:eh("chatInput.queuedEditTitle"),children:eh("chatInput.queuedEdit")}),(0,n.jsx)(tc,{disabled:i,busy:t,onClick:()=>rN(e),title:eh("chatInput.queuedDeleteTitle"),children:eh("chatInput.queuedDelete")}),"followUp"===e.lane&&"queued"===e.status&&(0,n.jsx)(tc,{disabled:i,busy:t,onClick:()=>rB(e),title:eh("chatInput.queuedSteerTitle"),accent:!0,children:eh("chatInput.queuedSteerAction")})]},e.id)})]}),(0,n.jsxs)("div",{className:"chat-input-shell",style:{display:"flex",flexDirection:"column",background:"var(--bg)",border:`1px solid ${tm?"var(--tool-bg)":"color-mix(in srgb, var(--border) 70%, transparent)"}`,borderRadius:"var(--radius-card)",padding:"var(--composer-shell-padding)",boxShadow:"var(--shadow-card)",transition:"border-color var(--dur-fast) var(--ease-out-warm), background var(--dur-fast) var(--ease-out-warm), box-shadow var(--dur-fast) var(--ease-out-warm)"},children:[(0,n.jsx)("textarea",{ref:tN,value:ev,onChange:e=>{ey(e.target.value),tI(!1),rb(e.target.value,e.target.selectionStart)},onSelect:e=>{let t=e.currentTarget;rb(t.value,t.selectionStart)},onKeyDown:r_,onCompositionStart:()=>{tV.current=!0},onCompositionEnd:e=>{tV.current=!1,tK.current=Date.now();let t=e.currentTarget;rb(t.value,t.selectionStart)},onInput:rD,onPaste:rO,readOnly:!D,placeholder:eh("chatInput.placeholder"),rows:1,className:"chat-input-textarea",style:{width:"100%",background:"none",border:"none",outline:"none",resize:"none",color:"var(--text)",fontSize:em?16:"var(--text-base)",lineHeight:1.6,fontFamily:"inherit",minHeight:24,maxHeight:200,overflow:"auto"}}),(0,n.jsxs)("div",{className:"composer-toolbar",style:{display:"flex",alignItems:"center",gap:"var(--space-1)",marginTop:"var(--composer-toolbar-separation)",paddingTop:"var(--composer-toolbar-separation)",borderTop:"1px solid color-mix(in srgb, var(--border) 62%, transparent)",flexWrap:em?"wrap":"nowrap"},children:[(0,n.jsx)("button",{className:"composer-attachment ui-focus-ring",onClick:()=>tU.current?.click(),disabled:t6||!D,title:eh("chatInput.attachFile"),"aria-label":eh("chatInput.attachFile"),"data-has-attachments":eE.length||eL.length?"true":void 0,children:(0,n.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),(0,n.jsx)("polyline",{points:"14 2 14 8 20 8"})]})}),(rU.length>0||rG||d||rY)&&m&&(0,n.jsxs)("div",{ref:tB,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();ej({top:t.top,left:t.left,width:t.width}),ew(e=>!e)},disabled:rJ,style:{background:eb?"var(--bg-hover)":"none",cursor:rJ?"not-allowed":"pointer",opacity:rJ?.5:1},onMouseEnter:e=>{r||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background=eb?"var(--bg-hover)":"none",e.currentTarget.style.color="var(--text-muted)"},title:rU.length>0?eh("chatInput.changeModel"):rY?eh("chatInput.loadingModels"):eh("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"})]}),G&&(0,n.jsx)("span",{title:eh("chatInput.advisorEnabled"),"aria-label":eh("chatInput.advisorEnabled"),style:{display:"flex",flexShrink:0,color:"var(--accent)"},children:(0,n.jsx)(e$.A,{size:13,strokeWidth:2,"aria-hidden":"true"})}),(0,n.jsx)("span",{className:"composer-model-name",title:rG??void 0,children:rG??(rU.length>0?eh("chatInput.selectModel"):rY?eh("chatInput.loadingModels"):eh("chatInput.noModels"))}),(0,n.jsx)(o.A,{size:12,strokeWidth:1.8,style:{flexShrink:0,opacity:.7},"aria-hidden":"true"})]}),eb&&!em&&ek&&(el=(es=window.visualViewport?.height??window.innerHeight)-ek.top+6,eu=Math.max(120,Math.min(ek.top-8,.6*es)),(0,n.jsxs)("div",{ref:tH,className:"dropdown-surface",style:{position:"fixed",bottom:el,left:ek.left,width:"max-content",minWidth:ek.width,maxWidth:"calc(100vw - 16px)",zIndex:500,display:"flex",flexDirection:"column",overflow:"hidden",maxHeight:eu},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)(ez.A,{size:13,strokeWidth:1.8,color:"var(--text-dim)","aria-hidden":"true"}),(0,n.jsx)("input",{ref:t_,type:"search",autoComplete:"off",spellCheck:!1,value:eW,onChange:e=>eA(e.target.value),onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),ew(!1))},placeholder:eh("chatInput.searchModels"),"aria-label":eh("chatInput.searchModels"),style:{flex:1,background:"none",border:"none",outline:"none",color:"var(--text)",fontSize:"var(--text-md)",boxSizing:"border-box",minWidth:0}})]})}),(0,n.jsx)("div",{style:{overflowY:"auto",minHeight:0,paddingBottom:4},children:0===rK.length?(0,n.jsx)("div",{style:{padding:"8px 12px",color:"var(--text-dim)",fontSize:"var(--text-sm)",whiteSpace:"nowrap"},children:eW.trim()?eh("chatInput.noMatchingModels"):rY?eh("chatInput.loadingModels"):eh("chatInput.noAvailableModels")}):rK.map((e,t)=>(0,n.jsxs)("div",{children:[rK.length>1&&(0,n.jsx)("div",{style:{padding:"6px 12px 4px",fontSize:"var(--text-xs)",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===a?.modelId&&e.provider===a?.provider;return(0,n.jsxs)("button",{className:"dropdown-item",onClick:()=>{ew(!1),!r&&D&&(!t||s)&&m(e.provider,e.modelId)},disabled:!D||r,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:"var(--text-sm)",textAlign:"left",fontWeight:t?600:400,whiteSpace:"nowrap"},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="none")},children:[t?(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--accent)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:(0,n.jsx)("polyline",{points:"1.5 5 4 7.5 8.5 2.5"})}):(0,n.jsx)("span",{style:{width:10,flexShrink:0}}),(0,n.jsx)("span",{className:"model-option-name",title:e.name,style:{flex:1,minWidth:0},children:e.name})]},`${e.provider}:${e.modelId}`)})]},e.provider))})]})),eb&&em&&(0,n.jsxs)(eB,{open:eb,onClose:()=>ew(!1),title:eh("chatInput.selectModel"),maxHeight:"min(82dvh, 600px)",children:[(0,n.jsx)("div",{style:{padding:"8px var(--space-4) 10px",flexShrink:0,borderBottom:"1px solid var(--border)"},children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 12px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",minHeight:44},children:[(0,n.jsx)(ez.A,{size:16,strokeWidth:1.8,color:"var(--text-dim)","aria-hidden":"true"}),(0,n.jsx)("input",{ref:t_,type:"search",autoComplete:"off",spellCheck:!1,value:eW,onChange:e=>eA(e.target.value),placeholder:eh("chatInput.searchModels"),"aria-label":eh("chatInput.searchModels"),style:{flex:1,background:"none",border:"none",outline:"none",color:"var(--text)",fontSize:16,boxSizing:"border-box",minWidth:0,touchAction:"manipulation"}})]})}),(0,n.jsx)("div",{style:{overflowY:"auto",minHeight:0,padding:"var(--space-2) var(--space-3)"},children:0===rK.length?(0,n.jsx)("div",{style:{padding:"16px var(--space-4)",color:"var(--text-dim)",fontSize:"var(--text-base)",textAlign:"center"},children:eW.trim()?eh("chatInput.noMatchingModels"):rY?eh("chatInput.loadingModels"):eh("chatInput.noAvailableModels")}):rK.map((e,t)=>(0,n.jsxs)("div",{style:{marginBottom:12},children:[rK.length>1&&(0,n.jsx)("div",{style:{padding:"6px var(--space-2)",fontSize:"var(--text-sm)",fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em",borderTop:t>0?"1px solid var(--border)":"none"},children:e.provider}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:e.options.map(e=>{let t=e.modelId===a?.modelId&&e.provider===a?.provider;return(0,n.jsxs)("button",{type:"button",onClick:()=>{ew(!1),!r&&D&&(!t||s)&&m(e.provider,e.modelId)},disabled:!D||r,style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,minHeight:48,padding:"10px 12px",borderRadius:"var(--radius-control)",background:t?"var(--bg-selected)":"transparent",border:"none",color:"var(--text)",cursor:"pointer",textAlign:"left",touchAction:"manipulation"},children:[(0,n.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,n.jsx)("div",{style:{fontSize:"var(--text-base)",fontWeight:t?600:400},children:e.name}),(0,n.jsx)("div",{style:{fontSize:"var(--text-sm)",color:"var(--text-dim)",marginTop:2},children:e.provider})]}),t&&(0,n.jsx)(h.A,{size:16,color:"var(--accent)",style:{flexShrink:0}})]},`${e.provider}:${e.modelId}`)})})]},e.provider))})]})]}),j&&(0,n.jsxs)("div",{ref:tD,className:"composer-thinking-control",style:{position:"relative"},children:[(0,n.jsxs)("button",{className:"composer-thinking-button ui-focus-ring",onClick:e=>{let t=e.currentTarget.getBoundingClientRect();eM({top:t.top,left:t.left,width:t.width}),eC(e=>!e)},disabled:!D,title:eh("chatInput.changeReasoningTitle",{level:r0}),"aria-label":`${eh("chatInput.changeReasoning")}: ${r0}`,style:{background:eS?"var(--bg-hover)":"none"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background=eS?"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:r1}),(0,n.jsx)(o.A,{size:12,strokeWidth:1.8,style:{flexShrink:0,opacity:.7},"aria-hidden":"true"})]}),eS&&!em&&eI&&(ed=(ec=window.visualViewport?.height??window.innerHeight)-eI.top+6,ep=Math.max(120,Math.min(eI.top-8,.6*ec)),(0,n.jsx)("div",{ref:tO,className:"dropdown-surface",style:{position:"fixed",bottom:ed,left:eI.left,zIndex:500,minWidth:Math.max(250,eI.width),maxWidth:"calc(100vw - 32px)",maxHeight:ep,overflowY:"auto"},children:nt.map(e=>{let t=(k??"auto")===e,r=e6[e],a=r?eh(r):"",i="auto"!==e&&C?C[e]:void 0,o=null!=i&&i!==e?i:e,s=null!=i&&i!==e;return(0,n.jsxs)("button",{className:"dropdown-item",onClick:()=>{eC(!1),D&&!t&&j(e)},disabled:!D,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:"var(--text-sm)",textAlign:"left",fontWeight:t?600:400,whiteSpace:"nowrap"},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="transparent")},children:[t?(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--accent)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:(0,n.jsx)("polyline",{points:"1.5 5 4 7.5 8.5 2.5"})}):(0,n.jsx)("span",{style:{width:10,flexShrink:0}}),(0,n.jsxs)("span",{style:{flexShrink:0,whiteSpace:"nowrap"},children:[o,s&&(0,n.jsxs)("span",{style:{color:"var(--text-dim)",fontWeight:400},children:[" (",e,")"]})]}),a&&(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:"var(--text-sm)",color:"var(--text-dim)",marginLeft:8},children:a})]},e)})})),eS&&em&&(0,n.jsx)(eB,{open:eS,onClose:()=>eC(!1),title:eh("chatInput.changeReasoning"),maxHeight:"min(60dvh, 400px)",children:(0,n.jsx)("div",{style:{padding:"var(--space-2) var(--space-3)"},children:nt.map(e=>{let t=(k??"auto")===e,r=e6[e],a=r?eh(r):"",i="auto"!==e&&C?C[e]:void 0,o=null!=i&&i!==e?i:e,s=null!=i&&i!==e;return(0,n.jsxs)("button",{type:"button",onClick:()=>{eC(!1),D&&!t&&j(e)},disabled:!D,style:{display:"flex",alignItems:"center",gap:12,width:"100%",minHeight:48,padding:"10px 14px",background:t?"var(--bg-selected)":"transparent",border:"none",borderRadius:"var(--radius-control)",color:t?"var(--text)":"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:"var(--text-base)",touchAction:"manipulation"},children:[(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,fontWeight:t?600:400},children:[(0,n.jsx)("span",{children:o}),s&&(0,n.jsxs)("span",{style:{fontSize:"var(--text-sm)",color:"var(--text-dim)"},children:["(",e,")"]})]}),a&&(0,n.jsx)("div",{style:{fontSize:"var(--text-sm)",color:"var(--text-dim)",marginTop:2},children:a})]}),t&&(0,n.jsx)(h.A,{size:16,color:"var(--accent)",style:{flexShrink:0}})]},e)})})})]}),x&&v&&(0,n.jsxs)("button",{className:"composer-fast-toggle ui-focus-ring",type:"button",onClick:()=>{D&&!r&&v(!f)},disabled:!D||r,title:f&&!1===g?"Fast mode is enabled but inactive for this model":`Turn OMP Fast mode ${f?"off":"on"} for this model`,"aria-pressed":f,style:{background:f?"var(--bg-selected)":"none",color:f&&!1===g?"var(--status-warning)":f?"var(--accent)":"var(--text-muted)",cursor:r?"not-allowed":"pointer",opacity:r?.5:1},children:[(0,n.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("polygon",{points:"13 2 3 14 12 14 11 22 21 10 12 10 13 2"})}),eh("chatInput.fastLabel")]}),(0,n.jsx)("div",{className:"composer-toolbar-spacer",style:{flex:1}}),(0,n.jsxs)("div",{ref:tP,className:"composer-context-ring-wrap",children:[(0,n.jsxs)("button",{type:"button",className:"composer-context-ring","aria-haspopup":r5?"dialog":void 0,"aria-expanded":eT,"aria-label":r5?eh("chatInput.contextWindow"):eh("chatInput.contextWindowUnavailable"),title:r6??void 0,disabled:!r5,onClick:()=>eR(e=>!e),children:[(0,n.jsxs)("svg",{width:"100%",height:"100%",viewBox:"0 0 26 26","aria-hidden":"true",style:{position:"absolute",inset:0},children:[(0,n.jsx)("circle",{cx:"13",cy:"13",r:"9.5",fill:"none",stroke:"var(--border)",strokeWidth:"2.5"}),(0,n.jsx)("circle",{cx:"13",cy:"13",r:"9.5",fill:"none",stroke:"var(--accent)",strokeWidth:"2.5",strokeLinecap:"round",strokeDasharray:e4,strokeDashoffset:e4*(1-r2/100),transform:"rotate(-90 13 13)"})]}),(0,n.jsx)("span",{className:"composer-context-ring-label",children:r4})]}),r5&&r6&&eT&&(0,n.jsxs)("div",{className:"dropdown-surface composer-context-ring-popup",role:"dialog","aria-label":eh("chatInput.contextWindow"),children:[(0,n.jsx)("strong",{className:"composer-context-ring-popup-title",children:eh("chatInput.contextWindow")}),(0,n.jsx)("span",{className:"composer-context-ring-popup-used",children:eh("chatInput.contextUsed",{percent:e2(r2)})}),r3&&(0,n.jsx)("span",{className:"composer-context-ring-popup-meta",children:r3}),r8&&(0,n.jsx)("span",{className:"composer-context-ring-popup-meta",children:r8})]})]}),r&&!em&&_&&(0,n.jsxs)("button",{type:"button",className:"composer-queue-action composer-queue-action-steer ui-focus-ring",onClick:()=>rA("steer"),disabled:!D||t6||!r7,title:eh("chatInput.steerNowTitle"),"aria-label":eh("chatInput.steer"),children:[(0,n.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},"aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M5 1 L9 5 L5 9"}),(0,n.jsx)("line",{x1:"1",y1:"5",x2:"9",y2:"5"})]}),(0,n.jsx)("span",{className:"composer-queue-action-label",children:eh("chatInput.steer")})]}),r&&!em&&_&&(0,n.jsxs)("button",{type:"button",className:"composer-queue-action composer-queue-action-followup ui-focus-ring",onClick:()=>rA("followup"),disabled:!D||t6||!r7,title:eh("chatInput.followUpTitle"),"aria-label":eh("chatInput.followUp"),children:[(0,n.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},"aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"5",y1:"1",x2:"5",y2:"6"}),(0,n.jsx)("polyline",{points:"2.5 3.5 5 1 7.5 3.5"}),(0,n.jsx)("line",{x1:"2",y1:"9",x2:"8",y2:"9"})]}),(0,n.jsx)("span",{className:"composer-queue-action-label",children:eh("chatInput.followUp")})]}),r&&ne?(0,n.jsxs)("button",{className:"composer-primary-action ui-focus-ring",type:"button",onClick:()=>rA(ne),title:"steer"===ne?eh("chatInput.steerNowTitle"):eh("chatInput.followUpTitle"),"aria-label":"steer"===ne?eh("chatInput.steer"):eh("chatInput.followUp"),disabled:!D||t6,"data-state":"run-submit",children:[(0,n.jsxs)("svg",{width:"13",height:"13",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 8h10"}),(0,n.jsx)("path",{d:"m9 4 4 4-4 4"})]}),(0,n.jsx)("span",{className:"composer-primary-label",children:"steer"===ne?eh("chatInput.steer"):eh("chatInput.followUp")})]}):r?(0,n.jsxs)("button",{className:"composer-primary-action ui-focus-ring",type:"button",onClick:b?y:t,title:eh("chatInput.stopAgent"),"aria-label":eh("chatInput.stopAgent"),disabled:!D,"data-state":"stop",children:[(0,n.jsx)("svg",{width:"9",height:"9",viewBox:"0 0 10 10",fill:"none","aria-hidden":"true",children:(0,n.jsx)("rect",{x:"1.5",y:"1.5",width:"7",height:"7",rx:"1.5",fill:"currentColor"})}),(0,n.jsx)("span",{className:"composer-primary-label",children:eh("chatInput.stop")})]}):(0,n.jsxs)("button",{className:"composer-primary-action ui-focus-ring",type:"button",onClick:rd,disabled:!D||t6||!ev.trim()&&!eE.length&&!eL.length,title:eh("chatInput.send"),"aria-label":eh("chatInput.send"),"data-state":"send",children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"2",y1:"7",x2:"11",y2:"7"}),(0,n.jsx)("polyline",{points:"7.5 3 12 7 7.5 11"})]}),(0,n.jsx)("span",{className:"composer-primary-label",children:eh("chatInput.send")})]})]})]})]}),tm&&(0,n.jsx)("div",{className:"text-xs px-2 py-1",style:{color:th?"var(--text-muted)":"var(--accent)",marginTop:4},children:th?eh("chatInput.shellLocal"):eh("chatInput.shellToModel")})]})]})}));function th({request:e,onRespond:t,runtimeReady:r=!0}){let{t:a}=(0,u.s9)(),[o,s]=(0,i.useState)("editor"===e.method?e.prefill??"":"");(0,i.useEffect)(()=>{s("editor"===e.method?e.prefill??"":"")},[e]);let l=()=>{r&&t(e,{cancelled:!0})},c=(0,eL.Z)({onClose:l,active:r}),d=()=>{r&&("confirm"===e.method?t(e,{confirmed:!0}):t(e,{value:o}))};return(0,n.jsx)("div",{className:"animate-fade-in",onMouseDown:e=>{r&&e.target===e.currentTarget&&l()},style:{position:"absolute",inset:0,zIndex:"var(--z-dialog)",display:"flex",alignItems:"center",justifyContent:"center",padding:20,background:"var(--overlay-backdrop)"},children:(0,n.jsxs)("div",{ref:c,role:"dialog","aria-modal":"true","aria-label":e.title,tabIndex:-1,className:"animate-scale-in",style:{width:"min(560px, 100%)",border:"1px solid var(--border)",borderRadius:"var(--radius-modal)",background:"var(--bg)",boxShadow:"var(--shadow-modal)",overflow:"hidden",outline:"none"},children:[(0,n.jsxs)("div",{style:{padding:"var(--space-5) 14px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("div",{style:{color:"var(--text)",fontSize:"var(--text-lg)",fontWeight:650},children:e.title}),(0,n.jsx)("div",{style:{marginTop:3,color:"var(--text-dim)",fontSize:"var(--text-sm)",fontFamily:"var(--font-mono)"},children:a("chatWindow.extensionRequest")})]}),(0,n.jsxs)("div",{style:{padding:14},children:["confirm"===e.method&&(0,n.jsx)("div",{style:{color:"var(--text-muted)",fontSize:"var(--text-base)",lineHeight:1.6,whiteSpace:"pre-wrap"},children:e.message}),"select"===e.method&&(0,n.jsx)("div",{style:{display:"grid",gap:"var(--space-4)"},children:e.options.map(a=>(0,n.jsx)("button",{disabled:!r,"aria-disabled":!r,onClick:()=>{r&&t(e,{value:a})},style:{width:"100%",padding:"9px 10px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",cursor:r?"pointer":"not-allowed",opacity:r?void 0:.5,textAlign:"left",fontSize:"var(--text-base)",transition:"background-color var(--dur-fast) var(--ease-out-warm), border-color var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{r&&(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{r&&(e.currentTarget.style.background="var(--bg-panel)")},children:a},a))}),"input"===e.method&&(0,n.jsx)("input",{autoFocus:r,disabled:!r,"aria-disabled":!r,readOnly:!r,"aria-label":e.title||e.placeholder||"Input value",value:o,placeholder:e.placeholder,onChange:e=>s(e.target.value),onKeyDown:e=>{r&&"Enter"===e.key&&d()},style:{width:"100%",padding:"9px 10px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",outline:"none",fontSize:"var(--text-base)",opacity:r?void 0:.6,cursor:r?void 0:"not-allowed"}}),"editor"===e.method&&(0,n.jsx)("textarea",{autoFocus:r,disabled:!r,"aria-disabled":!r,readOnly:!r,"aria-label":e.title||"Input value",value:o,onChange:e=>s(e.target.value),onKeyDown:e=>{r&&(e.metaKey||e.ctrlKey)&&"Enter"===e.key&&d()},style:{width:"100%",minHeight:220,padding:10,borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",outline:"none",resize:"vertical",fontSize:"var(--text-base)",lineHeight:1.55,fontFamily:"var(--font-mono)",opacity:r?void 0:.6,cursor:r?void 0:"not-allowed"}})]}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:"var(--space-4)",padding:"10px 14px",borderTop:"1px solid var(--border)",background:"var(--bg-panel)"},children:[(0,n.jsx)("button",{onClick:l,disabled:!r,"aria-disabled":!r,style:{padding:"var(--space-3) 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text-muted)",cursor:r?"pointer":"not-allowed",opacity:r?void 0:.5,transition:"background-color var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{r&&(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{r&&(e.currentTarget.style.background="var(--bg)",e.currentTarget.style.color="var(--text-muted)")},children:a("chatWindow.cancel")}),"confirm"===e.method?(0,n.jsx)("button",{onClick:d,disabled:!r,"aria-disabled":!r,style:{padding:"var(--space-3) 10px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--on-accent)",cursor:r?"pointer":"not-allowed",opacity:r?void 0:.5,transition:"background-color var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{r&&(e.currentTarget.style.background="var(--accent-hover)")},onMouseLeave:e=>{r&&(e.currentTarget.style.background="var(--accent)")},children:a("chatWindow.confirm")}):"select"!==e.method?(0,n.jsx)("button",{onClick:d,disabled:!r,"aria-disabled":!r,style:{padding:"var(--space-3) 10px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--on-accent)",cursor:r?"pointer":"not-allowed",opacity:r?void 0:.5,transition:"background-color var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{r&&(e.currentTarget.style.background="var(--accent-hover)")},onMouseLeave:e=>{r&&(e.currentTarget.style.background="var(--accent)")},children:a("chatWindow.submit")}):null]})]})})}var tf=r(32383);function tg({message:e}){let t="user"===e.role?"U":"assistant"===e.role?"A":"R",r="user"===e.role?"var(--accent)":"assistant"===e.role?"var(--text-muted)":"var(--text-dim)",a=e.content,i=("string"==typeof a?[{type:"text",text:a}]:Array.isArray(a)?a:[]).filter(e=>"text"===e.type&&"string"==typeof e.text).map(e=>e.text).join("\n").slice(0,400),o=!0===e.isError;return(0,n.jsxs)("div",{style:{display:"flex",gap:"var(--space-4)",minWidth:0},children:[(0,n.jsx)("span",{style:{flexShrink:0,fontSize:"var(--text-xs)",fontFamily:"var(--font-mono)",color:r,paddingTop:"var(--space-1)"},children:t}),(0,n.jsx)("div",{style:{fontSize:"toolResult"===e.role||"assistant"===e.role?11.5:12.5,lineHeight:1.55,minWidth:0,whiteSpace:"pre-wrap",wordBreak:"break-word",color:"toolResult"===e.role?"var(--text-muted)":"var(--text)",fontFamily:"toolResult"===e.role?"var(--font-mono)":"inherit"},children:"assistant"===e.role&&"string"!=typeof a&&Array.isArray(a)?a.map((e,t)=>(0,n.jsx)("div",{children:e&&"object"==typeof e&&"toolCall"===e.type?`→ ${e.toolName??"tool"} ${JSON.stringify(e.input??{})}`:e&&"object"==typeof e&&"text"===e.type?e.text??"":""},t)):i||("user"===e.role||"assistant"===e.role?"":o?"(error)":"(no output)")})]})}let tx="calc(var(--space-4) + var(--space-1)) var(--space-5)",tv={fontFamily:"var(--font-mono)",fontSize:"var(--text-xs)",fontWeight:700,letterSpacing:.4,textTransform:"uppercase",color:"var(--text-dim)"};function ty({value:e}){return"string"==typeof e?(0,n.jsx)("div",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",color:"var(--text-muted)",fontSize:"var(--text-md)",lineHeight:1.55},children:e}):Array.isArray(e)?(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"calc(var(--space-3) / 2)"},children:e.map((e,t)=>(0,n.jsxs)("div",{style:{display:"flex",gap:"var(--space-3)",alignItems:"flex-start"},children:[(0,n.jsx)("span",{style:{color:"var(--text-dim)",flexShrink:0},children:"•"}),(0,n.jsx)("div",{style:{minWidth:0,flex:1},children:(0,n.jsx)(ty,{value:e})})]},t))}):null!==e&&"object"==typeof e?(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"var(--space-2)"},children:Object.keys(e).map(t=>(0,n.jsxs)("div",{style:{display:"flex",gap:"var(--space-4)",alignItems:"flex-start"},children:[(0,n.jsx)("span",{style:{flexShrink:0,fontFamily:"var(--font-mono)",fontSize:10.5,color:"var(--text-dim)",minWidth:110,textAlign:"right",paddingTop:"var(--space-1)"},children:t}),(0,n.jsx)("div",{style:{minWidth:0,flex:1},children:(0,n.jsx)(ty,{value:e[t]})})]},t))}):(0,n.jsx)("span",{style:{color:"var(--text-muted)",fontSize:"var(--text-md)"},children:String(e)})}function tb({task:e}){let{t}=(0,u.s9)();return e?(0,n.jsxs)("section",{style:{border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-subtle)",padding:tx},children:[(0,n.jsx)("span",{style:tv,children:t("subagentTranscript.taskLabel")}),(0,n.jsx)("div",{style:{marginTop:"var(--space-3)"},children:(0,n.jsx)(R,{className:"markdown-subagent-text",children:e})})]}):null}function tw({completion:e,truncated:t}){let{t:r}=(0,u.s9)(),a=null;if(e)try{let t=JSON.parse(e);null===t||"object"!=typeof t||Array.isArray(t)||(a=t)}catch{a=null}let i=a?Object.keys(a):[],o=a&&1===i.length&&"string"==typeof a[i[0]]?a[i[0]]:null;return(0,n.jsxs)("section",{style:{border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)",padding:tx},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:"var(--space-4)"},children:[(0,n.jsx)("span",{style:tv,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:"var(--space-3)",whiteSpace:"pre-wrap",wordBreak:"break-word",color:"var(--text-muted)",fontSize:"var(--text-md)",lineHeight:1.55},children:o}):a?(0,n.jsx)("div",{style:{marginTop:"var(--space-3)"},children:(0,n.jsx)(ty,{value:a})}):e?(0,n.jsx)("div",{style:{marginTop:"var(--space-3)"},children:(0,n.jsx)(R,{className:"markdown-subagent-text",children:e})}):(0,n.jsx)("div",{style:{marginTop:"var(--space-3)",fontSize:"var(--text-md)",color:"var(--text-dim)",fontStyle:"italic"},children:r("subagentTranscript.noCompletion")})]})}function tk({subagent:e,sessionId:t,transcriptVersion:r,events:a,onClose:o}){let{t:s}=(0,u.s9)(),[l,c]=(0,i.useState)(null),[d,p]=(0,i.useState)(null),[m,h]=(0,i.useState)(!1),[f,g]=(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,I]=(0,i.useState)(!1),[M,T]=(0,i.useState)(null),[R,W]=(0,i.useState)(!1),A=(0,i.useRef)(0),E=(0,i.useRef)(0),$=(0,i.useRef)(0),z=(0,i.useRef)(0),F=(0,i.useRef)(0),L=(0,i.useRef)(null),N=null!==e,B=e?.source==="history",_=!B,D=(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,tf.$)(t,{type:"get_subagent_messages",subagentId:e.id,sessionFile:e.sessionFile,fromByte:r})},[t,e?.id,e?.sessionFile]),P=(0,i.useCallback)(async r=>{if(!t||!e?.id)return;let n=++E.current;I(!0),T(null);try{let t;try{t=await O(r,B)}catch(n){if(B||!e.id)throw n;t=await O(r,!0)}if(n!==E.current)return;t.reset?k(t.messages):k(e=>[...e,...t.messages]),S(t.nextByte);let a="number"==typeof t.totalBytes?t.nextByte>=t.totalBytes:0===t.messages.length;W(a||t.nextByte<=t.fromByte)}catch(e){if(n!==E.current)return;T(e instanceof Error?e.message:String(e))}finally{n===E.current&&I(!1)}},[t,e?.id,B,O]),q=(0,i.useCallback)(async()=>{if(!t||!e?.id)return;let r=++A.current;g(!0),v(null);try{let n=await D();if(null===n.completion&&_){let n=((await (0,tf.$)(t,{type:"get_subagents"})).subagents??[]).find(t=>t.id===e?.id);if(r!==A.current)return;n&&c(n)}if(r!==A.current)return;p(n.completion),h(n.truncated)}catch(e){if(r!==A.current)return;v(e instanceof Error?e.message:String(e))}finally{r===A.current&&g(!1)}},[t,e?.id,_,D]);(0,i.useEffect)(()=>{N&&t&&(A.current+=1,E.current+=1,p(null),h(!1),v(null),c(null),b(!1),k([]),S(0),W(!1),T(null),I(!1),q())},[N,t,q]),(0,i.useEffect)(()=>{if(!N||!t||0===r||f)return;let e=r===$.current&&r===F.current,n=r===z.current;if(!e||!n)return F.current=r,L.current&&clearTimeout(L.current),L.current=setTimeout(()=>{L.current=null,$.current!==F.current&&($.current=F.current,q()),y&&!C&&z.current!==F.current&&(z.current=F.current,P(j))},600),()=>{L.current&&clearTimeout(L.current)}},[N,t,r,f,y,C,q,P,j]);let U=l?.agent??e?.agent??"",V=l?.description??e?.description??"",J=l?.task??e?.task??e?.assignment??"",Q=e?.progress,Z=K(Q?.tokens),X=e?.source==="history"?[Z?s("chatWindow.tokensUnit",{count:Z}):null,G(Q?.cost),Y(Q?.durationMs),Q?.resolvedModel?Q.resolvedModel.replace(/:.*$/,""):null].filter(Boolean).join(" \xb7 "):null,ee=e?.source==="history"?e?.result?.abortReason??e?.result?.error:void 0,et=_&&!d&&a&&a.length>0?a.slice(-4):null;return(0,n.jsx)(H.lG,{open:N,onOpenChange:e=>{e||o()},children:e&&(0,n.jsx)(H.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:"calc(var(--space-4) + var(--space-1))",marginBottom:"var(--space-5)"},children:[(0,n.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,n.jsx)(H.L3,{style:{marginBottom:2,fontSize:16,lineHeight:1.3},children:(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",color:"var(--accent)",fontSize:"var(--text-lg)"},children:U})}),V&&(0,n.jsx)("div",{style:{fontSize:12.5,color:"var(--text-muted)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginBottom:"var(--space-2)"},children:V}),(0,n.jsx)("div",{style:{fontSize:"var(--text-sm)",color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:l?.sessionFile??e.sessionFile??e.id}),X&&(0,n.jsx)("div",{style:{fontSize:10.5,color:"var(--text-dim)",fontFamily:"var(--font-mono)",marginTop:"var(--space-1)"},children:X}),ee&&(0,n.jsx)("div",{style:{fontSize:"var(--text-sm)",color:"var(--status-error)",marginTop:"var(--space-1)",wordBreak:"break-word"},children:ee})]}),(0,n.jsx)(H.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"})]}),et&&(0,n.jsx)("div",{"aria-live":"polite",style:{display:"grid",gap:"var(--space-1)",marginBottom:"var(--space-4)",padding:"var(--space-3) var(--control-padding-inline)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)"},children:et.map((e,t)=>(0,n.jsxs)("div",{style:{display:"flex",gap:"var(--space-3)",fontSize:"var(--text-sm)",fontFamily:"var(--font-mono)",color:"tool"===e.kind?"var(--accent)":"var(--text-muted)",minWidth:0},children:[(0,n.jsx)("span",{style:{color:"var(--text-dim)",flexShrink:0},children:"tool"===e.kind?"\xb7":"notice"===e.kind?"!":"\xbb"}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.label})]},t))}),x?(0,n.jsx)("div",{style:{fontSize:"var(--text-md)",color:"var(--status-error)",padding:"8px 2px"},children:x}):(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"calc(var(--space-4) + var(--space-1))"},children:[(0,n.jsx)(tb,{task:J}),(0,n.jsx)(tw,{completion:d,truncated:m}),f&&(0,n.jsx)("div",{style:{fontSize:"var(--text-sm)",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&&P(0)},style:{alignSelf:"flex-start",background:"none",border:"none",color:"var(--accent)",cursor:"pointer",fontSize:"var(--text-md)",fontFamily:"inherit",padding:0},children:s(y?"subagentTranscript.hideTranscript":"subagentTranscript.showTranscript")}),y&&(0,n.jsxs)("div",{id:"subagent-transcript-panel",style:{display:"grid",gap:"var(--space-4)",padding:tx,border:"1px solid var(--border)",borderRadius:"var(--radius-card)",background:"var(--bg-panel)",maxHeight:"50dvh",overflowY:"auto"},children:[M?(0,n.jsx)("div",{style:{fontSize:"var(--text-md)",color:"var(--status-error)"},children:M}):0!==w.length||C?w.map((e,t)=>(0,n.jsx)(tg,{message:e},t)):(0,n.jsx)("div",{style:{fontSize:"var(--text-md)",color:"var(--text-dim)",fontStyle:"italic"},children:s("subagentTranscript.noMessages")}),C&&(0,n.jsx)("div",{style:{fontSize:"var(--text-sm)",color:"var(--text-dim)"},children:s("subagentTranscript.loading")}),!R&&!C&&(0,n.jsx)("button",{type:"button",onClick:()=>void P(j),style:{background:"none",border:"none",color:"var(--accent)",cursor:"pointer",fontSize:"var(--text-md)",fontFamily:"inherit",padding:0},children:s("subagentTranscript.loadMore")})]})]})]})},e.id)})}function tj(e,t,r){return`${e}:${t}:${r}`}function tS(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 tC(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 tI=(0,i.memo)(function({messages:e,scrollContainer:t,messageRefs:r,layoutKey:a}){let[o,s]=(0,i.useState)(0),[l,u]=(0,i.useState)(1),[c,d]=(0,i.useState)(!1),[p,m]=(0,i.useState)([]),[h,f]=(0,i.useState)(!1),[g,x]=(0,i.useState)(null),v=(0,i.useRef)(!1),y=(0,i.useRef)(null),b=(0,i.useRef)(null),w=(0,i.useRef)(null),k=(0,i.useRef)(null),j=(0,i.useRef)(e);j.current=e;let S=(0,i.useCallback)(()=>{let e=t.current;if(!e)return;let r=e.scrollHeight,n=e.clientHeight,a=r-n;d(a>20),a<=0?(s(0),u(1)):(s(e.scrollTop/a),u(n/r))},[t]),C=(0,i.useRef)(null),I=(0,i.useCallback)(()=>{let e=t.current;if(!e)return;let n=e.scrollHeight;if(n<=0)return;let a=r.current,i=[],o=0,s=j.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 u=a?.[o];if(o++,("user"===r.role||"assistant"===r.role&&(r.content??[]).some(e=>"text"===e.type))&&u?.isConnected){let t=u.getBoundingClientRect(),a=t.top-l.top+e.scrollTop,o=t.height;i.push({topRatio:a/n,heightRatio:o/n,msg:r,index:i.length})}}m(i)},[t,r]),M=(0,i.useCallback)(()=>{C.current||(C.current=setTimeout(()=>{C.current=null,I()},150))},[I]),T=(0,i.useRef)(null),R=(0,i.useCallback)(()=>{T.current=null,S()},[S]);(0,i.useEffect)(()=>{let e=t.current;if(!e)return;let r=()=>{null===T.current&&(T.current=requestAnimationFrame(R))};return e.addEventListener("scroll",r,{passive:!0}),()=>{e.removeEventListener("scroll",r),null!==T.current&&(cancelAnimationFrame(T.current),T.current=null)}},[t,R]),(0,i.useEffect)(()=>{let e=t.current;if(!e)return;let r=()=>{S(),M()},n=new ResizeObserver(r);return n.observe(e),e.firstElementChild&&n.observe(e.firstElementChild),r(),()=>{n.disconnect(),C.current&&(clearTimeout(C.current),C.current=null)}},[t,M,S]),(0,i.useEffect)(()=>{let e=setTimeout(()=>{C.current&&(clearTimeout(C.current),C.current=null),S(),I()},50);return()=>clearTimeout(e)},[e.length,a,I,S]),(0,i.useEffect)(()=>()=>{null!==w.current&&(cancelAnimationFrame(w.current),w.current=null)},[]);let W=(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-l,e))/(1-l)*n)},[t,l]),A=(0,i.useCallback)(()=>{w.current=null,null!==k.current&&(x(k.current),k.current=null)},[]),E=(0,i.useCallback)(e=>{let t=e.currentTarget.getBoundingClientRect();k.current=(e.clientY-t.top)/t.height,null===w.current&&(w.current=requestAnimationFrame(A))},[A]),$=(0,i.useCallback)(e=>{if(!c)return;v.current=!0;let t=e.currentTarget.getBoundingClientRect(),r=(e.clientY-t.top)/t.height,n=r-o*(1-l),a=n>=0&&n<=l?n:l/2;W(r-a);let i=e=>{v.current&&W((e.clientY-t.top)/t.height-a)},s=()=>{v.current=!1,y.current=null,window.removeEventListener("mousemove",i),window.removeEventListener("mouseup",s)};window.addEventListener("mousemove",i),window.addEventListener("mouseup",s),y.current={onMove:i,onUp:s}},[c,l,o,W]);(0,i.useEffect)(()=>()=>{let e=y.current;e&&(window.removeEventListener("mousemove",e.onMove),window.removeEventListener("mouseup",e.onUp),y.current=null),v.current=!1},[]);let z=b.current?.clientHeight??600,F=(0,i.useMemo)(()=>p.map(e=>tC(e.msg)),[p]),L=(0,i.useMemo)(()=>p.map(e=>tS(e.msg)),[p]),N=(0,i.useMemo)(()=>{if(!h||0===p.length)return[];let e=p.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,p,z]);if(!c)return null;let B=o*(1-l)*100,H=100*l,_=null!==g&&p.length>0?p.reduce((e,t)=>Math.abs(t.topRatio-g)<Math.abs(p[e].topRatio-g)?t.index:e,0):null;return(0,n.jsxs)("div",{ref:b,onMouseDown:$,onMouseEnter:()=>f(!0),onMouseLeave:()=>{f(!1),x(null)},onMouseMove:E,style:{position:"absolute",top:0,right:0,bottom:0,width:20,zIndex:20,cursor:"default",userSelect:"none",background:"transparent",overflow:"visible"},children:[(0,n.jsx)("div",{style:{position:"absolute",right:3,width:3,top:`${B}%`,height:`${H}%`,background:"color-mix(in srgb, var(--text-dim) 32%, transparent)",borderRadius:2,pointerEvents:"none",zIndex:1}}),p.map(e=>{let t=F[e.index]??tC(e.msg),r=h&&_===e.index,a="user"===e.msg.role,i=100*e.topRatio;return(0,n.jsx)("div",{style:{position:"absolute",top:`${i}%`,transform:"translateY(-50%)",left:0,right:0,height:"12px",display:"flex",alignItems:"center",justifyContent:"flex-end",paddingRight:1,cursor:"pointer",zIndex:2},children:(0,n.jsx)("div",{style:{width:a?8:6,height:a?8:6,borderRadius:a?2:"50%",background:t.bg,border:`1.5px solid ${t.border}`,flexShrink:0,transition:"transform var(--dur-fast) var(--ease-out-warm)",transform:r?"scale(1.6)":"scale(1)"}})},e.index)}),(0,n.jsx)("div",{style:{position:"absolute",right:4,top:0,bottom:0,width:1,background:"color-mix(in srgb, var(--border) 72%, transparent)",zIndex:0}}),h&&p.map((e,t)=>{let r=L[t]??tS(e.msg),a=F[t]??tC(e.msg),i=_===e.index;return r&&0!==N.length?(0,n.jsx)("div",{style:{position:"absolute",top:N[t],right:"100%",marginRight:6,background:"var(--bg)",borderTop:`1px solid ${i?a.border:"var(--border)"}`,borderRight:`1px solid ${i?a.border:"var(--border)"}`,borderBottom:`1px solid ${i?a.border:"var(--border)"}`,borderLeft:`2px solid ${a.border}`,borderRadius:4,padding:"2px 7px",width:200,zIndex:100,pointerEvents:"none",opacity:i?1:.45,transition:"top var(--dur-fast) var(--ease-out-warm), opacity var(--dur-fast) var(--ease-out-warm)"},children:(0,n.jsx)("div",{style:{fontSize:"var(--text-sm)",color:i?"var(--text)":"var(--text-muted)",lineHeight:1.4,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:r})},e.index):null})]})}),tM=(0,s.A)("circle-dot-dashed",[["path",{d:"M10.1 2.18a9.93 9.93 0 0 1 3.8 0",key:"1qdqn0"}],["path",{d:"M17.6 3.71a9.95 9.95 0 0 1 2.69 2.7",key:"1bq7p6"}],["path",{d:"M21.82 10.1a9.93 9.93 0 0 1 0 3.8",key:"1rlaqf"}],["path",{d:"M20.29 17.6a9.95 9.95 0 0 1-2.7 2.69",key:"1xk03u"}],["path",{d:"M13.9 21.82a9.94 9.94 0 0 1-3.8 0",key:"l7re25"}],["path",{d:"M6.4 20.29a9.95 9.95 0 0 1-2.69-2.7",key:"1v18p6"}],["path",{d:"M2.18 13.9a9.93 9.93 0 0 1 0-3.8",key:"xdo6bj"}],["path",{d:"M3.71 6.4a9.95 9.95 0 0 1 2.7-2.69",key:"1jjmaz"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]]),tT={display:"flex",alignItems:"center",gap:"var(--space-4)",padding:"var(--space-4) var(--space-5)",fontSize:"var(--text-xs)",color:"var(--text-muted)"};function tR({status:e}){let t={size:14,strokeWidth:1.8,"aria-hidden":!0};return"completed"===e?(0,n.jsx)(D,{...t,color:"var(--accent)"}):"in_progress"===e?(0,n.jsx)(tM,{...t,color:"var(--accent)"}):"blocked"===e?(0,n.jsx)(O.A,{...t,color:"var(--text-muted)"}):"abandoned"===e?(0,n.jsx)(q,{...t,color:"var(--text-dim)"}):(0,n.jsx)(U,{...t,color:"var(--text-dim)"})}function tW({phases:e=[],collapsible:t=!1,defaultExpanded:r=!1}){let{t:a}=(0,u.s9)(),[s,l]=(0,i.useState)(!1),[c,d]=(0,i.useState)(!!t&&!r);if(0===e.length)return null;let p=e.flatMap(e=>e.tasks),m=p.filter(e=>"completed"===e.status).length,h=5,f=(s?e:e.slice(0,4)).map(e=>{let t=s?e.tasks:e.tasks.slice(0,h);return h-=t.length,{...e,tasks:t}}).filter(e=>e.tasks.length>0),g=f.reduce((e,t)=>e+t.tasks.length,0)<p.length,x=c?"":"border-b border-border",v=a("chatWindow.todoProgress",{done:m,total:p.length});return(0,n.jsxs)("section",{"aria-label":a("chatWindow.todoList"),className:"overflow-hidden border border-border bg-bg-subtle",style:{borderRadius:"var(--radius-card)",marginBlock:t?void 0:"var(--space-4)"},children:[t?(0,n.jsxs)("button",{type:"button","aria-expanded":!c,onClick:()=>d(e=>!e),title:c?a("chatWindow.expandPanel"):a("chatWindow.collapsePanel"),className:`${x} w-full cursor-pointer text-left`,style:{...tT,background:"none"},children:[(0,n.jsx)(eE,{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)(o.A,{size:14,strokeWidth:1.8,"aria-hidden":!0,style:{color:"var(--text-dim)",transform:c?"rotate(-90deg)":"rotate(0deg)",transition:"transform var(--dur-med) var(--ease-out-warm)"}})]}):(0,n.jsxs)("div",{className:x,style:tT,children:[(0,n.jsx)(eE,{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})]}),!c&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"animate-slide-down",style:{display:"grid",gap:"var(--space-5)",padding:"calc(var(--space-4) + var(--space-1)) var(--space-5)"},children:f.map((e,t)=>(0,n.jsxs)("div",{style:{display:"grid",gap:"var(--space-3)"},children:[(0,n.jsx)("div",{className:"text-sm font-medium text-text-muted",children:e.name}),(0,n.jsx)("div",{style:{display:"grid",gap:"var(--space-3)"},children:e.tasks.map((e,t)=>(0,n.jsxs)("div",{style:{display:"flex",minWidth:0,alignItems:"flex-start",gap:"var(--space-4)",fontSize:"var(--text-base)",color:"var(--text)"},"aria-label":`${a(`chatWindow.todoStatus.${e.status}`)}: ${e.content}`,children:[(0,n.jsx)("span",{style:{marginTop:"var(--space-1)",flexShrink:0},children:(0,n.jsx)(tR,{status:e.status})}),(0,n.jsxs)("span",{className:"min-w-0",children:[(0,n.jsx)("span",{className:"completed"===e.status||"abandoned"===e.status?"text-text-dim line-through":void 0,children:e.content}),e.blocker&&(0,n.jsx)("span",{style:{display:"block",marginTop:"var(--space-1)",fontSize:"var(--text-sm)",color:"var(--text-muted)"},children:a("chatWindow.todoBlocker",{blocker:e.blocker})})]})]},e.id??`${e.content}-${t}`))})]},e.id??`${e.name}-${t}`))}),(g||s)&&(0,n.jsx)("button",{type:"button",className:"border-t border-border text-left text-xs text-accent hover:text-accent-hover",style:{padding:"var(--space-4) var(--space-5)"},onClick:()=>l(e=>!e),children:s?a("chatWindow.todoShowLess"):a("chatWindow.todoShowAll")})]})]})}var tA=r(82749),tE=r(57990);let t$=(0,s.A)("activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]),tz=(0,s.A)("user-round",[["circle",{cx:"12",cy:"8",r:"5",key:"1hypcn"}],["path",{d:"M20 21a8 8 0 0 0-16 0",key:"rfgkzh"}]]);var tF=r(15480),tL=r(12651);let tN=(0,s.A)("circle-dollar-sign",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8",key:"1h4pet"}],["path",{d:"M12 18V6",key:"zqpxq5"}]]);var tB=r(44236),tH=r(90710);let t_=(0,s.A)("clock-3",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6h4",key:"135r8i"}]]),tD=(0,s.A)("network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]);var tO=r(14577);function tP(e,t){switch(e){case"pending":case"running":return"started";case"completed":case"failed":case"aborted":return e;default:return t}}function tq(e,t=Date.now()){return"history"===e.source?"history":"started"!==e.status?"live":void 0===e.lastUpdate||t-e.lastUpdate>15e3?"stale":"live"}function tU(e,t,r=Date.now()){switch(t){case"active":return e.filter(e=>"history"!==e.source&&"started"===e.status&&"live"===tq(e,r));case"completed":return e.filter(e=>"completed"===e.status);case"failed":return e.filter(e=>"failed"===e.status||"aborted"===e.status||"lost"===e.status);default:return e}}function tV(e){return"history"===e.source?"history":"live"}function tK(e){return"started"!==e.status}function tG(e,t,r){if(0===t.length)return e;let n=new Map;for(let t of e)n.set(t.id,t);let a=r?.skipNewerThan;for(let e of t){let t=n.get(e.id);if(!t){n.set(e.id,e);continue}if(void 0!==a&&(t.lastUpdate??0)>=a)continue;let r=tV(t),i=tV(e);if(!(!tK(e)&&tK(t))){if("history"===i&&"live"===r){if(!tK(e))continue;let r={...t};for(let[t,n]of Object.entries(e))void 0!==n&&(r[t]=n);r.source="history",n.set(e.id,r);continue}if("live"===i&&"history"===r){n.set(e.id,e);continue}n.set(e.id,{...t,...e,source:i})}}return[...n.values()].sort((e,t)=>e.index-t.index||e.id.localeCompare(t.id))}let tY={started:"chatWindow.subagentState.started",completed:"chatWindow.subagentState.completed",failed:"chatWindow.subagentState.failed",aborted:"chatWindow.subagentState.aborted",lost:"chatWindow.subagentState.lost"},tJ=[{value:"all",key:"chatWindow.subagentHub.filter.all"},{value:"active",key:"chatWindow.subagentHub.filter.active"},{value:"completed",key:"chatWindow.subagentHub.filter.completed"},{value:"failed",key:"chatWindow.subagentHub.filter.failed"}];function tQ({icon:e,label:t,children:r}){return(0,n.jsxs)("span",{"aria-label":t,title:t,"data-subagent-metric":t,style:{display:"inline-flex",alignItems:"center",gap:"var(--space-2)",minWidth:0,fontVariantNumeric:"tabular-nums"},children:[(0,n.jsx)(e,{"aria-hidden":!0,style:{width:"var(--text-md)",height:"var(--text-md)",flexShrink:0}}),(0,n.jsx)("span",{children:r})]})}function tZ({subagent:e}){let{t}=(0,u.s9)(),r=e.progress,a=!!(r?.retryState??r?.retryFailure),i=[];if(a){let e=r?.retryState?.attempt??r?.retryFailure?.attempt??0,a=r?.retryState?.maxAttempts??0,o=a>0?t("chatWindow.subagentRetrying",{attempt:e,max:a}):t("chatWindow.subagentRetryAttempt",{attempt:e});i.push((0,n.jsx)(tQ,{icon:tA.A,label:o,children:a>0?`${e}/${a}`:e},"retry"))}else if("started"===e.status){let e=r?.currentTool?`${r.currentTool}${r.lastIntent?` — ${r.lastIntent}`:""}`:r?.lastIntent;e&&i.push((0,n.jsx)(tQ,{icon:r?.currentTool?tE.A:t$,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=K(r?.tokens),c=G(r?.cost??e.result?.cost),d=K(r?.contextTokens),p=d?`${d}/${K(r?.contextWindow)??"?"}`:null,m=J(r?.resolvedModel),h=Y(r?.durationMs),f=[s?(0,n.jsx)(tQ,{icon:tz,label:s,children:"user"===s?null:s},"source"):null,o>0?(0,n.jsx)(tQ,{icon:tF.A,label:t("chatWindow.subagentNestedCount",{count:o}),children:o},"nested"):null,l?(0,n.jsx)(tQ,{icon:tL.A,label:t("chatWindow.tokensUnit",{count:l}),children:l},"tokens"):null,c?(0,n.jsx)(tQ,{icon:tN,label:c,children:c},"cost"):null,p?(0,n.jsx)(tQ,{icon:tB.A,label:t("chatWindow.contextGauge",{used:d??"?",total:K(r?.contextWindow)??"?"}),children:p},"context"):null,m?(0,n.jsx)(tQ,{icon:tH.A,label:m,children:m},"model"):null,h?(0,n.jsx)(tQ,{icon:t_,label:h,children:h},"duration"):null].filter(Boolean);return(f.length>0&&i.push((0,n.jsx)("span",{style:{display:"inline-flex",flexWrap:"wrap",gap:"var(--space-2) var(--space-4)"},children:f},"meta")),0===i.length)?null:(0,n.jsx)("span",{"data-subagent-activity-line":!0,className:"subagent-hub-activity-line",style:{display:"flex",minWidth:0,overflow:"hidden",fontSize:"var(--text-xs)",fontFamily:"var(--font-mono)",color:a?"var(--accent)":"var(--text-dim)",lineHeight:1.4,fontVariantNumeric:"tabular-nums",gap:"var(--space-4)",flexWrap:"wrap"},children:i})}function tX({events:e}){let{t}=(0,u.s9)(),r=(e??[]).slice(-2).map(e=>e.label.trim()).filter(Boolean);if(0===r.length)return null;let a=r.join(" \xb7 "),i=`${t("chatWindow.subagentHub.preview")}: ${a}`;return(0,n.jsxs)("span",{"data-subagent-activity-preview":!0,className:"subagent-hub-activity-preview",title:i,"aria-label":i,style:{display:"flex",minWidth:0,overflow:"hidden",color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:"var(--text-xs)",lineHeight:1.4,wordBreak:"keep-all"},children:[(0,n.jsxs)("span",{style:{flexShrink:0,color:"var(--text-muted)"},children:[t("chatWindow.subagentHub.preview"),":"]}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginLeft:"var(--space-2)"},children:a})]})}function t0({children:e,depth:t=0}){return(0,n.jsx)("div",{"data-subagent-group-label":!0,className:"subagent-hub-group-label",style:{marginLeft:t>0?`calc(var(--space-6) * ${t})`:void 0,color:"var(--text-dim)",fontSize:"var(--text-xs)",fontWeight:650,letterSpacing:"0.04em",textTransform:"uppercase",padding:"var(--space-2) var(--space-5) var(--space-2)",wordBreak:"keep-all"},children:e})}function t1({subagent:e,events:t,freshnessNow:r,onSelectSubagent:a}){let{t:i}=(0,u.s9)(),o="history"!==e.source,s=i(tY[e.status]),l="history"!==e.source||"started"!==e.status,c=e.task??e.description??e.assignment??i("chatWindow.subagentHub.noTask"),d=void 0===r?"history"===e.source?"history":"live":tq(e,r),p=i(`chatWindow.subagentHub.fresh.${d}`),m="stale"===d&&void 0!==r&&"number"==typeof e.lastUpdate?Math.max(Math.ceil(15),Math.floor(Math.max(0,r-e.lastUpdate)/1e3)):null,h=null===m?null:i("chatWindow.subagentHub.lastUpdated",{value:`${m}s`}),f=h?`${p} \xb7 ${h}`:p,g="live"===d?"var(--status-success)":"stale"===d?"var(--status-warning)":"var(--text-dim)",x=[e.agent,c,l?s:null,f].filter(Boolean).join(" \xb7 ");return(0,n.jsxs)("button",{type:"button",className:"ui-focus-ring subagent-hub-row",onClick:()=>a(e),"aria-label":x,title:x,style:{display:"flex",width:"100%",minWidth:0,minHeight:"var(--control-touch, 44px)",flexDirection:"column",alignItems:"stretch",justifyContent:"center",gap:"var(--space-2)",padding:"var(--space-4) var(--space-5)",border:"thin solid var(--border)",borderRadius:"var(--radius-control)",background:o?"var(--bg)":"var(--bg-panel)",color:o?"var(--text)":"var(--text-dim)",opacity:o?1:.72,fontFamily:"inherit",fontSize:"var(--text-sm)",textAlign:"left",cursor:"pointer",wordBreak:"keep-all",transition:"border-color var(--dur-fast) var(--ease-out-warm), background var(--dur-fast) var(--ease-out-warm), opacity var(--dur-fast) var(--ease-out-warm)"},onMouseEnter:e=>{e.currentTarget.style.borderColor="color-mix(in srgb, var(--accent) 40%, var(--border))",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background=o?"var(--bg)":"var(--bg-panel)"},children:[(0,n.jsxs)("span",{className:"subagent-hub-row-main",style:{display:"flex",minWidth:0,alignItems:"center",gap:"var(--space-3)"},children:[(0,n.jsx)(V,{status:e.status,live:o}),(0,n.jsx)("span",{className:"subagent-hub-row-agent",style:{flexShrink:0,color:"var(--accent)",fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)",fontWeight:650},children:e.agent}),(0,n.jsx)("span",{title:c,className:"subagent-hub-row-task",style:{minWidth:0,flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"inherit"},children:c}),l&&(0,n.jsx)("span",{className:"subagent-hub-row-state",style:{flexShrink:0,color:o?"var(--text-muted)":"var(--text-dim)",fontSize:"var(--text-xs)"},children:s}),(0,n.jsxs)("span",{"data-subagent-freshness":d,className:"subagent-hub-freshness","aria-label":f,title:f,style:{display:"inline-flex",flexShrink:0,alignItems:"center",gap:"var(--space-2)",color:g,fontSize:"var(--text-xs)",fontVariantNumeric:"tabular-nums",opacity:"history"===d?.8:.9},children:[(0,n.jsx)("span",{"aria-hidden":!0,style:{width:"var(--space-2)",height:"var(--space-2)",flexShrink:0,borderRadius:"var(--radius-control)",background:g}}),(0,n.jsx)("span",{children:p}),h&&(0,n.jsx)("span",{children:h})]}),e.detached&&(0,n.jsx)("span",{"aria-hidden":!0,"data-subagent-detached":!0,className:"subagent-hub-detached",style:{flexShrink:0,color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)"},children:"⤴"})]}),(0,n.jsx)(tZ,{subagent:e}),(0,n.jsx)(tX,{events:t})]})}function t2(e,t){return"history"!==e.source&&"started"===e.status&&"live"===tq(e,t)}function t4({subagents:e,subagentEvents:t={},onSelectSubagent:r,defaultExpanded:a=!1,now:s}){let{t:l}=(0,u.s9)(),[c,d]=(0,i.useState)(!a),[p,m]=(0,i.useState)("all"),[h,f]=(0,i.useState)(null),g=e.some(e=>"history"!==e.source&&"started"===e.status);(0,i.useEffect)(()=>{if(void 0!==s||!g)return;let e=()=>f(Date.now());e();let t=window.setInterval(e,5e3);return()=>window.clearInterval(t)},[g,s]);let x=s??h??0,v=void 0!==s||null!==h,y=(0,i.useMemo)(()=>({all:e.length,active:tU(e,"active",x).length,completed:tU(e,"completed",x).length,failed:tU(e,"failed",x).length}),[e,x]),b=y.active,w=(0,i.useMemo)(()=>tU(e,p,x),[e,p,x]),k=(0,i.useMemo)(()=>(function(e,t=Date.now()){let r=[...e].sort((e,r)=>{let n=t2(e,t);return n!==t2(r,t)?n?-1:1:r.index-e.index||r.id.localeCompare(e.id)}),n=new Set(r.map(e=>e.id)),a=new Map,i=[],o=new Map;for(let e of r){let t=e.parentToolCallId;if(!t){i.push(e);continue}let r=a.get(t)??[];if(r.push(e),a.set(t,r),!n.has(t)){let r=o.get(t)??[];r.push(e),o.set(t,r)}}let s=[],l=new Set,u=(e,t)=>{for(let r of e){if(l.has(r.id))continue;l.add(r.id),s.push({kind:"row",key:`row-${r.id}`,subagent:r,depth:t});let e=(a.get(r.id)??[]).filter(e=>!l.has(e.id));0!==e.length&&(s.push({kind:"group",key:`group-nested-${r.id}`,group:"nested",parentLabel:r.agent,depth:t+1}),u(e,t+1))}},c=e=>{let r=-1/0,n=-1/0,i=[...e],o=new Set;for(;i.length>0;){let e=i.pop();o.has(e.id)||(o.add(e.id),r=Math.max(r,e.index),t2(e,t)&&(n=Math.max(n,e.index)),i.push(...a.get(e.id)??[]))}let s=n!==-1/0;return{active:s,sortIndex:s?n:r}},d=[...i.map(e=>{let t=c([e]);return{kind:"root",key:e.id,items:[e],...t}}),...[...o.entries()].map(([e,t])=>{let r=c(t);return{kind:"orphan",key:e,parentId:e,items:t,...r}})];d.sort((e,t)=>e.active!==t.active?e.active?-1:1:t.sortIndex-e.sortIndex||e.key.localeCompare(t.key));let p=null;for(let e of d){if("root"===e.kind){"root"!==p&&s.push({kind:"group",key:`group-roots-${e.key}`,group:"roots",depth:0}),u(e.items,0),p="root";continue}"orphan"!==p&&s.push({kind:"group",key:`group-orphans-${e.key}`,group:"orphans",depth:0}),s.push({kind:"group",key:`group-parent-${e.parentId}`,group:"nested",parentLabel:e.parentId,depth:0}),u(e.items,0),p="orphan"}let m=r.filter(e=>!l.has(e.id));return m.length>0&&u(m,0),s})(w,x),[w,x]);return(0,n.jsxs)("section",{"aria-label":l("chatWindow.subagentsPanel"),className:"subagent-hub-root",style:{width:"100%",minWidth:0,overflow:"hidden",border:"thin solid var(--border)",borderRadius:"var(--radius-card)",background:"var(--bg-panel)"},children:[(0,n.jsxs)("button",{type:"button",className:"ui-focus-ring subagent-hub-header-trigger","aria-expanded":!c,onClick:()=>d(e=>!e),title:c?l("chatWindow.subagentHub.expand"):l("chatWindow.subagentHub.collapse"),style:{display:"flex",width:"100%",alignItems:"center",gap:"var(--space-4)",padding:"var(--space-4) var(--space-5)",border:"none",borderBottom:c?"none":"thin solid var(--border)",background:"transparent",color:"var(--text-muted)",fontFamily:"inherit",fontSize:"var(--text-xs)",textAlign:"left",cursor:"pointer",wordBreak:"keep-all"},children:[(0,n.jsx)(tD,{"aria-hidden":!0,size:15,strokeWidth:1.8,style:{flexShrink:0}}),(0,n.jsx)("strong",{style:{color:"var(--text)",fontWeight:500},children:l("chatWindow.subagentsPanel")}),(0,n.jsxs)("span",{"aria-label":l("chatWindow.subagentSummary",{running:b,total:e.length}),title:l("chatWindow.subagentSummary",{running:b,total:e.length}),style:{display:"inline-flex",alignItems:"center",gap:"var(--space-2)",marginLeft:"auto",fontFamily:"var(--font-mono)",fontVariantNumeric:"tabular-nums"},children:[(0,n.jsx)("span",{children:b}),(0,n.jsx)("span",{"aria-hidden":!0,children:"/"}),(0,n.jsx)("span",{children:e.length})]}),(0,n.jsx)(o.A,{"aria-hidden":!0,size:14,strokeWidth:1.8,style:{flexShrink:0,color:"var(--text-dim)",transform:c?"rotate(-90deg)":"rotate(0deg)",transition:"transform var(--dur-med) var(--ease-out-warm)"}})]}),!c&&(0,n.jsxs)("div",{className:"subagent-hub-content",style:{display:"grid",maxHeight:"30vh",gap:"var(--space-4)",overflowY:"auto",padding:"var(--space-4) var(--space-5) var(--space-5)"},children:[(0,n.jsx)("div",{"data-subagent-filter-row":!0,className:"subagent-hub-filters",role:"group",style:{display:"flex",minWidth:0,flexWrap:"wrap",gap:"var(--space-1)",alignItems:"center",padding:"var(--space-1)",border:"thin solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-subtle)"},children:tJ.map(({value:e,key:t})=>{let r=p===e,a=l(t);return(0,n.jsxs)("button",{type:"button",className:"ui-focus-ring","data-subagent-filter":e,"aria-pressed":r,title:`${a} (${y[e]})`,onClick:()=>m(e),style:{display:"inline-flex",minHeight:"var(--control-touch, 44px)",alignItems:"center",gap:"var(--space-2)",padding:"var(--space-2) var(--space-3)",border:"none",borderRadius:"var(--radius-control)",background:r?"color-mix(in srgb, var(--accent) 16%, var(--bg))":"transparent",color:r?"var(--accent)":"var(--text-muted)",fontFamily:"inherit",fontSize:"var(--text-xs)",fontWeight:r?650:550,cursor:"pointer",wordBreak:"keep-all",transition:"background var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},children:[(0,n.jsx)("span",{children:a}),(0,n.jsx)("span",{"aria-hidden":!0,style:{display:"inline-flex",minWidth:"var(--space-8)",height:"var(--space-6)",alignItems:"center",justifyContent:"center",padding:"0 var(--space-2)",borderRadius:"var(--radius-control)",background:r?"color-mix(in srgb, var(--accent) 20%, transparent)":"var(--bg-subtle)",color:r?"var(--accent)":"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:"var(--text-xs)",fontVariantNumeric:"tabular-nums"},children:y[e]})]},e)})}),0===w.length?(0,n.jsx)("div",{style:{padding:"var(--space-5)",color:"var(--text-dim)",fontSize:"var(--text-sm)",textAlign:"center",wordBreak:"keep-all"},children:l("chatWindow.subagentHub.empty")}):k.map(e=>{if("group"===e.kind){let t="roots"===e.group?l("chatWindow.subagentHub.group.roots"):"orphans"===e.group?l("chatWindow.subagentHub.group.orphans"):l("chatWindow.subagentHub.group.nested",{agent:e.parentLabel??""});return(0,n.jsx)(t0,{depth:e.depth,children:t},e.key)}let a=e.depth>0?{marginLeft:`calc(var(--space-6) * ${e.depth})`,paddingLeft:"var(--space-5)",borderLeft:"thin solid var(--border)"}:void 0;return(0,n.jsx)("div",{"data-subagent-row-wrap":!0,"data-subagent-depth":e.depth,className:`subagent-hub-row-wrap${e.depth>0?" subagent-hub-nested":""}`,style:{display:"grid",gap:"var(--space-3)",...a},children:(0,n.jsx)(t1,{subagent:e.subagent,events:t[e.subagent.id],freshnessNow:v?x:void 0,onSelectSubagent:r})},e.key)}),(0,n.jsxs)("div",{"data-subagent-observe-only":!0,className:"subagent-hub-observe-only",role:"note",style:{display:"flex",minWidth:0,alignItems:"flex-start",gap:"var(--space-3)",padding:"var(--space-3) var(--space-4)",border:"thin solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-subtle)",color:"var(--text-dim)",wordBreak:"keep-all"},children:[(0,n.jsx)(tO.A,{"aria-hidden":!0,style:{width:"var(--text-md)",height:"var(--text-md)",flexShrink:0,marginTop:"var(--space-1)"}}),(0,n.jsxs)("span",{style:{display:"grid",minWidth:0,gap:"var(--space-1)",fontSize:"var(--text-xs)",lineHeight:1.4},children:[(0,n.jsx)("strong",{style:{color:"var(--text-muted)",fontWeight:650},children:l("chatWindow.subagentHub.observeOnly")}),(0,n.jsx)("span",{title:l("chatWindow.subagentHub.observeOnlyHint"),children:l("chatWindow.subagentHub.observeOnlyHint")})]})]})]})]})}let t5=(0,i.memo)(function({todoPhases:e,subagents:t,subagentEvents:r,onSelectSubagent:a,defaultExpanded:i=!1}){return 0===e.length&&0===t.length?null:(0,n.jsxs)("div",{style:{display:"grid",gap:"var(--space-3)",marginBottom:"var(--space-4)"},children:[(0,n.jsx)(tW,{phases:e,collapsible:!0,defaultExpanded:i}),t.length>0&&(0,n.jsx)(t4,{subagents:t,subagentEvents:r,onSelectSubagent:a,defaultExpanded:i})]})},function(e,t){return e.todoPhases===t.todoPhases&&e.subagents===t.subagents&&e.subagentEvents===t.subagentEvents&&e.onSelectSubagent===t.onSelectSubagent&&e.defaultExpanded===t.defaultExpanded});function t6(e){if("assistant"!==e.role)return e;let t=e.content;if("string"==typeof t)return{...e,content:[{type:"text",text:t}]};if(!Array.isArray(t))return e;let r=t.map(e=>(L(e)&&"toolCall"===e.type?{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}:null)??e);return{...e,content:r}}function t3(e,t,r,n,a,i,o,s){return e===t&&r===n&&a===i&&(void 0===s||o===s)}let t8={revision:0,items:[]},t9=new Set(["steer","followUp"]),t7=new Set(["queued","sending","failed"]);function re(e){if("object"!=typeof e||null===e||Array.isArray(e))return null;let t=N(e.id),r=N(e.text),n=N(e.lane),a=N(e.status);if(!t||void 0===r||!t9.has(n??"")||!t7.has(a??""))return null;let i={id:t,text:r,lane:n,status:a};if(void 0!==e.error){let t=N(e.error);if(void 0===t)return null;i.error=t}if(void 0!==e.attachments){if(!Array.isArray(e.attachments)||e.attachments.length>10)return null;let t=[];for(let r of e.attachments){if("object"!=typeof r||null===r||"string"!=typeof r.mimeType||!r.mimeType.startsWith("image/")||"number"!=typeof r.bytes||!Number.isSafeInteger(r.bytes)||r.bytes<=0||r.bytes>0xa00000)return null;t.push({mimeType:r.mimeType,bytes:r.bytes})}i.attachments=t}return i}function rt(e){if("object"!=typeof e||null===e||Array.isArray(e))return null;let t=B(e.revision);if(void 0===t||!Array.isArray(e.items))return null;let r=[];for(let t of e.items){let e=re(t);if(!e)return null;r.push(e)}let n={revision:t,items:r};if(void 0!==e.nativeQueuedCount){let t=B(e.nativeQueuedCount);if(void 0===t)return null;n.nativeQueuedCount=t}return n}function rr(e){return"object"!=typeof e||null===e||Array.isArray(e)?null:"message_queue_update"===e.type?rt(e.queue):rt(e)}function rn(e){if("object"!=typeof e||null===e||Array.isArray(e))return null;let t=rt(e.queue),r=re(e.recalled);if(!t||!r||"object"!=typeof e.recalled||null===e.recalled)return null;let n="images"in e.recalled?e.recalled.images:void 0;if(function(e){if(void 0===e)return null;if(!Array.isArray(e))return"images must be an array";if(e.length>10)return"A message can include at most 10 images";for(let t of e){if(!t||"object"!=typeof t||"image"!==t.type)return"Each attachment must be an image";if(!$(t))return"Each image must be valid base64 image data of 10MB or smaller"}return null}(n))return null;let a=[];if(Array.isArray(n))for(let e of n){if("object"!=typeof e||null===e||"image"!==e.type||"string"!=typeof e.data||"string"!=typeof e.mimeType)return null;a.push({type:"image",data:e.data,mimeType:e.mimeType})}if((r.attachments?.length??0)!==a.length)return null;for(let e=0;e<a.length;e+=1){let t=r.attachments?.[e],n=a[e];if(!t||t.mimeType!==n.mimeType||t.bytes!==E(n.data))return null}return{queue:t,recalled:a.length?{...r,images:a}:r}}function ra(e){if("object"!=typeof e||null===e||Array.isArray(e)||!("queue"in e))return null;let t=rr(e.queue);return t?"recalled"in e&&void 0!==e.recalled&&null!==e.recalled?rn(e):{queue:t}:null}function ri(e){return"bundled"===e||"user"===e||"project"===e?e:void 0}function ro(e){var t;if(!L(e))return;let r={},n=B(e.index);void 0!==n&&(r.index=n);let a=N(e.id);void 0!==a&&(r.id=a);let i=N(e.agent);void 0!==i&&(r.agent=i);let o=ri(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=N(e.task);void 0!==l&&(r.task=l);let u=N(e.assignment);void 0!==u&&(r.assignment=u);let c=N(e.description);void 0!==c&&(r.description=c);let d=N(e.lastIntent);void 0!==d&&(r.lastIntent=d);let p=N(e.currentTool);void 0!==p&&(r.currentTool=p);let m=N(e.currentToolArgs);void 0!==m&&(r.currentToolArgs=m);let h=B(e.currentToolStartMs);void 0!==h&&(r.currentToolStartMs=h),Array.isArray(e.recentTools)&&(r.recentTools=e.recentTools),Array.isArray(e.recentOutput)&&(r.recentOutput=e.recentOutput.filter(e=>"string"==typeof e));let f=B(e.toolCount);void 0!==f&&(r.toolCount=f);let g=B(e.requests);void 0!==g&&(r.requests=g);let x=B(e.tokens);void 0!==x&&(r.tokens=x);let v=B(e.contextTokens);void 0!==v&&(r.contextTokens=v);let y=B(e.contextWindow);void 0!==y&&(r.contextWindow=y);let b=B(e.cost);void 0!==b&&(r.cost=b);let w=B(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=N(e.modelRole);void 0!==k&&(r.modelRole=k);let j=N(e.resolvedModel);if(void 0!==j&&(r.resolvedModel=j),"boolean"==typeof e.resolvedModelIsFallback&&(r.resolvedModelIsFallback=e.resolvedModelIsFallback),L(e.retryState)){let t=B(e.retryState.attempt),n=B(e.retryState.maxAttempts),a=B(e.retryState.delayMs),i=N(e.retryState.errorMessage),o=B(e.retryState.startedAtMs);void 0!==t&&void 0!==n&&void 0!==a&&void 0!==i&&void 0!==o&&(r.retryState={attempt:t,maxAttempts:n,delayMs:a,errorMessage:i,startedAtMs:o})}if(L(e.retryFailure)){let t=B(e.retryFailure.attempt),n=N(e.retryFailure.errorMessage);void 0!==t&&void 0!==n&&(r.retryFailure={attempt:t,errorMessage:n})}return void 0!==e.inflightTaskDetails&&(r.inflightTaskDetails=e.inflightTaskDetails),L(e.extractedToolData)&&(r.extractedToolData=e.extractedToolData),Object.keys(r).length>0?r:void 0}function rs(e){let t;if(!L(e))return;let r=N(e.id),n=N(e.agent);if(!r||!n)return;if("started"===e.status||"completed"===e.status||"failed"===e.status||"aborted"===e.status)t=e.status;else{if("pending"!==e.status&&"running"!==e.status)return;t="started"}let a={id:r,agent:n,status:t,index:B(e.index)??-1,source:"live"},i=ri(e.agentSource);void 0!==i&&(a.agentSource=i);let o=N(e.description);void 0!==o&&(a.description=o);let s=N(e.task);void 0!==s&&(a.task=s);let l=N(e.assignment);void 0!==l&&(a.assignment=l);let u=N(e.sessionFile);void 0!==u&&(a.sessionFile=u);let c=N(e.parentToolCallId);void 0!==c&&(a.parentToolCallId=c);let d=B(e.lastUpdate);void 0!==d&&(a.lastUpdate=d);let p=ro(e.progress);return void 0!==p&&(a.progress=p),a}function rl(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 ru(e){return e.some(e=>"history"!==e.source&&"started"===e.status)}function rc(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}var rd=r(61937);let rp=[],rm=["read","bash","edit","write","task"],rh=["bash","read","edit","write","grep","find","ls","task"];var rf=r(83444);let rg="omp-web:tool-preset";function rx(){try{return window.localStorage}catch{return null}}let rv=["user","assistant","custom"],ry={developer:!0,"python-execution":!0,"file-mention":!0,"xdev-mount-notice":!0};function rb(e,t){if("string"!=typeof e)return;let r=e.trim();if(r)return r.slice(0,t)}function rw(e){return rb(e,256)}function rk(e){let t=rb(e,512);if(!t)return null;try{let e=new URL(t);if(e.username||e.password||"null"===e.origin)return null;return e.origin}catch{return t}}function rj(e){if("string"!=typeof e)return;let t=e.replace(/[\u0000-\u0008\u000b\u000c\u000e-\u001f\u007f]/g,"").trim();if(t)return t.slice(0,4e3)}function rS(e){if("string"==typeof e)return rj(e);if(!Array.isArray(e))return;let t=[];for(let r of e){if(!L(r)||"text"!==r.type)continue;let e=rj(r.text);e&&t.push(e)}return rj(t.join("\n"))}function rC(e){let t;if(!L(e))return null;switch(e.role){case"user":case"assistant":t=rS(e.content);break;case"custom":if(!0!==e.display||"string"!=typeof e.customType||!0===ry[e.customType])return null;t=rS(e.content);break;default:return null}if(!t)return null;let r="number"==typeof e.timestamp&&Number.isFinite(e.timestamp)?e.timestamp:void 0;return void 0===r?{role:e.role,text:t}:{role:e.role,text:t,timestamp:r}}function rI(e){return rb(e,4e3)}function rM(e){if(!L(e))return null;let t=e.role;if(!rv.includes(t))return null;let r=rj(e.text);if(!r)return null;let n="number"==typeof e.timestamp&&Number.isFinite(e.timestamp)?e.timestamp:void 0;return void 0===n?{role:t,text:r}:{role:t,text:r,timestamp:n}}function rT(e){if(!L(e)||1!==e.version)return null;let t=rk(e.origin);if(!t||"number"!=typeof e.updatedAt||!Number.isFinite(e.updatedAt)||!L(e.session))return null;let r=rw(e.session.id);if(!r||!Array.isArray(e.session.messages))return null;let n={id:r,messages:e.session.messages.map(rM).filter(e=>null!==e).slice(-50)},a=rI(e.session.title),i=rI(e.session.cwd),o=rw(e.session.leafId);return void 0!==a&&(n.title=a),void 0!==i&&(n.cwd=i),void 0!==o&&(n.leafId=o),{version:1,origin:t,updatedAt:e.updatedAt,session:n}}function rR(e){if("string"!=typeof e||0===e.length)return null;try{return rT(JSON.parse(e))}catch{return null}}function rW(){try{let e=window.OmpguiRemoteReplica?.getOrigin?.(),t=rk(e);if(t)return t;return rk(window.location.origin)}catch{return rk(window.location.origin)}}function rA(e,t){return`ompgui:remote-replica:v1:${encodeURIComponent(e)}:${encodeURIComponent(t)}`}var rE=r(90071);function r$(e){return Math.max(0,e.scrollHeight-e.clientHeight)}function rz(e,t){switch(t.type){case"start":return{isStreaming:!0,streamingMessage:null,revision:e.revision+1};case"update":return{isStreaming:!0,streamingMessage:t.message,revision:e.revision+1};case"end":case"reset":return{isStreaming:!1,streamingMessage:null,revision:e.revision+1};default:return e}}function rF(e){return e&&"inherit"!==e?e:"auto"}function rL(e){return e?.provider&&e.id?{provider:e.provider,modelId:e.id,name:e.name,reasoning:e.reasoning,thinking:e.thinking}:null}let rN=new Set(["ArrowUp","ArrowDown","PageUp","PageDown","Home","End"," ","Space","Spacebar"]);function rB(e){return/429|quota|RESOURCE_EXHAUSTED|Cloud Code Assist/i.test(e)}class rH extends Error{constructor(e){super("timeout"===e?(0,u.Tl)("agentSession.eventStreamTimeout"):(0,u.Tl)("agentSession.eventStreamFailed")),this.status=e,this.name="EventStreamConnectionError"}}function r_(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 rD(e){let t=e.findIndex(e=>!e.exiting);return -1===t?e:e.map((e,r)=>r===t?{...e,exiting:!0}:e)}function rO(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:rD(e.visible),pending:[...e.pending,t.notice]};return{...e,visible:[...e.visible,t.notice]};case"mark_oldest_exiting":return{...e,visible:rD(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=rD(r)),{visible:r,pending:n}}(e.visible.filter(e=>e.id!==t.id),e.pending);default:return e}}function rP(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 rq(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 rU(e){let t=e.content;return"string"==typeof t?JSON.stringify({text:t,images:[]}):Array.isArray(t)?JSON.stringify({text:rP(e),images:t.map(rq).filter(Boolean)}):JSON.stringify({text:"",images:[]})}function rV(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 rK(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 rG(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}}var rY=r(34140);function rJ(e){return e.type.startsWith("image/")||"text/plain"===e.type||"text/markdown"===e.type}let rQ=/\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/g,rZ=/^\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/,rX=/\x1B\[([0-9;]*)m/g,r0=/\x1B_pi:c\x07/g,r1=["#1f2937","#dc2626","#16a34a","#d97706","#2563eb","#9333ea","#0891b2","#6b7280"],r2=["#9ca3af","#ef4444","#22c55e","#f59e0b","#3b82f6","#a855f7","#06b6d4","#e5e7eb"];function r4(e){return e.replace(r0,"").replace(rQ,"")}function r5(e){let t=[],r=0;for(;r<e.length;){if(27===e.charCodeAt(r)){let t=e.slice(r).match(rZ);if(t){r+=t[0].length;continue}}let n=e.codePointAt(r);if(void 0===n)break;let a=String.fromCodePoint(n);t.push({start:r,end:r+a.length,char:a}),r+=a.length}return t}function r6(e,t){let r=r5(e)[t];return r?e.slice(0,r.start)+e.slice(r.end):e}function r3(e){return r5(e)[0]?.char}let r8={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:""},r9={ArrowLeft:"\x1bb",ArrowRight:"\x1bf",ArrowUp:"\x1bp",ArrowDown:"\x1bn"};function r7(e,t,r){return Math.min(Math.max(e,t),r)}function ne(e,t,r=150){let n=Math.max(0,e),a=Math.max(0,r),i=r7(t.startIndex,0,n),o=r7(t.endIndex,i,n);return o-i>a&&(o=i+a)>n&&(i=Math.max(0,(o=n)-a)),o===i&&n>0&&a>0&&(o=Math.min(n,i+Math.min(a,n)))===i&&(i=Math.max(0,n-Math.min(a,n)),o=n),{startIndex:i,endIndex:o,hasMoreAbove:i>0,hasMoreBelow:o<n}}function nt(e,t=50,r=150){let n=Math.max(0,e),a=Math.min(Math.max(t,0),r,n);return ne(n,{startIndex:n-a,endIndex:n},r)}function nr(e){return"user"===e.role||"custom"===e.role&&"compaction"===e.customType}function nn(e,t,r={}){let n={...e,content:t};return r.omitUsage&&(n.usage=void 0),n}function na({refreshKey:e=0}){let{t}=(0,u.s9)(),[r,a]=(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&&a(t.version.replace(/^omp\//,""))}).catch(()=>{}),()=>{e=!0}},[e]),(0,n.jsxs)("span",{style:{fontSize:"var(--text-sm)",color:"var(--text-muted)"},children:["omp ",(0,n.jsx)("span",{style:{color:"var(--text)"},children:r?`v${r}`:t("chatWindow.versionNotFound")})]})}function ni({messageCount:e,toolCallCount:t,children:r}){let{t:a,tn:s}=(0,u.s9)(),[l,c]=(0,i.useState)(!1),d=[a("chatWindow.processDetails"),s("chatWindow.messageCount",e)];return t>0&&d.push(s("chatWindow.toolCallCount",t)),(0,n.jsxs)("div",{style:{marginBottom:"var(--space-5)"},children:[(0,n.jsxs)("button",{type:"button","aria-expanded":l,onClick:()=>c(e=>!e),className:"process-details-toggle",title:a(l?"chatWindow.collapseProcessDetails":"chatWindow.expandProcessDetails"),children:[(0,n.jsx)(o.A,{size:12,strokeWidth:1.8,"aria-hidden":"true",style:{flexShrink:0,transform:l?"rotate(180deg)":"none",transition:"transform var(--dur-fast) var(--ease-out-warm)"}}),(0,n.jsx)("span",{className:"process-details-label",children:d.join(" \xb7 ")})]}),l&&(0,n.jsx)("div",{style:{marginTop:"var(--space-4)"},children:r})]})}let no=(0,i.memo)(function({messages:e,entryIds:t,conversationMeta:r,messageRefs:a,isStreaming:s,sessionBusy:c,runtimeReady:h,isNew:f,forkingEntryId:g,handleFork:x,handleNavigate:v,handleEditContent:y,modelNames:b,messageCwd:w,onOpenFile:k,sessionId:j,toolCallsDefaultCollapsed:S,sessionKey:C,scrollContainerRef:I,onRenderWindowChange:M}){let{t:T}=(0,u.s9)(),{toolResultsMap:R,lastAnchorIdx:W,visibleRefIndexByMessage:A}=r,[E,$]=(0,i.useState)(()=>nt(0)),[z,F]=(0,i.useState)(!0),L=(0,i.useRef)(null),N=(0,i.useRef)(null),B=(0,i.useRef)(!1),H=(0,i.useRef)(null),_=(0,i.useRef)(nt(0)),D=(0,i.useMemo)(()=>(function(e,t){let r=[];for(let a=0;a<e.length;){if(!nr(e[a])){r.push({kind:"message",idx:a}),a+=1;continue}let i=a,o=i+1;for(;o<e.length&&!nr(e[o]);)o+=1;let s=function(e,t,r){for(let a=r-1;a>t;a--){var n;if("assistant"===(n=e[a]).role&&p(n).answerBlocks.some(e=>"image"===e.type||"text"===e.type&&e.text.trim().length>0))return a}for(let n=r-1;n>t;n--)if(e[n]?.role==="assistant")return n;return -1}(e,i,o),l=(t.sessionBusy||t.isStreaming)&&o===e.length&&i===t.lastAnchorIdx;if(-1===s||l){for(let e=i;e<o;e++)r.push({kind:"message",idx:e});a=o;continue}r.push({kind:"message",idx:i});let u=[];for(let t=i+1;t<s;t++){var n;("assistant"===(n=e[t]).role?d(n).length>0:"custom"===n.role)&&u.push(t)}let c=p(e[s]),m=c.processBlocks.length>0,h=c.answerBlocks.length>0;u.length+ +!!m>0&&r.push({kind:"process-group",userIdx:i,finalAssistantIdx:s,visibleProcessIndices:u}),h&&r.push({kind:"answer",idx:s});for(let e=s+1;e<o;e++)r.push({kind:"message",idx:e});a=o}return r})(e,{lastAnchorIdx:W,isStreaming:s,sessionBusy:c}),[e,W,s,c]),O=D.length,P=function(e,t,r={}){let n=r.maxRendered??150,a=r.pageSize??50;if(r.pinToEnd){let r=Math.max(0,e),i=r7(t.endIndex-t.startIndex,0,n),o=Math.min(n,Math.max(i,Math.min(a,r)),r);return ne(r,{startIndex:r-o,endIndex:r},n)}return ne(e,t,n)}(O,E,{pinToEnd:z}),{startIndex:q,endIndex:U,hasMoreAbove:V,hasMoreBelow:K}=P,G=D.slice(q,U);(0,i.useLayoutEffect)(()=>{_.current=P},[P]);let Y=(r,i={})=>{let o=i.messageOverride??e[r],l="user"===o.role&&r>0&&"assistant"===e[r-1].role?t[r-1]:void 0,u="user"===o.role||"assistant"===o.role,d=A.get(r),p=i.keyPrefix??"message",m=!1;if("assistant"===o.role){m=!0;for(let t=r+1;t<e.length;t++){let r=e[t].role;if("user"===r)break;if("assistant"===r){m=!1;break}}m&&s&&r===e.length-1&&(m=!1)}void 0!==i.showTimestamp&&(m=i.showTimestamp);let C=(0,n.jsx)(ei,{message:o,toolResults:R,modelNames:b,cwd:w,onOpenFile:k,entryId:t[r],onFork:!h||c||f||0===r&&"user"===o.role?void 0:x,forking:g===t[r],onNavigate:!h||c?void 0:v,prevAssistantEntryId:!h||c?void 0:l,onEditContent:h?y:void 0,showTimestamp:m,prevTimestamp:r>0?e[r-1].timestamp:void 0,sessionId:j,toolCallsDefaultCollapsed:S},`${p}-view-${r}`);return u&&!1!==i.attachRef&&void 0!==d?(0,n.jsx)("div",{ref:e=>{a.current[d]=e},children:C},`${p}-${r}`):C},J=(0,i.useCallback)((e,t)=>{var r;let n,a=I.current,i=(r=_.current,n=Math.max(r.startIndex,e.startIndex),Math.min(r.endIndex,e.endIndex)>n?n:e.startIndex),o=a?.querySelector(`[data-render-index="${i}"]`);H.current={index:i,previousTop:o?.getBoundingClientRect().top??0,scrollTop:a?.scrollTop??0,mode:t}},[I]),Q=(0,i.useCallback)(e=>{let t=_.current;if(!t.hasMoreAbove)return;let r=function(e,t,r=50,n=150){let a=Math.max(0,t.startIndex-Math.max(r,0)),i=t.endIndex;return i-a>n&&(i=a+n),ne(e,{startIndex:a,endIndex:i},n)}(O,t);(r.startIndex!==t.startIndex||r.endIndex!==t.endIndex)&&(J(r,e),F(!1),$(r))},[O,J]),Z=(0,i.useCallback)(()=>{let e=_.current;if(!e.hasMoreBelow)return;let t=function(e,t,r=50,n=150){let a=Math.max(0,e),i=Math.min(a,t.endIndex+Math.max(r,0)),o=t.startIndex;return i-o>n&&(o=i-n),ne(a,{startIndex:o,endIndex:i},n)}(O,e);(t.startIndex!==e.startIndex||t.endIndex!==e.endIndex)&&(J(t,"auto"),$(t))},[O,J]);return(0,i.useEffect)(()=>{$(nt(0)),F(!0),B.current=!1},[C]),(0,i.useLayoutEffect)(()=>{M?.(q,U)},[q,U,M]),(0,i.useLayoutEffect)(()=>{let e=H.current;if(!e)return;H.current=null;let t=I.current;if(!t)return;if("click-above"===e.mode){let e=L.current;if(e){let r=t.getBoundingClientRect(),n=e.getBoundingClientRect();t.scrollTop=t.scrollTop+(n.bottom-r.top)+1}else t.scrollTop=0;return}let r=t.querySelector(`[data-render-index="${e.index}"]`);if(r){var n,a;n=e.scrollTop,a=e.previousTop,t.scrollTop=Math.max(0,n+(r.getBoundingClientRect().top-a))}},[q,U,I]),(0,i.useEffect)(()=>{let e=I.current;if(!e)return;let t=null,r=()=>{if(t=null,e.scrollTop>0&&(B.current=!0),!(e.scrollTop+e.clientHeight>=e.scrollHeight-96)){var r;let t=_.current;$(e=>e.startIndex===t.startIndex&&e.endIndex===t.endIndex?e:t),F(!1),(r={scrollTop:e.scrollTop,hasLeftTop:B.current,hasMoreAbove:t.hasMoreAbove}).hasLeftTop&&r.hasMoreAbove&&r.scrollTop<=0&&Q("click-above");return}_.current.endIndex>=O&&F(!0)},n=()=>{null===t&&(t=requestAnimationFrame(r))};return r(),e.addEventListener("scroll",n,{passive:!0}),()=>{e.removeEventListener("scroll",n),null!==t&&cancelAnimationFrame(t)}},[I,O,C,q,U,Q]),(0,i.useEffect)(()=>{let e=L.current,t=I.current;if(!e||!t)return;let r=new IntersectionObserver(e=>{var r;let n=(r={intersecting:!!e[0]?.isIntersecting,scrollTop:t.scrollTop,hasLeftTop:B.current}).intersecting?r.scrollTop>0?"auto":r.hasLeftTop?"click-above":null:null;n&&Q(n)},{root:t,rootMargin:"400px 0px 0px 0px",threshold:0});return r.observe(e),()=>r.disconnect()},[q,U,O,I,Q]),(0,i.useEffect)(()=>{let e=N.current,t=I.current;if(!e||!t)return;let r=new IntersectionObserver(e=>{e[0]?.isIntersecting&&Z()},{root:t,rootMargin:"0px 0px 400px 0px",threshold:0});return r.observe(e),()=>r.disconnect()},[q,U,O,I,Z]),(0,n.jsxs)(n.Fragment,{children:[V&&(0,n.jsxs)("button",{ref:L,type:"button",onClick:()=>Q("click-above"),className:"py-3 w-full min-h-[44px] text-center text-xs text-text-muted hover:text-text transition-colors cursor-pointer inline-flex items-center justify-center gap-1",children:[(0,n.jsx)(l,{size:12,strokeWidth:1.8,"aria-hidden":"true"}),T("chatWindow.scrollUpToLoad",{count:q})]}),G.map((t,r)=>(0,n.jsx)("div",{"data-render-index":q+r,children:(t=>{if("message"===t.kind)return Y(t.idx);if("answer"===t.kind){let r=e[t.idx],n=p(r),a=nn(r,n.answerBlocks);return Y(t.idx,{messageOverride:a})}let{userIdx:r,finalAssistantIdx:i,visibleProcessIndices:o}=t,s=e[i],l=p(s),u=l.processBlocks.length>0?nn(s,l.processBlocks,{omitUsage:!0}):null,c=l.answerBlocks.length>0,h=o.length+ +!!u,f=o.map(e=>A.get(e)).find(e=>"number"==typeof e)??(c?void 0:A.get(i));return(0,n.jsx)("div",{ref:void 0===f?void 0:e=>{a.current[f]=e},children:(0,n.jsxs)(ni,{messageCount:h,toolCallCount:function(e,t,r){let n=0;for(let r of t){let t=e[r];t?.role==="assistant"&&(n+=m(d(t)))}return n+m(p(e[r]).processBlocks)}(e,o,i),children:[o.map(e=>Y(e,{attachRef:!1,keyPrefix:"process"})),u&&Y(i,{attachRef:!1,keyPrefix:"process-final",messageOverride:u,showTimestamp:!1})]})},`process-group-${r}-${i}`)})(t)},"message"===t.kind?`message-${t.idx}`:"answer"===t.kind?`answer-${t.idx}`:`process-group-${t.userIdx}-${t.finalAssistantIdx}`)),K&&(0,n.jsxs)("button",{ref:N,type:"button",onClick:Z,className:"py-3 w-full min-h-[44px] text-center text-xs text-text-muted hover:text-text transition-colors cursor-pointer inline-flex items-center justify-center gap-1",children:[T("chatWindow.scrollDownToLoad",{count:O-U}),(0,n.jsx)(o.A,{size:12,strokeWidth:1.8,"aria-hidden":"true"})]})]})});function ns({session:e,newSessionCwd:t,advisorEnabled:r,toolCallsDefaultCollapsed:o=!0,onAgentEnd:s,onSessionCreated:l,onSessionForked:c,modelsRefreshKey:d,ompVersionRefreshKey:p,chatInputRef:m,onBranchDataChange:h,onSystemPromptChange:f,onSystemPromptLoaderChange:g,onSessionStatsChange:x,onSessionStatsPanelOpen:v,onOpenSettingsTab:y,onContextUsageChange:b,onOpenFile:w,onRuntimeReadyChange:k}){let{t:j,tn:S}=(0,u.s9)(),{playDoneSound:C,unlockAudio:I}=function(){let[e,t]=(0,i.useState)(()=>(0,rY.NN)()),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);(0,i.useEffect)(()=>()=>{let e=n.current;n.current=null,e&&"closed"!==e.state&&e.close().catch(()=>{})},[]);let 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{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 a=e.createOscillator(),i=e.createGain();a.connect(i),i.connect(e.destination),a.type="sine",a.frequency.value=r;let o=t+.18*n;i.gain.setValueAtTime(0,o),i.gain.linearRampToValueAtTime(.18,o+.02),i.gain.exponentialRampToValueAtTime(.001,o+.45),a.start(o),a.stop(o+.45),a.onended=()=>{a.disconnect(),i.disconnect()}})}catch{}};"suspended"===e.state?e.resume().then(t).catch(()=>{}):t()},[a]),unlockAudio:o}}(),M=(0,eZ.a)(),T=(0,i.useRef)(C);T.current=C;let R=(0,i.useCallback)(()=>{T.current(),s?.()},[s]),W=(0,i.useCallback)(e=>{m?.current?.insertIfEmpty(e)},[m]),{loading:A,error:E,messages:$,entryIds:z,streamState:F,sessionReadiness:H,runtimeError:_,runtimeReady:D,retryRuntimeState:O,agentRunning:P,bashRunning:q,pendingBash:U,modelNames:V,modelList:K,modelsLoading:G,modelError:Y,modelThinkingLevels:J,modelThinkingLevelMaps:Q,thinkingLevel:X,fastModeEnabled:er,fastModeActive:en,liveModelMeta:ea,retryInfo:eo,contextUsage:es,forkingEntryId:el,isCompacting:eu,compactResult:ec,displayModel:ed,sessionStats:ep,slashCommands:em,slashCommandsLoading:eh,queuedMessages:ef,queueEnqueuePending:eg,notices:ex,dismissNotice:ev,extensionDialog:ey,extensionCustomUi:eb,extensionStatuses:ew,extensionWidgets:ek,respondToExtensionUi:ej,sendExtensionCustomInput:eS,isAutoModelSelection:eC,agentPhase:eI,activeGoal:eM,activePlan:eT,subagents:eR,subagentEvents:eW,subagentTranscriptVersions:eA,activeSubagentCount:eE,currentTodoPhase:e$,todoPhases:ez,isNew:eF,sessionIdRef:eL,messagesEndRef:eN,scrollContainerRef:eB,handleSend:eH,handleAbort:eD,handleFork:eO,handleNavigate:eP,handleModelChange:eq,handlePromptWithStreamingBehavior:eU,handleAbortCompaction:eV,handleRecallQueuedMessage:eK,handleDeleteQueuedMessage:eY,handlePromoteQueuedMessage:eJ,handleBuiltinSlashCommand:eQ,handleThinkingLevelChange:eX,handleFastModeChange:e0,handleCycleModel:e2,handleCycleThinkingLevel:e4,handleAbortRetry:e5,loadSlashCommands:e6}=function(e){let{session:t,newSessionCwd:r,advisorEnabled:n,onAgentEnd:a,onSessionCreated:o,onSessionForked:s,modelsRefreshKey:l,onBranchDataChange:c,onSystemPromptChange:d,onSystemPromptLoaderChange:p,onSessionStatsPanelOpen:m,onOpenSettingsTab:h,onOpenFile:f}=e,g=(0,rd.j)(),x=null===t&&null!==r,v=x?{history:"ready",runtime:"ready"}:{history:"idle",runtime:"idle"},[y,b]=(0,i.useState)(null),[w,k]=(0,i.useState)(!x),[j,S]=(0,i.useState)(null),[C,I]=(0,i.useState)(v),[M,T]=(0,i.useState)(null),[R,W]=(0,i.useState)(null),[A,E]=(0,i.useState)([]),[$,z]=(0,i.useState)(null),[F,H]=(0,i.useState)([]),[_,D]=(0,i.useReducer)(rz,{isStreaming:!1,streamingMessage:null,revision:0}),[O,P]=(0,i.useState)(!1),[q,U]=(0,i.useState)(!1),[V,K]=(0,i.useState)(null),G=(0,i.useRef)(!0),[Y,J]=(0,i.useState)({}),[Q,X]=(0,i.useState)([]),[er,en]=(0,i.useState)(!1),[ea,ei]=(0,i.useState)(null),[eo,es]=(0,i.useState)(null),[el,eu]=(0,i.useState)({}),[ec,ed]=(0,i.useState)({}),[ep,em]=(0,i.useState)(null),[eh,ef]=(0,i.useState)(null),[eg,ex]=(0,i.useState)(()=>(function(e=rx()){if(!e)return"default";try{let t=e.getItem(rg);return"none"===t||"default"===t||"full"===t?t:"default"}catch{return"default"}})()),[ev,ey]=(0,i.useState)("auto"),eb=(0,i.useRef)("auto"),ew=(0,i.useRef)(!1),ek=(0,i.useCallback)((e,t=!0)=>{eb.current=e,t&&(ew.current=!0),ey(e)},[]),ej=(0,i.useCallback)(e=>{void 0===e||ew.current&&"auto"===eb.current||ek(rF(e),!1)},[ek]),[eS,eC]=(0,i.useState)(!1),[eI,eM]=(0,i.useState)(void 0),[eT,eR]=(0,i.useState)("immediate"),[eW,eA]=(0,i.useState)(!0),[eE,e$]=(0,i.useState)(!1),[ez,eF]=(0,i.useState)("all"),[eL,eN]=(0,i.useState)("all"),[eB,eH]=(0,i.useState)(null),[eD,eO]=(0,i.useState)(null),eP=(0,i.useRef)(0),eq=(0,i.useCallback)(e=>{e&&e.contextWindow>0&&(eP.current=e.contextWindow),eO(t=>(function(e,t){if(!t)return null;let r=0===t.tokens||null===t.tokens,n=(e?.tokens??0)>0;if(r&&n||null!=t.tokens&&t.contextWindow>0&&t.tokens>1.1*t.contextWindow)return e;let a=t.tokens??e?.tokens??null;return{percent:t.percent??(t.contextWindow>0&&null!=a?a/t.contextWindow*100:e?.percent??null),contextWindow:t.contextWindow,tokens:a}})(t,e))},[]),[eU,eV]=(0,i.useState)(null),[eK,eY]=(0,i.useState)(null),[eJ,eQ]=(0,i.useState)(null),[eZ,eX]=(0,i.useState)(null),[e0,e2]=(0,i.useState)(!1),[e4,e5]=(0,i.useState)(null),[e6,e3]=(0,i.useState)(null),[e8,e9]=(0,i.useState)(null),[e7,te]=(0,i.useState)([]),[tt,tr]=(0,i.useState)(!1),[tn,ta]=(0,i.useReducer)(rO,{visible:[],pending:[]}),[ti,to]=(0,i.useState)(null),[ts,tl]=(0,i.useState)(null),[tu,tc]=(0,i.useState)(null),[td,tp]=(0,i.useState)([]),[tm,th]=(0,i.useState)([]),[tg,tx]=(0,i.useState)([]),[tv,ty]=(0,i.useState)(null),[tb,tw]=(0,i.useState)(null),tk=(0,i.useRef)(null),tj=(0,i.useRef)(null),tS=(0,i.useRef)(null),tC=(0,i.useRef)(null),tI=(0,i.useRef)(null),tM=(0,i.useRef)(0),tT=(0,i.useRef)(new AbortController),tR=(0,i.useRef)(t?.id??null),tW=(0,i.useRef)(t?.id??null);tW.current=t?.id??null;let tA=(0,i.useRef)(0),tE=(0,i.useRef)(0),t$=(0,i.useRef)(0),tz=(0,i.useRef)(0),tF=(0,i.useRef)(v),tL=(0,i.useRef)(x||"ready"===v.runtime);tF.current=C,tL.current=x||"ready"===C.runtime;let tN=(0,i.useRef)(0),tB=(0,i.useRef)(!1),tH=(0,i.useRef)(!1),t_=(0,i.useRef)(!1),tD=(0,i.useRef)(!1),tO=(0,i.useRef)(0),tU=(0,i.useRef)(null),tV=(0,i.useRef)(!1),tK=(0,i.useRef)(!1),tY=(0,i.useRef)(!0),tJ=(0,i.useRef)(void 0),tQ=(0,i.useRef)(0),tZ=(0,i.useRef)(0),tX=(0,i.useRef)(null),t0=(0,i.useRef)(null),t1=(0,i.useRef)(null),t2=(0,i.useRef)(!1),t4=(0,i.useRef)(0),t5=(0,i.useRef)(new WeakSet),t9=(0,i.useRef)(null),t7=(0,i.useRef)(!1),re=(0,i.useRef)(null),rv=(0,i.useRef)(null),ry=(0,i.useCallback)((e=tR.current)=>!!x||!!e&&tR.current===e&&tL.current,[x]),rb=(0,i.useCallback)(e=>{let t=e.message.trim();t&&ta({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"}})},[]),rj=(0,i.useCallback)(()=>({sessionId:tR.current,loadGeneration:tA.current,runtimeGeneration:tE.current,alive:G.current,runtimeReady:tL.current}),[]),{queuedMessages:rS,queueEnqueuePending:rM,beginQueueEpoch:rD,disposeQueue:rq,applyQueueFromAgentState:rY,fetchMessageQueue:rJ,handleQueueEvent:rQ,enqueueMessage:rZ,handleRecallQueuedMessage:rX,handleDeleteQueuedMessage:r0,handlePromoteQueuedMessage:r1}=function({getSessionContext:e,canMutateSession:t,addNotice:r}){let[n,a]=(0,i.useState)(()=>({...t8,items:[],nativeQueuedCount:void 0})),[o,s]=(0,i.useState)(!1),l=(0,i.useRef)(-1),c=(0,i.useRef)(0),d=(0,i.useCallback)(()=>{c.current+=1,l.current=-1,a({...t8,items:[],nativeQueuedCount:void 0})},[]),p=(0,i.useCallback)((t,r,n,i,o,s)=>{let u=e();if(!u.alive||!function(e,t,r,n,a,i,o,s,l="fetch"){return e===t&&r===n&&a===i&&!!Number.isFinite(s)&&("event"===l?o<0||s>o:o<0||s>=o)}(u.sessionId,r,u.loadGeneration,n,c.current,i,l.current,t.revision,o))return!1;l.current=t.revision;let d=s??t.nativeQueuedCount;return a({...t,nativeQueuedCount:d}),!0},[e]),m=(0,i.useCallback)((t,r,n,i)=>{let o=e();void 0!==t&&o.alive&&o.sessionId===r&&o.loadGeneration===n&&c.current===i&&a(e=>e.nativeQueuedCount===t?e:{...e,nativeQueuedCount:t})},[e]),h=(0,i.useCallback)((e,t,r)=>{let n=c.current,a=B(e?.queuedMessageCount),i="object"==typeof e&&null!==e&&"messageQueue"in e?rt(e.messageQueue):null;i?p(i,t,r,n,"fetch",a):m(a,t,r,n)},[m,p]),f=(0,i.useCallback)(async t=>{let r=e(),n=r.loadGeneration,a=r.runtimeGeneration,i=c.current;try{var o,s;let r=await (0,tf.$)(t,{type:"get_message_queue"}),l=e();if(!l.alive||(o=l.sessionId,s=l.loadGeneration,o!==t||s!==n)||l.runtimeGeneration!==a||c.current!==i)return;let u=ra(r);u&&p(u.queue,t,n,i,"fetch")}catch{}},[p,e]),g=(0,i.useCallback)(async(n,a,i,o)=>{let l=e().sessionId;if(!l||!t(l))return!1;s(!0);try{var u,d;await o(l);let r=e(),s=r.loadGeneration,m=c.current;if(u=r.sessionId,d=r.loadGeneration,u!==l||d!==s||!t(l))return!1;let h=await (0,tf.$)(l,{type:"enqueue_message",message:n,lane:"steer"===a?"steer":"followUp",...i?.length?{images:i.map(({data:e,mimeType:t})=>({type:"image",data:e,mimeType:t}))}:{}});if(c.current!==m)return f(l),!0;let g=ra(h);return g?p(g.queue,l,s,m,"fetch"):await f(l),!0}catch(e){return console.error("Failed to queue prompt:",e),r({type:"error",message:e instanceof Error?e.message:String(e)}),f(l),!1}finally{s(!1)}},[r,p,t,f,e]),x=(0,i.useCallback)((e,t)=>{r({type:"error",message:t instanceof Error?t.message:(0,u.Tl)("chatInput.queuedOpFailed")}),f(e)},[r,f]),v=(0,i.useCallback)(async r=>{let n=e(),a=n.sessionId;if(!a||!r||!t(a))return null;let i=n.loadGeneration,o=c.current,s=l.current;if(s<0)return x(a,Error((0,u.Tl)("chatInput.queuedOpFailed"))),null;try{let e=await (0,tf.$)(a,{type:"recall_queued_message",id:r,expectedRevision:s}),t=rn(e);if(!t)return x(a,Error((0,u.Tl)("chatInput.queuedOpFailed"))),null;return p(t.queue,a,i,o,"fetch"),t.recalled}catch(e){return x(a,e),null}},[p,t,x,e]),y=(0,i.useCallback)(async r=>{let n=e(),a=n.sessionId;if(!a||!r||!t(a))return!1;let i=n.loadGeneration,o=c.current,s=l.current;if(s<0)return x(a,Error((0,u.Tl)("chatInput.queuedOpFailed"))),!1;try{var d,m;let t=await (0,tf.$)(a,{type:"delete_queued_message",id:r,expectedRevision:s}),n=e();if(d=n.sessionId,m=n.loadGeneration,d!==a||m!==i||c.current!==o)return!1;let l=ra(t);if(!l)return x(a,Error((0,u.Tl)("chatInput.queuedOpFailed"))),!1;return p(l.queue,a,i,o,"fetch"),!0}catch(e){return x(a,e),!1}},[p,t,x,e]),b=(0,i.useCallback)(async r=>{let n=e(),a=n.sessionId;if(!a||!r||!t(a))return!1;let i=n.loadGeneration,o=c.current,s=l.current;if(s<0)return x(a,Error((0,u.Tl)("chatInput.queuedOpFailed"))),!1;try{var d,m;let t=await (0,tf.$)(a,{type:"promote_queued_message",id:r,expectedRevision:s}),n=e();if(d=n.sessionId,m=n.loadGeneration,d!==a||m!==i||c.current!==o)return!1;let l=ra(t);if(!l)return x(a,Error((0,u.Tl)("chatInput.queuedOpFailed"))),!1;return p(l.queue,a,i,o,"fetch"),!0}catch(e){return x(a,e),!1}},[p,t,x,e]),w=(0,i.useCallback)(t=>{let r=e();if(!r.sessionId)return;let n=rr(t);n&&p(n,r.sessionId,r.loadGeneration,c.current,"event")},[p,e]),k=(0,i.useCallback)(()=>{d(),s(!1)},[d]);return{queuedMessages:n,queueEnqueuePending:o,beginQueueEpoch:d,disposeQueue:k,applyQueueFromAgentState:h,fetchMessageQueue:f,handleQueueEvent:w,enqueueMessage:g,handleRecallQueuedMessage:v,handleDeleteQueuedMessage:y,handlePromoteQueuedMessage:b}}({getSessionContext:rj,canMutateSession:ry,addNotice:rb}),{subagents:r2,subagentEvents:r4,subagentTranscriptVersions:r5,activeSubagentCount:r6,handleEvent:r3,reset:r8,dispose:r9,refreshHistory:r7,refreshRoster:ne,scheduleInitialRosterRefresh:nt,pauseHiddenTimers:nr,resumeVisibleSession:nn}=function({getSessionContext:e,canMutateSession:t}){let[r,n]=(0,i.useState)([]),[a,o]=(0,i.useState)({}),[s,l]=(0,i.useState)({}),u=0;for(let e of r)"history"!==e.source&&"started"===e.status&&(u+=1);let c=(0,i.useRef)(null),d=(0,i.useRef)(null),p=(0,i.useRef)(null),m=(0,i.useRef)(null),h=(0,i.useRef)(null),f=(0,i.useRef)(!1),g=(0,i.useRef)(null),x=(0,i.useRef)(0),v=(0,i.useRef)(null),y=(0,i.useRef)([]);y.current=r;let b=(0,i.useRef)(0),w=(0,i.useCallback)((t,r)=>{n(n=>{let a=e();if(r?.sessionId!==void 0&&(!a.alive||a.sessionId!==r.sessionId||void 0!==r.rosterGeneration&&b.current!==r.rosterGeneration))return n;let i=tG(n,t,r);return y.current=i,i})},[e]),k=(0,i.useCallback)(async(t,r=e().loadGeneration)=>{let n=b.current;try{let a=await fetch(`/api/sessions/${encodeURIComponent(t)}/subagents`);if(!a.ok)return!1;let i=await a.json(),o=e();if(o.sessionId!==t||b.current!==n||void 0!==r&&o.loadGeneration!==r)return!1;let s=(i.subagents??[]).map(rc);return w(s,{sessionId:t,rosterGeneration:n}),!0}catch{return!1}},[e,w]),j=(0,i.useCallback)(t=>{let r=e();if(!r.alive||r.sessionId!==t||!r.runtimeReady||!ru(y.current)||Z()||m.current||g.current)return;let n=b.current;h.current="reconcile",m.current=window.setTimeout(()=>{m.current=null,h.current=null;let r=e();!r.alive||r.sessionId!==t||b.current!==n||Z()||(function(e,t=Date.now()){return e.some(e=>"history"!==e.source&&"started"===e.status&&("stale"===tq(e,t)||(e.missingSnapshots??0)>0||void 0!==e.missingSince))}(y.current)?v.current?.(t):j(t))},5e3)},[e]),S=(0,i.useCallback)(r=>{if(!t(r))return Promise.resolve(!1);let a=g.current;if(a)return a;let i=Date.now(),o=b.current,s=++x.current,l=(async()=>{try{let t=await (0,tf.$)(r,{type:"get_subagents"}),a=e();if(!a.alive||a.sessionId!==r||b.current!==o)return!1;let s=(t?.subagents??[]).map(rs).filter(e=>void 0!==e),l=new Set(s.map(e=>e.id)),u=Date.now();return n(t=>{let n=e();if(!n.alive||n.sessionId!==r||b.current!==o)return t;let a=tG(t,s,{skipNewerThan:i}),c=function(e,t,r,n=Date.now()){let a=!1,i=e.map(e=>{if("history"===e.source||"started"!==e.status)return e;if(t.has(e.id)){if(void 0===e.missingSnapshots&&void 0===e.missingSince)return e;let t={...e};return delete t.missingSnapshots,delete t.missingSince,a=!0,t}if((e.lastUpdate??0)>=r)return e;let i=("number"==typeof e.missingSnapshots&&Number.isFinite(e.missingSnapshots)&&e.missingSnapshots>=0?Math.floor(e.missingSnapshots):0)+1,o="number"==typeof e.missingSince&&Number.isFinite(e.missingSince)?e.missingSince:n;return a=!0,{...e,missingSnapshots:i,missingSince:o,...i>=2&&n-o>=3e4?{status:"lost"}:{}}});return a?i:e}(a,l,i,u);return y.current=c,c}),k(r),!0}catch{return!1}finally{x.current===s&&(g.current=null,j(r))}})();return g.current=l,l},[t,e,k,j]);v.current=S,(0,i.useEffect)(()=>{let t=e().sessionId;t&&ru(r)?j(t):"reconcile"===h.current&&m.current&&(clearTimeout(m.current),m.current=null,h.current=null)},[e,j,r]);let C=(0,i.useCallback)(()=>{null!==p.current&&(cancelAnimationFrame(p.current),p.current=null),c.current=null,d.current=null,o({}),l({})},[]),I=(0,i.useCallback)(()=>{y.current=[],n([]),b.current+=1,C()},[C]),M=(0,i.useCallback)(t=>{let r=e();if(clearTimeout(m.current??void 0),m.current=null,r.alive&&r.sessionId===t&&r.runtimeReady){if(Z()){f.current=!0;return}f.current=!1,h.current="initial",m.current=window.setTimeout(()=>{m.current=null,h.current=null;let r=e();if(Z()){f.current=!0;return}r.sessionId===t&&r.runtimeReady&&S(t)},600)}},[e,S]),T=(0,i.useCallback)(t=>{switch(t.type){case"subagent_lifecycle":{let r=e(),n=r.sessionId,a=b.current;if(!r.alive||!n)break;let i=function(e){if(!L(e))return;let t=N(e.id),r=N(e.status);if(!t||!r||"started"!==r&&"completed"!==r&&"failed"!==r&&"aborted"!==r)return;let n={id:t,agent:N(e.agent)??"subagent",status:r,index:B(e.index)??-1,lastUpdate:Date.now(),source:"live"},a=ri(e.agentSource);void 0!==a&&(n.agentSource=a);let i=N(e.description);void 0!==i&&(n.description=i);let o=N(e.sessionFile);void 0!==o&&(n.sessionFile=o);let s=N(e.parentToolCallId);return void 0!==s&&(n.parentToolCallId=s),"boolean"==typeof e.detached&&(n.detached=e.detached),n}(t.payload);if(!i)break;w([i],{sessionId:n,rosterGeneration:a});break}case"subagent_progress":{let r=e(),a=r.sessionId,i=b.current;if(!r.alive||!a)break;let o=t.payload,s=ro(o?.progress),l=s?.id,u="number"==typeof o?.index&&Number.isFinite(o.index)?o.index:s?.index??-1,c="string"==typeof o?.parentToolCallId?o.parentToolCallId:null,d="string"==typeof o?.task&&o.task.trim()?o.task:s?.task??null,p="string"==typeof o?.assignment?o.assignment:s?.assignment;if(!l&&!d&&!c&&u<0)break;n(t=>{let r=e();if(!r.alive||r.sessionId!==a||b.current!==i)return t;let n=-1;if(l){if(-1===(n=t.findIndex(e=>e.id===l))&&s){let e=function(e,t,r=Date.now()){let n=t.id;if(!n)return;let a=e?.index,i=t.index,o="number"==typeof a&&Number.isFinite(a)&&a>=0?a:"number"==typeof i&&Number.isFinite(i)&&i>=0?i:0,s=tP(t.status,"started"),l={id:n,agent:e?.agent||t.agent||"task",index:o,status:s,progress:t,lastUpdate:r,source:"live"},u=e?.agentSource??t.agentSource;void 0!==u&&(l.agentSource=u);let c=e?.task?.trim()?e.task:t.task;void 0!==c&&(l.task=c);let d=e?.assignment??t.assignment;void 0!==d&&(l.assignment=d);let p=e?.description??t.description;return void 0!==p&&(l.description=p),e?.parentToolCallId!==void 0&&(l.parentToolCallId=e.parentToolCallId),e?.sessionFile!==void 0&&(l.sessionFile=e.sessionFile),e?.detached!==void 0&&(l.detached=e.detached),l}({index:"number"==typeof o?.index&&Number.isFinite(o.index)?o.index:void 0,agent:"string"==typeof o?.agent?o.agent:void 0,agentSource:"string"==typeof o?.agentSource&&("bundled"===o.agentSource||"user"===o.agentSource||"project"===o.agentSource)?o.agentSource:void 0,task:"string"==typeof o?.task?o.task:void 0,assignment:p,description:"string"==typeof o?.description?o.description:void 0,parentToolCallId:c??void 0,sessionFile:"string"==typeof o?.sessionFile?o.sessionFile:void 0,detached:"boolean"==typeof o?.detached?o.detached:void 0},s);return e?tG(t,[e]):t}}else c&&u>=0&&(n=t.findIndex(e=>e.parentToolCallId===c&&e.index===u)),-1===n&&c&&(n=t.findIndex(e=>e.parentToolCallId===c)),-1===n&&u>=0&&(n=t.findIndex(e=>e.index===u));if(-1===n)return t;let m=t[n],h=tP(s?.status,m.status);if("started"!==m.status&&"started"===h)return t;let f={...m,status:h,agent:"string"==typeof o?.agent?o.agent:m.agent,agentSource:"string"==typeof o?.agentSource&&("bundled"===o.agentSource||"user"===o.agentSource||"project"===o.agentSource)?o.agentSource:m.agentSource,..."string"==typeof o?.sessionFile?{sessionFile:o.sessionFile}:{},..."boolean"==typeof o?.detached?{detached:o.detached}:{},...d?{task:d}:{},...void 0!==p?{assignment:p}:{},...s?{progress:s}:{},lastUpdate:Date.now(),source:"history"===m.source&&"started"!==m.status?"history":"live"};if(m.agent===f.agent&&m.agentSource===f.agentSource&&m.sessionFile===f.sessionFile&&m.detached===f.detached&&m.task===f.task&&m.assignment===f.assignment&&JSON.stringify(m.progress)===JSON.stringify(f.progress))return t;let g=[...t];return g[n]=f,g});break}case"subagent_event":{let r=e(),n=r.sessionId,a=b.current;if(!r.alive||!n)break;let i=t.payload,s="string"==typeof i?.id?i.id:null;if(s){(c.current??(c.current=new Set)).add(s);let t=function(e){if(!L(e))return null;let t=L(e.event)?e.event:null;if(!t)return null;let r=N(t.type),n=Date.now();if("tool_execution_start"===r){let e=N(t.toolName)??"tool",r=N(t.intent)?.trim();if(r)return{kind:"tool",label:`→ ${e} — ${r}`,ts:n};let a=L(t.args)?Object.keys(t.args).slice(0,3).join(", "):void 0;return{kind:"tool",label:a?`→ ${e} (${a})`:`→ ${e}`,ts:n}}if("message_end"===r){let e=L(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=>L(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=N(t.message);if(e)return{kind:"notice",label:e.slice(0,140),ts:n}}return null}(i);if(t){let e=d.current??(d.current=new Map),r=e.get(s);r?(r.length>=50&&r.shift(),r.push(t),e.delete(s),e.set(s,r)):e.set(s,[t])}null===p.current&&(p.current=requestAnimationFrame(()=>{p.current=null;let t=e();if(!t.alive||t.sessionId!==n||b.current!==a){c.current=null,d.current=null;return}let r=c.current;c.current=null;let i=d.current;d.current=null;let s=null!==r&&r.size>0,u=null!==i&&i.size>0;(s||u)&&(r&&r.size>0&&l(e=>{let t=e;for(let e of r)t={...t,[e]:(t[e]??0)+1};return rl(t)}),i&&i.size>0&&o(e=>{let t=e;for(let[r,n]of i){let a=e[r]??[],i=0===a.length?n.length<=50?n:n.slice(-50):[...a,...n].slice(-50);t===e&&(t={...e}),delete t[r],t[r]=i}return rl(t)}))}))}}}},[e,w]),R=(0,i.useCallback)(()=>{Z()&&m.current&&("initial"===h.current&&(f.current=!0),clearTimeout(m.current),m.current=null,h.current=null)},[]),W=(0,i.useCallback)(e=>{j(e),f.current&&M(e)},[M,j]);return{subagents:r,subagentEvents:a,subagentTranscriptVersions:s,activeSubagentCount:u,handleEvent:T,reset:I,dispose:(0,i.useCallback)(()=>{clearTimeout(m.current??void 0),m.current=null,h.current=null,g.current=null,x.current+=1,null!==p.current&&(cancelAnimationFrame(p.current),p.current=null),c.current=null,d.current=null},[]),refreshHistory:k,refreshRoster:S,scheduleInitialRosterRefresh:M,pauseHiddenTimers:R,resumeVisibleSession:W}}({getSessionContext:rj,canMutateSession:ry}),na=(0,i.useCallback)(e=>{let t=t$.current+1;t$.current=t,tA.current=t,e&&(tE.current=t);let r={...tF.current,history:"loading",...e&&!x?{runtime:"loading"}:{}};return tF.current=r,tL.current=x||"ready"===r.runtime,I(r),e&&!x&&T(null),t},[x]),ni=(0,i.useCallback)((e,t,r)=>{if(!G.current||tR.current!==e||tA.current!==t)return!1;let n={...tF.current,...r};return tF.current=n,tL.current=x||"ready"===n.runtime,I(n),!0},[x]),no=(0,i.useCallback)((e,t,r)=>{if(!G.current||tR.current!==e||tE.current!==t)return!1;let n={...tF.current,...r};return tF.current=n,tL.current=x||"ready"===n.runtime,I(n),!0},[x]);null===rv.current&&(rv.current=function(e,t=function(e){if("u">typeof document&&!document.hidden&&"function"==typeof requestAnimationFrame){let t=requestAnimationFrame(e);return()=>cancelAnimationFrame(t)}let t=setTimeout(e,50);return()=>clearTimeout(t)}){let r=null,n=null,a=()=>{n&&(n(),n=null)},i=()=>{n=null;let t=r;r=null,t&&e(t)};return{push(o){if("message_update"===o.type){r=o,n||(n=t(i));return}if("message_end"===o.type)r=null,a();else if(r){a();let t=r;r=null,e(t)}e(o)},reset(){r=null,a()}}}(e=>{tU.current?.(e)}));let ns=rv.current;null===tj.current&&(tj.current=function({createSource:e,timeoutMs:t,onFatalClose:r}){let n=null,a=e=>n===e&&!e.invalidated,i=e=>{null!==e.timeout&&(clearTimeout(e.timeout),e.timeout=null),e.timeout=setTimeout(()=>{a(e)&&s(e,"timeout")},t)},o=e=>{e.promise=new Promise(t=>{e.resolve=t}),e.settled=!1,i(e)},s=(e,t)=>{e.settled||(e.settled=!0,null!==e.timeout&&(clearTimeout(e.timeout),e.timeout=null),e.resolve({status:t,source:e.source}))},l=(e,t)=>{!e.invalidated&&(e.invalidated=!0,n===e&&(n=null),s(e,"closed"),t&&2!==e.source.readyState&&e.source.close())},u=e=>{a(e)&&2!==e.source.readyState&&s(e,"connected")},c=e=>{if(a(e)){if(2===e.source.readyState){s(e,"closed"),l(e,!1),r?.(e.sessionId,e.source);return}0===e.source.readyState&&e.settled&&o(e)}};return{ensure(t){let r,a,d,p,m=n;if(m&&m.sessionId===t){if(1===m.source.readyState)return m.settled||s(m,"connected"),Promise.resolve({status:"connected",source:m.source});if(0===m.source.readyState)return m.settled&&o(m),m.promise;l(m,!0)}else m&&l(m,!0);return a=null,d=new Promise(e=>{r=e}),p=e(t,{onOpen:()=>{a&&u(a)},onError:()=>{a&&c(a)}}),n=a={sessionId:t,source:p,promise:d,resolve:r,settled:!1,invalidated:!1,timeout:null},i(a),1===p.readyState?s(a,"connected"):2===p.readyState&&c(a),a.promise},currentSource:e=>n?.sessionId!==e||n.invalidated?null:n.source,isCurrent:(e,t)=>n?.sessionId===e&&n.source===t&&!n.invalidated,markConnected(e,t){let r=n;r&&r.sessionId===e&&r.source===t&&u(r)},invalidate(e,t){let r=n;r&&(void 0===e||r.sessionId===e)&&(void 0===t||r.source===t)&&l(r,!0)}}}({timeoutMs:6e4,createSource:(e,t)=>{ns.reset();let r=new EventSource(`/api/agent/${encodeURIComponent(e)}/events`);return r.onopen=()=>{tM.current=0,t.onOpen()},r.onerror=t.onError,tk.current=r,r},onFatalClose:(e,t)=>{if(tk.current!==t||(tk.current=null,tI.current&&(clearTimeout(tI.current),tI.current=null),!t_.current||Z()))return;let r=function(e,t=1e3,r=3e4){let n=Number.isFinite(e)?Math.max(0,Math.floor(e)):0;return Math.min(r,t*2**n)}(tM.current);tM.current+=1,tI.current=setTimeout(()=>{tI.current=null,!Z()&&t_.current&&tR.current===e&&(tS.current?.(e),tC.current?.(e))},r)}}));let nl=tj.current,nu=e.setToolPreset??ex,nc=x||"ready"===C.runtime,nd=eJ??y?.context.model??eZ??null,np=x?ep??eh:eJ??(eo?{provider:eo.provider,modelId:eo.modelId}:y?.context.model??eZ),nm=function(e,t,r){if(e1(r))return r;if(!t)return 0;let n=e.find(e=>e.provider===t.provider&&e.id===t.modelId);return e1(n?.contextWindow)?n.contextWindow:0}(Q,np,eP.current),nh=(0,i.useMemo)(()=>eD??function(e,t){if(!t||!(t>0))return null;for(let r=e.length-1;r>=0;r--){let n=e[r];if("assistant"!==n.role||!n.usage)continue;let a=n.usage,i=(a.input??0)+(a.output??0)+(a.cacheRead??0)+(a.cacheWrite??0);if(!(i<=0)&&!(i>1.1*t))return{tokens:i,contextWindow:t,percent:i/t*100}}return null}(A,nm),[eD,A,nm]),nf=(0,i.useMemo)(()=>{if(ti)return ti;let e={input:0,output:0,cacheRead:0,cacheWrite:0,total:0},r=0,n=0,a=0,i=0,o=0;for(let t of A){if("user"===t.role&&(n+=1),"toolResult"===t.role&&(i+=1),"assistant"!==t.role)continue;a+=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===A.length)?null:{sessionFile:y?.filePath||void 0,sessionId:tR.current??t?.id??"",sessionName:t?.name,userMessages:n,assistantMessages:a,toolCalls:o,toolResults:i,totalMessages:A.length,tokens:e,cost:r,...nh?{contextUsage:nh}:{}}},[A,ti,nh,y?.filePath,t?.id,t?.name]);(0,i.useEffect)(()=>{eO(null),eP.current=0},[t?.id]),(0,i.useEffect)(()=>{let e=t?.id;(tw(null),e)?ty(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}`))):ty(null)},[t?.id]),(0,i.useEffect)(()=>{O||tw(null)},[O]);let ng=(0,i.useMemo)(()=>{for(let e=0;e<tg.length;e++){let t=tg[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:tg.length,done:n,total:r.length}}return null},[tg]),nx=(0,i.useRef)(0),nv=(0,i.useCallback)(()=>(nx.current+=1,nx.current),[]),ny=(0,i.useCallback)((e,t)=>(void 0===t||t===nx.current)&&(nx.current+=1,es(e),!e||(eQ(t=>t&&(t.provider!==e.provider||t.modelId!==e.modelId)?null:t),!0)),[]),nb=(0,i.useCallback)(async e=>{if(!ry(e))return;let t=tE.current,r=nv();try{let n=await fetch(`/api/sessions/${encodeURIComponent(e)}/state`);if(!n.ok)return;let a=await n.json();if(tR.current!==e||tE.current!==t||!ny(rL(a.state?.model),r))return;a.state?.thinkingLevel!==void 0&&ej(a.state.thinkingLevel),a.state?.fastModeEnabled!==void 0&&eC(a.state.fastModeEnabled),eM(a.state?.fastModeActive),a.state?.autoRetryEnabled!==void 0&&e$(a.state.autoRetryEnabled),a.state?.interruptMode!==void 0&&eR(a.state.interruptMode),a.state?.autoCompactionEnabled!==void 0&&eA(a.state.autoCompactionEnabled),a.state?.steeringMode!==void 0&&eF(a.state.steeringMode),a.state?.followUpMode!==void 0&&eN(a.state.followUpMode)}catch{}},[ny,nv,ry,ej]),nw=(0,i.useCallback)((e,t,r,n,a,i)=>{if(!G.current||!t3(tR.current,e,tA.current,a,tE.current,n,t4.current,i))return!1;let o=t.state,s=ny(rL(o?.model),r);return o?(void 0!==o.contextUsage&&eq(o.contextUsage??null),void 0!==o.systemPrompt&&eV(o.systemPrompt||null),s&&void 0!==o.thinkingLevel&&ej(o.thinkingLevel),void 0!==o.fastModeEnabled&&eC(o.fastModeEnabled),eM(o.fastModeActive),void 0!==o.autoRetryEnabled&&e$(o.autoRetryEnabled),void 0!==o.interruptMode&&eR(o.interruptMode),void 0!==o.isCompacting&&(tB.current=o.isCompacting,e2(o.isCompacting)),void 0!==o.autoCompactionEnabled&&eA(o.autoCompactionEnabled),void 0!==o.steeringMode&&eF(o.steeringMode),void 0!==o.followUpMode&&eN(o.followUpMode),void 0!==o.extensionStatuses&&tp(o.extensionStatuses??[]),void 0!==o.extensionWidgets&&th(o.extensionWidgets??[]),void 0!==o.todoPhases&&tx(o.todoPhases??[]),rY(o,e,a)):(eq(null),tB.current=!1,e2(!1)),no(e,n,{runtime:"ready"}),T(null),!0},[ny,rY,eq,no,ej]),nk=(0,i.useCallback)(async(e,t,r,n)=>{let a=nv();try{let i=await fetch(`/api/sessions/${encodeURIComponent(e)}/state`);if(!i.ok)throw Error(`HTTP ${i.status}`);let o=await i.json();return nw(e,o,a,t,r,n)?o:null}catch(a){if(G.current&&t3(tR.current,e,tA.current,r,tE.current,t,t4.current,n)){let r=a instanceof Error?a.message:String(a);no(e,t,{runtime:"error"}),T(r)}return console.error("Failed to load agent state:",a),null}},[nw,nv,no]),nj=(0,i.useCallback)(async(e,t=!1,r=!1,n)=>{let a="ready"===tF.current.history,i=na(r);if(t&&k(!0),a)z(null);else{let t=rW(),r=t?function(e,t=rW()){let r=rw(e),n=rk(t);if(!r||!n)return null;let a=null;try{a=rR(window.localStorage.getItem(rA(n,r)))}catch{a=null}if(!a)try{a=rR(window.OmpguiRemoteReplica?.getSnapshot?.()??null)}catch{a=null}return a&&a.origin===n&&a.session.id===r?a:null}(e,t):null;z(r&&r.session.id===e?r:null)}let o=new URLSearchParams({deferThinking:"1",deferMedia:"1"}),s=fetch(`/api/sessions/${encodeURIComponent(e)}?${o}`),l=(async()=>{try{let t=await s;if(404===t.status){if(!G.current||tR.current!==e||tA.current!==i||void 0!==n&&t4.current!==n)return!1;return b(null),W(null),E([]),z(null),H([]),S(null),ni(e,i,{history:"error"}),k(!1),!1}if(!t.ok)throw Error(`HTTP ${t.status}`);let r=await t.json();if(!G.current||tR.current!==e||tA.current!==i||void 0!==n&&t4.current!==n)return!1;return b(r),W(r.leafId),E(r.context.messages),z(null),H(r.context.entryIds??[]),tx(r.context.todoPhases??[]),r7(e,i),eQ(null),S(null),r.context.thinkingLevel&&"off"!==r.context.thinkingLevel&&ek(r.context.thinkingLevel),ni(e,i,{history:"ready"}),k(!1),!0}catch(t){return G.current&&tR.current===e&&tA.current===i&&(void 0===n||t4.current===n)&&(S(String(t)),z(null),ni(e,i,{history:"error"}),k(!1)),!1}})(),u=r?nk(e,i,i,n):Promise.resolve(null);if(!r)return await l,null;let c=await u;return await l,c},[na,nk,r7,ek,ni]);(0,i.useEffect)(()=>(0,rf._)(({sessionIds:e})=>{let t=tR.current;if(!t||!e.includes(t))return;let r=tj.current?.currentSource(t);r&&r.readyState!==EventSource.CLOSED||nj(t)}),[nj]);let nS=(0,i.useCallback)(async(e,t)=>{let r=++tN.current,n=tA.current;try{let a=new URLSearchParams({deferThinking:"1",deferMedia:"1"});t&&a.set("leafId",t);let i=`/api/sessions/${encodeURIComponent(e)}/context?${a}`,o=await fetch(i);if(!o.ok)throw Error(`HTTP ${o.status}`);let s=await o.json();if(tR.current!==e||tN.current!==r||tA.current!==n)return;E(s.context.messages),H(s.context.entryIds??[]),tx(s.context.todoPhases??[])}catch(e){console.error("Failed to load context:",e)}},[]),nC=(0,i.useCallback)((e=0,t)=>{t??=(0,u.Tl)("agentSession.noMessages");let n=tR.current;x&&r&&n&&!t2.current&&(t2.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]),nI=(0,i.useCallback)(async()=>{if(tR.current||!x||!r)return tR.current;if(t1.current)return t1.current;let e=(async()=>{let e=ep??eh;e&&eX(e);let t="none"===eg?[...rp]:"full"===eg?[...rh]:[...rm],a=await fetch("/api/agent/new",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:r,type:"ensure_session",toolNames:t,...e?{provider:e.provider,modelId:e.modelId}:{},..."auto"!==eb.current?{thinkingLevel:eb.current}:{},...n?{advisor:!0}:{}})});if(!a.ok)throw Error(`HTTP ${a.status}`);let i=(await a.json()).sessionId;return tR.current=i,i})();t1.current=e;try{return await e}finally{t1.current=null}},[n,x,r,ep,eh,eg]),nM=(0,i.useCallback)(async()=>{let e=tR.current??await nI();if(!e||!ry(e))return;let t=await (0,tf.$)(e,{type:"get_state"});G.current&&tR.current===e&&eV(t.systemPrompt??"")},[ry,nI]),nT=(0,i.useCallback)(async()=>{let e=tR.current??await nI();if(!e||!ry(e))return te([]),[];tr(!0);try{let t=await (0,tf.$)(e,{type:"get_commands"}),r=(t?.commands??[]).map(rG).filter(e=>null!==e);return te(r),r}catch(e){return console.error("Failed to load slash commands:",e),te([]),[]}finally{tr(!1)}},[ry,nI]),nR=(0,i.useCallback)(e=>{let t=nl.ensure(e),r=nl.currentSource(e);return r&&(r.onmessage=t=>{if(nl.isCurrent(e,r))try{let n=JSON.parse(t.data);if("connected"===n.type&&(nl.markConnected(e,r),rD(),rJ(e)),"session_closed"===n.type){ns.push(n),nl.invalidate(e,r),tk.current===r&&(tk.current=null);return}ns.push(n)}catch{}}),t},[rD,ns,nl,rJ]);tS.current=nR;let nW=(0,i.useCallback)(async(e,t)=>{let r=tR.current;if(r&&ry(r)){tl(t=>t?.id===e.id?null:t);try{await (0,tf.$)(r,{type:"extension_ui_response",id:e.id,...t})}catch(e){console.error("Failed to send extension UI response:",e)}}},[ry]),nA=(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"]}}],[]),nE=(0,i.useCallback)(async e=>{if(ry(e))try{await (0,tf.$)(e,{type:"set_host_tools",tools:nA})}catch{}},[nA,ry]),n$=(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}],[]),nz=(0,i.useCallback)(async e=>{if(ry(e))try{await (0,tf.$)(e,{type:"set_host_uri_schemes",schemes:n$})}catch{}},[n$,ry]);tC.current=e=>{nE(e),nz(e),ne(e),rD(),rJ(e)};let nF=(0,i.useCallback)(async(e,t,r,n=!1)=>{if(ry(e))try{await (0,tf.$)(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)}},[ry]),nL=(0,i.useCallback)(async(e,t,r)=>{let n=tR.current;if(!n||!ry(n))return;let a=e=>"string"==typeof e?e:void 0;switch(t){case"open_url":{let t="string"==typeof r.url?r.url:"",a=r_(t),i=a?t:"";if(i&&1){let e=window.open(i,"_blank","noopener,noreferrer");e?.focus?.()}let o=a?t?`Opened ${t}`:"No URL provided":"Unsafe or invalid URL not opened";await nF(n,e,o,!a&&!!t);break}case"notify":{let t=a(r.title)??"OMP",i=a(r.message)??"";if("u">typeof Notification)try{if("granted"===Notification.permission)new Notification(t,{body:i});else if("default"===Notification.permission){let e=await Notification.requestPermission();"granted"===e&&new Notification(t,{body:i})}}catch{}await nF(n,e,"Notification shown");break}case"open_file":{let t=a(r.path)??"";if(t&&f)try{let e=t.split(/[\\/]/).pop()||t;f(t,e,n)}catch{}await nF(n,e,t?`Opened ${t}`:"No path provided",!t);break}default:await nF(n,e,`Host tool "${t}" is not available in omp-web`,!0)}},[ry,f,nF]),nN=(0,i.useCallback)(async(e,t,r)=>{if(ry(e))try{await (0,tf.$)(e,{type:"host_uri_result",id:t,...r})}catch(e){console.error("Failed to send host URI result:",e)}},[ry]),nB=(0,i.useCallback)(async(e,t,r,n)=>{let a=tR.current;if(!a||!ry(a))return;let i=r.replace(/^pi-web:\/\//i,"")||"";if("clipboard"===i){if("read"===t){if("u"<typeof navigator||!navigator.clipboard?.readText)return void await nN(a,e,{isError:!0,error:"Clipboard read is not available in this browser"});try{let t=await navigator.clipboard.readText();await nN(a,e,{content:t||"(clipboard is empty)",contentType:"text/plain"})}catch{await nN(a,e,{isError:!0,error:"Clipboard read was denied. Click into the omp-web window and try again."})}return}if("u">typeof navigator&&navigator.clipboard?.writeText)try{await navigator.clipboard.writeText(n??""),await nN(a,e,{});return}catch{await nN(a,e,{isError:!0,error:"Clipboard write failed in this browser"});return}return void await nN(a,e,{isError:!0,error:"Clipboard write is not available in this browser"})}await nN(a,e,{isError:!0,error:`Unknown pi-web resource: ${i}`})},[ry,nN]),nH=(0,i.useCallback)(async(e,t)=>{let r=tR.current;if(r&&ry(r))try{await (0,tf.$)(r,{type:"extension_ui_input",id:e.id,data:t})}catch(e){console.error("Failed to send extension custom UI input:",e)}},[ry]),n_=(0,i.useCallback)(e=>{ta({type:"remove",id:e})},[]),nD=(0,i.useCallback)(async e=>{let t,r=setTimeout(()=>{rb({type:"info",message:(0,u.Tl)("agentSession.startingAgent")})},4e3);try{t=await nR(e)}finally{clearTimeout(r)}if("connected"===t.status||t.source.readyState===EventSource.OPEN)return;let n=nl.isCurrent(e,t.source);throw tk.current===t.source&&(tk.current=null),n?nl.invalidate(e,t.source):t.source.close(),new rH(t.status)},[rb,nR,nl]),nO=(0,i.useCallback)(t=>{switch(t.method){case"select":case"confirm":case"input":case"editor":tl(t);break;case"cancel":tl(e=>e?.id===t.targetId?null:e);break;case"open_url":{let e=t.launchUrl??t.url,r=r_(e)?e:"";if(r)try{window.open(r,"_blank","noopener,noreferrer")}catch{}rb({id:t.id,type:"info",message:r?t.instructions?`${t.instructions}
17
- ${r}`:(0,u.Tl)("agentSession.openInBrowser",{url:r}):(0,u.Tl)("agentSession.unsafeUrlBlocked")});break}case"notify":rb({id:t.id,message:t.message,type:t.notifyType??"info"});break;case"setStatus":tp(e=>{let r=e.filter(e=>e.key!==t.statusKey);return t.statusText?[...r,{key:t.statusKey,text:t.statusText}]:r});break;case"setWidget":th(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":tc(e=>t.closed?e?.id===t.id?null:e:t)}},[rb,e.chatInputRef]),nP=(0,i.useCallback)(async(e=tR.current,t)=>{if(void 0!==t&&t4.current!==t)return;let r=t7.current,n=t9.current;try{e&&await nj(e,!1,!0,t)}finally{if(void 0!==t&&t4.current!==t||(re.current=null,!t_.current))return;!r&&n&&rB(n)&&(rb({type:"error",message:n}),e_.oR.error((0,u.Tl)("agentSession.quotaReached"),n,{timeout:12e3})),t_.current=!1,P(!1),e9(null),eH(null),e&&(ne(e),r7(e)),D({type:"end"}),t7.current=!1,t9.current=null,a?.()}},[rb,nj,a,r7,ne]),nq=(0,i.useCallback)(async(e,t)=>{await et(800,void 0,void 0,tT.current.signal);let r=Date.now(),n=tE.current;for(;G.current&&tR.current===e&&t_.current&&Date.now()-r<2e4;){if(void 0!==t&&t4.current!==t)return;try{let r=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(r.ok){let a=await r.json();if(tR.current!==e||tE.current!==n)continue;let i=a.state;if(!a.running||!i||!i.isStreaming&&!i.isPromptRunning)return void await nP(e,t)}}catch{}await et(600,void 0,void 0,tT.current.signal)}},[nP]),nU=(0,i.useCallback)(async e=>{let t=tO.current+1;tO.current=t;let r=tE.current;for(;tD.current&&tO.current===t&&tR.current===e;){let n=tT.current.signal;if(await et(1e3,void 0,void 0,n),n.aborted||!tD.current||tO.current!==t||tR.current!==e)return;try{let n=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(!n.ok)continue;let a=await n.json();if(tR.current!==e||tE.current!==r||a.state?.isBashRunning)continue;if(await nj(e),tO.current!==t||tR.current!==e)return;tD.current=!1,U(!1),K(null);return}catch{}}},[nj]),nV=(0,i.useCallback)((e,t)=>{if(!G.current||tR.current!==e||!tL.current)return;let r=t.state;t.running&&r&&(r.isStreaming||r.isPromptRunning)&&(t_.current=!0,P(!0),e9(r.isStreaming?{kind:"waiting_model"}:{kind:"running_command"}),D({type:"start"}),nR(e),nE(e),nz(e),nt(e),!r.isStreaming&&r.isPromptRunning&&nq(e)),r?.isBashRunning&&(tD.current=!0,U(!0),nU(e)),r&&rY(r,e,tA.current),rJ(e)},[rY,nR,rJ,nE,nz,nt,nU,nq]),nK=(0,i.useCallback)(async()=>{let e=tR.current;if(!e||x)return null;let t=t$.current+1;t$.current=t,tE.current=t;let r=tA.current,n={...tF.current,runtime:"loading"};tF.current=n,tL.current=!1,I(n),T(null);let a=await nk(e,t,r);return a&&nV(e,a),a},[x,nk,nV]),nG=(0,i.useCallback)(async e=>{if(!t_.current||!ry(e))return;let t=t4.current,r=tE.current;try{let n=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(!n.ok)return;let a=await n.json();if(t4.current!==t||tR.current!==e||tE.current!==r)return;let i=a.state;if(tB.current=i?.isCompacting??!1,e2(i?.isCompacting??!1),i?.todoPhases!==void 0&&tx(i.todoPhases??[]),rY(i,e,tA.current),ne(e),a.running&&i&&(i.isStreaming||i.isPromptRunning||i.isCompacting)||!t_.current)return;i?(void 0!==i.contextUsage&&eq(i.contextUsage??null),void 0!==i.systemPrompt&&eV(i.systemPrompt??null),void 0!==i.extensionStatuses&&tp(i.extensionStatuses??[]),void 0!==i.extensionWidgets&&th(i.extensionWidgets??[])):eq(null),await nP(e,t)}catch{}},[rY,ry,nP,ne,eq]);(0,i.useEffect)(()=>{if(O)return ee(()=>{let e=tR.current;e&&nG(e)},15e3)},[O,nG]),(0,i.useEffect)(()=>{let e=()=>{Z()&&(tI.current&&(clearTimeout(tI.current),tI.current=null),nr())},t=()=>{if(Z())return;let e=tR.current;if(!e)return;let t=tA.current,r=tE.current,n=tk.current??nl.currentSource(e);(t_.current||tD.current||n)&&nD(e),(async()=>{var n,a;n=tR.current,a=tA.current,n===e&&a===t&&tE.current===r&&await nG(e)})(),nn(e)},r=()=>{"visible"===document.visibilityState?t():e()};return e(),document.addEventListener("visibilitychange",r),window.addEventListener("online",t),()=>{document.removeEventListener("visibilitychange",r),window.removeEventListener("online",t)}},[nD,nl,nG,nr,nn]),(0,i.useEffect)(()=>{t_.current=O},[O]),tU.current=(0,i.useCallback)(e=>{switch(e.type){case"agent_start":if(t_.current){if(!tH.current)break}else t4.current+=1;tH.current=!1,t_.current=!0,P(!0),e9({kind:"waiting_model"}),D({type:"start"}),t7.current=!1,t9.current=null;break;case"agent_end":{if(!1===e.isTerminal)break;if(tH.current){tH.current=!1;break}if(!t_.current)break;let t=t7.current,r=t9.current,n="string"==typeof e.errorMessage?e.errorMessage.trim():"",i="string"==typeof e.message?e.message.trim():"",o=n||i;if(o&&rB(o)&&(t9.current=o),t)o&&rB(o)&&(rb({type:"error",message:o}),e_.oR.error((0,u.Tl)("agentSession.quotaReached"),o,{timeout:12e3}));else if(r&&rB(r)){let e=r||o;rb({type:"error",message:e}),e_.oR.error((0,u.Tl)("agentSession.quotaReached"),e,{timeout:12e3})}else if(o){let e=rB(o)?"error":"warning";rb({type:e,message:o}),"error"===e&&e_.oR.error((0,u.Tl)("agentSession.requestFailed"),o,{timeout:1e4})}let s=tR.current,l=t4.current;if(t_.current=!1,P(!1),e9(null),eH(null),s&&ne(s),D({type:"end"}),t7.current=!1,t9.current=null,s){nj(s,!1,!1,l),r7(s);let e=tE.current,t=nv();fetch(`/api/agent/${encodeURIComponent(s)}`).then(e=>e.ok?e.json():null).then(r=>{!r?.state?.model||tR.current!==s||t4.current!==l||tE.current!==e||ny(rL(r.state.model),t)&&(r.state?.contextUsage!==void 0&&eq(r.state.contextUsage??null),r.state?.systemPrompt!==void 0&&eV(r.state.systemPrompt||null),r.state?.fastModeEnabled!==void 0&&eC(r.state.fastModeEnabled),eM(r.state?.fastModeActive),r.state?.extensionStatuses!==void 0&&tp(r.state.extensionStatuses??[]),r.state?.extensionWidgets!==void 0&&th(r.state.extensionWidgets??[]),r.state?.todoPhases!==void 0&&tx(r.state.todoPhases??[]),rY(r.state,s,tA.current),rJ(s))}).catch(()=>{})}a?.();break}case"message_queue_update":rQ(e.queue);break;case"prompt_result":if(!1!==e.agentInvoked||!t_.current)break;nP(tR.current,t4.current);break;case"prompt_error":{let t=e.errorMessage?.trim()??(0,u.Tl)("agentSession.commandFailed");rb({type:"error",message:t}),rB(t)&&(t9.current=t,e_.oR.error((0,u.Tl)("agentSession.quotaReached"),t,{timeout:12e3})),t_.current&&nP(tR.current,t4.current);break}case"notice":{let t=e.level,r=e.message?.trim()??"";if(/^xd:\/\/:\s*mounted\s+mcp__/i.test(r))e_.oR.info("MCP tools updated",r,{clamp:!0});else{let e="error"===t?"error":"warning"===t?"warning":"info";rb({type:e,message:r}),rB(r)&&(t9.current=r,"error"!==e&&rb({type:"error",message:r}),e_.oR.error((0,u.Tl)("agentSession.quotaReached"),r,{timeout:12e3}))}break}case"command_output":{let t=e.text?.trim()??"";/^xd:\/\/:\s*mounted\s+mcp__/i.test(t)?e_.oR.info("MCP tools updated",t,{clamp:!0}):t&&(rb({type:"info",message:t}),rB(t)&&(t9.current=t,e_.oR.error((0,u.Tl)("agentSession.quotaReached"),t,{timeout:12e3})));break}case"thinking_level_changed":ek(rF(e.configured??e.thinkingLevel));break;case"model_changed":{let e=tR.current;if(!e)break;let t=tE.current,r=nv();fetch(`/api/agent/${encodeURIComponent(e)}`).then(e=>e.ok?e.json():null).then(n=>{!n?.state?.model||tR.current!==e||tE.current!==t||ny(rL(n.state.model),r)&&(void 0!==n.state.thinkingLevel&&ej(n.state.thinkingLevel),void 0!==n.state.fastModeEnabled&&eC(n.state.fastModeEnabled),eM(n.state.fastModeActive),void 0!==n.state.autoRetryEnabled&&e$(n.state.autoRetryEnabled),void 0!==n.state.interruptMode&&eR(n.state.interruptMode),void 0!==n.state.autoCompactionEnabled&&eA(n.state.autoCompactionEnabled),void 0!==n.state.steeringMode&&eF(n.state.steeringMode),void 0!==n.state.followUpMode&&eN(n.state.followUpMode))}).catch(()=>{});break}case"config_update":{let t=e.model;t&&ny(rL(t)),void 0!==e.thinkingLevel&&ej(e.thinkingLevel);break}case"available_commands_update":te((e.commands??[]).map(rG).filter(e=>null!==e));break;case"message_start":case"message_update":{if(!t_.current)break;let t=e.message;if(t?.role==="user")break;if(t){t7.current=!0;let e=rP(t);e&&rB(e)&&(t9.current=e.slice(0,800)),D({type:"update",message:t6(t)})}e9(null);break}case"message_end":{if(!t_.current)break;let t=e.message;if(t&&(t7.current=!0,"assistant"===t.role||"custom"===t.role)){let e=rP(t);e&&rB(e)&&(t9.current=e.slice(0,800))}if(t&&"user"===t.role){let e=t6(t),r=rU(e),n=re.current;re.current=null,E(t=>{let a=t[t.length-1];return n&&a?.role==="user"&&rU(a)===n?n===r?t:[...t.slice(0,-1),e]:[...t,e]})}else t?.role==="toolResult"?E(e=>{let r=e.findIndex(e=>"toolResult"===e.role&&e.toolCallId===t.toolCallId);if(r<0)return[...e,t];let n=[...e];return n[r]=t,n}):t?.role==="custom"&&"xdev-mount-notice"===t.customType?e_.oR.info("MCP tools updated",rP(t).trim()||"The MCP tool inventory changed.",{clamp:!0}):t&&E(e=>[...e,t6(t)]);D({type:"reset"}),e9({kind:"waiting_model"});break}case"tool_execution_update":{if(!t_.current||"string"!=typeof e.toolCallId)break;let t=e.partialResult;if("object"!=typeof t||null===t||!("content"in t)||!Array.isArray(t.content))break;let r=[];for(let e of t.content)"object"==typeof e&&null!==e&&"type"in e&&("text"===e.type&&"text"in e&&"string"==typeof e.text?r.push({type:"text",text:e.text}):"image"===e.type&&"data"in e&&"string"==typeof e.data&&"mimeType"in e&&"string"==typeof e.mimeType&&r.push({type:"image",data:e.data,mimeType:e.mimeType}));let n={role:"toolResult",toolCallId:e.toolCallId,toolName:"string"==typeof e.toolName?e.toolName:void 0,content:r,..."details"in t?{details:t.details}:{}};t5.current.add(n),E(e=>{let t=e.findIndex(e=>"toolResult"===e.role&&e.toolCallId===n.toolCallId);if(t<0)return[...e,n];let r=e[t];if("toolResult"!==r.role||!t5.current.has(r))return e;let a=[...e];return a[t]=n,a});break}case"tool_execution_start":{if(!t_.current)break;let t=e.toolCallId,r=e.toolName;t7.current=!0,e9(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&&tR.current&&nG(tR.current),e9(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":tR.current&&nG(tR.current);break;case"auto_retry_start":{let t=e.errorMessage;eH({attempt:e.attempt,maxAttempts:e.maxAttempts,errorMessage:t}),t&&rB(t)&&(t9.current=t);break}case"auto_retry_end":eH(null);break;case"auto_compaction_start":e2(!0),e5(null),e3(null);break;case"auto_compaction_end":e2(!1),e.errorMessage?(e5(e.errorMessage),e3(null)):e.aborted||e.skipped||(e3(rV(e.result,"auto")),tR.current&&nj(tR.current));break;case"host_tool_call":{let t="string"==typeof e.id?e.id:"",r="string"==typeof e.toolName?e.toolName:"",n=L(e.arguments)?e.arguments:{};t&&r&&nL(t,r,n);break}case"host_uri_request":{let t="string"==typeof e.id?e.id:"",r="string"==typeof e.url?e.url:"",n="write"===e.operation?"write":"read",a="string"==typeof e.content?e.content:void 0;t&&r&&nB(t,n,r,a);break}case"subagent_lifecycle":case"subagent_progress":case"subagent_event":r3(e);break;case"extension_ui_pending":{if(!Array.isArray(e.ids)||!e.ids.every(e=>"string"==typeof e))break;let t=new Set(e.ids);tl(e=>e&&!t.has(e.id)?null:e);break}case"extension_ui_request":nO(e)}},[rb,rY,rQ,rJ,nP,nO,nL,nB,nj,r3,a,nG,ny,nv,r7,ne,eq,ej,ek]);let nY=(0,i.useCallback)(async(n,a)=>{let i=n.trim();if(!i&&!a?.length||!ry()||t_.current||tD.current)return!1;let o=!a?.length&&i.startsWith("/");if(!a?.length&&i.startsWith("!")){let e=i.startsWith("!!"),t=(e?i.slice(2):i.slice(1)).trim();return!!t&&(await tJ.current?.(t,e),!0)}let s=t4.current+1,{userMsg:l,piImages:c}=rK(n,a);E(e=>[...e,l]),re.current=rU(l),t4.current=s,t_.current=!0,P(!0),e9(o?{kind:"running_command"}:{kind:"waiting_model"}),D({type:"start"}),tK.current=!0,tY.current=!0,tQ.current=0;try{let e=null;if(x&&r){let t=tR.current??await t1.current,r=t??await nI();r&&(e=r,nC(1,n),ep&&(eX(ep),t&&await (0,tf.$)(r,{type:"set_model",provider:ep.provider,modelId:ep.modelId})),await nD(r),ne(r),await (0,tf.$)(r,{type:"prompt",message:n,...c?.length?{images:c}:{}}))}else t&&(e=t.id,await nD(t.id),ne(t.id),nE(t.id),nz(t.id),await (0,tf.$)(t.id,{type:"prompt",message:n,...c?.length?{images:c}:{}}));return o&&e&&nq(e,s),!0}catch(r){console.error("Failed to send message:",r);let t=re.current;return t&&E(e=>{let r=e[e.length-1];return r?.role==="user"&&rU(r)===t?e.slice(0,-1):e}),rb({type:"error",message:r instanceof rH?r.message:(0,u.Tl)("agentSession.sendFailed",{detail:r instanceof Error?r.message:String(r)})}),n&&e.chatInputRef?.current?.insertIfEmpty(n),re.current=null,t_.current=!1,P(!1),e9(null),D({type:"end"}),!1}},[ry,x,r,ep,t,nI,nD,nC,nq,rb,e.chatInputRef,ne,nE,nz]),nJ=(0,i.useCallback)(async(e,t)=>{let r=e.trim();if(!r&&!t?.length)return!1;let n=tR.current;if(!n||!ry(n)||!t_.current)return!1;let{userMsg:a,piImages:i}=rK(e,t);E(e=>[...e,a]),re.current=rU(a),tH.current=!0,tK.current=!0,tY.current=!0,tQ.current=0;try{return await nD(n),ne(n),await (0,tf.$)(n,{type:"abort_and_prompt",message:r,...i?.length?{images:i}:{}}),!0}catch(t){console.error("Failed to interrupt and reply:",t),tH.current=!1;let e=re.current;return e&&E(t=>{let r=t[t.length-1];return r?.role==="user"&&rU(r)===e?t.slice(0,-1):t}),re.current=null,rb({type:"error",message:t instanceof Error?t.message:String(t)}),!1}},[rb,ry,nD,ne]);tJ.current=(0,i.useCallback)(async(r,n)=>{if(!ry()||t_.current||tD.current)return;let a=`${n?"!!":"!"}${r}`;tD.current=!0,K({command:r,excludeFromContext:n}),U(!0);try{let e=tR.current??t?.id??await nI();if(!e)throw Error((0,u.Tl)("agentSession.shellSessionFailed"));await (0,tf.$)(e,{type:"bash",command:r,excludeFromContext:n}),await nj(e),nC(1,a)}catch(t){console.error("Failed to execute shell command:",t),rb({type:"error",message:t instanceof Error?t.message:String(t)}),e.chatInputRef?.current?.insertIfEmpty(a)}finally{tD.current=!1,K(null),U(!1)}},[rb,ry,nI,nj,e.chatInputRef,nC,t]);let nQ=(0,i.useCallback)(async()=>{let e=tR.current;if(e&&ry(e)){if(tD.current){try{await (0,tf.$)(e,{type:"abort_bash"})}catch(e){console.error("Failed to abort bash:",e)}return}try{await (0,tf.$)(e,{type:"abort"})}catch(e){console.error("Failed to abort:",e)}}},[ry]),nZ=(0,i.useCallback)(async e=>{if(tD.current)return;let t=tR.current;if(t&&ry(t)){eY(e);try{let{cancelled:r,newSessionId:n}=await (0,tf.$)(t,{type:"fork",entryId:e})??{};!r&&n&&s?.(n)}catch(e){console.error("Fork failed:",e)}finally{eY(null)}}},[ry,s]),nX=(0,i.useCallback)(async e=>{if(tD.current||t_.current)return;let t=tR.current;t&&ry(t)&&(W(e),await nS(t,e))},[ry,nS]),n0=(0,i.useCallback)(async e=>{if(tD.current||t_.current)return;let t=tR.current;t&&ry(t)&&(W(e),await nS(t,e))},[ry,nS]),n1=(0,i.useCallback)(async(e,t)=>{if(x){em({provider:e,modelId:t}),eX({provider:e,modelId:t});let r=tR.current??await t1.current;if(!r)return;try{await (0,tf.$)(r,{type:"set_model",provider:e,modelId:t})}catch(e){console.error("Failed to set model:",e)}return}let r=tR.current;if(r&&ry(r))try{await (0,tf.$)(r,{type:"set_model",provider:e,modelId:t}),eQ({provider:e,modelId:t}),nb(r)}catch(e){console.error("Failed to set model:",e)}},[ry,x,em,nb]),n2=(0,i.useCallback)(async e=>{if(!x&&!ry())return;let t=tR.current??await t1.current??await nI();if(t)try{let r=await (0,tf.$)(t,{type:"set_fast_mode",enabled:e});eC(r?.enabled??e),eM(r?.active),nb(t)}catch(e){console.error("Failed to change Fast mode:",e),rb({type:"error",message:e instanceof Error?e.message:String(e)})}},[rb,ry,nI,x,nb]),n4=(0,i.useCallback)(async e=>{if(!x&&!ry())return;let t=tR.current??await t1.current;if(t){e$(e);try{await (0,tf.$)(t,{type:"set_auto_retry",enabled:e})}catch(t){e$(t=>t===e?!e:t),rb({type:"error",message:t instanceof Error?t.message:String(t)})}}},[rb,ry,x]),n5=(0,i.useCallback)(async e=>{if(!x&&!ry())return;let t=tR.current??await t1.current;if(t){eR(e);try{await (0,tf.$)(t,{type:"set_interrupt_mode",mode:e})}catch(e){console.error("Failed to change interrupt mode:",e),rb({type:"error",message:e instanceof Error?e.message:String(e)})}}},[rb,ry,x]),n6=(0,i.useCallback)(async e=>{if(!x&&!ry())return;let t=tR.current??await t1.current;if(t){eA(e);try{await (0,tf.$)(t,{type:"set_auto_compaction",enabled:e})}catch(e){console.error("Failed to change auto-compaction:",e),rb({type:"error",message:e instanceof Error?e.message:String(e)})}}},[rb,ry,x]),n3=(0,i.useCallback)(async e=>{if(!x&&!ry())return;let t=tR.current??await t1.current;if(t){eF(e);try{await (0,tf.$)(t,{type:"set_steering_mode",mode:e})}catch(e){console.error("Failed to change steering mode:",e),rb({type:"error",message:e instanceof Error?e.message:String(e)})}}},[rb,ry,x]),n8=(0,i.useCallback)(async e=>{if(!x&&!ry())return;let t=tR.current??await t1.current;if(t){eN(e);try{await (0,tf.$)(t,{type:"set_follow_up_mode",mode:e})}catch(e){console.error("Failed to change follow-up mode:",e),rb({type:"error",message:e instanceof Error?e.message:String(e)})}}},[rb,ry,x]),n9=(0,i.useCallback)(async()=>{let e=tR.current;if(e&&ry(e)&&!t_.current&&!tD.current)try{await (0,tf.$)(e,{type:"cycle_model"}),nb(e)}catch(e){console.error("Failed to cycle model:",e),rb({type:"error",message:e instanceof Error?e.message:String(e)})}},[rb,ry,nb]),n7=(0,i.useCallback)(async()=>{let e=tR.current;if(e&&ry(e))try{await (0,tf.$)(e,{type:"cycle_thinking_level"}),nb(e)}catch(e){console.error("Failed to cycle thinking level:",e),rb({type:"error",message:e instanceof Error?e.message:String(e)})}},[rb,ry,nb]),ae=(0,i.useCallback)(async()=>{let e=tR.current;if(e&&ry(e)){eH(null);try{await (0,tf.$)(e,{type:"abort_retry"})}catch(e){console.error("Failed to abort retry:",e),rb({type:"error",message:e instanceof Error?e.message:String(e)})}}},[rb,ry]),at=(0,i.useCallback)(async()=>{let e=tR.current;if(e&&ry(e)&&!tB.current&&!t_.current&&!tD.current)try{await (0,tf.$)(e,{type:"handoff"}),await nj(e,!0),nb(e)}catch(e){rb({type:"error",message:e instanceof Error?e.message:String(e)})}},[rb,ry,nj,nb]),ar=(0,i.useCallback)(async()=>{let e=tR.current;if(e&&ry(e)&&!tB.current&&!e0){tB.current=!0,e2(!0),e5(null),e3(null);try{let t=await (0,tf.$)(e,{type:"compact"});e3(rV(t,"manual")),await nj(e,!0),nb(e)}catch(e){e5(e instanceof Error?e.message:String(e)),e3(null)}finally{tB.current=!1,e2(!1)}}},[ry,e0,nj,nb]),an=(0,i.useCallback)(async(e,n=!1)=>{let a=tz.current+1;tz.current=a;let i=r??t?.cwd??"",o=()=>!e?.aborted&&tz.current===a&&(r??t?.cwd??"")===i;en(!0);try{let e=await (0,rE.aQ)(i,n?{force:!0}:void 0);if(!o())return;J(e.models),ei(e.modelError??null),eu(e.thinkingLevels??{}),ed(e.thinkingLevelMaps??{});let t=e.modelList??[];if(X(t),x){let r=(e.defaultModel?t.find(t=>t.id===e.defaultModel?.modelId&&t.provider===e.defaultModel?.provider):void 0)??t[0];ef(r?{provider:r.provider,modelId:r.id}:null)}}catch(e){if(!o())return;ei(e instanceof Error?e.message:String(e))}finally{if(!o())return;en(!1)}},[x,r,t?.cwd]),aa=(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,a=n.trim(),i=tR.current??await nI(),o=e=>(e.handled&&(e.error?rb({type:"error",message:e.error}):"openSessionStats"!==e.action&&rb({type:"success",message:e.message??(0,u.Tl)("agentSession.commandCompleted")})),e);if(!i||!ry(i))return o({handled:!0,error:M??"Session runtime is not ready."});try{switch(r){case"compact":{if(!i||tB.current||e0)return o({handled:!0,error:(0,u.Tl)("agentSession.noSessionToCompact")});tB.current=!0,e2(!0),e5(null),e3(null);let e=await (0,tf.$)(i,{type:"compact",...a?{customInstructions:a}:{}});return e3(rV(e,"manual")),await nj(i,!0),tB.current=!1,e2(!1),nC(),o({handled:!0,message:(0,u.Tl)("agentSession.compactedContext")})}case"reload":if(!i)return o({handled:!0,error:(0,u.Tl)("agentSession.noSessionToReload")});return await (0,tf.$)(i,{type:"reload"}),await Promise.all([nj(i,!1,!0),nT(),an(void 0,!0)]),o({handled:!0,message:(0,u.Tl)("agentSession.reloadedResources")});case"name":if(!i)return o({handled:!0,error:(0,u.Tl)("agentSession.noSessionToName")});if(!a)return o({handled:!0,error:(0,u.Tl)("agentSession.nameUsage")});return await (0,tf.$)(i,{type:"set_session_name",name:a}),await nj(i),nC(),o({handled:!0,message:(0,u.Tl)("agentSession.sessionRenamed",{name:a})});case"session":{if(!i)return o({handled:!0,error:(0,u.Tl)("agentSession.noActiveSession")});let e=await (0,tf.$)(i,{type:"get_session_stats"});return e&&to(e),m?.(),o({handled:!0,action:"openSessionStats"})}case"agents":return h?.("agents"),o({handled:!0,action:"openSettings"});case"copy":{if(!i)return o({handled:!0,error:(0,u.Tl)("agentSession.noActiveSession")});let e=await (0,tf.$)(i,{type:"get_last_assistant_text"}),t=e?.text??"";if(!t)return o({handled:!0,error:(0,u.Tl)("agentSession.noMessageToCopy")});return await navigator.clipboard.writeText(t),o({handled:!0,message:(0,u.Tl)("agentSession.copiedLastMessage")})}default:{let t=eG(e);if("not-web"===t.kind)return{handled:!1};if("usage-error"===t.kind)return o({handled:!0,error:(0,u.Tl)("agentSession.commandRequiresArgs",{command:t.command,usage:(0,u.Tl)(t.argumentHintKey)})});if("plan"===r&&tw({objective:a}),!await nY(t.prompt))return"plan"===r&&tw(null),{handled:!0,retainInput:!0};if("goal"===r){let e=function(e,t=Date.now()){return{objective:e.trim(),startedAt:t}}(a);ty(e);let t=tR.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&&(tB.current=!1,e2(!1))}},[rb,ry,nI,nY,e0,an,nj,nT,nC,h,m,M]),ai=(0,i.useCallback)((e,t,r)=>rZ(e,t,r,nD),[rZ,nD]),ao=(0,i.useCallback)(async()=>{let e=tR.current;if(e&&ry(e))try{await (0,tf.$)(e,{type:"abort_compaction"})}catch(e){console.error("Failed to abort compaction:",e)}},[ry]),as=(0,i.useCallback)(async e=>{if(!ry())return;let t=eb.current;ek(e);let r=tR.current??await t1.current;if(r)try{await (0,tf.$)(r,{type:"set_thinking_level",level:e}),nb(r)}catch(r){eb.current===e&&ek(t),console.error("Failed to set thinking level:",r)}},[ry,nb,ek]),al=(0,i.useCallback)(async e=>{!ry()||(nu(e),function(e,t=rx()){if(t)try{t.setItem(rg,e)}catch{}}(e),(tR.current??await t1.current)&&rb({type:"info",message:(0,u.Tl)("agentSession.toolPresetNotice")}))},[nu,rb,ry]),au=(0,i.useCallback)(e=>{var t;let r,n=t0.current,a=tX.current;if(!n||!a)return;let i=r$(n),o=(r="initial"===(t={following:"initial"===e||"user-send"===e||tY.current,intent:e,scrollTop:n.scrollTop,nextScrollTop:i,reducedMotion:g}).intent||"user-send"===t.intent,(t.following||r)&&t.scrollTop!==t.nextScrollTop?"follow-stream"===t.intent||"initial"===t.intent||t.reducedMotion?{mode:"assign"}:{mode:"into-view",behavior:"smooth"}:{mode:"skip"});(function(e){if("skip"===e.decision.mode)return{wrote:!1,method:"none"};if("assign"===e.decision.mode){let t=r$(e.container);return e.container.scrollTop===t?{wrote:!1,method:"none"}:(e.container.scrollTop=t,{wrote:!0,method:"scrollTop"})}return e.end.scrollIntoView({block:"nearest",behavior:e.decision.behavior??"smooth"}),{wrote:!0,method:"scrollIntoView"}})({container:n,end:a,decision:o}).wrote&&(tZ.current=Date.now()+700)},[g]),ac=(0,i.useCallback)(e=>{e instanceof KeyboardEvent&&(!rN.has(e.key)||e.target instanceof Element&&e.target.closest("input, textarea, [contenteditable='true']"))||(tQ.current=Date.now()+1200)},[]),ad=(0,i.useCallback)(()=>{let e=Date.now()<=tQ.current;if(!e&&Date.now()<tZ.current||!e)return;let t=t0.current,r=tX.current;t&&r&&(tY.current=r.getBoundingClientRect().bottom-t.getBoundingClientRect().bottom<=24)},[]),ap=(0,i.useCallback)(()=>{tO.current+=1,rv.current?.reset();let e=tk.current;nl.invalidate(),e&&e.readyState!==EventSource.CLOSED&&e.close(),tk.current=null,tI.current&&(clearTimeout(tI.current),tI.current=null),tM.current=0,r9(),tT.current.abort(),tT.current=new AbortController,rq()},[rq,r9,nl]),am=(0,i.useRef)(nj);am.current=nj;let ah=(0,i.useRef)(nV);ah.current=nV,(0,i.useEffect)(()=>{let e=t?.id??null;if(e){tR.current=e;let t=am.current,r=ah.current;t(e,!0,!0).then(t=>{t&&r(e,t)})}else tR.current=null;return()=>{(null===tR.current||tR.current!==tW.current)&&(r8(),ap(),z(null),tR.current=null)}},[t?.id,ap,r8]),(0,i.useEffect)(()=>{if(x||!t||tR.current!==t.id||"ready"!==tF.current.history)return;let e=rW();if(!e)return;let r=function(e){let t=rk(e.origin),r=rw(e.session.id);if(!t||!r)return null;let n=e.messages.map(rC).filter(e=>null!==e).slice(-50),a=rI(e.session.title??e.session.name),i=rI(e.session.cwd),o=rw(e.leafId),s="number"==typeof e.updatedAt&&Number.isFinite(e.updatedAt)?e.updatedAt:Date.now(),l={id:r,messages:n};return void 0!==a&&(l.title=a),void 0!==i&&(l.cwd=i),void 0!==o&&(l.leafId=o),{version:1,origin:t,updatedAt:s,session:l}}({origin:e,session:{id:t.id,title:t.name,cwd:t.cwd},leafId:R,messages:A});r&&function(e){let t=rT(e);if(!t)return;let r=function(e){let t=rT(e);if(!t)return null;try{return JSON.stringify(t)}catch{return null}}(t);if(r){try{window.localStorage.setItem(rA(t.origin,t.session.id),r)}catch{}try{let e=window.OmpguiRemoteReplica;e&&e.storeSnapshot(r)}catch{}}}(r)},[R,x,A,t,C.history]),(0,i.useEffect)(()=>{d?.(eU)},[eU,d]),(0,i.useEffect)(()=>(p?.(nM),()=>p?.(null)),[nM,p]),(0,i.useEffect)(()=>{c&&c(y?.tree??[],R,n0)},[y?.tree,R,n0,c]),(0,i.useEffect)(()=>(window.addEventListener("keydown",ac),window.addEventListener("pointerdown",ac,{passive:!0}),()=>{window.removeEventListener("keydown",ac),window.removeEventListener("pointerdown",ac)}),[ac]),(0,i.useEffect)(()=>{let e=t0.current;if(e)return e.addEventListener("wheel",ac,{passive:!0}),e.addEventListener("touchstart",ac,{passive:!0}),e.addEventListener("scroll",ad,{passive:!0}),()=>{e.removeEventListener("wheel",ac),e.removeEventListener("touchstart",ac),e.removeEventListener("scroll",ad)}},[A.length,w,ad,ac]);let af=(0,i.useRef)(null),ag=(0,i.useRef)(_.isStreaming);ag.current=_.isStreaming;let ax=(0,i.useRef)(A.length);ax.current=A.length;let av=(0,i.useRef)(w);av.current=w;let ay=F.length>0?F[F.length-1]:"",ab=(0,i.useMemo)(()=>{var e;return[(e={loading:w,messageCount:A.length,lastEntryId:ay,streaming:_.isStreaming,streamRevision:_.revision,agentRunning:O,agentPhase:e8?"running_tools"===e8.kind?`running_tools:${e8.tools.map(e=>e.name).join(",")}`:e8.kind:null,widgetSignature:tm.map(e=>`${e.key}:${e.lines.join("\n")}`).join(","),isCompacting:e0,retrySignature:eB?`${eB.attempt}/${eB.maxAttempts}`:"",activeSubagentCount:r6,todoSignature:tg?.length?tg.map(e=>{let t=Array.isArray(e.tasks)?e.tasks:[];return`${e.name??""}:${t.map(e=>e.status??"").join("")}:${t.length}`}).join(","):""}).loading?"1":"0",String(e.messageCount),e.lastEntryId,e.streaming?"1":"0",String(e.streamRevision),e.agentRunning?"1":"0",e.agentPhase??"",e.widgetSignature,e.isCompacting?"1":"0",e.retrySignature,String(e.activeSubagentCount),e.todoSignature].join("\x1f")},[w,A.length,ay,_.isStreaming,_.revision,O,e8,tm,e0,eB,r6,tg]),aw=(0,i.useRef)(null);return(0,i.useEffect)(()=>{let e=t?.id??null;aw.current!==e&&(aw.current=e,tV.current=!1,tY.current=!0,tK.current=!1,null!==af.current&&(cancelAnimationFrame(af.current),af.current=null))},[t?.id]),(0,i.useEffect)(()=>{if(0!==ax.current||ag.current)if(tK.current)tK.current=!1,tV.current=!0,au(ag.current||t_.current?"follow-stream":"user-send");else if(tV.current)tY.current&&null===af.current&&(af.current=requestAnimationFrame(()=>{af.current=null,tY.current&&au(t_.current||ag.current?"follow-stream":"follow-idle")}));else{if(av.current)return;tV.current=!0,au("initial")}},[ab,au]),(0,i.useEffect)(()=>(G.current=!0,()=>{G.current=!1,ap(),null!==af.current&&cancelAnimationFrame(af.current)}),[ap]),(0,i.useEffect)(()=>{let e=new AbortController;return an(e.signal,(l??0)>0).catch(e=>{if(e instanceof DOMException&&"AbortError"===e.name)return}),()=>e.abort()},[an,l]),(0,i.useEffect)(()=>{if(!e4)return;let e=setTimeout(()=>e5(null),3e3);return()=>clearTimeout(e)},[e4]),(0,i.useEffect)(()=>{if(!e6)return;let e=setTimeout(()=>e3(null),6e3);return()=>clearTimeout(e)},[e6]),(0,i.useEffect)(()=>{if(0===tn.visible.length)return;let e=tn.visible.find(e=>e.exiting);if(e){let t=setTimeout(()=>{ta({type:"remove",id:e.id})},180);return()=>clearTimeout(t)}let t=tn.visible[0];if(!t)return;let r=setTimeout(()=>{ta({type:"mark_oldest_exiting"})},"error"===t.type?3e4:5e3);return()=>clearTimeout(r)},[tn.visible]),(0,i.useEffect)(()=>{to(null)},[A.length,nh?.tokens,nh?.percent,nh?.contextWindow]),{data:y,loading:w,error:j,sessionReadiness:C,runtimeError:M,runtimeReady:nc,activeLeafId:R,messages:A,replicaPreview:$,entryIds:F,streamState:_,agentRunning:O,modelNames:Y,modelList:Q,modelsLoading:er,modelError:ea,modelThinkingLevels:el,modelThinkingLevelMaps:ec,newSessionModel:ep,toolPreset:eg,thinkingLevel:ev,fastModeEnabled:eS,fastModeActive:eI,autoRetryEnabled:eE,interruptMode:eT,autoCompactionEnabled:eW,steeringMode:ez,followUpMode:eL,liveModelMeta:eo,retryInfo:eB,contextUsage:nh,systemPrompt:eU,forkingEntryId:eK,isCompacting:e0,compactError:e4,compactResult:e6,currentModel:nd,displayModel:np,sessionStats:nf,slashCommands:e7,slashCommandsLoading:tt,queuedMessages:rS,queueEnqueuePending:rM,notices:tn.visible,dismissNotice:n_,extensionDialog:ts,extensionCustomUi:tu,extensionStatuses:td,extensionWidgets:tm,respondToExtensionUi:nW,sendExtensionCustomInput:nH,isAutoModelSelection:x&&null===ep,agentPhase:e8,subagents:r2,subagentEvents:r4,subagentTranscriptVersions:r5,activeSubagentCount:r6,currentTodoPhase:ng,todoPhases:tg,activeGoal:tv,activePlan:tb,isNew:x,sessionIdRef:tR,messagesEndRef:tX,scrollContainerRef:t0,pendingScrollToUserRef:tK,initialScrollDoneRef:tV,handleSend:nY,handleAbort:nQ,handleFork:nZ,handleNavigate:nX,handleModelChange:n1,handleFastModeChange:n2,handleAutoRetryChange:n4,handleInterruptModeChange:n5,handleAutoCompactionChange:n6,handleSteeringModeChange:n3,handleFollowUpModeChange:n8,handleCycleModel:n9,handleCycleThinkingLevel:n7,handleAbortRetry:ae,handleInterruptAndReply:nJ,handleCompact:ar,handleHandoff:at,handlePromptWithStreamingBehavior:ai,handleAbortCompaction:ao,retryRuntimeState:nK,handleRecallQueuedMessage:rX,handleDeleteQueuedMessage:r0,handlePromoteQueuedMessage:r1,handleBuiltinSlashCommand:aa,handleToolPresetChange:al,handleThinkingLevelChange:as,loadSlashCommands:nT,setActiveLeafId:W,setData:b,setMessages:E,dispatch:D,setAgentRunning:P,setForkingEntryId:eY,bashRunning:q,pendingBash:V,handleAgentEventRef:tU}}({session:e,newSessionCwd:t,advisorEnabled:r,onAgentEnd:R,onSessionCreated:l,onSessionForked:c,modelsRefreshKey:d,chatInputRef:m,onBranchDataChange:h,onSystemPromptChange:f,onSystemPromptLoaderChange:g,onSessionStatsPanelOpen:v,onOpenSettingsTab:y,onOpenFile:w}),e3=P||q;(0,i.useEffect)(()=>(k?.(D),()=>{k?.(!1)}),[k,D]),(0,i.useEffect)(()=>((0,a.G)(e3?eD:null),()=>(0,a.G)(null)),[e3,eD]),(0,i.useEffect)(()=>{if(!e)return;let t=e=>{if(!(e.metaKey||e.ctrlKey)||!e.altKey)return;let t=e.key.toLowerCase();if("m"===t){if(e.preventDefault(),e3)return;e2()}else"t"===t&&(e.preventDefault(),e4())};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[e,e3,e2,e4]);let e8=e?.id??(t?`new:${t}`:"empty"),[e9,e7]=(0,i.useState)(()=>tj(0,0,0)),te=(0,i.useCallback)((e,t)=>{let r=tj($.length,e,t);e7(e=>e===r?e:r)},[$.length]),[tt,tr]=(0,i.useState)(null),tn=ep?[ep.sessionId,ep.sessionFile??"",ep.sessionName??"",ep.userMessages,ep.assistantMessages,ep.toolCalls,ep.toolResults,ep.totalMessages,ep.tokens.input,ep.tokens.output,ep.tokens.cacheRead,ep.tokens.cacheWrite,ep.tokens.total,ep.cost??0].join("|"):null,ta=(0,i.useRef)(ep);ta.current=ep,(0,i.useEffect)(()=>{x?.(ta.current)},[tn,x]),(0,i.useEffect)(()=>()=>{x?.(null)},[x]);let ti=es?`${es.percent??"null"}|${es.contextWindow}|${es.tokens??"null"}`:null,to=(0,i.useRef)(es);to.current=es,(0,i.useEffect)(()=>{b?.(to.current)},[ti,b]),(0,i.useEffect)(()=>()=>{b?.(null)},[b]);let{isDragOver:ts,handleDragEnter:tl,handleDragOver:tu,handleDragLeave:tc,handleDrop:td}=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(rJ)&&(e.preventDefault(),n.current+=1,r(!0))},[]),o=(0,i.useCallback)(e=>{Array.from(e.dataTransfer.items).some(rJ)&&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=>{!e3&&D&&m?.current?.addFiles(e)},[D,e3,m])),tp=(0,i.useMemo)(()=>{let e=new Set,t=[];for(let r=$.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}($[r]);if(!(!n||e.has(n))&&(e.add(n),t.push(n),t.length>=50))break}return t.reverse()},[$]),tg=(0,i.useMemo)(()=>{let e=new Map,t=-1,r=new Map,n=0;return $.forEach((a,i)=>{"toolResult"===a.role&&e.set(a.toolCallId,a),nr(a)&&(t=i),("user"===a.role||"assistant"===a.role)&&r.set(i,n++)}),{toolResultsMap:e,lastAnchorIdx:t,visibleRefIndexByMessage:r}},[$]),tx=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}(tg.visibleRefIndexByMessage.size),tv=(0,i.useMemo)(()=>{let e=new Set;for(let t of $)if(t?.role==="assistant")for(let r of t.content??[])"toolCall"===r.type&&e.add(r.toolCallId);return e},[$]),ty=(0,i.useMemo)(()=>{if(eI?.kind!=="running_tools")return[];let e=new Set(tv),t=F.streamingMessage;if(t?.role==="assistant")for(let r of t.content??[])"toolCall"===r.type&&e.add(r.toolCallId);return eI.tools.filter(t=>!e.has(t.id))},[eI,tv,F.streamingMessage]),tb=eF&&0===$.length&&!F.isStreaming&&!e3,tw=e?.cwd??t??void 0,tS=ed?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}(J[`${ed.provider}:${ed.modelId}`],ed,ea):null,tC=ed?Q[`${ed.provider}:${ed.modelId}`]??null:null,tM=(0,n.jsx)(tm,{ref:m,onSend:eH,onAbort:eD,runtimeReady:D,onPromptWithStreamingBehavior:D&&P?eU:void 0,isStreaming:e3,model:ed,isAutoModelSelection:eC,modelNames:V,modelList:K,modelsLoading:G,modelError:Y,onModelChange:D?eq:void 0,onAbortCompaction:D?eV:void 0,isCompacting:eu,compactResult:ec,thinkingLevel:X,onThinkingLevelChange:D&&(e||eF)?eX:void 0,fastModeEnabled:er,fastModeActive:en,fastModeSupported:!!(ed&&K.some(e=>e.provider===ed.provider&&e.id===ed.modelId&&e.supportsFastMode)),onFastModeChange:D&&(e||eF)?e0:void 0,onAbortRetry:D&&e?e5:void 0,availableThinkingLevels:tS,thinkingLevelMap:tC,modelNameOverride:ea?.name??null,retryInfo:eo,activeGoal:eM,activePlan:eT,advisorEnabled:r,queuedMessages:ef,onRecallQueuedMessage:D?eK:void 0,onDeleteQueuedMessage:D?eY:void 0,onPromoteQueuedToSteer:D?eJ:void 0,queueEnqueuePending:eg,inputHistory:tp,contextUsage:es,sessionCost:ep?.cost??null,slashCommands:em,slashCommandsLoading:eh,onLoadSlashCommands:D?e6:void 0,onBuiltinCommand:D?eQ:void 0,onAudioUnlock:I,draftKey:e?.id??(t?`new:${t}`:void 0),cwd:e?.cwd??t}),tT=ek.filter(e=>"belowEditor"!==e.placement),tR=ek.filter(e=>"belowEditor"===e.placement);if(A)return(0,n.jsx)("div",{role:"status",className:"flex h-full items-center justify-center",style:{color:"var(--text-muted)"},children:j("chatWindow.loadingSession")});if(E)return(0,n.jsx)("div",{role:"alert",className:"flex h-full items-center justify-center",style:{color:"var(--accent-strong)",padding:"0 var(--space-6)",textAlign:"center",fontSize:"var(--text-base)"},children:E});let tW=eF||"ready"===H.runtime?null:(0,n.jsxs)("div",{role:"error"===H.runtime?"alert":"status","aria-live":"polite",style:{display:"flex",alignItems:"center",gap:10,margin:"0 auto var(--space-3)",maxWidth:744,padding:"8px 10px",border:"1px solid color-mix(in srgb, var(--status-warning) 35%, var(--border))",borderRadius:"var(--radius-control)",background:"color-mix(in srgb, var(--status-warning) 8%, var(--bg-panel))",color:"var(--text-muted)",fontSize:"var(--text-sm)"},children:[(0,n.jsx)("span",{style:{minWidth:0,flex:1,overflowWrap:"anywhere"},children:"error"===H.runtime?_?j("chatWindow.runtimeUnavailableDetail",{error:_}):j("chatWindow.runtimeUnavailable"):j("chatWindow.runtimePreparing")}),"error"===H.runtime&&(0,n.jsx)("button",{type:"button",onClick:()=>void O(),style:{flexShrink:0,padding:"4px 9px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg)",color:"var(--text)",cursor:"pointer",fontSize:"var(--text-sm)"},children:j("chatWindow.runtimeRetry")})]});return(0,n.jsxs)("div",{className:"relative flex h-full flex-col overflow-hidden",onDragEnter:tl,onDragOver:tu,onDragLeave:tc,onDrop:td,children:[ts&&D&&!e3&&(0,n.jsxs)("div",{className:"drop-zone-overlay pointer-events-none absolute inset-0 flex items-center justify-center backdrop-blur-[1px]",style:{zIndex:"var(--z-dropdown)"},children:[(0,n.jsx)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:[0,.8,1.6].map(e=>(0,n.jsx)("div",{className:"drop-ripple-ring absolute h-[720px] w-[720px] rounded-full border-[1.5px] border-solid",style:{transformOrigin:"center",animationDelay:`${e}s`}},e))}),(0,n.jsxs)("svg",{width:"280",height:"280",viewBox:"0 0 140 140",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"drop-zone-illustration",children:[(0,n.jsx)("rect",{x:"28",y:"44",width:"84",height:"60",rx:"8",fill:"color-mix(in srgb, var(--accent) 8%, transparent)",stroke:"color-mix(in srgb, var(--accent) 50%, transparent)",strokeWidth:"1.8"}),(0,n.jsx)("path",{d:"M36 100 L54 72 L68 88 L80 74 L104 100Z",fill:"color-mix(in srgb, var(--accent) 16%, transparent)",stroke:"color-mix(in srgb, var(--accent) 40%, transparent)",strokeWidth:"1.4",strokeLinejoin:"round"}),(0,n.jsx)("circle",{cx:"96",cy:"58",r:"8",fill:"color-mix(in srgb, var(--accent) 22%, transparent)",stroke:"color-mix(in srgb, var(--accent) 55%, transparent)",strokeWidth:"1.6"}),(0,n.jsxs)("g",{stroke:"color-mix(in srgb, var(--accent) 45%, transparent)",strokeWidth:"1.4",strokeLinecap:"round",children:[(0,n.jsx)("line",{x1:"96",y1:"46",x2:"96",y2:"43"}),(0,n.jsx)("line",{x1:"96",y1:"70",x2:"96",y2:"73"}),(0,n.jsx)("line",{x1:"84",y1:"58",x2:"81",y2:"58"}),(0,n.jsx)("line",{x1:"108",y1:"58",x2:"111",y2:"58"}),(0,n.jsx)("line",{x1:"87.5",y1:"49.5",x2:"85.4",y2:"47.4"}),(0,n.jsx)("line",{x1:"104.5",y1:"66.5",x2:"106.6",y2:"68.6"}),(0,n.jsx)("line",{x1:"104.5",y1:"49.5",x2:"106.6",y2:"47.4"}),(0,n.jsx)("line",{x1:"87.5",y1:"66.5",x2:"85.4",y2:"68.6"})]})]})]}),ey&&(0,n.jsx)(th,{request:ey,onRespond:ej,runtimeReady:D}),(0,n.jsx)(tk,{subagent:tt,sessionId:e?.id??eL.current??null,transcriptVersion:tt?eA[tt.id]??0:0,events:tt?eW[tt.id]??[]:void 0,onClose:()=>tr(null)}),eb&&(0,n.jsx)(nd,{request:eb,onInput:eS,runtimeReady:D}),tb?(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 py-8",style:{minHeight:0},children:(0,n.jsxs)("div",{className:"w-full",children:[(0,n.jsx)("div",{style:{paddingLeft:16,paddingRight:16},children:(0,n.jsxs)("div",{style:{maxWidth:744,margin:"0 auto"},children:[(0,n.jsxs)("div",{className:"mb-3 empty-chat-brand",style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"var(--space-5)",fontFamily:"var(--font-mono)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10,minWidth:0,flex:1,lineHeight:1.4,overflow:"hidden"},children:[(0,n.jsx)("span",{style:{fontSize:18,fontWeight:600,letterSpacing:"0.04em",color:"var(--accent)",flexShrink:0,whiteSpace:"nowrap"},children:"⌥"}),(0,n.jsx)("span",{style:{fontSize:18,color:"var(--text)",fontWeight:600,letterSpacing:"0.02em",flexShrink:0,whiteSpace:"nowrap"},children:"ompgui"})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-end",gap:"var(--space-1)",flexShrink:0},children:[(0,n.jsxs)("span",{style:{fontSize:"var(--text-sm)",color:"var(--text-muted)"},children:["gui ",(0,n.jsxs)("span",{style:{color:"var(--text)"},children:["v","0.7.5"]})]}),(0,n.jsx)(na,{refreshKey:p})]})]}),(0,n.jsx)(nc,{notices:ex,onDismiss:ev,align:"right"})]})}),tM]})})}):(0,n.jsxs)(n.Fragment,{children:[tW,(0,n.jsxs)("div",{className:"relative flex flex-1 overflow-hidden",children:[(0,n.jsx)("div",{style:{position:"absolute",top:12,left:0,right:20*!M,zIndex:40,padding:"0 16px",pointerEvents:"none"},children:(0,n.jsx)("div",{style:{maxWidth:744,margin:"0 auto"},children:(0,n.jsx)(nc,{notices:ex,onDismiss:ev,floating:!0,align:"right"})})}),(0,n.jsx)("div",{ref:eB,className:"flex-1 overflow-y-auto pt-6"+(M?"":" [scrollbar-width:none]"),children:(0,n.jsx)("div",{style:{paddingLeft:16,paddingRight:16},children:(0,n.jsxs)("div",{style:{maxWidth:744,margin:"0 auto"},children:[(0,n.jsx)(nl,{statuses:ew}),(0,n.jsx)(nu,{widgets:tT}),(0,n.jsx)(no,{messages:$,entryIds:z,conversationMeta:tg,messageRefs:tx,isStreaming:F.isStreaming,sessionBusy:e3,runtimeReady:D,isNew:eF,forkingEntryId:el,handleFork:eO,handleNavigate:eP,handleEditContent:W,modelNames:V,messageCwd:tw,onOpenFile:w,sessionId:e?.id??eL.current??void 0,toolCallsDefaultCollapsed:o,sessionKey:e8,scrollContainerRef:eB,onRenderWindowChange:te}),F.isStreaming&&F.streamingMessage&&(0,n.jsx)(ei,{message:F.streamingMessage,isStreaming:!0,modelNames:V,cwd:tw,onOpenFile:w,toolCallsDefaultCollapsed:o}),o&&ty.map(e=>(0,n.jsxs)("div",{role:"status","aria-label":j("chatWindow.runningNamed",{names:e.name}),style:{display:"flex",alignItems:"center",gap:7,marginBottom:"var(--space-4)",padding:"var(--space-3) 10px",border:"1px solid color-mix(in srgb, var(--status-success) 25%, transparent)",borderRadius:"var(--radius-control)",background:"color-mix(in srgb, var(--status-success) 4%, transparent)",color:"var(--text-muted)",fontSize:"var(--text-md)"},children:[(0,n.jsx)("span",{"aria-hidden":!0,className:"live-status-dot live-pulse inline-block h-1.5 w-1.5 shrink-0 rounded-full bg-accent"}),(0,n.jsx)("span",{style:{color:"var(--status-success)",fontFamily:"var(--font-mono)",fontWeight:600,fontSize:"var(--text-sm)"},children:e.name})]},e.id)),P&&!F.streamingMessage&&0===ty.length&&(0,n.jsxs)("div",{role:"status","aria-live":"polite",className:"py-2 text-text-muted flex items-center gap-2",style:{fontSize:"var(--text-base)"},children:[(0,n.jsx)("span",{"aria-hidden":!0,className:"live-status-dot live-pulse inline-block h-2 w-2 shrink-0 rounded-full bg-accent"}),(0,n.jsx)("span",{children:[function(e){if(e?.kind==="running_tools"){let t=e.tools.map(e=>e.name);return 0===t.length?(0,u.Tl)("chatWindow.runningTool"):t.length<=3?(0,u.Tl)("chatWindow.runningNamed",{names:t.join(", ")}):(0,u.Tl)("chatWindow.runningNamedMore",{names:t.slice(0,2).join(", "),more:t.length-2})}return e?.kind==="waiting_model"?(0,u.Tl)("chatWindow.waitingModel"):e?.kind==="running_command"?(0,u.Tl)("chatWindow.runningCommand"):(0,u.Tl)("chatWindow.thinking")}(eI),eE>0?S("chatWindow.subagentCount",eE):null,e$?j("chatWindow.todoPhaseStatus",{name:e$.name,done:e$.done,total:e$.total}):null].filter(Boolean).join(" \xb7 ")})]}),q&&!U&&(0,n.jsxs)("div",{role:"status","aria-live":"polite",className:"py-2 text-text-muted flex items-center gap-2",style:{fontSize:"var(--text-base)"},children:[(0,n.jsx)("span",{"aria-hidden":!0,className:"live-status-dot live-pulse inline-block h-2 w-2 shrink-0 rounded-full bg-accent"}),(0,n.jsx)("span",{children:j("chatWindow.runningCommand")})]}),U&&(0,n.jsx)(ei,{message:{role:"bashExecution",command:U.command,output:"",excludeFromContext:U.excludeFromContext},sessionId:e?.id??eL.current??void 0}),(0,n.jsx)("div",{ref:eN})]})})}),M?null:(0,n.jsx)(tI,{messages:$,scrollContainer:eB,messageRefs:tx,layoutKey:e9})]}),(0,n.jsxs)("div",{className:"relative",style:{flexShrink:0},children:[(0,n.jsx)("div",{style:{paddingLeft:16,paddingRight:16},children:(0,n.jsxs)("div",{style:{maxWidth:744,margin:"0 auto"},children:[(0,n.jsx)(t5,{todoPhases:ez,subagents:eR,subagentEvents:eW,onSelectSubagent:tr}),(0,n.jsx)(nu,{widgets:tR})]})}),tM]})]})]})}function nl({statuses:e}){return 0===e.length?null:(0,n.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"var(--space-2)",marginBottom:"var(--space-4)"},children:e.map(e=>(0,n.jsxs)("div",{className:"ui-compact-surface",style:{display:"flex",alignItems:"center",gap:"var(--space-3)",maxWidth:"100%",padding:"var(--space-2) var(--space-4)",border:"1px solid color-mix(in srgb, var(--accent) 24%, var(--border))",borderRadius:"var(--radius-control)",background:"color-mix(in srgb, var(--accent) 7%, var(--bg))",color:"var(--text-muted)",fontSize:"var(--text-md)"},children:[(0,n.jsx)("span",{style:{color:"var(--accent)",fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)"},children:e.key}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.text})]},e.key))})}function nu({widgets:e}){return 0===e.length?null:(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"var(--space-3)",marginBottom:"var(--space-4)"},children:e.map(e=>(0,n.jsxs)("div",{className:"ui-compact-surface",style:{border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)",overflow:"hidden"},children:[(0,n.jsx)("div",{style:{padding:"5px 9px",borderBottom:"1px solid var(--border)",color:"var(--text-dim)",fontSize:"var(--text-sm)",fontFamily:"var(--font-mono)"},children:e.key}),(0,n.jsx)("pre",{style:{margin:0,padding:"var(--space-4) 9px",color:"var(--text-muted)",fontSize:"var(--text-md)",lineHeight:1.5,whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"var(--font-mono)"},children:e.lines.join("\n")})]},e.key))})}function nc({notices:e,onDismiss:t,floating:r=!1,align:a="left"}){return 0===e.length?null:(0,n.jsx)("div",{role:"status","aria-live":"polite",style:{display:"flex",flexDirection:"column",alignItems:"right"===a?"flex-end":"stretch",marginBottom:10*!r,pointerEvents:r?"auto":void 0},children:e.map((a,i)=>{let o="error"===a.type?"var(--status-error)":"warning"===a.type?"var(--status-warning)":"success"===a.type?"var(--status-success)":"var(--accent)",s="error"===a.type;return(0,n.jsxs)("div",{className:"notice-shelf-item",style:{display:"flex",alignItems:s?"flex-start":"center",gap:"var(--space-4)",minHeight:"var(--control-height-lg)",height:s?"auto":"var(--control-height-lg)",maxHeight:s?96:48,marginBottom:i===e.length-1?0:"var(--space-2)",overflow:"hidden",borderRadius:"var(--radius-control)",border:`1px solid ${s?"color-mix(in srgb, var(--status-error) 35%, var(--border))":"color-mix(in srgb, var(--border) 70%, transparent)"}`,background:s?"color-mix(in srgb, var(--status-error) 7%, var(--bg))":"var(--bg)",color:s?"var(--text)":"var(--text-muted)",width:"fit-content",maxWidth:s?"min(100%, 640px)":"min(100%, 620px)",boxShadow:r?"var(--shadow-pop)":"var(--shadow-card)",fontSize:"var(--text-md)",lineHeight:s?1.4:1.35,transformOrigin:"top center",animation:a.exiting?"notice-shelf-out var(--dur-med) ease-in forwards":"notice-shelf-in var(--dur-med) var(--ease-out-warm) both",padding:s?"8px 8px 8px 10px":"0 10px"},children:[(0,n.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:o,flexShrink:0,marginTop:6*!!s}}),(0,n.jsx)("span",{style:{padding:s?"0":"8px 0",minWidth:0,maxWidth:"100%",overflow:"hidden",display:s?"-webkit-box":"block",WebkitLineClamp:s?3:void 0,WebkitBoxOrient:s?"vertical":void 0,overflowWrap:"anywhere",whiteSpace:s?"normal":"nowrap",textOverflow:s?"clip":"ellipsis",flex:1},title:a.message,children:a.message}),t&&(0,n.jsx)("button",{type:"button",onClick:()=>t(a.id),"aria-label":(0,u.Tl)("ui.dismiss"),style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:18,height:18,padding:0,border:0,borderRadius:"var(--radius-control)",background:"transparent",color:"var(--text-dim)",cursor:"pointer",flexShrink:0,marginTop:+!!s},children:(0,n.jsx)("span",{"aria-hidden":!0,style:{fontSize:12,lineHeight:1},children:"\xd7"})})]},a.id)})})}function nd({request:e,onInput:t,runtimeReady:r=!0}){let{t:a}=(0,u.s9)(),o=(0,i.useRef)(null),s=(0,i.useRef)(!1),l=function(e){let t=/^[┌├└╭╰][─┬┴┼]+[┐┤┘╮╯]$/,r=[];for(let n of e){let e=n.replace(r0,""),a=r4(e).trimEnd();if(t.test(a))continue;let i=e,o=r3(i);("│"===o||"┃"===o)&&" "===r3(i=r6(i,0))&&(i=r6(i,0));let s=function(e){let t=r5(e);for(let e=t.length-1;e>=0;e--)if(""!==t[e].char.trim())return e;return -1}(i),l=s>=0?r5(i)[s]?.char:void 0;("│"===l||"┃"===l)&&(i=r6(i,s)),r.push(function(e){let t=e;for(;;){let e=r5(t),r=e[e.length-1];if(!r||""!==r.char.trim())return t;t=t.slice(0,r.start)+t.slice(r.end)}}(i))}for(;r.length>0&&""===r4(r[0]).trim();)r.shift();for(;r.length>0&&""===r4(r[r.length-1]).trim();)r.pop();return r.length?r:e}(e.lines);return(0,i.useEffect)(()=>{r&&o.current?.focus()},[e.id,r]),(0,n.jsx)("div",{style:{position:"absolute",inset:0,zIndex:"var(--z-extension-dialog)",display:"flex",alignItems:"center",justifyContent:"center",padding:20,background:"var(--overlay-backdrop)"},children:(0,n.jsxs)("div",{role:"dialog","aria-modal":"true",onClick:e=>{r&&(e.target.closest("button")||o.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:o,"aria-label":a("chatWindow.extensionTerminalInput"),"aria-disabled":!r,disabled:!r,autoCapitalize:"off",autoComplete:"off",autoCorrect:"off",spellCheck:!1,onKeyDown:n=>{if(!r||s.current||n.nativeEvent.isComposing)return;let a=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=r9[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":" ":r8[e.key]??null}(n);a&&(n.preventDefault(),n.stopPropagation(),t(e,a))},onInput:n=>{if(!r||s.current||n.nativeEvent.isComposing)return;let a=n.currentTarget.value;n.currentTarget.value="",a&&t(e,a)},onCompositionStart:()=>{s.current=!0},onCompositionEnd:n=>{if(s.current=!1,!r)return;let a=n.currentTarget;queueMicrotask(()=>{let n=a.value;a.value="",n&&r&&t(e,n)})},onPaste:n=>{if(n.preventDefault(),!r)return;let a=n.clipboardData.getData("text");a&&t(e,`\x1b[200~${a}\x1b[201~`)},style:{position:"absolute",width:1,height:1,padding:0,border:0,opacity:0,pointerEvents:"none"}}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"var(--space-5)",padding:"10px var(--space-5)",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("div",{style:{color:"var(--text)",fontSize:"var(--text-base)",fontWeight:650},children:a("chatWindow.extensionPanel")}),(0,n.jsx)("button",{onClick:()=>{r&&t(e,"\x03")},disabled:!r,"aria-disabled":!r,style:{padding:"5px 9px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:r?"pointer":"not-allowed",opacity:r?void 0:.5,fontSize:"var(--text-md)"},children:a("chatWindow.close")})]}),(0,n.jsx)("pre",{style:{margin:0,padding:14,maxHeight:"calc(min(760px, 100vh - 40px) - 48px)",overflow:"auto",background:"var(--bg-panel)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:"var(--text-base)",lineHeight:1.45,whiteSpace:"pre"},children:(l.length?l:[""]).map((e,t,r)=>{var a;return(0,n.jsxs)(i.Fragment,{children:[(a=`line-${t}`,(function(e){let t,r=[],n={},a=0;for(rX.lastIndex=0;null!==(t=rX.exec(e));)t.index>a&&r.push({text:e.slice(a,t.index),style:n}),n=function(e,t){let r={...e};for(let e=0;e<t.length;e++){let n=t[e];if(0===n)for(let e of Object.keys(r))delete r[e];else if(1===n)r.fontWeight=700;else if(2===n)r.opacity=.65;else if(3===n)r.fontStyle="italic";else if(4===n)r.textDecoration="underline";else if(22===n)delete r.fontWeight,delete r.opacity;else if(23===n)delete r.fontStyle;else if(24===n)delete r.textDecoration;else if(39===n)delete r.color;else if(49===n)delete r.background;else if(n>=30&&n<=37)r.color=r1[n-30];else if(n>=90&&n<=97)r.color=r2[n-90];else if(n>=40&&n<=47)r.background=r1[n-40];else if(n>=100&&n<=107)r.background=r2[n-100];else if((38===n||48===n)&&2===t[e+1]){let[a,i,o]=[t[e+2],t[e+3],t[e+4]];[a,i,o].every(e=>"number"==typeof e&&Number.isFinite(e))&&(38===n?r.color=`rgb(${a}, ${i}, ${o})`:r.background=`rgb(${a}, ${i}, ${o})`),e+=4}else if((38===n||48===n)&&5===t[e+1]){let a=function(e){if(e>=0&&e<8)return r1[e];if(e>=8&&e<16)return r2[e-8];if(e>=16&&e<=231){let t=e-16,r=Math.floor(t/36),n=Math.floor(t%36/6),a=e=>0===e?0:55+40*e;return`rgb(${a(r)}, ${a(n)}, ${a(t%6)})`}if(e>=232&&e<=255){let t=8+(e-232)*10;return`rgb(${t}, ${t}, ${t})`}}(t[e+2]);a&&(38===n?r.color=a:r.background=a),e+=2}}return r}(n,t[1]?t[1].split(";").map(e=>Number(e||"0")):[0]),a=t.index+t[0].length;return a<e.length&&r.push({text:e.slice(a),style:n}),r})(e).map((e,t)=>Object.keys(e.style).length>0?(0,n.jsx)("span",{style:e.style,children:e.text},`${a}-${t}`):e.text)),t<r.length-1?"\n":null]},t)})})]})})}},99314:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(99537).A)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])}}]);
17
+ ${r}`:(0,u.Tl)("agentSession.openInBrowser",{url:r}):(0,u.Tl)("agentSession.unsafeUrlBlocked")});break}case"notify":rb({id:t.id,message:t.message,type:t.notifyType??"info"});break;case"setStatus":tp(e=>{let r=e.filter(e=>e.key!==t.statusKey);return t.statusText?[...r,{key:t.statusKey,text:t.statusText}]:r});break;case"setWidget":th(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":tc(e=>t.closed?e?.id===t.id?null:e:t)}},[rb,e.chatInputRef]),nP=(0,i.useCallback)(async(e=tR.current,t)=>{if(void 0!==t&&t4.current!==t)return;let r=t7.current,n=t9.current;try{e&&await nj(e,!1,!0,t)}finally{if(void 0!==t&&t4.current!==t||(re.current=null,!t_.current))return;!r&&n&&rB(n)&&(rb({type:"error",message:n}),e_.oR.error((0,u.Tl)("agentSession.quotaReached"),n,{timeout:12e3})),t_.current=!1,P(!1),e9(null),eH(null),e&&(ne(e),r7(e)),D({type:"end"}),t7.current=!1,t9.current=null,a?.()}},[rb,nj,a,r7,ne]),nq=(0,i.useCallback)(async(e,t)=>{await et(800,void 0,void 0,tT.current.signal);let r=Date.now(),n=tE.current;for(;G.current&&tR.current===e&&t_.current&&Date.now()-r<2e4;){if(void 0!==t&&t4.current!==t)return;try{let r=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(r.ok){let a=await r.json();if(tR.current!==e||tE.current!==n)continue;let i=a.state;if(!a.running||!i||!i.isStreaming&&!i.isPromptRunning)return void await nP(e,t)}}catch{}await et(600,void 0,void 0,tT.current.signal)}},[nP]),nU=(0,i.useCallback)(async e=>{let t=tO.current+1;tO.current=t;let r=tE.current;for(;tD.current&&tO.current===t&&tR.current===e;){let n=tT.current.signal;if(await et(1e3,void 0,void 0,n),n.aborted||!tD.current||tO.current!==t||tR.current!==e)return;try{let n=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(!n.ok)continue;let a=await n.json();if(tR.current!==e||tE.current!==r||a.state?.isBashRunning)continue;if(await nj(e),tO.current!==t||tR.current!==e)return;tD.current=!1,U(!1),K(null);return}catch{}}},[nj]),nV=(0,i.useCallback)((e,t)=>{if(!G.current||tR.current!==e||!tL.current)return;let r=t.state;t.running&&r&&(r.isStreaming||r.isPromptRunning)&&(t_.current=!0,P(!0),e9(r.isStreaming?{kind:"waiting_model"}:{kind:"running_command"}),D({type:"start"}),nR(e),nE(e),nz(e),nt(e),!r.isStreaming&&r.isPromptRunning&&nq(e)),r?.isBashRunning&&(tD.current=!0,U(!0),nU(e)),r&&rY(r,e,tA.current),rJ(e)},[rY,nR,rJ,nE,nz,nt,nU,nq]),nK=(0,i.useCallback)(async()=>{let e=tR.current;if(!e||x)return null;let t=t$.current+1;t$.current=t,tE.current=t;let r=tA.current,n={...tF.current,runtime:"loading"};tF.current=n,tL.current=!1,I(n),T(null);let a=await nk(e,t,r);return a&&nV(e,a),a},[x,nk,nV]),nG=(0,i.useCallback)(async e=>{if(!t_.current||!ry(e))return;let t=t4.current,r=tE.current;try{let n=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(!n.ok)return;let a=await n.json();if(t4.current!==t||tR.current!==e||tE.current!==r)return;let i=a.state;if(tB.current=i?.isCompacting??!1,e2(i?.isCompacting??!1),i?.todoPhases!==void 0&&tx(i.todoPhases??[]),rY(i,e,tA.current),ne(e),a.running&&i&&(i.isStreaming||i.isPromptRunning||i.isCompacting)||!t_.current)return;i?(void 0!==i.contextUsage&&eq(i.contextUsage??null),void 0!==i.systemPrompt&&eV(i.systemPrompt??null),void 0!==i.extensionStatuses&&tp(i.extensionStatuses??[]),void 0!==i.extensionWidgets&&th(i.extensionWidgets??[])):eq(null),await nP(e,t)}catch{}},[rY,ry,nP,ne,eq]);(0,i.useEffect)(()=>{if(O)return ee(()=>{let e=tR.current;e&&nG(e)},15e3)},[O,nG]),(0,i.useEffect)(()=>{let e=()=>{Z()&&(tI.current&&(clearTimeout(tI.current),tI.current=null),nr())},t=()=>{if(Z())return;let e=tR.current;if(!e)return;let t=tA.current,r=tE.current,n=tk.current??nl.currentSource(e);(t_.current||tD.current||n)&&nD(e),(async()=>{var n,a;n=tR.current,a=tA.current,n===e&&a===t&&tE.current===r&&await nG(e)})(),nn(e)},r=()=>{"visible"===document.visibilityState?t():e()};return e(),document.addEventListener("visibilitychange",r),window.addEventListener("online",t),()=>{document.removeEventListener("visibilitychange",r),window.removeEventListener("online",t)}},[nD,nl,nG,nr,nn]),(0,i.useEffect)(()=>{t_.current=O},[O]),tU.current=(0,i.useCallback)(e=>{switch(e.type){case"agent_start":if(t_.current){if(!tH.current)break}else t4.current+=1;tH.current=!1,t_.current=!0,P(!0),e9({kind:"waiting_model"}),D({type:"start"}),t7.current=!1,t9.current=null;break;case"agent_end":{if(!1===e.isTerminal)break;if(tH.current){tH.current=!1;break}if(!t_.current)break;let t=t7.current,r=t9.current,n="string"==typeof e.errorMessage?e.errorMessage.trim():"",i="string"==typeof e.message?e.message.trim():"",o=n||i;if(o&&rB(o)&&(t9.current=o),t)o&&rB(o)&&(rb({type:"error",message:o}),e_.oR.error((0,u.Tl)("agentSession.quotaReached"),o,{timeout:12e3}));else if(r&&rB(r)){let e=r||o;rb({type:"error",message:e}),e_.oR.error((0,u.Tl)("agentSession.quotaReached"),e,{timeout:12e3})}else if(o){let e=rB(o)?"error":"warning";rb({type:e,message:o}),"error"===e&&e_.oR.error((0,u.Tl)("agentSession.requestFailed"),o,{timeout:1e4})}let s=tR.current,l=t4.current;if(t_.current=!1,P(!1),e9(null),eH(null),s&&ne(s),D({type:"end"}),t7.current=!1,t9.current=null,s){nj(s,!1,!1,l),r7(s);let e=tE.current,t=nv();fetch(`/api/agent/${encodeURIComponent(s)}`).then(e=>e.ok?e.json():null).then(r=>{!r?.state?.model||tR.current!==s||t4.current!==l||tE.current!==e||ny(rL(r.state.model),t)&&(r.state?.contextUsage!==void 0&&eq(r.state.contextUsage??null),r.state?.systemPrompt!==void 0&&eV(r.state.systemPrompt||null),r.state?.fastModeEnabled!==void 0&&eC(r.state.fastModeEnabled),eM(r.state?.fastModeActive),r.state?.extensionStatuses!==void 0&&tp(r.state.extensionStatuses??[]),r.state?.extensionWidgets!==void 0&&th(r.state.extensionWidgets??[]),r.state?.todoPhases!==void 0&&tx(r.state.todoPhases??[]),rY(r.state,s,tA.current),rJ(s))}).catch(()=>{})}a?.();break}case"message_queue_update":rQ(e.queue);break;case"prompt_result":if(!1!==e.agentInvoked||!t_.current)break;nP(tR.current,t4.current);break;case"prompt_error":{let t=e.errorMessage?.trim()??(0,u.Tl)("agentSession.commandFailed");rb({type:"error",message:t}),rB(t)&&(t9.current=t,e_.oR.error((0,u.Tl)("agentSession.quotaReached"),t,{timeout:12e3})),t_.current&&nP(tR.current,t4.current);break}case"notice":{let t=e.level,r=e.message?.trim()??"";if(/^xd:\/\/:\s*mounted\s+mcp__/i.test(r))e_.oR.info("MCP tools updated",r,{clamp:!0});else{let e="error"===t?"error":"warning"===t?"warning":"info";rb({type:e,message:r}),rB(r)&&(t9.current=r,"error"!==e&&rb({type:"error",message:r}),e_.oR.error((0,u.Tl)("agentSession.quotaReached"),r,{timeout:12e3}))}break}case"command_output":{let t=e.text?.trim()??"";/^xd:\/\/:\s*mounted\s+mcp__/i.test(t)?e_.oR.info("MCP tools updated",t,{clamp:!0}):t&&(rb({type:"info",message:t}),rB(t)&&(t9.current=t,e_.oR.error((0,u.Tl)("agentSession.quotaReached"),t,{timeout:12e3})));break}case"thinking_level_changed":ek(rF(e.configured??e.thinkingLevel));break;case"model_changed":{let e=tR.current;if(!e)break;let t=tE.current,r=nv();fetch(`/api/agent/${encodeURIComponent(e)}`).then(e=>e.ok?e.json():null).then(n=>{!n?.state?.model||tR.current!==e||tE.current!==t||ny(rL(n.state.model),r)&&(void 0!==n.state.thinkingLevel&&ej(n.state.thinkingLevel),void 0!==n.state.fastModeEnabled&&eC(n.state.fastModeEnabled),eM(n.state.fastModeActive),void 0!==n.state.autoRetryEnabled&&e$(n.state.autoRetryEnabled),void 0!==n.state.interruptMode&&eR(n.state.interruptMode),void 0!==n.state.autoCompactionEnabled&&eA(n.state.autoCompactionEnabled),void 0!==n.state.steeringMode&&eF(n.state.steeringMode),void 0!==n.state.followUpMode&&eN(n.state.followUpMode))}).catch(()=>{});break}case"config_update":{let t=e.model;t&&ny(rL(t)),void 0!==e.thinkingLevel&&ej(e.thinkingLevel);break}case"available_commands_update":te((e.commands??[]).map(rG).filter(e=>null!==e));break;case"message_start":case"message_update":{if(!t_.current)break;let t=e.message;if(t?.role==="user")break;if(t){t7.current=!0;let e=rP(t);e&&rB(e)&&(t9.current=e.slice(0,800)),D({type:"update",message:t6(t)})}e9(null);break}case"message_end":{if(!t_.current)break;let t=e.message;if(t&&(t7.current=!0,"assistant"===t.role||"custom"===t.role)){let e=rP(t);e&&rB(e)&&(t9.current=e.slice(0,800))}if(t&&"user"===t.role){let e=t6(t),r=rU(e),n=re.current;re.current=null,E(t=>{let a=t[t.length-1];return n&&a?.role==="user"&&rU(a)===n?n===r?t:[...t.slice(0,-1),e]:[...t,e]})}else t?.role==="toolResult"?E(e=>{let r=e.findIndex(e=>"toolResult"===e.role&&e.toolCallId===t.toolCallId);if(r<0)return[...e,t];let n=[...e];return n[r]=t,n}):t?.role==="custom"&&"xdev-mount-notice"===t.customType?e_.oR.info("MCP tools updated",rP(t).trim()||"The MCP tool inventory changed.",{clamp:!0}):t&&E(e=>[...e,t6(t)]);D({type:"reset"}),e9({kind:"waiting_model"});break}case"tool_execution_update":{if(!t_.current||"string"!=typeof e.toolCallId)break;let t=e.partialResult;if("object"!=typeof t||null===t||!("content"in t)||!Array.isArray(t.content))break;let r=[];for(let e of t.content)"object"==typeof e&&null!==e&&"type"in e&&("text"===e.type&&"text"in e&&"string"==typeof e.text?r.push({type:"text",text:e.text}):"image"===e.type&&"data"in e&&"string"==typeof e.data&&"mimeType"in e&&"string"==typeof e.mimeType&&r.push({type:"image",data:e.data,mimeType:e.mimeType}));let n={role:"toolResult",toolCallId:e.toolCallId,toolName:"string"==typeof e.toolName?e.toolName:void 0,content:r,..."details"in t?{details:t.details}:{}};t5.current.add(n),E(e=>{let t=e.findIndex(e=>"toolResult"===e.role&&e.toolCallId===n.toolCallId);if(t<0)return[...e,n];let r=e[t];if("toolResult"!==r.role||!t5.current.has(r))return e;let a=[...e];return a[t]=n,a});break}case"tool_execution_start":{if(!t_.current)break;let t=e.toolCallId,r=e.toolName;t7.current=!0,e9(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&&tR.current&&nG(tR.current),e9(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":tR.current&&nG(tR.current);break;case"auto_retry_start":{let t=e.errorMessage;eH({attempt:e.attempt,maxAttempts:e.maxAttempts,errorMessage:t}),t&&rB(t)&&(t9.current=t);break}case"auto_retry_end":eH(null);break;case"auto_compaction_start":e2(!0),e5(null),e3(null);break;case"auto_compaction_end":e2(!1),e.errorMessage?(e5(e.errorMessage),e3(null)):e.aborted||e.skipped||(e3(rV(e.result,"auto")),tR.current&&nj(tR.current));break;case"host_tool_call":{let t="string"==typeof e.id?e.id:"",r="string"==typeof e.toolName?e.toolName:"",n=L(e.arguments)?e.arguments:{};t&&r&&nL(t,r,n);break}case"host_uri_request":{let t="string"==typeof e.id?e.id:"",r="string"==typeof e.url?e.url:"",n="write"===e.operation?"write":"read",a="string"==typeof e.content?e.content:void 0;t&&r&&nB(t,n,r,a);break}case"subagent_lifecycle":case"subagent_progress":case"subagent_event":r3(e);break;case"extension_ui_pending":{if(!Array.isArray(e.ids)||!e.ids.every(e=>"string"==typeof e))break;let t=new Set(e.ids);tl(e=>e&&!t.has(e.id)?null:e);break}case"extension_ui_request":nO(e)}},[rb,rY,rQ,rJ,nP,nO,nL,nB,nj,r3,a,nG,ny,nv,r7,ne,eq,ej,ek]);let nY=(0,i.useCallback)(async(n,a)=>{let i=n.trim();if(!i&&!a?.length||!ry()||t_.current||tD.current)return!1;let o=!a?.length&&i.startsWith("/");if(!a?.length&&i.startsWith("!")){let e=i.startsWith("!!"),t=(e?i.slice(2):i.slice(1)).trim();return!!t&&(await tJ.current?.(t,e),!0)}let s=t4.current+1,{userMsg:l,piImages:c}=rK(n,a);E(e=>[...e,l]),re.current=rU(l),t4.current=s,t_.current=!0,P(!0),e9(o?{kind:"running_command"}:{kind:"waiting_model"}),D({type:"start"}),tK.current=!0,tY.current=!0,tQ.current=0;try{let e=null;if(x&&r){let t=tR.current??await t1.current,r=t??await nI();r&&(e=r,nC(1,n),ep&&(eX(ep),t&&await (0,tf.$)(r,{type:"set_model",provider:ep.provider,modelId:ep.modelId})),await nD(r),ne(r),await (0,tf.$)(r,{type:"prompt",message:n,...c?.length?{images:c}:{}}))}else t&&(e=t.id,await nD(t.id),ne(t.id),nE(t.id),nz(t.id),await (0,tf.$)(t.id,{type:"prompt",message:n,...c?.length?{images:c}:{}}));return o&&e&&nq(e,s),!0}catch(r){console.error("Failed to send message:",r);let t=re.current;return t&&E(e=>{let r=e[e.length-1];return r?.role==="user"&&rU(r)===t?e.slice(0,-1):e}),rb({type:"error",message:r instanceof rH?r.message:(0,u.Tl)("agentSession.sendFailed",{detail:r instanceof Error?r.message:String(r)})}),n&&e.chatInputRef?.current?.insertIfEmpty(n),re.current=null,t_.current=!1,P(!1),e9(null),D({type:"end"}),!1}},[ry,x,r,ep,t,nI,nD,nC,nq,rb,e.chatInputRef,ne,nE,nz]),nJ=(0,i.useCallback)(async(e,t)=>{let r=e.trim();if(!r&&!t?.length)return!1;let n=tR.current;if(!n||!ry(n)||!t_.current)return!1;let{userMsg:a,piImages:i}=rK(e,t);E(e=>[...e,a]),re.current=rU(a),tH.current=!0,tK.current=!0,tY.current=!0,tQ.current=0;try{return await nD(n),ne(n),await (0,tf.$)(n,{type:"abort_and_prompt",message:r,...i?.length?{images:i}:{}}),!0}catch(t){console.error("Failed to interrupt and reply:",t),tH.current=!1;let e=re.current;return e&&E(t=>{let r=t[t.length-1];return r?.role==="user"&&rU(r)===e?t.slice(0,-1):t}),re.current=null,rb({type:"error",message:t instanceof Error?t.message:String(t)}),!1}},[rb,ry,nD,ne]);tJ.current=(0,i.useCallback)(async(r,n)=>{if(!ry()||t_.current||tD.current)return;let a=`${n?"!!":"!"}${r}`;tD.current=!0,K({command:r,excludeFromContext:n}),U(!0);try{let e=tR.current??t?.id??await nI();if(!e)throw Error((0,u.Tl)("agentSession.shellSessionFailed"));await (0,tf.$)(e,{type:"bash",command:r,excludeFromContext:n}),await nj(e),nC(1,a)}catch(t){console.error("Failed to execute shell command:",t),rb({type:"error",message:t instanceof Error?t.message:String(t)}),e.chatInputRef?.current?.insertIfEmpty(a)}finally{tD.current=!1,K(null),U(!1)}},[rb,ry,nI,nj,e.chatInputRef,nC,t]);let nQ=(0,i.useCallback)(async()=>{let e=tR.current;if(e&&ry(e)){if(tD.current){try{await (0,tf.$)(e,{type:"abort_bash"})}catch(e){console.error("Failed to abort bash:",e)}return}try{await (0,tf.$)(e,{type:"abort"})}catch(e){console.error("Failed to abort:",e)}}},[ry]),nZ=(0,i.useCallback)(async e=>{if(tD.current)return;let t=tR.current;if(t&&ry(t)){eY(e);try{let{cancelled:r,newSessionId:n}=await (0,tf.$)(t,{type:"fork",entryId:e})??{};!r&&n&&s?.(n)}catch(e){console.error("Fork failed:",e)}finally{eY(null)}}},[ry,s]),nX=(0,i.useCallback)(async e=>{if(tD.current||t_.current)return;let t=tR.current;t&&ry(t)&&(W(e),await nS(t,e))},[ry,nS]),n0=(0,i.useCallback)(async e=>{if(tD.current||t_.current)return;let t=tR.current;t&&ry(t)&&(W(e),await nS(t,e))},[ry,nS]),n1=(0,i.useCallback)(async(e,t)=>{if(x){em({provider:e,modelId:t}),eX({provider:e,modelId:t});let r=tR.current??await t1.current;if(!r)return;try{await (0,tf.$)(r,{type:"set_model",provider:e,modelId:t})}catch(e){console.error("Failed to set model:",e)}return}let r=tR.current;if(r&&ry(r))try{await (0,tf.$)(r,{type:"set_model",provider:e,modelId:t}),eQ({provider:e,modelId:t}),nb(r)}catch(e){console.error("Failed to set model:",e)}},[ry,x,em,nb]),n2=(0,i.useCallback)(async e=>{if(!x&&!ry())return;let t=tR.current??await t1.current??await nI();if(t)try{let r=await (0,tf.$)(t,{type:"set_fast_mode",enabled:e});eC(r?.enabled??e),eM(r?.active),nb(t)}catch(e){console.error("Failed to change Fast mode:",e),rb({type:"error",message:e instanceof Error?e.message:String(e)})}},[rb,ry,nI,x,nb]),n4=(0,i.useCallback)(async e=>{if(!x&&!ry())return;let t=tR.current??await t1.current;if(t){e$(e);try{await (0,tf.$)(t,{type:"set_auto_retry",enabled:e})}catch(t){e$(t=>t===e?!e:t),rb({type:"error",message:t instanceof Error?t.message:String(t)})}}},[rb,ry,x]),n5=(0,i.useCallback)(async e=>{if(!x&&!ry())return;let t=tR.current??await t1.current;if(t){eR(e);try{await (0,tf.$)(t,{type:"set_interrupt_mode",mode:e})}catch(e){console.error("Failed to change interrupt mode:",e),rb({type:"error",message:e instanceof Error?e.message:String(e)})}}},[rb,ry,x]),n6=(0,i.useCallback)(async e=>{if(!x&&!ry())return;let t=tR.current??await t1.current;if(t){eA(e);try{await (0,tf.$)(t,{type:"set_auto_compaction",enabled:e})}catch(e){console.error("Failed to change auto-compaction:",e),rb({type:"error",message:e instanceof Error?e.message:String(e)})}}},[rb,ry,x]),n3=(0,i.useCallback)(async e=>{if(!x&&!ry())return;let t=tR.current??await t1.current;if(t){eF(e);try{await (0,tf.$)(t,{type:"set_steering_mode",mode:e})}catch(e){console.error("Failed to change steering mode:",e),rb({type:"error",message:e instanceof Error?e.message:String(e)})}}},[rb,ry,x]),n8=(0,i.useCallback)(async e=>{if(!x&&!ry())return;let t=tR.current??await t1.current;if(t){eN(e);try{await (0,tf.$)(t,{type:"set_follow_up_mode",mode:e})}catch(e){console.error("Failed to change follow-up mode:",e),rb({type:"error",message:e instanceof Error?e.message:String(e)})}}},[rb,ry,x]),n9=(0,i.useCallback)(async()=>{let e=tR.current;if(e&&ry(e)&&!t_.current&&!tD.current)try{await (0,tf.$)(e,{type:"cycle_model"}),nb(e)}catch(e){console.error("Failed to cycle model:",e),rb({type:"error",message:e instanceof Error?e.message:String(e)})}},[rb,ry,nb]),n7=(0,i.useCallback)(async()=>{let e=tR.current;if(e&&ry(e))try{await (0,tf.$)(e,{type:"cycle_thinking_level"}),nb(e)}catch(e){console.error("Failed to cycle thinking level:",e),rb({type:"error",message:e instanceof Error?e.message:String(e)})}},[rb,ry,nb]),ae=(0,i.useCallback)(async()=>{let e=tR.current;if(e&&ry(e)){eH(null);try{await (0,tf.$)(e,{type:"abort_retry"})}catch(e){console.error("Failed to abort retry:",e),rb({type:"error",message:e instanceof Error?e.message:String(e)})}}},[rb,ry]),at=(0,i.useCallback)(async()=>{let e=tR.current;if(e&&ry(e)&&!tB.current&&!t_.current&&!tD.current)try{await (0,tf.$)(e,{type:"handoff"}),await nj(e,!0),nb(e)}catch(e){rb({type:"error",message:e instanceof Error?e.message:String(e)})}},[rb,ry,nj,nb]),ar=(0,i.useCallback)(async()=>{let e=tR.current;if(e&&ry(e)&&!tB.current&&!e0){tB.current=!0,e2(!0),e5(null),e3(null);try{let t=await (0,tf.$)(e,{type:"compact"});e3(rV(t,"manual")),await nj(e,!0),nb(e)}catch(e){e5(e instanceof Error?e.message:String(e)),e3(null)}finally{tB.current=!1,e2(!1)}}},[ry,e0,nj,nb]),an=(0,i.useCallback)(async(e,n=!1)=>{let a=tz.current+1;tz.current=a;let i=r??t?.cwd??"",o=()=>!e?.aborted&&tz.current===a&&(r??t?.cwd??"")===i;en(!0);try{let e=await (0,rE.aQ)(i,n?{force:!0}:void 0);if(!o())return;J(e.models),ei(e.modelError??null),eu(e.thinkingLevels??{}),ed(e.thinkingLevelMaps??{});let t=e.modelList??[];if(X(t),x){let r=(e.defaultModel?t.find(t=>t.id===e.defaultModel?.modelId&&t.provider===e.defaultModel?.provider):void 0)??t[0];ef(r?{provider:r.provider,modelId:r.id}:null)}}catch(e){if(!o())return;ei(e instanceof Error?e.message:String(e))}finally{if(!o())return;en(!1)}},[x,r,t?.cwd]),aa=(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,a=n.trim(),i=tR.current??await nI(),o=e=>(e.handled&&(e.error?rb({type:"error",message:e.error}):"openSessionStats"!==e.action&&rb({type:"success",message:e.message??(0,u.Tl)("agentSession.commandCompleted")})),e);if(!i||!ry(i))return o({handled:!0,error:M??"Session runtime is not ready."});try{switch(r){case"compact":{if(!i||tB.current||e0)return o({handled:!0,error:(0,u.Tl)("agentSession.noSessionToCompact")});tB.current=!0,e2(!0),e5(null),e3(null);let e=await (0,tf.$)(i,{type:"compact",...a?{customInstructions:a}:{}});return e3(rV(e,"manual")),await nj(i,!0),tB.current=!1,e2(!1),nC(),o({handled:!0,message:(0,u.Tl)("agentSession.compactedContext")})}case"reload":if(!i)return o({handled:!0,error:(0,u.Tl)("agentSession.noSessionToReload")});return await (0,tf.$)(i,{type:"reload"}),await Promise.all([nj(i,!1,!0),nT(),an(void 0,!0)]),o({handled:!0,message:(0,u.Tl)("agentSession.reloadedResources")});case"name":if(!i)return o({handled:!0,error:(0,u.Tl)("agentSession.noSessionToName")});if(!a)return o({handled:!0,error:(0,u.Tl)("agentSession.nameUsage")});return await (0,tf.$)(i,{type:"set_session_name",name:a}),await nj(i),nC(),o({handled:!0,message:(0,u.Tl)("agentSession.sessionRenamed",{name:a})});case"session":{if(!i)return o({handled:!0,error:(0,u.Tl)("agentSession.noActiveSession")});let e=await (0,tf.$)(i,{type:"get_session_stats"});return e&&to(e),m?.(),o({handled:!0,action:"openSessionStats"})}case"agents":return h?.("agents"),o({handled:!0,action:"openSettings"});case"copy":{if(!i)return o({handled:!0,error:(0,u.Tl)("agentSession.noActiveSession")});let e=await (0,tf.$)(i,{type:"get_last_assistant_text"}),t=e?.text??"";if(!t)return o({handled:!0,error:(0,u.Tl)("agentSession.noMessageToCopy")});return await navigator.clipboard.writeText(t),o({handled:!0,message:(0,u.Tl)("agentSession.copiedLastMessage")})}default:{let t=eG(e);if("not-web"===t.kind)return{handled:!1};if("usage-error"===t.kind)return o({handled:!0,error:(0,u.Tl)("agentSession.commandRequiresArgs",{command:t.command,usage:(0,u.Tl)(t.argumentHintKey)})});if("plan"===r&&tw({objective:a}),!await nY(t.prompt))return"plan"===r&&tw(null),{handled:!0,retainInput:!0};if("goal"===r){let e=function(e,t=Date.now()){return{objective:e.trim(),startedAt:t}}(a);ty(e);let t=tR.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&&(tB.current=!1,e2(!1))}},[rb,ry,nI,nY,e0,an,nj,nT,nC,h,m,M]),ai=(0,i.useCallback)((e,t,r)=>rZ(e,t,r,nD),[rZ,nD]),ao=(0,i.useCallback)(async()=>{let e=tR.current;if(e&&ry(e))try{await (0,tf.$)(e,{type:"abort_compaction"})}catch(e){console.error("Failed to abort compaction:",e)}},[ry]),as=(0,i.useCallback)(async e=>{if(!ry())return;let t=eb.current;ek(e);let r=tR.current??await t1.current;if(r)try{await (0,tf.$)(r,{type:"set_thinking_level",level:e}),nb(r)}catch(r){eb.current===e&&ek(t),console.error("Failed to set thinking level:",r)}},[ry,nb,ek]),al=(0,i.useCallback)(async e=>{!ry()||(nu(e),function(e,t=rx()){if(t)try{t.setItem(rg,e)}catch{}}(e),(tR.current??await t1.current)&&rb({type:"info",message:(0,u.Tl)("agentSession.toolPresetNotice")}))},[nu,rb,ry]),au=(0,i.useCallback)(e=>{var t;let r,n=t0.current,a=tX.current;if(!n||!a)return;let i=r$(n),o=(r="initial"===(t={following:"initial"===e||"user-send"===e||tY.current,intent:e,scrollTop:n.scrollTop,nextScrollTop:i,reducedMotion:g}).intent||"user-send"===t.intent,(t.following||r)&&t.scrollTop!==t.nextScrollTop?"follow-stream"===t.intent||"initial"===t.intent||t.reducedMotion?{mode:"assign"}:{mode:"into-view",behavior:"smooth"}:{mode:"skip"});(function(e){if("skip"===e.decision.mode)return{wrote:!1,method:"none"};if("assign"===e.decision.mode){let t=r$(e.container);return e.container.scrollTop===t?{wrote:!1,method:"none"}:(e.container.scrollTop=t,{wrote:!0,method:"scrollTop"})}return e.end.scrollIntoView({block:"nearest",behavior:e.decision.behavior??"smooth"}),{wrote:!0,method:"scrollIntoView"}})({container:n,end:a,decision:o}).wrote&&(tZ.current=Date.now()+700)},[g]),ac=(0,i.useCallback)(e=>{e instanceof KeyboardEvent&&(!rN.has(e.key)||e.target instanceof Element&&e.target.closest("input, textarea, [contenteditable='true']"))||(tQ.current=Date.now()+1200)},[]),ad=(0,i.useCallback)(()=>{let e=Date.now()<=tQ.current;if(!e&&Date.now()<tZ.current||!e)return;let t=t0.current,r=tX.current;t&&r&&(tY.current=r.getBoundingClientRect().bottom-t.getBoundingClientRect().bottom<=24)},[]),ap=(0,i.useCallback)(()=>{tO.current+=1,rv.current?.reset();let e=tk.current;nl.invalidate(),e&&e.readyState!==EventSource.CLOSED&&e.close(),tk.current=null,tI.current&&(clearTimeout(tI.current),tI.current=null),tM.current=0,r9(),tT.current.abort(),tT.current=new AbortController,rq()},[rq,r9,nl]),am=(0,i.useRef)(nj);am.current=nj;let ah=(0,i.useRef)(nV);ah.current=nV,(0,i.useEffect)(()=>{let e=t?.id??null;if(e){tR.current=e;let t=am.current,r=ah.current;t(e,!0,!0).then(t=>{t&&r(e,t)})}else tR.current=null;return()=>{(null===tR.current||tR.current!==tW.current)&&(r8(),ap(),z(null),tR.current=null)}},[t?.id,ap,r8]),(0,i.useEffect)(()=>{if(x||!t||tR.current!==t.id||"ready"!==tF.current.history)return;let e=rW();if(!e)return;let r=function(e){let t=rk(e.origin),r=rw(e.session.id);if(!t||!r)return null;let n=e.messages.map(rC).filter(e=>null!==e).slice(-50),a=rI(e.session.title??e.session.name),i=rI(e.session.cwd),o=rw(e.leafId),s="number"==typeof e.updatedAt&&Number.isFinite(e.updatedAt)?e.updatedAt:Date.now(),l={id:r,messages:n};return void 0!==a&&(l.title=a),void 0!==i&&(l.cwd=i),void 0!==o&&(l.leafId=o),{version:1,origin:t,updatedAt:s,session:l}}({origin:e,session:{id:t.id,title:t.name,cwd:t.cwd},leafId:R,messages:A});r&&function(e){let t=rT(e);if(!t)return;let r=function(e){let t=rT(e);if(!t)return null;try{return JSON.stringify(t)}catch{return null}}(t);if(r){try{window.localStorage.setItem(rA(t.origin,t.session.id),r)}catch{}try{let e=window.OmpguiRemoteReplica;e&&e.storeSnapshot(r)}catch{}}}(r)},[R,x,A,t,C.history]),(0,i.useEffect)(()=>{d?.(eU)},[eU,d]),(0,i.useEffect)(()=>(p?.(nM),()=>p?.(null)),[nM,p]),(0,i.useEffect)(()=>{c&&c(y?.tree??[],R,n0)},[y?.tree,R,n0,c]),(0,i.useEffect)(()=>(window.addEventListener("keydown",ac),window.addEventListener("pointerdown",ac,{passive:!0}),()=>{window.removeEventListener("keydown",ac),window.removeEventListener("pointerdown",ac)}),[ac]),(0,i.useEffect)(()=>{let e=t0.current;if(e)return e.addEventListener("wheel",ac,{passive:!0}),e.addEventListener("touchstart",ac,{passive:!0}),e.addEventListener("scroll",ad,{passive:!0}),()=>{e.removeEventListener("wheel",ac),e.removeEventListener("touchstart",ac),e.removeEventListener("scroll",ad)}},[A.length,w,ad,ac]);let af=(0,i.useRef)(null),ag=(0,i.useRef)(_.isStreaming);ag.current=_.isStreaming;let ax=(0,i.useRef)(A.length);ax.current=A.length;let av=(0,i.useRef)(w);av.current=w;let ay=F.length>0?F[F.length-1]:"",ab=(0,i.useMemo)(()=>{var e;return[(e={loading:w,messageCount:A.length,lastEntryId:ay,streaming:_.isStreaming,streamRevision:_.revision,agentRunning:O,agentPhase:e8?"running_tools"===e8.kind?`running_tools:${e8.tools.map(e=>e.name).join(",")}`:e8.kind:null,widgetSignature:tm.map(e=>`${e.key}:${e.lines.join("\n")}`).join(","),isCompacting:e0,retrySignature:eB?`${eB.attempt}/${eB.maxAttempts}`:"",activeSubagentCount:r6,todoSignature:tg?.length?tg.map(e=>{let t=Array.isArray(e.tasks)?e.tasks:[];return`${e.name??""}:${t.map(e=>e.status??"").join("")}:${t.length}`}).join(","):""}).loading?"1":"0",String(e.messageCount),e.lastEntryId,e.streaming?"1":"0",String(e.streamRevision),e.agentRunning?"1":"0",e.agentPhase??"",e.widgetSignature,e.isCompacting?"1":"0",e.retrySignature,String(e.activeSubagentCount),e.todoSignature].join("\x1f")},[w,A.length,ay,_.isStreaming,_.revision,O,e8,tm,e0,eB,r6,tg]),aw=(0,i.useRef)(null);return(0,i.useEffect)(()=>{let e=t?.id??null;aw.current!==e&&(aw.current=e,tV.current=!1,tY.current=!0,tK.current=!1,null!==af.current&&(cancelAnimationFrame(af.current),af.current=null))},[t?.id]),(0,i.useEffect)(()=>{if(0!==ax.current||ag.current)if(tK.current)tK.current=!1,tV.current=!0,au(ag.current||t_.current?"follow-stream":"user-send");else if(tV.current)tY.current&&null===af.current&&(af.current=requestAnimationFrame(()=>{af.current=null,tY.current&&au(t_.current||ag.current?"follow-stream":"follow-idle")}));else{if(av.current)return;tV.current=!0,au("initial")}},[ab,au]),(0,i.useEffect)(()=>(G.current=!0,()=>{G.current=!1,ap(),null!==af.current&&cancelAnimationFrame(af.current)}),[ap]),(0,i.useEffect)(()=>{let e=new AbortController;return an(e.signal,(l??0)>0).catch(e=>{if(e instanceof DOMException&&"AbortError"===e.name)return}),()=>e.abort()},[an,l]),(0,i.useEffect)(()=>{if(!e4)return;let e=setTimeout(()=>e5(null),3e3);return()=>clearTimeout(e)},[e4]),(0,i.useEffect)(()=>{if(!e6)return;let e=setTimeout(()=>e3(null),6e3);return()=>clearTimeout(e)},[e6]),(0,i.useEffect)(()=>{if(0===tn.visible.length)return;let e=tn.visible.find(e=>e.exiting);if(e){let t=setTimeout(()=>{ta({type:"remove",id:e.id})},180);return()=>clearTimeout(t)}let t=tn.visible[0];if(!t)return;let r=setTimeout(()=>{ta({type:"mark_oldest_exiting"})},"error"===t.type?3e4:5e3);return()=>clearTimeout(r)},[tn.visible]),(0,i.useEffect)(()=>{to(null)},[A.length,nh?.tokens,nh?.percent,nh?.contextWindow]),{data:y,loading:w,error:j,sessionReadiness:C,runtimeError:M,runtimeReady:nc,activeLeafId:R,messages:A,replicaPreview:$,entryIds:F,streamState:_,agentRunning:O,modelNames:Y,modelList:Q,modelsLoading:er,modelError:ea,modelThinkingLevels:el,modelThinkingLevelMaps:ec,newSessionModel:ep,toolPreset:eg,thinkingLevel:ev,fastModeEnabled:eS,fastModeActive:eI,autoRetryEnabled:eE,interruptMode:eT,autoCompactionEnabled:eW,steeringMode:ez,followUpMode:eL,liveModelMeta:eo,retryInfo:eB,contextUsage:nh,systemPrompt:eU,forkingEntryId:eK,isCompacting:e0,compactError:e4,compactResult:e6,currentModel:nd,displayModel:np,sessionStats:nf,slashCommands:e7,slashCommandsLoading:tt,queuedMessages:rS,queueEnqueuePending:rM,notices:tn.visible,dismissNotice:n_,extensionDialog:ts,extensionCustomUi:tu,extensionStatuses:td,extensionWidgets:tm,respondToExtensionUi:nW,sendExtensionCustomInput:nH,isAutoModelSelection:x&&null===ep,agentPhase:e8,subagents:r2,subagentEvents:r4,subagentTranscriptVersions:r5,activeSubagentCount:r6,currentTodoPhase:ng,todoPhases:tg,activeGoal:tv,activePlan:tb,isNew:x,sessionIdRef:tR,messagesEndRef:tX,scrollContainerRef:t0,pendingScrollToUserRef:tK,initialScrollDoneRef:tV,handleSend:nY,handleAbort:nQ,handleFork:nZ,handleNavigate:nX,handleModelChange:n1,handleFastModeChange:n2,handleAutoRetryChange:n4,handleInterruptModeChange:n5,handleAutoCompactionChange:n6,handleSteeringModeChange:n3,handleFollowUpModeChange:n8,handleCycleModel:n9,handleCycleThinkingLevel:n7,handleAbortRetry:ae,handleInterruptAndReply:nJ,handleCompact:ar,handleHandoff:at,handlePromptWithStreamingBehavior:ai,handleAbortCompaction:ao,retryRuntimeState:nK,handleRecallQueuedMessage:rX,handleDeleteQueuedMessage:r0,handlePromoteQueuedMessage:r1,handleBuiltinSlashCommand:aa,handleToolPresetChange:al,handleThinkingLevelChange:as,loadSlashCommands:nT,setActiveLeafId:W,setData:b,setMessages:E,dispatch:D,setAgentRunning:P,setForkingEntryId:eY,bashRunning:q,pendingBash:V,handleAgentEventRef:tU}}({session:e,newSessionCwd:t,advisorEnabled:r,onAgentEnd:R,onSessionCreated:l,onSessionForked:c,modelsRefreshKey:d,chatInputRef:m,onBranchDataChange:h,onSystemPromptChange:f,onSystemPromptLoaderChange:g,onSessionStatsPanelOpen:v,onOpenSettingsTab:y,onOpenFile:w}),e3=P||q;(0,i.useEffect)(()=>(k?.(D),()=>{k?.(!1)}),[k,D]),(0,i.useEffect)(()=>((0,a.G)(e3?eD:null),()=>(0,a.G)(null)),[e3,eD]),(0,i.useEffect)(()=>{if(!e)return;let t=e=>{if(!(e.metaKey||e.ctrlKey)||!e.altKey)return;let t=e.key.toLowerCase();if("m"===t){if(e.preventDefault(),e3)return;e2()}else"t"===t&&(e.preventDefault(),e4())};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[e,e3,e2,e4]);let e8=e?.id??(t?`new:${t}`:"empty"),[e9,e7]=(0,i.useState)(()=>tj(0,0,0)),te=(0,i.useCallback)((e,t)=>{let r=tj($.length,e,t);e7(e=>e===r?e:r)},[$.length]),[tt,tr]=(0,i.useState)(null),tn=ep?[ep.sessionId,ep.sessionFile??"",ep.sessionName??"",ep.userMessages,ep.assistantMessages,ep.toolCalls,ep.toolResults,ep.totalMessages,ep.tokens.input,ep.tokens.output,ep.tokens.cacheRead,ep.tokens.cacheWrite,ep.tokens.total,ep.cost??0].join("|"):null,ta=(0,i.useRef)(ep);ta.current=ep,(0,i.useEffect)(()=>{x?.(ta.current)},[tn,x]),(0,i.useEffect)(()=>()=>{x?.(null)},[x]);let ti=es?`${es.percent??"null"}|${es.contextWindow}|${es.tokens??"null"}`:null,to=(0,i.useRef)(es);to.current=es,(0,i.useEffect)(()=>{b?.(to.current)},[ti,b]),(0,i.useEffect)(()=>()=>{b?.(null)},[b]);let{isDragOver:ts,handleDragEnter:tl,handleDragOver:tu,handleDragLeave:tc,handleDrop:td}=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(rJ)&&(e.preventDefault(),n.current+=1,r(!0))},[]),o=(0,i.useCallback)(e=>{Array.from(e.dataTransfer.items).some(rJ)&&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=>{!e3&&D&&m?.current?.addFiles(e)},[D,e3,m])),tp=(0,i.useMemo)(()=>{let e=new Set,t=[];for(let r=$.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}($[r]);if(!(!n||e.has(n))&&(e.add(n),t.push(n),t.length>=50))break}return t.reverse()},[$]),tg=(0,i.useMemo)(()=>{let e=new Map,t=-1,r=new Map,n=0;return $.forEach((a,i)=>{"toolResult"===a.role&&e.set(a.toolCallId,a),nr(a)&&(t=i),("user"===a.role||"assistant"===a.role)&&r.set(i,n++)}),{toolResultsMap:e,lastAnchorIdx:t,visibleRefIndexByMessage:r}},[$]),tx=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}(tg.visibleRefIndexByMessage.size),tv=(0,i.useMemo)(()=>{let e=new Set;for(let t of $)if(t?.role==="assistant")for(let r of t.content??[])"toolCall"===r.type&&e.add(r.toolCallId);return e},[$]),ty=(0,i.useMemo)(()=>{if(eI?.kind!=="running_tools")return[];let e=new Set(tv),t=F.streamingMessage;if(t?.role==="assistant")for(let r of t.content??[])"toolCall"===r.type&&e.add(r.toolCallId);return eI.tools.filter(t=>!e.has(t.id))},[eI,tv,F.streamingMessage]),tb=eF&&0===$.length&&!F.isStreaming&&!e3,tw=e?.cwd??t??void 0,tS=ed?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}(J[`${ed.provider}:${ed.modelId}`],ed,ea):null,tC=ed?Q[`${ed.provider}:${ed.modelId}`]??null:null,tM=(0,n.jsx)(tm,{ref:m,onSend:eH,onAbort:eD,runtimeReady:D,onPromptWithStreamingBehavior:D&&P?eU:void 0,isStreaming:e3,model:ed,isAutoModelSelection:eC,modelNames:V,modelList:K,modelsLoading:G,modelError:Y,onModelChange:D?eq:void 0,onAbortCompaction:D?eV:void 0,isCompacting:eu,compactResult:ec,thinkingLevel:X,onThinkingLevelChange:D&&(e||eF)?eX:void 0,fastModeEnabled:er,fastModeActive:en,fastModeSupported:!!(ed&&K.some(e=>e.provider===ed.provider&&e.id===ed.modelId&&e.supportsFastMode)),onFastModeChange:D&&(e||eF)?e0:void 0,onAbortRetry:D&&e?e5:void 0,availableThinkingLevels:tS,thinkingLevelMap:tC,modelNameOverride:ea?.name??null,retryInfo:eo,activeGoal:eM,activePlan:eT,advisorEnabled:r,queuedMessages:ef,onRecallQueuedMessage:D?eK:void 0,onDeleteQueuedMessage:D?eY:void 0,onPromoteQueuedToSteer:D?eJ:void 0,queueEnqueuePending:eg,inputHistory:tp,contextUsage:es,sessionCost:ep?.cost??null,slashCommands:em,slashCommandsLoading:eh,onLoadSlashCommands:D?e6:void 0,onBuiltinCommand:D?eQ:void 0,onAudioUnlock:I,draftKey:e?.id??(t?`new:${t}`:void 0),cwd:e?.cwd??t}),tT=ek.filter(e=>"belowEditor"!==e.placement),tR=ek.filter(e=>"belowEditor"===e.placement);if(A)return(0,n.jsx)("div",{role:"status",className:"flex h-full items-center justify-center",style:{color:"var(--text-muted)"},children:j("chatWindow.loadingSession")});if(E)return(0,n.jsx)("div",{role:"alert",className:"flex h-full items-center justify-center",style:{color:"var(--accent-strong)",padding:"0 var(--space-6)",textAlign:"center",fontSize:"var(--text-base)"},children:E});let tW=eF||"ready"===H.runtime?null:(0,n.jsxs)("div",{role:"error"===H.runtime?"alert":"status","aria-live":"polite",style:{display:"flex",alignItems:"center",gap:10,margin:"0 auto var(--space-3)",maxWidth:744,padding:"8px 10px",border:"1px solid color-mix(in srgb, var(--status-warning) 35%, var(--border))",borderRadius:"var(--radius-control)",background:"color-mix(in srgb, var(--status-warning) 8%, var(--bg-panel))",color:"var(--text-muted)",fontSize:"var(--text-sm)"},children:[(0,n.jsx)("span",{style:{minWidth:0,flex:1,overflowWrap:"anywhere"},children:"error"===H.runtime?_?j("chatWindow.runtimeUnavailableDetail",{error:_}):j("chatWindow.runtimeUnavailable"):j("chatWindow.runtimePreparing")}),"error"===H.runtime&&(0,n.jsx)("button",{type:"button",onClick:()=>void O(),style:{flexShrink:0,padding:"4px 9px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg)",color:"var(--text)",cursor:"pointer",fontSize:"var(--text-sm)"},children:j("chatWindow.runtimeRetry")})]});return(0,n.jsxs)("div",{className:"relative flex h-full flex-col overflow-hidden",onDragEnter:tl,onDragOver:tu,onDragLeave:tc,onDrop:td,children:[ts&&D&&!e3&&(0,n.jsxs)("div",{className:"drop-zone-overlay pointer-events-none absolute inset-0 flex items-center justify-center backdrop-blur-[1px]",style:{zIndex:"var(--z-dropdown)"},children:[(0,n.jsx)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:[0,.8,1.6].map(e=>(0,n.jsx)("div",{className:"drop-ripple-ring absolute h-[720px] w-[720px] rounded-full border-[1.5px] border-solid",style:{transformOrigin:"center",animationDelay:`${e}s`}},e))}),(0,n.jsxs)("svg",{width:"280",height:"280",viewBox:"0 0 140 140",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"drop-zone-illustration",children:[(0,n.jsx)("rect",{x:"28",y:"44",width:"84",height:"60",rx:"8",fill:"color-mix(in srgb, var(--accent) 8%, transparent)",stroke:"color-mix(in srgb, var(--accent) 50%, transparent)",strokeWidth:"1.8"}),(0,n.jsx)("path",{d:"M36 100 L54 72 L68 88 L80 74 L104 100Z",fill:"color-mix(in srgb, var(--accent) 16%, transparent)",stroke:"color-mix(in srgb, var(--accent) 40%, transparent)",strokeWidth:"1.4",strokeLinejoin:"round"}),(0,n.jsx)("circle",{cx:"96",cy:"58",r:"8",fill:"color-mix(in srgb, var(--accent) 22%, transparent)",stroke:"color-mix(in srgb, var(--accent) 55%, transparent)",strokeWidth:"1.6"}),(0,n.jsxs)("g",{stroke:"color-mix(in srgb, var(--accent) 45%, transparent)",strokeWidth:"1.4",strokeLinecap:"round",children:[(0,n.jsx)("line",{x1:"96",y1:"46",x2:"96",y2:"43"}),(0,n.jsx)("line",{x1:"96",y1:"70",x2:"96",y2:"73"}),(0,n.jsx)("line",{x1:"84",y1:"58",x2:"81",y2:"58"}),(0,n.jsx)("line",{x1:"108",y1:"58",x2:"111",y2:"58"}),(0,n.jsx)("line",{x1:"87.5",y1:"49.5",x2:"85.4",y2:"47.4"}),(0,n.jsx)("line",{x1:"104.5",y1:"66.5",x2:"106.6",y2:"68.6"}),(0,n.jsx)("line",{x1:"104.5",y1:"49.5",x2:"106.6",y2:"47.4"}),(0,n.jsx)("line",{x1:"87.5",y1:"66.5",x2:"85.4",y2:"68.6"})]})]})]}),ey&&(0,n.jsx)(th,{request:ey,onRespond:ej,runtimeReady:D}),(0,n.jsx)(tk,{subagent:tt,sessionId:e?.id??eL.current??null,transcriptVersion:tt?eA[tt.id]??0:0,events:tt?eW[tt.id]??[]:void 0,onClose:()=>tr(null)}),eb&&(0,n.jsx)(nd,{request:eb,onInput:eS,runtimeReady:D}),tb?(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 py-8",style:{minHeight:0},children:(0,n.jsxs)("div",{className:"w-full",children:[(0,n.jsx)("div",{style:{paddingLeft:16,paddingRight:16},children:(0,n.jsxs)("div",{style:{maxWidth:744,margin:"0 auto"},children:[(0,n.jsxs)("div",{className:"mb-3 empty-chat-brand",style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"var(--space-5)",fontFamily:"var(--font-mono)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10,minWidth:0,flex:1,lineHeight:1.4,overflow:"hidden"},children:[(0,n.jsx)("span",{style:{fontSize:18,fontWeight:600,letterSpacing:"0.04em",color:"var(--accent)",flexShrink:0,whiteSpace:"nowrap"},children:"⌥"}),(0,n.jsx)("span",{style:{fontSize:18,color:"var(--text)",fontWeight:600,letterSpacing:"0.02em",flexShrink:0,whiteSpace:"nowrap"},children:"ompgui"})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-end",gap:"var(--space-1)",flexShrink:0},children:[(0,n.jsxs)("span",{style:{fontSize:"var(--text-sm)",color:"var(--text-muted)"},children:["gui ",(0,n.jsxs)("span",{style:{color:"var(--text)"},children:["v","0.7.6"]})]}),(0,n.jsx)(na,{refreshKey:p})]})]}),(0,n.jsx)(nc,{notices:ex,onDismiss:ev,align:"right"})]})}),tM]})})}):(0,n.jsxs)(n.Fragment,{children:[tW,(0,n.jsxs)("div",{className:"relative flex flex-1 overflow-hidden",children:[(0,n.jsx)("div",{style:{position:"absolute",top:12,left:0,right:20*!M,zIndex:40,padding:"0 16px",pointerEvents:"none"},children:(0,n.jsx)("div",{style:{maxWidth:744,margin:"0 auto"},children:(0,n.jsx)(nc,{notices:ex,onDismiss:ev,floating:!0,align:"right"})})}),(0,n.jsx)("div",{ref:eB,className:"flex-1 overflow-y-auto pt-6"+(M?"":" [scrollbar-width:none]"),children:(0,n.jsx)("div",{style:{paddingLeft:16,paddingRight:16},children:(0,n.jsxs)("div",{style:{maxWidth:744,margin:"0 auto"},children:[(0,n.jsx)(nl,{statuses:ew}),(0,n.jsx)(nu,{widgets:tT}),(0,n.jsx)(no,{messages:$,entryIds:z,conversationMeta:tg,messageRefs:tx,isStreaming:F.isStreaming,sessionBusy:e3,runtimeReady:D,isNew:eF,forkingEntryId:el,handleFork:eO,handleNavigate:eP,handleEditContent:W,modelNames:V,messageCwd:tw,onOpenFile:w,sessionId:e?.id??eL.current??void 0,toolCallsDefaultCollapsed:o,sessionKey:e8,scrollContainerRef:eB,onRenderWindowChange:te}),F.isStreaming&&F.streamingMessage&&(0,n.jsx)(ei,{message:F.streamingMessage,isStreaming:!0,modelNames:V,cwd:tw,onOpenFile:w,toolCallsDefaultCollapsed:o}),o&&ty.map(e=>(0,n.jsxs)("div",{role:"status","aria-label":j("chatWindow.runningNamed",{names:e.name}),style:{display:"flex",alignItems:"center",gap:7,marginBottom:"var(--space-4)",padding:"var(--space-3) 10px",border:"1px solid color-mix(in srgb, var(--status-success) 25%, transparent)",borderRadius:"var(--radius-control)",background:"color-mix(in srgb, var(--status-success) 4%, transparent)",color:"var(--text-muted)",fontSize:"var(--text-md)"},children:[(0,n.jsx)("span",{"aria-hidden":!0,className:"live-status-dot live-pulse inline-block h-1.5 w-1.5 shrink-0 rounded-full bg-accent"}),(0,n.jsx)("span",{style:{color:"var(--status-success)",fontFamily:"var(--font-mono)",fontWeight:600,fontSize:"var(--text-sm)"},children:e.name})]},e.id)),P&&!F.streamingMessage&&0===ty.length&&(0,n.jsxs)("div",{role:"status","aria-live":"polite",className:"py-2 text-text-muted flex items-center gap-2",style:{fontSize:"var(--text-base)"},children:[(0,n.jsx)("span",{"aria-hidden":!0,className:"live-status-dot live-pulse inline-block h-2 w-2 shrink-0 rounded-full bg-accent"}),(0,n.jsx)("span",{children:[function(e){if(e?.kind==="running_tools"){let t=e.tools.map(e=>e.name);return 0===t.length?(0,u.Tl)("chatWindow.runningTool"):t.length<=3?(0,u.Tl)("chatWindow.runningNamed",{names:t.join(", ")}):(0,u.Tl)("chatWindow.runningNamedMore",{names:t.slice(0,2).join(", "),more:t.length-2})}return e?.kind==="waiting_model"?(0,u.Tl)("chatWindow.waitingModel"):e?.kind==="running_command"?(0,u.Tl)("chatWindow.runningCommand"):(0,u.Tl)("chatWindow.thinking")}(eI),eE>0?S("chatWindow.subagentCount",eE):null,e$?j("chatWindow.todoPhaseStatus",{name:e$.name,done:e$.done,total:e$.total}):null].filter(Boolean).join(" \xb7 ")})]}),q&&!U&&(0,n.jsxs)("div",{role:"status","aria-live":"polite",className:"py-2 text-text-muted flex items-center gap-2",style:{fontSize:"var(--text-base)"},children:[(0,n.jsx)("span",{"aria-hidden":!0,className:"live-status-dot live-pulse inline-block h-2 w-2 shrink-0 rounded-full bg-accent"}),(0,n.jsx)("span",{children:j("chatWindow.runningCommand")})]}),U&&(0,n.jsx)(ei,{message:{role:"bashExecution",command:U.command,output:"",excludeFromContext:U.excludeFromContext},sessionId:e?.id??eL.current??void 0}),(0,n.jsx)("div",{ref:eN})]})})}),M?null:(0,n.jsx)(tI,{messages:$,scrollContainer:eB,messageRefs:tx,layoutKey:e9})]}),(0,n.jsxs)("div",{className:"relative",style:{flexShrink:0},children:[(0,n.jsx)("div",{style:{paddingLeft:16,paddingRight:16},children:(0,n.jsxs)("div",{style:{maxWidth:744,margin:"0 auto"},children:[(0,n.jsx)(t5,{todoPhases:ez,subagents:eR,subagentEvents:eW,onSelectSubagent:tr}),(0,n.jsx)(nu,{widgets:tR})]})}),tM]})]})]})}function nl({statuses:e}){return 0===e.length?null:(0,n.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"var(--space-2)",marginBottom:"var(--space-4)"},children:e.map(e=>(0,n.jsxs)("div",{className:"ui-compact-surface",style:{display:"flex",alignItems:"center",gap:"var(--space-3)",maxWidth:"100%",padding:"var(--space-2) var(--space-4)",border:"1px solid color-mix(in srgb, var(--accent) 24%, var(--border))",borderRadius:"var(--radius-control)",background:"color-mix(in srgb, var(--accent) 7%, var(--bg))",color:"var(--text-muted)",fontSize:"var(--text-md)"},children:[(0,n.jsx)("span",{style:{color:"var(--accent)",fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)"},children:e.key}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.text})]},e.key))})}function nu({widgets:e}){return 0===e.length?null:(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"var(--space-3)",marginBottom:"var(--space-4)"},children:e.map(e=>(0,n.jsxs)("div",{className:"ui-compact-surface",style:{border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)",overflow:"hidden"},children:[(0,n.jsx)("div",{style:{padding:"5px 9px",borderBottom:"1px solid var(--border)",color:"var(--text-dim)",fontSize:"var(--text-sm)",fontFamily:"var(--font-mono)"},children:e.key}),(0,n.jsx)("pre",{style:{margin:0,padding:"var(--space-4) 9px",color:"var(--text-muted)",fontSize:"var(--text-md)",lineHeight:1.5,whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"var(--font-mono)"},children:e.lines.join("\n")})]},e.key))})}function nc({notices:e,onDismiss:t,floating:r=!1,align:a="left"}){return 0===e.length?null:(0,n.jsx)("div",{role:"status","aria-live":"polite",style:{display:"flex",flexDirection:"column",alignItems:"right"===a?"flex-end":"stretch",marginBottom:10*!r,pointerEvents:r?"auto":void 0},children:e.map((a,i)=>{let o="error"===a.type?"var(--status-error)":"warning"===a.type?"var(--status-warning)":"success"===a.type?"var(--status-success)":"var(--accent)",s="error"===a.type;return(0,n.jsxs)("div",{className:"notice-shelf-item",style:{display:"flex",alignItems:s?"flex-start":"center",gap:"var(--space-4)",minHeight:"var(--control-height-lg)",height:s?"auto":"var(--control-height-lg)",maxHeight:s?96:48,marginBottom:i===e.length-1?0:"var(--space-2)",overflow:"hidden",borderRadius:"var(--radius-control)",border:`1px solid ${s?"color-mix(in srgb, var(--status-error) 35%, var(--border))":"color-mix(in srgb, var(--border) 70%, transparent)"}`,background:s?"color-mix(in srgb, var(--status-error) 7%, var(--bg))":"var(--bg)",color:s?"var(--text)":"var(--text-muted)",width:"fit-content",maxWidth:s?"min(100%, 640px)":"min(100%, 620px)",boxShadow:r?"var(--shadow-pop)":"var(--shadow-card)",fontSize:"var(--text-md)",lineHeight:s?1.4:1.35,transformOrigin:"top center",animation:a.exiting?"notice-shelf-out var(--dur-med) ease-in forwards":"notice-shelf-in var(--dur-med) var(--ease-out-warm) both",padding:s?"8px 8px 8px 10px":"0 10px"},children:[(0,n.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:o,flexShrink:0,marginTop:6*!!s}}),(0,n.jsx)("span",{style:{padding:s?"0":"8px 0",minWidth:0,maxWidth:"100%",overflow:"hidden",display:s?"-webkit-box":"block",WebkitLineClamp:s?3:void 0,WebkitBoxOrient:s?"vertical":void 0,overflowWrap:"anywhere",whiteSpace:s?"normal":"nowrap",textOverflow:s?"clip":"ellipsis",flex:1},title:a.message,children:a.message}),t&&(0,n.jsx)("button",{type:"button",onClick:()=>t(a.id),"aria-label":(0,u.Tl)("ui.dismiss"),style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:18,height:18,padding:0,border:0,borderRadius:"var(--radius-control)",background:"transparent",color:"var(--text-dim)",cursor:"pointer",flexShrink:0,marginTop:+!!s},children:(0,n.jsx)("span",{"aria-hidden":!0,style:{fontSize:12,lineHeight:1},children:"\xd7"})})]},a.id)})})}function nd({request:e,onInput:t,runtimeReady:r=!0}){let{t:a}=(0,u.s9)(),o=(0,i.useRef)(null),s=(0,i.useRef)(!1),l=function(e){let t=/^[┌├└╭╰][─┬┴┼]+[┐┤┘╮╯]$/,r=[];for(let n of e){let e=n.replace(r0,""),a=r4(e).trimEnd();if(t.test(a))continue;let i=e,o=r3(i);("│"===o||"┃"===o)&&" "===r3(i=r6(i,0))&&(i=r6(i,0));let s=function(e){let t=r5(e);for(let e=t.length-1;e>=0;e--)if(""!==t[e].char.trim())return e;return -1}(i),l=s>=0?r5(i)[s]?.char:void 0;("│"===l||"┃"===l)&&(i=r6(i,s)),r.push(function(e){let t=e;for(;;){let e=r5(t),r=e[e.length-1];if(!r||""!==r.char.trim())return t;t=t.slice(0,r.start)+t.slice(r.end)}}(i))}for(;r.length>0&&""===r4(r[0]).trim();)r.shift();for(;r.length>0&&""===r4(r[r.length-1]).trim();)r.pop();return r.length?r:e}(e.lines);return(0,i.useEffect)(()=>{r&&o.current?.focus()},[e.id,r]),(0,n.jsx)("div",{style:{position:"absolute",inset:0,zIndex:"var(--z-extension-dialog)",display:"flex",alignItems:"center",justifyContent:"center",padding:20,background:"var(--overlay-backdrop)"},children:(0,n.jsxs)("div",{role:"dialog","aria-modal":"true",onClick:e=>{r&&(e.target.closest("button")||o.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:o,"aria-label":a("chatWindow.extensionTerminalInput"),"aria-disabled":!r,disabled:!r,autoCapitalize:"off",autoComplete:"off",autoCorrect:"off",spellCheck:!1,onKeyDown:n=>{if(!r||s.current||n.nativeEvent.isComposing)return;let a=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=r9[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":" ":r8[e.key]??null}(n);a&&(n.preventDefault(),n.stopPropagation(),t(e,a))},onInput:n=>{if(!r||s.current||n.nativeEvent.isComposing)return;let a=n.currentTarget.value;n.currentTarget.value="",a&&t(e,a)},onCompositionStart:()=>{s.current=!0},onCompositionEnd:n=>{if(s.current=!1,!r)return;let a=n.currentTarget;queueMicrotask(()=>{let n=a.value;a.value="",n&&r&&t(e,n)})},onPaste:n=>{if(n.preventDefault(),!r)return;let a=n.clipboardData.getData("text");a&&t(e,`\x1b[200~${a}\x1b[201~`)},style:{position:"absolute",width:1,height:1,padding:0,border:0,opacity:0,pointerEvents:"none"}}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"var(--space-5)",padding:"10px var(--space-5)",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("div",{style:{color:"var(--text)",fontSize:"var(--text-base)",fontWeight:650},children:a("chatWindow.extensionPanel")}),(0,n.jsx)("button",{onClick:()=>{r&&t(e,"\x03")},disabled:!r,"aria-disabled":!r,style:{padding:"5px 9px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:r?"pointer":"not-allowed",opacity:r?void 0:.5,fontSize:"var(--text-md)"},children:a("chatWindow.close")})]}),(0,n.jsx)("pre",{style:{margin:0,padding:14,maxHeight:"calc(min(760px, 100vh - 40px) - 48px)",overflow:"auto",background:"var(--bg-panel)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:"var(--text-base)",lineHeight:1.45,whiteSpace:"pre"},children:(l.length?l:[""]).map((e,t,r)=>{var a;return(0,n.jsxs)(i.Fragment,{children:[(a=`line-${t}`,(function(e){let t,r=[],n={},a=0;for(rX.lastIndex=0;null!==(t=rX.exec(e));)t.index>a&&r.push({text:e.slice(a,t.index),style:n}),n=function(e,t){let r={...e};for(let e=0;e<t.length;e++){let n=t[e];if(0===n)for(let e of Object.keys(r))delete r[e];else if(1===n)r.fontWeight=700;else if(2===n)r.opacity=.65;else if(3===n)r.fontStyle="italic";else if(4===n)r.textDecoration="underline";else if(22===n)delete r.fontWeight,delete r.opacity;else if(23===n)delete r.fontStyle;else if(24===n)delete r.textDecoration;else if(39===n)delete r.color;else if(49===n)delete r.background;else if(n>=30&&n<=37)r.color=r1[n-30];else if(n>=90&&n<=97)r.color=r2[n-90];else if(n>=40&&n<=47)r.background=r1[n-40];else if(n>=100&&n<=107)r.background=r2[n-100];else if((38===n||48===n)&&2===t[e+1]){let[a,i,o]=[t[e+2],t[e+3],t[e+4]];[a,i,o].every(e=>"number"==typeof e&&Number.isFinite(e))&&(38===n?r.color=`rgb(${a}, ${i}, ${o})`:r.background=`rgb(${a}, ${i}, ${o})`),e+=4}else if((38===n||48===n)&&5===t[e+1]){let a=function(e){if(e>=0&&e<8)return r1[e];if(e>=8&&e<16)return r2[e-8];if(e>=16&&e<=231){let t=e-16,r=Math.floor(t/36),n=Math.floor(t%36/6),a=e=>0===e?0:55+40*e;return`rgb(${a(r)}, ${a(n)}, ${a(t%6)})`}if(e>=232&&e<=255){let t=8+(e-232)*10;return`rgb(${t}, ${t}, ${t})`}}(t[e+2]);a&&(38===n?r.color=a:r.background=a),e+=2}}return r}(n,t[1]?t[1].split(";").map(e=>Number(e||"0")):[0]),a=t.index+t[0].length;return a<e.length&&r.push({text:e.slice(a),style:n}),r})(e).map((e,t)=>Object.keys(e.style).length>0?(0,n.jsx)("span",{style:e.style,children:e.text},`${a}-${t}`):e.text)),t<r.length-1?"\n":null]},t)})})]})})}},99314:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(99537).A)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])}}]);