@qt4798/pi-web 0.18.11 → 0.18.12

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 (72) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +6 -6
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/required-server-files.js +1 -1
  6. package/.next/required-server-files.json +1 -1
  7. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/_global-error.html +1 -1
  9. package/.next/server/app/_global-error.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  14. package/.next/server/app/_not-found.html +1 -1
  15. package/.next/server/app/_not-found.rsc +1 -1
  16. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  19. package/.next/server/app/api/agent/[id]/events/route.js +3 -3
  20. package/.next/server/app/api/agent/running/events/route.js +2 -2
  21. package/.next/server/app/api/app-update/route.js +1 -1
  22. package/.next/server/app/api/auth/login/[provider]/route.js +1 -1
  23. package/.next/server/app/api/backup/import/route.js +1 -1
  24. package/.next/server/app/api/events/route.js +3 -3
  25. package/.next/server/app/api/files/[...path]/route.js +2 -2
  26. package/.next/server/app/api/git/diff/route.js +2 -2
  27. package/.next/server/app/api/git/status/route.js +2 -2
  28. package/.next/server/app/api/skills/install/route.js +1 -1
  29. package/.next/server/app/api/tasks/[id]/changed-files/route.js +2 -2
  30. package/.next/server/app/api/tasks/[id]/diff/route.js +2 -2
  31. package/.next/server/app/api/themes/[name]/route.js +1 -1
  32. package/.next/server/app/api/themes/[name]/route.js.nft.json +1 -1
  33. package/.next/server/app/api/themes/route.js +1 -1
  34. package/.next/server/app/api/themes/route.js.nft.json +1 -1
  35. package/.next/server/app/api/web-auth/route.js +1 -1
  36. package/.next/server/app/index.html +1 -1
  37. package/.next/server/app/index.rsc +3 -3
  38. package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  39. package/.next/server/app/index.segments/_full.segment.rsc +3 -3
  40. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  41. package/.next/server/app/login/page.js +1 -1
  42. package/.next/server/app/login/page.js.nft.json +1 -1
  43. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  44. package/.next/server/app/login.html +1 -1
  45. package/.next/server/app/login.rsc +2 -2
  46. package/.next/server/app/login.segments/_full.segment.rsc +2 -2
  47. package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  48. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  49. package/.next/server/app/page.js +7 -7
  50. package/.next/server/app/page.js.nft.json +1 -1
  51. package/.next/server/app/page_client-reference-manifest.js +1 -1
  52. package/.next/server/app-paths-manifest.json +6 -6
  53. package/.next/server/chunks/4253.js +1 -1
  54. package/.next/server/chunks/6429.js +1 -1
  55. package/.next/server/chunks/{1213.js → 6593.js} +1 -1
  56. package/.next/server/chunks/7915.js +1 -1
  57. package/.next/server/chunks/8526.js +1 -0
  58. package/.next/server/middleware-build-manifest.js +1 -1
  59. package/.next/server/middleware.js +1 -1
  60. package/.next/server/pages/404.html +1 -1
  61. package/.next/server/pages/500.html +1 -1
  62. package/.next/server/server-reference-manifest.json +1 -1
  63. package/.next/static/chunks/5170-6ee3710ea5c117f3.js +1 -0
  64. package/.next/static/chunks/app/login/{page-9e7302325b4e8bec.js → page-7d898795adddde04.js} +1 -1
  65. package/.next/static/chunks/app/{page-34c582c8b53234cc.js → page-abc85eb2cca48bce.js} +7 -7
  66. package/.next/trace +84 -84
  67. package/.next/trace-build +1 -1
  68. package/package.json +1 -1
  69. package/.next/server/chunks/8152.js +0 -1
  70. package/.next/static/chunks/2981-f36a0ad7528e24b1.js +0 -1
  71. /package/.next/static/{vqJU0DdnD5Laxw6J_7xzv → fs5JGinkTfT6aWXJqEdny}/_buildManifest.js +0 -0
  72. /package/.next/static/{vqJU0DdnD5Laxw6J_7xzv → fs5JGinkTfT6aWXJqEdny}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974],{14755:(e,t,r)=>{"use strict";r.d(t,{Q8:()=>n,SC:()=>a,YO:()=>u,getPresetFromTools:()=>c,xG:()=>p});let n="configured",o=[],i=["read","grep","find","ls"],s=["read","bash","edit","write"],l=["bash","read","edit","write","grep","find","ls"],a=["read","grep","find","ls"],d=new Set([...l,"powershell"]);function c(e){return u(e.filter(e=>e.active).map(e=>e.name))}function u(e){if(0===e.length)return"none";let t=e.map(e=>"powershell"===e?"bash":e).filter(e=>d.has(e)).sort().join(",");return t===[...i].sort().join(",")?"plan":t===[...s].sort().join(",")?"default":t===[...l].sort().join(",")?"full":"default"}function p(e){if(e!==n)return"none"===e?[...o]:"full"===e?[...l]:"plan"===e?[...a]:[...s]}},23084:(e,t,r)=>{"use strict";async function n(e,t){let r=await fetch(e,{...t,headers:t?.body?{"Content-Type":"application/json"}:void 0}),n=await r.json().catch(()=>({}));if(!r.ok||n.error)throw Error(n.error??`HTTP ${r.status}`);return n}async function o(e){return(await n(`/api/tasks?projectRoot=${encodeURIComponent(e)}`)).tasks}async function i(){return(await n("/api/tasks/projects")).projects}async function s(e){return(await n("/api/tasks",{method:"POST",body:JSON.stringify(e)})).task}async function l(e,t,r){return(await n(`/api/tasks/${e}?projectRoot=${encodeURIComponent(t)}`,{method:"PATCH",body:JSON.stringify({projectRoot:t,...r})})).task}async function a(e,t,r=!1){await n(`/api/tasks/${e}?projectRoot=${encodeURIComponent(t)}&deleteWorktree=${+!!r}`,{method:"DELETE"})}async function d(e,t,r,o){await n(`/api/tasks/${e}/${r}?projectRoot=${encodeURIComponent(t)}`,{method:"POST",body:JSON.stringify({...o})})}async function c(e,t,r){await n(`/api/tasks/${e}/return?projectRoot=${encodeURIComponent(t)}`,{method:"POST",body:JSON.stringify({feedback:r})})}async function u(e,t,r,o){await n(`/api/tasks/${e}/merge?projectRoot=${encodeURIComponent(t)}`,{method:"POST",body:JSON.stringify({message:r,deleteWorktree:o})})}async function p(e,t,r){await n(`/api/tasks/${e}/complete?projectRoot=${encodeURIComponent(t)}`,{method:"POST",body:JSON.stringify({deleteWorktree:r})})}async function h(e,t,r){await n(`/api/tasks/${e}/archive?projectRoot=${encodeURIComponent(t)}`,{method:"POST",body:JSON.stringify({archived:r})})}async function g(e,t){await n("/api/tasks/batch?mode=reorder",{method:"POST",body:JSON.stringify({projectRoot:e,orderedIds:t})})}async function x(e){return(await n("/api/tasks/batch?mode=start-all",{method:"POST",body:JSON.stringify({projectRoot:e})})).claimed}async function f(e,t,r=500){return(await n(`/api/tasks/${t}/events?projectRoot=${encodeURIComponent(e)}&limit=${r}`)).events}async function m(e,t){return n(`/api/tasks/${t}/changed-files?projectRoot=${encodeURIComponent(e)}`)}async function v(e,t,r){return n(`/api/tasks/${t}/diff?projectRoot=${encodeURIComponent(e)}&file=${encodeURIComponent(r)}`)}async function y(e){return(await n(`/api/tasks/settings?projectRoot=${encodeURIComponent(e)}`)).settings}async function b(e){return(await n(`/api/tasks/settings?projectRoot=${encodeURIComponent(e)}&own=1`)).settings}async function k(e,t){await n("/api/tasks/settings",{method:"PUT",body:JSON.stringify({projectRoot:e,settings:t})})}async function j(e){await n(`/api/tasks/settings?projectRoot=${encodeURIComponent(e)}`,{method:"DELETE"})}async function w(){return(await n("/api/tasks/templates")).templates}async function S(e){return(await n("/api/tasks/templates",{method:"POST",body:JSON.stringify(e)})).template}async function C(e){await n(`/api/tasks/templates?id=${e}`,{method:"DELETE"})}r.d(t,{B_:()=>C,CG:()=>y,E:()=>j,HB:()=>f,JH:()=>m,Lu:()=>g,Pf:()=>b,VB:()=>w,Vk:()=>o,Wt:()=>i,ZX:()=>p,a5:()=>x,bH:()=>a,createTaskApi:()=>s,eA:()=>k,et:()=>h,h:()=>v,in:()=>c,nY:()=>S,oB:()=>u,oQ:()=>d,updateTaskApi:()=>l})},64983:(e,t,r)=>{"use strict";r.d(t,{AppShell:()=>hc});var n=r(95155),o=r(12115),i=r(53516),s=r(73321);function l(e){let t=e.get("cwd")?.trim()||null;return{requestedCwd:t,sessionId:t?null:e.get("session")||null,sidebarCollapsed:"collapsed"===e.get("sidebar")}}let a=null;class d extends Error{constructor(e,t){super(e),this.code=t,this.name="SessionTitleClientError"}}async function c(e,t){let r=await fetch(`/api/sessions/${encodeURIComponent(e)}/auto-name`,{method:"POST",signal:t}),n=await r.json().catch(()=>({}));if(!r.ok||!n.title)throw new d(n.error||`HTTP ${r.status}`,n.code);return{title:n.title,usage:n.usage}}async function u(e){try{let t=await fetch(`/api/sessions/${encodeURIComponent(e)}/auto-name`,{method:"DELETE"}),r=await t.json().catch(()=>({}));return t.ok&&!0===r.cancelled}catch{return!1}}var p=r(47650),h=r(25349),g=r(64178),x=r(9720),f=r(98664),m=r(20077),v=r(49467),y=r(85265),b=r(56123),k=r(94125),j=r(25388),w=r(3083),S=r(6033),C=r(73988),z=r(41780),T=r(11693),R=r(77862),I=r(80388),M=r(36824),E=r(19157),$=r(42515),W=r(44368);function L(e,t){(0,o.useEffect)(()=>{if(!e)return;let r=e=>{"Escape"===e.key&&t()};return document.addEventListener("keydown",r),()=>document.removeEventListener("keydown",r)},[e,t])}var N=r(27289),A=r(93534),P=r(45781),F=r(72422),D=r(5085),H=r(68731),O=r(60721),B=r(93912),U=r(23675),_=r(48716),q=r(26131),K=r(47013),V=r(51265),J=r(95516),Y=r(32981);let G={"restore-script":"restore","generate-cmd":"cmd",keep:"keep","keep-with-warning":"warning",manual:"manual"};function X({cwd:e}){let{t}=(0,Y.s)(),r=(0,o.useRef)(null),[i,s]=(0,o.useState)(!0),[l,a]=(0,o.useState)(!1),[d,c]=(0,o.useState)(!1),[u,p]=(0,o.useState)(null),[h,g]=(0,o.useState)(null),[x,f]=(0,o.useState)(new Set),[m,v]=(0,o.useState)(new Set),[y,b]=(0,o.useState)(!1),[k,j]=(0,o.useState)(null),[w,S]=(0,o.useState)(!1),[C,z]=(0,o.useState)(null),[T,R]=(0,o.useState)([]),[I,M]=(0,o.useState)(""),[E,$]=(0,o.useState)(null),[W,L]=(0,o.useState)(null);(0,o.useEffect)(()=>{fetch("/api/models").then(e=>e.json()).then(e=>{let t=Array.isArray(e.modelList)?e.modelList:[];R(t),t.length>0&&M(`${t[0].provider}/${t[0].id}`)}).catch(()=>{})},[]);let N=(0,o.useCallback)(async()=>{c(!0),p(null);try{let e=await fetch("/api/backup/export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({includeSecrets:i,includeSessions:l})});if(!e.ok){let t=await e.json();p(t.error??`HTTP ${e.status}`);return}let t=await e.blob(),r=(e.headers.get("Content-Disposition")??"").match(/filename="?([^";]+)"?/),n=URL.createObjectURL(t),o=document.createElement("a");o.href=n,o.download=r?.[1]??"pi-backup.zip",document.body.appendChild(o),o.click(),o.remove(),URL.revokeObjectURL(n)}catch{p(String(t("desktop.backupExportFailed")))}finally{c(!1)}},[i,l,t]),A=(0,o.useCallback)(async e=>{if(e){j(null),z(null),g(null);try{let r=new FormData;r.append("phase","parse"),r.append("file",e);let n=await fetch("/api/backup/import",{method:"POST",body:r}),o=await n.json();if(!n.ok||o.error)return void j(o.error??`HTTP ${n.status}`);if("preview"!==o.phase||!o.preview)return void j(String(t("desktop.backupImportFailed")));g(o),f(new Set(o.preview.categories)),v(new Set),b(!1)}catch{j(String(t("desktop.backupImportFailed")))}}},[t]),P=(0,o.useCallback)(async()=>{if(h){S(!0),j(null);try{let e=new FormData;e.append("phase","restore"),e.append("token",h.token),e.append("selections",JSON.stringify({categories:[...x],skippedMcpServers:[...m],reinstallNpm:y}));let n=await fetch("/api/backup/import",{method:"POST",body:e}),o=await n.json();if(!n.ok||o.error)return void j(o.error??`HTTP ${n.status}`);if("report"!==o.phase||!o.report)return void j(String(t("desktop.backupRestoreFailed")));z(o.report),g(null),r.current&&(r.current.value="")}catch{j(String(t("desktop.backupRestoreFailed")))}finally{S(!1)}}},[h,x,m,y,t]),F=(0,o.useCallback)(async r=>{if(r.installPrompt&&e){$(r.name),L(null);try{let t=I.indexOf("/"),n=t>0?I.slice(0,t):void 0,o=t>0?I.slice(t+1):void 0,i=await fetch("/api/agent/new",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,message:r.installPrompt,provider:n,modelId:o})}),s=await i.json();if(!i.ok||s.error)return void j(s.error??`HTTP ${i.status}`);L({server:r.name,sessionId:s.sessionId})}catch{j(String(t("desktop.backupInstallSessionFailed")))}finally{$(null)}}},[e,I,t]),D=e=>"win32"===e?"Windows":"darwin"===e?"macOS":"Linux";return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",flex:1,minWidth:0,minHeight:0,overflowY:"auto"},children:[(0,n.jsx)("header",{style:{padding:"18px 22px 14px",borderBottom:"1px solid var(--border)"},children:(0,n.jsx)("h1",{style:{margin:0,fontSize:16,fontWeight:700,color:"var(--text)"},children:t("desktop.backup")})}),(0,n.jsxs)("section",{style:{padding:"18px 22px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("h2",{style:{margin:0,fontSize:13,fontWeight:600,color:"var(--text)"},children:t("desktop.backupExportTitle")}),(0,n.jsx)("p",{style:{margin:"6px 0 12px",fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:t("desktop.backupExportDescription")}),(0,n.jsxs)("label",{style:{display:"flex",gap:8,alignItems:"flex-start",cursor:"pointer",marginBottom:8},children:[(0,n.jsx)("input",{type:"checkbox",checked:i,onChange:e=>s(e.target.checked),style:{marginTop:2}}),(0,n.jsxs)("span",{style:{fontSize:12,color:"var(--text)"},children:[t("desktop.backupIncludeSecrets"),(0,n.jsx)("span",{style:{display:"block",fontSize:11,color:"var(--status-error)"},children:t("desktop.backupSecretsWarning")})]})]}),(0,n.jsxs)("label",{style:{display:"flex",gap:8,alignItems:"flex-start",cursor:"pointer",marginBottom:14},children:[(0,n.jsx)("input",{type:"checkbox",checked:l,onChange:e=>a(e.target.checked),style:{marginTop:2}}),(0,n.jsxs)("span",{style:{fontSize:12,color:"var(--text)"},children:[t("desktop.backupIncludeSessions"),(0,n.jsx)("span",{style:{display:"block",fontSize:11,color:"var(--text-dim)"},children:t("desktop.backupSessionsHint")})]})]}),(0,n.jsxs)("button",{type:"button",onClick:N,disabled:d,style:{display:"inline-flex",alignItems:"center",gap:7,padding:"8px 14px",background:"var(--accent)",border:"none",borderRadius:6,color:"var(--accent-fg)",fontSize:12,fontWeight:600,cursor:d?"wait":"pointer"},children:[(0,n.jsx)(K.f,{size:15,"aria-hidden":"true"}),d?t("desktop.backupExporting"):t("desktop.backupExportButton")]}),u&&(0,n.jsx)("p",{style:{margin:"8px 0 0",fontSize:11,color:"var(--status-error)"},children:u})]}),(0,n.jsxs)("section",{style:{padding:"18px 22px"},children:[(0,n.jsx)("h2",{style:{margin:0,fontSize:13,fontWeight:600,color:"var(--text)"},children:t("desktop.backupImportTitle")}),(0,n.jsx)("p",{style:{margin:"6px 0 12px",fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:t("desktop.backupImportDescription")}),(0,n.jsx)("input",{ref:r,type:"file",accept:".zip,application/zip",onChange:e=>A(e.target.files?.[0]),style:{display:"none"}}),(0,n.jsxs)("button",{type:"button",onClick:()=>r.current?.click(),style:{display:"inline-flex",alignItems:"center",gap:7,padding:"8px 14px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",fontSize:12,fontWeight:600,cursor:"pointer"},children:[(0,n.jsx)(V._,{size:15,"aria-hidden":"true"}),t("desktop.backupImportButton")]}),k&&(0,n.jsx)("p",{style:{margin:"0 0 10px",fontSize:11,color:"var(--status-error)",lineHeight:1.5},children:k}),h&&(0,n.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:8,padding:14,background:"var(--bg-panel)",display:"flex",flexDirection:"column",gap:12},children:[(0,n.jsxs)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.6},children:[(0,n.jsxs)("span",{style:{color:"var(--text)",fontWeight:600},children:[t("desktop.backupManifest"),":"]})," ",new Date(h.preview.manifest.createdAt).toLocaleString()," \xb7 ",D(h.preview.manifest.sourcePlatform)," →",D(navigator.platform.includes("Win")?"win32":navigator.platform.includes("Linux")?"linux":"darwin")," \xb7 pi-web ",h.preview.manifest.piWebVersion,h.preview.manifest.includeSecrets?"":` \xb7 ${t("desktop.backupNoSecrets")}`]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.06em",marginBottom:6},children:t("desktop.backupCategories")}),(0,n.jsx)("div",{style:{display:"flex",gap:14,flexWrap:"wrap"},children:h.preview.categories.map(e=>(0,n.jsxs)("label",{style:{display:"flex",gap:6,alignItems:"center",cursor:"pointer",fontSize:12,color:"var(--text)"},children:[(0,n.jsx)("input",{type:"checkbox",checked:x.has(e),onChange:t=>{let r=new Set(x);t.target.checked?r.add(e):r.delete(e),f(r)}}),t(`desktop.backupCategory${e}`)]},e))})]}),h.preview.servers.length>0&&(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.06em",marginBottom:6},children:t("desktop.backupMcpServers")}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:h.preview.servers.map(r=>(0,n.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:8,fontSize:12},children:[(0,n.jsx)("input",{type:"checkbox",checked:!m.has(r.name),onChange:e=>{let t=new Set(m);e.target.checked?t.delete(r.name):t.add(r.name),v(t)},style:{marginTop:2}}),(0,n.jsxs)("div",{style:{flex:1,minWidth:0,display:"flex",flexDirection:"column",gap:2},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,n.jsx)("code",{style:{fontSize:11,fontFamily:"var(--font-mono)",color:"var(--text)"},children:r.name}),(0,n.jsx)("span",{style:{fontSize:10,padding:"1px 6px",borderRadius:8,background:"manual"===r.action||"keep-with-warning"===r.action?"rgba(239,68,68,0.15)":"var(--bg-selected)",color:"manual"===r.action||"keep-with-warning"===r.action?"var(--status-error)":"var(--text-muted)"},children:G[r.action]})]}),(0,n.jsxs)("div",{style:{fontSize:11,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[(0,n.jsx)("code",{style:{fontFamily:"var(--font-mono)"},children:r.original.command}),r.adapted&&r.adapted.command!==r.original.command&&(0,n.jsxs)(n.Fragment,{children:[" → ",(0,n.jsx)("code",{style:{fontFamily:"var(--font-mono)",color:"var(--text)"},children:r.adapted.command})]})]}),r.reason&&(0,n.jsx)("div",{style:{fontSize:11,color:"var(--status-error)"},children:r.reason}),"manual"===r.action&&r.installPrompt&&e&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:2,flexWrap:"wrap"},children:[(0,n.jsx)("select",{value:I,onChange:e=>M(e.target.value),style:{fontSize:11,padding:"4px 6px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:4,color:"var(--text)",maxWidth:220},title:t("desktop.backupInstallModel"),children:T.map(e=>(0,n.jsxs)("option",{value:`${e.provider}/${e.id}`,children:[e.provider,"/",e.name||e.id]},`${e.provider}/${e.id}`))}),(0,n.jsx)("button",{type:"button",disabled:E===r.name,onClick:()=>F(r),style:{padding:"4px 10px",fontSize:11,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:4,color:"var(--text)",cursor:E===r.name?"wait":"pointer"},children:E===r.name?"…":t("desktop.backupInstallSession")}),W?.server===r.name&&(0,n.jsx)("a",{href:`?session=${encodeURIComponent(W.sessionId)}`,style:{fontSize:11,color:"var(--accent)"},children:t("desktop.backupOpenSession")})]})]})]},r.name))})]}),h.preview.npmPackages.length>0&&(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.06em",marginBottom:6},children:t("desktop.backupNpmPackages")}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:4,marginBottom:6},children:h.preview.npmPackages.map(e=>(0,n.jsx)("code",{style:{fontSize:11,fontFamily:"var(--font-mono)",color:"var(--text)"},children:e},e))}),(0,n.jsxs)("label",{style:{display:"flex",gap:6,alignItems:"flex-start",cursor:"pointer",fontSize:12,color:"var(--text)",lineHeight:1.4},children:[(0,n.jsx)("input",{type:"checkbox",checked:y,onChange:e=>b(e.target.checked),style:{marginTop:2}}),(0,n.jsxs)("span",{children:[t("desktop.backupReinstallNpm"),(0,n.jsx)("span",{style:{display:"block",fontSize:11,color:"var(--text-dim)"},children:t("desktop.backupReinstallNpmHint")})]})]})]}),h.preview.warnings.length>0&&(0,n.jsx)("div",{style:{fontSize:11,color:"var(--status-error)",lineHeight:1.5},children:h.preview.warnings.map((e,t)=>(0,n.jsxs)("div",{children:["⚠ ",e]},t))}),(0,n.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,n.jsxs)("button",{type:"button",onClick:P,disabled:w||0===x.size,style:{display:"inline-flex",alignItems:"center",gap:7,padding:"8px 14px",background:"var(--accent)",border:"none",borderRadius:6,color:"var(--accent-fg)",fontSize:12,fontWeight:600,cursor:w?"wait":"pointer",opacity:0===x.size?.5:1},children:[(0,n.jsx)(V._,{size:15,"aria-hidden":"true"}),w?t("desktop.backupRestoring"):t("desktop.backupRestoreButton")]}),(0,n.jsx)("button",{type:"button",onClick:()=>{g(null),r.current&&(r.current.value="")},disabled:w,style:{padding:"8px 14px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",fontSize:12,cursor:"pointer"},children:t("desktop.cancel")})]})]}),C&&(0,n.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:8,padding:14,background:"var(--bg-panel)",display:"flex",flexDirection:"column",gap:10},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,fontSize:13,fontWeight:600,color:"var(--text)"},children:[(0,n.jsx)(q.W,{size:16,"aria-hidden":"true"}),t("desktop.backupRestoreReport")]}),C.restored.length>0&&(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:{fontSize:11,fontWeight:600,color:"var(--status-success)",marginBottom:4},children:["✓ ",t("desktop.backupReportRestored")]}),(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",lineHeight:1.6,fontFamily:"var(--font-mono)",wordBreak:"break-all"},children:C.restored.join("\n")})]}),C.needsRestart.length>0&&(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:{fontSize:11,fontWeight:600,color:"var(--status-warning)",marginBottom:4},children:["\uD83D\uDD04 ",t("desktop.backupReportRestart")]}),(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",lineHeight:1.6,fontFamily:"var(--font-mono)"},children:C.needsRestart.join("\n")})]}),C.manual.length>0&&(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:{fontSize:11,fontWeight:600,color:"var(--status-error)",marginBottom:4},children:[(0,n.jsx)(J.N,{size:12,style:{verticalAlign:-2},"aria-hidden":"true"})," ",t("desktop.backupReportManual")]}),C.manual.map((e,t)=>(0,n.jsxs)("div",{style:{fontSize:11,color:"var(--text-muted)",lineHeight:1.6},children:[(0,n.jsx)("strong",{style:{color:"var(--text)"},children:e.server}),": ",e.message]},t))]}),C.warnings.length>0&&(0,n.jsx)("div",{style:{fontSize:11,color:"var(--status-error)",lineHeight:1.6},children:C.warnings.map((e,t)=>(0,n.jsxs)("div",{children:["⚠ ",e]},t))}),C.needsRestart.length>0&&(0,n.jsx)("p",{style:{margin:0,fontSize:11,color:"var(--status-warning)",lineHeight:1.5},children:t("desktop.backupRestartHint")})]})]})]})}let Z={position:"relative",width:40,height:22,borderRadius:11,border:"none",cursor:"pointer",padding:0,flexShrink:0,transition:"background 0.18s ease",outline:"none"},Q={position:"absolute",top:3,width:16,height:16,borderRadius:"50%",background:"var(--accent-fg)",transition:"left 0.18s ease, transform 0.18s ease",boxShadow:"0 1px 3px rgba(0,0,0,0.18)"};function ee({checked:e,onChange:t,label:r,description:o}){return(0,n.jsxs)("label",{style:{display:"flex",alignItems:o?"flex-start":"center",justifyContent:"space-between",gap:12,padding:"12px 14px",borderRadius:7,cursor:"pointer",userSelect:"none",transition:"background 0.12s",margin:"0 -14px"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},children:[(0,n.jsxs)("span",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("span",{style:{display:"block",fontSize:13,fontWeight:550,color:"var(--text)",lineHeight:1.4},children:r}),o&&(0,n.jsx)("span",{style:{display:"block",fontSize:11,lineHeight:1.5,color:"var(--text-muted)",marginTop:2},children:o})]}),(0,n.jsx)("button",{type:"button",role:"switch","aria-checked":e,onClick:r=>{r.preventDefault(),t(!e)},style:{...Z,background:e?"var(--accent)":"color-mix(in srgb, var(--border) 70%, var(--bg))"},children:(0,n.jsx)("span",{style:{...Q,left:e?21:3}})})]})}function et({title:e,description:t,children:r}){return(0,n.jsxs)("section",{style:{padding:"20px 22px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("h2",{style:{margin:0,fontSize:14,fontWeight:650,color:"var(--text)"},children:e}),(0,n.jsx)("p",{style:{margin:"5px 0 14px",fontSize:12,lineHeight:1.5,color:"var(--text-muted)"},children:t}),(0,n.jsx)("div",{children:r})]})}let er="pi-input-shortcut";function en(){try{let e=localStorage.getItem(er);return"ctrl-enter"===e?"ctrl-enter":"enter"}catch{return"enter"}}function eo(){let{t:e}=(0,Y.s)(),[t,r]=(0,o.useState)(en);(0,o.useEffect)(()=>{let e=()=>r(en());return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[]);let i=(0,o.useCallback)(e=>{r(e);try{localStorage.setItem(er,e),window.dispatchEvent(new StorageEvent("storage",{key:er,newValue:e}))}catch{}},[]);return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",flex:1,minWidth:0,minHeight:0,overflowY:"auto"},children:[(0,n.jsx)("header",{style:{padding:"18px 22px 14px",borderBottom:"1px solid var(--border)"},children:(0,n.jsx)("h1",{style:{margin:0,fontSize:16,fontWeight:700,color:"var(--text)"},children:e("desktop.chat")})}),(0,n.jsx)(et,{title:e("desktop.inputShortcut"),description:e("desktop.inputShortcutDescription"),children:(0,n.jsx)(ee,{checked:"ctrl-enter"===t,onChange:e=>i(e?"ctrl-enter":"enter"),label:e("desktop.useCtrlEnter"),description:e("desktop.useCtrlEnterDescription")})})]})}var ei=r(61719),es=r(95650),el=r(55803),ea=r(23602),ed=r(18613),ec=r(12779);let eu=new Set;function ep(e){return eu.add(e),()=>{eu.delete(e)}}function eh(){eu.forEach(e=>e())}let eg="pi-theme-mode",ex="pi-theme",ef="pi-theme-light",em="pi-theme-dark",ev="pi-border-depth";function ey(){try{let e=localStorage.getItem(ex);if(e)return e;let t=function(){try{let e=localStorage.getItem(ex);if(e)return localStorage.removeItem(em),localStorage.removeItem(ef),e;let t=localStorage.getItem(em),r=localStorage.getItem(ef),n=t??r;if(n)return localStorage.setItem(ex,n),localStorage.removeItem(em),localStorage.removeItem(ef),n}catch{}return null}();if(t)return t}catch{}return""}function eb(e,t){try{t?localStorage.setItem(ex,t):localStorage.removeItem(ex),localStorage.removeItem(em),localStorage.removeItem(ef)}catch{}}function ek(){try{let e=localStorage.getItem(ev);if(null!==e){let t=parseInt(e,10);if(!isNaN(t)&&t>=0&&t<=100)return t}}catch{}return 50}function ej(){return window.matchMedia("(prefers-color-scheme: dark)").matches}function ew(e){return"system"===e?ej()?"dark":"light":e}function eS(){if("u"<typeof document)return"dark";let e=document.documentElement.dataset.themeMode;if("dark"===e||"light"===e||"system"===e)return e;try{let e=localStorage.getItem(eg);if("dark"===e||"light"===e||"system"===e)return e}catch{}return"dark"}function eC(){if("u"<typeof document)return"";let e=document.documentElement.dataset.theme;return e||ey()}function ez(){return"dark"}let eT=["--bg","--bg-panel","--bg-secondary","--bg-card","--bg-hover","--bg-selected","--bg-card-hover","--bg-subtle","--border","--border-hover","--text","--text-muted","--text-dim","--accent","--accent-hover","--accent-blue","--accent-red","--accent-green","--accent-orange","--git-status-added","--git-status-modified","--git-status-deleted","--git-status-added-bg","--git-status-modified-bg","--git-status-deleted-bg","--user-bg","--assistant-bg","--tool-bg","--hatch-color","--status-error","--status-warning","--status-success","--status-info","--status-error-bg","--status-warning-bg","--status-success-bg","--status-info-bg","--status-error-border","--status-warning-border","--status-success-border","--status-info-border","--syntax-keyword","--syntax-string","--syntax-number","--syntax-function","--syntax-comment"],eR=["--border-orig","--border-hover-orig"];function eI(){let e=document.documentElement;for(let t of eT)e.style.removeProperty(t);for(let t of eR)e.style.removeProperty(t)}function eM(e){let t=document.documentElement,r=document.documentElement,n=r.style.getPropertyValue("--border-orig").trim(),o=r.style.getPropertyValue("--border-hover-orig").trim();if(!n||!o){let e=getComputedStyle(r);!n&&(n=e.getPropertyValue("--border").trim())&&r.style.setProperty("--border-orig",n),!o&&(o=e.getPropertyValue("--border-hover").trim())&&r.style.setProperty("--border-hover-orig",o)}if(50===e){let e=t.style.getPropertyValue("--border-orig").trim(),r=t.style.getPropertyValue("--border-hover-orig").trim();e?t.style.setProperty("--border",e):t.style.removeProperty("--border"),r?t.style.setProperty("--border-hover",r):t.style.removeProperty("--border-hover");return}let i=e/100,s=e=>{if(i<=.5){let t=Math.round(2*i*100);return`color-mix(in srgb, var(${e}) ${t}%, var(--bg) ${100-t}%)`}{let t=Math.round((i-.5)*200);return`color-mix(in srgb, var(${e}) ${100-t}%, var(--text) ${t}%)`}};t.style.setProperty("--border",s("--border-orig")),t.style.setProperty("--border-hover",s("--border-hover-orig"))}let eE=new Map;async function e$(e,t){let r=`${e}::${t}`;if(eE.has(r))return eE.get(r);try{let n=await fetch(`/api/themes/${encodeURIComponent(e)}?mode=${t}`);if(!n.ok)return null;let o=await n.json();for(eE.set(r,o);eE.size>50;){let e=eE.keys().next().value;if(void 0===e)break;eE.delete(e)}return o}catch{return null}}async function eW(e,t){let r=document.documentElement;if("dark"===e?r.classList.add("dark"):r.classList.remove("dark"),!t){delete r.dataset.theme,eI();return}r.dataset.theme=t;let n=await e$(t,e);if(n){var o=n.cssVars;let e=document.documentElement;for(let t of eT)o[t]?e.style.setProperty(t,o[t]):e.style.removeProperty(t);o["--border"]?e.style.setProperty("--border-orig",o["--border"]):e.style.removeProperty("--border-orig"),o["--border-hover"]?e.style.setProperty("--border-hover-orig",o["--border-hover"]):e.style.removeProperty("--border-hover-orig")}else console.warn(`Theme "${t}" variant "${e}" not found, using defaults`),eI()}let eL=(()=>{if("u"<typeof navigator)return!1;let e=navigator.userAgent;return/AppleWebKit/.test(e)&&!/Chrome|Edg|OPR|Version\//.test(e)})();async function eN(e){if(function(){try{return!!window.__TAURI__}catch{return!1}}())try{let t=window.__TAURI__;await t?.core?.invoke?.("set_ui_theme",{theme:e})}catch{}}function eA(){let e=(0,o.useSyncExternalStore)(ep,eS,ez),t=(0,o.useSyncExternalStore)(ep,eC,()=>""),[r,n]=(0,o.useState)(()=>{if("u">typeof document){let e=document.documentElement.dataset.themeResolvedMode;if("dark"===e||"light"===e)return e}return ew(eS())}),[i,s]=(0,o.useState)(()=>ek()),l=(0,o.useCallback)(e=>{let t=Math.max(0,Math.min(100,Math.round(e)));s(t);try{localStorage.setItem(ev,String(t))}catch{}eM(t)},[]),a="dark"===r,d=(0,o.useRef)(null);(0,o.useEffect)(()=>{d.current!==r&&(d.current=r,eN(r))},[r]);let c=(0,o.useRef)(!1),u=(0,o.useCallback)((e,t,r)=>{let o=document.documentElement;o.dataset.themeMode=t,o.dataset.themeResolvedMode=e,"dark"===e?o.classList.add("dark"):o.classList.remove("dark"),r?o.dataset.theme=r:delete o.dataset.theme,n(e)},[]);(0,o.useEffect)(()=>{let r=document.documentElement,n=r.dataset.themeMode,o=r.dataset.theme,i="dark"===n||"light"===n||"system"===n?n:e,s=o||t;if(c.current)return;c.current=!0;let l=ew(i);u(l,i,s),eW(l,s).finally(()=>{c.current=!1;try{localStorage.setItem(eg,i)}catch{}eb(l,s),eM(ek()),eh()})},[]),(0,o.useEffect)(()=>{var e;let t;return e=()=>{if("system"===eS()){let e=ej()?"dark":"light",t=ey();u(e,"system",t),eW(e,t),eM(ek()),eh()}},(t=window.matchMedia("(prefers-color-scheme: dark)")).addEventListener("change",e),()=>t.removeEventListener("change",e)},[u]);let p=(0,o.useCallback)(async e=>{if(!c.current){c.current=!0;try{await eW(r,e),eb(r,e);let t=eS();u(r,t,e),eM(ek()),eh()}finally{c.current=!1}}},[r,u]),h=(0,o.useCallback)(async e=>{if(c.current)return;c.current=!0;let t=ew(e),r=ey();try{await eW(t,r);try{localStorage.setItem(eg,e)}catch{}u(t,e,r),eM(ek()),eh()}finally{c.current=!1}},[u]),g=(0,o.useCallback)(e=>{let t=eS(),n="system"===t?"dark"===r?"light":"dark":"dark"===t?"light":"dark",o=()=>{h(n)},i=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches;if("function"!=typeof document.startViewTransition||i||eL)return void o();let s=e?.x??window.innerWidth/2,l=e?.y??window.innerHeight/2,a=Math.hypot(Math.max(s,window.innerWidth-s),Math.max(l,window.innerHeight-l));document.startViewTransition(()=>{o()}).ready.then(()=>{document.documentElement.animate({clipPath:[`circle(0px at ${s}px ${l}px)`,`circle(${a}px at ${s}px ${l}px)`]},{duration:450,easing:"cubic-bezier(0.22, 0.61, 0.36, 1)",pseudoElement:"::view-transition-new(root)"})}).catch(()=>{})},[r,h]);return{mode:e,resolvedMode:r,themeName:t,setMode:h,setTheme:p,toggleTheme:g,isDark:a,borderDepth:i,setBorderDepth:l}}let eP={display:"flex",gap:6,flexWrap:"wrap"};function eF(e,t,r){return{display:"inline-flex",alignItems:"center",gap:7,padding:"7px 14px",border:`1px solid ${e?"var(--accent)":t?"var(--border-hover)":"var(--border)"}`,borderRadius:8,background:e?"color-mix(in srgb, var(--accent) 12%, var(--bg))":t?"var(--bg-hover)":"var(--bg-card)",color:e?"var(--accent)":t?"var(--text)":"var(--text-muted)",fontSize:13,fontWeight:e?600:400,cursor:r?"not-allowed":"pointer",opacity:r?.5:1,transition:"border-color 0.15s, background 0.15s, color 0.15s",outline:"none",whiteSpace:"nowrap"}}function eD({icon:e,label:t,actions:r}){return(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:10,width:"100%"},children:[(0,n.jsx)("span",{style:{color:"var(--text-dim)",display:"inline-flex",flexShrink:0},children:e}),(0,n.jsx)("span",{style:{fontSize:11,fontWeight:700,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.06em"},children:t}),r&&(0,n.jsx)("span",{style:{display:"inline-flex",alignItems:"center",gap:12,marginLeft:"auto"},children:r})]})}let eH={display:"inline-flex",alignItems:"center",gap:6,padding:0,border:0,background:"transparent",color:"var(--accent)",fontSize:11,cursor:"pointer",whiteSpace:"nowrap"},eO={onMouseEnter:e=>{e.currentTarget.style.textDecoration="underline"},onMouseLeave:e=>{e.currentTarget.style.textDecoration="none"}};function eB({title:e,description:t,children:r}){return(0,n.jsxs)("section",{style:{padding:"20px 22px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("h2",{style:{margin:0,fontSize:14,fontWeight:650,color:"var(--text)"},children:e}),(0,n.jsx)("p",{style:{margin:"5px 0 16px",fontSize:12,lineHeight:1.5,color:"var(--text-muted)"},children:t}),r]})}function eU({depth:e}){let t=e/100;return(0,n.jsxs)("svg",{width:14,height:14,viewBox:"0 0 14 14",style:{flexShrink:0},children:[(0,n.jsx)("rect",{x:1.5,y:1.5,width:11,height:11,rx:2.5,style:{fill:"none",stroke:"var(--text-dim)",strokeWidth:1+2*t,opacity:.2+.8*t}}),(0,n.jsx)("rect",{x:4,y:4,width:6,height:6,rx:1,style:{fill:"var(--text-dim)",opacity:.05+.35*t}})]})}function e_({hasDark:e,hasLight:t,darkColor:r,lightColor:o,t:i}){return(0,n.jsxs)("span",{style:{display:"inline-flex",gap:3,alignItems:"center",flexShrink:0},children:[e&&(0,n.jsx)("span",{title:i("desktop.darkVariant"),style:{display:"inline-block",width:7,height:7,borderRadius:"50%",background:r??"#7c6f64"}}),t&&(0,n.jsx)("span",{title:i("desktop.lightVariant"),style:{display:"inline-block",width:7,height:7,borderRadius:"50%",background:o??"#d5c4a1",border:"1px solid rgba(0,0,0,0.1)"}})]})}function eq({colors:e}){return(0,n.jsxs)("div",{"aria-hidden":"true",style:{display:"flex",height:62,borderRadius:6,overflow:"hidden",background:e.bg,border:`1px solid ${e.border}`},children:[(0,n.jsxs)("div",{style:{width:26,flexShrink:0,background:e.panel,borderRight:`1px solid ${e.border}`,padding:"5px 4px",display:"flex",flexDirection:"column",gap:3},children:[(0,n.jsx)("span",{style:{height:3,borderRadius:2,background:e.accent,width:"70%"}}),(0,n.jsx)("span",{style:{height:3,borderRadius:2,background:e.muted,opacity:.5,width:"100%"}}),(0,n.jsx)("span",{style:{height:3,borderRadius:2,background:e.muted,opacity:.5,width:"82%"}}),(0,n.jsx)("span",{style:{height:3,borderRadius:2,background:e.muted,opacity:.5,width:"60%"}})]}),(0,n.jsxs)("div",{style:{flex:1,minWidth:0,padding:"5px 6px",display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsxs)("div",{style:{alignSelf:"flex-end",maxWidth:"78%",borderRadius:5,background:e.userBg,padding:"3px 5px",display:"flex",flexDirection:"column",gap:2},children:[(0,n.jsx)("span",{style:{height:2.5,borderRadius:2,background:e.text,opacity:.75,width:34}}),(0,n.jsx)("span",{style:{height:2.5,borderRadius:2,background:e.text,opacity:.5,width:22}})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[(0,n.jsx)("span",{style:{height:2.5,borderRadius:2,background:e.text,opacity:.7,width:"86%"}}),(0,n.jsx)("span",{style:{height:2.5,borderRadius:2,background:e.muted,opacity:.65,width:"64%"}})]}),(0,n.jsxs)("div",{style:{borderRadius:4,background:e.toolBg,borderLeft:`2px solid ${e.accent}`,padding:"3px 5px",display:"flex",alignItems:"center",gap:4},children:[(0,n.jsx)("span",{style:{width:5,height:5,borderRadius:"50%",background:e.accent,flexShrink:0}}),(0,n.jsx)("span",{style:{height:2.5,borderRadius:2,background:e.muted,opacity:.7,width:"52%"}})]})]})]})}function eK({active:e,hovered:t,disabled:r,displayName:o,colors:i,hasDark:s,hasLight:l,onClick:a,onHoverStart:d,onHoverEnd:c}){let u=e?"var(--accent)":t?"var(--border-hover)":"var(--border)";return(0,n.jsxs)("button",{type:"button",onClick:a,disabled:r,onMouseEnter:d,onMouseLeave:c,onFocus:d,onBlur:c,"aria-pressed":e,style:{display:"flex",flexDirection:"column",gap:7,padding:8,border:`1px solid ${u}`,borderRadius:9,background:t&&!e?"var(--bg-hover)":"var(--bg-card)",cursor:r?"not-allowed":"pointer",opacity:r?.5:1,textAlign:"left",minWidth:0,transition:"border-color 0.15s, background 0.15s"},children:[i?(0,n.jsx)(eq,{colors:i}):(0,n.jsx)("div",{"aria-hidden":"true",style:{height:62,borderRadius:6,background:"var(--bg-panel)",border:"1px solid var(--border)"}}),(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:6,minWidth:0},children:[(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12,fontWeight:e?600:400,color:e?"var(--accent)":"var(--text)"},children:o}),(0,n.jsx)(e_,{hasDark:s,hasLight:l,darkColor:i?.accent,lightColor:i?.accent,t:()=>""}),e&&(0,n.jsx)(ei.r,{size:13,weight:"fill",color:"var(--accent)","aria-hidden":"true",style:{flexShrink:0}})]})]})}function eV(){let{mode:e,resolvedMode:t,themeName:r,setMode:i,setTheme:s,borderDepth:l,setBorderDepth:a}=eA(),{locale:d,setLocale:c,t:u}=(0,Y.s)(),[p,h]=(0,o.useState)([]),[g,x]=(0,o.useState)(void 0),[f,m]=(0,o.useState)(!0),[v,y]=(0,o.useState)(null),[b,k]=(0,o.useState)(null),[j,w]=(0,o.useState)(!1),[S,C]=(0,o.useState)(!1),[z,T]=(0,o.useState)("");(0,o.useEffect)(()=>{fetch("/api/web-auth").then(e=>e.ok?e.json():null).then(e=>w(e?.enabled===!0)).catch(()=>{})},[]);let R=(0,o.useCallback)(async()=>{C(!0),T("");try{let e=await fetch("/api/web-auth",{method:"DELETE"});if(!e.ok)throw Error(`HTTP ${e.status}`);window.location.replace("/login")}catch{T(u("auth.logoutFailed"))}finally{C(!1)}},[u]);(0,o.useEffect)(()=>{let e=!1;return fetch(`/api/themes?mode=${t}`).then(e=>e.ok?e.json():null).then(t=>{!e&&t&&(h(t.themeSets),x(t.defaultPreview))}).catch(()=>{}).finally(()=>{e||m(!1)}),()=>{e=!0}},[t]);let I=(0,o.useCallback)(e=>{y(e),s(e).finally(()=>y(null))},[s]),M=(0,o.useCallback)(e=>{k(e)},[]),E=(0,o.useCallback)(e=>{i(e)},[i]),$=(0,o.useCallback)(()=>{window.piDesktop?.openThemeFolder()},[]),W=(0,o.useCallback)(()=>{window.piDesktop?window.piDesktop.openThemeDocs():window.open("https://pi.dev/docs/latest/themes","_blank","noopener,noreferrer")},[]);return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",flex:1,minWidth:0,minHeight:0,overflowY:"auto"},children:[(0,n.jsx)("header",{style:{padding:"18px 22px 14px",borderBottom:"1px solid var(--border)"},children:(0,n.jsx)("h1",{style:{margin:0,fontSize:16,fontWeight:700,color:"var(--text)"},children:u("desktop.display")})}),(0,n.jsxs)(eB,{title:u("desktop.theme"),description:u("desktop.themeDescription"),children:[(0,n.jsx)(eD,{icon:(0,n.jsx)(es.p,{size:14,weight:"fill"}),label:u("desktop.colorScheme"),actions:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("button",{type:"button",onClick:$,style:eH,...eO,children:[(0,n.jsx)(el.N,{size:12,weight:"regular","aria-hidden":"true"}),u("desktop.openThemeFolder")]}),(0,n.jsxs)("button",{type:"button",onClick:W,style:eH,...eO,children:[(0,n.jsx)(ea.B,{size:12,weight:"regular","aria-hidden":"true"}),u("desktop.learnPiThemes")]})]})}),f?(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-dim)"},children:u("desktop.loadingThemes")}):(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(150px, 1fr))",gap:10},children:[(0,n.jsx)(eK,{active:""===r,hovered:"__default__"===b,disabled:null!==v,displayName:u("desktop.defaultTheme"),colors:g,hasDark:!0,hasLight:!0,onClick:()=>I(""),onHoverStart:()=>M(""),onHoverEnd:()=>M(null)}),p.map(e=>(0,n.jsx)(eK,{active:r===e.name,hovered:b===e.name,disabled:null!==v,displayName:e.displayName,colors:e.preview,hasDark:e.hasDark,hasLight:e.hasLight,onClick:()=>I(e.name),onHoverStart:()=>M(e.name),onHoverEnd:()=>M(null)},e.name))]}),(0,n.jsxs)("div",{style:{marginTop:20},children:[(0,n.jsx)(eD,{icon:(0,n.jsx)(eU,{depth:l}),label:`${u("desktop.borderVisibility")} (${l})`}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,n.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",flexShrink:0},children:u("desktop.borderSubtle")}),(0,n.jsx)("input",{type:"range",min:0,max:100,step:1,value:l,onChange:e=>a(Number(e.target.value)),style:{flex:1,accentColor:"var(--accent)",height:6,cursor:"pointer"}}),(0,n.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",flexShrink:0},children:u("desktop.borderBold")})]}),(0,n.jsx)("div",{style:{marginTop:10,display:"flex",gap:10},children:[0,25,50,75,100].map(e=>{let t=l===e,r=e<=50?`color-mix(in srgb, var(--border-orig) ${2*e}%, var(--bg) ${100-2*e}%)`:`color-mix(in srgb, var(--border-orig) ${100-(e-50)*2}%, var(--text) ${(e-50)*2}%)`;return(0,n.jsx)("div",{onClick:()=>a(e),style:{width:28,height:20,border:`2px solid ${t?"var(--accent)":r}`,borderRadius:5,background:"var(--bg-card)",cursor:"pointer",transition:"border-color 0.1s"}},e)})})]}),(0,n.jsxs)("div",{style:{marginTop:20},children:[(0,n.jsx)(eD,{icon:"dark"===t?(0,n.jsx)(ed.A,{size:14,weight:"fill"}):(0,n.jsx)(ec.b,{size:14,weight:"fill"}),label:u("desktop.appearanceMode")}),(0,n.jsx)("div",{style:eP,children:[{value:"light",icon:(0,n.jsx)(ec.b,{size:15,weight:"light"===e?"fill":"regular"})},{value:"dark",icon:(0,n.jsx)(ed.A,{size:15,weight:"dark"===e?"fill":"regular"})},{value:"system",icon:(0,n.jsx)(A.V,{size:15,weight:"system"===e?"fill":"regular"})}].map(t=>{let r=e===t.value;return(0,n.jsxs)("button",{type:"button",onClick:()=>E(t.value),style:eF(r,b===`mode:${t.value}`),onMouseEnter:()=>k(`mode:${t.value}`),onMouseLeave:()=>k(null),children:[t.icon,u(`desktop.${t.value}`)]},t.value)})})]}),!f&&0===p.length&&(0,n.jsxs)("p",{style:{margin:"14px 0 0",fontSize:11,color:"var(--text-dim)",lineHeight:1.5},children:[u("desktop.noCustomThemes")," ",u("desktop.noCustomThemesHint")," ",(0,n.jsx)("code",{style:{fontSize:10,background:"var(--bg-secondary)",padding:"1px 5px",borderRadius:3,fontFamily:"var(--font-mono)"},children:"~/.pi/agent/themes/*.json"})," ",u("desktop.noCustomThemesHint2")]})]}),(0,n.jsx)(eB,{title:u("desktop.language"),description:u("desktop.languageDescription"),children:(0,n.jsx)("div",{style:eP,children:["en","zh-CN"].map(e=>(0,n.jsx)("button",{type:"button",onClick:()=>c("zh-CN"===e?"zh-CN":"en"),style:eF("zh-CN"===e?"zh-CN"===d:"zh-CN"!==d,b===`lang:${e}`),onMouseEnter:()=>k(`lang:${e}`),onMouseLeave:()=>k(null),children:"en"===e?u("desktop.english"):u("desktop.chinese")},e))})}),j&&(0,n.jsxs)(eB,{title:u("auth.prompt"),description:u("desktop.accessDescription"),children:[(0,n.jsx)("div",{style:eP,children:(0,n.jsx)("button",{type:"button",disabled:S,onClick:()=>void R(),style:eF(!1,"logout"===b),onMouseEnter:()=>k("logout"),onMouseLeave:()=>k(null),children:S?u("auth.loggingOut"):u("auth.logOut")})}),z&&(0,n.jsx)("p",{role:"alert",style:{margin:"8px 0 0",color:"var(--status-error)",fontSize:12},children:z})]})]})}var eJ=r(94638);function eY({children:e}){return(0,n.jsx)("div",{style:{borderRadius:12,border:"1px solid var(--border)",background:"color-mix(in srgb, var(--bg-panel) 55%, transparent)",overflow:"hidden"},children:e})}function eG({children:e}){return(0,n.jsx)("div",{style:{padding:"0 14px"},children:(0,n.jsx)("div",{style:{borderBottom:"1px solid var(--border)"},children:e})})}function eX({children:e}){return(0,n.jsx)("div",{style:{padding:"0 14px"},children:e})}function eZ({children:e}){return(0,n.jsx)("div",{style:{display:"flex",gap:8,borderRadius:10,border:"1px solid var(--border)",background:"color-mix(in srgb, var(--bg-panel) 55%, transparent)",padding:"10px 12px",fontSize:12,lineHeight:1.5,color:"var(--text-muted)"},children:e})}let eQ="normal",e0="full",e1="auto";function e2(e){return"normal"===e||"plan"===e||"goal"===e?e:eQ}function e6(e){return"economy"===e||"delivery"===e||"full"===e?e:e0}function e4(e){return"ask"===e||"auto"===e||"yolo"===e?e:e1}let e5=["bash","edit","edit_file","grep","find","kill_shell","ls","read","update_goal","wait","write","write_file"],e3=`You are in PLAN MODE. Work as a read-only planning assistant.
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974],{14755:(e,t,r)=>{"use strict";r.d(t,{Q8:()=>n,SC:()=>a,YO:()=>u,getPresetFromTools:()=>c,xG:()=>p});let n="configured",o=[],i=["read","grep","find","ls"],s=["read","bash","edit","write"],l=["bash","read","edit","write","grep","find","ls"],a=["read","grep","find","ls"],d=new Set([...l,"powershell"]);function c(e){return u(e.filter(e=>e.active).map(e=>e.name))}function u(e){if(0===e.length)return"none";let t=e.map(e=>"powershell"===e?"bash":e).filter(e=>d.has(e)).sort().join(",");return t===[...i].sort().join(",")?"plan":t===[...s].sort().join(",")?"default":t===[...l].sort().join(",")?"full":"default"}function p(e){if(e!==n)return"none"===e?[...o]:"full"===e?[...l]:"plan"===e?[...a]:[...s]}},23084:(e,t,r)=>{"use strict";async function n(e,t){let r=await fetch(e,{...t,headers:t?.body?{"Content-Type":"application/json"}:void 0}),n=await r.json().catch(()=>({}));if(!r.ok||n.error)throw Error(n.error??`HTTP ${r.status}`);return n}async function o(e){return(await n(`/api/tasks?projectRoot=${encodeURIComponent(e)}`)).tasks}async function i(){return(await n("/api/tasks/projects")).projects}async function s(e){return(await n("/api/tasks",{method:"POST",body:JSON.stringify(e)})).task}async function l(e,t,r){return(await n(`/api/tasks/${e}?projectRoot=${encodeURIComponent(t)}`,{method:"PATCH",body:JSON.stringify({projectRoot:t,...r})})).task}async function a(e,t,r=!1){await n(`/api/tasks/${e}?projectRoot=${encodeURIComponent(t)}&deleteWorktree=${+!!r}`,{method:"DELETE"})}async function d(e,t,r,o){await n(`/api/tasks/${e}/${r}?projectRoot=${encodeURIComponent(t)}`,{method:"POST",body:JSON.stringify({...o})})}async function c(e,t,r){await n(`/api/tasks/${e}/return?projectRoot=${encodeURIComponent(t)}`,{method:"POST",body:JSON.stringify({feedback:r})})}async function u(e,t,r,o){await n(`/api/tasks/${e}/merge?projectRoot=${encodeURIComponent(t)}`,{method:"POST",body:JSON.stringify({message:r,deleteWorktree:o})})}async function p(e,t,r){await n(`/api/tasks/${e}/complete?projectRoot=${encodeURIComponent(t)}`,{method:"POST",body:JSON.stringify({deleteWorktree:r})})}async function h(e,t,r){await n(`/api/tasks/${e}/archive?projectRoot=${encodeURIComponent(t)}`,{method:"POST",body:JSON.stringify({archived:r})})}async function g(e,t){await n("/api/tasks/batch?mode=reorder",{method:"POST",body:JSON.stringify({projectRoot:e,orderedIds:t})})}async function x(e){return(await n("/api/tasks/batch?mode=start-all",{method:"POST",body:JSON.stringify({projectRoot:e})})).claimed}async function f(e,t,r=500){return(await n(`/api/tasks/${t}/events?projectRoot=${encodeURIComponent(e)}&limit=${r}`)).events}async function m(e,t){return n(`/api/tasks/${t}/changed-files?projectRoot=${encodeURIComponent(e)}`)}async function v(e,t,r){return n(`/api/tasks/${t}/diff?projectRoot=${encodeURIComponent(e)}&file=${encodeURIComponent(r)}`)}async function y(e){return(await n(`/api/tasks/settings?projectRoot=${encodeURIComponent(e)}`)).settings}async function b(e){return(await n(`/api/tasks/settings?projectRoot=${encodeURIComponent(e)}&own=1`)).settings}async function k(e,t){await n("/api/tasks/settings",{method:"PUT",body:JSON.stringify({projectRoot:e,settings:t})})}async function j(e){await n(`/api/tasks/settings?projectRoot=${encodeURIComponent(e)}`,{method:"DELETE"})}async function w(){return(await n("/api/tasks/templates")).templates}async function S(e){return(await n("/api/tasks/templates",{method:"POST",body:JSON.stringify(e)})).template}async function C(e){await n(`/api/tasks/templates?id=${e}`,{method:"DELETE"})}r.d(t,{B_:()=>C,CG:()=>y,E:()=>j,HB:()=>f,JH:()=>m,Lu:()=>g,Pf:()=>b,VB:()=>w,Vk:()=>o,Wt:()=>i,ZX:()=>p,a5:()=>x,bH:()=>a,createTaskApi:()=>s,eA:()=>k,et:()=>h,h:()=>v,in:()=>c,nY:()=>S,oB:()=>u,oQ:()=>d,updateTaskApi:()=>l})},64983:(e,t,r)=>{"use strict";r.d(t,{AppShell:()=>hp});var n=r(95155),o=r(12115),i=r(53516),s=r(73321);function l(e){let t=e.get("cwd")?.trim()||null;return{requestedCwd:t,sessionId:t?null:e.get("session")||null,sidebarCollapsed:"collapsed"===e.get("sidebar")}}let a=null;class d extends Error{constructor(e,t){super(e),this.code=t,this.name="SessionTitleClientError"}}async function c(e,t){let r=await fetch(`/api/sessions/${encodeURIComponent(e)}/auto-name`,{method:"POST",signal:t}),n=await r.json().catch(()=>({}));if(!r.ok||!n.title)throw new d(n.error||`HTTP ${r.status}`,n.code);return{title:n.title,usage:n.usage}}async function u(e){try{let t=await fetch(`/api/sessions/${encodeURIComponent(e)}/auto-name`,{method:"DELETE"}),r=await t.json().catch(()=>({}));return t.ok&&!0===r.cancelled}catch{return!1}}var p=r(47650),h=r(25349),g=r(64178),x=r(9720),f=r(98664),m=r(20077),v=r(49467),y=r(85265),b=r(56123),k=r(94125),j=r(25388),w=r(3083),S=r(6033),C=r(73988),z=r(41780),T=r(11693),R=r(77862),I=r(80388),M=r(36824),E=r(19157),$=r(42515),W=r(44368);function L(e,t){(0,o.useEffect)(()=>{if(!e)return;let r=e=>{"Escape"===e.key&&t()};return document.addEventListener("keydown",r),()=>document.removeEventListener("keydown",r)},[e,t])}var N=r(27289),A=r(93534),P=r(45781),F=r(72422),D=r(5085),H=r(68731),O=r(60721),B=r(93912),U=r(23675),_=r(48716),q=r(26131),K=r(47013),V=r(51265),J=r(95516),Y=r(15170);let G={"restore-script":"restore","generate-cmd":"cmd",keep:"keep","keep-with-warning":"warning",manual:"manual"};function X({cwd:e}){let{t}=(0,Y.s)(),r=(0,o.useRef)(null),[i,s]=(0,o.useState)(!0),[l,a]=(0,o.useState)(!1),[d,c]=(0,o.useState)(!1),[u,p]=(0,o.useState)(null),[h,g]=(0,o.useState)(null),[x,f]=(0,o.useState)(new Set),[m,v]=(0,o.useState)(new Set),[y,b]=(0,o.useState)(!1),[k,j]=(0,o.useState)(null),[w,S]=(0,o.useState)(!1),[C,z]=(0,o.useState)(null),[T,R]=(0,o.useState)([]),[I,M]=(0,o.useState)(""),[E,$]=(0,o.useState)(null),[W,L]=(0,o.useState)(null);(0,o.useEffect)(()=>{fetch("/api/models").then(e=>e.json()).then(e=>{let t=Array.isArray(e.modelList)?e.modelList:[];R(t),t.length>0&&M(`${t[0].provider}/${t[0].id}`)}).catch(()=>{})},[]);let N=(0,o.useCallback)(async()=>{c(!0),p(null);try{let e=await fetch("/api/backup/export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({includeSecrets:i,includeSessions:l})});if(!e.ok){let t=await e.json();p(t.error??`HTTP ${e.status}`);return}let t=await e.blob(),r=(e.headers.get("Content-Disposition")??"").match(/filename="?([^";]+)"?/),n=URL.createObjectURL(t),o=document.createElement("a");o.href=n,o.download=r?.[1]??"pi-backup.zip",document.body.appendChild(o),o.click(),o.remove(),URL.revokeObjectURL(n)}catch{p(String(t("desktop.backupExportFailed")))}finally{c(!1)}},[i,l,t]),A=(0,o.useCallback)(async e=>{if(e){j(null),z(null),g(null);try{let r=new FormData;r.append("phase","parse"),r.append("file",e);let n=await fetch("/api/backup/import",{method:"POST",body:r}),o=await n.json();if(!n.ok||o.error)return void j(o.error??`HTTP ${n.status}`);if("preview"!==o.phase||!o.preview)return void j(String(t("desktop.backupImportFailed")));g(o),f(new Set(o.preview.categories)),v(new Set),b(!1)}catch{j(String(t("desktop.backupImportFailed")))}}},[t]),P=(0,o.useCallback)(async()=>{if(h){S(!0),j(null);try{let e=new FormData;e.append("phase","restore"),e.append("token",h.token),e.append("selections",JSON.stringify({categories:[...x],skippedMcpServers:[...m],reinstallNpm:y}));let n=await fetch("/api/backup/import",{method:"POST",body:e}),o=await n.json();if(!n.ok||o.error)return void j(o.error??`HTTP ${n.status}`);if("report"!==o.phase||!o.report)return void j(String(t("desktop.backupRestoreFailed")));z(o.report),g(null),r.current&&(r.current.value="")}catch{j(String(t("desktop.backupRestoreFailed")))}finally{S(!1)}}},[h,x,m,y,t]),F=(0,o.useCallback)(async r=>{if(r.installPrompt&&e){$(r.name),L(null);try{let t=I.indexOf("/"),n=t>0?I.slice(0,t):void 0,o=t>0?I.slice(t+1):void 0,i=await fetch("/api/agent/new",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,message:r.installPrompt,provider:n,modelId:o})}),s=await i.json();if(!i.ok||s.error)return void j(s.error??`HTTP ${i.status}`);L({server:r.name,sessionId:s.sessionId})}catch{j(String(t("desktop.backupInstallSessionFailed")))}finally{$(null)}}},[e,I,t]),D=e=>"win32"===e?"Windows":"darwin"===e?"macOS":"Linux";return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",flex:1,minWidth:0,minHeight:0,overflowY:"auto"},children:[(0,n.jsx)("header",{style:{padding:"18px 22px 14px",borderBottom:"1px solid var(--border)"},children:(0,n.jsx)("h1",{style:{margin:0,fontSize:16,fontWeight:700,color:"var(--text)"},children:t("desktop.backup")})}),(0,n.jsxs)("section",{style:{padding:"18px 22px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("h2",{style:{margin:0,fontSize:13,fontWeight:600,color:"var(--text)"},children:t("desktop.backupExportTitle")}),(0,n.jsx)("p",{style:{margin:"6px 0 12px",fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:t("desktop.backupExportDescription")}),(0,n.jsxs)("label",{style:{display:"flex",gap:8,alignItems:"flex-start",cursor:"pointer",marginBottom:8},children:[(0,n.jsx)("input",{type:"checkbox",checked:i,onChange:e=>s(e.target.checked),style:{marginTop:2}}),(0,n.jsxs)("span",{style:{fontSize:12,color:"var(--text)"},children:[t("desktop.backupIncludeSecrets"),(0,n.jsx)("span",{style:{display:"block",fontSize:11,color:"var(--status-error)"},children:t("desktop.backupSecretsWarning")})]})]}),(0,n.jsxs)("label",{style:{display:"flex",gap:8,alignItems:"flex-start",cursor:"pointer",marginBottom:14},children:[(0,n.jsx)("input",{type:"checkbox",checked:l,onChange:e=>a(e.target.checked),style:{marginTop:2}}),(0,n.jsxs)("span",{style:{fontSize:12,color:"var(--text)"},children:[t("desktop.backupIncludeSessions"),(0,n.jsx)("span",{style:{display:"block",fontSize:11,color:"var(--text-dim)"},children:t("desktop.backupSessionsHint")})]})]}),(0,n.jsxs)("button",{type:"button",onClick:N,disabled:d,style:{display:"inline-flex",alignItems:"center",gap:7,padding:"8px 14px",background:"var(--accent)",border:"none",borderRadius:6,color:"var(--accent-fg)",fontSize:12,fontWeight:600,cursor:d?"wait":"pointer"},children:[(0,n.jsx)(K.f,{size:15,"aria-hidden":"true"}),d?t("desktop.backupExporting"):t("desktop.backupExportButton")]}),u&&(0,n.jsx)("p",{style:{margin:"8px 0 0",fontSize:11,color:"var(--status-error)"},children:u})]}),(0,n.jsxs)("section",{style:{padding:"18px 22px"},children:[(0,n.jsx)("h2",{style:{margin:0,fontSize:13,fontWeight:600,color:"var(--text)"},children:t("desktop.backupImportTitle")}),(0,n.jsx)("p",{style:{margin:"6px 0 12px",fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:t("desktop.backupImportDescription")}),(0,n.jsx)("input",{ref:r,type:"file",accept:".zip,application/zip",onChange:e=>A(e.target.files?.[0]),style:{display:"none"}}),(0,n.jsxs)("button",{type:"button",onClick:()=>r.current?.click(),style:{display:"inline-flex",alignItems:"center",gap:7,padding:"8px 14px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",fontSize:12,fontWeight:600,cursor:"pointer"},children:[(0,n.jsx)(V._,{size:15,"aria-hidden":"true"}),t("desktop.backupImportButton")]}),k&&(0,n.jsx)("p",{style:{margin:"0 0 10px",fontSize:11,color:"var(--status-error)",lineHeight:1.5},children:k}),h&&(0,n.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:8,padding:14,background:"var(--bg-panel)",display:"flex",flexDirection:"column",gap:12},children:[(0,n.jsxs)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.6},children:[(0,n.jsxs)("span",{style:{color:"var(--text)",fontWeight:600},children:[t("desktop.backupManifest"),":"]})," ",new Date(h.preview.manifest.createdAt).toLocaleString()," \xb7 ",D(h.preview.manifest.sourcePlatform)," →",D(navigator.platform.includes("Win")?"win32":navigator.platform.includes("Linux")?"linux":"darwin")," \xb7 pi-web ",h.preview.manifest.piWebVersion,h.preview.manifest.includeSecrets?"":` \xb7 ${t("desktop.backupNoSecrets")}`]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.06em",marginBottom:6},children:t("desktop.backupCategories")}),(0,n.jsx)("div",{style:{display:"flex",gap:14,flexWrap:"wrap"},children:h.preview.categories.map(e=>(0,n.jsxs)("label",{style:{display:"flex",gap:6,alignItems:"center",cursor:"pointer",fontSize:12,color:"var(--text)"},children:[(0,n.jsx)("input",{type:"checkbox",checked:x.has(e),onChange:t=>{let r=new Set(x);t.target.checked?r.add(e):r.delete(e),f(r)}}),t(`desktop.backupCategory${e}`)]},e))})]}),h.preview.servers.length>0&&(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.06em",marginBottom:6},children:t("desktop.backupMcpServers")}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:h.preview.servers.map(r=>(0,n.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:8,fontSize:12},children:[(0,n.jsx)("input",{type:"checkbox",checked:!m.has(r.name),onChange:e=>{let t=new Set(m);e.target.checked?t.delete(r.name):t.add(r.name),v(t)},style:{marginTop:2}}),(0,n.jsxs)("div",{style:{flex:1,minWidth:0,display:"flex",flexDirection:"column",gap:2},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,n.jsx)("code",{style:{fontSize:11,fontFamily:"var(--font-mono)",color:"var(--text)"},children:r.name}),(0,n.jsx)("span",{style:{fontSize:10,padding:"1px 6px",borderRadius:8,background:"manual"===r.action||"keep-with-warning"===r.action?"rgba(239,68,68,0.15)":"var(--bg-selected)",color:"manual"===r.action||"keep-with-warning"===r.action?"var(--status-error)":"var(--text-muted)"},children:G[r.action]})]}),(0,n.jsxs)("div",{style:{fontSize:11,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[(0,n.jsx)("code",{style:{fontFamily:"var(--font-mono)"},children:r.original.command}),r.adapted&&r.adapted.command!==r.original.command&&(0,n.jsxs)(n.Fragment,{children:[" → ",(0,n.jsx)("code",{style:{fontFamily:"var(--font-mono)",color:"var(--text)"},children:r.adapted.command})]})]}),r.reason&&(0,n.jsx)("div",{style:{fontSize:11,color:"var(--status-error)"},children:r.reason}),"manual"===r.action&&r.installPrompt&&e&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:2,flexWrap:"wrap"},children:[(0,n.jsx)("select",{value:I,onChange:e=>M(e.target.value),style:{fontSize:11,padding:"4px 6px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:4,color:"var(--text)",maxWidth:220},title:t("desktop.backupInstallModel"),children:T.map(e=>(0,n.jsxs)("option",{value:`${e.provider}/${e.id}`,children:[e.provider,"/",e.name||e.id]},`${e.provider}/${e.id}`))}),(0,n.jsx)("button",{type:"button",disabled:E===r.name,onClick:()=>F(r),style:{padding:"4px 10px",fontSize:11,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:4,color:"var(--text)",cursor:E===r.name?"wait":"pointer"},children:E===r.name?"…":t("desktop.backupInstallSession")}),W?.server===r.name&&(0,n.jsx)("a",{href:`?session=${encodeURIComponent(W.sessionId)}`,style:{fontSize:11,color:"var(--accent)"},children:t("desktop.backupOpenSession")})]})]})]},r.name))})]}),h.preview.npmPackages.length>0&&(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.06em",marginBottom:6},children:t("desktop.backupNpmPackages")}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:4,marginBottom:6},children:h.preview.npmPackages.map(e=>(0,n.jsx)("code",{style:{fontSize:11,fontFamily:"var(--font-mono)",color:"var(--text)"},children:e},e))}),(0,n.jsxs)("label",{style:{display:"flex",gap:6,alignItems:"flex-start",cursor:"pointer",fontSize:12,color:"var(--text)",lineHeight:1.4},children:[(0,n.jsx)("input",{type:"checkbox",checked:y,onChange:e=>b(e.target.checked),style:{marginTop:2}}),(0,n.jsxs)("span",{children:[t("desktop.backupReinstallNpm"),(0,n.jsx)("span",{style:{display:"block",fontSize:11,color:"var(--text-dim)"},children:t("desktop.backupReinstallNpmHint")})]})]})]}),h.preview.warnings.length>0&&(0,n.jsx)("div",{style:{fontSize:11,color:"var(--status-error)",lineHeight:1.5},children:h.preview.warnings.map((e,t)=>(0,n.jsxs)("div",{children:["⚠ ",e]},t))}),(0,n.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,n.jsxs)("button",{type:"button",onClick:P,disabled:w||0===x.size,style:{display:"inline-flex",alignItems:"center",gap:7,padding:"8px 14px",background:"var(--accent)",border:"none",borderRadius:6,color:"var(--accent-fg)",fontSize:12,fontWeight:600,cursor:w?"wait":"pointer",opacity:0===x.size?.5:1},children:[(0,n.jsx)(V._,{size:15,"aria-hidden":"true"}),w?t("desktop.backupRestoring"):t("desktop.backupRestoreButton")]}),(0,n.jsx)("button",{type:"button",onClick:()=>{g(null),r.current&&(r.current.value="")},disabled:w,style:{padding:"8px 14px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",fontSize:12,cursor:"pointer"},children:t("desktop.cancel")})]})]}),C&&(0,n.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:8,padding:14,background:"var(--bg-panel)",display:"flex",flexDirection:"column",gap:10},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,fontSize:13,fontWeight:600,color:"var(--text)"},children:[(0,n.jsx)(q.W,{size:16,"aria-hidden":"true"}),t("desktop.backupRestoreReport")]}),C.restored.length>0&&(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:{fontSize:11,fontWeight:600,color:"var(--status-success)",marginBottom:4},children:["✓ ",t("desktop.backupReportRestored")]}),(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",lineHeight:1.6,fontFamily:"var(--font-mono)",wordBreak:"break-all"},children:C.restored.join("\n")})]}),C.needsRestart.length>0&&(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:{fontSize:11,fontWeight:600,color:"var(--status-warning)",marginBottom:4},children:["\uD83D\uDD04 ",t("desktop.backupReportRestart")]}),(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",lineHeight:1.6,fontFamily:"var(--font-mono)"},children:C.needsRestart.join("\n")})]}),C.manual.length>0&&(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:{fontSize:11,fontWeight:600,color:"var(--status-error)",marginBottom:4},children:[(0,n.jsx)(J.N,{size:12,style:{verticalAlign:-2},"aria-hidden":"true"})," ",t("desktop.backupReportManual")]}),C.manual.map((e,t)=>(0,n.jsxs)("div",{style:{fontSize:11,color:"var(--text-muted)",lineHeight:1.6},children:[(0,n.jsx)("strong",{style:{color:"var(--text)"},children:e.server}),": ",e.message]},t))]}),C.warnings.length>0&&(0,n.jsx)("div",{style:{fontSize:11,color:"var(--status-error)",lineHeight:1.6},children:C.warnings.map((e,t)=>(0,n.jsxs)("div",{children:["⚠ ",e]},t))}),C.needsRestart.length>0&&(0,n.jsx)("p",{style:{margin:0,fontSize:11,color:"var(--status-warning)",lineHeight:1.5},children:t("desktop.backupRestartHint")})]})]})]})}let Z={position:"relative",width:40,height:22,borderRadius:11,border:"none",cursor:"pointer",padding:0,flexShrink:0,transition:"background 0.18s ease",outline:"none"},Q={position:"absolute",top:3,width:16,height:16,borderRadius:"50%",background:"var(--accent-fg)",transition:"left 0.18s ease, transform 0.18s ease",boxShadow:"0 1px 3px rgba(0,0,0,0.18)"};function ee({checked:e,onChange:t,label:r,description:o}){return(0,n.jsxs)("label",{style:{display:"flex",alignItems:o?"flex-start":"center",justifyContent:"space-between",gap:12,padding:"12px 14px",borderRadius:7,cursor:"pointer",userSelect:"none",transition:"background 0.12s",margin:"0 -14px"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},children:[(0,n.jsxs)("span",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("span",{style:{display:"block",fontSize:13,fontWeight:550,color:"var(--text)",lineHeight:1.4},children:r}),o&&(0,n.jsx)("span",{style:{display:"block",fontSize:11,lineHeight:1.5,color:"var(--text-muted)",marginTop:2},children:o})]}),(0,n.jsx)("button",{type:"button",role:"switch","aria-checked":e,onClick:r=>{r.preventDefault(),t(!e)},style:{...Z,background:e?"var(--accent)":"color-mix(in srgb, var(--border) 70%, var(--bg))"},children:(0,n.jsx)("span",{style:{...Q,left:e?21:3}})})]})}function et({title:e,description:t,children:r}){return(0,n.jsxs)("section",{style:{padding:"20px 22px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("h2",{style:{margin:0,fontSize:14,fontWeight:650,color:"var(--text)"},children:e}),(0,n.jsx)("p",{style:{margin:"5px 0 14px",fontSize:12,lineHeight:1.5,color:"var(--text-muted)"},children:t}),(0,n.jsx)("div",{children:r})]})}let er="pi-input-shortcut";function en(){try{let e=localStorage.getItem(er);return"ctrl-enter"===e?"ctrl-enter":"enter"}catch{return"enter"}}function eo(){let{t:e}=(0,Y.s)(),[t,r]=(0,o.useState)(en);(0,o.useEffect)(()=>{let e=()=>r(en());return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[]);let i=(0,o.useCallback)(e=>{r(e);try{localStorage.setItem(er,e),window.dispatchEvent(new StorageEvent("storage",{key:er,newValue:e}))}catch{}},[]);return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",flex:1,minWidth:0,minHeight:0,overflowY:"auto"},children:[(0,n.jsx)("header",{style:{padding:"18px 22px 14px",borderBottom:"1px solid var(--border)"},children:(0,n.jsx)("h1",{style:{margin:0,fontSize:16,fontWeight:700,color:"var(--text)"},children:e("desktop.chat")})}),(0,n.jsx)(et,{title:e("desktop.inputShortcut"),description:e("desktop.inputShortcutDescription"),children:(0,n.jsx)(ee,{checked:"ctrl-enter"===t,onChange:e=>i(e?"ctrl-enter":"enter"),label:e("desktop.useCtrlEnter"),description:e("desktop.useCtrlEnterDescription")})})]})}var ei=r(61719),es=r(95650),el=r(55803),ea=r(23602),ed=r(18613),ec=r(12779);let eu=new Set;function ep(e){return eu.add(e),()=>{eu.delete(e)}}function eh(){eu.forEach(e=>e())}let eg="pi-theme-mode",ex="pi-theme",ef="pi-theme-light",em="pi-theme-dark",ev="pi-border-depth";function ey(){try{let e=localStorage.getItem(ex);if(e)return e;let t=function(){try{let e=localStorage.getItem(ex);if(e)return localStorage.removeItem(em),localStorage.removeItem(ef),e;let t=localStorage.getItem(em),r=localStorage.getItem(ef),n=t??r;if(n)return localStorage.setItem(ex,n),localStorage.removeItem(em),localStorage.removeItem(ef),n}catch{}return null}();if(t)return t}catch{}return""}function eb(e,t){try{t?localStorage.setItem(ex,t):localStorage.removeItem(ex),localStorage.removeItem(em),localStorage.removeItem(ef)}catch{}}function ek(){try{let e=localStorage.getItem(ev);if(null!==e){let t=parseInt(e,10);if(!isNaN(t)&&t>=0&&t<=100)return t}}catch{}return 50}function ej(){return window.matchMedia("(prefers-color-scheme: dark)").matches}function ew(e){return"system"===e?ej()?"dark":"light":e}function eS(){if("u"<typeof document)return"dark";let e=document.documentElement.dataset.themeMode;if("dark"===e||"light"===e||"system"===e)return e;try{let e=localStorage.getItem(eg);if("dark"===e||"light"===e||"system"===e)return e}catch{}return"dark"}function eC(){if("u"<typeof document)return"";let e=document.documentElement.dataset.theme;return e||ey()}function ez(){return"dark"}let eT=["--bg","--bg-panel","--bg-secondary","--bg-card","--bg-hover","--bg-selected","--bg-card-hover","--bg-subtle","--border","--border-hover","--text","--text-muted","--text-dim","--accent","--accent-hover","--accent-blue","--accent-red","--accent-green","--accent-orange","--git-status-added","--git-status-modified","--git-status-deleted","--git-status-added-bg","--git-status-modified-bg","--git-status-deleted-bg","--user-bg","--assistant-bg","--tool-bg","--hatch-color","--status-error","--status-warning","--status-success","--status-info","--status-error-bg","--status-warning-bg","--status-success-bg","--status-info-bg","--status-error-border","--status-warning-border","--status-success-border","--status-info-border","--syntax-keyword","--syntax-string","--syntax-number","--syntax-function","--syntax-comment"],eR=["--border-orig","--border-hover-orig"];function eI(){let e=document.documentElement;for(let t of eT)e.style.removeProperty(t);for(let t of eR)e.style.removeProperty(t)}function eM(e){let t=document.documentElement,r=document.documentElement,n=r.style.getPropertyValue("--border-orig").trim(),o=r.style.getPropertyValue("--border-hover-orig").trim();if(!n||!o){let e=getComputedStyle(r);!n&&(n=e.getPropertyValue("--border").trim())&&r.style.setProperty("--border-orig",n),!o&&(o=e.getPropertyValue("--border-hover").trim())&&r.style.setProperty("--border-hover-orig",o)}if(50===e){let e=t.style.getPropertyValue("--border-orig").trim(),r=t.style.getPropertyValue("--border-hover-orig").trim();e?t.style.setProperty("--border",e):t.style.removeProperty("--border"),r?t.style.setProperty("--border-hover",r):t.style.removeProperty("--border-hover");return}let i=e/100,s=e=>{if(i<=.5){let t=Math.round(2*i*100);return`color-mix(in srgb, var(${e}) ${t}%, var(--bg) ${100-t}%)`}{let t=Math.round((i-.5)*200);return`color-mix(in srgb, var(${e}) ${100-t}%, var(--text) ${t}%)`}};t.style.setProperty("--border",s("--border-orig")),t.style.setProperty("--border-hover",s("--border-hover-orig"))}let eE=new Map;async function e$(e,t){let r=`${e}::${t}`;if(eE.has(r))return eE.get(r);try{let n=await fetch(`/api/themes/${encodeURIComponent(e)}?mode=${t}`);if(!n.ok)return null;let o=await n.json();for(eE.set(r,o);eE.size>50;){let e=eE.keys().next().value;if(void 0===e)break;eE.delete(e)}return o}catch{return null}}async function eW(e,t){let r=document.documentElement;if("dark"===e?r.classList.add("dark"):r.classList.remove("dark"),!t){delete r.dataset.theme,eI();return}r.dataset.theme=t;let n=await e$(t,e);if(n){var o=n.cssVars;let e=document.documentElement;for(let t of eT)o[t]?e.style.setProperty(t,o[t]):e.style.removeProperty(t);o["--border"]?e.style.setProperty("--border-orig",o["--border"]):e.style.removeProperty("--border-orig"),o["--border-hover"]?e.style.setProperty("--border-hover-orig",o["--border-hover"]):e.style.removeProperty("--border-hover-orig")}else console.warn(`Theme "${t}" variant "${e}" not found, using defaults`),eI()}let eL=(()=>{if("u"<typeof navigator)return!1;let e=navigator.userAgent;return/AppleWebKit/.test(e)&&!/Chrome|Edg|OPR|Version\//.test(e)})();async function eN(e){if(function(){try{return!!window.__TAURI__}catch{return!1}}())try{let t=window.__TAURI__;await t?.core?.invoke?.("set_ui_theme",{theme:e})}catch{}}function eA(){let e=(0,o.useSyncExternalStore)(ep,eS,ez),t=(0,o.useSyncExternalStore)(ep,eC,()=>""),[r,n]=(0,o.useState)(()=>{if("u">typeof document){let e=document.documentElement.dataset.themeResolvedMode;if("dark"===e||"light"===e)return e}return ew(eS())}),[i,s]=(0,o.useState)(()=>ek()),l=(0,o.useCallback)(e=>{let t=Math.max(0,Math.min(100,Math.round(e)));s(t);try{localStorage.setItem(ev,String(t))}catch{}eM(t)},[]),a="dark"===r,d=(0,o.useRef)(null);(0,o.useEffect)(()=>{d.current!==r&&(d.current=r,eN(r))},[r]);let c=(0,o.useRef)(!1),u=(0,o.useCallback)((e,t,r)=>{let o=document.documentElement;o.dataset.themeMode=t,o.dataset.themeResolvedMode=e,"dark"===e?o.classList.add("dark"):o.classList.remove("dark"),r?o.dataset.theme=r:delete o.dataset.theme,n(e)},[]);(0,o.useEffect)(()=>{let r=document.documentElement,n=r.dataset.themeMode,o=r.dataset.theme,i="dark"===n||"light"===n||"system"===n?n:e,s=o||t;if(c.current)return;c.current=!0;let l=ew(i);u(l,i,s),eW(l,s).finally(()=>{c.current=!1;try{localStorage.setItem(eg,i)}catch{}eb(l,s),eM(ek()),eh()})},[]),(0,o.useEffect)(()=>{var e;let t;return e=()=>{if("system"===eS()){let e=ej()?"dark":"light",t=ey();u(e,"system",t),eW(e,t),eM(ek()),eh()}},(t=window.matchMedia("(prefers-color-scheme: dark)")).addEventListener("change",e),()=>t.removeEventListener("change",e)},[u]);let p=(0,o.useCallback)(async e=>{if(!c.current){c.current=!0;try{await eW(r,e),eb(r,e);let t=eS();u(r,t,e),eM(ek()),eh()}finally{c.current=!1}}},[r,u]),h=(0,o.useCallback)(async e=>{if(c.current)return;c.current=!0;let t=ew(e),r=ey();try{await eW(t,r);try{localStorage.setItem(eg,e)}catch{}u(t,e,r),eM(ek()),eh()}finally{c.current=!1}},[u]),g=(0,o.useCallback)(e=>{let t=eS(),n="system"===t?"dark"===r?"light":"dark":"dark"===t?"light":"dark",o=()=>{h(n)},i=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches;if("function"!=typeof document.startViewTransition||i||eL)return void o();let s=e?.x??window.innerWidth/2,l=e?.y??window.innerHeight/2,a=Math.hypot(Math.max(s,window.innerWidth-s),Math.max(l,window.innerHeight-l));document.startViewTransition(()=>{o()}).ready.then(()=>{document.documentElement.animate({clipPath:[`circle(0px at ${s}px ${l}px)`,`circle(${a}px at ${s}px ${l}px)`]},{duration:450,easing:"cubic-bezier(0.22, 0.61, 0.36, 1)",pseudoElement:"::view-transition-new(root)"})}).catch(()=>{})},[r,h]);return{mode:e,resolvedMode:r,themeName:t,setMode:h,setTheme:p,toggleTheme:g,isDark:a,borderDepth:i,setBorderDepth:l}}let eP={display:"flex",gap:6,flexWrap:"wrap"};function eF(e,t,r){return{display:"inline-flex",alignItems:"center",gap:7,padding:"7px 14px",border:`1px solid ${e?"var(--accent)":t?"var(--border-hover)":"var(--border)"}`,borderRadius:8,background:e?"color-mix(in srgb, var(--accent) 12%, var(--bg))":t?"var(--bg-hover)":"var(--bg-card)",color:e?"var(--accent)":t?"var(--text)":"var(--text-muted)",fontSize:13,fontWeight:e?600:400,cursor:r?"not-allowed":"pointer",opacity:r?.5:1,transition:"border-color 0.15s, background 0.15s, color 0.15s",outline:"none",whiteSpace:"nowrap"}}function eD({icon:e,label:t,actions:r}){return(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:10,width:"100%"},children:[(0,n.jsx)("span",{style:{color:"var(--text-dim)",display:"inline-flex",flexShrink:0},children:e}),(0,n.jsx)("span",{style:{fontSize:11,fontWeight:700,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.06em"},children:t}),r&&(0,n.jsx)("span",{style:{display:"inline-flex",alignItems:"center",gap:12,marginLeft:"auto"},children:r})]})}let eH={display:"inline-flex",alignItems:"center",gap:6,padding:0,border:0,background:"transparent",color:"var(--accent)",fontSize:11,cursor:"pointer",whiteSpace:"nowrap"},eO={onMouseEnter:e=>{e.currentTarget.style.textDecoration="underline"},onMouseLeave:e=>{e.currentTarget.style.textDecoration="none"}};function eB({title:e,description:t,children:r}){return(0,n.jsxs)("section",{style:{padding:"20px 22px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("h2",{style:{margin:0,fontSize:14,fontWeight:650,color:"var(--text)"},children:e}),(0,n.jsx)("p",{style:{margin:"5px 0 16px",fontSize:12,lineHeight:1.5,color:"var(--text-muted)"},children:t}),r]})}function eU({depth:e}){let t=e/100;return(0,n.jsxs)("svg",{width:14,height:14,viewBox:"0 0 14 14",style:{flexShrink:0},children:[(0,n.jsx)("rect",{x:1.5,y:1.5,width:11,height:11,rx:2.5,style:{fill:"none",stroke:"var(--text-dim)",strokeWidth:1+2*t,opacity:.2+.8*t}}),(0,n.jsx)("rect",{x:4,y:4,width:6,height:6,rx:1,style:{fill:"var(--text-dim)",opacity:.05+.35*t}})]})}function e_({hasDark:e,hasLight:t,darkColor:r,lightColor:o,t:i}){return(0,n.jsxs)("span",{style:{display:"inline-flex",gap:3,alignItems:"center",flexShrink:0},children:[e&&(0,n.jsx)("span",{title:i("desktop.darkVariant"),style:{display:"inline-block",width:7,height:7,borderRadius:"50%",background:r??"#7c6f64"}}),t&&(0,n.jsx)("span",{title:i("desktop.lightVariant"),style:{display:"inline-block",width:7,height:7,borderRadius:"50%",background:o??"#d5c4a1",border:"1px solid rgba(0,0,0,0.1)"}})]})}function eq({colors:e}){return(0,n.jsxs)("div",{"aria-hidden":"true",style:{display:"flex",height:62,borderRadius:6,overflow:"hidden",background:e.bg,border:`1px solid ${e.border}`},children:[(0,n.jsxs)("div",{style:{width:26,flexShrink:0,background:e.panel,borderRight:`1px solid ${e.border}`,padding:"5px 4px",display:"flex",flexDirection:"column",gap:3},children:[(0,n.jsx)("span",{style:{height:3,borderRadius:2,background:e.accent,width:"70%"}}),(0,n.jsx)("span",{style:{height:3,borderRadius:2,background:e.muted,opacity:.5,width:"100%"}}),(0,n.jsx)("span",{style:{height:3,borderRadius:2,background:e.muted,opacity:.5,width:"82%"}}),(0,n.jsx)("span",{style:{height:3,borderRadius:2,background:e.muted,opacity:.5,width:"60%"}})]}),(0,n.jsxs)("div",{style:{flex:1,minWidth:0,padding:"5px 6px",display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsxs)("div",{style:{alignSelf:"flex-end",maxWidth:"78%",borderRadius:5,background:e.userBg,padding:"3px 5px",display:"flex",flexDirection:"column",gap:2},children:[(0,n.jsx)("span",{style:{height:2.5,borderRadius:2,background:e.text,opacity:.75,width:34}}),(0,n.jsx)("span",{style:{height:2.5,borderRadius:2,background:e.text,opacity:.5,width:22}})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[(0,n.jsx)("span",{style:{height:2.5,borderRadius:2,background:e.text,opacity:.7,width:"86%"}}),(0,n.jsx)("span",{style:{height:2.5,borderRadius:2,background:e.muted,opacity:.65,width:"64%"}})]}),(0,n.jsxs)("div",{style:{borderRadius:4,background:e.toolBg,borderLeft:`2px solid ${e.accent}`,padding:"3px 5px",display:"flex",alignItems:"center",gap:4},children:[(0,n.jsx)("span",{style:{width:5,height:5,borderRadius:"50%",background:e.accent,flexShrink:0}}),(0,n.jsx)("span",{style:{height:2.5,borderRadius:2,background:e.muted,opacity:.7,width:"52%"}})]})]})]})}function eK({active:e,hovered:t,disabled:r,displayName:o,colors:i,hasDark:s,hasLight:l,onClick:a,onHoverStart:d,onHoverEnd:c}){let u=e?"var(--accent)":t?"var(--border-hover)":"var(--border)";return(0,n.jsxs)("button",{type:"button",onClick:a,disabled:r,onMouseEnter:d,onMouseLeave:c,onFocus:d,onBlur:c,"aria-pressed":e,style:{display:"flex",flexDirection:"column",gap:7,padding:8,border:`1px solid ${u}`,borderRadius:9,background:t&&!e?"var(--bg-hover)":"var(--bg-card)",cursor:r?"not-allowed":"pointer",opacity:r?.5:1,textAlign:"left",minWidth:0,transition:"border-color 0.15s, background 0.15s"},children:[i?(0,n.jsx)(eq,{colors:i}):(0,n.jsx)("div",{"aria-hidden":"true",style:{height:62,borderRadius:6,background:"var(--bg-panel)",border:"1px solid var(--border)"}}),(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:6,minWidth:0},children:[(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12,fontWeight:e?600:400,color:e?"var(--accent)":"var(--text)"},children:o}),(0,n.jsx)(e_,{hasDark:s,hasLight:l,darkColor:i?.accent,lightColor:i?.accent,t:()=>""}),e&&(0,n.jsx)(ei.r,{size:13,weight:"fill",color:"var(--accent)","aria-hidden":"true",style:{flexShrink:0}})]})]})}function eV(){let{mode:e,resolvedMode:t,themeName:r,setMode:i,setTheme:s,borderDepth:l,setBorderDepth:a}=eA(),{locale:d,setLocale:c,t:u}=(0,Y.s)(),[p,h]=(0,o.useState)([]),[g,x]=(0,o.useState)(void 0),[f,m]=(0,o.useState)(!0),[v,y]=(0,o.useState)(null),[b,k]=(0,o.useState)(null),[j,w]=(0,o.useState)(!1),[S,C]=(0,o.useState)(!1),[z,T]=(0,o.useState)("");(0,o.useEffect)(()=>{fetch("/api/web-auth").then(e=>e.ok?e.json():null).then(e=>w(e?.enabled===!0)).catch(()=>{})},[]);let R=(0,o.useCallback)(async()=>{C(!0),T("");try{let e=await fetch("/api/web-auth",{method:"DELETE"});if(!e.ok)throw Error(`HTTP ${e.status}`);window.location.replace("/login")}catch{T(u("auth.logoutFailed"))}finally{C(!1)}},[u]);(0,o.useEffect)(()=>{let e=!1;return fetch(`/api/themes?mode=${t}`).then(e=>e.ok?e.json():null).then(t=>{!e&&t&&(h(t.themeSets),x(t.defaultPreview))}).catch(()=>{}).finally(()=>{e||m(!1)}),()=>{e=!0}},[t]);let I=(0,o.useCallback)(e=>{y(e),s(e).finally(()=>y(null))},[s]),M=(0,o.useCallback)(e=>{k(e)},[]),E=(0,o.useCallback)(e=>{i(e)},[i]),$=(0,o.useCallback)(()=>{window.piDesktop?.openThemeFolder()},[]),W=(0,o.useCallback)(()=>{window.piDesktop?window.piDesktop.openThemeDocs():window.open("https://pi.dev/docs/latest/themes","_blank","noopener,noreferrer")},[]);return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",flex:1,minWidth:0,minHeight:0,overflowY:"auto"},children:[(0,n.jsx)("header",{style:{padding:"18px 22px 14px",borderBottom:"1px solid var(--border)"},children:(0,n.jsx)("h1",{style:{margin:0,fontSize:16,fontWeight:700,color:"var(--text)"},children:u("desktop.display")})}),(0,n.jsxs)(eB,{title:u("desktop.theme"),description:u("desktop.themeDescription"),children:[(0,n.jsx)(eD,{icon:(0,n.jsx)(es.p,{size:14,weight:"fill"}),label:u("desktop.colorScheme"),actions:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("button",{type:"button",onClick:$,style:eH,...eO,children:[(0,n.jsx)(el.N,{size:12,weight:"regular","aria-hidden":"true"}),u("desktop.openThemeFolder")]}),(0,n.jsxs)("button",{type:"button",onClick:W,style:eH,...eO,children:[(0,n.jsx)(ea.B,{size:12,weight:"regular","aria-hidden":"true"}),u("desktop.learnPiThemes")]})]})}),f?(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-dim)"},children:u("desktop.loadingThemes")}):(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(150px, 1fr))",gap:10},children:[(0,n.jsx)(eK,{active:""===r,hovered:"__default__"===b,disabled:null!==v,displayName:u("desktop.defaultTheme"),colors:g,hasDark:!0,hasLight:!0,onClick:()=>I(""),onHoverStart:()=>M(""),onHoverEnd:()=>M(null)}),p.map(e=>(0,n.jsx)(eK,{active:r===e.name,hovered:b===e.name,disabled:null!==v,displayName:e.displayName,colors:e.preview,hasDark:e.hasDark,hasLight:e.hasLight,onClick:()=>I(e.name),onHoverStart:()=>M(e.name),onHoverEnd:()=>M(null)},e.name))]}),(0,n.jsxs)("div",{style:{marginTop:20},children:[(0,n.jsx)(eD,{icon:(0,n.jsx)(eU,{depth:l}),label:`${u("desktop.borderVisibility")} (${l})`}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,n.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",flexShrink:0},children:u("desktop.borderSubtle")}),(0,n.jsx)("input",{type:"range",min:0,max:100,step:1,value:l,onChange:e=>a(Number(e.target.value)),style:{flex:1,accentColor:"var(--accent)",height:6,cursor:"pointer"}}),(0,n.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",flexShrink:0},children:u("desktop.borderBold")})]}),(0,n.jsx)("div",{style:{marginTop:10,display:"flex",gap:10},children:[0,25,50,75,100].map(e=>{let t=l===e,r=e<=50?`color-mix(in srgb, var(--border-orig) ${2*e}%, var(--bg) ${100-2*e}%)`:`color-mix(in srgb, var(--border-orig) ${100-(e-50)*2}%, var(--text) ${(e-50)*2}%)`;return(0,n.jsx)("div",{onClick:()=>a(e),style:{width:28,height:20,border:`2px solid ${t?"var(--accent)":r}`,borderRadius:5,background:"var(--bg-card)",cursor:"pointer",transition:"border-color 0.1s"}},e)})})]}),(0,n.jsxs)("div",{style:{marginTop:20},children:[(0,n.jsx)(eD,{icon:"dark"===t?(0,n.jsx)(ed.A,{size:14,weight:"fill"}):(0,n.jsx)(ec.b,{size:14,weight:"fill"}),label:u("desktop.appearanceMode")}),(0,n.jsx)("div",{style:eP,children:[{value:"light",icon:(0,n.jsx)(ec.b,{size:15,weight:"light"===e?"fill":"regular"})},{value:"dark",icon:(0,n.jsx)(ed.A,{size:15,weight:"dark"===e?"fill":"regular"})},{value:"system",icon:(0,n.jsx)(A.V,{size:15,weight:"system"===e?"fill":"regular"})}].map(t=>{let r=e===t.value;return(0,n.jsxs)("button",{type:"button",onClick:()=>E(t.value),style:eF(r,b===`mode:${t.value}`),onMouseEnter:()=>k(`mode:${t.value}`),onMouseLeave:()=>k(null),children:[t.icon,u(`desktop.${t.value}`)]},t.value)})})]}),!f&&0===p.length&&(0,n.jsxs)("p",{style:{margin:"14px 0 0",fontSize:11,color:"var(--text-dim)",lineHeight:1.5},children:[u("desktop.noCustomThemes")," ",u("desktop.noCustomThemesHint")," ",(0,n.jsx)("code",{style:{fontSize:10,background:"var(--bg-secondary)",padding:"1px 5px",borderRadius:3,fontFamily:"var(--font-mono)"},children:"~/.pi/agent/themes/*.json"})," ",u("desktop.noCustomThemesHint2")]})]}),(0,n.jsx)(eB,{title:u("desktop.language"),description:u("desktop.languageDescription"),children:(0,n.jsx)("div",{style:eP,children:["en","zh-CN"].map(e=>(0,n.jsx)("button",{type:"button",onClick:()=>c("zh-CN"===e?"zh-CN":"en"),style:eF("zh-CN"===e?"zh-CN"===d:"zh-CN"!==d,b===`lang:${e}`),onMouseEnter:()=>k(`lang:${e}`),onMouseLeave:()=>k(null),children:"en"===e?u("desktop.english"):u("desktop.chinese")},e))})}),j&&(0,n.jsxs)(eB,{title:u("auth.prompt"),description:u("desktop.accessDescription"),children:[(0,n.jsx)("div",{style:eP,children:(0,n.jsx)("button",{type:"button",disabled:S,onClick:()=>void R(),style:eF(!1,"logout"===b),onMouseEnter:()=>k("logout"),onMouseLeave:()=>k(null),children:S?u("auth.loggingOut"):u("auth.logOut")})}),z&&(0,n.jsx)("p",{role:"alert",style:{margin:"8px 0 0",color:"var(--status-error)",fontSize:12},children:z})]})]})}var eJ=r(94638);function eY({children:e}){return(0,n.jsx)("div",{style:{borderRadius:12,border:"1px solid var(--border)",background:"color-mix(in srgb, var(--bg-panel) 55%, transparent)",overflow:"hidden"},children:e})}function eG({children:e}){return(0,n.jsx)("div",{style:{padding:"0 14px"},children:(0,n.jsx)("div",{style:{borderBottom:"1px solid var(--border)"},children:e})})}function eX({children:e}){return(0,n.jsx)("div",{style:{padding:"0 14px"},children:e})}function eZ({children:e}){return(0,n.jsx)("div",{style:{display:"flex",gap:8,borderRadius:10,border:"1px solid var(--border)",background:"color-mix(in srgb, var(--bg-panel) 55%, transparent)",padding:"10px 12px",fontSize:12,lineHeight:1.5,color:"var(--text-muted)"},children:e})}let eQ="normal",e0="full",e1="auto";function e2(e){return"normal"===e||"plan"===e||"goal"===e?e:eQ}function e6(e){return"economy"===e||"delivery"===e||"full"===e?e:e0}function e4(e){return"ask"===e||"auto"===e||"yolo"===e?e:e1}let e5=["bash","edit","edit_file","grep","find","kill_shell","ls","read","update_goal","wait","write","write_file"],e3=`You are in PLAN MODE. Work as a read-only planning assistant.
2
2
  - Analyze, read, search and reason about the codebase; do NOT modify any files.
3
3
  - Do NOT run shell commands that mutate state, install packages, or start servers.
4
4
  - When you have enough understanding, produce a concrete, step-by-step implementation plan.
@@ -183,18 +183,18 @@ At the end of each turn report your disposition explicitly:
183
183
  gap: 9px;
184
184
  }
185
185
  }
186
- `})]})}let on=new Set(["read","bash","powershell","edit","write","grep","find","ls"]);function oo({sessionId:e,onSessionReloaded:t}){let{t:r}=(0,Y.s)(),[i,s]=(0,o.useState)(null),[l,a]=(0,o.useState)(null),[d,c]=(0,o.useState)(null),[u,p]=(0,o.useState)(!1),[h,g]=(0,o.useState)([]),[x,f]=(0,o.useState)(null),[m,v]=(0,o.useState)(!1),y=(0,o.useMemo)(()=>(d??[]).filter(e=>!on.has(e.name)),[d]);(0,o.useEffect)(()=>{let e=!1;return fetch("/api/tools/extension-tools").then(async t=>{let r=await t.json();if(!t.ok||r.error)throw Error(r.error??`HTTP ${t.status}`);e||g(r.disabled??[])}).catch(t=>{e||f(t instanceof Error?t.message:String(t))}),()=>{e=!0}},[]);let b=(0,o.useCallback)(async(r,n)=>{let o=n?h.filter(e=>e!==r):[...new Set([...h,r])];g(o),f(null),v(!0);try{let r=await fetch("/api/tools/extension-tools",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({disabled:o})}),n=await r.json();if(!r.ok||n.error)throw Error(n.error??`HTTP ${r.status}`);g(n.disabled??o),e&&(await tE(e,{type:"reload"}),t())}catch(e){f(e instanceof Error?e.message:String(e))}finally{v(!1)}},[h,t,e]);(0,o.useEffect)(()=>{if(!e)return void c(null);let t=!1;return p(!0),tE(e,{type:"get_tools"}).then(e=>{t||c(e??[])}).catch(()=>{t||c([])}).finally(()=>{t||p(!1)}),()=>{t=!0}},[e]),(0,o.useEffect)(()=>{let e=!1;return fetch("/api/tools/settings").then(async t=>{let r=await t.json();if(!t.ok||r.error)throw Error(r.error??`HTTP ${t.status}`);e||s(r)}).catch(t=>{e||a(t instanceof Error?t.message:String(t))}),()=>{e=!0}},[]);let k=(0,o.useCallback)(async r=>{a(null);try{let n=await fetch("/api/tools/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:r})}),o=await n.json();if(!n.ok||o.error)throw Error(o.error??`HTTP ${n.status}`);s(o),e&&(await tE(e,{type:"reload"}),t())}catch(e){a(e instanceof Error?e.message:String(e))}},[t,e]);return(0,n.jsxs)("div",{style:{padding:16,overflowY:"auto",minHeight:0,flex:1},children:[(0,n.jsxs)(eY,{children:[(0,n.jsx)(eG,{children:(0,n.jsx)(ee,{label:r("desktop.usePowerShell"),description:r("desktop.shellToolDescription"),checked:i?.powerShellEnabled??!1,onChange:e=>void k(e)})}),(0,n.jsx)(eX,{children:(0,n.jsx)("div",{style:{padding:"10px 0",fontSize:12,lineHeight:1.5,color:"var(--text-dim)"},children:i?.isWindows?r("desktop.shellToolWindowsOnly"):l??r("desktop.shellToolMacOnly")})})]}),(0,n.jsxs)(eY,{children:[(0,n.jsxs)(eG,{children:[(0,n.jsx)("div",{style:{padding:"12px 0 4px",fontSize:13,fontWeight:600,color:"var(--text)"},children:r("desktop.extensionToolsTitle")}),(0,n.jsx)("div",{style:{paddingBottom:8,fontSize:11,lineHeight:1.5,color:"var(--text-dim)"},children:r(e?"desktop.extensionToolsHint":"desktop.toolsListNoSession")}),0===y.length&&e&&!u&&(0,n.jsx)("div",{style:{paddingBottom:8,fontSize:11,color:"var(--text-dim)"},children:r("desktop.extensionToolsEmpty")}),y.map(e=>(0,n.jsx)(ee,{label:e.name,description:e.description?.slice(0,140),checked:!h.includes(e.name),onChange:t=>void b(e.name,t)},e.name))]}),(0,n.jsx)(eX,{children:(0,n.jsx)("div",{style:{padding:"8px 0 10px",fontSize:11,lineHeight:1.5,color:x?"var(--status-error)":"var(--text-dim)"},children:x??r(m?"desktop.saving":"desktop.extensionToolsApplyNote")})})]}),(0,n.jsx)(eY,{children:(0,n.jsxs)(eX,{children:[(0,n.jsx)("div",{style:{padding:"12px 0 4px",fontSize:13,fontWeight:600,color:"var(--text)"},children:r("tools.title")}),(0,n.jsx)("div",{style:{paddingBottom:10,fontSize:11,lineHeight:1.5,color:"var(--text-dim)"},children:r(e?"desktop.toolsListHint":"desktop.toolsListNoSession")})]})}),e&&(0,n.jsx)("div",{style:{border:"1px solid var(--border)",borderRadius:8,overflow:"hidden"},children:(0,n.jsx)(or,{loading:u,tools:d,translate:r})})]})}function oi(e){if(!e)return!0;let t=e.replace(/[\u200B-\u200D\uFEFF]/g,"").trim();return/^[((]?\s*no\s+messages\s*[)).\u2026]*$/i.test(t)}function os(e,t=""){let r=te(e.name??"").trim();if(r&&!oi(r))return r;let n=te(e.firstMessage??"").trim();if(n&&!oi(n))return n.slice(0,50);let o=(e.id??"").trim();return o?o.slice(0,12):t}function ol(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function oa(e){return null==e?"—":ol(e)}function od({sessionId:e,cwd:t}){let{t:r}=(0,Y.s)(),[i,s]=(0,o.useState)(null),[l,a]=(0,o.useState)(null),[d,c]=(0,o.useState)(!1);(0,o.useEffect)(()=>{let t=!1;return e?(fetch(`/api/agent/${encodeURIComponent(e)}`).then(e=>e.ok?e.json():null).then(e=>{t||s(e?.state?.contextUsage??null)}).catch(()=>{}),()=>{t=!0}):void s(null)},[e]);let u=(0,o.useCallback)(async()=>{c(!0);try{let e=await fetch("/api/usage");e.ok&&a(await e.json())}catch{}finally{c(!1)}},[]);(0,o.useEffect)(()=>{u()},[u]);let p=(0,o.useMemo)(()=>l?.daily.slice(-14)??[],[l]),h=(0,o.useMemo)(()=>p.reduce((e,t)=>Math.max(e,t.tokens),0),[p]);return(0,n.jsxs)("div",{style:{flex:1,overflow:"auto",minWidth:0,padding:"16px 20px",display:"flex",flexDirection:"column",gap:16},children:[(0,n.jsx)("h3",{style:{margin:0,fontSize:15,fontWeight:600,color:"var(--text)"},children:r("desktop.usage")}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[(0,n.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text-muted)"},children:r("desktop.usageSession")}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[e?(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:12,borderRadius:12,border:"1px solid var(--border)",padding:16},children:i?(0,n.jsx)(n.Fragment,{children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:16},children:[(0,n.jsxs)("svg",{width:72,height:72,viewBox:"0 0 72 72",style:{flexShrink:0},children:[(0,n.jsx)("circle",{cx:36,cy:36,r:30,fill:"none",stroke:"var(--border)",strokeWidth:7}),(0,n.jsx)("circle",{cx:36,cy:36,r:30,fill:"none",stroke:"var(--accent)",strokeWidth:7,strokeLinecap:"round",strokeDasharray:2*Math.PI*30,strokeDashoffset:2*Math.PI*30*(1-Math.min(1,(i.percent??0)/100)),transform:"rotate(-90 36 36)",style:{transition:"stroke-dashoffset 0.4s ease"}}),(0,n.jsx)("text",{x:36,y:41,textAnchor:"middle",fontSize:15,fontWeight:700,fill:"var(--text)",children:null!=i.percent?`${i.percent.toFixed(0)}%`:"?"})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:3},children:[(0,n.jsx)("span",{style:{fontSize:13,color:"var(--text)"},children:r("desktop.usageContext",{used:oa(i.tokens),window:oa(i.contextWindow)})}),(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)"},children:r("desktop.usageContextHint")})]})]})}):(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)"},children:r("desktop.usageNoSessionData")})}):(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)"},children:r("desktop.usageNoSession")}),t&&(0,n.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t})]})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[(0,n.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text-muted)"},children:r("desktop.usageGlobal")}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(140px, 1fr))",gap:10},children:[{label:r("desktop.usageTotal"),value:oa(l?.totalTokens),sub:l?`${l.totalSessions} ${r("desktop.usageSessions")}`:"…"},{label:r("desktop.usageMessages"),value:l?String(l.messageCount):"…",sub:r("desktop.usageMessagesHint")}].map(e=>(0,n.jsxs)("div",{style:{borderRadius:12,border:"1px solid var(--border)",padding:"12px 14px",background:"var(--bg-panel)"},children:[(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",marginBottom:4},children:e.label}),(0,n.jsx)("div",{style:{fontSize:18,fontWeight:700,color:"var(--text)"},children:e.value}),(0,n.jsx)("div",{style:{fontSize:10.5,color:"var(--text-dim)",marginTop:2},children:e.sub})]},e.label))}),(0,n.jsxs)("div",{style:{borderRadius:12,border:"1px solid var(--border)",padding:"14px 16px"},children:[(0,n.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",marginBottom:10},children:r("desktop.usageDaily")}),0===p.length?(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)"},children:r(d?"desktop.featuresLoading":"desktop.usageNoData")}):(0,n.jsx)("div",{style:{display:"flex",alignItems:"flex-end",gap:6,height:96,overflowX:"auto"},children:p.map(e=>{let t=h>0?Math.max(4,Math.round(e.tokens/h*72)):4;return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:4,flexShrink:0},children:[(0,n.jsx)("div",{style:{fontSize:9,color:"var(--text-dim)"},children:e.tokens>0?oa(e.tokens):""}),(0,n.jsx)("div",{style:{width:8,height:t,borderRadius:4,background:e.tokens>0?"var(--accent)":"var(--bg-hover)",opacity:e.tokens>0?.85:1},title:`${e.day}: ${oa(e.tokens)}`}),(0,n.jsx)("div",{style:{fontSize:9,color:"var(--text-dim)"},children:e.day.slice(5)})]},e.day)})})]}),(0,n.jsxs)("div",{style:{borderRadius:12,border:"1px solid var(--border)",overflow:"hidden"},children:[(0,n.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",padding:"10px 14px",borderBottom:"1px solid var(--border)"},children:r("desktop.usageTopSessions")}),l&&0===l.sessions.length?(0,n.jsx)("div",{style:{padding:"14px",fontSize:12,color:"var(--text-muted)"},children:r("desktop.usageNoData")}):(l?.sessions??[]).slice(0,12).map(e=>(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"8px 14px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("span",{style:{flex:1,minWidth:0,fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:os({name:e.name,firstMessage:e.firstMessage,id:e.id})}),(0,n.jsx)("span",{style:{flexShrink:0,fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:oa(e.tokens)})]},e.path))]})]})]})]})}function oc(){let{t:e}=(0,Y.s)(),[t,r]=(0,o.useState)(!1),[i,s]=(0,o.useState)("");(0,o.useEffect)(()=>{r(new URLSearchParams(window.location.search).has("piweb_connected")),s(window.location.host)},[]);let l=(0,o.useCallback)(()=>{window.location.href="piweb-switch://manage"},[]);return t?(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",flex:1,minWidth:0,minHeight:0,overflowY:"auto"},children:[(0,n.jsx)("header",{style:{padding:"18px 22px 14px",borderBottom:"1px solid var(--border)"},children:(0,n.jsx)("h1",{style:{margin:0,fontSize:16,fontWeight:700,color:"var(--text)"},children:e("desktop.server")})}),(0,n.jsxs)("div",{style:{padding:"18px 22px",display:"flex",flexDirection:"column",gap:14},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"12px 14px",borderRadius:10,background:"var(--bg-hover)",border:"1px solid var(--border)"},children:[(0,n.jsx)(N.X,{size:18,color:"var(--accent)"}),(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)"},children:e("desktop.serverCurrent")}),(0,n.jsx)("div",{style:{fontSize:14,fontWeight:600,color:"var(--text)",fontFamily:"var(--font-mono)",wordBreak:"break-all"},children:i})]})]}),(0,n.jsxs)("button",{type:"button",onClick:l,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:8,padding:"10px 16px",borderRadius:10,background:"linear-gradient(135deg, var(--accent), var(--accent-hover, var(--accent)))",color:"var(--accent-fg)",fontSize:14,fontWeight:600,cursor:"pointer",border:"none"},children:[(0,n.jsx)(tl.o,{size:16}),e("desktop.serverSwitch")]}),(0,n.jsx)("p",{style:{margin:0,fontSize:12.5,lineHeight:1.7,color:"var(--text-muted)"},children:e("desktop.serverSwitchHint")})]})]}):null}let ou=[{id:"server",labelKey:"desktop.server",Icon:N.X},{id:"display",labelKey:"desktop.display",Icon:A.V},{id:"chat",labelKey:"desktop.chat",Icon:P.W},{id:"models",labelKey:"desktop.models",Icon:E.f},{id:"skills",labelKey:"desktop.skills",Icon:F.B},{id:"plugins",labelKey:"desktop.plugins",Icon:D.F},{id:"proxy",labelKey:"desktop.proxy",Icon:H.l},{id:"features",labelKey:"desktop.features",Icon:x.l},{id:"logs",labelKey:"desktop.logs",Icon:j.B},{id:"snippets",labelKey:"desktop.snippets",Icon:O.c},{id:"usage",labelKey:"desktop.usage",Icon:B._},{id:"mcp",labelKey:"desktop.mcp",Icon:U.b},{id:"subagents",labelKey:"desktop.subagents",Icon:_.d},{id:"tools",labelKey:"desktop.tools",Icon:U.b},{id:"backup",labelKey:"desktop.backup",Icon:q.W},{id:"import",labelKey:"desktop.importSessions",Icon:M.z}];function op({initialTab:e="models",cwd:t,sessionId:r,onCloseAction:i,onModelsSavedAction:s,onSessionReloadedAction:l,onSessionsChanged:a}){let d=tp(),{t:c}=(0,Y.s)(),[u,p]=(0,o.useState)("skills"===e||"plugins"===e?t?e:"display":e),[h,x]=(0,o.useState)(!1);(0,o.useEffect)(()=>{x(new URLSearchParams(window.location.search).has("piweb_connected"))},[]);let f=h?ou:ou.filter(({id:e})=>"server"!==e),[m,v]=(0,o.useState)(!1),[y,b]=(0,o.useState)(null),k=(0,o.useRef)(new Set),j=(0,o.useCallback)(e=>(k.current.add(e),()=>{k.current.delete(e)}),[]),w=(0,o.useCallback)(async()=>{if(!m){v(!0),b(null);try{let e=(await Promise.allSettled([...k.current].map(e=>e()))).find(e=>"rejected"===e.status);if(e)throw e.reason;i()}catch(e){b(e instanceof Error?e.message:String(e))}finally{v(!1)}}},[m,i]);return L(!m,()=>{w()}),(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:1e3,background:"rgba(0,0,0,0.35)",display:"flex",alignItems:"center",justifyContent:"center"},children:(0,n.jsxs)("section",{role:"dialog","aria-modal":"true","aria-label":c("desktop.settings"),className:"settings-modal",style:{width:d?"calc(100vw - 16px)":1e3,maxWidth:"calc(100vw - 16px)",height:d?"calc(100dvh - 16px)":"80vh",maxHeight:"calc(100dvh - 16px)",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,display:"flex",flexDirection:"column",boxShadow:"0 8px 32px rgba(0,0,0,0.18)",overflow:"hidden"},children:[(0,n.jsxs)("header",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 18px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10,minWidth:0},children:[(0,n.jsx)("span",{style:{fontSize:15,fontWeight:700,color:"var(--text)"},children:c("desktop.settings")}),"models"===u?(0,n.jsx)("code",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:"~/.pi/agent/models.json"}):t&&(0,n.jsx)("code",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t})]}),(0,n.jsx)("button",{type:"button",onClick:()=>{w()},disabled:m,title:c("desktop.closeSettings"),"aria-label":c("desktop.closeSettings"),style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",padding:4,display:"flex"},children:(0,n.jsx)(g.X,{size:18,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:d?"column":"row",minHeight:0,overflow:"hidden",pointerEvents:m?"none":void 0},children:[(0,n.jsx)("nav",{"aria-label":c("desktop.settingsSections"),style:{display:"flex",flexDirection:d?"row":"column",gap:4,width:d?"100%":150,padding:8,flexShrink:0,minWidth:0,background:"var(--bg-panel)",borderRight:d?"none":"1px solid var(--border)",borderBottom:d?"1px solid var(--border)":"none",overflowX:d?"auto":void 0,overflowY:d?"hidden":void 0,WebkitOverflowScrolling:d?"touch":void 0},children:f.filter(({id:e})=>!(d&&"import"===e)).map(({id:e,labelKey:r,Icon:o})=>{let i=("skills"===e||"plugins"===e)&&!t,s=u===e;return(0,n.jsxs)("button",{type:"button",disabled:i,onClick:()=>p(e),"aria-current":s?"page":void 0,style:{display:"flex",alignItems:"center",gap:8,flex:d?"0 0 auto":void 0,whiteSpace:"nowrap",width:d?void 0:"100%",padding:"8px 10px",border:"none",borderRadius:6,background:s?"var(--bg-selected)":"none",color:s?"var(--text)":"var(--text-muted)",cursor:i?"not-allowed":"pointer",opacity:i?.4:1,fontSize:12,fontWeight:s?600:400,textAlign:"left",transition:"background 0.12s, color 0.12s"},title:c(r),"aria-label":c(r),onMouseEnter:e=>{s||i||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{s||(e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)")},children:[(0,n.jsx)(o,{size:16,"aria-hidden":"true"}),!d&&(0,n.jsx)("span",{children:c(r)})]},e)})}),(0,n.jsx)("div",{style:{display:"server"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(oc,{})}),(0,n.jsx)("div",{style:{display:"display"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(eV,{})}),(0,n.jsx)("div",{style:{display:"chat"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(eo,{})}),(0,n.jsx)("div",{style:{display:"models"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(na,{embedded:!0,sessionId:r,cwd:t,onSavedAction:s,onRegisterFlush:j})}),t&&(0,n.jsx)("div",{style:{display:"skills"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(nN,{cwd:t,embedded:!0,sessionId:r})}),t&&(0,n.jsx)("div",{style:{display:"plugins"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(nS,{cwd:t,sessionId:r,embedded:!0,onReloadedAction:l})}),(0,n.jsx)("div",{style:{display:"proxy"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(nT,{})}),(0,n.jsx)("div",{style:{display:"features"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(ti,{})}),(0,n.jsx)("div",{style:{display:"logs"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(nP,{})}),(0,n.jsx)("div",{style:{display:"snippets"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(nH,{})}),(0,n.jsx)("div",{style:{display:"usage"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(od,{sessionId:r,cwd:t})}),(0,n.jsx)("div",{style:{display:"mcp"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(tO,{sessionId:r})}),(0,n.jsx)("div",{style:{display:"subagents"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(n9,{cwd:t??"",sessionId:r,onClose:i})}),(0,n.jsx)("div",{style:{display:"tools"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(oo,{sessionId:r,onSessionReloaded:l})}),(0,n.jsx)("div",{style:{display:"backup"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(X,{cwd:t})}),(0,n.jsx)("div",{style:{display:"import"===u?"flex":"none",flex:1,minWidth:0,minHeight:0,overflowY:"auto"},children:(0,n.jsx)(tg,{onSessionsChanged:a})})]}),y&&(0,n.jsx)("div",{style:{padding:"6px 18px",borderTop:"1px solid var(--border)",color:"var(--status-error)",fontSize:11},children:y})]})})}function oh(e,t){if(e.size!==t.size)return!1;for(let r of e)if(!t.has(r))return!1;return!0}async function og(e){let t=e?`?path=${encodeURIComponent(e)}`:"",r=await fetch(`/api/cwd/browse${t}`),n=await r.json();if(!r.ok||n.error)throw Error(n.error??`HTTP ${r.status}`);return n}function ox(){return(0,n.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.3","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M1.5 3h4l1.5 2h7.5v7.5h-13z"})})}function of(){return(0,n.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),(0,n.jsx)("path",{d:"M2 9h12"}),(0,n.jsx)("circle",{cx:"11.5",cy:"11",r:"0.6",fill:"currentColor",stroke:"none"})]})}function om({onCancel:e,onSelect:t,initialPath:r,busy:i=!1,error:s}){let l,{t:a}=(0,Y.s)(),[d,c]=(0,o.useState)(null),[u,h]=(0,o.useState)(""),[g,x]=(0,o.useState)(null),[f,m]=(0,o.useState)([]),[v,y]=(0,o.useState)(null),[b,k]=(0,o.useState)(null),[j,w]=(0,o.useState)(!0),[S,C]=(0,o.useState)(""),z=(0,o.useCallback)(async e=>{w(!0),k(null),C("");try{let t=await og(e),r=t.path??e??"/";h(r),x(t.parentPath??null),m(t.directories??[]),y(t.drives??null)}catch(e){k(e instanceof Error?e.message:String(e))}finally{w(!1)}},[]);(0,o.useEffect)(()=>{c(document.body),z(r||void 0)},[r,z]);let T=!!u&&!i,R=!!g||/^[a-zA-Z]:[\\/]?$/.test(u);return d?(0,p.createPortal)((0,n.jsx)("div",{className:"directory-picker-backdrop",role:"dialog","aria-modal":"true","aria-label":a("directoryPicker.selectDirectory"),onKeyDown:t=>{"Escape"!==t.key||i||e()},style:{position:"fixed",inset:0,zIndex:1e3,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.35)"},children:(0,n.jsxs)("div",{className:"directory-picker-panel",style:{width:520,maxWidth:"calc(100vw - 16px)",height:"min(620px, calc(100dvh - 16px))",maxHeight:"calc(100dvh - 16px)",display:"flex",flexDirection:"column",overflow:"hidden",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,boxShadow:"0 8px 32px rgba(0,0,0,0.18)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",flexShrink:0,padding:"12px 18px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("div",{style:{minWidth:0,flex:1},children:(0,n.jsx)("div",{style:{color:"var(--text)",fontWeight:700,fontSize:15},children:a("directoryPicker.selectDirectory")})}),(0,n.jsx)("button",{type:"button",onClick:e,disabled:i,title:a("i18n.close"),"aria-label":a("i18n.close"),style:{padding:"2px 6px",border:0,background:"none",color:"var(--text-muted)",fontSize:20,lineHeight:1,cursor:i?"default":"pointer",opacity:i?.5:1},children:"\xd7"})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexShrink:0,padding:"10px 14px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("button",{className:"directory-picker-back",type:"button",onClick:()=>void z(g??void 0),disabled:j||!R,title:a("directoryPicker.goToParent"),"aria-label":a("directoryPicker.goToParent"),style:{width:36,height:36,padding:0,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-hover)",color:"var(--text-muted)",cursor:R?"pointer":"default",opacity:R?1:.45},children:(0,n.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:"m18 15-6-6-6 6"})})}),(0,n.jsx)("div",{title:u,style:{minWidth:0,flex:1,height:36,display:"flex",alignItems:"center",padding:"0 10px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text-muted)",fontFamily:"var(--font-mono)",fontSize:12,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:u||a("directoryPicker.loadingDirectories")})]}),(0,n.jsxs)("div",{className:"directory-picker-list",style:{flex:1,minHeight:0,overflow:"auto",padding:"8px 10px"},children:[j?(0,n.jsx)("div",{style:{padding:8,color:"var(--text-dim)",fontSize:11},children:a("directoryPicker.loadingDirectories")}):null!==v?(0,n.jsx)(n.Fragment,{children:v.length>0?v.map(e=>(0,n.jsxs)("button",{className:"directory-picker-entry",type:"button",onClick:()=>void z(e.path),title:e.path,style:{width:"100%",minHeight:34,display:"flex",alignItems:"center",gap:7,padding:"6px 8px",border:0,borderRadius:5,background:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontFamily:"var(--font-mono)",fontSize:11},children:[(0,n.jsx)(of,{}),(0,n.jsx)("span",{children:e.name})]},e.path)):(0,n.jsx)("div",{style:{padding:8,color:"var(--text-dim)",fontSize:11},children:a("directoryPicker.noDrives")})}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("input",{type:"text",value:S,onChange:e=>C(e.target.value),placeholder:a("directoryPicker.filterPlaceholder"),"aria-label":a("directoryPicker.filterPlaceholder"),style:{width:"100%",boxSizing:"border-box",marginBottom:6,padding:"5px 9px",border:"1px solid var(--border)",borderRadius:5,background:"var(--bg-panel)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:11,outline:"none"}}),(l=function(e,t){if(null===t||""===t)return[...e];let r=t.trim().toLowerCase();return r?e.filter(e=>e.name.toLowerCase().includes(r)):[...e]}(f,S)).length>0?l.map(e=>(0,n.jsxs)("button",{className:"directory-picker-entry",type:"button",onClick:()=>void z(e.path),title:e.path,style:{width:"100%",minHeight:30,display:"flex",alignItems:"center",gap:7,padding:"5px 8px",border:0,borderRadius:5,background:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontFamily:"var(--font-mono)",fontSize:11},children:[(0,n.jsx)(ox,{}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]},e.path)):(0,n.jsx)("div",{style:{padding:8,color:"var(--text-dim)",fontSize:11},children:a(S.trim()?"directoryPicker.noMatchingDirectories":"directoryPicker.noSubdirectories")})]}),(b||s)&&(0,n.jsx)("div",{style:{padding:"8px",color:"var(--status-error)",fontSize:11},children:b??s})]}),(0,n.jsxs)("div",{className:"directory-picker-footer",style:{display:"flex",justifyContent:"flex-end",alignItems:"center",gap:10,flexShrink:0,padding:"10px 18px",borderTop:"1px solid var(--border)"},children:[(0,n.jsx)("button",{className:"directory-picker-action",type:"button",onClick:e,disabled:i,style:{padding:"6px 14px",border:"1px solid var(--border)",borderRadius:6,background:"none",color:"var(--text-muted)",cursor:i?"default":"pointer",fontSize:13},children:a("i18n.cancel")}),(0,n.jsx)("button",{className:"directory-picker-action",type:"button",onClick:()=>t(u),disabled:!T,title:a("directoryPicker.selectCurrentDirectory"),style:{padding:"6px 16px",border:0,borderRadius:6,background:"var(--accent)",color:"var(--accent-fg)",fontSize:13,fontWeight:600,opacity:T?1:.6,cursor:T?"pointer":"default"},children:a(i?"i18n.checking":"directoryPicker.selectThisFolder")})]})]})}),d):null}var ov=r(63256),oy=r(30515),ob=r(32970),ok=r(69248),oj=r(6513);function ow(e,t){return`url(/catppuccin-icons/${e}/${t}.svg)`}function oS({icon:e,size:t=14}){let r={"--catppuccin-icon-light":ow("latte",e),"--catppuccin-icon-dark":ow("mocha",e),width:t,height:t};return(0,n.jsx)("span",{className:"catppuccin-file-icon",style:r,"aria-hidden":"true"})}let oC={".github":"github",".git":"git",".vscode":"vscode",".next":"next",".nuxt":"nuxt",".storybook":"storybook",".turbo":"turbo",".yarn":"yarn",".husky":"husky",".cursor":"cursor",api:"api",app:"app",assets:"assets",components:"components",config:"config",docs:"docs",examples:"examples",hooks:"hooks",lib:"lib",node_modules:"node",pages:"routes",public:"public",scripts:"scripts",src:"src",styles:"styles",test:"tests",tests:"tests",__tests__:"tests",types:"types",utils:"utils"};function oz({size:e=14,open:t=!1,name:r}){let o=r?oC[r.toLowerCase()]:void 0,i=o?`folder_${o}${t?"_open":""}`:`_${t?"folder_open":"folder"}`;return(0,n.jsx)(oS,{icon:i,size:e})}function oT({size:e=14}){return(0,n.jsx)(oS,{icon:"_file",size:e})}function oR({icon:e,size:t=14}){return(0,n.jsx)(oS,{icon:e,size:t})}let oI={".babelrc":"babel",".dockerignore":"docker-ignore",".env":"env",".eslintignore":"eslint-ignore",".eslintrc":"eslint",".gitattributes":"git",".gitignore":"git",".gitmodules":"git",".npmignore":"npm-ignore",".prettierignore":"prettier-ignore",".prettierrc":"prettier",".yarnrc":"yarn","bun.lock":"bun-lock","bun.lockb":"bun-lock","cargo.lock":"cargo-lock","cargo.toml":"cargo",codeowners:"codeowners","docker-compose.yaml":"docker-compose","docker-compose.yml":"docker-compose",dockerfile:"docker","eslint.config.js":"eslint","eslint.config.mjs":"eslint","eslint.config.ts":"eslint","next.config.js":"next","next.config.mjs":"next","next.config.ts":"next","package-lock.json":"npm-lock","package.json":"package-json","pnpm-lock.yaml":"pnpm-lock","pnpm-workspace.yaml":"pnpm","prettier.config.js":"prettier","prettier.config.mjs":"prettier","prettier.config.ts":"prettier","tailwind.config.js":"tailwind","tailwind.config.ts":"tailwind","tsconfig.json":"typescript-config","vite.config.js":"vite","vite.config.mjs":"vite","vite.config.ts":"vite","vitest.config.ts":"vitest","yarn.lock":"yarn-lock"},oM={astro:"astro",bash:"bash",c:"c",cpp:"cpp",css:"css",csv:"csv",cjs:"javascript",cts:"typescript",dockerfile:"docker",env:"env",go:"go",gql:"graphql",graphql:"graphql",hcl:"terraform",htm:"html",html:"html",ini:"config",java:"java",js:"javascript",json:"json",jsonc:"json",jsonl:"json",jsx:"javascript-react",less:"less",lua:"lua",md:"markdown",mdx:"markdown-mdx",mjs:"javascript",mts:"typescript",pdf:"pdf",php:"php",py:"python",rs:"rust",sass:"sass",scss:"sass",sh:"bash",sql:"database",svg:"svg",svelte:"svelte",tf:"terraform",toml:"toml",ts:"typescript",tsx:"typescript-react",txt:"text",vue:"vue",xml:"xml",yaml:"yaml",yml:"yaml",zsh:"bash"};function oE(e,t=14){let r=e.toLowerCase(),o=oI[r];if(o)return(0,n.jsx)(oR,{icon:o,size:t});if(".env"===r||r.startsWith(".env."))return(0,n.jsx)(oR,{icon:"env",size:t});if("dockerfile"===r||r.startsWith("dockerfile."))return(0,n.jsx)(oR,{icon:"docker",size:t});if(r.endsWith(".config.ts")||r.endsWith(".config.js")||r.endsWith(".config.mjs")||r.endsWith(".config.cjs"))return(0,n.jsx)(oR,{icon:r.startsWith("vite.")?"vite":"config",size:t});let i=oM[r.split(".").pop()??""];return i?(0,n.jsx)(oR,{icon:i,size:t}):(0,n.jsx)(oT,{size:t})}function o$(e){return/^[a-zA-Z]:[\\/]/.test(e)||e.startsWith("\\\\")?e.replace(/\\/g,"/"):e}function oW(e){let t=o$(e),r=t.split("/").filter(Boolean);return t.startsWith("//")&&r.length>0&&(r[0]=`//${r[0]}`),r.map(encodeURIComponent).join("/")}function oL(e){let t=o$(e).replace(/\/+$/,"");return t.split("/").pop()??t}function oN(e,t){if(!t)return e;let r=o$(e),n=o$(t).replace(/\/$/,"");return r.startsWith(n+"/")?r.slice(n.length+1):e}function oA(e,t){return`${o$(e).replace(/\/$/,"")}/${t}`}var oP=r(87358);function oF(){let e=oP.env.NEXT_PUBLIC_PI_WEB_FILE_EDITING;return!!e&&["1","true","yes","on"].includes(e.trim().toLowerCase())}function oD(e){let t=e.replace(/\\/g,"/").replace(/\/+$/,"");return/^[a-zA-Z]:\//.test(t)?t.toLowerCase():t}function oH(e){return"added"===e?"var(--git-status-added)":"deleted"===e?"var(--git-status-deleted)":"modified"===e?"var(--git-status-modified)":"var(--text)"}function oO(e){return"deleted"===e?3:"added"===e?2:1}async function oB(e){let t=await fetch(`/api/git/status?${new URLSearchParams({cwd:e}).toString()}`,{cache:"no-store"});if(!t.ok)throw Error(`Failed to load Git status (HTTP ${t.status})`);return t.json()}async function oU(e){let t=oW(e),r=await fetch(`/api/files/${t}?type=list`);if(!r.ok){let e=`Failed to load files (HTTP ${r.status})`;try{let t=await r.json();t.error&&(e=t.error)}catch{}throw Error(e)}return((await r.json()).entries??[]).map(t=>({name:t.name,fullPath:oA(e,t.name),isDir:t.isDir,size:t.size,children:t.isDir?[]:void 0,loaded:!t.isDir}))}function o_({size:e=11}){return(0,n.jsx)(ov.At,{size:e,weight:"regular","aria-hidden":"true"})}function oq({onClick:e,title:t}){return(0,n.jsx)("button",{type:"button",onClick:e,title:t,"aria-label":t,style:{width:24,height:24,padding:0,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,border:"none",borderRadius:4,background:"none",color:"var(--text-dim)",cursor:"pointer"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:(0,n.jsx)(g.X,{size:13,weight:"regular","aria-hidden":"true"})})}async function oK(e,t,r,n){let o=await fetch(`/api/files/${oW(e)}?type=create`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t,kind:r,content:n??""})}),i=await o.json().catch(()=>({}));if(!o.ok||!i.path)throw Error(i.error??`Create failed (HTTP ${o.status})`);return{path:i.path}}async function oV(e){let t=await fetch(`/api/files/${oW(e)}`,{method:"DELETE"});if(!t.ok){let e=`Delete failed (HTTP ${t.status})`;try{let r=await t.json();r.error&&(e=r.error)}catch{}throw Error(e)}}let oJ={display:"flex",alignItems:"center",justifyContent:"center",gap:4,padding:"0 5px",height:20,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:4,cursor:"pointer",fontSize:11,fontWeight:600,whiteSpace:"nowrap"};function oY({node:e,depth:t,cwd:r,onOpenFile:i,onAtMention:s,expandedPaths:l,onToggleExpanded:a,refreshToken:d,highlightedPaths:c,ignoredPaths:u,changedFiles:p,editingEnabled:h,onCreateFile:g,onCreateFolder:x,onDelete:f}){let m,{t:v}=(0,Y.s)(),y=l.has(e.fullPath),b=c.has(e.fullPath),j=oD(e.fullPath),w=function(e,t){if(t.has(e))return!0;for(let r of t)if(e.startsWith(`${r}/`))return!0;return!1}(j,u),S=function(e,t,r){let n,o=r.get(e);if(o||!t)return o;for(let[t,o]of r)t.startsWith(`${e}/`)&&(!n||oO(o)>oO(n))&&(n=o);return n}(j,e.isDir,p),[C,z]=(0,o.useState)(e.children??[]),[R,I]=(0,o.useState)(e.loaded??!1),[E,$]=(0,o.useState)(!1),[W,L]=(0,o.useState)(!1),N=(0,o.useCallback)(async(t=!1)=>{if(!R||t){$(!0);try{let t=await oU(e.fullPath);z(t),I(!0)}catch{}finally{$(!1)}}},[R,e.fullPath]);(0,o.useEffect)(()=>{void 0!==d&&y&&R&&N(!0)},[d]);let A=(0,o.useCallback)(()=>{if(e.isDir){let t=!y;a(e.fullPath,t),t&&!R&&N()}else i(e.fullPath,e.name)},[e.isDir,e.fullPath,e.name,R,y,N,i,a]);return(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{onClick:A,onMouseEnter:()=>L(!0),onMouseLeave:()=>L(!1),style:{position:"relative",display:"flex",alignItems:"center",gap:4,paddingLeft:8+14*t,paddingRight:8,height:24,cursor:"pointer",background:W?"var(--bg-hover)":"transparent",borderRadius:4,userSelect:"none",opacity:w?W?.72:.5:1},children:[e.isDir&&(0,n.jsx)(k.K,{size:10,color:"var(--text-dim)",weight:"regular",style:{flexShrink:0,transform:y?"rotate(90deg)":"none",transition:"transform 0.1s"},"aria-hidden":"true"}),!e.isDir&&(0,n.jsx)("span",{style:{width:10,flexShrink:0}}),(0,n.jsxs)("span",{style:{position:"relative",width:14,height:14,flexShrink:0,display:"inline-flex",alignItems:"center",justifyContent:"center"},children:[e.isDir?(0,n.jsx)(oz,{size:14,open:y,name:e.name}):oE(e.name,14),S&&(0,n.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",left:-1,top:"50%",transform:"translateY(-50%)",zIndex:1,width:7,height:7,border:"1px solid var(--bg-panel)",borderRadius:"50%",background:oH(S)}})]}),(0,n.jsx)("span",{style:{fontSize:12,color:oH(S),overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},title:e.fullPath,children:e.name}),b&&(0,n.jsx)("span",{title:"Newly uploaded","aria-label":"Newly uploaded",style:{width:6,height:6,flexShrink:0,borderRadius:"50%",background:"var(--status-info)"}}),E&&(0,n.jsx)(ts.y,{size:10,color:"var(--text-dim)",weight:"regular","aria-hidden":"true"}),W&&(m=[],(s&&m.push((0,n.jsxs)("button",{onClick:t=>{t.stopPropagation(),s(oN(e.fullPath,r),e.isDir)},title:v("files.insertPath"),style:{...oJ,color:"var(--accent)"},children:[(0,n.jsx)(o_,{}),v("files.mention")]},"mention")),h&&e.isDir&&m.push((0,n.jsx)("button",{onClick:t=>{t.stopPropagation(),g(e.fullPath)},title:v("files.newFile"),"aria-label":v("files.newFile"),style:oJ,children:(0,n.jsx)(oy.p,{size:11,weight:"regular","aria-hidden":"true"})},"new-file"),(0,n.jsx)("button",{onClick:t=>{t.stopPropagation(),x(e.fullPath)},title:v("files.newFolder"),"aria-label":v("files.newFolder"),style:oJ,children:(0,n.jsx)(ob.JU,{size:11,weight:"regular","aria-hidden":"true"})},"new-folder")),e.isDir||m.push((0,n.jsx)("a",{href:`/api/files/${oW(e.fullPath)}?type=download`,download:!0,onClick:e=>e.stopPropagation(),title:v("files.download"),style:{...oJ,color:"var(--text-muted)",textDecoration:"none"},children:(0,n.jsx)(M.z,{size:11,weight:"regular","aria-hidden":"true"})},"download")),h&&m.push((0,n.jsx)("button",{onClick:t=>{t.stopPropagation(),f(e.fullPath,e.name,e.isDir)},title:v("files.delete"),"aria-label":v("files.delete"),style:{...oJ,color:"var(--status-error)"},children:(0,n.jsx)(T.l,{size:11,weight:"regular","aria-hidden":"true"})},"delete")),0===m.length)?null:(0,n.jsx)("div",{style:{position:"absolute",right:4,top:"50%",transform:"translateY(-50%)",display:"flex",alignItems:"center",gap:3},children:m}))]}),e.isDir&&y&&(0,n.jsxs)("div",{children:[C.map(e=>(0,n.jsx)(oY,{node:e,depth:t+1,cwd:r,onOpenFile:i,onAtMention:s,expandedPaths:l,onToggleExpanded:a,refreshToken:d,highlightedPaths:c,ignoredPaths:u,changedFiles:p,editingEnabled:h,onCreateFile:g,onCreateFolder:x,onDelete:f},e.fullPath)),0===C.length&&R&&(0,n.jsx)("div",{style:{paddingLeft:8+(t+1)*14,fontSize:11,color:"var(--text-dim)",height:22,display:"flex",alignItems:"center"},children:"empty"})]})]})}let oG=(0,o.forwardRef)(function({cwd:e,onOpenFile:t,refreshKey:r,onAtMention:i,onAtMentions:s,onUploadBusyChange:l,fileSearchOpen:a=!1,onFileSearchOpenChange:d,onFileCreated:c,onFileDeleted:u},p){let{t:h}=(0,Y.s)(),[g,x]=(0,o.useState)([]),[m,v]=(0,o.useState)(null),[y,b]=(0,o.useState)(!0),[k,j]=(0,o.useState)(null),[w,S]=(0,o.useState)(new Set),[C,z]=(0,o.useState)(0),[T,I]=(0,o.useState)(new Set),[M,E]=(0,o.useState)(""),[$,W]=(0,o.useState)([]),[L,N]=(0,o.useState)(!1),[A,P]=(0,o.useState)(!1),[F,D]=(0,o.useState)(new Set),H=(0,o.useRef)(null),O=M.trim().length>0,[B,U]=(0,o.useState)("idle"),[_,q]=(0,o.useState)(0),[K,V]=(0,o.useState)(null),[G,X]=(0,o.useState)(null),[Z,Q]=(0,o.useState)(null),[ee,et]=(0,o.useState)(null),er=(0,o.useRef)(null),en=(0,o.useRef)(null),eo=`${r??0}:${C}`,ei="idle"!==B,es=oF(),el=(0,o.useMemo)(()=>new Set((m?.ignoredPaths??[]).map(oD)),[m]),ea=(0,o.useMemo)(()=>new Map((m?.files??[]).map(e=>{var t;return[oD(e.filePath),"added"===(t=e.status)||"untracked"===t?"added":"deleted"===t||"conflict"===t?"deleted":"modified"]})),[m]);(0,o.useEffect)(()=>{if(!a)return;let t=M.trim();if(!t){W([]),N(!1),P(!1);return}let r=new AbortController;N(!0),P(!1);let n=setTimeout(()=>{fetch(`/api/file-index?cwd=${encodeURIComponent(e)}&q=${encodeURIComponent(t)}`,{signal:r.signal}).then(e=>e.ok?e.json():Promise.reject(Error("Search failed"))).then(e=>W((e.matches??[]).filter(e=>!e.isDir).map(e=>e.path))).catch(()=>{r.signal.aborted||(W([]),P(!0))}).finally(()=>{r.signal.aborted||N(!1)})},150);return()=>{clearTimeout(n),r.abort()}},[e,a,M]),(0,o.useEffect)(()=>{a&&H.current?.focus()},[a]),(0,o.useEffect)(()=>{if(0===$.length)return;let t=new Set;for(let r of $){let n=r.split("/"),o="";for(let r=0;r<n.length-1;r++)o=o?`${o}/${n[r]}`:n[r],t.add(oA(e,o))}D(e=>{let r=!1,n=new Set(e);for(let e of t)n.has(e)||(n.add(e),r=!0);return r?n:e})},[e,$]);let ed=(0,o.useMemo)(()=>{let t=r=>({name:r.name,fullPath:oA(e,r.path),isDir:r.isDir,size:0,children:r.children.map(t),loaded:!0});return(function(e){let t=[],r=new Map;for(let n of e){let e=n.split("/"),o=t,i="";for(let t=0;t<e.length;t++){i=i?`${i}/${e[t]}`:e[t];let n=r.get(i);n||(n={name:e[t],path:i,isDir:t<e.length-1,children:[]},r.set(i,n),o.push(n)),o=n.children}}let n=e=>{e.sort((e,t)=>e.isDir!==t.isDir?e.isDir?-1:1:e.name.localeCompare(t.name)),e.forEach(e=>n(e.children))};return n(t),t})($).map(t)},[e,$]),ec=(0,o.useCallback)((e,t)=>{S(r=>{let n=new Set(r);return t?n.add(e):n.delete(e),n})},[]),eu=(0,o.useCallback)(t=>{let r=t.uploaded??[];X({uploaded:r,skipped:t.skipped??[],errors:t.errors??[]}),r.length>0&&(I(new Set(r.map(t=>oA(e,t)))),z(e=>e+1))},[e]),ep=(0,o.useCallback)(async(t,r)=>{Q(null),V(null),q(0),U("uploading");try{let{status:n,data:o}=await new Promise((n,o)=>{let i=new FormData;t.forEach(e=>i.append("files",e,e.name));let s=new XMLHttpRequest;s.open("POST",`/api/files/${oW(e)}?type=upload&conflict=${r}`),s.upload.onprogress=e=>{e.lengthComputable&&e.total>0&&q(Math.round(e.loaded/e.total*100))},s.onerror=()=>o(Error("Network error while uploading files")),s.onabort=()=>o(Error("Upload cancelled")),s.onload=()=>{let e={};try{e=JSON.parse(s.responseText)}catch{s.responseText&&(e.error=s.responseText)}n({status:s.status,data:e})},s.send(i)});if(409===n&&o.conflicts?.length)return void Q({files:t,conflicts:o.conflicts,nonReplaceable:o.nonReplaceable??[]});if(n<200||n>=300)throw Error(o.error??`Upload failed (HTTP ${n})`);q(100),eu(o)}catch(e){V(e instanceof Error?e.message:String(e))}finally{U("idle")}},[eu,e]),eh=(0,o.useCallback)(async t=>{if(0!==t.length&&!ei){X(null),I(new Set),Q(null),V(null),q(0),U("checking");try{let r=await fetch(`/api/files/${oW(e)}?type=upload-check`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({fileNames:t.map(e=>e.name)})}),n=await r.json().catch(()=>({}));if(!r.ok)throw Error(n.error??`Upload check failed (HTTP ${r.status})`);if(n.conflicts?.length)return void Q({files:t,conflicts:n.conflicts,nonReplaceable:n.nonReplaceable??[]});await ep(t,"error")}catch(e){V(e instanceof Error?e.message:String(e))}finally{U("idle")}}},[e,ep,ei]),eg=(0,o.useCallback)(e=>{let t=Array.from(e.target.files??[]);e.target.value="",eh(t)},[eh]),ex=(0,o.useCallback)(async e=>{et(null);let t=window.prompt(h("files.promptFileName"));if(t)try{await oK(e,t,"file");let r=oA(e,t);I(new Set([r])),z(e=>e+1),c?.(r)}catch(e){et(e instanceof Error?e.message:String(e))}},[c,h]),ef=(0,o.useCallback)(async e=>{et(null);let t=window.prompt(h("files.promptFolderName"));if(t)try{await oK(e,t,"directory");let r=oA(e,t);I(new Set([r])),z(e=>e+1)}catch(e){et(e instanceof Error?e.message:String(e))}},[h]),em=(0,o.useCallback)(async(e,t,r)=>{et(null);let n=r?h("files.confirmDeleteDirectory",{name:t}):h("files.confirmDeleteFile",{name:t});if(window.confirm(n))try{await oV(e),z(e=>e+1),u?.(e,r)}catch(e){et(e instanceof Error?e.message:String(e))}},[u,h]);(0,o.useImperativeHandle)(p,()=>({openUploadPicker(){ei||en.current?.click()},openCreateFilePicker(t){ex(t??e)},openCreateFolderPicker(t){ef(t??e)}}),[ei,e,ex,ef]),(0,o.useEffect)(()=>{l?.(ei)},[l,ei]),(0,o.useEffect)(()=>()=>l?.(!1),[l]),(0,o.useEffect)(()=>{let t=er.current!==e;er.current=e,t&&(S(new Set),I(new Set),X(null),Q(null),V(null)),b(t),j(null);let r=!1;return Promise.all([oU(e),oB(e).catch(()=>null)]).then(([e,t])=>{r||(x(e),v(t))}).catch(e=>{r||j(e instanceof Error?e.message:String(e))}).finally(()=>{r||b(!1)}),()=>{r=!0}},[e,r,C]);let ev=ei||null!==Z||null!==K||null!==G,ey=(0,o.useCallback)(()=>{G&&0!==G.uploaded.length&&s?.(G.uploaded.map(t=>oN(oA(e,t),e)))},[e,s,G]);return(0,n.jsxs)("div",{style:{minHeight:"100%"},children:[(0,n.jsx)("input",{ref:en,type:"file",multiple:!0,hidden:!0,onChange:eg}),ev&&(0,n.jsxs)("div",{style:{padding:"6px 8px",borderBottom:"1px solid var(--border)"},children:[ei&&(0,n.jsxs)("div",{role:"status","aria-live":"polite","aria-label":"checking"===B?"Checking files":`Uploading, ${_}%`,children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,minHeight:14,color:"var(--text-muted)"},children:["checking"===B?(0,n.jsx)(ts.y,{size:13,weight:"regular",style:{animation:"spin 0.8s linear infinite"},"aria-hidden":"true"}):(0,n.jsx)(R.C,{size:13,weight:"regular","aria-hidden":"true"}),"uploading"===B&&(0,n.jsxs)("span",{style:{fontSize:10},children:[_,"%"]})]}),"uploading"===B&&(0,n.jsx)("div",{style:{height:3,marginTop:4,overflow:"hidden",borderRadius:2,background:"var(--border)"},children:(0,n.jsx)("div",{style:{width:`${_}%`,height:"100%",background:"var(--text-muted)",transition:"width 120ms ease"}})})]}),Z&&(0,n.jsxs)("div",{role:"alert",style:{padding:7,border:"1px solid color-mix(in srgb, #f59e0b 55%, var(--border))",borderRadius:4,background:"color-mix(in srgb, #f59e0b 9%, var(--bg-panel))"},children:[(0,n.jsxs)("div",{style:{fontSize:11,color:"var(--text)",lineHeight:1.35,overflowWrap:"anywhere"},children:[Z.conflicts.length," file",1===Z.conflicts.length?"":"s"," already exist: ",Z.conflicts.join(", ")]}),Z.nonReplaceable.length>0&&(0,n.jsxs)("div",{style:{marginTop:3,fontSize:10,color:"var(--status-warning)",lineHeight:1.35,overflowWrap:"anywhere"},children:["Cannot replace: ",Z.nonReplaceable.join(", ")]}),(0,n.jsxs)("div",{style:{display:"flex",gap:5,marginTop:7},children:[(0,n.jsx)("button",{type:"button",onClick:()=>void ep(Z.files,"overwrite"),style:{height:22,padding:"0 7px",border:"1px solid var(--status-error)",borderRadius:4,background:"transparent",color:"var(--status-error)",cursor:"pointer",fontSize:10},children:"Replace"}),(0,n.jsx)("button",{type:"button",onClick:()=>void ep(Z.files,"skip"),style:{height:22,padding:"0 7px",border:"1px solid var(--border)",borderRadius:4,background:"var(--bg-panel)",color:"var(--text)",cursor:"pointer",fontSize:10},children:"Skip existing"}),(0,n.jsx)("button",{type:"button",onClick:()=>Q(null),style:{height:22,padding:"0 7px",border:"none",borderRadius:4,background:"transparent",color:"var(--text-muted)",cursor:"pointer",fontSize:10},children:"Cancel"})]})]}),K&&(0,n.jsxs)("div",{role:"alert",style:{display:"flex",alignItems:"flex-start",gap:6,fontSize:11,lineHeight:1.35,color:"var(--status-error)"},children:[(0,n.jsx)("span",{style:{minWidth:0,flex:1,overflowWrap:"anywhere"},children:K}),(0,n.jsx)(oq,{onClick:()=>V(null),title:"Dismiss error"})]}),G&&(0,n.jsxs)("div",{"aria-live":"polite",children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,minHeight:22,fontSize:11},children:[(0,n.jsxs)("div",{style:{minWidth:0,flex:1,display:"flex",alignItems:"center",gap:8},children:[G.uploaded.length>0&&(0,n.jsxs)("span",{title:`${G.uploaded.length} uploaded`,"aria-label":`${G.uploaded.length} uploaded`,style:{display:"flex",alignItems:"center",gap:3,color:"var(--status-success)"},children:[(0,n.jsx)(f.J,{size:13,weight:"regular","aria-hidden":"true"}),(0,n.jsx)("span",{children:G.uploaded.length})]}),G.skipped.length>0&&(0,n.jsxs)("span",{title:`${G.skipped.length} skipped`,"aria-label":`${G.skipped.length} skipped`,style:{display:"flex",alignItems:"center",gap:3,color:"var(--text-dim)"},children:[(0,n.jsx)(ok.F,{size:13,weight:"regular","aria-hidden":"true"}),(0,n.jsx)("span",{children:G.skipped.length})]}),G.errors.length>0&&(0,n.jsxs)("span",{title:`${G.errors.length} failed`,"aria-label":`${G.errors.length} failed`,style:{display:"flex",alignItems:"center",gap:3,color:"var(--status-error)"},children:[(0,n.jsx)(J.N,{size:13,weight:"regular","aria-hidden":"true"}),(0,n.jsx)("span",{children:G.errors.length})]})]}),G.uploaded.length>0&&s&&(0,n.jsxs)("button",{type:"button",onClick:ey,title:1===G.uploaded.length?"Add uploaded file to chat":"Add all uploaded files to chat","aria-label":1===G.uploaded.length?"Add uploaded file to chat":"Add all uploaded files to chat",style:{height:22,padding:"0 7px",display:"flex",alignItems:"center",justifyContent:"center",gap:4,flexShrink:0,border:"1px solid var(--border)",borderRadius:4,background:"var(--bg-panel)",color:"var(--accent)",cursor:"pointer",fontSize:11,fontWeight:600,whiteSpace:"nowrap"},children:[(0,n.jsx)(o_,{}),"mention"]}),(0,n.jsx)(oq,{onClick:()=>X(null),title:"Dismiss upload results"})]}),G.errors.map(e=>(0,n.jsxs)("div",{title:e.error,style:{display:"flex",alignItems:"center",gap:4,marginTop:3,minWidth:0,fontSize:10,color:"var(--status-error)"},children:[(0,n.jsx)(oj.R,{size:11,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]},e.name))]})]}),ee&&(0,n.jsxs)("div",{role:"alert",style:{display:"flex",alignItems:"flex-start",gap:6,padding:"6px 8px",borderBottom:"1px solid var(--border)",fontSize:11,lineHeight:1.35,color:"var(--status-error)"},children:[(0,n.jsx)("span",{style:{minWidth:0,flex:1,overflowWrap:"anywhere"},children:ee}),(0,n.jsx)(oq,{onClick:()=>et(null),title:h("files.dismissError")})]}),a&&(0,n.jsxs)("div",{style:{padding:"6px 8px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsxs)("div",{style:{position:"relative"},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:{position:"absolute",left:8,top:"50%",transform:"translateY(-50%)",color:"var(--text-dim)",pointerEvents:"none"},children:[(0,n.jsx)("circle",{cx:"11",cy:"11",r:"7"}),(0,n.jsx)("path",{d:"m20 20-4-4"})]}),(0,n.jsx)("input",{ref:H,value:M,onChange:e=>E(e.target.value),onKeyDown:e=>{"Escape"===e.key&&d?.(!1)},placeholder:h("sidebar.searchFilesPlaceholder"),"aria-label":h("sidebar.searchFiles"),style:{width:"100%",boxSizing:"border-box",padding:"6px 24px",border:"1px solid var(--border)",borderRadius:5,outline:"none",background:"var(--bg)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:11}}),M&&(0,n.jsx)("button",{type:"button",onClick:()=>E(""),title:h("sidebar.clearSearch"),"aria-label":h("sidebar.clearSearch"),style:{position:"absolute",right:4,top:"50%",transform:"translateY(-50%)",display:"flex",alignItems:"center",justifyContent:"center",width:18,height:18,padding:0,border:"none",borderRadius:4,background:"none",color:"var(--text-dim)",cursor:"pointer"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-dim)"},children:(0,n.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.4",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M18 6 6 18"}),(0,n.jsx)("path",{d:"m6 6 12 12"})]})})]}),O&&(0,n.jsxs)("div",{style:{paddingTop:3},children:[L&&(0,n.jsx)("div",{role:"status",style:{padding:"6px 2px",fontSize:10,color:"var(--text-dim)"},children:h("sidebar.searchingFiles")}),!L&&A&&(0,n.jsx)("div",{role:"alert",style:{padding:"6px 2px",fontSize:10,color:"var(--status-error)"},children:h("i18n.networkError")}),!L&&!A&&0===$.length&&(0,n.jsx)("div",{style:{padding:"6px 2px",fontSize:10,color:"var(--text-dim)"},children:h("sidebar.noMatchingFiles")}),!L&&!A&&$.length>0&&(0,n.jsx)("div",{children:ed.map(r=>(0,n.jsx)(oY,{node:r,depth:0,cwd:e,onOpenFile:t,onAtMention:i,expandedPaths:F,onToggleExpanded:(e,t)=>{D(r=>{let n=new Set(r);return t?n.add(e):n.delete(e),n})},refreshToken:"",highlightedPaths:T,ignoredPaths:el,changedFiles:ea,editingEnabled:es,onCreateFile:ex,onCreateFolder:ef,onDelete:em},`${M}:${r.fullPath}`))})]})]}),(0,n.jsxs)("div",{style:{padding:"2px 4px"},children:[y?(0,n.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--text-dim)"},children:"Loading files..."}):k?(0,n.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--status-error)"},children:k}):O?(0,n.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--text-dim)"}}):g.map(r=>(0,n.jsx)(oY,{node:r,depth:0,cwd:e,onOpenFile:t,onAtMention:i,expandedPaths:w,onToggleExpanded:ec,refreshToken:eo,highlightedPaths:T,ignoredPaths:el,changedFiles:ea,editingEnabled:es,onCreateFile:ex,onCreateFolder:ef,onDelete:em},r.fullPath)),!y&&!k&&0===g.length&&(0,n.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--text-dim)"},children:"No files found"})]})]})}),oX={modified:"var(--git-status-modified)",added:"var(--git-status-added)",deleted:"var(--git-status-deleted)",renamed:"var(--git-status-modified)",untracked:"var(--git-status-added)",conflict:"var(--git-status-deleted)"};async function oZ(e){let t=await fetch(`/api/git/status?${new URLSearchParams({cwd:e}).toString()}`);if(!t.ok)throw Error(`Failed to load Git status (HTTP ${t.status})`);return t.json()}function oQ({status:e,cwd:t,onOpenFile:r}){let[i,s]=(0,o.useState)(!1),l=oN(e.filePath,t);return(0,n.jsxs)("button",{type:"button",onClick:()=>r(e.filePath,oL(e.filePath),{initialDisplayMode:"diff"}),onMouseEnter:()=>s(!0),onMouseLeave:()=>s(!1),title:e.filePath,style:{width:"100%",display:"flex",alignItems:"center",gap:4,padding:"0 5px",height:24,border:"none",borderRadius:4,background:i?"var(--bg-hover)":"transparent",color:"var(--text)",cursor:"pointer",textAlign:"left"},children:[(0,n.jsx)("span",{style:{width:14,flexShrink:0,color:oX[e.status],fontFamily:"var(--font-mono)",fontSize:11,fontWeight:600,textAlign:"center"},children:e.code}),(0,n.jsx)("span",{style:{flexShrink:0,display:"flex",alignItems:"center",opacity:.85},children:oE(oL(e.filePath),13)}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,fontSize:12},children:l})]})}function o0({cwd:e,refreshKey:t,onOpenFile:r}){let{t:i}=(0,Y.s)(),[s,l]=(0,o.useState)(!1),[a,d]=(0,o.useState)(null),[c,u]=(0,o.useState)(!1),p=(0,o.useCallback)(async()=>{u(!0);try{d(await oZ(e))}catch{d(null)}finally{u(!1)}},[e]);if((0,o.useEffect)(()=>{p()},[p,t]),!a?.isGitRepository||0===a.files.length)return null;let h=a.files.reduce((e,t)=>("added"===t.status||"untracked"===t.status?e.added+=1:"deleted"===t.status||"conflict"===t.status?e.deleted+=1:e.modified+=1,e),{modified:0,added:0,deleted:0});return(0,n.jsxs)("section",{style:{flex:"0 0 auto",minHeight:0,borderTop:"1px solid var(--border)",display:"flex",flexDirection:"column",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",flexShrink:0},children:[(0,n.jsxs)("button",{type:"button",onClick:()=>l(e=>!e),"aria-expanded":s,style:{display:"flex",alignItems:"center",gap:6,flex:1,minWidth:0,padding:"6px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:11,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",textAlign:"left"},children:[(0,n.jsx)(k.K,{size:9,weight:"regular",style:{transform:s?"rotate(90deg)":"none",transition:"transform 0.15s",flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:i("desktop.quickChanges")})]}),(0,n.jsxs)("div",{className:"git-changes-indicator","aria-label":`Changed files: ${h.modified} modified, ${h.added} added, ${h.deleted} deleted`,children:[h.modified>0&&(0,n.jsx)("span",{className:"git-changes-indicator-part git-changes-indicator-modified",children:h.modified}),h.added>0&&(0,n.jsx)("span",{className:"git-changes-indicator-part git-changes-indicator-added",children:h.added}),h.deleted>0&&(0,n.jsx)("span",{className:"git-changes-indicator-part git-changes-indicator-deleted",children:h.deleted})]}),(0,n.jsxs)("span",{style:{marginLeft:6,color:"var(--git-status-added)",fontFamily:"var(--font-mono)",fontSize:11},children:["+",a.additions]}),(0,n.jsxs)("span",{style:{marginLeft:5,color:"var(--git-status-deleted)",fontFamily:"var(--font-mono)",fontSize:11},children:["-",a.deletions]}),(0,n.jsx)("button",{type:"button",onClick:()=>void p(),disabled:c,title:i("desktop.refresh"),"aria-label":i("desktop.refresh"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,marginLeft:4,marginRight:6,border:"none",borderRadius:5,background:"none",color:"var(--text-dim)",cursor:c?"wait":"pointer",opacity:c?.55:1},children:c?(0,n.jsx)(ts.y,{size:12,style:{animation:"spin 0.8s linear infinite"},"aria-hidden":"true"}):(0,n.jsx)(z.S,{size:13,weight:"regular","aria-hidden":"true"})})]}),s&&(0,n.jsx)("div",{style:{minHeight:0,maxHeight:"min(35vh, 280px)",overflowY:"auto",overflowX:"hidden",padding:"2px 4px 4px"},children:a.files.map(t=>(0,n.jsx)(oQ,{status:t,cwd:e,onOpenFile:r},t.filePath))})]})}var o1=r(76721),o2=r(61448),o6=r(95660),o4=r(59680),o5=r(20412),o3=r(12272),o8=r(9005),o7=r(31966),o9=r(73974),ie=r(65377),it=r(47421),ir=r(14225),io=r(8962),ii=r(65408),is=r(75742),il=r(73534),ia=r(6923),id=r(64577),ic=r(32159),iu=r(30600),ip=r(86272),ih=r(37218),ig=r(65738);let ix=["all","commands","sessions","files"],im={">":"commands","#":"sessions","@":"files"};function iv(e){return`pi-command-center-search-history:${e||"default"}`}function iy(e){let t=e.trim();return!(!t||Object.prototype.hasOwnProperty.call(im,t))}function ib(){try{return window.localStorage}catch{return null}}function ik(e){let t=e.trimStart(),r=t.slice(0,1);return Object.prototype.hasOwnProperty.call(im,r)?t.slice(1).trimStart():e}function ij(e){return e?"⌘K":"Ctrl+K"}function iw(){try{return window.localStorage}catch{return null}}let iS="pi-web:sidebar-mode",iC="pi-web:sidebar-task-preferences",iz="pi-web:sidebar-collapsed-projects",iT="projects",iR={organizeBy:"project",sortBy:"updated"};function iI(e,t=iw()){if(t)try{0===e.size?t.removeItem(iz):t.setItem(iz,JSON.stringify(Object.fromEntries([...e].map(e=>[e,!0]))))}catch{}}function iM(e,t){let r=t.trim().toLowerCase();return!r||!!os(e).toLowerCase().includes(r)||!!e.branch?.toLowerCase().includes(r)}function iE(e){return e.projectKey??e.projectRoot??e.cwd??""}function i$(e,t,r){return"created"===r?t.created.localeCompare(e.created):t.modified.localeCompare(e.modified)}function iW(e,t={}){let{hiddenKeys:r,search:n}=t;return e.filter(e=>!(e.archived||e.relation?.kind==="subagent"||r?.size&&r.has(iE(e)))&&iM(e,n??""))}function iL(e,t){return t.get(e.projectKey)?.latest??""}let iN={pinned:"desktop.pinned",today:"desktop.today",yesterday:"desktop.yesterday",older:"desktop.older"};function iA(e){let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),n=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${n}`}function iP(e,t,r="updated"){let n=new Date,o=iA(n),i=iA(new Date(n.getTime()-864e5)),s={pinned:[],today:[],yesterday:[],older:[]};for(let t of e){let e=iA(new Date(t.modified));t.pinned&&s.pinned.push(t),e===o?s.today.push(t):e===i?s.yesterday.push(t):s.older.push(t)}return["pinned","today","yesterday","older"].map(e=>({key:e,rows:function(e,t,r,n="updated"){if(0===e.length)return[];let o=new Map(t.map(e=>[e.id,e])),i=new Set(e.map(e=>e.id)),s=new Map;for(let t of e)if(t.parentSessionId&&i.has(t.parentSessionId)){let e=s.get(t.parentSessionId)??[];e.push(t),s.set(t.parentSessionId,e)}let l=(e,t)=>i$(e,t,n),a=e.filter(e=>!(e.parentSessionId&&i.has(e.parentSessionId))).sort(l);for(let e of s.values())e.sort(l);let d=[],c=new Set,u=e=>{if(!c.has(e.id))for(let t of(c.add(e.id),d.push({session:e,forkDepth:r?0:(e=>{let t=0,r=e,n=new Set;for(;r?.parentSessionId&&!n.has(r.id);){n.add(r.id);let e=o.get(r.parentSessionId);if(!e)break;r=e,t++}return t})(e)}),s.get(e.id)??[]))u(t)};for(let e of a)u(e);for(let t of e)u(t);return d}(s[e],t,"pinned"===e,r)})).filter(e=>e.rows.length>0)}var iF=r(97320);function iD(e,t){let r=new Date(e),n=new Date().getTime()-r.getTime(),o=Math.floor(n/6e4),i=Math.floor(n/36e5),s=Math.floor(n/864e5);return o<1?t("desktop.justNow"):o<60?t("desktop.minutesAgo",{count:o}):i<24?t("desktop.hoursAgo",{count:i}):s<7?t("desktop.daysAgo",{count:s}):r.toLocaleDateString()}function iH(){let{t:e}=(0,Y.s)();return(0,n.jsx)("span",{title:e("desktop.agentRunning"),"aria-label":e("desktop.agentRunningLabel"),style:{width:14,height:14,display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:"var(--accent)"},children:(0,n.jsx)(iF.A,{size:13,style:{display:"block",animation:"spin 0.9s linear infinite"},"aria-hidden":"true"})})}function iO(){let{t:e}=(0,Y.s)();return(0,n.jsx)("span",{title:e("desktop.newActivity"),"aria-label":e("desktop.newSessionActivity"),style:{width:14,height:14,display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:"var(--accent)"},children:(0,n.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none","aria-hidden":"true",style:{display:"block"},children:(0,n.jsx)("circle",{cx:"7",cy:"7",r:"3",fill:"currentColor",children:(0,n.jsx)("animate",{attributeName:"opacity",values:"1;0.25;1",dur:"1.6s",repeatCount:"indefinite"})})})})}let iB=e=>({display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,padding:0,background:e?"var(--bg-selected)":"transparent",border:"none",borderRadius:5,flexShrink:0,color:e?"var(--accent)":"var(--text-muted)",cursor:"pointer",transition:"color 0.12s, background 0.12s"});function iU({sessions:e,loading:t,runningIds:r,unreadIds:i,aliases:s,selectedSessionId:l,selectedProjectRoot:a,searchQuery:d,onSearchQueryChange:c,onSelectSession:u,onNewSessionInProject:p,onArchive:h,onDeleteForever:g,onRemoveProject:x,hiddenProjects:f,onUnhideProject:m,onPickFolder:v,onCycleToList:y,onRenamed:b,onNewTask:k,onOpenCommandPalette:j,renderFileTree:w,isMobile:S}){let{t:C}=(0,Y.s)(),[z,T]=(0,o.useState)(()=>(function(e=iw()){if(!e)return iR;try{let t=e.getItem(iC);if(!t)return iR;let r=JSON.parse(t);if(!r||"object"!=typeof r||Array.isArray(r))return iR;let{organizeBy:n,sortBy:o}=r;return{organizeBy:"grouped"===n||"project"===n||"timeline"===n?n:iR.organizeBy,sortBy:"updated"===o||"created"===o?o:iR.sortBy}}catch{return iR}})()),[R,I]=(0,o.useState)(()=>(function(e=iw()){if(!e)return new Set;try{let t=e.getItem(iz);if(!t)return new Set;let r=JSON.parse(t);if(!r||"object"!=typeof r||Array.isArray(r))return new Set;return new Set(Object.entries(r).filter(([,e])=>!0===e).map(([e])=>e))}catch{return new Set}})()),[M,E]=(0,o.useState)(!1),[$,W]=(0,o.useState)(null),[L,N]=(0,o.useState)(!1),[A,P]=(0,o.useState)(null),[F,D]=(0,o.useState)(null),[H,O]=(0,o.useState)({}),B="detailed",U=(0,o.useRef)(null),_=(0,o.useRef)(null),[q,K]=(0,o.useState)(0);(0,o.useEffect)(()=>{let e=setInterval(()=>K(e=>e+1),6e4);return()=>clearInterval(e)},[]);let V=(0,o.useCallback)(e=>{T(t=>{let r={...t,...e};return!function(e,t=iw()){if(t)try{t.setItem(iC,JSON.stringify(e))}catch{}}(r),r})},[]),J=(0,o.useCallback)(e=>{I(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),iI(r),r})},[]),G=(0,o.useMemo)(()=>new Set(f.map(e=>e.key)),[f]),X=(0,o.useMemo)(()=>(function(e){let{sessions:t,hiddenKeys:r,aliases:n={},sortBy:o,collapsedKeys:i,runningIds:s,unreadIds:l,search:a,extraRoots:d}=e,c=iW(t,{hiddenKeys:r,search:a}),u=new Map;for(let e of c){let t=iE(e);if(!t)continue;let r=e.projectRoot??e.cwd??"",n=u.get(t);n||(n={projectRoot:r,sessions:[],latest:""},u.set(t,n)),n.sessions.push(e),e.modified>n.latest&&(n.latest=e.modified)}for(let e of d??[])!r?.has(e)&&(u.has(e)||u.set(e,{projectRoot:e,sessions:[],latest:"￿"}));let p=[];for(let[e,t]of u){var h;t.sessions.sort((e,t)=>i$(e,t,o));let r=i?.has(e)??!1;p.push({projectKey:e,projectRoot:t.projectRoot,name:n[t.projectRoot]?.trim()||((h=t.projectRoot).replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean).pop()??h),sessions:r?[]:t.sessions,totalCount:t.sessions.length,collapsed:r,hasRunning:t.sessions.some(e=>s?.has(e.id)??!1),hasUnread:t.sessions.some(e=>l?.has(e.id)??!1)})}return p.sort((e,t)=>{let r=iL(e,u);return iL(t,u).localeCompare(r)}),p})({sessions:e,hiddenKeys:G,aliases:s,sortBy:z.sortBy,collapsedKeys:R,runningIds:r,unreadIds:i,search:d,extraRoots:a?[a]:[]}),[e,G,s,z.sortBy,R,r,i,d,a]),Z=(0,o.useMemo)(()=>{var t;return iW((t={sessions:e,hiddenKeys:G,sortBy:z.sortBy,search:d}).sessions,{hiddenKeys:t.hiddenKeys,search:t.search}).sort((e,r)=>i$(e,r,t.sortBy))},[e,G,z.sortBy,d]),Q=(0,o.useMemo)(()=>iP(iW(e,{hiddenKeys:G,search:d}),e,z.sortBy),[e,G,d,z.sortBy,q]),ee=(0,o.useMemo)(()=>(function(e){let{sessions:t,hiddenKeys:r,search:n}=e;return t.filter(e=>!(!e.archived||r?.size&&r.has(iE(e)))&&iM(e,n??"")).sort((e,t)=>(t.archivedAt??t.modified).localeCompare(e.archivedAt??e.modified))})({sessions:e,hiddenKeys:G,search:d}),[e,G,d]);(0,o.useEffect)(()=>{if(!L&&!A)return;let e=e=>{let t=e.target;L&&!U.current?.contains(t)&&N(!1),!A||_.current?.contains(t)||t instanceof Element&&t.closest("[data-menu-trigger]")||P(null)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[L,A]);let et=(0,o.useCallback)(()=>{if(R.size>0){let e=new Set;I(e),iI(e)}else{let e=new Set(X.map(e=>e.projectKey));I(e),iI(e)}},[R,X]),er=e=>({display:"flex",alignItems:"center",gap:3,height:22,padding:"0 7px",background:e?"var(--bg-selected)":"none",border:"none",borderRadius:11,color:e?"var(--text)":"var(--text-dim)",fontSize:11.5,fontWeight:e?600:400,cursor:"pointer",whiteSpace:"nowrap",transition:"color 0.12s, background 0.12s"}),en=e=>{E(!1),W(null),V({organizeBy:"grouped"===e?"grouped":"timeline"===z.organizeBy?"timeline":"project"})},eo=e=>H[e]??5,ei=(e,t=!1,o=B)=>{let a;return(0,n.jsx)(i_,{session:e,isSelected:e.id===l,isRunning:r.has(e.id),isUnread:i.has(e.id),indent:t,forceActionsVisible:S,rowStyle:o,folderName:(a=e.projectRoot??e.cwd??"",s[a]?.trim()||a.replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean).pop()||a||"?"),onSelect:()=>u(e),onArchive:()=>h(e,!0),onRenamed:b},e.id)},es=$?(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",minHeight:0,flex:1},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"4px 8px",flexShrink:0},children:[(0,n.jsxs)("button",{onClick:()=>W(null),style:{display:"flex",alignItems:"center",gap:4,padding:"4px 8px",background:"none",border:"none",borderRadius:6,color:"var(--text-muted)",fontSize:12,cursor:"pointer"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:[(0,n.jsx)(o7.A,{size:11,"aria-hidden":"true"}),C("desktop.backToSessions")]}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12,color:"var(--text-dim)"},title:$.root,children:$.name})]}),(0,n.jsx)("div",{className:"scroll-overlay",style:{flex:1,minHeight:0,overflowX:"hidden"},children:w($.root)})]}):M?(0,n.jsxs)("div",{style:{padding:"0 4px"},children:[0===ee.length&&(0,n.jsx)("div",{style:{padding:"16px 10px",color:"var(--text-muted)",fontSize:12},children:C(d.trim()?"desktop.noSearchResults":"desktop.noArchivedSessions")}),ee.map(e=>(0,n.jsx)(iq,{session:e,folderName:s[e.projectRoot??e.cwd]?.trim()||(e.projectRoot??e.cwd??"").replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean).pop()||e.projectRoot||e.cwd||"?",onUnarchive:()=>h(e,!1),onDeleteForever:()=>{window.confirm(C("desktop.deleteArchivedConfirm"))&&g(e)}},e.id))]}):"project"===z.organizeBy?(0,n.jsxs)("div",{style:{padding:"0 4px"},children:[0===X.length&&!t&&(0,n.jsx)("div",{style:{padding:"16px 10px",color:"var(--text-muted)",fontSize:12},children:C(d.trim()?"desktop.noSearchResults":"desktop.noProjects")}),X.map(t=>{let o=eo(t.projectKey),i=t.sessions.slice(0,o),s=t.sessions.length-i.length;return(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{position:"relative"},onMouseEnter:()=>D(t.projectKey),onMouseLeave:()=>D(e=>e===t.projectKey?null:e),children:(0,n.jsxs)("div",{onClick:()=>J(t.projectKey),style:{display:"flex",alignItems:"center",gap:6,height:32,paddingLeft:8,paddingRight:66,cursor:"pointer",color:"var(--text)",borderRadius:8},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:[(0,n.jsx)(o1.A,{size:10,style:{transform:t.collapsed?"none":"rotate(90deg)",transition:"transform 0.15s",flexShrink:0,color:"var(--text-dim)"},"aria-hidden":"true"}),t.collapsed&&t.hasRunning?(0,n.jsx)(iH,{}):t.collapsed?(0,n.jsx)(o2.A,{size:14,style:{flexShrink:0,color:"var(--text-dim)"},"aria-hidden":"true"}):(0,n.jsx)(o6.A,{size:14,style:{flexShrink:0,color:"var(--text-dim)"},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:13,fontWeight:500},title:t.projectRoot,children:t.name}),t.collapsed&&t.hasUnread&&!t.hasRunning&&(0,n.jsx)(iO,{}),(0,n.jsxs)("div",{"data-folder-actions":!0,style:{position:"absolute",right:6,top:4,display:"flex",gap:2,opacity:S||A===t.projectKey||F===t.projectKey?1:0,transition:"opacity 0.12s"},children:[(0,n.jsx)("button",{"data-menu-trigger":!0,onClick:e=>{e.stopPropagation(),P(A===t.projectKey?null:t.projectKey)},title:C("desktop.moreActions"),"aria-label":C("desktop.moreActions"),style:{...iB(A===t.projectKey),width:24,height:24},children:(0,n.jsx)(o4.A,{size:14,"aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),W({root:t.projectRoot,name:t.name})},title:C("desktop.viewFiles"),"aria-label":C("desktop.viewFiles"),style:{...iB(!1),width:24,height:24},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(o5.A,{size:14,"aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),p(t.projectRoot)},title:C("desktop.newSessionHere"),"aria-label":C("desktop.newSessionHere"),style:{...iB(!1),width:24,height:24},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(o3.A,{size:14,"aria-hidden":"true"})})]}),A===t.projectKey&&(0,n.jsx)("div",{ref:_,style:{position:"absolute",right:6,top:30,zIndex:30,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 6px 20px rgba(0,0,0,0.35)",padding:4,minWidth:120},children:(0,n.jsxs)("button",{onClick:()=>{P(null),(!(t.hasRunning||e.some(e=>(e.projectRoot??e.cwd)===t.projectRoot&&r.has(e.id)&&!e.archived))||window.confirm(C("desktop.removeProjectRunningConfirm")))&&x(t.projectRoot,t.name)},style:{display:"flex",alignItems:"center",gap:6,width:"100%",padding:"6px 10px",background:"none",border:"none",borderRadius:6,color:"var(--text)",fontSize:12,cursor:"pointer",textAlign:"left"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:[(0,n.jsx)(o8.A,{size:12,style:{color:"var(--text-dim)"},"aria-hidden":"true"}),C("desktop.removeProject")]})})]})}),!t.collapsed&&(0,n.jsxs)("div",{children:[i.map(e=>ei(e,!0,"compact")),s>0&&(0,n.jsx)("button",{onClick:()=>O(e=>({...e,[t.projectKey]:eo(t.projectKey)+5})),style:{display:"block",width:"100%",padding:"5px 8px 5px 42px",background:"none",border:"none",borderRadius:6,color:"var(--text-dim)",fontSize:11,cursor:"pointer",textAlign:"left"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:C("desktop.showMore")})]})]},t.projectKey)})]}):"timeline"===z.organizeBy?(0,n.jsxs)("div",{style:{padding:"0 4px"},children:[0===Z.length&&!t&&(0,n.jsx)("div",{style:{padding:"16px 10px",color:"var(--text-muted)",fontSize:12},children:C(d.trim()?"desktop.noSearchResults":"desktop.noSessionsFound")}),Z.map(e=>ei(e))]}):(0,n.jsxs)("div",{style:{padding:"0 4px"},children:[0===Q.length&&!t&&(0,n.jsx)("div",{style:{padding:"16px 10px",color:"var(--text-muted)",fontSize:12},children:C(d.trim()?"desktop.noSearchResults":"desktop.noSessionsFound")}),Q.map(e=>(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{padding:"8px 8px 2px",fontSize:11,fontWeight:600,color:"var(--text-dim)",letterSpacing:"0.04em"},children:C("pinned"===e.key?"desktop.pinned":"today"===e.key?"desktop.today":"yesterday"===e.key?"desktop.yesterday":"desktop.older")}),e.rows.map(e=>ei(e.session,e.forkDepth>0))]},e.key))]});return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",flex:"1 1 0",minHeight:0,overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:2,padding:"6px 6px 4px",flexShrink:0},children:[(0,n.jsxs)("button",{onClick:k,title:C("desktop.newTask"),"aria-label":C("desktop.newTask"),style:{display:"flex",alignItems:"center",gap:8,width:"100%",height:32,padding:"0 10px",background:"transparent",border:"none",borderRadius:8,color:"var(--text)",fontSize:13,fontWeight:500,textAlign:"left",cursor:"pointer",transition:"background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},children:[(0,n.jsx)(o9.A,{size:16,style:{flexShrink:0,color:"var(--text-muted)"},"aria-hidden":"true"}),C("desktop.newTask")]}),(0,n.jsxs)("button",{onClick:()=>j?.(),title:C("palette.placeholder"),"aria-label":C("palette.open"),className:"palette-open-button",children:[(0,n.jsx)(ie.A,{size:16,style:{flexShrink:0,color:"var(--text-muted)"},"aria-hidden":"true"}),C("palette.open"),(0,n.jsx)("span",{className:"palette-kbd",children:ij("u">typeof navigator&&/mac/i.test(navigator.platform))})]}),d.trim()&&(0,n.jsxs)("div",{className:"panel-filter-notice",children:[(0,n.jsxs)("span",{className:"panel-filter-notice-text",children:[C("desktop.filteringBy")," ",(0,n.jsx)("strong",{children:d})]}),(0,n.jsx)("button",{type:"button",onClick:()=>c(""),"aria-label":C("desktop.clearFilter"),title:C("desktop.clearFilter"),className:"panel-filter-notice-clear",children:(0,n.jsx)(o8.A,{size:11,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:2,paddingTop:2},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:1,background:"var(--bg-hover)",borderRadius:12,padding:2},children:[(0,n.jsxs)("button",{style:er("grouped"===z.organizeBy),onClick:()=>en("grouped"),"aria-pressed":"grouped"===z.organizeBy,children:[(0,n.jsx)(it.A,{size:11,style:{opacity:.7},"aria-hidden":"true"}),C("desktop.panelGroupBubble")]}),(0,n.jsxs)("button",{style:er("grouped"!==z.organizeBy),onClick:()=>en("project"),"aria-pressed":"grouped"!==z.organizeBy,children:[(0,n.jsx)(ir.A,{size:11,"aria-hidden":"true"}),C("desktop.panelProjectBubble")]})]}),(0,n.jsx)("button",{onClick:et,title:R.size>0?C("desktop.expandAllFolders"):C("desktop.collapseAllFolders"),"aria-label":R.size>0?C("desktop.expandAllFolders"):C("desktop.collapseAllFolders"),style:{...iB(!1),marginLeft:2},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)"},children:R.size>0?(0,n.jsx)(io.A,{size:13,"aria-hidden":"true"}):(0,n.jsx)(ii.A,{size:13,"aria-hidden":"true"})}),!S&&(0,n.jsx)("button",{onClick:y,title:`${C("desktop.sidebarModeCycle")}:${C("desktop.sessionViewList")}`,"aria-label":C("desktop.sidebarModeCycle"),style:{...iB(!1),marginLeft:2},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(is.A,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("div",{style:{flex:1}}),(0,n.jsxs)("div",{ref:U,style:{position:"relative"},children:[(0,n.jsx)("button",{onClick:()=>N(e=>!e),title:C("desktop.filterMenu"),"aria-label":C("desktop.filterMenu"),"aria-expanded":L,style:iB(L),onMouseEnter:e=>{L||(e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{L||(e.currentTarget.style.color="var(--text-muted)")},children:(0,n.jsx)(il.A,{size:13,"aria-hidden":"true"})}),L&&(0,n.jsxs)("div",{style:{position:"absolute",right:0,top:28,zIndex:40,width:168,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:10,boxShadow:"0 8px 24px rgba(0,0,0,0.4)",padding:5},children:[(0,n.jsx)("div",{style:{padding:"6px 8px 2px",fontSize:11,fontWeight:600,color:"var(--text-dim)"},children:C("desktop.viewSection")}),[["project","desktop.viewByProject",ir.A],["timeline","desktop.viewTimeline",ia.A]].map(([e,t,r])=>(0,n.jsxs)("button",{onClick:()=>{V({organizeBy:e})},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 7px",background:"none",border:"none",borderRadius:6,color:"var(--text)",fontSize:11.5,cursor:"pointer",textAlign:"left"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:[(0,n.jsx)(r,{size:13,style:{color:"var(--text-dim)",flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{flex:1},children:C(t)}),z.organizeBy===e&&(0,n.jsx)(id.A,{size:13,strokeWidth:2.5,style:{color:"var(--accent)"},"aria-hidden":"true"})]},e)),(0,n.jsx)("div",{style:{height:1,background:"var(--border)",margin:"6px 4px"}}),(0,n.jsx)("div",{style:{padding:"2px 8px",fontSize:11,fontWeight:600,color:"var(--text-dim)"},children:C("desktop.sortSection")}),[["updated","desktop.sortUpdated"],["created","desktop.sortCreated"]].map(([e,t])=>(0,n.jsxs)("button",{onClick:()=>{V({sortBy:e})},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 7px",background:"none",border:"none",borderRadius:6,color:"var(--text)",fontSize:11.5,cursor:"pointer",textAlign:"left"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:[(0,n.jsx)("span",{style:{flex:1},children:C(t)}),z.sortBy===e&&(0,n.jsx)(id.A,{size:13,strokeWidth:2.5,style:{color:"var(--accent)"},"aria-hidden":"true"})]},e)),(0,n.jsx)("div",{style:{height:1,background:"var(--border)",margin:"6px 4px"}}),(0,n.jsx)("div",{style:{padding:"2px 8px",fontSize:11,fontWeight:600,color:"var(--text-dim)"},children:C("desktop.hiddenProjectsSection")}),0===f.length?(0,n.jsx)("div",{style:{padding:"4px 8px 8px",fontSize:11,color:"var(--text-dim)"},children:C("desktop.noHiddenProjects")}):f.map(e=>(0,n.jsxs)("button",{onClick:()=>{N(!1),m(e)},title:e.path,style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 8px",background:"none",border:"none",borderRadius:6,color:"var(--text)",fontSize:12,cursor:"pointer",textAlign:"left"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:[(0,n.jsx)(ir.A,{size:13,style:{color:"var(--text-dim)",flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name||e.path}),(0,n.jsx)("span",{style:{fontSize:11,color:"var(--accent)",flexShrink:0},children:C("desktop.restoreProject")})]},e.key))]})]}),(0,n.jsx)("button",{onClick:()=>{E(e=>!e),W(null)},title:C("desktop.archivedView"),"aria-label":C("desktop.archivedView"),"aria-pressed":M,style:iB(M),onMouseEnter:e=>{M||(e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{M||(e.currentTarget.style.color="var(--text-muted)")},children:M?(0,n.jsx)(o8.A,{size:13,"aria-hidden":"true"}):(0,n.jsx)(ic.A,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:v,title:C("desktop.selectFolder"),"aria-label":C("desktop.selectFolder"),style:{...iB(!1),marginRight:2},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(iu.A,{size:13,"aria-hidden":"true"})})]})]}),t&&0===e.length&&(0,n.jsx)("div",{style:{padding:"16px 14px",color:"var(--text-muted)",fontSize:12},children:C("desktop.loading")}),(0,n.jsx)("div",{className:"scroll-overlay",style:{flex:"1 1 0",minHeight:0},children:es})]})}function i_({session:e,isSelected:t,isRunning:r,isUnread:i,indent:s,forceActionsVisible:l,rowStyle:a,folderName:d,onSelect:p,onArchive:h,onRenamed:g}){let{t:x}=(0,Y.s)(),[f,m]=(0,o.useState)(!1),[v,y]=(0,o.useState)(!1),[b,k]=(0,o.useState)(!1),[j,w]=(0,o.useState)(null),S=(0,o.useRef)(null),C=os(e),z=e.messageCount>0,T=(0,o.useCallback)(async t=>{if(t.stopPropagation(),b){S.current?.abort(),u(e.id);return}if(!z)return;let r=new AbortController;S.current=r,k(!0),w(null);try{await c(e.id,r.signal),g()}catch(e){r.signal.aborted||w(e instanceof Error?e.message:String(e))}finally{S.current===r&&(S.current=null),k(!1)}},[b,z,e.id,g]);if(v)return(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,height:30,paddingLeft:s?42:10,paddingRight:6,background:"rgba(239,68,68,0.06)",borderRadius:6},children:[(0,n.jsx)("span",{style:{flex:1,minWidth:0,fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:x("desktop.archiveSessionConfirm",{title:`“${C.slice(0,18)}${C.length>18?"…":""}”`})}),(0,n.jsxs)("button",{onClick:()=>{y(!1),h()},style:{display:"flex",alignItems:"center",gap:4,height:24,padding:"0 9px",background:"var(--status-error)",border:"none",borderRadius:5,color:"#fff",fontSize:11,fontWeight:600,cursor:"pointer",whiteSpace:"nowrap"},children:[(0,n.jsx)(ic.A,{size:11,"aria-hidden":"true"}),x("desktop.archiveSession")]}),(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),y(!1)},style:{height:24,padding:"0 9px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-muted)",fontSize:11,cursor:"pointer",whiteSpace:"nowrap"},children:x("desktop.cancel")})]});let R=(0,n.jsxs)("div",{style:{display:"flex",gap:2,flexShrink:0},children:[(0,n.jsx)("button",{onClick:T,disabled:!z,title:j??x(z?b?"desktop.generatingTitle":"desktop.generateTitle":"desktop.titleNeedsMessages"),"aria-label":x("desktop.generateTitle"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:4,color:j?"var(--status-error)":"var(--text-dim)",cursor:z?"pointer":"default",flexShrink:0,opacity:b?.7:z?1:.35,transition:"color 0.12s"},onMouseEnter:e=>{!b&&z&&(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{e.currentTarget.style.color=j?"var(--status-error)":"var(--text-dim)"},children:b?(0,n.jsxs)("svg",{style:{animation:"spin 1s linear infinite"},width:"13",height:"13",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",opacity:"0.25"}),(0,n.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):(0,n.jsx)(ip.A,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),y(!0)},title:x("desktop.archiveSession"),"aria-label":x("desktop.archiveSession"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:4,color:"var(--text-dim)",cursor:"pointer",flexShrink:0},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:(0,n.jsx)(ic.A,{size:13,"aria-hidden":"true"})})]}),I=f||l,M=r?(0,n.jsx)(iH,{}):i?(0,n.jsx)(iO,{}):null;return(0,n.jsxs)("div",{onClick:p,onMouseEnter:()=>m(!0),onMouseLeave:()=>m(!1),style:{position:"relative",padding:`${5*("detailed"===a)}px 6px ${5*("detailed"===a)}px ${s?42:18}px`,height:"detailed"===a?46:30,display:"flex",flexDirection:"column",justifyContent:"center",cursor:"pointer",borderRadius:8,background:t?"var(--bg-selected)":f?"var(--bg-hover)":"transparent",borderLeft:t?"2px solid var(--accent)":"2px solid transparent"},title:C,children:[M&&s&&(0,n.jsx)("span",{style:{position:"absolute",left:22,top:0,bottom:0,display:"flex",alignItems:"center"},children:M}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,minWidth:0},children:[M&&!s&&M,(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12.5,color:"var(--text)",fontWeight:t?500:400},children:C}),I?R:(0,n.jsx)("span",{style:{flexShrink:0,fontSize:11,color:"var(--text-dim)",whiteSpace:"nowrap"},children:iD(e.modified,x)})]}),"detailed"===a&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginTop:2,minWidth:0},children:[(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:11,color:"var(--text-dim)"},title:e.projectRoot??e.cwd,children:d}),I&&(0,n.jsx)("span",{style:{flexShrink:0,fontSize:11,color:"var(--text-dim)",whiteSpace:"nowrap"},children:iD(e.modified,x)})]})]})}function iq({session:e,folderName:t,onUnarchive:r,onDeleteForever:i}){let{t:s}=(0,Y.s)(),[l,a]=(0,o.useState)(!1),d=os(e);return(0,n.jsxs)("div",{onMouseEnter:()=>a(!0),onMouseLeave:()=>a(!1),style:{padding:"6px 10px",borderRadius:6,background:l?"var(--bg-hover)":"transparent"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12.5,color:"var(--text)"},title:d,children:d}),(0,n.jsx)("span",{style:{flexShrink:0,fontSize:11,color:"var(--text-dim)"},children:iD(e.archivedAt??e.modified,s)})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginTop:2},children:[(0,n.jsx)(ir.A,{size:12,style:{color:"var(--text-dim)",flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:11,color:"var(--text-dim)"},title:e.projectRoot??e.cwd,children:t}),(0,n.jsx)("button",{onClick:r,title:s("desktop.unarchiveSession"),"aria-label":s("desktop.unarchiveSession"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,padding:0,background:"none",border:"none",borderRadius:4,color:"var(--text-dim)",cursor:"pointer",flexShrink:0},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:(0,n.jsx)(ih.A,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:i,title:s("desktop.deleteForever"),"aria-label":s("desktop.deleteForever"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,padding:0,background:"none",border:"none",borderRadius:4,color:"var(--status-error)",cursor:"pointer",flexShrink:0},onMouseEnter:e=>{e.currentTarget.style.color="var(--status-error)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--status-error)"},children:(0,n.jsx)(ig.A,{size:13,"aria-hidden":"true"})})]})]})}let iK="pi-web:file-explorer:open";function iV(){try{return window.localStorage}catch{return null}}var iJ=r(79617),iY=r(87358);function iG(e){return e&&"win32"===iY.platform?(0,iJ.normalize)(e):e}function iX(e,t){return e===t||!!e&&!!t&&"win32"===iY.platform&&iG(e).toLowerCase()===iG(t).toLowerCase()}function iZ(e=document){return"visible"!==e.visibilityState||!e.hasFocus()}async function iQ(e,t={createWindowNotification:(e,t)=>new Notification(e,t),getServiceWorkerRegistration:"serviceWorker"in navigator?()=>navigator.serviceWorker.getRegistration():null}){let r={body:e.body,...e.tag?{tag:e.tag,renotify:!0}:{}};if(t.getServiceWorkerRegistration)try{let n=await t.getServiceWorkerRegistration();if(n)return await n.showNotification(e.title,{...r,data:{url:e.sessionUrl}}),"service-worker"}catch{}try{let n=t.createWindowNotification(e.title,r);return n.onclick=()=>{n.close(),e.onClick()},"window"}catch{return null}}let i0=new Set(["models","skills","plugins","mcp","subagents","display"]),i1="pi-web:unread-session-ids";function i2(e,t,r=[]){let n=new Map;for(let t of e){let e=t.projectRoot??t.cwd;if(!e)continue;let r=n.get(e);(!r||t.modified>r)&&n.set(e,t.modified)}let o=new Set;for(let e of(t&&o.add(t),r))o.add(e);for(let e of o)n.has(e)||n.set(e,"￿");return[...n.entries()].sort((e,t)=>t[1].localeCompare(e[1])).map(([e])=>e)}function i6(e,t){if(!t)return e;let r=e.replace(/\\/g,"/").toLowerCase(),n=t.replace(/\\/g,"/").toLowerCase();if(!r.startsWith(n))return e;let o=e.slice(t.length);return"~"+(o.startsWith("/")||o.startsWith("\\"),o)}function i4(e){return e.replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean).pop()??e}function i5({text:e,style:t}){return(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",display:"block",minWidth:0,lineHeight:1.35,direction:"rtl",textAlign:"left",...t},children:(0,n.jsx)("span",{style:{unicodeBidi:"plaintext"},children:e})})}function i3({open:e,children:t,style:r}){let[i,s]=(0,o.useState)(e),[l,a]=(0,o.useState)(e);return((0,o.useEffect)(()=>{let t,r;return e?(s(!0),a(!1),t=window.requestAnimationFrame(()=>{t=window.requestAnimationFrame(()=>a(!0))})):(a(!1),r=setTimeout(()=>s(!1),140)),()=>{void 0!==t&&window.cancelAnimationFrame(t),r&&clearTimeout(r)}},[e]),i)?(0,n.jsx)("div",{style:{...r,opacity:+!!l,transform:l?"translateY(0) scale(1)":"translateY(-8px) scale(0.96)",transformOrigin:"top center",transition:"opacity 140ms ease, transform 140ms ease",pointerEvents:e?"auto":"none"},children:t}):null}let i8="pi-web:session-view-style";function i7({selectedSessionId:e,onSelectSession:t,onNewSession:r,initialSessionId:i,onInitialRestoreDone:s,refreshKey:l,onSessionDeleted:a,selectedCwd:d,onCwdChange:I,onOpenFile:M,explorerRefreshKey:E,onAtMention:$,onAtMentions:W,onFileCreated:L,onFileDeleted:N,onOpenSettings:A,selectedSessionStats:P,workspaceControlsHosts:F,showWorkspaceControls:D=!0,onOpenCommandPalette:H,cycleSidebarFormRef:O,onSessionsLoaded:B}){var U;let _,q,K,V,{t:J}=(0,Y.s)(),[G,X]=(0,o.useState)([]);(0,o.useRef)(null);let Z=(0,o.useRef)(0),[Q,ee]=(0,o.useState)(!0),[et,er]=(0,o.useState)(null),[en,eo]=(0,o.useState)(null),[ei,es]=(0,o.useState)([]),el=(0,o.useCallback)(e=>{e&&es(t=>t.includes(e)?t:[...t,e])},[]),ea=tp(),[ed,ec]=(0,o.useState)(""),[eu,ep]=(0,o.useState)(!1),[eh,eg]=(0,o.useState)(null),[ex,ef]=(0,o.useState)(null),[em,ev]=(0,o.useState)(""),[ey,eb]=(0,o.useState)(!1),[ek,ej]=(0,o.useState)(null),[ew,eS]=(0,o.useState)(!1),eC=(0,o.useRef)(null),ez=(0,o.useRef)({title:null,welcome:null,titleRight:null}),[eT,eR]=(0,o.useState)(null),[eI,eM]=(0,o.useState)(!1),[eE,e$]=(0,o.useState)(!1),[eW,eL]=(0,o.useState)(""),[eN,eA]=(0,o.useState)(null),[eP,eF]=(0,o.useState)(!1),[eD,eH]=(0,o.useState)(null),[eO,eB]=(0,o.useState)(null),eU=(0,o.useRef)(null),e_=(0,o.useRef)(null),[eq,eK]=(0,o.useState)(!0),[eV,eJ]=(0,o.useState)(()=>{try{return"groups"===window.localStorage.getItem(i8)?"groups":"list"}catch{return"list"}}),[eY,eG]=(0,o.useState)(""),[eX,eZ]=(0,o.useState)({pinned:!0,today:!0,yesterday:!0,older:!1}),eQ=(0,o.useCallback)(e=>{eJ(e);try{window.localStorage.setItem(i8,e)}catch{}},[]),[e0,e1]=(0,o.useState)(()=>(function(e=iw()){if(!e)return iT;try{let t=e.getItem(iS);return"dropdown"===t||"projects"===t?t:iT}catch{return iT}})()),e2=(0,o.useCallback)(e=>{e1(e),function(e,t=iw()){if(t)try{t.setItem(iS,e)}catch{}}(e),"projects"===e&&e7.current?.()},[]);(0,o.useEffect)(()=>{if(O)return O.current=()=>{"list"===eV?eQ("groups"):e2("projects")},()=>{O&&(O.current=null)}},[O,eV,eQ,e2]);let e6=ea?"projects":e0,e4="pi-web:sidebar-mode-hint-seen",[e5,e3]=(0,o.useState)(()=>{try{return!window.localStorage.getItem(e4)}catch{return!1}}),e8=(0,o.useCallback)(()=>{e3(!1);try{window.localStorage.setItem(e4,"1")}catch{}},[]),e7=(0,o.useRef)(null);(0,o.useEffect)(()=>{e7.current=e8},[e8]);let[e9,te]=(0,o.useState)([]),tt=(0,o.useCallback)(async()=>{try{let e=await fetch("/api/projects/visibility");if(!e.ok)return;let t=await e.json();te(Array.isArray(t.hidden)?t.hidden:[])}catch{}},[]);(0,o.useEffect)(()=>{tt()},[tt]);let tr=(0,o.useCallback)(async(e,t)=>{try{let r=await fetch("/api/projects/visibility",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"hide",projectRoot:e,name:t})});if(r.ok){let e=await r.json();te(Array.isArray(e.hidden)?e.hidden:[])}}catch{}},[]),tn=(0,o.useCallback)(async e=>{try{let t=await fetch("/api/projects/visibility",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"unhide",projectRoot:e.path})});if(t.ok){let e=await t.json();te(Array.isArray(e.hidden)?e.hidden:[])}}catch{}},[]),[to,ti]=(0,o.useState)(!0),[ts,tl]=(0,o.useState)(0),[ta,td]=(0,o.useState)(!1),[tc,tu]=(0,o.useState)(!1),[th,tg]=(0,o.useState)(!1),[tx,tf]=(0,o.useState)(!1),[tm,tv]=(0,o.useState)(()=>new Set),[ty,tb]=(0,o.useState)(()=>(function(){try{let e=window.localStorage.getItem(i1);if(!e)return new Set;let t=JSON.parse(e);if(Array.isArray(t))return new Set(t.filter(e=>"string"==typeof e));return new Set}catch{return new Set}})()),tk=(0,o.useRef)(new Set),tj=(0,o.useRef)(!1),tw=(0,o.useRef)(null),tS=(0,o.useRef)(null),tC=(0,o.useRef)(null),tz=(0,o.useRef)(void 0);(0,o.useEffect)(()=>{tz.current=B},[B]);let tT=(0,o.useCallback)(async(e=!1,t=!1,r=!1)=>{let n=++Z.current;try{e&&ee(!0);let o=await fetch(r?"/api/sessions?summary=1":t?"/api/sessions?force=1":"/api/sessions",{cache:"no-store"});if(!o.ok)throw Error(`HTTP ${o.status}`);let i=await o.json();if(n!==Z.current)return;X(i.sessions),tz.current?.(i.sessions),tj.current||tv(e=>{let t=new Set(i.runningSessionIds??[]);return oh(e,t)?e:t});let s=new Set(i.sessions.map(e=>e.id));tb(e=>{if(0===e.size)return e;let t=new Set([...e].filter(e=>s.has(e)));return t.size===e.size?e:t}),er(null),e||(tg(!0),tw.current&&clearTimeout(tw.current),tw.current=setTimeout(()=>tg(!1),2e3))}catch(e){er(String(e))}finally{e&&ee(!1)}},[]),[tR,tI]=(0,o.useState)({}),tM=(0,o.useCallback)(async()=>{try{let e=await fetch("/api/project-aliases");if(!e.ok)return;let t=await e.json();tI(t.aliases??{})}catch{}},[]);(0,o.useEffect)(()=>{tM()},[tM,l]);let tE=(0,o.useRef)(!1);(0,o.useEffect)(()=>{let e=!tE.current;tE.current=!0;let t=!0;return e?tT(!0,!1,!0).then(()=>{if(!t)return;let e=setTimeout(()=>{t&&tT(!1,!0)},750);return()=>clearTimeout(e)}):tT(!1,!0),()=>{t=!1}},[tT,l]),(0,o.useEffect)(()=>{ti(function(e=iV()){if(!e)return!0;try{return"false"!==e.getItem(iK)}catch{return!0}}())},[]),(0,o.useEffect)(()=>{try{0===ty.size?window.localStorage.removeItem(i1):window.localStorage.setItem(i1,JSON.stringify([...ty]))}catch{}},[ty]),(0,o.useEffect)(()=>{let e=!0,t=null,r=null,n=async()=>{if(!e||"visible"!==document.visibilityState)return;t?.abort();let o=new AbortController;t=o;try{let r=await fetch("/api/agent/running",{cache:"no-store",signal:o.signal});if(!r.ok||!e||t!==o)return;let n=await r.json();if(!e||t!==o)return;tj.current=!0,tv(e=>{let t=new Set((n.sessions??[]).filter(e=>e.running).map(e=>e.id));return oh(e,t)?e:t})}catch(e){"AbortError"!==e.name&&console.warn("Failed to poll running sessions",e)}finally{e&&t===o&&"visible"===document.visibilityState&&(r=setTimeout(n,2500))}},o=()=>{"visible"===document.visibilityState?n():(t?.abort(),r&&clearTimeout(r),r=null)};return n(),document.addEventListener("visibilitychange",o),()=>{e=!1,t?.abort(),r&&clearTimeout(r),document.removeEventListener("visibilitychange",o)}},[]),(0,o.useEffect)(()=>{let e=new EventSource("/api/agent/running/events");return e.onmessage=e=>{try{let t=JSON.parse(e.data),r=t.sessions?t.sessions.filter(e=>e.running).map(e=>e.id):t.runningSessionIds??[];tj.current=!0,tv(e=>{let t=new Set(r);return oh(e,t)?e:t})}catch{}},()=>e.close()},[]),(0,o.useEffect)(()=>{let e=new EventSource("/api/events"),t=new Set(["message_end","agent_end","entry_appended","session_info_changed","agent_settled","auto_compaction_end","session_pin_changed","session_archive_changed"]),r=null,n=!1;return e.onmessage=e=>{try{let o=JSON.parse(e.data);o&&o.type&&t.has(o.type)?n||(n=!0,r=setTimeout(()=>{n=!1,tT(!1)},2e3)):o&&"project_alias_changed"===o.type?tM():o&&"project_visibility_changed"===o.type&&tt()}catch{}},()=>{e.close(),r&&clearTimeout(r)}},[tT,tM,tt]),(0,o.useEffect)(()=>{let t=[...tk.current].filter(t=>!tm.has(t)&&t!==e),r=[...tm];if((t.length>0||r.length>0)&&tb(e=>{let n=new Set(e);return r.forEach(e=>n.delete(e)),t.forEach(e=>n.add(e)),n}),t.length>0&&("visible"!==document.visibilityState||!document.hasFocus())){let e=G.filter(e=>t.includes(e.id)),r=1===e.length?e[0]?.name||"Pi Web":`${e.length} conversations`;iQ({title:"Pi Web",body:1===e.length?"Agent finished":`${r} finished`,sessionUrl:`/?session=${t[0]}`,onClick:()=>window.focus()})}tk.current=tm},[tm,e,G]),(0,o.useEffect)(()=>{e&&tb(t=>{if(!t.has(e))return t;let r=new Set(t);return r.delete(e),r})},[e]),(0,o.useEffect)(()=>{void 0!==E&&tl(e=>e+1)},[E]),(0,o.useEffect)(()=>{fetch("/api/home").then(e=>e.json()).then(e=>{e.home&&ec(e.home)}).catch(()=>{})},[]);let t$=(0,o.useRef)(!1),tW=(0,o.useCallback)(e=>{if(!e)return null;if(eT&&eT.forCwd===e||eT?.worktrees.some(t=>iX(t.path,e)))return eT.projectRoot;let t=G.find(t=>iX(t.cwd,e));return t?.projectRoot??e},[eT,G]);(0,o.useEffect)(()=>{en&&el(en)},[en,el]);let tL=(0,o.useRef)(null);(0,o.useEffect)(()=>{tL.current!==en&&(tL.current=en,I?.(en,tW(en)))},[en,I,tW]);let tN=(0,o.useRef)(null);(0,o.useEffect)(()=>{d&&d!==tN.current&&(tN.current=d,eo(d))},[d]);let[tA,tP]=(0,o.useState)(0);(0,o.useLayoutEffect)(()=>{if(!en){eR(null),eB(null);return}let e=!1;return eB(en),fetch(`/api/worktrees?cwd=${encodeURIComponent(en)}`).then(e=>e.json()).then(t=>{if(!e){if(eB(null),t.error||!t.projectRoot)return void eR(null);eR({forCwd:en,projectRoot:t.projectRoot,isGit:t.isGit??!1,isTopLevel:t.isTopLevel??!1,worktrees:t.worktrees??[]})}}).catch(()=>{e||(eB(null),eR(null))}),()=>{e=!0}},[en,tA,l]),(0,o.useEffect)(()=>{if(0!==G.length&&null===en){if(i&&!t$.current){t$.current=!0;let e=G.find(e=>e.id===i);if(e){eo(e.cwd),t(e,!0);return}s?.()}if(d)return void eo(d);let e=i2(G,null);e.length>0&&eo(e[0])}},[G,en,i,d,t,s]),(0,o.useEffect)(()=>{i&&(t$.current=!1)},[i]);let tF=(0,o.useCallback)(async e=>{let t=e.trim();if(t&&!ew){eS(!0),ej(null);try{let e=await fetch("/api/cwd/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:t})}),r=await e.json().catch(()=>({}));if(!e.ok||r.error)return void ej(r.error??`HTTP ${e.status}`);eo(r.cwd??t),eb(!1),ep(!1),eg(null);let n=r.cwd??t,o=e9.find(e=>iX(e.path,n));o&&tn(o)}catch(e){ej(e instanceof Error?e.message:String(e))}finally{eS(!1)}}},[ew,e9,tn]),tD=(0,o.useCallback)(()=>{ej(null),eb(!0)},[]),tH=(0,o.useCallback)(async()=>{try{let e=await fetch("/api/default-cwd",{method:"POST"}),t=await e.json();t.cwd&&(eo(t.cwd),eb(!1),ej(null),ep(!1),eg(null))}catch{}},[]),tO=(0,o.useCallback)(async()=>{let e=eW.trim();if(e&&!eP&&eT){eF(!0),eA(null);try{let t=await fetch("/api/worktrees",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:eT.projectRoot,branch:e})}),r=await t.json().catch(()=>({}));if(!t.ok||r.error||!r.path)return void eA(r.error??`HTTP ${t.status}`);e$(!1),eL(""),eM(!1),ef(null),eR(t=>t?{...t,forCwd:r.path,worktrees:[...t.worktrees,{path:r.path,branch:e,isMain:!1}]}:t),eo(r.path),tP(e=>e+1)}catch(e){eA(e instanceof Error?e.message:String(e))}finally{eF(!1)}}},[eW,eP,eT]),tB=(0,o.useCallback)(async(e,t)=>{if(eT&&!eP){eF(!0),eA(null);try{let r=await fetch("/api/worktrees",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:eT.projectRoot,path:e,force:t})}),n=await r.json().catch(()=>({}));if(!r.ok){if(n.dirty&&!t)return void eH(e);eA(n.error??`HTTP ${r.status}`);return}eH(null),en===e&&eo(eT.projectRoot),tP(e=>e+1)}catch(e){eA(e instanceof Error?e.message:String(e))}finally{eF(!1)}}},[eT,eP,en]);(0,o.useEffect)(()=>{let e=e=>{let t=e.target;eC.current?.contains(t)||eU.current?.contains(t)||Object.values(ez.current).some(e=>e?.contains(t))||(ep(!1),eg(null),eM(!1),ef(null),ev(""),ej(null),e$(!1),eL(""),eA(null),eH(null))};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]);let tU=(0,o.useCallback)(e=>{e.cwd&&eo(e.cwd),t(e)},[t]),t_=(0,o.useCallback)(e=>{a?.(e),tT()},[a,tT]),tq=(0,o.useCallback)((e,t)=>{X(r=>r.map(r=>r.id===e.id?{...r,pinned:t}:r)),fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({pinned:t})}).then(e=>{if(!e.ok)throw Error(`HTTP ${e.status}`)}).catch(()=>{X(r=>r.map(r=>r.id===e.id?{...r,pinned:!t}:r)),tT(!1)})},[tT]),tK=(0,o.useCallback)((e,t)=>{X(r=>r.map(r=>r.id===e.id?{...r,archived:t}:r)),fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({archived:t})}).then(r=>{if(!r.ok)throw Error(`HTTP ${r.status}`);t&&t_(e.id)}).catch(()=>{X(r=>r.map(r=>r.id===e.id?{...r,archived:!t}:r)),tT(!1)})},[t_,tT]),tV=(0,o.useCallback)(async e=>{try{if(!(await fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"DELETE"})).ok)return;t_(e.id),tT(!1)}catch{}},[t_,tT]),tJ=(0,o.useCallback)(e=>{let t="function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${Math.random().toString(36).slice(2)}`;eo(e),el(e),r?.(t,e)},[r,el]),tY=(0,o.useCallback)(()=>{let e="function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${Math.random().toString(36).slice(2)}`;eo(""),r?.(e,"")},[r]),tG=(0,o.useCallback)(()=>{if(!en)return;let e="function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${Math.random().toString(36).slice(2)}`;r?.(e,en)},[en,r]),tX=tW(en),tZ=i2(G,en?tW(en)??en:null,ei),tQ=em.trim()?tZ.filter(e=>e.toLowerCase().includes(em.trim().toLowerCase())):tZ,t0=(0,o.useMemo)(()=>(tX?G.filter(e=>!e.archived&&(e.projectRoot??e.cwd)===tX):G.filter(e=>!e.archived)).filter(e=>e.relation?.kind!=="subagent"),[G,tX]),[t1,t2]=(0,o.useState)(!1),[t6,t4]=(0,o.useState)({done:0,total:0}),t5=(0,o.useRef)(new Map),t3=(0,o.useRef)(!1),t8=(0,o.useCallback)(async()=>{if(t1){for(let[e,t]of(t3.current=!0,t5.current))t.abort(),u(e);return}let e=t0.filter(e=>e.messageCount>0).map(e=>e.id);if(0===e.length)return;t3.current=!1,t2(!0),t4({done:0,total:e.length});let t=0,r=0,n=async()=>{for(;!t3.current;){let n=e[t++];if(!n)return;let o=new AbortController;t5.current.set(n,o);try{await c(n,o.signal)}catch{}finally{t5.current.delete(n),t4({done:r+=1,total:e.length})}}};await Promise.all(Array.from({length:Math.min(2,e.length)},n)),t5.current.clear(),t2(!1),tT(!1)},[t1,t0,tT]),t7=!!(eT?.isGit&&eT.isTopLevel&&en&&tX===eT.projectRoot),t9=en&&eT&&tX===eT.projectRoot&&!t7?eT.isGit?{label:J("desktop.openRepoRoot"),title:J("desktop.openRepoRootDescription")}:{label:J("desktop.gitRepoRootOnly"),title:J("desktop.gitRepoRootOnlyDescription")}:null,re=!!(en&&eO===en),rt=t9??(re&&!t7?{label:J("desktop.worktreesLoading"),title:J("desktop.checkingWorktrees")}:null),rr=(0,o.useMemo)(()=>{let e=eY.trim().toLowerCase();return e?t0.filter(t=>{let r=(t.name||t.firstMessage||"").toLowerCase(),n=(t.branch||"").toLowerCase();return r.includes(e)||n.includes(e)}):t0},[eY,t0]),rn=(0,o.useMemo)(()=>(function(e){let t=new Map;for(let r of e)t.set(r.id,{session:r,children:[]});let r=new Map;for(let t of e)t.parentSessionId&&r.set(t.id,t.parentSessionId);let n=[];for(let e of t.values()){let o=function(e){let n=r.get(e),o=new Set;for(;n&&!o.has(n);){if(o.add(n),t.has(n))return n;n=r.get(n)}return null}(e.session.id);o?t.get(o).children.push(e):n.push(e)}let o=e=>{e.sort((e,t)=>t.session.modified.localeCompare(e.session.modified)),e.forEach(e=>o(e.children))};return o(n),n})(rr),[rr]),[ro,ri]=(0,o.useState)(0);(0,o.useEffect)(()=>{let e=setInterval(()=>ri(e=>e+1),6e4);return()=>clearInterval(e)},[]);let rs=(0,o.useMemo)(()=>iP(rr,G),[rr,G,ro]),rl=eT?.worktrees.find(e=>iX(e.path,en??""))??eT?.worktrees.find(e=>e.isMain)??null,ra=(0,o.useCallback)(e=>{for(let t of Object.keys(tR))if(iX(t,e))return tR[t]},[tR]),[rd,rc]=(0,o.useState)(null),[ru,rp]=(0,o.useState)(""),rh=(0,o.useRef)(null),rg=(0,o.useCallback)(e=>{rc(e),rp(ra(e)??""),setTimeout(()=>rh.current?.focus(),0)},[ra]),rx=(0,o.useCallback)(async e=>{rc(null);let t=ru.trim();tI(r=>{let n=Object.keys(r).find(t=>iX(t,e))??e,o={...r};return t?o[n]=t:delete o[n],o});try{let r=await fetch("/api/project-aliases",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,alias:t})}),n=await r.json().catch(()=>null);if(!r.ok||!n?.aliases)throw Error(`HTTP ${r.status}`);tI(n.aliases)}catch{tM()}},[ru,tM]),rf=tX?ra(tX)??i4(tX):i&&!t$.current?"":`${J("desktop.selectProject")}…`,rm=(0,n.jsx)("div",{style:{borderBottom:"1px solid var(--border)",flexShrink:0},children:(0,n.jsxs)("div",{style:{position:"relative",display:"flex",alignItems:"center"},children:[(0,n.jsx)(h.e,{size:13,color:"var(--text-dim)",style:{position:"absolute",left:12,pointerEvents:"none"},"aria-hidden":"true"}),(0,n.jsx)("input",{value:em,onChange:e=>ev(e.target.value),onKeyDown:e=>{"Escape"===e.key&&(em?ev(""):(ep(!1),eg(null)))},placeholder:J("desktop.searchProjects"),"aria-label":J("desktop.searchProjects"),autoFocus:!0,style:{width:"100%",padding:"8px 12px 8px 34px",background:"transparent",border:"none",outline:"none",color:"var(--text)",fontSize:12,fontFamily:"var(--font-mono)",boxSizing:"border-box"}})]})}),rv=(0,n.jsxs)("div",{className:"scroll-overlay",style:{maxHeight:"min(32vh, 240px)",flex:1,minHeight:0,padding:"4px"},children:[tQ.length>0&&(0,n.jsx)("div",{style:{padding:"5px 8px 3px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:J("desktop.recentProjects")}),tQ.map(e=>{let t=e===tX,r=function(e,t){if(!t)return!1;let r=e.replace(/\\/g,"/").toLowerCase(),n=t.replace(/\\/g,"/").toLowerCase();if(!r.startsWith(n))return!1;let o=r.slice(n.length).replace(/^\/+/,"").split("/")[0]??"";return/^pi-cwd-\d{8}$/.test(o)}(e,ed),o=ra(e);return rd===e?(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"2px 8px"},children:[(0,n.jsx)("input",{ref:rh,value:ru,onChange:e=>rp(e.target.value),onKeyDown:t=>{"Enter"===t.key&&(t.preventDefault(),rx(e)),"Escape"===t.key&&(rc(null),rp(o??""))},onBlur:()=>void rx(e),placeholder:J("desktop.projectAliasPlaceholder"),"aria-label":J("desktop.projectAliasPlaceholder"),maxLength:80,style:{flex:1,minWidth:0,fontSize:12,fontFamily:"var(--font-mono)",padding:"4px 8px",border:"1px solid var(--accent)",borderRadius:5,outline:"none",background:"var(--bg)",color:"var(--text)",boxSizing:"border-box"}}),(0,n.jsx)("button",{onMouseDown:e=>e.preventDefault(),onClick:()=>{rc(null),rp(o??"")},title:J("i18n.close"),"aria-label":J("i18n.close"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,padding:0,background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",borderRadius:5,flexShrink:0},onMouseEnter:e=>{e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-selected)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:(0,n.jsx)(g.X,{size:11,"aria-hidden":"true"})})]},e):(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",width:"100%",background:t?"var(--bg-selected)":"transparent",borderRadius:5,minWidth:0},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="transparent")},children:[(0,n.jsxs)("button",{onClick:()=>{eo(e),ev(""),eb(!1),ej(null),ep(!1),eg(null)},title:e,style:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:6,padding:"3px 8px",background:"transparent",border:"none",color:t?"var(--accent)":"var(--text)",cursor:"pointer",textAlign:"left",fontSize:12,fontFamily:"var(--font-mono)",transition:"background 0.1s"},onMouseDown:e=>{e.currentTarget.style.background="var(--bg-selected)"},children:[r?(0,n.jsx)(x.l,{size:12,color:t?"var(--accent)":"var(--text-dim)",weight:t?"fill":"regular",style:{flexShrink:0},"aria-hidden":"true"}):t?(0,n.jsx)(f.J,{size:12,color:"var(--accent)",weight:"bold",style:{flexShrink:0},"aria-hidden":"true"}):(0,n.jsx)("span",{style:{width:12,flexShrink:0}}),(0,n.jsxs)("span",{style:{display:"flex",alignItems:"baseline",gap:6,flex:1,minWidth:0},children:[(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,flex:o?"0 1 auto":"1 1 0"},children:o??i4(e)}),o&&(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:10},children:i4(e)})]})]}),(0,n.jsx)("button",{onClick:t=>{t.stopPropagation(),rg(e)},title:J("desktop.editProjectAlias"),"aria-label":J("desktop.editProjectAlias"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,padding:0,marginRight:4,background:"none",border:"none",color:t?"var(--accent)":"var(--text-dim)",cursor:"pointer",borderRadius:5,flexShrink:0,opacity:.7},onMouseEnter:e=>{e.currentTarget.style.opacity="1",e.currentTarget.style.color=t?"var(--accent)":"var(--text-muted)",e.currentTarget.style.background="var(--bg-selected)"},onMouseLeave:e=>{e.currentTarget.style.opacity="0.7",e.currentTarget.style.color=t?"var(--accent)":"var(--text-dim)",e.currentTarget.style.background="none"},children:(0,n.jsx)(m.I,{size:12,weight:"regular","aria-hidden":"true"})})]},e)}),0===tQ.length&&(0,n.jsx)("div",{style:{padding:"8px",fontSize:12,color:"var(--text-dim)"},children:em.trim()?J("desktop.noMatchingProjects"):J("desktop.noProjectsYet")})]}),ry=(0,n.jsxs)("div",{style:{borderTop:"1px solid var(--border)",padding:"4px",flexShrink:0},children:[(0,n.jsxs)("button",{onClick:e=>{e.stopPropagation(),tH()},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 8px",background:"transparent",border:"none",borderRadius:5,color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:12},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent",e.currentTarget.style.color="var(--text-muted)"},children:[(0,n.jsx)(x.l,{size:14,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{children:J("desktop.quickWorkspace")})]}),(0,n.jsxs)("button",{onClick:e=>{e.stopPropagation(),tD()},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 8px",background:"transparent",border:"none",borderRadius:5,color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:12},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent",e.currentTarget.style.color="var(--text-muted)"},children:[(0,n.jsx)(v.Bm,{size:14,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{children:J("desktop.selectFolder")})]})]}),rb=rl?rl.branch??i4(rl.path):rt?.label,rk="dropdown"===e6,rj=rl?.branch?(0,n.jsxs)("span",{title:`${J("desktop.branch")}: ${rl.branch}`,style:{display:"inline-flex",alignItems:"center",gap:5,maxWidth:160,padding:"2px 8px",border:"1px solid var(--border)",borderRadius:999,background:"color-mix(in srgb, var(--accent) 10%, var(--bg))",color:"var(--text-muted)",fontSize:11,fontFamily:"var(--font-mono)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",flexShrink:0},children:[(0,n.jsx)(y.Z,{size:11,weight:"regular","aria-hidden":"true"}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:rl.branch})]}):null,rw=t7?(0,n.jsxs)("div",{style:{position:"relative",display:"flex",alignItems:"center",flexShrink:0},children:[(0,n.jsx)("button",{type:"button",className:"app-no-drag",onClick:()=>ef(e=>"title"===e?null:"title"),"aria-label":J("desktop.switchWorktree"),"aria-expanded":"title"===ex,title:rl?J("desktop.switchWorktreeWithPath",{path:rl.path}):J("desktop.switchWorktree"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:30,height:30,padding:0,background:"title"===ex?"var(--bg-selected)":"none",border:"1px solid var(--border)",borderRadius:999,color:"title"===ex?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"background 0.12s, color 0.12s, border-color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="title"===ex?"var(--bg-selected)":"none",e.currentTarget.style.color="title"===ex?"var(--text)":"var(--text-muted)"},children:(0,n.jsx)(y.Z,{size:14,weight:"regular","aria-hidden":"true"})}),(0,n.jsxs)(i3,{open:"title"===ex,style:{position:"absolute",top:"calc(100% + 4px)",right:0,width:"min(320px, calc(88vw - 16px))",zIndex:1e3,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 6px 20px rgba(0,0,0,0.16)",overflow:"hidden"},children:[(0,n.jsx)("div",{className:"scroll-overlay",style:{maxHeight:"min(40vh, 300px)"},children:eT?.worktrees.map(e=>{let t=iX(e.path,en??"")||e.isMain&&!eT.worktrees.some(e=>iX(e.path,en??""));return(0,n.jsxs)("button",{onClick:()=>{eo(e.path),eM(!1),ef(null),eA(null)},title:e.path,style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"8px 10px",background:"var(--bg)",border:"none",borderBottom:"1px solid var(--border)",color:t?"var(--text)":"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11,fontFamily:"var(--font-mono)"},children:[t?(0,n.jsx)(f.J,{size:10,color:"var(--accent)",weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}):(0,n.jsx)("span",{style:{width:10,flexShrink:0}}),(0,n.jsx)(i5,{text:e.branch??i6(e.path,ed),style:{flex:1}}),e.isMain&&(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:10},children:J("desktop.main")})]},e.path)})}),eE?(0,n.jsxs)("div",{style:{padding:"6px 8px",borderTop:"1px solid var(--border)"},children:[(0,n.jsx)("input",{ref:e_,value:eW,onChange:e=>{eL(e.target.value),eA(null)},onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),tO()),"Escape"===e.key&&(e$(!1),eL(""),eA(null))},placeholder:J("desktop.branchName"),style:{width:"100%",fontSize:11,fontFamily:"var(--font-mono)",padding:"5px 8px",border:"1px solid var(--accent)",borderRadius:5,outline:"none",background:"var(--bg)",color:"var(--text)",boxSizing:"border-box"}}),(0,n.jsxs)("div",{style:{display:"flex",gap:5,marginTop:5},children:[(0,n.jsx)("button",{onClick:()=>void tO(),disabled:eP||!eW.trim(),style:{flex:1,padding:"4px 0",background:"var(--accent)",border:"none",borderRadius:5,color:"var(--accent-fg)",fontSize:11,fontWeight:600,cursor:eP||!eW.trim()?"not-allowed":"pointer",opacity:eP||!eW.trim()?.65:1},children:eP?J("desktop.creating"):J("desktop.create")}),(0,n.jsx)("button",{onClick:()=>{e$(!1),eL(""),eA(null)},style:{flex:1,padding:"4px 0",background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-muted)",fontSize:11,cursor:"pointer"},children:J("desktop.cancel")})]}),eN&&(0,n.jsx)("div",{style:{marginTop:5,color:"var(--status-error)",fontSize:11,lineHeight:1.35,overflowWrap:"anywhere"},children:eN})]}):(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),e$(!0),eA(null),setTimeout(()=>e_.current?.focus(),0)},title:J("desktop.createWorktree"),style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"8px 10px",background:"none",border:"none",borderTop:"1px solid var(--border)",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11},children:(0,n.jsx)("span",{children:J("desktop.newWorktree")})})]})]}):null;return(0,n.jsxs)(n.Fragment,{children:[ey&&(0,n.jsx)(om,{busy:ew,error:ek,onCancel:()=>{ew||(eb(!1),ej(null))},onSelect:e=>void tF(e)}),F?.welcome&&(0,p.createPortal)((0,n.jsx)("div",{ref:e=>{ez.current.welcome=e},style:{height:"100%",display:"flex"},children:(_="welcome"==(U="welcome"),q=eh===U,K=ex===U,V=tX?ra(tX)??i4(tX):rf,D?(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"flex-start",gap:_?6:2,height:_?"auto":"100%",minWidth:0,width:_?"100%":void 0},children:[(0,n.jsxs)("div",{style:{position:"relative",minWidth:0,width:_?"fit-content":void 0,maxWidth:_?"min(100%, 560px)":void 0},children:[(0,n.jsxs)("button",{className:`app-no-drag app-titlebar-context-control workspace-project-control${_?" workspace-project-control-large":""}`,onClick:()=>eg(e=>e===U?null:U),title:tX??en??J("desktop.selectProject"),"aria-label":J("desktop.selectProject"),"aria-expanded":q,style:{height:_?48:36,width:_?"100%":void 0,maxWidth:_?"100%":260,minWidth:0,display:"flex",alignItems:"center",gap:_?10:6,padding:_?"0 12px":"0 8px",background:q?"var(--bg-selected)":"none",border:"none",borderRadius:8*!!_,color:q?"var(--text)":en?_?"var(--text)":"var(--text-muted)":"var(--text-dim)",cursor:"pointer",fontSize:_?24:12,fontWeight:500,fontFamily:"var(--font-mono)",lineHeight:1,letterSpacing:0,textAlign:"left",transition:"background 0.12s, color 0.12s, border-color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color=en?"var(--text)":"var(--text-muted)"},onMouseLeave:e=>{e.currentTarget.style.background=q?"var(--bg-selected)":"none",e.currentTarget.style.color=q?"var(--text)":en?"var(--text-muted)":"var(--text-dim)"},children:[(0,n.jsx)(i5,{text:_?V:rf,style:{flex:1,minWidth:0,color:"inherit",direction:"ltr",fontFamily:"inherit"}}),(0,n.jsx)(b.a,{size:12,weight:"regular",style:{flexShrink:0,transition:"transform 0.12s",transform:q?"rotate(180deg)":"none"},"aria-hidden":"true"})]}),(0,n.jsxs)(i3,{open:q,style:{position:"absolute",top:"calc(100% + 4px)",left:0,width:"min(320px, calc(88vw - 16px))",zIndex:1e3,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 6px 20px rgba(0,0,0,0.16)",overflow:"hidden",display:"flex",flexDirection:"column",maxHeight:"min(38vh, 300px)"},children:[rm,rv,ry]})]}),_&&(t7||rt)&&(0,n.jsxs)("div",{style:{position:"relative",minWidth:0},children:[(0,n.jsxs)("button",{className:"app-no-drag app-titlebar-context-control workspace-worktree-control",onClick:()=>{t7&&ef(e=>e===U?null:U)},"aria-label":J("desktop.switchWorktree"),"aria-expanded":t7?K:void 0,"aria-disabled":!t7,tabIndex:t7?0:-1,title:t7&&rl?J("desktop.switchWorktreeWithPath",{path:rl.path}):rt?.title,style:{height:36,maxWidth:220,minWidth:0,display:"flex",alignItems:"center",gap:6,padding:"0 8px",background:K?"var(--bg-selected)":"none",border:"none",color:K?"var(--text)":t7?"var(--text-muted)":"var(--text-dim)",cursor:t7?"pointer":"default",fontSize:12,fontWeight:500,fontFamily:"var(--font-mono)",lineHeight:1,letterSpacing:0,opacity:t7?1:.82,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{t7&&(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background=K?"var(--bg-selected)":"none",e.currentTarget.style.color=K?"var(--text)":t7?"var(--text-muted)":"var(--text-dim)"},children:[(0,n.jsx)(y.Z,{size:16,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),_&&(0,n.jsx)("span",{className:"worktree-title-label",children:(0,n.jsx)(i5,{text:rb??"",style:{flex:1,minWidth:0,color:"inherit",direction:"ltr",fontFamily:"inherit"}})}),t7&&(0,n.jsx)(b.a,{size:12,weight:"regular",style:{flexShrink:0,transition:"transform 0.12s",transform:K?"rotate(180deg)":"none"},"aria-hidden":"true"})]}),(0,n.jsxs)(i3,{open:t7&&K,style:{position:"absolute",top:"calc(100% + 4px)",left:0,width:"min(320px, calc(88vw - 16px))",zIndex:1e3,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 6px 20px rgba(0,0,0,0.16)",overflow:"hidden"},children:[(0,n.jsx)("div",{className:"scroll-overlay",style:{maxHeight:"min(40vh, 300px)"},children:eT?.worktrees.map(e=>{let t=iX(e.path,en??"")||e.isMain&&!eT.worktrees.some(e=>iX(e.path,en??""));return(0,n.jsxs)("button",{onClick:()=>{eo(e.path),eM(!1),ef(null),eA(null)},title:e.path,style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"8px 10px",background:"var(--bg)",border:"none",borderBottom:"1px solid var(--border)",color:t?"var(--text)":"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11,fontFamily:"var(--font-mono)"},children:[t?(0,n.jsx)(f.J,{size:10,color:"var(--accent)",weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}):(0,n.jsx)("span",{style:{width:10,flexShrink:0}}),(0,n.jsx)(i5,{text:e.branch??i6(e.path,ed),style:{flex:1}}),e.isMain&&(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:10},children:J("desktop.main")})]},e.path)})}),eE?(0,n.jsxs)("div",{style:{padding:"6px 8px"},children:[(0,n.jsx)("input",{ref:e_,value:eW,onChange:e=>{eL(e.target.value),eA(null)},onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),tO()),"Escape"===e.key&&(e$(!1),eL(""),eA(null))},placeholder:J("desktop.branchName"),style:{width:"100%",fontSize:11,fontFamily:"var(--font-mono)",padding:"5px 8px",border:"1px solid var(--accent)",borderRadius:5,outline:"none",background:"var(--bg)",color:"var(--text)",boxSizing:"border-box"}}),(0,n.jsxs)("div",{style:{display:"flex",gap:5,marginTop:5},children:[(0,n.jsx)("button",{onClick:()=>void tO(),disabled:eP||!eW.trim(),style:{flex:1,padding:"4px 0",background:"var(--accent)",border:"none",borderRadius:5,color:"var(--accent-fg)",fontSize:11,fontWeight:600,cursor:eP||!eW.trim()?"not-allowed":"pointer",opacity:eP||!eW.trim()?.65:1},children:eP?J("desktop.creating"):J("desktop.create")}),(0,n.jsx)("button",{onClick:()=>{e$(!1),eL(""),eA(null)},style:{flex:1,padding:"4px 0",background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-muted)",fontSize:11,cursor:"pointer"},children:J("desktop.cancel")})]}),eN&&(0,n.jsx)("div",{style:{marginTop:5,color:"var(--status-error)",fontSize:11,lineHeight:1.35,overflowWrap:"anywhere"},children:eN})]}):(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),e$(!0),eA(null),setTimeout(()=>e_.current?.focus(),0)},title:J("desktop.createWorktree"),style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"8px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11},children:(0,n.jsx)("span",{children:J("desktop.newWorktree")})})]})]})]}):null)}),F.welcome,"welcome"),F?.titleRight&&!ea&&(0,p.createPortal)((0,n.jsxs)("div",{ref:e=>{ez.current.titleRight=e},style:{display:"flex",alignItems:"center",gap:6,minWidth:0},children:[rj,rw]}),F.titleRight,"titleRight"),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden",position:"relative"},children:[e5&&"dropdown"===e6&&(0,n.jsxs)("div",{role:"dialog","aria-label":J("desktop.sidebarModeHintTitle"),style:{position:"absolute",top:40,left:8,right:8,zIndex:60,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:10,boxShadow:"0 10px 28px rgba(0,0,0,0.4)",padding:10},children:[(0,n.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)"},children:J("desktop.sidebarModeHintTitle")}),(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:4,lineHeight:1.55},children:J("desktop.sidebarModeHintDesc")}),(0,n.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginTop:8},children:(0,n.jsx)("button",{onClick:e8,style:{height:24,padding:"0 10px",background:"var(--bg-selected)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",fontSize:11.5,fontWeight:500,cursor:"pointer"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text)"},children:J("desktop.sidebarModeHintOk")})})]}),"projects"===e6?(0,n.jsx)(iU,{sessions:G,loading:Q,runningIds:tm,unreadIds:ty,aliases:tR,selectedSessionId:e,selectedProjectRoot:tX,searchQuery:eY,onSearchQueryChange:eG,onSelectSession:tU,onNewSessionInProject:tJ,onArchive:tK,onDeleteForever:tV,onRemoveProject:tr,hiddenProjects:e9,onUnhideProject:tn,onPickFolder:()=>eb(!0),onCycleToList:()=>{eQ("list"),e2("dropdown")},onRenamed:()=>void tT(!1),onNewTask:tY,onOpenCommandPalette:H,renderFileTree:e=>(0,n.jsx)(oG,{ref:tC,cwd:e,onOpenFile:M??(()=>{}),refreshKey:ts,onAtMention:$,onAtMentions:W,onUploadBusyChange:td,fileSearchOpen:tc,onFileSearchOpenChange:tu,onFileCreated:L,onFileDeleted:N}),isMobile:ea}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{style:{flexShrink:0},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[(0,n.jsxs)("button",{onClick:()=>eK(e=>!e),style:{display:"flex",alignItems:"center",gap:6,flex:1,padding:"6px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:11,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",textAlign:"left"},children:[(0,n.jsx)(k.K,{size:9,weight:"regular",style:{transform:eq?"rotate(90deg)":"none",transition:"transform 0.15s",flexShrink:0},"aria-hidden":"true"}),J("desktop.sessions")]}),(0,n.jsx)("button",{onClick:()=>{"list"===eV?eQ("groups"):e2("projects")},title:`${J("desktop.sidebarModeCycle")}:${"list"===eV?J("desktop.sessionViewGroups"):J("desktop.showAllProjects")}`,"aria-label":J("desktop.sidebarModeCycle"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,padding:0,marginRight:2,flexShrink:0,background:"none",border:"none",borderRadius:5,color:"var(--text-dim)",cursor:"pointer",transition:"color 0.12s, background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:"list"===eV?(0,n.jsx)(j.B,{size:12,weight:"regular","aria-hidden":"true"}):(0,n.jsx)(w.d,{size:12,weight:"regular","aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:tG,disabled:!en,title:en?J("desktop.newSessionIn",{cwd:en}):J("desktop.selectProjectFirst"),"aria-label":J("desktop.newSession"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,background:"none",border:"none",color:"var(--text-dim)",cursor:en?"pointer":"default",borderRadius:5,flexShrink:0,opacity:en?1:.6,transition:"color 0.3s, background 0.3s"},onMouseEnter:e=>{en&&(e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:(0,n.jsx)(S.F,{size:13,weight:"regular","aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:()=>void t8(),disabled:!en||0===t0.filter(e=>e.messageCount>0).length,title:t1?`${J("desktop.generatingTitlesProgress",{done:t6.done,total:t6.total})}`:J("desktop.generateAllTitles"),"aria-label":J("desktop.generateAllTitles"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",borderRadius:5,flexShrink:0,opacity:en&&0!==t0.filter(e=>e.messageCount>0).length?1:.5,transition:"color 0.3s, background 0.3s"},onMouseEnter:e=>{t1||(e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:t1?(0,n.jsxs)("svg",{style:{animation:"spin 1s linear infinite"},width:"13",height:"13",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",opacity:"0.25"}),(0,n.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):(0,n.jsx)(C.R,{size:13,weight:"regular","aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:()=>tT(!1),title:J("desktop.refresh"),"aria-label":J("desktop.refresh"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,marginRight:6,background:th?"rgba(74,222,128,0.18)":"none",border:"none",color:th?"var(--status-success)":"var(--text-dim)",cursor:"pointer",borderRadius:5,flexShrink:0,transition:"color 0.3s, background 0.3s"},onMouseEnter:e=>{th||(e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{th||(e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none")},children:th?(0,n.jsx)(f.J,{size:13,color:"var(--status-success)",weight:"regular","aria-hidden":"true"}):(0,n.jsx)(z.S,{size:13,weight:"regular","aria-hidden":"true"})})]}),rk&&(0,n.jsxs)("div",{ref:eC,style:{position:"relative"},children:[(0,n.jsx)("button",{onClick:()=>ep(e=>!e),title:tX??en??"",style:{width:"100%",display:"flex",alignItems:"center",padding:"6px 10px",background:en?"var(--bg-hover)":"rgba(37,99,235,0.06)",border:en?"1px solid var(--border)":"1px solid rgba(37,99,235,0.4)",borderRadius:7,cursor:"pointer",fontSize:12,color:"var(--text)",textAlign:"left",transition:"border-color 0.15s, background 0.15s"},children:en?(0,n.jsx)(i5,{text:ra(tX??en??"")??i4(tX??en??""),style:{flex:1,fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text)"}}):(0,n.jsx)("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-dim)"},children:i&&!t$.current?"":`${J("desktop.selectProject")}…`})}),(0,n.jsxs)(i3,{open:eu,style:{position:"absolute",top:"calc(100% + 4px)",left:0,right:0,zIndex:100,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 6px 20px rgba(0,0,0,0.10)",overflow:"hidden",display:"flex",flexDirection:"column",maxHeight:"min(38vh, 300px)"},children:[rm,rv,ry]})]}),rk&&t7&&(()=>{if(!eT)return null;let e=eT.worktrees.find(e=>iX(e.path,en??""))??eT.worktrees.find(e=>e.isMain);return(0,n.jsxs)("div",{ref:eU,style:{position:"relative",marginTop:6},children:[(0,n.jsxs)("button",{onClick:()=>eM(e=>!e),title:e?J("desktop.switchWorktreeWithPath",{path:e.path}):J("desktop.switchWorktree"),style:{width:"100%",height:29,boxSizing:"border-box",display:"flex",alignItems:"center",gap:6,padding:"0 10px",background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:7,cursor:"pointer",fontSize:11,lineHeight:1.35,color:"var(--text-muted)",textAlign:"left"},children:[(0,n.jsx)(y.Z,{size:11,weight:"regular",style:{flexShrink:0,color:e&&!e.isMain?"var(--accent)":"var(--text-dim)"},"aria-hidden":"true"}),(0,n.jsx)(i5,{text:e?e.branch??i6(e.path,ed):"…",style:{flex:1,fontFamily:"var(--font-mono)",color:"var(--text)"}}),e?.isMain&&(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:10},children:J("desktop.main")}),eT.worktrees.length>1&&(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:10},children:eT.worktrees.length}),(0,n.jsx)(b.a,{size:9,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"})]}),(0,n.jsxs)(i3,{open:eI,style:{position:"absolute",top:"calc(100% + 4px)",left:0,right:0,zIndex:100,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 6px 20px rgba(0,0,0,0.10)",overflow:"hidden"},children:[(0,n.jsx)("div",{className:"scroll-overlay",style:{maxHeight:"min(40vh, 300px)"},children:eT.worktrees.map(e=>{let t=iX(e.path,en??"")||e.isMain&&!eT.worktrees.some(e=>iX(e.path,en??""));return eD===e.path?(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"7px 10px",borderBottom:"1px solid var(--border)",background:"rgba(239,68,68,0.06)"},children:[(0,n.jsx)("span",{style:{flex:1,fontSize:11,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:J("desktop.uncommittedChanges")}),(0,n.jsx)("button",{onClick:()=>void tB(e.path,!0),disabled:eP,style:{padding:"3px 9px",background:"var(--status-error)",border:"none",borderRadius:5,color:"var(--accent-fg)",fontSize:11,fontWeight:600,cursor:"pointer",flexShrink:0},children:J("desktop.force")}),(0,n.jsx)("button",{onClick:()=>eH(null),style:{padding:"3px 9px",background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-muted)",fontSize:11,cursor:"pointer",flexShrink:0},children:J("desktop.cancel")})]},e.path):(0,n.jsxs)("div",{className:"wt-row",style:{display:"flex",alignItems:"center",borderBottom:"1px solid var(--border)"},children:[(0,n.jsxs)("button",{onClick:()=>{eo(e.path),eM(!1),eA(null)},title:e.path,style:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:7,padding:"8px 10px",background:"var(--bg)",border:"none",color:t?"var(--text)":"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11,fontFamily:"var(--font-mono)"},children:[t?(0,n.jsx)(f.J,{size:10,color:"var(--accent)",weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}):(0,n.jsx)("span",{style:{width:10,flexShrink:0}}),(0,n.jsx)(i5,{text:e.branch??i6(e.path,ed),style:{flex:1}}),e.isMain&&(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:10},children:J("desktop.main")})]}),!e.isMain&&(0,n.jsx)("button",{onClick:()=>void tB(e.path,!1),disabled:eP,title:J("desktop.removeWorktree",{path:e.path}),style:{display:"flex",alignItems:"center",justifyContent:"center",width:34,height:28,padding:0,marginRight:4,background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",borderRadius:5,flexShrink:0,transition:"color 0.12s, background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--status-error)",e.currentTarget.style.background="rgba(239,68,68,0.08)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:(0,n.jsx)(T.l,{size:12,weight:"regular","aria-hidden":"true"})})]},e.path)})}),eE?(0,n.jsxs)("div",{style:{padding:"6px 8px"},children:[(0,n.jsx)("input",{ref:e_,value:eW,onChange:e=>{eL(e.target.value),eA(null)},onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),tO()),"Escape"===e.key&&(e$(!1),eL(""),eA(null))},placeholder:J("desktop.branchName"),style:{width:"100%",fontSize:11,fontFamily:"var(--font-mono)",padding:"5px 8px",border:"1px solid var(--accent)",borderRadius:5,outline:"none",background:"var(--bg)",color:"var(--text)",boxSizing:"border-box"}}),(0,n.jsxs)("div",{style:{display:"flex",gap:5,marginTop:5},children:[(0,n.jsx)("button",{onClick:()=>void tO(),disabled:eP||!eW.trim(),style:{flex:1,padding:"4px 0",background:"var(--accent)",border:"none",borderRadius:5,color:"var(--accent-fg)",fontSize:11,fontWeight:600,cursor:eP||!eW.trim()?"not-allowed":"pointer",opacity:eP||!eW.trim()?.65:1},children:eP?J("desktop.creating"):J("desktop.create")}),(0,n.jsx)("button",{onClick:()=>{e$(!1),eL(""),eA(null)},style:{flex:1,padding:"4px 0",background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-muted)",fontSize:11,cursor:"pointer"},children:J("desktop.cancel")})]})]}):(0,n.jsxs)("button",{onClick:e=>{e.stopPropagation(),e$(!0),eA(null),setTimeout(()=>e_.current?.focus(),0)},title:J("desktop.createWorktree"),style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"8px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11},children:[(0,n.jsx)(S.F,{size:10,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{children:J("desktop.newWorktree")})]}),eN&&(0,n.jsx)("div",{style:{padding:"5px 10px 8px",color:"var(--status-error)",fontSize:11,lineHeight:1.35,overflowWrap:"anywhere"},children:eN})]})]})})(),rk&&rt&&(0,n.jsxs)("button",{type:"button","aria-disabled":"true",tabIndex:-1,title:rt.title,style:{width:"100%",height:29,boxSizing:"border-box",marginTop:6,display:"flex",alignItems:"center",gap:6,padding:"0 10px",border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-hover)",color:"var(--text-dim)",fontSize:11,lineHeight:1.35,whiteSpace:"nowrap",textAlign:"left",cursor:"default",opacity:.82},children:[(0,n.jsx)(y.Z,{size:11,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis"},children:rt.label})]})]}),eq&&(0,n.jsxs)("div",{className:"scroll-overlay",style:{flex:to?"0 1 auto":"1 1 0",padding:"0",minHeight:0,maxHeight:to?"min(40%, 360px)":"none"},children:[(0,n.jsx)("div",{style:{position:"sticky",top:0,zIndex:1,padding:"4px 10px 6px",background:"var(--bg)"},children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,background:"var(--bg-hover)",borderRadius:8,padding:"0 9px",height:30},children:[(0,n.jsx)(h.e,{size:13,color:"var(--text-dim)",style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("input",{value:eY,onChange:e=>eG(e.target.value),placeholder:J("desktop.searchSessions"),"aria-label":J("desktop.searchSessions"),style:{flex:1,minWidth:0,background:"none",border:"none",outline:"none",color:"var(--text)",fontSize:12,fontFamily:"var(--font-mono)"}}),eY&&(0,n.jsx)("button",{onClick:()=>eG(""),"aria-label":J("i18n.close"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:18,height:18,padding:0,background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",borderRadius:4,flexShrink:0},onMouseEnter:e=>{e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-selected)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:(0,n.jsx)(g.X,{size:11,"aria-hidden":"true"})})]})}),Q&&(0,n.jsx)("div",{style:{padding:"16px 14px",color:"var(--text-muted)",fontSize:12},children:J("desktop.loading")}),et&&(0,n.jsx)("div",{style:{padding:"12px 14px",color:"var(--status-error)",fontSize:12},children:et}),!Q&&!et&&"list"===eV&&(0,n.jsxs)(n.Fragment,{children:[0===rr.length&&(0,n.jsx)("div",{style:{padding:"16px 14px",color:"var(--text-muted)",fontSize:12},children:J(eY.trim()?"desktop.noSearchResults":"desktop.noSessionsFound")}),rn.map(t=>(0,n.jsx)(i9,{node:t,selectedSessionId:e,runningSessionIds:tm,unreadSessionIds:ty,onSelectSession:tU,onRenamed:tT,selectedSessionStats:P,onSessionDeleted:t_,depth:0},t.session.id))]}),!Q&&!et&&"groups"===eV&&(0,n.jsxs)(n.Fragment,{children:[0===rr.length&&(0,n.jsx)("div",{style:{padding:"16px 14px",color:"var(--text-muted)",fontSize:12},children:J(eY.trim()?"desktop.noSearchResults":"desktop.noSessionsFound")}),rs.map(t=>{let r=eY.trim().length>0||eX[t.key];return(0,n.jsx)(st,{groupKey:t.key,label:J(iN[t.key]),rows:t.rows,isOpen:r,onToggle:()=>eZ(e=>({...e,[t.key]:!e[t.key]})),onSelectSession:tU,selectedSessionId:e,runningSessionIds:tm,unreadSessionIds:ty,allSessions:G,onPinChange:tq,onRenamed:tT,onSessionDeleted:t_},t.key)})]})]}),(d||en)&&(0,n.jsxs)("div",{style:{borderTop:"1px solid var(--border)",display:"flex",flexDirection:"column",flex:to?"1 1 0":"0 0 auto",minHeight:0,overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",flexShrink:0},children:[(0,n.jsxs)("button",{onClick:()=>ti(e=>{let t=!e;return!function(e,t=iV()){if(t)try{t.setItem(iK,String(e))}catch{}}(t),t}),style:{display:"flex",alignItems:"center",gap:6,flex:1,padding:"6px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:11,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",textAlign:"left"},children:[(0,n.jsx)(k.K,{size:9,weight:"regular",style:{transform:to?"rotate(90deg)":"none",transition:"transform 0.15s",flexShrink:0},"aria-hidden":"true"}),J("desktop.explorer")]}),to&&(0,n.jsx)("button",{onClick:()=>tu(e=>!e),title:J("sidebar.searchFiles"),"aria-label":J("sidebar.searchFiles"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,background:tc?"var(--bg-selected)":"none",border:"none",color:tc?"var(--accent)":"var(--text-dim)",cursor:"pointer",borderRadius:5,flexShrink:0,transition:"color 0.3s, background 0.3s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{tc||(e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none")},children:(0,n.jsx)(h.e,{size:13,weight:"regular","aria-hidden":"true"})}),to&&(0,n.jsx)("button",{onClick:()=>tC.current?.openUploadPicker(),disabled:ta,title:J("desktop.uploadFilesToProjectRoot"),"aria-label":J("desktop.uploadFiles"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,background:"none",border:"none",color:"var(--text-dim)",cursor:ta?"default":"pointer",borderRadius:5,flexShrink:0,opacity:ta?.6:1,transition:"color 0.3s, background 0.3s"},onMouseEnter:e=>{ta||(e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{ta||(e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none")},children:(0,n.jsx)(R.C,{size:13,weight:"regular","aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:()=>{tl(e=>e+1),tf(!0),tS.current&&clearTimeout(tS.current),tS.current=setTimeout(()=>tf(!1),2e3)},title:J("desktop.refreshExplorer"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,marginRight:6,background:tx?"rgba(74,222,128,0.18)":"none",border:"none",color:tx?"var(--status-success)":"var(--text-dim)",cursor:"pointer",borderRadius:5,flexShrink:0,transition:"color 0.3s, background 0.3s"},onMouseEnter:e=>{tx||(e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{tx||(e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none")},children:tx?(0,n.jsx)(f.J,{size:13,color:"var(--status-success)",weight:"regular","aria-hidden":"true"}):(0,n.jsx)(z.S,{size:13,weight:"regular","aria-hidden":"true"})})]}),to&&(0,n.jsx)("div",{className:"scroll-overlay",style:{flex:1,overflowX:"hidden"},children:(0,n.jsx)(oG,{ref:tC,cwd:en??d,onOpenFile:M??(()=>{}),refreshKey:ts,onAtMention:$,onAtMentions:W,onUploadBusyChange:td,fileSearchOpen:tc,onFileSearchOpenChange:tu,onFileCreated:L,onFileDeleted:N})})]})]}),(d||en)&&(0,n.jsx)(o0,{cwd:en??d,refreshKey:ts,onOpenFile:M??(()=>{})}),A&&(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(3, minmax(0, 1fr))",gap:5,padding:"7px 8px",borderTop:"1px solid var(--border)",flexShrink:0,marginTop:"auto"},children:ou.filter(({id:e})=>i0.has(e)).map(({id:e,labelKey:t,Icon:r})=>{let o=J(t);return(0,n.jsxs)("button",{type:"button",onClick:()=>A(e),title:o,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",gap:4,minWidth:0,padding:"6px 4px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:10.5},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg-panel)",e.currentTarget.style.color="var(--text-muted)"},children:[(0,n.jsx)(r,{size:13,"aria-hidden":"true"}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:o})]},e)})})]})]})}let i9=(0,o.memo)(function e({node:t,selectedSessionId:r,runningSessionIds:i,unreadSessionIds:s,onSelectSession:l,onRenamed:a,onSessionDeleted:d,selectedSessionStats:c,depth:u}){let[p,h]=(0,o.useState)(!1),g=t.children.length>0,x=t.session.id===r,f=(0,o.useCallback)(()=>l(t.session),[l,t.session]),m=(0,o.useCallback)(e=>d?.(e),[d]),v=(0,o.useCallback)(()=>h(e=>!e),[]);return(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:{position:"relative"},children:[u>0&&(0,n.jsx)("div",{style:{position:"absolute",left:12*u+6,top:0,bottom:0,width:1,background:"var(--border)",pointerEvents:"none"}}),(0,n.jsx)(se,{session:t.session,isSelected:x,isRunning:i.has(t.session.id),isUnread:s.has(t.session.id),onClick:f,onRenamed:a,onDeleted:m,selectedSessionId:r,selectedSessionStats:x?c:null,depth:u,hasChildren:g,collapsed:p,onToggleCollapse:v})]}),g&&!p&&(0,n.jsx)("div",{children:t.children.map(t=>(0,n.jsx)(e,{node:t,selectedSessionId:r,runningSessionIds:i,unreadSessionIds:s,onSelectSession:l,onRenamed:a,onSessionDeleted:d,selectedSessionStats:c,depth:u+1},t.session.id))})]})}),se=(0,o.memo)(function({session:e,isSelected:t,isRunning:r,isUnread:i,onClick:s,onRenamed:l,onDeleted:a,selectedSessionId:d,selectedSessionStats:p,depth:h=0,hasChildren:x=!1,collapsed:f=!1,onToggleCollapse:v}){let k,{t:j}=(0,Y.s)(),[w,S]=(0,o.useState)(!1),[T,R]=(0,o.useState)(!1),[$,W]=(0,o.useState)(""),[N,A]=(0,o.useState)(0),[P,F]=(0,o.useState)(0),[D,H]=(0,o.useState)(!1),[O,B]=(0,o.useState)(!1),[U,_]=(0,o.useState)(!1),[q,K]=(0,o.useState)(null),V=(0,o.useRef)(null),J=(0,o.useRef)(null),G=(0,o.useRef)(null),X=(0,o.useRef)(null),[Z,Q]=(0,o.useState)(!1);L(Z,()=>Q(!1));let[ee,et]=(0,o.useState)([]),[er,en]=(0,o.useState)(null),[eo,ei]=(0,o.useState)(!1),[es,el]=(0,o.useState)(!1),ea=(0,o.useMemo)(()=>{let e=new Map;for(let t of ee){let r=t.provider||"other",n=e.get(r);n?n.push(t):e.set(r,[t])}return Array.from(e.entries()).sort((e,t)=>e[0].localeCompare(t[0]))},[ee]),ed=os(e),ec=e.messageCount>0||e.id===d&&(p?.userMessages??0)>0;(0,o.useLayoutEffect)(()=>{T&&F(G.current?.getBoundingClientRect().width??0)},[T,$,N]);let eu=(0,o.useCallback)(e=>{e.stopPropagation(),W(ed),A(ed.length),R(!0),setTimeout(()=>J.current?.select(),0)},[ed]),ep=(0,o.useCallback)(async()=>{let t=$.trim();if(R(!1),t!==(e.name??""))try{await fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t})}),l?.()}catch{}},[$,e.id,e.name,l]),eh=(0,o.useCallback)(async t=>{if(t.stopPropagation(),U){V.current?.abort(),u(e.id);return}if(!ec)return;let r=new AbortController;V.current=r,_(!0),K(null);try{await c(e.id,r.signal),l?.()}catch(e){r.signal.aborted||K(e instanceof Error?e.message:String(e))}finally{V.current===r&&(V.current=null),_(!1)}},[U,ec,e.id,l]),eg=(0,o.useCallback)(async()=>{Q(!0),ei(!0),en(null);try{let t=await fetch(`/api/models?cwd=${encodeURIComponent(e.cwd||"")}`),r=await t.json().catch(()=>({}));if(!t.ok){et([]),en(r.error??`HTTP ${t.status}`);return}et(r.modelList??[])}catch{et([]),en("HTTP request failed")}finally{ei(!1)}},[e.cwd]),ex=(0,o.useCallback)(async t=>{el(!0);try{await fetch("/api/settings/title-model",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({modelId:t})}),Q(!1),K(null),_(!0);try{await c(e.id),l?.()}catch(e){K(e instanceof Error?e.message:String(e))}finally{_(!1)}}catch{}finally{el(!1)}},[e.id,l]),ef=(0,o.useCallback)(async()=>{B(!0);try{let t=await fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({archived:!0})});if(!t.ok)throw Error(`HTTP ${t.status}`);a?.(e.id)}catch{B(!1)}},[e.id,a]),em=(0,o.useCallback)(e=>{e.stopPropagation(),e.shiftKey?ef():H(!0)},[ef]),ev=(0,o.useCallback)(e=>{e.stopPropagation(),H(!1),ef()},[ef]),ey=(0,o.useCallback)(e=>{e.stopPropagation(),H(!1)},[]);return(0,n.jsx)("div",{ref:X,onClick:D||T?void 0:s,onMouseEnter:()=>S(!0),onMouseLeave:()=>{S(!1)},style:{height:50,display:"flex",alignItems:"center",paddingLeft:h>0?12*h+14:14,paddingRight:8,cursor:D||T?"default":"pointer",background:D||t?"var(--bg-selected)":w?"var(--bg-hover)":"transparent",borderLeft:D||t?"2px solid var(--accent)":"2px solid transparent",transition:"background 0.1s",opacity:O?.5:1,gap:6,overflow:"hidden"},children:D?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:{flex:1,minWidth:0,fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:j("desktop.archiveSessionConfirm",{title:`“${ed.slice(0,22)}${ed.length>22?"…":""}”`})}),(0,n.jsxs)("div",{style:{display:"flex",gap:5,flexShrink:0},children:[(0,n.jsxs)("button",{onClick:ev,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:4,height:30,padding:"0 11px",background:"var(--accent)",border:"none",borderRadius:6,color:"var(--accent-fg)",cursor:"pointer",fontSize:12,fontWeight:600,whiteSpace:"nowrap"},children:[(0,n.jsx)(I.T,{size:12,weight:"regular","aria-hidden":"true"}),j("desktop.archiveSession")]}),(0,n.jsx)("button",{onClick:ey,style:{display:"flex",alignItems:"center",justifyContent:"center",height:30,padding:"0 11px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:"pointer",fontSize:12,fontWeight:500,whiteSpace:"nowrap"},children:j("desktop.cancel")})]})]}):(0,n.jsxs)(n.Fragment,{children:[h>0&&(0,n.jsx)(y.Z,{size:10,color:"var(--text-dim)",weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5,minWidth:0,height:20,fontSize:12,fontWeight:t?500:400,lineHeight:"20px",color:"var(--text)"},title:r?`${ed} \xb7 ${j("desktop.agentRunning")}`:i?`${ed} \xb7 ${j("desktop.newActivity")}`:ed,children:[r?(0,n.jsx)(iH,{}):i?(0,n.jsx)(iO,{}):null,T?(0,n.jsxs)("div",{style:{position:"relative",flex:"1 1 0",alignSelf:"stretch",width:"100%",minWidth:0,height:20,background:"color-mix(in srgb, var(--accent) 18%, var(--bg))",borderRadius:3},children:[(0,n.jsx)("span",{ref:G,"aria-hidden":"true",style:{position:"absolute",visibility:"hidden",whiteSpace:"pre",font:"inherit",lineHeight:"inherit"},children:$.slice(0,N)}),(0,n.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",top:2,bottom:2,left:P,width:2,background:"var(--accent)",borderRadius:1,animation:"blink 1s step-end infinite",pointerEvents:"none"}}),(0,n.jsx)("input",{ref:J,value:$,onChange:e=>{W(e.target.value),A(e.target.selectionStart??e.target.value.length)},onSelect:e=>A(e.currentTarget.selectionEnd??0),onBlur:ep,onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),ep()),"Escape"===e.key&&(e.preventDefault(),R(!1))},"aria-label":j("desktop.rename"),autoFocus:!0,style:{width:"100%",minWidth:0,height:20,margin:0,padding:0,border:"none",outline:"none",background:"transparent",borderRadius:"inherit",color:"inherit",font:"inherit",lineHeight:"inherit",caretColor:"transparent"}})]}):(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,flex:1},children:ed}),x&&(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),v?.()},title:j(f?"desktop.expandForks":"desktop.collapseForks"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,flexShrink:0,background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",transform:f?"rotate(-90deg)":"none",transition:"transform 0.15s"},children:(0,n.jsx)(b.a,{size:10,weight:"regular","aria-hidden":"true"})}),w&&!T&&(0,n.jsxs)("div",{style:{display:"flex",gap:2,flexShrink:0},children:[(0,n.jsx)("button",{onClick:eh,disabled:!ec,title:q??j(ec?U?"desktop.generatingTitle":"desktop.generateTitle":"desktop.titleNeedsMessages"),"aria-label":j("desktop.generateTitle"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:4,color:q?"var(--status-error)":"var(--text-dim)",cursor:ec?"pointer":"default",flexShrink:0,opacity:U?.7:ec?1:.35,transition:"color 0.12s"},onMouseEnter:e=>{!U&&ec&&(e.currentTarget.style.color=q?"var(--status-error)":"var(--accent)")},onMouseLeave:e=>{e.currentTarget.style.color=q?"var(--status-error)":"var(--text-dim)"},children:U?(0,n.jsxs)("svg",{style:{animation:"spin 1s linear infinite"},width:"13",height:"13",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",opacity:"0.25"}),(0,n.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):(0,n.jsx)(C.R,{size:13,weight:"regular","aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:eu,title:j("desktop.rename"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:4,color:"var(--text-dim)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:(0,n.jsx)(m.I,{size:13,weight:"regular","aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:em,title:j("desktop.archiveSession"),"aria-label":j("desktop.archiveSession"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:4,color:"var(--text-dim)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:(0,n.jsx)(I.T,{size:13,weight:"regular","aria-hidden":"true"})})]})]}),(0,n.jsxs)("div",{style:{marginTop:2,display:"flex",gap:8,color:"var(--text-dim)",fontSize:11,minWidth:0,flexWrap:"nowrap",whiteSpace:"nowrap"},children:[(0,n.jsx)("span",{title:e.modified,style:{flexShrink:0},children:iD(e.modified,j)}),(0,n.jsx)("span",{style:{flexShrink:0},children:j("desktop.messagesCount",{count:e.messageCount})}),e.isWorktree&&e.branch&&(0,n.jsxs)("span",{title:j("desktop.worktree",{cwd:e.cwd}),style:{display:"flex",alignItems:"center",gap:3,color:"var(--accent)",minWidth:0,overflow:"hidden",flex:"1 1 auto"},children:[(0,n.jsx)(y.Z,{size:9,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.branch})]}),e.importedFrom&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:3,color:"var(--text-dim)",minWidth:0,overflow:"hidden",flexShrink:1},children:[(0,n.jsx)(M.z,{size:9,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:"reasonix"===e.importedFrom?j("desktop.importFromReasonix")??"来自 Reasonix":e.importedFrom})]})]}),q&&X.current&&(k=X.current.getBoundingClientRect(),(0,n.jsxs)("div",{style:{position:"fixed",top:Math.max(8,k.top+k.height/2-34),left:k.right+10,zIndex:3e3,width:300,padding:"10px 12px",borderRadius:10,background:"var(--bg-panel)",border:"1px solid color-mix(in srgb, #ef4444 40%, var(--border))",boxShadow:"0 10px 30px rgba(0,0,0,0.25)",animation:"plan-card-in 0.15s ease-out"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:6},children:[(0,n.jsx)("span",{style:{fontSize:12,fontWeight:650,color:"var(--status-error)",flex:1,minWidth:0},children:j("desktop.titleGenerationFailed")}),(0,n.jsx)("button",{type:"button",onClick:()=>K(null),"aria-label":j("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:2,display:"flex"},children:(0,n.jsx)(g.X,{size:12,"aria-hidden":"true"})})]}),(0,n.jsx)("div",{style:{fontSize:11,lineHeight:1.45,color:"var(--text-muted)",wordBreak:"break-word",marginBottom:8},children:q}),(0,n.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,n.jsxs)("button",{type:"button",onClick:eh,disabled:U,style:{display:"inline-flex",alignItems:"center",gap:4,padding:"5px 10px",borderRadius:6,background:"var(--status-error)",border:"none",color:"var(--accent-fg)",fontSize:11.5,fontWeight:600,cursor:U?"default":"pointer"},children:[(0,n.jsx)(z.S,{size:11,"aria-hidden":"true"}),j("desktop.retry")]}),(0,n.jsxs)("button",{type:"button",onClick:eg,disabled:es,style:{display:"inline-flex",alignItems:"center",gap:4,padding:"5px 10px",borderRadius:6,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:11.5,cursor:es?"default":"pointer"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:[(0,n.jsx)(E.f,{size:11,"aria-hidden":"true"}),j("desktop.changeTitleModel")]})]})]})),Z&&(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:3100,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.4)",padding:16},children:(0,n.jsxs)("div",{role:"dialog","aria-label":j("desktop.changeTitleModel"),style:{width:"min(420px, calc(100vw - 32px))",maxHeight:"min(70vh, 480px)",display:"flex",flexDirection:"column",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:12,boxShadow:"0 16px 40px rgba(0,0,0,0.3)",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"12px 14px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)(E.f,{size:15,"aria-hidden":"true"}),(0,n.jsx)("span",{style:{fontSize:13,fontWeight:650,color:"var(--text)",flex:1},children:j("desktop.changeTitleModel")}),(0,n.jsx)("button",{type:"button",onClick:()=>Q(!1),"aria-label":j("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:3,display:"flex"},children:(0,n.jsx)(g.X,{size:14,"aria-hidden":"true"})})]}),(0,n.jsx)("div",{className:"scroll-overlay",style:{padding:"8px 6px",flex:1},children:eo?(0,n.jsx)("div",{style:{padding:"12px 8px",fontSize:12,color:"var(--text-muted)"},children:j("desktop.loading")}):er?(0,n.jsxs)("div",{style:{padding:"12px 8px",fontSize:12,color:"var(--status-error)"},children:[j("desktop.modelsLoadFailed"),": ",er]}):0===ee.length?(0,n.jsx)("div",{style:{padding:"12px 8px",fontSize:12,color:"var(--text-muted)"},children:j("desktop.noModels")}):ea.map(([e,t])=>(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{padding:"6px 10px 4px",fontSize:11,fontWeight:600,color:"var(--text-muted)",textTransform:"capitalize"},children:e}),t.map(e=>{let t=`${e.provider||"other"}\u0000${e.id}`;return(0,n.jsx)("button",{type:"button",onClick:()=>{ex(e.id)},disabled:es,style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 10px",background:"none",border:"none",borderRadius:7,color:"var(--text)",fontSize:12.5,cursor:es?"default":"pointer",textAlign:"left"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name||e.id})},t)})]},e))})]})})]})]})})});function st({groupKey:e,label:t,rows:r,isOpen:o,onToggle:i,onSelectSession:s,selectedSessionId:l,runningSessionIds:a,unreadSessionIds:d,allSessions:c,onPinChange:u,onRenamed:p,onSessionDeleted:h}){let{t:g}=(0,Y.s)();return(0,n.jsxs)("div",{style:{margin:"0 8px 6px",borderRadius:10,background:"var(--bg-panel)",border:"1px solid var(--border)",overflow:"hidden"},children:[(0,n.jsxs)("button",{type:"button",onClick:i,"aria-expanded":o,style:{display:"flex",alignItems:"center",gap:6,width:"100%",padding:"7px 10px",background:"none",border:"none",color:"var(--text)",cursor:"pointer",textAlign:"left"},children:[(0,n.jsx)(b.a,{size:11,weight:"regular","aria-hidden":"true",style:{flexShrink:0,transform:o?"rotate(0deg)":"rotate(-90deg)",transition:"transform 0.15s"}}),(0,n.jsx)("span",{style:{fontSize:11,fontWeight:600,letterSpacing:"0.04em",textTransform:"uppercase",color:"var(--text-muted)"},children:t}),(0,n.jsx)("span",{style:{background:"var(--bg-hover)",borderRadius:999,padding:"0 6px",fontSize:10,fontWeight:600,color:"var(--text-muted)",lineHeight:"16px",flexShrink:0},children:r.length}),(0,n.jsx)("span",{style:{marginLeft:"auto",fontSize:10,color:"var(--text-dim)",flexShrink:0},children:g(o?"desktop.collapseGroup":"desktop.expandGroup")})]}),o&&(0,n.jsx)("div",{style:{padding:"2px 4px 6px"},children:r.map((t,r)=>(0,n.jsx)("div",{style:{animation:"accordion-row-in 0.14s ease-out both",animationDelay:`${20*Math.min(r,10)}ms`},children:(0,n.jsx)(sr,{session:t.session,forkDepth:t.forkDepth,isSelected:t.session.id===l,isRunning:a.has(t.session.id),isUnread:d.has(t.session.id),onClick:()=>s(t.session),allSessions:c,onPinChange:u,onRenamed:p,onDeleted:h,inPinnedGroup:"pinned"===e})},t.session.id))})]})}function sr({session:e,forkDepth:t=0,isSelected:r,isRunning:i,isUnread:s,onClick:l,allSessions:a,onPinChange:d,onRenamed:p,onDeleted:h,inPinnedGroup:g=!1}){let x,{t:f}=(0,Y.s)(),[v,b]=(0,o.useState)(!1),[k,j]=(0,o.useState)(!1),[w,S]=(0,o.useState)(""),[z,T]=(0,o.useState)(!1),[R,M]=(0,o.useState)(!1),[E,L]=(0,o.useState)(!1),N=(0,o.useRef)(null),[A,P]=(0,o.useState)(!1),[F,D]=(0,o.useState)(null),H=(0,o.useRef)(null),O=os(e),B=e.parentSessionId?a.find(t=>t.id===e.parentSessionId):void 0,U=async()=>{let t=w.trim();if(j(!1),t&&t!==(e.name??""))try{await fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t})}),p?.()}catch{}},_=async t=>{if(t.stopPropagation(),E){N.current?.abort(),u(e.id);return}if(0===e.messageCount)return;let r=new AbortController;N.current=r,L(!0);try{await c(e.id,r.signal),p?.()}catch{}finally{N.current===r&&(N.current=null),L(!1)}},q=async()=>{M(!0);try{let t=await fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({archived:!0})});if(!t.ok)throw Error(`HTTP ${t.status}`);h?.(e.id)}catch{M(!1)}};return(0,n.jsxs)("div",{ref:H,onClick:z||k?void 0:l,onMouseEnter:()=>b(!0),onMouseLeave:()=>{b(!1),P(!1)},style:{display:"flex",flexDirection:"column",justifyContent:"center",padding:"5px 8px 5px 10px",paddingLeft:10+14*t,position:"relative",cursor:z||k?"default":"pointer",background:z||r?"var(--bg-selected)":v?"var(--bg-hover)":"transparent",borderLeft:z||r?"2px solid var(--accent)":"2px solid transparent",borderRadius:6,transition:"background 0.1s",opacity:R?.5:1},children:[t>0&&(0,n.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",left:12+(t-1)*14,top:2,bottom:2,width:2,borderRadius:1,background:"var(--border)",pointerEvents:"none"}}),z?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:{flex:1,minWidth:0,fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:f("desktop.archiveSessionConfirm",{title:`“${O.slice(0,22)}${O.length>22?"…":""}”`})}),(0,n.jsxs)("div",{style:{display:"flex",gap:5,flexShrink:0},children:[(0,n.jsxs)("button",{onClick:e=>{e.stopPropagation(),T(!1),q()},style:{display:"flex",alignItems:"center",gap:4,height:28,padding:"0 11px",background:"var(--accent)",border:"none",borderRadius:6,color:"var(--accent-fg)",cursor:"pointer",fontSize:12,fontWeight:600,whiteSpace:"nowrap"},children:[(0,n.jsx)(I.T,{size:12,weight:"regular","aria-hidden":"true"}),f("desktop.archiveSession")]}),(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),T(!1)},style:{height:28,padding:"0 11px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:"pointer",fontSize:12,whiteSpace:"nowrap"},children:f("desktop.cancel")})]})]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5,minWidth:0,height:20},children:[i?(0,n.jsx)(iH,{}):s?(0,n.jsx)(iO,{}):null,k?(0,n.jsx)("input",{autoFocus:!0,value:w,onChange:e=>S(e.target.value),onBlur:U,onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),U()),"Escape"===e.key&&(e.preventDefault(),j(!1))},"aria-label":f("desktop.rename"),style:{flex:1,minWidth:0,height:18,margin:0,padding:"0 4px",border:"1px solid var(--accent)",borderRadius:3,outline:"none",background:"color-mix(in srgb, var(--accent) 18%, var(--bg))",color:"var(--text)",fontSize:12}}):(0,n.jsx)("span",{title:e.modified,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,flex:1,fontSize:12,fontWeight:r?500:400,color:"var(--text)"},children:O}),v&&!k&&(0,n.jsxs)("div",{style:{display:"flex",gap:1,flexShrink:0},children:[(0,n.jsx)("button",{onClick:t=>{t.stopPropagation(),d?.(e,!e.pinned)},title:f(e.pinned?"desktop.unpin":"desktop.pin"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:4,color:e.pinned?"var(--accent)":"var(--text-dim)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:t=>{t.currentTarget.style.color=e.pinned?"var(--accent)":"var(--text-muted)"},onMouseLeave:t=>{t.currentTarget.style.color=e.pinned?"var(--accent)":"var(--text-dim)"},children:(0,n.jsx)($.U,{size:12,weight:e.pinned?"fill":"regular","aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:_,disabled:0===e.messageCount,title:f(0===e.messageCount?"desktop.titleNeedsMessages":E?"desktop.generatingTitle":"desktop.generateTitle"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:4,color:"var(--text-dim)",cursor:0===e.messageCount?"default":"pointer",flexShrink:0,opacity:E?.7:0===e.messageCount?.35:1,transition:"color 0.12s"},onMouseEnter:t=>{E||0===e.messageCount||(t.currentTarget.style.color="var(--accent)")},onMouseLeave:t=>{E||0===e.messageCount||(t.currentTarget.style.color="var(--text-dim)")},children:E?(0,n.jsxs)("svg",{style:{animation:"spin 1s linear infinite"},width:"12",height:"12",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",opacity:"0.25"}),(0,n.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):(0,n.jsx)(C.R,{size:12,weight:"regular","aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),S(O),j(!0)},title:f("desktop.rename"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:4,color:"var(--text-dim)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:(0,n.jsx)(m.I,{size:12,weight:"regular","aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),e.shiftKey?q():T(!0)},title:f("desktop.archiveSession"),"aria-label":f("desktop.archiveSession"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:4,color:"var(--text-dim)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:(0,n.jsx)(I.T,{size:12,weight:"regular","aria-hidden":"true"})})]}),e.pinned&&!g&&!v&&(0,n.jsx)("span",{title:f("desktop.pinned"),style:{flexShrink:0,display:"inline-flex",alignItems:"center",opacity:.85},children:(0,n.jsx)($.U,{size:11,weight:"fill",color:"var(--accent)","aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginTop:1,minWidth:0,height:16,flexWrap:"nowrap",whiteSpace:"nowrap"},children:[(0,n.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",flexShrink:0},children:iD(e.modified,f)}),(0,n.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",flexShrink:0},children:f("desktop.messagesCount",{count:e.messageCount})}),e.isWorktree&&e.branch&&(0,n.jsxs)("span",{title:e.branch,style:{display:"inline-flex",alignItems:"center",gap:3,maxWidth:"60%",background:"var(--bg-hover)",borderRadius:4,padding:"0 5px",height:15,minWidth:0,overflow:"hidden"},children:[(0,n.jsx)(y.Z,{size:8,weight:"regular",color:"var(--text-dim)",style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:10,fontFamily:"var(--font-mono)",color:"var(--text-muted)",lineHeight:"15px"},children:e.branch})]}),e.parentSessionId&&(0,n.jsx)("span",{style:{marginLeft:"auto",flexShrink:0,display:"inline-flex",alignItems:"center"},onMouseEnter:e=>{let t=H.current?.getBoundingClientRect();t&&(D({top:t.top+t.height/2-15,left:t.right+8}),P(!0))},onMouseLeave:()=>P(!1),children:(0,n.jsx)(W.d,{size:10,weight:"regular",color:"var(--text-dim)",style:{cursor:"help"},"aria-hidden":"true"})})]}),A&&F&&(x=B?os(B).slice(0,30):"",(0,n.jsx)("div",{style:{position:"fixed",top:F.top,left:F.left,zIndex:3e3,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,padding:"4px 8px",boxShadow:"0 6px 20px rgba(0,0,0,0.2)",fontSize:10.5,color:"var(--text-muted)",whiteSpace:"nowrap",pointerEvents:"none",animation:"plan-card-in 0.12s ease-out"},children:f("desktop.forkedFrom",{title:x||"—"})}))]})]})}let sn=/\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/g,so=/^\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/,si=/\x1B\[([0-9;]*)m/g,ss=["#1f2937","#dc2626","#16a34a","#d97706","#2563eb","#9333ea","#0891b2","#6b7280"],sl=["#9ca3af","#ef4444","#22c55e","#f59e0b","#3b82f6","#a855f7","#06b6d4","#e5e7eb"];function sa(e){return e.replace(sn,"")}function sd(e){let t=[],r=0;for(;r<e.length;){if(27===e.charCodeAt(r)){let t=e.slice(r).match(so);if(t){r+=t[0].length;continue}}let n=e.codePointAt(r);if(void 0===n)break;let o=String.fromCodePoint(n);t.push({start:r,end:r+o.length,char:o}),r+=o.length}return t}function sc(e,t){let r=sd(e)[t];return r?e.slice(0,r.start)+e.slice(r.end):e}function su(e){return sd(e)[0]?.char}function sp(e){return"user"===e.role||"custom"===e.role&&("compaction"===e.customType||"pi-web:subagent-notification"===e.customType)}function sh(e,t={}){return t.isStreaming||"error"!==e.stopReason?null:e.errorMessage?.trim()||"Unknown provider error"}function sg(e,t={}){return"thinking"===e.type&&!e.deferred&&!t.isStreaming&&""===e.thinking.trim()}function sx(e,t={}){return(e.content??[]).filter(e=>!sg(e,t))}function sf(e){return"text"===e.type||"image"===e.type}function sm(e,t={}){let r=sx(e,t),n=r.findLastIndex(e=>"toolCall"===e.type);return{answerBlocks:r.filter((e,t)=>sf(e)&&t>n),processBlocks:r.filter((e,t)=>!sf(e)||t<=n)}}let sv=["starting","queued","running","completed","failed","aborted","interrupted"];function sy(e){var t;return!!e&&"object"==typeof e&&"pi-web-subagent"===e.kind&&"string"==typeof e.sessionId&&"string"==typeof(t=e.status)&&sv.includes(t)}function sb(e){let t=[],r=[],n="group",o=()=>{0!==r.length&&(t.push({kind:n,blocks:r}),r=[])};for(let i of e){if("toolCall"===i.type&&"Agent"===i.toolName&&("running"===i.status||!i.result||sy(i.result.details))&&"toolCall"===i.type){o(),t.push({kind:"subagent",blocks:[i],subagent:{toolCallId:i.toolCallId,toolName:i.toolName,input:i.input,result:i.result,duration:i.duration,status:i.status,sourceMessageIndex:i.origin.sourceMessageIndex}});continue}let e="text"===i.type||"image"===i.type?"output":"group";e!==n&&o(),n=e,r.push(i)}return o(),t}function sk(e,t,r){return`${e??`message-${t}`}:${r}`}function sj(e,t){let{messageIndex:r,entryId:n,phase:o,toolResults:i,isStreaming:s=!1}=t;return"custom"===e.role?e.display?[{id:sk(n,r,0),type:"custom",customType:e.customType,message:e,origin:{phase:o,placement:"standalone",sourceMessageIndex:r,sourceEntryId:n}}]:[]:"assistant"!==e.role?[]:(t.blocks??sx(e,{isStreaming:s})).map((t,s)=>{let l=e.content.indexOf(t),a=l>=0?l:s,d={phase:o,placement:"standalone",sourceMessageIndex:r,sourceEntryId:n,sourceBlockIndex:a},c=sk(n,r,a);if("text"===t.type)return{id:c,type:"text",text:t.text,origin:d};if("image"===t.type)return{id:c,type:"image",source:t.source??{type:"base64",data:t.data,media_type:t.mimeType},origin:d};if("thinking"===t.type)return{id:c,type:"thinking",thinking:t.thinking,deferred:t.deferred,origin:d};let u=i?.get(t.toolCallId);return{id:c,type:"toolCall",toolCallId:t.toolCallId,toolName:t.toolName,input:t.input,result:u,duration:function(e,t){if(!e.timestamp||!t?.timestamp)return;let r=Math.round((t.timestamp-e.timestamp)/1e3);return r>0?r:void 0}(e,u),status:u?.isError?"error":u?"success":"running",origin:{...d,groupId:t.toolCallId}}})}function sw(e,t){let{processBlocks:r,answerBlocks:n}=sm(e,t);return{processBlocks:sj(e,{...t,phase:"process",blocks:r}),resultBlocks:sj(e,{...t,phase:"result",blocks:n})}}function sS(e,t,r,n){return r.flatMap(r=>sj(e[r],{messageIndex:r,entryId:t[r],phase:"process",toolResults:n}))}function sC(e){try{return decodeURIComponent(e)}catch{return e}}function sz(e){return/^[a-zA-Z]:[\\/]/.test(e)||e.startsWith("\\\\")?e.replace(/\\/g,"/"):e}function sT(e){let t=sz(e),r=/^[a-zA-Z]:\//.test(t),n=t.startsWith("//"),o=t.startsWith("/")&&!r&&!n,i=[];for(let e of t.split("/"))if(e&&"."!==e){if(".."===e){i.length>0&&".."!==i[i.length-1]?i.pop():o||r||n||i.push(e);continue}i.push(e)}let s=i.join("/");return r?s:n?`//${s}`:o?`/${s}`:s}function sR(e,t,r=t){let n,o,i,s,l;if(!e)return null;let a=e.split("#",1)[0].split("?",1)[0].trim();if(!a)return null;let d=null,c=null,u=sC(a),p=u.startsWith("\\\\"),h=sz(u),g=h.toLowerCase();if(g.startsWith("/api/")||g.startsWith("/_next/")||!p&&h.startsWith("//")||/^[a-zA-Z][a-zA-Z0-9+.-]*:/i.test(h)&&!g.startsWith("file:")&&!/^[a-zA-Z]:\//.test(h))return null;if(g.startsWith("file:")?c=(d=function(e){try{let t=new URL(e);if("file:"!==t.protocol)return null;let r=sC(t.pathname);if(t.hostname)return`//${t.hostname}${r.startsWith("/")?r:`/${r}`}`;if(/^\/[a-zA-Z]:\//.test(r))return r.slice(1);return r}catch{return null}}(a))?"absolute":null:/^[a-zA-Z]:\//.test(h)||h.startsWith("/")?(d=h,c="absolute"):t&&!(h.startsWith("#")||h.startsWith("?"))&&(h.startsWith("./")||h.startsWith("../")||h.includes("/")||/(^|\/)\.?[^/]+\.[^/.]+$/.test(h))&&(d=`${sz(t).replace(/\/+$/,"")}/${h}`,c="relative"),!d)return null;let x=sT(d).replace(/:\d+(?::\d+)?$/,"");return"relative"===c&&r&&(n=sT(x).replace(/\/+$/,""),o=sT(r).replace(/\/+$/,""),s=(i=/^[a-zA-Z]:\//.test(n)||/^[a-zA-Z]:\//.test(o))?n.toLowerCase():n,!(s===(l=i?o.toLowerCase():o)||s.startsWith(`${l}/`)))?null:x}let sI=/^page=(\d+)$/i;function sM(e){if(!e)return null;let t=e.indexOf("#");if(-1===t)return null;let r=e.slice(t+1).trim().match(sI);if(!r)return null;let n=Number.parseInt(r[1],10);return Number.isInteger(n)&&n>0?n:null}function sE(e){let t=e.toLowerCase();return"apply_patch"===t||t.startsWith("apply_patch_")||t.endsWith(".apply_patch")||t.endsWith("_apply_patch")}function s$(e,t){if(e&&"object"==typeof e&&!Array.isArray(e)){let t=e.input;if("string"==typeof t&&t.length>0)return t}return"string"==typeof t?t:""}function sW(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function sL(e){if(!sW(e)||!sW(e.result))return!1;let t=e.result.failures;return Array.isArray(t)&&t.length>0}function sN(){let e=[],t=[],r=[],n=()=>({lineNo:null,text:"",type:"empty"}),o=()=>{let o=Math.max(t.length,r.length);for(let i=0;i<o;i++)e.push({type:"line",left:t[i]??n(),right:r[i]??n()});t=[],r=[]};return{rows:e,context(t,r){o(),e.push({type:"line",left:{lineNo:r,text:t,type:"context"},right:{lineNo:r,text:t,type:"context"}})},removed(e,r){t.push({lineNo:r,text:e,type:"removed"})},added(e,t){r.push({lineNo:t,text:e,type:"added"})},finish(){o();for(let t=e.length-1;t>=0;t--)"line"!==e[t].type&&e.splice(t,1)}}}function sA(e){if(!e.includes("*** Begin Patch")&&!/\*\*\* (?:Add|Delete|Update) File: /.test(e))return null;let t=[],r=null,n=null,o=null;for(let i of e.split(/\r?\n/)){let e=i.match(/^\*\*\* (Add|Delete|Update) File: (.+)$/);if(e){let i=e[1]?.toLowerCase()??"update",s=(e[2]??"").trim();r?.finish(),o=i,n={oldPath:"add"===i?void 0:s,newPath:"delete"===i?void 0:s,rows:(r=sN()).rows},t.push(n);continue}if(/^\*\*\* Move to: /.test(i)){let e=i.replace(/^\*\*\* Move to: /,"").trim();n&&"update"===o&&(n.newPath=e);continue}if(!r||!n)continue;let s=r;if(!i.startsWith("*** ")&&!("update"===o&&i.startsWith("@@"))){if("update"===o){let e=i[0],t=i.slice(1);"+"===e?s.added(t,null):"-"===e?s.removed(t,null):" "===e?s.context(t,null):""!==i&&s.context(i,null)}else if("add"===o){if(""===i)continue;r.added(i.startsWith("+")?i.slice(1):i,null)}else if("delete"===o){if(""===i)continue;r.removed(i.startsWith("-")?i.slice(1):i,null)}}}r?.finish();let i=t.filter(e=>e.rows.length>0);return i.length>0?i:null}function sP(e){if(!e||"object"!=typeof e||Array.isArray(e))return null;let t=e.files;if(!Array.isArray(t))return null;let r=[];for(let e of t){if(!e||"object"!=typeof e||Array.isArray(e)||"string"!=typeof e.filePath||"string"!=typeof e.diff)continue;let t=sN();for(let r of e.diff.split(/\r?\n/)){let e=r.match(/^([+\- ])\s*(\d+) (.*)$/);if(!e)continue;let[,n,o,i]=e,s=Number(o);"+"===n?t.added(i,s):"-"===n?t.removed(i,s):t.context(i,s)}t.finish();let n="add"===e.operation,o="delete"===e.operation;r.push({oldPath:n?void 0:e.filePath,newPath:o?void 0:e.movePath??e.filePath,rows:t.rows})}let n=r.filter(e=>e.rows.length>0);return n.length>0?n:null}function sF(e){return e?e.map(e=>e.newPath).filter(e=>"string"==typeof e&&e.length>0):[]}function sD(e){return"assistant"===e.role&&sm(e).answerBlocks.some(e=>"image"===e.type||"text"===e.type&&e.text.trim().length>0)}function sH(e){return"assistant"===e.role?sx(e).length>0:"custom"===e.role}function sO(e,t,r={}){let n={...e,content:t};return r.omitUsage&&(n.usage=void 0),n}function sB(e,t,r,n){let o=new Map(n);for(let t of e)"toolResult"===t.role&&o.set(t.toolCallId,t);let i=-1;for(let t=e.length-1;t>=0;t--)if("user"===e[t].role){i=t;break}let s=new Map,l=0;e.forEach((e,t)=>{("user"===e.role||"assistant"===e.role)&&s.set(t,l++)});let a=[];for(let n=0;n<e.length;){let i,s=e[n],l="custom"===s.role&&"compaction"===s.customType,d=0===n&&"user"!==s.role&&!l;if("user"!==s.role&&!l&&!d){a.push({kind:"single",idx:n}),n+=1;continue}let c=d?-1:n,u=n+1;for(;u<e.length&&"user"!==e[u].role;)u+=1;let p=function(e,t,r){for(let n=r-1;n>t;n--)if(sD(e[n]))return n;for(let n=r-1;n>t;n--)if(e[n]?.role==="assistant")return n;return -1}(e,c,u),h=d&&p>=0&&!sD(e[p])&&!sh(e[p])?-1:p;if(-1===h){let r=Array.from({length:u-c-1},(e,t)=>c+1+t).filter(t=>sH(e[t])),i=sS(e,t,r,o);if(d&&0===i.length){for(let t=0;t<u;t+=1)"toolResult"!==e[t].role&&a.push({kind:"single",idx:t});n=u;continue}a.push({kind:"turn",userIdx:c,endIdx:u,startsCompactionTurn:l,finalAssistantIdx:h,visibleProcessIndices:r,processBlocks:i,processSegments:sb(i),finalAnswerMessage:null,writtenFiles:void 0}),n=u;continue}let g=[];for(let e=c+1;e<h;e++)g.push(e);let x=g.filter(t=>sH(e[t])),f=e[h],m=sm(f),v=m.processBlocks.length>0?sO(f,m.processBlocks,{omitUsage:!0}):null,y=m.answerBlocks.length>0||sh(f)?sO(f,m.answerBlocks):null,b=sS(e,t,x,o);if(v&&(b=b.concat(sw(f,{messageIndex:h,entryId:t[h],toolResults:o}).processBlocks)),y){let t=[];for(let r=c+1;r<=h;r++){let n=e[r];if(n?.role==="assistant")for(let e of n.content??[])t.push(e)}i=function(e,t,r){let n=new Set,o=[];for(let i of e){if("toolCall"!==i.type||!function(e){let t,r;return"write"===(t=e.toLowerCase())||t.startsWith("write_")||t.endsWith(".write")||t.endsWith("_write")||"edit"===(r=e.toLowerCase())||r.startsWith("edit_")||r.endsWith(".edit")||r.endsWith("_edit")||r.includes("str_replace")||r.includes("replace_editor")}(i.toolName)&&!sE(i.toolName))continue;let e=t?.get(i.toolCallId);if(e&&!e.isError)for(let t of sE(i.toolName)?function(e,t){let r=t?.details,n=function(e,t){let r=new Set;if(t&&"object"==typeof t&&!Array.isArray(t)){let e=t.preview;if(e&&"object"==typeof e&&!Array.isArray(e)){let t=e.files;if(Array.isArray(t))for(let e of t)!(!e||"object"!=typeof e||Array.isArray(e))&&"delete"===e.operation&&"string"==typeof e.filePath&&e.filePath.length>0&&r.add(e.filePath)}}for(let t of s$(e).matchAll(/^\*\*\* Delete File: (.+)$/gm)){let e=(t[1]??"").trim();e&&r.add(e)}return r}(e,r),o=function(e){if(!sW(e)||!sW(e.result))return null;let t=e.result.appliedFiles;return Array.isArray(t)?t.filter(e=>"string"==typeof e&&e.length>0):null}(r);if(o)return o.filter(e=>!n.has(e));if(sL(r))return[];if(r&&"object"==typeof r&&!Array.isArray(r)){let e=sF(sP(r.preview));if(e.length>0)return e}return sF(sA(s$(e)))}(i.input,e):[function(e){if(!e)return null;let t=e.file_path??e.path;return"string"==typeof t&&t.length>0?t:null}(i.input)]){if(!t)continue;let e=function(e,t){let r;if(!e)return null;let n=/^[a-zA-Z]:[\\/]/.test(e)||e.startsWith("\\\\")||void 0!==t&&(/^[a-zA-Z]:[\\/]/.test(t)||t.startsWith("\\\\")),o=e=>n?e.replace(/\\/g,"/"):e,i=o(e),s=t?o(t).replace(/\/+$/,""):void 0,l=/^[a-zA-Z]:\//.test(i),a=i.startsWith("//");if(l||a)r=i;else if(i.startsWith("/")){let e=s?.match(/^([a-zA-Z]:)(?:\/|$)/)?.[1]??s?.match(/^(\/\/[^/]+\/[^/]+)(?:\/|$)/)?.[1];r=e?`${e}${i}`:i}else{if(!s)return null;r=`${s}/${i}`}return sT(r)}(t,r);e&&(n.has(e)||(n.add(e),o.push({filePath:e})))}}return o}(t,o,r)}a.push({kind:"turn",userIdx:c,endIdx:u,startsCompactionTurn:l,finalAssistantIdx:h,visibleProcessIndices:x,processBlocks:b,processSegments:sb(b),finalAnswerMessage:y,writtenFiles:i}),n=u}return{toolResultsMap:o,lastUserIdx:i,visibleRefIndexByMessage:s,items:a}}var sU=r(19447),s_=r(32316),sq=r(5259),sK=r(37330),sV=r(47075),sJ=r(73168),sY=r(74303),sG=r(80735),sX=r(98573),sZ=r(73871),sQ=r(61749),s0=r(90599),s1=r(30956),s2=r(89120),s6=r(75646),s4=r(19241),s5=r(91044),s3=r(25730),s8=r(80655),s7=r(47543),s9=r(18743),le=r(40426),lt=r(32062),lr=r(78667),ln=r(37006),lo=r(83372),li=r(67761),ls=r(30387),ll=r(44614),la=r(10204),ld=r(1120),lc=r(93769),lu=r(580),lp=r(929),lh=r(70318);function lg(e,t,r){let n=function(e){let t=0xdeadbeef,r=0x41c6ce57;for(let n=0;n<e.length;n++){let o=e.charCodeAt(n);t=Math.imul(t^o,0x9e3779b1),r=Math.imul(r^o,0x5f356495)}return t=Math.imul(t^t>>>16,0x85ebca6b)^Math.imul(r^r>>>13,0xc2b2ae35),(0x100000000*(2097151&(r=Math.imul(r^r>>>16,0x85ebca6b)^Math.imul(t^t>>>13,0xc2b2ae35)))+(t>>>0)).toString(36)}(e);if(r&&!t){let o=r.get(n);if(void 0!==o)return{id:n,text:o,tail:t};if(r.set(n,e),r.size>2e3){let e=r.keys().next().value;void 0!==e&&r.delete(e)}}return{id:n,text:e,tail:t}}sq.A.registerLanguage("bash",sK.A),sq.A.alias("bash",["shell","sh","zsh"]),sq.A.registerLanguage("c",sV.A),sq.A.alias("c",["h"]),sq.A.registerLanguage("cpp",sJ.A),sq.A.alias("cpp",["cc","cxx","c++"]),sq.A.registerLanguage("csharp",sY.A),sq.A.alias("csharp",["cs","c#"]),sq.A.registerLanguage("css",sG.A),sq.A.registerLanguage("dart",sX.A),sq.A.registerLanguage("diff",sZ.A),sq.A.registerLanguage("docker",sQ.A),sq.A.alias("docker",["dockerfile"]),sq.A.registerLanguage("go",s0.A),sq.A.alias("go",["golang"]),sq.A.registerLanguage("graphql",s1.A),sq.A.alias("graphql",["gql"]),sq.A.registerLanguage("ini",s2.A),sq.A.alias("ini",["cfg","properties"]),sq.A.registerLanguage("java",s6.A),sq.A.registerLanguage("javascript",s4.A),sq.A.alias("javascript",["js","mjs","cjs"]),sq.A.registerLanguage("json",s5.A),sq.A.registerLanguage("json5",s3.A),sq.A.registerLanguage("jsx",s8.A),sq.A.registerLanguage("kotlin",s7.A),sq.A.alias("kotlin",["kt","kts"]),sq.A.registerLanguage("lua",s9.A),sq.A.registerLanguage("markup",le.A),sq.A.alias("markup",["html","xml","svg","mathml","xhtml"]),sq.A.registerLanguage("markdown",lt.A),sq.A.alias("markdown",["md","mdx"]),sq.A.registerLanguage("php",lr.A),sq.A.registerLanguage("powershell",ln.A),sq.A.alias("powershell",["ps1","pwsh"]),sq.A.registerLanguage("python",lo.A),sq.A.alias("python",["py","python3"]),sq.A.registerLanguage("ruby",li.A),sq.A.alias("ruby",["rb"]),sq.A.registerLanguage("rust",ls.A),sq.A.alias("rust",["rs"]),sq.A.registerLanguage("scala",ll.A),sq.A.registerLanguage("sql",la.A),sq.A.registerLanguage("swift",ld.A),sq.A.registerLanguage("toml",lc.A),sq.A.registerLanguage("tsx",lu.A),sq.A.registerLanguage("typescript",lp.A),sq.A.alias("typescript",["ts"]),sq.A.registerLanguage("yaml",lh.A),sq.A.alias("yaml",["yml"]);let lx=/^ {0,3}(`{3,}|~{3,})/;var lf=r(73342),lm=r(94764),lv=r(63835),ly=r(54152),lb=r(84678),lk=r(98164);let lj={...lm.j,attributes:{...lm.j.attributes,code:[["className",/^language-./,"math-inline","math-display"]]},protocols:{...lm.j.protocols,href:[...lm.j.protocols?.href??[],"file"]},strip:[...lm.j.strip||[],"iframe","object","style","form"]};function lw(e){return/^file:/i.test(e)?e:(0,s_.Lv)(e)}function lS(e){return String(e).toLowerCase().replace(/[^a-z0-9\u4e00-\u9fff]+/g,"-").replace(/^-+|-+$/g,"")}let lC=/(?<![\\`])`((?:[^`\n]|\\`)+?)(?<![\\`])`(?!`)/g;function lz(e){let t=e.includes("\r\n")?"\r\n":"\n",r=e.split(/\r?\n/),n=[],o=null,i=0,s=null,l=new Map;for(let e=0;e<r.length;e++){var a,d;let t=r[e];if(s){n.push(t),RegExp(`</${s}\\s*>`,"i").test(t)&&(s=null);continue}let c=t.match(/^ {0,3}(`{3,}|~{3,})/);if(c){let e=c[1][0],r=c[1].length;o?e===o.marker&&r>=o.size&&(o=null):o={marker:e,size:r},i=0,n.push(t);continue}if(o){n.push(t);continue}let u=t.match(/<(code|pre|script|style)\b/i);if(u){let e=u[1].toLowerCase(),r=t.slice((u.index??0)+u[0].length);RegExp(`</${e}\\s*>`,"i").test(r)||(s=e),i=0,n.push(t);continue}if(/^(?: {4}|\t)/.test(t)||""===t.trim()){i=0,n.push(t);continue}if(i||(t=t.replace(lC,(e,t)=>{let r=t.replace(/\\`/g,"`");if(r===t)return e;let n="`".repeat(Math.max(...r.match(/`+/g)?.map(e=>e.length)??[0])+1);return`${n}${r}${n}`})),i||t.includes("`")){i=function(e,t){let r=t;for(let t=0;t<e.length;){if("`"!==e[t]){t++;continue}let n=t+1;for(;"`"===e[n];)n++;let o=n-t;0===r?r=o:o===r&&(r=0),t=n}return r}(t,i),n.push(t);continue}let p=t.match(/^([ ]{0,3})\\\[[ \t]*(.+?)[ \t]*\\\][ \t]*$/);if(p){let e=p[2].trim();if(e){n.push(`${p[1]}$$`,`${p[1]}${e}`,`${p[1]}$$`);continue}}let h=t.match(/^([ ]{0,3})\[[ \t]*(.+?)[ \t]*\][ \t]*$/);if(h){let e=h[2].trim();if(a=e,/\\[A-Za-z]+/.test(a)&&!/\b(?:https?|file|mailto):|\b[A-Za-z]:\\|^\\\\/i.test(a)){n.push(`${h[1]}$$`,`${h[1]}${e}`,`${h[1]}$$`);continue}}let g=t.match(/^([ ]{0,3})\\\[[ \t]*$/);if(g){let t=function(e,t){for(let r=t;r<e.length;r++){let t=e[r];if(/^ {0,3}\\\][ \t]*$/.test(t))return r;if(/^ {0,3}(`{3,}|~{3,})/.test(t)||/^ {0,3}\\\[[ \t]*$/.test(t)||/<(code|pre|script|style)\b/i.test(t))break}return -1}(r,e+1);if(-1!==t){n.push(`${g[1]}$$`,...r.slice(e+1,t).map(e=>lR(e,g[1])),`${g[1]}$$`),e=t;continue}}let x=t.match(/^([ \t]{0,3})\$\$(.+)\$\$[ \t]*$/);if(x){let e=x[2].trim();if(e){n.push(`${x[1]}$$`,`${x[1]}${e}`,`${x[1]}$$`);continue}}let f=t.match(/^([ \t]{0,3})\$\$(.+)$/);if(f){let t=f[1],o=f[2].trimEnd();if(o&&!o.includes("$$")){let i=lT(r,e+1,t,l);if(i){n.push(`${t}$$`,`${t}${o}`);for(let o=e+1;o<i.index;o++)n.push(lR(r[o],t));i.content&&n.push(`${t}${i.content}`),n.push(`${t}$$`),e=i.index;continue}}}let m=t.match(/^([ \t]{0,3})\$\$\s*$/);if(m){let t=m[1],o=lT(r,e+1,t,l);if(o&&(o.glued||""!==t)){n.push(`${t}$$`);for(let i=e+1;i<o.index;i++)n.push(lR(r[i],t));o.content&&n.push(`${t}${o.content}`),n.push(`${t}$$`),e=o.index;continue}}n.push((d=t,/^\s{0,3}\[[^\]]+\]:/.test(d)||/]\s*\(/.test(d)||/<(?:!--|\/?[A-Za-z][^>]*>)/.test(d)||/\b(?:https?|file|mailto):/i.test(d)||/\b[A-Za-z]:\\/.test(d)?d:d.replace(/(?<!\\)\\\(([^`\r\n$]+?)(?<!\\)\\\)/g,(e,t)=>t.trim()?`$${t}$`:e)))}return n.join(t)}function lT(e,t,r,n){let o=n.get(r);if(void 0!==o&&t<o)return null;for(let o=t;o<e.length;o++){var i,s,l,a;let t=e[o];if(i=t,""===(s=r)?/^ {0,3}\$\$\s*$/.test(i):i.startsWith(s)&&/^\$\$\s*$/.test(i.slice(s.length)))return{index:o,content:"",glued:!1};if(l=t,/^ {0,3}(`{3,}|~{3,})/.test(l)||/^[ \t]*(?:[-+*]|\d{1,9}[.)])(?:[ \t]+|$)/.test(l)||/^ {0,3}#{1,6}(?:[ \t]+|$)/.test(l)||/^ {0,3}>/.test(l)||/<(code|pre|script|style)\b/i.test(l)||(a=t,/^ {0,3}\$\$(?:\S|[ \t]+\S)/.test(a)))return n.set(r,o),null;let d=function(e,t){if(!e.startsWith(t))return null;let r=e.slice(t.length).match(/^(.+?)\$\$\s*$/);if(!r)return null;let n=r[1].trimEnd();return n&&!n.includes("$$")?n:null}(t,r);if(null!==d)return{index:o,content:d,glued:!0}}return n.set(r,e.length),null}function lR(e,t){if(!t||!e||e.startsWith(" "))return e;let r=e.match(/^ */)?.[0].length??0;return r>=t.length?e:`${t.slice(r)}${e}`}let lI=[[ly.A,["yaml"]],[lb.A,{singleTilde:!1}],lk.A];ly.A,lb.A,lk.A;let lM=[[lv.A,lj],[lf.A,{throwOnError:!1,strict:!1}]];lv.A,lf.A;let lE={'pre[class*="language-"]':{color:"var(--text)",background:"transparent"},'code[class*="language-"]':{color:"var(--text)",background:"transparent"},comment:{color:"var(--syntax-comment, var(--text-dim))",fontStyle:"italic"},prolog:{color:"var(--syntax-comment, var(--text-dim))",fontStyle:"italic"},doctype:{color:"var(--syntax-comment, var(--text-dim))",fontStyle:"italic"},cdata:{color:"var(--syntax-comment, var(--text-dim))"},punctuation:{color:"var(--text-muted)"},operator:{color:"var(--text-muted)"},string:{color:"var(--syntax-string, var(--accent-orange))"},char:{color:"var(--syntax-string, var(--accent-orange))"},builtin:{color:"var(--syntax-string, var(--accent-orange))"},"attr-value":{color:"var(--syntax-string, var(--accent-orange))"},keyword:{color:"var(--syntax-keyword, var(--accent))"},atrule:{color:"var(--syntax-keyword, var(--accent))"},property:{color:"var(--accent-blue)"},"attr-name":{color:"var(--accent-blue)"},variable:{color:"var(--accent-blue)"},parameter:{color:"var(--accent-blue)"},constant:{color:"var(--accent-blue)"},number:{color:"var(--syntax-number, var(--accent-blue))"},boolean:{color:"var(--syntax-number, var(--accent-blue))"},symbol:{color:"var(--syntax-number, var(--accent-blue))"},function:{color:"var(--syntax-function, var(--accent-green))"},"class-name":{color:"var(--syntax-function, var(--accent-green))"},"maybe-class-name":{color:"var(--syntax-function, var(--accent-green))"},tag:{color:"var(--accent-red)"},selector:{color:"var(--accent-red)"},regex:{color:"var(--accent-red)"},entity:{color:"var(--accent-red)"},deleted:{color:"var(--accent-red)"},inserted:{color:"var(--accent-green)"},important:{color:"var(--accent-orange)",fontWeight:"bold"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"}};function l$(e){return e.replace(/[*_`~]/g,"").trim()}function lW(e,t){return e.length>t?e.slice(0,t).trimEnd()+"…":e}function lL(e){return e.replace(/^(我要|我想我?|你想要?|你想我?|你想要?|想要?|需要|你来|你来?|用|使用|选|选择|我|你)\s*/u,"").replace(/[吗吧呢]?$/u,"").replace(/[??,,。.!!、]$/gu,"").trim()}function lN({segments:e,onPick:t,onOpenFile:r,cwd:i,innerRef:s}){let{t:l}=(0,Y.s)(),[a,d]=(0,o.useState)([]);return((0,o.useEffect)(()=>{let t=!1;return Promise.all(Array.from(new Set(e.flatMap(e=>(function(e){let t=new Set,r=[];for(let n of e.matchAll(/(?:\.[\w-]+\/|[\w-]+\/)+[\w.@-]+\.\w+|\b[A-Za-z0-9_.-]+\.(?:ts|tsx|js|jsx|mjs|cjs|md|mdx|json|py|go|rs|css|scss|html|sh|yml|yaml|toml|lock|txt|sql|env)\b/gu)){let e=n[0];(e=e.replace(/[),。、;:!!??)>"'`]$/u,"")).length>=3&&!t.has(e)&&(t.add(e),r.push(e))}return r})(e.text)))).map(e=>e.startsWith("/")?e:i?oA(i,e):e).map(async e=>{try{return(await fetch(`/api/files/${oW(e)}?type=meta`)).ok?e:null}catch{return null}})).then(e=>{t||d(e.filter(e=>!!e))}),()=>{t=!0}},[e,i]),0===e.length)?null:(0,n.jsxs)("span",{ref:s,style:{display:"flex",flexDirection:"column",gap:3,marginTop:4,width:"fit-content",maxWidth:"100%",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:4,boxShadow:"0 4px 14px rgba(0,0,0,0.14)"},onMouseDown:e=>e.preventDefault(),onClick:e=>e.stopPropagation(),children:[r&&a.length>0&&(0,n.jsx)("span",{style:{display:"flex",flexWrap:"wrap",gap:4},children:a.map(e=>(0,n.jsxs)("button",{type:"button",onClick:t=>{t.stopPropagation(),r(e)},title:l("desktop.openFile"),style:{display:"inline-flex",alignItems:"center",gap:4,padding:"3px 9px",fontSize:12,color:"var(--accent)",background:"color-mix(in srgb, var(--accent) 10%, transparent)",border:"1px solid var(--border)",borderRadius:6,cursor:"pointer",whiteSpace:"nowrap",maxWidth:220,overflow:"hidden",textOverflow:"ellipsis"},children:[(0,n.jsx)(lP,{}),l("desktop.openFile"),": ",e.split("/").pop()]},e))}),e.map((e,r)=>(0,n.jsx)(lA,{segment:e,onPick:t,t:l},r))]})}function lA({segment:e,onPick:t,t:r}){let o=e.options??[{label:r("desktop.quoteReply"),value:""}];return(0,n.jsx)("span",{style:{display:"flex",flexWrap:"wrap",gap:4},children:o.map((r,o)=>(0,n.jsx)("button",{onClick:n=>{var o,i;let s;n.stopPropagation(),t((o=e.text,i=r.value||void 0,s=l$(o).split("\n").map(e=>`> ${e}`).join("\n"),i?`${s}
186
+ `})]})}let on=new Set(["read","bash","powershell","edit","write","grep","find","ls"]);function oo({sessionId:e,onSessionReloaded:t}){let{t:r}=(0,Y.s)(),[i,s]=(0,o.useState)(null),[l,a]=(0,o.useState)(null),[d,c]=(0,o.useState)(null),[u,p]=(0,o.useState)(!1),[h,g]=(0,o.useState)([]),[x,f]=(0,o.useState)(null),[m,v]=(0,o.useState)(!1),y=(0,o.useMemo)(()=>(d??[]).filter(e=>!on.has(e.name)),[d]);(0,o.useEffect)(()=>{let e=!1;return fetch("/api/tools/extension-tools").then(async t=>{let r=await t.json();if(!t.ok||r.error)throw Error(r.error??`HTTP ${t.status}`);e||g(r.disabled??[])}).catch(t=>{e||f(t instanceof Error?t.message:String(t))}),()=>{e=!0}},[]);let b=(0,o.useCallback)(async(r,n)=>{let o=n?h.filter(e=>e!==r):[...new Set([...h,r])];g(o),f(null),v(!0);try{let r=await fetch("/api/tools/extension-tools",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({disabled:o})}),n=await r.json();if(!r.ok||n.error)throw Error(n.error??`HTTP ${r.status}`);g(n.disabled??o),e&&(await tE(e,{type:"reload"}),t())}catch(e){f(e instanceof Error?e.message:String(e))}finally{v(!1)}},[h,t,e]);(0,o.useEffect)(()=>{if(!e)return void c(null);let t=!1;return p(!0),tE(e,{type:"get_tools"}).then(e=>{t||c(e??[])}).catch(()=>{t||c([])}).finally(()=>{t||p(!1)}),()=>{t=!0}},[e]),(0,o.useEffect)(()=>{let e=!1;return fetch("/api/tools/settings").then(async t=>{let r=await t.json();if(!t.ok||r.error)throw Error(r.error??`HTTP ${t.status}`);e||s(r)}).catch(t=>{e||a(t instanceof Error?t.message:String(t))}),()=>{e=!0}},[]);let k=(0,o.useCallback)(async r=>{a(null);try{let n=await fetch("/api/tools/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:r})}),o=await n.json();if(!n.ok||o.error)throw Error(o.error??`HTTP ${n.status}`);s(o),e&&(await tE(e,{type:"reload"}),t())}catch(e){a(e instanceof Error?e.message:String(e))}},[t,e]);return(0,n.jsxs)("div",{style:{padding:16,overflowY:"auto",minHeight:0,flex:1},children:[(0,n.jsxs)(eY,{children:[(0,n.jsx)(eG,{children:(0,n.jsx)(ee,{label:r("desktop.usePowerShell"),description:r("desktop.shellToolDescription"),checked:i?.powerShellEnabled??!1,onChange:e=>void k(e)})}),(0,n.jsx)(eX,{children:(0,n.jsx)("div",{style:{padding:"10px 0",fontSize:12,lineHeight:1.5,color:"var(--text-dim)"},children:i?.isWindows?r("desktop.shellToolWindowsOnly"):l??r("desktop.shellToolMacOnly")})})]}),(0,n.jsxs)(eY,{children:[(0,n.jsxs)(eG,{children:[(0,n.jsx)("div",{style:{padding:"12px 0 4px",fontSize:13,fontWeight:600,color:"var(--text)"},children:r("desktop.extensionToolsTitle")}),(0,n.jsx)("div",{style:{paddingBottom:8,fontSize:11,lineHeight:1.5,color:"var(--text-dim)"},children:r(e?"desktop.extensionToolsHint":"desktop.toolsListNoSession")}),0===y.length&&e&&!u&&(0,n.jsx)("div",{style:{paddingBottom:8,fontSize:11,color:"var(--text-dim)"},children:r("desktop.extensionToolsEmpty")}),y.map(e=>(0,n.jsx)(ee,{label:e.name,description:e.description?.slice(0,140),checked:!h.includes(e.name),onChange:t=>void b(e.name,t)},e.name))]}),(0,n.jsx)(eX,{children:(0,n.jsx)("div",{style:{padding:"8px 0 10px",fontSize:11,lineHeight:1.5,color:x?"var(--status-error)":"var(--text-dim)"},children:x??r(m?"desktop.saving":"desktop.extensionToolsApplyNote")})})]}),(0,n.jsx)(eY,{children:(0,n.jsxs)(eX,{children:[(0,n.jsx)("div",{style:{padding:"12px 0 4px",fontSize:13,fontWeight:600,color:"var(--text)"},children:r("tools.title")}),(0,n.jsx)("div",{style:{paddingBottom:10,fontSize:11,lineHeight:1.5,color:"var(--text-dim)"},children:r(e?"desktop.toolsListHint":"desktop.toolsListNoSession")})]})}),e&&(0,n.jsx)("div",{style:{border:"1px solid var(--border)",borderRadius:8,overflow:"hidden"},children:(0,n.jsx)(or,{loading:u,tools:d,translate:r})})]})}function oi(e){if(!e)return!0;let t=e.replace(/[\u200B-\u200D\uFEFF]/g,"").trim();return/^[((]?\s*no\s+messages\s*[)).\u2026]*$/i.test(t)}function os(e,t=""){let r=te(e.name??"").trim();if(r&&!oi(r))return r;let n=te(e.firstMessage??"").trim();if(n&&!oi(n))return n.slice(0,50);let o=(e.id??"").trim();return o?o.slice(0,12):t}function ol(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function oa(e){return null==e?"—":ol(e)}function od({sessionId:e,cwd:t}){let{t:r}=(0,Y.s)(),[i,s]=(0,o.useState)(null),[l,a]=(0,o.useState)(null),[d,c]=(0,o.useState)(!1);(0,o.useEffect)(()=>{let t=!1;return e?(fetch(`/api/agent/${encodeURIComponent(e)}`).then(e=>e.ok?e.json():null).then(e=>{t||s(e?.state?.contextUsage??null)}).catch(()=>{}),()=>{t=!0}):void s(null)},[e]);let u=(0,o.useCallback)(async()=>{c(!0);try{let e=await fetch("/api/usage");e.ok&&a(await e.json())}catch{}finally{c(!1)}},[]);(0,o.useEffect)(()=>{u()},[u]);let p=(0,o.useMemo)(()=>l?.daily.slice(-14)??[],[l]),h=(0,o.useMemo)(()=>p.reduce((e,t)=>Math.max(e,t.tokens),0),[p]);return(0,n.jsxs)("div",{style:{flex:1,overflow:"auto",minWidth:0,padding:"16px 20px",display:"flex",flexDirection:"column",gap:16},children:[(0,n.jsx)("h3",{style:{margin:0,fontSize:15,fontWeight:600,color:"var(--text)"},children:r("desktop.usage")}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[(0,n.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text-muted)"},children:r("desktop.usageSession")}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[e?(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:12,borderRadius:12,border:"1px solid var(--border)",padding:16},children:i?(0,n.jsx)(n.Fragment,{children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:16},children:[(0,n.jsxs)("svg",{width:72,height:72,viewBox:"0 0 72 72",style:{flexShrink:0},children:[(0,n.jsx)("circle",{cx:36,cy:36,r:30,fill:"none",stroke:"var(--border)",strokeWidth:7}),(0,n.jsx)("circle",{cx:36,cy:36,r:30,fill:"none",stroke:"var(--accent)",strokeWidth:7,strokeLinecap:"round",strokeDasharray:2*Math.PI*30,strokeDashoffset:2*Math.PI*30*(1-Math.min(1,(i.percent??0)/100)),transform:"rotate(-90 36 36)",style:{transition:"stroke-dashoffset 0.4s ease"}}),(0,n.jsx)("text",{x:36,y:41,textAnchor:"middle",fontSize:15,fontWeight:700,fill:"var(--text)",children:null!=i.percent?`${i.percent.toFixed(0)}%`:"?"})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:3},children:[(0,n.jsx)("span",{style:{fontSize:13,color:"var(--text)"},children:r("desktop.usageContext",{used:oa(i.tokens),window:oa(i.contextWindow)})}),(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)"},children:r("desktop.usageContextHint")})]})]})}):(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)"},children:r("desktop.usageNoSessionData")})}):(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)"},children:r("desktop.usageNoSession")}),t&&(0,n.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t})]})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[(0,n.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text-muted)"},children:r("desktop.usageGlobal")}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(140px, 1fr))",gap:10},children:[{label:r("desktop.usageTotal"),value:oa(l?.totalTokens),sub:l?`${l.totalSessions} ${r("desktop.usageSessions")}`:"…"},{label:r("desktop.usageMessages"),value:l?String(l.messageCount):"…",sub:r("desktop.usageMessagesHint")}].map(e=>(0,n.jsxs)("div",{style:{borderRadius:12,border:"1px solid var(--border)",padding:"12px 14px",background:"var(--bg-panel)"},children:[(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",marginBottom:4},children:e.label}),(0,n.jsx)("div",{style:{fontSize:18,fontWeight:700,color:"var(--text)"},children:e.value}),(0,n.jsx)("div",{style:{fontSize:10.5,color:"var(--text-dim)",marginTop:2},children:e.sub})]},e.label))}),(0,n.jsxs)("div",{style:{borderRadius:12,border:"1px solid var(--border)",padding:"14px 16px"},children:[(0,n.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",marginBottom:10},children:r("desktop.usageDaily")}),0===p.length?(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)"},children:r(d?"desktop.featuresLoading":"desktop.usageNoData")}):(0,n.jsx)("div",{style:{display:"flex",alignItems:"flex-end",gap:6,height:96,overflowX:"auto"},children:p.map(e=>{let t=h>0?Math.max(4,Math.round(e.tokens/h*72)):4;return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:4,flexShrink:0},children:[(0,n.jsx)("div",{style:{fontSize:9,color:"var(--text-dim)"},children:e.tokens>0?oa(e.tokens):""}),(0,n.jsx)("div",{style:{width:8,height:t,borderRadius:4,background:e.tokens>0?"var(--accent)":"var(--bg-hover)",opacity:e.tokens>0?.85:1},title:`${e.day}: ${oa(e.tokens)}`}),(0,n.jsx)("div",{style:{fontSize:9,color:"var(--text-dim)"},children:e.day.slice(5)})]},e.day)})})]}),(0,n.jsxs)("div",{style:{borderRadius:12,border:"1px solid var(--border)",overflow:"hidden"},children:[(0,n.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",padding:"10px 14px",borderBottom:"1px solid var(--border)"},children:r("desktop.usageTopSessions")}),l&&0===l.sessions.length?(0,n.jsx)("div",{style:{padding:"14px",fontSize:12,color:"var(--text-muted)"},children:r("desktop.usageNoData")}):(l?.sessions??[]).slice(0,12).map(e=>(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"8px 14px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("span",{style:{flex:1,minWidth:0,fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:os({name:e.name,firstMessage:e.firstMessage,id:e.id})}),(0,n.jsx)("span",{style:{flexShrink:0,fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:oa(e.tokens)})]},e.path))]})]})]})]})}function oc(){let{t:e}=(0,Y.s)(),[t,r]=(0,o.useState)(!1),[i,s]=(0,o.useState)("");(0,o.useEffect)(()=>{r(new URLSearchParams(window.location.search).has("piweb_connected")),s(window.location.host)},[]);let l=(0,o.useCallback)(()=>{window.location.href="piweb-switch://manage"},[]);return t?(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",flex:1,minWidth:0,minHeight:0,overflowY:"auto"},children:[(0,n.jsx)("header",{style:{padding:"18px 22px 14px",borderBottom:"1px solid var(--border)"},children:(0,n.jsx)("h1",{style:{margin:0,fontSize:16,fontWeight:700,color:"var(--text)"},children:e("desktop.server")})}),(0,n.jsxs)("div",{style:{padding:"18px 22px",display:"flex",flexDirection:"column",gap:14},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"12px 14px",borderRadius:10,background:"var(--bg-hover)",border:"1px solid var(--border)"},children:[(0,n.jsx)(N.X,{size:18,color:"var(--accent)"}),(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)"},children:e("desktop.serverCurrent")}),(0,n.jsx)("div",{style:{fontSize:14,fontWeight:600,color:"var(--text)",fontFamily:"var(--font-mono)",wordBreak:"break-all"},children:i})]})]}),(0,n.jsxs)("button",{type:"button",onClick:l,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:8,padding:"10px 16px",borderRadius:10,background:"linear-gradient(135deg, var(--accent), var(--accent-hover, var(--accent)))",color:"var(--accent-fg)",fontSize:14,fontWeight:600,cursor:"pointer",border:"none"},children:[(0,n.jsx)(tl.o,{size:16}),e("desktop.serverSwitch")]}),(0,n.jsx)("p",{style:{margin:0,fontSize:12.5,lineHeight:1.7,color:"var(--text-muted)"},children:e("desktop.serverSwitchHint")})]})]}):null}let ou=[{id:"server",labelKey:"desktop.server",Icon:N.X},{id:"display",labelKey:"desktop.display",Icon:A.V},{id:"chat",labelKey:"desktop.chat",Icon:P.W},{id:"models",labelKey:"desktop.models",Icon:E.f},{id:"skills",labelKey:"desktop.skills",Icon:F.B},{id:"plugins",labelKey:"desktop.plugins",Icon:D.F},{id:"proxy",labelKey:"desktop.proxy",Icon:H.l},{id:"features",labelKey:"desktop.features",Icon:x.l},{id:"logs",labelKey:"desktop.logs",Icon:j.B},{id:"snippets",labelKey:"desktop.snippets",Icon:O.c},{id:"usage",labelKey:"desktop.usage",Icon:B._},{id:"mcp",labelKey:"desktop.mcp",Icon:U.b},{id:"subagents",labelKey:"desktop.subagents",Icon:_.d},{id:"tools",labelKey:"desktop.tools",Icon:U.b},{id:"backup",labelKey:"desktop.backup",Icon:q.W},{id:"import",labelKey:"desktop.importSessions",Icon:M.z}];function op({initialTab:e="models",cwd:t,sessionId:r,onCloseAction:i,onModelsSavedAction:s,onSessionReloadedAction:l,onSessionsChanged:a}){let d=tp(),{t:c}=(0,Y.s)(),[u,p]=(0,o.useState)("skills"===e||"plugins"===e?t?e:"display":e),[h,x]=(0,o.useState)(!1);(0,o.useEffect)(()=>{x(new URLSearchParams(window.location.search).has("piweb_connected"))},[]);let f=h?ou:ou.filter(({id:e})=>"server"!==e),[m,v]=(0,o.useState)(!1),[y,b]=(0,o.useState)(null),k=(0,o.useRef)(new Set),j=(0,o.useCallback)(e=>(k.current.add(e),()=>{k.current.delete(e)}),[]),w=(0,o.useCallback)(async()=>{if(!m){v(!0),b(null);try{let e=(await Promise.allSettled([...k.current].map(e=>e()))).find(e=>"rejected"===e.status);if(e)throw e.reason;i()}catch(e){b(e instanceof Error?e.message:String(e))}finally{v(!1)}}},[m,i]);return L(!m,()=>{w()}),(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:1e3,background:"rgba(0,0,0,0.35)",display:"flex",alignItems:"center",justifyContent:"center"},children:(0,n.jsxs)("section",{role:"dialog","aria-modal":"true","aria-label":c("desktop.settings"),className:"settings-modal",style:{width:d?"calc(100vw - 16px)":1e3,maxWidth:"calc(100vw - 16px)",height:d?"calc(100dvh - 16px)":"80vh",maxHeight:"calc(100dvh - 16px)",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,display:"flex",flexDirection:"column",boxShadow:"0 8px 32px rgba(0,0,0,0.18)",overflow:"hidden"},children:[(0,n.jsxs)("header",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 18px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10,minWidth:0},children:[(0,n.jsx)("span",{style:{fontSize:15,fontWeight:700,color:"var(--text)"},children:c("desktop.settings")}),"models"===u?(0,n.jsx)("code",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:"~/.pi/agent/models.json"}):t&&(0,n.jsx)("code",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t})]}),(0,n.jsx)("button",{type:"button",onClick:()=>{w()},disabled:m,title:c("desktop.closeSettings"),"aria-label":c("desktop.closeSettings"),style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",padding:4,display:"flex"},children:(0,n.jsx)(g.X,{size:18,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:d?"column":"row",minHeight:0,overflow:"hidden",pointerEvents:m?"none":void 0},children:[(0,n.jsx)("nav",{"aria-label":c("desktop.settingsSections"),style:{display:"flex",flexDirection:d?"row":"column",gap:4,width:d?"100%":150,padding:8,flexShrink:0,minWidth:0,background:"var(--bg-panel)",borderRight:d?"none":"1px solid var(--border)",borderBottom:d?"1px solid var(--border)":"none",overflowX:d?"auto":void 0,overflowY:d?"hidden":void 0,WebkitOverflowScrolling:d?"touch":void 0},children:f.filter(({id:e})=>!(d&&"import"===e)).map(({id:e,labelKey:r,Icon:o})=>{let i=("skills"===e||"plugins"===e)&&!t,s=u===e;return(0,n.jsxs)("button",{type:"button",disabled:i,onClick:()=>p(e),"aria-current":s?"page":void 0,style:{display:"flex",alignItems:"center",gap:8,flex:d?"0 0 auto":void 0,whiteSpace:"nowrap",width:d?void 0:"100%",padding:"8px 10px",border:"none",borderRadius:6,background:s?"var(--bg-selected)":"none",color:s?"var(--text)":"var(--text-muted)",cursor:i?"not-allowed":"pointer",opacity:i?.4:1,fontSize:12,fontWeight:s?600:400,textAlign:"left",transition:"background 0.12s, color 0.12s"},title:c(r),"aria-label":c(r),onMouseEnter:e=>{s||i||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{s||(e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)")},children:[(0,n.jsx)(o,{size:16,"aria-hidden":"true"}),!d&&(0,n.jsx)("span",{children:c(r)})]},e)})}),(0,n.jsx)("div",{style:{display:"server"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(oc,{})}),(0,n.jsx)("div",{style:{display:"display"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(eV,{})}),(0,n.jsx)("div",{style:{display:"chat"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(eo,{})}),(0,n.jsx)("div",{style:{display:"models"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(na,{embedded:!0,sessionId:r,cwd:t,onSavedAction:s,onRegisterFlush:j})}),t&&(0,n.jsx)("div",{style:{display:"skills"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(nN,{cwd:t,embedded:!0,sessionId:r})}),t&&(0,n.jsx)("div",{style:{display:"plugins"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(nS,{cwd:t,sessionId:r,embedded:!0,onReloadedAction:l})}),(0,n.jsx)("div",{style:{display:"proxy"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(nT,{})}),(0,n.jsx)("div",{style:{display:"features"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(ti,{})}),(0,n.jsx)("div",{style:{display:"logs"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(nP,{})}),(0,n.jsx)("div",{style:{display:"snippets"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(nH,{})}),(0,n.jsx)("div",{style:{display:"usage"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(od,{sessionId:r,cwd:t})}),(0,n.jsx)("div",{style:{display:"mcp"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(tO,{sessionId:r})}),(0,n.jsx)("div",{style:{display:"subagents"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(n9,{cwd:t??"",sessionId:r,onClose:i})}),(0,n.jsx)("div",{style:{display:"tools"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(oo,{sessionId:r,onSessionReloaded:l})}),(0,n.jsx)("div",{style:{display:"backup"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(X,{cwd:t})}),(0,n.jsx)("div",{style:{display:"import"===u?"flex":"none",flex:1,minWidth:0,minHeight:0,overflowY:"auto"},children:(0,n.jsx)(tg,{onSessionsChanged:a})})]}),y&&(0,n.jsx)("div",{style:{padding:"6px 18px",borderTop:"1px solid var(--border)",color:"var(--status-error)",fontSize:11},children:y})]})})}function oh(e,t){if(e.size!==t.size)return!1;for(let r of e)if(!t.has(r))return!1;return!0}async function og(e){let t=e?`?path=${encodeURIComponent(e)}`:"",r=await fetch(`/api/cwd/browse${t}`),n=await r.json();if(!r.ok||n.error)throw Error(n.error??`HTTP ${r.status}`);return n}function ox(){return(0,n.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.3","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M1.5 3h4l1.5 2h7.5v7.5h-13z"})})}function of(){return(0,n.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),(0,n.jsx)("path",{d:"M2 9h12"}),(0,n.jsx)("circle",{cx:"11.5",cy:"11",r:"0.6",fill:"currentColor",stroke:"none"})]})}function om({onCancel:e,onSelect:t,initialPath:r,busy:i=!1,error:s}){let l,{t:a}=(0,Y.s)(),[d,c]=(0,o.useState)(null),[u,h]=(0,o.useState)(""),[g,x]=(0,o.useState)(null),[f,m]=(0,o.useState)([]),[v,y]=(0,o.useState)(null),[b,k]=(0,o.useState)(null),[j,w]=(0,o.useState)(!0),[S,C]=(0,o.useState)(""),z=(0,o.useCallback)(async e=>{w(!0),k(null),C("");try{let t=await og(e),r=t.path??e??"/";h(r),x(t.parentPath??null),m(t.directories??[]),y(t.drives??null)}catch(e){k(e instanceof Error?e.message:String(e))}finally{w(!1)}},[]);(0,o.useEffect)(()=>{c(document.body),z(r||void 0)},[r,z]);let T=!!u&&!i,R=!!g||/^[a-zA-Z]:[\\/]?$/.test(u);return d?(0,p.createPortal)((0,n.jsx)("div",{className:"directory-picker-backdrop",role:"dialog","aria-modal":"true","aria-label":a("directoryPicker.selectDirectory"),onKeyDown:t=>{"Escape"!==t.key||i||e()},style:{position:"fixed",inset:0,zIndex:1e3,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.35)"},children:(0,n.jsxs)("div",{className:"directory-picker-panel",style:{width:520,maxWidth:"calc(100vw - 16px)",height:"min(620px, calc(100dvh - 16px))",maxHeight:"calc(100dvh - 16px)",display:"flex",flexDirection:"column",overflow:"hidden",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,boxShadow:"0 8px 32px rgba(0,0,0,0.18)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",flexShrink:0,padding:"12px 18px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("div",{style:{minWidth:0,flex:1},children:(0,n.jsx)("div",{style:{color:"var(--text)",fontWeight:700,fontSize:15},children:a("directoryPicker.selectDirectory")})}),(0,n.jsx)("button",{type:"button",onClick:e,disabled:i,title:a("i18n.close"),"aria-label":a("i18n.close"),style:{padding:"2px 6px",border:0,background:"none",color:"var(--text-muted)",fontSize:20,lineHeight:1,cursor:i?"default":"pointer",opacity:i?.5:1},children:"\xd7"})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexShrink:0,padding:"10px 14px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("button",{className:"directory-picker-back",type:"button",onClick:()=>void z(g??void 0),disabled:j||!R,title:a("directoryPicker.goToParent"),"aria-label":a("directoryPicker.goToParent"),style:{width:36,height:36,padding:0,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-hover)",color:"var(--text-muted)",cursor:R?"pointer":"default",opacity:R?1:.45},children:(0,n.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:"m18 15-6-6-6 6"})})}),(0,n.jsx)("div",{title:u,style:{minWidth:0,flex:1,height:36,display:"flex",alignItems:"center",padding:"0 10px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text-muted)",fontFamily:"var(--font-mono)",fontSize:12,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:u||a("directoryPicker.loadingDirectories")})]}),(0,n.jsxs)("div",{className:"directory-picker-list",style:{flex:1,minHeight:0,overflow:"auto",padding:"8px 10px"},children:[j?(0,n.jsx)("div",{style:{padding:8,color:"var(--text-dim)",fontSize:11},children:a("directoryPicker.loadingDirectories")}):null!==v?(0,n.jsx)(n.Fragment,{children:v.length>0?v.map(e=>(0,n.jsxs)("button",{className:"directory-picker-entry",type:"button",onClick:()=>void z(e.path),title:e.path,style:{width:"100%",minHeight:34,display:"flex",alignItems:"center",gap:7,padding:"6px 8px",border:0,borderRadius:5,background:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontFamily:"var(--font-mono)",fontSize:11},children:[(0,n.jsx)(of,{}),(0,n.jsx)("span",{children:e.name})]},e.path)):(0,n.jsx)("div",{style:{padding:8,color:"var(--text-dim)",fontSize:11},children:a("directoryPicker.noDrives")})}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("input",{type:"text",value:S,onChange:e=>C(e.target.value),placeholder:a("directoryPicker.filterPlaceholder"),"aria-label":a("directoryPicker.filterPlaceholder"),style:{width:"100%",boxSizing:"border-box",marginBottom:6,padding:"5px 9px",border:"1px solid var(--border)",borderRadius:5,background:"var(--bg-panel)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:11,outline:"none"}}),(l=function(e,t){if(null===t||""===t)return[...e];let r=t.trim().toLowerCase();return r?e.filter(e=>e.name.toLowerCase().includes(r)):[...e]}(f,S)).length>0?l.map(e=>(0,n.jsxs)("button",{className:"directory-picker-entry",type:"button",onClick:()=>void z(e.path),title:e.path,style:{width:"100%",minHeight:30,display:"flex",alignItems:"center",gap:7,padding:"5px 8px",border:0,borderRadius:5,background:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontFamily:"var(--font-mono)",fontSize:11},children:[(0,n.jsx)(ox,{}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]},e.path)):(0,n.jsx)("div",{style:{padding:8,color:"var(--text-dim)",fontSize:11},children:a(S.trim()?"directoryPicker.noMatchingDirectories":"directoryPicker.noSubdirectories")})]}),(b||s)&&(0,n.jsx)("div",{style:{padding:"8px",color:"var(--status-error)",fontSize:11},children:b??s})]}),(0,n.jsxs)("div",{className:"directory-picker-footer",style:{display:"flex",justifyContent:"flex-end",alignItems:"center",gap:10,flexShrink:0,padding:"10px 18px",borderTop:"1px solid var(--border)"},children:[(0,n.jsx)("button",{className:"directory-picker-action",type:"button",onClick:e,disabled:i,style:{padding:"6px 14px",border:"1px solid var(--border)",borderRadius:6,background:"none",color:"var(--text-muted)",cursor:i?"default":"pointer",fontSize:13},children:a("i18n.cancel")}),(0,n.jsx)("button",{className:"directory-picker-action",type:"button",onClick:()=>t(u),disabled:!T,title:a("directoryPicker.selectCurrentDirectory"),style:{padding:"6px 16px",border:0,borderRadius:6,background:"var(--accent)",color:"var(--accent-fg)",fontSize:13,fontWeight:600,opacity:T?1:.6,cursor:T?"pointer":"default"},children:a(i?"i18n.checking":"directoryPicker.selectThisFolder")})]})]})}),d):null}var ov=r(63256),oy=r(30515),ob=r(32970),ok=r(69248),oj=r(6513);function ow(e,t){return`url(/catppuccin-icons/${e}/${t}.svg)`}function oS({icon:e,size:t=14}){let r={"--catppuccin-icon-light":ow("latte",e),"--catppuccin-icon-dark":ow("mocha",e),width:t,height:t};return(0,n.jsx)("span",{className:"catppuccin-file-icon",style:r,"aria-hidden":"true"})}let oC={".github":"github",".git":"git",".vscode":"vscode",".next":"next",".nuxt":"nuxt",".storybook":"storybook",".turbo":"turbo",".yarn":"yarn",".husky":"husky",".cursor":"cursor",api:"api",app:"app",assets:"assets",components:"components",config:"config",docs:"docs",examples:"examples",hooks:"hooks",lib:"lib",node_modules:"node",pages:"routes",public:"public",scripts:"scripts",src:"src",styles:"styles",test:"tests",tests:"tests",__tests__:"tests",types:"types",utils:"utils"};function oz({size:e=14,open:t=!1,name:r}){let o=r?oC[r.toLowerCase()]:void 0,i=o?`folder_${o}${t?"_open":""}`:`_${t?"folder_open":"folder"}`;return(0,n.jsx)(oS,{icon:i,size:e})}function oT({size:e=14}){return(0,n.jsx)(oS,{icon:"_file",size:e})}function oR({icon:e,size:t=14}){return(0,n.jsx)(oS,{icon:e,size:t})}let oI={".babelrc":"babel",".dockerignore":"docker-ignore",".env":"env",".eslintignore":"eslint-ignore",".eslintrc":"eslint",".gitattributes":"git",".gitignore":"git",".gitmodules":"git",".npmignore":"npm-ignore",".prettierignore":"prettier-ignore",".prettierrc":"prettier",".yarnrc":"yarn","bun.lock":"bun-lock","bun.lockb":"bun-lock","cargo.lock":"cargo-lock","cargo.toml":"cargo",codeowners:"codeowners","docker-compose.yaml":"docker-compose","docker-compose.yml":"docker-compose",dockerfile:"docker","eslint.config.js":"eslint","eslint.config.mjs":"eslint","eslint.config.ts":"eslint","next.config.js":"next","next.config.mjs":"next","next.config.ts":"next","package-lock.json":"npm-lock","package.json":"package-json","pnpm-lock.yaml":"pnpm-lock","pnpm-workspace.yaml":"pnpm","prettier.config.js":"prettier","prettier.config.mjs":"prettier","prettier.config.ts":"prettier","tailwind.config.js":"tailwind","tailwind.config.ts":"tailwind","tsconfig.json":"typescript-config","vite.config.js":"vite","vite.config.mjs":"vite","vite.config.ts":"vite","vitest.config.ts":"vitest","yarn.lock":"yarn-lock"},oM={astro:"astro",bash:"bash",c:"c",cpp:"cpp",css:"css",csv:"csv",cjs:"javascript",cts:"typescript",dockerfile:"docker",env:"env",go:"go",gql:"graphql",graphql:"graphql",hcl:"terraform",htm:"html",html:"html",ini:"config",java:"java",js:"javascript",json:"json",jsonc:"json",jsonl:"json",jsx:"javascript-react",less:"less",lua:"lua",md:"markdown",mdx:"markdown-mdx",mjs:"javascript",mts:"typescript",pdf:"pdf",php:"php",py:"python",rs:"rust",sass:"sass",scss:"sass",sh:"bash",sql:"database",svg:"svg",svelte:"svelte",tf:"terraform",toml:"toml",ts:"typescript",tsx:"typescript-react",txt:"text",vue:"vue",xml:"xml",yaml:"yaml",yml:"yaml",zsh:"bash"};function oE(e,t=14){let r=e.toLowerCase(),o=oI[r];if(o)return(0,n.jsx)(oR,{icon:o,size:t});if(".env"===r||r.startsWith(".env."))return(0,n.jsx)(oR,{icon:"env",size:t});if("dockerfile"===r||r.startsWith("dockerfile."))return(0,n.jsx)(oR,{icon:"docker",size:t});if(r.endsWith(".config.ts")||r.endsWith(".config.js")||r.endsWith(".config.mjs")||r.endsWith(".config.cjs"))return(0,n.jsx)(oR,{icon:r.startsWith("vite.")?"vite":"config",size:t});let i=oM[r.split(".").pop()??""];return i?(0,n.jsx)(oR,{icon:i,size:t}):(0,n.jsx)(oT,{size:t})}function o$(e){return/^[a-zA-Z]:[\\/]/.test(e)||e.startsWith("\\\\")?e.replace(/\\/g,"/"):e}function oW(e){let t=o$(e),r=t.split("/").filter(Boolean);return t.startsWith("//")&&r.length>0&&(r[0]=`//${r[0]}`),r.map(encodeURIComponent).join("/")}function oL(e){let t=o$(e).replace(/\/+$/,"");return t.split("/").pop()??t}function oN(e,t){if(!t)return e;let r=o$(e),n=o$(t).replace(/\/$/,"");return r.startsWith(n+"/")?r.slice(n.length+1):e}function oA(e,t){return`${o$(e).replace(/\/$/,"")}/${t}`}var oP=r(79617),oF=r(87358);function oD(e){return e&&"win32"===oF.platform?(0,oP.normalize)(e):e}function oH(e,t){return e===t||!!e&&!!t&&"win32"===oF.platform&&oD(e).toLowerCase()===oD(t).toLowerCase()}var oO=r(87358);function oB(){let e=oO.env.NEXT_PUBLIC_PI_WEB_FILE_EDITING;return!!e&&["1","true","yes","on"].includes(e.trim().toLowerCase())}function oU(e){let t=e.replace(/\\/g,"/").replace(/\/+$/,"");return/^[a-zA-Z]:\//.test(t)?t.toLowerCase():t}function o_(e){return"added"===e?"var(--git-status-added)":"deleted"===e?"var(--git-status-deleted)":"modified"===e?"var(--git-status-modified)":"var(--text)"}function oq(e){return"deleted"===e?3:"added"===e?2:1}async function oK(e){let t=await fetch(`/api/git/status?${new URLSearchParams({cwd:e}).toString()}`,{cache:"no-store"});if(!t.ok)throw Error(`Failed to load Git status (HTTP ${t.status})`);return t.json()}async function oV(e){let t=oW(e),r=await fetch(`/api/files/${t}?type=list`);if(!r.ok){let e=`Failed to load files (HTTP ${r.status})`;try{let t=await r.json();t.error&&(e=t.error)}catch{}throw Error(e)}return((await r.json()).entries??[]).map(t=>({name:t.name,fullPath:oA(e,t.name),isDir:t.isDir,size:t.size,children:t.isDir?[]:void 0,loaded:!t.isDir}))}function oJ({size:e=11}){return(0,n.jsx)(ov.At,{size:e,weight:"regular","aria-hidden":"true"})}function oY({onClick:e,title:t}){return(0,n.jsx)("button",{type:"button",onClick:e,title:t,"aria-label":t,style:{width:24,height:24,padding:0,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,border:"none",borderRadius:4,background:"none",color:"var(--text-dim)",cursor:"pointer"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:(0,n.jsx)(g.X,{size:13,weight:"regular","aria-hidden":"true"})})}async function oG(e,t,r,n){let o=await fetch(`/api/files/${oW(e)}?type=create`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t,kind:r,content:n??""})}),i=await o.json().catch(()=>({}));if(!o.ok||!i.path)throw Error(i.error??`Create failed (HTTP ${o.status})`);return{path:i.path}}async function oX(e){let t=await fetch(`/api/files/${oW(e)}`,{method:"DELETE"});if(!t.ok){let e=`Delete failed (HTTP ${t.status})`;try{let r=await t.json();r.error&&(e=r.error)}catch{}throw Error(e)}}let oZ={display:"flex",alignItems:"center",justifyContent:"center",gap:4,padding:"0 5px",height:20,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:4,cursor:"pointer",fontSize:11,fontWeight:600,whiteSpace:"nowrap"};function oQ({node:e,depth:t,cwd:r,onOpenFile:i,onAtMention:s,expandedPaths:l,onToggleExpanded:a,refreshToken:d,highlightedPaths:c,ignoredPaths:u,changedFiles:p,editingEnabled:h,onCreateFile:g,onCreateFolder:x,onDelete:f,selectedPath:m}){let v,{t:y}=(0,Y.s)(),b=l.has(e.fullPath),j=c.has(e.fullPath),w=!!m&&oH(m,e.fullPath),S=oU(e.fullPath),C=function(e,t){if(t.has(e))return!0;for(let r of t)if(e.startsWith(`${r}/`))return!0;return!1}(S,u),z=function(e,t,r){let n,o=r.get(e);if(o||!t)return o;for(let[t,o]of r)t.startsWith(`${e}/`)&&(!n||oq(o)>oq(n))&&(n=o);return n}(S,e.isDir,p),[R,I]=(0,o.useState)(e.children??[]),[E,$]=(0,o.useState)(e.loaded??!1),[W,L]=(0,o.useState)(!1),[N,A]=(0,o.useState)(!1),P=(0,o.useCallback)(async(t=!1)=>{if(!E||t){L(!0);try{let t=await oV(e.fullPath);I(t),$(!0)}catch{}finally{L(!1)}}},[E,e.fullPath]);(0,o.useEffect)(()=>{void 0!==d&&b&&E&&P(!0)},[d]);let F=(0,o.useCallback)(()=>{if(e.isDir){let t=!b;a(e.fullPath,t),t&&!E&&P()}else i(e.fullPath,e.name)},[e.isDir,e.fullPath,e.name,E,b,P,i,a]);return(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{onClick:F,onKeyDown:e=>{e.target!==e.currentTarget||("Enter"===e.key||" "===e.key)&&(e.preventDefault(),F())},onMouseEnter:()=>A(!0),onMouseLeave:()=>A(!1),role:"treeitem",tabIndex:-1,"data-tree-row":"","aria-selected":w||void 0,"aria-expanded":e.isDir?b:void 0,"aria-current":w?"true":void 0,style:{position:"relative",display:"flex",alignItems:"center",gap:4,paddingLeft:8+14*t,paddingRight:8,height:24,cursor:"pointer",background:w?"var(--bg-selected)":N?"var(--bg-hover)":"transparent",borderRadius:4,userSelect:"none",opacity:C?N?.72:.5:1},children:[e.isDir&&(0,n.jsx)(k.K,{size:10,color:"var(--text-dim)",weight:"regular",style:{flexShrink:0,transform:b?"rotate(90deg)":"none",transition:"transform 0.1s"},"aria-hidden":"true"}),!e.isDir&&(0,n.jsx)("span",{style:{width:10,flexShrink:0}}),(0,n.jsxs)("span",{style:{position:"relative",width:14,height:14,flexShrink:0,display:"inline-flex",alignItems:"center",justifyContent:"center"},children:[e.isDir?(0,n.jsx)(oz,{size:14,open:b,name:e.name}):oE(e.name,14),z&&(0,n.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",left:-1,top:"50%",transform:"translateY(-50%)",zIndex:1,width:7,height:7,border:"1px solid var(--bg-panel)",borderRadius:"50%",background:o_(z)}})]}),(0,n.jsx)("span",{style:{fontSize:12,color:o_(z),overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},title:e.fullPath,children:e.name}),j&&(0,n.jsx)("span",{title:"Newly uploaded","aria-label":"Newly uploaded",style:{width:6,height:6,flexShrink:0,borderRadius:"50%",background:"var(--status-info)"}}),W&&(0,n.jsx)(ts.y,{size:10,color:"var(--text-dim)",weight:"regular","aria-hidden":"true"}),N&&(v=[],(s&&v.push((0,n.jsxs)("button",{onClick:t=>{t.stopPropagation(),s(oN(e.fullPath,r),e.isDir)},title:y("files.insertPath"),style:{...oZ,color:"var(--accent)"},children:[(0,n.jsx)(oJ,{}),y("files.mention")]},"mention")),h&&e.isDir&&v.push((0,n.jsx)("button",{onClick:t=>{t.stopPropagation(),g(e.fullPath)},title:y("files.newFile"),"aria-label":y("files.newFile"),style:oZ,children:(0,n.jsx)(oy.p,{size:11,weight:"regular","aria-hidden":"true"})},"new-file"),(0,n.jsx)("button",{onClick:t=>{t.stopPropagation(),x(e.fullPath)},title:y("files.newFolder"),"aria-label":y("files.newFolder"),style:oZ,children:(0,n.jsx)(ob.JU,{size:11,weight:"regular","aria-hidden":"true"})},"new-folder")),e.isDir||v.push((0,n.jsx)("a",{href:`/api/files/${oW(e.fullPath)}?type=download`,download:!0,onClick:e=>e.stopPropagation(),title:y("files.download"),style:{...oZ,color:"var(--text-muted)",textDecoration:"none"},children:(0,n.jsx)(M.z,{size:11,weight:"regular","aria-hidden":"true"})},"download")),h&&v.push((0,n.jsx)("button",{onClick:t=>{t.stopPropagation(),f(e.fullPath,e.name,e.isDir)},title:y("files.delete"),"aria-label":y("files.delete"),style:{...oZ,color:"var(--status-error)"},children:(0,n.jsx)(T.l,{size:11,weight:"regular","aria-hidden":"true"})},"delete")),0===v.length)?null:(0,n.jsx)("div",{style:{position:"absolute",right:4,top:"50%",transform:"translateY(-50%)",display:"flex",alignItems:"center",gap:3},children:v}))]}),e.isDir&&b&&(0,n.jsxs)("div",{children:[R.map(e=>(0,n.jsx)(oQ,{node:e,depth:t+1,cwd:r,onOpenFile:i,onAtMention:s,expandedPaths:l,onToggleExpanded:a,refreshToken:d,highlightedPaths:c,ignoredPaths:u,changedFiles:p,editingEnabled:h,onCreateFile:g,onCreateFolder:x,onDelete:f,selectedPath:m},e.fullPath)),0===R.length&&E&&(0,n.jsx)("div",{style:{paddingLeft:8+(t+1)*14,fontSize:11,color:"var(--text-dim)",height:22,display:"flex",alignItems:"center"},children:"empty"})]})]})}let o0=(0,o.forwardRef)(function({cwd:e,onOpenFile:t,refreshKey:r,onAtMention:i,onAtMentions:s,onUploadBusyChange:l,fileSearchOpen:a=!1,onFileSearchOpenChange:d,onFileCreated:c,onFileDeleted:u,selectedFilePath:p},h){let{t:g}=(0,Y.s)(),[x,m]=(0,o.useState)([]),[v,y]=(0,o.useState)(null),[b,k]=(0,o.useState)(!0),[j,w]=(0,o.useState)(null),[S,C]=(0,o.useState)(new Set),[z,T]=(0,o.useState)(0),[I,M]=(0,o.useState)(new Set);(0,o.useEffect)(()=>{if(0===I.size)return;let e=setTimeout(()=>M(new Set),15e3);return()=>clearTimeout(e)},[I]);let[E,$]=(0,o.useState)(""),[W,L]=(0,o.useState)([]),[N,A]=(0,o.useState)(!1),[P,F]=(0,o.useState)(!1),[D,H]=(0,o.useState)(new Set),O=(0,o.useRef)(null),B=E.trim().length>0,[U,_]=(0,o.useState)("idle"),[q,K]=(0,o.useState)(0),[V,G]=(0,o.useState)(null),[X,Z]=(0,o.useState)(null),[Q,ee]=(0,o.useState)(null),[et,er]=(0,o.useState)(null),en=(0,o.useRef)(null),eo=(0,o.useRef)(null),ei=`${r??0}:${z}`,es="idle"!==U,el=oB(),ea=(0,o.useMemo)(()=>new Set((v?.ignoredPaths??[]).map(oU)),[v]),ed=(0,o.useMemo)(()=>new Map((v?.files??[]).map(e=>{var t;return[oU(e.filePath),"added"===(t=e.status)||"untracked"===t?"added":"deleted"===t||"conflict"===t?"deleted":"modified"]})),[v]);(0,o.useEffect)(()=>{if(!a)return;let t=E.trim();if(!t){L([]),A(!1),F(!1);return}let r=new AbortController;A(!0),F(!1);let n=setTimeout(()=>{fetch(`/api/file-index?cwd=${encodeURIComponent(e)}&q=${encodeURIComponent(t)}`,{signal:r.signal}).then(e=>e.ok?e.json():Promise.reject(Error("Search failed"))).then(e=>L((e.matches??[]).filter(e=>!e.isDir).map(e=>e.path))).catch(()=>{r.signal.aborted||(L([]),F(!0))}).finally(()=>{r.signal.aborted||A(!1)})},150);return()=>{clearTimeout(n),r.abort()}},[e,a,E]),(0,o.useEffect)(()=>{a&&O.current?.focus()},[a]),(0,o.useEffect)(()=>{if(0===W.length)return;let t=new Set;for(let r of W){let n=r.split("/"),o="";for(let r=0;r<n.length-1;r++)o=o?`${o}/${n[r]}`:n[r],t.add(oA(e,o))}H(e=>{let r=!1,n=new Set(e);for(let e of t)n.has(e)||(n.add(e),r=!0);return r?n:e})},[e,W]);let ec=(0,o.useMemo)(()=>{let t=r=>({name:r.name,fullPath:oA(e,r.path),isDir:r.isDir,size:0,children:r.children.map(t),loaded:!0});return(function(e){let t=[],r=new Map;for(let n of e){let e=n.split("/"),o=t,i="";for(let t=0;t<e.length;t++){i=i?`${i}/${e[t]}`:e[t];let n=r.get(i);n||(n={name:e[t],path:i,isDir:t<e.length-1,children:[]},r.set(i,n),o.push(n)),o=n.children}}let n=e=>{e.sort((e,t)=>e.isDir!==t.isDir?e.isDir?-1:1:e.name.localeCompare(t.name)),e.forEach(e=>n(e.children))};return n(t),t})(W).map(t)},[e,W]),eu=(0,o.useCallback)((e,t)=>{C(r=>{let n=new Set(r);return t?n.add(e):n.delete(e),n})},[]),ep=(0,o.useCallback)(e=>{if("ArrowDown"!==e.key&&"ArrowUp"!==e.key)return;let t=Array.from(e.currentTarget.querySelectorAll("[data-tree-row]"));if(0===t.length)return;let r=t.indexOf(document.activeElement);e.preventDefault();let n=-1===r?"ArrowDown"===e.key?0:t.length-1:Math.max(0,Math.min(t.length-1,r+("ArrowDown"===e.key?1:-1)));t[n]?.focus()},[]),eh=(0,o.useCallback)(t=>{let r=t.uploaded??[];Z({uploaded:r,skipped:t.skipped??[],errors:t.errors??[]}),r.length>0&&(M(new Set(r.map(t=>oA(e,t)))),T(e=>e+1))},[e]),eg=(0,o.useCallback)(async(t,r)=>{ee(null),G(null),K(0),_("uploading");try{let{status:n,data:o}=await new Promise((n,o)=>{let i=new FormData;t.forEach(e=>i.append("files",e,e.name));let s=new XMLHttpRequest;s.open("POST",`/api/files/${oW(e)}?type=upload&conflict=${r}`),s.upload.onprogress=e=>{e.lengthComputable&&e.total>0&&K(Math.round(e.loaded/e.total*100))},s.onerror=()=>o(Error("Network error while uploading files")),s.onabort=()=>o(Error("Upload cancelled")),s.onload=()=>{let e={};try{e=JSON.parse(s.responseText)}catch{s.responseText&&(e.error=s.responseText)}n({status:s.status,data:e})},s.send(i)});if(409===n&&o.conflicts?.length)return void ee({files:t,conflicts:o.conflicts,nonReplaceable:o.nonReplaceable??[]});if(n<200||n>=300)throw Error(o.error??`Upload failed (HTTP ${n})`);K(100),eh(o)}catch(e){G(e instanceof Error?e.message:String(e))}finally{_("idle")}},[eh,e]),ex=(0,o.useCallback)(async t=>{if(0!==t.length&&!es){Z(null),M(new Set),ee(null),G(null),K(0),_("checking");try{let r=await fetch(`/api/files/${oW(e)}?type=upload-check`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({fileNames:t.map(e=>e.name)})}),n=await r.json().catch(()=>({}));if(!r.ok)throw Error(n.error??`Upload check failed (HTTP ${r.status})`);if(n.conflicts?.length)return void ee({files:t,conflicts:n.conflicts,nonReplaceable:n.nonReplaceable??[]});await eg(t,"error")}catch(e){G(e instanceof Error?e.message:String(e))}finally{_("idle")}}},[e,eg,es]),ef=(0,o.useCallback)(e=>{let t=Array.from(e.target.files??[]);e.target.value="",ex(t)},[ex]),em=(0,o.useCallback)(async e=>{er(null);let t=window.prompt(g("files.promptFileName"));if(t)try{await oG(e,t,"file");let r=oA(e,t);M(new Set([r])),T(e=>e+1),c?.(r)}catch(e){er(e instanceof Error?e.message:String(e))}},[c,g]),ev=(0,o.useCallback)(async e=>{er(null);let t=window.prompt(g("files.promptFolderName"));if(t)try{await oG(e,t,"directory");let r=oA(e,t);M(new Set([r])),T(e=>e+1)}catch(e){er(e instanceof Error?e.message:String(e))}},[g]),ey=(0,o.useCallback)(async(e,t,r)=>{er(null);let n=r?g("files.confirmDeleteDirectory",{name:t}):g("files.confirmDeleteFile",{name:t});if(window.confirm(n))try{await oX(e),T(e=>e+1),u?.(e,r)}catch(e){er(e instanceof Error?e.message:String(e))}},[u,g]);(0,o.useImperativeHandle)(h,()=>({openUploadPicker(){es||eo.current?.click()},openCreateFilePicker(t){em(t??e)},openCreateFolderPicker(t){ev(t??e)}}),[es,e,em,ev]),(0,o.useEffect)(()=>{l?.(es)},[l,es]),(0,o.useEffect)(()=>()=>l?.(!1),[l]),(0,o.useEffect)(()=>{let t=en.current!==e;en.current=e,t&&(C(new Set),M(new Set),Z(null),ee(null),G(null)),k(t),w(null);let r=!1;return Promise.all([oV(e),oK(e).catch(()=>null)]).then(([e,t])=>{r||(m(e),y(t))}).catch(e=>{r||w(e instanceof Error?e.message:String(e))}).finally(()=>{r||k(!1)}),()=>{r=!0}},[e,r,z]);let eb=es||null!==Q||null!==V||null!==X,ek=(0,o.useCallback)(()=>{X&&0!==X.uploaded.length&&s?.(X.uploaded.map(t=>oN(oA(e,t),e)))},[e,s,X]);return(0,n.jsxs)("div",{style:{minHeight:"100%"},children:[(0,n.jsx)("input",{ref:eo,type:"file",multiple:!0,hidden:!0,onChange:ef}),eb&&(0,n.jsxs)("div",{style:{padding:"6px 8px",borderBottom:"1px solid var(--border)"},children:[es&&(0,n.jsxs)("div",{role:"status","aria-live":"polite","aria-label":"checking"===U?"Checking files":`Uploading, ${q}%`,children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,minHeight:14,color:"var(--text-muted)"},children:["checking"===U?(0,n.jsx)(ts.y,{size:13,weight:"regular",style:{animation:"spin 0.8s linear infinite"},"aria-hidden":"true"}):(0,n.jsx)(R.C,{size:13,weight:"regular","aria-hidden":"true"}),"uploading"===U&&(0,n.jsxs)("span",{style:{fontSize:10},children:[q,"%"]})]}),"uploading"===U&&(0,n.jsx)("div",{style:{height:3,marginTop:4,overflow:"hidden",borderRadius:2,background:"var(--border)"},children:(0,n.jsx)("div",{style:{width:`${q}%`,height:"100%",background:"var(--text-muted)",transition:"width 120ms ease"}})})]}),Q&&(0,n.jsxs)("div",{role:"alert",style:{padding:7,border:"1px solid color-mix(in srgb, #f59e0b 55%, var(--border))",borderRadius:4,background:"color-mix(in srgb, #f59e0b 9%, var(--bg-panel))"},children:[(0,n.jsxs)("div",{style:{fontSize:11,color:"var(--text)",lineHeight:1.35,overflowWrap:"anywhere"},children:[Q.conflicts.length," file",1===Q.conflicts.length?"":"s"," already exist: ",Q.conflicts.join(", ")]}),Q.nonReplaceable.length>0&&(0,n.jsxs)("div",{style:{marginTop:3,fontSize:10,color:"var(--status-warning)",lineHeight:1.35,overflowWrap:"anywhere"},children:["Cannot replace: ",Q.nonReplaceable.join(", ")]}),(0,n.jsxs)("div",{style:{display:"flex",gap:5,marginTop:7},children:[(0,n.jsx)("button",{type:"button",onClick:()=>void eg(Q.files,"overwrite"),style:{height:22,padding:"0 7px",border:"1px solid var(--status-error)",borderRadius:4,background:"transparent",color:"var(--status-error)",cursor:"pointer",fontSize:10},children:"Replace"}),(0,n.jsx)("button",{type:"button",onClick:()=>void eg(Q.files,"skip"),style:{height:22,padding:"0 7px",border:"1px solid var(--border)",borderRadius:4,background:"var(--bg-panel)",color:"var(--text)",cursor:"pointer",fontSize:10},children:"Skip existing"}),(0,n.jsx)("button",{type:"button",onClick:()=>ee(null),style:{height:22,padding:"0 7px",border:"none",borderRadius:4,background:"transparent",color:"var(--text-muted)",cursor:"pointer",fontSize:10},children:"Cancel"})]})]}),V&&(0,n.jsxs)("div",{role:"alert",style:{display:"flex",alignItems:"flex-start",gap:6,fontSize:11,lineHeight:1.35,color:"var(--status-error)"},children:[(0,n.jsx)("span",{style:{minWidth:0,flex:1,overflowWrap:"anywhere"},children:V}),(0,n.jsx)(oY,{onClick:()=>G(null),title:"Dismiss error"})]}),X&&(0,n.jsxs)("div",{"aria-live":"polite",children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,minHeight:22,fontSize:11},children:[(0,n.jsxs)("div",{style:{minWidth:0,flex:1,display:"flex",alignItems:"center",gap:8},children:[X.uploaded.length>0&&(0,n.jsxs)("span",{title:`${X.uploaded.length} uploaded`,"aria-label":`${X.uploaded.length} uploaded`,style:{display:"flex",alignItems:"center",gap:3,color:"var(--status-success)"},children:[(0,n.jsx)(f.J,{size:13,weight:"regular","aria-hidden":"true"}),(0,n.jsx)("span",{children:X.uploaded.length})]}),X.skipped.length>0&&(0,n.jsxs)("span",{title:`${X.skipped.length} skipped`,"aria-label":`${X.skipped.length} skipped`,style:{display:"flex",alignItems:"center",gap:3,color:"var(--text-dim)"},children:[(0,n.jsx)(ok.F,{size:13,weight:"regular","aria-hidden":"true"}),(0,n.jsx)("span",{children:X.skipped.length})]}),X.errors.length>0&&(0,n.jsxs)("span",{title:`${X.errors.length} failed`,"aria-label":`${X.errors.length} failed`,style:{display:"flex",alignItems:"center",gap:3,color:"var(--status-error)"},children:[(0,n.jsx)(J.N,{size:13,weight:"regular","aria-hidden":"true"}),(0,n.jsx)("span",{children:X.errors.length})]})]}),X.uploaded.length>0&&s&&(0,n.jsxs)("button",{type:"button",onClick:ek,title:1===X.uploaded.length?"Add uploaded file to chat":"Add all uploaded files to chat","aria-label":1===X.uploaded.length?"Add uploaded file to chat":"Add all uploaded files to chat",style:{height:22,padding:"0 7px",display:"flex",alignItems:"center",justifyContent:"center",gap:4,flexShrink:0,border:"1px solid var(--border)",borderRadius:4,background:"var(--bg-panel)",color:"var(--accent)",cursor:"pointer",fontSize:11,fontWeight:600,whiteSpace:"nowrap"},children:[(0,n.jsx)(oJ,{}),"mention"]}),(0,n.jsx)(oY,{onClick:()=>Z(null),title:"Dismiss upload results"})]}),X.errors.map(e=>(0,n.jsxs)("div",{title:e.error,style:{display:"flex",alignItems:"center",gap:4,marginTop:3,minWidth:0,fontSize:10,color:"var(--status-error)"},children:[(0,n.jsx)(oj.R,{size:11,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]},e.name))]})]}),et&&(0,n.jsxs)("div",{role:"alert",style:{display:"flex",alignItems:"flex-start",gap:6,padding:"6px 8px",borderBottom:"1px solid var(--border)",fontSize:11,lineHeight:1.35,color:"var(--status-error)"},children:[(0,n.jsx)("span",{style:{minWidth:0,flex:1,overflowWrap:"anywhere"},children:et}),(0,n.jsx)(oY,{onClick:()=>er(null),title:g("files.dismissError")})]}),a&&(0,n.jsxs)("div",{style:{padding:"6px 8px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsxs)("div",{style:{position:"relative"},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:{position:"absolute",left:8,top:"50%",transform:"translateY(-50%)",color:"var(--text-dim)",pointerEvents:"none"},children:[(0,n.jsx)("circle",{cx:"11",cy:"11",r:"7"}),(0,n.jsx)("path",{d:"m20 20-4-4"})]}),(0,n.jsx)("input",{ref:O,value:E,onChange:e=>$(e.target.value),onKeyDown:e=>{"Escape"===e.key&&d?.(!1)},placeholder:g("sidebar.searchFilesPlaceholder"),"aria-label":g("sidebar.searchFiles"),style:{width:"100%",boxSizing:"border-box",padding:"6px 24px",border:"1px solid var(--border)",borderRadius:5,outline:"none",background:"var(--bg)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:11}}),E&&(0,n.jsx)("button",{type:"button",onClick:()=>$(""),title:g("sidebar.clearSearch"),"aria-label":g("sidebar.clearSearch"),style:{position:"absolute",right:4,top:"50%",transform:"translateY(-50%)",display:"flex",alignItems:"center",justifyContent:"center",width:18,height:18,padding:0,border:"none",borderRadius:4,background:"none",color:"var(--text-dim)",cursor:"pointer"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-dim)"},children:(0,n.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.4",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M18 6 6 18"}),(0,n.jsx)("path",{d:"m6 6 12 12"})]})})]}),B&&(0,n.jsxs)("div",{style:{paddingTop:3},children:[N&&(0,n.jsx)("div",{role:"status",style:{padding:"6px 2px",fontSize:10,color:"var(--text-dim)"},children:g("sidebar.searchingFiles")}),!N&&P&&(0,n.jsx)("div",{role:"alert",style:{padding:"6px 2px",fontSize:10,color:"var(--status-error)"},children:g("i18n.networkError")}),!N&&!P&&0===W.length&&(0,n.jsx)("div",{style:{padding:"6px 2px",fontSize:10,color:"var(--text-dim)"},children:g("sidebar.noMatchingFiles")}),!N&&!P&&W.length>0&&(0,n.jsx)("div",{role:"tree",tabIndex:0,onKeyDown:ep,"aria-label":g("sidebar.searchFiles"),children:ec.map(r=>(0,n.jsx)(oQ,{node:r,depth:0,cwd:e,onOpenFile:t,onAtMention:i,expandedPaths:D,onToggleExpanded:(e,t)=>{H(r=>{let n=new Set(r);return t?n.add(e):n.delete(e),n})},refreshToken:"",highlightedPaths:I,ignoredPaths:ea,changedFiles:ed,editingEnabled:el,onCreateFile:em,onCreateFolder:ev,onDelete:ey,selectedPath:p},`${E}:${r.fullPath}`))})]})]}),(0,n.jsxs)("div",{style:{padding:"2px 4px"},children:[b?(0,n.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--text-dim)"},children:"Loading files..."}):j?(0,n.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--status-error)"},children:j}):B?(0,n.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--text-dim)"}}):(0,n.jsx)("div",{role:"tree",tabIndex:0,onKeyDown:ep,"aria-label":g("desktop.files"),children:x.map(r=>(0,n.jsx)(oQ,{node:r,depth:0,cwd:e,onOpenFile:t,onAtMention:i,expandedPaths:S,onToggleExpanded:eu,refreshToken:ei,highlightedPaths:I,ignoredPaths:ea,changedFiles:ed,editingEnabled:el,onCreateFile:em,onCreateFolder:ev,onDelete:ey,selectedPath:p},r.fullPath))}),!b&&!j&&0===x.length&&(0,n.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--text-dim)"},children:"No files found"})]})]})}),o1={modified:"var(--git-status-modified)",added:"var(--git-status-added)",deleted:"var(--git-status-deleted)",renamed:"var(--git-status-modified)",untracked:"var(--git-status-added)",conflict:"var(--git-status-deleted)"};async function o2(e){let t=await fetch(`/api/git/status?${new URLSearchParams({cwd:e}).toString()}`);if(!t.ok)throw Error(`Failed to load Git status (HTTP ${t.status})`);return t.json()}function o6({status:e,cwd:t,onOpenFile:r}){let[i,s]=(0,o.useState)(!1),l=oN(e.filePath,t);return(0,n.jsxs)("button",{type:"button",onClick:()=>r(e.filePath,oL(e.filePath),{initialDisplayMode:"diff"}),onMouseEnter:()=>s(!0),onMouseLeave:()=>s(!1),title:e.filePath,style:{width:"100%",display:"flex",alignItems:"center",gap:4,padding:"0 5px",height:24,border:"none",borderRadius:4,background:i?"var(--bg-hover)":"transparent",color:"var(--text)",cursor:"pointer",textAlign:"left"},children:[(0,n.jsx)("span",{style:{width:14,flexShrink:0,color:o1[e.status],fontFamily:"var(--font-mono)",fontSize:11,fontWeight:600,textAlign:"center"},children:e.code}),(0,n.jsx)("span",{style:{flexShrink:0,display:"flex",alignItems:"center",opacity:.85},children:oE(oL(e.filePath),13)}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,fontSize:12},children:l})]})}function o4({cwd:e,refreshKey:t,onOpenFile:r}){let{t:i}=(0,Y.s)(),[s,l]=(0,o.useState)(!1),[a,d]=(0,o.useState)(null),[c,u]=(0,o.useState)(!1),p=(0,o.useCallback)(async()=>{u(!0);try{d(await o2(e))}catch{d(null)}finally{u(!1)}},[e]);if((0,o.useEffect)(()=>{p()},[p,t]),!a?.isGitRepository||0===a.files.length)return null;let h=a.files.reduce((e,t)=>("added"===t.status||"untracked"===t.status?e.added+=1:"deleted"===t.status||"conflict"===t.status?e.deleted+=1:e.modified+=1,e),{modified:0,added:0,deleted:0});return(0,n.jsxs)("section",{style:{flex:"0 0 auto",minHeight:0,borderTop:"1px solid var(--border)",display:"flex",flexDirection:"column",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",flexShrink:0},children:[(0,n.jsxs)("button",{type:"button",onClick:()=>l(e=>!e),"aria-expanded":s,style:{display:"flex",alignItems:"center",gap:6,flex:1,minWidth:0,padding:"6px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:11,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",textAlign:"left"},children:[(0,n.jsx)(k.K,{size:9,weight:"regular",style:{transform:s?"rotate(90deg)":"none",transition:"transform 0.15s",flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:i("desktop.quickChanges")})]}),(0,n.jsxs)("div",{className:"git-changes-indicator","aria-label":`Changed files: ${h.modified} modified, ${h.added} added, ${h.deleted} deleted`,children:[h.modified>0&&(0,n.jsx)("span",{className:"git-changes-indicator-part git-changes-indicator-modified",children:h.modified}),h.added>0&&(0,n.jsx)("span",{className:"git-changes-indicator-part git-changes-indicator-added",children:h.added}),h.deleted>0&&(0,n.jsx)("span",{className:"git-changes-indicator-part git-changes-indicator-deleted",children:h.deleted})]}),(0,n.jsxs)("span",{style:{marginLeft:6,color:"var(--git-status-added)",fontFamily:"var(--font-mono)",fontSize:11},children:["+",a.additions]}),(0,n.jsxs)("span",{style:{marginLeft:5,color:"var(--git-status-deleted)",fontFamily:"var(--font-mono)",fontSize:11},children:["-",a.deletions]}),(0,n.jsx)("button",{type:"button",onClick:()=>void p(),disabled:c,title:i("desktop.refresh"),"aria-label":i("desktop.refresh"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,marginLeft:4,marginRight:6,border:"none",borderRadius:5,background:"none",color:"var(--text-dim)",cursor:c?"wait":"pointer",opacity:c?.55:1},children:c?(0,n.jsx)(ts.y,{size:12,style:{animation:"spin 0.8s linear infinite"},"aria-hidden":"true"}):(0,n.jsx)(z.S,{size:13,weight:"regular","aria-hidden":"true"})})]}),s&&(0,n.jsx)("div",{style:{minHeight:0,maxHeight:"min(35vh, 280px)",overflowY:"auto",overflowX:"hidden",padding:"2px 4px 4px"},children:a.files.map(t=>(0,n.jsx)(o6,{status:t,cwd:e,onOpenFile:r},t.filePath))})]})}var o5=r(76721),o3=r(61448),o8=r(95660),o7=r(59680),o9=r(20412),ie=r(12272),it=r(9005),ir=r(31966),io=r(73974),ii=r(65377),is=r(47421),il=r(14225),ia=r(8962),id=r(65408),ic=r(75742),iu=r(73534),ip=r(6923),ih=r(64577),ig=r(32159),ix=r(30600),im=r(86272),iv=r(37218),iy=r(65738);let ib=["all","commands","sessions","files"],ik={">":"commands","#":"sessions","@":"files"};function ij(e){return`pi-command-center-search-history:${e||"default"}`}function iw(e){let t=e.trim();return!(!t||Object.prototype.hasOwnProperty.call(ik,t))}function iS(){try{return window.localStorage}catch{return null}}function iC(e){let t=e.trimStart(),r=t.slice(0,1);return Object.prototype.hasOwnProperty.call(ik,r)?t.slice(1).trimStart():e}function iz(e){return e?"⌘K":"Ctrl+K"}function iT(){try{return window.localStorage}catch{return null}}let iR="pi-web:sidebar-mode",iI="pi-web:sidebar-task-preferences",iM="pi-web:sidebar-collapsed-projects",iE="projects",i$={organizeBy:"project",sortBy:"updated"};function iW(e,t=iT()){if(t)try{0===e.size?t.removeItem(iM):t.setItem(iM,JSON.stringify(Object.fromEntries([...e].map(e=>[e,!0]))))}catch{}}function iL(e,t){let r=t.trim().toLowerCase();return!r||!!os(e).toLowerCase().includes(r)||!!e.branch?.toLowerCase().includes(r)}function iN(e){return e.projectKey??e.projectRoot??e.cwd??""}function iA(e,t,r){return"created"===r?t.created.localeCompare(e.created):t.modified.localeCompare(e.modified)}function iP(e,t={}){let{hiddenKeys:r,search:n}=t;return e.filter(e=>!(e.archived||e.relation?.kind==="subagent"||r?.size&&r.has(iN(e)))&&iL(e,n??""))}function iF(e,t){return t.get(e.projectKey)?.latest??""}let iD={pinned:"desktop.pinned",today:"desktop.today",yesterday:"desktop.yesterday",older:"desktop.older"};function iH(e){let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),n=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${n}`}function iO(e,t,r="updated"){let n=new Date,o=iH(n),i=iH(new Date(n.getTime()-864e5)),s={pinned:[],today:[],yesterday:[],older:[]};for(let t of e){let e=iH(new Date(t.modified));t.pinned&&s.pinned.push(t),e===o?s.today.push(t):e===i?s.yesterday.push(t):s.older.push(t)}return["pinned","today","yesterday","older"].map(e=>({key:e,rows:function(e,t,r,n="updated"){if(0===e.length)return[];let o=new Map(t.map(e=>[e.id,e])),i=new Set(e.map(e=>e.id)),s=new Map;for(let t of e)if(t.parentSessionId&&i.has(t.parentSessionId)){let e=s.get(t.parentSessionId)??[];e.push(t),s.set(t.parentSessionId,e)}let l=(e,t)=>iA(e,t,n),a=e.filter(e=>!(e.parentSessionId&&i.has(e.parentSessionId))).sort(l);for(let e of s.values())e.sort(l);let d=[],c=new Set,u=e=>{if(!c.has(e.id))for(let t of(c.add(e.id),d.push({session:e,forkDepth:r?0:(e=>{let t=0,r=e,n=new Set;for(;r?.parentSessionId&&!n.has(r.id);){n.add(r.id);let e=o.get(r.parentSessionId);if(!e)break;r=e,t++}return t})(e)}),s.get(e.id)??[]))u(t)};for(let e of a)u(e);for(let t of e)u(t);return d}(s[e],t,"pinned"===e,r)})).filter(e=>e.rows.length>0)}var iB=r(97320);function iU(e,t){let r=new Date(e),n=new Date().getTime()-r.getTime(),o=Math.floor(n/6e4),i=Math.floor(n/36e5),s=Math.floor(n/864e5);return o<1?t("desktop.justNow"):o<60?t("desktop.minutesAgo",{count:o}):i<24?t("desktop.hoursAgo",{count:i}):s<7?t("desktop.daysAgo",{count:s}):r.toLocaleDateString()}function i_(){let{t:e}=(0,Y.s)();return(0,n.jsx)("span",{title:e("desktop.agentRunning"),"aria-label":e("desktop.agentRunningLabel"),style:{width:14,height:14,display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:"var(--accent)"},children:(0,n.jsx)(iB.A,{size:13,style:{display:"block",animation:"spin 0.9s linear infinite"},"aria-hidden":"true"})})}function iq(){let{t:e}=(0,Y.s)();return(0,n.jsx)("span",{title:e("desktop.newActivity"),"aria-label":e("desktop.newSessionActivity"),style:{width:14,height:14,display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:"var(--accent)"},children:(0,n.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none","aria-hidden":"true",style:{display:"block"},children:(0,n.jsx)("circle",{cx:"7",cy:"7",r:"3",fill:"currentColor",children:(0,n.jsx)("animate",{attributeName:"opacity",values:"1;0.25;1",dur:"1.6s",repeatCount:"indefinite"})})})})}let iK=e=>({display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,padding:0,background:e?"var(--bg-selected)":"transparent",border:"none",borderRadius:5,flexShrink:0,color:e?"var(--accent)":"var(--text-muted)",cursor:"pointer",transition:"color 0.12s, background 0.12s"});function iV({sessions:e,loading:t,runningIds:r,unreadIds:i,aliases:s,selectedSessionId:l,selectedProjectRoot:a,searchQuery:d,onSearchQueryChange:c,onSelectSession:u,onNewSessionInProject:p,onArchive:h,onDeleteForever:g,onRemoveProject:x,hiddenProjects:f,onUnhideProject:m,onPickFolder:v,onCycleToList:y,onRenamed:b,onNewTask:k,onOpenCommandPalette:j,renderFileTree:w,isMobile:S}){let{t:C}=(0,Y.s)(),[z,T]=(0,o.useState)(()=>(function(e=iT()){if(!e)return i$;try{let t=e.getItem(iI);if(!t)return i$;let r=JSON.parse(t);if(!r||"object"!=typeof r||Array.isArray(r))return i$;let{organizeBy:n,sortBy:o}=r;return{organizeBy:"grouped"===n||"project"===n||"timeline"===n?n:i$.organizeBy,sortBy:"updated"===o||"created"===o?o:i$.sortBy}}catch{return i$}})()),[R,I]=(0,o.useState)(()=>(function(e=iT()){if(!e)return new Set;try{let t=e.getItem(iM);if(!t)return new Set;let r=JSON.parse(t);if(!r||"object"!=typeof r||Array.isArray(r))return new Set;return new Set(Object.entries(r).filter(([,e])=>!0===e).map(([e])=>e))}catch{return new Set}})()),[M,E]=(0,o.useState)(!1),[$,W]=(0,o.useState)(null),[L,N]=(0,o.useState)(!1),[A,P]=(0,o.useState)(null),[F,D]=(0,o.useState)(null),[H,O]=(0,o.useState)({}),B="detailed",U=(0,o.useRef)(null),_=(0,o.useRef)(null),[q,K]=(0,o.useState)(0);(0,o.useEffect)(()=>{let e=setInterval(()=>K(e=>e+1),6e4);return()=>clearInterval(e)},[]);let V=(0,o.useCallback)(e=>{T(t=>{let r={...t,...e};return!function(e,t=iT()){if(t)try{t.setItem(iI,JSON.stringify(e))}catch{}}(r),r})},[]),J=(0,o.useCallback)(e=>{I(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),iW(r),r})},[]),G=(0,o.useMemo)(()=>new Set(f.map(e=>e.key)),[f]),X=(0,o.useMemo)(()=>(function(e){let{sessions:t,hiddenKeys:r,aliases:n={},sortBy:o,collapsedKeys:i,runningIds:s,unreadIds:l,search:a,extraRoots:d}=e,c=iP(t,{hiddenKeys:r,search:a}),u=new Map;for(let e of c){let t=iN(e);if(!t)continue;let r=e.projectRoot??e.cwd??"",n=u.get(t);n||(n={projectRoot:r,sessions:[],latest:""},u.set(t,n)),n.sessions.push(e),e.modified>n.latest&&(n.latest=e.modified)}for(let e of d??[])!r?.has(e)&&(u.has(e)||u.set(e,{projectRoot:e,sessions:[],latest:"￿"}));let p=[];for(let[e,t]of u){var h;t.sessions.sort((e,t)=>iA(e,t,o));let r=i?.has(e)??!1;p.push({projectKey:e,projectRoot:t.projectRoot,name:n[t.projectRoot]?.trim()||((h=t.projectRoot).replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean).pop()??h),sessions:r?[]:t.sessions,totalCount:t.sessions.length,collapsed:r,hasRunning:t.sessions.some(e=>s?.has(e.id)??!1),hasUnread:t.sessions.some(e=>l?.has(e.id)??!1)})}return p.sort((e,t)=>{let r=iF(e,u);return iF(t,u).localeCompare(r)}),p})({sessions:e,hiddenKeys:G,aliases:s,sortBy:z.sortBy,collapsedKeys:R,runningIds:r,unreadIds:i,search:d,extraRoots:a?[a]:[]}),[e,G,s,z.sortBy,R,r,i,d,a]),Z=(0,o.useMemo)(()=>{var t;return iP((t={sessions:e,hiddenKeys:G,sortBy:z.sortBy,search:d}).sessions,{hiddenKeys:t.hiddenKeys,search:t.search}).sort((e,r)=>iA(e,r,t.sortBy))},[e,G,z.sortBy,d]),Q=(0,o.useMemo)(()=>iO(iP(e,{hiddenKeys:G,search:d}),e,z.sortBy),[e,G,d,z.sortBy,q]),ee=(0,o.useMemo)(()=>(function(e){let{sessions:t,hiddenKeys:r,search:n}=e;return t.filter(e=>!(!e.archived||r?.size&&r.has(iN(e)))&&iL(e,n??"")).sort((e,t)=>(t.archivedAt??t.modified).localeCompare(e.archivedAt??e.modified))})({sessions:e,hiddenKeys:G,search:d}),[e,G,d]);(0,o.useEffect)(()=>{if(!L&&!A)return;let e=e=>{let t=e.target;L&&!U.current?.contains(t)&&N(!1),!A||_.current?.contains(t)||t instanceof Element&&t.closest("[data-menu-trigger]")||P(null)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[L,A]);let et=(0,o.useCallback)(()=>{if(R.size>0){let e=new Set;I(e),iW(e)}else{let e=new Set(X.map(e=>e.projectKey));I(e),iW(e)}},[R,X]),er=e=>({display:"flex",alignItems:"center",gap:3,height:22,padding:"0 7px",background:e?"var(--bg-selected)":"none",border:"none",borderRadius:11,color:e?"var(--text)":"var(--text-dim)",fontSize:11.5,fontWeight:e?600:400,cursor:"pointer",whiteSpace:"nowrap",transition:"color 0.12s, background 0.12s"}),en=e=>{E(!1),W(null),V({organizeBy:"grouped"===e?"grouped":"timeline"===z.organizeBy?"timeline":"project"})},eo=e=>H[e]??5,ei=(e,t=!1,o=B)=>{let a;return(0,n.jsx)(iJ,{session:e,isSelected:e.id===l,isRunning:r.has(e.id),isUnread:i.has(e.id),indent:t,forceActionsVisible:S,rowStyle:o,folderName:(a=e.projectRoot??e.cwd??"",s[a]?.trim()||a.replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean).pop()||a||"?"),onSelect:()=>u(e),onArchive:()=>h(e,!0),onRenamed:b},e.id)},es=$?(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",minHeight:0,flex:1},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"4px 8px",flexShrink:0},children:[(0,n.jsxs)("button",{onClick:()=>W(null),style:{display:"flex",alignItems:"center",gap:4,padding:"4px 8px",background:"none",border:"none",borderRadius:6,color:"var(--text-muted)",fontSize:12,cursor:"pointer"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:[(0,n.jsx)(ir.A,{size:11,"aria-hidden":"true"}),C("desktop.backToSessions")]}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12,color:"var(--text-dim)"},title:$.root,children:$.name})]}),(0,n.jsx)("div",{className:"scroll-overlay",style:{flex:1,minHeight:0,overflowX:"hidden"},children:w($.root)})]}):M?(0,n.jsxs)("div",{style:{padding:"0 4px"},children:[0===ee.length&&(0,n.jsx)("div",{style:{padding:"16px 10px",color:"var(--text-muted)",fontSize:12},children:C(d.trim()?"desktop.noSearchResults":"desktop.noArchivedSessions")}),ee.map(e=>(0,n.jsx)(iY,{session:e,folderName:s[e.projectRoot??e.cwd]?.trim()||(e.projectRoot??e.cwd??"").replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean).pop()||e.projectRoot||e.cwd||"?",onUnarchive:()=>h(e,!1),onDeleteForever:()=>{window.confirm(C("desktop.deleteArchivedConfirm"))&&g(e)}},e.id))]}):"project"===z.organizeBy?(0,n.jsxs)("div",{style:{padding:"0 4px"},children:[0===X.length&&!t&&(0,n.jsx)("div",{style:{padding:"16px 10px",color:"var(--text-muted)",fontSize:12},children:C(d.trim()?"desktop.noSearchResults":"desktop.noProjects")}),X.map(t=>{let o=eo(t.projectKey),i=t.sessions.slice(0,o),s=t.sessions.length-i.length;return(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{position:"relative"},onMouseEnter:()=>D(t.projectKey),onMouseLeave:()=>D(e=>e===t.projectKey?null:e),children:(0,n.jsxs)("div",{onClick:()=>J(t.projectKey),style:{display:"flex",alignItems:"center",gap:6,height:32,paddingLeft:8,paddingRight:66,cursor:"pointer",color:"var(--text)",borderRadius:8},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:[(0,n.jsx)(o5.A,{size:10,style:{transform:t.collapsed?"none":"rotate(90deg)",transition:"transform 0.15s",flexShrink:0,color:"var(--text-dim)"},"aria-hidden":"true"}),t.collapsed&&t.hasRunning?(0,n.jsx)(i_,{}):t.collapsed?(0,n.jsx)(o3.A,{size:14,style:{flexShrink:0,color:"var(--text-dim)"},"aria-hidden":"true"}):(0,n.jsx)(o8.A,{size:14,style:{flexShrink:0,color:"var(--text-dim)"},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:13,fontWeight:500},title:t.projectRoot,children:t.name}),t.collapsed&&t.hasUnread&&!t.hasRunning&&(0,n.jsx)(iq,{}),(0,n.jsxs)("div",{"data-folder-actions":!0,style:{position:"absolute",right:6,top:4,display:"flex",gap:2,opacity:S||A===t.projectKey||F===t.projectKey?1:0,transition:"opacity 0.12s"},children:[(0,n.jsx)("button",{"data-menu-trigger":!0,onClick:e=>{e.stopPropagation(),P(A===t.projectKey?null:t.projectKey)},title:C("desktop.moreActions"),"aria-label":C("desktop.moreActions"),style:{...iK(A===t.projectKey),width:24,height:24},children:(0,n.jsx)(o7.A,{size:14,"aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),W({root:t.projectRoot,name:t.name})},title:C("desktop.viewFiles"),"aria-label":C("desktop.viewFiles"),style:{...iK(!1),width:24,height:24},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(o9.A,{size:14,"aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),p(t.projectRoot)},title:C("desktop.newSessionHere"),"aria-label":C("desktop.newSessionHere"),style:{...iK(!1),width:24,height:24},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(ie.A,{size:14,"aria-hidden":"true"})})]}),A===t.projectKey&&(0,n.jsx)("div",{ref:_,style:{position:"absolute",right:6,top:30,zIndex:30,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 6px 20px rgba(0,0,0,0.35)",padding:4,minWidth:120},children:(0,n.jsxs)("button",{onClick:()=>{P(null),(!(t.hasRunning||e.some(e=>(e.projectRoot??e.cwd)===t.projectRoot&&r.has(e.id)&&!e.archived))||window.confirm(C("desktop.removeProjectRunningConfirm")))&&x(t.projectRoot,t.name)},style:{display:"flex",alignItems:"center",gap:6,width:"100%",padding:"6px 10px",background:"none",border:"none",borderRadius:6,color:"var(--text)",fontSize:12,cursor:"pointer",textAlign:"left"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:[(0,n.jsx)(it.A,{size:12,style:{color:"var(--text-dim)"},"aria-hidden":"true"}),C("desktop.removeProject")]})})]})}),!t.collapsed&&(0,n.jsxs)("div",{children:[i.map(e=>ei(e,!0,"compact")),s>0&&(0,n.jsx)("button",{onClick:()=>O(e=>({...e,[t.projectKey]:eo(t.projectKey)+5})),style:{display:"block",width:"100%",padding:"5px 8px 5px 42px",background:"none",border:"none",borderRadius:6,color:"var(--text-dim)",fontSize:11,cursor:"pointer",textAlign:"left"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:C("desktop.showMore")})]})]},t.projectKey)})]}):"timeline"===z.organizeBy?(0,n.jsxs)("div",{style:{padding:"0 4px"},children:[0===Z.length&&!t&&(0,n.jsx)("div",{style:{padding:"16px 10px",color:"var(--text-muted)",fontSize:12},children:C(d.trim()?"desktop.noSearchResults":"desktop.noSessionsFound")}),Z.map(e=>ei(e))]}):(0,n.jsxs)("div",{style:{padding:"0 4px"},children:[0===Q.length&&!t&&(0,n.jsx)("div",{style:{padding:"16px 10px",color:"var(--text-muted)",fontSize:12},children:C(d.trim()?"desktop.noSearchResults":"desktop.noSessionsFound")}),Q.map(e=>(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{padding:"8px 8px 2px",fontSize:11,fontWeight:600,color:"var(--text-dim)",letterSpacing:"0.04em"},children:C("pinned"===e.key?"desktop.pinned":"today"===e.key?"desktop.today":"yesterday"===e.key?"desktop.yesterday":"desktop.older")}),e.rows.map(e=>ei(e.session,e.forkDepth>0))]},e.key))]});return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",flex:"1 1 0",minHeight:0,overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:2,padding:"6px 6px 4px",flexShrink:0},children:[(0,n.jsxs)("button",{onClick:k,title:C("desktop.newTask"),"aria-label":C("desktop.newTask"),style:{display:"flex",alignItems:"center",gap:8,width:"100%",height:32,padding:"0 10px",background:"transparent",border:"none",borderRadius:8,color:"var(--text)",fontSize:13,fontWeight:500,textAlign:"left",cursor:"pointer",transition:"background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},children:[(0,n.jsx)(io.A,{size:16,style:{flexShrink:0,color:"var(--text-muted)"},"aria-hidden":"true"}),C("desktop.newTask")]}),(0,n.jsxs)("button",{onClick:()=>j?.(),title:C("palette.placeholder"),"aria-label":C("palette.open"),className:"palette-open-button",children:[(0,n.jsx)(ii.A,{size:16,style:{flexShrink:0,color:"var(--text-muted)"},"aria-hidden":"true"}),C("palette.open"),(0,n.jsx)("span",{className:"palette-kbd",children:iz("u">typeof navigator&&/mac/i.test(navigator.platform))})]}),d.trim()&&(0,n.jsxs)("div",{className:"panel-filter-notice",children:[(0,n.jsxs)("span",{className:"panel-filter-notice-text",children:[C("desktop.filteringBy")," ",(0,n.jsx)("strong",{children:d})]}),(0,n.jsx)("button",{type:"button",onClick:()=>c(""),"aria-label":C("desktop.clearFilter"),title:C("desktop.clearFilter"),className:"panel-filter-notice-clear",children:(0,n.jsx)(it.A,{size:11,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:2,paddingTop:2},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:1,background:"var(--bg-hover)",borderRadius:12,padding:2},children:[(0,n.jsxs)("button",{style:er("grouped"===z.organizeBy),onClick:()=>en("grouped"),"aria-pressed":"grouped"===z.organizeBy,children:[(0,n.jsx)(is.A,{size:11,style:{opacity:.7},"aria-hidden":"true"}),C("desktop.panelGroupBubble")]}),(0,n.jsxs)("button",{style:er("grouped"!==z.organizeBy),onClick:()=>en("project"),"aria-pressed":"grouped"!==z.organizeBy,children:[(0,n.jsx)(il.A,{size:11,"aria-hidden":"true"}),C("desktop.panelProjectBubble")]})]}),(0,n.jsx)("button",{onClick:et,title:R.size>0?C("desktop.expandAllFolders"):C("desktop.collapseAllFolders"),"aria-label":R.size>0?C("desktop.expandAllFolders"):C("desktop.collapseAllFolders"),style:{...iK(!1),marginLeft:2},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)"},children:R.size>0?(0,n.jsx)(ia.A,{size:13,"aria-hidden":"true"}):(0,n.jsx)(id.A,{size:13,"aria-hidden":"true"})}),!S&&(0,n.jsx)("button",{onClick:y,title:`${C("desktop.sidebarModeCycle")}:${C("desktop.sessionViewList")}`,"aria-label":C("desktop.sidebarModeCycle"),style:{...iK(!1),marginLeft:2},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(ic.A,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("div",{style:{flex:1}}),(0,n.jsxs)("div",{ref:U,style:{position:"relative"},children:[(0,n.jsx)("button",{onClick:()=>N(e=>!e),title:C("desktop.filterMenu"),"aria-label":C("desktop.filterMenu"),"aria-expanded":L,style:iK(L),onMouseEnter:e=>{L||(e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{L||(e.currentTarget.style.color="var(--text-muted)")},children:(0,n.jsx)(iu.A,{size:13,"aria-hidden":"true"})}),L&&(0,n.jsxs)("div",{style:{position:"absolute",right:0,top:28,zIndex:40,width:168,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:10,boxShadow:"0 8px 24px rgba(0,0,0,0.4)",padding:5},children:[(0,n.jsx)("div",{style:{padding:"6px 8px 2px",fontSize:11,fontWeight:600,color:"var(--text-dim)"},children:C("desktop.viewSection")}),[["project","desktop.viewByProject",il.A],["timeline","desktop.viewTimeline",ip.A]].map(([e,t,r])=>(0,n.jsxs)("button",{onClick:()=>{V({organizeBy:e})},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 7px",background:"none",border:"none",borderRadius:6,color:"var(--text)",fontSize:11.5,cursor:"pointer",textAlign:"left"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:[(0,n.jsx)(r,{size:13,style:{color:"var(--text-dim)",flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{flex:1},children:C(t)}),z.organizeBy===e&&(0,n.jsx)(ih.A,{size:13,strokeWidth:2.5,style:{color:"var(--accent)"},"aria-hidden":"true"})]},e)),(0,n.jsx)("div",{style:{height:1,background:"var(--border)",margin:"6px 4px"}}),(0,n.jsx)("div",{style:{padding:"2px 8px",fontSize:11,fontWeight:600,color:"var(--text-dim)"},children:C("desktop.sortSection")}),[["updated","desktop.sortUpdated"],["created","desktop.sortCreated"]].map(([e,t])=>(0,n.jsxs)("button",{onClick:()=>{V({sortBy:e})},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 7px",background:"none",border:"none",borderRadius:6,color:"var(--text)",fontSize:11.5,cursor:"pointer",textAlign:"left"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:[(0,n.jsx)("span",{style:{flex:1},children:C(t)}),z.sortBy===e&&(0,n.jsx)(ih.A,{size:13,strokeWidth:2.5,style:{color:"var(--accent)"},"aria-hidden":"true"})]},e)),(0,n.jsx)("div",{style:{height:1,background:"var(--border)",margin:"6px 4px"}}),(0,n.jsx)("div",{style:{padding:"2px 8px",fontSize:11,fontWeight:600,color:"var(--text-dim)"},children:C("desktop.hiddenProjectsSection")}),0===f.length?(0,n.jsx)("div",{style:{padding:"4px 8px 8px",fontSize:11,color:"var(--text-dim)"},children:C("desktop.noHiddenProjects")}):f.map(e=>(0,n.jsxs)("button",{onClick:()=>{N(!1),m(e)},title:e.path,style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 8px",background:"none",border:"none",borderRadius:6,color:"var(--text)",fontSize:12,cursor:"pointer",textAlign:"left"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:[(0,n.jsx)(il.A,{size:13,style:{color:"var(--text-dim)",flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name||e.path}),(0,n.jsx)("span",{style:{fontSize:11,color:"var(--accent)",flexShrink:0},children:C("desktop.restoreProject")})]},e.key))]})]}),(0,n.jsx)("button",{onClick:()=>{E(e=>!e),W(null)},title:C("desktop.archivedView"),"aria-label":C("desktop.archivedView"),"aria-pressed":M,style:iK(M),onMouseEnter:e=>{M||(e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{M||(e.currentTarget.style.color="var(--text-muted)")},children:M?(0,n.jsx)(it.A,{size:13,"aria-hidden":"true"}):(0,n.jsx)(ig.A,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:v,title:C("desktop.selectFolder"),"aria-label":C("desktop.selectFolder"),style:{...iK(!1),marginRight:2},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(ix.A,{size:13,"aria-hidden":"true"})})]})]}),t&&0===e.length&&(0,n.jsx)("div",{style:{padding:"16px 14px",color:"var(--text-muted)",fontSize:12},children:C("desktop.loading")}),(0,n.jsx)("div",{className:"scroll-overlay",style:{flex:"1 1 0",minHeight:0},children:es})]})}function iJ({session:e,isSelected:t,isRunning:r,isUnread:i,indent:s,forceActionsVisible:l,rowStyle:a,folderName:d,onSelect:p,onArchive:h,onRenamed:g}){let{t:x}=(0,Y.s)(),[f,m]=(0,o.useState)(!1),[v,y]=(0,o.useState)(!1),[b,k]=(0,o.useState)(!1),[j,w]=(0,o.useState)(null),S=(0,o.useRef)(null),C=os(e),z=e.messageCount>0,T=(0,o.useCallback)(async t=>{if(t.stopPropagation(),b){S.current?.abort(),u(e.id);return}if(!z)return;let r=new AbortController;S.current=r,k(!0),w(null);try{await c(e.id,r.signal),g()}catch(e){r.signal.aborted||w(e instanceof Error?e.message:String(e))}finally{S.current===r&&(S.current=null),k(!1)}},[b,z,e.id,g]);if(v)return(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,height:30,paddingLeft:s?42:10,paddingRight:6,background:"rgba(239,68,68,0.06)",borderRadius:6},children:[(0,n.jsx)("span",{style:{flex:1,minWidth:0,fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:x("desktop.archiveSessionConfirm",{title:`“${C.slice(0,18)}${C.length>18?"…":""}”`})}),(0,n.jsxs)("button",{onClick:()=>{y(!1),h()},style:{display:"flex",alignItems:"center",gap:4,height:24,padding:"0 9px",background:"var(--status-error)",border:"none",borderRadius:5,color:"#fff",fontSize:11,fontWeight:600,cursor:"pointer",whiteSpace:"nowrap"},children:[(0,n.jsx)(ig.A,{size:11,"aria-hidden":"true"}),x("desktop.archiveSession")]}),(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),y(!1)},style:{height:24,padding:"0 9px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-muted)",fontSize:11,cursor:"pointer",whiteSpace:"nowrap"},children:x("desktop.cancel")})]});let R=(0,n.jsxs)("div",{style:{display:"flex",gap:2,flexShrink:0},children:[(0,n.jsx)("button",{onClick:T,disabled:!z,title:j??x(z?b?"desktop.generatingTitle":"desktop.generateTitle":"desktop.titleNeedsMessages"),"aria-label":x("desktop.generateTitle"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:4,color:j?"var(--status-error)":"var(--text-dim)",cursor:z?"pointer":"default",flexShrink:0,opacity:b?.7:z?1:.35,transition:"color 0.12s"},onMouseEnter:e=>{!b&&z&&(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{e.currentTarget.style.color=j?"var(--status-error)":"var(--text-dim)"},children:b?(0,n.jsxs)("svg",{style:{animation:"spin 1s linear infinite"},width:"13",height:"13",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",opacity:"0.25"}),(0,n.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):(0,n.jsx)(im.A,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),y(!0)},title:x("desktop.archiveSession"),"aria-label":x("desktop.archiveSession"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:4,color:"var(--text-dim)",cursor:"pointer",flexShrink:0},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:(0,n.jsx)(ig.A,{size:13,"aria-hidden":"true"})})]}),I=f||l,M=r?(0,n.jsx)(i_,{}):i?(0,n.jsx)(iq,{}):null;return(0,n.jsxs)("div",{onClick:p,onMouseEnter:()=>m(!0),onMouseLeave:()=>m(!1),style:{position:"relative",padding:`${5*("detailed"===a)}px 6px ${5*("detailed"===a)}px ${s?42:18}px`,height:"detailed"===a?46:30,display:"flex",flexDirection:"column",justifyContent:"center",cursor:"pointer",borderRadius:8,background:t?"var(--bg-selected)":f?"var(--bg-hover)":"transparent",borderLeft:t?"2px solid var(--accent)":"2px solid transparent"},title:C,children:[M&&s&&(0,n.jsx)("span",{style:{position:"absolute",left:22,top:0,bottom:0,display:"flex",alignItems:"center"},children:M}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,minWidth:0},children:[M&&!s&&M,(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12.5,color:"var(--text)",fontWeight:t?500:400},children:C}),I?R:(0,n.jsx)("span",{style:{flexShrink:0,fontSize:11,color:"var(--text-dim)",whiteSpace:"nowrap"},children:iU(e.modified,x)})]}),"detailed"===a&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginTop:2,minWidth:0},children:[(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:11,color:"var(--text-dim)"},title:e.projectRoot??e.cwd,children:d}),I&&(0,n.jsx)("span",{style:{flexShrink:0,fontSize:11,color:"var(--text-dim)",whiteSpace:"nowrap"},children:iU(e.modified,x)})]})]})}function iY({session:e,folderName:t,onUnarchive:r,onDeleteForever:i}){let{t:s}=(0,Y.s)(),[l,a]=(0,o.useState)(!1),d=os(e);return(0,n.jsxs)("div",{onMouseEnter:()=>a(!0),onMouseLeave:()=>a(!1),style:{padding:"6px 10px",borderRadius:6,background:l?"var(--bg-hover)":"transparent"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12.5,color:"var(--text)"},title:d,children:d}),(0,n.jsx)("span",{style:{flexShrink:0,fontSize:11,color:"var(--text-dim)"},children:iU(e.archivedAt??e.modified,s)})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginTop:2},children:[(0,n.jsx)(il.A,{size:12,style:{color:"var(--text-dim)",flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:11,color:"var(--text-dim)"},title:e.projectRoot??e.cwd,children:t}),(0,n.jsx)("button",{onClick:r,title:s("desktop.unarchiveSession"),"aria-label":s("desktop.unarchiveSession"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,padding:0,background:"none",border:"none",borderRadius:4,color:"var(--text-dim)",cursor:"pointer",flexShrink:0},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:(0,n.jsx)(iv.A,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:i,title:s("desktop.deleteForever"),"aria-label":s("desktop.deleteForever"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,padding:0,background:"none",border:"none",borderRadius:4,color:"var(--status-error)",cursor:"pointer",flexShrink:0},onMouseEnter:e=>{e.currentTarget.style.color="var(--status-error)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--status-error)"},children:(0,n.jsx)(iy.A,{size:13,"aria-hidden":"true"})})]})]})}let iG="pi-web:file-explorer:open";function iX(){try{return window.localStorage}catch{return null}}function iZ(e=document){return"visible"!==e.visibilityState||!e.hasFocus()}async function iQ(e,t={createWindowNotification:(e,t)=>new Notification(e,t),getServiceWorkerRegistration:"serviceWorker"in navigator?()=>navigator.serviceWorker.getRegistration():null}){let r={body:e.body,...e.tag?{tag:e.tag,renotify:!0}:{}};if(t.getServiceWorkerRegistration)try{let n=await t.getServiceWorkerRegistration();if(n)return await n.showNotification(e.title,{...r,data:{url:e.sessionUrl}}),"service-worker"}catch{}try{let n=t.createWindowNotification(e.title,r);return n.onclick=()=>{n.close(),e.onClick()},"window"}catch{return null}}let i0=new Set(["models","skills","plugins","mcp","subagents","display"]),i1="pi-web:unread-session-ids";function i2(e,t,r=[]){let n=new Map;for(let t of e){let e=t.projectRoot??t.cwd;if(!e)continue;let r=n.get(e);(!r||t.modified>r)&&n.set(e,t.modified)}let o=new Set;for(let e of(t&&o.add(t),r))o.add(e);for(let e of o)n.has(e)||n.set(e,"￿");return[...n.entries()].sort((e,t)=>t[1].localeCompare(e[1])).map(([e])=>e)}function i6(e,t){if(!t)return e;let r=e.replace(/\\/g,"/").toLowerCase(),n=t.replace(/\\/g,"/").toLowerCase();if(!r.startsWith(n))return e;let o=e.slice(t.length);return"~"+(o.startsWith("/")||o.startsWith("\\"),o)}function i4(e){return e.replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean).pop()??e}function i5({text:e,style:t}){return(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",display:"block",minWidth:0,lineHeight:1.35,direction:"rtl",textAlign:"left",...t},children:(0,n.jsx)("span",{style:{unicodeBidi:"plaintext"},children:e})})}function i3({open:e,children:t,style:r}){let[i,s]=(0,o.useState)(e),[l,a]=(0,o.useState)(e);return((0,o.useEffect)(()=>{let t,r;return e?(s(!0),a(!1),t=window.requestAnimationFrame(()=>{t=window.requestAnimationFrame(()=>a(!0))})):(a(!1),r=setTimeout(()=>s(!1),140)),()=>{void 0!==t&&window.cancelAnimationFrame(t),r&&clearTimeout(r)}},[e]),i)?(0,n.jsx)("div",{style:{...r,opacity:+!!l,transform:l?"translateY(0) scale(1)":"translateY(-8px) scale(0.96)",transformOrigin:"top center",transition:"opacity 140ms ease, transform 140ms ease",pointerEvents:e?"auto":"none"},children:t}):null}let i8="pi-web:session-view-style";function i7({selectedSessionId:e,onSelectSession:t,onNewSession:r,initialSessionId:i,onInitialRestoreDone:s,refreshKey:l,onSessionDeleted:a,selectedCwd:d,onCwdChange:I,onOpenFile:M,explorerRefreshKey:E,onAtMention:$,onAtMentions:W,onFileCreated:L,onFileDeleted:N,selectedFilePath:A,onOpenSettings:P,selectedSessionStats:F,workspaceControlsHosts:D,showWorkspaceControls:H=!0,onOpenCommandPalette:O,cycleSidebarFormRef:B,onSessionsLoaded:U}){var _;let q,K,V,J,{t:G}=(0,Y.s)(),[X,Z]=(0,o.useState)([]);(0,o.useRef)(null);let Q=(0,o.useRef)(0),[ee,et]=(0,o.useState)(!0),[er,en]=(0,o.useState)(null),[eo,ei]=(0,o.useState)(null),[es,el]=(0,o.useState)([]),ea=(0,o.useCallback)(e=>{e&&el(t=>t.includes(e)?t:[...t,e])},[]),ed=tp(),[ec,eu]=(0,o.useState)(""),[ep,eh]=(0,o.useState)(!1),[eg,ex]=(0,o.useState)(null),[ef,em]=(0,o.useState)(null),[ev,ey]=(0,o.useState)(""),[eb,ek]=(0,o.useState)(!1),[ej,ew]=(0,o.useState)(null),[eS,eC]=(0,o.useState)(!1),ez=(0,o.useRef)(null),eT=(0,o.useRef)({title:null,welcome:null,titleRight:null}),[eR,eI]=(0,o.useState)(null),[eM,eE]=(0,o.useState)(!1),[e$,eW]=(0,o.useState)(!1),[eL,eN]=(0,o.useState)(""),[eA,eP]=(0,o.useState)(null),[eF,eD]=(0,o.useState)(!1),[eH,eO]=(0,o.useState)(null),[eB,eU]=(0,o.useState)(null),e_=(0,o.useRef)(null),eq=(0,o.useRef)(null),[eK,eV]=(0,o.useState)(!0),[eJ,eY]=(0,o.useState)(()=>{try{return"groups"===window.localStorage.getItem(i8)?"groups":"list"}catch{return"list"}}),[eG,eX]=(0,o.useState)(""),[eZ,eQ]=(0,o.useState)({pinned:!0,today:!0,yesterday:!0,older:!1}),e0=(0,o.useCallback)(e=>{eY(e);try{window.localStorage.setItem(i8,e)}catch{}},[]),[e1,e2]=(0,o.useState)(()=>(function(e=iT()){if(!e)return iE;try{let t=e.getItem(iR);return"dropdown"===t||"projects"===t?t:iE}catch{return iE}})()),e6=(0,o.useCallback)(e=>{e2(e),function(e,t=iT()){if(t)try{t.setItem(iR,e)}catch{}}(e),"projects"===e&&e9.current?.()},[]);(0,o.useEffect)(()=>{if(B)return B.current=()=>{"list"===eJ?e0("groups"):e6("projects")},()=>{B&&(B.current=null)}},[B,eJ,e0,e6]);let e4=ed?"projects":e1,e5="pi-web:sidebar-mode-hint-seen",[e3,e8]=(0,o.useState)(()=>{try{return!window.localStorage.getItem(e5)}catch{return!1}}),e7=(0,o.useCallback)(()=>{e8(!1);try{window.localStorage.setItem(e5,"1")}catch{}},[]),e9=(0,o.useRef)(null);(0,o.useEffect)(()=>{e9.current=e7},[e7]);let[te,tt]=(0,o.useState)([]),tr=(0,o.useCallback)(async()=>{try{let e=await fetch("/api/projects/visibility");if(!e.ok)return;let t=await e.json();tt(Array.isArray(t.hidden)?t.hidden:[])}catch{}},[]);(0,o.useEffect)(()=>{tr()},[tr]);let tn=(0,o.useCallback)(async(e,t)=>{try{let r=await fetch("/api/projects/visibility",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"hide",projectRoot:e,name:t})});if(r.ok){let e=await r.json();tt(Array.isArray(e.hidden)?e.hidden:[])}}catch{}},[]),to=(0,o.useCallback)(async e=>{try{let t=await fetch("/api/projects/visibility",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"unhide",projectRoot:e.path})});if(t.ok){let e=await t.json();tt(Array.isArray(e.hidden)?e.hidden:[])}}catch{}},[]),[ti,ts]=(0,o.useState)(!0),[tl,ta]=(0,o.useState)(0),[td,tc]=(0,o.useState)(!1),[tu,th]=(0,o.useState)(!1),[tg,tx]=(0,o.useState)(!1),[tf,tm]=(0,o.useState)(!1),[tv,ty]=(0,o.useState)(()=>new Set),[tb,tk]=(0,o.useState)(()=>(function(){try{let e=window.localStorage.getItem(i1);if(!e)return new Set;let t=JSON.parse(e);if(Array.isArray(t))return new Set(t.filter(e=>"string"==typeof e));return new Set}catch{return new Set}})()),tj=(0,o.useRef)(new Set),tw=(0,o.useRef)(!1),tS=(0,o.useRef)(null),tC=(0,o.useRef)(null),tz=(0,o.useRef)(null),tT=(0,o.useRef)(void 0);(0,o.useEffect)(()=>{tT.current=U},[U]);let tR=(0,o.useCallback)(async(e=!1,t=!1,r=!1)=>{let n=++Q.current;try{e&&et(!0);let o=await fetch(r?"/api/sessions?summary=1":t?"/api/sessions?force=1":"/api/sessions",{cache:"no-store"});if(!o.ok)throw Error(`HTTP ${o.status}`);let i=await o.json();if(n!==Q.current)return;Z(i.sessions),tT.current?.(i.sessions),tw.current||ty(e=>{let t=new Set(i.runningSessionIds??[]);return oh(e,t)?e:t});let s=new Set(i.sessions.map(e=>e.id));tk(e=>{if(0===e.size)return e;let t=new Set([...e].filter(e=>s.has(e)));return t.size===e.size?e:t}),en(null),e||(tx(!0),tS.current&&clearTimeout(tS.current),tS.current=setTimeout(()=>tx(!1),2e3))}catch(e){en(String(e))}finally{e&&et(!1)}},[]),[tI,tM]=(0,o.useState)({}),tE=(0,o.useCallback)(async()=>{try{let e=await fetch("/api/project-aliases");if(!e.ok)return;let t=await e.json();tM(t.aliases??{})}catch{}},[]);(0,o.useEffect)(()=>{tE()},[tE,l]);let t$=(0,o.useRef)(!1);(0,o.useEffect)(()=>{let e=!t$.current;t$.current=!0;let t=!0;return e?tR(!0,!1,!0).then(()=>{if(!t)return;let e=setTimeout(()=>{t&&tR(!1,!0)},750);return()=>clearTimeout(e)}):tR(!1,!0),()=>{t=!1}},[tR,l]),(0,o.useEffect)(()=>{ts(function(e=iX()){if(!e)return!0;try{return"false"!==e.getItem(iG)}catch{return!0}}())},[]),(0,o.useEffect)(()=>{try{0===tb.size?window.localStorage.removeItem(i1):window.localStorage.setItem(i1,JSON.stringify([...tb]))}catch{}},[tb]),(0,o.useEffect)(()=>{let e=!0,t=null,r=null,n=async()=>{if(!e||"visible"!==document.visibilityState)return;t?.abort();let o=new AbortController;t=o;try{let r=await fetch("/api/agent/running",{cache:"no-store",signal:o.signal});if(!r.ok||!e||t!==o)return;let n=await r.json();if(!e||t!==o)return;tw.current=!0,ty(e=>{let t=new Set((n.sessions??[]).filter(e=>e.running).map(e=>e.id));return oh(e,t)?e:t})}catch(e){"AbortError"!==e.name&&console.warn("Failed to poll running sessions",e)}finally{e&&t===o&&"visible"===document.visibilityState&&(r=setTimeout(n,2500))}},o=()=>{"visible"===document.visibilityState?n():(t?.abort(),r&&clearTimeout(r),r=null)};return n(),document.addEventListener("visibilitychange",o),()=>{e=!1,t?.abort(),r&&clearTimeout(r),document.removeEventListener("visibilitychange",o)}},[]),(0,o.useEffect)(()=>{let e=new EventSource("/api/agent/running/events");return e.onmessage=e=>{try{let t=JSON.parse(e.data),r=t.sessions?t.sessions.filter(e=>e.running).map(e=>e.id):t.runningSessionIds??[];tw.current=!0,ty(e=>{let t=new Set(r);return oh(e,t)?e:t})}catch{}},()=>e.close()},[]),(0,o.useEffect)(()=>{let e=new EventSource("/api/events"),t=new Set(["message_end","agent_end","entry_appended","session_info_changed","agent_settled","auto_compaction_end","session_pin_changed","session_archive_changed"]),r=null,n=!1;return e.onmessage=e=>{try{let o=JSON.parse(e.data);o&&o.type&&t.has(o.type)?n||(n=!0,r=setTimeout(()=>{n=!1,tR(!1)},2e3)):o&&"project_alias_changed"===o.type?tE():o&&"project_visibility_changed"===o.type&&tr()}catch{}},()=>{e.close(),r&&clearTimeout(r)}},[tR,tE,tr]),(0,o.useEffect)(()=>{let t=[...tj.current].filter(t=>!tv.has(t)&&t!==e),r=[...tv];if((t.length>0||r.length>0)&&tk(e=>{let n=new Set(e);return r.forEach(e=>n.delete(e)),t.forEach(e=>n.add(e)),n}),t.length>0&&("visible"!==document.visibilityState||!document.hasFocus())){let e=X.filter(e=>t.includes(e.id)),r=1===e.length?e[0]?.name||"Pi Web":`${e.length} conversations`;iQ({title:"Pi Web",body:1===e.length?"Agent finished":`${r} finished`,sessionUrl:`/?session=${t[0]}`,onClick:()=>window.focus()})}tj.current=tv},[tv,e,X]),(0,o.useEffect)(()=>{e&&tk(t=>{if(!t.has(e))return t;let r=new Set(t);return r.delete(e),r})},[e]),(0,o.useEffect)(()=>{void 0!==E&&ta(e=>e+1)},[E]),(0,o.useEffect)(()=>{fetch("/api/home").then(e=>e.json()).then(e=>{e.home&&eu(e.home)}).catch(()=>{})},[]);let tW=(0,o.useRef)(!1),tL=(0,o.useCallback)(e=>{if(!e)return null;if(eR&&eR.forCwd===e||eR?.worktrees.some(t=>oH(t.path,e)))return eR.projectRoot;let t=X.find(t=>oH(t.cwd,e));return t?.projectRoot??e},[eR,X]);(0,o.useEffect)(()=>{eo&&ea(eo)},[eo,ea]);let tN=(0,o.useRef)(null);(0,o.useEffect)(()=>{tN.current!==eo&&(tN.current=eo,I?.(eo,tL(eo)))},[eo,I,tL]);let tA=(0,o.useRef)(null);(0,o.useEffect)(()=>{d&&d!==tA.current&&(tA.current=d,ei(d))},[d]);let[tP,tF]=(0,o.useState)(0);(0,o.useLayoutEffect)(()=>{if(!eo){eI(null),eU(null);return}let e=!1;return eU(eo),fetch(`/api/worktrees?cwd=${encodeURIComponent(eo)}`).then(e=>e.json()).then(t=>{if(!e){if(eU(null),t.error||!t.projectRoot)return void eI(null);eI({forCwd:eo,projectRoot:t.projectRoot,isGit:t.isGit??!1,isTopLevel:t.isTopLevel??!1,worktrees:t.worktrees??[]})}}).catch(()=>{e||(eU(null),eI(null))}),()=>{e=!0}},[eo,tP,l]),(0,o.useEffect)(()=>{if(0!==X.length&&null===eo){if(i&&!tW.current){tW.current=!0;let e=X.find(e=>e.id===i);if(e){ei(e.cwd),t(e,!0);return}s?.()}if(d)return void ei(d);let e=i2(X,null);e.length>0&&ei(e[0])}},[X,eo,i,d,t,s]),(0,o.useEffect)(()=>{i&&(tW.current=!1)},[i]);let tD=(0,o.useCallback)(async e=>{let t=e.trim();if(t&&!eS){eC(!0),ew(null);try{let e=await fetch("/api/cwd/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:t})}),r=await e.json().catch(()=>({}));if(!e.ok||r.error)return void ew(r.error??`HTTP ${e.status}`);ei(r.cwd??t),ek(!1),eh(!1),ex(null);let n=r.cwd??t,o=te.find(e=>oH(e.path,n));o&&to(o)}catch(e){ew(e instanceof Error?e.message:String(e))}finally{eC(!1)}}},[eS,te,to]),tH=(0,o.useCallback)(()=>{ew(null),ek(!0)},[]),tO=(0,o.useCallback)(async()=>{try{let e=await fetch("/api/default-cwd",{method:"POST"}),t=await e.json();t.cwd&&(ei(t.cwd),ek(!1),ew(null),eh(!1),ex(null))}catch{}},[]),tB=(0,o.useCallback)(async()=>{let e=eL.trim();if(e&&!eF&&eR){eD(!0),eP(null);try{let t=await fetch("/api/worktrees",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:eR.projectRoot,branch:e})}),r=await t.json().catch(()=>({}));if(!t.ok||r.error||!r.path)return void eP(r.error??`HTTP ${t.status}`);eW(!1),eN(""),eE(!1),em(null),eI(t=>t?{...t,forCwd:r.path,worktrees:[...t.worktrees,{path:r.path,branch:e,isMain:!1}]}:t),ei(r.path),tF(e=>e+1)}catch(e){eP(e instanceof Error?e.message:String(e))}finally{eD(!1)}}},[eL,eF,eR]),tU=(0,o.useCallback)(async(e,t)=>{if(eR&&!eF){eD(!0),eP(null);try{let r=await fetch("/api/worktrees",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:eR.projectRoot,path:e,force:t})}),n=await r.json().catch(()=>({}));if(!r.ok){if(n.dirty&&!t)return void eO(e);eP(n.error??`HTTP ${r.status}`);return}eO(null),eo===e&&ei(eR.projectRoot),tF(e=>e+1)}catch(e){eP(e instanceof Error?e.message:String(e))}finally{eD(!1)}}},[eR,eF,eo]);(0,o.useEffect)(()=>{let e=e=>{let t=e.target;ez.current?.contains(t)||e_.current?.contains(t)||Object.values(eT.current).some(e=>e?.contains(t))||(eh(!1),ex(null),eE(!1),em(null),ey(""),ew(null),eW(!1),eN(""),eP(null),eO(null))};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]);let t_=(0,o.useCallback)(e=>{e.cwd&&ei(e.cwd),t(e)},[t]),tq=(0,o.useCallback)(e=>{a?.(e),tR()},[a,tR]),tK=(0,o.useCallback)((e,t)=>{Z(r=>r.map(r=>r.id===e.id?{...r,pinned:t}:r)),fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({pinned:t})}).then(e=>{if(!e.ok)throw Error(`HTTP ${e.status}`)}).catch(()=>{Z(r=>r.map(r=>r.id===e.id?{...r,pinned:!t}:r)),tR(!1)})},[tR]),tV=(0,o.useCallback)((e,t)=>{Z(r=>r.map(r=>r.id===e.id?{...r,archived:t}:r)),fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({archived:t})}).then(r=>{if(!r.ok)throw Error(`HTTP ${r.status}`);t&&tq(e.id)}).catch(()=>{Z(r=>r.map(r=>r.id===e.id?{...r,archived:!t}:r)),tR(!1)})},[tq,tR]),tJ=(0,o.useCallback)(async e=>{try{if(!(await fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"DELETE"})).ok)return;tq(e.id),tR(!1)}catch{}},[tq,tR]),tY=(0,o.useCallback)(e=>{let t="function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${Math.random().toString(36).slice(2)}`;ei(e),ea(e),r?.(t,e)},[r,ea]),tG=(0,o.useCallback)(()=>{let e="function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${Math.random().toString(36).slice(2)}`;ei(""),r?.(e,"")},[r]),tX=(0,o.useCallback)(()=>{if(!eo)return;let e="function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${Math.random().toString(36).slice(2)}`;r?.(e,eo)},[eo,r]),tZ=tL(eo),tQ=i2(X,eo?tL(eo)??eo:null,es),t0=ev.trim()?tQ.filter(e=>e.toLowerCase().includes(ev.trim().toLowerCase())):tQ,t1=(0,o.useMemo)(()=>(tZ?X.filter(e=>!e.archived&&(e.projectRoot??e.cwd)===tZ):X.filter(e=>!e.archived)).filter(e=>e.relation?.kind!=="subagent"),[X,tZ]),[t2,t6]=(0,o.useState)(!1),[t4,t5]=(0,o.useState)({done:0,total:0}),t3=(0,o.useRef)(new Map),t8=(0,o.useRef)(!1),t7=(0,o.useCallback)(async()=>{if(t2){for(let[e,t]of(t8.current=!0,t3.current))t.abort(),u(e);return}let e=t1.filter(e=>e.messageCount>0).map(e=>e.id);if(0===e.length)return;t8.current=!1,t6(!0),t5({done:0,total:e.length});let t=0,r=0,n=async()=>{for(;!t8.current;){let n=e[t++];if(!n)return;let o=new AbortController;t3.current.set(n,o);try{await c(n,o.signal)}catch{}finally{t3.current.delete(n),t5({done:r+=1,total:e.length})}}};await Promise.all(Array.from({length:Math.min(2,e.length)},n)),t3.current.clear(),t6(!1),tR(!1)},[t2,t1,tR]),t9=!!(eR?.isGit&&eR.isTopLevel&&eo&&tZ===eR.projectRoot),re=eo&&eR&&tZ===eR.projectRoot&&!t9?eR.isGit?{label:G("desktop.openRepoRoot"),title:G("desktop.openRepoRootDescription")}:{label:G("desktop.gitRepoRootOnly"),title:G("desktop.gitRepoRootOnlyDescription")}:null,rt=!!(eo&&eB===eo),rr=re??(rt&&!t9?{label:G("desktop.worktreesLoading"),title:G("desktop.checkingWorktrees")}:null),rn=(0,o.useMemo)(()=>{let e=eG.trim().toLowerCase();return e?t1.filter(t=>{let r=(t.name||t.firstMessage||"").toLowerCase(),n=(t.branch||"").toLowerCase();return r.includes(e)||n.includes(e)}):t1},[eG,t1]),ro=(0,o.useMemo)(()=>(function(e){let t=new Map;for(let r of e)t.set(r.id,{session:r,children:[]});let r=new Map;for(let t of e)t.parentSessionId&&r.set(t.id,t.parentSessionId);let n=[];for(let e of t.values()){let o=function(e){let n=r.get(e),o=new Set;for(;n&&!o.has(n);){if(o.add(n),t.has(n))return n;n=r.get(n)}return null}(e.session.id);o?t.get(o).children.push(e):n.push(e)}let o=e=>{e.sort((e,t)=>t.session.modified.localeCompare(e.session.modified)),e.forEach(e=>o(e.children))};return o(n),n})(rn),[rn]),[ri,rs]=(0,o.useState)(0);(0,o.useEffect)(()=>{let e=setInterval(()=>rs(e=>e+1),6e4);return()=>clearInterval(e)},[]);let rl=(0,o.useMemo)(()=>iO(rn,X),[rn,X,ri]),ra=eR?.worktrees.find(e=>oH(e.path,eo??""))??eR?.worktrees.find(e=>e.isMain)??null,rd=(0,o.useCallback)(e=>{for(let t of Object.keys(tI))if(oH(t,e))return tI[t]},[tI]),[rc,ru]=(0,o.useState)(null),[rp,rh]=(0,o.useState)(""),rg=(0,o.useRef)(null),rx=(0,o.useCallback)(e=>{ru(e),rh(rd(e)??""),setTimeout(()=>rg.current?.focus(),0)},[rd]),rf=(0,o.useCallback)(async e=>{ru(null);let t=rp.trim();tM(r=>{let n=Object.keys(r).find(t=>oH(t,e))??e,o={...r};return t?o[n]=t:delete o[n],o});try{let r=await fetch("/api/project-aliases",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,alias:t})}),n=await r.json().catch(()=>null);if(!r.ok||!n?.aliases)throw Error(`HTTP ${r.status}`);tM(n.aliases)}catch{tE()}},[rp,tE]),rm=tZ?rd(tZ)??i4(tZ):i&&!tW.current?"":`${G("desktop.selectProject")}…`,rv=(0,n.jsx)("div",{style:{borderBottom:"1px solid var(--border)",flexShrink:0},children:(0,n.jsxs)("div",{style:{position:"relative",display:"flex",alignItems:"center"},children:[(0,n.jsx)(h.e,{size:13,color:"var(--text-dim)",style:{position:"absolute",left:12,pointerEvents:"none"},"aria-hidden":"true"}),(0,n.jsx)("input",{value:ev,onChange:e=>ey(e.target.value),onKeyDown:e=>{"Escape"===e.key&&(ev?ey(""):(eh(!1),ex(null)))},placeholder:G("desktop.searchProjects"),"aria-label":G("desktop.searchProjects"),autoFocus:!0,style:{width:"100%",padding:"8px 12px 8px 34px",background:"transparent",border:"none",outline:"none",color:"var(--text)",fontSize:12,fontFamily:"var(--font-mono)",boxSizing:"border-box"}})]})}),ry=(0,n.jsxs)("div",{className:"scroll-overlay",style:{maxHeight:"min(32vh, 240px)",flex:1,minHeight:0,padding:"4px"},children:[t0.length>0&&(0,n.jsx)("div",{style:{padding:"5px 8px 3px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:G("desktop.recentProjects")}),t0.map(e=>{let t=e===tZ,r=function(e,t){if(!t)return!1;let r=e.replace(/\\/g,"/").toLowerCase(),n=t.replace(/\\/g,"/").toLowerCase();if(!r.startsWith(n))return!1;let o=r.slice(n.length).replace(/^\/+/,"").split("/")[0]??"";return/^pi-cwd-\d{8}$/.test(o)}(e,ec),o=rd(e);return rc===e?(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"2px 8px"},children:[(0,n.jsx)("input",{ref:rg,value:rp,onChange:e=>rh(e.target.value),onKeyDown:t=>{"Enter"===t.key&&(t.preventDefault(),rf(e)),"Escape"===t.key&&(ru(null),rh(o??""))},onBlur:()=>void rf(e),placeholder:G("desktop.projectAliasPlaceholder"),"aria-label":G("desktop.projectAliasPlaceholder"),maxLength:80,style:{flex:1,minWidth:0,fontSize:12,fontFamily:"var(--font-mono)",padding:"4px 8px",border:"1px solid var(--accent)",borderRadius:5,outline:"none",background:"var(--bg)",color:"var(--text)",boxSizing:"border-box"}}),(0,n.jsx)("button",{onMouseDown:e=>e.preventDefault(),onClick:()=>{ru(null),rh(o??"")},title:G("i18n.close"),"aria-label":G("i18n.close"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,padding:0,background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",borderRadius:5,flexShrink:0},onMouseEnter:e=>{e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-selected)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:(0,n.jsx)(g.X,{size:11,"aria-hidden":"true"})})]},e):(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",width:"100%",background:t?"var(--bg-selected)":"transparent",borderRadius:5,minWidth:0},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="transparent")},children:[(0,n.jsxs)("button",{onClick:()=>{ei(e),ey(""),ek(!1),ew(null),eh(!1),ex(null)},title:e,style:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:6,padding:"3px 8px",background:"transparent",border:"none",color:t?"var(--accent)":"var(--text)",cursor:"pointer",textAlign:"left",fontSize:12,fontFamily:"var(--font-mono)",transition:"background 0.1s"},onMouseDown:e=>{e.currentTarget.style.background="var(--bg-selected)"},children:[r?(0,n.jsx)(x.l,{size:12,color:t?"var(--accent)":"var(--text-dim)",weight:t?"fill":"regular",style:{flexShrink:0},"aria-hidden":"true"}):t?(0,n.jsx)(f.J,{size:12,color:"var(--accent)",weight:"bold",style:{flexShrink:0},"aria-hidden":"true"}):(0,n.jsx)("span",{style:{width:12,flexShrink:0}}),(0,n.jsxs)("span",{style:{display:"flex",alignItems:"baseline",gap:6,flex:1,minWidth:0},children:[(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,flex:o?"0 1 auto":"1 1 0"},children:o??i4(e)}),o&&(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:10},children:i4(e)})]})]}),(0,n.jsx)("button",{onClick:t=>{t.stopPropagation(),rx(e)},title:G("desktop.editProjectAlias"),"aria-label":G("desktop.editProjectAlias"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,padding:0,marginRight:4,background:"none",border:"none",color:t?"var(--accent)":"var(--text-dim)",cursor:"pointer",borderRadius:5,flexShrink:0,opacity:.7},onMouseEnter:e=>{e.currentTarget.style.opacity="1",e.currentTarget.style.color=t?"var(--accent)":"var(--text-muted)",e.currentTarget.style.background="var(--bg-selected)"},onMouseLeave:e=>{e.currentTarget.style.opacity="0.7",e.currentTarget.style.color=t?"var(--accent)":"var(--text-dim)",e.currentTarget.style.background="none"},children:(0,n.jsx)(m.I,{size:12,weight:"regular","aria-hidden":"true"})})]},e)}),0===t0.length&&(0,n.jsx)("div",{style:{padding:"8px",fontSize:12,color:"var(--text-dim)"},children:ev.trim()?G("desktop.noMatchingProjects"):G("desktop.noProjectsYet")})]}),rb=(0,n.jsxs)("div",{style:{borderTop:"1px solid var(--border)",padding:"4px",flexShrink:0},children:[(0,n.jsxs)("button",{onClick:e=>{e.stopPropagation(),tO()},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 8px",background:"transparent",border:"none",borderRadius:5,color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:12},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent",e.currentTarget.style.color="var(--text-muted)"},children:[(0,n.jsx)(x.l,{size:14,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{children:G("desktop.quickWorkspace")})]}),(0,n.jsxs)("button",{onClick:e=>{e.stopPropagation(),tH()},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 8px",background:"transparent",border:"none",borderRadius:5,color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:12},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent",e.currentTarget.style.color="var(--text-muted)"},children:[(0,n.jsx)(v.Bm,{size:14,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{children:G("desktop.selectFolder")})]})]}),rk=ra?ra.branch??i4(ra.path):rr?.label,rj="dropdown"===e4,rw=ra?.branch?(0,n.jsxs)("span",{title:`${G("desktop.branch")}: ${ra.branch}`,style:{display:"inline-flex",alignItems:"center",gap:5,maxWidth:160,padding:"2px 8px",border:"1px solid var(--border)",borderRadius:999,background:"color-mix(in srgb, var(--accent) 10%, var(--bg))",color:"var(--text-muted)",fontSize:11,fontFamily:"var(--font-mono)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",flexShrink:0},children:[(0,n.jsx)(y.Z,{size:11,weight:"regular","aria-hidden":"true"}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:ra.branch})]}):null,rS=t9?(0,n.jsxs)("div",{style:{position:"relative",display:"flex",alignItems:"center",flexShrink:0},children:[(0,n.jsx)("button",{type:"button",className:"app-no-drag",onClick:()=>em(e=>"title"===e?null:"title"),"aria-label":G("desktop.switchWorktree"),"aria-expanded":"title"===ef,title:ra?G("desktop.switchWorktreeWithPath",{path:ra.path}):G("desktop.switchWorktree"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:30,height:30,padding:0,background:"title"===ef?"var(--bg-selected)":"none",border:"1px solid var(--border)",borderRadius:999,color:"title"===ef?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"background 0.12s, color 0.12s, border-color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="title"===ef?"var(--bg-selected)":"none",e.currentTarget.style.color="title"===ef?"var(--text)":"var(--text-muted)"},children:(0,n.jsx)(y.Z,{size:14,weight:"regular","aria-hidden":"true"})}),(0,n.jsxs)(i3,{open:"title"===ef,style:{position:"absolute",top:"calc(100% + 4px)",right:0,width:"min(320px, calc(88vw - 16px))",zIndex:1e3,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 6px 20px rgba(0,0,0,0.16)",overflow:"hidden"},children:[(0,n.jsx)("div",{className:"scroll-overlay",style:{maxHeight:"min(40vh, 300px)"},children:eR?.worktrees.map(e=>{let t=oH(e.path,eo??"")||e.isMain&&!eR.worktrees.some(e=>oH(e.path,eo??""));return(0,n.jsxs)("button",{onClick:()=>{ei(e.path),eE(!1),em(null),eP(null)},title:e.path,style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"8px 10px",background:"var(--bg)",border:"none",borderBottom:"1px solid var(--border)",color:t?"var(--text)":"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11,fontFamily:"var(--font-mono)"},children:[t?(0,n.jsx)(f.J,{size:10,color:"var(--accent)",weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}):(0,n.jsx)("span",{style:{width:10,flexShrink:0}}),(0,n.jsx)(i5,{text:e.branch??i6(e.path,ec),style:{flex:1}}),e.isMain&&(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:10},children:G("desktop.main")})]},e.path)})}),e$?(0,n.jsxs)("div",{style:{padding:"6px 8px",borderTop:"1px solid var(--border)"},children:[(0,n.jsx)("input",{ref:eq,value:eL,onChange:e=>{eN(e.target.value),eP(null)},onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),tB()),"Escape"===e.key&&(eW(!1),eN(""),eP(null))},placeholder:G("desktop.branchName"),style:{width:"100%",fontSize:11,fontFamily:"var(--font-mono)",padding:"5px 8px",border:"1px solid var(--accent)",borderRadius:5,outline:"none",background:"var(--bg)",color:"var(--text)",boxSizing:"border-box"}}),(0,n.jsxs)("div",{style:{display:"flex",gap:5,marginTop:5},children:[(0,n.jsx)("button",{onClick:()=>void tB(),disabled:eF||!eL.trim(),style:{flex:1,padding:"4px 0",background:"var(--accent)",border:"none",borderRadius:5,color:"var(--accent-fg)",fontSize:11,fontWeight:600,cursor:eF||!eL.trim()?"not-allowed":"pointer",opacity:eF||!eL.trim()?.65:1},children:eF?G("desktop.creating"):G("desktop.create")}),(0,n.jsx)("button",{onClick:()=>{eW(!1),eN(""),eP(null)},style:{flex:1,padding:"4px 0",background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-muted)",fontSize:11,cursor:"pointer"},children:G("desktop.cancel")})]}),eA&&(0,n.jsx)("div",{style:{marginTop:5,color:"var(--status-error)",fontSize:11,lineHeight:1.35,overflowWrap:"anywhere"},children:eA})]}):(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),eW(!0),eP(null),setTimeout(()=>eq.current?.focus(),0)},title:G("desktop.createWorktree"),style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"8px 10px",background:"none",border:"none",borderTop:"1px solid var(--border)",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11},children:(0,n.jsx)("span",{children:G("desktop.newWorktree")})})]})]}):null;return(0,n.jsxs)(n.Fragment,{children:[eb&&(0,n.jsx)(om,{busy:eS,error:ej,onCancel:()=>{eS||(ek(!1),ew(null))},onSelect:e=>void tD(e)}),D?.welcome&&(0,p.createPortal)((0,n.jsx)("div",{ref:e=>{eT.current.welcome=e},style:{height:"100%",display:"flex"},children:(q="welcome"==(_="welcome"),K=eg===_,V=ef===_,J=tZ?rd(tZ)??i4(tZ):rm,H?(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"flex-start",gap:q?6:2,height:q?"auto":"100%",minWidth:0,width:q?"100%":void 0},children:[(0,n.jsxs)("div",{style:{position:"relative",minWidth:0,width:q?"fit-content":void 0,maxWidth:q?"min(100%, 560px)":void 0},children:[(0,n.jsxs)("button",{className:`app-no-drag app-titlebar-context-control workspace-project-control${q?" workspace-project-control-large":""}`,onClick:()=>ex(e=>e===_?null:_),title:tZ??eo??G("desktop.selectProject"),"aria-label":G("desktop.selectProject"),"aria-expanded":K,style:{height:q?48:36,width:q?"100%":void 0,maxWidth:q?"100%":260,minWidth:0,display:"flex",alignItems:"center",gap:q?10:6,padding:q?"0 12px":"0 8px",background:K?"var(--bg-selected)":"none",border:"none",borderRadius:8*!!q,color:K?"var(--text)":eo?q?"var(--text)":"var(--text-muted)":"var(--text-dim)",cursor:"pointer",fontSize:q?24:12,fontWeight:500,fontFamily:"var(--font-mono)",lineHeight:1,letterSpacing:0,textAlign:"left",transition:"background 0.12s, color 0.12s, border-color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color=eo?"var(--text)":"var(--text-muted)"},onMouseLeave:e=>{e.currentTarget.style.background=K?"var(--bg-selected)":"none",e.currentTarget.style.color=K?"var(--text)":eo?"var(--text-muted)":"var(--text-dim)"},children:[(0,n.jsx)(i5,{text:q?J:rm,style:{flex:1,minWidth:0,color:"inherit",direction:"ltr",fontFamily:"inherit"}}),(0,n.jsx)(b.a,{size:12,weight:"regular",style:{flexShrink:0,transition:"transform 0.12s",transform:K?"rotate(180deg)":"none"},"aria-hidden":"true"})]}),(0,n.jsxs)(i3,{open:K,style:{position:"absolute",top:"calc(100% + 4px)",left:0,width:"min(320px, calc(88vw - 16px))",zIndex:1e3,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 6px 20px rgba(0,0,0,0.16)",overflow:"hidden",display:"flex",flexDirection:"column",maxHeight:"min(38vh, 300px)"},children:[rv,ry,rb]})]}),q&&(t9||rr)&&(0,n.jsxs)("div",{style:{position:"relative",minWidth:0},children:[(0,n.jsxs)("button",{className:"app-no-drag app-titlebar-context-control workspace-worktree-control",onClick:()=>{t9&&em(e=>e===_?null:_)},"aria-label":G("desktop.switchWorktree"),"aria-expanded":t9?V:void 0,"aria-disabled":!t9,tabIndex:t9?0:-1,title:t9&&ra?G("desktop.switchWorktreeWithPath",{path:ra.path}):rr?.title,style:{height:36,maxWidth:220,minWidth:0,display:"flex",alignItems:"center",gap:6,padding:"0 8px",background:V?"var(--bg-selected)":"none",border:"none",color:V?"var(--text)":t9?"var(--text-muted)":"var(--text-dim)",cursor:t9?"pointer":"default",fontSize:12,fontWeight:500,fontFamily:"var(--font-mono)",lineHeight:1,letterSpacing:0,opacity:t9?1:.82,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{t9&&(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background=V?"var(--bg-selected)":"none",e.currentTarget.style.color=V?"var(--text)":t9?"var(--text-muted)":"var(--text-dim)"},children:[(0,n.jsx)(y.Z,{size:16,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),q&&(0,n.jsx)("span",{className:"worktree-title-label",children:(0,n.jsx)(i5,{text:rk??"",style:{flex:1,minWidth:0,color:"inherit",direction:"ltr",fontFamily:"inherit"}})}),t9&&(0,n.jsx)(b.a,{size:12,weight:"regular",style:{flexShrink:0,transition:"transform 0.12s",transform:V?"rotate(180deg)":"none"},"aria-hidden":"true"})]}),(0,n.jsxs)(i3,{open:t9&&V,style:{position:"absolute",top:"calc(100% + 4px)",left:0,width:"min(320px, calc(88vw - 16px))",zIndex:1e3,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 6px 20px rgba(0,0,0,0.16)",overflow:"hidden"},children:[(0,n.jsx)("div",{className:"scroll-overlay",style:{maxHeight:"min(40vh, 300px)"},children:eR?.worktrees.map(e=>{let t=oH(e.path,eo??"")||e.isMain&&!eR.worktrees.some(e=>oH(e.path,eo??""));return(0,n.jsxs)("button",{onClick:()=>{ei(e.path),eE(!1),em(null),eP(null)},title:e.path,style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"8px 10px",background:"var(--bg)",border:"none",borderBottom:"1px solid var(--border)",color:t?"var(--text)":"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11,fontFamily:"var(--font-mono)"},children:[t?(0,n.jsx)(f.J,{size:10,color:"var(--accent)",weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}):(0,n.jsx)("span",{style:{width:10,flexShrink:0}}),(0,n.jsx)(i5,{text:e.branch??i6(e.path,ec),style:{flex:1}}),e.isMain&&(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:10},children:G("desktop.main")})]},e.path)})}),e$?(0,n.jsxs)("div",{style:{padding:"6px 8px"},children:[(0,n.jsx)("input",{ref:eq,value:eL,onChange:e=>{eN(e.target.value),eP(null)},onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),tB()),"Escape"===e.key&&(eW(!1),eN(""),eP(null))},placeholder:G("desktop.branchName"),style:{width:"100%",fontSize:11,fontFamily:"var(--font-mono)",padding:"5px 8px",border:"1px solid var(--accent)",borderRadius:5,outline:"none",background:"var(--bg)",color:"var(--text)",boxSizing:"border-box"}}),(0,n.jsxs)("div",{style:{display:"flex",gap:5,marginTop:5},children:[(0,n.jsx)("button",{onClick:()=>void tB(),disabled:eF||!eL.trim(),style:{flex:1,padding:"4px 0",background:"var(--accent)",border:"none",borderRadius:5,color:"var(--accent-fg)",fontSize:11,fontWeight:600,cursor:eF||!eL.trim()?"not-allowed":"pointer",opacity:eF||!eL.trim()?.65:1},children:eF?G("desktop.creating"):G("desktop.create")}),(0,n.jsx)("button",{onClick:()=>{eW(!1),eN(""),eP(null)},style:{flex:1,padding:"4px 0",background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-muted)",fontSize:11,cursor:"pointer"},children:G("desktop.cancel")})]}),eA&&(0,n.jsx)("div",{style:{marginTop:5,color:"var(--status-error)",fontSize:11,lineHeight:1.35,overflowWrap:"anywhere"},children:eA})]}):(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),eW(!0),eP(null),setTimeout(()=>eq.current?.focus(),0)},title:G("desktop.createWorktree"),style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"8px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11},children:(0,n.jsx)("span",{children:G("desktop.newWorktree")})})]})]})]}):null)}),D.welcome,"welcome"),D?.titleRight&&!ed&&(0,p.createPortal)((0,n.jsxs)("div",{ref:e=>{eT.current.titleRight=e},style:{display:"flex",alignItems:"center",gap:6,minWidth:0},children:[rw,rS]}),D.titleRight,"titleRight"),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden",position:"relative"},children:[e3&&"dropdown"===e4&&(0,n.jsxs)("div",{role:"dialog","aria-label":G("desktop.sidebarModeHintTitle"),style:{position:"absolute",top:40,left:8,right:8,zIndex:60,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:10,boxShadow:"0 10px 28px rgba(0,0,0,0.4)",padding:10},children:[(0,n.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)"},children:G("desktop.sidebarModeHintTitle")}),(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:4,lineHeight:1.55},children:G("desktop.sidebarModeHintDesc")}),(0,n.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginTop:8},children:(0,n.jsx)("button",{onClick:e7,style:{height:24,padding:"0 10px",background:"var(--bg-selected)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",fontSize:11.5,fontWeight:500,cursor:"pointer"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text)"},children:G("desktop.sidebarModeHintOk")})})]}),"projects"===e4?(0,n.jsx)(iV,{sessions:X,loading:ee,runningIds:tv,unreadIds:tb,aliases:tI,selectedSessionId:e,selectedProjectRoot:tZ,searchQuery:eG,onSearchQueryChange:eX,onSelectSession:t_,onNewSessionInProject:tY,onArchive:tV,onDeleteForever:tJ,onRemoveProject:tn,hiddenProjects:te,onUnhideProject:to,onPickFolder:()=>ek(!0),onCycleToList:()=>{e0("list"),e6("dropdown")},onRenamed:()=>void tR(!1),onNewTask:tG,onOpenCommandPalette:O,renderFileTree:e=>(0,n.jsx)(o0,{ref:tz,cwd:e,onOpenFile:M??(()=>{}),refreshKey:tl,onAtMention:$,onAtMentions:W,onUploadBusyChange:tc,fileSearchOpen:tu,onFileSearchOpenChange:th,onFileCreated:L,onFileDeleted:N,selectedFilePath:A}),isMobile:ed}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{style:{flexShrink:0},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[(0,n.jsxs)("button",{onClick:()=>eV(e=>!e),style:{display:"flex",alignItems:"center",gap:6,flex:1,padding:"6px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:11,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",textAlign:"left"},children:[(0,n.jsx)(k.K,{size:9,weight:"regular",style:{transform:eK?"rotate(90deg)":"none",transition:"transform 0.15s",flexShrink:0},"aria-hidden":"true"}),G("desktop.sessions")]}),(0,n.jsx)("button",{onClick:()=>{"list"===eJ?e0("groups"):e6("projects")},title:`${G("desktop.sidebarModeCycle")}:${"list"===eJ?G("desktop.sessionViewGroups"):G("desktop.showAllProjects")}`,"aria-label":G("desktop.sidebarModeCycle"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,padding:0,marginRight:2,flexShrink:0,background:"none",border:"none",borderRadius:5,color:"var(--text-dim)",cursor:"pointer",transition:"color 0.12s, background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:"list"===eJ?(0,n.jsx)(j.B,{size:12,weight:"regular","aria-hidden":"true"}):(0,n.jsx)(w.d,{size:12,weight:"regular","aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:tX,disabled:!eo,title:eo?G("desktop.newSessionIn",{cwd:eo}):G("desktop.selectProjectFirst"),"aria-label":G("desktop.newSession"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,background:"none",border:"none",color:"var(--text-dim)",cursor:eo?"pointer":"default",borderRadius:5,flexShrink:0,opacity:eo?1:.6,transition:"color 0.3s, background 0.3s"},onMouseEnter:e=>{eo&&(e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:(0,n.jsx)(S.F,{size:13,weight:"regular","aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:()=>void t7(),disabled:!eo||0===t1.filter(e=>e.messageCount>0).length,title:t2?`${G("desktop.generatingTitlesProgress",{done:t4.done,total:t4.total})}`:G("desktop.generateAllTitles"),"aria-label":G("desktop.generateAllTitles"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",borderRadius:5,flexShrink:0,opacity:eo&&0!==t1.filter(e=>e.messageCount>0).length?1:.5,transition:"color 0.3s, background 0.3s"},onMouseEnter:e=>{t2||(e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:t2?(0,n.jsxs)("svg",{style:{animation:"spin 1s linear infinite"},width:"13",height:"13",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",opacity:"0.25"}),(0,n.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):(0,n.jsx)(C.R,{size:13,weight:"regular","aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:()=>tR(!1),title:G("desktop.refresh"),"aria-label":G("desktop.refresh"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,marginRight:6,background:tg?"rgba(74,222,128,0.18)":"none",border:"none",color:tg?"var(--status-success)":"var(--text-dim)",cursor:"pointer",borderRadius:5,flexShrink:0,transition:"color 0.3s, background 0.3s"},onMouseEnter:e=>{tg||(e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{tg||(e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none")},children:tg?(0,n.jsx)(f.J,{size:13,color:"var(--status-success)",weight:"regular","aria-hidden":"true"}):(0,n.jsx)(z.S,{size:13,weight:"regular","aria-hidden":"true"})})]}),rj&&(0,n.jsxs)("div",{ref:ez,style:{position:"relative"},children:[(0,n.jsx)("button",{onClick:()=>eh(e=>!e),title:tZ??eo??"",style:{width:"100%",display:"flex",alignItems:"center",padding:"6px 10px",background:eo?"var(--bg-hover)":"rgba(37,99,235,0.06)",border:eo?"1px solid var(--border)":"1px solid rgba(37,99,235,0.4)",borderRadius:7,cursor:"pointer",fontSize:12,color:"var(--text)",textAlign:"left",transition:"border-color 0.15s, background 0.15s"},children:eo?(0,n.jsx)(i5,{text:rd(tZ??eo??"")??i4(tZ??eo??""),style:{flex:1,fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text)"}}):(0,n.jsx)("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-dim)"},children:i&&!tW.current?"":`${G("desktop.selectProject")}…`})}),(0,n.jsxs)(i3,{open:ep,style:{position:"absolute",top:"calc(100% + 4px)",left:0,right:0,zIndex:100,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 6px 20px rgba(0,0,0,0.10)",overflow:"hidden",display:"flex",flexDirection:"column",maxHeight:"min(38vh, 300px)"},children:[rv,ry,rb]})]}),rj&&t9&&(()=>{if(!eR)return null;let e=eR.worktrees.find(e=>oH(e.path,eo??""))??eR.worktrees.find(e=>e.isMain);return(0,n.jsxs)("div",{ref:e_,style:{position:"relative",marginTop:6},children:[(0,n.jsxs)("button",{onClick:()=>eE(e=>!e),title:e?G("desktop.switchWorktreeWithPath",{path:e.path}):G("desktop.switchWorktree"),style:{width:"100%",height:29,boxSizing:"border-box",display:"flex",alignItems:"center",gap:6,padding:"0 10px",background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:7,cursor:"pointer",fontSize:11,lineHeight:1.35,color:"var(--text-muted)",textAlign:"left"},children:[(0,n.jsx)(y.Z,{size:11,weight:"regular",style:{flexShrink:0,color:e&&!e.isMain?"var(--accent)":"var(--text-dim)"},"aria-hidden":"true"}),(0,n.jsx)(i5,{text:e?e.branch??i6(e.path,ec):"…",style:{flex:1,fontFamily:"var(--font-mono)",color:"var(--text)"}}),e?.isMain&&(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:10},children:G("desktop.main")}),eR.worktrees.length>1&&(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:10},children:eR.worktrees.length}),(0,n.jsx)(b.a,{size:9,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"})]}),(0,n.jsxs)(i3,{open:eM,style:{position:"absolute",top:"calc(100% + 4px)",left:0,right:0,zIndex:100,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 6px 20px rgba(0,0,0,0.10)",overflow:"hidden"},children:[(0,n.jsx)("div",{className:"scroll-overlay",style:{maxHeight:"min(40vh, 300px)"},children:eR.worktrees.map(e=>{let t=oH(e.path,eo??"")||e.isMain&&!eR.worktrees.some(e=>oH(e.path,eo??""));return eH===e.path?(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"7px 10px",borderBottom:"1px solid var(--border)",background:"rgba(239,68,68,0.06)"},children:[(0,n.jsx)("span",{style:{flex:1,fontSize:11,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:G("desktop.uncommittedChanges")}),(0,n.jsx)("button",{onClick:()=>void tU(e.path,!0),disabled:eF,style:{padding:"3px 9px",background:"var(--status-error)",border:"none",borderRadius:5,color:"var(--accent-fg)",fontSize:11,fontWeight:600,cursor:"pointer",flexShrink:0},children:G("desktop.force")}),(0,n.jsx)("button",{onClick:()=>eO(null),style:{padding:"3px 9px",background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-muted)",fontSize:11,cursor:"pointer",flexShrink:0},children:G("desktop.cancel")})]},e.path):(0,n.jsxs)("div",{className:"wt-row",style:{display:"flex",alignItems:"center",borderBottom:"1px solid var(--border)"},children:[(0,n.jsxs)("button",{onClick:()=>{ei(e.path),eE(!1),eP(null)},title:e.path,style:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:7,padding:"8px 10px",background:"var(--bg)",border:"none",color:t?"var(--text)":"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11,fontFamily:"var(--font-mono)"},children:[t?(0,n.jsx)(f.J,{size:10,color:"var(--accent)",weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}):(0,n.jsx)("span",{style:{width:10,flexShrink:0}}),(0,n.jsx)(i5,{text:e.branch??i6(e.path,ec),style:{flex:1}}),e.isMain&&(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:10},children:G("desktop.main")})]}),!e.isMain&&(0,n.jsx)("button",{onClick:()=>void tU(e.path,!1),disabled:eF,title:G("desktop.removeWorktree",{path:e.path}),style:{display:"flex",alignItems:"center",justifyContent:"center",width:34,height:28,padding:0,marginRight:4,background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",borderRadius:5,flexShrink:0,transition:"color 0.12s, background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--status-error)",e.currentTarget.style.background="rgba(239,68,68,0.08)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:(0,n.jsx)(T.l,{size:12,weight:"regular","aria-hidden":"true"})})]},e.path)})}),e$?(0,n.jsxs)("div",{style:{padding:"6px 8px"},children:[(0,n.jsx)("input",{ref:eq,value:eL,onChange:e=>{eN(e.target.value),eP(null)},onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),tB()),"Escape"===e.key&&(eW(!1),eN(""),eP(null))},placeholder:G("desktop.branchName"),style:{width:"100%",fontSize:11,fontFamily:"var(--font-mono)",padding:"5px 8px",border:"1px solid var(--accent)",borderRadius:5,outline:"none",background:"var(--bg)",color:"var(--text)",boxSizing:"border-box"}}),(0,n.jsxs)("div",{style:{display:"flex",gap:5,marginTop:5},children:[(0,n.jsx)("button",{onClick:()=>void tB(),disabled:eF||!eL.trim(),style:{flex:1,padding:"4px 0",background:"var(--accent)",border:"none",borderRadius:5,color:"var(--accent-fg)",fontSize:11,fontWeight:600,cursor:eF||!eL.trim()?"not-allowed":"pointer",opacity:eF||!eL.trim()?.65:1},children:eF?G("desktop.creating"):G("desktop.create")}),(0,n.jsx)("button",{onClick:()=>{eW(!1),eN(""),eP(null)},style:{flex:1,padding:"4px 0",background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-muted)",fontSize:11,cursor:"pointer"},children:G("desktop.cancel")})]})]}):(0,n.jsxs)("button",{onClick:e=>{e.stopPropagation(),eW(!0),eP(null),setTimeout(()=>eq.current?.focus(),0)},title:G("desktop.createWorktree"),style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"8px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11},children:[(0,n.jsx)(S.F,{size:10,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{children:G("desktop.newWorktree")})]}),eA&&(0,n.jsx)("div",{style:{padding:"5px 10px 8px",color:"var(--status-error)",fontSize:11,lineHeight:1.35,overflowWrap:"anywhere"},children:eA})]})]})})(),rj&&rr&&(0,n.jsxs)("button",{type:"button","aria-disabled":"true",tabIndex:-1,title:rr.title,style:{width:"100%",height:29,boxSizing:"border-box",marginTop:6,display:"flex",alignItems:"center",gap:6,padding:"0 10px",border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-hover)",color:"var(--text-dim)",fontSize:11,lineHeight:1.35,whiteSpace:"nowrap",textAlign:"left",cursor:"default",opacity:.82},children:[(0,n.jsx)(y.Z,{size:11,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis"},children:rr.label})]})]}),eK&&(0,n.jsxs)("div",{className:"scroll-overlay",style:{flex:ti?"0 1 auto":"1 1 0",padding:"0",minHeight:0,maxHeight:ti?"min(40%, 360px)":"none"},children:[(0,n.jsx)("div",{style:{position:"sticky",top:0,zIndex:1,padding:"4px 10px 6px",background:"var(--bg)"},children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,background:"var(--bg-hover)",borderRadius:8,padding:"0 9px",height:30},children:[(0,n.jsx)(h.e,{size:13,color:"var(--text-dim)",style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("input",{value:eG,onChange:e=>eX(e.target.value),placeholder:G("desktop.searchSessions"),"aria-label":G("desktop.searchSessions"),style:{flex:1,minWidth:0,background:"none",border:"none",outline:"none",color:"var(--text)",fontSize:12,fontFamily:"var(--font-mono)"}}),eG&&(0,n.jsx)("button",{onClick:()=>eX(""),"aria-label":G("i18n.close"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:18,height:18,padding:0,background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",borderRadius:4,flexShrink:0},onMouseEnter:e=>{e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-selected)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:(0,n.jsx)(g.X,{size:11,"aria-hidden":"true"})})]})}),ee&&(0,n.jsx)("div",{style:{padding:"16px 14px",color:"var(--text-muted)",fontSize:12},children:G("desktop.loading")}),er&&(0,n.jsx)("div",{style:{padding:"12px 14px",color:"var(--status-error)",fontSize:12},children:er}),!ee&&!er&&"list"===eJ&&(0,n.jsxs)(n.Fragment,{children:[0===rn.length&&(0,n.jsx)("div",{style:{padding:"16px 14px",color:"var(--text-muted)",fontSize:12},children:G(eG.trim()?"desktop.noSearchResults":"desktop.noSessionsFound")}),ro.map(t=>(0,n.jsx)(i9,{node:t,selectedSessionId:e,runningSessionIds:tv,unreadSessionIds:tb,onSelectSession:t_,onRenamed:tR,selectedSessionStats:F,onSessionDeleted:tq,depth:0},t.session.id))]}),!ee&&!er&&"groups"===eJ&&(0,n.jsxs)(n.Fragment,{children:[0===rn.length&&(0,n.jsx)("div",{style:{padding:"16px 14px",color:"var(--text-muted)",fontSize:12},children:G(eG.trim()?"desktop.noSearchResults":"desktop.noSessionsFound")}),rl.map(t=>{let r=eG.trim().length>0||eZ[t.key];return(0,n.jsx)(st,{groupKey:t.key,label:G(iD[t.key]),rows:t.rows,isOpen:r,onToggle:()=>eQ(e=>({...e,[t.key]:!e[t.key]})),onSelectSession:t_,selectedSessionId:e,runningSessionIds:tv,unreadSessionIds:tb,allSessions:X,onPinChange:tK,onRenamed:tR,onSessionDeleted:tq},t.key)})]})]}),(d||eo)&&(0,n.jsxs)("div",{style:{borderTop:"1px solid var(--border)",display:"flex",flexDirection:"column",flex:ti?"1 1 0":"0 0 auto",minHeight:0,overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",flexShrink:0},children:[(0,n.jsxs)("button",{onClick:()=>ts(e=>{let t=!e;return!function(e,t=iX()){if(t)try{t.setItem(iG,String(e))}catch{}}(t),t}),style:{display:"flex",alignItems:"center",gap:6,flex:1,padding:"6px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:11,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",textAlign:"left"},children:[(0,n.jsx)(k.K,{size:9,weight:"regular",style:{transform:ti?"rotate(90deg)":"none",transition:"transform 0.15s",flexShrink:0},"aria-hidden":"true"}),G("desktop.explorer")]}),ti&&(0,n.jsx)("button",{onClick:()=>th(e=>!e),title:G("sidebar.searchFiles"),"aria-label":G("sidebar.searchFiles"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,background:tu?"var(--bg-selected)":"none",border:"none",color:tu?"var(--accent)":"var(--text-dim)",cursor:"pointer",borderRadius:5,flexShrink:0,transition:"color 0.3s, background 0.3s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{tu||(e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none")},children:(0,n.jsx)(h.e,{size:13,weight:"regular","aria-hidden":"true"})}),ti&&(0,n.jsx)("button",{onClick:()=>tz.current?.openUploadPicker(),disabled:td,title:G("desktop.uploadFilesToProjectRoot"),"aria-label":G("desktop.uploadFiles"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,background:"none",border:"none",color:"var(--text-dim)",cursor:td?"default":"pointer",borderRadius:5,flexShrink:0,opacity:td?.6:1,transition:"color 0.3s, background 0.3s"},onMouseEnter:e=>{td||(e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{td||(e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none")},children:(0,n.jsx)(R.C,{size:13,weight:"regular","aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:()=>{ta(e=>e+1),tm(!0),tC.current&&clearTimeout(tC.current),tC.current=setTimeout(()=>tm(!1),2e3)},title:G("desktop.refreshExplorer"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,marginRight:6,background:tf?"rgba(74,222,128,0.18)":"none",border:"none",color:tf?"var(--status-success)":"var(--text-dim)",cursor:"pointer",borderRadius:5,flexShrink:0,transition:"color 0.3s, background 0.3s"},onMouseEnter:e=>{tf||(e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{tf||(e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none")},children:tf?(0,n.jsx)(f.J,{size:13,color:"var(--status-success)",weight:"regular","aria-hidden":"true"}):(0,n.jsx)(z.S,{size:13,weight:"regular","aria-hidden":"true"})})]}),ti&&(0,n.jsx)("div",{className:"scroll-overlay",style:{flex:1,overflowX:"hidden"},children:(0,n.jsx)(o0,{ref:tz,cwd:eo??d,onOpenFile:M??(()=>{}),refreshKey:tl,onAtMention:$,onAtMentions:W,onUploadBusyChange:tc,fileSearchOpen:tu,onFileSearchOpenChange:th,onFileCreated:L,onFileDeleted:N,selectedFilePath:A})})]})]}),(d||eo)&&(0,n.jsx)(o4,{cwd:eo??d,refreshKey:tl,onOpenFile:M??(()=>{})}),P&&(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(3, minmax(0, 1fr))",gap:5,padding:"7px 8px",borderTop:"1px solid var(--border)",flexShrink:0,marginTop:"auto"},children:ou.filter(({id:e})=>i0.has(e)).map(({id:e,labelKey:t,Icon:r})=>{let o=G(t);return(0,n.jsxs)("button",{type:"button",onClick:()=>P(e),title:o,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",gap:4,minWidth:0,padding:"6px 4px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:10.5},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg-panel)",e.currentTarget.style.color="var(--text-muted)"},children:[(0,n.jsx)(r,{size:13,"aria-hidden":"true"}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:o})]},e)})})]})]})}let i9=(0,o.memo)(function e({node:t,selectedSessionId:r,runningSessionIds:i,unreadSessionIds:s,onSelectSession:l,onRenamed:a,onSessionDeleted:d,selectedSessionStats:c,depth:u}){let[p,h]=(0,o.useState)(!1),g=t.children.length>0,x=t.session.id===r,f=(0,o.useCallback)(()=>l(t.session),[l,t.session]),m=(0,o.useCallback)(e=>d?.(e),[d]),v=(0,o.useCallback)(()=>h(e=>!e),[]);return(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:{position:"relative"},children:[u>0&&(0,n.jsx)("div",{style:{position:"absolute",left:12*u+6,top:0,bottom:0,width:1,background:"var(--border)",pointerEvents:"none"}}),(0,n.jsx)(se,{session:t.session,isSelected:x,isRunning:i.has(t.session.id),isUnread:s.has(t.session.id),onClick:f,onRenamed:a,onDeleted:m,selectedSessionId:r,selectedSessionStats:x?c:null,depth:u,hasChildren:g,collapsed:p,onToggleCollapse:v})]}),g&&!p&&(0,n.jsx)("div",{children:t.children.map(t=>(0,n.jsx)(e,{node:t,selectedSessionId:r,runningSessionIds:i,unreadSessionIds:s,onSelectSession:l,onRenamed:a,onSessionDeleted:d,selectedSessionStats:c,depth:u+1},t.session.id))})]})}),se=(0,o.memo)(function({session:e,isSelected:t,isRunning:r,isUnread:i,onClick:s,onRenamed:l,onDeleted:a,selectedSessionId:d,selectedSessionStats:p,depth:h=0,hasChildren:x=!1,collapsed:f=!1,onToggleCollapse:v}){let k,{t:j}=(0,Y.s)(),[w,S]=(0,o.useState)(!1),[T,R]=(0,o.useState)(!1),[$,W]=(0,o.useState)(""),[N,A]=(0,o.useState)(0),[P,F]=(0,o.useState)(0),[D,H]=(0,o.useState)(!1),[O,B]=(0,o.useState)(!1),[U,_]=(0,o.useState)(!1),[q,K]=(0,o.useState)(null),V=(0,o.useRef)(null),J=(0,o.useRef)(null),G=(0,o.useRef)(null),X=(0,o.useRef)(null),[Z,Q]=(0,o.useState)(!1);L(Z,()=>Q(!1));let[ee,et]=(0,o.useState)([]),[er,en]=(0,o.useState)(null),[eo,ei]=(0,o.useState)(!1),[es,el]=(0,o.useState)(!1),ea=(0,o.useMemo)(()=>{let e=new Map;for(let t of ee){let r=t.provider||"other",n=e.get(r);n?n.push(t):e.set(r,[t])}return Array.from(e.entries()).sort((e,t)=>e[0].localeCompare(t[0]))},[ee]),ed=os(e),ec=e.messageCount>0||e.id===d&&(p?.userMessages??0)>0;(0,o.useLayoutEffect)(()=>{T&&F(G.current?.getBoundingClientRect().width??0)},[T,$,N]);let eu=(0,o.useCallback)(e=>{e.stopPropagation(),W(ed),A(ed.length),R(!0),setTimeout(()=>J.current?.select(),0)},[ed]),ep=(0,o.useCallback)(async()=>{let t=$.trim();if(R(!1),t!==(e.name??""))try{await fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t})}),l?.()}catch{}},[$,e.id,e.name,l]),eh=(0,o.useCallback)(async t=>{if(t.stopPropagation(),U){V.current?.abort(),u(e.id);return}if(!ec)return;let r=new AbortController;V.current=r,_(!0),K(null);try{await c(e.id,r.signal),l?.()}catch(e){r.signal.aborted||K(e instanceof Error?e.message:String(e))}finally{V.current===r&&(V.current=null),_(!1)}},[U,ec,e.id,l]),eg=(0,o.useCallback)(async()=>{Q(!0),ei(!0),en(null);try{let t=await fetch(`/api/models?cwd=${encodeURIComponent(e.cwd||"")}`),r=await t.json().catch(()=>({}));if(!t.ok){et([]),en(r.error??`HTTP ${t.status}`);return}et(r.modelList??[])}catch{et([]),en("HTTP request failed")}finally{ei(!1)}},[e.cwd]),ex=(0,o.useCallback)(async t=>{el(!0);try{await fetch("/api/settings/title-model",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({modelId:t})}),Q(!1),K(null),_(!0);try{await c(e.id),l?.()}catch(e){K(e instanceof Error?e.message:String(e))}finally{_(!1)}}catch{}finally{el(!1)}},[e.id,l]),ef=(0,o.useCallback)(async()=>{B(!0);try{let t=await fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({archived:!0})});if(!t.ok)throw Error(`HTTP ${t.status}`);a?.(e.id)}catch{B(!1)}},[e.id,a]),em=(0,o.useCallback)(e=>{e.stopPropagation(),e.shiftKey?ef():H(!0)},[ef]),ev=(0,o.useCallback)(e=>{e.stopPropagation(),H(!1),ef()},[ef]),ey=(0,o.useCallback)(e=>{e.stopPropagation(),H(!1)},[]);return(0,n.jsx)("div",{ref:X,onClick:D||T?void 0:s,onMouseEnter:()=>S(!0),onMouseLeave:()=>{S(!1)},style:{height:50,display:"flex",alignItems:"center",paddingLeft:h>0?12*h+14:14,paddingRight:8,cursor:D||T?"default":"pointer",background:D||t?"var(--bg-selected)":w?"var(--bg-hover)":"transparent",borderLeft:D||t?"2px solid var(--accent)":"2px solid transparent",transition:"background 0.1s",opacity:O?.5:1,gap:6,overflow:"hidden"},children:D?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:{flex:1,minWidth:0,fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:j("desktop.archiveSessionConfirm",{title:`“${ed.slice(0,22)}${ed.length>22?"…":""}”`})}),(0,n.jsxs)("div",{style:{display:"flex",gap:5,flexShrink:0},children:[(0,n.jsxs)("button",{onClick:ev,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:4,height:30,padding:"0 11px",background:"var(--accent)",border:"none",borderRadius:6,color:"var(--accent-fg)",cursor:"pointer",fontSize:12,fontWeight:600,whiteSpace:"nowrap"},children:[(0,n.jsx)(I.T,{size:12,weight:"regular","aria-hidden":"true"}),j("desktop.archiveSession")]}),(0,n.jsx)("button",{onClick:ey,style:{display:"flex",alignItems:"center",justifyContent:"center",height:30,padding:"0 11px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:"pointer",fontSize:12,fontWeight:500,whiteSpace:"nowrap"},children:j("desktop.cancel")})]})]}):(0,n.jsxs)(n.Fragment,{children:[h>0&&(0,n.jsx)(y.Z,{size:10,color:"var(--text-dim)",weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5,minWidth:0,height:20,fontSize:12,fontWeight:t?500:400,lineHeight:"20px",color:"var(--text)"},title:r?`${ed} \xb7 ${j("desktop.agentRunning")}`:i?`${ed} \xb7 ${j("desktop.newActivity")}`:ed,children:[r?(0,n.jsx)(i_,{}):i?(0,n.jsx)(iq,{}):null,T?(0,n.jsxs)("div",{style:{position:"relative",flex:"1 1 0",alignSelf:"stretch",width:"100%",minWidth:0,height:20,background:"color-mix(in srgb, var(--accent) 18%, var(--bg))",borderRadius:3},children:[(0,n.jsx)("span",{ref:G,"aria-hidden":"true",style:{position:"absolute",visibility:"hidden",whiteSpace:"pre",font:"inherit",lineHeight:"inherit"},children:$.slice(0,N)}),(0,n.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",top:2,bottom:2,left:P,width:2,background:"var(--accent)",borderRadius:1,animation:"blink 1s step-end infinite",pointerEvents:"none"}}),(0,n.jsx)("input",{ref:J,value:$,onChange:e=>{W(e.target.value),A(e.target.selectionStart??e.target.value.length)},onSelect:e=>A(e.currentTarget.selectionEnd??0),onBlur:ep,onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),ep()),"Escape"===e.key&&(e.preventDefault(),R(!1))},"aria-label":j("desktop.rename"),autoFocus:!0,style:{width:"100%",minWidth:0,height:20,margin:0,padding:0,border:"none",outline:"none",background:"transparent",borderRadius:"inherit",color:"inherit",font:"inherit",lineHeight:"inherit",caretColor:"transparent"}})]}):(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,flex:1},children:ed}),x&&(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),v?.()},title:j(f?"desktop.expandForks":"desktop.collapseForks"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,flexShrink:0,background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",transform:f?"rotate(-90deg)":"none",transition:"transform 0.15s"},children:(0,n.jsx)(b.a,{size:10,weight:"regular","aria-hidden":"true"})}),w&&!T&&(0,n.jsxs)("div",{style:{display:"flex",gap:2,flexShrink:0},children:[(0,n.jsx)("button",{onClick:eh,disabled:!ec,title:q??j(ec?U?"desktop.generatingTitle":"desktop.generateTitle":"desktop.titleNeedsMessages"),"aria-label":j("desktop.generateTitle"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:4,color:q?"var(--status-error)":"var(--text-dim)",cursor:ec?"pointer":"default",flexShrink:0,opacity:U?.7:ec?1:.35,transition:"color 0.12s"},onMouseEnter:e=>{!U&&ec&&(e.currentTarget.style.color=q?"var(--status-error)":"var(--accent)")},onMouseLeave:e=>{e.currentTarget.style.color=q?"var(--status-error)":"var(--text-dim)"},children:U?(0,n.jsxs)("svg",{style:{animation:"spin 1s linear infinite"},width:"13",height:"13",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",opacity:"0.25"}),(0,n.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):(0,n.jsx)(C.R,{size:13,weight:"regular","aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:eu,title:j("desktop.rename"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:4,color:"var(--text-dim)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:(0,n.jsx)(m.I,{size:13,weight:"regular","aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:em,title:j("desktop.archiveSession"),"aria-label":j("desktop.archiveSession"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:4,color:"var(--text-dim)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:(0,n.jsx)(I.T,{size:13,weight:"regular","aria-hidden":"true"})})]})]}),(0,n.jsxs)("div",{style:{marginTop:2,display:"flex",gap:8,color:"var(--text-dim)",fontSize:11,minWidth:0,flexWrap:"nowrap",whiteSpace:"nowrap"},children:[(0,n.jsx)("span",{title:e.modified,style:{flexShrink:0},children:iU(e.modified,j)}),(0,n.jsx)("span",{style:{flexShrink:0},children:j("desktop.messagesCount",{count:e.messageCount})}),e.isWorktree&&e.branch&&(0,n.jsxs)("span",{title:j("desktop.worktree",{cwd:e.cwd}),style:{display:"flex",alignItems:"center",gap:3,color:"var(--accent)",minWidth:0,overflow:"hidden",flex:"1 1 auto"},children:[(0,n.jsx)(y.Z,{size:9,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.branch})]}),e.importedFrom&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:3,color:"var(--text-dim)",minWidth:0,overflow:"hidden",flexShrink:1},children:[(0,n.jsx)(M.z,{size:9,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:"reasonix"===e.importedFrom?j("desktop.importFromReasonix")??"来自 Reasonix":e.importedFrom})]})]}),q&&X.current&&(k=X.current.getBoundingClientRect(),(0,n.jsxs)("div",{style:{position:"fixed",top:Math.max(8,k.top+k.height/2-34),left:k.right+10,zIndex:3e3,width:300,padding:"10px 12px",borderRadius:10,background:"var(--bg-panel)",border:"1px solid color-mix(in srgb, #ef4444 40%, var(--border))",boxShadow:"0 10px 30px rgba(0,0,0,0.25)",animation:"plan-card-in 0.15s ease-out"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:6},children:[(0,n.jsx)("span",{style:{fontSize:12,fontWeight:650,color:"var(--status-error)",flex:1,minWidth:0},children:j("desktop.titleGenerationFailed")}),(0,n.jsx)("button",{type:"button",onClick:()=>K(null),"aria-label":j("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:2,display:"flex"},children:(0,n.jsx)(g.X,{size:12,"aria-hidden":"true"})})]}),(0,n.jsx)("div",{style:{fontSize:11,lineHeight:1.45,color:"var(--text-muted)",wordBreak:"break-word",marginBottom:8},children:q}),(0,n.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,n.jsxs)("button",{type:"button",onClick:eh,disabled:U,style:{display:"inline-flex",alignItems:"center",gap:4,padding:"5px 10px",borderRadius:6,background:"var(--status-error)",border:"none",color:"var(--accent-fg)",fontSize:11.5,fontWeight:600,cursor:U?"default":"pointer"},children:[(0,n.jsx)(z.S,{size:11,"aria-hidden":"true"}),j("desktop.retry")]}),(0,n.jsxs)("button",{type:"button",onClick:eg,disabled:es,style:{display:"inline-flex",alignItems:"center",gap:4,padding:"5px 10px",borderRadius:6,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:11.5,cursor:es?"default":"pointer"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:[(0,n.jsx)(E.f,{size:11,"aria-hidden":"true"}),j("desktop.changeTitleModel")]})]})]})),Z&&(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:3100,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.4)",padding:16},children:(0,n.jsxs)("div",{role:"dialog","aria-label":j("desktop.changeTitleModel"),style:{width:"min(420px, calc(100vw - 32px))",maxHeight:"min(70vh, 480px)",display:"flex",flexDirection:"column",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:12,boxShadow:"0 16px 40px rgba(0,0,0,0.3)",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"12px 14px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)(E.f,{size:15,"aria-hidden":"true"}),(0,n.jsx)("span",{style:{fontSize:13,fontWeight:650,color:"var(--text)",flex:1},children:j("desktop.changeTitleModel")}),(0,n.jsx)("button",{type:"button",onClick:()=>Q(!1),"aria-label":j("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:3,display:"flex"},children:(0,n.jsx)(g.X,{size:14,"aria-hidden":"true"})})]}),(0,n.jsx)("div",{className:"scroll-overlay",style:{padding:"8px 6px",flex:1},children:eo?(0,n.jsx)("div",{style:{padding:"12px 8px",fontSize:12,color:"var(--text-muted)"},children:j("desktop.loading")}):er?(0,n.jsxs)("div",{style:{padding:"12px 8px",fontSize:12,color:"var(--status-error)"},children:[j("desktop.modelsLoadFailed"),": ",er]}):0===ee.length?(0,n.jsx)("div",{style:{padding:"12px 8px",fontSize:12,color:"var(--text-muted)"},children:j("desktop.noModels")}):ea.map(([e,t])=>(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{padding:"6px 10px 4px",fontSize:11,fontWeight:600,color:"var(--text-muted)",textTransform:"capitalize"},children:e}),t.map(e=>{let t=`${e.provider||"other"}\u0000${e.id}`;return(0,n.jsx)("button",{type:"button",onClick:()=>{ex(e.id)},disabled:es,style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 10px",background:"none",border:"none",borderRadius:7,color:"var(--text)",fontSize:12.5,cursor:es?"default":"pointer",textAlign:"left"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name||e.id})},t)})]},e))})]})})]})]})})});function st({groupKey:e,label:t,rows:r,isOpen:o,onToggle:i,onSelectSession:s,selectedSessionId:l,runningSessionIds:a,unreadSessionIds:d,allSessions:c,onPinChange:u,onRenamed:p,onSessionDeleted:h}){let{t:g}=(0,Y.s)();return(0,n.jsxs)("div",{style:{margin:"0 8px 6px",borderRadius:10,background:"var(--bg-panel)",border:"1px solid var(--border)",overflow:"hidden"},children:[(0,n.jsxs)("button",{type:"button",onClick:i,"aria-expanded":o,style:{display:"flex",alignItems:"center",gap:6,width:"100%",padding:"7px 10px",background:"none",border:"none",color:"var(--text)",cursor:"pointer",textAlign:"left"},children:[(0,n.jsx)(b.a,{size:11,weight:"regular","aria-hidden":"true",style:{flexShrink:0,transform:o?"rotate(0deg)":"rotate(-90deg)",transition:"transform 0.15s"}}),(0,n.jsx)("span",{style:{fontSize:11,fontWeight:600,letterSpacing:"0.04em",textTransform:"uppercase",color:"var(--text-muted)"},children:t}),(0,n.jsx)("span",{style:{background:"var(--bg-hover)",borderRadius:999,padding:"0 6px",fontSize:10,fontWeight:600,color:"var(--text-muted)",lineHeight:"16px",flexShrink:0},children:r.length}),(0,n.jsx)("span",{style:{marginLeft:"auto",fontSize:10,color:"var(--text-dim)",flexShrink:0},children:g(o?"desktop.collapseGroup":"desktop.expandGroup")})]}),o&&(0,n.jsx)("div",{style:{padding:"2px 4px 6px"},children:r.map((t,r)=>(0,n.jsx)("div",{style:{animation:"accordion-row-in 0.14s ease-out both",animationDelay:`${20*Math.min(r,10)}ms`},children:(0,n.jsx)(sr,{session:t.session,forkDepth:t.forkDepth,isSelected:t.session.id===l,isRunning:a.has(t.session.id),isUnread:d.has(t.session.id),onClick:()=>s(t.session),allSessions:c,onPinChange:u,onRenamed:p,onDeleted:h,inPinnedGroup:"pinned"===e})},t.session.id))})]})}function sr({session:e,forkDepth:t=0,isSelected:r,isRunning:i,isUnread:s,onClick:l,allSessions:a,onPinChange:d,onRenamed:p,onDeleted:h,inPinnedGroup:g=!1}){let x,{t:f}=(0,Y.s)(),[v,b]=(0,o.useState)(!1),[k,j]=(0,o.useState)(!1),[w,S]=(0,o.useState)(""),[z,T]=(0,o.useState)(!1),[R,M]=(0,o.useState)(!1),[E,L]=(0,o.useState)(!1),N=(0,o.useRef)(null),[A,P]=(0,o.useState)(!1),[F,D]=(0,o.useState)(null),H=(0,o.useRef)(null),O=os(e),B=e.parentSessionId?a.find(t=>t.id===e.parentSessionId):void 0,U=async()=>{let t=w.trim();if(j(!1),t&&t!==(e.name??""))try{await fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t})}),p?.()}catch{}},_=async t=>{if(t.stopPropagation(),E){N.current?.abort(),u(e.id);return}if(0===e.messageCount)return;let r=new AbortController;N.current=r,L(!0);try{await c(e.id,r.signal),p?.()}catch{}finally{N.current===r&&(N.current=null),L(!1)}},q=async()=>{M(!0);try{let t=await fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({archived:!0})});if(!t.ok)throw Error(`HTTP ${t.status}`);h?.(e.id)}catch{M(!1)}};return(0,n.jsxs)("div",{ref:H,onClick:z||k?void 0:l,onMouseEnter:()=>b(!0),onMouseLeave:()=>{b(!1),P(!1)},style:{display:"flex",flexDirection:"column",justifyContent:"center",padding:"5px 8px 5px 10px",paddingLeft:10+14*t,position:"relative",cursor:z||k?"default":"pointer",background:z||r?"var(--bg-selected)":v?"var(--bg-hover)":"transparent",borderLeft:z||r?"2px solid var(--accent)":"2px solid transparent",borderRadius:6,transition:"background 0.1s",opacity:R?.5:1},children:[t>0&&(0,n.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",left:12+(t-1)*14,top:2,bottom:2,width:2,borderRadius:1,background:"var(--border)",pointerEvents:"none"}}),z?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:{flex:1,minWidth:0,fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:f("desktop.archiveSessionConfirm",{title:`“${O.slice(0,22)}${O.length>22?"…":""}”`})}),(0,n.jsxs)("div",{style:{display:"flex",gap:5,flexShrink:0},children:[(0,n.jsxs)("button",{onClick:e=>{e.stopPropagation(),T(!1),q()},style:{display:"flex",alignItems:"center",gap:4,height:28,padding:"0 11px",background:"var(--accent)",border:"none",borderRadius:6,color:"var(--accent-fg)",cursor:"pointer",fontSize:12,fontWeight:600,whiteSpace:"nowrap"},children:[(0,n.jsx)(I.T,{size:12,weight:"regular","aria-hidden":"true"}),f("desktop.archiveSession")]}),(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),T(!1)},style:{height:28,padding:"0 11px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:"pointer",fontSize:12,whiteSpace:"nowrap"},children:f("desktop.cancel")})]})]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5,minWidth:0,height:20},children:[i?(0,n.jsx)(i_,{}):s?(0,n.jsx)(iq,{}):null,k?(0,n.jsx)("input",{autoFocus:!0,value:w,onChange:e=>S(e.target.value),onBlur:U,onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),U()),"Escape"===e.key&&(e.preventDefault(),j(!1))},"aria-label":f("desktop.rename"),style:{flex:1,minWidth:0,height:18,margin:0,padding:"0 4px",border:"1px solid var(--accent)",borderRadius:3,outline:"none",background:"color-mix(in srgb, var(--accent) 18%, var(--bg))",color:"var(--text)",fontSize:12}}):(0,n.jsx)("span",{title:e.modified,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,flex:1,fontSize:12,fontWeight:r?500:400,color:"var(--text)"},children:O}),v&&!k&&(0,n.jsxs)("div",{style:{display:"flex",gap:1,flexShrink:0},children:[(0,n.jsx)("button",{onClick:t=>{t.stopPropagation(),d?.(e,!e.pinned)},title:f(e.pinned?"desktop.unpin":"desktop.pin"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:4,color:e.pinned?"var(--accent)":"var(--text-dim)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:t=>{t.currentTarget.style.color=e.pinned?"var(--accent)":"var(--text-muted)"},onMouseLeave:t=>{t.currentTarget.style.color=e.pinned?"var(--accent)":"var(--text-dim)"},children:(0,n.jsx)($.U,{size:12,weight:e.pinned?"fill":"regular","aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:_,disabled:0===e.messageCount,title:f(0===e.messageCount?"desktop.titleNeedsMessages":E?"desktop.generatingTitle":"desktop.generateTitle"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:4,color:"var(--text-dim)",cursor:0===e.messageCount?"default":"pointer",flexShrink:0,opacity:E?.7:0===e.messageCount?.35:1,transition:"color 0.12s"},onMouseEnter:t=>{E||0===e.messageCount||(t.currentTarget.style.color="var(--accent)")},onMouseLeave:t=>{E||0===e.messageCount||(t.currentTarget.style.color="var(--text-dim)")},children:E?(0,n.jsxs)("svg",{style:{animation:"spin 1s linear infinite"},width:"12",height:"12",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",opacity:"0.25"}),(0,n.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):(0,n.jsx)(C.R,{size:12,weight:"regular","aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),S(O),j(!0)},title:f("desktop.rename"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:4,color:"var(--text-dim)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:(0,n.jsx)(m.I,{size:12,weight:"regular","aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),e.shiftKey?q():T(!0)},title:f("desktop.archiveSession"),"aria-label":f("desktop.archiveSession"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:4,color:"var(--text-dim)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:(0,n.jsx)(I.T,{size:12,weight:"regular","aria-hidden":"true"})})]}),e.pinned&&!g&&!v&&(0,n.jsx)("span",{title:f("desktop.pinned"),style:{flexShrink:0,display:"inline-flex",alignItems:"center",opacity:.85},children:(0,n.jsx)($.U,{size:11,weight:"fill",color:"var(--accent)","aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginTop:1,minWidth:0,height:16,flexWrap:"nowrap",whiteSpace:"nowrap"},children:[(0,n.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",flexShrink:0},children:iU(e.modified,f)}),(0,n.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",flexShrink:0},children:f("desktop.messagesCount",{count:e.messageCount})}),e.isWorktree&&e.branch&&(0,n.jsxs)("span",{title:e.branch,style:{display:"inline-flex",alignItems:"center",gap:3,maxWidth:"60%",background:"var(--bg-hover)",borderRadius:4,padding:"0 5px",height:15,minWidth:0,overflow:"hidden"},children:[(0,n.jsx)(y.Z,{size:8,weight:"regular",color:"var(--text-dim)",style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:10,fontFamily:"var(--font-mono)",color:"var(--text-muted)",lineHeight:"15px"},children:e.branch})]}),e.parentSessionId&&(0,n.jsx)("span",{style:{marginLeft:"auto",flexShrink:0,display:"inline-flex",alignItems:"center"},onMouseEnter:e=>{let t=H.current?.getBoundingClientRect();t&&(D({top:t.top+t.height/2-15,left:t.right+8}),P(!0))},onMouseLeave:()=>P(!1),children:(0,n.jsx)(W.d,{size:10,weight:"regular",color:"var(--text-dim)",style:{cursor:"help"},"aria-hidden":"true"})})]}),A&&F&&(x=B?os(B).slice(0,30):"",(0,n.jsx)("div",{style:{position:"fixed",top:F.top,left:F.left,zIndex:3e3,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,padding:"4px 8px",boxShadow:"0 6px 20px rgba(0,0,0,0.2)",fontSize:10.5,color:"var(--text-muted)",whiteSpace:"nowrap",pointerEvents:"none",animation:"plan-card-in 0.12s ease-out"},children:f("desktop.forkedFrom",{title:x||"—"})}))]})]})}let sn=/\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/g,so=/^\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/,si=/\x1B\[([0-9;]*)m/g,ss=["#1f2937","#dc2626","#16a34a","#d97706","#2563eb","#9333ea","#0891b2","#6b7280"],sl=["#9ca3af","#ef4444","#22c55e","#f59e0b","#3b82f6","#a855f7","#06b6d4","#e5e7eb"];function sa(e){return e.replace(sn,"")}function sd(e){let t=[],r=0;for(;r<e.length;){if(27===e.charCodeAt(r)){let t=e.slice(r).match(so);if(t){r+=t[0].length;continue}}let n=e.codePointAt(r);if(void 0===n)break;let o=String.fromCodePoint(n);t.push({start:r,end:r+o.length,char:o}),r+=o.length}return t}function sc(e,t){let r=sd(e)[t];return r?e.slice(0,r.start)+e.slice(r.end):e}function su(e){return sd(e)[0]?.char}function sp(e){return"user"===e.role||"custom"===e.role&&("compaction"===e.customType||"pi-web:subagent-notification"===e.customType)}function sh(e,t={}){return t.isStreaming||"error"!==e.stopReason?null:e.errorMessage?.trim()||"Unknown provider error"}function sg(e,t={}){return"thinking"===e.type&&!e.deferred&&!t.isStreaming&&""===e.thinking.trim()}function sx(e,t={}){return(e.content??[]).filter(e=>!sg(e,t))}function sf(e){return"text"===e.type||"image"===e.type}function sm(e,t={}){let r=sx(e,t),n=r.findLastIndex(e=>"toolCall"===e.type);return{answerBlocks:r.filter((e,t)=>sf(e)&&t>n),processBlocks:r.filter((e,t)=>!sf(e)||t<=n)}}let sv=["starting","queued","running","completed","failed","aborted","interrupted"];function sy(e){var t;return!!e&&"object"==typeof e&&"pi-web-subagent"===e.kind&&"string"==typeof e.sessionId&&"string"==typeof(t=e.status)&&sv.includes(t)}function sb(e){let t=[],r=[],n="group",o=()=>{0!==r.length&&(t.push({kind:n,blocks:r}),r=[])};for(let i of e){if("toolCall"===i.type&&"Agent"===i.toolName&&("running"===i.status||!i.result||sy(i.result.details))&&"toolCall"===i.type){o(),t.push({kind:"subagent",blocks:[i],subagent:{toolCallId:i.toolCallId,toolName:i.toolName,input:i.input,result:i.result,duration:i.duration,status:i.status,sourceMessageIndex:i.origin.sourceMessageIndex}});continue}let e="text"===i.type||"image"===i.type?"output":"group";e!==n&&o(),n=e,r.push(i)}return o(),t}function sk(e,t,r){return`${e??`message-${t}`}:${r}`}function sj(e,t){let{messageIndex:r,entryId:n,phase:o,toolResults:i,isStreaming:s=!1}=t;return"custom"===e.role?e.display?[{id:sk(n,r,0),type:"custom",customType:e.customType,message:e,origin:{phase:o,placement:"standalone",sourceMessageIndex:r,sourceEntryId:n}}]:[]:"assistant"!==e.role?[]:(t.blocks??sx(e,{isStreaming:s})).map((t,s)=>{let l=e.content.indexOf(t),a=l>=0?l:s,d={phase:o,placement:"standalone",sourceMessageIndex:r,sourceEntryId:n,sourceBlockIndex:a},c=sk(n,r,a);if("text"===t.type)return{id:c,type:"text",text:t.text,origin:d};if("image"===t.type)return{id:c,type:"image",source:t.source??{type:"base64",data:t.data,media_type:t.mimeType},origin:d};if("thinking"===t.type)return{id:c,type:"thinking",thinking:t.thinking,deferred:t.deferred,origin:d};let u=i?.get(t.toolCallId);return{id:c,type:"toolCall",toolCallId:t.toolCallId,toolName:t.toolName,input:t.input,result:u,duration:function(e,t){if(!e.timestamp||!t?.timestamp)return;let r=Math.round((t.timestamp-e.timestamp)/1e3);return r>0?r:void 0}(e,u),status:u?.isError?"error":u?"success":"running",origin:{...d,groupId:t.toolCallId}}})}function sw(e,t){let{processBlocks:r,answerBlocks:n}=sm(e,t);return{processBlocks:sj(e,{...t,phase:"process",blocks:r}),resultBlocks:sj(e,{...t,phase:"result",blocks:n})}}function sS(e,t,r,n){return r.flatMap(r=>sj(e[r],{messageIndex:r,entryId:t[r],phase:"process",toolResults:n}))}function sC(e){try{return decodeURIComponent(e)}catch{return e}}function sz(e){return/^[a-zA-Z]:[\\/]/.test(e)||e.startsWith("\\\\")?e.replace(/\\/g,"/"):e}function sT(e){let t=sz(e),r=/^[a-zA-Z]:\//.test(t),n=t.startsWith("//"),o=t.startsWith("/")&&!r&&!n,i=[];for(let e of t.split("/"))if(e&&"."!==e){if(".."===e){i.length>0&&".."!==i[i.length-1]?i.pop():o||r||n||i.push(e);continue}i.push(e)}let s=i.join("/");return r?s:n?`//${s}`:o?`/${s}`:s}function sR(e,t,r=t){let n,o,i,s,l;if(!e)return null;let a=e.split("#",1)[0].split("?",1)[0].trim();if(!a)return null;let d=null,c=null,u=sC(a),p=u.startsWith("\\\\"),h=sz(u),g=h.toLowerCase();if(g.startsWith("/api/")||g.startsWith("/_next/")||!p&&h.startsWith("//")||/^[a-zA-Z][a-zA-Z0-9+.-]*:/i.test(h)&&!g.startsWith("file:")&&!/^[a-zA-Z]:\//.test(h))return null;if(g.startsWith("file:")?c=(d=function(e){try{let t=new URL(e);if("file:"!==t.protocol)return null;let r=sC(t.pathname);if(t.hostname)return`//${t.hostname}${r.startsWith("/")?r:`/${r}`}`;if(/^\/[a-zA-Z]:\//.test(r))return r.slice(1);return r}catch{return null}}(a))?"absolute":null:/^[a-zA-Z]:\//.test(h)||h.startsWith("/")?(d=h,c="absolute"):t&&!(h.startsWith("#")||h.startsWith("?"))&&(h.startsWith("./")||h.startsWith("../")||h.includes("/")||/(^|\/)\.?[^/]+\.[^/.]+$/.test(h))&&(d=`${sz(t).replace(/\/+$/,"")}/${h}`,c="relative"),!d)return null;let x=sT(d).replace(/:\d+(?::\d+)?$/,"");return"relative"===c&&r&&(n=sT(x).replace(/\/+$/,""),o=sT(r).replace(/\/+$/,""),s=(i=/^[a-zA-Z]:\//.test(n)||/^[a-zA-Z]:\//.test(o))?n.toLowerCase():n,!(s===(l=i?o.toLowerCase():o)||s.startsWith(`${l}/`)))?null:x}let sI=/^page=(\d+)$/i;function sM(e){if(!e)return null;let t=e.indexOf("#");if(-1===t)return null;let r=e.slice(t+1).trim().match(sI);if(!r)return null;let n=Number.parseInt(r[1],10);return Number.isInteger(n)&&n>0?n:null}function sE(e){let t=e.toLowerCase();return"apply_patch"===t||t.startsWith("apply_patch_")||t.endsWith(".apply_patch")||t.endsWith("_apply_patch")}function s$(e,t){if(e&&"object"==typeof e&&!Array.isArray(e)){let t=e.input;if("string"==typeof t&&t.length>0)return t}return"string"==typeof t?t:""}function sW(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function sL(e){if(!sW(e)||!sW(e.result))return!1;let t=e.result.failures;return Array.isArray(t)&&t.length>0}function sN(){let e=[],t=[],r=[],n=()=>({lineNo:null,text:"",type:"empty"}),o=()=>{let o=Math.max(t.length,r.length);for(let i=0;i<o;i++)e.push({type:"line",left:t[i]??n(),right:r[i]??n()});t=[],r=[]};return{rows:e,context(t,r){o(),e.push({type:"line",left:{lineNo:r,text:t,type:"context"},right:{lineNo:r,text:t,type:"context"}})},removed(e,r){t.push({lineNo:r,text:e,type:"removed"})},added(e,t){r.push({lineNo:t,text:e,type:"added"})},finish(){o();for(let t=e.length-1;t>=0;t--)"line"!==e[t].type&&e.splice(t,1)}}}function sA(e){if(!e.includes("*** Begin Patch")&&!/\*\*\* (?:Add|Delete|Update) File: /.test(e))return null;let t=[],r=null,n=null,o=null;for(let i of e.split(/\r?\n/)){let e=i.match(/^\*\*\* (Add|Delete|Update) File: (.+)$/);if(e){let i=e[1]?.toLowerCase()??"update",s=(e[2]??"").trim();r?.finish(),o=i,n={oldPath:"add"===i?void 0:s,newPath:"delete"===i?void 0:s,rows:(r=sN()).rows},t.push(n);continue}if(/^\*\*\* Move to: /.test(i)){let e=i.replace(/^\*\*\* Move to: /,"").trim();n&&"update"===o&&(n.newPath=e);continue}if(!r||!n)continue;let s=r;if(!i.startsWith("*** ")&&!("update"===o&&i.startsWith("@@"))){if("update"===o){let e=i[0],t=i.slice(1);"+"===e?s.added(t,null):"-"===e?s.removed(t,null):" "===e?s.context(t,null):""!==i&&s.context(i,null)}else if("add"===o){if(""===i)continue;r.added(i.startsWith("+")?i.slice(1):i,null)}else if("delete"===o){if(""===i)continue;r.removed(i.startsWith("-")?i.slice(1):i,null)}}}r?.finish();let i=t.filter(e=>e.rows.length>0);return i.length>0?i:null}function sP(e){if(!e||"object"!=typeof e||Array.isArray(e))return null;let t=e.files;if(!Array.isArray(t))return null;let r=[];for(let e of t){if(!e||"object"!=typeof e||Array.isArray(e)||"string"!=typeof e.filePath||"string"!=typeof e.diff)continue;let t=sN();for(let r of e.diff.split(/\r?\n/)){let e=r.match(/^([+\- ])\s*(\d+) (.*)$/);if(!e)continue;let[,n,o,i]=e,s=Number(o);"+"===n?t.added(i,s):"-"===n?t.removed(i,s):t.context(i,s)}t.finish();let n="add"===e.operation,o="delete"===e.operation;r.push({oldPath:n?void 0:e.filePath,newPath:o?void 0:e.movePath??e.filePath,rows:t.rows})}let n=r.filter(e=>e.rows.length>0);return n.length>0?n:null}function sF(e){return e?e.map(e=>e.newPath).filter(e=>"string"==typeof e&&e.length>0):[]}function sD(e){return"assistant"===e.role&&sm(e).answerBlocks.some(e=>"image"===e.type||"text"===e.type&&e.text.trim().length>0)}function sH(e){return"assistant"===e.role?sx(e).length>0:"custom"===e.role}function sO(e,t,r={}){let n={...e,content:t};return r.omitUsage&&(n.usage=void 0),n}function sB(e,t,r,n){let o=new Map(n);for(let t of e)"toolResult"===t.role&&o.set(t.toolCallId,t);let i=-1;for(let t=e.length-1;t>=0;t--)if("user"===e[t].role){i=t;break}let s=new Map,l=0;e.forEach((e,t)=>{("user"===e.role||"assistant"===e.role)&&s.set(t,l++)});let a=[];for(let n=0;n<e.length;){let i,s=e[n],l="custom"===s.role&&"compaction"===s.customType,d=0===n&&"user"!==s.role&&!l;if("user"!==s.role&&!l&&!d){a.push({kind:"single",idx:n}),n+=1;continue}let c=d?-1:n,u=n+1;for(;u<e.length&&"user"!==e[u].role;)u+=1;let p=function(e,t,r){for(let n=r-1;n>t;n--)if(sD(e[n]))return n;for(let n=r-1;n>t;n--)if(e[n]?.role==="assistant")return n;return -1}(e,c,u),h=d&&p>=0&&!sD(e[p])&&!sh(e[p])?-1:p;if(-1===h){let r=Array.from({length:u-c-1},(e,t)=>c+1+t).filter(t=>sH(e[t])),i=sS(e,t,r,o);if(d&&0===i.length){for(let t=0;t<u;t+=1)"toolResult"!==e[t].role&&a.push({kind:"single",idx:t});n=u;continue}a.push({kind:"turn",userIdx:c,endIdx:u,startsCompactionTurn:l,finalAssistantIdx:h,visibleProcessIndices:r,processBlocks:i,processSegments:sb(i),finalAnswerMessage:null,writtenFiles:void 0}),n=u;continue}let g=[];for(let e=c+1;e<h;e++)g.push(e);let x=g.filter(t=>sH(e[t])),f=e[h],m=sm(f),v=m.processBlocks.length>0?sO(f,m.processBlocks,{omitUsage:!0}):null,y=m.answerBlocks.length>0||sh(f)?sO(f,m.answerBlocks):null,b=sS(e,t,x,o);if(v&&(b=b.concat(sw(f,{messageIndex:h,entryId:t[h],toolResults:o}).processBlocks)),y){let t=[];for(let r=c+1;r<=h;r++){let n=e[r];if(n?.role==="assistant")for(let e of n.content??[])t.push(e)}i=function(e,t,r){let n=new Set,o=[];for(let i of e){if("toolCall"!==i.type||!function(e){let t,r;return"write"===(t=e.toLowerCase())||t.startsWith("write_")||t.endsWith(".write")||t.endsWith("_write")||"edit"===(r=e.toLowerCase())||r.startsWith("edit_")||r.endsWith(".edit")||r.endsWith("_edit")||r.includes("str_replace")||r.includes("replace_editor")}(i.toolName)&&!sE(i.toolName))continue;let e=t?.get(i.toolCallId);if(e&&!e.isError)for(let t of sE(i.toolName)?function(e,t){let r=t?.details,n=function(e,t){let r=new Set;if(t&&"object"==typeof t&&!Array.isArray(t)){let e=t.preview;if(e&&"object"==typeof e&&!Array.isArray(e)){let t=e.files;if(Array.isArray(t))for(let e of t)!(!e||"object"!=typeof e||Array.isArray(e))&&"delete"===e.operation&&"string"==typeof e.filePath&&e.filePath.length>0&&r.add(e.filePath)}}for(let t of s$(e).matchAll(/^\*\*\* Delete File: (.+)$/gm)){let e=(t[1]??"").trim();e&&r.add(e)}return r}(e,r),o=function(e){if(!sW(e)||!sW(e.result))return null;let t=e.result.appliedFiles;return Array.isArray(t)?t.filter(e=>"string"==typeof e&&e.length>0):null}(r);if(o)return o.filter(e=>!n.has(e));if(sL(r))return[];if(r&&"object"==typeof r&&!Array.isArray(r)){let e=sF(sP(r.preview));if(e.length>0)return e}return sF(sA(s$(e)))}(i.input,e):[function(e){if(!e)return null;let t=e.file_path??e.path;return"string"==typeof t&&t.length>0?t:null}(i.input)]){if(!t)continue;let e=function(e,t){let r;if(!e)return null;let n=/^[a-zA-Z]:[\\/]/.test(e)||e.startsWith("\\\\")||void 0!==t&&(/^[a-zA-Z]:[\\/]/.test(t)||t.startsWith("\\\\")),o=e=>n?e.replace(/\\/g,"/"):e,i=o(e),s=t?o(t).replace(/\/+$/,""):void 0,l=/^[a-zA-Z]:\//.test(i),a=i.startsWith("//");if(l||a)r=i;else if(i.startsWith("/")){let e=s?.match(/^([a-zA-Z]:)(?:\/|$)/)?.[1]??s?.match(/^(\/\/[^/]+\/[^/]+)(?:\/|$)/)?.[1];r=e?`${e}${i}`:i}else{if(!s)return null;r=`${s}/${i}`}return sT(r)}(t,r);e&&(n.has(e)||(n.add(e),o.push({filePath:e})))}}return o}(t,o,r)}a.push({kind:"turn",userIdx:c,endIdx:u,startsCompactionTurn:l,finalAssistantIdx:h,visibleProcessIndices:x,processBlocks:b,processSegments:sb(b),finalAnswerMessage:y,writtenFiles:i}),n=u}return{toolResultsMap:o,lastUserIdx:i,visibleRefIndexByMessage:s,items:a}}var sU=r(19447),s_=r(32316),sq=r(5259),sK=r(37330),sV=r(47075),sJ=r(73168),sY=r(74303),sG=r(80735),sX=r(98573),sZ=r(73871),sQ=r(61749),s0=r(90599),s1=r(30956),s2=r(89120),s6=r(75646),s4=r(19241),s5=r(91044),s3=r(25730),s8=r(80655),s7=r(47543),s9=r(18743),le=r(40426),lt=r(32062),lr=r(78667),ln=r(37006),lo=r(83372),li=r(67761),ls=r(30387),ll=r(44614),la=r(10204),ld=r(1120),lc=r(93769),lu=r(580),lp=r(929),lh=r(70318);function lg(e,t,r){let n=function(e){let t=0xdeadbeef,r=0x41c6ce57;for(let n=0;n<e.length;n++){let o=e.charCodeAt(n);t=Math.imul(t^o,0x9e3779b1),r=Math.imul(r^o,0x5f356495)}return t=Math.imul(t^t>>>16,0x85ebca6b)^Math.imul(r^r>>>13,0xc2b2ae35),(0x100000000*(2097151&(r=Math.imul(r^r>>>16,0x85ebca6b)^Math.imul(t^t>>>13,0xc2b2ae35)))+(t>>>0)).toString(36)}(e);if(r&&!t){let o=r.get(n);if(void 0!==o)return{id:n,text:o,tail:t};if(r.set(n,e),r.size>2e3){let e=r.keys().next().value;void 0!==e&&r.delete(e)}}return{id:n,text:e,tail:t}}sq.A.registerLanguage("bash",sK.A),sq.A.alias("bash",["shell","sh","zsh"]),sq.A.registerLanguage("c",sV.A),sq.A.alias("c",["h"]),sq.A.registerLanguage("cpp",sJ.A),sq.A.alias("cpp",["cc","cxx","c++"]),sq.A.registerLanguage("csharp",sY.A),sq.A.alias("csharp",["cs","c#"]),sq.A.registerLanguage("css",sG.A),sq.A.registerLanguage("dart",sX.A),sq.A.registerLanguage("diff",sZ.A),sq.A.registerLanguage("docker",sQ.A),sq.A.alias("docker",["dockerfile"]),sq.A.registerLanguage("go",s0.A),sq.A.alias("go",["golang"]),sq.A.registerLanguage("graphql",s1.A),sq.A.alias("graphql",["gql"]),sq.A.registerLanguage("ini",s2.A),sq.A.alias("ini",["cfg","properties"]),sq.A.registerLanguage("java",s6.A),sq.A.registerLanguage("javascript",s4.A),sq.A.alias("javascript",["js","mjs","cjs"]),sq.A.registerLanguage("json",s5.A),sq.A.registerLanguage("json5",s3.A),sq.A.registerLanguage("jsx",s8.A),sq.A.registerLanguage("kotlin",s7.A),sq.A.alias("kotlin",["kt","kts"]),sq.A.registerLanguage("lua",s9.A),sq.A.registerLanguage("markup",le.A),sq.A.alias("markup",["html","xml","svg","mathml","xhtml"]),sq.A.registerLanguage("markdown",lt.A),sq.A.alias("markdown",["md","mdx"]),sq.A.registerLanguage("php",lr.A),sq.A.registerLanguage("powershell",ln.A),sq.A.alias("powershell",["ps1","pwsh"]),sq.A.registerLanguage("python",lo.A),sq.A.alias("python",["py","python3"]),sq.A.registerLanguage("ruby",li.A),sq.A.alias("ruby",["rb"]),sq.A.registerLanguage("rust",ls.A),sq.A.alias("rust",["rs"]),sq.A.registerLanguage("scala",ll.A),sq.A.registerLanguage("sql",la.A),sq.A.registerLanguage("swift",ld.A),sq.A.registerLanguage("toml",lc.A),sq.A.registerLanguage("tsx",lu.A),sq.A.registerLanguage("typescript",lp.A),sq.A.alias("typescript",["ts"]),sq.A.registerLanguage("yaml",lh.A),sq.A.alias("yaml",["yml"]);let lx=/^ {0,3}(`{3,}|~{3,})/;var lf=r(73342),lm=r(94764),lv=r(63835),ly=r(54152),lb=r(84678),lk=r(98164);let lj={...lm.j,attributes:{...lm.j.attributes,code:[["className",/^language-./,"math-inline","math-display"]]},protocols:{...lm.j.protocols,href:[...lm.j.protocols?.href??[],"file"]},strip:[...lm.j.strip||[],"iframe","object","style","form"]};function lw(e){return/^file:/i.test(e)?e:(0,s_.Lv)(e)}function lS(e){return String(e).toLowerCase().replace(/[^a-z0-9\u4e00-\u9fff]+/g,"-").replace(/^-+|-+$/g,"")}let lC=/(?<![\\`])`((?:[^`\n]|\\`)+?)(?<![\\`])`(?!`)/g;function lz(e){let t=e.includes("\r\n")?"\r\n":"\n",r=e.split(/\r?\n/),n=[],o=null,i=0,s=null,l=new Map;for(let e=0;e<r.length;e++){var a,d;let t=r[e];if(s){n.push(t),RegExp(`</${s}\\s*>`,"i").test(t)&&(s=null);continue}let c=t.match(/^ {0,3}(`{3,}|~{3,})/);if(c){let e=c[1][0],r=c[1].length;o?e===o.marker&&r>=o.size&&(o=null):o={marker:e,size:r},i=0,n.push(t);continue}if(o){n.push(t);continue}let u=t.match(/<(code|pre|script|style)\b/i);if(u){let e=u[1].toLowerCase(),r=t.slice((u.index??0)+u[0].length);RegExp(`</${e}\\s*>`,"i").test(r)||(s=e),i=0,n.push(t);continue}if(/^(?: {4}|\t)/.test(t)||""===t.trim()){i=0,n.push(t);continue}if(i||(t=t.replace(lC,(e,t)=>{let r=t.replace(/\\`/g,"`");if(r===t)return e;let n="`".repeat(Math.max(...r.match(/`+/g)?.map(e=>e.length)??[0])+1);return`${n}${r}${n}`})),i||t.includes("`")){i=function(e,t){let r=t;for(let t=0;t<e.length;){if("`"!==e[t]){t++;continue}let n=t+1;for(;"`"===e[n];)n++;let o=n-t;0===r?r=o:o===r&&(r=0),t=n}return r}(t,i),n.push(t);continue}let p=t.match(/^([ ]{0,3})\\\[[ \t]*(.+?)[ \t]*\\\][ \t]*$/);if(p){let e=p[2].trim();if(e){n.push(`${p[1]}$$`,`${p[1]}${e}`,`${p[1]}$$`);continue}}let h=t.match(/^([ ]{0,3})\[[ \t]*(.+?)[ \t]*\][ \t]*$/);if(h){let e=h[2].trim();if(a=e,/\\[A-Za-z]+/.test(a)&&!/\b(?:https?|file|mailto):|\b[A-Za-z]:\\|^\\\\/i.test(a)){n.push(`${h[1]}$$`,`${h[1]}${e}`,`${h[1]}$$`);continue}}let g=t.match(/^([ ]{0,3})\\\[[ \t]*$/);if(g){let t=function(e,t){for(let r=t;r<e.length;r++){let t=e[r];if(/^ {0,3}\\\][ \t]*$/.test(t))return r;if(/^ {0,3}(`{3,}|~{3,})/.test(t)||/^ {0,3}\\\[[ \t]*$/.test(t)||/<(code|pre|script|style)\b/i.test(t))break}return -1}(r,e+1);if(-1!==t){n.push(`${g[1]}$$`,...r.slice(e+1,t).map(e=>lR(e,g[1])),`${g[1]}$$`),e=t;continue}}let x=t.match(/^([ \t]{0,3})\$\$(.+)\$\$[ \t]*$/);if(x){let e=x[2].trim();if(e){n.push(`${x[1]}$$`,`${x[1]}${e}`,`${x[1]}$$`);continue}}let f=t.match(/^([ \t]{0,3})\$\$(.+)$/);if(f){let t=f[1],o=f[2].trimEnd();if(o&&!o.includes("$$")){let i=lT(r,e+1,t,l);if(i){n.push(`${t}$$`,`${t}${o}`);for(let o=e+1;o<i.index;o++)n.push(lR(r[o],t));i.content&&n.push(`${t}${i.content}`),n.push(`${t}$$`),e=i.index;continue}}}let m=t.match(/^([ \t]{0,3})\$\$\s*$/);if(m){let t=m[1],o=lT(r,e+1,t,l);if(o&&(o.glued||""!==t)){n.push(`${t}$$`);for(let i=e+1;i<o.index;i++)n.push(lR(r[i],t));o.content&&n.push(`${t}${o.content}`),n.push(`${t}$$`),e=o.index;continue}}n.push((d=t,/^\s{0,3}\[[^\]]+\]:/.test(d)||/]\s*\(/.test(d)||/<(?:!--|\/?[A-Za-z][^>]*>)/.test(d)||/\b(?:https?|file|mailto):/i.test(d)||/\b[A-Za-z]:\\/.test(d)?d:d.replace(/(?<!\\)\\\(([^`\r\n$]+?)(?<!\\)\\\)/g,(e,t)=>t.trim()?`$${t}$`:e)))}return n.join(t)}function lT(e,t,r,n){let o=n.get(r);if(void 0!==o&&t<o)return null;for(let o=t;o<e.length;o++){var i,s,l,a;let t=e[o];if(i=t,""===(s=r)?/^ {0,3}\$\$\s*$/.test(i):i.startsWith(s)&&/^\$\$\s*$/.test(i.slice(s.length)))return{index:o,content:"",glued:!1};if(l=t,/^ {0,3}(`{3,}|~{3,})/.test(l)||/^[ \t]*(?:[-+*]|\d{1,9}[.)])(?:[ \t]+|$)/.test(l)||/^ {0,3}#{1,6}(?:[ \t]+|$)/.test(l)||/^ {0,3}>/.test(l)||/<(code|pre|script|style)\b/i.test(l)||(a=t,/^ {0,3}\$\$(?:\S|[ \t]+\S)/.test(a)))return n.set(r,o),null;let d=function(e,t){if(!e.startsWith(t))return null;let r=e.slice(t.length).match(/^(.+?)\$\$\s*$/);if(!r)return null;let n=r[1].trimEnd();return n&&!n.includes("$$")?n:null}(t,r);if(null!==d)return{index:o,content:d,glued:!0}}return n.set(r,e.length),null}function lR(e,t){if(!t||!e||e.startsWith(" "))return e;let r=e.match(/^ */)?.[0].length??0;return r>=t.length?e:`${t.slice(r)}${e}`}let lI=[[ly.A,["yaml"]],[lb.A,{singleTilde:!1}],lk.A];ly.A,lb.A,lk.A;let lM=[[lv.A,lj],[lf.A,{throwOnError:!1,strict:!1}]];lv.A,lf.A;let lE={'pre[class*="language-"]':{color:"var(--text)",background:"transparent"},'code[class*="language-"]':{color:"var(--text)",background:"transparent"},comment:{color:"var(--syntax-comment, var(--text-dim))",fontStyle:"italic"},prolog:{color:"var(--syntax-comment, var(--text-dim))",fontStyle:"italic"},doctype:{color:"var(--syntax-comment, var(--text-dim))",fontStyle:"italic"},cdata:{color:"var(--syntax-comment, var(--text-dim))"},punctuation:{color:"var(--text-muted)"},operator:{color:"var(--text-muted)"},string:{color:"var(--syntax-string, var(--accent-orange))"},char:{color:"var(--syntax-string, var(--accent-orange))"},builtin:{color:"var(--syntax-string, var(--accent-orange))"},"attr-value":{color:"var(--syntax-string, var(--accent-orange))"},keyword:{color:"var(--syntax-keyword, var(--accent))"},atrule:{color:"var(--syntax-keyword, var(--accent))"},property:{color:"var(--accent-blue)"},"attr-name":{color:"var(--accent-blue)"},variable:{color:"var(--accent-blue)"},parameter:{color:"var(--accent-blue)"},constant:{color:"var(--accent-blue)"},number:{color:"var(--syntax-number, var(--accent-blue))"},boolean:{color:"var(--syntax-number, var(--accent-blue))"},symbol:{color:"var(--syntax-number, var(--accent-blue))"},function:{color:"var(--syntax-function, var(--accent-green))"},"class-name":{color:"var(--syntax-function, var(--accent-green))"},"maybe-class-name":{color:"var(--syntax-function, var(--accent-green))"},tag:{color:"var(--accent-red)"},selector:{color:"var(--accent-red)"},regex:{color:"var(--accent-red)"},entity:{color:"var(--accent-red)"},deleted:{color:"var(--accent-red)"},inserted:{color:"var(--accent-green)"},important:{color:"var(--accent-orange)",fontWeight:"bold"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"}};function l$(e){return e.replace(/[*_`~]/g,"").trim()}function lW(e,t){return e.length>t?e.slice(0,t).trimEnd()+"…":e}function lL(e){return e.replace(/^(我要|我想我?|你想要?|你想我?|你想要?|想要?|需要|你来|你来?|用|使用|选|选择|我|你)\s*/u,"").replace(/[吗吧呢]?$/u,"").replace(/[??,,。.!!、]$/gu,"").trim()}function lN({segments:e,onPick:t,onOpenFile:r,cwd:i,innerRef:s}){let{t:l}=(0,Y.s)(),[a,d]=(0,o.useState)([]);return((0,o.useEffect)(()=>{let t=!1;return Promise.all(Array.from(new Set(e.flatMap(e=>(function(e){let t=new Set,r=[];for(let n of e.matchAll(/(?:\.[\w-]+\/|[\w-]+\/)+[\w.@-]+\.\w+|\b[A-Za-z0-9_.-]+\.(?:ts|tsx|js|jsx|mjs|cjs|md|mdx|json|py|go|rs|css|scss|html|sh|yml|yaml|toml|lock|txt|sql|env)\b/gu)){let e=n[0];(e=e.replace(/[),。、;:!!??)>"'`]$/u,"")).length>=3&&!t.has(e)&&(t.add(e),r.push(e))}return r})(e.text)))).map(e=>e.startsWith("/")?e:i?oA(i,e):e).map(async e=>{try{return(await fetch(`/api/files/${oW(e)}?type=meta`)).ok?e:null}catch{return null}})).then(e=>{t||d(e.filter(e=>!!e))}),()=>{t=!0}},[e,i]),0===e.length)?null:(0,n.jsxs)("span",{ref:s,style:{display:"flex",flexDirection:"column",gap:3,marginTop:4,width:"fit-content",maxWidth:"100%",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:4,boxShadow:"0 4px 14px rgba(0,0,0,0.14)"},onMouseDown:e=>e.preventDefault(),onClick:e=>e.stopPropagation(),children:[r&&a.length>0&&(0,n.jsx)("span",{style:{display:"flex",flexWrap:"wrap",gap:4},children:a.map(e=>(0,n.jsxs)("button",{type:"button",onClick:t=>{t.stopPropagation(),r(e)},title:l("desktop.openFile"),style:{display:"inline-flex",alignItems:"center",gap:4,padding:"3px 9px",fontSize:12,color:"var(--accent)",background:"color-mix(in srgb, var(--accent) 10%, transparent)",border:"1px solid var(--border)",borderRadius:6,cursor:"pointer",whiteSpace:"nowrap",maxWidth:220,overflow:"hidden",textOverflow:"ellipsis"},children:[(0,n.jsx)(lP,{}),l("desktop.openFile"),": ",e.split("/").pop()]},e))}),e.map((e,r)=>(0,n.jsx)(lA,{segment:e,onPick:t,t:l},r))]})}function lA({segment:e,onPick:t,t:r}){let o=e.options??[{label:r("desktop.quoteReply"),value:""}];return(0,n.jsx)("span",{style:{display:"flex",flexWrap:"wrap",gap:4},children:o.map((r,o)=>(0,n.jsx)("button",{onClick:n=>{var o,i;let s;n.stopPropagation(),t((o=e.text,i=r.value||void 0,s=l$(o).split("\n").map(e=>`> ${e}`).join("\n"),i?`${s}
187
187
  ${i}`:`${s}
188
188
  `))},title:e.text.slice(0,60),style:{display:"inline-flex",alignItems:"center",gap:4,padding:"3px 9px",fontSize:12,color:r.value?"var(--accent)":"var(--text-muted)",background:r.value?"color-mix(in srgb, var(--accent) 10%, transparent)":"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:6,cursor:"pointer",whiteSpace:"nowrap",maxWidth:220,overflow:"hidden",textOverflow:"ellipsis",transition:"background 0.12s, border-color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.borderColor="color-mix(in srgb, var(--accent) 45%, var(--border))"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--border)"},children:r.label},o))})}function lP(){return(0,n.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"})})}function lF(e,t,r){return Math.min(r,Math.max(t,e))}function lD(e,t,r,n){return r<=0||n<=0||e<=0||t<=0?1:Math.min(.9*e/r,.9*t/n)}function lH({children:e,contentWidth:t,contentHeight:r,title:i,ariaLabel:s,onClose:l}){let{t:a}=(0,Y.s)(),d=(0,o.useRef)(null),c=(0,o.useRef)(null),u=t+26,p=r+26,[h,g]=(0,o.useState)(1),[x,f]=(0,o.useState)({scale:1,tx:0,ty:0}),[m,v]=(0,o.useState)(!1),[y,b]=(0,o.useState)(!1),k=(0,o.useRef)(h),j=(0,o.useRef)(x);k.current=h,j.current=x;let w=(0,o.useRef)(null),S=(0,o.useCallback)((e,t,r)=>{let{scale:n,tx:o,ty:i}=j.current,s=k.current,l=lF(e,.25*s,3*s);l!==n&&f({scale:l,tx:t-(t-o)*l/n,ty:r-(r-i)*l/n})},[]),C=(0,o.useCallback)(e=>{let t=c.current;if(!t)return;let r=t.getBoundingClientRect(),n=r.width/2,o=r.height/2,i=k.current;S((j.current.scale/i+.25*e)*i,n,o)},[S]),z=(0,o.useCallback)(()=>{let e=c.current;if(!e)return;let{clientWidth:t,clientHeight:r}=e,n=lD(t,r,u,p);g(n),f({scale:n,tx:(t-u*n)/2,ty:(r-p*n)/2})},[u,p]);(0,o.useEffect)(()=>{let e=d.current;if(!e)return;let t=document.body.style.overflow;document.body.style.overflow="hidden",e.showModal();let r=requestAnimationFrame(()=>{z()});return()=>{cancelAnimationFrame(r),document.body.style.overflow=t,e.open&&e.close()}},[z]),(0,o.useEffect)(()=>{let e=c.current;if(!e||"u"<typeof ResizeObserver)return;let t=!1,r=new ResizeObserver(()=>{if(!t){t=!0;return}let{clientWidth:r,clientHeight:n}=e;if(r<=0||n<=0)return;let o=k.current,i=j.current,s=i.scale/o,l=lD(r,n,u,p),a=lF(s*l,.25*l,3*l),d=r/2,c=n/2,h=(d-i.tx)/i.scale,x=(c-i.ty)/i.scale;g(l),f({scale:a,tx:d-h*a,ty:c-x*a})});return r.observe(e),()=>r.disconnect()},[u,p]);let T=e=>{let t=w.current;t&&t.pointerId===e.pointerId&&(t.capturing&&e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId),w.current=null,v(!1))},R=Math.round(x.scale/h*100),I=.25*h,M=3*h;return(0,n.jsx)("dialog",{ref:d,className:"mermaid-zoom-dialog","aria-label":s,onCancel:e=>{e.preventDefault(),l()},onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),l())},children:(0,n.jsxs)("div",{className:"mermaid-zoom-layout",children:[(0,n.jsxs)("div",{className:"mermaid-zoom-toolbar",children:[i?(0,n.jsx)("span",{className:"mermaid-zoom-title",children:i}):null,!y&&(0,n.jsx)("span",{className:"mermaid-zoom-hint",children:a("desktop.zoomPanHint")}),(0,n.jsxs)("div",{className:"mermaid-zoom-actions",children:[(0,n.jsx)("button",{type:"button",className:["mermaid-zoom-icon-button","mermaid-zoom-select-button",y?"is-active":""].filter(Boolean).join(" "),onClick:()=>b(e=>!e),title:a("desktop.selectText"),"aria-label":a("desktop.selectText"),"aria-pressed":y,children:(0,n.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M4 6V4h16v2M4 18v2h16v-2M12 4v16"})})}),(0,n.jsxs)("div",{className:"mermaid-zoom-stepper",children:[(0,n.jsx)("button",{type:"button",onClick:()=>C(-1),disabled:x.scale<=I+1e-9,title:a("desktop.zoomOut"),"aria-label":a("desktop.zoomOut"),children:(0,n.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M5 12h14"})})}),(0,n.jsxs)("button",{type:"button",className:"mermaid-zoom-value",onClick:()=>{z()},title:a("desktop.resetZoom"),"aria-label":`${R}%`,children:[R,"%"]}),(0,n.jsx)("button",{type:"button",onClick:()=>C(1),disabled:x.scale>=M-1e-9,title:a("desktop.zoomIn"),"aria-label":a("desktop.zoomIn"),children:(0,n.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M12 5v14M5 12h14"})})})]}),(0,n.jsx)("button",{type:"button",className:"mermaid-zoom-icon-button",onClick:z,title:a("desktop.fitToViewport"),"aria-label":a("desktop.fitToViewport"),children:(0,n.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M8 3H3v5M16 3h5v5M8 21H3v-5M16 21h5v-5"})})}),(0,n.jsx)("button",{type:"button",className:"mermaid-zoom-icon-button",onClick:l,title:a("desktop.close"),"aria-label":a("desktop.close"),children:(0,n.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M6 6l12 12M18 6 6 18"})})})]})]}),(0,n.jsx)("div",{ref:c,className:["mermaid-zoom-viewport",y?"is-selecting":"",m?"is-dragging":""].filter(Boolean).join(" "),onWheel:e=>{e.preventDefault();let t=c.current;if(!t)return;let r=t.getBoundingClientRect(),n=e.clientX-r.left,o=e.clientY-r.top,i=Math.exp(-(.0015*e.deltaY));S(j.current.scale*i,n,o)},onPointerDown:e=>{0!==e.button||y||(w.current={pointerId:e.pointerId,startX:e.clientX,startY:e.clientY,originTx:j.current.tx,originTy:j.current.ty,moved:!1,capturing:!1})},onPointerMove:e=>{let t=w.current;if(!t||t.pointerId!==e.pointerId)return;let r=e.clientX-t.startX,n=e.clientY-t.startY;if(!t.moved){if(4>Math.hypot(r,n))return;t.moved=!0,t.capturing=!0,v(!0),e.currentTarget.setPointerCapture(e.pointerId)}f(e=>({...e,tx:t.originTx+r,ty:t.originTy+n}))},onPointerUp:T,onPointerCancel:T,onDoubleClick:e=>{if(y)return;e.preventDefault();let t=c.current;if(!t)return;let r=t.getBoundingClientRect(),n=e.clientX-r.left,o=e.clientY-r.top,i=k.current,s=.05>Math.abs(j.current.scale/i-1)?2:1;1===s?z():S(s*i,n,o)},children:(0,n.jsx)("div",{className:"mermaid-zoom-world",style:{width:t*x.scale+26,height:r*x.scale+26,left:x.tx,top:x.ty},children:(0,n.jsx)("div",{className:"mermaid-zoom-canvas",children:e})})})]})})}function lO({src:e,alt:t="",children:r,className:i,style:s}){let{t:l}=(0,Y.s)(),a=l("chat.previewImage"),d=t.trim()?`${a}: ${t}`:a,[c,u]=(0,o.useState)(!1),p=(0,o.useRef)(null),h=(0,o.useRef)(null),g=(0,o.useRef)(null);(0,o.useEffect)(()=>{if(!c)return;let e=h.current;if(!e)return;let t=p.current,r=document.body.style.overflow;return document.body.style.overflow="hidden",e.showModal(),g.current?.focus({preventScroll:!0}),()=>{document.body.style.overflow=r,e.open&&e.close(),t?.isConnected&&t.focus({preventScroll:!0})}},[c]);let x=()=>{h.current?.open&&h.current.close(),u(!1)};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{ref:p,type:"button",className:i,style:{display:"block",padding:0,border:"none",background:"none",color:"inherit",cursor:"zoom-in",...s},onClick:()=>u(!0),"aria-label":d,"aria-haspopup":"dialog","aria-expanded":c,title:a,children:r}),c&&(0,n.jsxs)("dialog",{ref:h,className:"image-preview-dialog","aria-label":l("chat.previewImage"),onCancel:e=>{e.preventDefault(),e.stopPropagation(),x()},onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),x())},children:[(0,n.jsx)("img",{className:"image-preview-image",src:e,alt:t}),(0,n.jsx)("button",{ref:g,type:"button",className:"image-preview-close",onClick:x,"aria-label":l("chat.close"),title:l("chat.close"),children:(0,n.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M6 6l12 12M18 6 6 18"})})})]})]})}let lB=(0,o.createContext)(!1);function lU({src:e,alt:t,cwd:r,...i}){let s=(0,o.useContext)(lB);delete i.node;let l="string"==typeof e?e:void 0,a=l?sR(l,r):null,d=a?`/api/files/${oW(a)}?type=read`:l,c=(0,n.jsx)("img",{src:d,alt:t??"",loading:"lazy",...i});return!d||s?c:(0,n.jsx)(lO,{src:d,alt:t??"",className:"markdown-image",children:c})}let l_=(0,o.createContext)({openId:null,setOpenId:()=>{}});function lq({isStreaming:e,cwd:t,onOpenFile:r,onQuoteReply:i,quoteScope:s="markdown"}){return{h1:({children:e})=>(0,n.jsx)("h1",{id:lS(e),className:"scroll-mt-24 text-xl font-semibold mt-4 mb-2 text-(--text)",children:e}),h2:({children:e})=>(0,n.jsx)("h2",{id:lS(e),className:"scroll-mt-24 text-lg font-semibold mt-3 mb-2 text-(--text)",children:e}),h3:({children:e})=>(0,n.jsx)("h3",{id:lS(e),className:"scroll-mt-24 text-base font-semibold mt-3 mb-1 text-(--text)",children:e}),code({className:t,children:r,...o}){let i=t?.replace("language-","").toLowerCase()??"",s=String(r);return t?.includes("language-")?"mermaid"===i?(0,n.jsx)(lY,{code:s.replace(/\n$/,""),isStreaming:e}):(0,n.jsx)(lZ,{code:s.replace(/\n$/,""),lang:i,isStreaming:e}):(0,n.jsx)("code",{className:"inline max-w-full whitespace-normal break-words [overflow-wrap:anywhere] align-baseline bg-(--bg-secondary) border border-(--border) px-1.5 py-0.5 text-xs font-mono text-(--accent-blue)",...o,children:r})},pre:({children:e})=>(0,n.jsx)("div",{className:"markdown-block-code",children:e}),p({children:e,node:l,...a}){let d=`${s}-p-${l?.position?.start?.offset??0}`;return o.Children.toArray(e).some(e=>(0,o.isValidElement)(e)&&("div"===e.type||"pre"===e.type||"table"===e.type||"ul"===e.type||"ol"===e.type))?(0,n.jsx)("div",{className:"markdown-block-wrap",...a,children:e}):i?(0,n.jsx)(lX,{pid:d,onQuoteReply:i,onOpenFile:r,cwd:t,children:e}):(0,n.jsx)("p",{...a,children:e})},li({children:e,node:o,...l}){let a=`${s}-li-${o?.position?.start?.offset??0}`;return i?(0,n.jsx)(lX,{as:"li",pid:a,onQuoteReply:i,onOpenFile:r,cwd:t,children:e}):(0,n.jsx)("li",{...l,children:e})},a({href:e,children:o,...i}){delete i.node;let s="text-(--accent-blue) underline underline-offset-2 hover:text-(--accent-blue)/80",l=r?sR(e,t):null;if(!l||!r){let t="string"==typeof e&&(e.startsWith("file:")||!/^https?:/i.test(e)&&!e.startsWith("#"));return(0,n.jsx)(lB.Provider,{value:!0,children:(0,n.jsx)("a",{href:e,...i,className:s,...t?{}:{target:"_blank",rel:"noopener noreferrer"},children:o})})}return(0,n.jsx)("a",{href:e,...i,className:s,onClick:t=>{if(t.defaultPrevented||0!==t.button||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey)return;let n=t.currentTarget.getAttribute("target");n&&"_self"!==n||(t.preventDefault(),r(l,sM(e)??void 0))},children:o})},img:e=>(0,n.jsx)(lU,{cwd:t,...e}),table:({children:e})=>(0,n.jsx)("div",{className:"my-3 rounded-lg overflow-hidden border border-(--border)",children:(0,n.jsx)("div",{className:"overflow-x-auto",children:(0,n.jsx)("table",{className:"w-full text-sm border-collapse [&_tr:last-child>td]:border-b-0",children:e})})}),tr({children:e,node:o,...l}){let a=`${s}-tr-${o?.position?.start?.offset??0}`;return i?(0,n.jsx)(lX,{as:"tr",pid:a,onQuoteReply:i,onOpenFile:r,cwd:t,children:e}):(0,n.jsx)("tr",{...l,children:e})}}}let lK=(0,o.memo)(function({text:e,isStreaming:t,cwd:r,onOpenFile:i,onQuoteReply:s,quoteScope:l}){let a=(0,o.useMemo)(()=>lz(e),[e]),d=(0,o.useMemo)(()=>lq({isStreaming:t,cwd:r,onOpenFile:i,onQuoteReply:s,quoteScope:l}),[t,r,i,s,l]);return(0,n.jsx)(s_.oz,{remarkPlugins:lI,rehypePlugins:lM,components:d,children:a})});function lV({children:e,className:t,isStreaming:r,cwd:i,onOpenFile:s,onQuoteReply:l}){let a=(0,o.useMemo)(()=>lz(e),[e]),d=(0,o.useRef)(new Map),c=(0,o.useMemo)(()=>(function(e,t){let r;if(0===e.length)return[];let n=e.split(/\r?\n/),o="",i=0,s=!1,l=-1;for(let e=0;e<n.length;e++){let t=lx.exec(n[e]);s?t&&t[1][0]===o&&t[1].length>=i&&(s=!1,o="",i=0,l=-1):t&&(o=t[1][0],i=t[1].length,s=!0,l=e)}if(l>=0)r=l;else{let e=-1;for(let t=0;t<n.length;t++)""===n[t]&&(e=t);r=e+1}let a=n.slice(0,r),d=n.slice(r),c=[],u=[],p=()=>{for(;u.length>0&&""===u[u.length-1];)u.pop();for(;u.length>0&&""===u[0];)u.shift();u.length>0&&(c.push(lg(u.join("\n"),!1,t)),u=[])};for(let e of a)""===e&&u.length>0?p():u.push(e);for(u.length>0&&p();d.length>0&&""===d[0];)d.shift();return d.length>0&&c.push(lg(d.join("\n"),!0,t)),c})(a,d.current),[a]),u=r&&c.length>1,p=(0,o.useMemo)(()=>lq({isStreaming:r,cwd:i,onOpenFile:s,onQuoteReply:l,quoteScope:"full"}),[r,i,s,l]);return(0,n.jsx)(lJ,{children:(0,n.jsx)("div",{className:["markdown-body",t].filter(Boolean).join(" "),children:u?c.map((e,t)=>(0,n.jsx)(lK,{text:e.text,isStreaming:!!e.tail&&r,cwd:i,onOpenFile:s,onQuoteReply:l,quoteScope:e.id},`${t}-${e.id}`)):(0,n.jsx)(s_.oz,{remarkPlugins:lI,rehypePlugins:lM,urlTransform:s?lw:void 0,components:p,children:a})})})}function lJ({children:e}){let[t,r]=(0,o.useState)(null),i=(0,o.useMemo)(()=>({openId:t,setOpenId:r}),[t]);return(0,n.jsx)(l_.Provider,{value:i,children:e})}function lY({code:e,isStreaming:t}){let{t:i}=(0,Y.s)(),{isDark:s}=eA(),[l,a]=(0,o.useState)(!t),[d,c]=(0,o.useState)(null),[u,p]=(0,o.useState)(""),[h,g]=(0,o.useState)(null),[x,f]=(0,o.useState)(!1),m=`${s?"dark":"light"}
189
189
  ${e}`;(0,o.useEffect)(()=>{t||a(!0)},[t]),(0,o.useEffect)(()=>{if(!l||t)return;let n=!1;return g(null),(async()=>{let{default:t}=await Promise.all([r.e(988),r.e(9425),r.e(3308)]).then(r.bind(r,43328));if(t.initialize({startOnLoad:!1,securityLevel:"strict",suppressErrorRendering:!0,theme:s?"dark":"default"}),!await t.parse(e,{suppressErrors:!0}))throw Error("Invalid Mermaid diagram");let o="u">typeof crypto&&"randomUUID"in crypto?`mermaid-${crypto.randomUUID()}`:`mermaid-${Date.now()}-${Math.random().toString(36).slice(2)}`,i=await t.render(o,e);n||(c(i.svg),p(m))})().catch(()=>{n||g(m)}),()=>{n=!0}},[e,m,s,t,l]);let v=(0,n.jsx)("button",{onClick:()=>a(e=>!e),disabled:t,title:i(t?"desktop.markdownPreviewAvailableAfterStreaming":l?"desktop.source":"desktop.markdownPreviewMermaidDiagram"),className:["markdown-code-action",l?"is-active":""].filter(Boolean).join(" "),children:i(l?"desktop.source":"desktop.preview")});if(!l||t)return(0,n.jsx)(lZ,{code:e,lang:"mermaid",headerAction:v,isStreaming:t});let y=h===m?(0,n.jsx)("div",{className:"mermaid-block mermaid-block-error",children:i("desktop.markdownInvalidMermaidDiagram")}):d&&u===m?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button",className:"mermaid-block mermaid-preview-button",title:i("desktop.openMermaidViewer"),"aria-label":i("desktop.openMermaidViewer"),onClick:()=>f(!0),dangerouslySetInnerHTML:{__html:d}}),x&&(0,n.jsx)(lG,{svg:d,onClose:()=>f(!1)})]}):(0,n.jsx)("div",{className:"mermaid-block mermaid-block-loading","aria-label":i("desktop.markdownRenderingMermaidDiagram")});return(0,n.jsxs)("div",{className:"markdown-code-block",children:[(0,n.jsxs)("div",{className:"markdown-code-header",children:[(0,n.jsx)("span",{className:"markdown-code-lang",children:"mermaid"}),(0,n.jsx)("div",{className:"markdown-code-actions",children:v})]}),y]})}function lG({svg:e,onClose:t}){let{t:r}=(0,Y.s)(),i=(0,o.useMemo)(()=>(function(e){if("u"<typeof DOMParser)return{html:e,width:800,height:600};let t=new DOMParser().parseFromString(e,"image/svg+xml").documentElement;if(!t||"svg"!==t.tagName.toLowerCase())return{html:e,width:800,height:600};let r=0,n=0,o=t.getAttribute("viewBox");if(o){let e=o.trim().split(/[\s,]+/).map(Number);4===e.length&&e.every(e=>Number.isFinite(e))&&(r=e[2],n=e[3])}return r>0&&n>0||(r=parseFloat(t.getAttribute("width")||""),n=parseFloat(t.getAttribute("height")||"")),r>0&&n>0||(r=800,n=600),t.removeAttribute("width"),t.removeAttribute("height"),t.style.maxWidth="none",t.getAttribute("viewBox")||t.setAttribute("viewBox",`0 0 ${r} ${n}`),{html:t.outerHTML,width:r,height:n}})(e),[e]);return(0,n.jsx)(lH,{contentWidth:i.width,contentHeight:i.height,title:r("desktop.mermaidDiagram"),ariaLabel:r("desktop.mermaidViewer"),onClose:t,children:(0,n.jsx)("div",{dangerouslySetInnerHTML:{__html:i.html}})})}function lX({children:e,onQuoteReply:t,onOpenFile:r,cwd:i,as:s="p",pid:l}){let{openId:a,setOpenId:d}=(0,o.useContext)(l_),{t:c}=(0,Y.s)(),u=a===l,p=(0,o.useRef)(null),[h,g]=(0,o.useState)(null),[x,f]=(0,o.useState)(!1),[m,v]=(0,o.useState)(1),y=(0,o.useRef)(null),[b]=(0,o.useState)(()=>window.matchMedia?.("(pointer: coarse)").matches);(0,o.useEffect)(()=>{!u&&h&&g(null)},[u,h]);let k=(0,o.useRef)(null);(0,o.useEffect)(()=>{h&&k.current&&k.current.scrollIntoView({block:"nearest"})},[h]);let j=()=>{g(null),d(null)},w=()=>{h?j():(()=>{let e;if(h||u)return;let t=p.current,r=(!(e=l$("tr"===s&&t?Array.from(t.querySelectorAll("td, th")).map(e=>(e.textContent??"").trim()).join(" | "):t?.textContent??""))?[]:e.split(/(?<=[??])|[;;]/u).map(e=>e.trim()).filter(e=>e.length>0)).map(e=>({text:e,options:function(e){let t=l$(e);if(!t)return null;let r=t.match(/^(.+?)\s*(?:还是|或者|或者还是|\bor\b)\s*(.+?)[??]?\s*$/iu);if(r){let e=lL(r[1]),t=lL(r[2]);if(e&&t&&e!==t)return[{label:lW(e,12),value:e},{label:lW(t,12),value:t}]}if(!/怎么|如何|怎样|哪个|哪些|什么|为什么|为何|谁|多少|几(个|点|时)?|what|how|why|who|where/u.test(t)&&(/[??]\s*$/u.test(t)||/(?:吗|吧|呢)[??]?\s*$/u.test(t)||/是否|要不要|能不能|可不可以|要不要我|需要我/u.test(t))){let e=t.replace(/^(要我|需要我|要不要我?|是否|能不能|可不可以|要不要|或者|还是|你能|你可以|请|麻烦)\s*/u,"").replace(/[吗吧呢啊呀]?[??]+$/u,"").replace(/[吗吧呢啊呀]$/u,"").trim();return e&&e.length<=16?[{label:`好,${lW(e,10)}`,value:"是的"},{label:"不用",value:"不用了"}]:[{label:"是",value:"是的"},{label:"否",value:"不用了"}]}return null}(e)}));r.length>0&&("tr"===s&&t&&v(Math.max(1,t.querySelectorAll("td, th").length)),g(r),d(l))})()},S=(e,t)=>{y.current&&(y.current.style.left=`${e+12}px`,y.current.style.top=`${t+14}px`)},C=h&&(0,n.jsx)(lN,{innerRef:k,segments:h,onPick:e=>{t(e),j()},onOpenFile:r,cwd:i});return"tr"===s?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("tr",{ref:e=>{p.current=e},onClick:w,title:b||h?void 0:c("desktop.quoteReplyHint"),style:{cursor:"pointer"},children:e}),C&&(0,n.jsx)("tr",{children:(0,n.jsx)("td",{colSpan:m,children:C})})]}):(0,n.jsxs)(s,{ref:p,onMouseEnter:e=>{if(b)return;f(!0);let{clientX:t,clientY:r}=e;requestAnimationFrame(()=>S(t,r))},onMouseMove:b?void 0:e=>S(e.clientX,e.clientY),onMouseLeave:()=>f(!1),onClick:w,style:{position:"relative",cursor:"pointer"},children:[e,x&&!h&&(0,n.jsx)("span",{ref:y,style:{position:"fixed",left:-9999,top:-9999,fontSize:11,color:"var(--text-dim)",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:4,padding:"2px 6px",pointerEvents:"none",zIndex:50,whiteSpace:"nowrap"},children:c("desktop.quoteReplyHint")}),C]})}function lZ({code:e,lang:t,headerAction:r,isStreaming:i}){let{t:s}=(0,Y.s)(),[l,a]=(0,o.useState)(!1),[d,c]=(0,o.useState)(!1);return(0,n.jsxs)("div",{className:"markdown-code-block",onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),children:[(0,n.jsxs)("div",{className:"markdown-code-actions",style:{position:"absolute",top:6,right:8,zIndex:1,display:"flex",alignItems:"center",gap:6,opacity:+!!d,pointerEvents:d?"auto":"none",transition:"opacity 0.12s"},children:[(0,n.jsx)("span",{style:{color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:10,fontWeight:600,letterSpacing:"0.06em",textTransform:"uppercase",userSelect:"none"},children:t||s("desktop.markdownPlainText")}),r,(0,n.jsx)("button",{onClick:()=>{nA(e).then(()=>{a(!0),setTimeout(()=>a(!1),1500)})},title:s(l?"desktop.copied":"desktop.copy"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,border:"none",borderRadius:5,background:"transparent",color:l?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:10,transition:"color 0.12s"},onMouseEnter:e=>{l||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{l||(e.currentTarget.style.color="var(--text-dim)")},children:l?(0,n.jsx)(f.J,{size:11,"aria-hidden":"true"}):(0,n.jsx)(sU.Q,{size:11,"aria-hidden":"true"})})]}),i?(0,n.jsx)("pre",{className:"markdown-code-streaming",children:(0,n.jsx)("code",{children:e})}):(0,n.jsx)(sq.A,{language:t||"text",style:lE,showLineNumbers:!1,customStyle:{margin:0,padding:"10px 16px",fontSize:13,lineHeight:1.65,borderRadius:0,border:"none",background:"var(--bg-secondary)"},codeTagProps:{style:{fontFamily:"var(--font-mono)"}},children:e})]})}let lQ=/^<skill name="([^"]+)" location="([^"]+)">/,l0="\n</skill>",l1=/<(read-files|modified-files)>\s*([\s\S]*?)\s*<\/\1>/g,l2=/(?:\r?\n){2,}((?:[ \t]*<(?:read-files|modified-files)>[ \t]*\r?\n[\s\S]*?\r?\n[ \t]*<\/(?:read-files|modified-files)>[ \t]*(?:\r?\n)?)+)\s*$/;function l6({content:e}){var t,r,i;let s,{t:l}=(0,Y.s)(),[a,d]=(0,o.useState)(!1),c="string"==typeof e?e:e.filter(e=>"text"===e.type).map(e=>e.text).join("\n"),u=(0,o.useMemo)(()=>{let e,t,r,n,o;return e=[],t=[],r=c.match(l2),n=r?.[1]??"",o=r?.index===void 0?c:c.slice(0,r.index),n.replace(l1,(r,n,o)=>{let i=o.split(/\r?\n/).map(e=>e.trim()).filter(Boolean);return"read-files"===n?e.push(...i):t.push(...i),""}),{body:o.trim(),readFiles:e,modifiedFiles:t}},[c]),p=(t=u.readFiles.length,r=u.modifiedFiles.length,i=l,s=[],t>0&&s.push(i("desktop.readFilesCount",{count:t})),r>0&&s.push(i("desktop.modifiedFilesCount",{count:r})),s.length>0?s.join(", "):null),[h,g]=(0,o.useState)(!1),[x,f]=(0,o.useState)(!1),m=(0,o.useRef)(null),v=(0,o.useCallback)(()=>{let e=m.current;e&&(g(e.scrollTop>0),f(e.scrollHeight-e.scrollTop-e.clientHeight>1))},[]);return(0,o.useEffect)(()=>{let e=m.current;if(!e||!a)return;let t=new ResizeObserver(v);return e.addEventListener("scroll",v,{passive:!0}),t.observe(e),e.firstElementChild&&t.observe(e.firstElementChild),v(),()=>{e.removeEventListener("scroll",v),t.disconnect()}},[a,v]),(0,n.jsxs)("div",{className:"group/process relative mb-3 min-w-0",children:[(0,n.jsx)("div",{className:"group/summary-row flex items-center justify-between",children:(0,n.jsxs)("button",{type:"button",onClick:()=>d(e=>!e),className:"group/summary flex min-w-0 items-center gap-1.5 text-left text-sm leading-relaxed text-text-muted transition-colors hover:text-text","aria-expanded":a,children:[(0,n.jsx)("span",{className:"truncate",children:l("desktop.conversationCompacted")}),(0,n.jsx)("span",{className:`opacity-0 transition-opacity group-hover/summary:opacity-60 ${a?"rotate-90":""}`,children:(0,n.jsx)(k.J,{size:12,className:"shrink-0 transition-all duration-150"})})]})}),a&&(0,n.jsxs)("div",{className:"relative mt-2",children:[(0,n.jsxs)("div",{ref:m,className:"max-h-[280px] overflow-y-auto pr-2 text-text-dim",children:[(0,n.jsx)("p",{className:"mb-2 text-xs leading-relaxed",children:l("desktop.compactionSummaryDescription")}),u.body?(0,n.jsx)(lV,{className:"!text-text-dim",children:u.body}):(0,n.jsx)("span",{className:"text-xs",children:l("desktop.noSummary")}),p&&(0,n.jsxs)("div",{className:"mt-3 border-t border-border pt-2 text-xs",children:[(0,n.jsx)("div",{className:"font-medium",children:l("desktop.fileContext",{context:p})}),u.modifiedFiles.length>0&&(0,n.jsx)(l4,{title:l("desktop.modifiedFiles"),files:u.modifiedFiles}),u.readFiles.length>0&&(0,n.jsx)(l4,{title:l("desktop.readFiles"),files:u.readFiles})]})]}),h&&(0,n.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 top-0 z-10 h-6 bg-gradient-to-b from-bg to-transparent"}),x&&(0,n.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 bottom-0 z-10 h-6 bg-gradient-to-t from-bg to-transparent"})]})]})}function l4({title:e,files:t}){return(0,n.jsxs)("div",{className:"mt-2",children:[(0,n.jsx)("div",{className:"mb-1 font-mono text-[11px] font-medium text-text",children:e}),(0,n.jsx)("ul",{className:"max-h-45 overflow-auto rounded-sm border border-border bg-bg-subtle px-2 py-1.5 font-mono text-[11px] leading-relaxed",children:t.map(e=>(0,n.jsx)("li",{className:"break-all",children:e},e))})]})}function l5(e){let t,r=[],n=null,o=0,i=0,s=0,l=0,a=[],d=[],c=()=>({lineNo:null,text:"",type:"empty"}),u=()=>{if(!n){a=[],d=[];return}let e=Math.max(a.length,d.length);for(let t=0;t<e;t++){let e=a[t]?{lineNo:a[t].lineNo,text:a[t].text,type:"removed"}:c(),r=d[t]?{lineNo:d[t].lineNo,text:d[t].text,type:"added"}:c();n.rows.push({type:"line",left:e,right:r})}a=[],d=[]};for(let c of e.split(/\r?\n/)){if(!(s>0||l>0)){if(c.startsWith("--- ")){u(),t=l3(c.slice(4));continue}if(c.startsWith("+++ ")){u(),n={oldPath:t,newPath:l3(c.slice(4)),rows:[]},r.push(n);continue}}let e=c.match(/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/);if(e){n||(n={rows:[]},r.push(n)),u(),o=Number(e[1]),i=Number(e[3]),s=void 0===e[2]?1:Number(e[2]),l=void 0===e[4]?1:Number(e[4]),n.rows.push({type:"hunk",text:c});continue}if(!n)continue;if(c.startsWith("\\ ")){u(),n.rows.push({type:"hunk",text:c});continue}if(0===s&&0===l){""!==c&&n.rows.push({type:"hunk",text:c});continue}let p=c[0],h=c.slice(1);" "===p?(u(),n.rows.push({type:"line",left:{lineNo:o++,text:h,type:"context"},right:{lineNo:i++,text:h,type:"context"}}),s>0&&s--,l>0&&l--):"-"===p?(a.push({lineNo:o++,text:h}),s>0&&s--):"+"===p?(d.push({lineNo:i++,text:h}),l>0&&l--):""!==c&&(u(),n.rows.push({type:"hunk",text:c}))}u();let p=r.filter(e=>e.rows.some(e=>"line"===e.type));return p.length>0?p:null}function l3(e){return e.split(" ")[0].trim()}let l8=new Set,l7="pi-thinking-expanded-changed";function l9(){return"true"===window.localStorage.getItem("pi-thinking-expanded")}function ae({files:e,onOpenFile:t}){let{t:r}=(0,Y.s)();return 0===e.length?null:(0,n.jsx)("div",{"aria-label":r("desktop.filesWritten"),style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:6,marginTop:6},children:e.map(({filePath:e})=>{let o=oL(e);return(0,n.jsxs)("button",{type:"button",title:e,"aria-label":r("desktop.openWrittenFile",{name:o}),onClick:()=>t?.(e),style:{display:"inline-flex",alignItems:"center",gap:4,padding:"2px 8px",fontSize:12,fontFamily:"var(--font-mono)",color:"var(--text)",background:"var(--bg-subtle)",border:"1px solid var(--border)",borderRadius:6,cursor:"pointer"},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M9 1.5H4A1.5 1.5 0 0 0 2.5 3v10A1.5 1.5 0 0 0 4 14.5h8A1.5 1.5 0 0 0 13.5 13V6z"}),(0,n.jsx)("path",{d:"M9 1.5V6h4.5"})]}),(0,n.jsx)("span",{children:o})]},e)})})}var at=r(35831),ar=r(63522),an=r(22540),ao=r(36462),ai=r(42405),as=r(47142);let al={flash:{cacheRead:.02,input:1,output:2,cacheWrite:0},pro:{cacheRead:.025,input:3,output:6,cacheWrite:0}};function aa(e){let t=(e??"").toLowerCase();return t.includes("deepseek-v4-flash")?"flash":t.includes("deepseek-v4-pro")?"pro":null}function ad(e){return null!==aa(e)}function ac(e,t){let r=aa(e);if(!r||!t)return 0;let n=al[r],o=ap(t.input),i=ap(t.output),s=ap(t.cacheRead),l=ap(t.cacheWrite);return(s*n.cacheRead+o*n.input+i*n.output+l*n.cacheWrite)/1e6}function au(e){var t;let r="number"==typeof(t=e)&&Number.isFinite(t)?t:0;return!Number.isFinite(r)||r<=0?"\xa50.00":r<.01?"<\xa50.01":r<1?`\xa5${r.toFixed(4)}`:`\xa5${r.toFixed(2)}`}function ap(e){return"number"==typeof e&&Number.isFinite(e)&&e>0?e:0}let ah=new Map;function ag(e,t,r){let n=`${e}:${t}:${r}`,o=ah.get(n);if(o)return ah.delete(n),ah.set(n,o),o;let i=fetch(`/api/sessions/${encodeURIComponent(e)}/entries/${encodeURIComponent(t)}/thinking?blockIndex=${r}`).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();if("string"!=typeof t.thinking)throw Error("Invalid thinking response");return t.thinking}).catch(e=>{throw ah.delete(n),e});if(ah.set(n,i),ah.size>100){let e=ah.keys().next().value;e&&ah.delete(e)}return i}function ax(e){if(!e)return null;let t=new Date(e),r=new Date,n=t.getFullYear()===r.getFullYear()&&t.getMonth()===r.getMonth()&&t.getDate()===r.getDate(),o=t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});if(n)return o;let i=t.toLocaleDateString([],{month:"short",day:"numeric",year:t.getFullYear()!==r.getFullYear()?"numeric":void 0});return`${i} ${o}`}let af=(0,o.memo)(function({message:e,isStreaming:t,toolResults:r,modelNames:o,cwd:i,onOpenFile:s,onQuoteReply:l,onOpenSession:a,entryId:d,searchBlock:c,onFork:u,forking:p,onNavigate:h,onEditContent:g,showTimestamp:x,prevTimestamp:f,sessionId:m,onCreateTask:v,writtenFiles:y}){return"user"===e.role?(0,n.jsx)(am,{message:e,cwd:i,onOpenFile:s,entryId:d,onFork:u,forking:p,onNavigate:h,onEditContent:g,onCreateTask:v}):"assistant"===e.role?(0,n.jsx)(av,{message:e,isStreaming:t,toolResults:r,modelNames:o,cwd:i,onOpenFile:s,onQuoteReply:l,onOpenSession:a,showTimestamp:x,prevTimestamp:f,sessionId:m,entryId:d,onFork:u,forking:p,searchBlock:c,writtenFiles:y}):"toolResult"===e.role?null:"custom"===e.role?"compaction"===e.customType?(0,n.jsx)(l6,{content:e.content}):(0,n.jsx)(aL,{message:e,isStreaming:t,cwd:i,onOpenFile:s}):"bashExecution"===e.role?(0,n.jsx)(aN,{message:e,sessionId:m}):null},(e,t)=>e.message===t.message&&e.isStreaming===t.isStreaming&&function(e,t,r){if(t===r||"assistant"!==e.role)return!0;for(let n of e.content??[])if("toolCall"===n.type&&t?.get(n.toolCallId)!==r?.get(n.toolCallId))return!1;return!0}(e.message,e.toolResults,t.toolResults)&&e.modelNames===t.modelNames&&e.cwd===t.cwd&&e.onOpenFile===t.onOpenFile&&e.onQuoteReply===t.onQuoteReply&&e.onOpenSession===t.onOpenSession&&e.entryId===t.entryId&&e.searchBlock===t.searchBlock&&e.onFork===t.onFork&&e.forking===t.forking&&e.onNavigate===t.onNavigate&&e.onEditContent===t.onEditContent&&e.onCreateTask===t.onCreateTask&&e.showTimestamp===t.showTimestamp&&e.prevTimestamp===t.prevTimestamp&&e.sessionId===t.sessionId&&e.writtenFiles===t.writtenFiles);function am({message:e,cwd:t,onOpenFile:r,entryId:i,onFork:s,forking:l,onNavigate:a,onEditContent:d,onCreateTask:c}){let{t:u}=(0,Y.s)(),[p,h]=(0,o.useState)(!1),[g,x]=(0,o.useState)(!1),m="string"==typeof e.content?e.content:e.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n"),v="string"==typeof e.content?[]:e.content.filter(e=>"image"===e.type),y=v.length>0?m.replace(/(?<!\\)!\[[^\]]*\]\([^)]*\)/g,"").replace(/[ \t]*\n{3,}/g,"\n\n"):m,b=(y&&y.trim()?y.trim().startsWith("/")?y:function(e){let t=e.match(lQ);if(!t)return null;let r=t[1],n=e.indexOf(l0),o="";if(-1!==n){let t=e.slice(n+l0.length);t.startsWith("\n\n")&&(o=t.slice(2).trim())}return o?`/skill:${r} ${o}`:`/skill:${r}`}(y):null)??y,k=ax(e.timestamp),j=!!i&&!!s,w=!!i&&!!a;return(0,n.jsxs)("div",{"data-message-role":"user","data-entry-id":i,className:"chat-user-message chat-msg-in",onMouseEnter:()=>h(!0),onMouseLeave:()=>h(!1),children:[(0,n.jsx)("div",{className:"chat-user-bubble-wrap",children:(0,n.jsxs)("div",{className:"chat-user-bubble",children:[v.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:8*!!y},children:v.map((e,t)=>{let r=e.source?"base64"===e.source.type?`data:${e.source.media_type};base64,${e.source.data}`:e.source.url??"":e.data?`data:${e.mimeType};base64,${e.data}`:"";return(0,n.jsx)(lO,{src:r,children:(0,n.jsx)("img",{src:r,alt:"",style:{maxWidth:240,maxHeight:240,borderRadius:6,objectFit:"contain",display:"block",border:"1px solid rgba(59,130,246,0.15)"}})},t)})}),b&&(0,n.jsx)(lV,{className:"markdown-user-message",cwd:t,onOpenFile:r,children:b})]})}),(0,n.jsxs)("div",{className:"msg-actions",style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:6,marginTop:3},children:[(0,n.jsxs)("div",{className:"msg-actions",style:{display:"flex",gap:3,opacity:+!!p,pointerEvents:p?"auto":"none",transition:"opacity 0.12s"},children:[(0,n.jsx)("button",{onClick:()=>{nA(y).then(()=>{x(!0),setTimeout(()=>x(!1),1500)})},title:u("desktop.copyMessage"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,background:"none",border:"none",borderRadius:5,color:g?"var(--accent)":"var(--text-dim)",cursor:"pointer",transition:"color 0.12s"},onMouseEnter:e=>{g||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{g||(e.currentTarget.style.color="var(--text-dim)")},children:g?(0,n.jsx)(f.S,{size:11}):(0,n.jsx)(sU.T,{size:11})}),c&&y.trim()&&(0,n.jsx)("button",{onClick:()=>c(y,t),title:u("desktop.createTaskFromMessage"),"aria-label":u("desktop.createTaskFromMessage"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,background:"none",border:"none",borderRadius:5,color:"var(--text-dim)",cursor:"pointer",transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:(0,n.jsx)(ai.X,{size:11})})]}),(j||w)&&(0,n.jsxs)("div",{className:"msg-actions",style:{display:"flex",gap:3,opacity:p||l?1:0,pointerEvents:p||l?"auto":"none",transition:"opacity 0.12s"},children:[w&&(0,n.jsx)("button",{onClick:()=>void a(i).then(t=>{t&&d?.(e)}),title:u("desktop.editFromHere"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,background:"none",border:"none",borderRadius:5,color:"var(--text-dim)",cursor:"pointer",transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:(0,n.jsx)(at.S,{size:11})}),j&&(0,n.jsx)("button",{onClick:()=>{s(i)},disabled:l,title:u(l?"desktop.creatingNewSession":"desktop.newSessionFromHere"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,background:"none",border:"none",borderRadius:5,color:l?"var(--accent)":"var(--text-dim)",cursor:l?"not-allowed":"pointer",transition:"color 0.12s"},onMouseEnter:e=>{l||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{l||(e.currentTarget.style.color="var(--text-dim)")},children:(0,n.jsx)(W.C,{size:11})})]}),k&&(0,n.jsx)("span",{style:{fontSize:11,color:p?"var(--text-muted)":"var(--text-dim)",opacity:p?1:.5,transition:"color 0.15s, opacity 0.15s"},children:k})]})]})}function av({message:e,isStreaming:t,toolResults:r,modelNames:i,cwd:s,onOpenFile:l,onQuoteReply:a,onOpenSession:d,showTimestamp:c,prevTimestamp:u,sessionId:p,entryId:h,onFork:g,forking:x,searchBlock:m,writtenFiles:v}){var y,b;let k,j,w,{t:S}=(0,Y.s)(),C=c?ax(e.timestamp):null,z=(e.content??[]).map((e,t)=>({block:e,originalIndex:t})).filter(({block:e})=>!sg(e,{isStreaming:t})),T=z.map(({block:e})=>e),[R,I]=(0,o.useState)(!1),[M,E]=(0,o.useState)(!1),[$,L]=(0,o.useState)(!1),N=(0,o.useRef)(null),[A,P]=(0,o.useState)(null),F=(0,o.useRef)(z);F.current=z;let D=(0,o.useRef)(new Map),[H,O]=(0,o.useState)(new Map),B=(0,o.useMemo)(()=>{if(!e.timestamp||!u)return;let t=Math.round((e.timestamp-u)/1e3);return t>0?t:void 0},[e.timestamp,u]),U=(0,o.useMemo)(()=>{let t=new Map;if(!r||!e.timestamp)return t;for(let[n,o]of r)if(o.timestamp&&e.timestamp){let r=Math.round((o.timestamp-e.timestamp)/1e3);r>0&&t.set(n,r)}return t},[r,e.timestamp]),_=T.filter(e=>"text"===e.type).map(e=>e.text).join("\n"),K=function(e){let t=new Set;for(let r of e){if("toolCall"!==r.type)continue;let e=(r.toolName??"").toLowerCase();if("apply_patch"===e||e.includes("patch")||!(aM(r.toolName??"")||"write"===e||"create"===e||e.includes("file_write")||e.includes("create_file")||e.includes("multiedit")))continue;let n=r.input??{},o=n.filePath??n.file_path??n.path??n.file??n.destination??n.newFilePath??n.oldPath;"string"==typeof o&&o.trim()&&t.add(o)}return[...t]}(T),[V,J]=(0,o.useState)(!1);(0,o.useEffect)(()=>{if(!t){let e=new Date().getTime();O(t=>{let r=new Map(t);for(let[t,n]of D.current)r.has(t)||r.set(t,Math.round((e-n)/1e3));return r}),N.current=null,P(null);return}let e=setInterval(()=>{let e=F.current,t=e.map(({block:e})=>e),r=Date.now();e.forEach(({originalIndex:e})=>{D.current.has(e)||D.current.set(e,r)}),O(t=>{let n=!1,o=new Map(t);for(let t=0;t<e.length-1;t++){let i=e[t].originalIndex,s=e[t+1].originalIndex;if(!o.has(i)&&D.current.has(i)){let e=D.current.get(i),t=D.current.get(s)??r;o.set(i,Math.round((t-e)/1e3)),n=!0}}return n?o:t});let n=0;for(let e of t)"text"===e.type?n+=e.text?.length??0:"thinking"===e.type?n+=e.thinking?.length??0:"toolCall"===e.type&&(n+=JSON.stringify(e.input??{}).length);if(0===n)return;null===N.current&&(N.current=r);let o=(r-N.current)/1e3;o>.5&&P(n/4/o)},300);return()=>clearInterval(e)},[t]);let G=e=>e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:e.toLocaleString(),X="error"===e.stopReason&&e.errorMessage?e.errorMessage:null;return 0!==T.length||t||X?(0,n.jsxs)("div",{"data-message-role":"assistant","data-entry-id":h,className:["chat-assistant-message chat-msg-in",t?"is-streaming":""].filter(Boolean).join(" "),onMouseEnter:()=>I(!0),onMouseLeave:()=>I(!1),children:[t&&(0,n.jsx)("div",{className:"chat-assistant-meta",children:(()=>{let e,t=0;for(let e of T)"text"===e.type?t+=e.text?.length??0:"thinking"===e.type?t+=e.thinking?.length??0:"toolCall"===e.type&&(t+=JSON.stringify(e.input??{}).length);let r=Math.round(t/4);return(0,n.jsx)(n.Fragment,{children:r>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,color:"var(--text)"},title:S("desktop.estimatedStreamingTokenCount"),children:[(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:2,fontSize:11,fontWeight:400},children:[(0,n.jsx)(ao.g,{size:13}),r]}),null!==A&&(e=A>=50?"--accent-green":A>=30?"--accent-blue":A>=15?"--accent-orange":"--accent-red",(0,n.jsx)("span",{style:{marginLeft:6,padding:"1px 6px",borderRadius:4,background:`var(${e})`,color:"var(--bg)",fontSize:11,fontWeight:400},children:S("desktop.tokensPerSecond",{count:A.toFixed(1)})}))]})})})()}),(0,n.jsxs)("div",{className:"chat-assistant-content",style:{position:"relative"},children:[X&&(0,n.jsxs)("div",{className:"chat-assistant-error",role:"alert",children:[(0,n.jsx)(as.M,{size:13,weight:"bold"}),(0,n.jsx)("span",{children:X})]}),_&&!t&&(0,n.jsxs)("div",{className:"chat-copy-float",style:{opacity:+!!R,pointerEvents:R?"auto":"none"},children:[(0,n.jsx)("button",{className:"msg-actions",onClick:()=>{nA(_).then(()=>{E(!0),setTimeout(()=>E(!1),1500)})},title:S("desktop.copyMessage"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:M?"var(--accent)":"var(--text-dim)",cursor:"pointer",transition:"color 0.12s, border-color 0.12s"},onMouseEnter:e=>{M||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{M||(e.currentTarget.style.color="var(--text-dim)")},children:M?(0,n.jsx)(f.S,{size:12}):(0,n.jsx)(sU.T,{size:12})}),(0,n.jsx)("button",{className:"msg-actions",onClick:()=>{nA(_.replace(/`([^`]+)`/g,"$1").replace(/```[^\n]*\n?/g,"\n").replace(/```/g,"\n").replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/(\*\*|__)(.*?)\1/g,"$2").replace(/(\*|_)([^*_]+)\1/g,"$2").replace(/~~(.*?)~~/g,"$1").replace(/^#{1,6}\s+/gm,"").replace(/^>\s?/gm,"").replace(/^(\s*)([-*+]|\d+\.)\s+/gm,"$1").replace(/^\s*\|?[\s:|-]+\|?\s*$/gm,"").replace(/\|/g," ").replace(/\n{3,}/g,"\n\n").trim()).then(()=>{L(!0),setTimeout(()=>L(!1),1500)})},title:S("desktop.copyPlainText"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:$?"var(--accent)":"var(--text-dim)",cursor:"pointer",transition:"color 0.12s, border-color 0.12s"},onMouseEnter:e=>{$||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{$||(e.currentTarget.style.color="var(--text-dim)")},children:$?(0,n.jsx)(f.S,{size:12}):(0,n.jsx)(ai.X,{size:12})})]}),z.map(({block:e,originalIndex:o})=>(0,n.jsx)(ay,{block:e,searchTarget:e===m,toolResults:r,isStreaming:t,streamingDuration:H.get(o)??("thinking"===e.type?B:void 0),toolCallDurations:U,cwd:s,onOpenFile:l,onQuoteReply:a,onOpenSession:d,sessionId:p,entryId:h,blockIndex:o},`${h??"stream"}-${o}`))]}),v&&v.length>0&&(0,n.jsx)(ae,{files:v,onOpenFile:l}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:4},children:[!t&&(e.provider||e.usage)&&(0,n.jsxs)("div",{style:{fontSize:11,color:R?"var(--text-muted)":"var(--text-dim)",opacity:R?1:.5,display:"flex",alignItems:"center",gap:5,flexWrap:"wrap",transition:"color 0.15s, opacity 0.15s"},children:[e.provider&&(0,n.jsx)("span",{children:(y=e.provider,b=e.model,k=y.toLowerCase(),j=b.toLowerCase(),w=Object.entries(i??{}).flatMap(([e,t])=>{let r=e.indexOf(":");return r>0&&e.slice(0,r).toLowerCase()===k?[{id:e.slice(r+1).toLowerCase(),name:t}]:[]}),w.find(e=>e.id===j)?.name??w.find(e=>j.endsWith(`/${e.id}`))?.name??Object.entries(i??{}).find(([e])=>e.toLowerCase()===j)?.[1]??`${y}/${b}`)}),e.usage&&e.usage.input>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:2},children:[(0,n.jsx)(an.K,{size:10}),G(e.usage.input)]}),e.usage&&e.usage.output>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:2},children:[(0,n.jsx)(ar.Z,{size:10}),G(e.usage.output)]}),e.usage&&e.usage.cacheRead>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:2},children:[(0,n.jsx)(q.b,{size:10}),G(e.usage.cacheRead)]}),e.usage&&e.usage.cost?.total>0&&(()=>{if(ad(e.model)){let t=ac(e.model,e.usage);return t<=0?null:(0,n.jsx)("span",{title:S("desktop.turnUsageByOfficialPrice"),children:au(t)})}return(0,n.jsxs)("span",{children:["$",e.usage.cost.total.toFixed(4)]})})()]}),h&&g&&!t&&(0,n.jsx)("button",{className:"msg-actions",onClick:()=>g(h),disabled:x,title:x?S("desktop.creatingNewSession"):S("desktop.newSessionFromHere"),"aria-label":S("desktop.newSessionFromHere"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,background:"none",border:"none",borderRadius:5,color:x?"var(--accent)":"var(--text-dim)",cursor:x?"not-allowed":"pointer",opacity:+!!R,pointerEvents:R?"auto":"none",transition:"opacity 0.12s, color 0.12s"},children:(0,n.jsx)(W.C,{size:11})}),C&&!t&&(0,n.jsx)("span",{style:{fontSize:11,color:R?"var(--text-muted)":"var(--text-dim)",opacity:R?1:.5,marginLeft:"auto",transition:"color 0.15s, opacity 0.15s"},children:C}),K.length>0&&!t&&(0,n.jsxs)("span",{style:{position:"relative",display:"inline-flex",alignItems:"center"},children:[(0,n.jsxs)("button",{type:"button",onClick:()=>J(e=>!e),title:S("desktop.changedFiles",{count:K.length}),style:{display:"inline-flex",alignItems:"center",gap:4,padding:"1px 7px",border:"1px solid var(--border)",borderRadius:999,background:V?"var(--bg-hover)":"none",color:"var(--text-muted)",fontSize:10,cursor:"pointer",opacity:R||V?1:.5,transition:"opacity 0.12s, border-color 0.12s, background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)",e.currentTarget.style.borderColor="var(--accent)"},onMouseLeave:e=>{V||(e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.borderColor="var(--border)")},children:[(0,n.jsx)(W.C,{size:10,"aria-hidden":"true"}),K.length]}),V&&(0,n.jsx)("span",{style:{position:"absolute",right:0,top:"calc(100% + 6px)",zIndex:30,minWidth:200,maxWidth:320,padding:"6px 0",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 8px 24px rgba(0,0,0,0.18)"},children:K.map(e=>(0,n.jsx)("button",{type:"button",onClick:()=>{J(!1),l?.(e)},style:{display:"block",width:"100%",padding:"5px 12px",background:"none",border:"none",color:"var(--text-muted)",fontSize:11,textAlign:"left",fontFamily:"var(--font-mono)",cursor:"pointer",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:e},e))})]})]})]}):null}function ay({block:e,searchTarget:t,toolResults:r,isStreaming:o,streamingDuration:i,toolCallDurations:s,cwd:l,onOpenFile:a,onQuoteReply:d,onOpenSession:c,sessionId:u,entryId:p,blockIndex:h}){if("text"===e.type)return(0,n.jsx)("div",{"data-message-text":!0,"data-search-target":t||void 0,children:(0,n.jsx)(ab,{block:e,isStreaming:o,cwd:l,onOpenFile:a,onQuoteReply:d})});if("thinking"===e.type)return(0,n.jsx)(ak,{block:e,duration:i,sessionId:u,entryId:p,blockIndex:h});if("image"===e.type){let t=e.source?.type==="base64"?`data:${e.source.media_type};base64,${e.source.data}`:e.source?.url??(e.data?`data:${e.mimeType};base64,${e.data}`:"");return t?(0,n.jsx)(lO,{src:t,children:(0,n.jsx)("img",{src:t,alt:"",className:"max-h-96 max-w-full rounded object-contain"})}):null}if("toolCall"===e.type){let t=r?.get(e.toolCallId),o=s?.get(e.toolCallId);return(0,n.jsx)(aw,{block:e,result:t,duration:o,onOpenSession:c})}return null}function ab({block:e,isStreaming:t,cwd:r,onOpenFile:o,onQuoteReply:i}){return(0,n.jsx)(lV,{isStreaming:t,cwd:r,onOpenFile:o,onQuoteReply:i,children:e.text})}function ak({block:e,duration:t,sessionId:r,entryId:i,blockIndex:s,contentOnly:l=!1,isStreaming:a,cwd:d,onOpenFile:c,className:u}){var p;let{t:h}=(0,Y.s)(),[g,x]=(0,o.useState)(l9),[f,m]=(0,o.useState)(null),[v,y]=(0,o.useState)(!1),[b,k]=(0,o.useState)(null);return((0,o.useRef)(h).current=h,p=e.thinking,p.trimStart().match(/^[^\r\n]{0,240}/u)?.[0].trimEnd(),(0,o.useEffect)(()=>{let e=()=>x(l9());return window.addEventListener(l7,e),()=>window.removeEventListener(l7,e)},[]),(0,o.useEffect)(()=>{if(!g||!e.deferred||null!==f)return;if(!r||!i)return void k(h("desktop.thinkingContentUnavailable"));let t=5,n=()=>{y(!0),k(null),ag(r,i,s).then(e=>{m(e),y(!1)}).catch(e=>{t>1?(t--,setTimeout(n,2e3)):(y(!1),k(e instanceof Error?e.message:String(e)))})};n()},[g,e.deferred,f,r,i,s,h]),l)?(0,n.jsx)(aj,{block:e,sessionId:r,entryId:i,blockIndex:s,isStreaming:a,cwd:d,onOpenFile:c,className:u}):(0,n.jsxs)("div",{className:"thinking-block",children:[(0,n.jsxs)("button",{onClick:()=>x(e=>!e),className:"thinking-block-trigger","aria-expanded":g,children:[(0,n.jsx)("span",{className:`thinking-block-caret ${g?"is-expanded":""}`,"aria-hidden":"true",children:"›"}),(0,n.jsx)("span",{className:"thinking-block-icon","aria-hidden":"true",children:"✦"}),(0,n.jsx)("span",{children:h("desktop.thinking")}),void 0!==t&&(0,n.jsxs)("span",{style:{marginLeft:"auto",fontSize:11,color:"var(--text-dim)",fontVariantNumeric:"tabular-nums"},children:[t,"s"]})]}),g&&(0,n.jsx)("div",{className:`thinking-block-content ${b?"is-error":""}`,children:v?h("desktop.loadingThinking"):b??(e.deferred?f:e.thinking)}),void 0!==t&&(0,n.jsxs)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontVariantNumeric:"tabular-nums"},children:[t,"s"]})]})}function aj({block:e,sessionId:t,entryId:r,blockIndex:i,isStreaming:s,cwd:l,onOpenFile:a,className:d}){let{t:c}=(0,Y.s)(),[u,p]=(0,o.useState)(null),[h,g]=(0,o.useState)(!0===e.deferred),[x,f]=(0,o.useState)(null);return((0,o.useEffect)(()=>{let n=!1,o=5;if(!e.deferred)return void g(!1);if(!t||!r){g(!1),f(c("desktop.thinkingContentUnavailable"));return}let s=()=>{n||(g(!0),f(null),ag(t,r,i).then(e=>{n||(p(e),g(!1))}).catch(e=>{n||(o>1?(o--,setTimeout(s,2e3)):(g(!1),f(e instanceof Error?e.message:String(e))))}))};return s(),()=>{n=!0}},[e.deferred,i,r,t,c]),h)?(0,n.jsx)("div",{className:"text-xs text-text-dim",children:c("desktop.loadingThinking")}):x?(0,n.jsx)("div",{className:"text-xs text-red-400",children:x}):(0,n.jsx)(lV,{isStreaming:s,cwd:l,onOpenFile:a,className:d,children:e.deferred?u??"":e.thinking})}let aw=(0,o.memo)(function({block:e,result:t,duration:r,processStyle:i=!1,onOpenSession:s}){var l;let a,{t:d}=(0,Y.s)(),[c,u]=(0,o.useState)(()=>{var t;return void 0!==(t=e.toolCallId)&&l8.has(t)}),p=(0,o.useMemo)(()=>JSON.stringify(e.input,null,2),[e.input]),h=void 0!==e.rawInput,g=aM(e.toolName),x=t&&!t.isError?function(e){let t=e.details;if(!aE(t))return null;let r="string"==typeof t.patch?t.patch:null;if(r)return{text:r};let n="string"==typeof t.diff?t.diff:null;return n?{text:n}:null}(t):null,f=function(e,t){if(!sE(e.toolName))return null;let r=sA(s$(e.input,e.rawInput));if(r)return r;let n=t&&!t.isError?t.details:void 0;if(aE(n)){let e=sP(n.preview);if(e)return e}return null}(e,t),m=sE(e.toolName)?0===(a=function(e){let t=[];for(let r of e.matchAll(/^\*\*\* (?:Add|Delete|Update) File: (.+)$/gm)){let e=(r[1]??"").trim();e&&!t.includes(e)&&t.push(e)}return t}(s$((l=e).input,l.rawInput))).length?null:a.join(", ").slice(0,120):null,v=(0,o.useMemo)(()=>t?t.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n"):null,[t]),y=t?.content.filter(e=>"image"===e.type)??[],b=null!==v&&("(no output)"===v.trim()||""===v.trim()),j=(t?.isError??!1)||sE(e.toolName)&&sL(t?.details),w=sy(t?.details)?t.details:null;return(0,n.jsxs)("div",{className:`tool-call-block ${i?"is-process":""} ${j?"is-error":""}`,children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"stretch",minWidth:0},children:[(0,n.jsxs)("button",{onClick:()=>{var t;let r=!c;t=e.toolCallId,t&&(r?l8.add(t):l8.delete(t)),u(r)},className:"tool-call-trigger","aria-expanded":c,style:{flex:1,minWidth:0},children:[(0,n.jsx)("span",{className:"tool-call-name",children:e.toolName}),(0,n.jsx)("span",{className:"tool-call-preview",children:h?d("chat.generatingToolInput"):m??function(e){let t=e.input;if(!t||"object"!=typeof t)return"";let r=Object.keys(t);return 0===r.length?"":"command"in t?String(t.command).slice(0,120):"path"in t?String(t.path).slice(0,120):"file_path"in t?String(t.file_path).slice(0,120):"pattern"in t?String(t.pattern).slice(0,120):"query"in t?String(t.query).slice(0,120):String(t[r[0]]).slice(0,120)}(e)}),void 0!==r&&(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-dim)",flexShrink:0,fontVariantNumeric:"tabular-nums"},children:[r,"s"]}),(0,n.jsx)("span",{className:`tool-call-caret ${c?"is-expanded":""}`,"aria-hidden":"true",children:(0,n.jsx)(k.J,{size:12})})]}),w&&s&&(0,n.jsx)("button",{type:"button",className:"tool-call-open-session",onClick:()=>s(w.sessionId),title:d("subagent.open"),"aria-label":d("subagent.open"),children:(0,n.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M15 3h6v6"}),(0,n.jsx)("path",{d:"M10 14 21 3"}),(0,n.jsx)("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"})]})})]}),c&&!g&&(0,n.jsx)("pre",{className:"tool-call-input",children:p}),y.length>0&&(0,n.jsx)(a$,{images:y,isError:j}),c&&f&&(0,n.jsx)("div",{style:{borderTop:"1px solid rgba(34,197,94,0.15)",background:"var(--bg)"},children:(0,n.jsx)(az,{files:f})}),c&&t&&f&&j&&(0,n.jsx)(aW,{text:v??"",isEmpty:b,isError:j}),c&&t&&!f&&(x?(0,n.jsx)(aS,{diff:x,processStyle:i}):(!b||0===y.length)&&(0,n.jsx)(aW,{text:v??"",isEmpty:b,isError:j,processStyle:i}))]})});function aS({diff:e,processStyle:t=!1}){return(0,n.jsx)("div",{style:{borderTop:t?"1px solid var(--border)":"1px solid rgba(34,197,94,0.15)",background:"var(--bg)"},children:(0,n.jsx)(aC,{text:e.text})})}function aC({text:e}){let t=(0,o.useMemo)(()=>l5(e),[e]);return t?(0,n.jsx)(az,{files:t}):(0,n.jsx)(aI,{text:e})}function az({files:e}){let{t}=(0,Y.s)(),r=e.length>1;return(0,n.jsx)("div",{style:{maxHeight:560,overflowY:"auto",overflowX:"hidden",background:"var(--bg)"},children:e.map((e,o)=>(0,n.jsxs)("div",{style:{minWidth:0,borderTop:0===o?"none":"1px solid var(--border)",fontFamily:"var(--font-mono)",fontSize:"calc(12px + var(--chat-font-size-offset, 0px))",lineHeight:1.55},children:[r&&(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr) minmax(0, 1fr)",position:"sticky",top:0,zIndex:1,background:"var(--bg-panel)",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)(aT,{title:e.oldPath||t("desktop.before"),side:"left"}),(0,n.jsx)(aT,{title:e.newPath||t("desktop.after"),side:"right"})]}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr) minmax(0, 1fr)"},children:e.rows.map((e,t)=>"hunk"===e.type?null:(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)(aR,{cell:e.left,side:"left"}),(0,n.jsx)(aR,{cell:e.right,side:"right"})]},t))})]},o))})}function aT({title:e,side:t}){return(0,n.jsx)("div",{title:e,style:{padding:"5px 10px",color:"var(--text-dim)",borderRight:"left"===t?"1px solid var(--border)":"none",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e})}function aR({cell:e,side:t}){let r="added"===e.type?"rgba(34,197,94,0.12)":"removed"===e.type?"rgba(248,113,113,0.13)":"empty"===e.type?"var(--bg-subtle)":"transparent",o="added"===e.type?"+":"removed"===e.type?"-":" ",i="added"===e.type?"var(--status-success)":"removed"===e.type?"var(--status-error)":"var(--text-dim)";return(0,n.jsxs)("div",{style:{display:"flex",minWidth:0,background:r,borderRight:"left"===t?"1px solid var(--border)":"none"},children:[(0,n.jsx)("span",{style:{width:42,padding:"0 6px",textAlign:"right",color:"var(--text-dim)",userSelect:"none",background:"var(--bg-panel)",borderRight:"1px solid var(--border)",flexShrink:0},children:e.lineNo??""}),(0,n.jsx)("span",{style:{width:18,padding:"0 5px",color:i,userSelect:"none",fontWeight:"context"===e.type||"empty"===e.type?400:700,flexShrink:0},children:o}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,padding:"0 10px 0 0",color:"empty"===e.type?"var(--text-dim)":"var(--text)",whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:e.text||"\xa0"})]})}function aI({text:e}){let t=e.split(/\r?\n/);return(0,n.jsx)("div",{style:{maxHeight:520,overflowY:"auto",overflowX:"hidden",fontFamily:"var(--font-mono)",fontSize:"calc(12px + var(--chat-font-size-offset, 0px))",lineHeight:1.55,minWidth:0},children:t.map((e,t)=>{let r=e.startsWith("@@")?"hunk":e.startsWith("+")&&!e.startsWith("+++")?"added":e.startsWith("-")&&!e.startsWith("---")?"removed":"context";return(0,n.jsxs)("div",{style:{display:"flex",background:"added"===r?"rgba(34,197,94,0.12)":"removed"===r?"rgba(248,113,113,0.13)":"hunk"===r?"rgba(96,165,250,0.12)":"transparent",borderLeft:"added"===r?"3px solid var(--status-success)":"removed"===r?"3px solid var(--status-error)":"hunk"===r?"3px solid var(--accent)":"3px solid transparent"},children:[(0,n.jsx)("span",{style:{width:48,padding:"0 8px",color:"var(--text-dim)",background:"var(--bg-panel)",borderRight:"1px solid var(--border)",textAlign:"right",userSelect:"none",flexShrink:0},children:t+1}),(0,n.jsx)("span",{style:{padding:"0 10px",whiteSpace:"pre-wrap",overflowWrap:"anywhere",color:"added"===r?"var(--status-success)":"removed"===r?"var(--status-error)":"hunk"===r?"var(--accent)":"var(--text)"},children:e||"\xa0"})]},t)})})}function aM(e){let t=e.toLowerCase();return"edit"===t||t.startsWith("edit_")||t.endsWith(".edit")||t.endsWith("_edit")||t.includes("str_replace")||t.includes("replace_editor")}function aE(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function a$({images:e,isError:t}){return(0,n.jsx)("div",{style:{display:"flex",gap:8,flexWrap:"wrap",padding:"10px",background:"var(--bg)",borderTop:`1px solid ${t?"rgba(248,113,113,0.3)":"rgba(34,197,94,0.15)"}`},children:e.map((e,t)=>{let r=aA(e);return r?(0,n.jsx)(lO,{src:r,style:{maxWidth:"100%"},children:(0,n.jsx)("img",{src:r,alt:"",loading:"lazy",style:{display:"block",maxWidth:"min(100%, 720px)",maxHeight:520,borderRadius:6,objectFit:"contain",border:"1px solid var(--border)"}})},`${r}-${t}`):null})})}function aW({text:e,images:t=[],isEmpty:r,isError:i,processStyle:s=!1}){let{t:l}=(0,Y.s)(),[a,d]=(0,o.useState)(!1),c=!r&&e.length>8e3&&!a,u=c?e.slice(0,8e3):e,p=!r||0===t.length;return(0,n.jsxs)("div",{style:{borderTop:`1px solid ${s?"var(--border)":i?"rgba(248,113,113,0.3)":"rgba(34,197,94,0.15)"}`,background:s?"var(--bg-subtle)":i?"rgba(248,113,113,0.04)":"var(--bg-subtle)"},children:[t.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:8,flexWrap:"wrap",padding:"10px",background:"var(--bg)"},children:t.map((e,t)=>{let r=aA(e);return r?(0,n.jsx)(lO,{src:r,children:(0,n.jsx)("img",{src:r,alt:`Tool result image ${t+1}`,loading:"lazy",style:{display:"block",maxWidth:"min(100%, 720px)",maxHeight:520,borderRadius:6,objectFit:"contain",border:"1px solid var(--border)"}})},`${r}-${t}`):null})}),p&&(0,n.jsx)("pre",{style:{margin:0,padding:"8px 10px",color:i?"var(--status-error)":r?"var(--text-dim)":"var(--text-muted)",fontSize:12,lineHeight:1.5,overflow:"auto",maxHeight:400,background:"var(--bg)",whiteSpace:"pre-wrap",wordBreak:"break-all",fontStyle:r?"italic":"normal",opacity:r?.6:1},children:r?l("desktop.noOutput"):u}),c&&(0,n.jsx)("button",{onClick:()=>d(!0),style:{display:"block",margin:"6px 8px 8px",padding:"4px 10px",border:"1px solid var(--border)",borderRadius:5,background:"transparent",color:"var(--text-dim)",fontSize:11,cursor:"pointer"},children:l("desktop.loadFullOutput")})]})}function aL({message:e,isStreaming:t,cwd:r,onOpenFile:i}){var s,l,a,d,c,u;let p,{t:h}=(0,Y.s)(),g=!1===e.display,[x,f]=(0,o.useState)(!g),[m,v]=(0,o.useState)(!1),[y,b]=(0,o.useState)(!1),k="string"==typeof(s=e.content)?s:s.filter(e=>"text"===e.type).map(e=>e.text).join("\n"),j="string"==typeof(l=e.content)?[]:l.filter(e=>"image"===e.type),w=void 0!==e.details,S=w?function(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}}(e.details):"",C=(a=e.customType,d=h("desktop.extension"),a||d),z=ax(e.timestamp);return(0,n.jsx)("div",{style:{marginBottom:16},children:(0,n.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:8,overflow:"hidden",background:g?"var(--bg-subtle)":"var(--bg)",opacity:g&&!x?.82:1},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"7px 10px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",fontSize:12},children:[(0,n.jsx)("span",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",fontSize:11,fontWeight:650},children:C}),g&&(0,n.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11},children:h("desktop.hiddenExtensionMessage")}),z&&(0,n.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10},children:z})]}),x?(0,n.jsxs)("div",{style:{padding:"6px 9px"},children:[j.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:8*!!k},children:j.map((e,t)=>{let r=aA(e);return r?(0,n.jsx)(lO,{src:r,children:(0,n.jsx)("img",{src:r,alt:"",style:{maxWidth:240,maxHeight:240,borderRadius:6,objectFit:"contain",display:"block",border:"1px solid var(--border)"}})},t):null})}),k?(0,n.jsx)(lV,{className:"markdown-custom-message",isStreaming:t,cwd:r,onOpenFile:i,children:k}):(0,n.jsx)("span",{style:{color:"var(--text-dim)",fontSize:12},children:h("desktop.noMessage")})]}):(0,n.jsx)("button",{onClick:()=>f(!0),style:{display:"block",width:"100%",padding:"8px 10px",border:"none",background:"transparent",color:"var(--text-dim)",cursor:"pointer",fontSize:12,textAlign:"left"},children:k?(c=k,u=h("desktop.showExtensionMessage"),(p=c.replace(/\s+/g," ").trim())?p.length>140?`${p.slice(0,140)}...`:p:u):h("desktop.showExtensionMessage")}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"4px 9px",borderTop:"1px solid var(--border)",background:"var(--bg-subtle)"},children:[k||S?(0,n.jsx)("button",{onClick:()=>{nA(k||S).then(()=>{b(!0),setTimeout(()=>b(!1),1500)})},style:{padding:"3px 7px",border:"none",background:"none",color:y?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:11},children:h(y?"desktop.copied":"desktop.copy")}):null,(w||g)&&(0,n.jsx)("button",{onClick:()=>{g?f(e=>!e):v(e=>!e)},style:{marginLeft:"auto",padding:"3px 7px",border:"none",background:"none",color:"var(--text-dim)",cursor:"pointer",fontSize:11},children:h(g?x?"desktop.collapse":"desktop.expand":m?"desktop.hideDetails":"desktop.showDetails")})]}),w&&(g&&x||!g&&m)&&(0,n.jsx)("pre",{style:{margin:0,padding:"9px 10px",borderTop:"1px solid var(--border)",background:"var(--bg)",color:"var(--text-muted)",fontSize:"calc(12px + var(--chat-font-size-offset, 0px))",lineHeight:1.5,whiteSpace:"pre-wrap",wordBreak:"break-word",maxHeight:360,overflow:"auto",fontFamily:"var(--font-mono)"},children:S})]})})}function aN({message:e,sessionId:t}){let{t:r}=(0,Y.s)(),[i,s]=(0,o.useState)(null),[l,a]=(0,o.useState)(!1),[d,c]=(0,o.useState)(null),u=!e.output&&void 0===e.exitCode&&!e.cancelled,p=e.cancelled||void 0!==e.exitCode&&0!==e.exitCode,h=t&&e.fullOutputPath?`/api/agent/${encodeURIComponent(t)}/bash-output?path=${encodeURIComponent(e.fullOutputPath)}`:null,g=i??e.output,x=async()=>{if(h){a(!0),c(null);try{let e=await fetch(h),t=await e.json();if(!e.ok||!t.success)throw Error(t.error??`HTTP ${e.status}`);s(t.data?.output??"")}catch(e){c(e instanceof Error?e.message:String(e))}finally{a(!1)}}},f=e.excludeFromContext?"bash (local)":"bash",m={type:"toolCall",toolCallId:`bash-${e.timestamp??e.command}`,toolName:f,input:{command:e.command}},v=u?void 0:{role:"toolResult",toolCallId:m.toolCallId,toolName:f,content:g?[{type:"text",text:g}]:[],isError:p,timestamp:e.timestamp};return(0,n.jsxs)("div",{style:{margin:"6px 0"},children:[(0,n.jsx)(aw,{block:m,result:v}),e.truncated&&h&&null===i&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:4},children:[(0,n.jsx)("button",{type:"button",onClick:()=>void x(),disabled:l,style:{padding:"3px 8px",border:"1px solid var(--border)",borderRadius:4,background:"none",color:"var(--text-muted)",cursor:l?"wait":"pointer",fontSize:11},children:r(l?"desktop.loading":"desktop.loadFullOutput")}),(0,n.jsx)("a",{href:`${h}&download=1`,style:{fontSize:11,color:"var(--accent)"},children:r("desktop.download")})]}),d&&(0,n.jsx)("div",{style:{marginTop:4,color:"var(--accent-red)",fontSize:11},children:d})]})}function aA(e){return e.source?"base64"===e.source.type?`data:${e.source.media_type};base64,${e.source.data}`:e.source.url??"":e.data?`data:${e.mimeType};base64,${e.data}`:""}var aP=r(35828),aF=r(259);function aD({open:e,planText:t,onExecute:r,onFeedback:i,onExit:s,onClose:l,busy:a=!1}){let{t:d}=(0,Y.s)(),[c,u]=(0,o.useState)(!1),[p,h]=(0,o.useState)(""),[g,x]=(0,o.useState)(!0),f=(0,o.useRef)(null);return((0,o.useEffect)(()=>{e&&(u(!1),h(""),x(!0))},[e]),(0,o.useEffect)(()=>{c&&f.current?.focus()},[c]),e)?(0,n.jsxs)("div",{role:"region","aria-label":d("tasks.planReviewTitle"),style:{maxWidth:820,margin:"12px auto 8px",border:"1px solid color-mix(in srgb, var(--accent) 28%, var(--border))",borderRadius:12,background:"var(--bg-panel)",animation:"plan-card-in 0.18s ease-out",overflow:"hidden"},children:[c&&(0,n.jsxs)("div",{style:{padding:"10px 14px",display:"flex",flexDirection:"column",gap:6,borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("label",{style:{fontSize:11.5,color:"var(--text-muted)"},children:d("tasks.planReviewFeedbackLabel")}),(0,n.jsx)("textarea",{ref:f,value:p,onChange:e=>h(e.target.value),placeholder:d("tasks.planReviewFeedbackPlaceholder"),rows:2,style:{width:"100%",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"8px 10px",color:"var(--text)",fontSize:12.5,outline:"none",fontFamily:"inherit",resize:"vertical"}}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:6},children:[(0,n.jsx)("button",{type:"button",onClick:()=>u(!1),disabled:a,style:{padding:"5px 10px",borderRadius:6,background:"none",border:"1px solid var(--border)",color:"var(--text-muted)",fontSize:11.5,cursor:a?"not-allowed":"pointer"},children:d("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>{p.trim()&&i(p.trim())},disabled:a||!p.trim(),style:{padding:"5px 12px",borderRadius:6,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:11.5,fontWeight:600,cursor:a||!p.trim()?"not-allowed":"pointer"},children:d("tasks.planReviewSendFeedback")})]})]}),t&&t.trim()?(0,n.jsxs)("div",{style:{padding:"0 14px 10px"},children:[(0,n.jsxs)("button",{type:"button",onClick:()=>x(e=>!e),style:{display:"flex",alignItems:"center",gap:6,background:"none",border:"none",padding:"6px 0",cursor:"pointer",color:"var(--text-muted)",fontSize:11.5,fontFamily:"var(--font-mono)"},children:[(0,n.jsx)("span",{style:{transform:g?"rotate(90deg)":"none",transition:"transform 0.12s"},children:"›"}),d(g?"tasks.planReviewHidePlan":"tasks.planReviewShowPlan")]}),g&&(0,n.jsx)("div",{style:{maxHeight:320,overflow:"auto",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"10px 12px",fontSize:12.5,lineHeight:1.65,color:"var(--text)",whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"var(--font-mono)"},children:t.trim()})]}):null,(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"6px 10px"},children:[(0,n.jsx)(aP.y,{size:14,weight:"fill",color:"var(--accent)","aria-hidden":"true"}),(0,n.jsx)("span",{style:{fontSize:12,fontWeight:650,color:"var(--text)",marginRight:8,flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:d("tasks.planReviewTitle")}),(0,n.jsxs)("button",{type:"button",onClick:r,disabled:a,title:d("tasks.planReviewExecute"),style:{display:"inline-flex",alignItems:"center",gap:5,padding:"6px 12px",borderRadius:7,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:650,cursor:a?"not-allowed":"pointer",transition:"opacity 0.12s"},onMouseEnter:e=>{a||(e.currentTarget.style.opacity="0.88")},onMouseLeave:e=>{e.currentTarget.style.opacity="1"},children:[(0,n.jsx)(ei.r,{size:13,weight:"fill","aria-hidden":"true"}),d("tasks.planReviewExecute")]}),(0,n.jsxs)("button",{type:"button",onClick:()=>{c?u(!1):(u(!0),requestAnimationFrame(()=>f.current?.focus()))},disabled:a,title:d("tasks.planReviewSuggest"),style:{display:"inline-flex",alignItems:"center",gap:5,padding:"6px 10px",borderRadius:7,background:c?"var(--bg-selected)":"none",border:c?"1px solid var(--accent)":"1px solid var(--border)",color:c?"var(--accent)":"var(--text)",fontSize:12,fontWeight:550,cursor:a?"not-allowed":"pointer",transition:"background 0.12s"},onMouseEnter:e=>{a||c||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{c||(e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text)")},children:[(0,n.jsx)(z.S,{size:12,"aria-hidden":"true"}),d("tasks.planReviewSuggest")]}),(0,n.jsxs)("button",{type:"button",onClick:()=>{u(!1),s()},disabled:a,title:d("tasks.planReviewExit"),style:{display:"inline-flex",alignItems:"center",gap:5,padding:"6px 8px",borderRadius:7,background:"none",border:"none",color:"var(--text-muted)",fontSize:12,cursor:a?"not-allowed":"pointer"},onMouseEnter:e=>{a||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:[(0,n.jsx)(aF.f,{size:12,"aria-hidden":"true"}),d("tasks.planReviewExit")]}),(0,n.jsx)("button",{type:"button",onClick:l,disabled:a,title:d("i18n.close"),style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:24,height:24,padding:0,background:"none",border:"none",color:"var(--text-muted)",fontSize:12,cursor:a?"not-allowed":"pointer",borderRadius:5},onMouseEnter:e=>{a||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:"✕"})]})]}):null}var aH=r(19336);let aO={idle:"var(--text-muted)",running:"var(--status-success)",paused:"var(--status-warning)",blocked:"#ea580c",budget_limited:"var(--status-error)",complete:"var(--text-muted)"},aB=new Set(["paused","blocked"]);function aU(e){let t=Math.abs(e);return t>=1e6?`${(e/1e6).toFixed(2)}M`:t>=1e3?`${(e/1e3).toFixed(1)}K`:`${e}`}function a_(e){switch(e){case"running":return"active";case"paused":return"paused";case"blocked":return"stalled";case"budget_limited":return"budget limited";case"complete":return"complete";default:return"idle"}}function aq({goalState:e,onPause:t,onResume:r,onStop:i,onEdit:s}){let{t:l}=(0,Y.s)(),[a,d]=(0,o.useState)(!1),[c,u]=(0,o.useState)(""),p=(0,o.useRef)(null),[h,g]=(0,o.useState)(()=>Date.now());if((0,o.useEffect)(()=>{if("running"!==e.status)return;let t=setInterval(()=>g(Date.now()),1e3);return()=>clearInterval(t)},[e.status]),(0,o.useEffect)(()=>{a&&p.current&&(p.current.focus(),p.current.select())},[a]),"idle"===e.status||"complete"===e.status)return null;let x=aO[e.status]??"var(--text-muted)",f="running"===e.status,m=aB.has(e.status),v="running"===e.status,y=e.timeUsedSeconds??0;v&&e.startedAt&&(y=Math.floor((h-e.startedAt)/1e3));let b=null!=e.tokenBudget?`${aU(e.tokensUsed)}/${aU(e.tokenBudget)}`:aU(e.tokensUsed),k=()=>{d(!1),u("")},j=()=>{let t=c.trim();t&&t!==e.goalText?(s(t),d(!1),u("")):k()},w=(e,t,r)=>(0,n.jsx)("button",{type:"button",onClick:t,style:{padding:"3px 9px",borderRadius:5,border:`1px solid ${r?"var(--accent)":"var(--border)"}`,background:r?"var(--accent)":"var(--bg)",color:r?"#fff":"var(--text-muted)",cursor:"pointer",fontSize:12,lineHeight:1.4,fontFamily:"var(--font-mono)",whiteSpace:"nowrap",flexShrink:0},children:e});return(0,n.jsxs)("div",{style:{flexShrink:0,display:"flex",flexDirection:"column",gap:6,padding:"8px 10px",borderTop:`1px solid ${x}55`,borderBottom:`1px solid ${x}55`,background:`color-mix(in srgb, ${x} 5%, transparent)`,minWidth:0},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0},children:[(0,n.jsx)(aH.d,{size:13,weight:"fill",color:x,"aria-hidden":"true"}),(0,n.jsx)("span",{title:a_(e.status),style:{flexShrink:0,width:8,height:8,borderRadius:"50%",background:x}}),(0,n.jsx)("span",{style:{flexShrink:0,fontSize:11,fontFamily:"var(--font-mono)",color:x,textTransform:"uppercase",letterSpacing:.4},children:a_(e.status)}),(0,n.jsxs)("span",{style:{flex:1,fontSize:11,fontFamily:"var(--font-mono)",color:"var(--text-dim)",whiteSpace:"nowrap",textAlign:"right",minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},children:[function(e){let t=Math.max(0,Math.floor(e));if(t<60)return`${t}s`;let r=Math.floor(t/60);if(r<60)return`${r}m`;let n=Math.floor(r/60),o=r%60;if(n>=24){let e=Math.floor(n/24);return`${e}d ${n%24}h`}return 0===o?`${n}h`:`${n}h ${o}m`}(y)," \xb7 ",b,"t",null!=e.tokenBudget?" \xb7 "+l("desktop.goalBudget"):""]}),(0,n.jsxs)("div",{style:{display:"flex",gap:4,flexShrink:0},children:[f&&w(l("desktop.goalPauseShort"),t,!1),m&&w(l("desktop.goalResumeShort"),r,!0),!a&&w(l("desktop.goalEdit"),()=>{u(e.goalText??""),d(!0)},!1),w("✕",i,!1)]})]}),a?(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[(0,n.jsx)("textarea",{ref:p,value:c,onChange:e=>u(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.metaKey||e.ctrlKey)?(e.preventDefault(),j()):"Escape"===e.key&&(e.preventDefault(),k())},rows:3,style:{width:"100%",padding:"6px 8px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--bg)",color:"var(--text)",fontSize:13,lineHeight:1.5,fontFamily:"var(--font-sans)",resize:"vertical",outline:"none",boxSizing:"border-box"}}),(0,n.jsxs)("div",{style:{display:"flex",gap:6,justifyContent:"flex-end"},children:[w(l("desktop.goalCancel"),k,!1),w(l("desktop.goalSave"),j,!0)]}),(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",fontFamily:"var(--font-mono)"},children:l("desktop.goalEditHint")})]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:{fontSize:13,color:"var(--text)",lineHeight:1.5,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:e.goalText??l("desktop.goalRunning")}),v&&(0,n.jsxs)("div",{style:{display:"flex",gap:10,fontSize:10,color:"var(--text-muted)",fontFamily:"var(--font-mono)",flexWrap:"wrap"},children:[(0,n.jsxs)("span",{children:[l("desktop.goalTurns"),": ",e.turnsUsed,"/",e.turnsLimit]}),e.noProgressTurns>0&&(0,n.jsx)("span",{children:l("desktop.goalNoProgress",{n:e.noProgressTurns})})]})]})]})}function aK(e,t){if("bash"===e.toLowerCase()){let e=t?.command;return"string"==typeof e&&e.trim()?`command:${e.trim()}`:""}let r=t??{},n="string"==typeof r.source_path?r.source_path:"",o="string"==typeof r.destination_path?r.destination_path:"";if(n&&o)return o!==n?`${n}\u0000${o}`:n;for(let e of["path","file_path","file","glob","pattern","directory"]){let t=r[e];if("string"==typeof t&&t)return t}return""}var aV=r(77229);function aJ({request:e,queuedCount:t=0,busy:r=!1,onResolve:i,onDismiss:s}){let l,{t:a}=(0,Y.s)(),[d,c]=(0,o.useState)(""),[u,p]=(0,o.useState)(!1),[h,x]=(0,o.useState)(0),f=(0,o.useRef)(null),m=(0,o.useRef)([]);(0,o.useEffect)(()=>{e&&(c(""),p(!1),x(0))},[e?.id]);let v=(0,o.useCallback)((e,t,r)=>{i(e,r,t)},[i]),y=e?[{key:"allowOnce",labelKey:"approval.allow",descKey:"approval.allowOnceDescription",run:()=>v(!0,"once")},{key:"allowAlways",labelKey:"approval.allowAlways",descKey:"approval.allowAlwaysDescription",scopeKey:"approval.scopeAlways",run:()=>v(!0,"always")},{key:"denyOnce",labelKey:"approval.deny",descKey:"approval.denyOnceDescription",run:e=>v(!1,"once",e?.trim()||void 0)},{key:"denyAlways",labelKey:"approval.denyAlways",descKey:"approval.denyAlwaysDescription",scopeKey:"approval.scopeAlways",run:e=>v(!1,"always",e?.trim()||void 0)}]:[],b=(0,o.useCallback)(e=>{let t=y[e];t&&t.run(d)},[y,d]),k=(0,o.useCallback)(e=>{if(r)return;let t=Number(e.key);if(Number.isInteger(t)&&t>=1&&t<=y.length){e.preventDefault(),b(t-1);return}if("ArrowDown"===e.key||"ArrowRight"===e.key||"Tab"===e.key&&!e.shiftKey){e.preventDefault(),x(e=>(e+1)%y.length);return}if("ArrowUp"===e.key||"ArrowLeft"===e.key||"Tab"===e.key&&e.shiftKey){e.preventDefault(),x(e=>(e-1+y.length)%y.length);return}if("Enter"===e.key){e.preventDefault(),b(h);return}"Escape"===e.key&&(e.preventDefault(),(s??(()=>v(!1,"once","Dismissed")))())},[h,b,r,s,y.length,v]);if((0,o.useEffect)(()=>{m.current[h]?.focus()},[h]),!e)return null;let j=function(e){if(null==e)return"{}";if("string"==typeof e)return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}(e.args),w=j.length>4e3,S=e.args&&"object"==typeof e.args&&"command"in e.args?String(e.args.command??""):"",C=(l=aK(e.toolName,e.args))?`${e.toolName}(${l})`:e.toolName;return(0,n.jsx)("div",{style:{position:"fixed",left:0,right:0,bottom:130,zIndex:1300,display:"flex",justifyContent:"center",pointerEvents:"none",padding:"0 14px"},children:(0,n.jsxs)("div",{role:"dialog","aria-modal":"true","aria-label":a("approval.title"),onKeyDown:k,style:{pointerEvents:"auto",width:"min(420px, 100%)",maxHeight:"min(70vh, 520px)",display:"flex",flexDirection:"column",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:16,boxShadow:"0 12px 36px rgba(0,0,0,0.28)",animation:"plan-card-in 0.18s ease-out",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"14px 16px 12px"},children:[(0,n.jsx)(aV.Z,{size:18,weight:"fill",color:"var(--accent-orange, #f59e0b)","aria-hidden":"true"}),(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsxs)("div",{style:{fontSize:14,fontWeight:650,color:"var(--text)"},children:[a("approval.title"),t>0&&(0,n.jsxs)("span",{style:{marginLeft:8,fontSize:11,fontWeight:500,color:"var(--text-muted)"},children:["+",t," ",a("approval.queued")]})]}),(0,n.jsx)("div",{style:{fontSize:11.5,color:"var(--text-muted)",marginTop:1},children:a("approval.subtitle")})]}),(0,n.jsx)("button",{type:"button","aria-label":a("i18n.close"),onClick:()=>(s??(()=>v(!1,"once","Dismissed")))(),disabled:r,style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,background:"none",border:"none",borderRadius:6,color:"var(--text-muted)",cursor:r?"not-allowed":"pointer"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(g.u,{size:14,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{padding:"0 16px",overflowY:"auto",flex:1},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:10},children:[(0,n.jsx)("span",{style:{display:"inline-flex",alignItems:"center",padding:"3px 10px",borderRadius:6,background:"var(--bg-selected)",color:"var(--text)",fontSize:12.5,fontWeight:600,fontFamily:"var(--font-mono)"},children:e.toolName}),S?(0,n.jsx)("span",{style:{fontSize:11.5,color:"var(--text-muted)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:S}):null]}),(0,n.jsx)("div",{style:{background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"10px 12px",maxHeight:180,overflow:"auto"},children:(0,n.jsx)("pre",{style:{margin:0,fontSize:11.5,lineHeight:1.55,color:"var(--text-muted)",fontFamily:"var(--font-mono)",whiteSpace:"pre-wrap",wordBreak:"break-all"},children:w?`${j.slice(0,4e3)}
190
190
  …`:j})}),u&&(0,n.jsx)("textarea",{ref:f,value:d,onChange:e=>c(e.target.value),placeholder:a("approval.reasonPlaceholder"),rows:2,style:{width:"100%",marginTop:10,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"8px 10px",color:"var(--text)",fontSize:12.5,outline:"none",fontFamily:"inherit",resize:"vertical"}})]}),(0,n.jsx)("div",{role:"listbox","aria-label":a("approval.title"),style:{display:"flex",flexDirection:"column",gap:4,padding:"12px 12px 4px"},children:y.map((e,t)=>{let o=t===h;return(0,n.jsxs)("button",{ref:e=>{m.current[t]=e},type:"button",role:"option","aria-selected":o,tabIndex:o?0:-1,disabled:r,onClick:()=>b(t),onMouseEnter:()=>x(t),style:{display:"flex",alignItems:"center",gap:10,width:"100%",padding:"8px 10px",background:o?"var(--bg-selected)":"none",border:"none",borderRadius:10,cursor:r?"not-allowed":"pointer",textAlign:"left",transition:"background 0.12s"},children:[(0,n.jsxs)("span",{style:{width:18,flexShrink:0,color:o?"var(--text)":"var(--text-dim)",fontSize:12.5,fontWeight:600},children:[t+1,"."]}),(0,n.jsxs)("span",{style:{minWidth:0,flex:1},children:[(0,n.jsx)("span",{style:{display:"block",fontSize:12.5,fontWeight:600,color:"denyAlways"===e.key?"var(--status-error)":"var(--text)"},children:a(e.labelKey)}),(0,n.jsx)("span",{style:{display:"block",fontSize:11,color:"var(--text-muted)",marginTop:1,lineHeight:1.4},children:"approval.allowAlwaysDescription"===e.descKey||"approval.denyAlwaysDescription"===e.descKey?a(e.descKey,{rule:C}):a(e.descKey)})]}),e.scopeKey&&(0,n.jsx)("span",{style:{flexShrink:0,fontSize:10.5,color:"var(--text-dim)",fontFamily:"var(--font-mono)",maxWidth:130,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a(e.scopeKey)})]},e.key)})}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"8px 16px 12px"},children:[(0,n.jsx)("span",{style:{fontSize:10.5,color:"var(--text-dim)"},children:a("approval.keyboardHint")}),(0,n.jsx)("button",{type:"button",onClick:()=>{p(e=>!e),u||requestAnimationFrame(()=>f.current?.focus())},disabled:r,style:{background:"none",border:"none",padding:"4px 6px",color:"var(--text-muted)",fontSize:11,cursor:r?"not-allowed":"pointer",textDecoration:"underline"},children:u?a("approval.hideReason"):a("approval.denyWithReason")})]})]})})}let aY="pi:create-task-from-text",aG=null,aX="pi-process-display-mode-v2",aZ="tabs",aQ="pi-process-display-mode-change";function a0(){try{let e=window.sessionStorage.getItem(aX);return"timeline"===e||"tabs"===e?e:aZ}catch{return aZ}}function a1(e){return window.addEventListener(aQ,e),()=>window.removeEventListener(aQ,e)}function a2(){return aZ}function a6(e,t){if(!e)return!1;let r=new Set(t.map(e=>e.toLowerCase()));return Object.keys(e).some(e=>r.has(e.toLowerCase()))}function a4(e,t){if(!e)return;let r=new Set(t.map(e=>e.toLowerCase()));for(let[t,n]of Object.entries(e)){if(!r.has(t.toLowerCase())||"string"!=typeof n)continue;let e=n.trim();if(e)return e}}function a5(e){return"object"==typeof e&&null!==e?e:{}}function a3(e){return"add"===e||"added"===e||"create"===e?"create":"delete"===e||"deleted"===e||"remove"===e||"removed"===e?"delete":"update"===e||"modified"===e||"edit"===e||"move"===e?"edit":void 0}function a8(e){if(0!==e.length)return 1===new Set(e).size?e[0]:"edit"}function a7(e){if(Array.isArray(e))return a8(e.map(e=>a3(a5(e).type||a5(e).status||a5(e).changeType)).filter(e=>!!e))}function a9(e){if(!e)return;let t=(e.match(/^\*\*\* Add File:/gm)||[]).length,r=(e.match(/^\*\*\* Delete File:/gm)||[]).length,n=(e.match(/^\*\*\* (Update File|Move to):/gm)||[]).length;if(t||r||n){let e=[];if(t)for(let r=0;r<t;r++)e.push("create");if(r)for(let t=0;t<r;t++)e.push("delete");if(n)for(let t=0;t<n;t++)e.push("edit");return a8(e)}return/^@@ -0,0 \+\d+/m.test(e)?"create":/^@@ -\d+(?:,\d+)? \+0,0/m.test(e)?"delete":void 0}function de(e){let t=a4(e.args,["path","file","filePath","filepath"]);if(t)return t;let r=a4(e.metadata,["relativePath","filePath","filepath","path","file"]);if(r)return r;let n=a4(Array.isArray(e.metadata?.files)?a5(e.metadata.files[0]):{},["relativePath","filePath","filepath","path","file"]);if(n)return n}function dt(e){return e.split(/[\\/]/).filter(Boolean).pop()||e}let dr=new Set(["cd","chdir","pwd","echo","set","export","source",".","pushd","popd","dirs"]),dn=new Set(["timeout"]),di=new Set(["ls","dir","ll","la","l","tree","eza","exa"]),ds=new Set(["rg","grep","egrep","fgrep","ack","ag","ripgrep"]),dl=new Set(["find","fd","fdfind","locate","mlocate","glob"]),da=new Set(["cat","head","tail","less","more","bat","nl","wc"]),dd=new Set(["curl","wget","fetch","http","xh","httpx"]),dc=new Set(["rm","del","rmdir","unlink","erase"]),du=new Set(["cp","mv","copy","move","rename","ren"]);var dp=r(36705),dh=r(94366),dg=r(66129),dx=r(2152),df=r(59304),dm=r(8727),dv=r(47208),dy=r(95951),db=r(29886),dk=r(86756);function dj(e,t){var r,n,o;let i,s,l,a,d,c,u,p,h,g="string"==typeof(a=e.input.label)&&a.trim()?a:e.toolName;if("error"===e.status)return{displayLabel:g,iconName:"warning",tone:void 0};let x=(d=[(n=r={toolName:e.toolName,label:"string"==typeof e.input.label?e.input.label:void 0,args:e.input,result:"string"==typeof e.result?e.result:void 0}).toolName,n.title,n.label].filter(Boolean).join("\n").toLowerCase(),c=a6(r.args,["path","file","filePath","filepath"]),u=a6(r.args,["content","oldString","old_string","newString","new_string","patch","diff","edits","text"]),p=a6(r.args,["command","cmd","script"]),h=a6(r.args,["pattern","query"]),p||/\b(bash|shell|terminal|command|run|exec|execute|python|node|npm|pnpm|yarn|cargo|go|pytest|test|build|make|git|docker|kubectl|curl|wget)\b/i.test(d)?"command_execution":/\b(todo|todowrite|todo_write|write_todo|task_list|task\s*list)\b/i.test(d)?"todo_update":/\b(edit|write|patch|apply|modify|replace|update|create|delete|remove|insert|rename|move)\b/i.test(d)||c&&u?"document_change":"ls"===(i=r.toolName.toLowerCase())||"list"===i||"dir"===i||i.startsWith("list_")||i.endsWith("_list")||i.includes("list_directory")||i.includes("list_dir")||/\b(ls|list\s*directory|list\s*dir|dir\s*list|listdir)\b/i.test(d)?"directory_list":"find"===(s=r.toolName.toLowerCase())||"glob"===s||"scan"===s||s.includes("file_search")||s.includes("file_find")||s.startsWith("find_")||s.startsWith("glob_")||s.startsWith("scan_")||/\b(find[_\s]*files?|file[_\s]*find|glob|scan[_\s]*files?)\b/i.test(d)?"file_find":/\b(grep|rg|search|semantic|fuzzy|ripgrep)\b/i.test(d)||(l=r.toolName.toLowerCase()).includes("grep")||l.includes("search")||l.includes("fuzzy")||l.includes("ripgrep")||h&&!u&&!p?"document_search":/\b(read|view|open|cat|show|display)\b/i.test(d)||c&&!u&&!p?"document_read":void 0),f="toolbox";if("document_change"===x){let r,n,i,s=(n=a5((r=(o={toolName:e.toolName,label:"string"==typeof e.input.label?e.input.label:void 0,args:e.input,result:"string"==typeof e.result?e.result:void 0}).metadata||{}).filediff),i=function(e){if(!e)return{};try{return a5(JSON.parse(e))}catch{return{}}}(o.result),a7(r.files)??a7(i.files)??a3(r.type||r.status||r.changeType)??(!1===r.exists?"create":void 0)??(!0===r.exists?"edit":void 0)??a9("string"==typeof r.diff?r.diff:"")??a9("string"==typeof r.patch?r.patch:"")??a9("string"==typeof n.patch?n.patch:"")??a9("string"==typeof o.args?.patchText?o.args.patchText:"")??function(e){if(!e)return;let t=e.split(/\r?\n/).map(e=>e.trim()).filter(e=>/^[ADM]\s+/.test(e));if(0!==t.length)return a8(t.map(e=>e.startsWith("A ")?"create":e.startsWith("D ")?"delete":"edit"))}(o.result)??function(e){if(!e)return;let t=e.trim().replace(/\s+/g," ").toLowerCase();return/^(?:rm|del|erase|unlink)\b/.test(t)||/^remove-item\b/.test(t)?"delete":/^mkdir\b/.test(t)?"create":void 0}("string"==typeof o.args?.command?o.args.command:void 0)??"edit");f="create"===s?"filePlus":"delete"===s?"trash":"pencilSimpleLine";let l=t("create"===s?"desktop.processStepFileCreate":"delete"===s?"desktop.processStepFileDelete":"desktop.processStepFileEdit"),a=de({toolName:e.toolName,label:"string"==typeof e.input.label?e.input.label:void 0,args:e.input,result:"string"==typeof e.result?e.result:void 0});return a?{displayLabel:`${l} ${dt(a)}`,iconName:f,target:a,tone:x,typeLabel:l}:{displayLabel:`${l}: ${g}`.slice(0,100),iconName:f,tone:x,typeLabel:l}}if("document_read"===x){f="bookOpen";let r=t("desktop.processStepFileRead"),n=de({toolName:e.toolName,label:"string"==typeof e.input.label?e.input.label:void 0,args:e.input,result:"string"==typeof e.result?e.result:void 0});return n?{displayLabel:`${r} ${dt(n)}`,iconName:f,target:n,tone:x,typeLabel:r}:{displayLabel:g,iconName:f,tone:x,typeLabel:r}}if("document_search"===x){f="magnifyingGlass";let r=t("desktop.processStepSearch"),n="string"==typeof e.input.pattern?e.input.pattern:"string"==typeof e.input.query?e.input.query:"";return n?{displayLabel:`${r} "${n.slice(0,60)}"`,iconName:f,tone:x,typeLabel:r}:{displayLabel:g,iconName:f,tone:x,typeLabel:r}}if("directory_list"===x){f="folder";let r=t("desktop.processStepList"),n=de({toolName:e.toolName,label:"string"==typeof e.input.label?e.input.label:void 0,args:e.input,result:"string"==typeof e.result?e.result:void 0});return n?{displayLabel:`${r} ${dt(n)}`,iconName:f,target:n,tone:x,typeLabel:r}:{displayLabel:g,iconName:f,tone:x,typeLabel:r}}if("file_find"===x){f="magnifyingGlass";let r=t("desktop.processStepFind"),n="string"==typeof e.input.pattern?e.input.pattern:"string"==typeof e.input.glob?e.input.glob:"";return n?{displayLabel:`${r} "${n.slice(0,60)}"`,iconName:f,tone:x,typeLabel:r}:{displayLabel:g,iconName:f,tone:x,typeLabel:r}}if("command_execution"===x){let r="string"==typeof e.input.command?e.input.command:"string"==typeof e.input.cmd?e.input.cmd:"";if(r){let e=function(e){let t=e.split(/&&|\n|;(?!;)|(?<!\|)\|(?!\|)/),r=e.split(/\s+/)[0]?.replace(/^[.\\/]+/,"")||"sh";for(let e of t){var n;let t=(n=e.trim(),n.match(/"[^"]+"|'[^']+'|\S+/g)?.map(e=>e.replace(/^(["'])(.*)\1$/,"$2"))??[]);if(0===t.length)continue;let r=0;for(;r<t.length&&(dr.has(t[r].toLowerCase())||dn.has(t[r].toLowerCase()));){let e=t[r].toLowerCase();if((r+=1)<t.length&&["cd","chdir","pushd"].includes(e)&&(r+=1),"timeout"===e)for(;r<t.length&&(t[r].startsWith("-")||/^\d/.test(t[r]));)r++}if(r>=t.length)continue;let o=t[r].replace(/^[.\\/]+/,"").toLowerCase(),i=o.split(/[/\\]/).pop()||o,s=r+1;for(;s<t.length&&t[s].startsWith("-");)s+=1;let l=s<t.length?t[s]:void 0;if(di.has(i))return{kind:"list",binary:i,argument:l};if(ds.has(i))return{kind:"search",binary:i,argument:l};if(dl.has(i))return{kind:"find",binary:i,argument:l};if(da.has(i))return{kind:"read",binary:i,argument:l};if(dd.has(i))return{kind:"fetch",binary:i,argument:l};if(dc.has(i))return{kind:"delete",binary:i,argument:l};if(du.has(i))return{kind:"copy",binary:i,argument:l};return{kind:"run",binary:i,argument:l}}return{kind:"run",binary:r}}(r);if("list"===e.kind){f="folder";let r=t("desktop.processStepList"),n=e.argument?` ${e.argument}`:"";return{displayLabel:`${r}${n}`,iconName:f,tone:x,typeLabel:r}}if("search"===e.kind){f="magnifyingGlass";let r=t("desktop.processStepSearch"),n=e.argument?` "${e.argument.slice(0,60)}"`:"";return{displayLabel:`${r}${n}`,iconName:f,tone:x,typeLabel:r}}if("find"===e.kind){f="magnifyingGlass";let r=t("desktop.processStepFind"),n=e.argument?` "${e.argument.slice(0,60)}"`:"";return{displayLabel:`${r}${n}`,iconName:f,tone:x,typeLabel:r}}if("read"===e.kind){f="bookOpen";let r=t("desktop.processStepRead"),n=e.argument?` ${e.argument}`:"";return{displayLabel:`${r}${n}`,iconName:f,tone:x,typeLabel:r,target:e.argument||void 0}}if("fetch"===e.kind){f="download";let r=t("desktop.processStepFetch"),n=e.argument?` ${e.argument.slice(0,80)}`:"";return{displayLabel:`${r}${n}`,iconName:f,tone:x,typeLabel:r}}if("delete"===e.kind){f="trash";let r=t("desktop.processStepDelete"),n=e.argument?` ${e.argument}`:"";return{displayLabel:`${r}${n}`,iconName:f,tone:x,typeLabel:r}}if("copy"===e.kind){f="copy";let r=t("desktop.processStepCopy"),n=e.argument?` ${e.argument}`:"";return{displayLabel:`${r}${n}`,iconName:f,tone:x,typeLabel:r}}f="terminal";let n=t("desktop.processStepCommand"),o=e.argument?`${e.binary} ${e.argument.length>60?e.argument.slice(0,57)+"...":e.argument}`:e.binary;return{displayLabel:`${n} ${o}`,iconName:f,tone:x,typeLabel:n}}return{displayLabel:g,iconName:f="terminal",tone:x}}return"todo_update"===x?{displayLabel:g,iconName:f="checklist",tone:x,typeLabel:t("desktop.processStepTodo")}:{displayLabel:g,iconName:f,tone:x}}function dw({expanded:e}){return(0,n.jsx)(k.J,{size:12,className:`shrink-0 transition-all duration-150 ${e?"rotate-90":""}`})}function dS(e,t=14){switch(e){case"brain":return(0,n.jsx)(dp.$,{size:t});case"bookOpen":return(0,n.jsx)(dh.R,{size:t});case"magnifyingGlass":return(0,n.jsx)(h.$,{size:t});case"pencilSimpleLine":return(0,n.jsx)(dv.B,{size:t});case"filePlus":return(0,n.jsx)(oy.u,{size:t});case"trash":return(0,n.jsx)(T.u,{size:t});case"folder":return(0,n.jsx)(df.sj,{size:t});case"download":return(0,n.jsx)(M.e,{size:t});case"copy":return(0,n.jsx)(dx.t,{size:t});case"terminal":return(0,n.jsx)(db.k,{size:t});case"toolbox":default:return(0,n.jsx)(dk.D,{size:t});case"image":return(0,n.jsx)(dm.x,{size:t});case"listBullets":case"checklist":return(0,n.jsx)(O.j,{size:t});case"warning":case"circleX":return(0,n.jsx)(as.M,{size:t})}}function dC({step:e,ts:t}){if("thinking"===e.kind)return dS("brain");if("image"===e.kind)return dS("image");if("custom"===e.kind)return dS("listBullets");if("toolGroup"===e.kind)return dS(e.iconName);let{iconName:r}=dj(e.block,t);return dS(r)}function dz({targets:e,typeLabel:t,count:r,label:o}){if(0===e.length)return(0,n.jsx)("span",{className:"max-w-52 truncate",title:o,children:o});if(2===e.length)return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"shrink-0",children:t}),(0,n.jsx)(dT,{filePath:e[0]}),(0,n.jsx)(dT,{filePath:e[1]})]});let i=e[0].split(".").pop()?.toLowerCase()||"",s=[],l=new Set([i]);for(let t=1;t<e.length&&s.length<2;t++){let r=e[t].split(".").pop()?.toLowerCase()||"";l.has(r)||(l.add(r),s.push({key:e[t],node:oE(e[t],12)}))}return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"shrink-0",children:t}),s.length>0&&(0,n.jsx)("span",{className:"shrink-0 inline-flex gap-px",children:s.map(e=>(0,n.jsx)("span",{className:"inline-flex",children:e.node},e.key))}),(0,n.jsx)(dT,{filePath:e[0]}),(0,n.jsxs)("span",{className:"shrink-0 text-[10px] tabular-nums text-text-dim",children:["+",r-1]})]})}function dT({filePath:e}){let t=e.split(/[\\/]/).filter(Boolean).pop()||e;return(0,n.jsxs)("span",{className:"process-file-tag",title:e,children:[oE(e,12),(0,n.jsx)("span",{children:t})]})}function dR({mode:e}){return"timeline"===e?(0,n.jsx)(dy.D,{size:14}):(0,n.jsx)(dg.j,{size:14})}let dI=(0,o.memo)(function({block:e,processStyle:t=!0}){let r=(0,o.useMemo)(()=>({type:"toolCall",toolCallId:e.toolCallId,toolName:e.toolName,input:e.input}),[e.toolCallId,e.toolName,e.input]);return(0,n.jsx)(aw,{block:r,result:e.result,duration:e.duration,processStyle:t})});function dM({step:e,cwd:t,onOpenFile:r,sessionId:o,ts:i,isStreaming:s}){let l;if("thinking"===e.kind)return(0,n.jsx)(dE,{blocks:e.blocks,cwd:t,onOpenFile:r,sessionId:o,isStreaming:s});if("tool"===e.kind)return(0,n.jsxs)("div",{className:"space-y-2",children:[e.leadBlocks.length>0&&(0,n.jsx)(dE,{blocks:e.leadBlocks,cwd:t,onOpenFile:r,sessionId:o,isStreaming:s}),(0,n.jsx)(dI,{block:e.block})]});if("toolGroup"===e.kind)return(0,n.jsx)("div",{className:"space-y-2",children:e.blocks.map((i,l)=>(0,n.jsxs)("div",{children:[e.leadBlocks[l]&&e.leadBlocks[l].length>0&&(0,n.jsx)("div",{className:"mb-2",children:(0,n.jsx)(dE,{blocks:e.leadBlocks[l],cwd:t,onOpenFile:r,sessionId:o,isStreaming:s})}),(0,n.jsx)(dI,{block:i})]},i.id))});if("custom"===e.kind)return(0,n.jsx)(af,{message:e.block.message,cwd:t,onOpenFile:r,isStreaming:s});let a="url"===(l=e.block.source).type?l.url:l.data?`data:${l.media_type??"image/png"};base64,${l.data}`:void 0;return a?(0,n.jsx)("img",{src:a,alt:i("desktop.processOutput"),className:"max-h-72 max-w-full rounded border border-border object-contain"}):null}function dE({blocks:e,cwd:t,onOpenFile:r,sessionId:o,isStreaming:i}){return(0,n.jsx)("div",{className:"space-y-2 pr-2",children:e.map(e=>"text"===e.type?(0,n.jsx)(lV,{cwd:t,onOpenFile:r,className:"!text-text-dim",isStreaming:i,children:e.text},e.id):(0,n.jsx)(ak,{block:{type:"thinking",thinking:e.thinking,deferred:e.deferred},sessionId:o,entryId:e.origin.sourceEntryId,blockIndex:e.origin.sourceBlockIndex??0,contentOnly:!0,cwd:t,onOpenFile:r,className:"!text-text-dim",isStreaming:i},e.id))})}function d$({blocks:e,isStreaming:t,defaultExpanded:r=!1,onAutoExpanded:i,cwd:s,onOpenFile:l,sessionId:a,tokenRate:d=null}){let c,{t:u}=(0,Y.s)(),p=(0,o.useCallback)(e=>u(e),[u]),h=(0,o.useMemo)(()=>(function(e,t,r=!1){let n=[],o=[],i=()=>{0!==o.length&&(n.push({kind:"thinking",id:o.map(e=>e.id).join("+"),label:t("desktop.processStepThinking"),blocks:o}),o=[])};for(let r of e){if("thinking"===r.type||"text"===r.type){o.push(r);continue}if("toolCall"===r.type){let{displayLabel:e}=dj(r,t);n.push({kind:"tool",id:r.id,label:e,block:r,leadBlocks:o}),o=[];continue}i(),"custom"===r.type?n.push({kind:"custom",id:r.id,label:r.customType.replace(/[_-]+/g," ").replace(/\b\w/g,e=>e.toUpperCase()),block:r}):"image"===r.type&&n.push({kind:"image",id:r.id,label:t("desktop.processOutput"),block:r})}i();try{return function(e,t,r){if(e.length<2)return e;let n=[],o=0;for(;o<e.length;){let i,s=e[o];if("tool"!==s.kind||"error"===s.block.status){n.push(s),o++;continue}let l=dj(s.block,t).tone;if(!l){n.push(s),o++;continue}let a=o+1;for(;a<e.length&&"tool"===e[a].kind;){let r=e[a];if("error"===r.block.status||dj(r.block,t).tone!==l)break;a++}if(r&&a===e.length&&a>o+1&&a--,a-o<2){n.push(s),o++;continue}let d=e.slice(o,a),c=d.map(e=>dj(e.block,t)),u=c[0].iconName,p=c[0].typeLabel||"",h=d.map(e=>e.block),g=c.map(e=>e.displayLabel),x=c.map(e=>e.target||""),f=c.map(e=>{if(e.target)return dt(e.target);let t=e.displayLabel;return e.typeLabel&&t.startsWith(e.typeLabel+" ")?t.slice(e.typeLabel.length+1):t}),m=new Set,v=new Set,y=[],b=[];for(let e=0;e<f.length;e++){let t=f[e];m.has(t)||(m.add(t),y.push(t));let r=x[e];r&&!v.has(r)&&(v.add(r),b.push(r))}let k=d.length;i=2===k&&2===y.length?`${p} ${y[0]}, ${y[1]}`:1===y.length?1===k?`${p} ${y[0]}`:`${p} ${y[0]} \xd7${k}`:2===y.length?`${p} ${y[0]}, ${y[1]}`:`${p} ${y[0]} +${y.length-1}`,n.push({kind:"toolGroup",id:h.map(e=>e.id).join("+"),label:i,blocks:h,leadBlocks:d.map(e=>e.leadBlocks),iconName:u,tone:l,typeLabel:p,targetLabels:g,targets:b}),o=a}return n}(n,t,r)}catch(e){return console.error("[ProcessGroup] mergeConsecutiveToolSteps crashed:",e),n}})(e,p,t),[e,p,t]),[g,x]=(0,o.useState)(t||r),[f,m]=(0,o.useState)({}),{displayMode:v,setDisplayMode:y}={displayMode:(0,o.useSyncExternalStore)(a1,a0,a2),setDisplayMode:(0,o.useCallback)(e=>{try{window.sessionStorage.setItem(aX,e)}catch{}window.dispatchEvent(new Event(aQ))},[])},[b,k]=(0,o.useState)(0),[j,w]=(0,o.useState)(!1),[S,C]=(0,o.useState)(!1),z=(0,o.useRef)(null),T=(0,o.useRef)(!1),R=(0,o.useRef)(!1),I=(0,o.useRef)(!1),M=(0,o.useRef)(!1),E=(0,o.useRef)(!1),$=(0,o.useRef)(0);(0,o.useEffect)(()=>{if(t){T.current=!0,R.current||x(!0);return}if(!T.current)return;E.current=!1,R.current=!1,m({}),x(!1);let e=window.setTimeout(()=>x(!1),300);return T.current=!1,()=>window.clearTimeout(e)},[t]),(0,o.useEffect)(()=>{if(r&&!t&&!M.current&&h.length>0){let e=h[h.length-1];M.current=!0,m({[e.id]:!0}),window.requestAnimationFrame(()=>i?.())}},[r,t,i,h]),(0,o.useEffect)(()=>{if(0===h.length)return;let e=h[h.length-1];k(e=>I.current&&e<h.length?e:h.length-1),t&&m(t=>!0===t[e.id]&&1===Object.keys(t).length?t:{[e.id]:!0})},[t,h]);let W=(0,o.useCallback)(()=>{let e=z.current;e&&(w(t=>{let r=e.scrollTop>0;return t===r?t:r}),C(t=>{let r=e.scrollHeight-e.scrollTop-e.clientHeight>1;return t===r?t:r}))},[]),L=(0,o.useCallback)(()=>{if(Date.now()<$.current)return;let e=z.current;e&&(E.current=e.scrollHeight-e.scrollTop-e.clientHeight>4)},[]);if((0,o.useEffect)(()=>{let e=z.current;if(!e||!g)return;let t=new ResizeObserver(W);return e.addEventListener("scroll",W,{passive:!0}),t.observe(e),e.firstElementChild&&t.observe(e.firstElementChild),W(),()=>{e.removeEventListener("scroll",W),t.disconnect()}},[b,g,v,t,f,h.length,W]),(0,o.useEffect)(()=>{let e=z.current;if(e&&g)return e.addEventListener("scroll",L,{passive:!0}),()=>e.removeEventListener("scroll",L)},[g,v,L]),(0,o.useEffect)(()=>{t&&z.current&&(E.current||($.current=Date.now()+100,z.current.scrollTop=z.current.scrollHeight,W()))},[e,t,W]),0===h.length)return null;let N=h.reduce((e,t)=>"tool"===t.kind?e+1:"toolGroup"===t.kind?e+t.blocks.length:e,0),A=h.reduce((e,t)=>"tool"===t.kind&&"error"===t.block.status?e+1:"toolGroup"===t.kind?e+t.blocks.filter(e=>"error"===e.status).length:e,0),P=e.filter(e=>"thinking"===e.type||"text"===e.type).length,F=h.filter(e=>"custom"===e.kind).length,D=1===h.length&&"thinking"===h[0].kind&&!t,H=1===h.length&&("tool"===h[0].kind||"toolGroup"===h[0].kind)&&!t;if(t)c=u("desktop.processWorking");else if(D){let e=function(e){let t;if("thinking"===e.kind){for(let r of e.blocks)"thinking"===r.type&&"number"==typeof r.duration&&(t=(t??0)+r.duration);return t}}(h[0]);c=void 0!==e?u("desktop.processThoughtDone",{duration:e}):u("desktop.processThoughtDoneNoDuration")}else if(H){let e=h[0];if("toolGroup"===e.kind){let t=e.blocks.reduce((e,t)=>e+(t.duration??0),0);c=t>0?`${e.label} ${t}s`:e.label}else{let t=e.block,r=dj(t,p),n=t.duration;c=void 0!==n?`${r.displayLabel} ${n}s`:r.displayLabel}}else{let e=[];if(N){let t=1===N?u("desktop.processToolCount",{count:N}):u("desktop.processToolsCount",{count:N});e.push(A>0?t+u("desktop.processFailedCount",{failed:A}):t)}P&&e.push(1===P?u("desktop.processThoughtCount",{count:P}):u("desktop.processThoughtsCount",{count:P})),F&&e.push(1===F?u("desktop.processCustomCount",{count:F}):u("desktop.processCustomsCount",{count:F})),c=e.length>0?u("desktop.processUsed",{summary:e.join(" \xb7 ")}):u("desktop.processCompleted")}return(0,n.jsxs)("div",{className:"group/process relative mb-3 min-w-0",children:[(0,n.jsxs)("div",{className:"group/summary-row flex items-center justify-between",children:[(0,n.jsxs)("button",{type:"button",onClick:()=>x(e=>{let r=!e;return R.current=t&&!r,r}),className:"group/summary flex min-w-0 items-center gap-1.5 text-left text-sm leading-relaxed text-text-muted transition-colors hover:text-text","aria-expanded":g,children:[(0,n.jsx)("span",{className:"truncate",children:c}),t&&null!=d&&d>0&&(0,n.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-text-dim",children:u("desktop.tokensPerSecond",{count:d>=10?String(Math.round(d)):d.toFixed(1)})}),(0,n.jsx)("span",{className:`opacity-0 transition-opacity group-hover/summary:opacity-60 ${g?"rotate-90":""}`,children:(0,n.jsx)(dw,{expanded:!1})})]}),!D&&(0,n.jsx)("button",{type:"button",onClick:()=>{y("timeline"===v?"tabs":"timeline"),x(!0)},className:`shrink-0 p-1 text-text-dim transition-colors hover:text-text group-hover/summary-row:opacity-100 pointer-events-none group-hover/summary-row:pointer-events-auto ${"timeline"===v?"opacity-60":"opacity-0"}`,title:"timeline"===v?u("desktop.processTabMode"):u("desktop.processTimelineMode"),children:(0,n.jsx)(dR,{mode:v})})]}),g&&(0,n.jsx)("div",{className:"overflow-hidden",children:D?(0,n.jsxs)("div",{className:"relative mt-2",children:[(0,n.jsx)("div",{ref:z,className:"max-h-[280px] overflow-y-auto pr-2",children:(0,n.jsx)(dM,{step:h[0],cwd:s,onOpenFile:l,sessionId:a,ts:p,isStreaming:t})}),j&&(0,n.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 top-0 z-10 h-6 bg-gradient-to-b from-bg to-transparent"}),S&&(0,n.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 bottom-0 z-10 h-6 bg-gradient-to-t from-bg to-transparent"})]}):"timeline"===v?(0,n.jsxs)("div",{className:"relative mt-2",children:[j&&(0,n.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 top-0 z-10 h-6 bg-gradient-to-b from-bg to-transparent"}),S&&(0,n.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 bottom-0 z-10 h-6 bg-gradient-to-t from-bg to-transparent"}),(0,n.jsx)("div",{ref:z,className:t?"max-h-[320px] overflow-y-auto":"",children:(0,n.jsxs)("div",{className:"relative ml-5 space-y-2",children:[(0,n.jsx)("div",{className:"absolute -left-3 -top-1.5 h-4 w-2 rounded-bl border-b border-l border-border"}),h.map((e,r)=>{let o=f[e.id]??!1,i="thinking"===e.kind?e.blocks.some(e=>"text"===e.type?e.text.trim().length>0:e.deferred||e.thinking.trim().length>0):"toolGroup"!==e.kind||e.blocks.length>0,d="tool"===e.kind&&"error"===e.block.status||"toolGroup"===e.kind&&e.blocks.some(e=>"error"===e.status),c="tool"===e.kind?dj(e.block,p):null,g="toolGroup"!==e.kind&&c?.target!==void 0&&c?.typeLabel!==void 0;return(0,n.jsxs)("div",{className:"group/step relative min-w-0",children:[r<h.length-1&&(0,n.jsx)("span",{className:"absolute bottom-[-9px] left-[7px] top-[22px] border-l border-border"}),(0,n.jsxs)("button",{type:"button",onClick:()=>i&&m(t=>({...t,[e.id]:!o})),className:`flex w-full min-w-0 items-center gap-1.5 text-left text-sm leading-relaxed transition-colors ${i?"cursor-pointer":"cursor-default"} ${d?"text-red-400 hover:text-red-300":"text-text-dim hover:text-text-muted"}`,children:[(0,n.jsx)("span",{className:"shrink-0",children:(0,n.jsx)(dC,{step:e,ts:p})}),"toolGroup"===e.kind&&e.targets.length>0?(0,n.jsx)(dz,{targets:e.targets,typeLabel:e.typeLabel,count:e.blocks.length,label:e.label}):g?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"shrink-0",children:c.typeLabel}),(0,n.jsx)(dT,{filePath:c.target})]}):(0,n.jsx)("span",{className:"truncate",title:"toolGroup"===e.kind?e.targetLabels.join("\n"):void 0,children:e.label}),"tool"===e.kind&&void 0!==e.block.duration&&(0,n.jsxs)("span",{className:"shrink-0 text-[11px] tabular-nums text-text-dim",children:[e.block.duration,"s"]}),d&&(0,n.jsx)("span",{className:"shrink-0 text-[11px] font-medium text-red-400",children:u("desktop.processFailedStep")}),i&&(0,n.jsx)("span",{className:`ml-0.5 shrink-0 opacity-0 transition-opacity group-hover/step:opacity-50 ${o?"rotate-90":""}`,children:(0,n.jsx)(dw,{expanded:!1})})]}),o&&i&&(0,n.jsx)("div",{className:"ml-5 mt-1.5 overflow-hidden",children:(0,n.jsx)(dM,{step:e,cwd:s,onOpenFile:l,sessionId:a,ts:p,isStreaming:t})})]},e.id)})]})})]}):(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"mt-2 flex flex-wrap gap-1",children:h.map((e,r)=>{let o="tool"===e.kind&&"error"===e.block.status||"toolGroup"===e.kind&&e.blocks.some(e=>"error"===e.status),i="tool"===e.kind?dj(e.block,p):null,s="toolGroup"!==e.kind&&i?.target!==void 0&&i?.typeLabel!==void 0,l=t&&r===h.length-1,a=b===r;return(0,n.jsxs)("button",{type:"button",onClick:()=>{r===h.length-1&&t?(I.current=!1,E.current=!1):I.current=!0,k(r)},"data-has-file-target":s?"true":void 0,title:"toolGroup"===e.kind?e.targetLabels.join("\n"):void 0,className:`process-tab flex items-center gap-1 font-mono text-xs transition-colors ${a?o?"process-tab-error":"process-tab-active":"text-text-dim hover:text-text"}${l?" process-tab-streaming":""}`,children:[(0,n.jsx)(dC,{step:e,ts:p}),"toolGroup"===e.kind&&e.targets.length>0?(0,n.jsx)(dz,{targets:e.targets,typeLabel:e.typeLabel,count:e.blocks.length,label:e.label}):s?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"shrink-0",children:i.typeLabel}),(0,n.jsx)(dT,{filePath:i.target})]}):(0,n.jsx)("span",{className:`truncate ${"toolGroup"===e.kind?"max-w-64":"max-w-52"}`,title:"toolGroup"===e.kind?e.targetLabels.join("\n"):void 0,children:e.label})]},e.id)})}),(0,n.jsxs)("div",{className:"relative mt-2",children:[(0,n.jsx)("div",{ref:z,className:"max-h-[280px] overflow-y-auto pr-2",children:h[b]&&(0,n.jsx)(dM,{step:h[b],cwd:s,onOpenFile:l,sessionId:a,ts:p,isStreaming:t})}),j&&(0,n.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 top-0 z-10 h-6 bg-gradient-to-b from-bg to-transparent"}),S&&(0,n.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 bottom-0 z-10 h-6 bg-gradient-to-t from-bg to-transparent"})]})]})})]})}function dW(e){if(!e)return null;let t=Date.parse(e);return Number.isFinite(t)?t:null}function dL(e){return"running"===e||"starting"===e?"var(--accent)":"queued"===e?"var(--text-dim)":"completed"===e?"var(--status-success)":"failed"===e?"var(--status-error)":"aborted"===e?"var(--status-warning)":"var(--text-dim)"}function dN({run:e,onOpenSubagent:t,sessionRun:r}){let{t:i}=(0,Y.s)(),s=sy(e.result?.details)?e.result.details:null,l=s?.profile??("string"==typeof e.input.subagent_type?e.input.subagent_type:"Agent"),a=(s?.description??("string"==typeof e.input.description?e.input.description:""))||l,d=s?.sessionId??null,c=!!(d&&t),[u,p]=(0,o.useState)(null),h=s?.status??("running"===e.status?"running":"error"===e.status?"failed":"completed"),g=r?.status??u?.status??h,x="running"===g||"starting"===g;(0,o.useEffect)(()=>{if(r||!d||!x)return;let e=new AbortController;return fetch(`/api/sessions/${encodeURIComponent(d)}`,{cache:"no-store",signal:e.signal}).then(e=>e.ok?e.json():null).then(e=>{let t=e?.info?.relation;t&&p({...t.status?{status:t.status}:{},...t.createdAt?{createdAt:t.createdAt}:{},...t.completedAt?{completedAt:t.completedAt}:{}})}).catch(()=>{}),()=>e.abort()},[d,r,x]);let[f,m]=(0,o.useState)(null);(0,o.useEffect)(()=>{if(!x)return void m(null);m(Date.now());let e=window.setInterval(()=>m(Date.now()),1e3);return()=>window.clearInterval(e)},[x]);let v=function(e){let t=dW(e.startedAt),r=dW(e.completedAt);if(e.running)return null!==t&&e.nowMs>=t?Math.max(0,Math.round((e.nowMs-t)/1e3)):e.toolDuration??null;if(null!==t&&null!==r){let e=r<t?null:Math.round((r-t)/1e3);if(null!==e)return e}return e.toolDuration??null}({startedAt:s?.createdAt??r?.createdAt??u?.createdAt??null,completedAt:s?.completedAt??r?.completedAt??u?.completedAt??null,toolDuration:e.duration??null,running:x,nowMs:f??0}),y=[l,null!==v?`${v}s`:null].filter(Boolean).join(" \xb7 "),b=i(function(e){switch(e){case"starting":return"agentSwitcher.status.starting";case"queued":return"agentSwitcher.status.queued";case"running":return"agentSwitcher.status.running";case"failed":return"agentSwitcher.status.failed";case"aborted":return"agentSwitcher.status.aborted";case"interrupted":return"agentSwitcher.status.interrupted";default:return"agentSwitcher.status.completed"}}(g));return(0,n.jsxs)("button",{type:"button",className:"subagent-run-row",onClick:()=>{d&&t?.(d,a)},disabled:!c,title:c?i("subagent.openTranscript"):a,"aria-label":`${i("agentSwitcher.subagent")}: ${a} — ${y} — ${b}`,style:{display:"flex",alignItems:"center",gap:9,width:"100%",padding:"7px 10px",margin:"4px 0",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:8,color:"var(--text)",textAlign:"left",cursor:c?"pointer":"default",opacity:c?1:.75},onMouseEnter:e=>{c&&(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg-panel)"},children:[(0,n.jsx)("span",{style:{display:"grid",placeItems:"center",width:20,height:20,flexShrink:0,color:dL(g)},children:x?(0,n.jsxs)("svg",{className:"animate-spin",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",opacity:"0.25"}),(0,n.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):(0,n.jsx)(_.d,{size:15,weight:"regular",color:dL(g),"aria-hidden":"true"})}),(0,n.jsxs)("span",{style:{minWidth:0,flex:1},children:[(0,n.jsx)("span",{style:{display:"block",fontSize:12.5,fontWeight:550,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a}),(0,n.jsx)("span",{style:{display:"block",marginTop:1,fontSize:10.5,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:y})]}),(0,n.jsx)("span",{style:{flexShrink:0,fontSize:11,color:dL(g),whiteSpace:"nowrap"},children:b})]})}function dA(e){var t;if(!e||"object"!=typeof e||"image"!==e.type||"string"!=typeof e.data||"string"!=typeof e.mimeType||(t=e.mimeType,!/^image\/[A-Za-z0-9][A-Za-z0-9!#$&^_.+-]*$/.test(t)))return!1;let r=function(e){if(!e||e.length%4!=0)return null;let t=e.endsWith("==")?2:+!!e.endsWith("="),r=e.length-t,n=null;for(let t=0;t<r;t+=1){var o;let r=(o=e.charCodeAt(t))>=65&&o<=90?o-65:o>=97&&o<=122?o-97+26:o>=48&&o<=57?o-48+52:43===o?62:47===o?63:null;if(null===r)return null;n=r}for(let t=r;t<e.length;t+=1)if("="!==e[t])return null;return 2===t&&n%16!=0||1===t&&n%4!=0?null:e.length/4*3-t}(e.data);return null!==r&&r<=0xa00000}function dP(e){return!!e&&"object"==typeof e&&dA({type:"image",data:e.data,mimeType:e.mimeType})}let dF=new Map;function dD(e){var t;return{value:e.value,images:e.images.map(e=>({...e})),pastedBlocks:(t=e.pastedBlocks)?t.map(e=>({...e})):void 0}}function dH(e){let t=dF.get(e);return t?dD(t):null}function dO(e,t){var r;if(!(r=t).value&&0===r.images.length)return void dF.delete(e);for(dF.delete(e),dF.set(e,dD(t));dF.size>100;){let e=dF.keys().next().value;if(void 0===e)break;dF.delete(e)}}function dB(e){dF.delete(e)}function dU(e,t,r,n,o,i){let s=[...t??[],...n].filter(dP).slice(0,10).map(({data:e,mimeType:t})=>({data:e,mimeType:t}));return{value:e.trim()?r.trim()?`${e}
191
191
 
192
- ${r}`:e:r,images:s,pastedBlocks:function(e,t){if(!e?.length&&!t?.length)return;let r=[],n=new Set;for(let o of[...e??[],...t??[]]){let e=`${o.label}\u0000${o.text}`;n.has(e)||(n.add(e),r.push({...o}))}return r}(i,o)}}function d_(e){let t=e.trim();if(!t.startsWith("file://"))return t;try{let e=new URL(t),r=decodeURIComponent(e.pathname);return/^\/[a-zA-Z]:[\\/]/.test(r)?r=r.slice(1):e.host&&"localhost"!==e.host&&(r=`//${e.host}${r}`),r}catch{let e=t.replace(/^file:\/\/(localhost)?/,"");try{e=decodeURIComponent(e)}catch{}return/^\/[a-zA-Z]:[\\/]/.test(e)&&(e=e.slice(1)),e}}let dq=["text/uri-list","x-special/nautilus-clipboard","x-special/gnome-copied-files","x-special/mate-copied-files","x-special/xfce4-copied-files","application/x-kde-cutselection","public.file-url","text/x-moz-url","application/x-moz-file"];function dK(e){let t=/(?:^|\s)@"([^"\n]*)$/.exec(e);if(t)return{start:e.length-(t[1].length+2),query:t[1],quoted:!0};let r=/(?:^|\s)@([^\s"]*)$/.exec(e);return r?{start:e.length-(r[1].length+1),query:r[1],quoted:!1}:null}function dV(e){let t=0;for(let r=0;r<e.length;r++)"/"===e[r]&&t++;return t}function dJ(e,t){if(!e)return!0;let r=0;for(let n=0;n<t.length&&r<e.length;n++)t[n]===e[r]&&r++;return r===e.length}function dY(e,t){let r=t?`${e}/`:e;return r.includes(" ")?`@"${r}" `:`@${r} `}var dG=r(23084),dX=r(70312),dZ=r(37597),dQ=r(21163),d0=r(4615),d1=r(25248),d2=r(58506),d6=r(41789),d4=r(87124),d5=r(65098),d3=r(93587),d8=r(3736),d7=r(91906),d9=r(50981),ce=r(69203);let ct=[{value:"plan",Icon:d8.A,titleKey:"modes.collabPlanTitle",descKey:"modes.collabPlanDesc"},{value:"build",Icon:d7.A,titleKey:"modes.chatBuildTitle",descKey:"modes.chatBuildDesc"},{value:"edit",Icon:d9.A,titleKey:"modes.chatEditTitle",descKey:"modes.chatEditDesc"},{value:"yolo",Icon:ce.A,titleKey:"modes.chatYoloTitle",descKey:"modes.chatYoloDesc",warning:!0},{value:"goal",Icon:aH.d,titleKey:"modes.collabGoalTitle",descKey:"modes.collabGoalDesc"}];function cr({collaborationMode:e,onCollaborationModeChange:t,toolApprovalMode:r,onToolApprovalModeChange:i,disabled:s=!1}){let l,{t:a}=(0,Y.s)(),d=tp(),[c,u]=(0,o.useState)(null),[p,h]=(0,o.useState)(null),[g,x]=(0,o.useState)({}),m=(0,o.useRef)(null),v=(0,o.useRef)(null);(0,o.useEffect)(()=>()=>{null!==v.current&&window.clearTimeout(v.current)},[]);let y=(0,o.useCallback)(e=>{h(e),window.requestAnimationFrame(()=>u(t=>t===e?null:t)),null!==v.current&&window.clearTimeout(v.current),v.current=window.setTimeout(()=>h(null),150)},[]),b="goal"===e?"goal":"plan"===e?"plan":"yolo"===r?"yolo":"auto"===r?"edit":"build",k=()=>window.visualViewport?.height??window.innerHeight,j=ct.find(e=>e.value===b)??ct[1],w="build"===b?"var(--text-muted)":j.warning?"var(--accent-orange, #f59e0b)":"var(--accent)",S=j.Icon,C=j.titleKey;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:{display:"flex",alignItems:"center",gap:2},children:(0,n.jsxs)("button",{ref:m,type:"button","aria-label":a(C),title:a(C),"aria-expanded":"collab"===c,onClick:(l="collab",()=>{if(s)return;let e=m.current;if(!e)return;let t=e.getBoundingClientRect();x(e=>({...e,[l]:{top:t.top,left:t.left,width:t.width}})),u(e=>e===l?null:l)}),disabled:s,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5*!d,padding:d?0:"0 6px",width:d?24:void 0,height:24,background:"collab"===c?"var(--bg-hover)":"none",border:"none",borderRadius:4,color:w,cursor:s?"not-allowed":"pointer",fontSize:12,whiteSpace:"nowrap",opacity:s?.5:1,transition:"background 0.12s, color 0.12s"},children:[(0,n.jsx)(S,{size:14,color:w,"aria-hidden":"true"}),!d&&(0,n.jsx)("span",{style:{whiteSpace:"nowrap"},children:a(C)})]})}),(()=>{if("collab"!==c)return null;let o=g.collab;if(!o)return null;let l=Math.min(248,window.innerWidth-16),d=Math.min(o.left,window.innerWidth-l-8),u=k()-o.top+6,h=Math.min(300,Math.max(120,.55*k()));return(0,n.jsx)("div",{role:"menu",style:{position:"fixed",bottom:u,left:d,zIndex:2100,width:l,maxHeight:h,overflowY:"auto",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:10,boxShadow:"0 12px 32px rgba(0,0,0,0.22)",padding:4,opacity:+("collab"!==p),transition:"opacity 0.12s"},children:ct.map(o=>{let l=o.value===b,d=o.Icon;return(0,n.jsxs)("button",{type:"button",role:"menuitemradio","aria-checked":l,onClick:()=>(n=>{if(y("collab"),n===b)return;if("goal"===n)return void t("goal");let o=function(e){switch(e){case"plan":return{collaborationMode:"plan",toolApprovalMode:"ask"};case"edit":return{collaborationMode:"normal",toolApprovalMode:"auto"};case"yolo":return{collaborationMode:"normal",toolApprovalMode:"yolo"};default:return{collaborationMode:"normal",toolApprovalMode:"ask"}}}(n);o.collaborationMode!==e&&t(o.collaborationMode),o.toolApprovalMode!==r&&i?.(o.toolApprovalMode)})(o.value),disabled:s,style:{display:"flex",alignItems:"center",gap:10,width:"100%",padding:"8px 10px",background:l?"var(--bg-selected)":"none",border:"none",borderRadius:8,cursor:s?"not-allowed":"pointer",textAlign:"left",transition:"background 0.12s"},onMouseEnter:e=>{l||s||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.background=l?"var(--bg-selected)":"none"},children:[(0,n.jsx)(d,{size:16,color:l?o.warning?"var(--accent-orange, #f59e0b)":"var(--accent)":"var(--text-muted)","aria-hidden":"true"}),(0,n.jsxs)("span",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("span",{style:{display:"block",fontSize:12.5,fontWeight:550,color:"var(--text)"},children:a(o.titleKey)}),(0,n.jsx)("span",{style:{display:"block",fontSize:10.5,color:"var(--text-muted)",marginTop:1,lineHeight:1.4},children:a(o.descKey)})]}),l&&(0,n.jsx)(f.S,{size:12,weight:"bold",color:"var(--accent)","aria-hidden":"true"})]},o.value)})})})()]})}let cn=["off","default","full"],co={off:"none",default:"default",full:"full"},ci=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function cs(e,t){return ci.compare(e.name||e.modelId,t.name||t.modelId)||ci.compare(e.provider,t.provider)||ci.compare(e.modelId,t.modelId)}let cl=["max","xhigh","high","medium","low","minimal","auto","off"];function ca({level:e,size:t=14}){if("off"===e)return(0,n.jsx)(d2.x,{size:t,weight:"regular",color:"var(--text-dim)"});if("auto"===e)return(0,n.jsx)(d3.I,{size:t,weight:"regular",color:"var(--accent)"});let r=["medium","high","xhigh","max"].includes(e),o="var(--accent)";return(0,n.jsxs)("span",{style:{position:"relative",display:"inline-flex"},children:[(0,n.jsx)(d2.x,{size:t,weight:r?"fill":"regular",color:o}),"high"===e&&(0,n.jsx)(S.c,{size:Math.round(.57*t),weight:"bold",color:o,style:{position:"absolute",right:-4,top:-1}}),"xhigh"===e&&(0,n.jsx)(x.C,{size:Math.round(.57*t),weight:"fill",color:o,style:{position:"absolute",right:-4,top:-1}}),"max"===e&&(0,n.jsxs)("span",{style:{position:"absolute",right:-6,top:-1,display:"inline-flex"},children:[(0,n.jsx)(x.C,{size:Math.round(.5*t),weight:"fill",color:o,style:{marginRight:-3}}),(0,n.jsx)(x.C,{size:Math.round(.5*t),weight:"fill",color:o})]})]})}function cd(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${Math.round(e/1e3)}k`:e.toLocaleString()}let cc=["builtin","extension","prompt","skill"],cu={builtin:0,extension:1,prompt:2,skill:3};function cp(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 ch(e,t){return"skill"===e.source&&e.name.startsWith("skill:")&&!0===t[e.name.slice(6)]}function cg(e,t,r){return t<=0?0:((e+r)%t+t)%t}async function cx(e){let t=()=>{var t;return t=e.type,new Promise((r,n)=>{let o=new FileReader;o.onload=()=>{let e="string"==typeof o.result?o.result.split(",")[1]:void 0;e?r({data:e,mimeType:t}):n(Error("Failed to read image"))},o.onerror=n,o.readAsDataURL(e)})};if(!(e.size>1048576&&"image/gif"!==e.type)||"function"!=typeof createImageBitmap)return t();let r=await createImageBitmap(e).catch(()=>null);if(!r)return t();try{let n=Math.min(1,1024/Math.max(r.width,r.height)),o=document.createElement("canvas");o.width=Math.max(1,Math.round(r.width*n)),o.height=Math.max(1,Math.round(r.height*n));let i=o.getContext("2d");if(!i)return t();i.fillStyle="#fff",i.fillRect(0,0,o.width,o.height),i.drawImage(r,0,0,o.width,o.height);let s=o.toDataURL("image/jpeg",.85).split(",")[1];return s&&s.length<4*Math.ceil(e.size/3)?{data:s,mimeType:"image/jpeg"}:t()}catch{return t()}finally{r.close()}}function cf(e){return{data:e.data,mimeType:e.mimeType}}function cm(e,t){let r=e;for(let e of t)r=r.split(e.label).join(e.text);return r}function cv(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function cy(e){return"string"==typeof e.content?e.content:e.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n")}function cb(e){return"string"==typeof e.content?[]:e.content.flatMap(e=>{if("image"!==e.type)return[];let t=e.source?.type==="base64"?e.source.data:e.data,r=e.source?.type==="base64"?e.source.media_type:e.mimeType;return"string"!=typeof t||"string"!=typeof r?[]:dA({type:"image",data:t,mimeType:r})?[{data:t,mimeType:r}]:[]})}function ck(e){return{...e,previewUrl:`data:${e.mimeType};base64,${e.data}`}}function cj(e){return(e??[]).filter(dP).slice(0,10).map(ck)}function cw(e){e.previewUrl.startsWith("blob:")&&URL.revokeObjectURL(e.previewUrl)}function cS({kind:e,text:t,label:r,index:o,total:i,onMove:s,onRecall:l,onRemove:a}){let{t:d}=(0,Y.s)(),c={display:"inline-flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,border:"none",borderRadius:4,color:"var(--text-dim)",background:"transparent",cursor:"pointer",flexShrink:0};return(0,n.jsxs)("div",{title:t,className:"chat-input-queue-row",style:{display:"flex",alignItems:"center",gap:8,padding:"3px 10px",fontSize:12,color:"var(--text-muted)",minWidth:0},children:[(0,n.jsx)("span",{style:{flexShrink:0,fontSize:10,fontFamily:"var(--font-mono)",padding:"1px 7px",borderRadius:999,border:`1px solid ${"steer"===e?"color-mix(in srgb, var(--accent) 45%, transparent)":"var(--border)"}`,color:"steer"===e?"var(--accent)":"var(--text-dim)"},children:r}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},children:t}),s&&i>1&&(0,n.jsxs)("span",{style:{display:"inline-flex",gap:1,flexShrink:0},children:[(0,n.jsx)("button",{type:"button","aria-label":d("desktop.queueMoveUp"),title:d("desktop.queueMoveUp"),disabled:0===o,onClick:()=>s(-1),style:{...c,opacity:0===o?.3:1},children:"↑"}),(0,n.jsx)("button",{type:"button","aria-label":d("desktop.queueMoveDown"),title:d("desktop.queueMoveDown"),disabled:o===i-1,onClick:()=>s(1),style:{...c,opacity:o===i-1?.3:1},children:"↓"})]}),l&&(0,n.jsx)("button",{type:"button","aria-label":d("desktop.queueRecallOne"),title:d("desktop.queueRecallOne"),onClick:l,style:c,children:(0,n.jsx)(dX.Y,{size:13})}),a&&(0,n.jsx)("button",{type:"button","aria-label":d("desktop.queueRemove"),title:d("desktop.queueRemove"),onClick:a,style:c,children:(0,n.jsx)(g.u,{size:13})})]})}let cC=(0,o.memo)((0,o.forwardRef)(function({onSend:e,onBash:t,onAbort:r,onSteer:i,onFollowUp:s,isStreaming:l,model:a,modelNames:d,modelList:c,modelScopeWarnings:u,modelsError:p,onRetryModels:m,onModelChange:v,compactResult:y,toolPreset:j,onToolPresetChange:w,collaborationMode:C="normal",toolApprovalMode:I="auto",onCollaborationModeChange:M,onToolApprovalModeChange:E,goalState:$,onGoalStart:W,onGoalPause:L,onGoalResume:N,onGoalStop:A,thinkingLevel:P,isAutoThinkingSelection:D=!1,onThinkingLevelChange:H,availableThinkingLevels:O,thinkingLevelMap:B,retryInfo:U,queuedMessages:_,inputHistory:q=[],onRecallQueue:K,onMoveQueue:V,onRecallOne:J,onRequeueAt:G,onRemoveQueueItem:X,slashCommands:Z,slashCommandsLoading:Q,onLoadSlashCommands:ee,onBuiltinCommand:et,onAudioUnlock:er,onPromptWithStreamingBehavior:en,draftKey:eo,cwd:ei,tasksBoardEnabled:es=!0,topCenterControl:el},ea){var ed;let ec,eu,ep,eh,eg,ex,ef,em,ev,ey,eb,ek,ej,ew,eS,eC,ez,eT,eR,eI,eM,eE,e$,eW=tp(),{t:eL}=(0,Y.s)(),eN=!!a&&(c?.find(e=>e.id===a.modelId&&e.provider===a.provider)?.input?.includes("image")??!1),eA={auto:"auto",off:"off",minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},eP={off:eL("desktop.toolOff"),default:eL("desktop.toolDefault"),full:eL("desktop.toolFull")},eF=[{name:"compact",description:eL("desktop.compactCommandDescription"),source:"builtin"},{name:"reload",description:eL("desktop.reloadCommandDescription"),source:"builtin"},{name:"name",description:eL("desktop.nameCommandDescription"),source:"builtin"},{name:"session",description:eL("desktop.sessionCommandDescription"),source:"builtin"},{name:"copy",description:eL("desktop.copyCommandDescription"),source:"builtin"}],eD={builtin:eL("desktop.builtIn"),extension:eL("desktop.extensions"),prompt:eL("desktop.prompts"),skill:eL("desktop.commandSkills")},[eH,eO]=(0,o.useState)(()=>eo?dH(eo)?.value??"":""),[eB,eU]=(0,o.useState)(()=>eo?dH(eo)?.pastedBlocks??[]:[]),[e_,eq]=(0,o.useState)([]),eK=o.useMemo(()=>{try{var e;return e=eL("desktop.pastedLabel",{id:"\0A\0",lines:"\0B\0"}),RegExp(e.split("\0A\0").join("(\\d+)").split("\0B\0").join("(\\d+)").split("(\\d+)").map(cv).join("(\\d+)"),"g")}catch{return null}},[eL]),[eV,eJ]=(0,o.useState)(null),eY=(0,o.useRef)(null),eG=(0,o.useCallback)(e=>{eJ(e),eY.current&&clearTimeout(eY.current),eY.current=setTimeout(()=>eJ(null),5e3)},[]),eX=(0,o.useRef)(0),[eZ,eQ]=(0,o.useState)(!1),[e0,e1]=(0,o.useState)(null),[e2,e6]=(0,o.useState)({height:0,width:0,offsetTop:0}),[e4,e5]=(0,o.useState)(""),[e3,e8]=(0,o.useState)(()=>{try{let e=localStorage.getItem("pi-favorite-models");return e?new Set(JSON.parse(e)):new Set}catch{return new Set}}),[e7,e9]=(0,o.useState)(new Set),[te,tt]=(0,o.useState)(!1),[tr,tn]=(0,o.useState)(null),[to,ti]=(0,o.useState)(!1),[ts,tl]=(0,o.useState)(null),[ta,td]=(0,o.useState)(!1),[tc,tu]=(0,o.useState)(null),[th,tg]=(0,o.useState)(()=>eo?dH(eo)?.images.map(ck)??[]:[]),tx=eH.trimStart(),tf=0===th.length&&tx.startsWith("!"),tm=tf&&tx.startsWith("!!"),[tv,ty]=(0,o.useState)(!1),[tb,tk]=(0,o.useState)(0),[tw,tS]=(0,o.useState)({}),[tC,tz]=(0,o.useState)(()=>{try{return"ctrl-enter"===localStorage.getItem("pi-input-shortcut")?"ctrl-enter":"enter"}catch{return"enter"}}),[tT,tR]=(0,o.useState)(null),[tI,tM]=(0,o.useState)(!1),[tE,t$]=(0,o.useState)(null),[tW,tL]=(0,o.useState)(0),[tN,tA]=(0,o.useState)(!1),[tP,tF]=(0,o.useState)(0),[tD,tH]=(0,o.useState)(!1),tO=(0,o.useRef)(!1),[tB,tU]=(0,o.useState)(null),[t_,tq]=(0,o.useState)(!1),[tK,tV]=(0,o.useState)(null),tJ=(0,o.useRef)(null),tY=(0,o.useRef)(null),tG=(0,o.useRef)(null),tX=(0,o.useRef)(null),tZ=(0,o.useRef)(null),tQ=(0,o.useRef)(null),t0=(0,o.useRef)(null),t1=(0,o.useRef)(null),t2=(0,o.useRef)(null),t6=(0,o.useRef)(null),t4=(0,o.useRef)(!1),t5=(0,o.useRef)(0),t3=(0,o.useRef)(!1),t8=(0,o.useRef)([]),t7=(0,o.useRef)(null),t9=(0,o.useRef)([]),re=(0,o.useRef)([]),rt=(0,o.useRef)(null),rr=(0,o.useRef)(null),rn=(0,o.useRef)(eo),ro=(0,o.useRef)(eH),ri=(0,o.useRef)(th),rs=(0,o.useRef)(eB),rl=(0,o.useRef)(null),[ra,rd]=(0,o.useState)(!1);ro.current=eH,ri.current=th,rs.current=eB;let rc=(0,o.useCallback)(async e=>{let t=e.filter(e=>e.type.startsWith("image/"));if(!t.length)return;if(!eN)return void eG(eL("desktop.imageInputUnsupported"));let r=await Promise.all(t.map(async e=>({...await cx(e),previewUrl:URL.createObjectURL(e)})));tg(e=>[...e,...r])},[eG,eN,eL]);(0,o.useImperativeHandle)(ea,()=>({insertIfEmpty(e){let t=tJ.current;(t?t.value:eH).trim()||(eO(e),tR(null),requestAnimationFrame(()=>{t&&(t.focus(),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)}))},replaceMessage(e){var t,r;let n=tJ.current;t=n?n.value:eH,r=ri.current.length,t.trim()||0!==r||(eO(cy(e)),tR(null),tA(!1),tg(t=>(t.forEach(cw),cj(cb(e)))),requestAnimationFrame(()=>{n&&(n.focus(),n.style.height="auto",n.style.height=`${Math.min(n.scrollHeight,200)}px`)}))},restoreSubmission(e){let t=dU(cy(e),cb(e),tJ.current?.value??ro.current,ri.current.map(cf),void 0,rs.current);ro.current=t.value,rs.current=t.pastedBlocks??[];let r=cj(t.images);ri.current.forEach(cw),ri.current=r,eO(t.value),eU(t.pastedBlocks??[]),tg(r),tR(null),rn.current&&dO(rn.current,t)},prependText(e){if(!e.trim())return;let t=tJ.current,r=[e,t?t.value:eH].filter(e=>e.trim()).join("\n\n");eO(r),tR(null),requestAnimationFrame(()=>{t&&(t.focus(),t.setSelectionRange(r.length,r.length),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)})},insertText(e){let t=tJ.current;if(!t)return void eO(t=>t+(t?" ":"")+e);let r=t.selectionStart??t.value.length,n=t.selectionEnd??t.value.length,o=t.value.slice(0,r),i=t.value.slice(n),s=o.length>0&&!o.endsWith(" ")?" ":"";eO(o+s+e+i),tR(null),requestAnimationFrame(()=>{if(!t)return;let n=r+s.length+e.length;t.setSelectionRange(n,n),t.focus(),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`})},addImages(e){rc(e)},addFiles(e,t){let r=function(e,t,r){let n=e.map(()=>null),o=t.split(/\r?\n/).map(e=>e.trim()).filter(e=>e&&!e.startsWith("#")).filter(e=>e.startsWith("file://"));if(o.length===e.length){for(let t=0;t<e.length;t+=1)n[t]=function(e){let t;if(!e.startsWith("file://"))return null;try{t=decodeURIComponent(e.slice(7))}catch{return null}return t?(/^\/[A-Za-z]:[\\/]/.test(t)&&(t=t.slice(1)),t):null}(o[t]);return n}if(1===e.length&&r.trim()){let e=r.trim();(e.startsWith("/")||e.startsWith("~")||/^[A-Za-z]:[\\/]/.test(e))&&(n[0]=e)}return n}(e,t?.getData("text/uri-list")??"",t?.getData("text/plain")??""),n=e.filter(e=>e.type.startsWith("image/")),o=e.map((e,t)=>e.type.startsWith("image/")?null:r[t]??e.name).filter(e=>!!e);if(n.length&&rc(n),o.length&&!l){let e=o.join(" ");eO(t=>t+(t&&!t.endsWith(" ")?" ":"")+e)}},measureHeight:()=>tQ.current?.getBoundingClientRect().height??0}));let rp=(0,o.useCallback)((e,t)=>{e8(r=>{let n=`${e}:${t}`,o=new Set(r);return o.has(n)?o.delete(n):o.add(n),localStorage.setItem("pi-favorite-models",JSON.stringify([...o])),o})},[]),rh=(0,o.useCallback)(e=>{e9(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r})},[]),rg=(0,o.useCallback)(e=>{tg(t=>{let r=[...t],[n]=r.splice(e,1);return n&&cw(n),r})},[]),rx=(0,o.useCallback)(()=>{tg(e=>(e.forEach(cw),[]))},[]),rf=(0,o.useCallback)(()=>{eO(""),tR(null),eU([]),eq([]),eo&&dB(eo),rn.current&&rn.current!==eo&&dB(rn.current),rx(),tJ.current&&(tJ.current.style.height="auto")},[rx,eo]),rm=(0,o.useCallback)(async(e,t,r)=>{await V?.(e,t,t+r)},[V]),rv=(0,o.useCallback)(async(e,t)=>{await X?.(e,t)},[X]),ry=(0,o.useCallback)(async(e,t)=>{let r=await J?.(e,t);if(!r)return;rl.current={kind:e,index:t,text:r.text,images:r.images},rd(!0);let n=tJ.current?.value??eH,o=[r.text,n].filter(e=>e.trim()).join("\n\n");eO(o),tR(null),requestAnimationFrame(()=>{let e=tJ.current;e&&(e.focus(),e.setSelectionRange(o.length,o.length),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[J,eH]);(0,o.useEffect)(()=>{eo&&rn.current===eo&&dO(eo,{value:eH,images:th.map(cf),pastedBlocks:eB.length?eB:void 0})},[th,eo,eH,eB]),(0,o.useEffect)(()=>{let e=rn.current;if(e===eo)return;e&&dO(e,{value:ro.current,images:ri.current.map(cf),pastedBlocks:rs.current.length?rs.current:void 0});let t=eo?dH(eo):null;rn.current=eo,eO(t?.value??""),tR(null),eU(t?.pastedBlocks??[]),eq([]),tg(e=>(e.forEach(cw),t?.images.map(ck)??[]))},[eo]),(0,o.useEffect)(()=>{let e=tJ.current;e&&(e.style.height="auto",eH&&(e.style.height=`${Math.min(e.scrollHeight,200)}px`))},[eH]),(0,o.useEffect)(()=>{let e=()=>{try{tz("ctrl-enter"===localStorage.getItem("pi-input-shortcut")?"ctrl-enter":"enter")}catch{tz("enter")}};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[]),(0,o.useEffect)(()=>()=>{ri.current.forEach(cw)},[]);let rb=(0,o.useCallback)(e=>{let t;if(!eK)return null;for(eK.lastIndex=0;null!==(t=eK.exec(e));){let e=t[0];if(!(rs.current.some(t=>t.label===e)||rs.current.some(t=>t.text.includes(e))))return e}return null},[eK]),rk=(0,o.useCallback)(()=>{eG(eL("desktop.pastedMissingContent"))},[eG,eL]),rj=(0,o.useCallback)(async()=>{let r=cm(eH,eB),n=r.trim();if(!n&&!th.length)return;if(rb(r))return void rk();if(l)return;er?.();let o=rl.current;if(o&&G){if(rl.current=null,rd(!1),!await G(o.kind,o.index,n,th.length?th.map(cf):o.images)){rl.current={...o,text:n},rd(!0);return}rf();return}if(!th.length&&n.startsWith("!")&&t){let e=n.startsWith("!!"),r=n.slice(e?2:1).trim();if(!r)return;t(r,e),rf();return}if(!th.length&&n.startsWith("/")&&et){if(tO.current)return;tO.current=!0,tH(!0);try{let e=await et(n);if(e.handled){e.error||rf();return}}finally{tO.current=!1,tH(!1)}}e(n,th.length?th:void 0),rf()},[eH,eB,th,l,t,et,e,rf,er,G,rb,rk]),rw=eH.startsWith("/")&&!/\s/.test(eH.slice(1))?eH.slice(1).toLowerCase():null,{commands:rS,groups:rC}=(ed=null===rw?[]:[...l?[]:eF,...Z??[]].filter(e=>{let t=e.name.toLowerCase(),r=e.description?.toLowerCase()??"";return t.includes(rw)||r.includes(rw)}).sort((e,t)=>{let r=cp(e,rw)-cp(t,rw);return 0!==r?r:cu[e.source]-cu[t.source]||ci.compare(e.name,t.name)}),ec=0,{commands:(eu=cc.map(e=>{let t=ed.filter(t=>t.source===e),r="skill"===e?[...t.filter(e=>!ch(e,tw)),...t.filter(e=>ch(e,tw))]:t;return{source:e,items:r.map(e=>({command:e,index:ec++}))}}).filter(e=>e.items.length>0)).flatMap(e=>e.items.map(({command:e})=>e)),groups:eu});(0,o.useEffect)(()=>{if(!tv||!ei)return;let e=!1;return fetch(`/api/skills?cwd=${encodeURIComponent(ei)}`).then(e=>e.ok?e.json():null).then(t=>{!e&&t&&tS(Object.fromEntries(t.skills.map(e=>[e.name,e.disableModelInvocation])))}).catch(()=>{}),()=>{e=!0}},[ei,tv]);let rz=`${rS.length} ${eL(rw?1===rS.length?"desktop.match":"desktop.matches":1===rS.length?"desktop.command":"desktop.commands")}`,rT=!!eH.trim()||th.length>0,rR=(0,o.useCallback)((e,t)=>{if(!ei)return void tR(null);let r=t??e.length;tR(dK(e.slice(0,r)))},[ei]),[rI,rM]=(0,o.useState)(null),rE=(0,o.useRef)(rI);rE.current=rI;let[r$,rW]=(0,o.useState)([]),rL=(0,o.useRef)(!1),rN=(0,o.useCallback)(async()=>{try{let e=await fetch("/api/snippets");if(!e.ok)return;let t=await e.json();rW(t.snippets??[]),rL.current=!0}catch{}},[]);(0,o.useEffect)(()=>{rN();let e=()=>void rN();return window.addEventListener("pi:snippets-changed",e),()=>window.removeEventListener("pi:snippets-changed",e)},[rN]);let rA=rI?.query??null,rP=o.useMemo(()=>{if(null===rA||!1===rL.current)return[];let e=rA.toLowerCase();return r$.filter(t=>t.name.toLowerCase().includes(e))},[rA,r$]),[rF,rD]=(0,o.useState)(0);(0,o.useEffect)(()=>{rD(0)},[rA]);let rH=(0,o.useCallback)((e,t)=>{var r;let n,o=t??e.length,i=(r=e.slice(0,o),(n=/(?:^|[\s(])(#[\w-]+)$/.exec(r))?{start:r.length-n[1].length,end:r.length,query:n[1].slice(1)}:null);rM(i),i&&rD(0)},[]),rO=(0,o.useCallback)(e=>{let t=rE.current;if(!t)return;let r=eH.slice(0,t.start),n=eH.slice(t.end);eO(r+e.content+n),rM(null);let o=r.length+e.content.length;requestAnimationFrame(()=>{let e=tJ.current;e&&(e.focus(),e.setSelectionRange(o,o))})},[eH]),rB=(0,o.useCallback)(e=>{let t=rP[e];t&&rO(t)},[rP,rO]),rU=tT?.query??null,r_=o.useMemo(()=>null!==rU&&tB&&tB.cwd===ei?function(e,t,r=20){let n=t.toLowerCase();if(!n)return e.slice(0,r);let o=[];for(let t of e){let e=function(e,t){let r=e.path.toLowerCase(),n=0;if(t.includes("/"))r===t?n=100:r.startsWith(t)?n=80:r.includes(t)?n=50:dJ(t,r)&&(n=10);else{let e=r.lastIndexOf("/"),o=-1===e?r:r.slice(e+1);o===t?n=100:o.startsWith(t)?n=80:o.includes(t)?n=50:r.includes(t)?n=30:dJ(t,r)&&(n=10)}return e.isDir&&n>0&&(n+=10),n}(t,n);e>0&&o.push({entry:t,score:e})}return o.sort((e,t)=>t.score-e.score||dV(e.entry.path)-dV(t.entry.path)||e.entry.path.localeCompare(t.entry.path)),o.slice(0,r).map(e=>e.entry)}(tB.entries,rU):[],[rU,tB,ei]),rq=!!(rU&&tB?.truncated&&tB.cwd===ei);(0,o.useEffect)(()=>{if(!rq||!ei||!rU)return;let e=setTimeout(()=>{fetch(`/api/file-index?cwd=${encodeURIComponent(ei)}&q=${encodeURIComponent(rU)}`).then(e=>{if(!e.ok)throw Error(`file search failed: ${e.status}`);return e.json()}).then(e=>tV({cwd:ei,query:rU,matches:e.matches??[]})).catch(()=>{})},150);return()=>clearTimeout(e)},[rq,rU,ei]);let rK=rq&&null!==tK&&tK.cwd===ei&&tK.query===rU,rV=rK?tK.matches:r_,rJ=null===tT?null:`${tT.start}:${+!!tT.quoted}:${tT.query}`;(0,o.useEffect)(()=>{if(null===rJ){tM(!1),tL(0);return}tM(!0),tL(0)},[rJ]);let rY=null!==tT;(0,o.useEffect)(()=>{if(!rY||!ei)return;let e=rt.current;e&&e.cwd===ei&&Date.now()-e.fetchedAt<1e4||rr.current===ei||(rr.current=ei,tq(!0),fetch(`/api/file-index?cwd=${encodeURIComponent(ei)}`).then(e=>{if(!e.ok)throw Error(`file index failed: ${e.status}`);return e.json()}).then(e=>{tU({cwd:ei,entries:function(e){let t=new Set;for(let r of e){let e=r.indexOf("/");for(;-1!==e;)t.add(r.slice(0,e)),e=r.indexOf("/",e+1)}let r=[];for(let e of t)r.push({path:e,isDir:!0});for(let t of e)t&&r.push({path:t,isDir:!1});return r.sort((e,t)=>dV(e.path)-dV(t.path)||e.path.localeCompare(t.path)),r}(e.files??[]),truncated:!!e.truncated}),rt.current={cwd:ei,fetchedAt:Date.now()}}).catch(()=>{rt.current=null}).finally(()=>{rr.current=null,tq(!1)}))},[rY,ei]);let rG=(0,o.useCallback)(e=>{if(!tT)return;let t=tJ.current,r=t?.selectionStart??eH.length,n=eH.slice(0,tT.start),o=eH.slice(r);tT.quoted&&o.startsWith('"')&&(o=o.slice(1));let i=function(e,t,r=!1){let n=t?`${e}/`:e,o=r||n.includes(" ");if(t){let e=o?`@"${n}"`:`@${n}`;return{text:e,cursorOffset:o?e.length-1:e.length}}let i=o?`@"${n}" `:`@${n} `;return{text:i,cursorOffset:i.length}}(e.path,e.isDir,tT.quoted),s=n+i.text+o,l=n.length+i.cursorOffset;eO(s),tR(dK(s.slice(0,l))),requestAnimationFrame(()=>{let e=tJ.current;e&&(e.focus(),e.setSelectionRange(l,l),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[tT,eH]);(0,o.useEffect)(()=>{tW>=rV.length&&tL(Math.max(0,rV.length-1))},[rV.length,tW]),(0,o.useEffect)(()=>{t9.current.length=rV.length},[rV.length]),(0,o.useEffect)(()=>{tI&&t9.current[tW]?.scrollIntoView({block:"nearest",inline:"nearest"})},[tW,tI]),(0,o.useLayoutEffect)(()=>{if(!tI||null===tT)return void t$(null);let e=t7.current;if(e){var t;let r,n,o,i,s,l,a;return t=e=>{t$(t=>t===e?t:e)},r=null,n=()=>{r=null,t(function(e,t,r=8){return Math.max(0,Math.floor(e-t-r))}(e.getBoundingClientRect().bottom,function(e){let t=window.visualViewport?.offsetTop??0;for(let r=e.parentElement;r;r=r.parentElement){let e=window.getComputedStyle(r).overflowY;("auto"===e||"scroll"===e||"hidden"===e||"clip"===e)&&(t=Math.max(t,r.getBoundingClientRect().top+r.clientTop))}return t}(e)))},o=()=>{null!==r&&cancelAnimationFrame(r),r=requestAnimationFrame(n)},n(),i=e.parentElement,s=i?.parentElement,l="u">typeof ResizeObserver&&i?new ResizeObserver(o):null,i&&l?.observe(i),s&&l?.observe(s),a=window.visualViewport,a?.addEventListener("resize",o),a?.addEventListener("scroll",o),window.addEventListener("resize",o),window.addEventListener("scroll",o,!0),()=>{l?.disconnect(),a?.removeEventListener("resize",o),a?.removeEventListener("scroll",o),window.removeEventListener("resize",o),window.removeEventListener("scroll",o,!0),null!==r&&cancelAnimationFrame(r)}}},[tI,tT]);let rX=(0,o.useCallback)(e=>{eO(e),tR(null),tA(!1),tF(0),requestAnimationFrame(()=>{let t=tJ.current;t&&(t.focus(),t.setSelectionRange(e.length,e.length),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)})},[]),rZ=(0,o.useCallback)(e=>{let t=`/${e.name} `;eO(t),ty(!1),tk(0),requestAnimationFrame(()=>{let e=tJ.current;e&&(e.focus(),e.setSelectionRange(t.length,t.length),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[]),rQ=(0,o.useCallback)(()=>{let e=tJ.current;if(!e)return;let t=e.selectionStart??e.value.length,r=e.value.slice(0,t),n=e.value.slice(e.selectionEnd??t),o=r.length>0&&!r.endsWith(" ")?" ":"",i=r+o+"@"+n;eO(i);let s=t+o.length+1;rR(i,s),requestAnimationFrame(()=>{e&&(e.setSelectionRange(s,s),e.focus(),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[]),r0=(0,o.useCallback)(()=>{let e=tJ.current;if(!e)return;let t=e.selectionStart??e.value.length,r=e.value.slice(0,t),n=e.value.slice(e.selectionEnd??t),o=r.length>0&&!r.endsWith(" ")?" ":"",i=r+o+"#"+n;eO(i),rR(i,t+o.length+1),requestAnimationFrame(()=>{e&&(e.setSelectionRange(t+o.length+1,t+o.length+1),e.focus(),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[]),r1=(0,o.useCallback)(()=>{let e=tJ.current;if(!e)return;let t=e.selectionStart??e.value.length,r=e.value.slice(0,t),n=e.value.slice(e.selectionEnd??t),o=r.length>0&&!r.endsWith(" ")?" ":"";eO(r+o+"/"+n);let i=t+o.length+1;requestAnimationFrame(()=>{e&&(e.setSelectionRange(i,i),e.focus(),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[]),r2=(0,o.useCallback)(e=>{let t=cm(eH,eB);if(rb(t))return void rk();let r=t.trim();if(r||th.length){if(er?.(),r.startsWith("/")&&en){en(r,"steer"===e?"steer":"followUp",th.length?th:void 0),rf();return}"steer"===e&&i?i(r,th.length?th:void 0):"followup"===e&&s&&s(r,th.length?th:void 0),rf()}},[eH,eB,th,en,i,s,rf,er,rb,rk]),r6=(0,o.useCallback)(e=>{let t=rS.length-1;if(t<0)return 0;if("left"===e)return Math.max(0,tb-1);if("right"===e)return Math.min(t,tb+1);let r=t8.current[tb];if(!r)return"down"===e?Math.min(t,tb+1):Math.max(0,tb-1);let n=r.getBoundingClientRect(),o=n.left+n.width/2,i=n.top+n.height/2,s=-1,l=1/0;for(let r=0;r<=t;r+=1){if(r===tb)continue;let t=t8.current[r];if(!t)continue;let n=t.getBoundingClientRect(),a=n.top+n.height/2-i;if("down"===e?a<=4:a>=-4)continue;let d=1e3*Math.abs(a)+Math.abs(n.left+n.width/2-o);d<l&&(s=r,l=d)}return s>=0?s:"down"===e?Math.min(t,tb+1):Math.max(0,tb-1)},[rS.length,tb]),r4=(0,o.useCallback)(e=>{let t=e.nativeEvent,n=Date.now()-t5.current<100,o=t4.current||t.isComposing||229===t.keyCode;if("Enter"===e.key&&!e.shiftKey&&(o||n)){n&&e.preventDefault();return}if((e.ctrlKey||e.metaKey)&&!e.altKey&&!e.shiftKey&&"i"===e.key.toLowerCase()&&!o&&ei){e.preventDefault();let t=e.currentTarget,r=t.selectionStart??t.value.length,n=t.selectionEnd??r,o=t.value.slice(0,r),i=t.value.slice(n),s=o&&!/[\s@]$/.test(o)?" ":"",l=`${o}${s}@${i}`,a=o.length+s.length+1;eO(l),tR(dK(l.slice(0,a))),tM(!0),requestAnimationFrame(()=>{t.focus(),t.setSelectionRange(a,a)});return}if(tN&&!o){if("ArrowDown"===e.key){e.preventDefault(),tF(e=>Math.min(Math.max(0,(q?.length??0)-1),e+1));return}if("ArrowUp"===e.key){e.preventDefault(),tF(e=>Math.max(0,e-1));return}if("Escape"===e.key){e.preventDefault(),tA(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&q?.[tP]){e.preventDefault(),rX(q[tP]);return}}if(tv&&null!==rw){if("ArrowDown"===e.key){e.preventDefault(),tk(r6("down"));return}if("ArrowUp"===e.key){e.preventDefault(),tk(r6("up"));return}if("ArrowRight"===e.key){e.preventDefault(),tk(r6("right"));return}if("ArrowLeft"===e.key){e.preventDefault(),tk(r6("left"));return}if("Escape"===e.key){e.preventDefault(),ty(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&rS[tb]){e.preventDefault(),rZ(rS[tb]);return}}if(tI&&null!==tT&&!o){if("ArrowDown"===e.key){e.preventDefault(),tL(e=>cg(e,rV.length,1));return}if("ArrowUp"===e.key){e.preventDefault(),tL(e=>cg(e,rV.length,-1));return}if("Escape"===e.key){e.preventDefault(),tM(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&rV[tW]){e.preventDefault(),rG(rV[tW]);return}}if(null!==rI&&rP.length>0&&!o){if("ArrowDown"===e.key){e.preventDefault(),rD(e=>Math.min(Math.max(0,rP.length-1),e+1));return}if("ArrowUp"===e.key){e.preventDefault(),rD(e=>Math.max(0,e-1));return}if("Escape"===e.key){e.preventDefault(),rM(null);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&rP[rF]){e.preventDefault(),rB(rF);return}}if("ArrowUp"===e.key&&!o&&!l&&(q?.length??0)>0&&0===eH.trim().length){e.preventDefault(),ty(!1),tM(!1),tF(0),tA(!0);return}if("Escape"===e.key&&!o&&l&&r){e.preventDefault(),r();return}if("Enter"===e.key&&!e.shiftKey){if("ctrl-enter"===tC&&!(e.ctrlKey||e.metaKey))return;e.preventDefault(),l&&(i||s)?r2(i?"steer":"followup"):rj()}},[l,i,s,r,tv,rw,rS,tb,rZ,r2,rj,r6,tI,tT,rV,tW,rG,rI,rP,rF,rB,tC,ei,tN,q,tP,rX,eH]),r5=(0,o.useCallback)(()=>{let e=tJ.current;e&&(e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)},[]),r3=(0,o.useCallback)(e=>{let t=Array.from(e.clipboardData?.items??[]),r=t.filter(e=>e.type.startsWith("image/"));if(r.length){e.preventDefault(),rc(r.map(e=>e.getAsFile()).filter(e=>null!==e));return}let n=function(e,t){if(!e)return[];let r=[],n=Array.from(e.files??[]);for(let e of n){let t=e.path;"string"==typeof t&&t.trim()&&r.push(t.trim())}if(r.length>0)return Array.from(new Set(r));for(let t of Array.from(e.items??[]))if("file"===t.kind){let e=t.getAsFile(),n=e?.path;"string"==typeof n&&n.trim()&&r.push(n.trim())}if(r.length>0)return Array.from(new Set(r));for(let t of dq)try{let n=e.getData(t);if(n){let e=function(e){if(!e)return[];let t=e.split(/\r?\n/),r=[];for(let e of t){let t=e.trim();!(!t||t.startsWith("#"))&&"copy"!==t&&"cut"!==t&&(t.startsWith("file://")?r.push(d_(t)):(t.startsWith("/")||/^[a-zA-Z]:[\\/]/.test(t))&&r.push(t))}return r}(n);e.length>0&&r.push(...e)}}catch{}if(r.length>0)return Array.from(new Set(r));try{let t=e.getData("text/plain")||e.getData("text");if(t){let e=t.split(/\r?\n/).map(e=>e.trim()).filter(Boolean),n=e.filter(e=>e.startsWith("file://"));if(n.length>0&&n.length===e.length)for(let e of n)r.push(d_(e))}}catch{}if(r.length>0)return Array.from(new Set(r));if(t?.fallbackToFileName&&n.length>0)for(let e of n)e.name&&r.push(e.name);return Array.from(new Set(r))}(e.clipboardData,{fallbackToFileName:!0});if(n.length>0){e.preventDefault();let t=function(e,t=" "){return e&&0!==e.length?1===e.length?e[0]:e.map(e=>{let t=e.trim();return!/\s/.test(t)||t.startsWith('"')||t.startsWith("'")?t:`"${t}"`}).join(t):""}(n),r=tJ.current,o=r?.selectionStart??eH.length,i=r?.selectionEnd??eH.length;eO(eH.slice(0,o)+t+eH.slice(i)),requestAnimationFrame(()=>{if(r){let e=o+t.length;r.selectionStart=e,r.selectionEnd=e,r5()}});return}if(!t.find(e=>e.type.startsWith("text/plain")))return;let o=e.clipboardData.getData("text/plain");if(!o)return;let i=e.clipboardData.getData("text/html");if(i){let t=new DOMParser().parseFromString(i,"text/html"),r=function(e,t){let r="",n=0,o=!1;for(let{label:i,href:s,occurrence:l}of t){if(!i||!s)continue;let t=0;for(let r=0;r<=l&&!((t=e.indexOf(i,r?t+i.length:0))<0);r++);if(t<n)continue;let a=i.replace(/([\\[\]])/g,"\\$1"),d=s.replace(/([\\()])/g,"\\$1");r+=`${e.slice(n,t)}[${a}](${d})`,n=t+i.length,o=!0}return o?r+e.slice(n):null}(o,Array.from(t.querySelectorAll("a[href]"),e=>{let r=e.textContent??"",n=t.createRange();return n.setStart(t.body,0),n.setEndBefore(e),{label:r,href:e.getAttribute("href")?.trim()??"",occurrence:r?n.toString().split(r).length-1:0}}));if(null!==r){let t=tJ.current,n=t?.selectionStart??eH.length,o=t?.selectionEnd??eH.length,i=eH.slice(0,n)+r+eH.slice(o);e.preventDefault(),eO(i),tA(!1),rR(i,n+r.length),requestAnimationFrame(()=>{t&&(t.focus(),t.setSelectionRange(n+r.length,n+r.length),r5())});return}}let s=o.split(/\r?\n/).length;if(o.length<2e3&&s<20)return;e.preventDefault();let l=`paste-${++eX.current}`,a=eL("desktop.pastedLabel",{id:eX.current,lines:s}),d=tJ.current,c=d?.selectionStart??eH.length,u=d?.selectionEnd??eH.length,p=eH.slice(0,c),h=eH.slice(u),g=!(p.length>0)||p.endsWith("\n")||p.endsWith(" ")?"":"\n\n";eO(p+g+a+h),eU(e=>[...e,{id:l,label:a,text:o}]),requestAnimationFrame(()=>{if(!d)return;let e=c+g.length+a.length;d.setSelectionRange(e,e),d.focus()})},[rc,eL,eH,r5]);(0,o.useEffect)(()=>{tP>=(q?.length??0)&&tF(Math.max(0,(q?.length??0)-1))},[tP,q]),(0,o.useEffect)(()=>{re.current.length=q?.length??0},[q]),(0,o.useEffect)(()=>{tN&&re.current[tP]?.scrollIntoView({block:"nearest",inline:"nearest"})},[tP,tN]),(0,o.useEffect)(()=>{if(null===rw){ty(!1),tk(0),t3.current=!1;return}ty(!0),tk(0),!t3.current&&ee&&(t3.current=!0,Promise.resolve(ee()).catch(()=>{t3.current=!1}))},[rw,ee]),(0,o.useEffect)(()=>{tb>=rS.length&&tk(Math.max(0,rS.length-1))},[rS.length,tb]),(0,o.useEffect)(()=>{t8.current.length=rS.length},[rS.length]),(0,o.useEffect)(()=>{tv&&t8.current[tb]?.scrollIntoView({block:"nearest",inline:"nearest"})},[tb,tv]);let r8=c&&c.length>0?c.map(e=>({provider:e.provider,modelId:e.id,name:e.name,input:e.input})).sort(cs):Object.entries(d??{}).map(([e,t])=>({provider:a?.provider??"unknown",modelId:e,name:t})).sort(cs),r7=[];for(let e of r8){let t=r7.find(t=>t.provider===e.provider);t?t.options.push(e):r7.push({provider:e.provider,options:[e]})}let r9=a?r8.find(e=>e.modelId===a.modelId&&e.provider===a.provider)?.name??a.modelId:null,ne=y?Math.max(0,y.tokensBefore-y.estimatedTokensAfter):0,nt=y?`${eL("desktop.compacted")} ${cd(y.tokensBefore)} -> ${cd(y.estimatedTokensAfter)} ${eL("desktop.tokens")} (${cd(ne)} ${eL("desktop.saved")})`:null,nr=P&&"auto"!==P?P:null,nn="auto"!==(ep=P??"auto")&&B?B[ep]??eA[ep]:eA[ep],no=Object.entries(co).find(([,e])=>e===(j??"default"))?.[0],ni="plan"===j?eL("desktop.planModeLabel"):eP[no??"default"];(0,o.useEffect)(()=>{let e=e=>{tY.current&&!tY.current.contains(e.target)&&tG.current&&!tG.current.contains(e.target)&&eQ(!1),tZ.current&&!tZ.current.contains(e.target)&&tt(!1),t0.current&&!t0.current.contains(e.target)&&td(!1),t1.current&&!t1.current.contains(e.target)&&ti(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,o.useEffect)(()=>{let e=null,t=()=>{e=null;let t=window.visualViewport;e6({height:t?.height??window.innerHeight,width:t?.width??window.innerWidth,offsetTop:t?.offsetTop??0})},r=()=>{null!==e&&window.cancelAnimationFrame(e),e=window.requestAnimationFrame(t)};return r(),window.addEventListener("resize",r),window.visualViewport?.addEventListener("resize",r),window.visualViewport?.addEventListener("scroll",r),window.addEventListener("focusin",r),window.addEventListener("focusout",r),window.addEventListener("pageshow",r),()=>{window.removeEventListener("resize",r),window.visualViewport?.removeEventListener("resize",r),window.visualViewport?.removeEventListener("scroll",r),window.removeEventListener("focusin",r),window.removeEventListener("focusout",r),window.removeEventListener("pageshow",r),null!==e&&window.cancelAnimationFrame(e)}},[]),(0,o.useEffect)(()=>{eZ&&tX.current?.focus()},[eZ]);let[ns,nl]=(0,o.useState)(null);return(0,o.useEffect)(()=>{if(!ei||!es)return void nl(null);let e=!1,t=async()=>{try{let t=await fetch("/api/tasks/projects"),{projects:r}=await t.json(),n=r.find(e=>ei===e||ei.startsWith(e+"/")||e.startsWith(ei+"/"));if(!n){e||nl(null);return}let o=await (0,dG.Vk)(n);if(e)return;nl({running:o.filter(e=>["running","awaiting_input","preparing","merging"].includes(e.status)).length,todo:o.filter(e=>["todo","queued"].includes(e.status)).length})}catch{e||nl(null)}};t();let r=new EventSource("/api/tasks/events");return r.onmessage=()=>void t(),()=>{e=!0,r.close()}},[ei,es]),(0,n.jsxs)("fieldset",{disabled:tD,"aria-busy":tD,style:{flexShrink:0,minWidth:0,margin:0,border:0,background:"transparent",padding:eW?"0 16px max(15px, env(safe-area-inset-bottom))":"0 16px 15px",paddingRight:eW?16:34,opacity:tD?.5:1,transition:"opacity 0.15s"},children:[(0,n.jsx)("input",{ref:t6,type:"file",accept:"image/*",multiple:!0,style:{display:"none"},onChange:e=>{rc(Array.from(e.target.files??[])),e.target.value=""}}),(0,n.jsxs)("div",{style:{maxWidth:820,margin:"0 auto"},children:[ns&&(ns.running>0||ns.todo>0)&&(0,n.jsxs)("button",{type:"button",onClick:()=>window.dispatchEvent(new CustomEvent("pi:open-tasks-view")),title:eL("desktop.taskStatusHint"),style:{display:"inline-flex",alignItems:"center",gap:6,marginBottom:8,padding:"3px 10px",borderRadius:999,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",fontSize:11,cursor:"pointer",transition:"border-color 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)",e.currentTarget.style.borderColor="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.borderColor="var(--border)"},children:[(0,n.jsx)(F.m,{size:12,"aria-hidden":"true"}),ns.running>0&&(0,n.jsxs)("span",{style:{color:"var(--accent)"},children:[ns.running," ",eL("desktop.taskRunning")]}),ns.running>0&&ns.todo>0&&(0,n.jsx)("span",{"aria-hidden":"true",children:"\xb7"}),ns.todo>0&&(0,n.jsxs)("span",{children:[ns.todo," ",eL("desktop.taskTodo")]})]}),u&&u.length>0&&(0,n.jsx)("div",{role:"status",style:{marginBottom:8,padding:"6px 10px",borderRadius:6,border:"1px solid color-mix(in srgb, var(--accent-orange) 45%, var(--border))",background:"color-mix(in srgb, var(--accent-orange) 9%, var(--bg-panel))",color:"var(--text-muted)",fontSize:12,lineHeight:1.45},children:u.join(" ")}),(_?.steering.length??0)+(_?.followUp.length??0)>0&&(0,n.jsxs)("div",{style:{marginBottom:8,border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",padding:"5px 0",maxHeight:"30dvh",overflowY:"auto"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"2px 8px 4px 10px"},children:[(0,n.jsxs)("span",{style:{fontSize:10,fontFamily:"var(--font-mono)",color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:.4},children:[eL("desktop.queued")," \xb7 ",(_?.steering.length??0)+(_?.followUp.length??0)]}),K&&(0,n.jsxs)("button",{onClick:K,title:eL("desktop.recallQueuedMessages"),style:{display:"flex",alignItems:"center",gap:6,padding:"4px 12px",fontSize:12,color:"var(--text)",background:"transparent",border:"1px solid var(--border)",borderRadius:7,cursor:"pointer",transition:"background 0.12s, border-color 0.12s",whiteSpace:"nowrap"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.borderColor="color-mix(in srgb, var(--accent) 45%, var(--border))"},onMouseLeave:e=>{e.currentTarget.style.background="transparent",e.currentTarget.style.borderColor="var(--border)"},children:[(0,n.jsx)(dX.Y,{size:13}),eL("desktop.recallToInput")]})]}),_?.steering.map((e,t)=>(0,n.jsx)(cS,{kind:"steer",label:eL("desktop.steer"),text:e,index:t,total:_.steering.length,onMove:V?e=>void rm("steer",t,e):void 0,onRecall:J?()=>void ry("steer",t):void 0,onRemove:X?()=>void rv("steer",t):void 0},`steer-${t}`)),_?.followUp.map((e,t)=>(0,n.jsx)(cS,{kind:"follow-up",label:eL("desktop.followUp"),text:e,index:t,total:_.followUp.length,onMove:V?e=>void rm("followUp",t,e):void 0,onRecall:J?()=>void ry("followUp",t):void 0,onRemove:X?()=>void rv("followUp",t):void 0},`followup-${t}`))]}),ra&&(0,n.jsx)("div",{style:{marginBottom:8,padding:"5px 10px",borderRadius:6,border:"1px solid color-mix(in srgb, var(--accent) 40%, var(--border))",background:"color-mix(in srgb, var(--accent) 8%, var(--bg-panel))",color:"var(--text-muted)",fontSize:12},children:eL("desktop.recalledEditing")}),U&&(0,n.jsxs)("div",{style:{marginBottom:8,padding:"5px 10px",background:"rgba(234,179,8,0.08)",border:"1px solid rgba(234,179,8,0.25)",borderRadius:6,fontSize:12,color:"rgba(180,130,0,0.9)",display:"flex",alignItems:"center",gap:6},children:[(0,n.jsx)(z.B,{size:11,style:{flexShrink:0}}),eL("desktop.retrying")," (",U.attempt,"/",U.maxAttempts,")…",U.errorMessage&&(0,n.jsxs)("span",{style:{opacity:.7,marginLeft:4},children:["— ",U.errorMessage]})]}),nt&&(0,n.jsxs)("div",{style:{marginBottom:8,padding:"5px 10px",background:"rgba(16,185,129,0.08)",border:"1px solid rgba(16,185,129,0.24)",borderRadius:6,fontSize:12,color:"rgba(5,150,105,0.95)",display:"flex",alignItems:"center",gap:6},children:[(0,n.jsx)(f.S,{size:11,style:{flexShrink:0}}),nt]}),th.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:6,marginBottom:6,flexWrap:"wrap"},children:th.map((e,t)=>(0,n.jsxs)("div",{style:{position:"relative",flexShrink:0},children:[(0,n.jsx)(lO,{src:e.previewUrl,children:(0,n.jsx)("img",{src:e.previewUrl,alt:"",style:{width:56,height:56,objectFit:"cover",borderRadius:6,border:"1px solid var(--border)",display:"block"}})},e.previewUrl),(0,n.jsx)("button",{type:"button",onClick:()=>rg(t),title:eL("desktop.removeImage"),"aria-label":eL("desktop.removeImage"),style:{position:"absolute",top:-4,right:-4,width:16,height:16,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)"},children:(0,n.jsx)(g.u,{size:8})})]},t))}),(0,n.jsxs)("div",{style:{position:"relative"},children:[tN&&q.length>0&&(0,n.jsxs)("div",{style:{position:"absolute",left:0,right:0,bottom:"calc(100% + 8px)",zIndex:120,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -6px 20px rgba(0,0,0,0.12)",overflow:"hidden",maxHeight:"min(38vh, 300px)"},children:[(0,n.jsxs)("div",{style:{padding:"4px 8px",borderBottom:"1px solid var(--border)",display:"flex",justifyContent:"space-between",color:"var(--text-dim)",fontSize:11},children:[(0,n.jsx)("span",{children:eL("desktop.inputHistory")}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:eL("desktop.tabOrEnter")})]}),(0,n.jsx)("div",{style:{maxHeight:"calc(min(38vh, 300px) - 24px)",overflowY:"auto",padding:4},children:q.map((e,t)=>(0,n.jsxs)("button",{ref:e=>{re.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),rX(e)},onMouseEnter:()=>tF(t),style:{width:"100%",display:"flex",alignItems:"flex-start",gap:8,padding:"5px 6px",border:"none",borderRadius:5,background:t===tP?"var(--bg-selected)":"transparent",color:"var(--text)",cursor:"pointer",textAlign:"left"},children:[(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:11},children:t+1}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12},children:e})]},`${t}:${e}`))})]}),tv&&null!==rw&&(0,n.jsxs)("div",{style:{position:"absolute",left:0,right:0,bottom:"calc(100% + 8px)",zIndex:120,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -6px 20px rgba(0,0,0,0.12)",overflow:"hidden",maxHeight:"min(38vh, 300px)"},children:[(0,n.jsxs)("div",{style:{padding:"4px 8px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,fontSize:11,color:"var(--text-dim)"},children:[(0,n.jsx)("span",{children:Q?eL("desktop.loadingCommands"):`${eL("desktop.slashCommands")} \xb7 ${rz}`}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:eL("desktop.tabOrEnter")})]}),(0,n.jsx)("div",{style:{maxHeight:"calc(min(38vh, 300px) - 24px)",overflowY:"auto",padding:4},children:Q||0!==rS.length?rC.map(e=>(0,n.jsxs)("section",{style:{marginBottom:6},children:[(0,n.jsxs)("div",{style:{position:"sticky",top:-4,zIndex:1,display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"2px 0 4px",background:"var(--bg)",color:"var(--text-dim)",fontSize:10,fontWeight:600,textTransform:"uppercase"},children:[(0,n.jsx)("span",{children:eD[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:1},children:e.items.map(({command:e,index:t})=>{let r=t===tb;return(0,n.jsxs)("button",{ref:e=>{t8.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),rZ(e)},onMouseEnter:()=>tk(t),style:{width:"100%",display:"flex",alignItems:"center",gap:8,padding:"3px 6px",border:"none",borderRadius:5,background:r?"var(--bg-selected)":"none",color:"var(--text)",cursor:"pointer",textAlign:"left"},children:[(0,n.jsxs)("span",{style:{fontSize:12.5,fontFamily:"var(--font-mono)",whiteSpace:"nowrap",flexShrink:0},children:["/",e.name]}),e.description&&(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:e.description}),ch(e,tw)&&(0,n.jsx)("span",{style:{marginLeft:"auto",flexShrink:0,padding:"1px 5px",borderRadius:999,border:"1px solid var(--border)",color:"var(--text-dim)",fontSize:10},children:eL("desktop.dormant")})]},`${e.source}:${e.name}`)})})]},e.source)):(0,n.jsx)("div",{style:{padding:"2px 2px 2px",fontSize:12,color:"var(--text-dim)"},children:eL("desktop.noSlashCommands")})})]}),tI&&null!==tT&&(eh=t_&&(!tB||tB.cwd!==ei),eg=`${rV.length} ${eL(1===rV.length?"desktop.match":"desktop.matches")}`,ex=tB?.truncated&&!rK?tT.query?` \xb7 ${eL("desktop.searchingAllFiles")}`:` \xb7 ${eL("desktop.indexTruncated")}`:"",(0,n.jsxs)("div",{ref:t7,style:{position:"absolute",left:0,right:0,bottom:"calc(100% + 8px)",zIndex:120,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -6px 20px rgba(0,0,0,0.12)",overflow:"hidden",boxSizing:"border-box",display:"flex",flexDirection:"column",maxHeight:null===tE?"min(30vh, 240px)":`min(30vh, 240px, ${tE}px)`},children:[(0,n.jsxs)("div",{style:{padding:"4px 8px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,fontSize:11,color:"var(--text-dim)",flexShrink:0},children:[(0,n.jsx)("span",{children:eh?eL("desktop.loadingFiles"):`${eL("desktop.files")} \xb7 ${eg}${ex}`}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:eL("desktop.tabOrEnter")})]}),(0,n.jsx)("div",{style:{flex:"1 1 auto",minHeight:0,overflowY:"auto",padding:2},children:eh||0!==rV.length?rV.map((e,t)=>{let r=t===tW,o=e.path.split("/").pop()??e.path,i=e.path.slice(0,e.path.length-o.length);return(0,n.jsxs)("button",{ref:e=>{t9.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),rG(e)},onMouseEnter:()=>tL(t),style:{width:"100%",display:"flex",alignItems:"center",gap:5,padding:"3px 6px",border:"none",borderRadius:5,background:r?"var(--bg-selected)":"none",color:"var(--text)",cursor:"pointer",textAlign:"left",fontSize:12.5,fontFamily:"var(--font-mono)"},children:[(0,n.jsx)("span",{style:{flexShrink:0,display:"flex",alignItems:"center"},children:e.isDir?(0,n.jsx)(oz,{size:14,name:o}):oE(o,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}),o,e.isDir&&(0,n.jsx)("span",{style:{color:"var(--text-dim)"},children:"/"})]})]},`${e.isDir?"d":"f"}:${e.path}`)}):(0,n.jsx)("div",{style:{padding:"4px 6px",fontSize:12,color:"var(--text-dim)"},children:rq&&!rK?eL("desktop.searching"):eL("desktop.noMatchingFiles")})})]})),null!==rI&&rP.length>0&&(0,n.jsxs)("div",{style:{position:"absolute",left:0,right:0,bottom:"calc(100% + 8px)",zIndex:120,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -6px 20px rgba(0,0,0,0.12)",overflow:"hidden",maxHeight:"min(30vh, 240px)"},children:[(0,n.jsx)("div",{style:{padding:"4px 8px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between"},children:(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-dim)",fontWeight:600},children:[rP.length," ",eL("desktop.snippetMatches")]})}),(0,n.jsx)("div",{style:{maxHeight:"min(26vh, 210px)",overflowY:"auto"},children:rP.map((e,t)=>(0,n.jsxs)("button",{type:"button",onMouseEnter:()=>rD(t),onClick:()=>rB(t),style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 10px",background:t===rF?"var(--bg-selected)":"none",border:"none",color:t===rF?"var(--accent)":"var(--text)",cursor:"pointer",fontSize:12,textAlign:"left"},children:[(0,n.jsx)("span",{style:{color:"var(--accent)",fontFamily:"var(--font-mono)",fontSize:11},children:"#"}),(0,n.jsx)("span",{style:{fontWeight:600,flexShrink:0},children:e.name}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-muted)",fontSize:11},children:e.content.split("\n")[0]})]},e.id))})]}),(0,n.jsxs)("div",{className:`chat-input-shell ${l&&(i||s)?"is-streaming":""} ${"yolo"===I?"is-yolo":""}`,ref:tQ,onClick:e=>{e.target.closest("button, input, select, [role=button]")||tJ.current?.focus()},style:{display:"flex",flexDirection:"column",alignItems:"stretch",gap:0,padding:0,transition:"border-color 0.15s, background 0.15s, box-shadow 0.15s"},children:[l&&(0,n.jsx)("div",{className:"chat-input-streaming-overlay hatch-45","aria-hidden":"true"}),el,l&&(i||s)&&(0,n.jsxs)("div",{className:"chat-input-streaming-actions",children:[i&&(0,n.jsx)("button",{type:"button",className:"chat-input-streaming-action chat-input-streaming-action-steer",onClick:()=>r2("steer"),disabled:!rT,title:eL("desktop.injectMessageNow"),"aria-label":eL("desktop.steer"),children:(0,n.jsx)(dZ.A,{size:15})}),s&&(0,n.jsx)("button",{type:"button",className:"chat-input-streaming-action",onClick:()=>r2("followup"),disabled:!rT,title:eL("desktop.queueMessageAfterFinish"),"aria-label":eL("desktop.followUp"),children:(0,n.jsx)(d0.M,{size:15})})]}),eV&&(0,n.jsx)("div",{role:"alert",style:{margin:"0 0 6px",padding:"4px 8px",fontSize:11,lineHeight:1.5,color:"var(--error, #e5484d)",border:"1px solid var(--error, #e5484d)",borderRadius:6},children:eV}),eB.length>0&&(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:4,marginBottom:6},children:eB.map(e=>{let t=e_.includes(e.id);return(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"4px 8px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-secondary)",fontSize:11,color:"var(--text-muted)"},children:[(0,n.jsx)(dQ.d,{size:12,"aria-hidden":"true"}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)"},children:e.label}),(0,n.jsx)("button",{type:"button",onClick:()=>eq(r=>t?r.filter(t=>t!==e.id):[...r,e.id]),title:eL(t?"desktop.pastedHidePreview":"desktop.pastedShowPreview"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:2,display:"flex"},children:(0,n.jsx)(tj.b,{size:12,"aria-hidden":"true"})}),(0,n.jsx)("button",{type:"button",onClick:()=>{eU(t=>t.filter(t=>t.id!==e.id)),eO(t=>t.split(e.label).join(""))},title:eL("desktop.pastedRemove"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:2,display:"flex"},children:(0,n.jsx)(T.u,{size:12,"aria-hidden":"true"})}),t&&(0,n.jsx)("div",{style:{position:"relative"},children:(0,n.jsx)("pre",{style:{position:"absolute",left:0,right:0,top:"calc(100% + 4px)",zIndex:50,maxHeight:200,overflow:"auto",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:6,padding:"8px 10px",fontSize:11,lineHeight:1.5,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:e.text})})]},e.id)})}),(0,n.jsxs)("div",{className:"chat-input-editor-row",style:{borderColor:tf?"var(--tool-bg)":void 0},children:["goal"===C&&$&&"idle"!==$.status&&(0,n.jsxs)("span",{style:{flexShrink:0,display:"inline-flex",alignItems:"center",gap:6,marginRight:8,padding:"2px 8px",borderRadius:6,background:"complete"===$.status?"color-mix(in srgb, var(--accent-green, #22c55e) 14%, transparent)":"blocked"===$.status||"paused"===$.status?"color-mix(in srgb, #f59e0b 14%, transparent)":"color-mix(in srgb, var(--accent) 12%, transparent)",color:"complete"===$.status?"var(--accent-green, #22c55e)":"blocked"===$.status||"paused"===$.status?"var(--status-warning)":"var(--accent)",fontSize:11,fontWeight:600,whiteSpace:"nowrap",userSelect:"none"},title:$.goalText??"",children:[(0,n.jsx)(aH.d,{size:12,weight:"fill","aria-hidden":"true"}),"running"===$.status&&(0,n.jsxs)("span",{children:[eL("desktop.goalRunning")," \xb7 ",$.turnsUsed,"/",$.turnsLimit]}),"complete"===$.status&&(0,n.jsx)("span",{children:eL("desktop.goalComplete")}),"blocked"===$.status&&(0,n.jsx)("span",{children:eL("desktop.goalBlocked")}),"paused"===$.status&&(0,n.jsx)("span",{children:eL("desktop.goalPaused")}),$.noProgressTurns>0&&"running"===$.status&&(0,n.jsxs)("span",{style:{opacity:.8},children:["\xb7 ",eL("desktop.goalNoProgress",{n:$.noProgressTurns})]}),"running"===$.status&&(0,n.jsx)("button",{type:"button",onClick:L,title:eL("desktop.goalPause"),"aria-label":eL("desktop.goalPause"),style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:16,height:16,padding:0,background:"none",border:"none",borderRadius:4,color:"inherit",cursor:"pointer",fontSize:11},children:eL("desktop.goalPauseShort")}),("paused"===$.status||"blocked"===$.status)&&(0,n.jsx)("button",{type:"button",onClick:N,title:eL("desktop.goalResume"),"aria-label":eL("desktop.goalResume"),style:{display:"inline-flex",alignItems:"center",justifyContent:"center",padding:"0 4px",background:"none",border:"none",borderRadius:4,color:"inherit",cursor:"pointer",fontSize:11,fontWeight:600},children:eL("desktop.goalResumeShort")}),(0,n.jsx)("button",{type:"button",onClick:A,title:eL("desktop.goalStop"),"aria-label":eL("desktop.goalStop"),style:{display:"inline-flex",alignItems:"center",justifyContent:"center",padding:"0 3px",background:"none",border:"none",borderRadius:4,color:"inherit",cursor:"pointer",fontSize:11,opacity:.75},children:"✕"})]}),(0,n.jsx)("textarea",{ref:tJ,value:eH,spellCheck:!1,onChange:e=>{eO(e.target.value),rR(e.target.value,e.target.selectionStart),rH(e.target.value,e.target.selectionStart)},onSelect:e=>{let t=e.currentTarget;rR(t.value,t.selectionStart)},onKeyDown:r4,onCompositionStart:()=>{t4.current=!0},onCompositionEnd:e=>{t4.current=!1,t5.current=Date.now();let t=e.currentTarget;rR(t.value,t.selectionStart)},onInput:r5,onPaste:r3,placeholder:l&&(i||s)?eL("desktop.steerOrQueueFollowUp"):l?eL("desktop.agentRunning"):eL("desktop.messageWithCommands"),rows:1,className:"chat-input-textarea",style:{flex:1,background:"none",border:"none",outline:"none",resize:"none",color:"var(--text)",minHeight:24,maxHeight:200,padding:0,overflow:"auto"}})]}),tf&&(0,n.jsxs)("div",{style:{marginTop:4,padding:"2px 8px",fontSize:11,color:tm?"var(--text-muted)":"var(--accent)"},children:[eL("desktop.shellCommand")," \xb7 ",tm?eL("desktop.shellOutputLocal"):eL("desktop.shellOutputModel")]}),(0,n.jsxs)("div",{className:"chat-input-toolbar",style:{display:"flex",alignItems:"center",gap:4},children:[(0,n.jsxs)("div",{ref:t1,className:"chat-input-toolbar-attach",style:{position:"relative"},children:[(0,n.jsx)("button",{onClick:e=>{let t=e.currentTarget.getBoundingClientRect();tl({top:t.top,left:t.left,width:t.width}),ti(e=>!e)},title:eL("desktop.attachMenu"),"aria-label":eL("desktop.attachMenu"),"aria-expanded":to,style:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,padding:0,background:to?"var(--bg-hover)":"none",border:"none",borderRadius:6,color:th.length?"var(--accent)":"var(--text-muted)",cursor:"pointer",transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color=th.length?"var(--accent)":"var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background=to?"var(--bg-hover)":"none",e.currentTarget.style.color=th.length?"var(--accent)":"var(--text-muted)"},children:(0,n.jsx)(S.c,{size:14})}),to&&ts&&(ef=[{id:"upload",label:eL("desktop.attachUpload"),desc:eL("desktop.attachUploadDesc"),icon:R.J},{id:"reference",label:eL("desktop.attachReference"),desc:eL("desktop.attachReferenceDesc"),icon:df.sj},{id:"sessions",label:eL("desktop.attachSessions"),desc:eL("desktop.attachSessionsDesc"),icon:d1.v},{id:"slash",label:eL("desktop.attachCommands"),desc:eL("desktop.attachCommandsDesc"),icon:x.C}],em=window.visualViewport?.height??window.innerHeight,ev=window.innerWidth,ey=Math.min(ts.left,ev-220-8),eb=em-ts.top+6,(0,n.jsx)("div",{role:"menu",style:{position:"fixed",left:ey,bottom:eb,zIndex:1200,width:220,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:12,boxShadow:"0 12px 32px rgba(0,0,0,0.22)",padding:4},children:ef.map(e=>{let t="upload"===e.id&&!eN;return(0,n.jsxs)("button",{type:"button",role:"menuitem",disabled:t,title:t?eL("desktop.imageInputUnsupported"):void 0,onClick:()=>{ti(!1),"upload"===e.id?t6.current?.click():"reference"===e.id?rQ():"sessions"===e.id?r0():"slash"===e.id&&r1()},style:{display:"flex",alignItems:"center",gap:10,width:"100%",padding:"8px 10px",background:e.active?"var(--bg-selected)":"none",border:"none",borderRadius:8,cursor:t?"not-allowed":"pointer",textAlign:"left",opacity:t?.45:1,transition:"background 0.12s"},onMouseEnter:r=>{e.active||t||(r.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:t=>{t.currentTarget.style.background=e.active?"var(--bg-selected)":"none"},children:[(0,n.jsx)(e.icon,{size:16,weight:e.active?"fill":"regular",color:e.active?"var(--accent)":"var(--text-muted)","aria-hidden":"true"}),(0,n.jsxs)("span",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("span",{style:{display:"block",fontSize:12.5,fontWeight:550,color:"var(--text)"},children:e.label}),(0,n.jsx)("span",{style:{display:"block",fontSize:10.5,color:"var(--text-muted)",marginTop:1,lineHeight:1.4},children:t?eL("desktop.imageInputUnsupported"):e.desc})]}),e.active?(0,n.jsx)(f.S,{size:12,weight:"bold",color:"var(--accent)","aria-hidden":"true"}):null]},e.id)})}))]}),(0,n.jsx)("div",{className:"chat-input-toolbar-left",style:{flex:"0 0 auto",minWidth:0,display:"flex",alignItems:"center",gap:2},children:M&&(0,n.jsx)(cr,{collaborationMode:C,onCollaborationModeChange:M,toolApprovalMode:I,onToolApprovalModeChange:E,disabled:l})}),!eW&&(0,n.jsx)("div",{className:"chat-input-toolbar-spacer",style:{flex:1}}),(0,n.jsx)("div",{ref:t2,className:"chat-input-toolbar-controls",style:{flex:eW?"1 1 auto":"0 1 auto",minWidth:0,display:"flex",alignItems:"center",justifyContent:"flex-end",position:"relative",marginLeft:eW?0:"auto"},children:(0,n.jsxs)("div",{className:"chat-input-toolbar-actions",style:{display:"flex",alignItems:"center",gap:eW?1:2,justifyContent:"flex-end",...eW?{flex:"1 1 auto",minWidth:0}:null},children:[H&&(0,n.jsxs)("div",{ref:t0,className:"chat-input-toolbar-thinking",style:{position:"relative"},children:[(0,n.jsxs)("button",{onClick:e=>{if(l)return;let t=e.currentTarget.getBoundingClientRect();tu({top:t.top,left:t.left,width:t.width}),td(e=>!e)},disabled:l,title:l?eL("chat.currentReasoning",{level:nn}):eL("chat.changeReasoning",{level:nn}),"aria-label":eL("chat.changeReasoningLabel"),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5*!eW,padding:eW?0:"0 6px",width:eW?24:void 0,height:24,background:ta?"var(--bg-hover)":"none",border:"none",borderRadius:6,color:(P??"auto")==="off"?"var(--text-dim)":"var(--accent)",cursor:l?"not-allowed":"pointer",fontSize:12,opacity:l?.5:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{l||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.background=ta?"var(--bg-hover)":"none"},children:[(0,n.jsx)(ca,{level:P??"auto"}),!eW&&(0,n.jsx)("span",{style:{whiteSpace:"nowrap"},children:nn})]}),ta&&tc&&(ek=window.visualViewport?.height??window.innerHeight,ew=Math.min(240,(ej=window.innerWidth)-16),eS=Math.min(tc.left,ej-ew-8),eC=ek-tc.top+4,ez=Math.min(360,Math.max(120,Math.min(tc.top-8,.6*ek))),(0,n.jsx)("div",{style:{position:"fixed",bottom:eC,left:eS,zIndex:2001,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 4px 24px rgba(0,0,0,0.12)",overflow:"hidden",minWidth:200,maxWidth:ew,maxHeight:ez,overflowY:"auto"},children:cl.filter(e=>!O||"auto"===e||O.includes(e)).map(e=>{let t="auto"===e?D:!D&&nr===e,r="auto"!==e&&B?B[e]:void 0,o=null!=r&&r!==e?r:eA[e],i=null!=r&&r!==e;return(0,n.jsxs)("button",{onClick:()=>{if(td(!1),"auto"===e){D||H("auto");return}(!t||D)&&H(e)},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 12px",background:t?"var(--bg-selected)":"none",border:"none",color:t?"var(--accent)":"var(--text)",cursor:"pointer",fontSize:12,textAlign:"left",fontFamily:"var(--font-mono)",whiteSpace:"nowrap"},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="none")},children:[(0,n.jsx)(ca,{level:e,size:14}),(0,n.jsxs)("span",{style:{flex:1},children:[o,i&&(0,n.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",marginLeft:5},children:["(",e,")"]})]}),t&&(0,n.jsx)(f.S,{size:12,weight:"bold",color:"var(--accent)",style:{flexShrink:0}})]},e)})}))]}),w&&"plan"===j&&(0,n.jsxs)("div",{ref:tZ,className:"chat-input-toolbar-tools",style:{position:"relative"},children:[" ",(0,n.jsxs)("button",{onClick:e=>{if(l)return;let t=e.currentTarget.getBoundingClientRect();tn({top:t.top,left:t.left,width:t.width}),tt(e=>!e)},disabled:l,title:eL("desktop.changeToolPreset",{preset:ni}),"aria-label":eL("desktop.toolPreset"),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,padding:eW?"0 5px":"3px 7px",width:eW?"auto":void 0,height:24,background:te?"var(--bg-hover)":"none",border:"none",borderRadius:6,color:"var(--text-muted)",cursor:l?"not-allowed":"pointer",fontSize:12,opacity:l?.5:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{l||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background=te?"var(--bg-hover)":"none",e.currentTarget.style.color="var(--text-muted)"},children:[(0,n.jsx)("span",{style:{whiteSpace:"nowrap"},children:ni}),(0,n.jsx)(b.b,{size:11,weight:"bold","aria-hidden":"true",style:{transform:te?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.12s"}})]}),te&&tr&&(eT=window.visualViewport?.height??window.innerHeight,eI=Math.min(200,(eR=window.innerWidth)-16),eM=Math.max(8,eR-(tr.left+tr.width)),eE=eT-tr.top+6,e$=Math.min(320,Math.max(100,Math.min(tr.top-8,.5*eT))),(0,n.jsx)("div",{style:{position:"fixed",bottom:eE,right:eM,zIndex:2001,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 4px 24px rgba(0,0,0,0.12)",overflow:"hidden",minWidth:120,maxWidth:eI,maxHeight:e$,overflowY:"auto"},children:cn.map(e=>{let t=co[e],r="plan"!==j&&(j??"default")===t,o="off"===e?eL("desktop.noToolsReadOnly"):"default"===e?eL("desktop.fourBuiltInTools"):eL("desktop.allBuiltInTools");return(0,n.jsxs)("button",{onClick:()=>{tt(!1),r||w(t)},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 12px",background:r?"var(--bg-selected)":"none",border:"none",color:r?"var(--accent)":"var(--text)",cursor:"pointer",fontSize:12,textAlign:"left",fontFamily:"var(--font-mono)",whiteSpace:"nowrap"},onMouseEnter:e=>{r||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{r||(e.currentTarget.style.background="none")},children:[(0,n.jsx)("span",{style:{flex:1},children:eP[e]}),(0,n.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",marginLeft:8},children:o}),r&&(0,n.jsx)(f.S,{size:12,weight:"bold",color:"var(--accent)",style:{flexShrink:0}})]},e)})}))]}),r8.length>0&&v&&(0,n.jsxs)("div",{ref:tY,className:"chat-input-toolbar-model",style:{position:"relative",flex:eW?"0 1 auto":void 0,minWidth:0},children:[(0,n.jsxs)("button",{onClick:e=>{let t=e.currentTarget.getBoundingClientRect();e1({top:t.top,left:t.left,width:t.width}),eZ||e5(""),eQ(e=>!e)},disabled:l,title:r9??eL("desktop.selectModel"),"aria-label":r9??eL("desktop.selectModel"),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5*!eW,padding:eW?0:"0 6px",width:eW?28:void 0,maxWidth:eW?void 0:"min(220px, 34vw)",height:24,overflow:"hidden",background:eZ?"var(--bg-hover)":"none",border:"none",borderRadius:6,color:"var(--text-muted)",cursor:l?"not-allowed":"pointer",fontSize:12,opacity:l?.5:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{l||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background=eZ?"var(--bg-hover)":"none",e.currentTarget.style.color="var(--text-muted)"},children:[(0,n.jsx)(ru,{id:a?.provider??"unknown",size:14}),!eW&&(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:r9??eL("desktop.selectModel")}),!eW&&(0,n.jsx)(b.b,{size:11,weight:"bold","aria-hidden":"true",style:{flexShrink:0,transform:eZ?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.12s"}})]}),eZ&&e0&&(()=>{let e=e2.height||window.innerHeight,t=e2.width||window.innerWidth,r=e0.top-e2.offsetTop,o=Math.max(6,e-r+6),i=Math.min(400,Math.max(120,Math.min(r-8,.6*e))),s=Math.min(320,i),l=e0.width,d=Math.min(360,t-16),c=eW?{left:8,right:8,maxWidth:"calc(100vw - 16px)"}:{right:Math.max(8,t-(e0.left+e0.width)),width:"max-content",minWidth:Math.min(l,d),maxWidth:d},u=[];for(let e of[...e3]){let[t,r]=e.split(":",2),n=r8.find(e=>e.provider===t&&e.modelId===r);n&&u.push(n)}let p=e4.trim().toLowerCase(),g=p.length>0,x=e=>e.name.toLowerCase().includes(p)||e.modelId.toLowerCase().includes(p)||e.provider.toLowerCase().includes(p),m=g?u.filter(x):u,y=m.length>0,j=g?r7.map(e=>({...e,options:e.options.filter(x)})).filter(e=>e.options.length>0):r7,w=y||j.length>0;return(0,n.jsxs)("div",{ref:tG,className:"chat-input-model-dropdown",style:{position:"fixed",bottom:o,...c,zIndex:2e3,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 4px 24px rgba(0,0,0,0.12)",overflow:"hidden",height:s,maxHeight:i,display:"flex",flexDirection:"column"},children:[(0,n.jsx)("div",{style:{borderBottom:"1px solid var(--border)",flexShrink:0},children:(0,n.jsxs)("div",{style:{position:"relative",display:"flex",alignItems:"center"},children:[(0,n.jsx)(h.$,{size:13,color:"var(--text-dim)",style:{position:"absolute",left:12,pointerEvents:"none"}}),(0,n.jsx)("input",{ref:tX,value:e4,onChange:e=>e5(e.target.value),onKeyDown:e=>{if("Escape"===e.key)e4?e5(""):eQ(!1);else if("ArrowDown"===e.key){let t=tG.current?.querySelector(".model-row button");t&&(e.preventDefault(),t.focus())}},placeholder:eL("desktop.searchModels"),"aria-label":eL("desktop.searchModels"),style:{width:"100%",padding:"5px 12px 5px 34px",background:"transparent",border:"none",outline:"none",color:"var(--text)",fontSize:12,fontFamily:"var(--font-mono)"}})]})}),(0,n.jsxs)("div",{style:{overflowY:"auto",flex:1,minHeight:0},children:[y&&(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{padding:"6px 12px 4px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:eL("desktop.favorites")}),m.map(e=>{let t=e.modelId===a?.modelId&&e.provider===a?.provider,r=e3.has(`${e.provider}:${e.modelId}`);return(0,n.jsx)("div",{className:"model-row",style:{display:"flex",alignItems:"center",width:"100%"},children:(0,n.jsxs)("button",{onClick:()=>{eQ(!1),v(e.provider,e.modelId)},style:{display:"flex",alignItems:"center",gap:8,flex:1,minWidth:0,padding:"6px 12px",background:t?"var(--bg-selected)":"none",border:"none",color:t?"var(--accent)":"var(--text)",cursor:"pointer",fontSize:12,textAlign:"left",fontFamily:"var(--font-mono)",whiteSpace:"nowrap",overflow:"hidden"},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="none")},children:[(0,n.jsx)(ru,{id:e.provider,size:14}),(0,n.jsx)("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",minWidth:0},children:e.name}),t&&(0,n.jsx)(f.S,{size:12,weight:"bold",color:"var(--accent)",style:{flexShrink:0}}),(0,n.jsx)("span",{onClick:t=>{t.stopPropagation(),rp(e.provider,e.modelId)},className:"model-star",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,cursor:"pointer",color:r?"var(--accent)":"var(--text-dim)",opacity:+!!r,transition:"opacity 0.12s, color 0.12s"},onMouseEnter:e=>{e.stopPropagation(),e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.stopPropagation(),e.currentTarget.style.color=r?"var(--accent)":"var(--text-dim)"},title:r?eL("desktop.unfavorite"):eL("desktop.favorite"),"aria-label":r?eL("desktop.unfavorite"):eL("desktop.favorite"),children:(0,n.jsx)(d5.G,{size:12,weight:r?"fill":"regular"})})]})},`fav-${e.provider}:${e.modelId}`)}),(0,n.jsx)("div",{style:{borderTop:"1px solid var(--border)"}})]}),j.map((e,t)=>{let r=g||e7.has(e.provider),o=r?(0,n.jsx)(b.b,{size:10,color:"var(--text-dim)"}):(0,n.jsx)(k.J,{size:10,color:"var(--text-dim)"});return(0,n.jsxs)("div",{children:[(0,n.jsxs)("button",{onClick:()=>rh(e.provider),title:e.provider,style:{display:"flex",alignItems:"center",gap:4,width:"100%",maxWidth:"100%",padding:"6px 12px 4px",background:"none",border:"none",cursor:"pointer",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em",overflow:"hidden",whiteSpace:"nowrap",borderTop:t>0?"1px solid var(--border)":"none"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:[o,(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",minWidth:0},children:e.provider})]}),r&&e.options.map(e=>{let t=e.modelId===a?.modelId&&e.provider===a?.provider,r=e3.has(`${e.provider}:${e.modelId}`);return(0,n.jsx)("div",{className:"model-row",style:{display:"flex",alignItems:"center",width:"100%"},children:(0,n.jsxs)("button",{onClick:()=>{eQ(!1),v(e.provider,e.modelId)},style:{display:"flex",alignItems:"center",gap:8,flex:1,minWidth:0,padding:"6px 12px",background:t?"var(--bg-selected)":"none",border:"none",color:t?"var(--accent)":"var(--text)",cursor:"pointer",fontSize:12,textAlign:"left",fontFamily:"var(--font-mono)",whiteSpace:"nowrap",overflow:"hidden"},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="none")},children:[(0,n.jsx)(ru,{id:e.provider,size:14}),(0,n.jsx)("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",minWidth:0},children:e.name}),t&&(0,n.jsx)(f.S,{size:12,weight:"bold",color:"var(--accent)",style:{flexShrink:0}}),(0,n.jsx)("span",{onClick:t=>{t.stopPropagation(),rp(e.provider,e.modelId)},className:"model-star",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,cursor:"pointer",color:r?"var(--accent)":"var(--text-dim)",opacity:+!!r,transition:"opacity 0.12s, color 0.12s"},onMouseEnter:e=>{e.stopPropagation(),e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.stopPropagation(),e.currentTarget.style.color=r?"var(--accent)":"var(--text-dim)"},title:r?eL("desktop.unfavorite"):eL("desktop.favorite"),"aria-label":r?eL("desktop.unfavorite"):eL("desktop.favorite"),children:(0,n.jsx)(d5.G,{size:12,weight:r?"fill":"regular"})})]})},`${e.provider}:${e.modelId}`)})]},e.provider)}),g&&!w&&(0,n.jsx)("div",{style:{padding:"14px 12px",textAlign:"center",fontSize:12,color:"var(--text-dim)"},children:eL("desktop.noModelsMatch")})]})]})})()]}),0===r8.length&&p&&(0,n.jsxs)("div",{className:"chat-input-toolbar-model",title:`${eL("desktop.modelsLoadFailed")}: ${p}`,style:{display:"flex",alignItems:"center",gap:6,flex:eW?"1 1 auto":void 0,minWidth:0,padding:"3px 7px",height:24,background:"rgba(239,68,68,0.10)",border:"none",borderRadius:6,fontSize:12,overflow:"hidden"},children:[(0,n.jsx)(as.M,{size:14,color:"var(--status-error)",weight:"fill",style:{flexShrink:0}}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,color:"var(--status-error)"},children:eL("desktop.modelsLoadFailed")}),m&&(0,n.jsx)("button",{type:"button",onClick:m,style:{display:"inline-flex",alignItems:"center",gap:4,flexShrink:0,padding:"1px 6px",background:"rgba(239,68,68,0.14)",border:"none",borderRadius:4,color:"var(--status-error)",cursor:"pointer",fontSize:11,fontWeight:600,transition:"background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="rgba(239,68,68,0.24)"},onMouseLeave:e=>{e.currentTarget.style.background="rgba(239,68,68,0.14)"},children:eL("desktop.retry")})]}),0===r8.length&&!p&&(0,n.jsxs)("div",{className:"chat-input-toolbar-model",title:eL("desktop.noModelsConfigured"),style:{display:"flex",alignItems:"center",gap:6,flex:eW?"1 1 auto":void 0,minWidth:0,padding:"3px 7px",height:24,background:"var(--bg-hover)",border:"none",borderRadius:6,color:"var(--text-dim)",fontSize:12,overflow:"hidden"},children:[(0,n.jsx)(as.M,{size:14,color:"var(--text-dim)",style:{flexShrink:0}}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:eL("desktop.noModelsConfigured")})]}),!l&&(0,n.jsx)("button",{type:"button",onClick:rj,disabled:!eH.trim()&&!th.length,className:"chat-input-send",title:eL("desktop.sendMessage"),"aria-label":eL("desktop.sendMessage"),children:(0,n.jsx)(d6.l,{size:14})}),l&&(0,n.jsx)("button",{onClick:r,title:eL("desktop.stopAgent"),"aria-label":eL("desktop.stopAgent"),className:"chat-input-stop",style:{display:"flex",alignItems:"center",justifyContent:"center",padding:0,width:24,height:24,background:"rgba(239,68,68,0.12)",border:"none",borderRadius:4,color:"var(--status-error)",cursor:"pointer",transition:"background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="rgba(239,68,68,0.20)"},onMouseLeave:e=>{e.currentTarget.style.background="rgba(239,68,68,0.12)"},children:(0,n.jsx)(d4.d,{size:14})})]})})]})]})]})]})]})}));function cz(e){return!!e&&"string"==typeof e.type&&"string"==typeof e.data&&"string"==typeof e.mimeType}function cT(e){let t;if(!e||"object"!=typeof e)return null;let r=e.kind;return"steer"!==r&&"followUp"!==r||"string"!=typeof e.text?null:(Array.isArray(e.images)&&0===(t=e.images.filter(cz)).length&&(t=void 0),{kind:r,text:e.text,...t?{images:t}:{}})}function cR({items:e,sessionId:t,onResolve:r,onExport:i,onStageImport:s,onDismiss:l,mode:a="recovery"}){let{t:d}=(0,Y.s)(),c=tp(),[u,p]=(0,o.useState)(()=>new Set(e.map(e=>e.id))),[h,g]=(0,o.useState)(!1),[x,f]=(0,o.useState)(null),m=(0,o.useRef)(null);(0,o.useEffect)(()=>{p(new Set(e.map(e=>e.id)))},[e]),L(!h,l);let v=e.filter(e=>u.has(e.id)),y=v.length===e.length&&e.length>0,b=e=>p(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r}),k=async(e,t=!1)=>{if(0!==v.length){g(!0),f(null);try{await r("keep"===e?v.map(e=>e.id):[],"discard"===e?v.map(e=>e.id):[],t)}catch(e){f(e instanceof Error?e.message:String(e))}finally{g(!1)}}},j=async e=>{let r=await i();if(!r)return;let n=r.recovery.filter(e=>u.has(e.id));if(n.length){var o;let r,i,s,l,a,c,u;o={sessionId:t,source:"recovery"},i="md"===e?(((r=[]).push("# Queued messages export"),o.sessionId&&r.push(`- Session: ${o.sessionId}`),r.push(`- Source: ${"live"===o.source?"live queue":"pending recovery"}`),r.push(`- Exported: ${o.exportedAt??new Date().toISOString()}`),r.push(""),0===n.length)?r.push("_No entries._"):n.forEach((e,t)=>{var n;r.push(`## ${t+1}. ${"steer"===e.kind?"steer":"follow-up"} \xb7 ${new Date(e.queuedAt).toISOString()}`),e.text&&r.push(e.text),e.images?.length&&r.push(`> _${0===(n=e.images.length)?"":1===n?"(1 image)":`(${n} images)`}_`),r.push("")}),r.join("\n")):JSON.stringify({format:"pi-web-queue",version:1,exportedAt:o.exportedAt??new Date().toISOString(),source:o.source,sessionId:o.sessionId,entries:n.map(({kind:e,text:t,images:r})=>({kind:e,text:t,...r?.length?{images:r}:{}}))},null,2),s=new Date().toISOString().replace(/[:.]/g,"-").slice(0,19),l=`${o.sessionId??"session"}-queue-${o.source}-${s}.${e}`,a=new Blob([i],{type:"md"===e?"text/markdown;charset=utf-8":"application/json;charset=utf-8"}),c=URL.createObjectURL(a),(u=document.createElement("a")).href=c,u.download=l,u.click(),setTimeout(()=>URL.revokeObjectURL(c),1e3),f(d("desktop.queueExported",{count:n.length}))}},w=async e=>{let t=function(e){let t;try{t=JSON.parse(e)}catch{return[]}let r=Array.isArray(t)?t:t&&"object"==typeof t&&Array.isArray(t.entries)?t.entries:null;return r?r.map(cT).filter(e=>null!==e):[]}(await e.text());if(!t.length)return void f(d("desktop.queueImportEmpty"));let r=await s(t);f(null===r?d("desktop.queueImportEmpty"):d("desktop.queueImported",{count:r}))};return(0,n.jsxs)("div",{className:"fixed inset-0 z-[1000] flex items-center justify-center bg-black/40 p-3",role:"presentation",children:[(0,n.jsxs)("div",{role:"dialog","aria-modal":"true","aria-label":"import"===a?d("desktop.queueImportTitle"):d("desktop.queueRecoveryTitle"),className:"flex max-h-[88dvh] w-full max-w-2xl flex-col overflow-hidden rounded-xl border border-(--border) bg-(--bg) shadow-2xl",children:[(0,n.jsxs)("header",{className:"flex flex-wrap items-start gap-3 border-b border-(--border) bg-(--bg-panel) px-4 py-3",children:[(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsx)("h2",{className:"text-sm font-semibold text-(--text)",children:"import"===a?d("desktop.queueImportTitle"):d("desktop.queueRecoveryTitle")}),(0,n.jsx)("p",{className:"mt-1 text-xs leading-5 text-(--text-muted)",children:"import"===a?d("desktop.queueImportDescription"):d("desktop.queueRecoveryDescription")})]}),(0,n.jsxs)("div",{className:"flex items-center gap-1",children:[(0,n.jsx)("button",{type:"button",className:"markdown-code-action",onClick:()=>p(new Set(y?[]:e.map(e=>e.id))),children:y?d("desktop.selectNone"):d("desktop.selectAll")}),(0,n.jsx)("button",{type:"button",className:"markdown-code-action",disabled:h||0===v.length,onClick:()=>void j("json"),children:"JSON"}),(0,n.jsx)("button",{type:"button",className:"markdown-code-action",disabled:h||0===v.length,onClick:()=>void j("md"),children:"MD"}),(0,n.jsx)("button",{type:"button",className:"markdown-code-action",disabled:h,onClick:()=>m.current?.click(),children:d("desktop.import")}),(0,n.jsx)("button",{type:"button",className:"markdown-code-action",onClick:l,"aria-label":d("desktop.close"),children:"\xd7"})]})]}),(0,n.jsx)("div",{className:"grid flex-1 content-start gap-2 overflow-y-auto p-3",children:e.map(e=>{let t=u.has(e.id);return(0,n.jsxs)("button",{type:"button",onClick:()=>b(e.id),"aria-pressed":t,className:["flex w-full items-start gap-3 rounded-lg border p-3 text-left transition",t?"border-(--accent) bg-(--bg-selected)":"border-(--border) bg-(--bg-panel) hover:bg-(--bg-hover)"].join(" "),children:[(0,n.jsx)("input",{type:"checkbox",checked:t,onChange:()=>b(e.id),onClick:e=>e.stopPropagation(),className:"mt-1 accent-[var(--accent)]"}),(0,n.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,n.jsxs)("span",{className:"flex flex-wrap items-center gap-2 text-[11px] text-(--text-dim)",children:[(0,n.jsx)("span",{className:"rounded-full border border-(--border) px-2 py-0.5 font-mono uppercase",children:"steer"===e.kind?d("desktop.steer"):d("desktop.followUp")}),(0,n.jsx)("span",{children:new Date(e.queuedAt).toLocaleString()}),e.hasImages?(0,n.jsx)("span",{children:d("desktop.queueImages")}):null]}),(0,n.jsx)("span",{className:"mt-2 block whitespace-pre-wrap break-words border-l-2 border-(--border) pl-2 text-xs leading-5 text-(--text)",children:e.text||d("desktop.queueNoText")})]})]},e.id)})}),(0,n.jsxs)("footer",{className:["flex flex-wrap items-center gap-2 border-t border-(--border) px-4 py-3",c?"justify-stretch":"justify-end"].join(" "),children:[x?(0,n.jsx)("span",{className:"mr-auto text-xs text-(--text-muted)",children:x}):null,(0,n.jsx)("button",{type:"button",className:"rounded-md px-3 py-2 text-xs text-(--text-muted) hover:bg-(--bg-hover)",onClick:l,disabled:h,children:d("desktop.dismiss")}),(0,n.jsx)("button",{type:"button",className:"rounded-md border border-red-400/40 px-3 py-2 text-xs text-red-400 disabled:opacity-40",onClick:()=>void k("discard"),disabled:h||0===v.length,children:d("desktop.discard")}),(0,n.jsx)("button",{type:"button",className:"rounded-md border border-(--accent) px-3 py-2 text-xs text-(--accent) disabled:opacity-40",onClick:()=>void k("keep"),disabled:h||0===v.length,children:d("desktop.requeue")}),(0,n.jsx)("button",{type:"button",className:"rounded-md bg-(--accent) px-3 py-2 text-xs text-white disabled:opacity-40",onClick:()=>void k("keep",!0),disabled:h||0===v.length,children:d("desktop.requeueAndContinue")})]})]}),(0,n.jsx)("input",{ref:m,type:"file",accept:".json,application/json",className:"hidden",onChange:e=>{let t=e.target.files?.[0];t&&w(t),e.currentTarget.value=""}})]})}var cI=r(36405),cM=r(92185),cE=r(75877),c$=r(30830);function cW(e){let t=e,r=t.compressedEntryIds?.length??0;for(;1===t.children.length;)t=t.children[0],r+=1+(t.compressedEntryIds?.length??0);return{node:t,skipped:r}}function cL(e){if(e.length>1)return!0;let t=[...e];for(;t.length>0;){let e=t.pop();if(e.children.length>1)return!0;for(let r of e.children)t.push(r)}return!1}function cN({node:e,assistantLabel:t,activePathIds:r,depth:o,isLast:i,parentLines:s,onSelect:l}){let{node:a,skipped:d}=cW(e),c=r.has(a.entry.id),u=r.has(e.entry.id)||r.has(a.entry.id),p=function(e,t){if("message"===e.type&&"message"in e){let r=e.message,n=r.content,o="";if("string"==typeof n?o=n:Array.isArray(n)&&(o=n.filter(e=>"text"===e.type).map(e=>e.text).join(" ")),o.length>40&&(o=o.slice(0,40)+"…"),o)return o;if("assistant"===r.role)return`[${t}]`}return e.type}(a.entry,t),h="message"===a.entry.type&&"message"in a.entry?a.entry.message.role:null;return(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",height:24,cursor:"pointer"},onClick:()=>l(a.entry.id),children:[s.map((e,t)=>(0,n.jsx)("div",{style:{width:16,flexShrink:0,position:"relative",height:"100%",alignSelf:"stretch"},children:e&&(0,n.jsx)("div",{style:{position:"absolute",left:7,top:0,bottom:0,width:1,background:"var(--border)"}})},t)),(0,n.jsxs)("div",{style:{width:16,flexShrink:0,position:"relative",height:"100%",alignSelf:"stretch"},children:[(0,n.jsx)("div",{style:{position:"absolute",left:7,top:0,bottom:i?"50%":0,width:1,background:"var(--border)"}}),(0,n.jsx)("div",{style:{position:"absolute",left:7,top:"50%",width:9,height:1,background:"var(--border)"}})]}),(0,n.jsx)("div",{style:{width:7,height:7,borderRadius:"50%",flexShrink:0,background:c?"var(--accent)":u?"var(--text-muted)":"var(--border)",border:c?"none":"1px solid var(--text-dim)",marginRight:6,transition:"background 0.12s"}}),h&&(0,n.jsx)("span",{style:{fontSize:9,fontFamily:"var(--font-mono)",color:"user"===h?"var(--accent)":"var(--text-dim)",background:"user"===h?"rgba(37,99,235,0.08)":"var(--bg-hover)",border:`1px solid ${"user"===h?"rgba(37,99,235,0.2)":"var(--border)"}`,borderRadius:3,padding:"0 4px",marginRight:5,flexShrink:0,lineHeight:"16px"},children:"user"===h?"U":"A"}),d>0&&(0,n.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",marginRight:5,flexShrink:0},children:["+",d]}),(0,n.jsx)("span",{style:{fontSize:11,color:c?"var(--text)":u?"var(--text-muted)":"var(--text-dim)",fontWeight:c?500:400,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:p})]}),a.children.map((e,d)=>(0,n.jsx)(cN,{node:e,assistantLabel:t,activePathIds:r,depth:o+1,isLast:d===a.children.length-1,parentLines:[...s,!i],onSelect:l},e.entry.id))]})}function cA({tree:e,activeLeafId:t,onLeafChange:r,inline:i,containerRef:s,open:l,onToggle:a,hasSession:d,embedded:c}){let{t:u}=(0,Y.s)(),[p,h]=(0,o.useState)(!1),g=void 0!==l?l:p,x=(0,o.useRef)(null),[f,m]=(0,o.useState)(null);(0,o.useEffect)(()=>{if(!g||!i)return;let e=s?.current??x.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect(),r=Math.max(8,Math.min(t.left,window.innerWidth-8-180)),n=window.innerWidth-8-r,o=Math.min(Math.max(t.width,Math.min(180,n)),n);m({top:t.bottom,left:r,width:o})};t();let r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[g,i,s]);let v=(0,o.useMemo)(()=>(function(e,t){if(!t)return new Set;let r=e.map(e=>({node:e,path:[e.entry.id]}));for(;r.length>0;){let{node:e,path:n}=r.pop();if(e.entry.id===t||e.compressedEntryIds?.includes(t))return new Set(n);for(let t of e.children)r.push({node:t,path:[...n,t.entry.id]})}return new Set})(e,t),[e,t]),k=(0,o.useCallback)(e=>{r(e)},[r]),j=d?cL(e)?null:u("desktop.sessionHasNoBranches"):u("desktop.noActiveSession"),w=e.length>0?cW(e[0]):null,S=w?.node??null,C=!j&&S&&S.children.length>1,z=(0,n.jsx)(y.Z,{size:16,"aria-hidden":"true",style:{flexShrink:0}}),T=(0,n.jsx)(b.a,{size:8,color:"var(--text-dim)","aria-hidden":"true",style:{marginLeft:1,transition:"transform 0.15s",transform:g?"rotate(180deg)":"none"}});return i?(0,n.jsxs)("div",{style:{height:"100%",display:"flex",alignItems:"stretch"},children:[(0,n.jsx)("button",{ref:x,className:"app-no-drag",onClick:()=>a?a():h(e=>!e),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:g?"var(--bg-selected)":"none",border:"none",cursor:"pointer",color:g?"var(--text)":"var(--text-muted)",flexShrink:0,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background=g?"var(--bg-selected)":"none",e.currentTarget.style.color=g?"var(--text)":"var(--text-muted)"},title:u("desktop.branches"),"aria-label":u("desktop.branches"),"aria-pressed":g,children:z}),g&&f&&(0,n.jsx)("div",{className:"app-no-drag",style:{position:"fixed",top:f.top,left:f.left,width:f.width,background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",zIndex:500},children:C&&S?(0,n.jsx)("div",{style:{padding:"4px 12px 8px 12px",maxHeight:260,overflowY:"auto"},children:S.children.map((e,t)=>(0,n.jsx)(cN,{node:e,assistantLabel:u("desktop.assistant"),activePathIds:v,depth:0,isLast:t===S.children.length-1,parentLines:[],onSelect:k},e.entry.id))}):(0,n.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:j})})]}):c?C&&S?(0,n.jsx)("div",{style:{padding:"4px 8px 8px 8px"},children:S.children.map((e,t)=>(0,n.jsx)(cN,{node:e,assistantLabel:u("desktop.assistant"),activePathIds:v,depth:0,isLast:t===S.children.length-1,parentLines:[],onSelect:k},e.entry.id))}):(0,n.jsx)("div",{style:{padding:"10px 12px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:j??u("desktop.sessionHasNoBranches")}):(0,n.jsxs)("div",{style:{borderBottom:"1px solid var(--border)",background:"var(--bg)",flexShrink:0,position:"relative"},children:[(0,n.jsxs)("button",{onClick:()=>h(e=>!e),style:{display:"flex",alignItems:"center",gap:6,width:"100%",padding:"5px 12px",background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",fontSize:11,textAlign:"left"},children:[z,(0,n.jsx)("span",{style:{color:"var(--text-muted)"},children:u("desktop.branches")}),T]}),g&&(0,n.jsx)("div",{style:{position:"absolute",top:"100%",left:0,right:0,background:"var(--bg)",borderBottom:"1px solid var(--border)",boxShadow:"0 4px 12px rgba(0,0,0,0.1)",zIndex:100},children:C&&S?(0,n.jsx)("div",{style:{padding:"4px 12px 8px 12px",maxHeight:260,overflowY:"auto"},children:S.children.map((e,t)=>(0,n.jsx)(cN,{node:e,assistantLabel:u("desktop.assistant"),activePathIds:v,depth:0,isLast:t===S.children.length-1,parentLines:[],onSelect:k},e.entry.id))}):(0,n.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:j??u("desktop.sessionHasNoBranches")})})]})}var cP=r(33846);function cF({open:e,onOpenChange:t,cwd:r}){let{t:i}=(0,Y.s)(),[s,l]=(0,o.useState)([]),[a,d]=(0,o.useState)(""),[c,u]=(0,o.useState)(!1),[p,h]=(0,o.useState)(null),[x,f]=(0,o.useState)(null);L(e&&!c,()=>t(!1));let m=(0,o.useCallback)(async()=>{if(r)try{let e=await fetch(`/api/git/stash?${new URLSearchParams({cwd:r}).toString()}`,{cache:"no-store"});if(e.ok){let t=await e.json();l(t.entries)}}catch{}},[r]);if((0,o.useEffect)(()=>{e&&m()},[e,m]),!e)return null;let v=async(e,t)=>{u(!0),h(null),f(null);try{let n=await fetch(`/api/git/stash?${new URLSearchParams({cwd:r??""}).toString()}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e,message:a||void 0,ref:t})}),o=await n.json();n.ok&&o.ok?(f(o.output??i("tasks.stashDone")),d(""),m()):h(o.error??`HTTP ${n.status}`)}catch(e){h(e instanceof Error?e.message:String(e))}finally{u(!1)}};return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:950,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(520px, calc(100vw - 48px))",maxHeight:"min(75vh, 560px)",overflow:"auto",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:14,boxShadow:"0 16px 48px rgba(0,0,0,0.3)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px 0"},children:[(0,n.jsx)("h3",{style:{fontSize:15,fontWeight:600,margin:0},children:i("desktop.stashTitle")}),(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),"aria-label":i("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(g.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12,padding:"14px 16px 16px"},children:[(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[(0,n.jsx)("input",{value:a,onChange:e=>d(e.target.value),placeholder:i("desktop.stashMessagePlaceholder"),style:{width:"100%",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"7px 10px",color:"var(--text)",fontSize:13,outline:"none",fontFamily:"inherit"}}),(0,n.jsxs)("button",{type:"button",onClick:()=>void v("push"),disabled:c,style:{alignSelf:"flex-start",display:"inline-flex",alignItems:"center",gap:5,padding:"7px 14px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:c?"not-allowed":"pointer"},children:[(0,n.jsx)(cP.c,{size:13,"aria-hidden":"true"}),i("desktop.stashPush")]})]}),p&&(0,n.jsx)("div",{style:{padding:"8px 10px",borderRadius:8,background:"rgba(239,68,68,0.10)",color:"var(--status-error)",fontSize:12,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:p}),x&&(0,n.jsx)("div",{style:{padding:"8px 10px",borderRadius:8,background:"rgba(34,197,94,0.10)",color:"var(--status-success)",fontSize:12,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:x}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column"},children:[(0,n.jsxs)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",marginBottom:6},children:[i("desktop.stashList")," (",s.length,")"]}),0===s.length?(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)"},children:i("desktop.stashEmpty")}):(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:s.map(e=>(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"7px 10px",borderRadius:8,border:"1px solid var(--border)",background:"var(--bg)"},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-muted)",flexShrink:0},children:e.index}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.message||e.ref}),(0,n.jsxs)("button",{type:"button",onClick:()=>void v("pop",e.ref),disabled:c,title:i("desktop.stashPop"),style:{display:"inline-flex",alignItems:"center",gap:3,padding:"4px 8px",borderRadius:6,border:"1px solid var(--border)",background:"none",color:"var(--text)",fontSize:11,cursor:c?"not-allowed":"pointer"},children:[(0,n.jsx)(z.S,{size:11,"aria-hidden":"true"}),i("desktop.stashPop")]}),(0,n.jsx)("button",{type:"button",onClick:()=>void v("drop",e.ref),disabled:c,title:i("desktop.stashDrop"),style:{display:"inline-flex",alignItems:"center",padding:"4px 8px",borderRadius:6,border:"1px solid var(--border)",background:"none",color:"var(--status-error)",fontSize:11,cursor:c?"not-allowed":"pointer"},children:i("desktop.stashDrop")})]},e.ref))})]})]})]})})}function cD({cwd:e}){let{t}=(0,Y.s)(),[r,i]=(0,o.useState)(!1),[s,l]=(0,o.useState)("idle"),[a,d]=(0,o.useState)(null),[c,u]=(0,o.useState)(!1),p=(0,o.useCallback)(async()=>{if(e&&!r){i(!0),l("idle");try{let r=await fetch(`/api/git/push?${new URLSearchParams({cwd:e}).toString()}`,{method:"POST",cache:"no-store"}),n=await r.json();r.ok&&n.ok?(l("ok"),d(n.output||t("desktop.pushOk"))):(l("error"),d(n.error??t("desktop.pushFailed")))}catch(e){l("error"),d(e instanceof Error?e.message:t("desktop.pushFailed"))}finally{i(!1),setTimeout(()=>{l("idle"),d(null)},4e3)}}},[e,r,t]);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button",className:"session-info-bar-button",onClick:()=>void p(),disabled:!e||r,title:t("desktop.push"),"aria-label":t("desktop.push"),style:{position:"relative"},children:"ok"===s?(0,n.jsx)(ei.r,{size:13,color:"var(--status-success)",weight:"fill","aria-hidden":"true"}):"error"===s?(0,n.jsx)(nC.J,{size:13,color:"var(--status-error)",weight:"fill","aria-hidden":"true"}):(0,n.jsx)(cP.c,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("button",{type:"button",className:"session-info-bar-button",onClick:()=>u(!0),disabled:!e,title:t("desktop.stash"),"aria-label":t("desktop.stash"),children:(0,n.jsx)(I.T,{size:13,"aria-hidden":"true"})}),a&&(0,n.jsx)("div",{style:{position:"fixed",bottom:60,left:"50%",transform:"translateX(-50%)",zIndex:1200,maxWidth:"60vw",padding:"8px 14px",borderRadius:8,background:"var(--bg-panel)",border:`1px solid ${"ok"===s?"var(--status-success)":"var(--status-error)"}`,boxShadow:"0 8px 24px rgba(0,0,0,0.2)",fontSize:12,color:"ok"===s?"var(--status-success)":"var(--status-error)",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:a}),(0,n.jsx)(cF,{open:c,onOpenChange:u,cwd:e})]})}function cH({onViewFullHistory:e,cwd:t,systemPrompt:r,sessionStats:i,contextUsage:s,hasSession:l,showChat:a,soundEnabled:d,onSoundToggle:c,onCompact:u,onAbortCompaction:p,isCompacting:h,compactError:g,branchTree:x,branchActiveLeafId:m,onBranchLeafChange:v,showSoundLabel:b,lastTurnUsage:k}){let{t:j}=(0,Y.s)(),w=tp(),[S,C]=(0,o.useState)(null),z=(0,o.useCallback)(()=>C(null),[]),T=(0,o.useRef)(null),[R,I]=(0,o.useState)(null),M=(0,o.useCallback)(()=>{let e=T.current;if(!e)return;let t=function(e,t,r=8,n=4){let o=Math.max(0,t.width-2*r),i=Math.max(r,Math.min(Math.round(t.height-e+n),t.height-r-120)),s=Math.max(0,Math.round(t.height-i-r));return{left:r,right:r,width:o,bottom:i,maxHeight:s}}(e.getBoundingClientRect().top,{width:window.innerWidth,height:window.innerHeight});I({position:"fixed",left:t.left,right:t.right,width:t.width,bottom:t.bottom,minWidth:0,maxWidth:t.width,maxHeight:t.maxHeight,overflowY:"auto"})},[]),E=(0,o.useRef)(null),$=(0,o.useCallback)((e,t)=>{if(E.current===e){E.current=null,C(null),I(null),T.current=null;return}E.current=e,T.current=t.closest(".session-info-bar-popover-host"),C(e),w?M():I(null)},[w,M]);(0,o.useEffect)(()=>{if(S&&R)return window.addEventListener("resize",M),()=>window.removeEventListener("resize",M)},[S,R,M]);let[W,L]=(0,o.useState)(null),N=(0,o.useRef)(null),A=(0,o.useCallback)((e,t)=>{nA(t).then(()=>{N.current&&clearTimeout(N.current),L(e),N.current=setTimeout(()=>L(null),1400)})},[]),P=(0,o.useMemo)(()=>{if(!r)return 0;let e=0;for(let t of r){let r=t.codePointAt(0)??0;r>=19968&&r<=40959||r>=13312&&r<=19903||r>=131072&&r<=173791||r>=12352&&r<=12447||r>=12448&&r<=12543||r>=44032&&r<=55215?e+=1:e+=.25}return Math.max(1,Math.round(e))},[r]);if(!a)return null;let F=i?.tokens,D=i?.cost??0,H=i?.costCNY??0,O=i?.costUSD??0,B=[];H>0&&B.push(au(H)),O>0&&B.push(O>=.01?`$${O.toFixed(2)}`:"<$0.01"),0===B.length&&D>0&&B.push(D>=.01?`$${D.toFixed(2)}`:"<$0.01");let U=B.length>0?B.join(" + "):null,_="var(--text-muted)";if(s?.contextWindow){let e=s.percent;null!==e&&e>90?_="var(--status-error)":null!==e&&e>70&&(_="rgba(234,179,8,0.95)")}let K=null!==r&&""!==r,V=i&&F&&(F.input>0||F.output>0),J=l&&v,G=[];if(F&&(G.push(`${j("desktop.sessionInfoInput")}: ${F.input.toLocaleString()}`),G.push(`${j("desktop.sessionInfoOutput")}: ${F.output.toLocaleString()}`),F.cacheRead>0&&G.push(`${j("desktop.sessionInfoCacheRead")}: ${F.cacheRead.toLocaleString()}`),F.cacheWrite>0&&G.push(`${j("desktop.sessionInfoCacheWrite")}: ${F.cacheWrite.toLocaleString()}`),H>0&&G.push(`${j("desktop.sessionInfoCostOfficial")}: ${au(H)}`),O>0&&G.push(`${j("desktop.sessionInfoCost")}: $${O.toFixed(4)}`),H<=0&&O<=0&&D>0&&G.push(`${j("desktop.sessionInfoCost")}: $${D.toFixed(4)}`)),s?.contextWindow&&null!==s.percent){let e=s.percent,t=s.tokens;G.push(`${j("desktop.sessionInfoContext")}: ${null!==e?`${e.toFixed(1)}%`:"?"} ${null!==t?ol(t):"?"}/${ol(s.contextWindow)}`)}let X=G.join(" | ");return(0,n.jsxs)("div",{className:"session-info-bar",children:[t&&(0,n.jsx)(cD,{cwd:t}),c&&(0,n.jsxs)("button",{type:"button",className:"session-info-bar-button",onClick:c,title:d?j("desktop.disableCompletionSound"):j("desktop.enableCompletionSound"),"aria-label":d?j("desktop.disableCompletionSound"):j("desktop.enableCompletionSound"),children:[d?(0,n.jsx)(cI.Q,{size:13}):(0,n.jsx)(cM.l,{size:13}),b&&(0,n.jsx)("span",{style:{marginLeft:4},children:d?j("desktop.soundLabelOn"):j("desktop.soundLabelOff")})]}),l&&(0,n.jsx)("button",{type:"button",className:"session-info-bar-button",onClick:e,title:j("desktop.viewFullHistory"),"aria-label":j("desktop.viewFullHistory"),children:(0,n.jsx)(cE.n,{size:13,"aria-hidden":"true"})}),J&&(0,n.jsxs)("div",{className:"session-info-bar-popover-host",children:[(0,n.jsx)("button",{type:"button",className:`session-info-bar-button${"branches"===S?" is-active":""}`,onClick:e=>$("branches",e.currentTarget),title:j("desktop.branches"),"aria-label":j("desktop.branches"),"aria-pressed":"branches"===S,children:(0,n.jsx)(y.Z,{size:13,"aria-hidden":"true"})}),"branches"===S&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"session-info-bar-popover-cover",onClick:z}),(0,n.jsxs)("div",{className:"session-info-bar-popover is-branches",style:R??void 0,children:[(0,n.jsxs)("div",{className:"session-info-bar-popover-header",children:[(0,n.jsx)("span",{className:"session-info-bar-popover-title",children:j("desktop.branches")}),(0,n.jsx)("button",{type:"button",className:"session-info-bar-popover-close",onClick:z,title:j("i18n.close"),"aria-label":j("i18n.close"),children:"✕"})]}),(0,n.jsx)("div",{className:"session-info-bar-popover-body",children:(0,n.jsx)(cA,{tree:x??[],activeLeafId:m??null,onLeafChange:e=>{v(e),z()},hasSession:!0,embedded:!0})})]})]})]}),K&&(0,n.jsxs)("div",{className:"session-info-bar-popover-host",children:[(0,n.jsx)("button",{type:"button",className:`session-info-bar-button${"system"===S?" is-active":""}`,onClick:e=>$("system",e.currentTarget),title:j("desktop.systemPrompt"),"aria-label":j("desktop.systemPrompt"),"aria-pressed":"system"===S,children:(0,n.jsx)(dQ.i,{size:13,"aria-hidden":"true"})}),"system"===S&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"session-info-bar-popover-cover",onClick:z}),(0,n.jsxs)("div",{className:"session-info-bar-popover is-system",style:R??void 0,children:[(0,n.jsxs)("div",{className:"session-info-bar-popover-header",children:[(0,n.jsx)("span",{className:"session-info-bar-popover-title",children:j("desktop.systemPrompt")}),(0,n.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",marginLeft:8},children:["~",ol(P)," tokens"]}),(0,n.jsx)("div",{style:{flex:1}}),(0,n.jsx)("button",{type:"button",className:"session-info-bar-popover-close",onClick:z,title:j("i18n.close"),"aria-label":j("i18n.close"),children:"✕"})]}),(0,n.jsx)("div",{className:"session-info-bar-system-body",children:r?(0,n.jsx)(s_.oz,{remarkPlugins:[lb.A],children:r}):(0,n.jsx)("span",{className:"session-info-bar-popover-empty",children:"System prompt is empty (tools are disabled)"})})]})]})]}),(0,n.jsx)("div",{className:"session-info-bar-spacer"}),u&&(0,n.jsxs)("div",{className:"session-info-bar-compact-wrap",children:[g&&(0,n.jsx)("div",{className:"session-info-bar-compact-error",children:g}),(0,n.jsx)("button",{type:"button",className:`session-info-bar-button${h?" is-compacting":""}`,onClick:h?p:u,title:h?j("desktop.stopCompaction"):j("desktop.compactContext"),"aria-label":h?j("desktop.stopCompaction"):j("desktop.compactContext"),children:h?(0,n.jsx)(d4.M,{size:13}):(0,n.jsx)(c$.C,{size:13})})]}),V&&(0,n.jsxs)("div",{className:"session-info-bar-popover-host",children:[(0,n.jsxs)("button",{type:"button",className:`session-info-bar-button is-stats${"session"===S?" is-active":""}`,onClick:e=>$("session",e.currentTarget),title:X||j("desktop.sessionInfo"),"aria-label":j("desktop.sessionInfo"),"aria-pressed":"session"===S,children:[F&&F.input>0&&(0,n.jsxs)("span",{className:"session-info-bar-token-chip",children:[(0,n.jsx)(an.D,{size:10,"aria-hidden":"true"}),ol(F.input)]}),F&&F.output>0&&(0,n.jsxs)("span",{className:"session-info-bar-token-chip",children:[(0,n.jsx)(ar.y,{size:10,"aria-hidden":"true"}),ol(F.output)]}),F&&F.cacheRead>0&&(0,n.jsxs)("span",{className:"session-info-bar-token-chip",children:[(0,n.jsx)(q.W,{size:10,"aria-hidden":"true"}),ol(F.cacheRead)]}),U&&(0,n.jsx)("span",{children:U}),s?.contextWindow&&null!==s.percent&&(0,n.jsx)("span",{className:"session-info-bar-token-chip",style:{color:_},children:(0,n.jsxs)("svg",{className:"session-info-bar-donut",width:"16",height:"16",viewBox:"0 0 16 16","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"8",cy:"8",r:"6.75",fill:"none",stroke:"var(--border)",strokeWidth:"2.5"}),(0,n.jsx)("circle",{className:"session-info-bar-donut-arc",cx:"8",cy:"8",r:"6.75",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",pathLength:100,strokeDasharray:100,strokeDashoffset:null===s.percent?0:100-Math.min(100,Math.max(0,s.percent)),transform:"rotate(-90 8 8)"})]})})]}),"session"===S&&i&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"session-info-bar-popover-cover",onClick:z}),(0,n.jsx)("div",{className:"session-info-bar-popover is-session",style:R??void 0,children:(0,n.jsx)("div",{className:"session-stats-body",children:(()=>{let e=i.tokens,t=s??i.contextUsage,r=(e,t)=>{let r=W===e;return(0,n.jsx)("button",{type:"button",className:`session-stats-copy${r?" is-copied":""}`,title:r?j("desktop.copied"):"file"===e?j("desktop.copyFilePath"):j("desktop.copySessionId"),onClick:()=>A(e,t),children:r?(0,n.jsx)(f.J,{size:12,"aria-hidden":"true"}):(0,n.jsx)(sU.Q,{size:12,"aria-hidden":"true"})})},o=[];i.sessionName&&o.push((0,n.jsx)("div",{className:"session-stats-info-name",children:i.sessionName},"name")),o.push((0,n.jsxs)("div",{className:"session-stats-info-line",children:[(0,n.jsx)("span",{className:"session-stats-info-text",children:i.sessionFile?i.sessionFile.split(/[/\\]/).pop()??i.sessionFile:j("desktop.sessionInfoInMemory")}),i.sessionFile?r("file",i.sessionFile):null]},"file")),o.push((0,n.jsxs)("div",{className:"session-stats-info-line",children:[(0,n.jsx)("span",{className:"session-stats-info-text",children:i.sessionId}),r("id",i.sessionId)]},"id"));let l=[[j("desktop.sessionInfoUser"),i.userMessages.toLocaleString()],[j("desktop.sessionInfoAssistant"),i.assistantMessages.toLocaleString()],[j("desktop.sessionInfoToolCalls"),i.toolCalls.toLocaleString()],[j("desktop.sessionInfoToolResults"),i.toolResults.toLocaleString()],[j("desktop.sessionInfoTotal"),i.totalMessages.toLocaleString()]],a=[[j("desktop.sessionInfoInput"),e.input.toLocaleString()],[j("desktop.sessionInfoOutput"),e.output.toLocaleString()]];e.cacheRead>0&&a.push([j("desktop.sessionInfoCacheRead"),e.cacheRead.toLocaleString()]),e.cacheWrite>0&&a.push([j("desktop.sessionInfoCacheWrite"),e.cacheWrite.toLocaleString()]),a.push([j("desktop.sessionInfoTotal"),e.total.toLocaleString()]);let d=i.costCNY??0,c=i.costUSD??0;if(d>0&&a.push([j("desktop.sessionInfoCostOfficial"),au(d)]),c>0&&a.push([j("desktop.sessionInfoCost"),`$${c.toFixed(4)}`]),d<=0&&c<=0&&i.cost>0&&a.push([j("desktop.sessionInfoCost"),`$${i.cost.toFixed(4)}`]),t?.contextWindow&&null!==t.percent){let e=t.percent,r=t.tokens;a.push([j("desktop.sessionInfoContext"),`${null!==e?`${e.toFixed(1)}%`:"?"} ${null!==r?ol(r):"?"}/${ol(t.contextWindow)}`])}(i.totalActiveMs??0)>0&&a.push([j("desktop.sessionInfoActiveTime"),function(e){if(e<=0)return"0s";let t=Math.floor(e/1e3),r=Math.floor(t/3600),n=Math.floor(t%3600/60),o=t%60;return r>0?`${r}h ${n}m`:n>0?`${n}m ${o}s`:`${o}s`}(i.totalActiveMs)]);let u=k?k.costCNY>0?au(k.costCNY):k.costUSD>0?`$${k.costUSD.toFixed(4)}`:null:null,p=(e,t)=>(0,n.jsxs)("div",{className:"session-stats-row",children:[(0,n.jsx)("div",{className:"session-stats-label",children:e}),(0,n.jsx)("div",{className:"session-stats-value",children:t})]},e);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"session-stats-info-block",children:o}),(0,n.jsxs)("div",{className:"session-stats-side-by-side",children:[(0,n.jsxs)("div",{className:"session-stats-column",children:[(0,n.jsx)("div",{className:"session-stats-section-title",children:j("desktop.sessionInfoMessages")}),(0,n.jsx)("div",{className:"session-stats-compact-grid",children:l.map(([e,t])=>p(e,t))})]}),(0,n.jsxs)("div",{className:"session-stats-column",children:[(0,n.jsx)("div",{className:"session-stats-section-title",children:j("desktop.sessionInfoTokens")}),(0,n.jsx)("div",{className:"session-stats-compact-grid",children:a.map(([e,t])=>p(e,t))})]}),k&&(0,n.jsxs)("div",{className:"session-stats-column",children:[(0,n.jsx)("div",{className:"session-stats-section-title",children:j("desktop.turnUsageTitle")}),(0,n.jsxs)("div",{className:"session-stats-compact-grid",children:[p(j("desktop.sessionInfoInput"),k.input.toLocaleString()),p(j("desktop.sessionInfoOutput"),k.output.toLocaleString()),k.cacheRead>0&&p(j("desktop.sessionInfoCacheRead"),k.cacheRead.toLocaleString()),u&&p(j("desktop.sessionInfoCost"),u)]})]})]})]})})()})})]})]})]})}var cO=r(68635);function cB(e){return Math.ceil(e.getBoundingClientRect().height)}function cU({scrollElementRef:e,items:t,itemKeys:r,estimateSize:i=120,overscan:s=8,virtualizerRef:l,headerHeight:a=0}){let d=(0,o.useRef)(null),c=(0,o.useRef)(r),[u,p]=(0,o.useState)(null);(0,o.useEffect)(()=>{p(e.current)},[e]);let h=(0,cO.Te)({count:t.length,getScrollElement:()=>u??e.current,estimateSize:(0,o.useCallback)(()=>i,[i]),overscan:s,getItemKey:(0,o.useCallback)(e=>r[e]??`idx-${e}`,[r]),scrollMargin:a,measureElement:(e,t,r)=>{let n=r.indexFromElement(e),o=e.getAttribute("data-item-key"),s=r.options.getItemKey(n),l=d.current;return l&&e.isConnected&&e.parentElement===l&&o===s&&o===c.current[n]&&l.getClientRects().length?cB(e):r.itemSizeCache.get(s)??i}});h.shouldAdjustScrollPositionOnItemSizeChange=()=>!1,l&&(l.current=h);let g=(0,o.useCallback)(()=>{let e=d.current;if(e)for(let{index:t,size:r}of function(e,t){if(!e.isConnected||0===e.getClientRects().length)return[];let r=[];for(let n of Array.from(e.children)){let e=Number(n.getAttribute("data-index"));n.isConnected&&Number.isInteger(e)&&!(e<0)&&!(e>=t.length)&&n.getAttribute("data-item-key")===t[e]&&r.push({index:e,size:cB(n)})}return r}(e,c.current))h.options.getItemKey(t)===c.current[t]&&h.resizeItem(t,r)},[h]);(0,o.useLayoutEffect)(()=>{c.current=r,g()},[r,t,g]),(0,o.useEffect)(()=>{let e=d.current;if(!e)return;let t=new MutationObserver(t=>{t.some(t=>"attributes"!==t.type||t.target!==e&&t.target.parentNode!==e)&&g()});t.observe(e,{childList:!0,characterData:!0,subtree:!0,attributes:!0,attributeFilter:["class","style","hidden","open","src","width","height"]});let r=()=>{"visible"===document.visibilityState&&g()};return document.addEventListener("visibilitychange",r),e.addEventListener("load",g,!0),()=>{t.disconnect(),document.removeEventListener("visibilitychange",r),e.removeEventListener("load",g,!0)}},[g]);let x=(0,o.useRef)(!1),f=(0,o.useRef)(h);f.current=h,(0,o.useEffect)(()=>{x.current||0===t.length||u&&(x.current=!0,f.current.scrollToIndex(t.length-1,{align:"end"}))},[t.length,u]);let m=h.getVirtualItems();return(0,n.jsx)("div",{ref:d,className:"virtualized-message-list",style:{position:"relative",width:"100%",minWidth:0,height:h.getTotalSize()},children:m.map(e=>(0,n.jsx)("div",{"data-index":e.index,"data-item-key":e.key,ref:h.measureElement,style:{position:"absolute",top:0,left:0,width:"100%",minWidth:0,overflow:"clip",transform:`translateY(${e.start-a}px)`},children:t[e.index]},e.key))})}function c_(e){return e.replace(/<\/?[\w:-]+\b[^>]*>/g," ").replace(/&lt;\/?[\w:-]+\b[^&]*?&gt;/gi," ").replace(/\s+/g," ").trim()}function cq(e){return"user"===e.role||"assistant"===e.role&&(e.content??[]).some(e=>"text"===e.type||"thinking"===e.type||"toolCall"===e.type)}function cK({messages:e,streamingMessage:t,scrollContainer:r,messageRefs:i,onWidthChange:s,virtualizer:l}){var a;let[d,c]=(0,o.useState)(0),[u,p]=(0,o.useState)(1),[h,g]=(0,o.useState)(!1),[x,f]=(0,o.useState)([]),[m,v]=(0,o.useState)(!1),[y,b]=(0,o.useState)(null),[k,j]=(0,o.useState)(0),w=(0,o.useRef)(!1),S=(0,o.useRef)(null),C=(0,o.useMemo)(()=>t?[...e,t]:e,[e,t]),z=(0,o.useRef)(C);z.current=C;let T=(0,o.useCallback)(()=>{let e=r.current;if(!e)return;let t=e.scrollHeight,n=e.clientHeight,o=t-n;g(o>20),o<=0?(c(0),p(1)):(c(e.scrollTop/o),p(n/t))},[r]),R=(0,o.useRef)(null),I=(0,o.useRef)([]),M=(0,o.useRef)(l);M.current=l;let E=(0,o.useCallback)(()=>{R.current||(R.current=setTimeout(()=>{R.current=null;let e=r.current;if(!e)return;let t=e.scrollHeight;if(t<=0)return;let n=[],o=z.current,s=M.current;if(s){if(0>=s.totalHeight())return;let e=0,r=new Set;for(let i=0;i<o.length;i++){let l=o[i];if("user"!==l.role&&"assistant"!==l.role)continue;let a=s.refToItemIndex(e);if(e+=1,void 0===a||r.has(a)||!cq(l))continue;r.add(a);let d=s.getOffsetForIndex(a),c=s.sizeFor(a);n.push({topRatio:d/t,heightRatio:Math.max(c/t,1/t),msg:l,index:n.length})}}else{let r=i.current,s=0;for(let i=0;i<o.length;i++){let l=o[i];if("user"!==l.role&&"assistant"!==l.role)continue;let a=r?.[s];if(s++,cq(l)&&a){let r=a.getBoundingClientRect(),o=e.getBoundingClientRect(),i=r.top-o.top+e.scrollTop,s=r.height;n.push({topRatio:i/t,heightRatio:s/t,msg:l,index:n.length})}}}let l=I.current;l.length===n.length&&n.every((e,t)=>1e-6>Math.abs(e.topRatio-l[t].topRatio)&&1e-6>Math.abs(e.heightRatio-l[t].heightRatio))||(I.current=n,f(n))},150))},[r,i]);(0,o.useEffect)(()=>{let e=r.current;if(e)return e.addEventListener("scroll",T,{passive:!0}),()=>e.removeEventListener("scroll",T)},[r,T]),(0,o.useEffect)(()=>{let e=r.current;if(!e)return;let t=()=>{T(),E()},n=new ResizeObserver(t);return n.observe(e),e.firstElementChild&&n.observe(e.firstElementChild),t(),()=>{n.disconnect(),R.current&&(clearTimeout(R.current),R.current=null)}},[r,E,T]),(0,o.useEffect)(()=>{let e=setTimeout(()=>{T(),E()},50);return()=>clearTimeout(e)},[e.length,E,T]);let $=(0,o.useCallback)(e=>{let t=r.current;if(!t)return;let n=t.scrollHeight-t.clientHeight;n<=0||(t.scrollTop=Math.max(0,Math.min(1-u,e))/(1-u)*n)},[r,u]),W=(0,o.useCallback)(e=>{if(!h)return;w.current=!0;let t=e.currentTarget.getBoundingClientRect(),r=(e.clientY-t.top)/t.height,n=r-d*(1-u),o=n>=0&&n<=u?n:u/2;$(r-o);let i=e=>{w.current&&$((e.clientY-t.top)/t.height-o)},s=()=>{w.current=!1,window.removeEventListener("mousemove",i),window.removeEventListener("mouseup",s)};window.addEventListener("mousemove",i),window.addEventListener("mouseup",s)},[h,u,d,$]);(0,o.useEffect)(()=>{if(!h)return void j(0);let e=S.current;if(!e)return;let t=()=>j(e.clientHeight),r=new ResizeObserver(t);return r.observe(e),t(),()=>r.disconnect()},[h]);let L=(0,o.useMemo)(()=>{if(k<=0)return[];let e=[];return x.map(t=>{let r=t.topRatio*k,n=Math.max(3,Math.min(46,t.heightRatio*k)),o=Math.max(0,r-n/2),i=Math.min(k,r+n/2),s=e.findIndex(e=>o>=e+1);return -1===s?(s=e.length,e.push(i)):e[s]=i,{...t,displayTopPx:r,lane:s}})},[x,k]),N=Math.max(18,4+5*(a=(0,o.useMemo)(()=>L.reduce((e,t)=>Math.max(e,t.lane+1),1),[L]))+(a-1)*1);if((0,o.useEffect)(()=>{s?.(h?N:18)},[N,s,h]),(0,o.useEffect)(()=>()=>s?.(18),[s]),!h)return null;let A=d*(1-u)*100,P=100*u,F=null!==y&&L.length>0?L.reduce((e,t)=>Math.abs(t.displayTopPx/k-y)<Math.abs(L[e].displayTopPx/k-y)?t.index:e,0):null,D=null===F?null:L.find(e=>e.index===F)??null;return(0,n.jsxs)("div",{ref:S,onMouseDown:W,onMouseEnter:()=>v(!0),onMouseLeave:()=>{v(!1),b(null)},onMouseMove:e=>{let t=e.currentTarget.getBoundingClientRect();b((e.clientY-t.top)/t.height)},style:{width:N,flexShrink:0,position:"relative",cursor:"pointer",userSelect:"none",background:"transparent",overflow:"visible"},children:[(0,n.jsx)("div",{style:{position:"absolute",left:1,right:1,top:`${A}%`,height:`${P}%`,background:"color-mix(in srgb, var(--text-muted) 14%, transparent)",pointerEvents:"none",zIndex:1}}),L.map(e=>{let t=function(e){if("user"===e.role)return"var(--accent)";let t=e.content??[];return t.some(e=>"toolCall"===e.type&&e.error)?"var(--accent-red)":t.some(e=>"toolCall"===e.type)?"var(--accent-green)":"var(--text-dim)"}(e.msg),r=m&&D?.index===e.index,o="user"===e.msg.role,i=Math.max(3,Math.min(46,e.heightRatio*k)),s=2+6*e.lane;return(0,n.jsx)("div",{style:{position:"absolute",top:e.displayTopPx,transform:"translateY(-50%)",left:s,width:5,height:i,display:"flex",alignItems:"stretch",cursor:"pointer",zIndex:function(e){if("user"===e.role)return 6;let t=e.content??[];return t.some(e=>"toolCall"===e.type&&e.error)?5:t.some(e=>"text"===e.type&&!!e.text?.trim())?4:t.some(e=>"toolCall"===e.type)?3:2}(e.msg)},children:(0,n.jsx)("div",{style:{width:"100%",height:"100%",borderRadius:1,background:t,opacity:r?1:o?.92:.72,transition:"opacity 0.1s, filter 0.1s",filter:r?"brightness(1.2)":"none"}})},e.index)}),m&&D&&(()=>{let e=function(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 c_(r).slice(0,200);let n=t.filter(e=>"thinking"===e.type).map(e=>c_(e.thinking??"")).filter(Boolean).join(" ");if(n)return n.slice(0,200);let o=t.filter(e=>"toolCall"===e.type).map(e=>e.toolName);if(o.length)return o.join(", ")}return""}(D.msg);if(!e)return null;let t=function(e){if("user"===e.role)return"var(--minimap-preview-user-bg)";let t=e.content??[];return t.some(e=>"toolCall"===e.type&&e.error)?"var(--minimap-preview-error-bg)":t.some(e=>"toolCall"===e.type)?"var(--minimap-preview-tool-bg)":"var(--minimap-preview-default-bg)"}(D.msg),r=Math.max(1,Math.min(5,Math.floor(k/120))),o=15*r+4,i=Math.max(o/2,Math.min(k-o/2,D.displayTopPx));return(0,n.jsx)("div",{style:{position:"absolute",top:i,transform:"translateY(-50%)",right:"100%",marginRight:6,background:t,border:"none",borderRadius:4,padding:"2px 7px",width:220,zIndex:100,pointerEvents:"none"},children:(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text)",lineHeight:"15px",display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:r,overflow:"hidden",overflowWrap:"anywhere"},children:e})})})()]})}function cV(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function cJ(e){return function(e,t={}){if("assistant"!==e.role)return e;let r=e.content;if(!Array.isArray(r))return e;let n=r.map(e=>(function(e,t={}){if(!cV(e)||"toolCall"!==e.type)return null;let r={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},n=t.includeStreamingRawInput?function(e){if("string"==typeof e.rawInput)return e.rawInput;if("string"==typeof e.partialJson)return e.partialJson;if("string"==typeof e.partialArgs)return e.partialArgs;let t=cV(e.customInput)?e.customInput:null,r=t&&"string"==typeof t.property?t.property:null,n=cV(e.arguments)?e.arguments:null;return r&&n&&"string"==typeof n[r]?n[r]:void 0}(e):void 0;return void 0===n?r:{...r,rawInput:n}})(e,t)??e);return{...e,content:n}}(e)}var cY=r(14755);function cG(e){if(!e)return 0;let t=0;for(let r of e){let e=r.codePointAt(0)??0;e>=19968&&e<=40959||e>=13312&&e<=19903||e>=131072&&e<=173791||e>=12352&&e<=12447||e>=12448&&e<=12543||e>=44032&&e<=55215?t+=1:t+=.25}return Math.max(0,Math.round(t))}function cX(){return"u">typeof performance?performance.now():Date.now()}function cZ(){return globalThis.__piSessionViewCache||(globalThis.__piSessionViewCache=new Map),globalThis.__piSessionViewCache}function cQ(e){var t;return("message_start"===e.type||"message_end"===e.type)&&"object"==typeof(t=e.message)&&null!==t&&!Array.isArray(t)&&"system"===e.message.role}function c0(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function c1(e,t,r,n=8){return e+t>=r-n}function c2(e,t){switch(t.type){case"start":return{isStreaming:!0,streamingMessage:null};case"resume":return{...e,isStreaming:!0};case"update":return{isStreaming:!0,streamingMessage:t.message};case"end":case"reset":return{isStreaming:!1,streamingMessage:null};default:return e}}function c6(e){return e?"running_command"===e.phase||e.isBashRunning?{kind:"running_command"}:"waiting_model"===e.phase||e.isStreaming||e.isPromptRunning||e.isCompacting?{kind:"waiting_model"}:null:null}function c4(e,t){return e.length===t.length&&e.every((e,r)=>e===t[r])}function c5(e){return{steering:e?.steering??[],followUp:e?.followUp??[]}}function c3(e){return e&&"auto"!==e?e:null}let c8=["You are in PLAN MODE.","<economy-profile>","<delivery-profile>","<goal-profile>"],c7=new Set(["ArrowUp","ArrowDown","PageUp","PageDown","Home","End"," ","Space","Spacebar"]);class c9 extends Error{constructor(e){super("timeout"===e?"Timed out connecting to the agent event stream. Please try again.":"Failed to connect to the agent event stream. Please try again."),this.status=e,this.name="EventStreamConnectionError"}}function ue(e){return new Promise(t=>setTimeout(t,e))}function ut(e){let t=e.findIndex(e=>!e.exiting);return -1===t?e:e.map((e,r)=>r===t?{...e,exiting:!0}:e)}function ur(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:ut(e.visible),pending:[...e.pending,t.notice]};return{...e,visible:[...e.visible,t.notice]};case"mark_oldest_exiting":return{...e,visible:ut(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=ut(r)),{visible:r,pending:n}}(e.visible.filter(e=>e.id!==t.id),e.pending);default:return e}}function un(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 uo(e){let t,r=e.content;return"string"==typeof r?JSON.stringify({text:r,images:[]}):Array.isArray(r)?JSON.stringify({text:"string"==typeof(t=e.content)?t:Array.isArray(t)?t.map(e=>e&&"object"==typeof e&&"text"===e.type&&"string"==typeof e.text?e.text:"").filter(Boolean).join("\n"):"",images:r.map(un).filter(Boolean)}):JSON.stringify({text:"",images:[]})}function ui(e,t){return e&&"object"==typeof e?"number"!=typeof e.tokensBefore||"number"!=typeof e.estimatedTokensAfter?null:{reason:t,tokensBefore:e.tokensBefore,estimatedTokensAfter:e.estimatedTokensAfter}:null}let us="pi-web:modes-global-default",ul="pi:open-tasks-view";function ua({session:e,newSessionCwd:t,onAgentEnd:i,onSessionCreated:s,onSessionForked:l,modelsRefreshKey:d,chatInputRef:c,onBranchDataChange:u,onSystemPromptChange:p,onSessionStatsChange:h,onSessionStatsPanelOpen:g,onContextUsageChange:x,onOpenFile:f,onWorkspaceControlsHostChange:m,onViewFullHistory:v,systemPrompt:y,tasksBoardEnabled:b,onOpenSession:k,onOpenSubagent:j,subagentRuns:w}){var S;let C,{soundEnabled:z,onSoundToggle:T,playDoneSound:R,unlockAudio:I}=function(){let[e,t]=(0,o.useState)(()=>{let e=localStorage.getItem("pi-sound-enabled");return null===e||"true"===e}),r=(0,o.useRef)(e);(0,o.useEffect)(()=>{r.current=e},[e]);let n=(0,o.useRef)(null),i=(0,o.useCallback)(()=>{if(n.current&&"closed"!==n.current.state)return n.current;try{n.current=new AudioContext}catch{return null}return n.current},[]),s=(0,o.useCallback)((e=!1)=>{if(!e&&!r.current)return;let t=i();t&&"suspended"===t.state&&t.resume().catch(()=>{})},[i]);return{soundEnabled:e,onSoundToggle:(0,o.useCallback)(()=>{let e=!r.current;e&&s(!0),r.current=e,localStorage.setItem("pi-sound-enabled",String(e)),t(e)},[s]),playDoneSound:(0,o.useCallback)(()=>{if(!r.current)return;let e=i();if(!e)return;let t=()=>{try{let t;t=e.currentTime,[523.25,659.25].forEach((r,n)=>{let o=e.createOscillator(),i=e.createGain();o.connect(i),i.connect(e.destination),o.type="sine",o.frequency.value=r;let s=t+.18*n;i.gain.setValueAtTime(0,s),i.gain.linearRampToValueAtTime(.18,s+.02),i.gain.exponentialRampToValueAtTime(.001,s+.45),o.start(s),o.stop(s+.45)})}catch{}};"suspended"===e.state?e.resume().then(t).catch(()=>{}):t()},[i]),unlockAudio:s,soundEnabledRef:r}}(),M=tp(),{t:E}=(0,Y.s)(),$=(0,o.useRef)(R);$.current=R;let W=(0,o.useRef)(z);W.current=z;let L=(0,o.useRef)(null),N=(0,o.useCallback)(()=>{W.current&&$.current(),i?.()},[i]),A=(0,o.useCallback)(e=>{let t=e;if("string"==typeof e.content){let r=te(e.content);r&&(t={...e,content:r})}c?.current?.replaceMessage(t)},[c]),P=(0,o.useCallback)(e=>{c?.current?.prependText(e)},[c]),F=(0,o.useCallback)((e,t)=>{aG={text:e,projectRoot:t??null},window.dispatchEvent(new CustomEvent(aY)),window.dispatchEvent(new Event(ul))},[]),{loading:D,error:H,messages:O,activeToolResults:B,entryIds:U,streamState:_,agentRunning:q,bashRunning:K,pendingBash:V,modelNames:J,modelList:G,modelThinkingLevels:X,modelThinkingLevelMaps:Z,modelScopeWarnings:Q,modelsError:ee,reloadModels:et,toolPreset:er,thinkingLevel:en,isAutoThinkingSelection:eo,retryInfo:ei,contextUsage:es,forkingEntryId:el,isCompacting:ea,compactError:ed,compactResult:ec,displayModel:eu,sessionStats:ep,tokenRate:eh,slashCommands:eg,slashCommandsLoading:ex,queuedMessages:ef,pendingRecovery:em,recoveryIsImport:ev,notices:ey,extensionDialog:eb,extensionCustomUi:ek,extensionStatuses:ej,extensionWidgets:ew,respondToExtensionUi:eS,sendExtensionCustomInput:eC,agentPhase:ez,isNew:eT,branchTree:eR,activeLeafId:eI,handleLeafChange:eM,sessionIdRef:eE,messagesEndRef:e$,scrollContainerRef:eW,lastUserMsgRef:eL,pendingScrollToUserRef:eN,initialScrollDoneRef:eA,scrollUserMsgToTop:eP,handleSend:eF,executeBash:eD,handleAbort:eH,handleFork:eO,handleNavigate:eB,handleModelChange:eU,handleCompact:e_,handleSteer:eq,handleFollowUp:eK,handlePromptWithStreamingBehavior:eV,handleAbortCompaction:eJ,handleRecallQueue:eY,resolveRecovery:eG,exportQueueData:eX,stageQueueImport:eZ,moveQueuedMessage:tt,recallQueuedMessage:tr,requeueAt:tn,removeQueuedMessage:to,handleBuiltinSlashCommand:ti,handleToolPresetChange:ts,handleThinkingLevelChange:tl,loadSlashCommands:ta,planMode:td,collaborationMode:tc,toolApprovalMode:tu,handleCollaborationModeChange:th,handleToolApprovalModeChange:tg,approvalRequests:tx,resolveApproval:tf,goalState:tm,handleGoalStart:tv,handleGoalPause:ty,handleGoalResume:tb,handleGoalStop:tk,handleGoalEdit:tj,historyCursor:tw,hasEarlierMessages:tS,loadContext:tC}=function(e){let{session:t,newSessionCwd:n,onAgentEnd:i,onSessionCreated:s,onSessionForked:l,modelsRefreshKey:a,onBranchDataChange:d,onSystemPromptChange:c,onSessionStatsPanelOpen:u}=e,p=null===t&&null!==n,h=`${t?.id??"new"}\0${n??t?.cwd??""}`,[g,x]=(0,o.useState)(null),f=(0,o.useRef)(null),m=(0,o.useRef)(0),v=(0,o.useRef)(null),[y,b]=(0,o.useState)(!p),[k,j]=(0,o.useState)(null),[w,S]=(0,o.useState)(null),[C,z]=(0,o.useState)([]),[T,R]=(0,o.useState)(new Map),[I,M]=(0,o.useState)([]),[E,$]=(0,o.useState)(null),[W,L]=(0,o.useState)(!1),[N,A]=(0,o.useReducer)(c2,{isStreaming:!1,streamingMessage:null}),P=(0,o.useRef)(!1);P.current=N.isStreaming;let[F,D]=(0,o.useState)(null),H=(0,o.useRef)({lastChars:0,window:[]}),O=(0,o.useCallback)(()=>{H.current={lastChars:0,window:[]},D(null)},[]),B=(0,o.useCallback)(e=>{if(!e||"assistant"!==e.role)return 0;let t=e.content;if(!Array.isArray(t))return 0;let r=0;for(let e of t)"string"==typeof e?r+=cG(e):e&&"object"==typeof e&&("string"==typeof e.text?r+=cG(e.text):"string"==typeof e.thinking&&(r+=cG(e.thinking)));return r},[]),U=(0,o.useCallback)(e=>{let t=B(e),r=H.current;if(t===r.lastChars)return;let n=Date.now(),o=Math.max(0,t-r.lastChars);r.lastChars=t,r.window.push({at:n,chars:o});let i=n-1e3;for(;r.window.length>0&&r.window[0].at<i;)r.window.shift();let s=r.window.reduce((e,t)=>e+t.chars,0),l=r.window.length>0?n-r.window[0].at:0;l<200||D(Math.max(0,Math.round(s/Math.max(1,l)*1e4)/10))},[B]),[_,q]=(0,o.useState)(!1),[K,V]=(0,o.useState)(!1),[J,Y]=(0,o.useState)(null),[G,X]=(0,o.useState)({}),[Z,Q]=(0,o.useState)([]),[ee,et]=(0,o.useState)({}),[er,en]=(0,o.useState)({}),[eo,ei]=(0,o.useState)([]),[es,el]=(0,o.useState)(null),[ea,ed]=(0,o.useState)(null),[ec,eu]=(0,o.useState)(null),[ep,eh]=(0,o.useState)(cY.Q8),eg=(0,o.useRef)("default"),ex=(0,o.useRef)(!1),[ef,em]=(0,o.useState)(()=>(function(){try{let e=window.localStorage.getItem(us);if(!e)return null;let t=JSON.parse(e),r=t.permissionRules;return{collaborationMode:e2(t.collaborationMode),tokenMode:e6(t.tokenMode),toolApprovalMode:e4(t.toolApprovalMode),permissionRules:{allow:Array.isArray(r?.allow)?r.allow:[],ask:Array.isArray(r?.ask)?r.ask:[],deny:Array.isArray(r?.deny)?r.deny:[]}}}catch{return null}})()??{collaborationMode:eQ,tokenMode:e0,toolApprovalMode:e1,permissionRules:{allow:[],ask:[],deny:[]}}),ev=(0,o.useRef)(null),ey=(0,o.useRef)(!1),eb=(0,o.useRef)(t?.id??null);eb.current=t?.id??null,(0,o.useEffect)(()=>{let e=!1,t=async()=>{let t=eb.current,r=t?`?session=${encodeURIComponent(t)}`:"";try{let n=await fetch(`/api/modes${r}`);if(!n.ok||e)return;let o=await n.json();if(e)return;let i={collaborationMode:e2(o.collaborationMode),tokenMode:e6(o.tokenMode),toolApprovalMode:e4(o.toolApprovalMode),permissionRules:{allow:Array.isArray(o.permissionRules?.allow)?o.permissionRules.allow:[],ask:Array.isArray(o.permissionRules?.ask)?o.permissionRules.ask:[],deny:Array.isArray(o.permissionRules?.deny)?o.permissionRules.deny:[]}};if(!ey.current&&t&&"plan"===i.collaborationMode){let r=await fetch("/api/modes").catch(()=>null);if(!e&&r?.ok){let n=await r.json().catch(()=>null);if(!e&&n){let e=i.collaborationMode;(i={...i,collaborationMode:e2(n.collaborationMode)}).collaborationMode!==e&&fetch(`/api/modes?session=${encodeURIComponent(t)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)}).catch(()=>{})}}}ey.current=!0,em(i),t||function(e){try{window.localStorage.setItem(us,JSON.stringify(e))}catch{}}(i)}catch{}};t();let r=()=>void t();return window.addEventListener("pi:modes-changed",r),()=>{e=!0,ey.current=!1,window.removeEventListener("pi:modes-changed",r)}},[t?.id]);let ek=ef.collaborationMode,ej=ef.tokenMode,ew=ef.toolApprovalMode,eS=ef.permissionRules,eC="plan"===ek;(0,o.useEffect)(()=>{ex.current=eC},[eC]);let ez=(0,o.useRef)(ek),eT=(0,o.useRef)(ej),eR=(0,o.useRef)(ew),eI=(0,o.useRef)(ef.permissionRules),eM=(0,o.useRef)(null),eE=(0,o.useRef)({sessionKey:"",signature:""}),e$=(0,o.useRef)(ef);(0,o.useEffect)(()=>{e$.current=ef},[ef]),(0,o.useEffect)(()=>{eR.current=ew},[ew]),(0,o.useEffect)(()=>{eI.current=ef.permissionRules},[ef.permissionRules]),(0,o.useEffect)(()=>{ez.current=ek,eE.current={sessionKey:"",signature:""}},[ek]),(0,o.useEffect)(()=>{eT.current=ej,eE.current={sessionKey:"",signature:""}},[ej]);let[eW,eL]=(0,o.useState)([]),eN=(0,o.useRef)([]);(0,o.useEffect)(()=>{eN.current=eW},[eW]);let[eA,eP]=(0,o.useState)({status:"idle",goalText:null,turnsUsed:0,turnsLimit:10,noProgressTurns:0,noProgressLimit:4,tokensUsed:0,tokenBudget:null,timeUsedSeconds:0}),eF=(0,o.useRef)(eA);(0,o.useEffect)(()=>{eF.current=eA},[eA]);let[eD,eH]=(0,o.useState)(!0),eO=(0,o.useRef)(!1),[eB,eU]=(0,o.useState)("auto"),[e_,eq]=(0,o.useState)(null),[eK,eV]=(0,o.useState)(null),[eJ,eY]=(0,o.useState)(null),[eG,eX]=(0,o.useState)(null),[eZ,tt]=(0,o.useState)(null),[tr,tn]=(0,o.useState)(null),[to,ti]=(0,o.useState)(null),ts=(0,o.useCallback)(e=>{let t=e?.model;t&&"string"==typeof t.provider&&"string"==typeof t.modelId&&ti({provider:t.provider,modelId:t.modelId}),e?.thinkingLevel!==void 0&&eq(c3(e.thinkingLevel))},[]),[tl,ta]=(0,o.useState)(null),[td,tc]=(0,o.useState)(!1),[tu,tp]=(0,o.useState)(null),[th,tg]=(0,o.useState)(null),[tx,tf]=(0,o.useState)(null),[tm,tv]=(0,o.useState)(!1),[ty,tb]=(0,o.useState)(!1),[tk,tj]=(0,o.useState)([]),[tw,tS]=(0,o.useState)(!1),[tC,tz]=(0,o.useReducer)(ur,{visible:[],pending:[]}),[tT,tI]=(0,o.useState)(null),[tM,t$]=(0,o.useState)(null),[tW,tL]=(0,o.useState)(null),[tN,tA]=(0,o.useState)([]),[tP,tF]=(0,o.useState)([]),[tD,tH]=(0,o.useState)({steering:[],followUp:[]}),tO=(0,o.useCallback)(e=>{tH(t=>{let r="function"==typeof e?e(t):e;return c4(t.steering,r.steering)&&c4(t.followUp,r.followUp)?t:r})},[]),[tB,tU]=(0,o.useState)([]),t_=(0,o.useCallback)(e=>{tU(t=>{let r="function"==typeof e?e(t):e;return t.length===r.length&&t.every((e,t)=>{let n=r[t];return e.id===n.id&&e.kind===n.kind&&e.text===n.text&&e.hasImages===n.hasImages})?t:r})},[]),[tq,tK]=(0,o.useState)(!1),tV=(0,o.useRef)(null),tJ=(0,o.useCallback)(()=>{tV.current&&clearTimeout(tV.current),tV.current=setTimeout(async()=>{tV.current=null;let e=t6.current;if(e)try{let t=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(!t.ok)return;let r=await t.json();r.state?.queuedMessages!==void 0&&tO(c5(r.state.queuedMessages))}catch{}},8e3)},[tO]),tY=(0,o.useCallback)(()=>{tV.current&&(clearTimeout(tV.current),tV.current=null)},[]),tG=(0,o.useRef)(null),tX=(0,o.useRef)(null),tZ=(0,o.useRef)(null),tQ=(0,o.useRef)(null),t0=(0,o.useRef)(0),t1=(0,o.useRef)(!1),t2=(0,o.useRef)(0),t6=(0,o.useRef)(t?.id??null),t4=(0,o.useRef)(!0),t5=(0,o.useRef)({}),t3=(0,o.useRef)("off"),[t8,t7]=(0,o.useState)(null),t9=(0,o.useRef)(0),re=(0,o.useRef)(t?.id??null);re.current=t?.id??null;let rt=(0,o.useRef)(!1),rr=(0,o.useRef)(!1),rn=(0,o.useRef)(!1),ro=(0,o.useRef)(!1),ri=(0,o.useRef)(-1),rs=(0,o.useRef)(!0),rl=(0,o.useRef)(!1),ra=(0,o.useRef)(!1),rd=(0,o.useRef)(0),rc=(0,o.useRef)(!1),ru=(0,o.useRef)(null),rp=(0,o.useRef)(!1),rh=(0,o.useRef)(null),rg=(0,o.useRef)(!1),rx=(0,o.useRef)(!0),rf=(0,o.useRef)(!0),rm=(0,o.useRef)(0),rv=(0,o.useRef)(0),ry=(0,o.useRef)(null),rb=(0,o.useRef)(null),rk=(0,o.useRef)(null),rj=(0,o.useRef)(!1),rw=(0,o.useRef)(0),rS=(0,o.useRef)(null),rC=(0,o.useRef)(0),rz=(0,o.useRef)(0),rT=(0,o.useRef)(null),rR=(0,o.useRef)(h);rR.current=h;let rI=(0,o.useRef)(null),rM=(0,o.useRef)(null),rE=(0,o.useRef)(null);rE.current||(rE.current=function(e,t={}){let r,n=1e3/Math.max(1,t.maxUpdatesPerSecond??30),o=t.now??cX,i=t.requestFrame??("function"==typeof requestAnimationFrame?requestAnimationFrame:void 0),s=t.cancelFrame??("function"==typeof cancelAnimationFrame?cancelAnimationFrame:void 0),l=t.setTimer??setTimeout,a=t.clearTimer??clearTimeout,d=!1,c=!1,u=null,p=null,h=null,g=()=>{null!==u&&(s?.(u),u=null),null!==p&&(a(p),p=null)},x=(t,n)=>{if(!c||d)return;let o=r;c=!1,r=void 0,h=t;let i=()=>{d||e(o)};n&&"function"==typeof queueMicrotask?queueMicrotask(i):i()},f=()=>{if(!d&&c&&null===u&&null===p){if(!i){let e=null===h?n:o()-h;p=l(()=>{p=null,x(o(),!0),f()},Math.max(0,n-e));return}u=i(e=>{if(u=null,d||!c)return;let t=null===h?n:e-h;if(t<n){p=l(()=>{p=null,f()},n-t);return}x(e,!0),f()})}};return{enqueue(e){d||(r=e,c=!0,f())},flush(){!d&&c&&(g(),x(o(),!1),f())},reset(){g(),c=!1,r=void 0,h=null},destroy(){d||(d=!0,g(),c=!1,r=void 0)}}}(e=>{A({type:"update",message:e})}));let r$=(0,o.useCallback)(()=>{rE.current?.reset()},[]),rW=(0,o.useCallback)(e=>{rE.current?.enqueue(e)},[]),rL=e.setToolPreset??eh,rN=g?.context.model,rA=rN&&rN.provider&&rN.modelId?rN:null,rP=tr??rA??tl??null,rF=p?ea??ec:rP??(g?.context.messages.length===0?ec:null),rD=c3(g?.context.thinkingLevel&&"off"!==g.context.thinkingLevel?g.context.thinkingLevel:null),rH=rM.current,rO=p?rH??t8:e_??rD??(g?.context.messages.length===0?t8:null),rB=(0,o.useMemo)(()=>{if(tT)return{...tT,totalActiveMs:g?.totalActiveMs};if(t&&g&&void 0===g.stats)return null;let e={input:0,output:0,cacheRead:0,cacheWrite:0,total:0},r=0,n=0,o=0,i=0,s=0,l=0,a=0;for(let t of C){if("user"===t.role&&(i+=1),"toolResult"===t.role&&(l+=1),"assistant"!==t.role)continue;s+=1;let d=t.usage;if(a+=t.content.filter(e=>"toolCall"===e.type).length,!d)continue;e.input+=d.input??0,e.output+=d.output??0,e.cacheRead+=d.cacheRead??0,e.cacheWrite+=d.cacheWrite??0;let c=d.cost?.total??0;r+=c,ad(t.model)?n+=ac(t.model,d):o+=c}let d=g?.stats;return(d&&(e.input=Math.max(e.input,d.tokens.input),e.output=Math.max(e.output,d.tokens.output),e.cacheRead=Math.max(e.cacheRead,d.tokens.cacheRead),e.cacheWrite=Math.max(e.cacheWrite,d.tokens.cacheWrite),o=Math.max(o,d.cost),i=Math.max(i,d.userMessages),s=Math.max(s,d.assistantMessages),l=Math.max(l,d.toolResults),a=Math.max(a,d.toolCalls)),e.total=e.input+e.output+e.cacheRead+e.cacheWrite,0!==e.total||0!==C.length||d)?{sessionFile:g?.filePath||void 0,sessionId:t6.current??t?.id??"",sessionName:t?.name,userMessages:i,assistantMessages:s,toolCalls:a,toolResults:l,totalMessages:d?Math.max(C.length,d.totalMessages):C.length,tokens:e,cost:r,costCNY:n,costUSD:o,totalActiveMs:g?.totalActiveMs,...eJ?{contextUsage:eJ}:{}}:null},[C,tT,eJ,g?.filePath,g?.totalActiveMs,g?.stats,t?.id,t?.name]),rU=(0,o.useCallback)(async(e,t=!1,r=!1,n)=>{let o=m.current,i=!1;try{let s;t&&b(!0),f.current?.abort(),o=m.current+1,m.current=o;let l=new AbortController;f.current=l;let a=new URLSearchParams({deferThinking:"1",deferMedia:"1",view:"initial"});n?.force&&a.set("force","1");let d=async()=>{let t=new AbortController,r=setTimeout(()=>t.abort(),3e4),n=()=>t.abort();l.signal.addEventListener("abort",n,{once:!0});try{return await fetch(`/api/sessions/${encodeURIComponent(e)}?${a}`,{signal:t.signal})}finally{clearTimeout(r),l.signal.removeEventListener("abort",n)}};try{s=await d()}catch(e){if(!(e instanceof DOMException&&"AbortError"===e.name))throw e;if(l.signal.aborted)return null;s=await d()}if(404===s.status)return t&&(r1.current+=1,x(null),S(null),z([]),M([]),$(null),L(!1),j(null)),cZ().delete(e),null;if(!s.ok)throw Error(`HTTP ${s.status}`);let c=await s.json();if(t6.current!==e||m.current!==o)return null;x(c),v.current?.abort();let u=new AbortController;if(v.current=u,fetch(`/api/sessions/${encodeURIComponent(e)}/details`,{signal:u.signal}).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);return await e.json()}).then(t=>{t6.current!==e||m.current!==o||u.signal.aborted||x(r=>r?.sessionId===e?{...r,...t}:r)}).catch(e=>{"AbortError"!==e.name&&console.warn("Failed to load session details",e)}),S(c.leafId),z(c.context.messages),M(c.context.entryIds??[]),rr.current||(rv.current=Date.now()+700),r1.current+=1,$(c.context.oldestEntryId),L(c.context.hasMore),tn(e=>e?c.context.model&&e.provider===c.context.model.provider&&e.modelId===c.context.model.modelId?null:e:null),rt.current=void 0!==c.toolNames,rL(void 0!==c.toolNames?(0,cY.YO)(c.toolNames):cY.Q8),j(null),c.wrapperRebuilt&&(rY(),rG(e)),!r&&c.context.thinkingLevel&&"off"!==c.context.thinkingLevel&&eq(c3(c.context.thinkingLevel)),i=!0,t&&b(!1),!r)return null;try{let t,r=new AbortController,n=setTimeout(()=>r.abort(),2e4);try{t=await fetch(`/api/sessions/${encodeURIComponent(e)}/state`,{signal:r.signal})}finally{clearTimeout(n)}if(!t.ok)throw Error(`HTTP ${t.status}`);let i=await t.json();if(t6.current!==e||m.current!==o)return null;let s=i.state;if(ts(s),s){if(void 0!==s.contextUsage&&eY(s.contextUsage??null),void 0!==s.systemPrompt&&eX(s.systemPrompt??null),void 0!==s.extensionStatuses&&tA(s.extensionStatuses??[]),void 0!==s.extensionWidgets&&tF(s.extensionWidgets??[]),void 0!==s.queuedMessages&&tO(c5(s.queuedMessages)),void 0!==s.pendingRecovery&&t_(s.pendingRecovery??[]),void 0!==s.autoCompactionEnabled&&eH(s.autoCompactionEnabled??!0),void 0!==s.goalState){let e=s.goalState;e&&(eF.current=e,eP(e))}}else i.running||tO({steering:[],followUp:[]});return i}catch(e){return console.error("Failed to load agent state:",e),null}}catch(t){let e=t instanceof DOMException&&"AbortError"===t.name;if(i)return console.warn("Failed to load auxiliary session state",t),null;return j(e?"Timed out loading this conversation. Please try again.":String(t)),null}finally{t&&!i&&m.current===o&&b(!1)}},[t_,tO,rL]);(0,o.useEffect)(()=>{if(!t||!y)return;let e=window.setTimeout(()=>{rs.current&&t6.current&&y&&(f.current?.abort(),v.current?.abort(),b(!1),j("Timed out loading this conversation. Please try again."))},35e3);return()=>window.clearTimeout(e)},[y,t]);let r_=(0,o.useCallback)(async e=>{try{let t=await tE(e,{type:"get_tools"});if(!t||!t4.current||t6.current!==e)return null;let{getPresetFromTools:n}=await Promise.resolve().then(r.bind(r,14755)),o=n(t);return rt.current&&"plan"===o&&!ex.current?(await tE(e,{type:"set_tools",toolNames:(0,cY.xG)("default")}).catch(()=>{}),rL("default")):rL(rt.current?o:cY.Q8),t}catch(e){console.error("Failed to load tools:",e)}},[rL]),rq=(0,o.useCallback)((e=0,t="(no messages)")=>{let r=t6.current;p&&n&&r&&!rj.current&&(rj.current=!0,s?.({id:r,path:"",cwd:n,name:void 0,created:new Date().toISOString(),modified:new Date().toISOString(),messageCount:e,firstMessage:t}))},[p,n,s]),rK=(0,o.useCallback)(async()=>{if(t6.current||!p||!n)return t6.current;if(rk.current)return rk.current;let e=(async()=>{let e,t=rI.current,r=rM.current;t&&ta(t);let o=(0,cY.xG)(ep);rt.current=void 0!==o;let i=new AbortController,s=setTimeout(()=>i.abort(),3e4);try{e=await fetch("/api/agent/new",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:n,type:"ensure_session",...void 0!==o?{toolNames:o}:{},...t?{provider:t.provider,modelId:t.modelId}:{},...r?{thinkingLevel:r}:{}}),signal:i.signal})}catch(e){if(i.signal.aborted)throw Error("Timed out creating a new session after 30s. The agent service may still be starting up — please try again.");throw e}finally{clearTimeout(s)}if(!e.ok){let t=await e.json().catch(()=>null);throw Error(t?.error??`HTTP ${e.status}`)}let l=await e.json();t6.current=l.sessionId;let a=ev.current;return a&&(ev.current=null,fetch(`/api/modes?session=${encodeURIComponent(l.sessionId)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}).catch(e=>{console.error("Failed to persist pending mode settings:",e)})),l.model&&rI.current===t&&(ta(l.model),t||eu(l.model)),l.thinkingLevel&&rM.current===r&&(eU(l.thinkingLevel),eq(c3(l.thinkingLevel))),l.sessionId})();rk.current=e;try{return await e}finally{rk.current=null}},[p,n,ep]);(0,o.useCallback)(async()=>{let e=t6.current??await rK();if(!e)return;let[t]=await Promise.all([tE(e,{type:"get_state"}),r_(e)]);t4.current&&t6.current===e&&(ts(t),eX(t.systemPrompt??""))},[rK,r_,ts]);let rV=(0,o.useCallback)(async()=>{let e=t6.current??await rK();if(!e)return tj([]),[];tS(!0);try{let t=await tE(e,{type:"get_commands"}),r=t?.commands??[];return tj(r),r}catch(e){return console.error("Failed to load slash commands:",e),tj([]),[]}finally{tS(!1)}},[rK]),rJ=(0,o.useCallback)(()=>{t0.current+=1,t1.current=!1,tQ.current&&(clearTimeout(tQ.current),tQ.current=null)},[]),rY=(0,o.useCallback)(()=>{tG.current?.close(),tG.current=null,tX.current=null,tZ.current=null},[]),rG=(0,o.useCallback)(e=>{rY(),t2.current=Date.now();let t=new EventSource(`/api/agent/${encodeURIComponent(e)}/events`);tG.current=t,tX.current=e;let r=new Promise(r=>{let n=!1,o=e=>{n||(n=!0,clearTimeout(i),tZ.current?.source===t&&(tZ.current.pending=!1),r({status:e,source:t}))},i=setTimeout(()=>o("timeout"),3e4);t.onmessage=e=>{t2.current=Date.now();try{let t=JSON.parse(e.data);"connected"===t.type&&o("connected"),ru.current?.(t)}catch{}},t.onerror=()=>{if(t.readyState!==EventSource.CLOSED||(o("closed"),tG.current!==t||!rr.current&&!t1.current))return;tG.current=null,tX.current=null,tZ.current=null;let r=t0.current;setTimeout(()=>{r===t0.current&&!tG.current&&(rr.current||t1.current)&&rG(e)},1e3)}});return tZ.current={source:t,promise:r,pending:!0},r},[rY]),rX=(0,o.useCallback)(async e=>{let t=tG.current;if(t&&tX.current===e)if(t.readyState===EventSource.OPEN)if(!(Date.now()-t2.current>95e3))return;else rY();else{let e=tZ.current;if(e?.source===t&&e.pending&&(await e.promise,tG.current===t&&t.readyState===EventSource.OPEN))return}let r=await rG(e);if("connected"!==r.status&&r.source.readyState!==EventSource.OPEN)throw tG.current===r.source&&(tG.current=null),tX.current===e&&(tX.current=null),tZ.current?.source===r.source&&(tZ.current=null),r.source.close(),new c9(r.status)},[rG]),rZ=(0,o.useCallback)(async(e,t)=>{let r=t6.current;if(t$(t=>t?.id===e.id?null:t),r)try{await tE(r,{type:"extension_ui_response",id:e.id,...t})}catch(e){console.error("Failed to send extension UI response:",e)}},[]),rQ=(0,o.useCallback)(async(e,t)=>{let r=t6.current;if(r)try{await tE(r,{type:"extension_ui_input",id:e.id,data:t})}catch(e){console.error("Failed to send extension custom UI input:",e)}},[]),r0=(0,o.useCallback)(e=>{let t=e.message.trim();if(!t)return;let r=e.type??"info";("error"===r||"warning"===r)&&fetch("/api/logs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({level:r,source:"agent-notice",sessionId:t6.current??void 0,message:t})}).catch(()=>{}),tz({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:r}})},[]),r1=(0,o.useRef)(0),r2=(0,o.useCallback)(async(e,t,r)=>{let n=r1.current,o=async n=>{let o=new URLSearchParams({deferThinking:"1",deferMedia:"1"});return t&&o.set("leafId",t),r&&o.set("before",r),fetch(`/api/sessions/${encodeURIComponent(e)}/context?${o}`,{signal:n})};try{let t,i=new AbortController,s=setTimeout(()=>i.abort(),3e4);try{t=await o(i.signal)}catch(e){if(!(e instanceof DOMException&&"AbortError"===e.name))throw e;t=await o(i.signal)}finally{clearTimeout(s)}if(!t.ok)throw Error(`HTTP ${t.status}`);let l=await t.json();if(t6.current!==e||r1.current!==n)return;$(l.context.oldestEntryId),L(l.context.hasMore),x(t=>{if(!t||t.sessionId!==e)return t;let n=r?{...t.context,messages:[...l.context.messages,...t.context.messages],entryIds:[...l.context.entryIds,...t.context.entryIds],oldestEntryId:l.context.oldestEntryId,hasMore:l.context.hasMore}:l.context;return{...t,context:n}}),r?(z(e=>[...l.context.messages,...e]),M(e=>[...l.context.entryIds,...e])):(z(l.context.messages),M(l.context.entryIds??[]))}catch(t){console.error("Failed to load context:",t),rs.current&&t6.current===e&&r1.current===n&&r0({type:"error",message:"Failed to load earlier messages. Scroll up to retry."})}},[r0]),r6=(0,o.useCallback)(t=>{switch(t.method){case"select":case"confirm":case"input":case"editor":t$(t);break;case"notify":r0({id:t.id,message:function(e){if(!("u">typeof document&&("zh-CN"===document.documentElement.lang||"zh"===document.documentElement.lang)))return e;let t=e.trim();return t.startsWith("Plan mode enabled")?"已启用计划模式:只读分析与产出计划,不修改文件。":t.startsWith("Plan mode disabled")?"已退出计划模式。":t.startsWith("No completed plan is available")?"当前没有可用的已完成计划。":t.startsWith("Unable to send Plan-mode message")?`无法发送计划模式消息:${t.replace(/^Unable to send Plan-mode message:\s*/,"")}`:e}(t.message),type:t.notifyType??"info"});break;case"setStatus":tA(e=>{let r=e.filter(e=>e.key!==t.statusKey);return t.statusText?[...r,{key:t.statusKey,text:t.statusText}]:r});break;case"setWidget":tF(e=>(function(e,t,r,n="aboveEditor"){if(void 0===r)return e.filter(e=>e.key!==t);let o={key:t,lines:r,placement:n},i=e.findIndex(e=>e.key===t);return -1===i?[...e,o]:e.map((e,t)=>t===i?o:e)})(e,t.widgetKey,t.widgetLines,t.widgetPlacement));break;case"setTitle":t.title&&(document.title=t.title);break;case"set_editor_text":e.chatInputRef?.current?.insertText(t.text);break;case"custom":tL(e=>t.closed?e?.id===t.id?null:e:t)}},[r0,e.chatInputRef]),r4=(0,o.useRef)(null),r5=(0,o.useCallback)(()=>{null!==r4.current&&(cancelAnimationFrame(r4.current),r4.current=null)},[]),r3=(0,o.useCallback)(()=>{r$(),r5();let e=rr.current;return rr.current=!1,q(!1),tf(null),eV(null),R(new Map),A({type:"end"}),e},[r5,r$]),r8=(0,o.useCallback)(e=>ri.current!==e&&(ri.current=e,i?.(),!0),[i]),r7=(0,o.useCallback)(e=>{if(re.current===e)return void rJ();rJ(),t1.current=!0;let t=t0.current,r=async()=>{if(t===t0.current&&t6.current===e&&t1.current)try{let n=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(!n.ok)throw Error(`HTTP ${n.status}`);let o=await n.json();if(t!==t0.current||t6.current!==e||!t1.current)return;let i=o.state;if(ts(i),o.running&&i&&(i.isStreaming||i.isPromptRunning)){t1.current=!1,tQ.current=null,rn.current=!!i?.isStreaming,ro.current=!!i?.isPromptRunning,rr.current=!0,q(!0),tf(c6(i));return}if(o.running&&i?.isCompacting){tc(!0),tQ.current=setTimeout(()=>void r(),600);return}t1.current=!1,tQ.current=null,rY()}catch{if(t!==t0.current||t6.current!==e||!t1.current)return;tQ.current=setTimeout(()=>void r(),600)}};tQ.current=setTimeout(()=>void r(),12e4)},[rJ,rY,ts]);(0,o.useEffect)(()=>{let e=t?.id;if(!e)return;let r=!1,n=!1,o=0,i=async()=>{if(!r&&!n){n=!0;try{let t=await fetch(`/api/agent/${encodeURIComponent(e)}/lease`,{method:"POST",cache:"no-store"});if(!t.ok||r)return;let n=await t.json();!r&&0===n.renewed&&t6.current===e&&re.current===e&&Date.now()-o>=3e4&&(o=Date.now(),rY(),rX(e).catch(()=>!1))}catch{}finally{n=!1}}},s=setInterval(()=>void i(),3e4),l=()=>{"visible"===document.visibilityState&&i()};return document.addEventListener("visibilitychange",l),()=>{r=!0,clearInterval(s),document.removeEventListener("visibilitychange",l)}},[rY,rX,t?.id]);let r9=(0,o.useCallback)(async(e=t6.current,t=rw.current)=>{if(rw.current===t)try{e&&await rU(e)}finally{if(rw.current!==t)return;let r=ro.current,n=rn.current;ro.current=!1,rn.current=!1,rS.current=null;let o=r3();r?r8(t):n&&o&&i?.(),e&&r7(e)}},[rU,r8,i,r7,r3]),ne=(0,o.useCallback)(async(e,t=rw.current)=>{await ue(800);let r=Date.now(),n=0;for(;Date.now()-r<2e4;){if(!rs.current||rw.current!==t)return;try{let o=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(o.ok){n=0;let i=await o.json(),s=i.state;if(ts(s),!(i.running&&s&&(s.isStreaming||s.isPromptRunning)))return void await r9(e,t);r=Date.now()}else n+=1}catch{n+=1}if(n>=3){if(rw.current!==t)return;r0({type:"error",message:"Cannot reach the pi-web service. Make sure it is running, then refresh the page."}),ro.current=!1,rS.current=null,r3();return}await ue(3e3)}rw.current===t&&(r0({type:"error",message:"Message delivery could not be confirmed. Refresh the page to see the latest state."}),ro.current=!1,rS.current=null,r3())},[r0,r9,r3]),nt=(0,o.useCallback)(async e=>{let t=rd.current+1;for(rd.current=t;ra.current&&rd.current===t&&t6.current===e;){await ue(1e3);try{let r=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(!r.ok)continue;let n=await r.json();if(ts(n.state),n.state?.isBashRunning)continue;if(await rU(e),rd.current!==t||t6.current!==e)return;ra.current=!1,V(!1),Y(null);return}catch{}}},[rU,ts]),nr=(0,o.useRef)(0),nn=(0,o.useCallback)(async e=>{if(!rr.current&&!P.current)return;let t=rw.current;try{let r,n=new AbortController,o=setTimeout(()=>n.abort(),1e4);try{r=await fetch(`/api/agent/${encodeURIComponent(e)}`,{signal:n.signal})}finally{clearTimeout(o)}if(!r.ok)throw Error(`HTTP ${r.status}`);nr.current=0;let i=await r.json();if(rw.current!==t)return;let s=i.state;if(ts(s),tc(s?.isCompacting??!1),ro.current||tf(c6(s)),tO(c5(s?.queuedMessages)),t_(s?.pendingRecovery??[]),i.running&&s&&(s.isStreaming||s.isPromptRunning||s.isBashRunning||s.isCompacting)){rn.current=rn.current||!!s.isStreaming,ro.current=ro.current||!!s.isPromptRunning;return}if(!rr.current&&!P.current)return;if(s&&(void 0!==s.contextUsage&&eY(s.contextUsage??null),void 0!==s.systemPrompt&&eX(s.systemPrompt??null),void 0!==s.extensionStatuses&&tA(s.extensionStatuses??[]),void 0!==s.extensionWidgets&&tF(s.extensionWidgets??[]),void 0!==s.goalState)){let e=s.goalState;e&&(eF.current=e,eP(e))}await r9(e,t)}catch{if(nr.current+=1,nr.current<3||!rs.current||rw.current!==t)return;nr.current=0,r0({type:"error",message:"Cannot reach the pi-web service. Make sure it is running, then refresh the page."}),ro.current=!1,rS.current=null,r3()}},[r0,r9,t_,tO,r3,ts]);(0,o.useEffect)(()=>{if(!_&&!N.isStreaming)return;let e=()=>{let e=t6.current;e&&nn(e)},t=()=>{"visible"===document.visibilityState&&e()},r=()=>e(),n=()=>e(),o=setInterval(e,15e3);return document.addEventListener("visibilitychange",t),window.addEventListener("pageshow",r),window.addEventListener("focus",n),window.addEventListener("online",e),()=>{clearInterval(o),document.removeEventListener("visibilitychange",t),window.removeEventListener("pageshow",r),window.removeEventListener("focus",n),window.removeEventListener("online",e)}},[_,N.isStreaming,nn]),(0,o.useEffect)(()=>{if(!_&&!N.isStreaming)return;let e=()=>{let e=t6.current,t=tG.current;e&&t&&t.readyState===EventSource.OPEN&&(Date.now()-t2.current<=95e3||rG(e))};e();let t=setInterval(e,15e3);return()=>clearInterval(t)},[_,N.isStreaming,rG]),(0,o.useEffect)(()=>{rr.current=_,_||tv(!1)},[_]);let no=(0,o.useCallback)((t="smooth")=>{rv.current=Date.now()+700;let r=rb.current,n=ry.current;if(!r||!n)return;let o=Math.max(88,e.chatInputRef?.current?.measureHeight?.()??0),i=()=>{if(!r||!n)return;let e=Math.max(0,n.getBoundingClientRect().top-r.getBoundingClientRect().top+r.scrollTop-96-r.clientHeight+o);r.scrollTo({top:e,behavior:t})};i(),("instant"===t||"auto"===t)&&window.setTimeout(()=>{r&&n&&rf.current&&i()},200)},[]),ni=(0,o.useCallback)(()=>{null===r4.current&&(r4.current=requestAnimationFrame(()=>{r4.current=null,requestAnimationFrame(()=>{if(!rr.current||Date.now()<rm.current)return;let e=rb.current;if(e){let{scrollTop:t,clientHeight:r,scrollHeight:n}=e;rf.current=t+r>=n-150}rf.current&&no("auto")})}))},[no]);ru.current=(0,o.useCallback)(e=>{switch(e.type){case"agent_start":r$(),O(),rJ(),rr.current||(rl.current=!1),rn.current=!0,rr.current=!0,q(!0),tf({kind:"waiting_model"}),A({type:"start"}),ni();break;case"agent_end":{if(r$(),O(),!rr.current)break;let t=tD.steering.length>0||tD.followUp.length>0;if(tf(t?{kind:"waiting_model"}:null),eV(null),A({type:"end"}),!0!==e.willRetry){let t=e.messages??[];for(let e=t.length-1;e>=0;e--){let r=t[e];if(r?.role==="assistant"){"error"===r.stopReason&&r.errorMessage&&r0({type:"error",message:r.errorMessage});break}}}let r=t6.current;if(r){let n=rw.current;t||!0===e.willRetry||rU(r),fetch(`/api/agent/${encodeURIComponent(r)}`).then(e=>e.ok?e.json():void 0).then(e=>{if(rw.current!==n)return;let t=e?.state;if(ts(t),t?.contextUsage!==void 0&&eY(t.contextUsage??null),t?.systemPrompt!==void 0&&eX(t.systemPrompt??null),t?.extensionStatuses!==void 0&&tA(t.extensionStatuses??[]),t?.extensionWidgets!==void 0&&tF(t.extensionWidgets??[]),tO(c5(t?.queuedMessages)),t_(t?.pendingRecovery??[]),t?.goalState!==void 0){let e=t.goalState;e&&(eF.current=e,eP(e))}}).catch(()=>{})}break}case"agent_settled":{let e=rn.current;if(rn.current=!1,!e||ro.current)break;let t=t6.current,r=r3();tc(!1),t&&(rU(t),r7(t)),r&&!rl.current&&i?.(),rl.current=!1;break}case"goal_state_changed":{let t=e.goalState;t&&(eF.current=t,eP(t));break}case"prompt_done":{let e=rw.current,t=ro.current;ro.current=!1,rS.current=null;let r=r8(e);if(r&&(rl.current=!0),!t&&!r)break;let n=t6.current;n&&!rn.current&&rU(n),!rn.current&&(r3(),n&&r7(n));break}case"tool_approval_request":{let t={id:String(e.id??""),toolName:String(e.toolName??""),args:e.args};if(!t.id)break;eL(e=>e.some(e=>e.id===t.id)?e:[...e,t]);break}case"tool_approval_resolved":{let t=String(e.id??"");if(!t)break;eL(e=>e.filter(e=>e.id!==t));break}case"prompt_error":r0({type:"error",message:e.errorMessage??"Command failed"});break;case"extension_error":r0({type:"error",message:e.error??"Extension command failed"});break;case"message_start":case"message_update":{if(!rr.current||cQ(e))break;let t=e.message;if(t?.role==="user")break;t&&(U(t),rW(cJ(t))),tf(e=>null===e?e:null),ni();break}case"message_end":{if(!rr.current||cQ(e))break;let t=e.message;if(t&&"user"===t.role){let e=cJ(t);if("user"===e.role&&"content"in e){let t=e.content;if("string"==typeof t)c8.some(e=>t.startsWith(e))&&(e={...e,content:te(t)});else if(Array.isArray(t)){let r=t.filter(e=>"text"===e.type)[0];r&&"string"==typeof r.text&&c8.some(e=>r.text?.startsWith(e))&&(e={...e,content:t.map((e,t)=>{if("text"!==e.type||0!==t)return e;let r=te(e.text??"");return{...e,text:r}})})}}let r=uo(e),n=rS.current;z(t=>{let o=t[t.length-1];return n&&o?.role==="user"&&uo(o)===n?(rS.current=null,n===r?t:[...t.slice(0,-1),e]):[...t,e]})}else t&&z(e=>[...e,cJ(t)]);r$(),A({type:"reset"}),tf({kind:"waiting_model"});break}case"tool_execution_start":{let t=e.toolCallId,r=e.toolName;tf(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_update":{let t=e.partialResult,r=t?.content,n="string"==typeof e.toolName?e.toolName:"",o="string"==typeof e.toolCallId?e.toolCallId:null;o&&("bash"===n||"powershell"===n)&&Array.isArray(r)&&R(e=>{let i=new Map(e);return i.set(o,{role:"toolResult",toolCallId:o,toolName:n,content:r,isError:t?.isError,details:t?.details}),i});let i=function(e){if(!c0(e))return null;let t=e.content;if(!Array.isArray(t))return null;let r=t.filter(e=>c0(e)&&"text"===e.type&&"string"==typeof e.text).map(e=>e.text).join("\n").split(/\r?\n/),n="";for(let e=r.length-1;e>=0&&!(n=r[e].trim());e-=1);if(!n)return null;let o=n.replace(/\s+/g," ");return o.length<=500?o:`...${o.slice(-497)}`}(e.partialResult);o&&tf(e=>{let t=e?.kind==="running_tools"?[...e.tools]:[],r=t.find(e=>e.id===o);if(!r&&!i)return e;let s={id:o,name:n||r?.name||"tool",progress:i??r?.progress};return{kind:"running_tools",tools:[...t.filter(e=>e.id!==o),s]}});let s="string"==typeof e.toolCallId?e.toolCallId:null,l=e.partialResult,a=l?.details;if(!s||!a)break;z(t=>{let r=t.findIndex(e=>"toolResult"===e.role&&e.toolCallId===s);if(-1===r)return[...t,{role:"toolResult",toolCallId:s,toolName:"string"==typeof e.toolName?e.toolName:"Agent",content:[],details:a}];let n=t[r];if("toolResult"!==n.role||n.content.length>0)return t;let o=[...t];return o[r]={...n,details:a},o});break}case"tool_execution_end":{let t=e.toolCallId;R(e=>{if(!e.has(t))return e;let r=new Map(e);return r.delete(t),r}),tf(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"entry_appended":break;case"queue_update":tO({steering:[...e.steering??[]],followUp:[...e.followUp??[]]}),(e.steering??[]).length>0||(e.followUp??[]).length>0?tJ():tY();break;case"state_sync":{let t=e.state;if(!t)break;if(tc(t.isCompacting??!1),ro.current||tf(c6(t)),tO(c5(t.queuedMessages)),t_(t.pendingRecovery??[]),void 0!==t.contextUsage&&eY(t.contextUsage??null),void 0!==t.systemPrompt&&eX(t.systemPrompt??null),void 0!==t.extensionStatuses&&tA(t.extensionStatuses??[]),void 0!==t.extensionWidgets&&tF(t.extensionWidgets??[]),void 0!==t.goalState){let e=t.goalState;e&&(eF.current=e,eP(e))}if(t.isStreaming||t.isPromptRunning||t.isBashRunning||t.isCompacting){let e=rr.current;rr.current=!0,q(!0),e||A({type:"start"})}else if(rr.current&&!ro.current){let e=t6.current;e&&r9(e,rw.current)}break}case"auto_retry_start":eV({attempt:e.attempt,maxAttempts:e.maxAttempts,errorMessage:e.errorMessage});break;case"auto_retry_end":eV(null);break;case"auto_compaction_start":case"compaction_start":tc(!0),tp(null),tg(null);break;case"auto_compaction_end":case"compaction_end":tc(!1),e.errorMessage?(tp(e.errorMessage),tg(null)):e.aborted||(tg(ui(e.result,e.reason??"auto")),t6.current&&!rr.current&&rU(t6.current));break;case"extension_ui_request":r6(e)}},[r0,rJ,r5,r9,r6,rU,r8,i,tD,r7,ni,r3,rW,r$,tJ,tY,U,O,t_,tO,ts]),(0,o.useEffect)(()=>{let e=new EventSource("/api/events");return e.onmessage=e=>{try{let t=JSON.parse(e.data);if(!t||!t.type||!t.payload||t.sessionId!==t6.current||tG.current?.readyState===EventSource.OPEN)return;ru.current?.(t.payload)}catch{}},()=>e.close()},[]);let ns=(0,o.useCallback)(async(r,o)=>{let i,s=r.trim();if(!s&&!o?.length)return;if(rr.current||ra.current)return void console.warn("[pi-web] Send dropped: a previous run is still marked active",{agentRunning:rr.current,bashRunning:ra.current,sessionId:t6.current});let l=!o?.length&&s.startsWith("/"),a=rw.current+1;rJ(),r$(),ro.current=!0;let d=function(e){let t=[];if("plan"===e.collaborationMode&&t.push(e3),"economy"===e.tokenMode&&t.push(e8),"delivery"===e.tokenMode&&t.push(e7),"goal"===e.collaborationMode){let r=e.goalText?.trim();t.push(r?`${e9}
192
+ ${r}`:e:r,images:s,pastedBlocks:function(e,t){if(!e?.length&&!t?.length)return;let r=[],n=new Set;for(let o of[...e??[],...t??[]]){let e=`${o.label}\u0000${o.text}`;n.has(e)||(n.add(e),r.push({...o}))}return r}(i,o)}}function d_(e){let t=e.trim();if(!t.startsWith("file://"))return t;try{let e=new URL(t),r=decodeURIComponent(e.pathname);return/^\/[a-zA-Z]:[\\/]/.test(r)?r=r.slice(1):e.host&&"localhost"!==e.host&&(r=`//${e.host}${r}`),r}catch{let e=t.replace(/^file:\/\/(localhost)?/,"");try{e=decodeURIComponent(e)}catch{}return/^\/[a-zA-Z]:[\\/]/.test(e)&&(e=e.slice(1)),e}}let dq=["text/uri-list","x-special/nautilus-clipboard","x-special/gnome-copied-files","x-special/mate-copied-files","x-special/xfce4-copied-files","application/x-kde-cutselection","public.file-url","text/x-moz-url","application/x-moz-file"];function dK(e){let t=/(?:^|\s)@"([^"\n]*)$/.exec(e);if(t)return{start:e.length-(t[1].length+2),query:t[1],quoted:!0};let r=/(?:^|\s)@([^\s"]*)$/.exec(e);return r?{start:e.length-(r[1].length+1),query:r[1],quoted:!1}:null}function dV(e){let t=0;for(let r=0;r<e.length;r++)"/"===e[r]&&t++;return t}function dJ(e,t){if(!e)return!0;let r=0;for(let n=0;n<t.length&&r<e.length;n++)t[n]===e[r]&&r++;return r===e.length}function dY(e,t){let r=t?`${e}/`:e;return r.includes(" ")?`@"${r}" `:`@${r} `}var dG=r(23084),dX=r(70312),dZ=r(37597),dQ=r(21163),d0=r(4615),d1=r(25248),d2=r(58506),d6=r(41789),d4=r(87124),d5=r(65098),d3=r(93587),d8=r(3736),d7=r(91906),d9=r(50981),ce=r(69203);let ct=[{value:"plan",Icon:d8.A,titleKey:"modes.collabPlanTitle",descKey:"modes.collabPlanDesc"},{value:"build",Icon:d7.A,titleKey:"modes.chatBuildTitle",descKey:"modes.chatBuildDesc"},{value:"edit",Icon:d9.A,titleKey:"modes.chatEditTitle",descKey:"modes.chatEditDesc"},{value:"yolo",Icon:ce.A,titleKey:"modes.chatYoloTitle",descKey:"modes.chatYoloDesc",warning:!0},{value:"goal",Icon:aH.d,titleKey:"modes.collabGoalTitle",descKey:"modes.collabGoalDesc"}];function cr({collaborationMode:e,onCollaborationModeChange:t,toolApprovalMode:r,onToolApprovalModeChange:i,disabled:s=!1}){let l,{t:a}=(0,Y.s)(),d=tp(),[c,u]=(0,o.useState)(null),[p,h]=(0,o.useState)(null),[g,x]=(0,o.useState)({}),m=(0,o.useRef)(null),v=(0,o.useRef)(null);(0,o.useEffect)(()=>()=>{null!==v.current&&window.clearTimeout(v.current)},[]);let y=(0,o.useCallback)(e=>{h(e),window.requestAnimationFrame(()=>u(t=>t===e?null:t)),null!==v.current&&window.clearTimeout(v.current),v.current=window.setTimeout(()=>h(null),150)},[]),b="goal"===e?"goal":"plan"===e?"plan":"yolo"===r?"yolo":"auto"===r?"edit":"build",k=()=>window.visualViewport?.height??window.innerHeight,j=ct.find(e=>e.value===b)??ct[1],w="build"===b?"var(--text-muted)":j.warning?"var(--accent-orange, #f59e0b)":"var(--accent)",S=j.Icon,C=j.titleKey;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:{display:"flex",alignItems:"center",gap:2},children:(0,n.jsxs)("button",{ref:m,type:"button","aria-label":a(C),title:a(C),"aria-expanded":"collab"===c,onClick:(l="collab",()=>{if(s)return;let e=m.current;if(!e)return;let t=e.getBoundingClientRect();x(e=>({...e,[l]:{top:t.top,left:t.left,width:t.width}})),u(e=>e===l?null:l)}),disabled:s,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5*!d,padding:d?0:"0 6px",width:d?24:void 0,height:24,background:"collab"===c?"var(--bg-hover)":"none",border:"none",borderRadius:4,color:w,cursor:s?"not-allowed":"pointer",fontSize:12,whiteSpace:"nowrap",opacity:s?.5:1,transition:"background 0.12s, color 0.12s"},children:[(0,n.jsx)(S,{size:14,color:w,"aria-hidden":"true"}),!d&&(0,n.jsx)("span",{style:{whiteSpace:"nowrap"},children:a(C)})]})}),(()=>{if("collab"!==c)return null;let o=g.collab;if(!o)return null;let l=Math.min(248,window.innerWidth-16),d=Math.min(o.left,window.innerWidth-l-8),u=k()-o.top+6,h=Math.min(300,Math.max(120,.55*k()));return(0,n.jsx)("div",{role:"menu",style:{position:"fixed",bottom:u,left:d,zIndex:2100,width:l,maxHeight:h,overflowY:"auto",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:10,boxShadow:"0 12px 32px rgba(0,0,0,0.22)",padding:4,opacity:+("collab"!==p),transition:"opacity 0.12s"},children:ct.map(o=>{let l=o.value===b,d=o.Icon;return(0,n.jsxs)("button",{type:"button",role:"menuitemradio","aria-checked":l,onClick:()=>(n=>{if(y("collab"),n===b)return;if("goal"===n)return void t("goal");let o=function(e){switch(e){case"plan":return{collaborationMode:"plan",toolApprovalMode:"ask"};case"edit":return{collaborationMode:"normal",toolApprovalMode:"auto"};case"yolo":return{collaborationMode:"normal",toolApprovalMode:"yolo"};default:return{collaborationMode:"normal",toolApprovalMode:"ask"}}}(n);o.collaborationMode!==e&&t(o.collaborationMode),o.toolApprovalMode!==r&&i?.(o.toolApprovalMode)})(o.value),disabled:s,style:{display:"flex",alignItems:"center",gap:10,width:"100%",padding:"8px 10px",background:l?"var(--bg-selected)":"none",border:"none",borderRadius:8,cursor:s?"not-allowed":"pointer",textAlign:"left",transition:"background 0.12s"},onMouseEnter:e=>{l||s||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.background=l?"var(--bg-selected)":"none"},children:[(0,n.jsx)(d,{size:16,color:l?o.warning?"var(--accent-orange, #f59e0b)":"var(--accent)":"var(--text-muted)","aria-hidden":"true"}),(0,n.jsxs)("span",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("span",{style:{display:"block",fontSize:12.5,fontWeight:550,color:"var(--text)"},children:a(o.titleKey)}),(0,n.jsx)("span",{style:{display:"block",fontSize:10.5,color:"var(--text-muted)",marginTop:1,lineHeight:1.4},children:a(o.descKey)})]}),l&&(0,n.jsx)(f.S,{size:12,weight:"bold",color:"var(--accent)","aria-hidden":"true"})]},o.value)})})})()]})}let cn=["off","default","full"],co={off:"none",default:"default",full:"full"},ci=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function cs(e,t){return ci.compare(e.name||e.modelId,t.name||t.modelId)||ci.compare(e.provider,t.provider)||ci.compare(e.modelId,t.modelId)}let cl=["max","xhigh","high","medium","low","minimal","auto","off"];function ca({level:e,size:t=14}){if("off"===e)return(0,n.jsx)(d2.x,{size:t,weight:"regular",color:"var(--text-dim)"});if("auto"===e)return(0,n.jsx)(d3.I,{size:t,weight:"regular",color:"var(--accent)"});let r=["medium","high","xhigh","max"].includes(e),o="var(--accent)";return(0,n.jsxs)("span",{style:{position:"relative",display:"inline-flex"},children:[(0,n.jsx)(d2.x,{size:t,weight:r?"fill":"regular",color:o}),"high"===e&&(0,n.jsx)(S.c,{size:Math.round(.57*t),weight:"bold",color:o,style:{position:"absolute",right:-4,top:-1}}),"xhigh"===e&&(0,n.jsx)(x.C,{size:Math.round(.57*t),weight:"fill",color:o,style:{position:"absolute",right:-4,top:-1}}),"max"===e&&(0,n.jsxs)("span",{style:{position:"absolute",right:-6,top:-1,display:"inline-flex"},children:[(0,n.jsx)(x.C,{size:Math.round(.5*t),weight:"fill",color:o,style:{marginRight:-3}}),(0,n.jsx)(x.C,{size:Math.round(.5*t),weight:"fill",color:o})]})]})}function cd(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${Math.round(e/1e3)}k`:e.toLocaleString()}let cc=["builtin","extension","prompt","skill"],cu={builtin:0,extension:1,prompt:2,skill:3};function cp(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 ch(e,t){return"skill"===e.source&&e.name.startsWith("skill:")&&!0===t[e.name.slice(6)]}function cg(e,t,r){return t<=0?0:((e+r)%t+t)%t}async function cx(e){let t=()=>{var t;return t=e.type,new Promise((r,n)=>{let o=new FileReader;o.onload=()=>{let e="string"==typeof o.result?o.result.split(",")[1]:void 0;e?r({data:e,mimeType:t}):n(Error("Failed to read image"))},o.onerror=n,o.readAsDataURL(e)})};if(!(e.size>1048576&&"image/gif"!==e.type)||"function"!=typeof createImageBitmap)return t();let r=await createImageBitmap(e).catch(()=>null);if(!r)return t();try{let n=Math.min(1,1024/Math.max(r.width,r.height)),o=document.createElement("canvas");o.width=Math.max(1,Math.round(r.width*n)),o.height=Math.max(1,Math.round(r.height*n));let i=o.getContext("2d");if(!i)return t();i.fillStyle="#fff",i.fillRect(0,0,o.width,o.height),i.drawImage(r,0,0,o.width,o.height);let s=o.toDataURL("image/jpeg",.85).split(",")[1];return s&&s.length<4*Math.ceil(e.size/3)?{data:s,mimeType:"image/jpeg"}:t()}catch{return t()}finally{r.close()}}function cf(e){return{data:e.data,mimeType:e.mimeType}}function cm(e,t){let r=e;for(let e of t)r=r.split(e.label).join(e.text);return r}function cv(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function cy(e){return"string"==typeof e.content?e.content:e.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n")}function cb(e){return"string"==typeof e.content?[]:e.content.flatMap(e=>{if("image"!==e.type)return[];let t=e.source?.type==="base64"?e.source.data:e.data,r=e.source?.type==="base64"?e.source.media_type:e.mimeType;return"string"!=typeof t||"string"!=typeof r?[]:dA({type:"image",data:t,mimeType:r})?[{data:t,mimeType:r}]:[]})}function ck(e){return{...e,previewUrl:`data:${e.mimeType};base64,${e.data}`}}function cj(e){return(e??[]).filter(dP).slice(0,10).map(ck)}function cw(e){e.previewUrl.startsWith("blob:")&&URL.revokeObjectURL(e.previewUrl)}function cS({kind:e,text:t,label:r,index:o,total:i,onMove:s,onRecall:l,onRemove:a}){let{t:d}=(0,Y.s)(),c={display:"inline-flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,border:"none",borderRadius:4,color:"var(--text-dim)",background:"transparent",cursor:"pointer",flexShrink:0};return(0,n.jsxs)("div",{title:t,className:"chat-input-queue-row",style:{display:"flex",alignItems:"center",gap:8,padding:"3px 10px",fontSize:12,color:"var(--text-muted)",minWidth:0},children:[(0,n.jsx)("span",{style:{flexShrink:0,fontSize:10,fontFamily:"var(--font-mono)",padding:"1px 7px",borderRadius:999,border:`1px solid ${"steer"===e?"color-mix(in srgb, var(--accent) 45%, transparent)":"var(--border)"}`,color:"steer"===e?"var(--accent)":"var(--text-dim)"},children:r}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},children:t}),s&&i>1&&(0,n.jsxs)("span",{style:{display:"inline-flex",gap:1,flexShrink:0},children:[(0,n.jsx)("button",{type:"button","aria-label":d("desktop.queueMoveUp"),title:d("desktop.queueMoveUp"),disabled:0===o,onClick:()=>s(-1),style:{...c,opacity:0===o?.3:1},children:"↑"}),(0,n.jsx)("button",{type:"button","aria-label":d("desktop.queueMoveDown"),title:d("desktop.queueMoveDown"),disabled:o===i-1,onClick:()=>s(1),style:{...c,opacity:o===i-1?.3:1},children:"↓"})]}),l&&(0,n.jsx)("button",{type:"button","aria-label":d("desktop.queueRecallOne"),title:d("desktop.queueRecallOne"),onClick:l,style:c,children:(0,n.jsx)(dX.Y,{size:13})}),a&&(0,n.jsx)("button",{type:"button","aria-label":d("desktop.queueRemove"),title:d("desktop.queueRemove"),onClick:a,style:c,children:(0,n.jsx)(g.u,{size:13})})]})}let cC=(0,o.memo)((0,o.forwardRef)(function({onSend:e,onBash:t,onAbort:r,onSteer:i,onFollowUp:s,isStreaming:l,model:a,modelNames:d,modelList:c,modelScopeWarnings:u,modelsError:p,onRetryModels:m,onModelChange:v,compactResult:y,toolPreset:j,onToolPresetChange:w,collaborationMode:C="normal",toolApprovalMode:I="auto",onCollaborationModeChange:M,onToolApprovalModeChange:E,goalState:$,onGoalStart:W,onGoalPause:L,onGoalResume:N,onGoalStop:A,thinkingLevel:P,isAutoThinkingSelection:D=!1,onThinkingLevelChange:H,availableThinkingLevels:O,thinkingLevelMap:B,retryInfo:U,queuedMessages:_,inputHistory:q=[],onRecallQueue:K,onMoveQueue:V,onRecallOne:J,onRequeueAt:G,onRemoveQueueItem:X,slashCommands:Z,slashCommandsLoading:Q,onLoadSlashCommands:ee,onBuiltinCommand:et,onAudioUnlock:er,onPromptWithStreamingBehavior:en,draftKey:eo,cwd:ei,tasksBoardEnabled:es=!0,topCenterControl:el},ea){var ed;let ec,eu,ep,eh,eg,ex,ef,em,ev,ey,eb,ek,ej,ew,eS,eC,ez,eT,eR,eI,eM,eE,e$,eW=tp(),{t:eL}=(0,Y.s)(),eN=!!a&&(c?.find(e=>e.id===a.modelId&&e.provider===a.provider)?.input?.includes("image")??!1),eA={auto:"auto",off:"off",minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},eP={off:eL("desktop.toolOff"),default:eL("desktop.toolDefault"),full:eL("desktop.toolFull")},eF=[{name:"compact",description:eL("desktop.compactCommandDescription"),source:"builtin"},{name:"reload",description:eL("desktop.reloadCommandDescription"),source:"builtin"},{name:"name",description:eL("desktop.nameCommandDescription"),source:"builtin"},{name:"session",description:eL("desktop.sessionCommandDescription"),source:"builtin"},{name:"copy",description:eL("desktop.copyCommandDescription"),source:"builtin"}],eD={builtin:eL("desktop.builtIn"),extension:eL("desktop.extensions"),prompt:eL("desktop.prompts"),skill:eL("desktop.commandSkills")},[eH,eO]=(0,o.useState)(()=>eo?dH(eo)?.value??"":""),[eB,eU]=(0,o.useState)(()=>eo?dH(eo)?.pastedBlocks??[]:[]),[e_,eq]=(0,o.useState)([]),eK=o.useMemo(()=>{try{var e;return e=eL("desktop.pastedLabel",{id:"\0A\0",lines:"\0B\0"}),RegExp(e.split("\0A\0").join("(\\d+)").split("\0B\0").join("(\\d+)").split("(\\d+)").map(cv).join("(\\d+)"),"g")}catch{return null}},[eL]),[eV,eJ]=(0,o.useState)(null),eY=(0,o.useRef)(null),eG=(0,o.useCallback)(e=>{eJ(e),eY.current&&clearTimeout(eY.current),eY.current=setTimeout(()=>eJ(null),5e3)},[]),eX=(0,o.useRef)(0),[eZ,eQ]=(0,o.useState)(!1),[e0,e1]=(0,o.useState)(null),[e2,e6]=(0,o.useState)({height:0,width:0,offsetTop:0}),[e4,e5]=(0,o.useState)(""),[e3,e8]=(0,o.useState)(()=>{try{let e=localStorage.getItem("pi-favorite-models");return e?new Set(JSON.parse(e)):new Set}catch{return new Set}}),[e7,e9]=(0,o.useState)(new Set),[te,tt]=(0,o.useState)(!1),[tr,tn]=(0,o.useState)(null),[to,ti]=(0,o.useState)(!1),[ts,tl]=(0,o.useState)(null),[ta,td]=(0,o.useState)(!1),[tc,tu]=(0,o.useState)(null),[th,tg]=(0,o.useState)(()=>eo?dH(eo)?.images.map(ck)??[]:[]),tx=eH.trimStart(),tf=0===th.length&&tx.startsWith("!"),tm=tf&&tx.startsWith("!!"),[tv,ty]=(0,o.useState)(!1),[tb,tk]=(0,o.useState)(0),[tw,tS]=(0,o.useState)({}),[tC,tz]=(0,o.useState)(()=>{try{return"ctrl-enter"===localStorage.getItem("pi-input-shortcut")?"ctrl-enter":"enter"}catch{return"enter"}}),[tT,tR]=(0,o.useState)(null),[tI,tM]=(0,o.useState)(!1),[tE,t$]=(0,o.useState)(null),[tW,tL]=(0,o.useState)(0),[tN,tA]=(0,o.useState)(!1),[tP,tF]=(0,o.useState)(0),[tD,tH]=(0,o.useState)(!1),tO=(0,o.useRef)(!1),[tB,tU]=(0,o.useState)(null),[t_,tq]=(0,o.useState)(!1),[tK,tV]=(0,o.useState)(null),tJ=(0,o.useRef)(null),tY=(0,o.useRef)(null),tG=(0,o.useRef)(null),tX=(0,o.useRef)(null),tZ=(0,o.useRef)(null),tQ=(0,o.useRef)(null),t0=(0,o.useRef)(null),t1=(0,o.useRef)(null),t2=(0,o.useRef)(null),t6=(0,o.useRef)(null),t4=(0,o.useRef)(!1),t5=(0,o.useRef)(0),t3=(0,o.useRef)(!1),t8=(0,o.useRef)([]),t7=(0,o.useRef)(null),t9=(0,o.useRef)([]),re=(0,o.useRef)([]),rt=(0,o.useRef)(null),rr=(0,o.useRef)(null),rn=(0,o.useRef)(eo),ro=(0,o.useRef)(eH),ri=(0,o.useRef)(th),rs=(0,o.useRef)(eB),rl=(0,o.useRef)(null),[ra,rd]=(0,o.useState)(!1);ro.current=eH,ri.current=th,rs.current=eB;let rc=(0,o.useCallback)(async e=>{let t=e.filter(e=>e.type.startsWith("image/"));if(!t.length)return;if(!eN)return void eG(eL("desktop.imageInputUnsupported"));let r=await Promise.all(t.map(async e=>({...await cx(e),previewUrl:URL.createObjectURL(e)})));tg(e=>[...e,...r])},[eG,eN,eL]);(0,o.useImperativeHandle)(ea,()=>({insertIfEmpty(e){let t=tJ.current;(t?t.value:eH).trim()||(eO(e),tR(null),requestAnimationFrame(()=>{t&&(t.focus(),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)}))},replaceMessage(e){var t,r;let n=tJ.current;t=n?n.value:eH,r=ri.current.length,t.trim()||0!==r||(eO(cy(e)),tR(null),tA(!1),tg(t=>(t.forEach(cw),cj(cb(e)))),requestAnimationFrame(()=>{n&&(n.focus(),n.style.height="auto",n.style.height=`${Math.min(n.scrollHeight,200)}px`)}))},restoreSubmission(e){let t=dU(cy(e),cb(e),tJ.current?.value??ro.current,ri.current.map(cf),void 0,rs.current);ro.current=t.value,rs.current=t.pastedBlocks??[];let r=cj(t.images);ri.current.forEach(cw),ri.current=r,eO(t.value),eU(t.pastedBlocks??[]),tg(r),tR(null),rn.current&&dO(rn.current,t)},prependText(e){if(!e.trim())return;let t=tJ.current,r=[e,t?t.value:eH].filter(e=>e.trim()).join("\n\n");eO(r),tR(null),requestAnimationFrame(()=>{t&&(t.focus(),t.setSelectionRange(r.length,r.length),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)})},insertText(e){let t=tJ.current;if(!t)return void eO(t=>t+(t?" ":"")+e);let r=t.selectionStart??t.value.length,n=t.selectionEnd??t.value.length,o=t.value.slice(0,r),i=t.value.slice(n),s=o.length>0&&!o.endsWith(" ")?" ":"";eO(o+s+e+i),tR(null),requestAnimationFrame(()=>{if(!t)return;let n=r+s.length+e.length;t.setSelectionRange(n,n),t.focus(),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`})},addImages(e){rc(e)},addFiles(e,t){let r=function(e,t,r){let n=e.map(()=>null),o=t.split(/\r?\n/).map(e=>e.trim()).filter(e=>e&&!e.startsWith("#")).filter(e=>e.startsWith("file://"));if(o.length===e.length){for(let t=0;t<e.length;t+=1)n[t]=function(e){let t;if(!e.startsWith("file://"))return null;try{t=decodeURIComponent(e.slice(7))}catch{return null}return t?(/^\/[A-Za-z]:[\\/]/.test(t)&&(t=t.slice(1)),t):null}(o[t]);return n}if(1===e.length&&r.trim()){let e=r.trim();(e.startsWith("/")||e.startsWith("~")||/^[A-Za-z]:[\\/]/.test(e))&&(n[0]=e)}return n}(e,t?.getData("text/uri-list")??"",t?.getData("text/plain")??""),n=e.filter(e=>e.type.startsWith("image/")),o=e.map((e,t)=>e.type.startsWith("image/")?null:r[t]??e.name).filter(e=>!!e);if(n.length&&rc(n),o.length&&!l){let e=o.join(" ");eO(t=>t+(t&&!t.endsWith(" ")?" ":"")+e)}},measureHeight:()=>tQ.current?.getBoundingClientRect().height??0}));let rp=(0,o.useCallback)((e,t)=>{e8(r=>{let n=`${e}:${t}`,o=new Set(r);return o.has(n)?o.delete(n):o.add(n),localStorage.setItem("pi-favorite-models",JSON.stringify([...o])),o})},[]),rh=(0,o.useCallback)(e=>{e9(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r})},[]),rg=(0,o.useCallback)(e=>{tg(t=>{let r=[...t],[n]=r.splice(e,1);return n&&cw(n),r})},[]),rx=(0,o.useCallback)(()=>{tg(e=>(e.forEach(cw),[]))},[]),rf=(0,o.useCallback)(()=>{eO(""),tR(null),eU([]),eq([]),eo&&dB(eo),rn.current&&rn.current!==eo&&dB(rn.current),rx(),tJ.current&&(tJ.current.style.height="auto")},[rx,eo]),rm=(0,o.useCallback)(async(e,t,r)=>{await V?.(e,t,t+r)},[V]),rv=(0,o.useCallback)(async(e,t)=>{await X?.(e,t)},[X]),ry=(0,o.useCallback)(async(e,t)=>{let r=await J?.(e,t);if(!r)return;rl.current={kind:e,index:t,text:r.text,images:r.images},rd(!0);let n=tJ.current?.value??eH,o=[r.text,n].filter(e=>e.trim()).join("\n\n");eO(o),tR(null),requestAnimationFrame(()=>{let e=tJ.current;e&&(e.focus(),e.setSelectionRange(o.length,o.length),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[J,eH]);(0,o.useEffect)(()=>{eo&&rn.current===eo&&dO(eo,{value:eH,images:th.map(cf),pastedBlocks:eB.length?eB:void 0})},[th,eo,eH,eB]),(0,o.useEffect)(()=>{let e=rn.current;if(e===eo)return;e&&dO(e,{value:ro.current,images:ri.current.map(cf),pastedBlocks:rs.current.length?rs.current:void 0});let t=eo?dH(eo):null;rn.current=eo,eO(t?.value??""),tR(null),eU(t?.pastedBlocks??[]),eq([]),tg(e=>(e.forEach(cw),t?.images.map(ck)??[]))},[eo]),(0,o.useEffect)(()=>{let e=tJ.current;e&&(e.style.height="auto",eH&&(e.style.height=`${Math.min(e.scrollHeight,200)}px`))},[eH]),(0,o.useEffect)(()=>{let e=()=>{try{tz("ctrl-enter"===localStorage.getItem("pi-input-shortcut")?"ctrl-enter":"enter")}catch{tz("enter")}};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[]),(0,o.useEffect)(()=>()=>{ri.current.forEach(cw)},[]);let rb=(0,o.useCallback)(e=>{let t;if(!eK)return null;for(eK.lastIndex=0;null!==(t=eK.exec(e));){let e=t[0];if(!(rs.current.some(t=>t.label===e)||rs.current.some(t=>t.text.includes(e))))return e}return null},[eK]),rk=(0,o.useCallback)(()=>{eG(eL("desktop.pastedMissingContent"))},[eG,eL]),rj=(0,o.useCallback)(async()=>{let r=cm(eH,eB),n=r.trim();if(!n&&!th.length)return;if(rb(r))return void rk();if(l)return;er?.();let o=rl.current;if(o&&G){if(rl.current=null,rd(!1),!await G(o.kind,o.index,n,th.length?th.map(cf):o.images)){rl.current={...o,text:n},rd(!0);return}rf();return}if(!th.length&&n.startsWith("!")&&t){let e=n.startsWith("!!"),r=n.slice(e?2:1).trim();if(!r)return;t(r,e),rf();return}if(!th.length&&n.startsWith("/")&&et){if(tO.current)return;tO.current=!0,tH(!0);try{let e=await et(n);if(e.handled){e.error||rf();return}}finally{tO.current=!1,tH(!1)}}e(n,th.length?th:void 0),rf()},[eH,eB,th,l,t,et,e,rf,er,G,rb,rk]),rw=eH.startsWith("/")&&!/\s/.test(eH.slice(1))?eH.slice(1).toLowerCase():null,{commands:rS,groups:rC}=(ed=null===rw?[]:[...l?[]:eF,...Z??[]].filter(e=>{let t=e.name.toLowerCase(),r=e.description?.toLowerCase()??"";return t.includes(rw)||r.includes(rw)}).sort((e,t)=>{let r=cp(e,rw)-cp(t,rw);return 0!==r?r:cu[e.source]-cu[t.source]||ci.compare(e.name,t.name)}),ec=0,{commands:(eu=cc.map(e=>{let t=ed.filter(t=>t.source===e),r="skill"===e?[...t.filter(e=>!ch(e,tw)),...t.filter(e=>ch(e,tw))]:t;return{source:e,items:r.map(e=>({command:e,index:ec++}))}}).filter(e=>e.items.length>0)).flatMap(e=>e.items.map(({command:e})=>e)),groups:eu});(0,o.useEffect)(()=>{if(!tv||!ei)return;let e=!1;return fetch(`/api/skills?cwd=${encodeURIComponent(ei)}`).then(e=>e.ok?e.json():null).then(t=>{!e&&t&&tS(Object.fromEntries(t.skills.map(e=>[e.name,e.disableModelInvocation])))}).catch(()=>{}),()=>{e=!0}},[ei,tv]);let rz=`${rS.length} ${eL(rw?1===rS.length?"desktop.match":"desktop.matches":1===rS.length?"desktop.command":"desktop.commands")}`,rT=!!eH.trim()||th.length>0,rR=(0,o.useCallback)((e,t)=>{if(!ei)return void tR(null);let r=t??e.length;tR(dK(e.slice(0,r)))},[ei]),[rI,rM]=(0,o.useState)(null),rE=(0,o.useRef)(rI);rE.current=rI;let[r$,rW]=(0,o.useState)([]),rL=(0,o.useRef)(!1),rN=(0,o.useCallback)(async()=>{try{let e=await fetch("/api/snippets");if(!e.ok)return;let t=await e.json();rW(t.snippets??[]),rL.current=!0}catch{}},[]);(0,o.useEffect)(()=>{rN();let e=()=>void rN();return window.addEventListener("pi:snippets-changed",e),()=>window.removeEventListener("pi:snippets-changed",e)},[rN]);let rA=rI?.query??null,rP=o.useMemo(()=>{if(null===rA||!1===rL.current)return[];let e=rA.toLowerCase();return r$.filter(t=>t.name.toLowerCase().includes(e))},[rA,r$]),[rF,rD]=(0,o.useState)(0);(0,o.useEffect)(()=>{rD(0)},[rA]);let rH=(0,o.useCallback)((e,t)=>{var r;let n,o=t??e.length,i=(r=e.slice(0,o),(n=/(?:^|[\s(])(#[\w-]+)$/.exec(r))?{start:r.length-n[1].length,end:r.length,query:n[1].slice(1)}:null);rM(i),i&&rD(0)},[]),rO=(0,o.useCallback)(e=>{let t=rE.current;if(!t)return;let r=eH.slice(0,t.start),n=eH.slice(t.end);eO(r+e.content+n),rM(null);let o=r.length+e.content.length;requestAnimationFrame(()=>{let e=tJ.current;e&&(e.focus(),e.setSelectionRange(o,o))})},[eH]),rB=(0,o.useCallback)(e=>{let t=rP[e];t&&rO(t)},[rP,rO]),rU=tT?.query??null,r_=o.useMemo(()=>null!==rU&&tB&&tB.cwd===ei?function(e,t,r=20){let n=t.toLowerCase();if(!n)return e.slice(0,r);let o=[];for(let t of e){let e=function(e,t){let r=e.path.toLowerCase(),n=0;if(t.includes("/"))r===t?n=100:r.startsWith(t)?n=80:r.includes(t)?n=50:dJ(t,r)&&(n=10);else{let e=r.lastIndexOf("/"),o=-1===e?r:r.slice(e+1);o===t?n=100:o.startsWith(t)?n=80:o.includes(t)?n=50:r.includes(t)?n=30:dJ(t,r)&&(n=10)}return e.isDir&&n>0&&(n+=10),n}(t,n);e>0&&o.push({entry:t,score:e})}return o.sort((e,t)=>t.score-e.score||dV(e.entry.path)-dV(t.entry.path)||e.entry.path.localeCompare(t.entry.path)),o.slice(0,r).map(e=>e.entry)}(tB.entries,rU):[],[rU,tB,ei]),rq=!!(rU&&tB?.truncated&&tB.cwd===ei);(0,o.useEffect)(()=>{if(!rq||!ei||!rU)return;let e=setTimeout(()=>{fetch(`/api/file-index?cwd=${encodeURIComponent(ei)}&q=${encodeURIComponent(rU)}`).then(e=>{if(!e.ok)throw Error(`file search failed: ${e.status}`);return e.json()}).then(e=>tV({cwd:ei,query:rU,matches:e.matches??[]})).catch(()=>{})},150);return()=>clearTimeout(e)},[rq,rU,ei]);let rK=rq&&null!==tK&&tK.cwd===ei&&tK.query===rU,rV=rK?tK.matches:r_,rJ=null===tT?null:`${tT.start}:${+!!tT.quoted}:${tT.query}`;(0,o.useEffect)(()=>{if(null===rJ){tM(!1),tL(0);return}tM(!0),tL(0)},[rJ]);let rY=null!==tT;(0,o.useEffect)(()=>{if(!rY||!ei)return;let e=rt.current;e&&e.cwd===ei&&Date.now()-e.fetchedAt<1e4||rr.current===ei||(rr.current=ei,tq(!0),fetch(`/api/file-index?cwd=${encodeURIComponent(ei)}`).then(e=>{if(!e.ok)throw Error(`file index failed: ${e.status}`);return e.json()}).then(e=>{tU({cwd:ei,entries:function(e){let t=new Set;for(let r of e){let e=r.indexOf("/");for(;-1!==e;)t.add(r.slice(0,e)),e=r.indexOf("/",e+1)}let r=[];for(let e of t)r.push({path:e,isDir:!0});for(let t of e)t&&r.push({path:t,isDir:!1});return r.sort((e,t)=>dV(e.path)-dV(t.path)||e.path.localeCompare(t.path)),r}(e.files??[]),truncated:!!e.truncated}),rt.current={cwd:ei,fetchedAt:Date.now()}}).catch(()=>{rt.current=null}).finally(()=>{rr.current=null,tq(!1)}))},[rY,ei]);let rG=(0,o.useCallback)(e=>{if(!tT)return;let t=tJ.current,r=t?.selectionStart??eH.length,n=eH.slice(0,tT.start),o=eH.slice(r);tT.quoted&&o.startsWith('"')&&(o=o.slice(1));let i=function(e,t,r=!1){let n=t?`${e}/`:e,o=r||n.includes(" ");if(t){let e=o?`@"${n}"`:`@${n}`;return{text:e,cursorOffset:o?e.length-1:e.length}}let i=o?`@"${n}" `:`@${n} `;return{text:i,cursorOffset:i.length}}(e.path,e.isDir,tT.quoted),s=n+i.text+o,l=n.length+i.cursorOffset;eO(s),tR(dK(s.slice(0,l))),requestAnimationFrame(()=>{let e=tJ.current;e&&(e.focus(),e.setSelectionRange(l,l),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[tT,eH]);(0,o.useEffect)(()=>{tW>=rV.length&&tL(Math.max(0,rV.length-1))},[rV.length,tW]),(0,o.useEffect)(()=>{t9.current.length=rV.length},[rV.length]),(0,o.useEffect)(()=>{tI&&t9.current[tW]?.scrollIntoView({block:"nearest",inline:"nearest"})},[tW,tI]),(0,o.useLayoutEffect)(()=>{if(!tI||null===tT)return void t$(null);let e=t7.current;if(e){var t;let r,n,o,i,s,l,a;return t=e=>{t$(t=>t===e?t:e)},r=null,n=()=>{r=null,t(function(e,t,r=8){return Math.max(0,Math.floor(e-t-r))}(e.getBoundingClientRect().bottom,function(e){let t=window.visualViewport?.offsetTop??0;for(let r=e.parentElement;r;r=r.parentElement){let e=window.getComputedStyle(r).overflowY;("auto"===e||"scroll"===e||"hidden"===e||"clip"===e)&&(t=Math.max(t,r.getBoundingClientRect().top+r.clientTop))}return t}(e)))},o=()=>{null!==r&&cancelAnimationFrame(r),r=requestAnimationFrame(n)},n(),i=e.parentElement,s=i?.parentElement,l="u">typeof ResizeObserver&&i?new ResizeObserver(o):null,i&&l?.observe(i),s&&l?.observe(s),a=window.visualViewport,a?.addEventListener("resize",o),a?.addEventListener("scroll",o),window.addEventListener("resize",o),window.addEventListener("scroll",o,!0),()=>{l?.disconnect(),a?.removeEventListener("resize",o),a?.removeEventListener("scroll",o),window.removeEventListener("resize",o),window.removeEventListener("scroll",o,!0),null!==r&&cancelAnimationFrame(r)}}},[tI,tT]);let rX=(0,o.useCallback)(e=>{eO(e),tR(null),tA(!1),tF(0),requestAnimationFrame(()=>{let t=tJ.current;t&&(t.focus(),t.setSelectionRange(e.length,e.length),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)})},[]),rZ=(0,o.useCallback)(e=>{let t=`/${e.name} `;eO(t),ty(!1),tk(0),requestAnimationFrame(()=>{let e=tJ.current;e&&(e.focus(),e.setSelectionRange(t.length,t.length),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[]),rQ=(0,o.useCallback)(()=>{let e=tJ.current;if(!e)return;let t=e.selectionStart??e.value.length,r=e.value.slice(0,t),n=e.value.slice(e.selectionEnd??t),o=r.length>0&&!r.endsWith(" ")?" ":"",i=r+o+"@"+n;eO(i);let s=t+o.length+1;rR(i,s),requestAnimationFrame(()=>{e&&(e.setSelectionRange(s,s),e.focus(),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[]),r0=(0,o.useCallback)(()=>{let e=tJ.current;if(!e)return;let t=e.selectionStart??e.value.length,r=e.value.slice(0,t),n=e.value.slice(e.selectionEnd??t),o=r.length>0&&!r.endsWith(" ")?" ":"",i=r+o+"#"+n;eO(i),rR(i,t+o.length+1),requestAnimationFrame(()=>{e&&(e.setSelectionRange(t+o.length+1,t+o.length+1),e.focus(),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[]),r1=(0,o.useCallback)(()=>{let e=tJ.current;if(!e)return;let t=e.selectionStart??e.value.length,r=e.value.slice(0,t),n=e.value.slice(e.selectionEnd??t),o=r.length>0&&!r.endsWith(" ")?" ":"";eO(r+o+"/"+n);let i=t+o.length+1;requestAnimationFrame(()=>{e&&(e.setSelectionRange(i,i),e.focus(),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[]),r2=(0,o.useCallback)(e=>{let t=cm(eH,eB);if(rb(t))return void rk();let r=t.trim();if(r||th.length){if(er?.(),r.startsWith("/")&&en){en(r,"steer"===e?"steer":"followUp",th.length?th:void 0),rf();return}"steer"===e&&i?i(r,th.length?th:void 0):"followup"===e&&s&&s(r,th.length?th:void 0),rf()}},[eH,eB,th,en,i,s,rf,er,rb,rk]),r6=(0,o.useCallback)(e=>{let t=rS.length-1;if(t<0)return 0;if("left"===e)return Math.max(0,tb-1);if("right"===e)return Math.min(t,tb+1);let r=t8.current[tb];if(!r)return"down"===e?Math.min(t,tb+1):Math.max(0,tb-1);let n=r.getBoundingClientRect(),o=n.left+n.width/2,i=n.top+n.height/2,s=-1,l=1/0;for(let r=0;r<=t;r+=1){if(r===tb)continue;let t=t8.current[r];if(!t)continue;let n=t.getBoundingClientRect(),a=n.top+n.height/2-i;if("down"===e?a<=4:a>=-4)continue;let d=1e3*Math.abs(a)+Math.abs(n.left+n.width/2-o);d<l&&(s=r,l=d)}return s>=0?s:"down"===e?Math.min(t,tb+1):Math.max(0,tb-1)},[rS.length,tb]),r4=(0,o.useCallback)(e=>{let t=e.nativeEvent,n=Date.now()-t5.current<100,o=t4.current||t.isComposing||229===t.keyCode;if("Enter"===e.key&&!e.shiftKey&&(o||n)){n&&e.preventDefault();return}if((e.ctrlKey||e.metaKey)&&!e.altKey&&!e.shiftKey&&"i"===e.key.toLowerCase()&&!o&&ei){e.preventDefault();let t=e.currentTarget,r=t.selectionStart??t.value.length,n=t.selectionEnd??r,o=t.value.slice(0,r),i=t.value.slice(n),s=o&&!/[\s@]$/.test(o)?" ":"",l=`${o}${s}@${i}`,a=o.length+s.length+1;eO(l),tR(dK(l.slice(0,a))),tM(!0),requestAnimationFrame(()=>{t.focus(),t.setSelectionRange(a,a)});return}if(tN&&!o){if("ArrowDown"===e.key){e.preventDefault(),tF(e=>Math.min(Math.max(0,(q?.length??0)-1),e+1));return}if("ArrowUp"===e.key){e.preventDefault(),tF(e=>Math.max(0,e-1));return}if("Escape"===e.key){e.preventDefault(),tA(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&q?.[tP]){e.preventDefault(),rX(q[tP]);return}}if(tv&&null!==rw){if("ArrowDown"===e.key){e.preventDefault(),tk(r6("down"));return}if("ArrowUp"===e.key){e.preventDefault(),tk(r6("up"));return}if("ArrowRight"===e.key){e.preventDefault(),tk(r6("right"));return}if("ArrowLeft"===e.key){e.preventDefault(),tk(r6("left"));return}if("Escape"===e.key){e.preventDefault(),ty(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&rS[tb]){e.preventDefault(),rZ(rS[tb]);return}}if(tI&&null!==tT&&!o){if("ArrowDown"===e.key){e.preventDefault(),tL(e=>cg(e,rV.length,1));return}if("ArrowUp"===e.key){e.preventDefault(),tL(e=>cg(e,rV.length,-1));return}if("Escape"===e.key){e.preventDefault(),tM(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&rV[tW]){e.preventDefault(),rG(rV[tW]);return}}if(null!==rI&&rP.length>0&&!o){if("ArrowDown"===e.key){e.preventDefault(),rD(e=>Math.min(Math.max(0,rP.length-1),e+1));return}if("ArrowUp"===e.key){e.preventDefault(),rD(e=>Math.max(0,e-1));return}if("Escape"===e.key){e.preventDefault(),rM(null);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&rP[rF]){e.preventDefault(),rB(rF);return}}if("ArrowUp"===e.key&&!o&&!l&&(q?.length??0)>0&&0===eH.trim().length){e.preventDefault(),ty(!1),tM(!1),tF(0),tA(!0);return}if("Escape"===e.key&&!o&&l&&r){e.preventDefault(),r();return}if("Enter"===e.key&&!e.shiftKey){if("ctrl-enter"===tC&&!(e.ctrlKey||e.metaKey))return;e.preventDefault(),l&&(i||s)?r2(i?"steer":"followup"):rj()}},[l,i,s,r,tv,rw,rS,tb,rZ,r2,rj,r6,tI,tT,rV,tW,rG,rI,rP,rF,rB,tC,ei,tN,q,tP,rX,eH]),r5=(0,o.useCallback)(()=>{let e=tJ.current;e&&(e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)},[]),r3=(0,o.useCallback)(e=>{let t=Array.from(e.clipboardData?.items??[]),r=t.filter(e=>e.type.startsWith("image/"));if(r.length){e.preventDefault(),rc(r.map(e=>e.getAsFile()).filter(e=>null!==e));return}let n=function(e,t){if(!e)return[];let r=[],n=Array.from(e.files??[]);for(let e of n){let t=e.path;"string"==typeof t&&t.trim()&&r.push(t.trim())}if(r.length>0)return Array.from(new Set(r));for(let t of Array.from(e.items??[]))if("file"===t.kind){let e=t.getAsFile(),n=e?.path;"string"==typeof n&&n.trim()&&r.push(n.trim())}if(r.length>0)return Array.from(new Set(r));for(let t of dq)try{let n=e.getData(t);if(n){let e=function(e){if(!e)return[];let t=e.split(/\r?\n/),r=[];for(let e of t){let t=e.trim();!(!t||t.startsWith("#"))&&"copy"!==t&&"cut"!==t&&(t.startsWith("file://")?r.push(d_(t)):(t.startsWith("/")||/^[a-zA-Z]:[\\/]/.test(t))&&r.push(t))}return r}(n);e.length>0&&r.push(...e)}}catch{}if(r.length>0)return Array.from(new Set(r));try{let t=e.getData("text/plain")||e.getData("text");if(t){let e=t.split(/\r?\n/).map(e=>e.trim()).filter(Boolean),n=e.filter(e=>e.startsWith("file://"));if(n.length>0&&n.length===e.length)for(let e of n)r.push(d_(e))}}catch{}if(r.length>0)return Array.from(new Set(r));if(t?.fallbackToFileName&&n.length>0)for(let e of n)e.name&&r.push(e.name);return Array.from(new Set(r))}(e.clipboardData,{fallbackToFileName:!0});if(n.length>0){e.preventDefault();let t=function(e,t=" "){return e&&0!==e.length?1===e.length?e[0]:e.map(e=>{let t=e.trim();return!/\s/.test(t)||t.startsWith('"')||t.startsWith("'")?t:`"${t}"`}).join(t):""}(n),r=tJ.current,o=r?.selectionStart??eH.length,i=r?.selectionEnd??eH.length;eO(eH.slice(0,o)+t+eH.slice(i)),requestAnimationFrame(()=>{if(r){let e=o+t.length;r.selectionStart=e,r.selectionEnd=e,r5()}});return}if(!t.find(e=>e.type.startsWith("text/plain")))return;let o=e.clipboardData.getData("text/plain");if(!o)return;let i=e.clipboardData.getData("text/html");if(i){let t=new DOMParser().parseFromString(i,"text/html"),r=function(e,t){let r="",n=0,o=!1;for(let{label:i,href:s,occurrence:l}of t){if(!i||!s)continue;let t=0;for(let r=0;r<=l&&!((t=e.indexOf(i,r?t+i.length:0))<0);r++);if(t<n)continue;let a=i.replace(/([\\[\]])/g,"\\$1"),d=s.replace(/([\\()])/g,"\\$1");r+=`${e.slice(n,t)}[${a}](${d})`,n=t+i.length,o=!0}return o?r+e.slice(n):null}(o,Array.from(t.querySelectorAll("a[href]"),e=>{let r=e.textContent??"",n=t.createRange();return n.setStart(t.body,0),n.setEndBefore(e),{label:r,href:e.getAttribute("href")?.trim()??"",occurrence:r?n.toString().split(r).length-1:0}}));if(null!==r){let t=tJ.current,n=t?.selectionStart??eH.length,o=t?.selectionEnd??eH.length,i=eH.slice(0,n)+r+eH.slice(o);e.preventDefault(),eO(i),tA(!1),rR(i,n+r.length),requestAnimationFrame(()=>{t&&(t.focus(),t.setSelectionRange(n+r.length,n+r.length),r5())});return}}let s=o.split(/\r?\n/).length;if(o.length<2e3&&s<20)return;e.preventDefault();let l=`paste-${++eX.current}`,a=eL("desktop.pastedLabel",{id:eX.current,lines:s}),d=tJ.current,c=d?.selectionStart??eH.length,u=d?.selectionEnd??eH.length,p=eH.slice(0,c),h=eH.slice(u),g=!(p.length>0)||p.endsWith("\n")||p.endsWith(" ")?"":"\n\n";eO(p+g+a+h),eU(e=>[...e,{id:l,label:a,text:o}]),requestAnimationFrame(()=>{if(!d)return;let e=c+g.length+a.length;d.setSelectionRange(e,e),d.focus()})},[rc,eL,eH,r5]);(0,o.useEffect)(()=>{tP>=(q?.length??0)&&tF(Math.max(0,(q?.length??0)-1))},[tP,q]),(0,o.useEffect)(()=>{re.current.length=q?.length??0},[q]),(0,o.useEffect)(()=>{tN&&re.current[tP]?.scrollIntoView({block:"nearest",inline:"nearest"})},[tP,tN]),(0,o.useEffect)(()=>{if(null===rw){ty(!1),tk(0),t3.current=!1;return}ty(!0),tk(0),!t3.current&&ee&&(t3.current=!0,Promise.resolve(ee()).catch(()=>{t3.current=!1}))},[rw,ee]),(0,o.useEffect)(()=>{tb>=rS.length&&tk(Math.max(0,rS.length-1))},[rS.length,tb]),(0,o.useEffect)(()=>{t8.current.length=rS.length},[rS.length]),(0,o.useEffect)(()=>{tv&&t8.current[tb]?.scrollIntoView({block:"nearest",inline:"nearest"})},[tb,tv]);let r8=c&&c.length>0?c.map(e=>({provider:e.provider,modelId:e.id,name:e.name,input:e.input})).sort(cs):Object.entries(d??{}).map(([e,t])=>({provider:a?.provider??"unknown",modelId:e,name:t})).sort(cs),r7=[];for(let e of r8){let t=r7.find(t=>t.provider===e.provider);t?t.options.push(e):r7.push({provider:e.provider,options:[e]})}let r9=a?r8.find(e=>e.modelId===a.modelId&&e.provider===a.provider)?.name??a.modelId:null,ne=y?Math.max(0,y.tokensBefore-y.estimatedTokensAfter):0,nt=y?`${eL("desktop.compacted")} ${cd(y.tokensBefore)} -> ${cd(y.estimatedTokensAfter)} ${eL("desktop.tokens")} (${cd(ne)} ${eL("desktop.saved")})`:null,nr=P&&"auto"!==P?P:null,nn="auto"!==(ep=P??"auto")&&B?B[ep]??eA[ep]:eA[ep],no=Object.entries(co).find(([,e])=>e===(j??"default"))?.[0],ni="plan"===j?eL("desktop.planModeLabel"):eP[no??"default"];(0,o.useEffect)(()=>{let e=e=>{tY.current&&!tY.current.contains(e.target)&&tG.current&&!tG.current.contains(e.target)&&eQ(!1),tZ.current&&!tZ.current.contains(e.target)&&tt(!1),t0.current&&!t0.current.contains(e.target)&&td(!1),t1.current&&!t1.current.contains(e.target)&&ti(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,o.useEffect)(()=>{let e=null,t=()=>{e=null;let t=window.visualViewport;e6({height:t?.height??window.innerHeight,width:t?.width??window.innerWidth,offsetTop:t?.offsetTop??0})},r=()=>{null!==e&&window.cancelAnimationFrame(e),e=window.requestAnimationFrame(t)};return r(),window.addEventListener("resize",r),window.visualViewport?.addEventListener("resize",r),window.visualViewport?.addEventListener("scroll",r),window.addEventListener("focusin",r),window.addEventListener("focusout",r),window.addEventListener("pageshow",r),()=>{window.removeEventListener("resize",r),window.visualViewport?.removeEventListener("resize",r),window.visualViewport?.removeEventListener("scroll",r),window.removeEventListener("focusin",r),window.removeEventListener("focusout",r),window.removeEventListener("pageshow",r),null!==e&&window.cancelAnimationFrame(e)}},[]),(0,o.useEffect)(()=>{eZ&&tX.current?.focus()},[eZ]);let[ns,nl]=(0,o.useState)(null);return(0,o.useEffect)(()=>{if(!ei||!es)return void nl(null);let e=!1,t=async()=>{try{let t=await fetch("/api/tasks/projects"),{projects:r}=await t.json(),n=r.find(e=>ei===e||ei.startsWith(e+"/")||e.startsWith(ei+"/"));if(!n){e||nl(null);return}let o=await (0,dG.Vk)(n);if(e)return;nl({running:o.filter(e=>["running","awaiting_input","preparing","merging"].includes(e.status)).length,todo:o.filter(e=>["todo","queued"].includes(e.status)).length})}catch{e||nl(null)}};t();let r=new EventSource("/api/tasks/events");return r.onmessage=()=>void t(),()=>{e=!0,r.close()}},[ei,es]),(0,n.jsxs)("fieldset",{disabled:tD,"aria-busy":tD,style:{flexShrink:0,minWidth:0,margin:0,border:0,background:"transparent",padding:eW?"0 16px max(15px, env(safe-area-inset-bottom))":"0 16px 15px",paddingRight:eW?16:34,opacity:tD?.5:1,transition:"opacity 0.15s"},children:[(0,n.jsx)("input",{ref:t6,type:"file",accept:"image/*",multiple:!0,style:{display:"none"},onChange:e=>{rc(Array.from(e.target.files??[])),e.target.value=""}}),(0,n.jsxs)("div",{style:{maxWidth:820,margin:"0 auto"},children:[ns&&(ns.running>0||ns.todo>0)&&(0,n.jsxs)("button",{type:"button",onClick:()=>window.dispatchEvent(new CustomEvent("pi:open-tasks-view")),title:eL("desktop.taskStatusHint"),style:{display:"inline-flex",alignItems:"center",gap:6,marginBottom:8,padding:"3px 10px",borderRadius:999,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",fontSize:11,cursor:"pointer",transition:"border-color 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)",e.currentTarget.style.borderColor="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.borderColor="var(--border)"},children:[(0,n.jsx)(F.m,{size:12,"aria-hidden":"true"}),ns.running>0&&(0,n.jsxs)("span",{style:{color:"var(--accent)"},children:[ns.running," ",eL("desktop.taskRunning")]}),ns.running>0&&ns.todo>0&&(0,n.jsx)("span",{"aria-hidden":"true",children:"\xb7"}),ns.todo>0&&(0,n.jsxs)("span",{children:[ns.todo," ",eL("desktop.taskTodo")]})]}),u&&u.length>0&&(0,n.jsx)("div",{role:"status",style:{marginBottom:8,padding:"6px 10px",borderRadius:6,border:"1px solid color-mix(in srgb, var(--accent-orange) 45%, var(--border))",background:"color-mix(in srgb, var(--accent-orange) 9%, var(--bg-panel))",color:"var(--text-muted)",fontSize:12,lineHeight:1.45},children:u.join(" ")}),(_?.steering.length??0)+(_?.followUp.length??0)>0&&(0,n.jsxs)("div",{style:{marginBottom:8,border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",padding:"5px 0",maxHeight:"30dvh",overflowY:"auto"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"2px 8px 4px 10px"},children:[(0,n.jsxs)("span",{style:{fontSize:10,fontFamily:"var(--font-mono)",color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:.4},children:[eL("desktop.queued")," \xb7 ",(_?.steering.length??0)+(_?.followUp.length??0)]}),K&&(0,n.jsxs)("button",{onClick:K,title:eL("desktop.recallQueuedMessages"),style:{display:"flex",alignItems:"center",gap:6,padding:"4px 12px",fontSize:12,color:"var(--text)",background:"transparent",border:"1px solid var(--border)",borderRadius:7,cursor:"pointer",transition:"background 0.12s, border-color 0.12s",whiteSpace:"nowrap"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.borderColor="color-mix(in srgb, var(--accent) 45%, var(--border))"},onMouseLeave:e=>{e.currentTarget.style.background="transparent",e.currentTarget.style.borderColor="var(--border)"},children:[(0,n.jsx)(dX.Y,{size:13}),eL("desktop.recallToInput")]})]}),_?.steering.map((e,t)=>(0,n.jsx)(cS,{kind:"steer",label:eL("desktop.steer"),text:e,index:t,total:_.steering.length,onMove:V?e=>void rm("steer",t,e):void 0,onRecall:J?()=>void ry("steer",t):void 0,onRemove:X?()=>void rv("steer",t):void 0},`steer-${t}`)),_?.followUp.map((e,t)=>(0,n.jsx)(cS,{kind:"follow-up",label:eL("desktop.followUp"),text:e,index:t,total:_.followUp.length,onMove:V?e=>void rm("followUp",t,e):void 0,onRecall:J?()=>void ry("followUp",t):void 0,onRemove:X?()=>void rv("followUp",t):void 0},`followup-${t}`))]}),ra&&(0,n.jsx)("div",{style:{marginBottom:8,padding:"5px 10px",borderRadius:6,border:"1px solid color-mix(in srgb, var(--accent) 40%, var(--border))",background:"color-mix(in srgb, var(--accent) 8%, var(--bg-panel))",color:"var(--text-muted)",fontSize:12},children:eL("desktop.recalledEditing")}),U&&(0,n.jsxs)("div",{style:{marginBottom:8,padding:"5px 10px",background:"rgba(234,179,8,0.08)",border:"1px solid rgba(234,179,8,0.25)",borderRadius:6,fontSize:12,color:"rgba(180,130,0,0.9)",display:"flex",alignItems:"center",gap:6},children:[(0,n.jsx)(z.B,{size:11,style:{flexShrink:0}}),eL("desktop.retrying")," (",U.attempt,"/",U.maxAttempts,")…",U.errorMessage&&(0,n.jsxs)("span",{style:{opacity:.7,marginLeft:4},children:["— ",U.errorMessage]})]}),nt&&(0,n.jsxs)("div",{style:{marginBottom:8,padding:"5px 10px",background:"rgba(16,185,129,0.08)",border:"1px solid rgba(16,185,129,0.24)",borderRadius:6,fontSize:12,color:"rgba(5,150,105,0.95)",display:"flex",alignItems:"center",gap:6},children:[(0,n.jsx)(f.S,{size:11,style:{flexShrink:0}}),nt]}),th.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:6,marginBottom:6,flexWrap:"wrap"},children:th.map((e,t)=>(0,n.jsxs)("div",{style:{position:"relative",flexShrink:0},children:[(0,n.jsx)(lO,{src:e.previewUrl,children:(0,n.jsx)("img",{src:e.previewUrl,alt:"",style:{width:56,height:56,objectFit:"cover",borderRadius:6,border:"1px solid var(--border)",display:"block"}})},e.previewUrl),(0,n.jsx)("button",{type:"button",onClick:()=>rg(t),title:eL("desktop.removeImage"),"aria-label":eL("desktop.removeImage"),style:{position:"absolute",top:-4,right:-4,width:16,height:16,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)"},children:(0,n.jsx)(g.u,{size:8})})]},t))}),(0,n.jsxs)("div",{style:{position:"relative"},children:[tN&&q.length>0&&(0,n.jsxs)("div",{style:{position:"absolute",left:0,right:0,bottom:"calc(100% + 8px)",zIndex:120,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -6px 20px rgba(0,0,0,0.12)",overflow:"hidden",maxHeight:"min(38vh, 300px)"},children:[(0,n.jsxs)("div",{style:{padding:"4px 8px",borderBottom:"1px solid var(--border)",display:"flex",justifyContent:"space-between",color:"var(--text-dim)",fontSize:11},children:[(0,n.jsx)("span",{children:eL("desktop.inputHistory")}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:eL("desktop.tabOrEnter")})]}),(0,n.jsx)("div",{style:{maxHeight:"calc(min(38vh, 300px) - 24px)",overflowY:"auto",padding:4},children:q.map((e,t)=>(0,n.jsxs)("button",{ref:e=>{re.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),rX(e)},onMouseEnter:()=>tF(t),style:{width:"100%",display:"flex",alignItems:"flex-start",gap:8,padding:"5px 6px",border:"none",borderRadius:5,background:t===tP?"var(--bg-selected)":"transparent",color:"var(--text)",cursor:"pointer",textAlign:"left"},children:[(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:11},children:t+1}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12},children:e})]},`${t}:${e}`))})]}),tv&&null!==rw&&(0,n.jsxs)("div",{style:{position:"absolute",left:0,right:0,bottom:"calc(100% + 8px)",zIndex:120,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -6px 20px rgba(0,0,0,0.12)",overflow:"hidden",maxHeight:"min(38vh, 300px)"},children:[(0,n.jsxs)("div",{style:{padding:"4px 8px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,fontSize:11,color:"var(--text-dim)"},children:[(0,n.jsx)("span",{children:Q?eL("desktop.loadingCommands"):`${eL("desktop.slashCommands")} \xb7 ${rz}`}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:eL("desktop.tabOrEnter")})]}),(0,n.jsx)("div",{style:{maxHeight:"calc(min(38vh, 300px) - 24px)",overflowY:"auto",padding:4},children:Q||0!==rS.length?rC.map(e=>(0,n.jsxs)("section",{style:{marginBottom:6},children:[(0,n.jsxs)("div",{style:{position:"sticky",top:-4,zIndex:1,display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"2px 0 4px",background:"var(--bg)",color:"var(--text-dim)",fontSize:10,fontWeight:600,textTransform:"uppercase"},children:[(0,n.jsx)("span",{children:eD[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:1},children:e.items.map(({command:e,index:t})=>{let r=t===tb;return(0,n.jsxs)("button",{ref:e=>{t8.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),rZ(e)},onMouseEnter:()=>tk(t),style:{width:"100%",display:"flex",alignItems:"center",gap:8,padding:"3px 6px",border:"none",borderRadius:5,background:r?"var(--bg-selected)":"none",color:"var(--text)",cursor:"pointer",textAlign:"left"},children:[(0,n.jsxs)("span",{style:{fontSize:12.5,fontFamily:"var(--font-mono)",whiteSpace:"nowrap",flexShrink:0},children:["/",e.name]}),e.description&&(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:e.description}),ch(e,tw)&&(0,n.jsx)("span",{style:{marginLeft:"auto",flexShrink:0,padding:"1px 5px",borderRadius:999,border:"1px solid var(--border)",color:"var(--text-dim)",fontSize:10},children:eL("desktop.dormant")})]},`${e.source}:${e.name}`)})})]},e.source)):(0,n.jsx)("div",{style:{padding:"2px 2px 2px",fontSize:12,color:"var(--text-dim)"},children:eL("desktop.noSlashCommands")})})]}),tI&&null!==tT&&(eh=t_&&(!tB||tB.cwd!==ei),eg=`${rV.length} ${eL(1===rV.length?"desktop.match":"desktop.matches")}`,ex=tB?.truncated&&!rK?tT.query?` \xb7 ${eL("desktop.searchingAllFiles")}`:` \xb7 ${eL("desktop.indexTruncated")}`:"",(0,n.jsxs)("div",{ref:t7,style:{position:"absolute",left:0,right:0,bottom:"calc(100% + 8px)",zIndex:120,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -6px 20px rgba(0,0,0,0.12)",overflow:"hidden",boxSizing:"border-box",display:"flex",flexDirection:"column",maxHeight:null===tE?"min(30vh, 240px)":`min(30vh, 240px, ${tE}px)`},children:[(0,n.jsxs)("div",{style:{padding:"4px 8px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,fontSize:11,color:"var(--text-dim)",flexShrink:0},children:[(0,n.jsx)("span",{children:eh?eL("desktop.loadingFiles"):`${eL("desktop.files")} \xb7 ${eg}${ex}`}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:eL("desktop.tabOrEnter")})]}),(0,n.jsx)("div",{style:{flex:"1 1 auto",minHeight:0,overflowY:"auto",padding:2},children:eh||0!==rV.length?rV.map((e,t)=>{let r=t===tW,o=e.path.split("/").pop()??e.path,i=e.path.slice(0,e.path.length-o.length);return(0,n.jsxs)("button",{ref:e=>{t9.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),rG(e)},onMouseEnter:()=>tL(t),style:{width:"100%",display:"flex",alignItems:"center",gap:5,padding:"3px 6px",border:"none",borderRadius:5,background:r?"var(--bg-selected)":"none",color:"var(--text)",cursor:"pointer",textAlign:"left",fontSize:12.5,fontFamily:"var(--font-mono)"},children:[(0,n.jsx)("span",{style:{flexShrink:0,display:"flex",alignItems:"center"},children:e.isDir?(0,n.jsx)(oz,{size:14,name:o}):oE(o,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}),o,e.isDir&&(0,n.jsx)("span",{style:{color:"var(--text-dim)"},children:"/"})]})]},`${e.isDir?"d":"f"}:${e.path}`)}):(0,n.jsx)("div",{style:{padding:"4px 6px",fontSize:12,color:"var(--text-dim)"},children:rq&&!rK?eL("desktop.searching"):eL("desktop.noMatchingFiles")})})]})),null!==rI&&rP.length>0&&(0,n.jsxs)("div",{style:{position:"absolute",left:0,right:0,bottom:"calc(100% + 8px)",zIndex:120,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -6px 20px rgba(0,0,0,0.12)",overflow:"hidden",maxHeight:"min(30vh, 240px)"},children:[(0,n.jsx)("div",{style:{padding:"4px 8px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between"},children:(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-dim)",fontWeight:600},children:[rP.length," ",eL("desktop.snippetMatches")]})}),(0,n.jsx)("div",{style:{maxHeight:"min(26vh, 210px)",overflowY:"auto"},children:rP.map((e,t)=>(0,n.jsxs)("button",{type:"button",onMouseEnter:()=>rD(t),onClick:()=>rB(t),style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 10px",background:t===rF?"var(--bg-selected)":"none",border:"none",color:t===rF?"var(--accent)":"var(--text)",cursor:"pointer",fontSize:12,textAlign:"left"},children:[(0,n.jsx)("span",{style:{color:"var(--accent)",fontFamily:"var(--font-mono)",fontSize:11},children:"#"}),(0,n.jsx)("span",{style:{fontWeight:600,flexShrink:0},children:e.name}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-muted)",fontSize:11},children:e.content.split("\n")[0]})]},e.id))})]}),(0,n.jsxs)("div",{className:`chat-input-shell ${l&&(i||s)?"is-streaming":""} ${"yolo"===I?"is-yolo":""}`,ref:tQ,onClick:e=>{e.target.closest("button, input, select, [role=button]")||tJ.current?.focus()},style:{display:"flex",flexDirection:"column",alignItems:"stretch",gap:0,padding:0,transition:"border-color 0.15s, background 0.15s, box-shadow 0.15s"},children:[l&&(0,n.jsx)("div",{className:"chat-input-streaming-overlay hatch-45","aria-hidden":"true"}),el,l&&(i||s)&&(0,n.jsxs)("div",{className:"chat-input-streaming-actions",children:[i&&(0,n.jsx)("button",{type:"button",className:"chat-input-streaming-action chat-input-streaming-action-steer",onClick:()=>r2("steer"),disabled:!rT,title:eL("desktop.injectMessageNow"),"aria-label":eL("desktop.steer"),children:(0,n.jsx)(dZ.A,{size:15})}),s&&(0,n.jsx)("button",{type:"button",className:"chat-input-streaming-action",onClick:()=>r2("followup"),disabled:!rT,title:eL("desktop.queueMessageAfterFinish"),"aria-label":eL("desktop.followUp"),children:(0,n.jsx)(d0.M,{size:15})})]}),eV&&(0,n.jsx)("div",{role:"alert",style:{margin:"0 0 6px",padding:"4px 8px",fontSize:11,lineHeight:1.5,color:"var(--error, #e5484d)",border:"1px solid var(--error, #e5484d)",borderRadius:6},children:eV}),eB.length>0&&(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:4,marginBottom:6},children:eB.map(e=>{let t=e_.includes(e.id);return(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"4px 8px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-secondary)",fontSize:11,color:"var(--text-muted)"},children:[(0,n.jsx)(dQ.d,{size:12,"aria-hidden":"true"}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)"},children:e.label}),(0,n.jsx)("button",{type:"button",onClick:()=>eq(r=>t?r.filter(t=>t!==e.id):[...r,e.id]),title:eL(t?"desktop.pastedHidePreview":"desktop.pastedShowPreview"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:2,display:"flex"},children:(0,n.jsx)(tj.b,{size:12,"aria-hidden":"true"})}),(0,n.jsx)("button",{type:"button",onClick:()=>{eU(t=>t.filter(t=>t.id!==e.id)),eO(t=>t.split(e.label).join(""))},title:eL("desktop.pastedRemove"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:2,display:"flex"},children:(0,n.jsx)(T.u,{size:12,"aria-hidden":"true"})}),t&&(0,n.jsx)("div",{style:{position:"relative"},children:(0,n.jsx)("pre",{style:{position:"absolute",left:0,right:0,top:"calc(100% + 4px)",zIndex:50,maxHeight:200,overflow:"auto",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:6,padding:"8px 10px",fontSize:11,lineHeight:1.5,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:e.text})})]},e.id)})}),(0,n.jsxs)("div",{className:"chat-input-editor-row",style:{borderColor:tf?"var(--tool-bg)":void 0},children:["goal"===C&&$&&"idle"!==$.status&&(0,n.jsxs)("span",{style:{flexShrink:0,display:"inline-flex",alignItems:"center",gap:6,marginRight:8,padding:"2px 8px",borderRadius:6,background:"complete"===$.status?"color-mix(in srgb, var(--accent-green, #22c55e) 14%, transparent)":"blocked"===$.status||"paused"===$.status?"color-mix(in srgb, #f59e0b 14%, transparent)":"color-mix(in srgb, var(--accent) 12%, transparent)",color:"complete"===$.status?"var(--accent-green, #22c55e)":"blocked"===$.status||"paused"===$.status?"var(--status-warning)":"var(--accent)",fontSize:11,fontWeight:600,whiteSpace:"nowrap",userSelect:"none"},title:$.goalText??"",children:[(0,n.jsx)(aH.d,{size:12,weight:"fill","aria-hidden":"true"}),"running"===$.status&&(0,n.jsxs)("span",{children:[eL("desktop.goalRunning")," \xb7 ",$.turnsUsed,"/",$.turnsLimit]}),"complete"===$.status&&(0,n.jsx)("span",{children:eL("desktop.goalComplete")}),"blocked"===$.status&&(0,n.jsx)("span",{children:eL("desktop.goalBlocked")}),"paused"===$.status&&(0,n.jsx)("span",{children:eL("desktop.goalPaused")}),$.noProgressTurns>0&&"running"===$.status&&(0,n.jsxs)("span",{style:{opacity:.8},children:["\xb7 ",eL("desktop.goalNoProgress",{n:$.noProgressTurns})]}),"running"===$.status&&(0,n.jsx)("button",{type:"button",onClick:L,title:eL("desktop.goalPause"),"aria-label":eL("desktop.goalPause"),style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:16,height:16,padding:0,background:"none",border:"none",borderRadius:4,color:"inherit",cursor:"pointer",fontSize:11},children:eL("desktop.goalPauseShort")}),("paused"===$.status||"blocked"===$.status)&&(0,n.jsx)("button",{type:"button",onClick:N,title:eL("desktop.goalResume"),"aria-label":eL("desktop.goalResume"),style:{display:"inline-flex",alignItems:"center",justifyContent:"center",padding:"0 4px",background:"none",border:"none",borderRadius:4,color:"inherit",cursor:"pointer",fontSize:11,fontWeight:600},children:eL("desktop.goalResumeShort")}),(0,n.jsx)("button",{type:"button",onClick:A,title:eL("desktop.goalStop"),"aria-label":eL("desktop.goalStop"),style:{display:"inline-flex",alignItems:"center",justifyContent:"center",padding:"0 3px",background:"none",border:"none",borderRadius:4,color:"inherit",cursor:"pointer",fontSize:11,opacity:.75},children:"✕"})]}),(0,n.jsx)("textarea",{ref:tJ,value:eH,spellCheck:!1,onChange:e=>{eO(e.target.value),rR(e.target.value,e.target.selectionStart),rH(e.target.value,e.target.selectionStart)},onSelect:e=>{let t=e.currentTarget;rR(t.value,t.selectionStart)},onKeyDown:r4,onCompositionStart:()=>{t4.current=!0},onCompositionEnd:e=>{t4.current=!1,t5.current=Date.now();let t=e.currentTarget;rR(t.value,t.selectionStart)},onInput:r5,onPaste:r3,placeholder:l&&(i||s)?eL("desktop.steerOrQueueFollowUp"):l?eL("desktop.agentRunning"):eL("desktop.messageWithCommands"),rows:1,className:"chat-input-textarea",style:{flex:1,background:"none",border:"none",outline:"none",resize:"none",color:"var(--text)",minHeight:24,maxHeight:200,padding:0,overflow:"auto"}})]}),tf&&(0,n.jsxs)("div",{style:{marginTop:4,padding:"2px 8px",fontSize:11,color:tm?"var(--text-muted)":"var(--accent)"},children:[eL("desktop.shellCommand")," \xb7 ",tm?eL("desktop.shellOutputLocal"):eL("desktop.shellOutputModel")]}),(0,n.jsxs)("div",{className:"chat-input-toolbar",style:{display:"flex",alignItems:"center",gap:4},children:[(0,n.jsxs)("div",{ref:t1,className:"chat-input-toolbar-attach",style:{position:"relative"},children:[(0,n.jsx)("button",{onClick:e=>{let t=e.currentTarget.getBoundingClientRect();tl({top:t.top,left:t.left,width:t.width}),ti(e=>!e)},title:eL("desktop.attachMenu"),"aria-label":eL("desktop.attachMenu"),"aria-expanded":to,style:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,padding:0,background:to?"var(--bg-hover)":"none",border:"none",borderRadius:6,color:th.length?"var(--accent)":"var(--text-muted)",cursor:"pointer",transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color=th.length?"var(--accent)":"var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background=to?"var(--bg-hover)":"none",e.currentTarget.style.color=th.length?"var(--accent)":"var(--text-muted)"},children:(0,n.jsx)(S.c,{size:14})}),to&&ts&&(ef=[{id:"upload",label:eL("desktop.attachUpload"),desc:eL("desktop.attachUploadDesc"),icon:R.J},{id:"reference",label:eL("desktop.attachReference"),desc:eL("desktop.attachReferenceDesc"),icon:df.sj},{id:"sessions",label:eL("desktop.attachSessions"),desc:eL("desktop.attachSessionsDesc"),icon:d1.v},{id:"slash",label:eL("desktop.attachCommands"),desc:eL("desktop.attachCommandsDesc"),icon:x.C}],em=window.visualViewport?.height??window.innerHeight,ev=window.innerWidth,ey=Math.min(ts.left,ev-220-8),eb=em-ts.top+6,(0,n.jsx)("div",{role:"menu",style:{position:"fixed",left:ey,bottom:eb,zIndex:1200,width:220,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:12,boxShadow:"0 12px 32px rgba(0,0,0,0.22)",padding:4},children:ef.map(e=>{let t="upload"===e.id&&!eN;return(0,n.jsxs)("button",{type:"button",role:"menuitem",disabled:t,title:t?eL("desktop.imageInputUnsupported"):void 0,onClick:()=>{ti(!1),"upload"===e.id?t6.current?.click():"reference"===e.id?rQ():"sessions"===e.id?r0():"slash"===e.id&&r1()},style:{display:"flex",alignItems:"center",gap:10,width:"100%",padding:"8px 10px",background:e.active?"var(--bg-selected)":"none",border:"none",borderRadius:8,cursor:t?"not-allowed":"pointer",textAlign:"left",opacity:t?.45:1,transition:"background 0.12s"},onMouseEnter:r=>{e.active||t||(r.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:t=>{t.currentTarget.style.background=e.active?"var(--bg-selected)":"none"},children:[(0,n.jsx)(e.icon,{size:16,weight:e.active?"fill":"regular",color:e.active?"var(--accent)":"var(--text-muted)","aria-hidden":"true"}),(0,n.jsxs)("span",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("span",{style:{display:"block",fontSize:12.5,fontWeight:550,color:"var(--text)"},children:e.label}),(0,n.jsx)("span",{style:{display:"block",fontSize:10.5,color:"var(--text-muted)",marginTop:1,lineHeight:1.4},children:t?eL("desktop.imageInputUnsupported"):e.desc})]}),e.active?(0,n.jsx)(f.S,{size:12,weight:"bold",color:"var(--accent)","aria-hidden":"true"}):null]},e.id)})}))]}),(0,n.jsx)("div",{className:"chat-input-toolbar-left",style:{flex:"0 0 auto",minWidth:0,display:"flex",alignItems:"center",gap:2},children:M&&(0,n.jsx)(cr,{collaborationMode:C,onCollaborationModeChange:M,toolApprovalMode:I,onToolApprovalModeChange:E,disabled:l})}),!eW&&(0,n.jsx)("div",{className:"chat-input-toolbar-spacer",style:{flex:1}}),(0,n.jsx)("div",{ref:t2,className:"chat-input-toolbar-controls",style:{flex:eW?"1 1 auto":"0 1 auto",minWidth:0,display:"flex",alignItems:"center",justifyContent:"flex-end",position:"relative",marginLeft:eW?0:"auto"},children:(0,n.jsxs)("div",{className:"chat-input-toolbar-actions",style:{display:"flex",alignItems:"center",gap:eW?1:2,justifyContent:"flex-end",...eW?{flex:"1 1 auto",minWidth:0}:null},children:[H&&(0,n.jsxs)("div",{ref:t0,className:"chat-input-toolbar-thinking",style:{position:"relative"},children:[(0,n.jsxs)("button",{onClick:e=>{if(l)return;let t=e.currentTarget.getBoundingClientRect();tu({top:t.top,left:t.left,width:t.width}),td(e=>!e)},disabled:l,title:l?eL("chat.currentReasoning",{level:nn}):eL("chat.changeReasoning",{level:nn}),"aria-label":eL("chat.changeReasoningLabel"),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5*!eW,padding:eW?0:"0 6px",width:eW?24:void 0,height:24,background:ta?"var(--bg-hover)":"none",border:"none",borderRadius:6,color:(P??"auto")==="off"?"var(--text-dim)":"var(--accent)",cursor:l?"not-allowed":"pointer",fontSize:12,opacity:l?.5:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{l||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.background=ta?"var(--bg-hover)":"none"},children:[(0,n.jsx)(ca,{level:P??"auto"}),!eW&&(0,n.jsx)("span",{style:{whiteSpace:"nowrap"},children:nn})]}),ta&&tc&&(ek=window.visualViewport?.height??window.innerHeight,ew=Math.min(240,(ej=window.innerWidth)-16),eS=Math.min(tc.left,ej-ew-8),eC=ek-tc.top+4,ez=Math.min(360,Math.max(120,Math.min(tc.top-8,.6*ek))),(0,n.jsx)("div",{style:{position:"fixed",bottom:eC,left:eS,zIndex:2001,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 4px 24px rgba(0,0,0,0.12)",overflow:"hidden",minWidth:200,maxWidth:ew,maxHeight:ez,overflowY:"auto"},children:cl.filter(e=>!O||"auto"===e||O.includes(e)).map(e=>{let t="auto"===e?D:!D&&nr===e,r="auto"!==e&&B?B[e]:void 0,o=null!=r&&r!==e?r:eA[e],i=null!=r&&r!==e;return(0,n.jsxs)("button",{onClick:()=>{if(td(!1),"auto"===e){D||H("auto");return}(!t||D)&&H(e)},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 12px",background:t?"var(--bg-selected)":"none",border:"none",color:t?"var(--accent)":"var(--text)",cursor:"pointer",fontSize:12,textAlign:"left",fontFamily:"var(--font-mono)",whiteSpace:"nowrap"},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="none")},children:[(0,n.jsx)(ca,{level:e,size:14}),(0,n.jsxs)("span",{style:{flex:1},children:[o,i&&(0,n.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",marginLeft:5},children:["(",e,")"]})]}),t&&(0,n.jsx)(f.S,{size:12,weight:"bold",color:"var(--accent)",style:{flexShrink:0}})]},e)})}))]}),w&&"plan"===j&&(0,n.jsxs)("div",{ref:tZ,className:"chat-input-toolbar-tools",style:{position:"relative"},children:[" ",(0,n.jsxs)("button",{onClick:e=>{if(l)return;let t=e.currentTarget.getBoundingClientRect();tn({top:t.top,left:t.left,width:t.width}),tt(e=>!e)},disabled:l,title:eL("desktop.changeToolPreset",{preset:ni}),"aria-label":eL("desktop.toolPreset"),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,padding:eW?"0 5px":"3px 7px",width:eW?"auto":void 0,height:24,background:te?"var(--bg-hover)":"none",border:"none",borderRadius:6,color:"var(--text-muted)",cursor:l?"not-allowed":"pointer",fontSize:12,opacity:l?.5:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{l||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background=te?"var(--bg-hover)":"none",e.currentTarget.style.color="var(--text-muted)"},children:[(0,n.jsx)("span",{style:{whiteSpace:"nowrap"},children:ni}),(0,n.jsx)(b.b,{size:11,weight:"bold","aria-hidden":"true",style:{transform:te?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.12s"}})]}),te&&tr&&(eT=window.visualViewport?.height??window.innerHeight,eI=Math.min(200,(eR=window.innerWidth)-16),eM=Math.max(8,eR-(tr.left+tr.width)),eE=eT-tr.top+6,e$=Math.min(320,Math.max(100,Math.min(tr.top-8,.5*eT))),(0,n.jsx)("div",{style:{position:"fixed",bottom:eE,right:eM,zIndex:2001,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 4px 24px rgba(0,0,0,0.12)",overflow:"hidden",minWidth:120,maxWidth:eI,maxHeight:e$,overflowY:"auto"},children:cn.map(e=>{let t=co[e],r="plan"!==j&&(j??"default")===t,o="off"===e?eL("desktop.noToolsReadOnly"):"default"===e?eL("desktop.fourBuiltInTools"):eL("desktop.allBuiltInTools");return(0,n.jsxs)("button",{onClick:()=>{tt(!1),r||w(t)},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 12px",background:r?"var(--bg-selected)":"none",border:"none",color:r?"var(--accent)":"var(--text)",cursor:"pointer",fontSize:12,textAlign:"left",fontFamily:"var(--font-mono)",whiteSpace:"nowrap"},onMouseEnter:e=>{r||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{r||(e.currentTarget.style.background="none")},children:[(0,n.jsx)("span",{style:{flex:1},children:eP[e]}),(0,n.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",marginLeft:8},children:o}),r&&(0,n.jsx)(f.S,{size:12,weight:"bold",color:"var(--accent)",style:{flexShrink:0}})]},e)})}))]}),r8.length>0&&v&&(0,n.jsxs)("div",{ref:tY,className:"chat-input-toolbar-model",style:{position:"relative",flex:eW?"0 1 auto":void 0,minWidth:0},children:[(0,n.jsxs)("button",{onClick:e=>{let t=e.currentTarget.getBoundingClientRect();e1({top:t.top,left:t.left,width:t.width}),eZ||e5(""),eQ(e=>!e)},disabled:l,title:r9??eL("desktop.selectModel"),"aria-label":r9??eL("desktop.selectModel"),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5*!eW,padding:eW?0:"0 6px",width:eW?28:void 0,maxWidth:eW?void 0:"min(220px, 34vw)",height:24,overflow:"hidden",background:eZ?"var(--bg-hover)":"none",border:"none",borderRadius:6,color:"var(--text-muted)",cursor:l?"not-allowed":"pointer",fontSize:12,opacity:l?.5:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{l||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background=eZ?"var(--bg-hover)":"none",e.currentTarget.style.color="var(--text-muted)"},children:[(0,n.jsx)(ru,{id:a?.provider??"unknown",size:14}),!eW&&(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:r9??eL("desktop.selectModel")}),!eW&&(0,n.jsx)(b.b,{size:11,weight:"bold","aria-hidden":"true",style:{flexShrink:0,transform:eZ?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.12s"}})]}),eZ&&e0&&(()=>{let e=e2.height||window.innerHeight,t=e2.width||window.innerWidth,r=e0.top-e2.offsetTop,o=Math.max(6,e-r+6),i=Math.min(400,Math.max(120,Math.min(r-8,.6*e))),s=Math.min(320,i),l=e0.width,d=Math.min(360,t-16),c=eW?{left:8,right:8,maxWidth:"calc(100vw - 16px)"}:{right:Math.max(8,t-(e0.left+e0.width)),width:"max-content",minWidth:Math.min(l,d),maxWidth:d},u=[];for(let e of[...e3]){let[t,r]=e.split(":",2),n=r8.find(e=>e.provider===t&&e.modelId===r);n&&u.push(n)}let p=e4.trim().toLowerCase(),g=p.length>0,x=e=>e.name.toLowerCase().includes(p)||e.modelId.toLowerCase().includes(p)||e.provider.toLowerCase().includes(p),m=g?u.filter(x):u,y=m.length>0,j=g?r7.map(e=>({...e,options:e.options.filter(x)})).filter(e=>e.options.length>0):r7,w=y||j.length>0;return(0,n.jsxs)("div",{ref:tG,className:"chat-input-model-dropdown",style:{position:"fixed",bottom:o,...c,zIndex:2e3,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 4px 24px rgba(0,0,0,0.12)",overflow:"hidden",height:s,maxHeight:i,display:"flex",flexDirection:"column"},children:[(0,n.jsx)("div",{style:{borderBottom:"1px solid var(--border)",flexShrink:0},children:(0,n.jsxs)("div",{style:{position:"relative",display:"flex",alignItems:"center"},children:[(0,n.jsx)(h.$,{size:13,color:"var(--text-dim)",style:{position:"absolute",left:12,pointerEvents:"none"}}),(0,n.jsx)("input",{ref:tX,value:e4,onChange:e=>e5(e.target.value),onKeyDown:e=>{if("Escape"===e.key)e4?e5(""):eQ(!1);else if("ArrowDown"===e.key){let t=tG.current?.querySelector(".model-row button");t&&(e.preventDefault(),t.focus())}},placeholder:eL("desktop.searchModels"),"aria-label":eL("desktop.searchModels"),style:{width:"100%",padding:"5px 12px 5px 34px",background:"transparent",border:"none",outline:"none",color:"var(--text)",fontSize:12,fontFamily:"var(--font-mono)"}})]})}),(0,n.jsxs)("div",{style:{overflowY:"auto",flex:1,minHeight:0},children:[y&&(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{padding:"6px 12px 4px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:eL("desktop.favorites")}),m.map(e=>{let t=e.modelId===a?.modelId&&e.provider===a?.provider,r=e3.has(`${e.provider}:${e.modelId}`);return(0,n.jsx)("div",{className:"model-row",style:{display:"flex",alignItems:"center",width:"100%"},children:(0,n.jsxs)("button",{onClick:()=>{eQ(!1),v(e.provider,e.modelId)},style:{display:"flex",alignItems:"center",gap:8,flex:1,minWidth:0,padding:"6px 12px",background:t?"var(--bg-selected)":"none",border:"none",color:t?"var(--accent)":"var(--text)",cursor:"pointer",fontSize:12,textAlign:"left",fontFamily:"var(--font-mono)",whiteSpace:"nowrap",overflow:"hidden"},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="none")},children:[(0,n.jsx)(ru,{id:e.provider,size:14}),(0,n.jsx)("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",minWidth:0},children:e.name}),t&&(0,n.jsx)(f.S,{size:12,weight:"bold",color:"var(--accent)",style:{flexShrink:0}}),(0,n.jsx)("span",{onClick:t=>{t.stopPropagation(),rp(e.provider,e.modelId)},className:"model-star",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,cursor:"pointer",color:r?"var(--accent)":"var(--text-dim)",opacity:+!!r,transition:"opacity 0.12s, color 0.12s"},onMouseEnter:e=>{e.stopPropagation(),e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.stopPropagation(),e.currentTarget.style.color=r?"var(--accent)":"var(--text-dim)"},title:r?eL("desktop.unfavorite"):eL("desktop.favorite"),"aria-label":r?eL("desktop.unfavorite"):eL("desktop.favorite"),children:(0,n.jsx)(d5.G,{size:12,weight:r?"fill":"regular"})})]})},`fav-${e.provider}:${e.modelId}`)}),(0,n.jsx)("div",{style:{borderTop:"1px solid var(--border)"}})]}),j.map((e,t)=>{let r=g||e7.has(e.provider),o=r?(0,n.jsx)(b.b,{size:10,color:"var(--text-dim)"}):(0,n.jsx)(k.J,{size:10,color:"var(--text-dim)"});return(0,n.jsxs)("div",{children:[(0,n.jsxs)("button",{onClick:()=>rh(e.provider),title:e.provider,style:{display:"flex",alignItems:"center",gap:4,width:"100%",maxWidth:"100%",padding:"6px 12px 4px",background:"none",border:"none",cursor:"pointer",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em",overflow:"hidden",whiteSpace:"nowrap",borderTop:t>0?"1px solid var(--border)":"none"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:[o,(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",minWidth:0},children:e.provider})]}),r&&e.options.map(e=>{let t=e.modelId===a?.modelId&&e.provider===a?.provider,r=e3.has(`${e.provider}:${e.modelId}`);return(0,n.jsx)("div",{className:"model-row",style:{display:"flex",alignItems:"center",width:"100%"},children:(0,n.jsxs)("button",{onClick:()=>{eQ(!1),v(e.provider,e.modelId)},style:{display:"flex",alignItems:"center",gap:8,flex:1,minWidth:0,padding:"6px 12px",background:t?"var(--bg-selected)":"none",border:"none",color:t?"var(--accent)":"var(--text)",cursor:"pointer",fontSize:12,textAlign:"left",fontFamily:"var(--font-mono)",whiteSpace:"nowrap",overflow:"hidden"},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="none")},children:[(0,n.jsx)(ru,{id:e.provider,size:14}),(0,n.jsx)("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",minWidth:0},children:e.name}),t&&(0,n.jsx)(f.S,{size:12,weight:"bold",color:"var(--accent)",style:{flexShrink:0}}),(0,n.jsx)("span",{onClick:t=>{t.stopPropagation(),rp(e.provider,e.modelId)},className:"model-star",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,cursor:"pointer",color:r?"var(--accent)":"var(--text-dim)",opacity:+!!r,transition:"opacity 0.12s, color 0.12s"},onMouseEnter:e=>{e.stopPropagation(),e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.stopPropagation(),e.currentTarget.style.color=r?"var(--accent)":"var(--text-dim)"},title:r?eL("desktop.unfavorite"):eL("desktop.favorite"),"aria-label":r?eL("desktop.unfavorite"):eL("desktop.favorite"),children:(0,n.jsx)(d5.G,{size:12,weight:r?"fill":"regular"})})]})},`${e.provider}:${e.modelId}`)})]},e.provider)}),g&&!w&&(0,n.jsx)("div",{style:{padding:"14px 12px",textAlign:"center",fontSize:12,color:"var(--text-dim)"},children:eL("desktop.noModelsMatch")})]})]})})()]}),0===r8.length&&p&&(0,n.jsxs)("div",{className:"chat-input-toolbar-model",title:`${eL("desktop.modelsLoadFailed")}: ${p}`,style:{display:"flex",alignItems:"center",gap:6,flex:eW?"1 1 auto":void 0,minWidth:0,padding:"3px 7px",height:24,background:"rgba(239,68,68,0.10)",border:"none",borderRadius:6,fontSize:12,overflow:"hidden"},children:[(0,n.jsx)(as.M,{size:14,color:"var(--status-error)",weight:"fill",style:{flexShrink:0}}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,color:"var(--status-error)"},children:eL("desktop.modelsLoadFailed")}),m&&(0,n.jsx)("button",{type:"button",onClick:m,style:{display:"inline-flex",alignItems:"center",gap:4,flexShrink:0,padding:"1px 6px",background:"rgba(239,68,68,0.14)",border:"none",borderRadius:4,color:"var(--status-error)",cursor:"pointer",fontSize:11,fontWeight:600,transition:"background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="rgba(239,68,68,0.24)"},onMouseLeave:e=>{e.currentTarget.style.background="rgba(239,68,68,0.14)"},children:eL("desktop.retry")})]}),0===r8.length&&!p&&(0,n.jsxs)("div",{className:"chat-input-toolbar-model",title:eL("desktop.noModelsConfigured"),style:{display:"flex",alignItems:"center",gap:6,flex:eW?"1 1 auto":void 0,minWidth:0,padding:"3px 7px",height:24,background:"var(--bg-hover)",border:"none",borderRadius:6,color:"var(--text-dim)",fontSize:12,overflow:"hidden"},children:[(0,n.jsx)(as.M,{size:14,color:"var(--text-dim)",style:{flexShrink:0}}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:eL("desktop.noModelsConfigured")})]}),!l&&(0,n.jsx)("button",{type:"button",onClick:rj,disabled:!eH.trim()&&!th.length,className:"chat-input-send",title:eL("desktop.sendMessage"),"aria-label":eL("desktop.sendMessage"),children:(0,n.jsx)(d6.l,{size:14})}),l&&(0,n.jsx)("button",{onClick:r,title:eL("desktop.stopAgent"),"aria-label":eL("desktop.stopAgent"),className:"chat-input-stop",style:{display:"flex",alignItems:"center",justifyContent:"center",padding:0,width:24,height:24,background:"rgba(239,68,68,0.12)",border:"none",borderRadius:4,color:"var(--status-error)",cursor:"pointer",transition:"background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="rgba(239,68,68,0.20)"},onMouseLeave:e=>{e.currentTarget.style.background="rgba(239,68,68,0.12)"},children:(0,n.jsx)(d4.d,{size:14})})]})})]})]})]})]})]})}));function cz(e){return!!e&&"string"==typeof e.type&&"string"==typeof e.data&&"string"==typeof e.mimeType}function cT(e){let t;if(!e||"object"!=typeof e)return null;let r=e.kind;return"steer"!==r&&"followUp"!==r||"string"!=typeof e.text?null:(Array.isArray(e.images)&&0===(t=e.images.filter(cz)).length&&(t=void 0),{kind:r,text:e.text,...t?{images:t}:{}})}function cR({items:e,sessionId:t,onResolve:r,onExport:i,onStageImport:s,onDismiss:l,mode:a="recovery"}){let{t:d}=(0,Y.s)(),c=tp(),[u,p]=(0,o.useState)(()=>new Set(e.map(e=>e.id))),[h,g]=(0,o.useState)(!1),[x,f]=(0,o.useState)(null),m=(0,o.useRef)(null);(0,o.useEffect)(()=>{p(new Set(e.map(e=>e.id)))},[e]),L(!h,l);let v=e.filter(e=>u.has(e.id)),y=v.length===e.length&&e.length>0,b=e=>p(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r}),k=async(e,t=!1)=>{if(0!==v.length){g(!0),f(null);try{await r("keep"===e?v.map(e=>e.id):[],"discard"===e?v.map(e=>e.id):[],t)}catch(e){f(e instanceof Error?e.message:String(e))}finally{g(!1)}}},j=async e=>{let r=await i();if(!r)return;let n=r.recovery.filter(e=>u.has(e.id));if(n.length){var o;let r,i,s,l,a,c,u;o={sessionId:t,source:"recovery"},i="md"===e?(((r=[]).push("# Queued messages export"),o.sessionId&&r.push(`- Session: ${o.sessionId}`),r.push(`- Source: ${"live"===o.source?"live queue":"pending recovery"}`),r.push(`- Exported: ${o.exportedAt??new Date().toISOString()}`),r.push(""),0===n.length)?r.push("_No entries._"):n.forEach((e,t)=>{var n;r.push(`## ${t+1}. ${"steer"===e.kind?"steer":"follow-up"} \xb7 ${new Date(e.queuedAt).toISOString()}`),e.text&&r.push(e.text),e.images?.length&&r.push(`> _${0===(n=e.images.length)?"":1===n?"(1 image)":`(${n} images)`}_`),r.push("")}),r.join("\n")):JSON.stringify({format:"pi-web-queue",version:1,exportedAt:o.exportedAt??new Date().toISOString(),source:o.source,sessionId:o.sessionId,entries:n.map(({kind:e,text:t,images:r})=>({kind:e,text:t,...r?.length?{images:r}:{}}))},null,2),s=new Date().toISOString().replace(/[:.]/g,"-").slice(0,19),l=`${o.sessionId??"session"}-queue-${o.source}-${s}.${e}`,a=new Blob([i],{type:"md"===e?"text/markdown;charset=utf-8":"application/json;charset=utf-8"}),c=URL.createObjectURL(a),(u=document.createElement("a")).href=c,u.download=l,u.click(),setTimeout(()=>URL.revokeObjectURL(c),1e3),f(d("desktop.queueExported",{count:n.length}))}},w=async e=>{let t=function(e){let t;try{t=JSON.parse(e)}catch{return[]}let r=Array.isArray(t)?t:t&&"object"==typeof t&&Array.isArray(t.entries)?t.entries:null;return r?r.map(cT).filter(e=>null!==e):[]}(await e.text());if(!t.length)return void f(d("desktop.queueImportEmpty"));let r=await s(t);f(null===r?d("desktop.queueImportEmpty"):d("desktop.queueImported",{count:r}))};return(0,n.jsxs)("div",{className:"fixed inset-0 z-[1000] flex items-center justify-center bg-black/40 p-3",role:"presentation",children:[(0,n.jsxs)("div",{role:"dialog","aria-modal":"true","aria-label":"import"===a?d("desktop.queueImportTitle"):d("desktop.queueRecoveryTitle"),className:"flex max-h-[88dvh] w-full max-w-2xl flex-col overflow-hidden rounded-xl border border-(--border) bg-(--bg) shadow-2xl",children:[(0,n.jsxs)("header",{className:"flex flex-wrap items-start gap-3 border-b border-(--border) bg-(--bg-panel) px-4 py-3",children:[(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsx)("h2",{className:"text-sm font-semibold text-(--text)",children:"import"===a?d("desktop.queueImportTitle"):d("desktop.queueRecoveryTitle")}),(0,n.jsx)("p",{className:"mt-1 text-xs leading-5 text-(--text-muted)",children:"import"===a?d("desktop.queueImportDescription"):d("desktop.queueRecoveryDescription")})]}),(0,n.jsxs)("div",{className:"flex items-center gap-1",children:[(0,n.jsx)("button",{type:"button",className:"markdown-code-action",onClick:()=>p(new Set(y?[]:e.map(e=>e.id))),children:y?d("desktop.selectNone"):d("desktop.selectAll")}),(0,n.jsx)("button",{type:"button",className:"markdown-code-action",disabled:h||0===v.length,onClick:()=>void j("json"),children:"JSON"}),(0,n.jsx)("button",{type:"button",className:"markdown-code-action",disabled:h||0===v.length,onClick:()=>void j("md"),children:"MD"}),(0,n.jsx)("button",{type:"button",className:"markdown-code-action",disabled:h,onClick:()=>m.current?.click(),children:d("desktop.import")}),(0,n.jsx)("button",{type:"button",className:"markdown-code-action",onClick:l,"aria-label":d("desktop.close"),children:"\xd7"})]})]}),(0,n.jsx)("div",{className:"grid flex-1 content-start gap-2 overflow-y-auto p-3",children:e.map(e=>{let t=u.has(e.id);return(0,n.jsxs)("button",{type:"button",onClick:()=>b(e.id),"aria-pressed":t,className:["flex w-full items-start gap-3 rounded-lg border p-3 text-left transition",t?"border-(--accent) bg-(--bg-selected)":"border-(--border) bg-(--bg-panel) hover:bg-(--bg-hover)"].join(" "),children:[(0,n.jsx)("input",{type:"checkbox",checked:t,onChange:()=>b(e.id),onClick:e=>e.stopPropagation(),className:"mt-1 accent-[var(--accent)]"}),(0,n.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,n.jsxs)("span",{className:"flex flex-wrap items-center gap-2 text-[11px] text-(--text-dim)",children:[(0,n.jsx)("span",{className:"rounded-full border border-(--border) px-2 py-0.5 font-mono uppercase",children:"steer"===e.kind?d("desktop.steer"):d("desktop.followUp")}),(0,n.jsx)("span",{children:new Date(e.queuedAt).toLocaleString()}),e.hasImages?(0,n.jsx)("span",{children:d("desktop.queueImages")}):null]}),(0,n.jsx)("span",{className:"mt-2 block whitespace-pre-wrap break-words border-l-2 border-(--border) pl-2 text-xs leading-5 text-(--text)",children:e.text||d("desktop.queueNoText")})]})]},e.id)})}),(0,n.jsxs)("footer",{className:["flex flex-wrap items-center gap-2 border-t border-(--border) px-4 py-3",c?"justify-stretch":"justify-end"].join(" "),children:[x?(0,n.jsx)("span",{className:"mr-auto text-xs text-(--text-muted)",children:x}):null,(0,n.jsx)("button",{type:"button",className:"rounded-md px-3 py-2 text-xs text-(--text-muted) hover:bg-(--bg-hover)",onClick:l,disabled:h,children:d("desktop.dismiss")}),(0,n.jsx)("button",{type:"button",className:"rounded-md border border-red-400/40 px-3 py-2 text-xs text-red-400 disabled:opacity-40",onClick:()=>void k("discard"),disabled:h||0===v.length,children:d("desktop.discard")}),(0,n.jsx)("button",{type:"button",className:"rounded-md border border-(--accent) px-3 py-2 text-xs text-(--accent) disabled:opacity-40",onClick:()=>void k("keep"),disabled:h||0===v.length,children:d("desktop.requeue")}),(0,n.jsx)("button",{type:"button",className:"rounded-md bg-(--accent) px-3 py-2 text-xs text-white disabled:opacity-40",onClick:()=>void k("keep",!0),disabled:h||0===v.length,children:d("desktop.requeueAndContinue")})]})]}),(0,n.jsx)("input",{ref:m,type:"file",accept:".json,application/json",className:"hidden",onChange:e=>{let t=e.target.files?.[0];t&&w(t),e.currentTarget.value=""}})]})}var cI=r(36405),cM=r(92185),cE=r(75877),c$=r(30830);function cW(e){let t=e,r=t.compressedEntryIds?.length??0;for(;1===t.children.length;)t=t.children[0],r+=1+(t.compressedEntryIds?.length??0);return{node:t,skipped:r}}function cL(e){if(e.length>1)return!0;let t=[...e];for(;t.length>0;){let e=t.pop();if(e.children.length>1)return!0;for(let r of e.children)t.push(r)}return!1}function cN({node:e,assistantLabel:t,activePathIds:r,depth:o,isLast:i,parentLines:s,onSelect:l}){let{node:a,skipped:d}=cW(e),c=r.has(a.entry.id),u=r.has(e.entry.id)||r.has(a.entry.id),p=function(e,t){if("message"===e.type&&"message"in e){let r=e.message,n=r.content,o="";if("string"==typeof n?o=n:Array.isArray(n)&&(o=n.filter(e=>"text"===e.type).map(e=>e.text).join(" ")),o.length>40&&(o=o.slice(0,40)+"…"),o)return o;if("assistant"===r.role)return`[${t}]`}return e.type}(a.entry,t),h="message"===a.entry.type&&"message"in a.entry?a.entry.message.role:null;return(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",height:24,cursor:"pointer"},onClick:()=>l(a.entry.id),children:[s.map((e,t)=>(0,n.jsx)("div",{style:{width:16,flexShrink:0,position:"relative",height:"100%",alignSelf:"stretch"},children:e&&(0,n.jsx)("div",{style:{position:"absolute",left:7,top:0,bottom:0,width:1,background:"var(--border)"}})},t)),(0,n.jsxs)("div",{style:{width:16,flexShrink:0,position:"relative",height:"100%",alignSelf:"stretch"},children:[(0,n.jsx)("div",{style:{position:"absolute",left:7,top:0,bottom:i?"50%":0,width:1,background:"var(--border)"}}),(0,n.jsx)("div",{style:{position:"absolute",left:7,top:"50%",width:9,height:1,background:"var(--border)"}})]}),(0,n.jsx)("div",{style:{width:7,height:7,borderRadius:"50%",flexShrink:0,background:c?"var(--accent)":u?"var(--text-muted)":"var(--border)",border:c?"none":"1px solid var(--text-dim)",marginRight:6,transition:"background 0.12s"}}),h&&(0,n.jsx)("span",{style:{fontSize:9,fontFamily:"var(--font-mono)",color:"user"===h?"var(--accent)":"var(--text-dim)",background:"user"===h?"rgba(37,99,235,0.08)":"var(--bg-hover)",border:`1px solid ${"user"===h?"rgba(37,99,235,0.2)":"var(--border)"}`,borderRadius:3,padding:"0 4px",marginRight:5,flexShrink:0,lineHeight:"16px"},children:"user"===h?"U":"A"}),d>0&&(0,n.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",marginRight:5,flexShrink:0},children:["+",d]}),(0,n.jsx)("span",{style:{fontSize:11,color:c?"var(--text)":u?"var(--text-muted)":"var(--text-dim)",fontWeight:c?500:400,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:p})]}),a.children.map((e,d)=>(0,n.jsx)(cN,{node:e,assistantLabel:t,activePathIds:r,depth:o+1,isLast:d===a.children.length-1,parentLines:[...s,!i],onSelect:l},e.entry.id))]})}function cA({tree:e,activeLeafId:t,onLeafChange:r,inline:i,containerRef:s,open:l,onToggle:a,hasSession:d,embedded:c}){let{t:u}=(0,Y.s)(),[p,h]=(0,o.useState)(!1),g=void 0!==l?l:p,x=(0,o.useRef)(null),[f,m]=(0,o.useState)(null);(0,o.useEffect)(()=>{if(!g||!i)return;let e=s?.current??x.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect(),r=Math.max(8,Math.min(t.left,window.innerWidth-8-180)),n=window.innerWidth-8-r,o=Math.min(Math.max(t.width,Math.min(180,n)),n);m({top:t.bottom,left:r,width:o})};t();let r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[g,i,s]);let v=(0,o.useMemo)(()=>(function(e,t){if(!t)return new Set;let r=e.map(e=>({node:e,path:[e.entry.id]}));for(;r.length>0;){let{node:e,path:n}=r.pop();if(e.entry.id===t||e.compressedEntryIds?.includes(t))return new Set(n);for(let t of e.children)r.push({node:t,path:[...n,t.entry.id]})}return new Set})(e,t),[e,t]),k=(0,o.useCallback)(e=>{r(e)},[r]),j=d?cL(e)?null:u("desktop.sessionHasNoBranches"):u("desktop.noActiveSession"),w=e.length>0?cW(e[0]):null,S=w?.node??null,C=!j&&S&&S.children.length>1,z=(0,n.jsx)(y.Z,{size:16,"aria-hidden":"true",style:{flexShrink:0}}),T=(0,n.jsx)(b.a,{size:8,color:"var(--text-dim)","aria-hidden":"true",style:{marginLeft:1,transition:"transform 0.15s",transform:g?"rotate(180deg)":"none"}});return i?(0,n.jsxs)("div",{style:{height:"100%",display:"flex",alignItems:"stretch"},children:[(0,n.jsx)("button",{ref:x,className:"app-no-drag",onClick:()=>a?a():h(e=>!e),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:g?"var(--bg-selected)":"none",border:"none",cursor:"pointer",color:g?"var(--text)":"var(--text-muted)",flexShrink:0,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background=g?"var(--bg-selected)":"none",e.currentTarget.style.color=g?"var(--text)":"var(--text-muted)"},title:u("desktop.branches"),"aria-label":u("desktop.branches"),"aria-pressed":g,children:z}),g&&f&&(0,n.jsx)("div",{className:"app-no-drag",style:{position:"fixed",top:f.top,left:f.left,width:f.width,background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",zIndex:500},children:C&&S?(0,n.jsx)("div",{style:{padding:"4px 12px 8px 12px",maxHeight:260,overflowY:"auto"},children:S.children.map((e,t)=>(0,n.jsx)(cN,{node:e,assistantLabel:u("desktop.assistant"),activePathIds:v,depth:0,isLast:t===S.children.length-1,parentLines:[],onSelect:k},e.entry.id))}):(0,n.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:j})})]}):c?C&&S?(0,n.jsx)("div",{style:{padding:"4px 8px 8px 8px"},children:S.children.map((e,t)=>(0,n.jsx)(cN,{node:e,assistantLabel:u("desktop.assistant"),activePathIds:v,depth:0,isLast:t===S.children.length-1,parentLines:[],onSelect:k},e.entry.id))}):(0,n.jsx)("div",{style:{padding:"10px 12px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:j??u("desktop.sessionHasNoBranches")}):(0,n.jsxs)("div",{style:{borderBottom:"1px solid var(--border)",background:"var(--bg)",flexShrink:0,position:"relative"},children:[(0,n.jsxs)("button",{onClick:()=>h(e=>!e),style:{display:"flex",alignItems:"center",gap:6,width:"100%",padding:"5px 12px",background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",fontSize:11,textAlign:"left"},children:[z,(0,n.jsx)("span",{style:{color:"var(--text-muted)"},children:u("desktop.branches")}),T]}),g&&(0,n.jsx)("div",{style:{position:"absolute",top:"100%",left:0,right:0,background:"var(--bg)",borderBottom:"1px solid var(--border)",boxShadow:"0 4px 12px rgba(0,0,0,0.1)",zIndex:100},children:C&&S?(0,n.jsx)("div",{style:{padding:"4px 12px 8px 12px",maxHeight:260,overflowY:"auto"},children:S.children.map((e,t)=>(0,n.jsx)(cN,{node:e,assistantLabel:u("desktop.assistant"),activePathIds:v,depth:0,isLast:t===S.children.length-1,parentLines:[],onSelect:k},e.entry.id))}):(0,n.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:j??u("desktop.sessionHasNoBranches")})})]})}var cP=r(33846);function cF({open:e,onOpenChange:t,cwd:r}){let{t:i}=(0,Y.s)(),[s,l]=(0,o.useState)([]),[a,d]=(0,o.useState)(""),[c,u]=(0,o.useState)(!1),[p,h]=(0,o.useState)(null),[x,f]=(0,o.useState)(null);L(e&&!c,()=>t(!1));let m=(0,o.useCallback)(async()=>{if(r)try{let e=await fetch(`/api/git/stash?${new URLSearchParams({cwd:r}).toString()}`,{cache:"no-store"});if(e.ok){let t=await e.json();l(t.entries)}}catch{}},[r]);if((0,o.useEffect)(()=>{e&&m()},[e,m]),!e)return null;let v=async(e,t)=>{u(!0),h(null),f(null);try{let n=await fetch(`/api/git/stash?${new URLSearchParams({cwd:r??""}).toString()}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e,message:a||void 0,ref:t})}),o=await n.json();n.ok&&o.ok?(f(o.output??i("tasks.stashDone")),d(""),m()):h(o.error??`HTTP ${n.status}`)}catch(e){h(e instanceof Error?e.message:String(e))}finally{u(!1)}};return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:950,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(520px, calc(100vw - 48px))",maxHeight:"min(75vh, 560px)",overflow:"auto",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:14,boxShadow:"0 16px 48px rgba(0,0,0,0.3)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px 0"},children:[(0,n.jsx)("h3",{style:{fontSize:15,fontWeight:600,margin:0},children:i("desktop.stashTitle")}),(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),"aria-label":i("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(g.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12,padding:"14px 16px 16px"},children:[(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[(0,n.jsx)("input",{value:a,onChange:e=>d(e.target.value),placeholder:i("desktop.stashMessagePlaceholder"),style:{width:"100%",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"7px 10px",color:"var(--text)",fontSize:13,outline:"none",fontFamily:"inherit"}}),(0,n.jsxs)("button",{type:"button",onClick:()=>void v("push"),disabled:c,style:{alignSelf:"flex-start",display:"inline-flex",alignItems:"center",gap:5,padding:"7px 14px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:c?"not-allowed":"pointer"},children:[(0,n.jsx)(cP.c,{size:13,"aria-hidden":"true"}),i("desktop.stashPush")]})]}),p&&(0,n.jsx)("div",{style:{padding:"8px 10px",borderRadius:8,background:"rgba(239,68,68,0.10)",color:"var(--status-error)",fontSize:12,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:p}),x&&(0,n.jsx)("div",{style:{padding:"8px 10px",borderRadius:8,background:"rgba(34,197,94,0.10)",color:"var(--status-success)",fontSize:12,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:x}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column"},children:[(0,n.jsxs)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",marginBottom:6},children:[i("desktop.stashList")," (",s.length,")"]}),0===s.length?(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)"},children:i("desktop.stashEmpty")}):(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:s.map(e=>(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"7px 10px",borderRadius:8,border:"1px solid var(--border)",background:"var(--bg)"},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-muted)",flexShrink:0},children:e.index}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.message||e.ref}),(0,n.jsxs)("button",{type:"button",onClick:()=>void v("pop",e.ref),disabled:c,title:i("desktop.stashPop"),style:{display:"inline-flex",alignItems:"center",gap:3,padding:"4px 8px",borderRadius:6,border:"1px solid var(--border)",background:"none",color:"var(--text)",fontSize:11,cursor:c?"not-allowed":"pointer"},children:[(0,n.jsx)(z.S,{size:11,"aria-hidden":"true"}),i("desktop.stashPop")]}),(0,n.jsx)("button",{type:"button",onClick:()=>void v("drop",e.ref),disabled:c,title:i("desktop.stashDrop"),style:{display:"inline-flex",alignItems:"center",padding:"4px 8px",borderRadius:6,border:"1px solid var(--border)",background:"none",color:"var(--status-error)",fontSize:11,cursor:c?"not-allowed":"pointer"},children:i("desktop.stashDrop")})]},e.ref))})]})]})]})})}function cD({cwd:e}){let{t}=(0,Y.s)(),[r,i]=(0,o.useState)(!1),[s,l]=(0,o.useState)("idle"),[a,d]=(0,o.useState)(null),[c,u]=(0,o.useState)(!1),p=(0,o.useCallback)(async()=>{if(e&&!r){i(!0),l("idle");try{let r=await fetch(`/api/git/push?${new URLSearchParams({cwd:e}).toString()}`,{method:"POST",cache:"no-store"}),n=await r.json();r.ok&&n.ok?(l("ok"),d(n.output||t("desktop.pushOk"))):(l("error"),d(n.error??t("desktop.pushFailed")))}catch(e){l("error"),d(e instanceof Error?e.message:t("desktop.pushFailed"))}finally{i(!1),setTimeout(()=>{l("idle"),d(null)},4e3)}}},[e,r,t]);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button",className:"session-info-bar-button",onClick:()=>void p(),disabled:!e||r,title:t("desktop.push"),"aria-label":t("desktop.push"),style:{position:"relative"},children:"ok"===s?(0,n.jsx)(ei.r,{size:13,color:"var(--status-success)",weight:"fill","aria-hidden":"true"}):"error"===s?(0,n.jsx)(nC.J,{size:13,color:"var(--status-error)",weight:"fill","aria-hidden":"true"}):(0,n.jsx)(cP.c,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("button",{type:"button",className:"session-info-bar-button",onClick:()=>u(!0),disabled:!e,title:t("desktop.stash"),"aria-label":t("desktop.stash"),children:(0,n.jsx)(I.T,{size:13,"aria-hidden":"true"})}),a&&(0,n.jsx)("div",{style:{position:"fixed",bottom:60,left:"50%",transform:"translateX(-50%)",zIndex:1200,maxWidth:"60vw",padding:"8px 14px",borderRadius:8,background:"var(--bg-panel)",border:`1px solid ${"ok"===s?"var(--status-success)":"var(--status-error)"}`,boxShadow:"0 8px 24px rgba(0,0,0,0.2)",fontSize:12,color:"ok"===s?"var(--status-success)":"var(--status-error)",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:a}),(0,n.jsx)(cF,{open:c,onOpenChange:u,cwd:e})]})}function cH({onViewFullHistory:e,cwd:t,systemPrompt:r,sessionStats:i,contextUsage:s,hasSession:l,showChat:a,soundEnabled:d,onSoundToggle:c,onCompact:u,onAbortCompaction:p,isCompacting:h,compactError:g,branchTree:x,branchActiveLeafId:m,onBranchLeafChange:v,showSoundLabel:b,lastTurnUsage:k}){let{t:j}=(0,Y.s)(),w=tp(),[S,C]=(0,o.useState)(null),z=(0,o.useCallback)(()=>C(null),[]),T=(0,o.useRef)(null),[R,I]=(0,o.useState)(null),M=(0,o.useCallback)(()=>{let e=T.current;if(!e)return;let t=function(e,t,r=8,n=4){let o=Math.max(0,t.width-2*r),i=Math.max(r,Math.min(Math.round(t.height-e+n),t.height-r-120)),s=Math.max(0,Math.round(t.height-i-r));return{left:r,right:r,width:o,bottom:i,maxHeight:s}}(e.getBoundingClientRect().top,{width:window.innerWidth,height:window.innerHeight});I({position:"fixed",left:t.left,right:t.right,width:t.width,bottom:t.bottom,minWidth:0,maxWidth:t.width,maxHeight:t.maxHeight,overflowY:"auto"})},[]),E=(0,o.useRef)(null),$=(0,o.useCallback)((e,t)=>{if(E.current===e){E.current=null,C(null),I(null),T.current=null;return}E.current=e,T.current=t.closest(".session-info-bar-popover-host"),C(e),w?M():I(null)},[w,M]);(0,o.useEffect)(()=>{if(S&&R)return window.addEventListener("resize",M),()=>window.removeEventListener("resize",M)},[S,R,M]);let[W,L]=(0,o.useState)(null),N=(0,o.useRef)(null),A=(0,o.useCallback)((e,t)=>{nA(t).then(()=>{N.current&&clearTimeout(N.current),L(e),N.current=setTimeout(()=>L(null),1400)})},[]),P=(0,o.useMemo)(()=>{if(!r)return 0;let e=0;for(let t of r){let r=t.codePointAt(0)??0;r>=19968&&r<=40959||r>=13312&&r<=19903||r>=131072&&r<=173791||r>=12352&&r<=12447||r>=12448&&r<=12543||r>=44032&&r<=55215?e+=1:e+=.25}return Math.max(1,Math.round(e))},[r]);if(!a)return null;let F=i?.tokens,D=i?.cost??0,H=i?.costCNY??0,O=i?.costUSD??0,B=[];H>0&&B.push(au(H)),O>0&&B.push(O>=.01?`$${O.toFixed(2)}`:"<$0.01"),0===B.length&&D>0&&B.push(D>=.01?`$${D.toFixed(2)}`:"<$0.01");let U=B.length>0?B.join(" + "):null,_="var(--text-muted)";if(s?.contextWindow){let e=s.percent;null!==e&&e>90?_="var(--status-error)":null!==e&&e>70&&(_="rgba(234,179,8,0.95)")}let K=null!==r&&""!==r,V=i&&F&&(F.input>0||F.output>0),J=l&&v,G=[];if(F&&(G.push(`${j("desktop.sessionInfoInput")}: ${F.input.toLocaleString()}`),G.push(`${j("desktop.sessionInfoOutput")}: ${F.output.toLocaleString()}`),F.cacheRead>0&&G.push(`${j("desktop.sessionInfoCacheRead")}: ${F.cacheRead.toLocaleString()}`),F.cacheWrite>0&&G.push(`${j("desktop.sessionInfoCacheWrite")}: ${F.cacheWrite.toLocaleString()}`),H>0&&G.push(`${j("desktop.sessionInfoCostOfficial")}: ${au(H)}`),O>0&&G.push(`${j("desktop.sessionInfoCost")}: $${O.toFixed(4)}`),H<=0&&O<=0&&D>0&&G.push(`${j("desktop.sessionInfoCost")}: $${D.toFixed(4)}`)),s?.contextWindow&&null!==s.percent){let e=s.percent,t=s.tokens;G.push(`${j("desktop.sessionInfoContext")}: ${null!==e?`${e.toFixed(1)}%`:"?"} ${null!==t?ol(t):"?"}/${ol(s.contextWindow)}`)}let X=G.join(" | ");return(0,n.jsxs)("div",{className:"session-info-bar",children:[t&&(0,n.jsx)(cD,{cwd:t}),c&&(0,n.jsxs)("button",{type:"button",className:"session-info-bar-button",onClick:c,title:d?j("desktop.disableCompletionSound"):j("desktop.enableCompletionSound"),"aria-label":d?j("desktop.disableCompletionSound"):j("desktop.enableCompletionSound"),children:[d?(0,n.jsx)(cI.Q,{size:13}):(0,n.jsx)(cM.l,{size:13}),b&&(0,n.jsx)("span",{style:{marginLeft:4},children:d?j("desktop.soundLabelOn"):j("desktop.soundLabelOff")})]}),l&&(0,n.jsx)("button",{type:"button",className:"session-info-bar-button",onClick:e,title:j("desktop.viewFullHistory"),"aria-label":j("desktop.viewFullHistory"),children:(0,n.jsx)(cE.n,{size:13,"aria-hidden":"true"})}),J&&(0,n.jsxs)("div",{className:"session-info-bar-popover-host",children:[(0,n.jsx)("button",{type:"button",className:`session-info-bar-button${"branches"===S?" is-active":""}`,onClick:e=>$("branches",e.currentTarget),title:j("desktop.branches"),"aria-label":j("desktop.branches"),"aria-pressed":"branches"===S,children:(0,n.jsx)(y.Z,{size:13,"aria-hidden":"true"})}),"branches"===S&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"session-info-bar-popover-cover",onClick:z}),(0,n.jsxs)("div",{className:"session-info-bar-popover is-branches",style:R??void 0,children:[(0,n.jsxs)("div",{className:"session-info-bar-popover-header",children:[(0,n.jsx)("span",{className:"session-info-bar-popover-title",children:j("desktop.branches")}),(0,n.jsx)("button",{type:"button",className:"session-info-bar-popover-close",onClick:z,title:j("i18n.close"),"aria-label":j("i18n.close"),children:"✕"})]}),(0,n.jsx)("div",{className:"session-info-bar-popover-body",children:(0,n.jsx)(cA,{tree:x??[],activeLeafId:m??null,onLeafChange:e=>{v(e),z()},hasSession:!0,embedded:!0})})]})]})]}),K&&(0,n.jsxs)("div",{className:"session-info-bar-popover-host",children:[(0,n.jsx)("button",{type:"button",className:`session-info-bar-button${"system"===S?" is-active":""}`,onClick:e=>$("system",e.currentTarget),title:j("desktop.systemPrompt"),"aria-label":j("desktop.systemPrompt"),"aria-pressed":"system"===S,children:(0,n.jsx)(dQ.i,{size:13,"aria-hidden":"true"})}),"system"===S&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"session-info-bar-popover-cover",onClick:z}),(0,n.jsxs)("div",{className:"session-info-bar-popover is-system",style:R??void 0,children:[(0,n.jsxs)("div",{className:"session-info-bar-popover-header",children:[(0,n.jsx)("span",{className:"session-info-bar-popover-title",children:j("desktop.systemPrompt")}),(0,n.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",marginLeft:8},children:["~",ol(P)," tokens"]}),(0,n.jsx)("div",{style:{flex:1}}),(0,n.jsx)("button",{type:"button",className:"session-info-bar-popover-close",onClick:z,title:j("i18n.close"),"aria-label":j("i18n.close"),children:"✕"})]}),(0,n.jsx)("div",{className:"session-info-bar-system-body",children:r?(0,n.jsx)(s_.oz,{remarkPlugins:[lb.A],children:r}):(0,n.jsx)("span",{className:"session-info-bar-popover-empty",children:"System prompt is empty (tools are disabled)"})})]})]})]}),(0,n.jsx)("div",{className:"session-info-bar-spacer"}),u&&(0,n.jsxs)("div",{className:"session-info-bar-compact-wrap",children:[g&&(0,n.jsx)("div",{className:"session-info-bar-compact-error",children:g}),(0,n.jsx)("button",{type:"button",className:`session-info-bar-button${h?" is-compacting":""}`,onClick:h?p:u,title:h?j("desktop.stopCompaction"):j("desktop.compactContext"),"aria-label":h?j("desktop.stopCompaction"):j("desktop.compactContext"),children:h?(0,n.jsx)(d4.M,{size:13}):(0,n.jsx)(c$.C,{size:13})})]}),V&&(0,n.jsxs)("div",{className:"session-info-bar-popover-host",children:[(0,n.jsxs)("button",{type:"button",className:`session-info-bar-button is-stats${"session"===S?" is-active":""}`,onClick:e=>$("session",e.currentTarget),title:X||j("desktop.sessionInfo"),"aria-label":j("desktop.sessionInfo"),"aria-pressed":"session"===S,children:[F&&F.input>0&&(0,n.jsxs)("span",{className:"session-info-bar-token-chip",children:[(0,n.jsx)(an.D,{size:10,"aria-hidden":"true"}),ol(F.input)]}),F&&F.output>0&&(0,n.jsxs)("span",{className:"session-info-bar-token-chip",children:[(0,n.jsx)(ar.y,{size:10,"aria-hidden":"true"}),ol(F.output)]}),F&&F.cacheRead>0&&(0,n.jsxs)("span",{className:"session-info-bar-token-chip",children:[(0,n.jsx)(q.W,{size:10,"aria-hidden":"true"}),ol(F.cacheRead)]}),U&&(0,n.jsx)("span",{children:U}),s?.contextWindow&&null!==s.percent&&(0,n.jsx)("span",{className:"session-info-bar-token-chip",style:{color:_},children:(0,n.jsxs)("svg",{className:"session-info-bar-donut",width:"16",height:"16",viewBox:"0 0 16 16","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"8",cy:"8",r:"6.75",fill:"none",stroke:"var(--border)",strokeWidth:"2.5"}),(0,n.jsx)("circle",{className:"session-info-bar-donut-arc",cx:"8",cy:"8",r:"6.75",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",pathLength:100,strokeDasharray:100,strokeDashoffset:null===s.percent?0:100-Math.min(100,Math.max(0,s.percent)),transform:"rotate(-90 8 8)"})]})})]}),"session"===S&&i&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"session-info-bar-popover-cover",onClick:z}),(0,n.jsx)("div",{className:"session-info-bar-popover is-session",style:R??void 0,children:(0,n.jsx)("div",{className:"session-stats-body",children:(()=>{let e=i.tokens,t=s??i.contextUsage,r=(e,t)=>{let r=W===e;return(0,n.jsx)("button",{type:"button",className:`session-stats-copy${r?" is-copied":""}`,title:r?j("desktop.copied"):"file"===e?j("desktop.copyFilePath"):j("desktop.copySessionId"),onClick:()=>A(e,t),children:r?(0,n.jsx)(f.J,{size:12,"aria-hidden":"true"}):(0,n.jsx)(sU.Q,{size:12,"aria-hidden":"true"})})},o=[];i.sessionName&&o.push((0,n.jsx)("div",{className:"session-stats-info-name",children:i.sessionName},"name")),o.push((0,n.jsxs)("div",{className:"session-stats-info-line",children:[(0,n.jsx)("span",{className:"session-stats-info-text",children:i.sessionFile?i.sessionFile.split(/[/\\]/).pop()??i.sessionFile:j("desktop.sessionInfoInMemory")}),i.sessionFile?r("file",i.sessionFile):null]},"file")),o.push((0,n.jsxs)("div",{className:"session-stats-info-line",children:[(0,n.jsx)("span",{className:"session-stats-info-text",children:i.sessionId}),r("id",i.sessionId)]},"id"));let l=[[j("desktop.sessionInfoUser"),i.userMessages.toLocaleString()],[j("desktop.sessionInfoAssistant"),i.assistantMessages.toLocaleString()],[j("desktop.sessionInfoToolCalls"),i.toolCalls.toLocaleString()],[j("desktop.sessionInfoToolResults"),i.toolResults.toLocaleString()],[j("desktop.sessionInfoTotal"),i.totalMessages.toLocaleString()]],a=[[j("desktop.sessionInfoInput"),e.input.toLocaleString()],[j("desktop.sessionInfoOutput"),e.output.toLocaleString()]];e.cacheRead>0&&a.push([j("desktop.sessionInfoCacheRead"),e.cacheRead.toLocaleString()]),e.cacheWrite>0&&a.push([j("desktop.sessionInfoCacheWrite"),e.cacheWrite.toLocaleString()]),a.push([j("desktop.sessionInfoTotal"),e.total.toLocaleString()]);let d=i.costCNY??0,c=i.costUSD??0;if(d>0&&a.push([j("desktop.sessionInfoCostOfficial"),au(d)]),c>0&&a.push([j("desktop.sessionInfoCost"),`$${c.toFixed(4)}`]),d<=0&&c<=0&&i.cost>0&&a.push([j("desktop.sessionInfoCost"),`$${i.cost.toFixed(4)}`]),t?.contextWindow&&null!==t.percent){let e=t.percent,r=t.tokens;a.push([j("desktop.sessionInfoContext"),`${null!==e?`${e.toFixed(1)}%`:"?"} ${null!==r?ol(r):"?"}/${ol(t.contextWindow)}`])}(i.totalActiveMs??0)>0&&a.push([j("desktop.sessionInfoActiveTime"),function(e){if(e<=0)return"0s";let t=Math.floor(e/1e3),r=Math.floor(t/3600),n=Math.floor(t%3600/60),o=t%60;return r>0?`${r}h ${n}m`:n>0?`${n}m ${o}s`:`${o}s`}(i.totalActiveMs)]);let u=k?k.costCNY>0?au(k.costCNY):k.costUSD>0?`$${k.costUSD.toFixed(4)}`:null:null,p=(e,t)=>(0,n.jsxs)("div",{className:"session-stats-row",children:[(0,n.jsx)("div",{className:"session-stats-label",children:e}),(0,n.jsx)("div",{className:"session-stats-value",children:t})]},e);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"session-stats-info-block",children:o}),(0,n.jsxs)("div",{className:"session-stats-side-by-side",children:[(0,n.jsxs)("div",{className:"session-stats-column",children:[(0,n.jsx)("div",{className:"session-stats-section-title",children:j("desktop.sessionInfoMessages")}),(0,n.jsx)("div",{className:"session-stats-compact-grid",children:l.map(([e,t])=>p(e,t))})]}),(0,n.jsxs)("div",{className:"session-stats-column",children:[(0,n.jsx)("div",{className:"session-stats-section-title",children:j("desktop.sessionInfoTokens")}),(0,n.jsx)("div",{className:"session-stats-compact-grid",children:a.map(([e,t])=>p(e,t))})]}),k&&(0,n.jsxs)("div",{className:"session-stats-column",children:[(0,n.jsx)("div",{className:"session-stats-section-title",children:j("desktop.turnUsageTitle")}),(0,n.jsxs)("div",{className:"session-stats-compact-grid",children:[p(j("desktop.sessionInfoInput"),k.input.toLocaleString()),p(j("desktop.sessionInfoOutput"),k.output.toLocaleString()),k.cacheRead>0&&p(j("desktop.sessionInfoCacheRead"),k.cacheRead.toLocaleString()),u&&p(j("desktop.sessionInfoCost"),u)]})]})]})]})})()})})]})]})]})}var cO=r(68635);function cB(e){return Math.ceil(e.getBoundingClientRect().height)}function cU({scrollElementRef:e,items:t,itemKeys:r,estimateSize:i=120,overscan:s=8,virtualizerRef:l,headerHeight:a=0}){let d=(0,o.useRef)(null),c=(0,o.useRef)(r),[u,p]=(0,o.useState)(null);(0,o.useEffect)(()=>{p(e.current)},[e]);let h=(0,cO.Te)({count:t.length,getScrollElement:()=>u??e.current,estimateSize:(0,o.useCallback)(()=>i,[i]),overscan:s,getItemKey:(0,o.useCallback)(e=>r[e]??`idx-${e}`,[r]),scrollMargin:a,measureElement:(e,t,r)=>{let n=r.indexFromElement(e),o=e.getAttribute("data-item-key"),s=r.options.getItemKey(n),l=d.current;return l&&e.isConnected&&e.parentElement===l&&o===s&&o===c.current[n]&&l.getClientRects().length?cB(e):r.itemSizeCache.get(s)??i}});h.shouldAdjustScrollPositionOnItemSizeChange=()=>!1,l&&(l.current=h);let g=(0,o.useCallback)(()=>{let e=d.current;if(e)for(let{index:t,size:r}of function(e,t){if(!e.isConnected||0===e.getClientRects().length)return[];let r=[];for(let n of Array.from(e.children)){let e=Number(n.getAttribute("data-index"));n.isConnected&&Number.isInteger(e)&&!(e<0)&&!(e>=t.length)&&n.getAttribute("data-item-key")===t[e]&&r.push({index:e,size:cB(n)})}return r}(e,c.current))h.options.getItemKey(t)===c.current[t]&&h.resizeItem(t,r)},[h]);(0,o.useLayoutEffect)(()=>{c.current=r,g()},[r,t,g]),(0,o.useEffect)(()=>{let e=d.current;if(!e)return;let t=new MutationObserver(t=>{t.some(t=>"attributes"!==t.type||t.target!==e&&t.target.parentNode!==e)&&g()});t.observe(e,{childList:!0,characterData:!0,subtree:!0,attributes:!0,attributeFilter:["class","style","hidden","open","src","width","height"]});let r=()=>{"visible"===document.visibilityState&&g()};return document.addEventListener("visibilitychange",r),e.addEventListener("load",g,!0),()=>{t.disconnect(),document.removeEventListener("visibilitychange",r),e.removeEventListener("load",g,!0)}},[g]);let x=(0,o.useRef)(!1),f=(0,o.useRef)(h);f.current=h,(0,o.useEffect)(()=>{x.current||0===t.length||u&&(x.current=!0,f.current.scrollToIndex(t.length-1,{align:"end"}))},[t.length,u]);let m=h.getVirtualItems();return(0,n.jsx)("div",{ref:d,className:"virtualized-message-list",style:{position:"relative",width:"100%",minWidth:0,height:h.getTotalSize()},children:m.map(e=>(0,n.jsx)("div",{"data-index":e.index,"data-item-key":e.key,ref:h.measureElement,style:{position:"absolute",top:0,left:0,width:"100%",minWidth:0,overflow:"clip",transform:`translateY(${e.start-a}px)`},children:t[e.index]},e.key))})}function c_(e){return e.replace(/<\/?[\w:-]+\b[^>]*>/g," ").replace(/&lt;\/?[\w:-]+\b[^&]*?&gt;/gi," ").replace(/\s+/g," ").trim()}function cq(e){return"user"===e.role||"assistant"===e.role&&(e.content??[]).some(e=>"text"===e.type||"thinking"===e.type||"toolCall"===e.type)}function cK({messages:e,streamingMessage:t,scrollContainer:r,messageRefs:i,onWidthChange:s,virtualizer:l}){var a;let[d,c]=(0,o.useState)(0),[u,p]=(0,o.useState)(1),[h,g]=(0,o.useState)(!1),[x,f]=(0,o.useState)([]),[m,v]=(0,o.useState)(!1),[y,b]=(0,o.useState)(null),[k,j]=(0,o.useState)(0),w=(0,o.useRef)(!1),S=(0,o.useRef)(null),C=(0,o.useMemo)(()=>t?[...e,t]:e,[e,t]),z=(0,o.useRef)(C);z.current=C;let T=(0,o.useCallback)(()=>{let e=r.current;if(!e)return;let t=e.scrollHeight,n=e.clientHeight,o=t-n;g(o>20),o<=0?(c(0),p(1)):(c(e.scrollTop/o),p(n/t))},[r]),R=(0,o.useRef)(null),I=(0,o.useRef)([]),M=(0,o.useRef)(l);M.current=l;let E=(0,o.useCallback)(()=>{R.current||(R.current=setTimeout(()=>{R.current=null;let e=r.current;if(!e)return;let t=e.scrollHeight;if(t<=0)return;let n=[],o=z.current,s=M.current;if(s){if(0>=s.totalHeight())return;let e=0,r=new Set;for(let i=0;i<o.length;i++){let l=o[i];if("user"!==l.role&&"assistant"!==l.role)continue;let a=s.refToItemIndex(e);if(e+=1,void 0===a||r.has(a)||!cq(l))continue;r.add(a);let d=s.getOffsetForIndex(a),c=s.sizeFor(a);n.push({topRatio:d/t,heightRatio:Math.max(c/t,1/t),msg:l,index:n.length})}}else{let r=i.current,s=0;for(let i=0;i<o.length;i++){let l=o[i];if("user"!==l.role&&"assistant"!==l.role)continue;let a=r?.[s];if(s++,cq(l)&&a){let r=a.getBoundingClientRect(),o=e.getBoundingClientRect(),i=r.top-o.top+e.scrollTop,s=r.height;n.push({topRatio:i/t,heightRatio:s/t,msg:l,index:n.length})}}}let l=I.current;l.length===n.length&&n.every((e,t)=>1e-6>Math.abs(e.topRatio-l[t].topRatio)&&1e-6>Math.abs(e.heightRatio-l[t].heightRatio))||(I.current=n,f(n))},150))},[r,i]);(0,o.useEffect)(()=>{let e=r.current;if(e)return e.addEventListener("scroll",T,{passive:!0}),()=>e.removeEventListener("scroll",T)},[r,T]),(0,o.useEffect)(()=>{let e=r.current;if(!e)return;let t=()=>{T(),E()},n=new ResizeObserver(t);return n.observe(e),e.firstElementChild&&n.observe(e.firstElementChild),t(),()=>{n.disconnect(),R.current&&(clearTimeout(R.current),R.current=null)}},[r,E,T]),(0,o.useEffect)(()=>{let e=setTimeout(()=>{T(),E()},50);return()=>clearTimeout(e)},[e.length,E,T]);let $=(0,o.useCallback)(e=>{let t=r.current;if(!t)return;let n=t.scrollHeight-t.clientHeight;n<=0||(t.scrollTop=Math.max(0,Math.min(1-u,e))/(1-u)*n)},[r,u]),W=(0,o.useCallback)(e=>{if(!h)return;w.current=!0;let t=e.currentTarget.getBoundingClientRect(),r=(e.clientY-t.top)/t.height,n=r-d*(1-u),o=n>=0&&n<=u?n:u/2;$(r-o);let i=e=>{w.current&&$((e.clientY-t.top)/t.height-o)},s=()=>{w.current=!1,window.removeEventListener("mousemove",i),window.removeEventListener("mouseup",s)};window.addEventListener("mousemove",i),window.addEventListener("mouseup",s)},[h,u,d,$]);(0,o.useEffect)(()=>{if(!h)return void j(0);let e=S.current;if(!e)return;let t=()=>j(e.clientHeight),r=new ResizeObserver(t);return r.observe(e),t(),()=>r.disconnect()},[h]);let L=(0,o.useMemo)(()=>{if(k<=0)return[];let e=[];return x.map(t=>{let r=t.topRatio*k,n=Math.max(3,Math.min(46,t.heightRatio*k)),o=Math.max(0,r-n/2),i=Math.min(k,r+n/2),s=e.findIndex(e=>o>=e+1);return -1===s?(s=e.length,e.push(i)):e[s]=i,{...t,displayTopPx:r,lane:s}})},[x,k]),N=Math.max(18,4+5*(a=(0,o.useMemo)(()=>L.reduce((e,t)=>Math.max(e,t.lane+1),1),[L]))+(a-1)*1);if((0,o.useEffect)(()=>{s?.(h?N:18)},[N,s,h]),(0,o.useEffect)(()=>()=>s?.(18),[s]),!h)return null;let A=d*(1-u)*100,P=100*u,F=null!==y&&L.length>0?L.reduce((e,t)=>Math.abs(t.displayTopPx/k-y)<Math.abs(L[e].displayTopPx/k-y)?t.index:e,0):null,D=null===F?null:L.find(e=>e.index===F)??null;return(0,n.jsxs)("div",{ref:S,onMouseDown:W,onMouseEnter:()=>v(!0),onMouseLeave:()=>{v(!1),b(null)},onMouseMove:e=>{let t=e.currentTarget.getBoundingClientRect();b((e.clientY-t.top)/t.height)},style:{width:N,flexShrink:0,position:"relative",cursor:"pointer",userSelect:"none",background:"transparent",overflow:"visible"},children:[(0,n.jsx)("div",{style:{position:"absolute",left:1,right:1,top:`${A}%`,height:`${P}%`,background:"color-mix(in srgb, var(--text-muted) 14%, transparent)",pointerEvents:"none",zIndex:1}}),L.map(e=>{let t=function(e){if("user"===e.role)return"var(--accent)";let t=e.content??[];return t.some(e=>"toolCall"===e.type&&e.error)?"var(--accent-red)":t.some(e=>"toolCall"===e.type)?"var(--accent-green)":"var(--text-dim)"}(e.msg),r=m&&D?.index===e.index,o="user"===e.msg.role,i=Math.max(3,Math.min(46,e.heightRatio*k)),s=2+6*e.lane;return(0,n.jsx)("div",{style:{position:"absolute",top:e.displayTopPx,transform:"translateY(-50%)",left:s,width:5,height:i,display:"flex",alignItems:"stretch",cursor:"pointer",zIndex:function(e){if("user"===e.role)return 6;let t=e.content??[];return t.some(e=>"toolCall"===e.type&&e.error)?5:t.some(e=>"text"===e.type&&!!e.text?.trim())?4:t.some(e=>"toolCall"===e.type)?3:2}(e.msg)},children:(0,n.jsx)("div",{style:{width:"100%",height:"100%",borderRadius:1,background:t,opacity:r?1:o?.92:.72,transition:"opacity 0.1s, filter 0.1s",filter:r?"brightness(1.2)":"none"}})},e.index)}),m&&D&&(()=>{let e=function(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 c_(r).slice(0,200);let n=t.filter(e=>"thinking"===e.type).map(e=>c_(e.thinking??"")).filter(Boolean).join(" ");if(n)return n.slice(0,200);let o=t.filter(e=>"toolCall"===e.type).map(e=>e.toolName);if(o.length)return o.join(", ")}return""}(D.msg);if(!e)return null;let t=function(e){if("user"===e.role)return"var(--minimap-preview-user-bg)";let t=e.content??[];return t.some(e=>"toolCall"===e.type&&e.error)?"var(--minimap-preview-error-bg)":t.some(e=>"toolCall"===e.type)?"var(--minimap-preview-tool-bg)":"var(--minimap-preview-default-bg)"}(D.msg),r=Math.max(1,Math.min(5,Math.floor(k/120))),o=15*r+4,i=Math.max(o/2,Math.min(k-o/2,D.displayTopPx));return(0,n.jsx)("div",{style:{position:"absolute",top:i,transform:"translateY(-50%)",right:"100%",marginRight:6,background:t,border:"none",borderRadius:4,padding:"2px 7px",width:220,zIndex:100,pointerEvents:"none"},children:(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text)",lineHeight:"15px",display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:r,overflow:"hidden",overflowWrap:"anywhere"},children:e})})})()]})}function cV(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function cJ(e){return function(e,t={}){if("assistant"!==e.role)return e;let r=e.content;if(!Array.isArray(r))return e;let n=r.map(e=>(function(e,t={}){if(!cV(e)||"toolCall"!==e.type)return null;let r={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},n=t.includeStreamingRawInput?function(e){if("string"==typeof e.rawInput)return e.rawInput;if("string"==typeof e.partialJson)return e.partialJson;if("string"==typeof e.partialArgs)return e.partialArgs;let t=cV(e.customInput)?e.customInput:null,r=t&&"string"==typeof t.property?t.property:null,n=cV(e.arguments)?e.arguments:null;return r&&n&&"string"==typeof n[r]?n[r]:void 0}(e):void 0;return void 0===n?r:{...r,rawInput:n}})(e,t)??e);return{...e,content:n}}(e)}var cY=r(24188),cG=r(14755);function cX(e){if(!e)return 0;let t=0;for(let r of e){let e=r.codePointAt(0)??0;e>=19968&&e<=40959||e>=13312&&e<=19903||e>=131072&&e<=173791||e>=12352&&e<=12447||e>=12448&&e<=12543||e>=44032&&e<=55215?t+=1:t+=.25}return Math.max(0,Math.round(t))}function cZ(){return"u">typeof performance?performance.now():Date.now()}function cQ(){return globalThis.__piSessionViewCache||(globalThis.__piSessionViewCache=new Map),globalThis.__piSessionViewCache}function c0(e){var t;return("message_start"===e.type||"message_end"===e.type)&&"object"==typeof(t=e.message)&&null!==t&&!Array.isArray(t)&&"system"===e.message.role}function c1(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function c2(e,t,r,n=8){return e+t>=r-n}function c6(e,t){let r="u">typeof document?document.documentElement.lang:null,n=(0,cY.d9)(r)?r:"en",o=(0,cY.gw)("en"),i=(0,cY.gw)(n);return o||i?(0,rv.u0)(n,e,{en:o?.messages,...i?{[n]:i.messages}:{}},t):e}function c4(e,t){switch(t.type){case"start":return{isStreaming:!0,streamingMessage:null};case"resume":return{...e,isStreaming:!0};case"update":return{isStreaming:!0,streamingMessage:t.message};case"end":case"reset":return{isStreaming:!1,streamingMessage:null};default:return e}}function c5(e){return e?"running_command"===e.phase||e.isBashRunning?{kind:"running_command"}:"waiting_model"===e.phase||e.isStreaming||e.isPromptRunning||e.isCompacting?{kind:"waiting_model"}:null:null}function c3(e,t){return e.length===t.length&&e.every((e,r)=>e===t[r])}function c8(e){return{steering:e?.steering??[],followUp:e?.followUp??[]}}function c7(e){return e&&"auto"!==e?e:null}let c9=["You are in PLAN MODE.","<economy-profile>","<delivery-profile>","<goal-profile>"],ue=new Set(["ArrowUp","ArrowDown","PageUp","PageDown","Home","End"," ","Space","Spacebar"]);class ut extends Error{constructor(e){super("timeout"===e?"Timed out connecting to the agent event stream. Please try again.":"Failed to connect to the agent event stream. Please try again."),this.status=e,this.name="EventStreamConnectionError"}}function ur(e){return new Promise(t=>setTimeout(t,e))}function un(e){let t=e.findIndex(e=>!e.exiting);return -1===t?e:e.map((e,r)=>r===t?{...e,exiting:!0}:e)}function uo(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:un(e.visible),pending:[...e.pending,t.notice]};return{...e,visible:[...e.visible,t.notice]};case"mark_oldest_exiting":return{...e,visible:un(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=un(r)),{visible:r,pending:n}}(e.visible.filter(e=>e.id!==t.id),e.pending);default:return e}}function ui(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 us(e){let t,r=e.content;return"string"==typeof r?JSON.stringify({text:r,images:[]}):Array.isArray(r)?JSON.stringify({text:"string"==typeof(t=e.content)?t:Array.isArray(t)?t.map(e=>e&&"object"==typeof e&&"text"===e.type&&"string"==typeof e.text?e.text:"").filter(Boolean).join("\n"):"",images:r.map(ui).filter(Boolean)}):JSON.stringify({text:"",images:[]})}function ul(e,t){return e&&"object"==typeof e?"number"!=typeof e.tokensBefore||"number"!=typeof e.estimatedTokensAfter?null:{reason:t,tokensBefore:e.tokensBefore,estimatedTokensAfter:e.estimatedTokensAfter}:null}let ua="pi-web:modes-global-default",ud="pi:open-tasks-view";function uc({session:e,newSessionCwd:t,onAgentEnd:i,onSessionCreated:s,onSessionForked:l,modelsRefreshKey:d,chatInputRef:c,onBranchDataChange:u,onSystemPromptChange:p,onSessionStatsChange:h,onSessionStatsPanelOpen:g,onContextUsageChange:x,onOpenFile:f,onWorkspaceControlsHostChange:m,onViewFullHistory:v,systemPrompt:y,tasksBoardEnabled:b,onOpenSession:k,onOpenSubagent:j,subagentRuns:w}){var S;let C,{soundEnabled:z,onSoundToggle:T,playDoneSound:R,unlockAudio:I}=function(){let[e,t]=(0,o.useState)(()=>{let e=localStorage.getItem("pi-sound-enabled");return null===e||"true"===e}),r=(0,o.useRef)(e);(0,o.useEffect)(()=>{r.current=e},[e]);let n=(0,o.useRef)(null),i=(0,o.useCallback)(()=>{if(n.current&&"closed"!==n.current.state)return n.current;try{n.current=new AudioContext}catch{return null}return n.current},[]),s=(0,o.useCallback)((e=!1)=>{if(!e&&!r.current)return;let t=i();t&&"suspended"===t.state&&t.resume().catch(()=>{})},[i]);return{soundEnabled:e,onSoundToggle:(0,o.useCallback)(()=>{let e=!r.current;e&&s(!0),r.current=e,localStorage.setItem("pi-sound-enabled",String(e)),t(e)},[s]),playDoneSound:(0,o.useCallback)(()=>{if(!r.current)return;let e=i();if(!e)return;let t=()=>{try{let t;t=e.currentTime,[523.25,659.25].forEach((r,n)=>{let o=e.createOscillator(),i=e.createGain();o.connect(i),i.connect(e.destination),o.type="sine",o.frequency.value=r;let s=t+.18*n;i.gain.setValueAtTime(0,s),i.gain.linearRampToValueAtTime(.18,s+.02),i.gain.exponentialRampToValueAtTime(.001,s+.45),o.start(s),o.stop(s+.45)})}catch{}};"suspended"===e.state?e.resume().then(t).catch(()=>{}):t()},[i]),unlockAudio:s,soundEnabledRef:r}}(),M=tp(),{t:E}=(0,Y.s)(),$=(0,o.useRef)(R);$.current=R;let W=(0,o.useRef)(z);W.current=z;let L=(0,o.useRef)(null),N=(0,o.useCallback)(()=>{W.current&&$.current(),i?.()},[i]),A=(0,o.useCallback)(e=>{let t=e;if("string"==typeof e.content){let r=te(e.content);r&&(t={...e,content:r})}c?.current?.replaceMessage(t)},[c]),P=(0,o.useCallback)(e=>{c?.current?.prependText(e)},[c]),F=(0,o.useCallback)((e,t)=>{aG={text:e,projectRoot:t??null},window.dispatchEvent(new CustomEvent(aY)),window.dispatchEvent(new Event(ud))},[]),{loading:D,error:H,messages:O,activeToolResults:B,entryIds:U,streamState:_,agentRunning:q,bashRunning:K,pendingBash:V,modelNames:J,modelList:G,modelThinkingLevels:X,modelThinkingLevelMaps:Z,modelScopeWarnings:Q,modelsError:ee,reloadModels:et,toolPreset:er,thinkingLevel:en,isAutoThinkingSelection:eo,retryInfo:ei,contextUsage:es,forkingEntryId:el,isCompacting:ea,compactError:ed,compactResult:ec,displayModel:eu,sessionStats:ep,tokenRate:eh,slashCommands:eg,slashCommandsLoading:ex,queuedMessages:ef,pendingRecovery:em,recoveryIsImport:ev,notices:ey,extensionDialog:eb,extensionCustomUi:ek,extensionStatuses:ej,extensionWidgets:ew,respondToExtensionUi:eS,sendExtensionCustomInput:eC,agentPhase:ez,isNew:eT,branchTree:eR,activeLeafId:eI,handleLeafChange:eM,sessionIdRef:eE,messagesEndRef:e$,scrollContainerRef:eW,lastUserMsgRef:eL,pendingScrollToUserRef:eN,initialScrollDoneRef:eA,scrollUserMsgToTop:eP,handleSend:eF,executeBash:eD,handleAbort:eH,handleFork:eO,handleNavigate:eB,handleModelChange:eU,handleCompact:e_,handleSteer:eq,handleFollowUp:eK,handlePromptWithStreamingBehavior:eV,handleAbortCompaction:eJ,handleRecallQueue:eY,resolveRecovery:eG,exportQueueData:eX,stageQueueImport:eZ,moveQueuedMessage:tt,recallQueuedMessage:tr,requeueAt:tn,removeQueuedMessage:to,handleBuiltinSlashCommand:ti,handleToolPresetChange:ts,handleThinkingLevelChange:tl,loadSlashCommands:ta,planMode:td,collaborationMode:tc,toolApprovalMode:tu,handleCollaborationModeChange:th,handleToolApprovalModeChange:tg,approvalRequests:tx,resolveApproval:tf,goalState:tm,handleGoalStart:tv,handleGoalPause:ty,handleGoalResume:tb,handleGoalStop:tk,handleGoalEdit:tj,historyCursor:tw,hasEarlierMessages:tS,loadContext:tC}=function(e){let{session:t,newSessionCwd:n,onAgentEnd:i,onSessionCreated:s,onSessionForked:l,modelsRefreshKey:a,onBranchDataChange:d,onSystemPromptChange:c,onSessionStatsPanelOpen:u}=e,p=null===t&&null!==n,h=`${t?.id??"new"}\0${n??t?.cwd??""}`,[g,x]=(0,o.useState)(null),f=(0,o.useRef)(null),m=(0,o.useRef)(0),v=(0,o.useRef)(null),[y,b]=(0,o.useState)(!p),[k,j]=(0,o.useState)(null),[w,S]=(0,o.useState)(null),[C,z]=(0,o.useState)([]),[T,R]=(0,o.useState)(new Map),[I,M]=(0,o.useState)([]),[E,$]=(0,o.useState)(null),[W,L]=(0,o.useState)(!1),[N,A]=(0,o.useReducer)(c4,{isStreaming:!1,streamingMessage:null}),P=(0,o.useRef)(!1);P.current=N.isStreaming;let[F,D]=(0,o.useState)(null),H=(0,o.useRef)({lastChars:0,window:[]}),O=(0,o.useCallback)(()=>{H.current={lastChars:0,window:[]},D(null)},[]),B=(0,o.useCallback)(e=>{if(!e||"assistant"!==e.role)return 0;let t=e.content;if(!Array.isArray(t))return 0;let r=0;for(let e of t)"string"==typeof e?r+=cX(e):e&&"object"==typeof e&&("string"==typeof e.text?r+=cX(e.text):"string"==typeof e.thinking&&(r+=cX(e.thinking)));return r},[]),U=(0,o.useCallback)(e=>{let t=B(e),r=H.current;if(t===r.lastChars)return;let n=Date.now(),o=Math.max(0,t-r.lastChars);r.lastChars=t,r.window.push({at:n,chars:o});let i=n-1e3;for(;r.window.length>0&&r.window[0].at<i;)r.window.shift();let s=r.window.reduce((e,t)=>e+t.chars,0),l=r.window.length>0?n-r.window[0].at:0;l<200||D(Math.max(0,Math.round(s/Math.max(1,l)*1e4)/10))},[B]),[_,q]=(0,o.useState)(!1),[K,V]=(0,o.useState)(!1),[J,Y]=(0,o.useState)(null),[G,X]=(0,o.useState)({}),[Z,Q]=(0,o.useState)([]),[ee,et]=(0,o.useState)({}),[er,en]=(0,o.useState)({}),[eo,ei]=(0,o.useState)([]),[es,el]=(0,o.useState)(null),[ea,ed]=(0,o.useState)(null),[ec,eu]=(0,o.useState)(null),[ep,eh]=(0,o.useState)(cG.Q8),eg=(0,o.useRef)("default"),ex=(0,o.useRef)(!1),[ef,em]=(0,o.useState)(()=>(function(){try{let e=window.localStorage.getItem(ua);if(!e)return null;let t=JSON.parse(e),r=t.permissionRules;return{collaborationMode:e2(t.collaborationMode),tokenMode:e6(t.tokenMode),toolApprovalMode:e4(t.toolApprovalMode),permissionRules:{allow:Array.isArray(r?.allow)?r.allow:[],ask:Array.isArray(r?.ask)?r.ask:[],deny:Array.isArray(r?.deny)?r.deny:[]}}}catch{return null}})()??{collaborationMode:eQ,tokenMode:e0,toolApprovalMode:e1,permissionRules:{allow:[],ask:[],deny:[]}}),ev=(0,o.useRef)(null),ey=(0,o.useRef)(!1),eb=(0,o.useRef)(t?.id??null);eb.current=t?.id??null,(0,o.useEffect)(()=>{let e=!1,t=async()=>{let t=eb.current,r=t?`?session=${encodeURIComponent(t)}`:"";try{let n=await fetch(`/api/modes${r}`);if(!n.ok||e)return;let o=await n.json();if(e)return;let i={collaborationMode:e2(o.collaborationMode),tokenMode:e6(o.tokenMode),toolApprovalMode:e4(o.toolApprovalMode),permissionRules:{allow:Array.isArray(o.permissionRules?.allow)?o.permissionRules.allow:[],ask:Array.isArray(o.permissionRules?.ask)?o.permissionRules.ask:[],deny:Array.isArray(o.permissionRules?.deny)?o.permissionRules.deny:[]}};if(!ey.current&&t&&"plan"===i.collaborationMode){let r=await fetch("/api/modes").catch(()=>null);if(!e&&r?.ok){let n=await r.json().catch(()=>null);if(!e&&n){let e=i.collaborationMode;(i={...i,collaborationMode:e2(n.collaborationMode)}).collaborationMode!==e&&fetch(`/api/modes?session=${encodeURIComponent(t)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)}).catch(()=>{})}}}ey.current=!0,em(i),t||function(e){try{window.localStorage.setItem(ua,JSON.stringify(e))}catch{}}(i)}catch{}};t();let r=()=>void t();return window.addEventListener("pi:modes-changed",r),()=>{e=!0,ey.current=!1,window.removeEventListener("pi:modes-changed",r)}},[t?.id]);let ek=ef.collaborationMode,ej=ef.tokenMode,ew=ef.toolApprovalMode,eS=ef.permissionRules,eC="plan"===ek;(0,o.useEffect)(()=>{ex.current=eC},[eC]);let ez=(0,o.useRef)(ek),eT=(0,o.useRef)(ej),eR=(0,o.useRef)(ew),eI=(0,o.useRef)(ef.permissionRules),eM=(0,o.useRef)(null),eE=(0,o.useRef)({sessionKey:"",signature:""}),e$=(0,o.useRef)(ef);(0,o.useEffect)(()=>{e$.current=ef},[ef]),(0,o.useEffect)(()=>{eR.current=ew},[ew]),(0,o.useEffect)(()=>{eI.current=ef.permissionRules},[ef.permissionRules]),(0,o.useEffect)(()=>{ez.current=ek,eE.current={sessionKey:"",signature:""}},[ek]),(0,o.useEffect)(()=>{eT.current=ej,eE.current={sessionKey:"",signature:""}},[ej]);let[eW,eL]=(0,o.useState)([]),eN=(0,o.useRef)([]);(0,o.useEffect)(()=>{eN.current=eW},[eW]);let[eA,eP]=(0,o.useState)({status:"idle",goalText:null,turnsUsed:0,turnsLimit:10,noProgressTurns:0,noProgressLimit:4,tokensUsed:0,tokenBudget:null,timeUsedSeconds:0}),eF=(0,o.useRef)(eA);(0,o.useEffect)(()=>{eF.current=eA},[eA]);let[eD,eH]=(0,o.useState)(!0),eO=(0,o.useRef)(!1),[eB,eU]=(0,o.useState)("auto"),[e_,eq]=(0,o.useState)(null),[eK,eV]=(0,o.useState)(null),[eJ,eY]=(0,o.useState)(null),[eG,eX]=(0,o.useState)(null),[eZ,tt]=(0,o.useState)(null),[tr,tn]=(0,o.useState)(null),[to,ti]=(0,o.useState)(null),ts=(0,o.useRef)(null),tl=(0,o.useCallback)(e=>{let t=e?.model;t&&"string"==typeof t.provider&&"string"==typeof t.modelId&&ti({provider:t.provider,modelId:t.modelId}),e?.thinkingLevel!==void 0&&eq(c7(e.thinkingLevel))},[]);(0,o.useEffect)(()=>{tn(null),ti(null),ts.current=null,rT.current+=1},[t?.id]);let[ta,td]=(0,o.useState)(null),[tc,tu]=(0,o.useState)(!1),[tp,th]=(0,o.useState)(null),[tg,tx]=(0,o.useState)(null),[tf,tm]=(0,o.useState)(null),[tv,ty]=(0,o.useState)(!1),[tb,tk]=(0,o.useState)(!1),[tj,tw]=(0,o.useState)([]),[tS,tC]=(0,o.useState)(!1),[tz,tT]=(0,o.useReducer)(uo,{visible:[],pending:[]}),[tM,t$]=(0,o.useState)(null),[tW,tL]=(0,o.useState)(null),[tN,tA]=(0,o.useState)(null),[tP,tF]=(0,o.useState)([]),[tD,tH]=(0,o.useState)([]),[tO,tB]=(0,o.useState)({steering:[],followUp:[]}),tU=(0,o.useCallback)(e=>{tB(t=>{let r="function"==typeof e?e(t):e;return c3(t.steering,r.steering)&&c3(t.followUp,r.followUp)?t:r})},[]),[t_,tq]=(0,o.useState)([]),tK=(0,o.useCallback)(e=>{tq(t=>{let r="function"==typeof e?e(t):e;return t.length===r.length&&t.every((e,t)=>{let n=r[t];return e.id===n.id&&e.kind===n.kind&&e.text===n.text&&e.hasImages===n.hasImages})?t:r})},[]),[tV,tJ]=(0,o.useState)(!1),tY=(0,o.useRef)(null),tG=(0,o.useCallback)(()=>{tY.current&&clearTimeout(tY.current),tY.current=setTimeout(async()=>{tY.current=null;let e=t5.current;if(e)try{let t=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(!t.ok)return;let r=await t.json();r.state?.queuedMessages!==void 0&&tU(c8(r.state.queuedMessages))}catch{}},8e3)},[tU]),tX=(0,o.useCallback)(()=>{tY.current&&(clearTimeout(tY.current),tY.current=null)},[]),tZ=(0,o.useRef)(null),tQ=(0,o.useRef)(null),t0=(0,o.useRef)(null),t1=(0,o.useRef)(null),t2=(0,o.useRef)(0),t6=(0,o.useRef)(!1),t4=(0,o.useRef)(0),t5=(0,o.useRef)(t?.id??null),t3=(0,o.useRef)(!0),t8=(0,o.useRef)({}),t7=(0,o.useRef)("off"),[t9,re]=(0,o.useState)(null),rt=(0,o.useRef)(0),rr=(0,o.useRef)(t?.id??null);rr.current=t?.id??null;let rn=(0,o.useRef)(!1),ro=(0,o.useRef)(!1),ri=(0,o.useRef)(!1),rs=(0,o.useRef)(!1),rl=(0,o.useRef)(-1),ra=(0,o.useRef)(!0),rd=(0,o.useRef)(!1),rc=(0,o.useRef)(!1),ru=(0,o.useRef)(0),rp=(0,o.useRef)(!1),rh=(0,o.useRef)(null),rg=(0,o.useRef)(!1),rx=(0,o.useRef)(null),rf=(0,o.useRef)(!1),rm=(0,o.useRef)(!0),rv=(0,o.useRef)(!0),ry=(0,o.useRef)(0),rb=(0,o.useRef)(0),rk=(0,o.useRef)(null),rj=(0,o.useRef)(null),rw=(0,o.useRef)(null),rS=(0,o.useRef)(!1),rC=(0,o.useRef)(0),rz=(0,o.useRef)(null),rT=(0,o.useRef)(0),rR=(0,o.useRef)(0),rI=(0,o.useRef)(null),rM=(0,o.useRef)(h);rM.current=h;let rE=(0,o.useRef)(null),r$=(0,o.useRef)(null),rW=(0,o.useRef)(null);rW.current||(rW.current=function(e,t={}){let r,n=1e3/Math.max(1,t.maxUpdatesPerSecond??30),o=t.now??cZ,i=t.requestFrame??("function"==typeof requestAnimationFrame?requestAnimationFrame:void 0),s=t.cancelFrame??("function"==typeof cancelAnimationFrame?cancelAnimationFrame:void 0),l=t.setTimer??setTimeout,a=t.clearTimer??clearTimeout,d=!1,c=!1,u=null,p=null,h=null,g=()=>{null!==u&&(s?.(u),u=null),null!==p&&(a(p),p=null)},x=(t,n)=>{if(!c||d)return;let o=r;c=!1,r=void 0,h=t;let i=()=>{d||e(o)};n&&"function"==typeof queueMicrotask?queueMicrotask(i):i()},f=()=>{if(!d&&c&&null===u&&null===p){if(!i){let e=null===h?n:o()-h;p=l(()=>{p=null,x(o(),!0),f()},Math.max(0,n-e));return}u=i(e=>{if(u=null,d||!c)return;let t=null===h?n:e-h;if(t<n){p=l(()=>{p=null,f()},n-t);return}x(e,!0),f()})}};return{enqueue(e){d||(r=e,c=!0,f())},flush(){!d&&c&&(g(),x(o(),!1),f())},reset(){g(),c=!1,r=void 0,h=null},destroy(){d||(d=!0,g(),c=!1,r=void 0)}}}(e=>{A({type:"update",message:e})}));let rL=(0,o.useCallback)(()=>{rW.current?.reset()},[]),rN=(0,o.useCallback)(e=>{rW.current?.enqueue(e)},[]),rA=e.setToolPreset??eh,rP=g?.context.model,rF=rP&&rP.provider&&rP.modelId?rP:null,rD=tr??to??rF??ta??null,rH=p?ea??ec:rD??(g?.context.messages.length===0?ec:null),rO=c7(g?.context.thinkingLevel&&"off"!==g.context.thinkingLevel?g.context.thinkingLevel:null),rB=r$.current,rU=p?rB??t9:e_??rO??(g?.context.messages.length===0?t9:null),r_=(0,o.useMemo)(()=>{if(tM)return{...tM,totalActiveMs:g?.totalActiveMs};if(t&&g&&void 0===g.stats)return null;let e={input:0,output:0,cacheRead:0,cacheWrite:0,total:0},r=0,n=0,o=0,i=0,s=0,l=0,a=0;for(let t of C){if("user"===t.role&&(i+=1),"toolResult"===t.role&&(l+=1),"assistant"!==t.role)continue;s+=1;let d=t.usage;if(a+=t.content.filter(e=>"toolCall"===e.type).length,!d)continue;e.input+=d.input??0,e.output+=d.output??0,e.cacheRead+=d.cacheRead??0,e.cacheWrite+=d.cacheWrite??0;let c=d.cost?.total??0;r+=c,ad(t.model)?n+=ac(t.model,d):o+=c}let d=g?.stats;return(d&&(e.input=Math.max(e.input,d.tokens.input),e.output=Math.max(e.output,d.tokens.output),e.cacheRead=Math.max(e.cacheRead,d.tokens.cacheRead),e.cacheWrite=Math.max(e.cacheWrite,d.tokens.cacheWrite),o=Math.max(o,d.cost),i=Math.max(i,d.userMessages),s=Math.max(s,d.assistantMessages),l=Math.max(l,d.toolResults),a=Math.max(a,d.toolCalls)),e.total=e.input+e.output+e.cacheRead+e.cacheWrite,0!==e.total||0!==C.length||d)?{sessionFile:g?.filePath||void 0,sessionId:t5.current??t?.id??"",sessionName:t?.name,userMessages:i,assistantMessages:s,toolCalls:a,toolResults:l,totalMessages:d?Math.max(C.length,d.totalMessages):C.length,tokens:e,cost:r,costCNY:n,costUSD:o,totalActiveMs:g?.totalActiveMs,...eJ?{contextUsage:eJ}:{}}:null},[C,tM,eJ,g?.filePath,g?.totalActiveMs,g?.stats,t?.id,t?.name]),rq=(0,o.useCallback)(async(e,t=!1,r=!1,n)=>{let o=m.current,i=!1;try{let s;t&&b(!0),f.current?.abort(),o=m.current+1,m.current=o;let l=new AbortController;f.current=l;let a=new URLSearchParams({deferThinking:"1",deferMedia:"1",view:"initial"});n?.force&&a.set("force","1");let d=async()=>{let t=new AbortController,r=setTimeout(()=>t.abort(),3e4),n=()=>t.abort();l.signal.addEventListener("abort",n,{once:!0});try{return await fetch(`/api/sessions/${encodeURIComponent(e)}?${a}`,{signal:t.signal})}finally{clearTimeout(r),l.signal.removeEventListener("abort",n)}};try{s=await d()}catch(e){if(!(e instanceof DOMException&&"AbortError"===e.name))throw e;if(l.signal.aborted)return null;s=await d()}if(404===s.status)return t&&(r6.current+=1,x(null),S(null),z([]),M([]),$(null),L(!1),j(null)),cQ().delete(e),null;if(!s.ok)throw Error(`HTTP ${s.status}`);let c=await s.json();if(t5.current!==e||m.current!==o)return null;x(c),v.current?.abort();let u=new AbortController;v.current=u,fetch(`/api/sessions/${encodeURIComponent(e)}/details`,{signal:u.signal}).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);return await e.json()}).then(t=>{t5.current!==e||m.current!==o||u.signal.aborted||x(r=>r?.sessionId===e?{...r,...t}:r)}).catch(e=>{"AbortError"!==e.name&&console.warn("Failed to load session details",e)}),S(c.leafId),z(c.context.messages),M(c.context.entryIds??[]),ro.current||(rb.current=Date.now()+700),r6.current+=1,$(c.context.oldestEntryId),L(c.context.hasMore),tn(e=>e?c.context.model&&e.provider===c.context.model.provider&&e.modelId===c.context.model.modelId?null:e:null);let p=c.context.model&&c.context.model.provider&&c.context.model.modelId?{provider:c.context.model.provider,modelId:c.context.model.modelId}:null;if(ts.current=p,ti(e=>p?e&&e.provider===p.provider&&e.modelId===p.modelId?e:p:e),rn.current=void 0!==c.toolNames,rA(void 0!==c.toolNames?(0,cG.YO)(c.toolNames):cG.Q8),j(null),c.wrapperRebuilt&&(rX(),rZ(e)),!r&&c.context.thinkingLevel&&"off"!==c.context.thinkingLevel&&eq(c7(c.context.thinkingLevel)),i=!0,t&&b(!1),!r)return null;try{let t,r=new AbortController,n=setTimeout(()=>r.abort(),2e4);try{t=await fetch(`/api/sessions/${encodeURIComponent(e)}/state`,{signal:r.signal})}finally{clearTimeout(n)}if(!t.ok)throw Error(`HTTP ${t.status}`);let i=await t.json();if(t5.current!==e||m.current!==o)return null;let s=i.state;if(tl(s),s){if(void 0!==s.contextUsage&&eY(s.contextUsage??null),void 0!==s.systemPrompt&&eX(s.systemPrompt??null),void 0!==s.extensionStatuses&&tF(s.extensionStatuses??[]),void 0!==s.extensionWidgets&&tH(s.extensionWidgets??[]),void 0!==s.queuedMessages&&tU(c8(s.queuedMessages)),void 0!==s.pendingRecovery&&tK(s.pendingRecovery??[]),void 0!==s.autoCompactionEnabled&&eH(s.autoCompactionEnabled??!0),void 0!==s.goalState){let e=s.goalState;e&&(eF.current=e,eP(e))}}else i.running||tU({steering:[],followUp:[]});return i}catch(e){return console.error("Failed to load agent state:",e),null}}catch(t){let e=t instanceof DOMException&&"AbortError"===t.name;if(i)return console.warn("Failed to load auxiliary session state",t),null;return j(e?"Timed out loading this conversation. Please try again.":String(t)),null}finally{t&&!i&&m.current===o&&b(!1)}},[tK,tU,rA]);(0,o.useEffect)(()=>{if(!t||!y)return;let e=window.setTimeout(()=>{ra.current&&t5.current&&y&&(f.current?.abort(),v.current?.abort(),b(!1),j("Timed out loading this conversation. Please try again."))},35e3);return()=>window.clearTimeout(e)},[y,t]);let rK=(0,o.useCallback)(async e=>{try{let t=await tE(e,{type:"get_tools"});if(!t||!t3.current||t5.current!==e)return null;let{getPresetFromTools:n}=await Promise.resolve().then(r.bind(r,14755)),o=n(t);return rn.current&&"plan"===o&&!ex.current?(await tE(e,{type:"set_tools",toolNames:(0,cG.xG)("default")}).catch(()=>{}),rA("default")):rA(rn.current?o:cG.Q8),t}catch(e){console.error("Failed to load tools:",e)}},[rA]),rV=(0,o.useCallback)((e=0,t="(no messages)")=>{let r=t5.current;p&&n&&r&&!rS.current&&(rS.current=!0,s?.({id:r,path:"",cwd:n,name:void 0,created:new Date().toISOString(),modified:new Date().toISOString(),messageCount:e,firstMessage:t}))},[p,n,s]),rJ=(0,o.useCallback)(async()=>{if(t5.current||!p||!n)return t5.current;if(rw.current)return rw.current;let e=(async()=>{let e,t=rE.current,r=r$.current;t&&td(t);let o=(0,cG.xG)(ep);rn.current=void 0!==o;let i=new AbortController,s=setTimeout(()=>i.abort(),3e4);try{e=await fetch("/api/agent/new",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:n,type:"ensure_session",...void 0!==o?{toolNames:o}:{},...t?{provider:t.provider,modelId:t.modelId}:{},...r?{thinkingLevel:r}:{}}),signal:i.signal})}catch(e){if(i.signal.aborted)throw Error("Timed out creating a new session after 30s. The agent service may still be starting up — please try again.");throw e}finally{clearTimeout(s)}if(!e.ok){let t=await e.json().catch(()=>null);throw Error(t?.error??`HTTP ${e.status}`)}let l=await e.json();t5.current=l.sessionId;let a=ev.current;return a&&(ev.current=null,fetch(`/api/modes?session=${encodeURIComponent(l.sessionId)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}).catch(e=>{console.error("Failed to persist pending mode settings:",e)})),l.model&&rE.current===t&&(td(l.model),t||eu(l.model)),l.thinkingLevel&&r$.current===r&&(eU(l.thinkingLevel),eq(c7(l.thinkingLevel))),l.sessionId})();rw.current=e;try{return await e}finally{rw.current=null}},[p,n,ep]);(0,o.useCallback)(async()=>{let e=t5.current??await rJ();if(!e)return;let[t]=await Promise.all([tE(e,{type:"get_state"}),rK(e)]);t3.current&&t5.current===e&&(tl(t),eX(t.systemPrompt??""))},[rJ,rK,tl]);let rY=(0,o.useCallback)(async()=>{let e=t5.current??await rJ();if(!e)return tw([]),[];tC(!0);try{let t=await tE(e,{type:"get_commands"}),r=t?.commands??[];return tw(r),r}catch(e){return console.error("Failed to load slash commands:",e),tw([]),[]}finally{tC(!1)}},[rJ]),rG=(0,o.useCallback)(()=>{t2.current+=1,t6.current=!1,t1.current&&(clearTimeout(t1.current),t1.current=null)},[]),rX=(0,o.useCallback)(()=>{tZ.current?.close(),tZ.current=null,tQ.current=null,t0.current=null},[]),rZ=(0,o.useCallback)(e=>{rX(),t4.current=Date.now();let t=new EventSource(`/api/agent/${encodeURIComponent(e)}/events`);tZ.current=t,tQ.current=e;let r=new Promise(r=>{let n=!1,o=e=>{n||(n=!0,clearTimeout(i),t0.current?.source===t&&(t0.current.pending=!1),r({status:e,source:t}))},i=setTimeout(()=>o("timeout"),3e4);t.onmessage=e=>{t4.current=Date.now();try{let t=JSON.parse(e.data);"connected"===t.type&&o("connected"),rh.current?.(t)}catch{}},t.onerror=()=>{if(t.readyState!==EventSource.CLOSED||(o("closed"),tZ.current!==t||!ro.current&&!t6.current))return;tZ.current=null,tQ.current=null,t0.current=null;let r=t2.current;setTimeout(()=>{r===t2.current&&!tZ.current&&(ro.current||t6.current)&&rZ(e)},1e3)}});return t0.current={source:t,promise:r,pending:!0},r},[rX]),rQ=(0,o.useCallback)(async e=>{let t=tZ.current;if(t&&tQ.current===e)if(t.readyState===EventSource.OPEN)if(!(Date.now()-t4.current>95e3))return;else rX();else{let e=t0.current;if(e?.source===t&&e.pending&&(await e.promise,tZ.current===t&&t.readyState===EventSource.OPEN))return}let r=await rZ(e);if("connected"!==r.status&&r.source.readyState!==EventSource.OPEN)throw tZ.current===r.source&&(tZ.current=null),tQ.current===e&&(tQ.current=null),t0.current?.source===r.source&&(t0.current=null),r.source.close(),new ut(r.status)},[rZ]),r0=(0,o.useCallback)(async(e,t)=>{let r=t5.current;if(tL(t=>t?.id===e.id?null:t),r)try{await tE(r,{type:"extension_ui_response",id:e.id,...t})}catch(e){console.error("Failed to send extension UI response:",e)}},[]),r1=(0,o.useCallback)(async(e,t)=>{let r=t5.current;if(r)try{await tE(r,{type:"extension_ui_input",id:e.id,data:t})}catch(e){console.error("Failed to send extension custom UI input:",e)}},[]),r2=(0,o.useCallback)(e=>{let t=e.message.trim();if(!t)return;let r=e.type??"info";("error"===r||"warning"===r)&&fetch("/api/logs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({level:r,source:"agent-notice",sessionId:t5.current??void 0,message:t})}).catch(()=>{}),tT({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:r}})},[]),r6=(0,o.useRef)(0),r4=(0,o.useCallback)(async(e,t,r)=>{let n=r6.current,o=async n=>{let o=new URLSearchParams({deferThinking:"1",deferMedia:"1"});return t&&o.set("leafId",t),r&&o.set("before",r),fetch(`/api/sessions/${encodeURIComponent(e)}/context?${o}`,{signal:n})};try{let t,i=new AbortController,s=setTimeout(()=>i.abort(),3e4);try{t=await o(i.signal)}catch(e){if(!(e instanceof DOMException&&"AbortError"===e.name))throw e;t=await o(i.signal)}finally{clearTimeout(s)}if(!t.ok)throw Error(`HTTP ${t.status}`);let l=await t.json();if(t5.current!==e||r6.current!==n)return;if($(l.context.oldestEntryId),L(l.context.hasMore),x(t=>{if(!t||t.sessionId!==e)return t;let n=r?{...t.context,messages:[...l.context.messages,...t.context.messages],entryIds:[...l.context.entryIds,...t.context.entryIds],oldestEntryId:l.context.oldestEntryId,hasMore:l.context.hasMore}:l.context;return{...t,context:n}}),!r&&l.context.model&&l.context.model.provider&&l.context.model.modelId){let e={provider:l.context.model.provider,modelId:l.context.model.modelId};ts.current=e,ti(t=>t&&t.provider===e.provider&&t.modelId===e.modelId?t:e)}r?(z(e=>[...l.context.messages,...e]),M(e=>[...l.context.entryIds,...e])):(z(l.context.messages),M(l.context.entryIds??[]))}catch(t){console.error("Failed to load context:",t),ra.current&&t5.current===e&&r6.current===n&&r2({type:"error",message:"Failed to load earlier messages. Scroll up to retry."})}},[r2]),r5=(0,o.useCallback)(t=>{switch(t.method){case"select":case"confirm":case"input":case"editor":tL(t);break;case"notify":r2({id:t.id,message:function(e){if(!("u">typeof document&&("zh-CN"===document.documentElement.lang||"zh"===document.documentElement.lang)))return e;let t=e.trim();return t.startsWith("Plan mode enabled")?"已启用计划模式:只读分析与产出计划,不修改文件。":t.startsWith("Plan mode disabled")?"已退出计划模式。":t.startsWith("No completed plan is available")?"当前没有可用的已完成计划。":t.startsWith("Unable to send Plan-mode message")?`无法发送计划模式消息:${t.replace(/^Unable to send Plan-mode message:\s*/,"")}`:e}(t.message),type:t.notifyType??"info"});break;case"setStatus":tF(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=>(function(e,t,r,n="aboveEditor"){if(void 0===r)return e.filter(e=>e.key!==t);let o={key:t,lines:r,placement:n},i=e.findIndex(e=>e.key===t);return -1===i?[...e,o]:e.map((e,t)=>t===i?o:e)})(e,t.widgetKey,t.widgetLines,t.widgetPlacement));break;case"setTitle":t.title&&(document.title=t.title);break;case"set_editor_text":e.chatInputRef?.current?.insertText(t.text);break;case"custom":tA(e=>t.closed?e?.id===t.id?null:e:t)}},[r2,e.chatInputRef]),r3=(0,o.useRef)(null),r8=(0,o.useCallback)(()=>{null!==r3.current&&(cancelAnimationFrame(r3.current),r3.current=null)},[]),r7=(0,o.useCallback)(()=>{rL(),r8();let e=ro.current;return ro.current=!1,q(!1),tm(null),eV(null),R(new Map),A({type:"end"}),e},[r8,rL]),r9=(0,o.useCallback)(e=>rl.current!==e&&(rl.current=e,i?.(),!0),[i]),ne=(0,o.useCallback)(e=>{if(rr.current===e)return void rG();rG(),t6.current=!0;let t=t2.current,r=async()=>{if(t===t2.current&&t5.current===e&&t6.current)try{let n=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(!n.ok)throw Error(`HTTP ${n.status}`);let o=await n.json();if(t!==t2.current||t5.current!==e||!t6.current)return;let i=o.state;if(tl(i),o.running&&i&&(i.isStreaming||i.isPromptRunning)){t6.current=!1,t1.current=null,ri.current=!!i?.isStreaming,rs.current=!!i?.isPromptRunning,ro.current=!0,q(!0),tm(c5(i));return}if(o.running&&i?.isCompacting){tu(!0),t1.current=setTimeout(()=>void r(),600);return}t6.current=!1,t1.current=null,rX()}catch{if(t!==t2.current||t5.current!==e||!t6.current)return;t1.current=setTimeout(()=>void r(),600)}};t1.current=setTimeout(()=>void r(),12e4)},[rG,rX,tl]);(0,o.useEffect)(()=>{let e=t?.id;if(!e)return;let r=!1,n=!1,o=0,i=async()=>{if(!r&&!n){n=!0;try{let t=await fetch(`/api/agent/${encodeURIComponent(e)}/lease`,{method:"POST",cache:"no-store"});if(!t.ok||r)return;let n=await t.json();!r&&0===n.renewed&&t5.current===e&&rr.current===e&&Date.now()-o>=3e4&&(o=Date.now(),rX(),rQ(e).catch(()=>!1))}catch{}finally{n=!1}}},s=setInterval(()=>void i(),3e4),l=()=>{"visible"===document.visibilityState&&i()};return document.addEventListener("visibilitychange",l),()=>{r=!0,clearInterval(s),document.removeEventListener("visibilitychange",l)}},[rX,rQ,t?.id]);let nt=(0,o.useCallback)(async(e=t5.current,t=rC.current)=>{if(rC.current===t)try{e&&await rq(e)}finally{if(rC.current!==t)return;let r=rs.current,n=ri.current;rs.current=!1,ri.current=!1,rz.current=null;let o=r7();r?r9(t):n&&o&&i?.(),e&&ne(e)}},[rq,r9,i,ne,r7]),nr=(0,o.useCallback)(async(e,t=rC.current)=>{await ur(800);let r=Date.now(),n=0;for(;Date.now()-r<2e4;){if(!ra.current||rC.current!==t)return;try{let o=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(o.ok){n=0;let i=await o.json(),s=i.state;if(tl(s),!(i.running&&s&&(s.isStreaming||s.isPromptRunning)))return void await nt(e,t);r=Date.now()}else n+=1}catch{n+=1}if(n>=3){if(rC.current!==t)return;r2({type:"error",message:"Cannot reach the pi-web service. Make sure it is running, then refresh the page."}),rs.current=!1,rz.current=null,r7();return}await ur(3e3)}rC.current===t&&(r2({type:"error",message:"Message delivery could not be confirmed. Refresh the page to see the latest state."}),rs.current=!1,rz.current=null,r7())},[r2,nt,r7]),nn=(0,o.useCallback)(async e=>{let t=ru.current+1;for(ru.current=t;rc.current&&ru.current===t&&t5.current===e;){await ur(1e3);try{let r=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(!r.ok)continue;let n=await r.json();if(tl(n.state),n.state?.isBashRunning)continue;if(await rq(e),ru.current!==t||t5.current!==e)return;rc.current=!1,V(!1),Y(null);return}catch{}}},[rq,tl]),no=(0,o.useRef)(0),ni=(0,o.useCallback)(async e=>{if(!ro.current&&!P.current)return;let t=rC.current;try{let r,n=new AbortController,o=setTimeout(()=>n.abort(),1e4);try{r=await fetch(`/api/agent/${encodeURIComponent(e)}`,{signal:n.signal})}finally{clearTimeout(o)}if(!r.ok)throw Error(`HTTP ${r.status}`);no.current=0;let i=await r.json();if(rC.current!==t)return;let s=i.state;if(tl(s),tu(s?.isCompacting??!1),rs.current||tm(c5(s)),tU(c8(s?.queuedMessages)),tK(s?.pendingRecovery??[]),i.running&&s&&(s.isStreaming||s.isPromptRunning||s.isBashRunning||s.isCompacting)){ri.current=ri.current||!!s.isStreaming,rs.current=rs.current||!!s.isPromptRunning;return}if(!ro.current&&!P.current)return;if(s&&(void 0!==s.contextUsage&&eY(s.contextUsage??null),void 0!==s.systemPrompt&&eX(s.systemPrompt??null),void 0!==s.extensionStatuses&&tF(s.extensionStatuses??[]),void 0!==s.extensionWidgets&&tH(s.extensionWidgets??[]),void 0!==s.goalState)){let e=s.goalState;e&&(eF.current=e,eP(e))}await nt(e,t)}catch{if(no.current+=1,no.current<3||!ra.current||rC.current!==t)return;no.current=0,r2({type:"error",message:"Cannot reach the pi-web service. Make sure it is running, then refresh the page."}),rs.current=!1,rz.current=null,r7()}},[r2,nt,tK,tU,r7,tl]);(0,o.useEffect)(()=>{if(!_&&!N.isStreaming)return;let e=()=>{let e=t5.current;e&&ni(e)},t=()=>{"visible"===document.visibilityState&&e()},r=()=>e(),n=()=>e(),o=setInterval(e,15e3);return document.addEventListener("visibilitychange",t),window.addEventListener("pageshow",r),window.addEventListener("focus",n),window.addEventListener("online",e),()=>{clearInterval(o),document.removeEventListener("visibilitychange",t),window.removeEventListener("pageshow",r),window.removeEventListener("focus",n),window.removeEventListener("online",e)}},[_,N.isStreaming,ni]),(0,o.useEffect)(()=>{if(!_&&!N.isStreaming)return;let e=()=>{let e=t5.current,t=tZ.current;e&&t&&t.readyState===EventSource.OPEN&&(Date.now()-t4.current<=95e3||rZ(e))};e();let t=setInterval(e,15e3);return()=>clearInterval(t)},[_,N.isStreaming,rZ]),(0,o.useEffect)(()=>{ro.current=_,_||ty(!1)},[_]);let ns=(0,o.useCallback)((t="smooth")=>{rb.current=Date.now()+700;let r=rj.current,n=rk.current;if(!r||!n)return;let o=Math.max(88,e.chatInputRef?.current?.measureHeight?.()??0),i=()=>{if(!r||!n)return;let e=Math.max(0,n.getBoundingClientRect().top-r.getBoundingClientRect().top+r.scrollTop-96-r.clientHeight+o);r.scrollTo({top:e,behavior:t})};i(),("instant"===t||"auto"===t)&&window.setTimeout(()=>{r&&n&&rv.current&&i()},200)},[]),nl=(0,o.useCallback)(()=>{null===r3.current&&(r3.current=requestAnimationFrame(()=>{r3.current=null,requestAnimationFrame(()=>{if(!ro.current||Date.now()<ry.current)return;let e=rj.current;if(e){let{scrollTop:t,clientHeight:r,scrollHeight:n}=e;rv.current=t+r>=n-150}rv.current&&ns("auto")})}))},[ns]);rh.current=(0,o.useCallback)(e=>{switch(e.type){case"agent_start":rL(),O(),rG(),ro.current||(rd.current=!1),ri.current=!0,ro.current=!0,q(!0),tm({kind:"waiting_model"}),A({type:"start"}),nl();break;case"agent_end":{if(rL(),O(),!ro.current)break;let t=tO.steering.length>0||tO.followUp.length>0;if(tm(t?{kind:"waiting_model"}:null),eV(null),A({type:"end"}),!0!==e.willRetry){let t=e.messages??[];for(let e=t.length-1;e>=0;e--){let r=t[e];if(r?.role==="assistant"){"error"===r.stopReason&&r.errorMessage&&r2({type:"error",message:r.errorMessage});break}}}let r=t5.current;if(r){let n=rC.current;t||!0===e.willRetry||rq(r),fetch(`/api/agent/${encodeURIComponent(r)}`).then(e=>e.ok?e.json():void 0).then(e=>{if(rC.current!==n)return;let t=e?.state;if(tl(t),t?.contextUsage!==void 0&&eY(t.contextUsage??null),t?.systemPrompt!==void 0&&eX(t.systemPrompt??null),t?.extensionStatuses!==void 0&&tF(t.extensionStatuses??[]),t?.extensionWidgets!==void 0&&tH(t.extensionWidgets??[]),tU(c8(t?.queuedMessages)),tK(t?.pendingRecovery??[]),t?.goalState!==void 0){let e=t.goalState;e&&(eF.current=e,eP(e))}}).catch(()=>{})}break}case"agent_settled":{let e=ri.current;if(ri.current=!1,!e||rs.current)break;let t=t5.current,r=r7();tu(!1),t&&(rq(t),ne(t)),r&&!rd.current&&i?.(),rd.current=!1;break}case"goal_state_changed":{let t=e.goalState;t&&(eF.current=t,eP(t));break}case"prompt_done":{let e=rC.current,t=rs.current;rs.current=!1,rz.current=null;let r=r9(e);if(r&&(rd.current=!0),!t&&!r)break;let n=t5.current;n&&!ri.current&&rq(n),!ri.current&&(r7(),n&&ne(n));break}case"tool_approval_request":{let t={id:String(e.id??""),toolName:String(e.toolName??""),args:e.args};if(!t.id)break;eL(e=>e.some(e=>e.id===t.id)?e:[...e,t]);break}case"tool_approval_resolved":{let t=String(e.id??"");if(!t)break;eL(e=>e.filter(e=>e.id!==t));break}case"prompt_error":r2({type:"error",message:e.errorMessage??"Command failed"});break;case"extension_error":r2({type:"error",message:e.error??"Extension command failed"});break;case"message_start":case"message_update":{if(!ro.current||c0(e))break;let t=e.message;if(t?.role==="user")break;t&&(U(t),rN(cJ(t))),tm(e=>null===e?e:null),nl();break}case"message_end":{if(!ro.current||c0(e))break;let t=e.message;if(t&&"user"===t.role){let e=cJ(t);if("user"===e.role&&"content"in e){let t=e.content;if("string"==typeof t)c9.some(e=>t.startsWith(e))&&(e={...e,content:te(t)});else if(Array.isArray(t)){let r=t.filter(e=>"text"===e.type)[0];r&&"string"==typeof r.text&&c9.some(e=>r.text?.startsWith(e))&&(e={...e,content:t.map((e,t)=>{if("text"!==e.type||0!==t)return e;let r=te(e.text??"");return{...e,text:r}})})}}let r=us(e),n=rz.current;z(t=>{let o=t[t.length-1];return n&&o?.role==="user"&&us(o)===n?(rz.current=null,n===r?t:[...t.slice(0,-1),e]):[...t,e]})}else t&&z(e=>[...e,cJ(t)]);rL(),A({type:"reset"}),tm({kind:"waiting_model"});break}case"tool_execution_start":{let t=e.toolCallId,r=e.toolName;tm(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_update":{let t=e.partialResult,r=t?.content,n="string"==typeof e.toolName?e.toolName:"",o="string"==typeof e.toolCallId?e.toolCallId:null;o&&("bash"===n||"powershell"===n)&&Array.isArray(r)&&R(e=>{let i=new Map(e);return i.set(o,{role:"toolResult",toolCallId:o,toolName:n,content:r,isError:t?.isError,details:t?.details}),i});let i=function(e){if(!c1(e))return null;let t=e.content;if(!Array.isArray(t))return null;let r=t.filter(e=>c1(e)&&"text"===e.type&&"string"==typeof e.text).map(e=>e.text).join("\n").split(/\r?\n/),n="";for(let e=r.length-1;e>=0&&!(n=r[e].trim());e-=1);if(!n)return null;let o=n.replace(/\s+/g," ");return o.length<=500?o:`...${o.slice(-497)}`}(e.partialResult);o&&tm(e=>{let t=e?.kind==="running_tools"?[...e.tools]:[],r=t.find(e=>e.id===o);if(!r&&!i)return e;let s={id:o,name:n||r?.name||"tool",progress:i??r?.progress};return{kind:"running_tools",tools:[...t.filter(e=>e.id!==o),s]}});let s="string"==typeof e.toolCallId?e.toolCallId:null,l=e.partialResult,a=l?.details;if(!s||!a)break;z(t=>{let r=t.findIndex(e=>"toolResult"===e.role&&e.toolCallId===s);if(-1===r)return[...t,{role:"toolResult",toolCallId:s,toolName:"string"==typeof e.toolName?e.toolName:"Agent",content:[],details:a}];let n=t[r];if("toolResult"!==n.role||n.content.length>0)return t;let o=[...t];return o[r]={...n,details:a},o});break}case"tool_execution_end":{let t=e.toolCallId;R(e=>{if(!e.has(t))return e;let r=new Map(e);return r.delete(t),r}),tm(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"entry_appended":break;case"queue_update":tU({steering:[...e.steering??[]],followUp:[...e.followUp??[]]}),(e.steering??[]).length>0||(e.followUp??[]).length>0?tG():tX();break;case"state_sync":{let t=e.state;if(!t)break;if(tu(t.isCompacting??!1),rs.current||tm(c5(t)),tU(c8(t.queuedMessages)),tK(t.pendingRecovery??[]),void 0!==t.contextUsage&&eY(t.contextUsage??null),void 0!==t.systemPrompt&&eX(t.systemPrompt??null),void 0!==t.extensionStatuses&&tF(t.extensionStatuses??[]),void 0!==t.extensionWidgets&&tH(t.extensionWidgets??[]),void 0!==t.goalState){let e=t.goalState;e&&(eF.current=e,eP(e))}if(t.isStreaming||t.isPromptRunning||t.isBashRunning||t.isCompacting){let e=ro.current;ro.current=!0,q(!0),e||A({type:"start"})}else if(ro.current&&!rs.current){let e=t5.current;e&&nt(e,rC.current)}break}case"auto_retry_start":eV({attempt:e.attempt,maxAttempts:e.maxAttempts,errorMessage:e.errorMessage});break;case"auto_retry_end":eV(null);break;case"auto_compaction_start":case"compaction_start":tu(!0),th(null),tx(null);break;case"auto_compaction_end":case"compaction_end":tu(!1),e.errorMessage?(th(e.errorMessage),tx(null)):e.aborted||(tx(ul(e.result,e.reason??"auto")),t5.current&&!ro.current&&rq(t5.current));break;case"extension_ui_request":r5(e)}},[r2,rG,r8,nt,r5,rq,r9,i,tO,ne,nl,r7,rN,rL,tG,tX,U,O,tK,tU,tl]),(0,o.useEffect)(()=>{let e=new EventSource("/api/events");return e.onmessage=e=>{try{let t=JSON.parse(e.data);if(!t||!t.type||!t.payload||t.sessionId!==t5.current||tZ.current?.readyState===EventSource.OPEN)return;rh.current?.(t.payload)}catch{}},()=>e.close()},[]);let na=(0,o.useCallback)(async(r,o)=>{let i,s=r.trim();if(!s&&!o?.length)return;if(ro.current||rc.current)return void console.warn("[pi-web] Send dropped: a previous run is still marked active",{agentRunning:ro.current,bashRunning:rc.current,sessionId:t5.current});let l=!o?.length&&s.startsWith("/"),a=rC.current+1;rG(),rL(),rs.current=!0;let d=function(e){let t=[];if("plan"===e.collaborationMode&&t.push(e3),"economy"===e.tokenMode&&t.push(e8),"delivery"===e.tokenMode&&t.push(e7),"goal"===e.collaborationMode){let r=e.goalText?.trim();t.push(r?`${e9}
193
193
 
194
194
  Goal: ${r}`:e9)}return t.join("\n\n")}({collaborationMode:ez.current,tokenMode:eT.current,goalText:"goal"===ez.current?eM.current??void 0:void 0}),c=[ez.current,eT.current,d?String(d.length):""].join("|"),u=t?.id??"new";d&&(eE.current.sessionKey!==u||eE.current.signature!==c)?(eE.current={sessionKey:u,signature:c},i=`${d}
195
195
 
196
- ${r}`):i=r;let h=i,g=o?.map(e=>({type:"image",source:{type:"base64",media_type:e.mimeType,data:e.data}})),x={role:"user",content:g?.length?[...r.trim()?[{type:"text",text:r}]:[],...g]:r,timestamp:Date.now()};z(e=>[...e,x]),rS.current=uo(x),rw.current=a;let f="goal"===ez.current&&!l&&s.length>0&&"idle"===eF.current.status;f&&(eM.current=s,eP(e=>({...e,status:"running",goalText:s,turnsUsed:0,noProgressTurns:0,tokensUsed:0})),eO.current=!0),rr.current=!0,q(!0),tf(l?{kind:"running_command"}:{kind:"waiting_model"}),A({type:"start"}),rg.current=!0,tv(!0),rx.current=!0;let m=o?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType})),v=null,y=!1;try{if(p&&n){let e=t6.current??await rk.current,t=e??await rK();if(t){v=t,rq(1,r),ea&&(ta(ea),e&&await tE(t,{type:"set_model",provider:ea.provider,modelId:ea.modelId}));let n=await Promise.race([rX(t).then(()=>!0).catch(()=>!1),ue(4e3).then(()=>!1)]);y=!0,await tE(t,{type:"prompt",message:h,...m?.length?{images:m}:{}}),n||ne(t,a),f&&tE(t,{type:"goal_start",goalText:s}).catch(()=>{})}else throw Error("Unable to create a session for this message")}else if(t){v=t.id;let e=await Promise.race([rX(t.id).then(()=>!0).catch(()=>!1),ue(4e3).then(()=>!1)]);y=!0,await tE(t.id,{type:"prompt",message:h,...m?.length?{images:m}:{}}),e||ne(t.id,a),f&&tE(t.id,{type:"goal_start",goalText:s}).catch(()=>{})}l&&v&&ne(v,a)}catch(t){if(console.error("Failed to send message:",t),y&&v&&!(t instanceof tR&&"prompt_rejected"===t.code&&!1===t.accepted))return void ne(v,a);if(eE.current={sessionKey:"",signature:""},f&&(eM.current=null,eO.current=!1,eP(e=>({...e,status:"idle",goalText:null}))),ro.current=!1,rY(),t instanceof c9){let e=rS.current;e&&z(t=>{let r=t[t.length-1];return r?.role==="user"&&uo(r)===e?t.slice(0,-1):t}),r0({type:"error",message:t.message})}else{let r=rS.current;r&&z(e=>{let t=e[e.length-1];return t?.role==="user"&&uo(t)===r?e.slice(0,-1):e});let n=e.chatInputRef?.current;n?.restoreSubmission?n.restoreSubmission(x):n?.replaceMessage?.(x),r0({type:"error",message:`Failed to send message: ${t instanceof Error?t.message:String(t)}`})}rS.current=null,rr.current=!1,q(!1),tf(null),A({type:"end"})}},[p,n,ea,t,rK,rX,rq,ne,r0,rJ,rY,r$,e.chatInputRef]),nl=(0,o.useCallback)(async(r,n)=>{if(rr.current||ra.current)return;let o=`${n?"!!":"!"}${r}`;ra.current=!0,Y({command:r,excludeFromContext:n}),V(!0);try{let e=t6.current??t?.id??await rK();if(!e)throw Error("Unable to create a session for the shell command");rq(1,o),await tE(e,{type:"bash",command:r,excludeFromContext:n}),await rU(e)}catch(t){console.error("Failed to execute shell command:",t),r0({type:"error",message:t instanceof Error?t.message:String(t)}),e.chatInputRef?.current?.insertIfEmpty(o)}finally{ra.current=!1,Y(null),V(!1)}},[r0,rK,rU,e.chatInputRef,rq,t]),na=(0,o.useCallback)(async()=>{let e=t6.current;if(e)try{await tE(e,{type:ra.current?"abort_bash":"abort"})}catch(e){console.error("Failed to abort:",e)}},[]),nd=(0,o.useCallback)(async e=>{let t=t6.current;if(t){tt(e);try{let{cancelled:r,newSessionId:n}=await tE(t,{type:"fork",entryId:e})??{};!r&&n&&l?.(n)}catch(e){console.error("Fork failed:",e)}finally{tt(null)}}},[l]),nc=(0,o.useCallback)(async e=>{if(ra.current)return!1;let t=t6.current;if(!t)return!1;try{let r=await tE(t,{type:"navigate_tree",targetId:e});if(r?.cancelled||t6.current!==t)return!1;return S(e),await rU(t),t6.current===t}catch(e){return console.error("Failed to navigate:",e),!1}},[rU]),nu=(0,o.useCallback)(async e=>{S(e);let t=t6.current;t&&(await r2(t,e),e&&tE(t,{type:"navigate_tree",targetId:e}).catch(()=>{}))},[r2]),np=(0,o.useCallback)(async(e,t)=>{if(p){let r={provider:e,modelId:t};rI.current=r,ed(r),ta(r),null===rM.current&&t7(c3(t5.current[`${e}/${t}`])??t3.current);let n=t6.current??await rk.current;if(!n)return;try{await tE(n,{type:"set_model",provider:e,modelId:t})}catch(e){console.error("Failed to set model:",e)}return}let r=t6.current;if(!r)return;let n=++rC.current,o=tr??g?.context.model??null;tn({provider:e,modelId:t});try{let n=await tE(r,{type:"set_model",provider:e,modelId:t});ti({provider:n.provider,modelId:n.id}),await rU(r)}catch(i){console.error("Failed to set model:",i),rC.current===n&&(tn(o&&(o.provider!==e||o.modelId!==t)?o:null),r0({type:"error",message:i instanceof Error?i.message:String(i)})),await rU(r,!1,!0)}},[r0,tr,g?.context.model,p,ed]),nh=(0,o.useCallback)(async()=>{let e=t6.current;if(e&&!td){tc(!0),tp(null),tg(null);try{let t=await tE(e,{type:"compact"});tg(ui(t,"manual")),await rU(e,!0)}catch(e){tp(e instanceof Error?e.message:String(e)),tg(null)}finally{tc(!1)}}},[td,rU]),ng=(0,o.useCallback)(async e=>{let r=++rz.current,o=n??t?.cwd??"",i=o?`/api/models?cwd=${encodeURIComponent(o)}`:"/api/models",s=rT.current;s?.abort();let l=new AbortController;rT.current=l;let a=()=>l.abort();e?.aborted?l.abort():e?.addEventListener("abort",a,{once:!0});try{let e=await fetch(i,{signal:l.signal});if(!e.ok){let t=`HTTP ${e.status}`;try{let r=await e.json();r?.error&&(t=r.error)}catch{}throw Error(t)}let t=await e.json();if(r!==rz.current||h!==rR.current)return;el(null),X(t.models),et(t.thinkingLevels??{}),en(t.thinkingLevelMaps??{}),ei(t.modelScopeWarnings??[]);let n=t.modelList??[];if(Q(n),p&&!t6.current){let e=(t.defaultModel?n.find(e=>e.id===t.defaultModel?.modelId&&e.provider===t.defaultModel?.provider):void 0)??n[0];eu(e?{provider:e.provider,modelId:e.id}:null);let r=e?t.thinkingLevelPins?.[`${e.provider}/${e.id}`]:void 0;null===rM.current&&eU(r??"auto")}}catch(e){if(l.signal.aborted||r!==rz.current||h!==rR.current)return;el(e instanceof Error?e.message:String(e))}finally{e?.removeEventListener("abort",a),rT.current===l&&(rT.current=null)}},[p,h,n,t?.cwd]),nx=(0,o.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,o=n.trim(),i=t6.current??await rK(),s=e=>(e.handled&&(e.error?r0({type:"error",message:e.error}):"openSessionStats"!==e.action&&r0({type:"success",message:e.message??"Command completed"})),e);try{switch(r){case"compact":{if(!i||td)return s({handled:!0,error:"No active session to compact"});tc(!0),tp(null),tg(null);let e=await tE(i,{type:"compact",...o?{customInstructions:o}:{}});return tg(ui(e,"manual")),await rU(i,!0)&&rq(),s({handled:!0,message:"Compacted context"})}case"auto-compact":{if(!i)return s({handled:!0,error:"No active session"});let e=await tE(i,{type:"get_state"}),t=!(e?.autoCompactionEnabled??!0);return await tE(i,{type:"set_auto_compaction",enabled:t}),eH(t),s({handled:!0,message:t?"Auto-compaction enabled":"Auto-compaction disabled"})}case"reload":if(!i)return s({handled:!0,error:"No active session to reload"});return await tE(i,{type:"reload"}),await Promise.all([rU(i,!1,!0),r_(i),rV(),ng()]),s({handled:!0,message:"Reloaded session resources"});case"name":if(!i)return s({handled:!0,error:"No active session to name"});if(!o)return s({handled:!0,error:"Usage: /name <name>"});return await tE(i,{type:"set_session_name",name:te(o)}),await rU(i)&&rq(),s({handled:!0,message:`Session renamed to ${o}`});case"session":{if(!i)return s({handled:!0,error:"No active session"});let e=await tE(i,{type:"get_session_stats"});return e&&tI(e),u?.(),s({handled:!0,action:"openSessionStats"})}case"copy":{if(!i)return s({handled:!0,error:"No active session"});let e=await tE(i,{type:"get_last_assistant_text"}),t=e?.text??"";if(!t)return s({handled:!0,error:"No assistant message to copy"});return await navigator.clipboard.writeText(t),s({handled:!0,message:"Copied last assistant message"})}case"clone":{if(!i)return s({handled:!0,error:"No active session to clone"});if(rr.current||ra.current)return s({handled:!0,error:"Cannot clone while the session is running"});let e=await tE(i,{type:"clone",leafId:w});if(e?.cancelled||!e?.newSessionId)return s({handled:!0,error:"Cannot clone an empty or unsaved session"});let t=s({handled:!0,message:"Cloned current session branch"});return l?.(e.newSessionId),t}default:return{handled:!1}}}catch(e){return s({handled:!0,error:e instanceof Error?e.message:String(e)})}finally{"compact"===r&&tc(!1)}},[w,r0,rK,td,ng,rU,rV,r_,rq,l,u]),nf=(0,o.useCallback)(async e=>{let t=!1;try{let r=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(r.ok){let e=await r.json(),n=e.state;if(e.running&&n&&(n.isStreaming||n.isPromptRunning||n.isBashRunning||n.isCompacting))return;t=!0}}catch{}t?r3():ne(e)},[ne,r3]),nm=(0,o.useCallback)(async(e,t)=>{let r=t6.current;if(!r)return;let n=t?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}));rr.current=!0,q(!0),tf(e=>e??{kind:"waiting_model"});try{await tE(r,{type:"steer",message:e,...n?.length?{images:n}:{}})}catch(e){console.error("Failed to steer:",e),nf(r)}},[nf]),nv=(0,o.useCallback)(async(e,t,r)=>{let n=t6.current;if(!n)return;let o=r?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}));rr.current=!0,q(!0),tf(e=>e??{kind:"waiting_model"});try{await tE(n,{type:"prompt",message:e,streamingBehavior:t,...o?.length?{images:o}:{}})}catch(e){console.error("Failed to queue prompt:",e),nf(n)}},[nf]),ny=(0,o.useCallback)(async(e,t)=>{let r=t6.current;if(!r)return;let n=t?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}));rr.current=!0,q(!0),tf(e=>e??{kind:"waiting_model"});try{await tE(r,{type:"follow_up",message:e,...n?.length?{images:n}:{}})}catch(e){console.error("Failed to follow up:",e),nf(r)}},[nf]),nb=(0,o.useCallback)(async()=>{let e=t6.current;if(e)try{await tE(e,{type:"abort_compaction"})}catch(e){console.error("Failed to abort compaction:",e)}},[]),nk=(0,o.useCallback)(async()=>{let t=t6.current;if(t)try{let r=await tE(t,{type:"clear_queue"});tO({steering:[],followUp:[]});let n=[...r?.steering??[],...r?.followUp??[]];n.length>0&&e.chatInputRef?.current?.prependText(n.join("\n\n"))}catch(e){console.error("Failed to recall queued messages:",e),r0({type:"error",message:"Failed to recall queued messages"})}},[e.chatInputRef,r0,tO]);(0,o.useEffect)(()=>{0===tB.length&&tK(!1)},[tB.length]);let nj=(0,o.useCallback)(async(e,t,r=!1)=>{let n=t6.current;if(!n)return tB;try{let o=await tE(n,{type:"resolve_recovery",keep:e,discard:t,continueRun:r}),i=o?.remaining??[];return t_(i),r&&e.length>0&&(async()=>{try{let e=await fetch(`/api/agent/${encodeURIComponent(n)}`);if(!e.ok)return;let t=await e.json(),r=t.state;if(!t.running||!r||!r.isStreaming&&!r.isPromptRunning)return;rn.current=!!r.isStreaming,ro.current=!!r.isPromptRunning,rr.current=!0,q(!0),tf(c6(r)),A({type:"start"}),rG(n),!r.isStreaming&&r.isPromptRunning&&ne(n)}catch{}})(),i}catch(e){return console.error("Failed to resolve queued message recovery:",e),r0({type:"error",message:"Failed to resolve queued message recovery"}),tB}},[tB,r0,rG,ne,t_]),nw=(0,o.useCallback)(async()=>{let e=t6.current;if(!e)return null;try{return await tE(e,{type:"export_queue"})}catch(e){return console.error("Failed to export queue:",e),r0({type:"error",message:"Failed to export queue"}),null}},[r0]),nS=(0,o.useCallback)(async e=>{let t=t6.current;if(!t)return null;try{let r=await tE(t,{type:"import_queue",entries:e});return r&&tO(c5(r)),r?.imported??0}catch(e){return console.error("Failed to import queue:",e),r0({type:"error",message:"Failed to import queue"}),null}},[r0,tO]),nC=(0,o.useCallback)(async e=>{let t=t6.current;if(!t)return null;try{let r=await tE(t,{type:"stage_recovery",entries:e});return r?.pendingRecovery&&t_(r.pendingRecovery),(r?.staged??0)>0&&tK(!0),r?.staged??0}catch(e){return console.error("Failed to stage imported queue:",e),r0({type:"error",message:"Failed to stage imported queue"}),null}},[r0,t_]),nz=(0,o.useCallback)(async(e,t,r)=>{let n=t6.current;if(!n)return!1;try{let o=await tE(n,{type:"move_queue",kind:e,fromIndex:t,toIndex:r});return o&&tO(c5(o)),!0}catch(e){return console.error("Failed to move queued message:",e),r0({type:"error",message:e instanceof Error?e.message:"Failed to move queued message"}),!1}},[r0,tO]),nT=(0,o.useCallback)(async(e,t)=>{let r=t6.current;if(!r)return null;try{let n=await tE(r,{type:"recall_queue_item",kind:e,index:t});return n&&(void 0!==n.steering||void 0!==n.followUp)&&tO(c5(n)),n?.entry?{text:n.entry.text,images:n.entry.images?.map(({data:e,mimeType:t})=>({data:e,mimeType:t}))}:null}catch(e){return console.error("Failed to recall queued message:",e),r0({type:"error",message:e instanceof Error?e.message:"Failed to recall queued message"}),null}},[r0,tO]),nR=(0,o.useCallback)(async(e,t,r,n)=>{let o=t6.current;if(!o)return!1;try{let i=await tE(o,{type:"requeue_at",kind:e,index:t,text:r,images:n?.map(({data:e,mimeType:t})=>({type:"image",data:e,mimeType:t}))});return i&&tO(c5(i)),!0}catch(e){return console.error("Failed to requeue message:",e),r0({type:"error",message:e instanceof Error?e.message:"Failed to requeue message"}),!1}},[r0,tO]),nI=(0,o.useCallback)(async(e,t)=>{let r=t6.current;if(!r)return!1;try{let n=await tE(r,{type:"remove_queue_item",kind:e,index:t});return n&&tO(c5(n)),!0}catch(e){return console.error("Failed to remove queued message:",e),r0({type:"error",message:e instanceof Error?e.message:"Failed to remove queued message"}),!1}},[r0,tO]),nM=(0,o.useCallback)(async e=>{if("auto"===e){rM.current=null,eU(e);return}rM.current=e,eU(e);let t=t6.current??await rk.current;if(t)try{await tE(t,{type:"set_thinking_level",level:e}),t4.current&&t6.current===t&&eq(e)}catch(e){console.error("Failed to set thinking level:",e)}},[]),nE=(0,o.useCallback)(async e=>{let t=(0,cY.xG)(e);!function(e,t=function(){try{return window.localStorage}catch{return null}}()){if(t)try{t.setItem("pi-tool-preset",e)}catch{}}(e),rL(e);let r=t6.current??await rk.current;if(!r){rt.current=void 0!==t;return}try{let e=await tE(r,{type:"set_tools",...void 0!==t?{toolNames:t}:{}});rt.current=void 0!==t;let n=e?.sessionId??r;(n!==r||e?.recreated)&&(rJ(),rY(),t6.current=n),tj([]),tA([]),tF([]);let[o]=await Promise.all([tE(n,{type:"get_state"}),r_(n)]);t4.current&&t6.current===n&&(eX(o.systemPrompt??""),ts(o))}catch(e){console.error("Failed to set tools:",e)}},[rJ,rY,r_,rL,ts]),n$=(0,o.useRef)(0),nW=(0,o.useCallback)(async e=>{let t=t6.current??await rk.current,r=++n$.current;if("plan"===e){if(eg.current="plan"===ep||"configured"===ep?"default":ep,t)try{await tE(t,{type:"prompt",message:"/plan"})}catch(e){if(n$.current!==r)return;console.error("Failed to enter plan mode:",e)}return}if(t){try{if(await tE(t,{type:"prompt",message:"/plan exit"}),n$.current!==r)return}catch(e){if(n$.current!==r)return;console.error("Failed to exit plan mode:",e)}if(n$.current!==r)return;try{await tE(t,{type:"set_tools",toolNames:(0,cY.xG)(eg.current)})}catch(e){console.error("Failed to restore tools after plan exit:",e)}}},[ep]),nL=(0,o.useCallback)(e=>{e$.current=e,em(e);let t=t6.current;if(!t){ev.current=e;return}ev.current=null,fetch(`/api/modes?session=${encodeURIComponent(t)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}).catch(e=>{console.error("Failed to persist mode settings:",e)})},[]),nN=(0,o.useCallback)(e=>{let t=e2(e),r="plan"===ez.current;if(nL({...e$.current,collaborationMode:t}),ez.current=t,eE.current={sessionKey:"",signature:""},"goal"!==t){eM.current=null,eO.current=!1,eP(e=>"idle"===e.status?e:{...e,status:"idle",goalText:null});let e=t6.current;e&&tE(e,{type:"goal_stop"}).catch(()=>{})}return"plan"!==t||r?"plan"!==t&&r?nW("normal"):Promise.resolve():nW("plan")},[nL,nW]),nA=(0,o.useCallback)(async e=>{nL({...e$.current,tokenMode:e6(e)});let t=t6.current??await rk.current;if(t)try{if("economy"!==e||ex.current){if("economy"!==e){let e=ex.current?cY.SC:(0,cY.xG)("plan"===ep?"default":ep);await tE(t,{type:"set_tools",toolNames:e})}}else await tE(t,{type:"set_tools",toolNames:[...e5]})}catch(e){console.error("Failed to apply token mode tools:",e)}},[nL,ep]),nP=(0,o.useCallback)(async e=>{nL({...e$.current,toolApprovalMode:e4(e)});let t=t6.current??await rk.current;if(t)try{await tE(t,{type:"set_approval_mode",mode:e4(e)})}catch(e){console.error("Failed to apply approval mode:",e)}},[nL]),nF=(0,o.useCallback)(async e=>{nL({...e$.current,permissionRules:e});let t=t6.current??await rk.current;if(t)try{await tE(t,{type:"set_approval_policy",policy:e})}catch(e){console.error("Failed to apply permission rules:",e)}},[nL]),nD=(0,o.useCallback)(async(e,t,r,n)=>{let o=t6.current;if(o){if("always"===n){let r=eN.current.find(t=>t.id===e);if(r){let e=aK(r.toolName,r.args),n=e?`${r.toolName}(${e})`:r.toolName,o=e$.current.permissionRules;(t?o.allow:o.deny).includes(n)||nF(t?{...o,allow:[...o.allow,n]}:{...o,deny:[...o.deny,n]})}}try{await tE(o,{type:"resolve_approval",id:e,approve:t,reason:r})}catch(e){console.error("Failed to resolve approval:",e)}finally{eL(t=>t.filter(t=>t.id!==e))}}},[nF]),nH=(0,o.useCallback)(e=>{eM.current=e},[]),nO=(0,o.useCallback)(e=>{let t=e.trim();if(!t)return;eM.current=t,eP(e=>({...e,status:"running",goalText:t,turnsUsed:0,noProgressTurns:0,tokensUsed:0,startedAt:Date.now()}));let r=t6.current;r&&tE(r,{type:"goal_start",goalText:t}).catch(()=>{})},[]),nB=(0,o.useCallback)(()=>{if("running"!==eF.current.status)return;eP(e=>({...e,status:"paused"}));let e=t6.current;e&&tE(e,{type:"goal_pause"}).catch(()=>{})},[]),nU=(0,o.useCallback)(()=>{let e=eF.current;if("paused"!==e.status&&"blocked"!==e.status)return;eP(e=>({...e,status:"running"}));let t=t6.current;t&&tE(t,{type:"goal_resume"}).catch(()=>{})},[]),n_=(0,o.useCallback)(()=>{eO.current=!1,eM.current=null,eP(e=>({...e,status:"idle",goalText:null,turnsUsed:0,noProgressTurns:0}));let e=t6.current;e&&tE(e,{type:"goal_stop"}).catch(()=>{})},[]),nq=(0,o.useCallback)(e=>{let t=e.trim();if(!t)return;eP(e=>({...e,goalText:t}));let r=t6.current;r&&tE(r,{type:"goal_edit",goalText:t}).catch(()=>{})},[]),nK=(0,o.useCallback)(()=>{let e=rb.current,t=rh.current;if(!e||!t)return;let r=t.getBoundingClientRect().top-e.getBoundingClientRect().top+e.scrollTop,n=Math.max(0,e.scrollHeight-e.clientHeight),o=Math.min(Math.max(0,r-16),n);rf.current=o>=n-150,rv.current=Date.now()+700,e.scrollTo({top:o,behavior:"smooth"})},[]),nV=(0,o.useCallback)(e=>{if(e instanceof KeyboardEvent){if(!c7.has(e.key)||e.target instanceof Element&&e.target.closest("input, textarea, [contenteditable='true']"))return}else if(e instanceof PointerEvent){let t=rb.current;if(t&&e.target instanceof Element&&!t.contains(e.target))return}rm.current=Date.now()+1200},[]),nJ=(0,o.useCallback)(()=>{let e=rb.current;if(e){let{scrollTop:t,clientHeight:r,scrollHeight:n}=e,o=rr.current,i=rf.current,s=function(e,t,r,n,o,i=96){return!!c1(r,n,o)||!(r<t)&&(!!(!e&&r>t&&c1(r,n,o,i))||e)}(i,t9.current,t,r,n,o?96:8);rf.current=s,t9.current=t;let l=function(e,t,r,n=8){return!(r<=t)&&!c1(e,t,r,n)}(t,r,n);tb(e=>e===l?e:l),!i&&s&&o&&no("auto")}if(Date.now()<rm.current){rx.current=!1;return}Date.now()<rv.current||(rx.current=!1)},[]);(0,o.useEffect)(()=>{if(rs.current=!0,t){var e;let r;t6.current=t.id;let n=(e=t.id,(r=cZ().get(e))?Date.now()-r.savedAt>6e5?(cZ().delete(e),null):(cZ().delete(e),cZ().set(e,r),r):null);n&&(x({sessionId:t.id,filePath:"",leafId:n.leafId,context:{messages:n.messages,entryIds:n.entryIds,oldestEntryId:n.oldestEntryId,hasMore:n.hasMore,thinkingLevel:n.thinkingLevel,model:n.model},stats:n.stats,...void 0!==n.totalActiveMs?{totalActiveMs:n.totalActiveMs}:{}}),S(n.leafId),z(n.messages),M(n.entryIds),$(n.oldestEntryId),L(n.hasMore),j(null),b(!1));let o=eR.current,i=eI.current;("auto"!==o||i.allow.length||i.ask.length||i.deny.length)&&(tE(t.id,{type:"set_approval_mode",mode:o}).catch(()=>{}),tE(t.id,{type:"set_approval_policy",policy:i}).catch(()=>{}));let s=e=>{!rc.current&&(rc.current=!0,e.isBashRunning&&(ra.current=!0,V(!0),nt(t.id)),r_(t.id),(e.isStreaming||e.isPromptRunning)&&(rn.current=!!e.isStreaming,ro.current=!!e.isPromptRunning,rr.current=!0,q(!0),tf(c6(e)),A({type:"resume"}),rG(t.id),!e.isStreaming&&e.isPromptRunning&&ne(t.id)))};(async()=>{try{let e,r=new AbortController,n=setTimeout(()=>r.abort(),2e4);try{e=await fetch(`/api/sessions/${encodeURIComponent(t.id)}/state`,{signal:r.signal})}finally{clearTimeout(n)}if(!e.ok)throw Error(`HTTP ${e.status}`);let o=await e.json();if(!rs.current||t6.current!==t.id)return;o.running&&o.state&&s(o.state)}catch{}})(),rU(t.id,!n,!0,{force:!0}).then(e=>{e?.running&&e.state&&s(e.state),e?.state&&(void 0!==e.state.isCompacting&&tc(e.state.isCompacting),void 0!==e.state.contextUsage&&eY(e.state.contextUsage??null),void 0!==e.state.systemPrompt&&eX(e.state.systemPrompt??null),void 0!==e.state.extensionStatuses&&tA(e.state.extensionStatuses??[]),void 0!==e.state.extensionWidgets&&tF(e.state.extensionWidgets??[]),void 0!==e.state.queuedMessages&&tO(c5(e.state.queuedMessages)),void 0!==e.state.pendingRecovery&&t_(e.state.pendingRecovery??[])),e?.running||(async()=>{for(let e=0;e<5;e++){if(e>0&&await new Promise(e=>setTimeout(e,2e3)),!rs.current||t6.current!==t.id||rr.current)return;try{let e=await fetch(`/api/agent/${encodeURIComponent(t.id)}`);if(!e.ok)continue;let r=await e.json();if(!rs.current||t6.current!==t.id)return;if(r?.running&&r.state)return void s(r.state)}catch{}}})()})}return()=>{rs.current=!1,f.current?.abort(),v.current?.abort(),r$(),tY(),rd.current+=1,rJ(),rY()}},[r$]),(0,o.useEffect)(()=>{c?.(eG)},[eG,c]),(0,o.useEffect)(()=>{d&&d(g?.tree??[],w,nu)},[g?.tree,w,nu,d]),(0,o.useEffect)(()=>(window.addEventListener("keydown",nV),window.addEventListener("pointerdown",nV,{passive:!0}),()=>{window.removeEventListener("keydown",nV),window.removeEventListener("pointerdown",nV)}),[nV]),(0,o.useEffect)(()=>{let e=rb.current;if(e)return e.addEventListener("wheel",nV,{passive:!0}),e.addEventListener("touchstart",nV,{passive:!0}),e.addEventListener("scroll",nJ,{passive:!0}),()=>{e.removeEventListener("wheel",nV),e.removeEventListener("touchstart",nV),e.removeEventListener("scroll",nJ)}},[C.length,y,nJ,nV]),(0,o.useEffect)(()=>{C.length>0&&(rg.current?(rp.current=!0,rh.current&&(rg.current=!1,nK())):y||!rp.current?(y||(rp.current=!0),no("instant")):!rr.current&&(rx.current||rf.current)&&(no("smooth"),nX(e=>e+1)))},[C.length,y,_,no,nK]);let nY=(0,o.useRef)(null),[nG,nX]=(0,o.useState)(0),nZ=`${t?.id??null}#${nG}`;(0,o.useEffect)(()=>{let e;if(y){nY.current=null;return}if(0===C.length||nY.current===nZ)return;nY.current=nZ;let t=!1,r=!1,n=-1,o=0,i=Date.now(),s=()=>{if(t||r)return;let l=rb.current;if(l){if(Date.now()<rm.current){let{scrollTop:e,clientHeight:t,scrollHeight:n}=l;if(e+t<n-150){r=!0;return}}if(no("instant"),l.scrollHeight===n){if((o+=1)>=4||Date.now()-i>=3e4)return}else if(n=l.scrollHeight,o=0,Date.now()-i>=3e4)return;e=window.setTimeout(s,o>0?500:250)}};return e=window.setTimeout(s,250),()=>{t=!0,void 0!==e&&window.clearTimeout(e)}},[y,no,nZ]),(0,o.useEffect)(()=>{let e=new AbortController;return ng(e.signal).catch(e=>{if(e instanceof DOMException&&"AbortError"===e.name)return}),()=>e.abort()},[ng,a]),(0,o.useEffect)(()=>{if(!es)return;let e=()=>{"visible"===document.visibilityState&&ng()};return document.addEventListener("visibilitychange",e),window.addEventListener("online",e),()=>{document.removeEventListener("visibilitychange",e),window.removeEventListener("online",e)}},[es,ng]),(0,o.useEffect)(()=>{if(!tu)return;let e=setTimeout(()=>tp(null),3e3);return()=>clearTimeout(e)},[tu]),(0,o.useEffect)(()=>{if(!th)return;let e=setTimeout(()=>tg(null),6e3);return()=>clearTimeout(e)},[th]),(0,o.useEffect)(()=>{if(0===tC.visible.length)return;let e=tC.visible.find(e=>e.exiting);if(e){let t=setTimeout(()=>{tz({type:"remove",id:e.id})},180);return()=>clearTimeout(t)}if(!tC.visible[0])return;let t=setTimeout(()=>{tz({type:"mark_oldest_exiting"})},5e3);return()=>clearTimeout(t)},[tC.visible]),(0,o.useEffect)(()=>{tI(null)},[C.length,eJ?.tokens,eJ?.percent,eJ?.contextWindow]);let nQ=g?.tree??[];return{isAutoThinkingSelection:p&&null===rH,data:g,loading:y,error:k,activeLeafId:w,messages:C,activeToolResults:T,entryIds:I,historyCursor:E,hasEarlierMessages:W,streamState:N,agentRunning:_,bashRunning:K,pendingBash:J,modelNames:G,modelList:Z,modelThinkingLevels:ee,modelThinkingLevelMaps:er,modelScopeWarnings:eo,modelsError:es,newSessionModel:ea,toolPreset:ep,thinkingLevel:rO??eB,retryInfo:eK,contextUsage:eJ,systemPrompt:eG,forkingEntryId:eZ,isCompacting:td,compactError:tu,compactResult:th,currentModel:rP,displayModel:rF,sessionStats:rB,tokenRate:F,planMode:eC,collaborationMode:ek,tokenMode:ej,toolApprovalMode:ew,permissionRules:eS,modeSettings:ef,approvalRequests:eW,handleCollaborationModeChange:nN,handleTokenModeChange:nA,handleToolApprovalModeChange:nP,handlePermissionRulesChange:nF,resolveApproval:nD,setActiveGoalText:nH,goalState:eA,handleGoalStart:nO,handleGoalPause:nB,handleGoalResume:nU,handleGoalStop:n_,handleGoalEdit:nq,slashCommands:tk,slashCommandsLoading:tw,queuedMessages:tD,pendingRecovery:tB,recoveryIsImport:tq,notices:tC.visible,extensionDialog:tM,extensionCustomUi:tW,extensionStatuses:tN,extensionWidgets:tP,respondToExtensionUi:rZ,sendExtensionCustomInput:rQ,agentPhase:tx,isNew:p,promptAnchorActive:tm,branchTree:nQ,autoCompactionEnabled:eD,sessionIdRef:t6,eventSourceRef:tG,messagesEndRef:ry,scrollContainerRef:rb,lastUserMsgRef:rh,pendingScrollToUserRef:rg,initialScrollDoneRef:rp,scrollUserMsgToTop:nK,handleSend:ns,executeBash:nl,handleAbort:na,handleFork:nd,handleNavigate:nc,handleModelChange:np,handleCompact:nh,handleSteer:nm,handleFollowUp:ny,handlePromptWithStreamingBehavior:nv,handleAbortCompaction:nb,handleRecallQueue:nk,resolveRecovery:nj,exportQueueData:nw,importQueueData:nS,stageQueueImport:nC,moveQueuedMessage:nz,recallQueuedMessage:nT,requeueAt:nR,removeQueuedMessage:nI,handleBuiltinSlashCommand:nx,handleToolPresetChange:nE,handleThinkingLevelChange:nM,loadTools:r_,loadSlashCommands:rV,reloadModels:ng,setActiveLeafId:S,setData:x,setMessages:z,loadContext:r2,dispatch:A,setAgentRunning:q,setForkingEntryId:tt,handleLeafChange:nu,handleAgentEventRef:ru}}({session:e,newSessionCwd:t,onAgentEnd:N,onSessionCreated:s,onSessionForked:l,modelsRefreshKey:d,chatInputRef:c,onBranchDataChange:u,onSystemPromptChange:p,onSessionStatsPanelOpen:g}),[tz,tT]=(0,o.useState)(!1);(0,o.useEffect)(()=>{0===em.length&&tT(!1)},[em.length]);let tI=(0,o.useMemo)(()=>{let e=O.findLast(e=>"assistant"===e.role&&!!e.usage);if(!e?.usage)return null;let t=e.usage;return{model:e.model??"",input:t.input??0,output:t.output??0,cacheRead:t.cacheRead??0,costCNY:ad(e.model)?ac(e.model,t):0,costUSD:ad(e.model)?0:t.cost?.total??0}},[O]),[tM,t$]=(0,o.useState)(!1),[tW,tL]=(0,o.useState)(null),tN=(0,o.useRef)(!1);(0,o.useEffect)(()=>{if(!td){tN.current=!1;return}if(q){tN.current=!0;return}tN.current&&(tN.current=!1,tL(function(e){for(let t=e.length-1;t>=0;t--){let r=e[t];if("assistant"!==r.role)continue;let n=r.content;if("string"==typeof n&&n.trim())return n;if(Array.isArray(n)){let e=n.filter(e=>"text"===e.type).map(e=>e.text??"").join("\n").trim();if(e)return e}}for(let t=e.length-1;t>=0;t--){let r=e[t];if("toolResult"!==r.role)continue;let n=r.content,o="string"==typeof n?n:Array.isArray(n)?n.map(e=>e.text??"").join("\n"):"";if(!o)continue;let i=o.match(/\*\*Proposed Plan\*\*\s*\n+([\s\S]+)/i);if(i?.[1]?.trim())return i[1].trim()}return null}(O)??null),t$(!0))},[q,td,O]);let tA=(0,o.useCallback)(()=>{t$(!1);let e=tP.current;e&&th("plan"===tc?"normal":tc).catch(e=>{console.error("Failed to leave plan mode before executing:",e)}).then(()=>{eF(E("tasks.planReviewExecutePrompt",{plan:e}))})},[th,eF,E,tc]),tP=(0,o.useRef)(null);(0,o.useEffect)(()=>{tP.current=tW},[tW]);let tF=(0,o.useCallback)(e=>{t$(!1),eF(e)},[eF]),tD=(0,o.useCallback)(()=>{t$(!1),th("plan"===tc?"normal":tc)},[th,tc]);(0,o.useEffect)(()=>{eb&&L.current!==eb.id&&(L.current=eb.id,W.current&&$.current())},[eb]),(0,o.useEffect)(()=>(a=q||K?eH:null,()=>void(a=null)),[q,K,eH]);let[tH,tO]=(0,o.useState)(!1),[tB,tU]=(0,o.useState)(!1),[t_,tq]=(0,o.useState)(!1),tK=(0,o.useCallback)(()=>{let e=eW.current;if(!e)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight;tO(e.scrollTop>1),tU(t>1),tq(t>240)},[eW]),tV=(0,o.useCallback)(()=>{window.requestAnimationFrame(()=>{let e=eW.current,t=e$.current;if(!e||!t)return;let r=Math.max(88,c?.current?.measureHeight?.()??0),n=()=>{if(!e||!t)return;let n=Math.max(0,t.getBoundingClientRect().top-e.getBoundingClientRect().top+e.scrollTop-96-e.clientHeight+r);e.scrollTo({top:n,behavior:"auto"})};n(),tK(),window.setTimeout(n,200)})},[e$,eW,tK,c]);(0,o.useEffect)(()=>{let e=eW.current;if(!e)return;let t=new ResizeObserver(tK);return t.observe(e),e.firstElementChild&&t.observe(e.firstElementChild),e.addEventListener("scroll",tK,{passive:!0}),tK(),()=>{e.removeEventListener("scroll",tK),t.disconnect()}},[O.length,eW,tK]);let tJ=(0,o.useRef)(!1);(0,o.useEffect)(()=>{let t=eW.current;if(!t)return;let r=()=>{if(tJ.current||!tS||!tw||t.scrollTop>8)return;let r=e?.id;if(!r)return;tJ.current=!0;let n=t.scrollHeight-t.scrollTop;tC(r,eI,tw).finally(()=>{tJ.current=!1,requestAnimationFrame(()=>{let e=t.scrollHeight-n;Math.abs(t.scrollTop-e)>1&&t.scrollTo({top:e,behavior:"auto"})})})};return t.addEventListener("scroll",r,{passive:!0}),()=>t.removeEventListener("scroll",r)},[eW,tw,tS,tC,e?.id,eI]);let tY=(0,o.useRef)(!1);(0,o.useEffect)(()=>{if(!tS||!tw)return;let t=eW.current,r=e?.id;if(!t||!r||tJ.current||tY.current||D||t.scrollTop>8||t.scrollHeight>t.clientHeight+50)return;tY.current=!0;let n=t.scrollHeight-t.scrollTop;tC(r,eI,tw).finally(()=>{tY.current=!1,requestAnimationFrame(()=>{let e=t.scrollHeight-n;Math.abs(t.scrollTop-e)>1&&t.scrollTo({top:e,behavior:"auto"})})})},[eW,tw,tS,tC,e?.id,eI,D,O.length]);let tG=(0,o.useRef)(null),tX=(0,o.useRef)([]),tZ=(0,o.useRef)(new Map),tQ=(0,o.useRef)(null),[t0,t1]=(0,o.useState)(0);(0,o.useEffect)(()=>{let e=tQ.current;if(!e)return void t1(e=>0===e?e:0);let t=()=>{let t=Math.round(e.getBoundingClientRect().height);t1(e=>e===t?e:t)};t();let r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[D,H]);let t2=(0,o.useMemo)(()=>({getOffsetForIndex:e=>tG.current?.getOffsetForIndex(e)?.[0]??0,sizeFor:e=>{let t=tG.current;if(!t)return 0;let r=t.measurementsCache[e];return r?.size??t.options.estimateSize?.(e)??0},totalHeight:()=>tG.current?.getTotalSize()??0,refToItemIndex:e=>tX.current[e],itemCount:tX.current.length}),[]),t6=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,ep.totalActiveMs??0].join("|"):null,t4=(0,o.useRef)(ep);t4.current=ep,(0,o.useEffect)(()=>{h?.(t4.current)},[t6,h]),(0,o.useEffect)(()=>()=>{h?.(null)},[h]);let t5=es?`${es.percent??"null"}|${es.contextWindow}|${es.tokens??"null"}`:null,t3=(0,o.useRef)(es);t3.current=es,(0,o.useEffect)(()=>{x?.(t3.current)},[t5,x]),(0,o.useEffect)(()=>()=>{x?.(null)},[x]);let{isDragOver:t8,handleDragEnter:t7,handleDragOver:t9,handleDragLeave:re,handleDrop:rt}=function(e){let[t,r]=(0,o.useState)(!1),n=(0,o.useRef)(0),i=(0,o.useCallback)(e=>{e.dataTransfer.files.length&&(e.preventDefault(),n.current+=1,r(!0))},[]),s=(0,o.useCallback)(e=>{e.dataTransfer.files.length&&e.preventDefault()},[]);return{isDragOver:t,handleDragEnter:i,handleDragOver:s,handleDragLeave:(0,o.useCallback)(()=>{n.current-=1,n.current<=0&&(n.current=0,r(!1))},[]),handleDrop:(0,o.useCallback)(t=>{t.preventDefault(),n.current=0,r(!1),e(Array.from(t.dataTransfer.files),t.dataTransfer)},[e])}}((0,o.useCallback)((e,t)=>{if(q){let t=e.filter(e=>e.type.startsWith("image/"));t.length&&c?.current?.addImages(t);return}c?.current?.addFiles(e,t)},[q,c])),rr=O.filter(e=>"user"===e.role||"assistant"===e.role||sp(e));(0,o.useMemo)(()=>{let e=new Map(B);for(let t of O)"toolResult"===t.role&&e.set(t.toolCallId,t);return e},[B,O]);let rn=(0,o.useMemo)(()=>{let e=new Set,t=[];for(let n=O.length-1;n>=0&&t.length<50;n-=1){var r;let o="user"!==(r=O[n]).role?null:("string"==typeof r.content?r.content:r.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n")).trim()||null;!o||e.has(o)||(e.add(o),t.push(o))}return t},[O]),ro=(S=rr.length,(C=(0,o.useRef)([])).current.length!==S&&(C.current=Array.from({length:S},(e,t)=>C.current[t]??null)),C),ri=eT&&0===O.length&&!_.isStreaming&&!q,rs=e?.cwd??t??void 0;!function(e,t=!0){(0,o.useEffect)(()=>{if(!t)return;let r=null,n=null,o=!1,i=null,s=()=>{null!==i&&(clearTimeout(i),i=null)},l=()=>{r&&(s(),r.classList.add("scrollbar-visible"))},a=()=>{r&&(s(),i=setTimeout(()=>{i=null,r?.classList.remove("scrollbar-visible")},500))},d=()=>{l(),a()},c=()=>{if(!o){if(!(r=e.current)){n=requestAnimationFrame(c);return}r.addEventListener("pointerenter",l),r.addEventListener("pointerleave",a),r.addEventListener("scroll",d)}};return c(),()=>{o=!0,null!==n&&cancelAnimationFrame(n),r?.removeEventListener("pointerenter",l),r?.removeEventListener("pointerleave",a),r?.removeEventListener("scroll",d),s(),r?.classList.remove("scrollbar-visible")}},[t,e])}(eW,!!e?.id||!ri);let rl=(0,o.useMemo)(()=>sB(O,U,rs,B),[O,U,rs,B]),ra=eu?X[`${eu.provider}:${eu.modelId}`]??null:null,rd=eu?Z[`${eu.provider}:${eu.modelId}`]??null:null,rc=(0,o.useCallback)(()=>{et()},[et]),ru=(0,o.useCallback)(e=>{th(e)},[th]),rp=e?.relation?.kind==="subagent"?(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",gap:8,padding:"14px 16px",borderTop:"1px solid var(--border)",color:"var(--text-dim)",fontSize:12},children:[(0,n.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"3",y:"11",width:"18",height:"10",rx:"2"}),(0,n.jsx)("circle",{cx:"12",cy:"5",r:"2"}),(0,n.jsx)("path",{d:"M12 7v4"})]}),E("subagent.readOnlyNotice")]}):(0,n.jsx)(cC,{ref:c,onSend:eF,onBash:eD,tasksBoardEnabled:b,onAbort:eH,onSteer:q?eq:void 0,onFollowUp:q?eK:void 0,onPromptWithStreamingBehavior:q?eV:void 0,isStreaming:q,model:eu,modelNames:J,modelList:G,modelScopeWarnings:Q,modelsError:ee,onRetryModels:rc,onModelChange:eU,compactResult:ec,toolPreset:er,onToolPresetChange:e||eT?ts:void 0,collaborationMode:tc,toolApprovalMode:tu,onCollaborationModeChange:ru,onToolApprovalModeChange:tg,goalState:tm,onGoalStart:tv,onGoalPause:ty,onGoalResume:tb,onGoalStop:tk,thinkingLevel:en,isAutoThinkingSelection:eo,onThinkingLevelChange:e||eT?tl:void 0,availableThinkingLevels:ra,thinkingLevelMap:rd,retryInfo:ei,queuedMessages:ef,inputHistory:rn,onRecallQueue:eY,onMoveQueue:tt,onRecallOne:tr,onRequeueAt:tn,onRemoveQueueItem:to,slashCommands:eg,slashCommandsLoading:ex,onLoadSlashCommands:ta,onBuiltinCommand:ti,onAudioUnlock:I,draftKey:e?.id??(t?`new:${t}`:void 0),cwd:e?.cwd??t,topCenterControl:t_?(0,n.jsx)("button",{type:"button",className:"chat-input-top-center",onClick:tV,title:E("desktop.scrollToBottom"),"aria-label":E("desktop.scrollToBottom"),children:(0,n.jsx)(ar.Z,{size:16,weight:"bold","aria-hidden":"true"})}):void 0}),rh=ew.filter(e=>"belowEditor"!==e.placement),rg=ew.filter(e=>"belowEditor"===e.placement),rx=ea?E("desktop.compacting"):function(e,t){if(e?.kind==="running_tools"){let r=e.tools.map(e=>e.name);return 0===r.length?t("desktop.runningTool"):t("desktop.runningTools",{tools:r.length<=3?r.join(", "):`${r.slice(0,2).join(", ")} (+${r.length-2})`})}return e?.kind==="waiting_model"?t("desktop.waitingForModel"):e?.kind==="running_command"?t("desktop.runningCommand"):null}(ez,E);return D?(0,n.jsx)("div",{className:"flex h-full items-center justify-center text-text-muted",children:E("desktop.loadingSession")}):H?(0,n.jsx)("div",{className:"flex h-full items-center justify-center text-red-400",children:H}):(0,n.jsxs)("div",{className:"relative flex h-full min-w-0 flex-col overflow-hidden",onDragEnter:t7,onDragOver:t9,onDragLeave:re,onDrop:rt,children:[t8&&(0,n.jsxs)("div",{className:"pointer-events-none absolute inset-0 z-50 flex animate-[drop-zone-in_0.15s_ease_both] items-center justify-center bg-[rgba(37,99,235,0.06)] backdrop-blur-[1px]",children:[(0,n.jsx)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:[0,.8,1.6].map(e=>(0,n.jsx)("div",{className:"absolute h-[720px] w-[720px] rounded-full border-[1.5px] border-solid border-[rgba(37,99,235,0.5)] animate-[drop-ripple_2.4s_ease-out_infinite_backwards]",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-shadow-[0_6px_18px_rgba(37,99,235,0.18)]",children:[(0,n.jsx)("rect",{x:"28",y:"44",width:"84",height:"60",rx:"8",fill:"rgba(37,99,235,0.08)",stroke:"rgba(37,99,235,0.50)",strokeWidth:"1.8"}),(0,n.jsx)("path",{d:"M36 100 L54 72 L68 88 L80 74 L104 100Z",fill:"rgba(37,99,235,0.16)",stroke:"rgba(37,99,235,0.40)",strokeWidth:"1.4",strokeLinejoin:"round"}),(0,n.jsx)("circle",{cx:"96",cy:"58",r:"8",fill:"rgba(37,99,235,0.22)",stroke:"rgba(37,99,235,0.55)",strokeWidth:"1.6"}),(0,n.jsxs)("g",{stroke:"rgba(37,99,235,0.45)",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"})]})]})]}),eb&&(0,n.jsx)(up,{request:eb,onRespond:eS}),ek&&(0,n.jsx)(uh,{request:ek,onInput:eC}),!eT&&em.length>0&&!tz&&(0,n.jsx)(cR,{items:em,sessionId:e?.id,onResolve:eG,onExport:eX,onStageImport:eZ,onDismiss:()=>tT(!0),mode:ev?"import":"recovery"}),tx.length>0&&(0,n.jsx)(aJ,{request:tx[0]??null,queuedCount:Math.max(0,tx.length-1),busy:!1,onResolve:(e,t,r)=>{let n=tx[0];n&&tf(n.id,e,t,r)}}),ri?(0,n.jsx)("div",{className:"flex flex-1 flex-col items-center justify-center overflow-y-auto",children:(0,n.jsxs)("div",{className:"w-full max-w-[820px]",children:[(0,n.jsx)("div",{style:{display:"flex",justifyContent:"center",marginBottom:28},children:(0,n.jsxs)("svg",{fill:"currentColor",fillRule:"evenodd",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",style:{width:64,height:64,color:"var(--accent)",opacity:.85},"aria-label":"Pi",children:[(0,n.jsx)("title",{children:"Pi"}),(0,n.jsx)("path",{clipRule:"evenodd",d:"M1 1h16.5v11H12v5.5H6.5V23H1V1zm5.5 5.5V12H12V6.5H6.5z"}),(0,n.jsx)("path",{d:"M17.5 12H23v11h-5.5V12z"})]})}),M&&(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",gap:10,marginBottom:18,marginTop:-14},children:[(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:["web ",(0,n.jsxs)("span",{style:{color:"var(--text)"},children:["v","0.18.11"]})]}),(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:["pi ",(0,n.jsxs)("span",{style:{color:"var(--text)"},children:["v","0.87.1"]})]})]}),(0,n.jsx)("div",{style:{padding:"0 34px 6px 7px",paddingRight:M?16:34},children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12},children:[(0,n.jsx)("div",{ref:m,style:{display:"flex",alignItems:"center",minWidth:0,flex:1,minHeight:48}}),(0,n.jsxs)("div",{style:{display:M?"none":"flex",flexDirection:"column",alignItems:"flex-end",gap:2,flexShrink:0},children:[(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:["web ",(0,n.jsxs)("span",{style:{color:"var(--text)"},children:["v","0.18.11"]})]}),(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:["pi ",(0,n.jsxs)("span",{style:{color:"var(--text)"},children:["v","0.87.1"]})]})]})]})}),(0,n.jsx)("div",{style:{padding:"0 16px",paddingRight:M?16:34},children:(0,n.jsx)(uu,{notices:ey,align:"right"})}),"goal"===tc&&(0,n.jsx)(aq,{goalState:tm,onPause:ty,onResume:tb,onStop:tk,onEdit:tj}),rp,(0,n.jsx)("div",{style:{padding:"0 16px 6px",paddingRight:M?16:34,marginTop:-15},children:(0,n.jsx)(cH,{onViewFullHistory:v,cwd:rs,systemPrompt:y,sessionStats:ep,contextUsage:es,hasSession:!!e,showChat:!0,showSoundLabel:!0,soundEnabled:z,onSoundToggle:T,onCompact:e?e_:void 0,onAbortCompaction:eJ,isCompacting:ea,compactError:ed,lastTurnUsage:tI})})]})}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"relative flex flex-1 overflow-hidden z-0",children:[(0,n.jsx)("div",{style:{position:"absolute",top:12,left:0,right:18*!M,zIndex:40,padding:"0 16px",pointerEvents:"none"},children:(0,n.jsx)("div",{style:{maxWidth:820,margin:"0 auto"},children:(0,n.jsx)(uu,{notices:ey,floating:!0,align:"right"})})}),(0,n.jsxs)("div",{className:"relative flex-1 min-h-0 min-w-0",children:[(0,n.jsx)("div",{ref:eW,className:"scrollbar-subtle h-full min-w-0 overflow-x-hidden overflow-y-auto pt-4 [scrollbar-gutter:stable]",children:(0,n.jsx)("div",{style:{minWidth:0,padding:"0 16px"},children:(0,n.jsxs)("div",{style:{width:"100%",minWidth:0,maxWidth:820,margin:"0 auto"},children:[(0,n.jsxs)("div",{ref:tQ,children:[(0,n.jsx)(ud,{statuses:ej}),(0,n.jsx)(uc,{widgets:rh})]}),(()=>{let{toolResultsMap:t,lastUserIdx:r,visibleRefIndexByMessage:o,items:i}=rl;for(let e=O.length-1;e>=0&&!sp(O[e]);e--);let s=tZ.current,l=(i,l={})=>{let a=l.messageOverride??O[i];if(!a||"toolResult"===a.role)return null;let d="user"===a.role||"assistant"===a.role||sp(a),c=o.get(i),u=l.keyPrefix??"message",p=!1;if("assistant"===a.role){p=!0;for(let e=i+1;e<O.length;e++){let t=O[e].role;if("user"===t)break;if("assistant"===t){p=!1;break}}p&&_.isStreaming&&i===O.length-1&&(p=!1)}void 0!==l.showTimestamp&&(p=l.showTimestamp);let h=(0,n.jsx)(af,{message:a,toolResults:t,modelNames:J,cwd:rs,onOpenFile:f,entryId:U[i],onFork:q||eT?void 0:eO,forking:el===U[i],onNavigate:q?void 0:eB,onEditContent:A,onQuoteReply:P,onOpenSession:k,onCreateTask:F,showTimestamp:p,prevTimestamp:i>0?O[i-1].timestamp:void 0,sessionId:e?.id??eE.current??void 0,writtenFiles:l.writtenFiles},`${u}-view-${i}`);return d&&!1!==l.attachRef&&void 0!==c?(0,n.jsx)("div",{ref:((e,t)=>{let n=s.get(t);if(!n){let e={isLastUser:!1};n={state:e,callback:r=>{ro.current[t]=r,e.isLastUser&&(eL.current=r,r&&eN.current&&(eN.current=!1,eA.current=!0,eP()))}},s.set(t,n)}return n.state.isLastUser=e===r,n.callback})(i,c),children:h},`${u}-${i}`):h},a=[],d=[],c=[],u=(e,t,r)=>{null!==e&&(a.push(e),d.push(t),c.push(r))},p=(e,t)=>U[e]||`${t}-${e}`,h=e=>`live-answer-u${e}`,g=e=>`answer-${p(e,"user")}`,x=e=>`subagent-${e}`,m=e=>sy(e.result?.details)?e.result.details.sessionId:"",v=e=>{let t=m(e);if(t&&w){let e=w.get(t);if(e)return"running"===e.status}let r=sy(e.result?.details)?e.result.details:null;return r?"running"===r.status||"starting"===r.status:!e.result},y=(e,t)=>`live-process-u${e}-seg${t}`,b=(e,t,r)=>`process-${p(e,"user")}-${r||`seg${t}`}`;for(let s of i){if("single"===s.kind){if(O[s.idx]?.role==="toolResult")continue;u(l(s.idx),o.get(s.idx),p(s.idx,"single"));continue}let{userIdx:i,endIdx:a,startsCompactionTurn:d,finalAssistantIdx:c}=s;if((q||_.isStreaming)&&a===O.length&&(i===r||d)){i>=0&&u(l(i),o.get(i),p(i,"user"));let r=_.streamingMessage?.role==="assistant",s=[],d=!r&&c>=0?c:a;for(let e=i+1;e<d;e++)sH(O[e])&&s.push(e);let g=sS(O,U,s,t),v=null;if(!r&&c>=0){let e=O[c],r=sm(e,{isStreaming:!0}),n=sw(e,{messageIndex:c,entryId:U[c],toolResults:t,isStreaming:!0});g=g.concat(n.processBlocks),r.answerBlocks.length>0&&(v=sO(e,r.answerBlocks,{omitUsage:!0}))}if(r){let e=_.streamingMessage,r=sm(e,{isStreaming:!0}),n=sw(e,{messageIndex:O.length,toolResults:t,isStreaming:!0});g=g.concat(n.processBlocks),r.answerBlocks.length>0&&(v=sO(e,r.answerBlocks,{omitUsage:!0}))}if(g.length>0){let t=s.map(e=>o.get(e)).find(e=>"number"==typeof e);sb(g).forEach((r,s)=>{let l=o.get(r.blocks[0].origin.sourceMessageIndex)??t;if("subagent"===r.kind&&r.subagent)return void u((0,n.jsx)(dN,{run:r.subagent,onOpenSubagent:j,sessionRun:w?.get(m(r.subagent))},x(r.subagent.toolCallId)),l,x(r.subagent.toolCallId));if("output"===r.kind){let e=r.blocks[0],t=o.get(e.origin.sourceMessageIndex);u((0,n.jsx)(af,{message:{role:"assistant",provider:"",model:"",content:r.blocks},isStreaming:e.origin.sourceMessageIndex===O.length,cwd:rs,onOpenFile:f,onQuoteReply:P,onOpenSession:k}),t,`output-${e.id}`);return}u((0,n.jsx)("div",{ref:void 0===l?void 0:e=>{ro.current[l]=e},children:(0,n.jsx)(d$,{blocks:r.blocks,isStreaming:q||_.isStreaming,cwd:rs,onOpenFile:f,sessionId:e?.id??eE.current??void 0,tokenRate:eh})},y(i,s)),l,y(i,s))})}v&&u((0,n.jsx)(af,{message:v,isStreaming:!0,modelNames:J,cwd:rs,onOpenFile:f,onQuoteReply:P,onOpenSession:k},`live-answer-${i}`),c>=0?o.get(c):void 0,h(i));continue}if(-1===c&&0===s.processBlocks.length){if(i>=0)for(let e=i;e<a;e++)u(l(e),o.get(e),p(e,"raw"));continue}i>=0&&u(l(i),o.get(i),p(i,"user"));let{finalAnswerMessage:S,writtenFiles:C,visibleProcessIndices:z}=s;if(s.processBlocks.length>0){let t=z.map(e=>o.get(e)).find(e=>"number"==typeof e)??(S?void 0:o.get(c));s.processSegments.forEach((r,s)=>{let l=o.get(r.blocks[0].origin.sourceMessageIndex)??t;if("subagent"===r.kind&&r.subagent)return void u((0,n.jsx)(dN,{run:r.subagent,onOpenSubagent:j,sessionRun:w?.get(m(r.subagent))},x(r.subagent.toolCallId)),l,x(r.subagent.toolCallId));if("output"===r.kind){let e=r.blocks[0];u((0,n.jsx)(af,{message:{role:"assistant",provider:"",model:"",content:r.blocks},cwd:rs,onOpenFile:f,onQuoteReply:P,onOpenSession:k}),o.get(e.origin.sourceMessageIndex),`output-${e.id}`);return}u((0,n.jsx)("div",{ref:void 0===l?void 0:e=>{ro.current[l]=e},children:(0,n.jsx)(d$,{blocks:r.blocks,isStreaming:"subagent"===r.kind&&void 0!==r.subagent&&v(r.subagent),defaultExpanded:!1,onAutoExpanded:void 0,cwd:rs,onOpenFile:f,sessionId:e?.id??eE.current??void 0})},`process-group-${i}-${s}`),l,b(i,s,r.blocks[0]?.id??""))})}if(S&&u(l(c,{messageOverride:S,writtenFiles:C}),o.get(c),g(i)),c>=0)for(let e=c+1;e<a;e++)u(l(e),o.get(e),p(e,"tail"))}let S=[],C=d.map((e,t)=>({startRef:e,itemIdx:t})).filter(e=>void 0!==e.startRef);return C.forEach((e,t)=>{let r=C[t+1]?.startRef??rr.length;for(let t=e.startRef;t<r;t++)S[t]=e.itemIdx}),tX.current=S,(0,n.jsx)(cU,{scrollElementRef:eW,items:a,itemKeys:c,virtualizerRef:tG,headerHeight:t0})})(),rx&&(ea||q&&!_.streamingMessage)&&(0,n.jsx)("div",{className:"py-2 text-[13px] text-text-muted",children:(0,n.jsxs)("span",{className:"animate-[pulse_1.5s_infinite]",children:[rx,ez?.kind==="waiting_model"&&(0,n.jsx)("span",{style:{display:"inline-block",width:12,height:12,marginLeft:6,verticalAlign:"-2px",border:"1.5px solid var(--text-muted)",borderTopColor:"transparent",borderRadius:"50%",animation:"spin 0.6s linear infinite"}})]})}),V&&(0,n.jsx)(af,{message:{role:"bashExecution",command:V.command,output:"",excludeFromContext:V.excludeFromContext},sessionId:e?.id??eE.current??void 0}),K&&!V&&(0,n.jsx)("div",{className:"py-2 text-[13px] text-text-muted",children:(0,n.jsx)("span",{className:"animate-[pulse_1.5s_infinite]",children:E("desktop.runningShellCommand")})}),(0,n.jsx)("div",{style:{height:96}}),(0,n.jsx)("div",{ref:e$}),(0,n.jsx)(aD,{open:tM,planText:tW,busy:q,onExecute:tA,onFeedback:tF,onExit:tD,onClose:()=>t$(!1)})]})})}),tH&&(0,n.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 top-0 z-10 h-8 bg-gradient-to-b from-[var(--bg)] to-transparent"}),tB&&(0,n.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 bottom-0 z-10 h-8 bg-gradient-to-t from-[var(--bg)] to-transparent"})]}),M?null:(0,n.jsx)(cK,{messages:O,streamingMessage:_.streamingMessage,scrollContainer:eW,messageRefs:ro,virtualizer:t2})]}),(0,n.jsxs)("div",{className:"relative z-10",children:[(0,n.jsx)("div",{style:{padding:"0 16px",paddingRight:M?16:34},children:(0,n.jsx)("div",{style:{maxWidth:820,margin:"0 auto"},children:(0,n.jsx)(uc,{widgets:rg})})}),rp,(0,n.jsx)("div",{className:`session-info-bar-wrap${M?" is-mobile":""}`,children:(0,n.jsx)("div",{className:"session-info-bar-inner",children:(0,n.jsx)(cH,{onViewFullHistory:v,cwd:rs,systemPrompt:y,sessionStats:ep,contextUsage:es,hasSession:!!e,showChat:!0,soundEnabled:z,onSoundToggle:T,onCompact:e?e_:void 0,onAbortCompaction:eJ,isCompacting:ea,compactError:ed,branchTree:eR,branchActiveLeafId:eI,onBranchLeafChange:eM,lastTurnUsage:tI})})})]})]})]})}function ud({statuses:e}){return 0===e.length?null:(0,n.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6,marginBottom:10},children:e.map(e=>(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,maxWidth:"100%",padding:"4px 8px",border:"1px solid color-mix(in srgb, var(--accent) 24%, var(--border))",borderRadius:6,background:"color-mix(in srgb, var(--accent) 7%, var(--bg))",color:"var(--text-muted)",fontSize:12},children:[(0,n.jsx)("span",{style:{color:"var(--accent)",fontFamily:"var(--font-mono)",fontSize:11},children:e.key}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.text})]},e.key))})}function uc({widgets:e}){return 0===e.length?null:(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8,marginBottom:10},children:e.map(e=>(0,n.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-panel)",overflow:"hidden"},children:[(0,n.jsx)("div",{style:{padding:"5px 9px",borderBottom:"1px solid var(--border)",color:"var(--text-dim)",fontSize:11,fontFamily:"var(--font-mono)"},children:e.key}),(0,n.jsx)("pre",{style:{margin:0,padding:"8px 9px",color:"var(--text-muted)",fontSize:12,lineHeight:1.5,whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"var(--font-mono)"},children:e.lines.join("\n")})]},e.key))})}function uu({notices:e,floating:t=!1,align:r="left"}){return 0===e.length?null:(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",alignItems:"right"===r?"flex-end":"stretch",marginBottom:10*!t},children:e.map((r,o)=>{let i="error"===r.type?"var(--status-error)":"warning"===r.type?"var(--status-warning)":"success"===r.type?"#10b981":"var(--accent)";return(0,n.jsxs)("div",{className:"notice-shelf-item",style:{display:"flex",alignItems:"center",gap:10,minHeight:44,maxHeight:180,marginBottom:6*(o!==e.length-1),overflowY:"auto",overflowX:"hidden",borderRadius:14,border:"1px solid color-mix(in srgb, var(--border) 70%, transparent)",background:"var(--bg)",color:"var(--text-muted)",width:"fit-content",maxWidth:"min(100%, 620px)",boxShadow:t?"0 1px 2px rgba(15,23,42,0.05), 0 10px 28px -14px rgba(15,23,42,0.24)":"0 1px 2px rgba(15,23,42,0.04), 0 8px 24px -12px rgba(15,23,42,0.10)",fontSize:13,lineHeight:1.45,transformOrigin:"top center",animation:r.exiting?"notice-shelf-out 0.18s ease-in forwards":"notice-shelf-in 0.18s ease-out both",padding:"0 12px"},children:[(0,n.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:i,flexShrink:0}}),(0,n.jsx)("span",{style:{padding:"10px 0",minWidth:0,maxWidth:"100%",overflowWrap:"anywhere",whiteSpace:"pre-wrap"},children:r.message})]},r.id)})})}function up({request:e,onRespond:t}){let{t:r}=(0,Y.s)(),[i,s]=(0,o.useState)("editor"===e.method?e.prefill??"":""),[l,a]=(0,o.useState)(!1),[d,c]=(0,o.useState)(()=>Date.now()),u=(0,o.useCallback)(e=>e?.focus(),[]);!function(e){if("select"===e.method&&e.options.length>0)return e.options[0];if("confirm"===e.method){let t=e.message.split("\n").find(e=>e.trim());t?.trim()}}(e);let p=void 0===e.expiresAt?null:Math.max(0,Math.ceil((e.expiresAt-d)/1e3));(0,o.useEffect)(()=>{if(void 0===e.expiresAt)return;let t=setInterval(()=>c(Date.now()),1e3);return()=>clearInterval(t)},[e.expiresAt]);let h=null!==p&&(0,n.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",whiteSpace:"nowrap",flexShrink:0},children:r("chat.extensionExpiresIn",{seconds:p})});(0,o.useEffect)(()=>{s("editor"===e.method?e.prefill??"":"")},[e]);let g=()=>{"confirm"===e.method?t(e,{confirmed:!0}):t(e,{value:i})};return(0,n.jsx)("div",{style:{position:"absolute",inset:0,zIndex:90,display:"flex",alignItems:"center",justifyContent:"center",padding:20,background:"rgba(0,0,0,0.18)"},children:(0,n.jsxs)("div",{role:"dialog","aria-modal":"true",style:{width:"min(560px, 100%)",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg)",boxShadow:"0 20px 60px rgba(0,0,0,0.28)",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{flexShrink:0,display:"flex",alignItems:"flex-start",gap:8,padding:"12px 14px",borderBottom:"1px solid var(--border)",maxHeight:"50%",overflowY:"auto"},children:[(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("div",{style:{color:"var(--text)",fontSize:14,fontWeight:650,lineHeight:1.45,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:e.title}),(0,n.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:8,marginTop:3,color:"var(--text-dim)",fontSize:11,fontFamily:"var(--font-mono)"},children:[(0,n.jsx)("span",{children:r("desktop.extensionRequest")}),h]})]}),(0,n.jsx)("button",{type:"button",onClick:()=>a(!0),"aria-expanded":!0,title:r("chat.extensionCollapse"),"aria-label":r("chat.extensionCollapse"),style:{display:"grid",placeItems:"center",width:28,height:28,borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",flexShrink:0},children:(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})})]}),(0,n.jsxs)("div",{style:{padding:14},children:["confirm"===e.method&&(0,n.jsx)(lV,{children:e.message}),"select"===e.method&&(0,n.jsx)("div",{onKeyDown:e=>{if(!["ArrowDown","ArrowRight","ArrowUp","ArrowLeft","Home","End"].includes(e.key))return;let t=Array.from(e.currentTarget.querySelectorAll("[data-extension-option]")),r=t.indexOf(e.target);if(r<0)return;e.preventDefault();let n="Home"===e.key?0:"End"===e.key?t.length-1:(r+("ArrowDown"===e.key||"ArrowRight"===e.key?1:-1)+t.length)%t.length;t[n]?.focus()},style:{display:"grid",gap:8},children:e.options.map((r,o)=>(0,n.jsx)("div",{role:"button",tabIndex:0,"data-extension-option":!0,"aria-label":r,ref:0===o?u:void 0,onClick:()=>t(e,{value:r}),onKeyDown:n=>{("Enter"===n.key||" "===n.key)&&(n.preventDefault(),t(e,{value:r}))},style:{width:"100%",padding:"9px 10px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",cursor:"pointer",textAlign:"left",fontSize:13,overflowWrap:"anywhere",scrollMargin:14},children:(0,n.jsx)("div",{inert:!0,children:(0,n.jsx)(lV,{children:r})})},r))}),"input"===e.method&&(0,n.jsx)("input",{autoFocus:!0,className:"extension-input",value:i,placeholder:e.placeholder,onChange:e=>s(e.target.value),onKeyDown:r=>{"Enter"===r.key&&g(),"Escape"===r.key&&t(e,{cancelled:!0})},style:{width:"100%",padding:"9px 10px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",outline:"none",fontSize:13}}),"editor"===e.method&&(0,n.jsx)("textarea",{autoFocus:!0,value:i,onChange:e=>s(e.target.value),onKeyDown:r=>{"Escape"===r.key&&t(e,{cancelled:!0}),(r.metaKey||r.ctrlKey)&&"Enter"===r.key&&g()},style:{width:"100%",minHeight:220,padding:10,borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",outline:"none",resize:"vertical",fontSize:13,lineHeight:1.55,fontFamily:"var(--font-mono)"}})]}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,padding:"10px 14px",borderTop:"1px solid var(--border)",background:"var(--bg-panel)"},children:[(0,n.jsx)("button",{onClick:()=>t(e,{cancelled:!0}),style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text-muted)",cursor:"pointer"},children:r("desktop.cancel")}),"confirm"===e.method?(0,n.jsx)("button",{onClick:g,style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-fg)",cursor:"pointer"},children:r("desktop.confirm")}):"select"!==e.method?(0,n.jsx)("button",{onClick:g,style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-fg)",cursor:"pointer"},children:r("desktop.submit")}):null]})]})})}function uh({request:e,onInput:t}){let{t:r}=(0,Y.s)(),i=(0,o.useRef)(null),s=function(e){let t=/^[┌├└╭╰][─┬┴┼]+[┐┤┘╮╯]$/,r=[];for(let n of e){let e=sa(n).trimEnd();if(t.test(e))continue;let o=n,i=su(o);("│"===i||"┃"===i)&&" "===su(o=sc(o,0))&&(o=sc(o,0));let s=function(e){let t=sd(e);for(let e=t.length-1;e>=0;e--)if(""!==t[e].char.trim())return e;return -1}(o),l=s>=0?sd(o)[s]?.char:void 0;("│"===l||"┃"===l)&&(o=sc(o,s)),r.push(function(e){let t=e;for(;;){let e=sd(t),r=e[e.length-1];if(!r||""!==r.char.trim())return t;t=t.slice(0,r.start)+t.slice(r.end)}}(o))}for(;r.length>0&&""===sa(r[0]).trim();)r.shift();for(;r.length>0&&""===sa(r[r.length-1]).trim();)r.pop();return r.length?r:e}(e.lines);return(0,o.useEffect)(()=>{i.current?.focus()},[e.id]),(0,n.jsx)("div",{style:{position:"absolute",inset:0,zIndex:95,display:"flex",alignItems:"center",justifyContent:"center",padding:20,background:"rgba(0,0,0,0.18)"},children:(0,n.jsxs)("div",{ref:i,tabIndex:0,role:"dialog","aria-modal":"true",onKeyDown:r=>{let n=function(e){if(e.ctrlKey&&!e.metaKey&&!e.altKey&&1===e.key.length){let t=e.key.toLowerCase();if(t>="a"&&t<="z")return String.fromCharCode(t.charCodeAt(0)-96)}switch(e.key){case"ArrowUp":return"\x1b[A";case"ArrowDown":return"\x1b[B";case"ArrowRight":return"\x1b[C";case"ArrowLeft":return"\x1b[D";case"Enter":return"\r";case"Escape":return"\x1b";case"Backspace":return"";case"Tab":return" ";case" ":return" ";default:if(!e.ctrlKey&&!e.metaKey&&!e.altKey&&1===e.key.length)return e.key;return null}}(r);n&&(r.preventDefault(),r.stopPropagation(),t(e,n))},style:{width:"min(920px, 100%)",maxHeight:"min(760px, calc(100vh - 40px))",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg)",boxShadow:"0 20px 60px rgba(0,0,0,0.28)",overflow:"hidden",outline:"none"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,padding:"10px 12px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("div",{style:{color:"var(--text)",fontSize:13,fontWeight:650},children:r("desktop.extensionPanel")}),(0,n.jsx)("button",{onClick:()=>t(e,"\x03"),style:{padding:"5px 9px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12},children:r("desktop.close")})]}),(0,n.jsx)("pre",{style:{margin:0,padding:14,maxHeight:"calc(min(760px, 100vh - 40px) - 48px)",overflow:"auto",background:"var(--bg-panel)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.45,whiteSpace:"pre"},children:(s.length?s:[""]).map((e,t,r)=>{var i;return(0,n.jsxs)(o.Fragment,{children:[(i=`line-${t}`,(function(e){let t,r=[],n={},o=0;for(si.lastIndex=0;null!==(t=si.exec(e));)t.index>o&&r.push({text:e.slice(o,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.backgroundColor;else if(n>=30&&n<=37)r.color=ss[n-30];else if(n>=90&&n<=97)r.color=sl[n-90];else if(n>=40&&n<=47)r.backgroundColor=ss[n-40];else if(n>=100&&n<=107)r.backgroundColor=sl[n-100];else if((38===n||48===n)&&2===t[e+1]){let[o,i,s]=[t[e+2],t[e+3],t[e+4]];[o,i,s].every(e=>"number"==typeof e&&Number.isFinite(e))&&(38===n?r.color=`rgb(${o}, ${i}, ${s})`:r.backgroundColor=`rgb(${o}, ${i}, ${s})`),e+=4}else if((38===n||48===n)&&5===t[e+1]){let o=function(e){if(e>=0&&e<8)return ss[e];if(e>=8&&e<16)return sl[e-8];if(e>=16&&e<=231){let t=e-16,r=Math.floor(t/36),n=Math.floor(t%36/6),o=e=>0===e?0:55+40*e;return`rgb(${o(r)}, ${o(n)}, ${o(t%6)})`}if(e>=232&&e<=255){let t=8+(e-232)*10;return`rgb(${t}, ${t}, ${t})`}}(t[e+2]);o&&(38===n?r.color=o:r.backgroundColor=o),e+=2}}return r}(n,t[1]?t[1].split(";").map(e=>Number(e||"0")):[0]),o=t.index+t[0].length;return o<e.length&&r.push({text:e.slice(o),style:n}),r})(e).map((e,t)=>Object.keys(e.style).length>0?(0,n.jsx)("span",{style:e.style,children:e.text},`${i}-${t}`):e.text)),t<r.length-1?"\n":null]},t)})})]})})}var ug=r(93549);let ux={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",bmp:"image/bmp",ico:"image/x-icon",avif:"image/avif"},uf={mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",oga:"audio/ogg",opus:"audio/ogg",m4a:"audio/mp4",aac:"audio/aac",flac:"audio/flac",weba:"audio/webm"};function um(e){return(e.replace(/\\/g,"/").split("/").pop()??"").toLowerCase().split(".").pop()??""}function uv(e){let t=e.nodeType===Node.ELEMENT_NODE?e:e.parentElement;return t?.closest(".file-source-line[data-line-number]")??null}function uy(e,t){if(!t||t.isCollapsed||0===t.rangeCount)return null;let r=t.getRangeAt(0);if(!e.contains(r.startContainer)||!e.contains(r.endContainer))return null;let n=Number(uv(r.startContainer)?.dataset.lineNumber),o=Number(uv(r.endContainer)?.dataset.lineNumber);return Number.isInteger(n)&&Number.isInteger(o)?n<=o?{startLine:n,endLine:o}:{startLine:o,endLine:n}:null}function ub(e,t,r,n={}){let o=oW(e),i=new URLSearchParams({type:t});for(let[e,t]of(r&&i.set("sessionId",r),Object.entries(n)))void 0!==t&&i.set(e,String(t));return`/api/files/${o}?${i.toString()}`}function uk({filePath:e,sourceSessionId:t}){let{t:r}=(0,Y.s)();return(0,n.jsx)("a",{href:ub(e,"download",t),download:oL(e),title:r("desktop.downloadFile"),style:{display:"flex",alignItems:"center",justifyContent:"center",height:20,padding:"0 5px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:4,color:"var(--text-muted)",cursor:"pointer",flexShrink:0,textDecoration:"none"},children:(0,n.jsx)(M.z,{size:11,"aria-hidden":"true"})})}let uj={fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.6,tabSize:2},uw={fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.6,padding:"12px 0 12px 16px",color:"var(--text-dim)",textAlign:"right",userSelect:"none"};async function uS(e,t){let r=await fetch(`/api/files/${oW(e)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:t})});if(!r.ok)throw Error((await r.json().catch(()=>({}))).error??`HTTP ${r.status}`);let n=await r.json();return"number"==typeof n.size?n.size:0}let uC={delete:"3px solid var(--git-status-deleted)",add:"3px solid var(--git-status-added)",edit:"3px solid var(--git-status-modified)"},uz="var(--git-status-deleted-bg)",uT="var(--git-status-added-bg)",uR="var(--git-status-added)";function uI(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}function uM({oldContent:e,newContent:t}){let{t:r}=(0,Y.s)(),o=function(e,t){let r=e.length,n=t.length,o=r+n,i=Array(2*o+1).fill(0),s=[];for(let l=0;l<=o;l++){s.push([...i]);for(let a=-l;a<=l;a+=2){let d,c=(d=a===-l||a!==l&&i[a-1+o]<i[a+1+o]?i[a+1+o]:i[a-1+o]+1)-a;for(;d<r&&c<n&&e[d]===t[c];)d++,c++;if(i[a+o]=d,d>=r&&c>=n){let i=[],a=r,d=n;for(let r=l;r>0;r--){let n,l=s[r-1],c=a-d;n=c===-r||c!==r&&l[c-1+o]<l[c+1+o]?c+1:c-1;let u=l[n+o],p=u-n;for(;a>u&&d>p;)a--,d--,i.unshift({type:"unchanged",text:e[a]});r>0&&(a>u?(a--,i.unshift({type:"removed",text:e[a]})):(d--,i.unshift({type:"added",text:t[d]})))}for(;a>0&&d>0;)a--,d--,i.unshift({type:"unchanged",text:e[a]});return i}}}return[...e.map(e=>({type:"removed",text:e})),...t.map(e=>({type:"added",text:e}))]}(e.split("\n"),t.split("\n"));if(!o.some(e=>"unchanged"!==e.type))return(0,n.jsx)("div",{style:{padding:"12px 16px",fontSize:12,color:"var(--text-dim)",fontFamily:"var(--font-mono)"},children:r("desktop.noChanges")});let i=new Set(o.flatMap((e,t)=>"unchanged"!==e.type?[t]:[])),s=new Set;for(let e of i)for(let t=Math.max(0,e-3);t<=Math.min(o.length-1,e+3);t++)s.add(t);let l=[],a=0;for(;a<o.length;)if(s.has(a)){let e=[];for(;a<o.length&&s.has(a);)e.push(o[a]),a++;l.push({hidden:!1,lines:e})}else{let e=0;for(;a<o.length&&!s.has(a);)e++,a++;l.push({hidden:!0,count:e})}let d=[],c=1;for(let e of o)"removed"===e.type?d.push(0):d.push(c++);let u=0;return(0,n.jsx)("div",{style:{fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.6,minWidth:"max-content"},children:l.map((e,t)=>{if(e.hidden){let o=(0,n.jsx)("div",{style:{padding:"2px 16px",color:"var(--text-dim)",background:"var(--bg-panel)",fontSize:11,borderTop:"1px solid var(--border)",borderBottom:"1px solid var(--border)"},children:r("desktop.unchangedLines",{count:e.count})},t);return u+=e.count,o}let o=[],i=[],s=[],l=()=>{if(i.length||s.length){let e=i.length&&s.length?"edit":i.length?"delete":"add";for(let t of i)o.push({key:t.key,kind:"removed",text:t.text,lineNo:null,block:e});for(let t of s)o.push({key:t.key,kind:"added",text:t.text,lineNo:t.lineNo,block:e});i=[],s=[]}};e.lines.forEach((e,r)=>{"unchanged"===e.type?(l(),o.push({key:`${t}:${r}`,kind:"context",text:e.text,lineNo:d[u+r],block:null})):"removed"===e.type?i.push({key:`${t}:${r}`,text:e.text}):s.push({key:`${t}:${r}`,text:e.text,lineNo:d[u+r]})}),l();let a=o.map(e=>{let t="removed"===e.kind?uz:"added"===e.kind?uT:"transparent",r=e.block?uC[e.block]:"3px solid transparent",o="added"===e.kind?uR:"var(--text-dim)";return(0,n.jsxs)("div",{style:{display:"flex",background:t,borderLeft:r},children:[(0,n.jsx)("span",{style:{minWidth:44,padding:"0 8px 0 16px",textAlign:"right",color:o,userSelect:"none",fontSize:11,lineHeight:1.6,flexShrink:0},children:e.lineNo??""}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,padding:"0 8px 0 0",whiteSpace:"pre",color:"var(--text)"},children:e.text||"\xa0"})]},e.key)});return u+=e.lines.length,(0,n.jsx)("div",{children:a},t)})})}function uE({patch:e}){let t=l5(e);if(!t)return null;let r=[],o=[],i=[],s=()=>{if(o.length||i.length){let e=o.length&&i.length?"edit":o.length?"delete":"add";for(let t of o)r.push({key:t.key,kind:"removed",text:t.text,lineNo:null,block:e});for(let t of i)r.push({key:t.key,kind:"added",text:t.text,lineNo:t.lineNo,block:e});o=[],i=[]}};return t.forEach((e,t)=>{e.rows.forEach((e,n)=>{if("hunk"===e.type){s(),r.push({key:`${t}:${n}:h`,kind:"hunk",text:e.text,lineNo:null,block:null});return}let{left:l,right:a}=e;if("context"===l.type&&"context"===a.type){s(),r.push({key:`${t}:${n}:c`,kind:"context",text:l.text,lineNo:a.lineNo,block:null});return}"removed"===l.type&&o.push({key:`${t}:${n}:l`,text:l.text}),"added"===a.type&&i.push({key:`${t}:${n}:r`,text:a.text,lineNo:a.lineNo})})}),s(),(0,n.jsx)("div",{style:{fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.55,minWidth:"max-content"},children:r.map(e=>{if("hunk"===e.kind)return(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{height:"1.55em"}}),(0,n.jsx)("div",{style:{padding:"3px 12px",color:"var(--accent-blue)",background:"var(--bg-secondary)"},children:e.text}),(0,n.jsx)("div",{style:{height:"1.55em"}})]},e.key);let t="removed"===e.kind?uz:"added"===e.kind?uT:"transparent",r=e.block?uC[e.block]:"3px solid transparent",o="added"===e.kind?uR:"var(--text-dim)";return(0,n.jsxs)("div",{style:{display:"flex",background:t,borderLeft:r},children:[(0,n.jsx)("span",{style:{width:44,flexShrink:0,padding:"0 8px 0 16px",textAlign:"right",color:o,userSelect:"none",fontSize:11},children:e.lineNo??""}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,padding:"0 8px 0 0",whiteSpace:"pre",color:"var(--text)"},children:e.text||"\xa0"})]},e.key)})})}function u$({filePath:e,cwd:t,sourceSessionId:r}){let{t:i}=(0,Y.s)(),[s,l]=(0,o.useState)(0),[a,d]=(0,o.useState)(null),[c,u]=(0,o.useState)(null),[p,h]=(0,o.useState)(null),g=(0,o.useRef)(null),x=oL(e).toLowerCase().split(".").pop()??"";(0,o.useEffect)(()=>{l(0),d(null),u(null),h(null),g.current&&(g.current.close(),g.current=null);let t=new EventSource(ub(e,"watch",r));return g.current=t,t.addEventListener("change",e=>{try{let t=JSON.parse(e.data);"number"==typeof t.size&&d(t.size)}catch{}l(e=>e+1)}),()=>{t.close(),g.current=null}},[e,r]);let f=ub(e,"read",r,s?{v:s}:void 0),m=null!=a?uI(a):null;return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{className:"file-viewer-status-bar",style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0,flexWrap:"wrap",rowGap:4},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto"},title:e,children:oN(e,t)}),(0,n.jsx)("span",{style:{marginLeft:"auto"},children:x||i("desktop.image")}),c&&(0,n.jsxs)("span",{children:[c.w," \xd7 ",c.h]}),m&&(0,n.jsx)("span",{children:m}),(0,n.jsx)(uk,{filePath:e,sourceSessionId:r})]}),(0,n.jsx)("div",{style:{flex:1,overflow:"auto",background:"var(--bg-panel)",display:"flex",alignItems:"center",justifyContent:"center",padding:16,backgroundImage:"linear-gradient(45deg, var(--bg) 25%, transparent 25%), linear-gradient(-45deg, var(--bg) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--bg) 75%), linear-gradient(-45deg, transparent 75%, var(--bg) 75%)",backgroundSize:"16px 16px",backgroundPosition:"0 0, 0 8px, 8px -8px, -8px 0px"},children:p?(0,n.jsx)("div",{style:{color:"var(--status-error)",fontSize:13},children:p}):(0,n.jsx)("img",{src:f,alt:e,onLoad:e=>{let t=e.currentTarget;u({w:t.naturalWidth,h:t.naturalHeight})},onError:()=>h(i("desktop.failedToLoadImage")),style:{maxWidth:"100%",maxHeight:"100%",objectFit:"contain",boxShadow:"0 2px 8px rgba(0,0,0,0.15)"}})})]})}function uW({filePath:e,cwd:t,sourceSessionId:r}){let{t:i}=(0,Y.s)(),[s,l]=(0,o.useState)(0),[a,d]=(0,o.useState)(null),[c,u]=(0,o.useState)(null),[p,h]=(0,o.useState)(null),g=(0,o.useRef)(null),x=oL(e).toLowerCase().split(".").pop()??"";(0,o.useEffect)(()=>{l(0),d(null),u(null),h(null),g.current&&(g.current.close(),g.current=null);let t=new EventSource(ub(e,"watch",r));return g.current=t,t.addEventListener("change",e=>{try{let t=JSON.parse(e.data);"number"==typeof t.size&&d(t.size)}catch{}u(null),h(null),l(e=>e+1)}),()=>{t.close(),g.current=null}},[e,r]);let f=ub(e,"read",r,s?{v:s}:void 0);return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{className:"file-viewer-status-bar",style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0,flexWrap:"wrap",rowGap:4},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto"},title:e,children:oN(e,t)}),(0,n.jsx)("span",{style:{marginLeft:"auto"},children:x||i("desktop.audio")}),null!=c&&(0,n.jsx)("span",{children:function(e){if(!Number.isFinite(e))return"";let t=Math.round(e),r=Math.floor(t/60);return`${r}:${String(t%60).padStart(2,"0")}`}(c)}),null!=a&&(0,n.jsx)("span",{children:uI(a)}),(0,n.jsx)(uk,{filePath:e,sourceSessionId:r})]}),(0,n.jsx)("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",padding:24,background:"var(--bg-panel)"},children:(0,n.jsxs)("div",{style:{width:"min(680px, 100%)"},children:[p&&(0,n.jsx)("div",{style:{color:"var(--status-error)",fontSize:13,marginBottom:12,textAlign:"center"},children:p}),(0,n.jsx)("audio",{controls:!0,preload:"metadata",src:f,onLoadedMetadata:e=>u(e.currentTarget.duration),onError:()=>h(i("desktop.failedToLoadAudio")),style:{width:"100%"}},f)]})})]})}function uL({filePath:e,cwd:t,sourceSessionId:r,initialPage:i}){let{t:s}=(0,Y.s)(),[l,a]=(0,o.useState)(0),[d,c]=(0,o.useState)(null),[u,p]=(0,o.useState)(null),h=(0,o.useRef)(null),g=um(e),x="pdf"===g,f=x&&i&&i>0?`#page=${i}`:"",m=x?`${ub(e,"read",r,l?{v:l}:void 0)}${f}`:ub(e,"preview",r,l?{v:l}:void 0);return(0,o.useEffect)(()=>{a(0),c(null),p(null),h.current&&(h.current.close(),h.current=null),fetch(ub(e,"meta",r)).then(e=>e.json()).then(e=>{e.error&&p(e.error),"number"==typeof e.size&&(c(e.size),!x&&e.size>0xa00000&&p(s("desktop.docxTooLargeForPreview")))}).catch(e=>p(String(e)));let t=new EventSource(ub(e,"watch",r));return h.current=t,t.addEventListener("change",e=>{try{let t=JSON.parse(e.data);if("number"==typeof t.size&&(c(t.size),!x&&t.size>0xa00000))return void p(s("desktop.docxTooLargeForPreview"))}catch{}p(null),a(e=>e+1)}),()=>{t.close(),h.current=null}},[e,x,r,s]),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{className:"file-viewer-status-bar",style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0,flexWrap:"wrap",rowGap:4},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e,children:oN(e,t)}),(0,n.jsx)("span",{style:{marginLeft:"auto"},children:"docx"===g?s("desktop.docxPreview"):"pdf"}),null!=d&&(0,n.jsx)("span",{children:uI(d)}),(0,n.jsx)(uk,{filePath:e,sourceSessionId:r})]}),(0,n.jsx)("div",{style:{flex:1,minHeight:0,background:"var(--bg-panel)"},children:u?(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",padding:24,color:"var(--status-error)",fontSize:13,textAlign:"center"},children:u}):(0,n.jsx)("iframe",{src:m,sandbox:x?void 0:"allow-same-origin",title:s("desktop.previewFile",{file:oL(e)}),style:{width:"100%",height:"100%",border:"none",background:x?"var(--bg)":"#eef1f5"}},m)})]})}function uN({filePath:e,cwd:t,sourceSessionId:r,onOpenFile:o,onAtMention:i,onMentionLines:s,initialDisplayMode:l,initialPage:a,onFileSaved:d}){let c;return null!==(ux[um(e)]??null)?(0,n.jsx)(u$,{filePath:e,cwd:t,sourceSessionId:r}):null!==(uf[um(e)]??null)?(0,n.jsx)(uW,{filePath:e,cwd:t,sourceSessionId:r}):null!==("pdf"===(c=um(e))||"docx"===c?c:null)?(0,n.jsx)(uL,{filePath:e,cwd:t,sourceSessionId:r,initialPage:a}):(0,n.jsx)(uA,{filePath:e,cwd:t,sourceSessionId:r,onOpenFile:o,onAtMention:i,onMentionLines:s,initialDisplayMode:l,onFileSaved:d})}function uA({filePath:e,cwd:t,sourceSessionId:r,onOpenFile:i,onAtMention:s,onMentionLines:l,initialDisplayMode:a,onFileSaved:d}){let c,u,{t:p}=(0,Y.s)(),[h,x]=(0,o.useState)(null),[f,v]=(0,o.useState)(null),[y,b]=(0,o.useState)(null),[k,j]=(0,o.useState)(!0),[w,S]=(0,o.useState)(!1),[C,z]=(0,o.useState)(null),[T,R]=(0,o.useState)(!1),[I,M]=(0,o.useState)("source"),[E,$]=(0,o.useState)(!1),[W,L]=(0,o.useState)(0),[N,A]=(0,o.useState)(null),P=(0,o.useRef)(null),F=(0,o.useRef)(null),[D,H]=(0,o.useState)(!1),[O,B]=(0,o.useState)(""),[U,_]=(0,o.useState)(""),[q,K]=(0,o.useState)(!1),[V,J]=(0,o.useState)(null),[G,X]=(0,o.useState)(!1),Z=(0,o.useRef)(null),Q=(0,o.useRef)(null),ee=(0,o.useRef)(0),et=(0,o.useRef)(!1);(0,o.useEffect)(()=>{et.current=D},[D]);let er=D&&O!==U,en=!!(h?.content&&h.content.includes("\0")),eo=(0,o.useCallback)(async e=>{if(!t)return void b(null);try{let r=new URLSearchParams({cwd:t,path:e}),n=await fetch(`/api/git/diff?${r.toString()}`),o=await n.json();b(n.ok&&o.supported&&"string"==typeof o.patch?o:null)}catch{b(null)}},[t]),ei=(0,o.useCallback)((e,t=!1,n=0)=>fetch(ub(e,"read",r,n?{offset:n}:void 0)).then(e=>e.json()).then(e=>e.error?(z(e.error),null):(t?(x(t=>(t&&v(t.content),e)),L(e=>e+1)):n?x(t=>t?{...e,content:t.content+e.content}:e):x(e),e)).catch(e=>(z(String(e)),null)),[r]);(0,o.useEffect)(()=>{j(!0),z(null),x(null),v(null),b(null),R(!1),M("source"),$(!1),L(0),H(!1),B(""),_(""),J(null),X(!1),K(!1),P.current&&(P.current.close(),P.current=null),ei(e).then(e=>{e?.truncated||e?.language!=="markdown"&&e?.language!=="html"||"diff"===a||R(!0)}).finally(()=>j(!1)),eo(e);let t=new EventSource(ub(e,"watch",r));return P.current=t,t.addEventListener("change",()=>{et.current?X(!0):(ei(e,!0),eo(e))}),()=>{t.close(),P.current=null}},[e,ei,eo,a,r]);let es=(0,o.useCallback)(()=>{h&&!en&&(B(h.content),_(h.content),J(null),X(!1),H(!0))},[h,en]),el=(0,o.useCallback)(()=>{H(!1),B(""),_(""),J(null),X(!1)},[]),ea=(0,o.useCallback)(()=>{(!er||window.confirm(p("files.unsavedChanges")))&&el()},[er,el,p]),ed=(0,o.useCallback)(async()=>{if(!h||q)return;let t=++ee.current;K(!0),J(null);try{let r=await uS(e,O);if(t!==ee.current)return;x(e=>e?{...e,content:O,size:r}:e),_(O),K(!1),el(),eo(e),d?.()}catch(e){if(t!==ee.current)return;J(e instanceof Error?e.message:String(e)),K(!1)}},[h,q,O,e,el,eo,d]);(0,o.useEffect)(()=>{if(!D)return;let e=e=>{if((e.metaKey||e.ctrlKey)&&"s"===e.key.toLowerCase()){e.preventDefault(),ed();return}"Escape"===e.key&&(e.preventDefault(),ea())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[D,ed,ea]),(0,o.useEffect)(()=>{if(!er)return;let e=e=>{e.preventDefault(),e.returnValue=""};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[er]);let ec=(0,o.useCallback)(()=>{let e=Z.current,t=Q.current;e&&t&&(t.scrollTop=e.scrollTop)},[]),eu=(0,o.useCallback)(e=>{if("Tab"!==e.key||e.metaKey||e.ctrlKey||e.altKey)return;e.preventDefault();let t=e.currentTarget,{selectionStart:r,selectionEnd:n}=t;B(t.value.slice(0,r)+" "+t.value.slice(n)),requestAnimationFrame(()=>{let e=Z.current;if(!e)return;let t=r+2;e.selectionStart=t,e.selectionEnd=t})},[]),ep=(0,o.useMemo)(()=>lz(h?.content??""),[h?.content]),eh=y?.supported===!0&&"string"==typeof y.patch;(0,o.useEffect)(()=>{"diff"===a&&eh&&M("diff")},[eh,a]);let eg=eh&&y?.status==="deleted",ex=(0,o.useCallback)(r=>{l&&r&&l(oN(e,t),r.startLine,r.endLine)},[t,e,l]);if((0,o.useEffect)(()=>{let e=()=>{let e=F.current,t="source"===I&&!T;A(l&&t&&e?uy(e,window.getSelection()):null)};if(e(),l&&"source"===I&&!T)return document.addEventListener("selectionchange",e),()=>document.removeEventListener("selectionchange",e)},[h?.content,l,T,I]),(0,o.useEffect)(()=>{if(!l||"source"!==I||T)return;let e=e=>{if(e.repeat||"i"!==e.key.toLowerCase()||!e.metaKey&&!e.ctrlKey||e.altKey||e.shiftKey)return;let t=e.target;if(t instanceof Element&&t.closest("input, textarea, [contenteditable='true']"))return;let r=F.current,n=r?uy(r,window.getSelection()):null;n&&(e.preventDefault(),ex(n))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[ex,l,T,I]),k)return(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:13},children:p("desktop.loadingFile")});if(eg&&!h)return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsx)("div",{style:{padding:"5px 16px",borderBottom:"1px solid var(--border)",color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:11},title:e,children:oN(e,t)}),(0,n.jsx)("div",{style:{flex:1,overflow:"auto",background:"var(--bg)"},children:(0,n.jsx)(uE,{patch:y.patch})})]});if(C)return(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--status-error)",fontSize:13},children:C});if(!h)return null;let ef="html"===h.language,em="markdown"===h.language,ev=(u=(c=o$(e).replace(/\/+$/,"")).lastIndexOf("/"))<0?"":0===u?"/":2===u&&/^[a-zA-Z]:\//.test(c)?c.slice(0,3):c.slice(0,u),ey=h.content.split("\n"),eb=null!==f&&f!==h.content||eh,ek=!eg&&!en&&oF();return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{className:"file-viewer-status-bar",style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0,flexWrap:"wrap",rowGap:4},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto"},title:e,children:oN(e,t)}),(0,n.jsx)("span",{style:{marginLeft:"auto"},children:h.language}),"source"===I&&!D&&(0,n.jsx)("span",{children:p("desktop.lines",{count:ey.length})}),(0,n.jsx)("span",{children:uI(h.size)}),eb&&!D&&(0,n.jsxs)("div",{style:{display:"flex",borderRadius:5,overflow:"hidden",border:"1px solid var(--border)"},children:[(0,n.jsx)("button",{onClick:()=>M("source"),style:{padding:"2px 8px",fontSize:11,border:"none",cursor:"pointer",background:"source"===I?"var(--bg-selected)":"var(--bg-hover)",color:"source"===I?"var(--text)":"var(--text-muted)",fontWeight:"source"===I?600:400},children:p("desktop.source")}),(0,n.jsxs)("button",{onClick:()=>M("diff"),style:{padding:"2px 8px",fontSize:11,border:"none",borderLeft:"1px solid var(--border)",cursor:"pointer",background:"diff"===I?"var(--bg-selected)":"var(--bg-hover)",color:"diff"===I?"var(--text)":"var(--text-muted)",fontWeight:"diff"===I?600:400},children:[p("desktop.diff")," ",W>0&&(0,n.jsxs)("span",{style:{color:"var(--git-status-added)",marginLeft:2},children:["+",W]})]})]}),"source"===I&&!T&&!D&&(0,n.jsx)("button",{onClick:()=>$(e=>!e),title:E?p("desktop.disableWordWrap"):p("desktop.enableWordWrap"),style:{padding:"2px 8px",fontSize:11,cursor:"pointer",background:E?"var(--bg-selected)":"var(--bg-hover)",color:E?"var(--text)":"var(--text-muted)",border:"1px solid var(--border)",borderRadius:5,fontWeight:E?600:400},children:p("desktop.wrap")}),ef&&"source"===I&&!D&&(0,n.jsxs)("div",{style:{display:"flex",borderRadius:5,overflow:"hidden",border:"1px solid var(--border)"},children:[(0,n.jsx)("button",{onClick:()=>R(!1),style:{padding:"2px 8px",fontSize:11,border:"none",cursor:"pointer",background:T?"var(--bg-hover)":"var(--bg-selected)",color:T?"var(--text-muted)":"var(--text)",fontWeight:T?400:600},children:p("desktop.code")}),(0,n.jsx)("button",{onClick:()=>R(!0),style:{padding:"2px 8px",fontSize:11,border:"none",borderLeft:"1px solid var(--border)",cursor:"pointer",background:T?"var(--bg-selected)":"var(--bg-hover)",color:T?"var(--text)":"var(--text-muted)",fontWeight:T?600:400},children:p("desktop.preview")})]}),em&&"source"===I&&!D&&(0,n.jsxs)("div",{style:{display:"flex",borderRadius:5,overflow:"hidden",border:"1px solid var(--border)"},children:[(0,n.jsx)("button",{onClick:()=>R(!0),style:{padding:"2px 8px",fontSize:11,border:"none",cursor:"pointer",background:T?"var(--bg-selected)":"var(--bg-hover)",color:T?"var(--text)":"var(--text-muted)",fontWeight:T?600:400},children:p("desktop.preview")}),(0,n.jsx)("button",{onClick:()=>R(!1),style:{padding:"2px 8px",fontSize:11,border:"none",borderLeft:"1px solid var(--border)",cursor:"pointer",background:T?"var(--bg-hover)":"var(--bg-selected)",color:T?"var(--text-muted)":"var(--text)",fontWeight:T?400:600},children:p("desktop.raw")})]}),D?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button",onClick:()=>void ed(),disabled:q,title:p("files.saveHint"),"aria-label":p("files.save"),style:{height:20,minWidth:20,padding:"0 5px",display:"inline-flex",alignItems:"center",justifyContent:"center",border:"1px solid var(--border)",borderRadius:4,background:"var(--bg-selected)",color:"var(--text)",cursor:"pointer"},children:(0,n.jsx)(ug.g,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("button",{type:"button",onClick:ea,disabled:q,title:p("files.cancelEdit"),"aria-label":p("files.cancelEdit"),style:{height:20,minWidth:20,padding:"0 5px",display:"inline-flex",alignItems:"center",justifyContent:"center",border:"1px solid var(--border)",borderRadius:4,background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer"},children:(0,n.jsx)(g.X,{size:13,"aria-hidden":"true"})})]}):"source"===I&&ek?(0,n.jsx)("button",{type:"button",onClick:es,title:p("files.edit"),"aria-label":p("files.edit"),style:{height:20,minWidth:20,padding:"0 5px",display:"inline-flex",alignItems:"center",justifyContent:"center",border:"1px solid var(--border)",borderRadius:4,background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer"},children:(0,n.jsx)(m.I,{size:13,"aria-hidden":"true"})}):null,(s||l)&&!D&&(0,n.jsx)("button",{type:"button",onPointerDown:e=>e.preventDefault(),onClick:()=>{N&&l?ex(N):s?.(oN(e,t),!1)},title:N?p("desktop.mentionSelectedLines",{start:N.startLine,end:N.endLine}):p("desktop.mentionFile"),"aria-label":N?p("desktop.mentionSelectedLines",{start:N.startLine,end:N.endLine}):p("desktop.mentionFile"),style:{height:20,minWidth:20,padding:"0 5px",border:"1px solid var(--border)",borderRadius:4,background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer"},children:"@"}),!D&&(0,n.jsx)(uk,{filePath:e,sourceSessionId:r})]}),h?.truncated&&"source"===I&&!D&&(0,n.jsxs)("div",{className:"file-viewer-load-more",style:{display:"flex",alignItems:"center",justifyContent:"center",gap:10,padding:"5px 8px",borderBottom:"1px solid var(--border)",color:"var(--text-dim)",fontSize:11},children:[(0,n.jsxs)("span",{children:[uI(h.nextOffset)," / ",uI(h.size)]}),(0,n.jsx)("button",{type:"button",disabled:w,onClick:()=>{S(!0),ei(e,!1,h.nextOffset).finally(()=>S(!1))},style:{padding:"2px 10px",fontSize:11,cursor:"pointer",border:"1px solid var(--border)",borderRadius:5,background:"var(--bg-hover)",color:"var(--text)",opacity:w?.6:1},children:w?p("i18n.loading"):p("i18n.loadMore")})]}),(0,n.jsx)("div",{ref:F,style:{flex:1,overflow:"auto",background:"var(--bg)"},children:D?(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[G&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"5px 12px",borderBottom:"1px solid var(--border)",background:"rgba(214,168,75,0.14)",color:"#d6a84b",fontSize:11,flexShrink:0},children:[(0,n.jsx)("span",{style:{flex:1},children:p("files.externalModified")}),(0,n.jsx)("button",{type:"button",onClick:()=>{(!er||window.confirm(p("files.reloadOverwriteConfirm")))&&ei(e).then(e=>{e&&(B(e.content),_(e.content),X(!1))})},disabled:q,style:{padding:"2px 8px",fontSize:11,border:"1px solid #d6a84b",borderRadius:4,background:"transparent",color:"#d6a84b",cursor:"pointer"},children:p("files.reload")})]}),V&&(0,n.jsx)("div",{style:{padding:"5px 12px",borderBottom:"1px solid var(--border)",background:"rgba(248,113,113,0.14)",color:"var(--status-error)",fontSize:11,flexShrink:0},children:p("files.saveFailed",{error:V})}),(0,n.jsxs)("div",{style:{flex:1,display:"flex",overflow:"hidden"},children:[(0,n.jsx)("div",{ref:Q,"aria-hidden":"true",style:{...uw,height:"100%",overflow:"hidden",whiteSpace:"pre",pointerEvents:"none"},children:O.split("\n").map((e,t)=>`${t+1}
197
- `).join("")}),(0,n.jsx)("textarea",{ref:Z,className:"file-editor-textarea",value:O,onChange:e=>B(e.target.value),onScroll:ec,onKeyDown:eu,spellCheck:!1,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",wrap:"off",style:{flex:1,height:"100%",resize:"none",border:"none",outline:"none",background:"var(--bg)",color:"var(--text)",...uj,whiteSpace:"pre",overflow:"auto",padding:0,tabSize:2}})]})]}):"diff"===I&&eb?eh?(0,n.jsx)(uE,{patch:y.patch}):(0,n.jsx)(uM,{oldContent:f,newContent:h.content}):ef&&T?(0,n.jsx)("iframe",{srcDoc:h.content,sandbox:"allow-scripts",style:{width:"100%",height:"100%",border:"none",background:"var(--bg)"},title:p("desktop.htmlPreview")}):em&&T?(0,n.jsx)("div",{className:"markdown-body markdown-file-preview",style:{padding:"24px 32px"},children:(0,n.jsx)(s_.oz,{remarkPlugins:lI,rehypePlugins:lM,components:{h1:({children:e})=>(0,n.jsx)("h1",{id:lS(e),children:e}),h2:({children:e})=>(0,n.jsx)("h2",{id:lS(e),children:e}),h3:({children:e})=>(0,n.jsx)("h3",{id:lS(e),children:e}),code({className:e,children:t,...r}){let o=e?.replace("language-","").toLowerCase()??"",i=String(t);return e?.includes("language-")||i.includes("\n")?"mermaid"===o?(0,n.jsx)(lY,{code:i.replace(/\n$/,"")}):(0,n.jsx)(lZ,{code:i.replace(/\n$/,""),lang:o}):(0,n.jsx)("code",{className:"inline max-w-full whitespace-normal break-words [overflow-wrap:anywhere] align-baseline bg-(--bg-secondary) border border-(--border) px-1.5 py-0.5 text-xs font-mono text-(--accent-blue)",...r,children:t})},pre:({children:e})=>(0,n.jsx)(n.Fragment,{children:e}),a({href:e,children:r,...o}){delete o.node;let s="text-(--accent-blue) underline underline-offset-2 hover:text-(--accent-blue)/80",l=i?sR(e,ev,t??ev):null;return l&&i?(0,n.jsx)("a",{href:e,...o,className:s,onClick:t=>{if(t.defaultPrevented||0!==t.button||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey)return;let r=t.currentTarget.getAttribute("target");r&&"_self"!==r||(t.preventDefault(),i(l,sM(e)??void 0))},children:r}):(0,n.jsx)("a",{href:e,...o,className:s,target:"_blank",rel:"noopener noreferrer",children:r})},table:({children:e})=>(0,n.jsx)("div",{className:"my-3 rounded-lg overflow-hidden border border-(--border)",children:(0,n.jsx)("div",{className:"overflow-x-auto",children:(0,n.jsx)("table",{className:"w-full text-sm border-collapse [&_tr:last-child>td]:border-b-0",children:e})})})},children:ep})}):(0,n.jsx)(sq.A,{language:"text"===h.language?"plaintext":h.language,style:lE,showLineNumbers:!0,lineNumberStyle:{color:"var(--text-dim)",fontStyle:"normal",minWidth:"3em",paddingRight:"1em"},customStyle:{margin:0,padding:"12px 0",background:"var(--bg)",fontSize:13,lineHeight:1.6,fontFamily:"var(--font-mono)",minHeight:"100%"},codeTagProps:{style:{fontFamily:"var(--font-mono)"}},lineProps:e=>({className:"file-source-line","data-line-number":String(e)}),wrapLongLines:E,children:h.content})})]})}function uP({sessionId:e,label:t,running:r=!1,onOpenFile:i}){let{t:s}=(0,Y.s)(),[l,a]=(0,o.useState)([]),[d,c]=(0,o.useState)([]),[u,p]=(0,o.useState)(!0),[h,g]=(0,o.useState)(null);(0,o.useEffect)(()=>{let t=!1;return(async r=>{r&&p(!0);try{let r=await fetch(`/api/sessions/${encodeURIComponent(e)}?tail=500`,{cache:"no-store"}),n=await r.json();if(t)return;if(!r.ok)throw Error(n.error??`HTTP ${r.status}`);a(n.context?.messages??[]),c(n.context?.entryIds??[]),g(null)}catch(e){if(t)return;g(e instanceof Error?e.message:String(e))}finally{t||p(!1)}})(!0),()=>{t=!0}},[e]),(0,o.useEffect)(()=>{if(!r)return;let t=!1,n=window.setInterval(async()=>{if("visible"===document.visibilityState)try{let r=await fetch(`/api/sessions/${encodeURIComponent(e)}?tail=500`,{cache:"no-store"});if(!r.ok)return;let n=await r.json();if(t)return;a(n.context?.messages??[]),c(n.context?.entryIds??[])}catch{}},2500);return()=>{t=!0,window.clearInterval(n)}},[r,e]);let x=(0,o.useMemo)(()=>{let e=new Map;for(let t of l)"toolResult"===t.role&&e.set(t.toolCallId,t);return e},[l]),f=(0,o.useMemo)(()=>sB(l,d,void 0,x),[l,d,x]),m=(0,o.useMemo)(()=>l.filter(e=>"user"===e.role||"assistant"===e.role).length,[l]),v=(t,r)=>(0,n.jsx)(af,{message:r?.messageOverride??l[t],toolResults:f.toolResultsMap,entryId:d[t],sessionId:e,onOpenFile:i},`subagent-msg-${t}`);return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0,background:"var(--bg)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexShrink:0,padding:"8px 12px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)"},children:[(0,n.jsx)("span",{style:{fontSize:12,fontWeight:600,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t||s("subagent.transcriptTitle")}),r&&(0,n.jsx)("span",{style:{marginLeft:"auto",fontSize:11,color:"var(--accent)",whiteSpace:"nowrap"},children:s("agentSwitcher.status.running")})]}),(0,n.jsxs)("div",{className:"scrollbar-subtle scroll-overlay",style:{flex:1,minHeight:0,overflowY:"auto",padding:"10px 12px"},children:[u&&0===l.length&&(0,n.jsx)("div",{style:{color:"var(--text-dim)",fontSize:12},children:s("subagent.transcriptLoading")}),h&&0===l.length&&(0,n.jsx)("div",{style:{color:"var(--status-error)",fontSize:12},children:s("subagent.transcriptFailed",{error:h})}),!u&&!h&&0===m&&(0,n.jsx)("div",{style:{color:"var(--text-dim)",fontSize:12},children:s(r?"subagent.transcriptWaiting":"subagent.transcriptEmpty")}),f.items.map((e,t)=>{if("single"===e.kind)return(0,n.jsx)("div",{children:v(e.idx)},`single-${e.idx}`);let{userIdx:o,endIdx:s,finalAssistantIdx:l,finalAnswerMessage:a}=e,d=t===f.items.length-1,c=r&&d;return(0,n.jsxs)("div",{children:[o>=0&&v(o),e.processSegments.map((t,r)=>(0,n.jsx)(d$,{blocks:t.blocks,isStreaming:c&&r===e.processSegments.length-1&&-1===l,defaultExpanded:c&&r===e.processSegments.length-1&&-1===l,onOpenFile:i},`seg-${o}-${r}`)),a&&v(l,{messageOverride:a}),l>=0&&(()=>{let e=[];for(let t=l+1;t<s;t++)e.push((0,n.jsx)("div",{children:v(t)},`tail-${t}`));return e})()]},`turn-${o}-${t}`)})]})]})}function uF({tabs:e,activeTabId:t,onSelectTab:r,onCloseTab:i}){let{t:s}=(0,Y.s)(),l=(0,o.useRef)(null),[a,d]=(0,o.useState)(!1);(0,o.useEffect)(()=>{if(!t)return;let e=l.current;if(!e)return;let r=e.querySelector(`[data-tab-id="${CSS.escape(t)}"]`);r?.scrollIntoView({block:"nearest",inline:"nearest"})},[t,e.length]),(0,o.useEffect)(()=>{let e=l.current;if(!e)return;let t=()=>d(e.scrollWidth>e.clientWidth+1);t();let r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[e.length]);let c=(0,o.useCallback)((t,n)=>{if(t.target!==t.currentTarget)return;if("Enter"===t.key||" "===t.key){t.preventDefault(),r(n.id);return}if(!["ArrowLeft","ArrowRight","Home","End"].includes(t.key))return;t.preventDefault();let o=e.findIndex(e=>e.id===n.id),i="Home"===t.key?0:"End"===t.key?e.length-1:(o+("ArrowRight"===t.key?1:-1)+e.length)%e.length;r(e[i].id);let s=l.current;s?.querySelector(`[data-tab-id="${CSS.escape(e[i].id)}"]`)?.focus()},[r,e]);return(0,n.jsx)("div",{ref:l,role:"tablist",className:`file-tab-bar${a?"":" no-overflow"}`,children:e.map(o=>{let l=o.id===t;return(0,n.jsxs)("div",{role:"tab","data-tab-id":o.id,"aria-label":"terminal"===o.kind?s("terminal.tabLabel",{name:o.label}):"subagent"===o.kind?s("subagent.transcriptTitle")+": "+o.label:o.label,"aria-selected":l,tabIndex:l||!t&&e[0].id===o.id?0:-1,className:"file-tab",onKeyDown:e=>c(e,o),onClick:()=>r(o.id),onMouseDown:e=>{1===e.button&&e.preventDefault()},onAuxClick:e=>{1===e.button&&(e.preventDefault(),e.stopPropagation(),o.closing||i(o.id))},children:[(0,n.jsx)("span",{className:"file-tab-icon",children:"subagent"===o.kind?(0,n.jsx)(_.d,{size:13,"aria-hidden":"true"}):"terminal"===o.kind?(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("polyline",{points:"4 17 10 11 4 5"}),(0,n.jsx)("line",{x1:"12",y1:"19",x2:"20",y2:"19"})]}):oE(o.label,13)}),(0,n.jsx)("span",{className:"file-tab-label",title:o.filePath,children:o.label}),(0,n.jsx)("button",{type:"button",className:"file-tab-close",disabled:o.closing,onClick:e=>{e.stopPropagation(),i(o.id)},title:s("desktop.closeTab"),"aria-label":s("desktop.closeTabWithLabel",{label:o.label}),children:(0,n.jsx)(g.X,{size:11,"aria-hidden":"true"})})]},o.id)})})}let uD="pi-web:file-tabs";function uH(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}var uO=r(14801),uB=r(8550),uU=r(58309),u_=r(44825),uq=r(25494),uK=r(9107),uV=r(25182),uJ=r(69618),uY=r(91669),uG=r(16449),uX=r(47603),uZ=r(78890),uQ=r(88074);let u0=[{id:"all",icon:uU.A,labelKey:"palette.scope.all"},{id:"commands",icon:u_.A,labelKey:"palette.scope.commands"},{id:"sessions",icon:uq.A,labelKey:"palette.scope.sessions"},{id:"files",icon:uK.A,labelKey:"palette.scope.files"}],u1=["suggested","navigation","panels","configure"];function u2({text:e,query:t}){let r=function(e,t){let r=t.trim().toLowerCase().split(/\s+/).filter(Boolean);if(!e||0===r.length)return[{text:e,hit:!1}];let n=e.toLowerCase(),o=[];for(let e of r){let t=0;for(;;){let r=n.indexOf(e,t);if(-1===r)break;o.push([r,r+e.length]),t=r+e.length}}if(0===o.length)return[{text:e,hit:!1}];o.sort((e,t)=>e[0]-t[0]||e[1]-t[1]);let i=[];for(let e of o){let t=i[i.length-1];t&&e[0]<=t[1]?t[1]=Math.max(t[1],e[1]):i.push([e[0],e[1]])}let s=[],l=0;for(let[t,r]of i)t>l&&s.push({text:e.slice(l,t),hit:!1}),s.push({text:e.slice(t,r),hit:!0}),l=r;return l<e.length&&s.push({text:e.slice(l),hit:!1}),s}(e,t);return(0,n.jsx)(n.Fragment,{children:r.map((e,t)=>e.hit?(0,n.jsx)("mark",{className:"palette-mark",children:e.text},t):(0,n.jsx)("span",{children:e.text},t))})}function u6({open:e,onOpenChange:t,sessions:r,projectKey:i,cwd:s,commands:l,onOpenSession:a,onOpenFile:d,onOpenMessage:c}){let u,p,h,{t:g}=(0,Y.s)(),[x,f]=(0,o.useState)(""),[m,v]=(0,o.useState)("all"),[y,b]=(0,o.useState)([]),[k,j]=(0,o.useState)(!1),[w,S]=(0,o.useState)([]),[C,z]=(0,o.useState)(!1),[T,R]=(0,o.useState)([]),I=(0,o.useRef)(null),M=(0,o.useRef)(!1),{scope:E,query:$}=(p=(u=x.trimStart()).slice(0,1),(h=Object.prototype.hasOwnProperty.call(im,p)?im[p]:null)?{scope:h,query:u.slice(1).trim()}:{scope:m,query:x.trim()});(0,o.useEffect)(()=>{e&&(M.current=!1,b(function(e){let t=ib();if(!t)return[];try{return function(e){if(!e)return[];try{let r=JSON.parse(e);if(!Array.isArray(r))return[];let n=[];for(let e of r)if(e&&"object"==typeof e&&"string"==typeof e.query&&iy(e.query)){var t;n.push({query:e.query,scope:(t=e.scope,"string"==typeof t&&ix.includes(t))?e.scope:"all",updatedAt:"number"==typeof e.updatedAt?e.updatedAt:0})}return n.slice(0,20)}catch{return[]}}(t.getItem(iv(e)))}catch{return[]}}(i)),f(""),j(!1))},[e,i]),(0,o.useEffect)(()=>{j(!1)},[$]),(0,o.useEffect)(()=>{if(!e||!s)return void R([]);let t=!1;return(async()=>{try{let e=await fetch(`/api/file-index?cwd=${encodeURIComponent(s)}`);if(!e.ok)return;let r=await e.json().catch(()=>null);!t&&Array.isArray(r?.files)&&R(r.files)}catch{}})(),()=>{t=!0}},[e,s]),(0,o.useEffect)(()=>{if(!e)return;if("sessions"!==E&&"all"!==E){S([]),z(!1);return}let t=$.trim(),n=t?r.filter(e=>!e.transient).filter(e=>{let r=`${e.name??""} ${e.firstMessage??""}`.toLowerCase();return t.toLowerCase().split(/\s+/).every(e=>r.includes(e))}).slice(0,80).map(e=>({session:e})):r.filter(e=>!e.transient).slice(0,3).map(e=>({session:e}));if(!t){S(n),z(!1);return}I.current?.abort();let o=new AbortController;return I.current=o,z(!0),(async()=>{let e=[];try{let r=await fetch(`/api/sessions/search?q=${encodeURIComponent(t)}`,{signal:o.signal});if(r.ok){let t=await r.json().catch(()=>null);e=(t?.results??[]).slice(0,80).map(e=>({session:e.session,entryId:e.entryId,snippet:`${e.before??""}${e.match??""}${e.after??""}`.trim()}))}}catch{}if(o.signal.aborted)return;let r=new Set(n.map(e=>e.session.id));S([...n,...e.filter(e=>!r.has(e.session.id))]),z(!1)})(),()=>{o.abort()}},[e,E,$,r]);let W=(0,o.useMemo)(()=>{if("files"!==E&&"all"!==E)return[];let e=$.trim().toLowerCase();return(e?T.filter(t=>e.split(/\s+/).every(e=>t.toLowerCase().includes(e))):T.slice(0,3)).slice(0,80)},[T,$,E]),L=(0,o.useMemo)(()=>{let e=$.trim().toLowerCase(),t=e?l.filter(t=>{let r=`${t.title} ${(t.keywords??[]).join(" ")}`.toLowerCase();return e.split(/\s+/).every(e=>r.includes(e))}):l,r=new Map;for(let e of u1)r.set(e,[]);for(let e of t)r.get(e.section)?.push(e);return r},[l,$]),N=(0,o.useCallback)((e,r)=>{let n=function(e,t,r,n){if(!iy(t))return[...e];let o=t.trim().toLowerCase(),i=e.filter(e=>e.query.trim().toLowerCase()!==o);return[{query:t.trim(),scope:r,updatedAt:n},...i].slice(0,20)}(y,ik(e),r,Date.now());b(n);let o=ib();if(o)try{o.setItem(iv(i),JSON.stringify(n.slice(0,20)))}catch{}setTimeout(()=>t(!1),0)},[y,i,t]),A=(0,o.useCallback)(e=>{M.current||(M.current=!0,N(x,E),setTimeout(()=>e.run(),0))},[x,E,N]),P=(0,o.useCallback)(e=>{N(x,E),setTimeout(()=>{e.entryId?c(e.session,e.entryId):a(e.session)},0)},[x,E,N,c,a]),F=(0,o.useCallback)(e=>{N(x,E),setTimeout(()=>d(e),0)},[x,E,N,d]),D="all"===E||"commands"===E,H="all"===E||"sessions"===E,O="all"===E||"files"===E,B="u">typeof navigator&&/mac/i.test(navigator.platform),U=e=>k?e:e.slice(0,3),_=!k&&(H&&w.length>3||O&&W.length>3||D&&u1.some(e=>(L.get(e)?.length??0)>3));return(0,n.jsx)(uB.bL,{open:e,onOpenChange:t,children:(0,n.jsxs)(uB.ZL,{children:[(0,n.jsx)(uB.hJ,{className:"palette-overlay"}),(0,n.jsxs)(uB.UC,{className:"palette-content","aria-describedby":void 0,children:[(0,n.jsx)(uB.hE,{className:"palette-sr-title",children:g("palette.placeholder")}),(0,n.jsxs)(uO.uB,{shouldFilter:!1,loop:!0,label:g("palette.placeholder"),children:[(0,n.jsxs)("div",{className:"palette-search",children:[(0,n.jsx)(ie.A,{size:15,"aria-hidden":"true",style:{flexShrink:0,color:"var(--text-dim)"}}),(0,n.jsx)(uO.uB.Input,{autoFocus:!0,value:x,onValueChange:f,placeholder:g("palette.placeholder"),className:"palette-input","aria-label":g("palette.placeholder")}),(0,n.jsx)("span",{className:"palette-kbd",children:ij(B)})]}),(0,n.jsx)("div",{className:"palette-scopes",role:"tablist","aria-label":g("palette.placeholder"),children:u0.map(({id:e,icon:t,labelKey:r})=>{let o=E===e;return(0,n.jsxs)("button",{type:"button",role:"tab","aria-selected":o,className:`palette-scope${o?" is-active":""}`,onClick:()=>{v(e),f(ik(x)),j(!1)},children:[(0,n.jsx)(t,{size:12,"aria-hidden":"true"}),g(r)]},e)})}),(0,n.jsxs)(uO.uB.List,{className:"palette-list",children:[(0,n.jsxs)(uO.uB.Empty,{className:"palette-empty",children:[(0,n.jsx)("div",{children:g("palette.empty")}),(0,n.jsx)("div",{className:"palette-empty-hint",children:g("palette.emptyHint")})]}),!$&&y.length>0&&(0,n.jsx)(uO.uB.Group,{heading:g("palette.section.history"),className:"palette-group",children:y.slice(0,k?20:3).map(e=>(0,n.jsxs)(uO.uB.Item,{value:`history ${e.query}`,onSelect:()=>{f(`${function(e){for(let[t,r]of Object.entries(im))if(r===e)return t;return""}(e.scope)}${e.query}`),v(e.scope),j(!1)},className:"palette-item",children:[(0,n.jsx)(ic.A,{size:14,"aria-hidden":"true",style:{flexShrink:0,color:"var(--text-dim)"}}),(0,n.jsx)("span",{className:"palette-item-body",children:(0,n.jsx)("span",{className:"palette-item-title",children:e.query})})]},`${e.scope}:${e.query}`))}),H&&w.length>0&&(0,n.jsx)(uO.uB.Group,{heading:g("palette.section.sessions"),className:"palette-group",children:U(w).map(e=>(0,n.jsxs)(uO.uB.Item,{value:`${e.session.name??e.session.firstMessage??e.session.id} ${e.snippet??""}`,onSelect:()=>P(e),className:"palette-item",children:[(0,n.jsx)(uq.A,{size:14,"aria-hidden":"true",style:{flexShrink:0,color:"var(--text-dim)"}}),(0,n.jsxs)("span",{className:"palette-item-body",children:[(0,n.jsx)("span",{className:"palette-item-title",children:(0,n.jsx)(u2,{text:e.session.name||e.session.firstMessage||e.session.id,query:$})}),e.snippet&&(0,n.jsx)("span",{className:"palette-item-sub",children:(0,n.jsx)(u2,{text:e.snippet,query:$})})]}),(0,n.jsx)("span",{className:"palette-item-meta",children:e.session.cwd?e.session.cwd.split(/[\\/]/).filter(Boolean).pop():""})]},`s-${e.session.id}-${e.entryId??"session"}`))}),O&&W.length>0&&(0,n.jsx)(uO.uB.Group,{heading:g("palette.section.files"),className:"palette-group",children:U(W).map(e=>(0,n.jsxs)(uO.uB.Item,{value:`file ${e}`,onSelect:()=>F(e),className:"palette-item",children:[e.endsWith("/")?(0,n.jsx)(ir.A,{size:14,"aria-hidden":"true",style:{flexShrink:0,color:"var(--text-dim)"}}):(0,n.jsx)(uK.A,{size:14,"aria-hidden":"true",style:{flexShrink:0,color:"var(--text-dim)"}}),(0,n.jsx)("span",{className:"palette-item-body",children:(0,n.jsx)("span",{className:"palette-item-title",children:(0,n.jsx)(u2,{text:e,query:$})})})]},`f-${e}`))}),D&&u1.map(e=>{let t=L.get(e)??[];return 0===t.length?null:(0,n.jsx)(uO.uB.Group,{heading:g(`palette.section.${e}`),className:"palette-group",children:U(t).map(e=>{let t=e.icon;return(0,n.jsxs)(uO.uB.Item,{value:`${e.title} ${(e.keywords??[]).join(" ")}`,onSelect:()=>A(e),className:"palette-item",children:[(0,n.jsx)(t,{size:14,"aria-hidden":"true",style:{flexShrink:0,color:"var(--text-dim)"}}),(0,n.jsx)("span",{className:"palette-item-body",children:(0,n.jsx)("span",{className:"palette-item-title",children:(0,n.jsx)(u2,{text:e.title,query:$})})}),e.shortcut&&(0,n.jsx)("span",{className:"palette-kbd",children:e.shortcut})]},e.id)})},e)}),C&&(0,n.jsx)("div",{className:"palette-status",children:g("palette.searching")}),_&&(0,n.jsxs)(uO.uB.Item,{value:"__show_more__",onSelect:()=>j(!0),className:"palette-item palette-item-more",children:[(0,n.jsx)(uV.A,{size:14,"aria-hidden":"true",style:{flexShrink:0,color:"var(--text-dim)"}}),(0,n.jsx)("span",{className:"palette-item-body",children:(0,n.jsx)("span",{className:"palette-item-title",children:g("palette.showMore")})})]})]})]})]})]})})}let u4=new Set(["awaiting_input","review","failed"]),u5=(0,o.createContext)(null);function u3(){let e=(0,o.useContext)(u5);if(!e)throw Error("useTasksView must be used within TasksViewProvider");return e}function u8({children:e}){let{t}=(0,Y.s)(),r=(0,o.useRef)(t);(0,o.useEffect)(()=>{r.current=t},[t]);let[i,s]=(0,o.useState)([]),[l,a]=(0,o.useState)([]),d=(0,o.useRef)(0),c=(0,o.useCallback)(async()=>{let e=++d.current;try{let t=await (0,dG.Wt)(),r=(await Promise.all(t.map(e=>(0,dG.Vk)(e).catch(()=>[])))).flat().sort((e,t)=>t.id-e.id);if(e!==d.current)return;a(e=>u7(e,t)?e:t),s(e=>u7(e,r)?e:r)}catch{}},[]);(0,o.useEffect)(()=>{c();let e=null,t=!1,r=()=>{t||((e=new EventSource("/api/tasks/events")).onmessage=()=>{c()},e.onerror=()=>{e?.close(),e=null,c(),setTimeout(r,2e3)})};r();let n=()=>{"visible"===document.visibilityState&&c()},o=()=>void c();document.addEventListener("visibilitychange",n),window.addEventListener("online",o);let i=setInterval(()=>void c(),6e4);return()=>{t=!0,e?.close(),document.removeEventListener("visibilitychange",n),window.removeEventListener("online",o),clearInterval(i)}},[c]);let u=(0,o.useMemo)(()=>i.filter(e=>u4.has(e.status)&&null==e.archivedAt).length,[i]),p=(0,o.useRef)(null);(0,o.useEffect)(()=>{let e=p.current;if((p.current=new Map(i.map(e=>[e.id,e.status])),e&&0!==i.length)&&"Notification"in window){for(let r of i)if(e.get(r.id)!==r.status&&("review"===r.status||"failed"===r.status)&&null==r.archivedAt&&"visible"!==document.visibilityState)try{let e="review"===r.status?t("tasks.notifyReview",{title:r.title}):t("tasks.notifyFailed",{title:r.title});!function(e,t){new Promise(r=>{if(!("Notification"in window))return void r();let n=()=>{try{new Notification(e,{body:t,tag:"pi-tasks"})}catch{}r()};"granted"===Notification.permission?n():"denied"!==Notification.permission?Notification.requestPermission().then(e=>{"granted"===e?n():r()}):r()})}("Pi Web Tasks",e)}catch{}}},[i,t]);let h=(0,o.useMemo)(()=>({tasks:i,projects:l,attentionCount:u,refetch:c}),[i,l,u,c]);return(0,n.jsx)(u5.Provider,{value:h,children:e})}function u7(e,t){return JSON.stringify(e)===JSON.stringify(t)}var u9=r(4539),pe=r(12449),pt=r(2571);let pr=["todo","inProgress","attention","done"];function pn(e){return"review"===e.status&&0===e.filesChanged}function po(){return{defaultAgentType:null,modeId:null,configValues:{},autoProcess:!0,maxConcurrent:1,mergeStrategy:"merge",deleteWorktreeDefault:!0,preflightCommand:null,initCommand:null,stagePrompts:null}}let pi=["todo","inProgress","attention","done"],ps={todo:{id:"todo",marker:"var(--text-dim)"},inProgress:{id:"inProgress",marker:"var(--accent)"},attention:{id:"attention",marker:"var(--status-warning)"},done:{id:"done",marker:"var(--status-success)"}};var pl=r(54775),pa=r(98998),pd=r(36668);function pc({task:e}){let{t}=(0,Y.s)(),r=t("failed"===e.status&&"interrupted"===e.failureReason?"tasks.statusInterrupted":function(e){switch(e){case"todo":return"tasks.statusTodo";case"queued":return"tasks.statusQueued";case"preparing":return"tasks.statusPreparing";case"running":return"tasks.statusRunning";case"awaiting_input":return"tasks.statusAwaitingInput";case"review":return"tasks.statusReview";case"merging":return"tasks.statusMerging";case"done":return"tasks.statusDone";case"failed":return"tasks.statusFailed";case"canceled":return"tasks.statusCanceled"}}(e.status)),o={display:"inline-flex",alignItems:"center",gap:4,borderRadius:999,padding:"2px 8px",fontSize:10,fontWeight:600,lineHeight:1.4,flexShrink:0,whiteSpace:"nowrap"};switch(e.status){case"queued":case"preparing":case"running":case"merging":return(0,n.jsxs)("span",{style:{...o,color:"var(--accent)"},children:[(0,n.jsx)(pl.N,{size:11,className:"pi-spin",style:{animation:"pi-spin 1s linear infinite"},"aria-hidden":"true"}),r]});case"awaiting_input":case"review":return(0,n.jsx)("span",{style:{...o,border:"1px solid rgba(245,158,11,0.45)",background:"rgba(245,158,11,0.08)",color:"var(--status-warning)"},children:r});case"done":return(0,n.jsxs)("span",{style:{...o,background:"rgba(16,185,129,0.12)",color:"#059669"},children:[(0,n.jsx)(f.J,{size:10,weight:"bold","aria-hidden":"true"}),r]});case"failed":return(0,n.jsx)("span",{style:{...o,background:"rgba(239,68,68,0.12)",color:"var(--status-error)"},children:r});default:return(0,n.jsx)("span",{style:{...o,background:"var(--bg-hover)",color:"var(--text-muted)"},children:r})}}function pu({task:e}){let t=e.preflight;if(!t||"review"!==e.status)return null;let r="passed"===t.status?{background:"rgba(16,185,129,0.12)",color:"#059669"}:"failed"===t.status?{background:"rgba(239,68,68,0.12)",color:"var(--status-error)"}:{background:"var(--bg-hover)",color:"var(--text-muted)"};return(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,borderRadius:999,padding:"1px 6px",fontSize:10,fontWeight:500,lineHeight:1.5,maxWidth:"100%",...r},title:t.command,children:["running"===t.status?(0,n.jsx)(pl.N,{size:10,style:{animation:"pi-spin 1s linear infinite"},"aria-hidden":"true"}):"passed"===t.status?(0,n.jsx)(ei.r,{size:10,"aria-hidden":"true"}):(0,n.jsx)(nC.J,{size:10,"aria-hidden":"true"}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t.command})]})}function pp({task:e,folderName:t,now:r,onOpen:o,onStart:i,onCancel:s,onRetry:l,onRequeue:a,onViewSession:d,onMerge:c,onArchive:u,onEdit:p}){let{t:h}=(0,Y.s)(),g=null!=e.archivedAt,x="running"===e.status||"awaiting_input"===e.status||"merging"===e.status,m=null!=e.filesChanged&&e.filesChanged>0?(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:3,fontFamily:"var(--font-mono)",fontSize:10},children:[(0,n.jsxs)("span",{style:{color:"#059669"},children:["+",e.additions??0]}),(0,n.jsxs)("span",{style:{color:"var(--status-error)"},children:["-",e.deletions??0]})]}):null,v=function(e,t){if(!e)return"";let r=new Date(e).getTime();if(Number.isNaN(r))return"";let n=Math.floor(Math.max(0,t-r)/6e4);if(n<1)return"now";if(n<60)return`${n}m`;let o=Math.floor(n/60);if(o<24)return`${o}h`;let i=Math.floor(o/24);return`${i}d`}(e.finishedAt??e.settledAt??e.startedAt??e.createdAt,r),{primary:y,more:b}=(()=>{let t=[],r=null;if(g)return{primary:r={icon:I.T,label:h("tasks.actionUnarchive"),onClick:u},more:t};switch(e.status){case"todo":r={icon:pt.j,label:h("tasks.actionStart"),onClick:i},t.push({icon:dv.S,label:h("tasks.actionEdit"),onClick:p});break;case"queued":case"preparing":case"running":case"awaiting_input":r={icon:pa.k,label:h("tasks.actionCancel"),onClick:s};break;case"review":r=pn(e)?{icon:f.J,label:h("tasks.actionComplete"),onClick:c}:{icon:pd.r,label:h("tasks.actionMerge"),onClick:c};break;case"merging":break;case"failed":r={icon:z.S,label:h("tasks.actionRetry"),onClick:l},t.push({icon:dv.S,label:h("tasks.actionEdit"),onClick:p}),t.push({icon:I.T,label:h("tasks.actionArchive"),onClick:u});break;case"done":r={icon:I.T,label:h("tasks.actionArchive"),onClick:u};break;case"canceled":r={icon:aF.f,label:h("tasks.actionRequeue"),onClick:a},t.push({icon:I.T,label:h("tasks.actionArchive"),onClick:u})}return{primary:r,more:t}})(),k=[...b];return null!=e.conversationId&&k.push({icon:aP.y,label:h("tasks.actionViewSession"),onClick:d}),(0,n.jsxs)("div",{role:"button",tabIndex:0,onClick:o,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),o())},style:{display:"flex",flexDirection:"column",cursor:"pointer",borderRadius:12,border:"1px solid color-mix(in srgb, var(--border) 85%, transparent)",background:"var(--bg-panel)",padding:12,textAlign:"left",transition:"border-color 0.12s",opacity:g?.6:1,boxShadow:"0 1px 2px rgba(0,0,0,0.04)"},className:"task-card-hover",onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="color-mix(in srgb, var(--border) 85%, transparent)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:8},children:[(0,n.jsx)("span",{style:{minWidth:0,overflowWrap:"break-word",fontSize:13,fontWeight:500,lineHeight:1.4},children:e.title}),(0,n.jsx)(pc,{task:e})]}),(0,n.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:"2px 6px",marginTop:6,fontSize:11,color:"var(--text-muted)"},children:[t?(0,n.jsx)("span",{style:{maxWidth:160,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t}):null,t&&e.workBranch?(0,n.jsx)("span",{style:{opacity:.5},children:"/"}):null,e.workBranch?(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:10,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:180},children:e.workBranch}):null,(t||e.workBranch)&&(m||v)?(0,n.jsx)("span",{style:{opacity:.5},children:"\xb7"}):null,m,m&&v?(0,n.jsx)("span",{style:{opacity:.5},children:"\xb7"}):null,v?(0,n.jsx)("span",{style:{flexShrink:0},children:v}):null,(0,n.jsx)(pu,{task:e})]}),e.lastError&&("failed"===e.status||"review"===e.status)?(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginTop:8,borderRadius:8,background:"rgba(239,68,68,0.08)",padding:"6px 8px",fontSize:11,color:"var(--status-error)"},children:[(0,n.jsx)(as.t,{size:13,style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{minWidth:0,flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.lastError}),(0,n.jsx)("button",{type:"button",style:{flexShrink:0,fontWeight:600,background:"none",border:"none",cursor:"pointer",color:"inherit",fontSize:11,textDecoration:"underline"},onClick:e=>{e.stopPropagation(),o()},children:h("tasks.errorView")})]}):null,"review"===e.status&&e.resultSummary?(0,n.jsx)("p",{style:{margin:"6px 0 0",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden",fontSize:11,lineHeight:1.5,color:"var(--text-muted)"},children:e.resultSummary}):null,x&&e.latestProgress?(0,n.jsx)("p",{style:{margin:"6px 0 0",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden",fontSize:11,lineHeight:1.5,color:"var(--text-muted)",fontStyle:"italic"},children:e.latestProgress}):null,y||k.length>0?(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginTop:12,paddingTop:12,borderTop:"1px solid var(--border)"},children:[y?(0,n.jsxs)("button",{type:"button",onClick:e=>{e.stopPropagation(),y.onClick()},style:{display:"inline-flex",alignItems:"center",gap:5,padding:"4px 10px",borderRadius:7,background:"var(--accent)",color:"var(--accent-fg)",border:"none",cursor:"pointer",fontSize:11,fontWeight:600},children:[(0,n.jsx)(y.icon,{size:12,weight:"bold","aria-hidden":"true"}),y.label]}):null,(0,n.jsx)("div",{style:{flex:1}}),k.map(e=>(0,n.jsx)("button",{type:"button",title:e.label,"aria-label":e.label,onClick:t=>{t.stopPropagation(),e.onClick()},style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,borderRadius:999,background:"none",border:"1px solid var(--border)",color:"var(--text-muted)",cursor:"pointer",opacity:0,transition:"opacity 0.12s, background 0.12s, color 0.12s"},className:"task-card-secondary",onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(e.icon,{size:13,"aria-hidden":"true"})},e.label))]}):null]})}function ph({open:e,onOpenChange:t,task:r}){let{t:i}=(0,Y.s)(),{refetch:s}=u3(),[l,a]=(0,o.useState)(""),[d,c]=(0,o.useState)(!1);if(L(!d,()=>t(!1)),(0,o.useEffect)(()=>{e&&(a(""),c(!1))},[e,r]),!e||!r)return null;let u=async()=>{if(!d){c(!0);try{await (0,dG.oQ)(r.id,r.projectRoot,"cancel",{reason:l.trim()||null}),t(!1),s()}catch(e){console.error("cancel failed",e)}finally{c(!1)}}};return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:950,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(440px, calc(100vw - 48px))",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:14,boxShadow:"0 16px 48px rgba(0,0,0,0.3)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px 0"},children:[(0,n.jsx)("h3",{style:{fontSize:15,fontWeight:600,margin:0},children:i("tasks.cancelTitle")}),(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),"aria-label":i("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(g.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12,padding:"14px 16px 16px"},children:[(0,n.jsx)("p",{style:{margin:0,fontSize:12,lineHeight:1.5,color:"var(--text-muted)"},children:i("tasks.cancelDescription")}),(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:5},children:[(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)"},children:i("tasks.cancelReasonLabel")}),(0,n.jsx)("textarea",{value:l,onChange:e=>a(e.target.value),placeholder:i("tasks.cancelReasonPlaceholder"),rows:3,autoFocus:!0,style:{width:"100%",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"8px 10px",color:"var(--text)",fontSize:13,outline:"none",fontFamily:"inherit",resize:"vertical"}})]}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:4},children:[(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),disabled:d,style:{padding:"8px 14px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:i("tasks.cancelKeep")}),(0,n.jsx)("button",{type:"button",onClick:()=>void u(),disabled:d,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:i("tasks.cancelSubmit")})]})]})]})})}function pg({open:e,onOpenChange:t,task:r}){let{t:i}=(0,Y.s)(),{refetch:s}=u3(),[l,a]=(0,o.useState)(!0),[d,c]=(0,o.useState)(!1);L(!d,()=>t(!1));let u=r?.worktreePath!=null;if((0,o.useEffect)(()=>{if(!e||!r)return;c(!1);let t=!1;return(0,dG.CG)(r.projectRoot).then(e=>{t||a(e.deleteWorktreeDefault)}).catch(()=>{t||a(!0)}),()=>{t=!0}},[e,r]),!e||!r)return null;let p=async()=>{if(!d){c(!0);try{await (0,dG.ZX)(r.id,r.projectRoot,u&&l),t(!1),s()}catch(e){console.error("complete failed",e)}finally{c(!1)}}};return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:950,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(440px, calc(100vw - 48px))",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:14,boxShadow:"0 16px 48px rgba(0,0,0,0.3)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px 0"},children:[(0,n.jsx)("h3",{style:{fontSize:15,fontWeight:600,margin:0},children:i("tasks.completeTitle")}),(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),"aria-label":i("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(g.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12,padding:"14px 16px 16px"},children:[(0,n.jsx)("p",{style:{margin:0,fontSize:12,lineHeight:1.5,color:"var(--text-muted)"},children:i("tasks.completeDescription")}),u?(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,fontSize:13,cursor:"pointer"},children:[(0,n.jsx)("input",{type:"checkbox",checked:l,onChange:e=>a(e.target.checked),style:{accentColor:"var(--accent)"}}),i("tasks.completeDeleteWorktree")]}):null,(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:4},children:[(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),disabled:d,style:{padding:"8px 14px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:i("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void p(),disabled:d,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:i("tasks.completeSubmit")})]})]})]})})}var px=r(51285),pf=r(16894);function pm({open:e,onOpenChange:t,task:r,onViewSession:i,onMerge:s,onEdit:l,onCancel:a,onRetry:d,onRequeue:c,onComplete:u}){let{t:p}=(0,Y.s)(),{refetch:h}=u3(),[x,m]=(0,o.useState)([]),[v,b]=(0,o.useState)([]),[k,j]=(0,o.useState)(null),[w,S]=(0,o.useState)(null),[C,R]=(0,o.useState)(!1),[M,E]=(0,o.useState)(!1),[$,W]=(0,o.useState)(""),[N,A]=(0,o.useState)(!1),[P,F]=(0,o.useState)(!1),[D,H]=(0,o.useState)(!1);L(!0,()=>t(!1));let O=r?.id??null,B=r?.projectRoot??null,U=(0,o.useCallback)(async()=>{if(null==O||null==B)return;let[e,t]=await Promise.all([(0,dG.HB)(B,O).catch(()=>[]),r?.worktreePath?(0,dG.JH)(B,O).then(e=>e.files).catch(()=>[]):Promise.resolve([])]);m(e),b(t)},[O,B,r?.worktreePath]);(0,o.useEffect)(()=>{if(!e||null==O)return;m([]),b([]),E(!1),W(""),U();let t=window.setInterval(()=>void U(),5e3);return()=>window.clearInterval(t)},[e,O,U]);let _=(0,o.useCallback)(async e=>{H(!0);try{await e()}catch(e){console.error("detail action failed",e)}finally{H(!1),h()}},[h]),q=(0,o.useCallback)(async e=>{if(null!=B&&null!=O){R(!0);try{let t=await (0,dG.h)(B,O,e);S(t.supported&&t.patch?t.patch:null)}catch{S(null)}finally{R(!1)}}},[B,O]),K=async()=>{null!=r&&null!=B&&(await _(()=>(0,dG.bH)(r.id,B,P)),t(!1))},V=async()=>{null!=r&&null!=B&&$.trim()&&(await _(()=>(0,dG.in)(r.id,B,$.trim())),E(!1),W(""))};if(!e||null==r||null==B)return null;let J=[];if(null==r.archivedAt)switch(r.status){case"todo":J.push({label:p("tasks.actionStart"),icon:pt.j,onClick:()=>void _(()=>(0,dG.oQ)(r.id,B,"start")),filled:!0}),J.push({label:p("tasks.actionEdit"),icon:dv.S,onClick:()=>l(r)});break;case"queued":case"preparing":case"running":case"awaiting_input":J.push({label:p("tasks.actionCancel"),icon:pa.k,onClick:()=>a(r),danger:!0});break;case"review":J.push({label:pn(r)?p("tasks.actionComplete"):p("tasks.actionMerge"),icon:pn(r)?f.J:px.Y,onClick:()=>pn(r)?u(r):s(r),filled:!0}),J.push({label:p("tasks.actionReturn"),icon:aF.f,onClick:()=>E(!0)});break;case"failed":J.push({label:p("tasks.actionRetry"),icon:z.S,onClick:()=>d(r),filled:!0}),J.push({label:p("tasks.actionEdit"),icon:dv.S,onClick:()=>l(r)});break;case"done":J.push({label:p("tasks.actionArchive"),icon:I.T,onClick:()=>void _(()=>(0,dG.et)(r.id,B,!0))});break;case"canceled":J.push({label:p("tasks.actionRequeue"),icon:aF.f,onClick:()=>c(r),filled:!0})}else J.push({label:p("tasks.actionUnarchive"),icon:I.T,onClick:()=>void _(()=>(0,dG.et)(r.id,B,!1))});return null!=r.conversationId&&J.push({label:p("tasks.actionViewSession"),icon:aP.y,onClick:()=>i(r)}),(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:800,background:"rgba(0,0,0,0.35)"},children:(0,n.jsxs)("div",{style:{position:"absolute",top:0,right:0,bottom:0,width:"min(480px, 90vw)",background:"var(--bg-panel)",borderLeft:"1px solid var(--border)",display:"flex",flexDirection:"column",boxShadow:"-8px 0 32px rgba(0,0,0,0.2)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:12,padding:"16px 16px 0"},children:[(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("h3",{style:{margin:0,fontSize:15,fontWeight:600,lineHeight:1.4,overflowWrap:"break-word"},children:r.title}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:6},children:[(0,n.jsx)(pc,{task:r}),r.workBranch?(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-muted)"},children:[(0,n.jsx)(y.Z,{size:12,"aria-hidden":"true"}),r.workBranch]}):null]})]}),(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),"aria-label":p("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex",flexShrink:0},children:(0,n.jsx)(g.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:8,padding:"14px 16px 0"},children:J.map(e=>{let t,r;return(0,n.jsxs)("button",{type:"button",onClick:e.onClick,disabled:D,style:(t=e.filled,r=e.danger,{display:"inline-flex",alignItems:"center",gap:5,padding:"7px 12px",borderRadius:8,fontSize:12,fontWeight:600,cursor:"pointer",background:t?"var(--accent)":r?"rgba(239,68,68,0.1)":"var(--bg-hover)",color:t?"#fff":r?"var(--status-error)":"var(--text)",border:t||r?"none":"1px solid var(--border)"}),children:[(0,n.jsx)(e.icon,{size:13,weight:"bold","aria-hidden":"true"}),e.label]},e.label)})}),M&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8,padding:"12px 16px 0"},children:[(0,n.jsx)("textarea",{value:$,onChange:e=>W(e.target.value),placeholder:p("tasks.returnPlaceholder"),rows:3,style:{width:"100%",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"8px 10px",color:"var(--text)",fontSize:12,resize:"vertical",fontFamily:"inherit"}}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8},children:[(0,n.jsx)("button",{type:"button",onClick:()=>E(!1),style:{padding:"6px 12px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:p("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void V(),disabled:!$.trim(),style:{padding:"6px 14px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:p("tasks.returnSubmit")})]})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6,padding:"14px 16px 0",fontSize:12,color:"var(--text-muted)"},children:[(0,n.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",width:64},children:p("tasks.metaProject")}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)",fontSize:11},children:r.projectRoot})]}),r.createdAt?(0,n.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",width:64},children:p("tasks.metaCreated")}),(0,n.jsx)("span",{children:new Date(r.createdAt).toLocaleString()})]}):null,r.mergeCommit?(0,n.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",width:64},children:p("tasks.metaCommit")}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:r.mergeCommit})]}):null]}),v.length>0&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4,padding:"14px 16px 0"},children:[(0,n.jsx)("span",{style:{fontSize:11,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.05em"},children:p("tasks.changedFiles")}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2,maxHeight:140,overflowY:"auto"},children:v.map(e=>(0,n.jsxs)("button",{type:"button",onClick:()=>{var t;j(t=e.file),S(null),q(t)},style:{display:"flex",alignItems:"center",gap:8,textAlign:"left",padding:"4px 6px",borderRadius:6,background:"none",border:"none",color:"var(--text)",fontSize:12,cursor:"pointer"},children:[(0,n.jsx)(pf.o,{size:13,style:{flexShrink:0,color:"var(--text-muted)"},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)",fontSize:11},children:e.file}),(0,n.jsxs)("span",{style:{fontFamily:"var(--font-mono)",fontSize:10,color:"#059669",flexShrink:0},children:["+",e.additions]}),(0,n.jsxs)("span",{style:{fontFamily:"var(--font-mono)",fontSize:10,color:"var(--status-error)",flexShrink:0},children:["-",e.deletions]})]},e.file))})]}),null!=k&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6,padding:"12px 16px 0",minHeight:0,flexShrink:0},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,n.jsx)("span",{style:{fontSize:11,fontWeight:600,color:"var(--text-muted)"},children:p("tasks.diff")}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:10,color:"var(--text-muted)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},children:k}),(0,n.jsx)("button",{type:"button",onClick:()=>j(null),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:2,display:"flex"},children:(0,n.jsx)(g.X,{size:12,"aria-hidden":"true"})})]}),C?(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",padding:8},children:p("tasks.loading")}):w?(0,n.jsx)("pre",{style:{margin:0,maxHeight:200,overflow:"auto",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:10,fontSize:11,lineHeight:1.5,fontFamily:"var(--font-mono)",color:"var(--text-muted)",whiteSpace:"pre"},children:w.split("\n").map((e,t)=>{let r;return e.startsWith("+")&&!e.startsWith("+++")?r="#059669":e.startsWith("-")&&!e.startsWith("---")?r="var(--status-error)":e.startsWith("@@")&&(r="var(--accent)"),(0,n.jsx)("div",{style:{color:r},children:e||" "},t)})}):(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",padding:8},children:p("tasks.noDiff")})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4,padding:"14px 16px 0",flex:1,minHeight:0},children:[(0,n.jsx)("span",{style:{fontSize:11,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.05em"},children:p("tasks.timeline")}),(0,n.jsx)("div",{style:{flex:1,minHeight:0,overflowY:"auto",paddingBottom:8},children:0===x.length?(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",padding:8},children:p("tasks.noEvents")}):(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[...x].reverse().map(e=>{var t;let r,o;return(0,n.jsxs)("div",{style:{display:"flex",gap:8,padding:"4px 6px",borderRadius:6,fontSize:11},children:[(0,n.jsx)("span",{style:{color:"var(--text-dim)",flexShrink:0,fontFamily:"var(--font-mono)",fontSize:10,paddingTop:1},children:new Date(e.createdAt).toLocaleTimeString()}),(0,n.jsx)("span",{style:{color:"var(--text)",flexShrink:0,fontWeight:500},children:(t=e.kind,(o=p(r=`tasks.event_${t}`))===r?t:o)}),e.payload?.feedback?(0,n.jsx)("span",{style:{color:"var(--text-muted)",fontStyle:"italic",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:String(e.payload.feedback)}):null]},e.id)})})})]}),(0,n.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:8,padding:"10px 16px",borderTop:"1px solid var(--border)",flexShrink:0},children:N?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:6,fontSize:12,cursor:"pointer"},children:[(0,n.jsx)("input",{type:"checkbox",checked:P,onChange:e=>F(e.target.checked),style:{accentColor:"var(--accent)"}}),p("tasks.deleteWorktree")]}),(0,n.jsx)("button",{type:"button",onClick:()=>A(!1),style:{padding:"6px 12px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:p("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void K(),disabled:D,style:{padding:"6px 14px",borderRadius:8,background:"var(--status-error)",color:"#fff",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:p("tasks.deleteConfirm")})]}):(0,n.jsxs)("button",{type:"button",onClick:()=>A(!0),style:{display:"inline-flex",alignItems:"center",gap:5,padding:"6px 12px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--status-error)",fontSize:12,cursor:"pointer"},children:[(0,n.jsx)(T.l,{size:13,"aria-hidden":"true"}),p("tasks.delete")]})})]})})}var pv=r(17757);function py({open:e,onOpenChange:t,task:r,defaultProject:i,projects:s,prefillTitle:l,prefillPrompt:a,onSubmit:d}){let{t:c}=(0,Y.s)(),[u,p]=(0,o.useState)(""),[h,x]=(0,o.useState)(""),[f,m]=(0,o.useState)(""),[v,y]=(0,o.useState)([]),[b,k]=(0,o.useState)(""),[j,w]=(0,o.useState)(!1);L(!j,()=>t(!1));let S=(0,o.useRef)(!1);if((0,o.useEffect)(()=>{if(!e){S.current=!1;return}S.current||(S.current=!0,p(r?.projectRoot??i??s[0]??""),x(r?.title??l??""),m(r?.config?.prompt??a??""),(0,dG.VB)().then(y).catch(()=>void 0))},[e,r,i,s,l,a]),!e)return null;let C=async()=>{if(u&&h.trim()&&!j){w(!0);try{await d(u,h.trim(),{prompt:f.trim(),agentType:r?.config?.agentType??null,modelId:r?.config?.modelId??null,thinkingLevel:r?.config?.thinkingLevel??null}),t(!1)}catch(e){console.error("submit task failed",e)}finally{w(!1)}}},z=async()=>{if(b.trim()&&h.trim())try{await (0,dG.nY)({name:b.trim(),title:h.trim(),config:{prompt:f.trim()}}),k(""),(0,dG.VB)().then(y).catch(()=>void 0)}catch(e){console.error("save template failed",e)}},R=async e=>{try{await (0,dG.B_)(e),(0,dG.VB)().then(y).catch(()=>void 0)}catch(e){console.error("delete template failed",e)}},I={width:"100%",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"8px 10px",color:"var(--text)",fontSize:13,outline:"none"};return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:900,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(520px, calc(100vw - 48px))",maxHeight:"80vh",overflowY:"auto",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:14,boxShadow:"0 16px 48px rgba(0,0,0,0.3)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px 0"},children:[(0,n.jsx)("h3",{style:{fontSize:15,fontWeight:600,margin:0},children:r?c("tasks.editTitle"):c("tasks.newTitle")}),(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),"aria-label":c("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(g.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12,padding:"14px 16px 16px"},children:[v.length>0&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("span",{style:{fontSize:11,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.05em"},children:c("tasks.templates")}),(0,n.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:v.map(e=>(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,borderRadius:999,background:"var(--bg-hover)",padding:"3px 8px",fontSize:11},children:[(0,n.jsx)("button",{type:"button",onClick:()=>{x(e.title),m(e.config?.prompt??"")},style:{background:"none",border:"none",cursor:"pointer",color:"var(--text)",fontSize:11,padding:0},children:e.name}),(0,n.jsx)("button",{type:"button",onClick:()=>void R(e.id),"aria-label":c("tasks.deleteTemplate"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-dim)",padding:0,display:"flex"},children:(0,n.jsx)(T.l,{size:10,"aria-hidden":"true"})})]},e.id))})]}),(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("span",{style:{fontSize:12,fontWeight:500,color:"var(--text)"},children:c("tasks.fieldProject")}),(0,n.jsx)("select",{value:u,onChange:e=>p(e.target.value),style:I,children:s.map(e=>(0,n.jsx)("option",{value:e,children:e.split("/").filter(Boolean).pop()??e},e))})]}),(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("span",{style:{fontSize:12,fontWeight:500,color:"var(--text)"},children:c("tasks.fieldTitle")}),(0,n.jsx)("input",{value:h,onChange:e=>x(e.target.value),placeholder:c("tasks.fieldTitlePlaceholder"),style:I,autoFocus:!0})]}),(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("span",{style:{fontSize:12,fontWeight:500,color:"var(--text)"},children:c("tasks.fieldPrompt")}),(0,n.jsx)("textarea",{value:f,onChange:e=>m(e.target.value),placeholder:c("tasks.fieldPromptPlaceholder"),rows:6,style:{...I,resize:"vertical",fontFamily:"inherit",lineHeight:1.5}})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,n.jsx)("input",{value:b,onChange:e=>k(e.target.value),placeholder:c("tasks.templateNamePlaceholder"),style:{...I,flex:1}}),(0,n.jsxs)("button",{type:"button",onClick:()=>void z(),disabled:!b.trim()||!h.trim(),style:{display:"inline-flex",alignItems:"center",gap:5,padding:"8px 12px",borderRadius:8,background:"var(--bg-hover)",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:[(0,n.jsx)(pv.D,{size:13,"aria-hidden":"true"}),c("tasks.saveAsTemplate")]})]}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:4},children:[(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),style:{padding:"8px 14px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:c("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void C(),disabled:!u||!h.trim()||j,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:c("tasks.save")})]})]})]})})}function pb({open:e,onOpenChange:t,task:r}){let{t:i}=(0,Y.s)(),{refetch:s}=u3(),[l,a]=(0,o.useState)(!0),[d,c]=(0,o.useState)(""),[u,p]=(0,o.useState)(!0),[h,x]=(0,o.useState)(!1);if(L(!h,()=>t(!1)),(0,o.useEffect)(()=>{e&&r&&(a(!0),c(r.title),x(!1),(0,dG.CG)(r.projectRoot).then(e=>p(e.deleteWorktreeDefault)).catch(()=>p(!0)))},[e,r]),!e||!r)return null;let f=async()=>{if((l||d.trim())&&!h){x(!0);try{await (0,dG.oB)(r.id,r.projectRoot,l?null:d.trim(),u),t(!1),s()}catch(e){console.error("merge failed",e)}finally{x(!1)}}};return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:950,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(440px, calc(100vw - 48px))",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:14,boxShadow:"0 16px 48px rgba(0,0,0,0.3)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px 0"},children:[(0,n.jsx)("h3",{style:{fontSize:15,fontWeight:600,margin:0},children:i("tasks.mergeTitle")}),(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),"aria-label":i("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(g.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12,padding:"14px 16px 16px"},children:[(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,fontSize:13,cursor:"pointer"},children:[(0,n.jsx)("input",{type:"radio",checked:l,onChange:()=>a(!0),style:{accentColor:"var(--accent)"}}),i("tasks.mergeAutoMessage")]}),(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,fontSize:13,cursor:"pointer"},children:[(0,n.jsx)("input",{type:"radio",checked:!l,onChange:()=>a(!1),style:{accentColor:"var(--accent)"}}),i("tasks.mergeManualMessage")]}),!l&&(0,n.jsx)("input",{value:d,onChange:e=>c(e.target.value),placeholder:i("tasks.mergeMessagePlaceholder"),style:{width:"100%",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"8px 10px",color:"var(--text)",fontSize:13,outline:"none",fontFamily:"inherit"}}),(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,fontSize:13,cursor:"pointer"},children:[(0,n.jsx)("input",{type:"checkbox",checked:u,onChange:e=>p(e.target.checked),style:{accentColor:"var(--accent)"}}),i("tasks.mergeDeleteWorktree")]}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:4},children:[(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),style:{padding:"8px 14px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:i("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void f(),disabled:!l&&!d.trim()||h,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:i("tasks.mergeConfirm")})]})]})]})})}function pk({open:e,onOpenChange:t,task:r,kind:i}){let{t:s}=(0,Y.s)(),{refetch:l}=u3(),[a,d]=(0,o.useState)(""),[c,u]=(0,o.useState)(!1);if(L(!c,()=>t(!1)),(0,o.useEffect)(()=>{e&&(d(""),u(!1))},[e,r]),!e||!r)return null;let p="retry"===i,h=async()=>{if(!c){u(!0);try{await (0,dG.oQ)(r.id,r.projectRoot,i,{note:a.trim()||null}),t(!1),l()}catch(e){console.error("restart failed",e)}finally{u(!1)}}};return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:950,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(480px, calc(100vw - 48px))",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:14,boxShadow:"0 16px 48px rgba(0,0,0,0.3)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px 0"},children:[(0,n.jsx)("h3",{style:{fontSize:15,fontWeight:600,margin:0},children:s(p?"tasks.restartTitleRetry":"tasks.restartTitleRequeue")}),(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),"aria-label":s("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(g.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12,padding:"14px 16px 16px"},children:[(0,n.jsx)("p",{style:{margin:0,fontSize:12,lineHeight:1.5,color:"var(--text-muted)"},children:s("tasks.restartDescription")}),(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:5},children:[(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)"},children:s("tasks.actionAddNote")}),(0,n.jsx)("textarea",{value:a,onChange:e=>d(e.target.value),placeholder:s(p?"tasks.followUpPlaceholderRetry":"tasks.followUpPlaceholderRequeue"),rows:3,autoFocus:!0,style:{width:"100%",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"8px 10px",color:"var(--text)",fontSize:13,outline:"none",fontFamily:"inherit",resize:"vertical"}})]}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:4},children:[(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),disabled:c,style:{padding:"8px 14px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:s("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void h(),disabled:c,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:s(p?"tasks.actionRetry":"tasks.actionRequeue")})]})]})]})})}let pj=["work","retry","return","merge"];function pw({open:e,onOpenChange:t,projectRoot:r}){let{t:i}=(0,Y.s)(),{projects:s}=u3(),[l,a]=(0,o.useState)(""),[d,c]=(0,o.useState)(()=>po()),[u,p]=(0,o.useState)(!1),[h,x]=(0,o.useState)(!1);if(L(!h,()=>t(!1)),(0,o.useEffect)(()=>{if(!e)return;let t=r??s[0]??"";a(t),t&&(0,dG.Pf)(t).then(e=>{p(null!=e),c(e??po())}).catch(()=>{p(!1),c(po())})},[e,r,s]),!e)return null;let f=(e,t)=>{c(r=>({...r,[e]:t}))},m=async()=>{if(l&&!h){x(!0);try{await (0,dG.eA)(l,d),p(!0),t(!1)}catch(e){console.error("save settings failed",e)}finally{x(!1)}}},v=async()=>{if(l)try{await (0,dG.E)(l),p(!1),c(po())}catch(e){console.error("reset settings failed",e)}},y={width:"100%",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"7px 10px",color:"var(--text)",fontSize:12,outline:"none",fontFamily:"inherit"},b={display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,padding:"10px 0",borderBottom:"1px solid var(--border)"};return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:960,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(560px, calc(100vw - 48px))",maxHeight:"82vh",overflowY:"auto",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:14,boxShadow:"0 16px 48px rgba(0,0,0,0.3)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px 0"},children:[(0,n.jsx)("h3",{style:{fontSize:15,fontWeight:600,margin:0},children:i("tasks.settingsTitle")}),(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),"aria-label":i("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(g.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10,padding:"14px 16px 16px"},children:[(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("span",{style:{fontSize:12,fontWeight:500},children:i("tasks.settingsProject")}),(0,n.jsx)("select",{value:l,onChange:e=>a(e.target.value),style:y,children:s.map(e=>(0,n.jsx)("option",{value:e,children:e.split("/").filter(Boolean).pop()??e},e))})]}),l?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{style:b,children:[(0,n.jsx)("span",{style:{fontSize:12},children:i("tasks.settingsAutoProcess")}),(0,n.jsx)("input",{type:"checkbox",checked:d.autoProcess,onChange:e=>f("autoProcess",e.target.checked),style:{accentColor:"var(--accent)"}})]}),(0,n.jsxs)("div",{style:b,children:[(0,n.jsx)("span",{style:{fontSize:12},children:i("tasks.settingsMaxConcurrent")}),(0,n.jsx)("input",{type:"number",min:0,value:d.maxConcurrent,onChange:e=>f("maxConcurrent",Math.max(0,Number(e.target.value)||0)),style:{...y,width:90}})]}),(0,n.jsxs)("div",{style:b,children:[(0,n.jsx)("span",{style:{fontSize:12},children:i("tasks.settingsMergeStrategy")}),(0,n.jsxs)("select",{value:d.mergeStrategy,onChange:e=>f("mergeStrategy",e.target.value),style:{...y,width:140},children:[(0,n.jsx)("option",{value:"merge",children:i("tasks.mergeStrategyMerge")}),(0,n.jsx)("option",{value:"squash",children:i("tasks.mergeStrategySquash")})]})]}),(0,n.jsxs)("div",{style:b,children:[(0,n.jsx)("span",{style:{fontSize:12},children:i("tasks.settingsDeleteWorktree")}),(0,n.jsx)("input",{type:"checkbox",checked:d.deleteWorktreeDefault,onChange:e=>f("deleteWorktreeDefault",e.target.checked),style:{accentColor:"var(--accent)"}})]}),(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("span",{style:{fontSize:12},children:i("tasks.settingsPreflightCommand")}),(0,n.jsx)("input",{value:d.preflightCommand??"",onChange:e=>f("preflightCommand",e.target.value||null),placeholder:i("tasks.settingsPreflightPlaceholder"),style:{...y,fontFamily:"var(--font-mono)",fontSize:11}})]}),(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("span",{style:{fontSize:12},children:i("tasks.settingsInitCommand")}),(0,n.jsx)("input",{value:d.initCommand??"",onChange:e=>f("initCommand",e.target.value||null),placeholder:i("tasks.settingsInitPlaceholder"),style:{...y,fontFamily:"var(--font-mono)",fontSize:11}})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6,paddingTop:4},children:[(0,n.jsx)("span",{style:{fontSize:12,fontWeight:500},children:i("tasks.settingsStagePrompts")}),pj.map(e=>(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("span",{style:{fontSize:11,color:"var(--text-muted)"},children:i(`tasks.stage.${e}`)}),(0,n.jsx)("input",{value:d.stagePrompts?.[e]??"",onChange:t=>f("stagePrompts",{...d.stagePrompts??{},[e]:t.target.value}),style:{...y,fontSize:11}})]},e))]}),u&&(0,n.jsx)("button",{type:"button",onClick:()=>void v(),style:{alignSelf:"flex-start",padding:"6px 12px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text-muted)",fontSize:12,cursor:"pointer"},children:i("tasks.settingsReset")})]}):(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",padding:8},children:i("tasks.settingsNoProject")}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:4},children:[(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),style:{padding:"8px 14px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:i("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void m(),disabled:!l||h,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:i("tasks.save")})]})]})]})})}function pS({open:e,onOpenChange:t,task:r}){let{t:i}=(0,Y.s)();return(L(e&&!!r,()=>t(!1)),(0,o.useEffect)(()=>{if(!e)return},[e,r]),e&&r)?(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:970,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(520px, calc(100vw - 48px))",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:14,boxShadow:"0 16px 48px rgba(0,0,0,0.3)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px 0"},children:[(0,n.jsx)("h3",{style:{fontSize:15,fontWeight:600,margin:0},children:i("tasks.sessionTitle")}),(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),"aria-label":i("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(g.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10,padding:"14px 16px 16px",fontSize:12},children:[(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:10},children:[(0,n.jsx)("span",{style:{color:"var(--text-muted)"},children:i("tasks.sessionId")}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,overflowWrap:"anywhere"},children:r.conversationId??"—"})]}),r.sessionFile?(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:10},children:[(0,n.jsx)("span",{style:{color:"var(--text-muted)"},children:i("tasks.sessionFile")}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,overflowWrap:"anywhere"},children:r.sessionFile})]}):null,(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",lineHeight:1.6},children:i("tasks.sessionHint")}),(0,n.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginTop:4},children:(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:i("i18n.close")})})]})]})}):null}let pC="__all__",pz="pi-tasks-board-filter",pT={showCanceled:!1,showArchived:!1},pR="pi:open-task-settings";function pI(){let{t:e}=(0,Y.s)(),{attentionCount:t}=u3();return(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,height:36,flexShrink:0,padding:"0 16px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)"},children:[(0,n.jsxs)("h1",{style:{margin:0,display:"flex",alignItems:"center",gap:6,fontSize:13,fontWeight:600},children:[(0,n.jsx)(eJ.x,{size:15,color:"var(--text-muted)","aria-hidden":"true"}),e("tasks.title"),(0,n.jsx)("span",{style:{borderRadius:999,background:"rgba(37,99,235,0.12)",color:"var(--accent)",padding:"1px 8px",fontSize:9,fontWeight:700,textTransform:"uppercase",letterSpacing:"0.04em"},children:"Beta"})]}),t>0?(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,borderRadius:999,background:"rgba(239,68,68,0.12)",color:"var(--status-error)",padding:"1px 8px",fontSize:10,fontWeight:700},children:[t," ",e("tasks.attentionBadge")]}):null,(0,n.jsx)("div",{style:{flex:1}}),(0,n.jsxs)("button",{type:"button",onClick:()=>window.dispatchEvent(new Event(pR)),style:{display:"inline-flex",alignItems:"center",gap:5,height:26,padding:"0 10px",borderRadius:7,background:"none",border:"none",color:"var(--text-muted)",fontSize:12,cursor:"pointer"},title:e("tasks.settingsTitle"),children:[(0,n.jsx)(u9.O,{size:13,"aria-hidden":"true"}),e("tasks.settingsTitle")]})]})}function pM({activeProject:e}){let{t}=(0,Y.s)(),{tasks:i,projects:s,refetch:l}=u3(),[a,d]=(0,o.useState)(null),[c,u]=(0,o.useState)(()=>(function(){try{let e=window.localStorage.getItem(pz);if(e){let t=JSON.parse(e);return{showCanceled:t.showCanceled??!1,showArchived:t.showArchived??!1}}}catch{}return pT})()),[h,g]=(0,o.useState)(!1);(0,o.useEffect)(()=>{try{window.localStorage.setItem(pz,JSON.stringify(c))}catch{}},[c]);let[x,f]=(0,o.useState)(null),[m,v]=(0,o.useState)(!1),y=(0,o.useRef)(null),b=(0,o.useRef)({x:0,y:0}),k=(0,o.useRef)(null),j=(0,o.useRef)(null),[w,C]=(0,o.useState)(null),z=(0,o.useRef)(null);z.current=w;let T=(0,o.useRef)(!1),R=(0,o.useRef)(!1),[I,M]=(0,o.useState)(()=>Date.now());(0,o.useEffect)(()=>{let e=window.setInterval(()=>M(Date.now()),6e4);return()=>window.clearInterval(e)},[]);let[E,$]=(0,o.useState)(!1),[W,L]=(0,o.useState)(null),[N,A]=(0,o.useState)(null);(0,o.useEffect)(()=>{let e=()=>{let e,t=(e=aG,aG=null,e);t&&(L(null),A(t),$(!0))};return e(),window.addEventListener(aY,e),()=>window.removeEventListener(aY,e)},[]);let[P,F]=(0,o.useState)(null),[D,H]=(0,o.useState)(null),[O,B]=(0,o.useState)(!1),[U,_]=(0,o.useState)(null),[q,K]=(0,o.useState)(!1),[V,J]=(0,o.useState)(null),[G,X]=(0,o.useState)("retry"),[Z,Q]=(0,o.useState)(!1),[ee,et]=(0,o.useState)(null),[er,en]=(0,o.useState)(!1),[eo,ei]=(0,o.useState)(!1),[es,el]=(0,o.useState)(null),[ea,ed]=(0,o.useState)(!1);(0,o.useEffect)(()=>{let e=()=>ei(!0);return window.addEventListener(pR,e),()=>window.removeEventListener(pR,e)},[]);let ec=(0,o.useMemo)(()=>null==a?i:i.filter(e=>e.projectRoot===a),[i,a]),eu=(0,o.useMemo)(()=>(function(e,t,r=!1){let n={todo:[],inProgress:[],attention:[],done:[]};for(let o of e)("canceled"!==o.status||t)&&(null==o.archivedAt||r)&&n[function(e){switch(e){case"todo":case"queued":return"todo";case"preparing":case"running":return"inProgress";case"awaiting_input":case"review":case"merging":case"failed":return"attention";case"done":case"canceled":return"done"}}(o.status)].push(o);for(let e of pr)n[e].sort((e,t)=>(t.updatedAt??"").localeCompare(e.updatedAt??""));return n})(ec,c.showCanceled,c.showArchived),[ec,c]),ep=(0,o.useMemo)(()=>{let e=eu.todo;if(null==w)return e;let t=new Map(e.map(e=>[e.id,e])),r=w.flatMap(e=>t.get(e)??[]);for(let t of e)w.includes(t.id)||r.push(t);return r},[eu.todo,w]),eh=(0,o.useMemo)(()=>i.find(e=>e.id===P)??null,[i,P]),eg=(0,o.useMemo)(()=>i.find(e=>e.id===es)??null,[i,es]),ex=(0,o.useCallback)(async e=>{try{await e()}catch(e){console.error("task action failed",e)}finally{l()}},[l]),ef=(0,o.useCallback)(e=>{null!=e.conversationId&&(el(e.id),ed(!0))},[el,ed]),em=(0,o.useCallback)(e=>{H(e),B(!0)},[H,B]),ev=(0,o.useCallback)(()=>{L(null),$(!0)},[L,$]),ey=(0,o.useCallback)((e,t)=>{let r=k.current,n=y.current;r&&n&&(r.style.transform=`translate3d(${e-n.dx}px, ${t-n.dy}px, 0)`)},[]),eb=e=>{let t=e.currentTarget.getBoundingClientRect();y.current={dx:e.clientX-t.left,dy:e.clientY-t.top,width:t.width}},ek=(0,o.useCallback)(e=>{if(f(null),v(!1),e){T.current=!1;return}requestAnimationFrame(()=>{T.current=!1})},[f,v]),ej=(0,o.useCallback)(()=>{R.current=!0,C(null),ek(!0)},[ek,C]);(0,o.useEffect)(()=>{if(!x)return;let e=()=>{document.hidden&&ej()};return window.addEventListener("blur",ej),document.addEventListener("visibilitychange",e),()=>{window.removeEventListener("blur",ej),document.removeEventListener("visibilitychange",e)}},[x,ej]),(0,o.useEffect)(()=>{x&&!ep.some(e=>e.id===x.task.id)&&ej()},[x,ep,ej]);let ew=(0,o.useCallback)((e,t,r)=>{if(R.current){ek(!0),C(null);return}let n=j.current?.getBoundingClientRect(),o=null!=n&&t>=n.left&&t<=n.right&&r>=n.top&&r<=n.bottom;if(ek(!1),o){C(null);let t=i.find(t=>t.id===e.id);t?.status==="todo"&&null!=a&&ex(()=>(0,dG.oQ)(e.id,e.projectRoot,"start"));return}let s=z.current;null!=a&&null!=s&&(async()=>{try{await (0,dG.Lu)(a,s)}catch(e){console.error("reorder failed",e)}await l(),C(null)})()},[ex,ek,a,l,i]),eS=(0,o.useCallback)(()=>{ex(async()=>{let e=await (0,dG.a5)(a);e>0&&console.log(`started ${e} tasks`)})},[ex,a]),eC=(0,o.useCallback)(()=>{let e=eu.done.filter(e=>null==e.archivedAt);0!==e.length&&ex(()=>Promise.all(e.map(e=>(0,dG.et)(e.id,e.projectRoot,!0))))},[ex,eu.done]),ez=+(c.showCanceled!==pT.showCanceled)+ +(c.showArchived!==pT.showArchived),eT=i.length>0,eR=(0,o.useMemo)(()=>{let t=new Set(s);return e&&t.add(e),[...t].sort()},[s,e]),eI=(0,o.useMemo)(()=>{let e=new Map;for(let t of eR)e.set(t,t.split("/").filter(Boolean).pop()??t);return e},[eR]);return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0},children:[eT&&(0,n.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:8,padding:"14px 16px 8px"},children:[(0,n.jsxs)("select",{value:a??pC,onChange:e=>d(e.target.value===pC?null:e.target.value),style:{height:30,borderRadius:999,padding:"0 10px",background:"var(--bg-panel)",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,fontWeight:500,cursor:"pointer",maxWidth:"14rem"},"aria-label":t("tasks.allFolders"),children:[(0,n.jsx)("option",{value:pC,children:t("tasks.allFolders")}),eR.map(e=>(0,n.jsx)("option",{value:e,children:eI.get(e)??e},e))]}),(0,n.jsxs)("div",{style:{position:"relative"},children:[(0,n.jsxs)("button",{type:"button",onClick:()=>g(e=>!e),style:{display:"inline-flex",alignItems:"center",gap:6,height:30,borderRadius:999,padding:"0 12px",background:"var(--bg-panel)",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,fontWeight:500,cursor:"pointer"},children:[(0,n.jsx)(pe.n,{size:13,"aria-hidden":"true"}),t("tasks.filter"),ez>0?(0,n.jsx)("span",{style:{borderRadius:999,background:"rgba(37,99,235,0.12)",color:"var(--accent)",padding:"1px 6px",fontSize:10,fontWeight:700},children:ez}):null]}),h&&(0,n.jsx)("div",{style:{position:"absolute",top:34,left:0,zIndex:50,width:200,borderRadius:12,padding:6,background:"var(--bg-panel)",border:"1px solid var(--border)",boxShadow:"0 8px 24px rgba(0,0,0,0.16)"},children:[["showCanceled",t("tasks.showCanceled")],["showArchived",t("tasks.showArchived")]].map(([e,t])=>(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 8px",borderRadius:8,cursor:"pointer",fontSize:12},children:[(0,n.jsx)("input",{type:"checkbox",checked:c[e],onChange:t=>u(r=>({...r,[e]:t.target.checked})),style:{accentColor:"var(--accent)"}}),t]},e))})]}),(0,n.jsx)("div",{style:{flex:1}}),(0,n.jsxs)("button",{type:"button",onClick:eS,style:{display:"inline-flex",alignItems:"center",gap:6,height:30,borderRadius:999,padding:"0 12px",background:"none",border:"none",color:"var(--text)",fontSize:12,cursor:"pointer"},title:t("tasks.startAll"),children:[(0,n.jsx)(pt.j,{size:13,"aria-hidden":"true"}),t("tasks.startAll")]}),(0,n.jsxs)("button",{type:"button",onClick:ev,style:{display:"inline-flex",alignItems:"center",gap:6,height:30,borderRadius:999,padding:"0 14px",background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:[(0,n.jsx)(S.F,{size:13,weight:"bold","aria-hidden":"true"}),t("tasks.new")]})]}),eT?(0,n.jsx)("div",{style:{flex:1,minHeight:0,overflowX:"auto"},children:(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, minmax(0, 1fr))",gap:16,minWidth:"56rem",height:"100%",padding:"4px 16px 16px"},children:pi.map(e=>{let r="todo"===e?ep:eu[e],o=ps[e],i=e=>(0,n.jsx)(pp,{task:e,folderName:e.projectRoot?eI.get(e.projectRoot)??null:null,now:I,onOpen:()=>{T.current||F(e.id)},onStart:()=>void ex(()=>(0,dG.oQ)(e.id,e.projectRoot,"start")),onCancel:()=>{_(e),K(!0)},onRetry:()=>{J(e),X("retry"),Q(!0)},onRequeue:()=>{J(e),X("requeue"),Q(!0)},onViewSession:()=>ef(e),onMerge:()=>{pn(e)?(et(e),en(!0)):em(e)},onArchive:()=>void ex(()=>(0,dG.et)(e.id,e.projectRoot,null==e.archivedAt)),onEdit:()=>{L(e),$(!0)}},e.id);return(0,n.jsxs)("div",{ref:"inProgress"===e?j:void 0,style:{display:"flex",flexDirection:"column",minHeight:0,gap:8},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,height:24,flexShrink:0,padding:"0 2px"},children:[(0,n.jsx)("span",{style:{width:3,height:14,borderRadius:999,background:o.marker,flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("h2",{style:{fontSize:12,fontWeight:600,color:"var(--text)"},children:t(`tasks.col${e[0].toUpperCase()}${e.slice(1)}`)}),(0,n.jsx)("span",{style:{borderRadius:999,background:"var(--bg-hover)",padding:"1px 8px",fontSize:10,fontWeight:600,color:"var(--text-muted)"},children:r.length}),(0,n.jsx)("div",{style:{flex:1}}),"done"===e&&eu.done.some(e=>null==e.archivedAt)?(0,n.jsx)("button",{type:"button",onClick:eC,style:{background:"none",border:"none",cursor:"pointer",fontSize:11,color:"var(--text-muted)",padding:"2px 6px",borderRadius:6},children:t("tasks.archiveAllDone")}):null]}),0===r.length?(0,n.jsx)("div",{style:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:4,borderRadius:12,border:"1px dashed var(--border)",padding:16,textAlign:"center",..."inProgress"===e&&x?m?{borderColor:"var(--accent)",background:"rgba(37,99,235,0.08)"}:{borderColor:"var(--accent)"}:{}},children:(0,n.jsx)("p",{style:{fontSize:12,color:"var(--text-muted)"},children:t(`tasks.emptyCol${e[0].toUpperCase()}${e.slice(1)}`)})}):(0,n.jsx)("div",{style:{flex:1,minHeight:0,overflowY:"auto",borderRadius:12,transition:"background 0.15s, box-shadow 0.15s",..."inProgress"===e&&x?m?{background:"rgba(37,99,235,0.06)",boxShadow:"inset 0 0 0 2px var(--accent)"}:{boxShadow:"inset 0 0 0 1px rgba(37,99,235,0.25)"}:{}},children:(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:16,paddingBottom:4},children:r.map(t=>"todo"===e?(0,n.jsx)("div",{draggable:!0,onDragStart:e=>{var r,n;e.dataTransfer.effectAllowed="move",r=e.clientX,n=e.clientY,T.current=!0,R.current=!1,b.current={x:r,y:n},f({task:t,width:y.current?.width??280})},onDrag:e=>{var t,r;let n,o;return b.current={x:t=e.clientX,y:r=e.clientY},ey(t,r),void((o=null!=(n=j.current?.getBoundingClientRect())&&t>=n.left&&t<=n.right&&r>=n.top&&r<=n.bottom)!==m&&v(o))},onDragEnd:e=>ew(t,e.clientX,e.clientY),onPointerDown:eb,style:{cursor:"grab",opacity:x?.task.id===t.id?.4:1},children:i(t)},t.id):(0,n.jsx)("div",{children:i(t)},t.id))})})]},e)})})}):(0,n.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:12,padding:32,textAlign:"center"},children:[(0,n.jsx)(eJ.x,{size:40,color:"var(--text-dim)",opacity:.4,"aria-hidden":"true"}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("p",{style:{fontSize:14,fontWeight:500,color:"var(--text)"},children:t("tasks.empty")}),(0,n.jsx)("p",{style:{maxWidth:320,fontSize:12,color:"var(--text-muted)",lineHeight:1.6},children:t("tasks.emptyHint")})]}),(0,n.jsxs)("button",{type:"button",onClick:ev,style:{display:"inline-flex",alignItems:"center",gap:6,padding:"7px 14px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:[(0,n.jsx)(S.F,{size:13,weight:"bold","aria-hidden":"true"}),t("tasks.new")]})]}),(0,n.jsx)(py,{open:E,onOpenChange:$,task:W,defaultProject:N?.projectRoot??a??e??null,projects:eR,prefillTitle:N?N.text.slice(0,80):void 0,prefillPrompt:N?N.text:void 0,onSubmit:async(e,t,n)=>{await ex(async()=>{let{createTaskApi:o}=await Promise.resolve().then(r.bind(r,23084)),{updateTaskApi:i}=await Promise.resolve().then(r.bind(r,23084));W?await i(W.id,e,{title:t,config:n}):await o({projectRoot:e,title:t,config:n})}),$(!1),A(null)}}),(0,n.jsx)(pm,{open:null!=P,onOpenChange:e=>{e||F(null)},task:eh,onViewSession:ef,onMerge:em,onEdit:e=>{L(e),$(!0)},onCancel:e=>{_(e),K(!0)},onRetry:e=>{J(e),X("retry"),Q(!0)},onRequeue:e=>{J(e),X("requeue"),Q(!0)},onComplete:e=>{et(e),en(!0)}}),(0,n.jsx)(pb,{open:O,onOpenChange:B,task:D}),(0,n.jsx)(ph,{open:q,onOpenChange:K,task:U}),(0,n.jsx)(pk,{open:Z,onOpenChange:Q,task:V,kind:G}),(0,n.jsx)(pg,{open:er,onOpenChange:en,task:ee}),(0,n.jsx)(pS,{open:ea&&null!=eg,onOpenChange:ed,task:eg}),(0,n.jsx)(pw,{open:eo,onOpenChange:ei,projectRoot:a}),x?(0,p.createPortal)((0,n.jsx)("div",{ref:k,style:{position:"fixed",left:0,top:0,zIndex:999,pointerEvents:"none",width:x.width,willChange:"transform"},"aria-hidden":"true",children:(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8,borderRadius:12,border:m?"1px solid var(--accent)":"1px solid var(--border)",background:"var(--bg-panel)",padding:12,boxShadow:"0 8px 24px rgba(0,0,0,0.2)",transform:"rotate(-1deg)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:8},children:[(0,n.jsx)("span",{style:{minWidth:0,overflowWrap:"break-word",fontSize:13,fontWeight:500},children:x.task.title}),(0,n.jsx)(pc,{task:x.task})]}),m?(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,fontSize:11,fontWeight:600,color:"var(--accent)"},children:[(0,n.jsx)(pt.j,{size:11,weight:"bold","aria-hidden":"true"}),t("tasks.dropToStart")]}):null]})}),document.body):null]})}var pE=r(62235),p$=r(1022);function pW(){return!!window.__TAURI_INTERNALS__}let pL=null;function pN(){return pL||(pL=r.e(8518).then(r.bind(r,38518)).then(e=>e.getCurrentWindow())),pL}async function pA(e){let t=await pN();await e(t)}async function pP(){await pA(e=>e.minimize())}async function pF(){await pA(e=>e.toggleMaximize())}async function pD(){await pA(e=>e.startDragging())}async function pH(){await pA(e=>e.close())}async function pO(){return(await pN()).isMaximized()}function pB(){let[e,t]=(0,o.useState)(null);return(0,o.useEffect)(()=>{pW()&&t(function(){if("u"<typeof navigator)return null;let e=navigator.platform||"";return/mac/i.test(e)?"macos":/win/i.test(e)?"windows":/linux/i.test(e)?"linux":null}())},[]),{platform:e,isDesktop:null!==e,isMacOS:"macos"===e,dragRegionProps:e?{"data-tauri-drag-region":!0}:{}}}let pU="pi-web-island-pos";function p_(e,t,r,n,o,i){return{x:Math.min(Math.max(0,e),Math.max(0,r-o)),y:Math.min(Math.max(0,t),Math.max(0,n-i))}}let pq={display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,flexShrink:0,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",borderRadius:7,transition:"background 0.12s, color 0.12s"};function pK({onRefreshSession:e}={}){let{t:t}=(0,Y.s)(),{isDark:r}=eA(),{isDesktop:i,isMacOS:s}=pB(),l=i&&!s,[a,d]=(0,o.useState)(!1),[c,u]=(0,o.useState)(null),[p,h]=(0,o.useState)(null),g=(0,o.useRef)(null),x=(0,o.useRef)(null);(0,o.useEffect)(()=>{l&&pN().then(()=>void 0,e=>{throw pL=null,e}).catch(e=>{console.error("[DynamicIsland] window API preload failed:",e)})},[l]);let f=(0,o.useCallback)(e=>{e().catch(e=>{console.error("[DynamicIsland] window command failed:",e),u(String(e)),window.setTimeout(()=>u(null),4e3)})},[]),m=(0,o.useCallback)(()=>{window.location.reload()},[]);(0,o.useEffect)(()=>{if(!pW()||!l)return;let e=()=>{pO().then(d)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[l]),(0,o.useEffect)(()=>{if(l)try{let e=localStorage.getItem(pU);if(e){let t=JSON.parse(e);"number"==typeof t.x&&"number"==typeof t.y&&h(p_(t.x,t.y,window.innerWidth,window.innerHeight,168,34))}}catch{}},[l]),(0,o.useEffect)(()=>{if(l&&p)try{localStorage.setItem(pU,JSON.stringify(p))}catch{}},[p,l]);let[v,y]=(0,o.useState)(0);(0,o.useEffect)(()=>{if(!l)return;let e=()=>{y(window.innerWidth),h(e=>e?p_(e.x,e.y,window.innerWidth,window.innerHeight,168,34):e)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[l]);let b=(0,o.useCallback)(e=>{if(0!==e.button||e.target.closest?.("[data-island-btn]"))return;let t=g.current;if(!t)return;let r=t.getBoundingClientRect();x.current={startX:e.clientX,startY:e.clientY,origX:r.left,origY:r.top},e.currentTarget.setPointerCapture(e.pointerId)},[]),k=(0,o.useCallback)(e=>{let t=x.current;if(!t)return;let r=e.clientX-t.startX,n=e.clientY-t.startY;h(p_(t.origX+r,t.origY+n,window.innerWidth,window.innerHeight,168,34))},[]),j=(0,o.useCallback)(e=>{x.current=null;try{e.currentTarget.releasePointerCapture(e.pointerId)}catch{}},[]),w=(0,o.useCallback)(()=>pF().then(()=>{d(e=>!e)}),[]),S=(0,o.useCallback)(e=>{if(!x.current&&!e.target.closest?.("[data-island-btn]")){h(null);try{localStorage.removeItem(pU)}catch{}}},[]);if(!l)return null;let C=v||window.innerWidth,T=null!==p?p.x:Math.max(0,C-168-14);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{ref:g,role:"toolbar","aria-label":t("desktop.islandLabel"),title:t("desktop.islandResetHint"),onPointerDown:b,onPointerMove:k,onPointerUp:j,onPointerCancel:j,onDoubleClick:S,onMouseDown:e=>e.stopPropagation(),onDoubleClickCapture:e=>e.stopPropagation(),style:{position:"fixed",top:null!==p?p.y:100,left:T,zIndex:700,display:"flex",alignItems:"center",gap:1,padding:"3px 5px",borderRadius:999,background:"color-mix(in srgb, var(--bg-panel) 88%, transparent)",border:"1px solid var(--border)",boxShadow:r?"0 6px 24px rgba(0,0,0,0.45)":"0 6px 20px rgba(0,0,0,0.12)",cursor:"grab",userSelect:"none",touchAction:"none"},children:[(0,n.jsx)("span",{"data-island-grip":!0,"aria-hidden":"true",title:t("desktop.islandDrag"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:12,height:26,flexShrink:0,marginRight:2,color:"var(--text-dim)",cursor:"grab"},children:(0,n.jsxs)("svg",{width:"6",height:"14",viewBox:"0 0 6 14",fill:"currentColor","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"1.5",cy:"2",r:"1.2"}),(0,n.jsx)("circle",{cx:"4.5",cy:"2",r:"1.2"}),(0,n.jsx)("circle",{cx:"1.5",cy:"7",r:"1.2"}),(0,n.jsx)("circle",{cx:"4.5",cy:"7",r:"1.2"}),(0,n.jsx)("circle",{cx:"1.5",cy:"12",r:"1.2"}),(0,n.jsx)("circle",{cx:"4.5",cy:"12",r:"1.2"})]})}),e&&(0,n.jsx)("button",{type:"button","data-island-btn":!0,"aria-label":t("desktop.refreshSession"),title:t("desktop.refreshSession"),onClick:()=>{try{e()}catch(e){console.error("[DynamicIsland] refresh session failed:",e)}},style:pq,onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(p$.P,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("button",{type:"button","data-island-btn":!0,"aria-label":t("desktop.reloadPage"),title:t("desktop.reloadPage"),onClick:m,style:pq,onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(z.S,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("span",{"aria-hidden":"true",style:{width:1,height:18,flexShrink:0,background:"var(--border)",margin:"0 3px"}}),(0,n.jsx)("button",{type:"button","data-island-btn":!0,"aria-label":t("desktop.minimize"),title:t("desktop.minimize"),onClick:()=>f(pP),style:pq,onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1",children:(0,n.jsx)("line",{x1:"1",y1:"5",x2:"9",y2:"5"})})}),(0,n.jsx)("button",{type:"button","data-island-btn":!0,"aria-label":t(a?"desktop.restore":"desktop.maximize"),title:t(a?"desktop.restore":"desktop.maximize"),onClick:()=>f(w),style:pq,onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:a?(0,n.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1",children:[(0,n.jsx)("rect",{x:"2",y:"0.5",width:"7.5",height:"7.5"}),(0,n.jsx)("path",{d:"M0.5 2.5 V9.5 H7.5"})]}):(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1",children:(0,n.jsx)("rect",{x:"0.5",y:"0.5",width:"9",height:"9"})})}),(0,n.jsx)("button",{type:"button","data-island-btn":!0,"aria-label":t("desktop.close"),title:t("desktop.close"),onClick:()=>f(pH),style:pq,onMouseEnter:e=>{e.currentTarget.style.background="#e81123",e.currentTarget.style.color="#fff"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1",children:[(0,n.jsx)("line",{x1:"0",y1:"0",x2:"10",y2:"10"}),(0,n.jsx)("line",{x1:"10",y1:"0",x2:"0",y2:"10"})]})})]}),c&&(0,n.jsx)("div",{role:"alert",style:{position:"fixed",top:(null!==p?p.y:100)+34+6,left:T,zIndex:700,maxWidth:280,padding:"5px 10px",borderRadius:8,background:"var(--bg-panel)",border:"1px solid var(--status-error, #f85149)",color:"var(--status-error, #f85149)",fontSize:11,lineHeight:1.5,wordBreak:"break-all",boxShadow:r?"0 6px 24px rgba(0,0,0,0.45)":"0 6px 20px rgba(0,0,0,0.12)",pointerEvents:"none"},children:c})]})}function pV(){try{return window.localStorage}catch{return null}}let pJ="pi-web:desktop-server-hint-seen";function pY(e=pV()){if(e)try{e.setItem(pJ,"1")}catch{}}function pG(){let{t:e}=(0,Y.s)(),[t,r]=(0,o.useState)(!1);(0,o.useEffect)(()=>{let e=!1;try{e=new URLSearchParams(window.location.search).has("piweb_connected")}catch{e=!1}e&&function(e=pV()){if(!e)return!1;try{return"1"!==e.getItem(pJ)}catch{return!1}}()&&r(!0)},[]);let i=(0,o.useCallback)(()=>{pY(),r(!1)},[]),s=(0,o.useCallback)(()=>{pY(),r(!1),window.location.href="piweb-switch://manage"},[]);return t?(0,n.jsxs)("div",{role:"status",style:{position:"fixed",top:56,right:16,zIndex:700,width:288,padding:"14px 16px 14px",borderRadius:12,background:"var(--bg-panel)",border:"1px solid var(--border)",boxShadow:"0 12px 36px rgba(0,0,0,0.32)",color:"var(--text)"},children:[(0,n.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",top:-6,right:28,width:10,height:10,background:"var(--bg-panel)",borderTop:"1px solid var(--border)",borderLeft:"1px solid var(--border)",transform:"rotate(45deg)"}}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:10},children:[(0,n.jsx)(N.X,{size:18,color:"var(--accent)",style:{flexShrink:0,marginTop:1}}),(0,n.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,n.jsx)("div",{style:{fontSize:13.5,fontWeight:600,lineHeight:1.45},children:e("desktop.serverHintTitle")}),(0,n.jsx)("p",{style:{margin:"6px 0 0",fontSize:12.5,lineHeight:1.65,color:"var(--text-muted)"},children:e("desktop.serverHintBody")})]}),(0,n.jsx)("button",{type:"button",onClick:i,"aria-label":e("desktop.serverHintDismiss"),title:e("desktop.serverHintDismiss"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,padding:0,flexShrink:0,background:"none",border:"none",cursor:"pointer",color:"var(--text-dim)"},children:(0,n.jsx)(g.X,{size:14,"aria-hidden":"true"})})]}),(0,n.jsx)("button",{type:"button",onClick:s,style:{marginTop:12,width:"100%",display:"flex",alignItems:"center",justifyContent:"center",gap:6,padding:"8px 12px",borderRadius:9,background:"var(--accent)",border:"none",color:"var(--accent-fg)",fontSize:13,fontWeight:600,cursor:"pointer"},children:e("desktop.serverHintAction")})]}):null}function pX({isDark:e,toggleTheme:t,translate:r}){let[i,s]=(0,o.useState)(!1);(0,o.useEffect)(()=>{s(!0)},[]);let l=r(i?e?"desktop.switchToLight":"desktop.switchToDark":"desktop.switchToLight");return(0,n.jsx)("button",{className:"app-no-drag",suppressHydrationWarning:!0,onClick:e=>{let r=e.currentTarget.getBoundingClientRect();t({x:r.left+r.width/2,y:r.top+r.height/2})},title:l,"aria-label":l,"aria-pressed":!i||e,style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:i?e?(0,n.jsx)(ec.b,{size:16,"aria-hidden":"true"}):(0,n.jsx)(ed.A,{size:16,"aria-hidden":"true"}):(0,n.jsx)(ec.b,{size:16,"aria-hidden":"true"})})}function pZ({topBarRef:e,sidebarOpen:t,onSidebarToggle:r,isDark:i,toggleTheme:s,isMobile:l,showTasks:a,tasksBoardEnabled:d,onToggleTasks:c,systemPrompt:u,activeTopPanel:p,topPanelPos:h,sessionStats:g,selectedSession:x,contextUsage:m,copiedSessionField:v,onCopySessionField:y,rightPanelOpen:b,onToggleFilePanel:k,onRefreshSession:w,onOpenSettings:S,sessionTitle:C,onWorkspaceControlsHostChange:T,onTitleRightHostChange:R,desktopChrome:I,windowDrag:M}){let E,$,W,A,P,F,D,H,O,B,U,{t:_}=(0,Y.s)(),[q,K]=(0,o.useState)(!1);L(q,()=>K(!1));let[V,J]=(0,o.useState)(!1);return(0,o.useEffect)(()=>{try{J(new URLSearchParams(window.location.search).has("piweb_connected"))}catch{J(!1)}},[]),(0,n.jsxs)(n.Fragment,{children:[V&&(0,n.jsx)(pG,{}),(0,n.jsxs)("div",{ref:e,className:"app-title-bar",...I?.dragRegionProps,...M,style:{display:"flex",alignItems:"center",flexShrink:0,borderBottom:"1px solid var(--border)",height:48,background:"transparent",position:"relative",zIndex:600},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",minWidth:0,height:"100%",flex:"0 1 auto",position:"relative",zIndex:1},children:[(0,n.jsx)("button",{className:"app-no-drag",onClick:r,title:t?_("desktop.hideSidebar"):_("desktop.showSidebar"),"aria-label":t?_("desktop.hideSidebar"):_("desktop.showSidebar"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,flexShrink:0,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)"},children:t?(0,n.jsx)(pE.V,{size:16,"aria-hidden":"true"}):(0,n.jsx)(j.B,{size:16,"aria-hidden":"true"})}),(0,n.jsx)("div",{className:"app-no-drag",ref:T,style:{flex:"0 1 auto",minWidth:0,maxWidth:"min(60vw, 820px)",height:"100%",display:"flex",alignItems:"center",padding:"0 8px 0 0",overflow:"visible"}})]}),(0,n.jsxs)("div",{className:"app-title-drag",style:{position:"relative",flex:"1 1 auto",minWidth:0,height:"100%",display:"flex",alignItems:"center",justifyContent:"flex-start",padding:l?"0 8px 0 4px":"0 4px 0 12px",overflow:"visible",userSelect:"none"},children:[C&&(0,n.jsx)("button",{type:"button",className:"app-no-drag",onClick:()=>{l&&K(!0)},style:{display:"block",flex:"0 1 auto",minWidth:0,maxWidth:l?"100%":"min(46vw, 560px)",fontSize:12,fontWeight:500,color:"var(--text-muted)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",background:"none",border:"none",cursor:"pointer",padding:"2px 6px",borderRadius:5},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:C}),(0,n.jsx)("div",{className:"app-no-drag",ref:R,style:{flexShrink:0,display:"flex",alignItems:"center",marginLeft:4,position:"relative",zIndex:2}})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:3,minWidth:0,height:"100%",flexShrink:+!l,overflow:"hidden",marginLeft:"auto",position:"relative",zIndex:1},children:[!l&&d&&(0,n.jsx)("button",{className:"app-no-drag",onClick:c,title:a?_("desktop.hideTaskBoard"):_("desktop.showTaskBoard"),"aria-label":a?_("desktop.hideTaskBoard"):_("desktop.showTaskBoard"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:a?"var(--bg-selected)":"none",border:"none",color:a?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background=a?"var(--bg-selected)":"none",e.currentTarget.style.color=a?"var(--text)":"var(--text-muted)"},children:(0,n.jsx)(eJ.x,{size:16,"aria-hidden":"true"})}),(0,n.jsx)("button",{className:"app-no-drag",onClick:k,title:b?_("desktop.hideFilePanel"):_("desktop.showFilePanel"),"aria-label":b?_("desktop.hideFilePanel"):_("desktop.showFilePanel"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:b?"var(--bg-selected)":"none",border:"none",color:b?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background=b?"var(--bg-selected)":"none",e.currentTarget.style.color=b?"var(--text)":"var(--text-muted)"},children:(0,n.jsx)(pE.V,{size:16,"aria-hidden":"true",style:{transform:"scaleX(-1)"}})}),(0,n.jsx)(pX,{isDark:i,toggleTheme:s,translate:_}),V&&(0,n.jsx)("button",{className:"app-no-drag",type:"button",onClick:()=>{window.location.href="piweb-switch://manage"},title:_("desktop.serverSwitch"),"aria-label":_("desktop.serverSwitch"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(N.X,{size:16,"aria-hidden":"true"})}),!V&&!l&&(0,n.jsx)("button",{className:"app-no-drag",type:"button",onClick:w,title:_("desktop.refreshSession"),"aria-label":_("desktop.refreshSession"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(z.S,{size:16,"aria-hidden":"true"})}),(0,n.jsx)("button",{className:"app-no-drag",type:"button",onClick:S,title:_("desktop.settings"),"aria-label":_("desktop.settings"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(u9.O,{size:16,"aria-hidden":"true"})})]})]}),(0,n.jsx)(pK,{onRefreshSession:w}),p&&h&&(0,n.jsxs)("div",{style:{position:"fixed",top:h.top,left:h.left,width:h.width,maxHeight:`calc(100dvh - ${h.top}px)`,overflowY:"auto",zIndex:500},children:["system"===p&&(0,n.jsx)("div",{style:{background:"var(--bg-panel)",borderBottom:"1px solid var(--border)"},children:u?(0,n.jsx)("div",{style:{maxHeight:"min(600px, 75vh)",overflowY:"auto",padding:"12px 16px",color:"var(--text-muted)",fontSize:12,lineHeight:1.6,whiteSpace:"pre-wrap",fontFamily:"var(--font-mono)"},children:u}):""===u?(0,n.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:"System prompt is empty (tools are disabled)"}):(0,n.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:"Send a message to load the system prompt"})}),"session"===p&&(0,n.jsx)("div",{style:{background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",boxShadow:"0 10px 28px rgba(0,0,0,0.10)",padding:"12px 16px"},children:g?(E=[...g.sessionName?[{label:_("desktop.name"),value:g.sessionName,copyField:null}]:[],{label:_("desktop.sessionInfoFile"),value:g.sessionFile??_("desktop.sessionInfoInMemory"),copyField:"file"},{label:_("desktop.sessionInfoId"),value:g.sessionId,copyField:"id"}],$=[[_("desktop.sessionInfoUser"),g.userMessages.toLocaleString()],[_("desktop.sessionInfoAssistant"),g.assistantMessages.toLocaleString()],[_("desktop.sessionInfoToolCalls"),g.toolCalls.toLocaleString()],[_("desktop.sessionInfoToolResults"),g.toolResults.toLocaleString()],[_("desktop.sessionInfoTotal"),g.totalMessages.toLocaleString()]],W=[[_("desktop.sessionInfoInput"),g.tokens.input.toLocaleString()],[_("desktop.sessionInfoOutput"),g.tokens.output.toLocaleString()],...g.tokens.cacheRead>0?[[_("desktop.sessionInfoCacheRead"),g.tokens.cacheRead.toLocaleString()]]:[],...g.tokens.cacheWrite>0?[[_("desktop.sessionInfoCacheWrite"),g.tokens.cacheWrite.toLocaleString()]]:[],[_("desktop.sessionInfoTotal"),g.tokens.total.toLocaleString()]],A=m??g.contextUsage,F=[...g.cost>0?[[_("desktop.sessionInfoCost"),`$${g.cost.toFixed(4)}`]]:[],...A?.contextWindow?[[_("desktop.sessionInfoContext"),`${null!==A.percent?`${A.percent.toFixed(1)}%`:"?"} / ${(P=A.contextWindow)>=1e6?`${(P/1e6).toFixed(1)}M`:P>=1e3?`${(P/1e3).toFixed(0)}k`:String(P)}`]]:[]],D=(e,t,r="left",o=!1)=>(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:e}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:o?"max-content max-content":"auto minmax(0, 1fr)",columnGap:o?14:12,rowGap:4,justifyContent:o?"start":void 0},children:t.map(([t,i])=>(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:t}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:o?"normal":"anywhere",textAlign:r,whiteSpace:"right"===r?"nowrap":"normal"},children:i})]},`${e}:${t}`))})]}),H=(e,t)=>{let r=v===e;return(0,n.jsx)("button",{type:"button",title:r?_("desktop.copied"):_({file:"desktop.copyFilePath",id:"desktop.copySessionId",projectDir:"desktop.copyProjectDir",gitBranch:"desktop.copyGitBranch",gitWorktree:"desktop.copyGitWorktree"}[e]),onClick:()=>y(e,t),style:{alignSelf:"start",display:"inline-flex",alignItems:"center",justifyContent:"center",width:22,height:22,marginTop:-2,color:r?"var(--accent)":"var(--text-dim)",background:"transparent",border:"1px solid var(--border)",borderRadius:4,cursor:"pointer",flex:"0 0 auto",transition:"color 0.12s, border-color 0.12s, background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)",e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color=r?"var(--accent)":"var(--text-dim)",e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="transparent"},children:r?(0,n.jsx)(f.J,{size:12,"aria-hidden":"true"}):(0,n.jsx)(sU.Q,{size:12,"aria-hidden":"true"})})},O=(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:_("desktop.sessionInfoTitle")}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:12,rowGap:8,alignItems:"start"},children:E.map(e=>(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:e.label}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:"anywhere",wordBreak:"break-word",whiteSpace:"normal"},children:e.value}),(0,n.jsx)("div",{children:e.copyField?H(e.copyField,e.value):null})]},`session-info:${e.label}`))})]}),U=(B=[...x?[{label:_("desktop.projectDir"),value:x.projectRoot??x.cwd,copyField:"projectDir"}]:[],...x?.branch?[{label:_("desktop.gitBranch"),value:x.branch,copyField:"gitBranch"}]:[],...x?.isWorktree?[{label:_("desktop.gitWorktree"),value:x.cwd,copyField:"gitWorktree"}]:[]]).length>0?(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:_("desktop.projectSection")}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:12,rowGap:8,alignItems:"start"},children:B.map(e=>(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:e.label}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:"anywhere",wordBreak:"break-word",whiteSpace:"normal"},children:e.value}),(0,n.jsx)("div",{children:e.copyField?H(e.copyField,e.value):null})]},`project-info:${e.label}`))})]}):null,(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:l?"1fr":"minmax(360px, 1.7fr) minmax(140px, 0.55fr) minmax(190px, 0.75fr)",gap:l?16:24,fontSize:12,lineHeight:1.5,fontFamily:"var(--font-mono)"},children:[(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:l?16:20,minWidth:0},children:[O,U]}),D(_("desktop.sessionInfoMessages"),$),D(_("desktop.sessionInfoTokens"),[...W,...F],"right",!0)]})):(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:_("desktop.sendMessageForSessionInfo")})})]}),q&&C&&(0,n.jsx)("div",{className:"app-no-drag",onClick:()=>K(!1),style:{position:"fixed",inset:0,zIndex:3e3,display:"flex",alignItems:"flex-start",justifyContent:"center",paddingTop:48,background:"rgba(0,0,0,0.35)",cursor:"pointer"},children:(0,n.jsxs)("div",{role:"dialog","aria-label":C,style:{position:"relative",maxWidth:"min(560px, calc(100vw - 32px))",maxHeight:"min(60vh, 400px)",overflow:"auto",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:12,boxShadow:"0 16px 40px rgba(0,0,0,0.3)",padding:"14px 40px 14px 18px",fontSize:13,lineHeight:1.6,color:"var(--text)",wordBreak:"break-word",whiteSpace:"pre-wrap",cursor:"default"},children:[C,(0,n.jsx)("button",{type:"button","aria-label":_("i18n.close"),title:_("i18n.close"),onClick:e=>{e.stopPropagation(),K(!1)},style:{position:"sticky",top:0,float:"right",marginLeft:8,display:"inline-flex",alignItems:"center",justifyContent:"center",width:24,height:24,padding:0,border:"none",borderRadius:5,background:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:14,lineHeight:1},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="none"},children:"✕"})]})})]})}function pQ({status:e}){return"running"===e||"starting"===e?(0,n.jsxs)("svg",{className:"animate-spin",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",opacity:"0.25"}),(0,n.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):"queued"===e?(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,n.jsx)("path",{d:"M12 7v5l3 2"})]}):"failed"===e?(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,n.jsx)("path",{d:"m9 9 6 6M15 9l-6 6"})]}):"aborted"===e||"interrupted"===e?(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,n.jsx)("path",{d:"M9 9h6v6H9z"})]}):(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,n.jsx)("path",{d:"m8 12 3 3 5-6"})]})}function p0({session:e,main:t,selected:r,running:o,onSelect:i}){let{locale:s,t:l}=(0,Y.s)(),a=e.relation?.kind==="subagent"?e.relation:null,d=o?"running":a?.status??"completed",c=t?l("agentSwitcher.main"):a?.description||os(e),u=t?os(e):`${a?.profile??l("agentSwitcher.subagent")} \xb7 ${function(e,t){let r=new Date(e).getTime();if(!Number.isFinite(r))return"";let n=Math.round((r-Date.now())/1e3),o=new Intl.RelativeTimeFormat(t,{numeric:"auto"});if(60>Math.abs(n))return o.format(n,"second");let i=Math.round(n/60);if(60>Math.abs(i))return o.format(i,"minute");let s=Math.round(i/60);return 24>Math.abs(s)?o.format(s,"hour"):o.format(Math.round(s/24),"day")}(e.modified,s)}`;return(0,n.jsxs)("button",{type:"button",role:"option","aria-selected":r,onClick:i,style:{width:"100%",minHeight:56,display:"grid",gridTemplateColumns:"28px minmax(0, 1fr) auto",alignItems:"center",gap:9,padding:"7px 12px",border:"none",borderBottom:"1px solid var(--border)",borderLeft:r?"2px solid var(--accent)":"2px solid transparent",background:r?"var(--bg-selected)":"transparent",color:"var(--text)",cursor:"pointer",textAlign:"left"},onMouseEnter:e=>{r||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{r||(e.currentTarget.style.background="transparent")},children:[(0,n.jsx)("span",{style:{width:28,height:28,display:"grid",placeItems:"center",color:t?"var(--text-muted)":"var(--accent)"},children:t?(0,n.jsxs)("svg",{width:"17",height:"17",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"8",r:"4"}),(0,n.jsx)("path",{d:"M4 21a8 8 0 0 1 16 0"})]}):(0,n.jsxs)("svg",{width:"17",height:"17",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"5",y:"7",width:"14",height:"11",rx:"2"}),(0,n.jsx)("path",{d:"M9 11h.01M15 11h.01M9 15h6M12 7V4M10 4h4"})]})}),(0,n.jsxs)("span",{style:{minWidth:0},children:[(0,n.jsx)("span",{style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12,fontWeight:r?600:500},title:c,children:c}),(0,n.jsx)("span",{style:{display:"block",marginTop:2,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-dim)",fontSize:11},title:u,children:u})]}),(0,n.jsx)("span",{style:{display:"flex",alignItems:"center",gap:6,color:t&&!o?"var(--text-dim)":"running"===d||"starting"===d?"var(--accent)":"queued"===d?"var(--text-dim)":"completed"===d?"var(--status-success)":"failed"===d?"var(--status-error)":"aborted"===d?"var(--status-warning)":"var(--text-dim)",fontSize:11,whiteSpace:"nowrap"},children:t&&!o?r?l("agentSwitcher.current"):null:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(pQ,{status:d}),(0,n.jsx)("span",{children:l(`agentSwitcher.status.${d}`)})]})})]})}function p1({rootSession:e,subagents:t,selectedSessionId:r,runningSessionIds:i,onSelectSession:s}){let{t:l}=(0,Y.s)(),[a,d]=(0,o.useState)(""),c=(0,o.useMemo)(()=>[...t].sort((e,t)=>{let r=i.has(e.id);return r!==i.has(t.id)?r?-1:1:t.modified.localeCompare(e.modified)}),[i,t]),u=a.trim().toLowerCase(),p=u?c.filter(e=>{let t=e.relation?.kind==="subagent"?e.relation:null;return[t?.description,t?.profile,e.name,e.firstMessage].some(e=>e?.toLowerCase().includes(u))}):c,h=t.filter(e=>i.has(e.id)).length;return(0,n.jsx)("div",{role:"listbox","aria-label":l("agentSwitcher.title"),style:{background:"var(--bg-panel)",borderLeft:"1px solid var(--border)",borderRight:"1px solid var(--border)",borderBottom:"1px solid var(--border)",borderRadius:"0 0 6px 6px",boxShadow:"0 10px 28px rgba(0,0,0,0.10)",overflow:"hidden"},children:(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:{minHeight:44,display:"flex",alignItems:"center",gap:8,padding:"7px 12px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("strong",{style:{fontSize:12,fontWeight:600},children:l("agentSwitcher.title")}),(0,n.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11},children:l("agentSwitcher.count",{count:t.length})}),h>0&&(0,n.jsx)("span",{style:{marginLeft:"auto",color:"var(--accent)",fontSize:11},children:l("agentSwitcher.runningCount",{count:h})})]}),t.length>8&&(0,n.jsx)("div",{style:{padding:8,borderBottom:"1px solid var(--border)"},children:(0,n.jsx)("input",{type:"search",value:a,onChange:e=>d(e.target.value),placeholder:l("agentSwitcher.search"),"aria-label":l("agentSwitcher.search"),style:{width:"100%",height:32,padding:"0 10px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg)",color:"var(--text)",fontSize:12,outline:"none"}})}),(0,n.jsxs)("div",{style:{maxHeight:"min(58dvh, 480px)",overflowY:"auto"},children:[(0,n.jsx)(p0,{session:e,main:!0,selected:e.id===r,running:i.has(e.id),onSelect:()=>s(e)}),p.map(e=>(0,n.jsx)(p0,{session:e,selected:e.id===r,running:i.has(e.id),onSelect:()=>s(e)},e.id)),0===p.length&&(0,n.jsx)("div",{style:{padding:"22px 12px",color:"var(--text-dim)",fontSize:12,textAlign:"center"},children:l("agentSwitcher.noMatches")})]})]})})}function p2({loading:e,prompt:t,translate:r}){return(0,n.jsxs)("section",{className:"system-prompt-panel","aria-label":r("system.prompt"),children:[(0,n.jsx)("div",{className:"system-prompt-scroll",children:t?(0,n.jsx)("div",{className:"system-prompt-text",children:t}):(0,n.jsx)("div",{className:"system-prompt-empty",children:r(""===t?"system.empty":e?"system.loading":"system.load")})}),(0,n.jsx)("style",{children:`
196
+ ${r}`):i=r;let h=i,g=o?.map(e=>({type:"image",source:{type:"base64",media_type:e.mimeType,data:e.data}})),x={role:"user",content:g?.length?[...r.trim()?[{type:"text",text:r}]:[],...g]:r,timestamp:Date.now()};z(e=>[...e,x]),rz.current=us(x),rC.current=a;let f="goal"===ez.current&&!l&&s.length>0&&"idle"===eF.current.status;f&&(eM.current=s,eP(e=>({...e,status:"running",goalText:s,turnsUsed:0,noProgressTurns:0,tokensUsed:0})),eO.current=!0),ro.current=!0,q(!0),tm(l?{kind:"running_command"}:{kind:"waiting_model"}),A({type:"start"}),rf.current=!0,ty(!0),rm.current=!0;let m=o?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType})),v=null,y=!1;try{if(p&&n){let e=t5.current??await rw.current,t=e??await rJ();if(t){v=t,rV(1,r),ea&&(td(ea),e&&await tE(t,{type:"set_model",provider:ea.provider,modelId:ea.modelId}));let n=await Promise.race([rQ(t).then(()=>!0).catch(()=>!1),ur(4e3).then(()=>!1)]);y=!0,await tE(t,{type:"prompt",message:h,...m?.length?{images:m}:{}}),n||nr(t,a),f&&tE(t,{type:"goal_start",goalText:s}).catch(()=>{})}else throw Error("Unable to create a session for this message")}else if(t){v=t.id;let e=await Promise.race([rQ(t.id).then(()=>!0).catch(()=>!1),ur(4e3).then(()=>!1)]);y=!0,await tE(t.id,{type:"prompt",message:h,...m?.length?{images:m}:{}}),e||nr(t.id,a),f&&tE(t.id,{type:"goal_start",goalText:s}).catch(()=>{})}l&&v&&nr(v,a)}catch(t){if(console.error("Failed to send message:",t),y&&v&&!(t instanceof tR&&"prompt_rejected"===t.code&&!1===t.accepted))return void nr(v,a);if(eE.current={sessionKey:"",signature:""},f&&(eM.current=null,eO.current=!1,eP(e=>({...e,status:"idle",goalText:null}))),rs.current=!1,rX(),t instanceof ut){let e=rz.current;e&&z(t=>{let r=t[t.length-1];return r?.role==="user"&&us(r)===e?t.slice(0,-1):t}),r2({type:"error",message:t.message})}else{let r=rz.current;r&&z(e=>{let t=e[e.length-1];return t?.role==="user"&&us(t)===r?e.slice(0,-1):e});let n=e.chatInputRef?.current;n?.restoreSubmission?n.restoreSubmission(x):n?.replaceMessage?.(x),r2({type:"error",message:`Failed to send message: ${t instanceof Error?t.message:String(t)}`})}rz.current=null,ro.current=!1,q(!1),tm(null),A({type:"end"})}},[p,n,ea,t,rJ,rQ,rV,nr,r2,rG,rX,rL,e.chatInputRef]),nd=(0,o.useCallback)(async(r,n)=>{if(ro.current||rc.current)return;let o=`${n?"!!":"!"}${r}`;rc.current=!0,Y({command:r,excludeFromContext:n}),V(!0);try{let e=t5.current??t?.id??await rJ();if(!e)throw Error("Unable to create a session for the shell command");rV(1,o),await tE(e,{type:"bash",command:r,excludeFromContext:n}),await rq(e)}catch(t){console.error("Failed to execute shell command:",t),r2({type:"error",message:t instanceof Error?t.message:String(t)}),e.chatInputRef?.current?.insertIfEmpty(o)}finally{rc.current=!1,Y(null),V(!1)}},[r2,rJ,rq,e.chatInputRef,rV,t]),nc=(0,o.useCallback)(async()=>{let e=t5.current;if(e)try{await tE(e,{type:rc.current?"abort_bash":"abort"})}catch(e){console.error("Failed to abort:",e)}},[]),nu=(0,o.useCallback)(async e=>{let t=t5.current;if(t){tt(e);try{let{cancelled:r,newSessionId:n}=await tE(t,{type:"fork",entryId:e})??{};!r&&n&&l?.(n)}catch(e){console.error("Fork failed:",e)}finally{tt(null)}}},[l]),np=(0,o.useCallback)(async e=>{if(rc.current)return!1;let t=t5.current;if(!t)return!1;try{let r=await tE(t,{type:"navigate_tree",targetId:e});if(r?.cancelled||t5.current!==t)return!1;return S(e),await rq(t),t5.current===t}catch(e){return console.error("Failed to navigate:",e),!1}},[rq]),nh=(0,o.useCallback)(async e=>{S(e);let t=t5.current;t&&(await r4(t,e),e&&tE(t,{type:"navigate_tree",targetId:e}).catch(()=>{}))},[r4]),ng=(0,o.useCallback)(e=>{e instanceof tI?r2({type:"error",message:c6("desktop.modelSwitchTimeout")}):r2({type:"error",message:c6("desktop.modelSwitchFailed",{reason:e instanceof Error?e.message:String(e)})})},[r2]),nx=(0,o.useCallback)(async(e,t)=>{if(p){let r={provider:e,modelId:t};rE.current=r,ed(r),td(r),null===r$.current&&re(c7(t8.current[`${e}/${t}`])??t7.current);let n=t5.current??await rw.current;if(!n)return;try{await tE(n,{type:"set_model",provider:e,modelId:t},{timeoutMs:12e4})}catch(e){console.error("Failed to set model:",e),ng(e)}return}let r=t5.current;if(!r)return;let n=++rT.current;tn({provider:e,modelId:t});try{let o=await tE(r,{type:"set_model",provider:e,modelId:t},{timeoutMs:12e4});if(ti({provider:o.provider,modelId:o.id}),await rq(r),rT.current===n){let e=Z.find(e=>e.provider===o.provider&&e.id===o.id)?.name??o.id;r2({type:"success",message:c6("desktop.modelSwitched",{model:e})})}}catch(o){if(console.error("Failed to set model:",o),rT.current===n&&(tn(null),ti(null)),await rq(r,!1,!0),rT.current===n){let r=ts.current;r&&r.provider===e&&r.modelId===t?r2({type:"success",message:c6("desktop.modelSwitched",{model:Z.find(r=>r.provider===e&&r.id===t)?.name??t})}):ng(o)}}},[r2,p,Z,ng,ed]),nf=(0,o.useCallback)(async()=>{let e=t5.current;if(e&&!tc){tu(!0),th(null),tx(null);try{let t=await tE(e,{type:"compact"});tx(ul(t,"manual")),await rq(e,!0)}catch(e){th(e instanceof Error?e.message:String(e)),tx(null)}finally{tu(!1)}}},[tc,rq]),nm=(0,o.useCallback)(async e=>{let r=++rR.current,o=n??t?.cwd??"",i=o?`/api/models?cwd=${encodeURIComponent(o)}`:"/api/models",s=rI.current;s?.abort();let l=new AbortController;rI.current=l;let a=()=>l.abort();e?.aborted?l.abort():e?.addEventListener("abort",a,{once:!0});try{let e=await fetch(i,{signal:l.signal});if(!e.ok){let t=`HTTP ${e.status}`;try{let r=await e.json();r?.error&&(t=r.error)}catch{}throw Error(t)}let t=await e.json();if(r!==rR.current||h!==rM.current)return;el(null),X(t.models),et(t.thinkingLevels??{}),en(t.thinkingLevelMaps??{}),ei(t.modelScopeWarnings??[]);let n=t.modelList??[];if(Q(n),p&&!t5.current){let e=(t.defaultModel?n.find(e=>e.id===t.defaultModel?.modelId&&e.provider===t.defaultModel?.provider):void 0)??n[0];eu(e?{provider:e.provider,modelId:e.id}:null);let r=e?t.thinkingLevelPins?.[`${e.provider}/${e.id}`]:void 0;null===r$.current&&eU(r??"auto")}}catch(e){if(l.signal.aborted||r!==rR.current||h!==rM.current)return;el(e instanceof Error?e.message:String(e))}finally{e?.removeEventListener("abort",a),rI.current===l&&(rI.current=null)}},[p,h,n,t?.cwd]),nv=(0,o.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,o=n.trim(),i=t5.current??await rJ(),s=e=>(e.handled&&(e.error?r2({type:"error",message:e.error}):"openSessionStats"!==e.action&&r2({type:"success",message:e.message??"Command completed"})),e);try{switch(r){case"compact":{if(!i||tc)return s({handled:!0,error:"No active session to compact"});tu(!0),th(null),tx(null);let e=await tE(i,{type:"compact",...o?{customInstructions:o}:{}});return tx(ul(e,"manual")),await rq(i,!0)&&rV(),s({handled:!0,message:"Compacted context"})}case"auto-compact":{if(!i)return s({handled:!0,error:"No active session"});let e=await tE(i,{type:"get_state"}),t=!(e?.autoCompactionEnabled??!0);return await tE(i,{type:"set_auto_compaction",enabled:t}),eH(t),s({handled:!0,message:t?"Auto-compaction enabled":"Auto-compaction disabled"})}case"reload":if(!i)return s({handled:!0,error:"No active session to reload"});return await tE(i,{type:"reload"}),await Promise.all([rq(i,!1,!0),rK(i),rY(),nm()]),s({handled:!0,message:"Reloaded session resources"});case"name":if(!i)return s({handled:!0,error:"No active session to name"});if(!o)return s({handled:!0,error:"Usage: /name <name>"});return await tE(i,{type:"set_session_name",name:te(o)}),await rq(i)&&rV(),s({handled:!0,message:`Session renamed to ${o}`});case"session":{if(!i)return s({handled:!0,error:"No active session"});let e=await tE(i,{type:"get_session_stats"});return e&&t$(e),u?.(),s({handled:!0,action:"openSessionStats"})}case"copy":{if(!i)return s({handled:!0,error:"No active session"});let e=await tE(i,{type:"get_last_assistant_text"}),t=e?.text??"";if(!t)return s({handled:!0,error:"No assistant message to copy"});return await navigator.clipboard.writeText(t),s({handled:!0,message:"Copied last assistant message"})}case"clone":{if(!i)return s({handled:!0,error:"No active session to clone"});if(ro.current||rc.current)return s({handled:!0,error:"Cannot clone while the session is running"});let e=await tE(i,{type:"clone",leafId:w});if(e?.cancelled||!e?.newSessionId)return s({handled:!0,error:"Cannot clone an empty or unsaved session"});let t=s({handled:!0,message:"Cloned current session branch"});return l?.(e.newSessionId),t}default:return{handled:!1}}}catch(e){return s({handled:!0,error:e instanceof Error?e.message:String(e)})}finally{"compact"===r&&tu(!1)}},[w,r2,rJ,tc,nm,rq,rY,rK,rV,l,u]),ny=(0,o.useCallback)(async e=>{let t=!1;try{let r=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(r.ok){let e=await r.json(),n=e.state;if(e.running&&n&&(n.isStreaming||n.isPromptRunning||n.isBashRunning||n.isCompacting))return;t=!0}}catch{}t?r7():nr(e)},[nr,r7]),nb=(0,o.useCallback)(async(e,t)=>{let r=t5.current;if(!r)return;let n=t?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}));ro.current=!0,q(!0),tm(e=>e??{kind:"waiting_model"});try{await tE(r,{type:"steer",message:e,...n?.length?{images:n}:{}})}catch(e){console.error("Failed to steer:",e),ny(r)}},[ny]),nk=(0,o.useCallback)(async(e,t,r)=>{let n=t5.current;if(!n)return;let o=r?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}));ro.current=!0,q(!0),tm(e=>e??{kind:"waiting_model"});try{await tE(n,{type:"prompt",message:e,streamingBehavior:t,...o?.length?{images:o}:{}})}catch(e){console.error("Failed to queue prompt:",e),ny(n)}},[ny]),nj=(0,o.useCallback)(async(e,t)=>{let r=t5.current;if(!r)return;let n=t?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}));ro.current=!0,q(!0),tm(e=>e??{kind:"waiting_model"});try{await tE(r,{type:"follow_up",message:e,...n?.length?{images:n}:{}})}catch(e){console.error("Failed to follow up:",e),ny(r)}},[ny]),nw=(0,o.useCallback)(async()=>{let e=t5.current;if(e)try{await tE(e,{type:"abort_compaction"})}catch(e){console.error("Failed to abort compaction:",e)}},[]),nS=(0,o.useCallback)(async()=>{let t=t5.current;if(t)try{let r=await tE(t,{type:"clear_queue"});tU({steering:[],followUp:[]});let n=[...r?.steering??[],...r?.followUp??[]];n.length>0&&e.chatInputRef?.current?.prependText(n.join("\n\n"))}catch(e){console.error("Failed to recall queued messages:",e),r2({type:"error",message:"Failed to recall queued messages"})}},[e.chatInputRef,r2,tU]);(0,o.useEffect)(()=>{0===t_.length&&tJ(!1)},[t_.length]);let nC=(0,o.useCallback)(async(e,t,r=!1)=>{let n=t5.current;if(!n)return t_;try{let o=await tE(n,{type:"resolve_recovery",keep:e,discard:t,continueRun:r}),i=o?.remaining??[];return tK(i),r&&e.length>0&&(async()=>{try{let e=await fetch(`/api/agent/${encodeURIComponent(n)}`);if(!e.ok)return;let t=await e.json(),r=t.state;if(!t.running||!r||!r.isStreaming&&!r.isPromptRunning)return;ri.current=!!r.isStreaming,rs.current=!!r.isPromptRunning,ro.current=!0,q(!0),tm(c5(r)),A({type:"start"}),rZ(n),!r.isStreaming&&r.isPromptRunning&&nr(n)}catch{}})(),i}catch(e){return console.error("Failed to resolve queued message recovery:",e),r2({type:"error",message:"Failed to resolve queued message recovery"}),t_}},[t_,r2,rZ,nr,tK]),nz=(0,o.useCallback)(async()=>{let e=t5.current;if(!e)return null;try{return await tE(e,{type:"export_queue"})}catch(e){return console.error("Failed to export queue:",e),r2({type:"error",message:"Failed to export queue"}),null}},[r2]),nT=(0,o.useCallback)(async e=>{let t=t5.current;if(!t)return null;try{let r=await tE(t,{type:"import_queue",entries:e});return r&&tU(c8(r)),r?.imported??0}catch(e){return console.error("Failed to import queue:",e),r2({type:"error",message:"Failed to import queue"}),null}},[r2,tU]),nR=(0,o.useCallback)(async e=>{let t=t5.current;if(!t)return null;try{let r=await tE(t,{type:"stage_recovery",entries:e});return r?.pendingRecovery&&tK(r.pendingRecovery),(r?.staged??0)>0&&tJ(!0),r?.staged??0}catch(e){return console.error("Failed to stage imported queue:",e),r2({type:"error",message:"Failed to stage imported queue"}),null}},[r2,tK]),nI=(0,o.useCallback)(async(e,t,r)=>{let n=t5.current;if(!n)return!1;try{let o=await tE(n,{type:"move_queue",kind:e,fromIndex:t,toIndex:r});return o&&tU(c8(o)),!0}catch(e){return console.error("Failed to move queued message:",e),r2({type:"error",message:e instanceof Error?e.message:"Failed to move queued message"}),!1}},[r2,tU]),nM=(0,o.useCallback)(async(e,t)=>{let r=t5.current;if(!r)return null;try{let n=await tE(r,{type:"recall_queue_item",kind:e,index:t});return n&&(void 0!==n.steering||void 0!==n.followUp)&&tU(c8(n)),n?.entry?{text:n.entry.text,images:n.entry.images?.map(({data:e,mimeType:t})=>({data:e,mimeType:t}))}:null}catch(e){return console.error("Failed to recall queued message:",e),r2({type:"error",message:e instanceof Error?e.message:"Failed to recall queued message"}),null}},[r2,tU]),nE=(0,o.useCallback)(async(e,t,r,n)=>{let o=t5.current;if(!o)return!1;try{let i=await tE(o,{type:"requeue_at",kind:e,index:t,text:r,images:n?.map(({data:e,mimeType:t})=>({type:"image",data:e,mimeType:t}))});return i&&tU(c8(i)),!0}catch(e){return console.error("Failed to requeue message:",e),r2({type:"error",message:e instanceof Error?e.message:"Failed to requeue message"}),!1}},[r2,tU]),n$=(0,o.useCallback)(async(e,t)=>{let r=t5.current;if(!r)return!1;try{let n=await tE(r,{type:"remove_queue_item",kind:e,index:t});return n&&tU(c8(n)),!0}catch(e){return console.error("Failed to remove queued message:",e),r2({type:"error",message:e instanceof Error?e.message:"Failed to remove queued message"}),!1}},[r2,tU]),nW=(0,o.useCallback)(async e=>{if("auto"===e){r$.current=null,eU(e);return}r$.current=e,eU(e);let t=t5.current??await rw.current;if(t)try{await tE(t,{type:"set_thinking_level",level:e}),t3.current&&t5.current===t&&eq(e)}catch(e){console.error("Failed to set thinking level:",e)}},[]),nL=(0,o.useCallback)(async e=>{let t=(0,cG.xG)(e);!function(e,t=function(){try{return window.localStorage}catch{return null}}()){if(t)try{t.setItem("pi-tool-preset",e)}catch{}}(e),rA(e);let r=t5.current??await rw.current;if(!r){rn.current=void 0!==t;return}try{let e=await tE(r,{type:"set_tools",...void 0!==t?{toolNames:t}:{}});rn.current=void 0!==t;let n=e?.sessionId??r;(n!==r||e?.recreated)&&(rG(),rX(),t5.current=n),tw([]),tF([]),tH([]);let[o]=await Promise.all([tE(n,{type:"get_state"}),rK(n)]);t3.current&&t5.current===n&&(eX(o.systemPrompt??""),tl(o))}catch(e){console.error("Failed to set tools:",e)}},[rG,rX,rK,rA,tl]),nN=(0,o.useRef)(0),nA=(0,o.useCallback)(async e=>{let t=t5.current??await rw.current,r=++nN.current;if("plan"===e){if(eg.current="plan"===ep||"configured"===ep?"default":ep,t)try{await tE(t,{type:"prompt",message:"/plan"})}catch(e){if(nN.current!==r)return;console.error("Failed to enter plan mode:",e)}return}if(t){try{if(await tE(t,{type:"prompt",message:"/plan exit"}),nN.current!==r)return}catch(e){if(nN.current!==r)return;console.error("Failed to exit plan mode:",e)}if(nN.current!==r)return;try{await tE(t,{type:"set_tools",toolNames:(0,cG.xG)(eg.current)})}catch(e){console.error("Failed to restore tools after plan exit:",e)}}},[ep]),nP=(0,o.useCallback)(e=>{e$.current=e,em(e);let t=t5.current;if(!t){ev.current=e;return}ev.current=null,fetch(`/api/modes?session=${encodeURIComponent(t)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}).catch(e=>{console.error("Failed to persist mode settings:",e)})},[]),nF=(0,o.useCallback)(e=>{let t=e2(e),r="plan"===ez.current;if(nP({...e$.current,collaborationMode:t}),ez.current=t,eE.current={sessionKey:"",signature:""},"goal"!==t){eM.current=null,eO.current=!1,eP(e=>"idle"===e.status?e:{...e,status:"idle",goalText:null});let e=t5.current;e&&tE(e,{type:"goal_stop"}).catch(()=>{})}return"plan"!==t||r?"plan"!==t&&r?nA("normal"):Promise.resolve():nA("plan")},[nP,nA]),nD=(0,o.useCallback)(async e=>{nP({...e$.current,tokenMode:e6(e)});let t=t5.current??await rw.current;if(t)try{if("economy"!==e||ex.current){if("economy"!==e){let e=ex.current?cG.SC:(0,cG.xG)("plan"===ep?"default":ep);await tE(t,{type:"set_tools",toolNames:e})}}else await tE(t,{type:"set_tools",toolNames:[...e5]})}catch(e){console.error("Failed to apply token mode tools:",e)}},[nP,ep]),nH=(0,o.useCallback)(async e=>{nP({...e$.current,toolApprovalMode:e4(e)});let t=t5.current??await rw.current;if(t)try{await tE(t,{type:"set_approval_mode",mode:e4(e)})}catch(e){console.error("Failed to apply approval mode:",e)}},[nP]),nO=(0,o.useCallback)(async e=>{nP({...e$.current,permissionRules:e});let t=t5.current??await rw.current;if(t)try{await tE(t,{type:"set_approval_policy",policy:e})}catch(e){console.error("Failed to apply permission rules:",e)}},[nP]),nB=(0,o.useCallback)(async(e,t,r,n)=>{let o=t5.current;if(o){if("always"===n){let r=eN.current.find(t=>t.id===e);if(r){let e=aK(r.toolName,r.args),n=e?`${r.toolName}(${e})`:r.toolName,o=e$.current.permissionRules;(t?o.allow:o.deny).includes(n)||nO(t?{...o,allow:[...o.allow,n]}:{...o,deny:[...o.deny,n]})}}try{await tE(o,{type:"resolve_approval",id:e,approve:t,reason:r})}catch(e){console.error("Failed to resolve approval:",e)}finally{eL(t=>t.filter(t=>t.id!==e))}}},[nO]),nU=(0,o.useCallback)(e=>{eM.current=e},[]),n_=(0,o.useCallback)(e=>{let t=e.trim();if(!t)return;eM.current=t,eP(e=>({...e,status:"running",goalText:t,turnsUsed:0,noProgressTurns:0,tokensUsed:0,startedAt:Date.now()}));let r=t5.current;r&&tE(r,{type:"goal_start",goalText:t}).catch(()=>{})},[]),nq=(0,o.useCallback)(()=>{if("running"!==eF.current.status)return;eP(e=>({...e,status:"paused"}));let e=t5.current;e&&tE(e,{type:"goal_pause"}).catch(()=>{})},[]),nK=(0,o.useCallback)(()=>{let e=eF.current;if("paused"!==e.status&&"blocked"!==e.status)return;eP(e=>({...e,status:"running"}));let t=t5.current;t&&tE(t,{type:"goal_resume"}).catch(()=>{})},[]),nV=(0,o.useCallback)(()=>{eO.current=!1,eM.current=null,eP(e=>({...e,status:"idle",goalText:null,turnsUsed:0,noProgressTurns:0}));let e=t5.current;e&&tE(e,{type:"goal_stop"}).catch(()=>{})},[]),nJ=(0,o.useCallback)(e=>{let t=e.trim();if(!t)return;eP(e=>({...e,goalText:t}));let r=t5.current;r&&tE(r,{type:"goal_edit",goalText:t}).catch(()=>{})},[]),nY=(0,o.useCallback)(()=>{let e=rj.current,t=rx.current;if(!e||!t)return;let r=t.getBoundingClientRect().top-e.getBoundingClientRect().top+e.scrollTop,n=Math.max(0,e.scrollHeight-e.clientHeight),o=Math.min(Math.max(0,r-16),n);rv.current=o>=n-150,rb.current=Date.now()+700,e.scrollTo({top:o,behavior:"smooth"})},[]),nG=(0,o.useCallback)(e=>{if(e instanceof KeyboardEvent){if(!ue.has(e.key)||e.target instanceof Element&&e.target.closest("input, textarea, [contenteditable='true']"))return}else if(e instanceof PointerEvent){let t=rj.current;if(t&&e.target instanceof Element&&!t.contains(e.target))return}ry.current=Date.now()+1200},[]),nX=(0,o.useCallback)(()=>{let e=rj.current;if(e){let{scrollTop:t,clientHeight:r,scrollHeight:n}=e,o=ro.current,i=rv.current,s=function(e,t,r,n,o,i=96){return!!c2(r,n,o)||!(r<t)&&(!!(!e&&r>t&&c2(r,n,o,i))||e)}(i,rt.current,t,r,n,o?96:8);rv.current=s,rt.current=t;let l=function(e,t,r,n=8){return!(r<=t)&&!c2(e,t,r,n)}(t,r,n);tk(e=>e===l?e:l),!i&&s&&o&&ns("auto")}if(Date.now()<ry.current){rm.current=!1;return}Date.now()<rb.current||(rm.current=!1)},[]);(0,o.useEffect)(()=>{if(ra.current=!0,t){var e;let r;t5.current=t.id;let n=(e=t.id,(r=cQ().get(e))?Date.now()-r.savedAt>6e5?(cQ().delete(e),null):(cQ().delete(e),cQ().set(e,r),r):null);n&&(x({sessionId:t.id,filePath:"",leafId:n.leafId,context:{messages:n.messages,entryIds:n.entryIds,oldestEntryId:n.oldestEntryId,hasMore:n.hasMore,thinkingLevel:n.thinkingLevel,model:n.model},stats:n.stats,...void 0!==n.totalActiveMs?{totalActiveMs:n.totalActiveMs}:{}}),S(n.leafId),z(n.messages),M(n.entryIds),$(n.oldestEntryId),L(n.hasMore),j(null),b(!1));let o=eR.current,i=eI.current;("auto"!==o||i.allow.length||i.ask.length||i.deny.length)&&(tE(t.id,{type:"set_approval_mode",mode:o}).catch(()=>{}),tE(t.id,{type:"set_approval_policy",policy:i}).catch(()=>{}));let s=e=>{!rp.current&&(rp.current=!0,e.isBashRunning&&(rc.current=!0,V(!0),nn(t.id)),rK(t.id),(e.isStreaming||e.isPromptRunning)&&(ri.current=!!e.isStreaming,rs.current=!!e.isPromptRunning,ro.current=!0,q(!0),tm(c5(e)),A({type:"resume"}),rZ(t.id),!e.isStreaming&&e.isPromptRunning&&nr(t.id)))};(async()=>{try{let e,r=new AbortController,n=setTimeout(()=>r.abort(),2e4);try{e=await fetch(`/api/sessions/${encodeURIComponent(t.id)}/state`,{signal:r.signal})}finally{clearTimeout(n)}if(!e.ok)throw Error(`HTTP ${e.status}`);let o=await e.json();if(!ra.current||t5.current!==t.id)return;o.running&&o.state&&s(o.state)}catch{}})(),rq(t.id,!n,!0,{force:!0}).then(e=>{e?.running&&e.state&&s(e.state),e?.state&&(void 0!==e.state.isCompacting&&tu(e.state.isCompacting),void 0!==e.state.contextUsage&&eY(e.state.contextUsage??null),void 0!==e.state.systemPrompt&&eX(e.state.systemPrompt??null),void 0!==e.state.extensionStatuses&&tF(e.state.extensionStatuses??[]),void 0!==e.state.extensionWidgets&&tH(e.state.extensionWidgets??[]),void 0!==e.state.queuedMessages&&tU(c8(e.state.queuedMessages)),void 0!==e.state.pendingRecovery&&tK(e.state.pendingRecovery??[])),e?.running||(async()=>{for(let e=0;e<5;e++){if(e>0&&await new Promise(e=>setTimeout(e,2e3)),!ra.current||t5.current!==t.id||ro.current)return;try{let e=await fetch(`/api/agent/${encodeURIComponent(t.id)}`);if(!e.ok)continue;let r=await e.json();if(!ra.current||t5.current!==t.id)return;if(r?.running&&r.state)return void s(r.state)}catch{}}})()})}return()=>{ra.current=!1,f.current?.abort(),v.current?.abort(),rL(),tX(),ru.current+=1,rG(),rX()}},[rL]),(0,o.useEffect)(()=>{c?.(eG)},[eG,c]),(0,o.useEffect)(()=>{d&&d(g?.tree??[],w,nh)},[g?.tree,w,nh,d]),(0,o.useEffect)(()=>(window.addEventListener("keydown",nG),window.addEventListener("pointerdown",nG,{passive:!0}),()=>{window.removeEventListener("keydown",nG),window.removeEventListener("pointerdown",nG)}),[nG]),(0,o.useEffect)(()=>{let e=rj.current;if(e)return e.addEventListener("wheel",nG,{passive:!0}),e.addEventListener("touchstart",nG,{passive:!0}),e.addEventListener("scroll",nX,{passive:!0}),()=>{e.removeEventListener("wheel",nG),e.removeEventListener("touchstart",nG),e.removeEventListener("scroll",nX)}},[C.length,y,nX,nG]),(0,o.useEffect)(()=>{C.length>0&&(rf.current?(rg.current=!0,rx.current&&(rf.current=!1,nY())):y||!rg.current?(y||(rg.current=!0),ns("instant")):!ro.current&&(rm.current||rv.current)&&(ns("smooth"),n0(e=>e+1)))},[C.length,y,_,ns,nY]);let nZ=(0,o.useRef)(null),[nQ,n0]=(0,o.useState)(0),n1=`${t?.id??null}#${nQ}`;(0,o.useEffect)(()=>{let e;if(y){nZ.current=null;return}if(0===C.length||nZ.current===n1)return;nZ.current=n1;let t=!1,r=!1,n=-1,o=0,i=Date.now(),s=()=>{if(t||r)return;let l=rj.current;if(l){if(Date.now()<ry.current){let{scrollTop:e,clientHeight:t,scrollHeight:n}=l;if(e+t<n-150){r=!0;return}}if(ns("instant"),l.scrollHeight===n){if((o+=1)>=4||Date.now()-i>=3e4)return}else if(n=l.scrollHeight,o=0,Date.now()-i>=3e4)return;e=window.setTimeout(s,o>0?500:250)}};return e=window.setTimeout(s,250),()=>{t=!0,void 0!==e&&window.clearTimeout(e)}},[y,ns,n1]),(0,o.useEffect)(()=>{let e=new AbortController;return nm(e.signal).catch(e=>{if(e instanceof DOMException&&"AbortError"===e.name)return}),()=>e.abort()},[nm,a]),(0,o.useEffect)(()=>{if(!es)return;let e=()=>{"visible"===document.visibilityState&&nm()};return document.addEventListener("visibilitychange",e),window.addEventListener("online",e),()=>{document.removeEventListener("visibilitychange",e),window.removeEventListener("online",e)}},[es,nm]),(0,o.useEffect)(()=>{if(!tp)return;let e=setTimeout(()=>th(null),3e3);return()=>clearTimeout(e)},[tp]),(0,o.useEffect)(()=>{if(!tg)return;let e=setTimeout(()=>tx(null),6e3);return()=>clearTimeout(e)},[tg]),(0,o.useEffect)(()=>{if(0===tz.visible.length)return;let e=tz.visible.find(e=>e.exiting);if(e){let t=setTimeout(()=>{tT({type:"remove",id:e.id})},180);return()=>clearTimeout(t)}if(!tz.visible[0])return;let t=setTimeout(()=>{tT({type:"mark_oldest_exiting"})},5e3);return()=>clearTimeout(t)},[tz.visible]),(0,o.useEffect)(()=>{t$(null)},[C.length,eJ?.tokens,eJ?.percent,eJ?.contextWindow]);let n2=g?.tree??[];return{isAutoThinkingSelection:p&&null===rB,data:g,loading:y,error:k,activeLeafId:w,messages:C,activeToolResults:T,entryIds:I,historyCursor:E,hasEarlierMessages:W,streamState:N,agentRunning:_,bashRunning:K,pendingBash:J,modelNames:G,modelList:Z,modelThinkingLevels:ee,modelThinkingLevelMaps:er,modelScopeWarnings:eo,modelsError:es,newSessionModel:ea,toolPreset:ep,thinkingLevel:rU??eB,retryInfo:eK,contextUsage:eJ,systemPrompt:eG,forkingEntryId:eZ,isCompacting:tc,compactError:tp,compactResult:tg,currentModel:rD,displayModel:rH,sessionStats:r_,tokenRate:F,planMode:eC,collaborationMode:ek,tokenMode:ej,toolApprovalMode:ew,permissionRules:eS,modeSettings:ef,approvalRequests:eW,handleCollaborationModeChange:nF,handleTokenModeChange:nD,handleToolApprovalModeChange:nH,handlePermissionRulesChange:nO,resolveApproval:nB,setActiveGoalText:nU,goalState:eA,handleGoalStart:n_,handleGoalPause:nq,handleGoalResume:nK,handleGoalStop:nV,handleGoalEdit:nJ,slashCommands:tj,slashCommandsLoading:tS,queuedMessages:tO,pendingRecovery:t_,recoveryIsImport:tV,notices:tz.visible,extensionDialog:tW,extensionCustomUi:tN,extensionStatuses:tP,extensionWidgets:tD,respondToExtensionUi:r0,sendExtensionCustomInput:r1,agentPhase:tf,isNew:p,promptAnchorActive:tv,branchTree:n2,autoCompactionEnabled:eD,sessionIdRef:t5,eventSourceRef:tZ,messagesEndRef:rk,scrollContainerRef:rj,lastUserMsgRef:rx,pendingScrollToUserRef:rf,initialScrollDoneRef:rg,scrollUserMsgToTop:nY,handleSend:na,executeBash:nd,handleAbort:nc,handleFork:nu,handleNavigate:np,handleModelChange:nx,handleCompact:nf,handleSteer:nb,handleFollowUp:nj,handlePromptWithStreamingBehavior:nk,handleAbortCompaction:nw,handleRecallQueue:nS,resolveRecovery:nC,exportQueueData:nz,importQueueData:nT,stageQueueImport:nR,moveQueuedMessage:nI,recallQueuedMessage:nM,requeueAt:nE,removeQueuedMessage:n$,handleBuiltinSlashCommand:nv,handleToolPresetChange:nL,handleThinkingLevelChange:nW,loadTools:rK,loadSlashCommands:rY,reloadModels:nm,setActiveLeafId:S,setData:x,setMessages:z,loadContext:r4,dispatch:A,setAgentRunning:q,setForkingEntryId:tt,handleLeafChange:nh,handleAgentEventRef:rh}}({session:e,newSessionCwd:t,onAgentEnd:N,onSessionCreated:s,onSessionForked:l,modelsRefreshKey:d,chatInputRef:c,onBranchDataChange:u,onSystemPromptChange:p,onSessionStatsPanelOpen:g}),[tz,tT]=(0,o.useState)(!1);(0,o.useEffect)(()=>{0===em.length&&tT(!1)},[em.length]);let tM=(0,o.useMemo)(()=>{let e=O.findLast(e=>"assistant"===e.role&&!!e.usage);if(!e?.usage)return null;let t=e.usage;return{model:e.model??"",input:t.input??0,output:t.output??0,cacheRead:t.cacheRead??0,costCNY:ad(e.model)?ac(e.model,t):0,costUSD:ad(e.model)?0:t.cost?.total??0}},[O]),[t$,tW]=(0,o.useState)(!1),[tL,tN]=(0,o.useState)(null),tA=(0,o.useRef)(!1);(0,o.useEffect)(()=>{if(!td){tA.current=!1;return}if(q){tA.current=!0;return}tA.current&&(tA.current=!1,tN(function(e){for(let t=e.length-1;t>=0;t--){let r=e[t];if("assistant"!==r.role)continue;let n=r.content;if("string"==typeof n&&n.trim())return n;if(Array.isArray(n)){let e=n.filter(e=>"text"===e.type).map(e=>e.text??"").join("\n").trim();if(e)return e}}for(let t=e.length-1;t>=0;t--){let r=e[t];if("toolResult"!==r.role)continue;let n=r.content,o="string"==typeof n?n:Array.isArray(n)?n.map(e=>e.text??"").join("\n"):"";if(!o)continue;let i=o.match(/\*\*Proposed Plan\*\*\s*\n+([\s\S]+)/i);if(i?.[1]?.trim())return i[1].trim()}return null}(O)??null),tW(!0))},[q,td,O]);let tP=(0,o.useCallback)(()=>{tW(!1);let e=tF.current;e&&th("plan"===tc?"normal":tc).catch(e=>{console.error("Failed to leave plan mode before executing:",e)}).then(()=>{eF(E("tasks.planReviewExecutePrompt",{plan:e}))})},[th,eF,E,tc]),tF=(0,o.useRef)(null);(0,o.useEffect)(()=>{tF.current=tL},[tL]);let tD=(0,o.useCallback)(e=>{tW(!1),eF(e)},[eF]),tH=(0,o.useCallback)(()=>{tW(!1),th("plan"===tc?"normal":tc)},[th,tc]);(0,o.useEffect)(()=>{eb&&L.current!==eb.id&&(L.current=eb.id,W.current&&$.current())},[eb]),(0,o.useEffect)(()=>(a=q||K?eH:null,()=>void(a=null)),[q,K,eH]);let[tO,tB]=(0,o.useState)(!1),[tU,t_]=(0,o.useState)(!1),[tq,tK]=(0,o.useState)(!1),tV=(0,o.useCallback)(()=>{let e=eW.current;if(!e)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight;tB(e.scrollTop>1),t_(t>1),tK(t>240)},[eW]),tJ=(0,o.useCallback)(()=>{window.requestAnimationFrame(()=>{let e=eW.current,t=e$.current;if(!e||!t)return;let r=Math.max(88,c?.current?.measureHeight?.()??0),n=()=>{if(!e||!t)return;let n=Math.max(0,t.getBoundingClientRect().top-e.getBoundingClientRect().top+e.scrollTop-96-e.clientHeight+r);e.scrollTo({top:n,behavior:"auto"})};n(),tV(),window.setTimeout(n,200)})},[e$,eW,tV,c]);(0,o.useEffect)(()=>{let e=eW.current;if(!e)return;let t=new ResizeObserver(tV);return t.observe(e),e.firstElementChild&&t.observe(e.firstElementChild),e.addEventListener("scroll",tV,{passive:!0}),tV(),()=>{e.removeEventListener("scroll",tV),t.disconnect()}},[O.length,eW,tV]);let tY=(0,o.useRef)(!1);(0,o.useEffect)(()=>{let t=eW.current;if(!t)return;let r=()=>{if(tY.current||!tS||!tw||t.scrollTop>8)return;let r=e?.id;if(!r)return;tY.current=!0;let n=t.scrollHeight-t.scrollTop;tC(r,eI,tw).finally(()=>{tY.current=!1,requestAnimationFrame(()=>{let e=t.scrollHeight-n;Math.abs(t.scrollTop-e)>1&&t.scrollTo({top:e,behavior:"auto"})})})};return t.addEventListener("scroll",r,{passive:!0}),()=>t.removeEventListener("scroll",r)},[eW,tw,tS,tC,e?.id,eI]);let tG=(0,o.useRef)(!1);(0,o.useEffect)(()=>{if(!tS||!tw)return;let t=eW.current,r=e?.id;if(!t||!r||tY.current||tG.current||D||t.scrollTop>8||t.scrollHeight>t.clientHeight+50)return;tG.current=!0;let n=t.scrollHeight-t.scrollTop;tC(r,eI,tw).finally(()=>{tG.current=!1,requestAnimationFrame(()=>{let e=t.scrollHeight-n;Math.abs(t.scrollTop-e)>1&&t.scrollTo({top:e,behavior:"auto"})})})},[eW,tw,tS,tC,e?.id,eI,D,O.length]);let tX=(0,o.useRef)(null),tZ=(0,o.useRef)([]),tQ=(0,o.useRef)(new Map),t0=(0,o.useRef)(null),[t1,t2]=(0,o.useState)(0);(0,o.useEffect)(()=>{let e=t0.current;if(!e)return void t2(e=>0===e?e:0);let t=()=>{let t=Math.round(e.getBoundingClientRect().height);t2(e=>e===t?e:t)};t();let r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[D,H]);let t6=(0,o.useMemo)(()=>({getOffsetForIndex:e=>tX.current?.getOffsetForIndex(e)?.[0]??0,sizeFor:e=>{let t=tX.current;if(!t)return 0;let r=t.measurementsCache[e];return r?.size??t.options.estimateSize?.(e)??0},totalHeight:()=>tX.current?.getTotalSize()??0,refToItemIndex:e=>tZ.current[e],itemCount:tZ.current.length}),[]),t4=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,ep.totalActiveMs??0].join("|"):null,t5=(0,o.useRef)(ep);t5.current=ep,(0,o.useEffect)(()=>{h?.(t5.current)},[t4,h]),(0,o.useEffect)(()=>()=>{h?.(null)},[h]);let t3=es?`${es.percent??"null"}|${es.contextWindow}|${es.tokens??"null"}`:null,t8=(0,o.useRef)(es);t8.current=es,(0,o.useEffect)(()=>{x?.(t8.current)},[t3,x]),(0,o.useEffect)(()=>()=>{x?.(null)},[x]);let{isDragOver:t7,handleDragEnter:t9,handleDragOver:re,handleDragLeave:rt,handleDrop:rr}=function(e){let[t,r]=(0,o.useState)(!1),n=(0,o.useRef)(0),i=(0,o.useCallback)(e=>{e.dataTransfer.files.length&&(e.preventDefault(),n.current+=1,r(!0))},[]),s=(0,o.useCallback)(e=>{e.dataTransfer.files.length&&e.preventDefault()},[]);return{isDragOver:t,handleDragEnter:i,handleDragOver:s,handleDragLeave:(0,o.useCallback)(()=>{n.current-=1,n.current<=0&&(n.current=0,r(!1))},[]),handleDrop:(0,o.useCallback)(t=>{t.preventDefault(),n.current=0,r(!1),e(Array.from(t.dataTransfer.files),t.dataTransfer)},[e])}}((0,o.useCallback)((e,t)=>{if(q){let t=e.filter(e=>e.type.startsWith("image/"));t.length&&c?.current?.addImages(t);return}c?.current?.addFiles(e,t)},[q,c])),rn=O.filter(e=>"user"===e.role||"assistant"===e.role||sp(e));(0,o.useMemo)(()=>{let e=new Map(B);for(let t of O)"toolResult"===t.role&&e.set(t.toolCallId,t);return e},[B,O]);let ro=(0,o.useMemo)(()=>{let e=new Set,t=[];for(let n=O.length-1;n>=0&&t.length<50;n-=1){var r;let o="user"!==(r=O[n]).role?null:("string"==typeof r.content?r.content:r.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n")).trim()||null;!o||e.has(o)||(e.add(o),t.push(o))}return t},[O]),ri=(S=rn.length,(C=(0,o.useRef)([])).current.length!==S&&(C.current=Array.from({length:S},(e,t)=>C.current[t]??null)),C),rs=eT&&0===O.length&&!_.isStreaming&&!q,rl=e?.cwd??t??void 0;!function(e,t=!0){(0,o.useEffect)(()=>{if(!t)return;let r=null,n=null,o=!1,i=null,s=()=>{null!==i&&(clearTimeout(i),i=null)},l=()=>{r&&(s(),r.classList.add("scrollbar-visible"))},a=()=>{r&&(s(),i=setTimeout(()=>{i=null,r?.classList.remove("scrollbar-visible")},500))},d=()=>{l(),a()},c=()=>{if(!o){if(!(r=e.current)){n=requestAnimationFrame(c);return}r.addEventListener("pointerenter",l),r.addEventListener("pointerleave",a),r.addEventListener("scroll",d)}};return c(),()=>{o=!0,null!==n&&cancelAnimationFrame(n),r?.removeEventListener("pointerenter",l),r?.removeEventListener("pointerleave",a),r?.removeEventListener("scroll",d),s(),r?.classList.remove("scrollbar-visible")}},[t,e])}(eW,!!e?.id||!rs);let ra=(0,o.useMemo)(()=>sB(O,U,rl,B),[O,U,rl,B]),rd=eu?X[`${eu.provider}:${eu.modelId}`]??null:null,rc=eu?Z[`${eu.provider}:${eu.modelId}`]??null:null,ru=(0,o.useCallback)(()=>{et()},[et]),rp=(0,o.useCallback)(e=>{th(e)},[th]),rh=e?.relation?.kind==="subagent"?(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",gap:8,padding:"14px 16px",borderTop:"1px solid var(--border)",color:"var(--text-dim)",fontSize:12},children:[(0,n.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"3",y:"11",width:"18",height:"10",rx:"2"}),(0,n.jsx)("circle",{cx:"12",cy:"5",r:"2"}),(0,n.jsx)("path",{d:"M12 7v4"})]}),E("subagent.readOnlyNotice")]}):(0,n.jsx)(cC,{ref:c,onSend:eF,onBash:eD,tasksBoardEnabled:b,onAbort:eH,onSteer:q?eq:void 0,onFollowUp:q?eK:void 0,onPromptWithStreamingBehavior:q?eV:void 0,isStreaming:q,model:eu,modelNames:J,modelList:G,modelScopeWarnings:Q,modelsError:ee,onRetryModels:ru,onModelChange:eU,compactResult:ec,toolPreset:er,onToolPresetChange:e||eT?ts:void 0,collaborationMode:tc,toolApprovalMode:tu,onCollaborationModeChange:rp,onToolApprovalModeChange:tg,goalState:tm,onGoalStart:tv,onGoalPause:ty,onGoalResume:tb,onGoalStop:tk,thinkingLevel:en,isAutoThinkingSelection:eo,onThinkingLevelChange:e||eT?tl:void 0,availableThinkingLevels:rd,thinkingLevelMap:rc,retryInfo:ei,queuedMessages:ef,inputHistory:ro,onRecallQueue:eY,onMoveQueue:tt,onRecallOne:tr,onRequeueAt:tn,onRemoveQueueItem:to,slashCommands:eg,slashCommandsLoading:ex,onLoadSlashCommands:ta,onBuiltinCommand:ti,onAudioUnlock:I,draftKey:e?.id??(t?`new:${t}`:void 0),cwd:e?.cwd??t,topCenterControl:tq?(0,n.jsx)("button",{type:"button",className:"chat-input-top-center",onClick:tJ,title:E("desktop.scrollToBottom"),"aria-label":E("desktop.scrollToBottom"),children:(0,n.jsx)(ar.Z,{size:16,weight:"bold","aria-hidden":"true"})}):void 0}),rg=ew.filter(e=>"belowEditor"!==e.placement),rx=ew.filter(e=>"belowEditor"===e.placement),rf=ea?E("desktop.compacting"):function(e,t){if(e?.kind==="running_tools"){let r=e.tools.map(e=>e.name);return 0===r.length?t("desktop.runningTool"):t("desktop.runningTools",{tools:r.length<=3?r.join(", "):`${r.slice(0,2).join(", ")} (+${r.length-2})`})}return e?.kind==="waiting_model"?t("desktop.waitingForModel"):e?.kind==="running_command"?t("desktop.runningCommand"):null}(ez,E);return D?(0,n.jsx)("div",{className:"flex h-full items-center justify-center text-text-muted",children:E("desktop.loadingSession")}):H?(0,n.jsx)("div",{className:"flex h-full items-center justify-center text-red-400",children:H}):(0,n.jsxs)("div",{className:"relative flex h-full min-w-0 flex-col overflow-hidden",onDragEnter:t9,onDragOver:re,onDragLeave:rt,onDrop:rr,children:[t7&&(0,n.jsxs)("div",{className:"pointer-events-none absolute inset-0 z-50 flex animate-[drop-zone-in_0.15s_ease_both] items-center justify-center bg-[rgba(37,99,235,0.06)] backdrop-blur-[1px]",children:[(0,n.jsx)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:[0,.8,1.6].map(e=>(0,n.jsx)("div",{className:"absolute h-[720px] w-[720px] rounded-full border-[1.5px] border-solid border-[rgba(37,99,235,0.5)] animate-[drop-ripple_2.4s_ease-out_infinite_backwards]",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-shadow-[0_6px_18px_rgba(37,99,235,0.18)]",children:[(0,n.jsx)("rect",{x:"28",y:"44",width:"84",height:"60",rx:"8",fill:"rgba(37,99,235,0.08)",stroke:"rgba(37,99,235,0.50)",strokeWidth:"1.8"}),(0,n.jsx)("path",{d:"M36 100 L54 72 L68 88 L80 74 L104 100Z",fill:"rgba(37,99,235,0.16)",stroke:"rgba(37,99,235,0.40)",strokeWidth:"1.4",strokeLinejoin:"round"}),(0,n.jsx)("circle",{cx:"96",cy:"58",r:"8",fill:"rgba(37,99,235,0.22)",stroke:"rgba(37,99,235,0.55)",strokeWidth:"1.6"}),(0,n.jsxs)("g",{stroke:"rgba(37,99,235,0.45)",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"})]})]})]}),eb&&(0,n.jsx)(ug,{request:eb,onRespond:eS}),ek&&(0,n.jsx)(ux,{request:ek,onInput:eC}),!eT&&em.length>0&&!tz&&(0,n.jsx)(cR,{items:em,sessionId:e?.id,onResolve:eG,onExport:eX,onStageImport:eZ,onDismiss:()=>tT(!0),mode:ev?"import":"recovery"}),tx.length>0&&(0,n.jsx)(aJ,{request:tx[0]??null,queuedCount:Math.max(0,tx.length-1),busy:!1,onResolve:(e,t,r)=>{let n=tx[0];n&&tf(n.id,e,t,r)}}),rs?(0,n.jsx)("div",{className:"flex flex-1 flex-col items-center justify-center overflow-y-auto",children:(0,n.jsxs)("div",{className:"w-full max-w-[820px]",children:[(0,n.jsx)("div",{style:{display:"flex",justifyContent:"center",marginBottom:28},children:(0,n.jsxs)("svg",{fill:"currentColor",fillRule:"evenodd",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",style:{width:64,height:64,color:"var(--accent)",opacity:.85},"aria-label":"Pi",children:[(0,n.jsx)("title",{children:"Pi"}),(0,n.jsx)("path",{clipRule:"evenodd",d:"M1 1h16.5v11H12v5.5H6.5V23H1V1zm5.5 5.5V12H12V6.5H6.5z"}),(0,n.jsx)("path",{d:"M17.5 12H23v11h-5.5V12z"})]})}),M&&(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",gap:10,marginBottom:18,marginTop:-14},children:[(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:["web ",(0,n.jsxs)("span",{style:{color:"var(--text)"},children:["v","0.18.12"]})]}),(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:["pi ",(0,n.jsxs)("span",{style:{color:"var(--text)"},children:["v","0.87.1"]})]})]}),(0,n.jsx)("div",{style:{padding:"0 34px 6px 7px",paddingRight:M?16:34},children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12},children:[(0,n.jsx)("div",{ref:m,style:{display:"flex",alignItems:"center",minWidth:0,flex:1,minHeight:48}}),(0,n.jsxs)("div",{style:{display:M?"none":"flex",flexDirection:"column",alignItems:"flex-end",gap:2,flexShrink:0},children:[(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:["web ",(0,n.jsxs)("span",{style:{color:"var(--text)"},children:["v","0.18.12"]})]}),(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:["pi ",(0,n.jsxs)("span",{style:{color:"var(--text)"},children:["v","0.87.1"]})]})]})]})}),(0,n.jsx)("div",{style:{padding:"0 16px",paddingRight:M?16:34},children:(0,n.jsx)(uh,{notices:ey,align:"right"})}),"goal"===tc&&(0,n.jsx)(aq,{goalState:tm,onPause:ty,onResume:tb,onStop:tk,onEdit:tj}),rh,(0,n.jsx)("div",{style:{padding:"0 16px 6px",paddingRight:M?16:34,marginTop:-15},children:(0,n.jsx)(cH,{onViewFullHistory:v,cwd:rl,systemPrompt:y,sessionStats:ep,contextUsage:es,hasSession:!!e,showChat:!0,showSoundLabel:!0,soundEnabled:z,onSoundToggle:T,onCompact:e?e_:void 0,onAbortCompaction:eJ,isCompacting:ea,compactError:ed,lastTurnUsage:tM})})]})}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"relative flex flex-1 overflow-hidden z-0",children:[(0,n.jsx)("div",{style:{position:"absolute",top:12,left:0,right:18*!M,zIndex:40,padding:"0 16px",pointerEvents:"none"},children:(0,n.jsx)("div",{style:{maxWidth:820,margin:"0 auto"},children:(0,n.jsx)(uh,{notices:ey,floating:!0,align:"right"})})}),(0,n.jsxs)("div",{className:"relative flex-1 min-h-0 min-w-0",children:[(0,n.jsx)("div",{ref:eW,className:"scrollbar-subtle h-full min-w-0 overflow-x-hidden overflow-y-auto pt-4 [scrollbar-gutter:stable]",children:(0,n.jsx)("div",{style:{minWidth:0,padding:"0 16px"},children:(0,n.jsxs)("div",{style:{width:"100%",minWidth:0,maxWidth:820,margin:"0 auto"},children:[(0,n.jsxs)("div",{ref:t0,children:[(0,n.jsx)(uu,{statuses:ej}),(0,n.jsx)(up,{widgets:rg})]}),(()=>{let{toolResultsMap:t,lastUserIdx:r,visibleRefIndexByMessage:o,items:i}=ra;for(let e=O.length-1;e>=0&&!sp(O[e]);e--);let s=tQ.current,l=(i,l={})=>{let a=l.messageOverride??O[i];if(!a||"toolResult"===a.role)return null;let d="user"===a.role||"assistant"===a.role||sp(a),c=o.get(i),u=l.keyPrefix??"message",p=!1;if("assistant"===a.role){p=!0;for(let e=i+1;e<O.length;e++){let t=O[e].role;if("user"===t)break;if("assistant"===t){p=!1;break}}p&&_.isStreaming&&i===O.length-1&&(p=!1)}void 0!==l.showTimestamp&&(p=l.showTimestamp);let h=(0,n.jsx)(af,{message:a,toolResults:t,modelNames:J,cwd:rl,onOpenFile:f,entryId:U[i],onFork:q||eT?void 0:eO,forking:el===U[i],onNavigate:q?void 0:eB,onEditContent:A,onQuoteReply:P,onOpenSession:k,onCreateTask:F,showTimestamp:p,prevTimestamp:i>0?O[i-1].timestamp:void 0,sessionId:e?.id??eE.current??void 0,writtenFiles:l.writtenFiles},`${u}-view-${i}`);return d&&!1!==l.attachRef&&void 0!==c?(0,n.jsx)("div",{ref:((e,t)=>{let n=s.get(t);if(!n){let e={isLastUser:!1};n={state:e,callback:r=>{ri.current[t]=r,e.isLastUser&&(eL.current=r,r&&eN.current&&(eN.current=!1,eA.current=!0,eP()))}},s.set(t,n)}return n.state.isLastUser=e===r,n.callback})(i,c),children:h},`${u}-${i}`):h},a=[],d=[],c=[],u=(e,t,r)=>{null!==e&&(a.push(e),d.push(t),c.push(r))},p=(e,t)=>U[e]||`${t}-${e}`,h=e=>`live-answer-u${e}`,g=e=>`answer-${p(e,"user")}`,x=e=>`subagent-${e}`,m=e=>sy(e.result?.details)?e.result.details.sessionId:"",v=e=>{let t=m(e);if(t&&w){let e=w.get(t);if(e)return"running"===e.status}let r=sy(e.result?.details)?e.result.details:null;return r?"running"===r.status||"starting"===r.status:!e.result},y=(e,t)=>`live-process-u${e}-seg${t}`,b=(e,t,r)=>`process-${p(e,"user")}-${r||`seg${t}`}`;for(let s of i){if("single"===s.kind){if(O[s.idx]?.role==="toolResult")continue;u(l(s.idx),o.get(s.idx),p(s.idx,"single"));continue}let{userIdx:i,endIdx:a,startsCompactionTurn:d,finalAssistantIdx:c}=s;if((q||_.isStreaming)&&a===O.length&&(i===r||d)){i>=0&&u(l(i),o.get(i),p(i,"user"));let r=_.streamingMessage?.role==="assistant",s=[],d=!r&&c>=0?c:a;for(let e=i+1;e<d;e++)sH(O[e])&&s.push(e);let g=sS(O,U,s,t),v=null;if(!r&&c>=0){let e=O[c],r=sm(e,{isStreaming:!0}),n=sw(e,{messageIndex:c,entryId:U[c],toolResults:t,isStreaming:!0});g=g.concat(n.processBlocks),r.answerBlocks.length>0&&(v=sO(e,r.answerBlocks,{omitUsage:!0}))}if(r){let e=_.streamingMessage,r=sm(e,{isStreaming:!0}),n=sw(e,{messageIndex:O.length,toolResults:t,isStreaming:!0});g=g.concat(n.processBlocks),r.answerBlocks.length>0&&(v=sO(e,r.answerBlocks,{omitUsage:!0}))}if(g.length>0){let t=s.map(e=>o.get(e)).find(e=>"number"==typeof e);sb(g).forEach((r,s)=>{let l=o.get(r.blocks[0].origin.sourceMessageIndex)??t;if("subagent"===r.kind&&r.subagent)return void u((0,n.jsx)(dN,{run:r.subagent,onOpenSubagent:j,sessionRun:w?.get(m(r.subagent))},x(r.subagent.toolCallId)),l,x(r.subagent.toolCallId));if("output"===r.kind){let e=r.blocks[0],t=o.get(e.origin.sourceMessageIndex);u((0,n.jsx)(af,{message:{role:"assistant",provider:"",model:"",content:r.blocks},isStreaming:e.origin.sourceMessageIndex===O.length,cwd:rl,onOpenFile:f,onQuoteReply:P,onOpenSession:k}),t,`output-${e.id}`);return}u((0,n.jsx)("div",{ref:void 0===l?void 0:e=>{ri.current[l]=e},children:(0,n.jsx)(d$,{blocks:r.blocks,isStreaming:q||_.isStreaming,cwd:rl,onOpenFile:f,sessionId:e?.id??eE.current??void 0,tokenRate:eh})},y(i,s)),l,y(i,s))})}v&&u((0,n.jsx)(af,{message:v,isStreaming:!0,modelNames:J,cwd:rl,onOpenFile:f,onQuoteReply:P,onOpenSession:k},`live-answer-${i}`),c>=0?o.get(c):void 0,h(i));continue}if(-1===c&&0===s.processBlocks.length){if(i>=0)for(let e=i;e<a;e++)u(l(e),o.get(e),p(e,"raw"));continue}i>=0&&u(l(i),o.get(i),p(i,"user"));let{finalAnswerMessage:S,writtenFiles:C,visibleProcessIndices:z}=s;if(s.processBlocks.length>0){let t=z.map(e=>o.get(e)).find(e=>"number"==typeof e)??(S?void 0:o.get(c));s.processSegments.forEach((r,s)=>{let l=o.get(r.blocks[0].origin.sourceMessageIndex)??t;if("subagent"===r.kind&&r.subagent)return void u((0,n.jsx)(dN,{run:r.subagent,onOpenSubagent:j,sessionRun:w?.get(m(r.subagent))},x(r.subagent.toolCallId)),l,x(r.subagent.toolCallId));if("output"===r.kind){let e=r.blocks[0];u((0,n.jsx)(af,{message:{role:"assistant",provider:"",model:"",content:r.blocks},cwd:rl,onOpenFile:f,onQuoteReply:P,onOpenSession:k}),o.get(e.origin.sourceMessageIndex),`output-${e.id}`);return}u((0,n.jsx)("div",{ref:void 0===l?void 0:e=>{ri.current[l]=e},children:(0,n.jsx)(d$,{blocks:r.blocks,isStreaming:"subagent"===r.kind&&void 0!==r.subagent&&v(r.subagent),defaultExpanded:!1,onAutoExpanded:void 0,cwd:rl,onOpenFile:f,sessionId:e?.id??eE.current??void 0})},`process-group-${i}-${s}`),l,b(i,s,r.blocks[0]?.id??""))})}if(S&&u(l(c,{messageOverride:S,writtenFiles:C}),o.get(c),g(i)),c>=0)for(let e=c+1;e<a;e++)u(l(e),o.get(e),p(e,"tail"))}let S=[],C=d.map((e,t)=>({startRef:e,itemIdx:t})).filter(e=>void 0!==e.startRef);return C.forEach((e,t)=>{let r=C[t+1]?.startRef??rn.length;for(let t=e.startRef;t<r;t++)S[t]=e.itemIdx}),tZ.current=S,(0,n.jsx)(cU,{scrollElementRef:eW,items:a,itemKeys:c,virtualizerRef:tX,headerHeight:t1})})(),rf&&(ea||q&&!_.streamingMessage)&&(0,n.jsx)("div",{className:"py-2 text-[13px] text-text-muted",children:(0,n.jsxs)("span",{className:"animate-[pulse_1.5s_infinite]",children:[rf,ez?.kind==="waiting_model"&&(0,n.jsx)("span",{style:{display:"inline-block",width:12,height:12,marginLeft:6,verticalAlign:"-2px",border:"1.5px solid var(--text-muted)",borderTopColor:"transparent",borderRadius:"50%",animation:"spin 0.6s linear infinite"}})]})}),V&&(0,n.jsx)(af,{message:{role:"bashExecution",command:V.command,output:"",excludeFromContext:V.excludeFromContext},sessionId:e?.id??eE.current??void 0}),K&&!V&&(0,n.jsx)("div",{className:"py-2 text-[13px] text-text-muted",children:(0,n.jsx)("span",{className:"animate-[pulse_1.5s_infinite]",children:E("desktop.runningShellCommand")})}),(0,n.jsx)("div",{style:{height:96}}),(0,n.jsx)("div",{ref:e$}),(0,n.jsx)(aD,{open:t$,planText:tL,busy:q,onExecute:tP,onFeedback:tD,onExit:tH,onClose:()=>tW(!1)})]})})}),tO&&(0,n.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 top-0 z-10 h-8 bg-gradient-to-b from-[var(--bg)] to-transparent"}),tU&&(0,n.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 bottom-0 z-10 h-8 bg-gradient-to-t from-[var(--bg)] to-transparent"})]}),M?null:(0,n.jsx)(cK,{messages:O,streamingMessage:_.streamingMessage,scrollContainer:eW,messageRefs:ri,virtualizer:t6})]}),(0,n.jsxs)("div",{className:"relative z-10",children:[(0,n.jsx)("div",{style:{padding:"0 16px",paddingRight:M?16:34},children:(0,n.jsx)("div",{style:{maxWidth:820,margin:"0 auto"},children:(0,n.jsx)(up,{widgets:rx})})}),rh,(0,n.jsx)("div",{className:`session-info-bar-wrap${M?" is-mobile":""}`,children:(0,n.jsx)("div",{className:"session-info-bar-inner",children:(0,n.jsx)(cH,{onViewFullHistory:v,cwd:rl,systemPrompt:y,sessionStats:ep,contextUsage:es,hasSession:!!e,showChat:!0,soundEnabled:z,onSoundToggle:T,onCompact:e?e_:void 0,onAbortCompaction:eJ,isCompacting:ea,compactError:ed,branchTree:eR,branchActiveLeafId:eI,onBranchLeafChange:eM,lastTurnUsage:tM})})})]})]})]})}function uu({statuses:e}){return 0===e.length?null:(0,n.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6,marginBottom:10},children:e.map(e=>(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,maxWidth:"100%",padding:"4px 8px",border:"1px solid color-mix(in srgb, var(--accent) 24%, var(--border))",borderRadius:6,background:"color-mix(in srgb, var(--accent) 7%, var(--bg))",color:"var(--text-muted)",fontSize:12},children:[(0,n.jsx)("span",{style:{color:"var(--accent)",fontFamily:"var(--font-mono)",fontSize:11},children:e.key}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.text})]},e.key))})}function up({widgets:e}){return 0===e.length?null:(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8,marginBottom:10},children:e.map(e=>(0,n.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-panel)",overflow:"hidden"},children:[(0,n.jsx)("div",{style:{padding:"5px 9px",borderBottom:"1px solid var(--border)",color:"var(--text-dim)",fontSize:11,fontFamily:"var(--font-mono)"},children:e.key}),(0,n.jsx)("pre",{style:{margin:0,padding:"8px 9px",color:"var(--text-muted)",fontSize:12,lineHeight:1.5,whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"var(--font-mono)"},children:e.lines.join("\n")})]},e.key))})}function uh({notices:e,floating:t=!1,align:r="left"}){return 0===e.length?null:(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",alignItems:"right"===r?"flex-end":"stretch",marginBottom:10*!t},children:e.map((r,o)=>{let i="error"===r.type?"var(--status-error)":"warning"===r.type?"var(--status-warning)":"success"===r.type?"#10b981":"var(--accent)";return(0,n.jsxs)("div",{className:"notice-shelf-item",style:{display:"flex",alignItems:"center",gap:10,minHeight:44,maxHeight:180,marginBottom:6*(o!==e.length-1),overflowY:"auto",overflowX:"hidden",borderRadius:14,border:"1px solid color-mix(in srgb, var(--border) 70%, transparent)",background:"var(--bg)",color:"var(--text-muted)",width:"fit-content",maxWidth:"min(100%, 620px)",boxShadow:t?"0 1px 2px rgba(15,23,42,0.05), 0 10px 28px -14px rgba(15,23,42,0.24)":"0 1px 2px rgba(15,23,42,0.04), 0 8px 24px -12px rgba(15,23,42,0.10)",fontSize:13,lineHeight:1.45,transformOrigin:"top center",animation:r.exiting?"notice-shelf-out 0.18s ease-in forwards":"notice-shelf-in 0.18s ease-out both",padding:"0 12px"},children:[(0,n.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:i,flexShrink:0}}),(0,n.jsx)("span",{style:{padding:"10px 0",minWidth:0,maxWidth:"100%",overflowWrap:"anywhere",whiteSpace:"pre-wrap"},children:r.message})]},r.id)})})}function ug({request:e,onRespond:t}){let{t:r}=(0,Y.s)(),[i,s]=(0,o.useState)("editor"===e.method?e.prefill??"":""),[l,a]=(0,o.useState)(!1),[d,c]=(0,o.useState)(()=>Date.now()),u=(0,o.useCallback)(e=>e?.focus(),[]);!function(e){if("select"===e.method&&e.options.length>0)return e.options[0];if("confirm"===e.method){let t=e.message.split("\n").find(e=>e.trim());t?.trim()}}(e);let p=void 0===e.expiresAt?null:Math.max(0,Math.ceil((e.expiresAt-d)/1e3));(0,o.useEffect)(()=>{if(void 0===e.expiresAt)return;let t=setInterval(()=>c(Date.now()),1e3);return()=>clearInterval(t)},[e.expiresAt]);let h=null!==p&&(0,n.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",whiteSpace:"nowrap",flexShrink:0},children:r("chat.extensionExpiresIn",{seconds:p})});(0,o.useEffect)(()=>{s("editor"===e.method?e.prefill??"":"")},[e]);let g=()=>{"confirm"===e.method?t(e,{confirmed:!0}):t(e,{value:i})};return(0,n.jsx)("div",{style:{position:"absolute",inset:0,zIndex:90,display:"flex",alignItems:"center",justifyContent:"center",padding:20,background:"rgba(0,0,0,0.18)"},children:(0,n.jsxs)("div",{role:"dialog","aria-modal":"true",style:{width:"min(560px, 100%)",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg)",boxShadow:"0 20px 60px rgba(0,0,0,0.28)",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{flexShrink:0,display:"flex",alignItems:"flex-start",gap:8,padding:"12px 14px",borderBottom:"1px solid var(--border)",maxHeight:"50%",overflowY:"auto"},children:[(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("div",{style:{color:"var(--text)",fontSize:14,fontWeight:650,lineHeight:1.45,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:e.title}),(0,n.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:8,marginTop:3,color:"var(--text-dim)",fontSize:11,fontFamily:"var(--font-mono)"},children:[(0,n.jsx)("span",{children:r("desktop.extensionRequest")}),h]})]}),(0,n.jsx)("button",{type:"button",onClick:()=>a(!0),"aria-expanded":!0,title:r("chat.extensionCollapse"),"aria-label":r("chat.extensionCollapse"),style:{display:"grid",placeItems:"center",width:28,height:28,borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",flexShrink:0},children:(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})})]}),(0,n.jsxs)("div",{style:{padding:14},children:["confirm"===e.method&&(0,n.jsx)(lV,{children:e.message}),"select"===e.method&&(0,n.jsx)("div",{onKeyDown:e=>{if(!["ArrowDown","ArrowRight","ArrowUp","ArrowLeft","Home","End"].includes(e.key))return;let t=Array.from(e.currentTarget.querySelectorAll("[data-extension-option]")),r=t.indexOf(e.target);if(r<0)return;e.preventDefault();let n="Home"===e.key?0:"End"===e.key?t.length-1:(r+("ArrowDown"===e.key||"ArrowRight"===e.key?1:-1)+t.length)%t.length;t[n]?.focus()},style:{display:"grid",gap:8},children:e.options.map((r,o)=>(0,n.jsx)("div",{role:"button",tabIndex:0,"data-extension-option":!0,"aria-label":r,ref:0===o?u:void 0,onClick:()=>t(e,{value:r}),onKeyDown:n=>{("Enter"===n.key||" "===n.key)&&(n.preventDefault(),t(e,{value:r}))},style:{width:"100%",padding:"9px 10px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",cursor:"pointer",textAlign:"left",fontSize:13,overflowWrap:"anywhere",scrollMargin:14},children:(0,n.jsx)("div",{inert:!0,children:(0,n.jsx)(lV,{children:r})})},r))}),"input"===e.method&&(0,n.jsx)("input",{autoFocus:!0,className:"extension-input",value:i,placeholder:e.placeholder,onChange:e=>s(e.target.value),onKeyDown:r=>{"Enter"===r.key&&g(),"Escape"===r.key&&t(e,{cancelled:!0})},style:{width:"100%",padding:"9px 10px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",outline:"none",fontSize:13}}),"editor"===e.method&&(0,n.jsx)("textarea",{autoFocus:!0,value:i,onChange:e=>s(e.target.value),onKeyDown:r=>{"Escape"===r.key&&t(e,{cancelled:!0}),(r.metaKey||r.ctrlKey)&&"Enter"===r.key&&g()},style:{width:"100%",minHeight:220,padding:10,borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",outline:"none",resize:"vertical",fontSize:13,lineHeight:1.55,fontFamily:"var(--font-mono)"}})]}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,padding:"10px 14px",borderTop:"1px solid var(--border)",background:"var(--bg-panel)"},children:[(0,n.jsx)("button",{onClick:()=>t(e,{cancelled:!0}),style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text-muted)",cursor:"pointer"},children:r("desktop.cancel")}),"confirm"===e.method?(0,n.jsx)("button",{onClick:g,style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-fg)",cursor:"pointer"},children:r("desktop.confirm")}):"select"!==e.method?(0,n.jsx)("button",{onClick:g,style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-fg)",cursor:"pointer"},children:r("desktop.submit")}):null]})]})})}function ux({request:e,onInput:t}){let{t:r}=(0,Y.s)(),i=(0,o.useRef)(null),s=function(e){let t=/^[┌├└╭╰][─┬┴┼]+[┐┤┘╮╯]$/,r=[];for(let n of e){let e=sa(n).trimEnd();if(t.test(e))continue;let o=n,i=su(o);("│"===i||"┃"===i)&&" "===su(o=sc(o,0))&&(o=sc(o,0));let s=function(e){let t=sd(e);for(let e=t.length-1;e>=0;e--)if(""!==t[e].char.trim())return e;return -1}(o),l=s>=0?sd(o)[s]?.char:void 0;("│"===l||"┃"===l)&&(o=sc(o,s)),r.push(function(e){let t=e;for(;;){let e=sd(t),r=e[e.length-1];if(!r||""!==r.char.trim())return t;t=t.slice(0,r.start)+t.slice(r.end)}}(o))}for(;r.length>0&&""===sa(r[0]).trim();)r.shift();for(;r.length>0&&""===sa(r[r.length-1]).trim();)r.pop();return r.length?r:e}(e.lines);return(0,o.useEffect)(()=>{i.current?.focus()},[e.id]),(0,n.jsx)("div",{style:{position:"absolute",inset:0,zIndex:95,display:"flex",alignItems:"center",justifyContent:"center",padding:20,background:"rgba(0,0,0,0.18)"},children:(0,n.jsxs)("div",{ref:i,tabIndex:0,role:"dialog","aria-modal":"true",onKeyDown:r=>{let n=function(e){if(e.ctrlKey&&!e.metaKey&&!e.altKey&&1===e.key.length){let t=e.key.toLowerCase();if(t>="a"&&t<="z")return String.fromCharCode(t.charCodeAt(0)-96)}switch(e.key){case"ArrowUp":return"\x1b[A";case"ArrowDown":return"\x1b[B";case"ArrowRight":return"\x1b[C";case"ArrowLeft":return"\x1b[D";case"Enter":return"\r";case"Escape":return"\x1b";case"Backspace":return"";case"Tab":return" ";case" ":return" ";default:if(!e.ctrlKey&&!e.metaKey&&!e.altKey&&1===e.key.length)return e.key;return null}}(r);n&&(r.preventDefault(),r.stopPropagation(),t(e,n))},style:{width:"min(920px, 100%)",maxHeight:"min(760px, calc(100vh - 40px))",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg)",boxShadow:"0 20px 60px rgba(0,0,0,0.28)",overflow:"hidden",outline:"none"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,padding:"10px 12px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("div",{style:{color:"var(--text)",fontSize:13,fontWeight:650},children:r("desktop.extensionPanel")}),(0,n.jsx)("button",{onClick:()=>t(e,"\x03"),style:{padding:"5px 9px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12},children:r("desktop.close")})]}),(0,n.jsx)("pre",{style:{margin:0,padding:14,maxHeight:"calc(min(760px, 100vh - 40px) - 48px)",overflow:"auto",background:"var(--bg-panel)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.45,whiteSpace:"pre"},children:(s.length?s:[""]).map((e,t,r)=>{var i;return(0,n.jsxs)(o.Fragment,{children:[(i=`line-${t}`,(function(e){let t,r=[],n={},o=0;for(si.lastIndex=0;null!==(t=si.exec(e));)t.index>o&&r.push({text:e.slice(o,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.backgroundColor;else if(n>=30&&n<=37)r.color=ss[n-30];else if(n>=90&&n<=97)r.color=sl[n-90];else if(n>=40&&n<=47)r.backgroundColor=ss[n-40];else if(n>=100&&n<=107)r.backgroundColor=sl[n-100];else if((38===n||48===n)&&2===t[e+1]){let[o,i,s]=[t[e+2],t[e+3],t[e+4]];[o,i,s].every(e=>"number"==typeof e&&Number.isFinite(e))&&(38===n?r.color=`rgb(${o}, ${i}, ${s})`:r.backgroundColor=`rgb(${o}, ${i}, ${s})`),e+=4}else if((38===n||48===n)&&5===t[e+1]){let o=function(e){if(e>=0&&e<8)return ss[e];if(e>=8&&e<16)return sl[e-8];if(e>=16&&e<=231){let t=e-16,r=Math.floor(t/36),n=Math.floor(t%36/6),o=e=>0===e?0:55+40*e;return`rgb(${o(r)}, ${o(n)}, ${o(t%6)})`}if(e>=232&&e<=255){let t=8+(e-232)*10;return`rgb(${t}, ${t}, ${t})`}}(t[e+2]);o&&(38===n?r.color=o:r.backgroundColor=o),e+=2}}return r}(n,t[1]?t[1].split(";").map(e=>Number(e||"0")):[0]),o=t.index+t[0].length;return o<e.length&&r.push({text:e.slice(o),style:n}),r})(e).map((e,t)=>Object.keys(e.style).length>0?(0,n.jsx)("span",{style:e.style,children:e.text},`${i}-${t}`):e.text)),t<r.length-1?"\n":null]},t)})})]})})}var uf=r(93549);let um={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",bmp:"image/bmp",ico:"image/x-icon",avif:"image/avif"},uv={mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",oga:"audio/ogg",opus:"audio/ogg",m4a:"audio/mp4",aac:"audio/aac",flac:"audio/flac",weba:"audio/webm"};function uy(e){return(e.replace(/\\/g,"/").split("/").pop()??"").toLowerCase().split(".").pop()??""}function ub(e){let t=e.nodeType===Node.ELEMENT_NODE?e:e.parentElement;return t?.closest(".file-source-line[data-line-number]")??null}function uk(e,t){if(!t||t.isCollapsed||0===t.rangeCount)return null;let r=t.getRangeAt(0);if(!e.contains(r.startContainer)||!e.contains(r.endContainer))return null;let n=Number(ub(r.startContainer)?.dataset.lineNumber),o=Number(ub(r.endContainer)?.dataset.lineNumber);return Number.isInteger(n)&&Number.isInteger(o)?n<=o?{startLine:n,endLine:o}:{startLine:o,endLine:n}:null}function uj(e,t,r,n={}){let o=oW(e),i=new URLSearchParams({type:t});for(let[e,t]of(r&&i.set("sessionId",r),Object.entries(n)))void 0!==t&&i.set(e,String(t));return`/api/files/${o}?${i.toString()}`}function uw({filePath:e,sourceSessionId:t}){let{t:r}=(0,Y.s)();return(0,n.jsx)("a",{href:uj(e,"download",t),download:oL(e),title:r("desktop.downloadFile"),style:{display:"flex",alignItems:"center",justifyContent:"center",height:20,padding:"0 5px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:4,color:"var(--text-muted)",cursor:"pointer",flexShrink:0,textDecoration:"none"},children:(0,n.jsx)(M.z,{size:11,"aria-hidden":"true"})})}let uS={fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.6,tabSize:2},uC={fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.6,padding:"12px 0 12px 16px",color:"var(--text-dim)",textAlign:"right",userSelect:"none"};async function uz(e,t){let r=await fetch(`/api/files/${oW(e)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:t})});if(!r.ok)throw Error((await r.json().catch(()=>({}))).error??`HTTP ${r.status}`);let n=await r.json();return"number"==typeof n.size?n.size:0}let uT={delete:"3px solid var(--git-status-deleted)",add:"3px solid var(--git-status-added)",edit:"3px solid var(--git-status-modified)"},uR="var(--git-status-deleted-bg)",uI="var(--git-status-added-bg)",uM="var(--git-status-added)";function uE(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}function u$({oldContent:e,newContent:t}){let{t:r}=(0,Y.s)(),o=function(e,t){let r=e.length,n=t.length,o=r+n,i=Array(2*o+1).fill(0),s=[];for(let l=0;l<=o;l++){s.push([...i]);for(let a=-l;a<=l;a+=2){let d,c=(d=a===-l||a!==l&&i[a-1+o]<i[a+1+o]?i[a+1+o]:i[a-1+o]+1)-a;for(;d<r&&c<n&&e[d]===t[c];)d++,c++;if(i[a+o]=d,d>=r&&c>=n){let i=[],a=r,d=n;for(let r=l;r>0;r--){let n,l=s[r-1],c=a-d;n=c===-r||c!==r&&l[c-1+o]<l[c+1+o]?c+1:c-1;let u=l[n+o],p=u-n;for(;a>u&&d>p;)a--,d--,i.unshift({type:"unchanged",text:e[a]});r>0&&(a>u?(a--,i.unshift({type:"removed",text:e[a]})):(d--,i.unshift({type:"added",text:t[d]})))}for(;a>0&&d>0;)a--,d--,i.unshift({type:"unchanged",text:e[a]});return i}}}return[...e.map(e=>({type:"removed",text:e})),...t.map(e=>({type:"added",text:e}))]}(e.split("\n"),t.split("\n"));if(!o.some(e=>"unchanged"!==e.type))return(0,n.jsx)("div",{style:{padding:"12px 16px",fontSize:12,color:"var(--text-dim)",fontFamily:"var(--font-mono)"},children:r("desktop.noChanges")});let i=new Set(o.flatMap((e,t)=>"unchanged"!==e.type?[t]:[])),s=new Set;for(let e of i)for(let t=Math.max(0,e-3);t<=Math.min(o.length-1,e+3);t++)s.add(t);let l=[],a=0;for(;a<o.length;)if(s.has(a)){let e=[];for(;a<o.length&&s.has(a);)e.push(o[a]),a++;l.push({hidden:!1,lines:e})}else{let e=0;for(;a<o.length&&!s.has(a);)e++,a++;l.push({hidden:!0,count:e})}let d=[],c=1;for(let e of o)"removed"===e.type?d.push(0):d.push(c++);let u=0;return(0,n.jsx)("div",{style:{fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.6,minWidth:"max-content"},children:l.map((e,t)=>{if(e.hidden){let o=(0,n.jsx)("div",{style:{padding:"2px 16px",color:"var(--text-dim)",background:"var(--bg-panel)",fontSize:11,borderTop:"1px solid var(--border)",borderBottom:"1px solid var(--border)"},children:r("desktop.unchangedLines",{count:e.count})},t);return u+=e.count,o}let o=[],i=[],s=[],l=()=>{if(i.length||s.length){let e=i.length&&s.length?"edit":i.length?"delete":"add";for(let t of i)o.push({key:t.key,kind:"removed",text:t.text,lineNo:null,block:e});for(let t of s)o.push({key:t.key,kind:"added",text:t.text,lineNo:t.lineNo,block:e});i=[],s=[]}};e.lines.forEach((e,r)=>{"unchanged"===e.type?(l(),o.push({key:`${t}:${r}`,kind:"context",text:e.text,lineNo:d[u+r],block:null})):"removed"===e.type?i.push({key:`${t}:${r}`,text:e.text}):s.push({key:`${t}:${r}`,text:e.text,lineNo:d[u+r]})}),l();let a=o.map(e=>{let t="removed"===e.kind?uR:"added"===e.kind?uI:"transparent",r=e.block?uT[e.block]:"3px solid transparent",o="added"===e.kind?uM:"var(--text-dim)";return(0,n.jsxs)("div",{style:{display:"flex",background:t,borderLeft:r},children:[(0,n.jsx)("span",{style:{minWidth:44,padding:"0 8px 0 16px",textAlign:"right",color:o,userSelect:"none",fontSize:11,lineHeight:1.6,flexShrink:0},children:e.lineNo??""}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,padding:"0 8px 0 0",whiteSpace:"pre",color:"var(--text)"},children:e.text||"\xa0"})]},e.key)});return u+=e.lines.length,(0,n.jsx)("div",{children:a},t)})})}function uW({patch:e}){let t=l5(e);if(!t)return null;let r=[],o=[],i=[],s=()=>{if(o.length||i.length){let e=o.length&&i.length?"edit":o.length?"delete":"add";for(let t of o)r.push({key:t.key,kind:"removed",text:t.text,lineNo:null,block:e});for(let t of i)r.push({key:t.key,kind:"added",text:t.text,lineNo:t.lineNo,block:e});o=[],i=[]}};return t.forEach((e,t)=>{e.rows.forEach((e,n)=>{if("hunk"===e.type){s(),r.push({key:`${t}:${n}:h`,kind:"hunk",text:e.text,lineNo:null,block:null});return}let{left:l,right:a}=e;if("context"===l.type&&"context"===a.type){s(),r.push({key:`${t}:${n}:c`,kind:"context",text:l.text,lineNo:a.lineNo,block:null});return}"removed"===l.type&&o.push({key:`${t}:${n}:l`,text:l.text}),"added"===a.type&&i.push({key:`${t}:${n}:r`,text:a.text,lineNo:a.lineNo})})}),s(),(0,n.jsx)("div",{style:{fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.55,minWidth:"max-content"},children:r.map(e=>{if("hunk"===e.kind)return(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{height:"1.55em"}}),(0,n.jsx)("div",{style:{padding:"3px 12px",color:"var(--accent-blue)",background:"var(--bg-secondary)"},children:e.text}),(0,n.jsx)("div",{style:{height:"1.55em"}})]},e.key);let t="removed"===e.kind?uR:"added"===e.kind?uI:"transparent",r=e.block?uT[e.block]:"3px solid transparent",o="added"===e.kind?uM:"var(--text-dim)";return(0,n.jsxs)("div",{style:{display:"flex",background:t,borderLeft:r},children:[(0,n.jsx)("span",{style:{width:44,flexShrink:0,padding:"0 8px 0 16px",textAlign:"right",color:o,userSelect:"none",fontSize:11},children:e.lineNo??""}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,padding:"0 8px 0 0",whiteSpace:"pre",color:"var(--text)"},children:e.text||"\xa0"})]},e.key)})})}function uL({filePath:e,cwd:t,sourceSessionId:r}){let{t:i}=(0,Y.s)(),[s,l]=(0,o.useState)(0),[a,d]=(0,o.useState)(null),[c,u]=(0,o.useState)(null),[p,h]=(0,o.useState)(null),g=(0,o.useRef)(null),x=oL(e).toLowerCase().split(".").pop()??"";(0,o.useEffect)(()=>{l(0),d(null),u(null),h(null),g.current&&(g.current.close(),g.current=null);let t=new EventSource(uj(e,"watch",r));return g.current=t,t.addEventListener("change",e=>{try{let t=JSON.parse(e.data);"number"==typeof t.size&&d(t.size)}catch{}l(e=>e+1)}),()=>{t.close(),g.current=null}},[e,r]);let f=uj(e,"read",r,s?{v:s}:void 0),m=null!=a?uE(a):null;return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{className:"file-viewer-status-bar",style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0,flexWrap:"wrap",rowGap:4},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto"},title:e,children:oN(e,t)}),(0,n.jsx)("span",{style:{marginLeft:"auto"},children:x||i("desktop.image")}),c&&(0,n.jsxs)("span",{children:[c.w," \xd7 ",c.h]}),m&&(0,n.jsx)("span",{children:m}),(0,n.jsx)(uw,{filePath:e,sourceSessionId:r})]}),(0,n.jsx)("div",{style:{flex:1,overflow:"auto",background:"var(--bg-panel)",display:"flex",alignItems:"center",justifyContent:"center",padding:16,backgroundImage:"linear-gradient(45deg, var(--bg) 25%, transparent 25%), linear-gradient(-45deg, var(--bg) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--bg) 75%), linear-gradient(-45deg, transparent 75%, var(--bg) 75%)",backgroundSize:"16px 16px",backgroundPosition:"0 0, 0 8px, 8px -8px, -8px 0px"},children:p?(0,n.jsx)("div",{style:{color:"var(--status-error)",fontSize:13},children:p}):(0,n.jsx)("img",{src:f,alt:e,onLoad:e=>{let t=e.currentTarget;u({w:t.naturalWidth,h:t.naturalHeight})},onError:()=>h(i("desktop.failedToLoadImage")),style:{maxWidth:"100%",maxHeight:"100%",objectFit:"contain",boxShadow:"0 2px 8px rgba(0,0,0,0.15)"}})})]})}function uN({filePath:e,cwd:t,sourceSessionId:r}){let{t:i}=(0,Y.s)(),[s,l]=(0,o.useState)(0),[a,d]=(0,o.useState)(null),[c,u]=(0,o.useState)(null),[p,h]=(0,o.useState)(null),g=(0,o.useRef)(null),x=oL(e).toLowerCase().split(".").pop()??"";(0,o.useEffect)(()=>{l(0),d(null),u(null),h(null),g.current&&(g.current.close(),g.current=null);let t=new EventSource(uj(e,"watch",r));return g.current=t,t.addEventListener("change",e=>{try{let t=JSON.parse(e.data);"number"==typeof t.size&&d(t.size)}catch{}u(null),h(null),l(e=>e+1)}),()=>{t.close(),g.current=null}},[e,r]);let f=uj(e,"read",r,s?{v:s}:void 0);return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{className:"file-viewer-status-bar",style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0,flexWrap:"wrap",rowGap:4},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto"},title:e,children:oN(e,t)}),(0,n.jsx)("span",{style:{marginLeft:"auto"},children:x||i("desktop.audio")}),null!=c&&(0,n.jsx)("span",{children:function(e){if(!Number.isFinite(e))return"";let t=Math.round(e),r=Math.floor(t/60);return`${r}:${String(t%60).padStart(2,"0")}`}(c)}),null!=a&&(0,n.jsx)("span",{children:uE(a)}),(0,n.jsx)(uw,{filePath:e,sourceSessionId:r})]}),(0,n.jsx)("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",padding:24,background:"var(--bg-panel)"},children:(0,n.jsxs)("div",{style:{width:"min(680px, 100%)"},children:[p&&(0,n.jsx)("div",{style:{color:"var(--status-error)",fontSize:13,marginBottom:12,textAlign:"center"},children:p}),(0,n.jsx)("audio",{controls:!0,preload:"metadata",src:f,onLoadedMetadata:e=>u(e.currentTarget.duration),onError:()=>h(i("desktop.failedToLoadAudio")),style:{width:"100%"}},f)]})})]})}function uA({filePath:e,cwd:t,sourceSessionId:r,initialPage:i}){let{t:s}=(0,Y.s)(),[l,a]=(0,o.useState)(0),[d,c]=(0,o.useState)(null),[u,p]=(0,o.useState)(null),h=(0,o.useRef)(null),g=uy(e),x="pdf"===g,f=x&&i&&i>0?`#page=${i}`:"",m=x?`${uj(e,"read",r,l?{v:l}:void 0)}${f}`:uj(e,"preview",r,l?{v:l}:void 0);return(0,o.useEffect)(()=>{a(0),c(null),p(null),h.current&&(h.current.close(),h.current=null),fetch(uj(e,"meta",r)).then(e=>e.json()).then(e=>{e.error&&p(e.error),"number"==typeof e.size&&(c(e.size),!x&&e.size>0xa00000&&p(s("desktop.docxTooLargeForPreview")))}).catch(e=>p(String(e)));let t=new EventSource(uj(e,"watch",r));return h.current=t,t.addEventListener("change",e=>{try{let t=JSON.parse(e.data);if("number"==typeof t.size&&(c(t.size),!x&&t.size>0xa00000))return void p(s("desktop.docxTooLargeForPreview"))}catch{}p(null),a(e=>e+1)}),()=>{t.close(),h.current=null}},[e,x,r,s]),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{className:"file-viewer-status-bar",style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0,flexWrap:"wrap",rowGap:4},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e,children:oN(e,t)}),(0,n.jsx)("span",{style:{marginLeft:"auto"},children:"docx"===g?s("desktop.docxPreview"):"pdf"}),null!=d&&(0,n.jsx)("span",{children:uE(d)}),(0,n.jsx)(uw,{filePath:e,sourceSessionId:r})]}),(0,n.jsx)("div",{style:{flex:1,minHeight:0,background:"var(--bg-panel)"},children:u?(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",padding:24,color:"var(--status-error)",fontSize:13,textAlign:"center"},children:u}):(0,n.jsx)("iframe",{src:m,sandbox:x?void 0:"allow-same-origin",title:s("desktop.previewFile",{file:oL(e)}),style:{width:"100%",height:"100%",border:"none",background:x?"var(--bg)":"#eef1f5"}},m)})]})}function uP({filePath:e,cwd:t,sourceSessionId:r,onOpenFile:o,onAtMention:i,onMentionLines:s,initialDisplayMode:l,initialPage:a,onFileSaved:d}){let c;return null!==(um[uy(e)]??null)?(0,n.jsx)(uL,{filePath:e,cwd:t,sourceSessionId:r}):null!==(uv[uy(e)]??null)?(0,n.jsx)(uN,{filePath:e,cwd:t,sourceSessionId:r}):null!==("pdf"===(c=uy(e))||"docx"===c?c:null)?(0,n.jsx)(uA,{filePath:e,cwd:t,sourceSessionId:r,initialPage:a}):(0,n.jsx)(uF,{filePath:e,cwd:t,sourceSessionId:r,onOpenFile:o,onAtMention:i,onMentionLines:s,initialDisplayMode:l,onFileSaved:d})}function uF({filePath:e,cwd:t,sourceSessionId:r,onOpenFile:i,onAtMention:s,onMentionLines:l,initialDisplayMode:a,onFileSaved:d}){let c,u,{t:p}=(0,Y.s)(),[h,x]=(0,o.useState)(null),[f,v]=(0,o.useState)(null),[y,b]=(0,o.useState)(null),[k,j]=(0,o.useState)(!0),[w,S]=(0,o.useState)(!1),[C,z]=(0,o.useState)(null),[T,R]=(0,o.useState)(!1),[I,M]=(0,o.useState)("source"),[E,$]=(0,o.useState)(!1),[W,L]=(0,o.useState)(0),[N,A]=(0,o.useState)(null),P=(0,o.useRef)(null),F=(0,o.useRef)(null),[D,H]=(0,o.useState)(!1),[O,B]=(0,o.useState)(""),[U,_]=(0,o.useState)(""),[q,K]=(0,o.useState)(!1),[V,J]=(0,o.useState)(null),[G,X]=(0,o.useState)(!1),Z=(0,o.useRef)(null),Q=(0,o.useRef)(null),ee=(0,o.useRef)(0),et=(0,o.useRef)(!1);(0,o.useEffect)(()=>{et.current=D},[D]);let er=D&&O!==U,en=!!(h?.content&&h.content.includes("\0")),eo=(0,o.useCallback)(async e=>{if(!t)return void b(null);try{let r=new URLSearchParams({cwd:t,path:e}),n=await fetch(`/api/git/diff?${r.toString()}`),o=await n.json();b(n.ok&&o.supported&&"string"==typeof o.patch?o:null)}catch{b(null)}},[t]),ei=(0,o.useCallback)((e,t=!1,n=0)=>fetch(uj(e,"read",r,n?{offset:n}:void 0)).then(e=>e.json()).then(e=>e.error?(z(e.error),null):(t?(x(t=>(t&&v(t.content),e)),L(e=>e+1)):n?x(t=>t?{...e,content:t.content+e.content}:e):x(e),e)).catch(e=>(z(String(e)),null)),[r]);(0,o.useEffect)(()=>{j(!0),z(null),x(null),v(null),b(null),R(!1),M("source"),$(!1),L(0),H(!1),B(""),_(""),J(null),X(!1),K(!1),P.current&&(P.current.close(),P.current=null),ei(e).then(e=>{e?.truncated||e?.language!=="markdown"&&e?.language!=="html"||"diff"===a||R(!0)}).finally(()=>j(!1)),eo(e);let t=new EventSource(uj(e,"watch",r));return P.current=t,t.addEventListener("change",()=>{et.current?X(!0):(ei(e,!0),eo(e))}),()=>{t.close(),P.current=null}},[e,ei,eo,a,r]);let es=(0,o.useCallback)(()=>{h&&!en&&(B(h.content),_(h.content),J(null),X(!1),H(!0))},[h,en]),el=(0,o.useCallback)(()=>{H(!1),B(""),_(""),J(null),X(!1)},[]),ea=(0,o.useCallback)(()=>{(!er||window.confirm(p("files.unsavedChanges")))&&el()},[er,el,p]),ed=(0,o.useCallback)(async()=>{if(!h||q)return;let t=++ee.current;K(!0),J(null);try{let r=await uz(e,O);if(t!==ee.current)return;x(e=>e?{...e,content:O,size:r}:e),_(O),K(!1),el(),eo(e),d?.()}catch(e){if(t!==ee.current)return;J(e instanceof Error?e.message:String(e)),K(!1)}},[h,q,O,e,el,eo,d]);(0,o.useEffect)(()=>{if(!D)return;let e=e=>{if((e.metaKey||e.ctrlKey)&&"s"===e.key.toLowerCase()){e.preventDefault(),ed();return}"Escape"===e.key&&(e.preventDefault(),ea())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[D,ed,ea]),(0,o.useEffect)(()=>{if(!er)return;let e=e=>{e.preventDefault(),e.returnValue=""};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[er]);let ec=(0,o.useCallback)(()=>{let e=Z.current,t=Q.current;e&&t&&(t.scrollTop=e.scrollTop)},[]),eu=(0,o.useCallback)(e=>{if("Tab"!==e.key||e.metaKey||e.ctrlKey||e.altKey)return;e.preventDefault();let t=e.currentTarget,{selectionStart:r,selectionEnd:n}=t;B(t.value.slice(0,r)+" "+t.value.slice(n)),requestAnimationFrame(()=>{let e=Z.current;if(!e)return;let t=r+2;e.selectionStart=t,e.selectionEnd=t})},[]),ep=(0,o.useMemo)(()=>lz(h?.content??""),[h?.content]),eh=y?.supported===!0&&"string"==typeof y.patch;(0,o.useEffect)(()=>{"diff"===a&&eh&&M("diff")},[eh,a]);let eg=eh&&y?.status==="deleted",ex=(0,o.useCallback)(r=>{l&&r&&l(oN(e,t),r.startLine,r.endLine)},[t,e,l]);if((0,o.useEffect)(()=>{let e=()=>{let e=F.current,t="source"===I&&!T;A(l&&t&&e?uk(e,window.getSelection()):null)};if(e(),l&&"source"===I&&!T)return document.addEventListener("selectionchange",e),()=>document.removeEventListener("selectionchange",e)},[h?.content,l,T,I]),(0,o.useEffect)(()=>{if(!l||"source"!==I||T)return;let e=e=>{if(e.repeat||"i"!==e.key.toLowerCase()||!e.metaKey&&!e.ctrlKey||e.altKey||e.shiftKey)return;let t=e.target;if(t instanceof Element&&t.closest("input, textarea, [contenteditable='true']"))return;let r=F.current,n=r?uk(r,window.getSelection()):null;n&&(e.preventDefault(),ex(n))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[ex,l,T,I]),k)return(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:13},children:p("desktop.loadingFile")});if(eg&&!h)return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsx)("div",{style:{padding:"5px 16px",borderBottom:"1px solid var(--border)",color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:11},title:e,children:oN(e,t)}),(0,n.jsx)("div",{style:{flex:1,overflow:"auto",background:"var(--bg)"},children:(0,n.jsx)(uW,{patch:y.patch})})]});if(C)return(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--status-error)",fontSize:13},children:C});if(!h)return null;let ef="html"===h.language,em="markdown"===h.language,ev=(u=(c=o$(e).replace(/\/+$/,"")).lastIndexOf("/"))<0?"":0===u?"/":2===u&&/^[a-zA-Z]:\//.test(c)?c.slice(0,3):c.slice(0,u),ey=h.content.split("\n"),eb=null!==f&&f!==h.content||eh,ek=!eg&&!en&&oB();return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{className:"file-viewer-status-bar",style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0,flexWrap:"wrap",rowGap:4},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto"},title:e,children:oN(e,t)}),(0,n.jsx)("span",{style:{marginLeft:"auto"},children:h.language}),"source"===I&&!D&&(0,n.jsx)("span",{children:p("desktop.lines",{count:ey.length})}),(0,n.jsx)("span",{children:uE(h.size)}),eb&&!D&&(0,n.jsxs)("div",{style:{display:"flex",borderRadius:5,overflow:"hidden",border:"1px solid var(--border)"},children:[(0,n.jsx)("button",{onClick:()=>M("source"),style:{padding:"2px 8px",fontSize:11,border:"none",cursor:"pointer",background:"source"===I?"var(--bg-selected)":"var(--bg-hover)",color:"source"===I?"var(--text)":"var(--text-muted)",fontWeight:"source"===I?600:400},children:p("desktop.source")}),(0,n.jsxs)("button",{onClick:()=>M("diff"),style:{padding:"2px 8px",fontSize:11,border:"none",borderLeft:"1px solid var(--border)",cursor:"pointer",background:"diff"===I?"var(--bg-selected)":"var(--bg-hover)",color:"diff"===I?"var(--text)":"var(--text-muted)",fontWeight:"diff"===I?600:400},children:[p("desktop.diff")," ",W>0&&(0,n.jsxs)("span",{style:{color:"var(--git-status-added)",marginLeft:2},children:["+",W]})]})]}),"source"===I&&!T&&!D&&(0,n.jsx)("button",{onClick:()=>$(e=>!e),title:E?p("desktop.disableWordWrap"):p("desktop.enableWordWrap"),style:{padding:"2px 8px",fontSize:11,cursor:"pointer",background:E?"var(--bg-selected)":"var(--bg-hover)",color:E?"var(--text)":"var(--text-muted)",border:"1px solid var(--border)",borderRadius:5,fontWeight:E?600:400},children:p("desktop.wrap")}),ef&&"source"===I&&!D&&(0,n.jsxs)("div",{style:{display:"flex",borderRadius:5,overflow:"hidden",border:"1px solid var(--border)"},children:[(0,n.jsx)("button",{onClick:()=>R(!1),style:{padding:"2px 8px",fontSize:11,border:"none",cursor:"pointer",background:T?"var(--bg-hover)":"var(--bg-selected)",color:T?"var(--text-muted)":"var(--text)",fontWeight:T?400:600},children:p("desktop.code")}),(0,n.jsx)("button",{onClick:()=>R(!0),style:{padding:"2px 8px",fontSize:11,border:"none",borderLeft:"1px solid var(--border)",cursor:"pointer",background:T?"var(--bg-selected)":"var(--bg-hover)",color:T?"var(--text)":"var(--text-muted)",fontWeight:T?600:400},children:p("desktop.preview")})]}),em&&"source"===I&&!D&&(0,n.jsxs)("div",{style:{display:"flex",borderRadius:5,overflow:"hidden",border:"1px solid var(--border)"},children:[(0,n.jsx)("button",{onClick:()=>R(!0),style:{padding:"2px 8px",fontSize:11,border:"none",cursor:"pointer",background:T?"var(--bg-selected)":"var(--bg-hover)",color:T?"var(--text)":"var(--text-muted)",fontWeight:T?600:400},children:p("desktop.preview")}),(0,n.jsx)("button",{onClick:()=>R(!1),style:{padding:"2px 8px",fontSize:11,border:"none",borderLeft:"1px solid var(--border)",cursor:"pointer",background:T?"var(--bg-hover)":"var(--bg-selected)",color:T?"var(--text-muted)":"var(--text)",fontWeight:T?400:600},children:p("desktop.raw")})]}),D?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button",onClick:()=>void ed(),disabled:q,title:p("files.saveHint"),"aria-label":p("files.save"),style:{height:20,minWidth:20,padding:"0 5px",display:"inline-flex",alignItems:"center",justifyContent:"center",border:"1px solid var(--border)",borderRadius:4,background:"var(--bg-selected)",color:"var(--text)",cursor:"pointer"},children:(0,n.jsx)(uf.g,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("button",{type:"button",onClick:ea,disabled:q,title:p("files.cancelEdit"),"aria-label":p("files.cancelEdit"),style:{height:20,minWidth:20,padding:"0 5px",display:"inline-flex",alignItems:"center",justifyContent:"center",border:"1px solid var(--border)",borderRadius:4,background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer"},children:(0,n.jsx)(g.X,{size:13,"aria-hidden":"true"})})]}):"source"===I&&ek?(0,n.jsx)("button",{type:"button",onClick:es,title:p("files.edit"),"aria-label":p("files.edit"),style:{height:20,minWidth:20,padding:"0 5px",display:"inline-flex",alignItems:"center",justifyContent:"center",border:"1px solid var(--border)",borderRadius:4,background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer"},children:(0,n.jsx)(m.I,{size:13,"aria-hidden":"true"})}):null,(s||l)&&!D&&(0,n.jsx)("button",{type:"button",onPointerDown:e=>e.preventDefault(),onClick:()=>{N&&l?ex(N):s?.(oN(e,t),!1)},title:N?p("desktop.mentionSelectedLines",{start:N.startLine,end:N.endLine}):p("desktop.mentionFile"),"aria-label":N?p("desktop.mentionSelectedLines",{start:N.startLine,end:N.endLine}):p("desktop.mentionFile"),style:{height:20,minWidth:20,padding:"0 5px",border:"1px solid var(--border)",borderRadius:4,background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer"},children:"@"}),!D&&(0,n.jsx)(uw,{filePath:e,sourceSessionId:r})]}),h?.truncated&&"source"===I&&!D&&(0,n.jsxs)("div",{className:"file-viewer-load-more",style:{display:"flex",alignItems:"center",justifyContent:"center",gap:10,padding:"5px 8px",borderBottom:"1px solid var(--border)",color:"var(--text-dim)",fontSize:11},children:[(0,n.jsxs)("span",{children:[uE(h.nextOffset)," / ",uE(h.size)]}),(0,n.jsx)("button",{type:"button",disabled:w,onClick:()=>{S(!0),ei(e,!1,h.nextOffset).finally(()=>S(!1))},style:{padding:"2px 10px",fontSize:11,cursor:"pointer",border:"1px solid var(--border)",borderRadius:5,background:"var(--bg-hover)",color:"var(--text)",opacity:w?.6:1},children:w?p("i18n.loading"):p("i18n.loadMore")})]}),(0,n.jsx)("div",{ref:F,style:{flex:1,overflow:"auto",background:"var(--bg)"},children:D?(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[G&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"5px 12px",borderBottom:"1px solid var(--border)",background:"rgba(214,168,75,0.14)",color:"#d6a84b",fontSize:11,flexShrink:0},children:[(0,n.jsx)("span",{style:{flex:1},children:p("files.externalModified")}),(0,n.jsx)("button",{type:"button",onClick:()=>{(!er||window.confirm(p("files.reloadOverwriteConfirm")))&&ei(e).then(e=>{e&&(B(e.content),_(e.content),X(!1))})},disabled:q,style:{padding:"2px 8px",fontSize:11,border:"1px solid #d6a84b",borderRadius:4,background:"transparent",color:"#d6a84b",cursor:"pointer"},children:p("files.reload")})]}),V&&(0,n.jsx)("div",{style:{padding:"5px 12px",borderBottom:"1px solid var(--border)",background:"rgba(248,113,113,0.14)",color:"var(--status-error)",fontSize:11,flexShrink:0},children:p("files.saveFailed",{error:V})}),(0,n.jsxs)("div",{style:{flex:1,display:"flex",overflow:"hidden"},children:[(0,n.jsx)("div",{ref:Q,"aria-hidden":"true",style:{...uC,height:"100%",overflow:"hidden",whiteSpace:"pre",pointerEvents:"none"},children:O.split("\n").map((e,t)=>`${t+1}
197
+ `).join("")}),(0,n.jsx)("textarea",{ref:Z,className:"file-editor-textarea",value:O,onChange:e=>B(e.target.value),onScroll:ec,onKeyDown:eu,spellCheck:!1,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",wrap:"off",style:{flex:1,height:"100%",resize:"none",border:"none",outline:"none",background:"var(--bg)",color:"var(--text)",...uS,whiteSpace:"pre",overflow:"auto",padding:0,tabSize:2}})]})]}):"diff"===I&&eb?eh?(0,n.jsx)(uW,{patch:y.patch}):(0,n.jsx)(u$,{oldContent:f,newContent:h.content}):ef&&T?(0,n.jsx)("iframe",{srcDoc:h.content,sandbox:"allow-scripts",style:{width:"100%",height:"100%",border:"none",background:"var(--bg)"},title:p("desktop.htmlPreview")}):em&&T?(0,n.jsx)("div",{className:"markdown-body markdown-file-preview",style:{padding:"24px 32px"},children:(0,n.jsx)(s_.oz,{remarkPlugins:lI,rehypePlugins:lM,components:{h1:({children:e})=>(0,n.jsx)("h1",{id:lS(e),children:e}),h2:({children:e})=>(0,n.jsx)("h2",{id:lS(e),children:e}),h3:({children:e})=>(0,n.jsx)("h3",{id:lS(e),children:e}),code({className:e,children:t,...r}){let o=e?.replace("language-","").toLowerCase()??"",i=String(t);return e?.includes("language-")||i.includes("\n")?"mermaid"===o?(0,n.jsx)(lY,{code:i.replace(/\n$/,"")}):(0,n.jsx)(lZ,{code:i.replace(/\n$/,""),lang:o}):(0,n.jsx)("code",{className:"inline max-w-full whitespace-normal break-words [overflow-wrap:anywhere] align-baseline bg-(--bg-secondary) border border-(--border) px-1.5 py-0.5 text-xs font-mono text-(--accent-blue)",...r,children:t})},pre:({children:e})=>(0,n.jsx)(n.Fragment,{children:e}),a({href:e,children:r,...o}){delete o.node;let s="text-(--accent-blue) underline underline-offset-2 hover:text-(--accent-blue)/80",l=i?sR(e,ev,t??ev):null;return l&&i?(0,n.jsx)("a",{href:e,...o,className:s,onClick:t=>{if(t.defaultPrevented||0!==t.button||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey)return;let r=t.currentTarget.getAttribute("target");r&&"_self"!==r||(t.preventDefault(),i(l,sM(e)??void 0))},children:r}):(0,n.jsx)("a",{href:e,...o,className:s,target:"_blank",rel:"noopener noreferrer",children:r})},table:({children:e})=>(0,n.jsx)("div",{className:"my-3 rounded-lg overflow-hidden border border-(--border)",children:(0,n.jsx)("div",{className:"overflow-x-auto",children:(0,n.jsx)("table",{className:"w-full text-sm border-collapse [&_tr:last-child>td]:border-b-0",children:e})})})},children:ep})}):(0,n.jsx)(sq.A,{language:"text"===h.language?"plaintext":h.language,style:lE,showLineNumbers:!0,lineNumberStyle:{color:"var(--text-dim)",fontStyle:"normal",minWidth:"3em",paddingRight:"1em"},customStyle:{margin:0,padding:"12px 0",background:"var(--bg)",fontSize:13,lineHeight:1.6,fontFamily:"var(--font-mono)",minHeight:"100%"},codeTagProps:{style:{fontFamily:"var(--font-mono)"}},lineProps:e=>({className:"file-source-line","data-line-number":String(e)}),wrapLongLines:E,children:h.content})})]})}function uD({sessionId:e,label:t,running:r=!1,onOpenFile:i}){let{t:s}=(0,Y.s)(),[l,a]=(0,o.useState)([]),[d,c]=(0,o.useState)([]),[u,p]=(0,o.useState)(!0),[h,g]=(0,o.useState)(null);(0,o.useEffect)(()=>{let t=!1;return(async r=>{r&&p(!0);try{let r=await fetch(`/api/sessions/${encodeURIComponent(e)}?tail=500`,{cache:"no-store"}),n=await r.json();if(t)return;if(!r.ok)throw Error(n.error??`HTTP ${r.status}`);a(n.context?.messages??[]),c(n.context?.entryIds??[]),g(null)}catch(e){if(t)return;g(e instanceof Error?e.message:String(e))}finally{t||p(!1)}})(!0),()=>{t=!0}},[e]),(0,o.useEffect)(()=>{if(!r)return;let t=!1,n=window.setInterval(async()=>{if("visible"===document.visibilityState)try{let r=await fetch(`/api/sessions/${encodeURIComponent(e)}?tail=500`,{cache:"no-store"});if(!r.ok)return;let n=await r.json();if(t)return;a(n.context?.messages??[]),c(n.context?.entryIds??[])}catch{}},2500);return()=>{t=!0,window.clearInterval(n)}},[r,e]);let x=(0,o.useMemo)(()=>{let e=new Map;for(let t of l)"toolResult"===t.role&&e.set(t.toolCallId,t);return e},[l]),f=(0,o.useMemo)(()=>sB(l,d,void 0,x),[l,d,x]),m=(0,o.useMemo)(()=>l.filter(e=>"user"===e.role||"assistant"===e.role).length,[l]),v=(t,r)=>(0,n.jsx)(af,{message:r?.messageOverride??l[t],toolResults:f.toolResultsMap,entryId:d[t],sessionId:e,onOpenFile:i},`subagent-msg-${t}`);return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0,background:"var(--bg)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexShrink:0,padding:"8px 12px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)"},children:[(0,n.jsx)("span",{style:{fontSize:12,fontWeight:600,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t||s("subagent.transcriptTitle")}),r&&(0,n.jsx)("span",{style:{marginLeft:"auto",fontSize:11,color:"var(--accent)",whiteSpace:"nowrap"},children:s("agentSwitcher.status.running")})]}),(0,n.jsxs)("div",{className:"scrollbar-subtle scroll-overlay",style:{flex:1,minHeight:0,overflowY:"auto",padding:"10px 12px"},children:[u&&0===l.length&&(0,n.jsx)("div",{style:{color:"var(--text-dim)",fontSize:12},children:s("subagent.transcriptLoading")}),h&&0===l.length&&(0,n.jsx)("div",{style:{color:"var(--status-error)",fontSize:12},children:s("subagent.transcriptFailed",{error:h})}),!u&&!h&&0===m&&(0,n.jsx)("div",{style:{color:"var(--text-dim)",fontSize:12},children:s(r?"subagent.transcriptWaiting":"subagent.transcriptEmpty")}),f.items.map((e,t)=>{if("single"===e.kind)return(0,n.jsx)("div",{children:v(e.idx)},`single-${e.idx}`);let{userIdx:o,endIdx:s,finalAssistantIdx:l,finalAnswerMessage:a}=e,d=t===f.items.length-1,c=r&&d;return(0,n.jsxs)("div",{children:[o>=0&&v(o),e.processSegments.map((t,r)=>(0,n.jsx)(d$,{blocks:t.blocks,isStreaming:c&&r===e.processSegments.length-1&&-1===l,defaultExpanded:c&&r===e.processSegments.length-1&&-1===l,onOpenFile:i},`seg-${o}-${r}`)),a&&v(l,{messageOverride:a}),l>=0&&(()=>{let e=[];for(let t=l+1;t<s;t++)e.push((0,n.jsx)("div",{children:v(t)},`tail-${t}`));return e})()]},`turn-${o}-${t}`)})]})]})}function uH({tabs:e,activeTabId:t,onSelectTab:r,onCloseTab:i}){let{t:s}=(0,Y.s)(),l=(0,o.useRef)(null),[a,d]=(0,o.useState)(!1);(0,o.useEffect)(()=>{if(!t)return;let e=l.current;if(!e)return;let r=e.querySelector(`[data-tab-id="${CSS.escape(t)}"]`);r?.scrollIntoView({block:"nearest",inline:"nearest"})},[t,e.length]),(0,o.useEffect)(()=>{let e=l.current;if(!e)return;let t=()=>d(e.scrollWidth>e.clientWidth+1);t();let r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[e.length]);let c=(0,o.useCallback)((t,n)=>{if(t.target!==t.currentTarget)return;if("Enter"===t.key||" "===t.key){t.preventDefault(),r(n.id);return}if(!["ArrowLeft","ArrowRight","Home","End"].includes(t.key))return;t.preventDefault();let o=e.findIndex(e=>e.id===n.id),i="Home"===t.key?0:"End"===t.key?e.length-1:(o+("ArrowRight"===t.key?1:-1)+e.length)%e.length;r(e[i].id);let s=l.current;s?.querySelector(`[data-tab-id="${CSS.escape(e[i].id)}"]`)?.focus()},[r,e]);return(0,n.jsx)("div",{ref:l,role:"tablist",className:`file-tab-bar${a?"":" no-overflow"}`,children:e.map(o=>{let l=o.id===t;return(0,n.jsxs)("div",{role:"tab","data-tab-id":o.id,"aria-label":"terminal"===o.kind?s("terminal.tabLabel",{name:o.label}):"subagent"===o.kind?s("subagent.transcriptTitle")+": "+o.label:o.label,"aria-selected":l,tabIndex:l||!t&&e[0].id===o.id?0:-1,className:"file-tab",onKeyDown:e=>c(e,o),onClick:()=>r(o.id),onMouseDown:e=>{1===e.button&&e.preventDefault()},onAuxClick:e=>{1===e.button&&(e.preventDefault(),e.stopPropagation(),o.closing||i(o.id))},children:[(0,n.jsx)("span",{className:"file-tab-icon",children:"subagent"===o.kind?(0,n.jsx)(_.d,{size:13,"aria-hidden":"true"}):"terminal"===o.kind?(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("polyline",{points:"4 17 10 11 4 5"}),(0,n.jsx)("line",{x1:"12",y1:"19",x2:"20",y2:"19"})]}):oE(o.label,13)}),(0,n.jsx)("span",{className:"file-tab-label",title:o.filePath,children:o.label}),(0,n.jsx)("button",{type:"button",className:"file-tab-close",disabled:o.closing,onClick:e=>{e.stopPropagation(),i(o.id)},title:s("desktop.closeTab"),"aria-label":s("desktop.closeTabWithLabel",{label:o.label}),children:(0,n.jsx)(g.X,{size:11,"aria-hidden":"true"})})]},o.id)})})}let uO="pi-web:file-tabs";function uB(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}var uU=r(14801),u_=r(8550),uq=r(58309),uK=r(44825),uV=r(25494),uJ=r(9107),uY=r(25182),uG=r(69618),uX=r(91669),uZ=r(16449),uQ=r(47603),u0=r(78890),u1=r(88074);let u2=[{id:"all",icon:uq.A,labelKey:"palette.scope.all"},{id:"commands",icon:uK.A,labelKey:"palette.scope.commands"},{id:"sessions",icon:uV.A,labelKey:"palette.scope.sessions"},{id:"files",icon:uJ.A,labelKey:"palette.scope.files"}],u6=["suggested","navigation","panels","configure"];function u4({text:e,query:t}){let r=function(e,t){let r=t.trim().toLowerCase().split(/\s+/).filter(Boolean);if(!e||0===r.length)return[{text:e,hit:!1}];let n=e.toLowerCase(),o=[];for(let e of r){let t=0;for(;;){let r=n.indexOf(e,t);if(-1===r)break;o.push([r,r+e.length]),t=r+e.length}}if(0===o.length)return[{text:e,hit:!1}];o.sort((e,t)=>e[0]-t[0]||e[1]-t[1]);let i=[];for(let e of o){let t=i[i.length-1];t&&e[0]<=t[1]?t[1]=Math.max(t[1],e[1]):i.push([e[0],e[1]])}let s=[],l=0;for(let[t,r]of i)t>l&&s.push({text:e.slice(l,t),hit:!1}),s.push({text:e.slice(t,r),hit:!0}),l=r;return l<e.length&&s.push({text:e.slice(l),hit:!1}),s}(e,t);return(0,n.jsx)(n.Fragment,{children:r.map((e,t)=>e.hit?(0,n.jsx)("mark",{className:"palette-mark",children:e.text},t):(0,n.jsx)("span",{children:e.text},t))})}function u5({open:e,onOpenChange:t,sessions:r,projectKey:i,cwd:s,commands:l,onOpenSession:a,onOpenFile:d,onOpenMessage:c}){let u,p,h,{t:g}=(0,Y.s)(),[x,f]=(0,o.useState)(""),[m,v]=(0,o.useState)("all"),[y,b]=(0,o.useState)([]),[k,j]=(0,o.useState)(!1),[w,S]=(0,o.useState)([]),[C,z]=(0,o.useState)(!1),[T,R]=(0,o.useState)([]),I=(0,o.useRef)(null),M=(0,o.useRef)(!1),{scope:E,query:$}=(p=(u=x.trimStart()).slice(0,1),(h=Object.prototype.hasOwnProperty.call(ik,p)?ik[p]:null)?{scope:h,query:u.slice(1).trim()}:{scope:m,query:x.trim()});(0,o.useEffect)(()=>{e&&(M.current=!1,b(function(e){let t=iS();if(!t)return[];try{return function(e){if(!e)return[];try{let r=JSON.parse(e);if(!Array.isArray(r))return[];let n=[];for(let e of r)if(e&&"object"==typeof e&&"string"==typeof e.query&&iw(e.query)){var t;n.push({query:e.query,scope:(t=e.scope,"string"==typeof t&&ib.includes(t))?e.scope:"all",updatedAt:"number"==typeof e.updatedAt?e.updatedAt:0})}return n.slice(0,20)}catch{return[]}}(t.getItem(ij(e)))}catch{return[]}}(i)),f(""),j(!1))},[e,i]),(0,o.useEffect)(()=>{j(!1)},[$]),(0,o.useEffect)(()=>{if(!e||!s)return void R([]);let t=!1;return(async()=>{try{let e=await fetch(`/api/file-index?cwd=${encodeURIComponent(s)}`);if(!e.ok)return;let r=await e.json().catch(()=>null);!t&&Array.isArray(r?.files)&&R(r.files)}catch{}})(),()=>{t=!0}},[e,s]),(0,o.useEffect)(()=>{if(!e)return;if("sessions"!==E&&"all"!==E){S([]),z(!1);return}let t=$.trim(),n=t?r.filter(e=>!e.transient).filter(e=>{let r=`${e.name??""} ${e.firstMessage??""}`.toLowerCase();return t.toLowerCase().split(/\s+/).every(e=>r.includes(e))}).slice(0,80).map(e=>({session:e})):r.filter(e=>!e.transient).slice(0,3).map(e=>({session:e}));if(!t){S(n),z(!1);return}I.current?.abort();let o=new AbortController;return I.current=o,z(!0),(async()=>{let e=[];try{let r=await fetch(`/api/sessions/search?q=${encodeURIComponent(t)}`,{signal:o.signal});if(r.ok){let t=await r.json().catch(()=>null);e=(t?.results??[]).slice(0,80).map(e=>({session:e.session,entryId:e.entryId,snippet:`${e.before??""}${e.match??""}${e.after??""}`.trim()}))}}catch{}if(o.signal.aborted)return;let r=new Set(n.map(e=>e.session.id));S([...n,...e.filter(e=>!r.has(e.session.id))]),z(!1)})(),()=>{o.abort()}},[e,E,$,r]);let W=(0,o.useMemo)(()=>{if("files"!==E&&"all"!==E)return[];let e=$.trim().toLowerCase();return(e?T.filter(t=>e.split(/\s+/).every(e=>t.toLowerCase().includes(e))):T.slice(0,3)).slice(0,80)},[T,$,E]),L=(0,o.useMemo)(()=>{let e=$.trim().toLowerCase(),t=e?l.filter(t=>{let r=`${t.title} ${(t.keywords??[]).join(" ")}`.toLowerCase();return e.split(/\s+/).every(e=>r.includes(e))}):l,r=new Map;for(let e of u6)r.set(e,[]);for(let e of t)r.get(e.section)?.push(e);return r},[l,$]),N=(0,o.useCallback)((e,r)=>{let n=function(e,t,r,n){if(!iw(t))return[...e];let o=t.trim().toLowerCase(),i=e.filter(e=>e.query.trim().toLowerCase()!==o);return[{query:t.trim(),scope:r,updatedAt:n},...i].slice(0,20)}(y,iC(e),r,Date.now());b(n);let o=iS();if(o)try{o.setItem(ij(i),JSON.stringify(n.slice(0,20)))}catch{}setTimeout(()=>t(!1),0)},[y,i,t]),A=(0,o.useCallback)(e=>{M.current||(M.current=!0,N(x,E),setTimeout(()=>e.run(),0))},[x,E,N]),P=(0,o.useCallback)(e=>{N(x,E),setTimeout(()=>{e.entryId?c(e.session,e.entryId):a(e.session)},0)},[x,E,N,c,a]),F=(0,o.useCallback)(e=>{N(x,E),setTimeout(()=>d(e),0)},[x,E,N,d]),D="all"===E||"commands"===E,H="all"===E||"sessions"===E,O="all"===E||"files"===E,B="u">typeof navigator&&/mac/i.test(navigator.platform),U=e=>k?e:e.slice(0,3),_=!k&&(H&&w.length>3||O&&W.length>3||D&&u6.some(e=>(L.get(e)?.length??0)>3));return(0,n.jsx)(u_.bL,{open:e,onOpenChange:t,children:(0,n.jsxs)(u_.ZL,{children:[(0,n.jsx)(u_.hJ,{className:"palette-overlay"}),(0,n.jsxs)(u_.UC,{className:"palette-content","aria-describedby":void 0,children:[(0,n.jsx)(u_.hE,{className:"palette-sr-title",children:g("palette.placeholder")}),(0,n.jsxs)(uU.uB,{shouldFilter:!1,loop:!0,label:g("palette.placeholder"),children:[(0,n.jsxs)("div",{className:"palette-search",children:[(0,n.jsx)(ii.A,{size:15,"aria-hidden":"true",style:{flexShrink:0,color:"var(--text-dim)"}}),(0,n.jsx)(uU.uB.Input,{autoFocus:!0,value:x,onValueChange:f,placeholder:g("palette.placeholder"),className:"palette-input","aria-label":g("palette.placeholder")}),(0,n.jsx)("span",{className:"palette-kbd",children:iz(B)})]}),(0,n.jsx)("div",{className:"palette-scopes",role:"tablist","aria-label":g("palette.placeholder"),children:u2.map(({id:e,icon:t,labelKey:r})=>{let o=E===e;return(0,n.jsxs)("button",{type:"button",role:"tab","aria-selected":o,className:`palette-scope${o?" is-active":""}`,onClick:()=>{v(e),f(iC(x)),j(!1)},children:[(0,n.jsx)(t,{size:12,"aria-hidden":"true"}),g(r)]},e)})}),(0,n.jsxs)(uU.uB.List,{className:"palette-list",children:[(0,n.jsxs)(uU.uB.Empty,{className:"palette-empty",children:[(0,n.jsx)("div",{children:g("palette.empty")}),(0,n.jsx)("div",{className:"palette-empty-hint",children:g("palette.emptyHint")})]}),!$&&y.length>0&&(0,n.jsx)(uU.uB.Group,{heading:g("palette.section.history"),className:"palette-group",children:y.slice(0,k?20:3).map(e=>(0,n.jsxs)(uU.uB.Item,{value:`history ${e.query}`,onSelect:()=>{f(`${function(e){for(let[t,r]of Object.entries(ik))if(r===e)return t;return""}(e.scope)}${e.query}`),v(e.scope),j(!1)},className:"palette-item",children:[(0,n.jsx)(ig.A,{size:14,"aria-hidden":"true",style:{flexShrink:0,color:"var(--text-dim)"}}),(0,n.jsx)("span",{className:"palette-item-body",children:(0,n.jsx)("span",{className:"palette-item-title",children:e.query})})]},`${e.scope}:${e.query}`))}),H&&w.length>0&&(0,n.jsx)(uU.uB.Group,{heading:g("palette.section.sessions"),className:"palette-group",children:U(w).map(e=>(0,n.jsxs)(uU.uB.Item,{value:`${e.session.name??e.session.firstMessage??e.session.id} ${e.snippet??""}`,onSelect:()=>P(e),className:"palette-item",children:[(0,n.jsx)(uV.A,{size:14,"aria-hidden":"true",style:{flexShrink:0,color:"var(--text-dim)"}}),(0,n.jsxs)("span",{className:"palette-item-body",children:[(0,n.jsx)("span",{className:"palette-item-title",children:(0,n.jsx)(u4,{text:e.session.name||e.session.firstMessage||e.session.id,query:$})}),e.snippet&&(0,n.jsx)("span",{className:"palette-item-sub",children:(0,n.jsx)(u4,{text:e.snippet,query:$})})]}),(0,n.jsx)("span",{className:"palette-item-meta",children:e.session.cwd?e.session.cwd.split(/[\\/]/).filter(Boolean).pop():""})]},`s-${e.session.id}-${e.entryId??"session"}`))}),O&&W.length>0&&(0,n.jsx)(uU.uB.Group,{heading:g("palette.section.files"),className:"palette-group",children:U(W).map(e=>(0,n.jsxs)(uU.uB.Item,{value:`file ${e}`,onSelect:()=>F(e),className:"palette-item",children:[e.endsWith("/")?(0,n.jsx)(il.A,{size:14,"aria-hidden":"true",style:{flexShrink:0,color:"var(--text-dim)"}}):(0,n.jsx)(uJ.A,{size:14,"aria-hidden":"true",style:{flexShrink:0,color:"var(--text-dim)"}}),(0,n.jsx)("span",{className:"palette-item-body",children:(0,n.jsx)("span",{className:"palette-item-title",children:(0,n.jsx)(u4,{text:e,query:$})})})]},`f-${e}`))}),D&&u6.map(e=>{let t=L.get(e)??[];return 0===t.length?null:(0,n.jsx)(uU.uB.Group,{heading:g(`palette.section.${e}`),className:"palette-group",children:U(t).map(e=>{let t=e.icon;return(0,n.jsxs)(uU.uB.Item,{value:`${e.title} ${(e.keywords??[]).join(" ")}`,onSelect:()=>A(e),className:"palette-item",children:[(0,n.jsx)(t,{size:14,"aria-hidden":"true",style:{flexShrink:0,color:"var(--text-dim)"}}),(0,n.jsx)("span",{className:"palette-item-body",children:(0,n.jsx)("span",{className:"palette-item-title",children:(0,n.jsx)(u4,{text:e.title,query:$})})}),e.shortcut&&(0,n.jsx)("span",{className:"palette-kbd",children:e.shortcut})]},e.id)})},e)}),C&&(0,n.jsx)("div",{className:"palette-status",children:g("palette.searching")}),_&&(0,n.jsxs)(uU.uB.Item,{value:"__show_more__",onSelect:()=>j(!0),className:"palette-item palette-item-more",children:[(0,n.jsx)(uY.A,{size:14,"aria-hidden":"true",style:{flexShrink:0,color:"var(--text-dim)"}}),(0,n.jsx)("span",{className:"palette-item-body",children:(0,n.jsx)("span",{className:"palette-item-title",children:g("palette.showMore")})})]})]})]})]})]})})}let u3=new Set(["awaiting_input","review","failed"]),u8=(0,o.createContext)(null);function u7(){let e=(0,o.useContext)(u8);if(!e)throw Error("useTasksView must be used within TasksViewProvider");return e}function u9({children:e}){let{t}=(0,Y.s)(),r=(0,o.useRef)(t);(0,o.useEffect)(()=>{r.current=t},[t]);let[i,s]=(0,o.useState)([]),[l,a]=(0,o.useState)([]),d=(0,o.useRef)(0),c=(0,o.useCallback)(async()=>{let e=++d.current;try{let t=await (0,dG.Wt)(),r=(await Promise.all(t.map(e=>(0,dG.Vk)(e).catch(()=>[])))).flat().sort((e,t)=>t.id-e.id);if(e!==d.current)return;a(e=>pe(e,t)?e:t),s(e=>pe(e,r)?e:r)}catch{}},[]);(0,o.useEffect)(()=>{c();let e=null,t=!1,r=()=>{t||((e=new EventSource("/api/tasks/events")).onmessage=()=>{c()},e.onerror=()=>{e?.close(),e=null,c(),setTimeout(r,2e3)})};r();let n=()=>{"visible"===document.visibilityState&&c()},o=()=>void c();document.addEventListener("visibilitychange",n),window.addEventListener("online",o);let i=setInterval(()=>void c(),6e4);return()=>{t=!0,e?.close(),document.removeEventListener("visibilitychange",n),window.removeEventListener("online",o),clearInterval(i)}},[c]);let u=(0,o.useMemo)(()=>i.filter(e=>u3.has(e.status)&&null==e.archivedAt).length,[i]),p=(0,o.useRef)(null);(0,o.useEffect)(()=>{let e=p.current;if((p.current=new Map(i.map(e=>[e.id,e.status])),e&&0!==i.length)&&"Notification"in window){for(let r of i)if(e.get(r.id)!==r.status&&("review"===r.status||"failed"===r.status)&&null==r.archivedAt&&"visible"!==document.visibilityState)try{let e="review"===r.status?t("tasks.notifyReview",{title:r.title}):t("tasks.notifyFailed",{title:r.title});!function(e,t){new Promise(r=>{if(!("Notification"in window))return void r();let n=()=>{try{new Notification(e,{body:t,tag:"pi-tasks"})}catch{}r()};"granted"===Notification.permission?n():"denied"!==Notification.permission?Notification.requestPermission().then(e=>{"granted"===e?n():r()}):r()})}("Pi Web Tasks",e)}catch{}}},[i,t]);let h=(0,o.useMemo)(()=>({tasks:i,projects:l,attentionCount:u,refetch:c}),[i,l,u,c]);return(0,n.jsx)(u8.Provider,{value:h,children:e})}function pe(e,t){return JSON.stringify(e)===JSON.stringify(t)}var pt=r(4539),pr=r(12449),pn=r(2571);let po=["todo","inProgress","attention","done"];function pi(e){return"review"===e.status&&0===e.filesChanged}function ps(){return{defaultAgentType:null,modeId:null,configValues:{},autoProcess:!0,maxConcurrent:1,mergeStrategy:"merge",deleteWorktreeDefault:!0,preflightCommand:null,initCommand:null,stagePrompts:null}}let pl=["todo","inProgress","attention","done"],pa={todo:{id:"todo",marker:"var(--text-dim)"},inProgress:{id:"inProgress",marker:"var(--accent)"},attention:{id:"attention",marker:"var(--status-warning)"},done:{id:"done",marker:"var(--status-success)"}};var pd=r(54775),pc=r(98998),pu=r(36668);function pp({task:e}){let{t}=(0,Y.s)(),r=t("failed"===e.status&&"interrupted"===e.failureReason?"tasks.statusInterrupted":function(e){switch(e){case"todo":return"tasks.statusTodo";case"queued":return"tasks.statusQueued";case"preparing":return"tasks.statusPreparing";case"running":return"tasks.statusRunning";case"awaiting_input":return"tasks.statusAwaitingInput";case"review":return"tasks.statusReview";case"merging":return"tasks.statusMerging";case"done":return"tasks.statusDone";case"failed":return"tasks.statusFailed";case"canceled":return"tasks.statusCanceled"}}(e.status)),o={display:"inline-flex",alignItems:"center",gap:4,borderRadius:999,padding:"2px 8px",fontSize:10,fontWeight:600,lineHeight:1.4,flexShrink:0,whiteSpace:"nowrap"};switch(e.status){case"queued":case"preparing":case"running":case"merging":return(0,n.jsxs)("span",{style:{...o,color:"var(--accent)"},children:[(0,n.jsx)(pd.N,{size:11,className:"pi-spin",style:{animation:"pi-spin 1s linear infinite"},"aria-hidden":"true"}),r]});case"awaiting_input":case"review":return(0,n.jsx)("span",{style:{...o,border:"1px solid rgba(245,158,11,0.45)",background:"rgba(245,158,11,0.08)",color:"var(--status-warning)"},children:r});case"done":return(0,n.jsxs)("span",{style:{...o,background:"rgba(16,185,129,0.12)",color:"#059669"},children:[(0,n.jsx)(f.J,{size:10,weight:"bold","aria-hidden":"true"}),r]});case"failed":return(0,n.jsx)("span",{style:{...o,background:"rgba(239,68,68,0.12)",color:"var(--status-error)"},children:r});default:return(0,n.jsx)("span",{style:{...o,background:"var(--bg-hover)",color:"var(--text-muted)"},children:r})}}function ph({task:e}){let t=e.preflight;if(!t||"review"!==e.status)return null;let r="passed"===t.status?{background:"rgba(16,185,129,0.12)",color:"#059669"}:"failed"===t.status?{background:"rgba(239,68,68,0.12)",color:"var(--status-error)"}:{background:"var(--bg-hover)",color:"var(--text-muted)"};return(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,borderRadius:999,padding:"1px 6px",fontSize:10,fontWeight:500,lineHeight:1.5,maxWidth:"100%",...r},title:t.command,children:["running"===t.status?(0,n.jsx)(pd.N,{size:10,style:{animation:"pi-spin 1s linear infinite"},"aria-hidden":"true"}):"passed"===t.status?(0,n.jsx)(ei.r,{size:10,"aria-hidden":"true"}):(0,n.jsx)(nC.J,{size:10,"aria-hidden":"true"}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t.command})]})}function pg({task:e,folderName:t,now:r,onOpen:o,onStart:i,onCancel:s,onRetry:l,onRequeue:a,onViewSession:d,onMerge:c,onArchive:u,onEdit:p}){let{t:h}=(0,Y.s)(),g=null!=e.archivedAt,x="running"===e.status||"awaiting_input"===e.status||"merging"===e.status,m=null!=e.filesChanged&&e.filesChanged>0?(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:3,fontFamily:"var(--font-mono)",fontSize:10},children:[(0,n.jsxs)("span",{style:{color:"#059669"},children:["+",e.additions??0]}),(0,n.jsxs)("span",{style:{color:"var(--status-error)"},children:["-",e.deletions??0]})]}):null,v=function(e,t){if(!e)return"";let r=new Date(e).getTime();if(Number.isNaN(r))return"";let n=Math.floor(Math.max(0,t-r)/6e4);if(n<1)return"now";if(n<60)return`${n}m`;let o=Math.floor(n/60);if(o<24)return`${o}h`;let i=Math.floor(o/24);return`${i}d`}(e.finishedAt??e.settledAt??e.startedAt??e.createdAt,r),{primary:y,more:b}=(()=>{let t=[],r=null;if(g)return{primary:r={icon:I.T,label:h("tasks.actionUnarchive"),onClick:u},more:t};switch(e.status){case"todo":r={icon:pn.j,label:h("tasks.actionStart"),onClick:i},t.push({icon:dv.S,label:h("tasks.actionEdit"),onClick:p});break;case"queued":case"preparing":case"running":case"awaiting_input":r={icon:pc.k,label:h("tasks.actionCancel"),onClick:s};break;case"review":r=pi(e)?{icon:f.J,label:h("tasks.actionComplete"),onClick:c}:{icon:pu.r,label:h("tasks.actionMerge"),onClick:c};break;case"merging":break;case"failed":r={icon:z.S,label:h("tasks.actionRetry"),onClick:l},t.push({icon:dv.S,label:h("tasks.actionEdit"),onClick:p}),t.push({icon:I.T,label:h("tasks.actionArchive"),onClick:u});break;case"done":r={icon:I.T,label:h("tasks.actionArchive"),onClick:u};break;case"canceled":r={icon:aF.f,label:h("tasks.actionRequeue"),onClick:a},t.push({icon:I.T,label:h("tasks.actionArchive"),onClick:u})}return{primary:r,more:t}})(),k=[...b];return null!=e.conversationId&&k.push({icon:aP.y,label:h("tasks.actionViewSession"),onClick:d}),(0,n.jsxs)("div",{role:"button",tabIndex:0,onClick:o,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),o())},style:{display:"flex",flexDirection:"column",cursor:"pointer",borderRadius:12,border:"1px solid color-mix(in srgb, var(--border) 85%, transparent)",background:"var(--bg-panel)",padding:12,textAlign:"left",transition:"border-color 0.12s",opacity:g?.6:1,boxShadow:"0 1px 2px rgba(0,0,0,0.04)"},className:"task-card-hover",onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="color-mix(in srgb, var(--border) 85%, transparent)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:8},children:[(0,n.jsx)("span",{style:{minWidth:0,overflowWrap:"break-word",fontSize:13,fontWeight:500,lineHeight:1.4},children:e.title}),(0,n.jsx)(pp,{task:e})]}),(0,n.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:"2px 6px",marginTop:6,fontSize:11,color:"var(--text-muted)"},children:[t?(0,n.jsx)("span",{style:{maxWidth:160,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t}):null,t&&e.workBranch?(0,n.jsx)("span",{style:{opacity:.5},children:"/"}):null,e.workBranch?(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:10,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:180},children:e.workBranch}):null,(t||e.workBranch)&&(m||v)?(0,n.jsx)("span",{style:{opacity:.5},children:"\xb7"}):null,m,m&&v?(0,n.jsx)("span",{style:{opacity:.5},children:"\xb7"}):null,v?(0,n.jsx)("span",{style:{flexShrink:0},children:v}):null,(0,n.jsx)(ph,{task:e})]}),e.lastError&&("failed"===e.status||"review"===e.status)?(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginTop:8,borderRadius:8,background:"rgba(239,68,68,0.08)",padding:"6px 8px",fontSize:11,color:"var(--status-error)"},children:[(0,n.jsx)(as.t,{size:13,style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{minWidth:0,flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.lastError}),(0,n.jsx)("button",{type:"button",style:{flexShrink:0,fontWeight:600,background:"none",border:"none",cursor:"pointer",color:"inherit",fontSize:11,textDecoration:"underline"},onClick:e=>{e.stopPropagation(),o()},children:h("tasks.errorView")})]}):null,"review"===e.status&&e.resultSummary?(0,n.jsx)("p",{style:{margin:"6px 0 0",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden",fontSize:11,lineHeight:1.5,color:"var(--text-muted)"},children:e.resultSummary}):null,x&&e.latestProgress?(0,n.jsx)("p",{style:{margin:"6px 0 0",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden",fontSize:11,lineHeight:1.5,color:"var(--text-muted)",fontStyle:"italic"},children:e.latestProgress}):null,y||k.length>0?(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginTop:12,paddingTop:12,borderTop:"1px solid var(--border)"},children:[y?(0,n.jsxs)("button",{type:"button",onClick:e=>{e.stopPropagation(),y.onClick()},style:{display:"inline-flex",alignItems:"center",gap:5,padding:"4px 10px",borderRadius:7,background:"var(--accent)",color:"var(--accent-fg)",border:"none",cursor:"pointer",fontSize:11,fontWeight:600},children:[(0,n.jsx)(y.icon,{size:12,weight:"bold","aria-hidden":"true"}),y.label]}):null,(0,n.jsx)("div",{style:{flex:1}}),k.map(e=>(0,n.jsx)("button",{type:"button",title:e.label,"aria-label":e.label,onClick:t=>{t.stopPropagation(),e.onClick()},style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,borderRadius:999,background:"none",border:"1px solid var(--border)",color:"var(--text-muted)",cursor:"pointer",opacity:0,transition:"opacity 0.12s, background 0.12s, color 0.12s"},className:"task-card-secondary",onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(e.icon,{size:13,"aria-hidden":"true"})},e.label))]}):null]})}function px({open:e,onOpenChange:t,task:r}){let{t:i}=(0,Y.s)(),{refetch:s}=u7(),[l,a]=(0,o.useState)(""),[d,c]=(0,o.useState)(!1);if(L(!d,()=>t(!1)),(0,o.useEffect)(()=>{e&&(a(""),c(!1))},[e,r]),!e||!r)return null;let u=async()=>{if(!d){c(!0);try{await (0,dG.oQ)(r.id,r.projectRoot,"cancel",{reason:l.trim()||null}),t(!1),s()}catch(e){console.error("cancel failed",e)}finally{c(!1)}}};return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:950,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(440px, calc(100vw - 48px))",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:14,boxShadow:"0 16px 48px rgba(0,0,0,0.3)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px 0"},children:[(0,n.jsx)("h3",{style:{fontSize:15,fontWeight:600,margin:0},children:i("tasks.cancelTitle")}),(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),"aria-label":i("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(g.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12,padding:"14px 16px 16px"},children:[(0,n.jsx)("p",{style:{margin:0,fontSize:12,lineHeight:1.5,color:"var(--text-muted)"},children:i("tasks.cancelDescription")}),(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:5},children:[(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)"},children:i("tasks.cancelReasonLabel")}),(0,n.jsx)("textarea",{value:l,onChange:e=>a(e.target.value),placeholder:i("tasks.cancelReasonPlaceholder"),rows:3,autoFocus:!0,style:{width:"100%",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"8px 10px",color:"var(--text)",fontSize:13,outline:"none",fontFamily:"inherit",resize:"vertical"}})]}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:4},children:[(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),disabled:d,style:{padding:"8px 14px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:i("tasks.cancelKeep")}),(0,n.jsx)("button",{type:"button",onClick:()=>void u(),disabled:d,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:i("tasks.cancelSubmit")})]})]})]})})}function pf({open:e,onOpenChange:t,task:r}){let{t:i}=(0,Y.s)(),{refetch:s}=u7(),[l,a]=(0,o.useState)(!0),[d,c]=(0,o.useState)(!1);L(!d,()=>t(!1));let u=r?.worktreePath!=null;if((0,o.useEffect)(()=>{if(!e||!r)return;c(!1);let t=!1;return(0,dG.CG)(r.projectRoot).then(e=>{t||a(e.deleteWorktreeDefault)}).catch(()=>{t||a(!0)}),()=>{t=!0}},[e,r]),!e||!r)return null;let p=async()=>{if(!d){c(!0);try{await (0,dG.ZX)(r.id,r.projectRoot,u&&l),t(!1),s()}catch(e){console.error("complete failed",e)}finally{c(!1)}}};return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:950,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(440px, calc(100vw - 48px))",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:14,boxShadow:"0 16px 48px rgba(0,0,0,0.3)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px 0"},children:[(0,n.jsx)("h3",{style:{fontSize:15,fontWeight:600,margin:0},children:i("tasks.completeTitle")}),(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),"aria-label":i("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(g.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12,padding:"14px 16px 16px"},children:[(0,n.jsx)("p",{style:{margin:0,fontSize:12,lineHeight:1.5,color:"var(--text-muted)"},children:i("tasks.completeDescription")}),u?(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,fontSize:13,cursor:"pointer"},children:[(0,n.jsx)("input",{type:"checkbox",checked:l,onChange:e=>a(e.target.checked),style:{accentColor:"var(--accent)"}}),i("tasks.completeDeleteWorktree")]}):null,(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:4},children:[(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),disabled:d,style:{padding:"8px 14px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:i("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void p(),disabled:d,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:i("tasks.completeSubmit")})]})]})]})})}var pm=r(51285),pv=r(16894);function py({open:e,onOpenChange:t,task:r,onViewSession:i,onMerge:s,onEdit:l,onCancel:a,onRetry:d,onRequeue:c,onComplete:u}){let{t:p}=(0,Y.s)(),{refetch:h}=u7(),[x,m]=(0,o.useState)([]),[v,b]=(0,o.useState)([]),[k,j]=(0,o.useState)(null),[w,S]=(0,o.useState)(null),[C,R]=(0,o.useState)(!1),[M,E]=(0,o.useState)(!1),[$,W]=(0,o.useState)(""),[N,A]=(0,o.useState)(!1),[P,F]=(0,o.useState)(!1),[D,H]=(0,o.useState)(!1);L(!0,()=>t(!1));let O=r?.id??null,B=r?.projectRoot??null,U=(0,o.useCallback)(async()=>{if(null==O||null==B)return;let[e,t]=await Promise.all([(0,dG.HB)(B,O).catch(()=>[]),r?.worktreePath?(0,dG.JH)(B,O).then(e=>e.files).catch(()=>[]):Promise.resolve([])]);m(e),b(t)},[O,B,r?.worktreePath]);(0,o.useEffect)(()=>{if(!e||null==O)return;m([]),b([]),E(!1),W(""),U();let t=window.setInterval(()=>void U(),5e3);return()=>window.clearInterval(t)},[e,O,U]);let _=(0,o.useCallback)(async e=>{H(!0);try{await e()}catch(e){console.error("detail action failed",e)}finally{H(!1),h()}},[h]),q=(0,o.useCallback)(async e=>{if(null!=B&&null!=O){R(!0);try{let t=await (0,dG.h)(B,O,e);S(t.supported&&t.patch?t.patch:null)}catch{S(null)}finally{R(!1)}}},[B,O]),K=async()=>{null!=r&&null!=B&&(await _(()=>(0,dG.bH)(r.id,B,P)),t(!1))},V=async()=>{null!=r&&null!=B&&$.trim()&&(await _(()=>(0,dG.in)(r.id,B,$.trim())),E(!1),W(""))};if(!e||null==r||null==B)return null;let J=[];if(null==r.archivedAt)switch(r.status){case"todo":J.push({label:p("tasks.actionStart"),icon:pn.j,onClick:()=>void _(()=>(0,dG.oQ)(r.id,B,"start")),filled:!0}),J.push({label:p("tasks.actionEdit"),icon:dv.S,onClick:()=>l(r)});break;case"queued":case"preparing":case"running":case"awaiting_input":J.push({label:p("tasks.actionCancel"),icon:pc.k,onClick:()=>a(r),danger:!0});break;case"review":J.push({label:pi(r)?p("tasks.actionComplete"):p("tasks.actionMerge"),icon:pi(r)?f.J:pm.Y,onClick:()=>pi(r)?u(r):s(r),filled:!0}),J.push({label:p("tasks.actionReturn"),icon:aF.f,onClick:()=>E(!0)});break;case"failed":J.push({label:p("tasks.actionRetry"),icon:z.S,onClick:()=>d(r),filled:!0}),J.push({label:p("tasks.actionEdit"),icon:dv.S,onClick:()=>l(r)});break;case"done":J.push({label:p("tasks.actionArchive"),icon:I.T,onClick:()=>void _(()=>(0,dG.et)(r.id,B,!0))});break;case"canceled":J.push({label:p("tasks.actionRequeue"),icon:aF.f,onClick:()=>c(r),filled:!0})}else J.push({label:p("tasks.actionUnarchive"),icon:I.T,onClick:()=>void _(()=>(0,dG.et)(r.id,B,!1))});return null!=r.conversationId&&J.push({label:p("tasks.actionViewSession"),icon:aP.y,onClick:()=>i(r)}),(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:800,background:"rgba(0,0,0,0.35)"},children:(0,n.jsxs)("div",{style:{position:"absolute",top:0,right:0,bottom:0,width:"min(480px, 90vw)",background:"var(--bg-panel)",borderLeft:"1px solid var(--border)",display:"flex",flexDirection:"column",boxShadow:"-8px 0 32px rgba(0,0,0,0.2)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:12,padding:"16px 16px 0"},children:[(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("h3",{style:{margin:0,fontSize:15,fontWeight:600,lineHeight:1.4,overflowWrap:"break-word"},children:r.title}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:6},children:[(0,n.jsx)(pp,{task:r}),r.workBranch?(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-muted)"},children:[(0,n.jsx)(y.Z,{size:12,"aria-hidden":"true"}),r.workBranch]}):null]})]}),(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),"aria-label":p("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex",flexShrink:0},children:(0,n.jsx)(g.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:8,padding:"14px 16px 0"},children:J.map(e=>{let t,r;return(0,n.jsxs)("button",{type:"button",onClick:e.onClick,disabled:D,style:(t=e.filled,r=e.danger,{display:"inline-flex",alignItems:"center",gap:5,padding:"7px 12px",borderRadius:8,fontSize:12,fontWeight:600,cursor:"pointer",background:t?"var(--accent)":r?"rgba(239,68,68,0.1)":"var(--bg-hover)",color:t?"#fff":r?"var(--status-error)":"var(--text)",border:t||r?"none":"1px solid var(--border)"}),children:[(0,n.jsx)(e.icon,{size:13,weight:"bold","aria-hidden":"true"}),e.label]},e.label)})}),M&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8,padding:"12px 16px 0"},children:[(0,n.jsx)("textarea",{value:$,onChange:e=>W(e.target.value),placeholder:p("tasks.returnPlaceholder"),rows:3,style:{width:"100%",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"8px 10px",color:"var(--text)",fontSize:12,resize:"vertical",fontFamily:"inherit"}}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8},children:[(0,n.jsx)("button",{type:"button",onClick:()=>E(!1),style:{padding:"6px 12px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:p("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void V(),disabled:!$.trim(),style:{padding:"6px 14px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:p("tasks.returnSubmit")})]})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6,padding:"14px 16px 0",fontSize:12,color:"var(--text-muted)"},children:[(0,n.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",width:64},children:p("tasks.metaProject")}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)",fontSize:11},children:r.projectRoot})]}),r.createdAt?(0,n.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",width:64},children:p("tasks.metaCreated")}),(0,n.jsx)("span",{children:new Date(r.createdAt).toLocaleString()})]}):null,r.mergeCommit?(0,n.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",width:64},children:p("tasks.metaCommit")}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:r.mergeCommit})]}):null]}),v.length>0&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4,padding:"14px 16px 0"},children:[(0,n.jsx)("span",{style:{fontSize:11,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.05em"},children:p("tasks.changedFiles")}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2,maxHeight:140,overflowY:"auto"},children:v.map(e=>(0,n.jsxs)("button",{type:"button",onClick:()=>{var t;j(t=e.file),S(null),q(t)},style:{display:"flex",alignItems:"center",gap:8,textAlign:"left",padding:"4px 6px",borderRadius:6,background:"none",border:"none",color:"var(--text)",fontSize:12,cursor:"pointer"},children:[(0,n.jsx)(pv.o,{size:13,style:{flexShrink:0,color:"var(--text-muted)"},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)",fontSize:11},children:e.file}),(0,n.jsxs)("span",{style:{fontFamily:"var(--font-mono)",fontSize:10,color:"#059669",flexShrink:0},children:["+",e.additions]}),(0,n.jsxs)("span",{style:{fontFamily:"var(--font-mono)",fontSize:10,color:"var(--status-error)",flexShrink:0},children:["-",e.deletions]})]},e.file))})]}),null!=k&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6,padding:"12px 16px 0",minHeight:0,flexShrink:0},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,n.jsx)("span",{style:{fontSize:11,fontWeight:600,color:"var(--text-muted)"},children:p("tasks.diff")}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:10,color:"var(--text-muted)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},children:k}),(0,n.jsx)("button",{type:"button",onClick:()=>j(null),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:2,display:"flex"},children:(0,n.jsx)(g.X,{size:12,"aria-hidden":"true"})})]}),C?(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",padding:8},children:p("tasks.loading")}):w?(0,n.jsx)("pre",{style:{margin:0,maxHeight:200,overflow:"auto",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:10,fontSize:11,lineHeight:1.5,fontFamily:"var(--font-mono)",color:"var(--text-muted)",whiteSpace:"pre"},children:w.split("\n").map((e,t)=>{let r;return e.startsWith("+")&&!e.startsWith("+++")?r="#059669":e.startsWith("-")&&!e.startsWith("---")?r="var(--status-error)":e.startsWith("@@")&&(r="var(--accent)"),(0,n.jsx)("div",{style:{color:r},children:e||" "},t)})}):(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",padding:8},children:p("tasks.noDiff")})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4,padding:"14px 16px 0",flex:1,minHeight:0},children:[(0,n.jsx)("span",{style:{fontSize:11,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.05em"},children:p("tasks.timeline")}),(0,n.jsx)("div",{style:{flex:1,minHeight:0,overflowY:"auto",paddingBottom:8},children:0===x.length?(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",padding:8},children:p("tasks.noEvents")}):(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[...x].reverse().map(e=>{var t;let r,o;return(0,n.jsxs)("div",{style:{display:"flex",gap:8,padding:"4px 6px",borderRadius:6,fontSize:11},children:[(0,n.jsx)("span",{style:{color:"var(--text-dim)",flexShrink:0,fontFamily:"var(--font-mono)",fontSize:10,paddingTop:1},children:new Date(e.createdAt).toLocaleTimeString()}),(0,n.jsx)("span",{style:{color:"var(--text)",flexShrink:0,fontWeight:500},children:(t=e.kind,(o=p(r=`tasks.event_${t}`))===r?t:o)}),e.payload?.feedback?(0,n.jsx)("span",{style:{color:"var(--text-muted)",fontStyle:"italic",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:String(e.payload.feedback)}):null]},e.id)})})})]}),(0,n.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:8,padding:"10px 16px",borderTop:"1px solid var(--border)",flexShrink:0},children:N?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:6,fontSize:12,cursor:"pointer"},children:[(0,n.jsx)("input",{type:"checkbox",checked:P,onChange:e=>F(e.target.checked),style:{accentColor:"var(--accent)"}}),p("tasks.deleteWorktree")]}),(0,n.jsx)("button",{type:"button",onClick:()=>A(!1),style:{padding:"6px 12px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:p("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void K(),disabled:D,style:{padding:"6px 14px",borderRadius:8,background:"var(--status-error)",color:"#fff",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:p("tasks.deleteConfirm")})]}):(0,n.jsxs)("button",{type:"button",onClick:()=>A(!0),style:{display:"inline-flex",alignItems:"center",gap:5,padding:"6px 12px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--status-error)",fontSize:12,cursor:"pointer"},children:[(0,n.jsx)(T.l,{size:13,"aria-hidden":"true"}),p("tasks.delete")]})})]})})}var pb=r(17757);function pk({open:e,onOpenChange:t,task:r,defaultProject:i,projects:s,prefillTitle:l,prefillPrompt:a,onSubmit:d}){let{t:c}=(0,Y.s)(),[u,p]=(0,o.useState)(""),[h,x]=(0,o.useState)(""),[f,m]=(0,o.useState)(""),[v,y]=(0,o.useState)([]),[b,k]=(0,o.useState)(""),[j,w]=(0,o.useState)(!1);L(!j,()=>t(!1));let S=(0,o.useRef)(!1);if((0,o.useEffect)(()=>{if(!e){S.current=!1;return}S.current||(S.current=!0,p(r?.projectRoot??i??s[0]??""),x(r?.title??l??""),m(r?.config?.prompt??a??""),(0,dG.VB)().then(y).catch(()=>void 0))},[e,r,i,s,l,a]),!e)return null;let C=async()=>{if(u&&h.trim()&&!j){w(!0);try{await d(u,h.trim(),{prompt:f.trim(),agentType:r?.config?.agentType??null,modelId:r?.config?.modelId??null,thinkingLevel:r?.config?.thinkingLevel??null}),t(!1)}catch(e){console.error("submit task failed",e)}finally{w(!1)}}},z=async()=>{if(b.trim()&&h.trim())try{await (0,dG.nY)({name:b.trim(),title:h.trim(),config:{prompt:f.trim()}}),k(""),(0,dG.VB)().then(y).catch(()=>void 0)}catch(e){console.error("save template failed",e)}},R=async e=>{try{await (0,dG.B_)(e),(0,dG.VB)().then(y).catch(()=>void 0)}catch(e){console.error("delete template failed",e)}},I={width:"100%",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"8px 10px",color:"var(--text)",fontSize:13,outline:"none"};return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:900,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(520px, calc(100vw - 48px))",maxHeight:"80vh",overflowY:"auto",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:14,boxShadow:"0 16px 48px rgba(0,0,0,0.3)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px 0"},children:[(0,n.jsx)("h3",{style:{fontSize:15,fontWeight:600,margin:0},children:r?c("tasks.editTitle"):c("tasks.newTitle")}),(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),"aria-label":c("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(g.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12,padding:"14px 16px 16px"},children:[v.length>0&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("span",{style:{fontSize:11,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.05em"},children:c("tasks.templates")}),(0,n.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:v.map(e=>(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,borderRadius:999,background:"var(--bg-hover)",padding:"3px 8px",fontSize:11},children:[(0,n.jsx)("button",{type:"button",onClick:()=>{x(e.title),m(e.config?.prompt??"")},style:{background:"none",border:"none",cursor:"pointer",color:"var(--text)",fontSize:11,padding:0},children:e.name}),(0,n.jsx)("button",{type:"button",onClick:()=>void R(e.id),"aria-label":c("tasks.deleteTemplate"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-dim)",padding:0,display:"flex"},children:(0,n.jsx)(T.l,{size:10,"aria-hidden":"true"})})]},e.id))})]}),(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("span",{style:{fontSize:12,fontWeight:500,color:"var(--text)"},children:c("tasks.fieldProject")}),(0,n.jsx)("select",{value:u,onChange:e=>p(e.target.value),style:I,children:s.map(e=>(0,n.jsx)("option",{value:e,children:e.split("/").filter(Boolean).pop()??e},e))})]}),(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("span",{style:{fontSize:12,fontWeight:500,color:"var(--text)"},children:c("tasks.fieldTitle")}),(0,n.jsx)("input",{value:h,onChange:e=>x(e.target.value),placeholder:c("tasks.fieldTitlePlaceholder"),style:I,autoFocus:!0})]}),(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("span",{style:{fontSize:12,fontWeight:500,color:"var(--text)"},children:c("tasks.fieldPrompt")}),(0,n.jsx)("textarea",{value:f,onChange:e=>m(e.target.value),placeholder:c("tasks.fieldPromptPlaceholder"),rows:6,style:{...I,resize:"vertical",fontFamily:"inherit",lineHeight:1.5}})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,n.jsx)("input",{value:b,onChange:e=>k(e.target.value),placeholder:c("tasks.templateNamePlaceholder"),style:{...I,flex:1}}),(0,n.jsxs)("button",{type:"button",onClick:()=>void z(),disabled:!b.trim()||!h.trim(),style:{display:"inline-flex",alignItems:"center",gap:5,padding:"8px 12px",borderRadius:8,background:"var(--bg-hover)",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:[(0,n.jsx)(pb.D,{size:13,"aria-hidden":"true"}),c("tasks.saveAsTemplate")]})]}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:4},children:[(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),style:{padding:"8px 14px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:c("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void C(),disabled:!u||!h.trim()||j,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:c("tasks.save")})]})]})]})})}function pj({open:e,onOpenChange:t,task:r}){let{t:i}=(0,Y.s)(),{refetch:s}=u7(),[l,a]=(0,o.useState)(!0),[d,c]=(0,o.useState)(""),[u,p]=(0,o.useState)(!0),[h,x]=(0,o.useState)(!1);if(L(!h,()=>t(!1)),(0,o.useEffect)(()=>{e&&r&&(a(!0),c(r.title),x(!1),(0,dG.CG)(r.projectRoot).then(e=>p(e.deleteWorktreeDefault)).catch(()=>p(!0)))},[e,r]),!e||!r)return null;let f=async()=>{if((l||d.trim())&&!h){x(!0);try{await (0,dG.oB)(r.id,r.projectRoot,l?null:d.trim(),u),t(!1),s()}catch(e){console.error("merge failed",e)}finally{x(!1)}}};return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:950,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(440px, calc(100vw - 48px))",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:14,boxShadow:"0 16px 48px rgba(0,0,0,0.3)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px 0"},children:[(0,n.jsx)("h3",{style:{fontSize:15,fontWeight:600,margin:0},children:i("tasks.mergeTitle")}),(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),"aria-label":i("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(g.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12,padding:"14px 16px 16px"},children:[(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,fontSize:13,cursor:"pointer"},children:[(0,n.jsx)("input",{type:"radio",checked:l,onChange:()=>a(!0),style:{accentColor:"var(--accent)"}}),i("tasks.mergeAutoMessage")]}),(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,fontSize:13,cursor:"pointer"},children:[(0,n.jsx)("input",{type:"radio",checked:!l,onChange:()=>a(!1),style:{accentColor:"var(--accent)"}}),i("tasks.mergeManualMessage")]}),!l&&(0,n.jsx)("input",{value:d,onChange:e=>c(e.target.value),placeholder:i("tasks.mergeMessagePlaceholder"),style:{width:"100%",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"8px 10px",color:"var(--text)",fontSize:13,outline:"none",fontFamily:"inherit"}}),(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,fontSize:13,cursor:"pointer"},children:[(0,n.jsx)("input",{type:"checkbox",checked:u,onChange:e=>p(e.target.checked),style:{accentColor:"var(--accent)"}}),i("tasks.mergeDeleteWorktree")]}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:4},children:[(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),style:{padding:"8px 14px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:i("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void f(),disabled:!l&&!d.trim()||h,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:i("tasks.mergeConfirm")})]})]})]})})}function pw({open:e,onOpenChange:t,task:r,kind:i}){let{t:s}=(0,Y.s)(),{refetch:l}=u7(),[a,d]=(0,o.useState)(""),[c,u]=(0,o.useState)(!1);if(L(!c,()=>t(!1)),(0,o.useEffect)(()=>{e&&(d(""),u(!1))},[e,r]),!e||!r)return null;let p="retry"===i,h=async()=>{if(!c){u(!0);try{await (0,dG.oQ)(r.id,r.projectRoot,i,{note:a.trim()||null}),t(!1),l()}catch(e){console.error("restart failed",e)}finally{u(!1)}}};return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:950,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(480px, calc(100vw - 48px))",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:14,boxShadow:"0 16px 48px rgba(0,0,0,0.3)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px 0"},children:[(0,n.jsx)("h3",{style:{fontSize:15,fontWeight:600,margin:0},children:s(p?"tasks.restartTitleRetry":"tasks.restartTitleRequeue")}),(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),"aria-label":s("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(g.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12,padding:"14px 16px 16px"},children:[(0,n.jsx)("p",{style:{margin:0,fontSize:12,lineHeight:1.5,color:"var(--text-muted)"},children:s("tasks.restartDescription")}),(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:5},children:[(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)"},children:s("tasks.actionAddNote")}),(0,n.jsx)("textarea",{value:a,onChange:e=>d(e.target.value),placeholder:s(p?"tasks.followUpPlaceholderRetry":"tasks.followUpPlaceholderRequeue"),rows:3,autoFocus:!0,style:{width:"100%",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"8px 10px",color:"var(--text)",fontSize:13,outline:"none",fontFamily:"inherit",resize:"vertical"}})]}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:4},children:[(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),disabled:c,style:{padding:"8px 14px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:s("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void h(),disabled:c,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:s(p?"tasks.actionRetry":"tasks.actionRequeue")})]})]})]})})}let pS=["work","retry","return","merge"];function pC({open:e,onOpenChange:t,projectRoot:r}){let{t:i}=(0,Y.s)(),{projects:s}=u7(),[l,a]=(0,o.useState)(""),[d,c]=(0,o.useState)(()=>ps()),[u,p]=(0,o.useState)(!1),[h,x]=(0,o.useState)(!1);if(L(!h,()=>t(!1)),(0,o.useEffect)(()=>{if(!e)return;let t=r??s[0]??"";a(t),t&&(0,dG.Pf)(t).then(e=>{p(null!=e),c(e??ps())}).catch(()=>{p(!1),c(ps())})},[e,r,s]),!e)return null;let f=(e,t)=>{c(r=>({...r,[e]:t}))},m=async()=>{if(l&&!h){x(!0);try{await (0,dG.eA)(l,d),p(!0),t(!1)}catch(e){console.error("save settings failed",e)}finally{x(!1)}}},v=async()=>{if(l)try{await (0,dG.E)(l),p(!1),c(ps())}catch(e){console.error("reset settings failed",e)}},y={width:"100%",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"7px 10px",color:"var(--text)",fontSize:12,outline:"none",fontFamily:"inherit"},b={display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,padding:"10px 0",borderBottom:"1px solid var(--border)"};return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:960,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(560px, calc(100vw - 48px))",maxHeight:"82vh",overflowY:"auto",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:14,boxShadow:"0 16px 48px rgba(0,0,0,0.3)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px 0"},children:[(0,n.jsx)("h3",{style:{fontSize:15,fontWeight:600,margin:0},children:i("tasks.settingsTitle")}),(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),"aria-label":i("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(g.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10,padding:"14px 16px 16px"},children:[(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("span",{style:{fontSize:12,fontWeight:500},children:i("tasks.settingsProject")}),(0,n.jsx)("select",{value:l,onChange:e=>a(e.target.value),style:y,children:s.map(e=>(0,n.jsx)("option",{value:e,children:e.split("/").filter(Boolean).pop()??e},e))})]}),l?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{style:b,children:[(0,n.jsx)("span",{style:{fontSize:12},children:i("tasks.settingsAutoProcess")}),(0,n.jsx)("input",{type:"checkbox",checked:d.autoProcess,onChange:e=>f("autoProcess",e.target.checked),style:{accentColor:"var(--accent)"}})]}),(0,n.jsxs)("div",{style:b,children:[(0,n.jsx)("span",{style:{fontSize:12},children:i("tasks.settingsMaxConcurrent")}),(0,n.jsx)("input",{type:"number",min:0,value:d.maxConcurrent,onChange:e=>f("maxConcurrent",Math.max(0,Number(e.target.value)||0)),style:{...y,width:90}})]}),(0,n.jsxs)("div",{style:b,children:[(0,n.jsx)("span",{style:{fontSize:12},children:i("tasks.settingsMergeStrategy")}),(0,n.jsxs)("select",{value:d.mergeStrategy,onChange:e=>f("mergeStrategy",e.target.value),style:{...y,width:140},children:[(0,n.jsx)("option",{value:"merge",children:i("tasks.mergeStrategyMerge")}),(0,n.jsx)("option",{value:"squash",children:i("tasks.mergeStrategySquash")})]})]}),(0,n.jsxs)("div",{style:b,children:[(0,n.jsx)("span",{style:{fontSize:12},children:i("tasks.settingsDeleteWorktree")}),(0,n.jsx)("input",{type:"checkbox",checked:d.deleteWorktreeDefault,onChange:e=>f("deleteWorktreeDefault",e.target.checked),style:{accentColor:"var(--accent)"}})]}),(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("span",{style:{fontSize:12},children:i("tasks.settingsPreflightCommand")}),(0,n.jsx)("input",{value:d.preflightCommand??"",onChange:e=>f("preflightCommand",e.target.value||null),placeholder:i("tasks.settingsPreflightPlaceholder"),style:{...y,fontFamily:"var(--font-mono)",fontSize:11}})]}),(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("span",{style:{fontSize:12},children:i("tasks.settingsInitCommand")}),(0,n.jsx)("input",{value:d.initCommand??"",onChange:e=>f("initCommand",e.target.value||null),placeholder:i("tasks.settingsInitPlaceholder"),style:{...y,fontFamily:"var(--font-mono)",fontSize:11}})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6,paddingTop:4},children:[(0,n.jsx)("span",{style:{fontSize:12,fontWeight:500},children:i("tasks.settingsStagePrompts")}),pS.map(e=>(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("span",{style:{fontSize:11,color:"var(--text-muted)"},children:i(`tasks.stage.${e}`)}),(0,n.jsx)("input",{value:d.stagePrompts?.[e]??"",onChange:t=>f("stagePrompts",{...d.stagePrompts??{},[e]:t.target.value}),style:{...y,fontSize:11}})]},e))]}),u&&(0,n.jsx)("button",{type:"button",onClick:()=>void v(),style:{alignSelf:"flex-start",padding:"6px 12px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text-muted)",fontSize:12,cursor:"pointer"},children:i("tasks.settingsReset")})]}):(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",padding:8},children:i("tasks.settingsNoProject")}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:4},children:[(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),style:{padding:"8px 14px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:i("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void m(),disabled:!l||h,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:i("tasks.save")})]})]})]})})}function pz({open:e,onOpenChange:t,task:r}){let{t:i}=(0,Y.s)();return(L(e&&!!r,()=>t(!1)),(0,o.useEffect)(()=>{if(!e)return},[e,r]),e&&r)?(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:970,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(520px, calc(100vw - 48px))",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:14,boxShadow:"0 16px 48px rgba(0,0,0,0.3)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px 0"},children:[(0,n.jsx)("h3",{style:{fontSize:15,fontWeight:600,margin:0},children:i("tasks.sessionTitle")}),(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),"aria-label":i("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(g.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10,padding:"14px 16px 16px",fontSize:12},children:[(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:10},children:[(0,n.jsx)("span",{style:{color:"var(--text-muted)"},children:i("tasks.sessionId")}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,overflowWrap:"anywhere"},children:r.conversationId??"—"})]}),r.sessionFile?(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:10},children:[(0,n.jsx)("span",{style:{color:"var(--text-muted)"},children:i("tasks.sessionFile")}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,overflowWrap:"anywhere"},children:r.sessionFile})]}):null,(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",lineHeight:1.6},children:i("tasks.sessionHint")}),(0,n.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginTop:4},children:(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:i("i18n.close")})})]})]})}):null}let pT="__all__",pR="pi-tasks-board-filter",pI={showCanceled:!1,showArchived:!1},pM="pi:open-task-settings";function pE(){let{t:e}=(0,Y.s)(),{attentionCount:t}=u7();return(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,height:36,flexShrink:0,padding:"0 16px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)"},children:[(0,n.jsxs)("h1",{style:{margin:0,display:"flex",alignItems:"center",gap:6,fontSize:13,fontWeight:600},children:[(0,n.jsx)(eJ.x,{size:15,color:"var(--text-muted)","aria-hidden":"true"}),e("tasks.title"),(0,n.jsx)("span",{style:{borderRadius:999,background:"rgba(37,99,235,0.12)",color:"var(--accent)",padding:"1px 8px",fontSize:9,fontWeight:700,textTransform:"uppercase",letterSpacing:"0.04em"},children:"Beta"})]}),t>0?(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,borderRadius:999,background:"rgba(239,68,68,0.12)",color:"var(--status-error)",padding:"1px 8px",fontSize:10,fontWeight:700},children:[t," ",e("tasks.attentionBadge")]}):null,(0,n.jsx)("div",{style:{flex:1}}),(0,n.jsxs)("button",{type:"button",onClick:()=>window.dispatchEvent(new Event(pM)),style:{display:"inline-flex",alignItems:"center",gap:5,height:26,padding:"0 10px",borderRadius:7,background:"none",border:"none",color:"var(--text-muted)",fontSize:12,cursor:"pointer"},title:e("tasks.settingsTitle"),children:[(0,n.jsx)(pt.O,{size:13,"aria-hidden":"true"}),e("tasks.settingsTitle")]})]})}function p$({activeProject:e}){let{t}=(0,Y.s)(),{tasks:i,projects:s,refetch:l}=u7(),[a,d]=(0,o.useState)(null),[c,u]=(0,o.useState)(()=>(function(){try{let e=window.localStorage.getItem(pR);if(e){let t=JSON.parse(e);return{showCanceled:t.showCanceled??!1,showArchived:t.showArchived??!1}}}catch{}return pI})()),[h,g]=(0,o.useState)(!1);(0,o.useEffect)(()=>{try{window.localStorage.setItem(pR,JSON.stringify(c))}catch{}},[c]);let[x,f]=(0,o.useState)(null),[m,v]=(0,o.useState)(!1),y=(0,o.useRef)(null),b=(0,o.useRef)({x:0,y:0}),k=(0,o.useRef)(null),j=(0,o.useRef)(null),[w,C]=(0,o.useState)(null),z=(0,o.useRef)(null);z.current=w;let T=(0,o.useRef)(!1),R=(0,o.useRef)(!1),[I,M]=(0,o.useState)(()=>Date.now());(0,o.useEffect)(()=>{let e=window.setInterval(()=>M(Date.now()),6e4);return()=>window.clearInterval(e)},[]);let[E,$]=(0,o.useState)(!1),[W,L]=(0,o.useState)(null),[N,A]=(0,o.useState)(null);(0,o.useEffect)(()=>{let e=()=>{let e,t=(e=aG,aG=null,e);t&&(L(null),A(t),$(!0))};return e(),window.addEventListener(aY,e),()=>window.removeEventListener(aY,e)},[]);let[P,F]=(0,o.useState)(null),[D,H]=(0,o.useState)(null),[O,B]=(0,o.useState)(!1),[U,_]=(0,o.useState)(null),[q,K]=(0,o.useState)(!1),[V,J]=(0,o.useState)(null),[G,X]=(0,o.useState)("retry"),[Z,Q]=(0,o.useState)(!1),[ee,et]=(0,o.useState)(null),[er,en]=(0,o.useState)(!1),[eo,ei]=(0,o.useState)(!1),[es,el]=(0,o.useState)(null),[ea,ed]=(0,o.useState)(!1);(0,o.useEffect)(()=>{let e=()=>ei(!0);return window.addEventListener(pM,e),()=>window.removeEventListener(pM,e)},[]);let ec=(0,o.useMemo)(()=>null==a?i:i.filter(e=>e.projectRoot===a),[i,a]),eu=(0,o.useMemo)(()=>(function(e,t,r=!1){let n={todo:[],inProgress:[],attention:[],done:[]};for(let o of e)("canceled"!==o.status||t)&&(null==o.archivedAt||r)&&n[function(e){switch(e){case"todo":case"queued":return"todo";case"preparing":case"running":return"inProgress";case"awaiting_input":case"review":case"merging":case"failed":return"attention";case"done":case"canceled":return"done"}}(o.status)].push(o);for(let e of po)n[e].sort((e,t)=>(t.updatedAt??"").localeCompare(e.updatedAt??""));return n})(ec,c.showCanceled,c.showArchived),[ec,c]),ep=(0,o.useMemo)(()=>{let e=eu.todo;if(null==w)return e;let t=new Map(e.map(e=>[e.id,e])),r=w.flatMap(e=>t.get(e)??[]);for(let t of e)w.includes(t.id)||r.push(t);return r},[eu.todo,w]),eh=(0,o.useMemo)(()=>i.find(e=>e.id===P)??null,[i,P]),eg=(0,o.useMemo)(()=>i.find(e=>e.id===es)??null,[i,es]),ex=(0,o.useCallback)(async e=>{try{await e()}catch(e){console.error("task action failed",e)}finally{l()}},[l]),ef=(0,o.useCallback)(e=>{null!=e.conversationId&&(el(e.id),ed(!0))},[el,ed]),em=(0,o.useCallback)(e=>{H(e),B(!0)},[H,B]),ev=(0,o.useCallback)(()=>{L(null),$(!0)},[L,$]),ey=(0,o.useCallback)((e,t)=>{let r=k.current,n=y.current;r&&n&&(r.style.transform=`translate3d(${e-n.dx}px, ${t-n.dy}px, 0)`)},[]),eb=e=>{let t=e.currentTarget.getBoundingClientRect();y.current={dx:e.clientX-t.left,dy:e.clientY-t.top,width:t.width}},ek=(0,o.useCallback)(e=>{if(f(null),v(!1),e){T.current=!1;return}requestAnimationFrame(()=>{T.current=!1})},[f,v]),ej=(0,o.useCallback)(()=>{R.current=!0,C(null),ek(!0)},[ek,C]);(0,o.useEffect)(()=>{if(!x)return;let e=()=>{document.hidden&&ej()};return window.addEventListener("blur",ej),document.addEventListener("visibilitychange",e),()=>{window.removeEventListener("blur",ej),document.removeEventListener("visibilitychange",e)}},[x,ej]),(0,o.useEffect)(()=>{x&&!ep.some(e=>e.id===x.task.id)&&ej()},[x,ep,ej]);let ew=(0,o.useCallback)((e,t,r)=>{if(R.current){ek(!0),C(null);return}let n=j.current?.getBoundingClientRect(),o=null!=n&&t>=n.left&&t<=n.right&&r>=n.top&&r<=n.bottom;if(ek(!1),o){C(null);let t=i.find(t=>t.id===e.id);t?.status==="todo"&&null!=a&&ex(()=>(0,dG.oQ)(e.id,e.projectRoot,"start"));return}let s=z.current;null!=a&&null!=s&&(async()=>{try{await (0,dG.Lu)(a,s)}catch(e){console.error("reorder failed",e)}await l(),C(null)})()},[ex,ek,a,l,i]),eS=(0,o.useCallback)(()=>{ex(async()=>{let e=await (0,dG.a5)(a);e>0&&console.log(`started ${e} tasks`)})},[ex,a]),eC=(0,o.useCallback)(()=>{let e=eu.done.filter(e=>null==e.archivedAt);0!==e.length&&ex(()=>Promise.all(e.map(e=>(0,dG.et)(e.id,e.projectRoot,!0))))},[ex,eu.done]),ez=+(c.showCanceled!==pI.showCanceled)+ +(c.showArchived!==pI.showArchived),eT=i.length>0,eR=(0,o.useMemo)(()=>{let t=new Set(s);return e&&t.add(e),[...t].sort()},[s,e]),eI=(0,o.useMemo)(()=>{let e=new Map;for(let t of eR)e.set(t,t.split("/").filter(Boolean).pop()??t);return e},[eR]);return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0},children:[eT&&(0,n.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:8,padding:"14px 16px 8px"},children:[(0,n.jsxs)("select",{value:a??pT,onChange:e=>d(e.target.value===pT?null:e.target.value),style:{height:30,borderRadius:999,padding:"0 10px",background:"var(--bg-panel)",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,fontWeight:500,cursor:"pointer",maxWidth:"14rem"},"aria-label":t("tasks.allFolders"),children:[(0,n.jsx)("option",{value:pT,children:t("tasks.allFolders")}),eR.map(e=>(0,n.jsx)("option",{value:e,children:eI.get(e)??e},e))]}),(0,n.jsxs)("div",{style:{position:"relative"},children:[(0,n.jsxs)("button",{type:"button",onClick:()=>g(e=>!e),style:{display:"inline-flex",alignItems:"center",gap:6,height:30,borderRadius:999,padding:"0 12px",background:"var(--bg-panel)",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,fontWeight:500,cursor:"pointer"},children:[(0,n.jsx)(pr.n,{size:13,"aria-hidden":"true"}),t("tasks.filter"),ez>0?(0,n.jsx)("span",{style:{borderRadius:999,background:"rgba(37,99,235,0.12)",color:"var(--accent)",padding:"1px 6px",fontSize:10,fontWeight:700},children:ez}):null]}),h&&(0,n.jsx)("div",{style:{position:"absolute",top:34,left:0,zIndex:50,width:200,borderRadius:12,padding:6,background:"var(--bg-panel)",border:"1px solid var(--border)",boxShadow:"0 8px 24px rgba(0,0,0,0.16)"},children:[["showCanceled",t("tasks.showCanceled")],["showArchived",t("tasks.showArchived")]].map(([e,t])=>(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 8px",borderRadius:8,cursor:"pointer",fontSize:12},children:[(0,n.jsx)("input",{type:"checkbox",checked:c[e],onChange:t=>u(r=>({...r,[e]:t.target.checked})),style:{accentColor:"var(--accent)"}}),t]},e))})]}),(0,n.jsx)("div",{style:{flex:1}}),(0,n.jsxs)("button",{type:"button",onClick:eS,style:{display:"inline-flex",alignItems:"center",gap:6,height:30,borderRadius:999,padding:"0 12px",background:"none",border:"none",color:"var(--text)",fontSize:12,cursor:"pointer"},title:t("tasks.startAll"),children:[(0,n.jsx)(pn.j,{size:13,"aria-hidden":"true"}),t("tasks.startAll")]}),(0,n.jsxs)("button",{type:"button",onClick:ev,style:{display:"inline-flex",alignItems:"center",gap:6,height:30,borderRadius:999,padding:"0 14px",background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:[(0,n.jsx)(S.F,{size:13,weight:"bold","aria-hidden":"true"}),t("tasks.new")]})]}),eT?(0,n.jsx)("div",{style:{flex:1,minHeight:0,overflowX:"auto"},children:(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, minmax(0, 1fr))",gap:16,minWidth:"56rem",height:"100%",padding:"4px 16px 16px"},children:pl.map(e=>{let r="todo"===e?ep:eu[e],o=pa[e],i=e=>(0,n.jsx)(pg,{task:e,folderName:e.projectRoot?eI.get(e.projectRoot)??null:null,now:I,onOpen:()=>{T.current||F(e.id)},onStart:()=>void ex(()=>(0,dG.oQ)(e.id,e.projectRoot,"start")),onCancel:()=>{_(e),K(!0)},onRetry:()=>{J(e),X("retry"),Q(!0)},onRequeue:()=>{J(e),X("requeue"),Q(!0)},onViewSession:()=>ef(e),onMerge:()=>{pi(e)?(et(e),en(!0)):em(e)},onArchive:()=>void ex(()=>(0,dG.et)(e.id,e.projectRoot,null==e.archivedAt)),onEdit:()=>{L(e),$(!0)}},e.id);return(0,n.jsxs)("div",{ref:"inProgress"===e?j:void 0,style:{display:"flex",flexDirection:"column",minHeight:0,gap:8},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,height:24,flexShrink:0,padding:"0 2px"},children:[(0,n.jsx)("span",{style:{width:3,height:14,borderRadius:999,background:o.marker,flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("h2",{style:{fontSize:12,fontWeight:600,color:"var(--text)"},children:t(`tasks.col${e[0].toUpperCase()}${e.slice(1)}`)}),(0,n.jsx)("span",{style:{borderRadius:999,background:"var(--bg-hover)",padding:"1px 8px",fontSize:10,fontWeight:600,color:"var(--text-muted)"},children:r.length}),(0,n.jsx)("div",{style:{flex:1}}),"done"===e&&eu.done.some(e=>null==e.archivedAt)?(0,n.jsx)("button",{type:"button",onClick:eC,style:{background:"none",border:"none",cursor:"pointer",fontSize:11,color:"var(--text-muted)",padding:"2px 6px",borderRadius:6},children:t("tasks.archiveAllDone")}):null]}),0===r.length?(0,n.jsx)("div",{style:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:4,borderRadius:12,border:"1px dashed var(--border)",padding:16,textAlign:"center",..."inProgress"===e&&x?m?{borderColor:"var(--accent)",background:"rgba(37,99,235,0.08)"}:{borderColor:"var(--accent)"}:{}},children:(0,n.jsx)("p",{style:{fontSize:12,color:"var(--text-muted)"},children:t(`tasks.emptyCol${e[0].toUpperCase()}${e.slice(1)}`)})}):(0,n.jsx)("div",{style:{flex:1,minHeight:0,overflowY:"auto",borderRadius:12,transition:"background 0.15s, box-shadow 0.15s",..."inProgress"===e&&x?m?{background:"rgba(37,99,235,0.06)",boxShadow:"inset 0 0 0 2px var(--accent)"}:{boxShadow:"inset 0 0 0 1px rgba(37,99,235,0.25)"}:{}},children:(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:16,paddingBottom:4},children:r.map(t=>"todo"===e?(0,n.jsx)("div",{draggable:!0,onDragStart:e=>{var r,n;e.dataTransfer.effectAllowed="move",r=e.clientX,n=e.clientY,T.current=!0,R.current=!1,b.current={x:r,y:n},f({task:t,width:y.current?.width??280})},onDrag:e=>{var t,r;let n,o;return b.current={x:t=e.clientX,y:r=e.clientY},ey(t,r),void((o=null!=(n=j.current?.getBoundingClientRect())&&t>=n.left&&t<=n.right&&r>=n.top&&r<=n.bottom)!==m&&v(o))},onDragEnd:e=>ew(t,e.clientX,e.clientY),onPointerDown:eb,style:{cursor:"grab",opacity:x?.task.id===t.id?.4:1},children:i(t)},t.id):(0,n.jsx)("div",{children:i(t)},t.id))})})]},e)})})}):(0,n.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:12,padding:32,textAlign:"center"},children:[(0,n.jsx)(eJ.x,{size:40,color:"var(--text-dim)",opacity:.4,"aria-hidden":"true"}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("p",{style:{fontSize:14,fontWeight:500,color:"var(--text)"},children:t("tasks.empty")}),(0,n.jsx)("p",{style:{maxWidth:320,fontSize:12,color:"var(--text-muted)",lineHeight:1.6},children:t("tasks.emptyHint")})]}),(0,n.jsxs)("button",{type:"button",onClick:ev,style:{display:"inline-flex",alignItems:"center",gap:6,padding:"7px 14px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:[(0,n.jsx)(S.F,{size:13,weight:"bold","aria-hidden":"true"}),t("tasks.new")]})]}),(0,n.jsx)(pk,{open:E,onOpenChange:$,task:W,defaultProject:N?.projectRoot??a??e??null,projects:eR,prefillTitle:N?N.text.slice(0,80):void 0,prefillPrompt:N?N.text:void 0,onSubmit:async(e,t,n)=>{await ex(async()=>{let{createTaskApi:o}=await Promise.resolve().then(r.bind(r,23084)),{updateTaskApi:i}=await Promise.resolve().then(r.bind(r,23084));W?await i(W.id,e,{title:t,config:n}):await o({projectRoot:e,title:t,config:n})}),$(!1),A(null)}}),(0,n.jsx)(py,{open:null!=P,onOpenChange:e=>{e||F(null)},task:eh,onViewSession:ef,onMerge:em,onEdit:e=>{L(e),$(!0)},onCancel:e=>{_(e),K(!0)},onRetry:e=>{J(e),X("retry"),Q(!0)},onRequeue:e=>{J(e),X("requeue"),Q(!0)},onComplete:e=>{et(e),en(!0)}}),(0,n.jsx)(pj,{open:O,onOpenChange:B,task:D}),(0,n.jsx)(px,{open:q,onOpenChange:K,task:U}),(0,n.jsx)(pw,{open:Z,onOpenChange:Q,task:V,kind:G}),(0,n.jsx)(pf,{open:er,onOpenChange:en,task:ee}),(0,n.jsx)(pz,{open:ea&&null!=eg,onOpenChange:ed,task:eg}),(0,n.jsx)(pC,{open:eo,onOpenChange:ei,projectRoot:a}),x?(0,p.createPortal)((0,n.jsx)("div",{ref:k,style:{position:"fixed",left:0,top:0,zIndex:999,pointerEvents:"none",width:x.width,willChange:"transform"},"aria-hidden":"true",children:(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8,borderRadius:12,border:m?"1px solid var(--accent)":"1px solid var(--border)",background:"var(--bg-panel)",padding:12,boxShadow:"0 8px 24px rgba(0,0,0,0.2)",transform:"rotate(-1deg)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:8},children:[(0,n.jsx)("span",{style:{minWidth:0,overflowWrap:"break-word",fontSize:13,fontWeight:500},children:x.task.title}),(0,n.jsx)(pp,{task:x.task})]}),m?(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,fontSize:11,fontWeight:600,color:"var(--accent)"},children:[(0,n.jsx)(pn.j,{size:11,weight:"bold","aria-hidden":"true"}),t("tasks.dropToStart")]}):null]})}),document.body):null]})}var pW=r(62235),pL=r(1022);function pN(){return!!window.__TAURI_INTERNALS__}let pA=null;function pP(){return pA||(pA=r.e(8518).then(r.bind(r,38518)).then(e=>e.getCurrentWindow())),pA}async function pF(e){let t=await pP();await e(t)}async function pD(){await pF(e=>e.minimize())}async function pH(){await pF(e=>e.toggleMaximize())}async function pO(){await pF(e=>e.startDragging())}async function pB(){await pF(e=>e.close())}async function pU(){return(await pP()).isMaximized()}function p_(){let[e,t]=(0,o.useState)(null);return(0,o.useEffect)(()=>{pN()&&t(function(){if("u"<typeof navigator)return null;let e=navigator.platform||"";return/mac/i.test(e)?"macos":/win/i.test(e)?"windows":/linux/i.test(e)?"linux":null}())},[]),{platform:e,isDesktop:null!==e,isMacOS:"macos"===e,dragRegionProps:e?{"data-tauri-drag-region":!0}:{}}}let pq="pi-web-island-pos";function pK(e,t,r,n,o,i){return{x:Math.min(Math.max(0,e),Math.max(0,r-o)),y:Math.min(Math.max(0,t),Math.max(0,n-i))}}let pV={display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,flexShrink:0,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",borderRadius:7,transition:"background 0.12s, color 0.12s"};function pJ({onRefreshSession:e}={}){let{t:t}=(0,Y.s)(),{isDark:r}=eA(),{isDesktop:i,isMacOS:s}=p_(),l=i&&!s,[a,d]=(0,o.useState)(!1),[c,u]=(0,o.useState)(null),[p,h]=(0,o.useState)(null),g=(0,o.useRef)(null),x=(0,o.useRef)(null);(0,o.useEffect)(()=>{l&&pP().then(()=>void 0,e=>{throw pA=null,e}).catch(e=>{console.error("[DynamicIsland] window API preload failed:",e)})},[l]);let f=(0,o.useCallback)(e=>{e().catch(e=>{console.error("[DynamicIsland] window command failed:",e),u(String(e)),window.setTimeout(()=>u(null),4e3)})},[]),m=(0,o.useCallback)(()=>{window.location.reload()},[]);(0,o.useEffect)(()=>{if(!pN()||!l)return;let e=()=>{pU().then(d)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[l]),(0,o.useEffect)(()=>{if(l)try{let e=localStorage.getItem(pq);if(e){let t=JSON.parse(e);"number"==typeof t.x&&"number"==typeof t.y&&h(pK(t.x,t.y,window.innerWidth,window.innerHeight,168,34))}}catch{}},[l]),(0,o.useEffect)(()=>{if(l&&p)try{localStorage.setItem(pq,JSON.stringify(p))}catch{}},[p,l]);let[v,y]=(0,o.useState)(0);(0,o.useEffect)(()=>{if(!l)return;let e=()=>{y(window.innerWidth),h(e=>e?pK(e.x,e.y,window.innerWidth,window.innerHeight,168,34):e)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[l]);let b=(0,o.useCallback)(e=>{if(0!==e.button||e.target.closest?.("[data-island-btn]"))return;let t=g.current;if(!t)return;let r=t.getBoundingClientRect();x.current={startX:e.clientX,startY:e.clientY,origX:r.left,origY:r.top},e.currentTarget.setPointerCapture(e.pointerId)},[]),k=(0,o.useCallback)(e=>{let t=x.current;if(!t)return;let r=e.clientX-t.startX,n=e.clientY-t.startY;h(pK(t.origX+r,t.origY+n,window.innerWidth,window.innerHeight,168,34))},[]),j=(0,o.useCallback)(e=>{x.current=null;try{e.currentTarget.releasePointerCapture(e.pointerId)}catch{}},[]),w=(0,o.useCallback)(()=>pH().then(()=>{d(e=>!e)}),[]),S=(0,o.useCallback)(e=>{if(!x.current&&!e.target.closest?.("[data-island-btn]")){h(null);try{localStorage.removeItem(pq)}catch{}}},[]);if(!l)return null;let C=v||window.innerWidth,T=null!==p?p.x:Math.max(0,C-168-14);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{ref:g,role:"toolbar","aria-label":t("desktop.islandLabel"),title:t("desktop.islandResetHint"),onPointerDown:b,onPointerMove:k,onPointerUp:j,onPointerCancel:j,onDoubleClick:S,onMouseDown:e=>e.stopPropagation(),onDoubleClickCapture:e=>e.stopPropagation(),style:{position:"fixed",top:null!==p?p.y:100,left:T,zIndex:700,display:"flex",alignItems:"center",gap:1,padding:"3px 5px",borderRadius:999,background:"color-mix(in srgb, var(--bg-panel) 88%, transparent)",border:"1px solid var(--border)",boxShadow:r?"0 6px 24px rgba(0,0,0,0.45)":"0 6px 20px rgba(0,0,0,0.12)",cursor:"grab",userSelect:"none",touchAction:"none"},children:[(0,n.jsx)("span",{"data-island-grip":!0,"aria-hidden":"true",title:t("desktop.islandDrag"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:12,height:26,flexShrink:0,marginRight:2,color:"var(--text-dim)",cursor:"grab"},children:(0,n.jsxs)("svg",{width:"6",height:"14",viewBox:"0 0 6 14",fill:"currentColor","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"1.5",cy:"2",r:"1.2"}),(0,n.jsx)("circle",{cx:"4.5",cy:"2",r:"1.2"}),(0,n.jsx)("circle",{cx:"1.5",cy:"7",r:"1.2"}),(0,n.jsx)("circle",{cx:"4.5",cy:"7",r:"1.2"}),(0,n.jsx)("circle",{cx:"1.5",cy:"12",r:"1.2"}),(0,n.jsx)("circle",{cx:"4.5",cy:"12",r:"1.2"})]})}),e&&(0,n.jsx)("button",{type:"button","data-island-btn":!0,"aria-label":t("desktop.refreshSession"),title:t("desktop.refreshSession"),onClick:()=>{try{e()}catch(e){console.error("[DynamicIsland] refresh session failed:",e)}},style:pV,onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(pL.P,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("button",{type:"button","data-island-btn":!0,"aria-label":t("desktop.reloadPage"),title:t("desktop.reloadPage"),onClick:m,style:pV,onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(z.S,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("span",{"aria-hidden":"true",style:{width:1,height:18,flexShrink:0,background:"var(--border)",margin:"0 3px"}}),(0,n.jsx)("button",{type:"button","data-island-btn":!0,"aria-label":t("desktop.minimize"),title:t("desktop.minimize"),onClick:()=>f(pD),style:pV,onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1",children:(0,n.jsx)("line",{x1:"1",y1:"5",x2:"9",y2:"5"})})}),(0,n.jsx)("button",{type:"button","data-island-btn":!0,"aria-label":t(a?"desktop.restore":"desktop.maximize"),title:t(a?"desktop.restore":"desktop.maximize"),onClick:()=>f(w),style:pV,onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:a?(0,n.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1",children:[(0,n.jsx)("rect",{x:"2",y:"0.5",width:"7.5",height:"7.5"}),(0,n.jsx)("path",{d:"M0.5 2.5 V9.5 H7.5"})]}):(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1",children:(0,n.jsx)("rect",{x:"0.5",y:"0.5",width:"9",height:"9"})})}),(0,n.jsx)("button",{type:"button","data-island-btn":!0,"aria-label":t("desktop.close"),title:t("desktop.close"),onClick:()=>f(pB),style:pV,onMouseEnter:e=>{e.currentTarget.style.background="#e81123",e.currentTarget.style.color="#fff"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1",children:[(0,n.jsx)("line",{x1:"0",y1:"0",x2:"10",y2:"10"}),(0,n.jsx)("line",{x1:"10",y1:"0",x2:"0",y2:"10"})]})})]}),c&&(0,n.jsx)("div",{role:"alert",style:{position:"fixed",top:(null!==p?p.y:100)+34+6,left:T,zIndex:700,maxWidth:280,padding:"5px 10px",borderRadius:8,background:"var(--bg-panel)",border:"1px solid var(--status-error, #f85149)",color:"var(--status-error, #f85149)",fontSize:11,lineHeight:1.5,wordBreak:"break-all",boxShadow:r?"0 6px 24px rgba(0,0,0,0.45)":"0 6px 20px rgba(0,0,0,0.12)",pointerEvents:"none"},children:c})]})}function pY(){try{return window.localStorage}catch{return null}}let pG="pi-web:desktop-server-hint-seen";function pX(e=pY()){if(e)try{e.setItem(pG,"1")}catch{}}function pZ(){let{t:e}=(0,Y.s)(),[t,r]=(0,o.useState)(!1);(0,o.useEffect)(()=>{let e=!1;try{e=new URLSearchParams(window.location.search).has("piweb_connected")}catch{e=!1}e&&function(e=pY()){if(!e)return!1;try{return"1"!==e.getItem(pG)}catch{return!1}}()&&r(!0)},[]);let i=(0,o.useCallback)(()=>{pX(),r(!1)},[]),s=(0,o.useCallback)(()=>{pX(),r(!1),window.location.href="piweb-switch://manage"},[]);return t?(0,n.jsxs)("div",{role:"status",style:{position:"fixed",top:56,right:16,zIndex:700,width:288,padding:"14px 16px 14px",borderRadius:12,background:"var(--bg-panel)",border:"1px solid var(--border)",boxShadow:"0 12px 36px rgba(0,0,0,0.32)",color:"var(--text)"},children:[(0,n.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",top:-6,right:28,width:10,height:10,background:"var(--bg-panel)",borderTop:"1px solid var(--border)",borderLeft:"1px solid var(--border)",transform:"rotate(45deg)"}}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:10},children:[(0,n.jsx)(N.X,{size:18,color:"var(--accent)",style:{flexShrink:0,marginTop:1}}),(0,n.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,n.jsx)("div",{style:{fontSize:13.5,fontWeight:600,lineHeight:1.45},children:e("desktop.serverHintTitle")}),(0,n.jsx)("p",{style:{margin:"6px 0 0",fontSize:12.5,lineHeight:1.65,color:"var(--text-muted)"},children:e("desktop.serverHintBody")})]}),(0,n.jsx)("button",{type:"button",onClick:i,"aria-label":e("desktop.serverHintDismiss"),title:e("desktop.serverHintDismiss"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,padding:0,flexShrink:0,background:"none",border:"none",cursor:"pointer",color:"var(--text-dim)"},children:(0,n.jsx)(g.X,{size:14,"aria-hidden":"true"})})]}),(0,n.jsx)("button",{type:"button",onClick:s,style:{marginTop:12,width:"100%",display:"flex",alignItems:"center",justifyContent:"center",gap:6,padding:"8px 12px",borderRadius:9,background:"var(--accent)",border:"none",color:"var(--accent-fg)",fontSize:13,fontWeight:600,cursor:"pointer"},children:e("desktop.serverHintAction")})]}):null}function pQ({isDark:e,toggleTheme:t,translate:r}){let[i,s]=(0,o.useState)(!1);(0,o.useEffect)(()=>{s(!0)},[]);let l=r(i?e?"desktop.switchToLight":"desktop.switchToDark":"desktop.switchToLight");return(0,n.jsx)("button",{className:"app-no-drag",suppressHydrationWarning:!0,onClick:e=>{let r=e.currentTarget.getBoundingClientRect();t({x:r.left+r.width/2,y:r.top+r.height/2})},title:l,"aria-label":l,"aria-pressed":!i||e,style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:i?e?(0,n.jsx)(ec.b,{size:16,"aria-hidden":"true"}):(0,n.jsx)(ed.A,{size:16,"aria-hidden":"true"}):(0,n.jsx)(ec.b,{size:16,"aria-hidden":"true"})})}function p0({topBarRef:e,sidebarOpen:t,onSidebarToggle:r,isDark:i,toggleTheme:s,isMobile:l,showTasks:a,tasksBoardEnabled:d,onToggleTasks:c,systemPrompt:u,activeTopPanel:p,topPanelPos:h,sessionStats:g,selectedSession:x,contextUsage:m,copiedSessionField:v,onCopySessionField:y,rightPanelOpen:b,onToggleFilePanel:k,onRefreshSession:w,onOpenSettings:S,sessionTitle:C,onWorkspaceControlsHostChange:T,onTitleRightHostChange:R,desktopChrome:I,windowDrag:M}){let E,$,W,A,P,F,D,H,O,B,U,{t:_}=(0,Y.s)(),[q,K]=(0,o.useState)(!1);L(q,()=>K(!1));let[V,J]=(0,o.useState)(!1);return(0,o.useEffect)(()=>{try{J(new URLSearchParams(window.location.search).has("piweb_connected"))}catch{J(!1)}},[]),(0,n.jsxs)(n.Fragment,{children:[V&&(0,n.jsx)(pZ,{}),(0,n.jsxs)("div",{ref:e,className:"app-title-bar",...I?.dragRegionProps,...M,style:{display:"flex",alignItems:"center",flexShrink:0,borderBottom:"1px solid var(--border)",height:48,background:"transparent",position:"relative",zIndex:600},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",minWidth:0,height:"100%",flex:"0 1 auto",position:"relative",zIndex:1},children:[(0,n.jsx)("button",{className:"app-no-drag",onClick:r,title:t?_("desktop.hideSidebar"):_("desktop.showSidebar"),"aria-label":t?_("desktop.hideSidebar"):_("desktop.showSidebar"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,flexShrink:0,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)"},children:t?(0,n.jsx)(pW.V,{size:16,"aria-hidden":"true"}):(0,n.jsx)(j.B,{size:16,"aria-hidden":"true"})}),(0,n.jsx)("div",{className:"app-no-drag",ref:T,style:{flex:"0 1 auto",minWidth:0,maxWidth:"min(60vw, 820px)",height:"100%",display:"flex",alignItems:"center",padding:"0 8px 0 0",overflow:"visible"}})]}),(0,n.jsxs)("div",{className:"app-title-drag",style:{position:"relative",flex:"1 1 auto",minWidth:0,height:"100%",display:"flex",alignItems:"center",justifyContent:"flex-start",padding:l?"0 8px 0 4px":"0 4px 0 12px",overflow:"visible",userSelect:"none"},children:[C&&(0,n.jsx)("button",{type:"button",className:"app-no-drag",onClick:()=>{l&&K(!0)},style:{display:"block",flex:"0 1 auto",minWidth:0,maxWidth:l?"100%":"min(46vw, 560px)",fontSize:12,fontWeight:500,color:"var(--text-muted)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",background:"none",border:"none",cursor:"pointer",padding:"2px 6px",borderRadius:5},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:C}),(0,n.jsx)("div",{className:"app-no-drag",ref:R,style:{flexShrink:0,display:"flex",alignItems:"center",marginLeft:4,position:"relative",zIndex:2}})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:3,minWidth:0,height:"100%",flexShrink:+!l,overflow:"hidden",marginLeft:"auto",position:"relative",zIndex:1},children:[!l&&d&&(0,n.jsx)("button",{className:"app-no-drag",onClick:c,title:a?_("desktop.hideTaskBoard"):_("desktop.showTaskBoard"),"aria-label":a?_("desktop.hideTaskBoard"):_("desktop.showTaskBoard"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:a?"var(--bg-selected)":"none",border:"none",color:a?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background=a?"var(--bg-selected)":"none",e.currentTarget.style.color=a?"var(--text)":"var(--text-muted)"},children:(0,n.jsx)(eJ.x,{size:16,"aria-hidden":"true"})}),(0,n.jsx)("button",{className:"app-no-drag",onClick:k,title:b?_("desktop.hideFilePanel"):_("desktop.showFilePanel"),"aria-label":b?_("desktop.hideFilePanel"):_("desktop.showFilePanel"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:b?"var(--bg-selected)":"none",border:"none",color:b?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background=b?"var(--bg-selected)":"none",e.currentTarget.style.color=b?"var(--text)":"var(--text-muted)"},children:(0,n.jsx)(pW.V,{size:16,"aria-hidden":"true",style:{transform:"scaleX(-1)"}})}),(0,n.jsx)(pQ,{isDark:i,toggleTheme:s,translate:_}),V&&(0,n.jsx)("button",{className:"app-no-drag",type:"button",onClick:()=>{window.location.href="piweb-switch://manage"},title:_("desktop.serverSwitch"),"aria-label":_("desktop.serverSwitch"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(N.X,{size:16,"aria-hidden":"true"})}),!V&&!l&&(0,n.jsx)("button",{className:"app-no-drag",type:"button",onClick:w,title:_("desktop.refreshSession"),"aria-label":_("desktop.refreshSession"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(z.S,{size:16,"aria-hidden":"true"})}),(0,n.jsx)("button",{className:"app-no-drag",type:"button",onClick:S,title:_("desktop.settings"),"aria-label":_("desktop.settings"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(pt.O,{size:16,"aria-hidden":"true"})})]})]}),(0,n.jsx)(pJ,{onRefreshSession:w}),p&&h&&(0,n.jsxs)("div",{style:{position:"fixed",top:h.top,left:h.left,width:h.width,maxHeight:`calc(100dvh - ${h.top}px)`,overflowY:"auto",zIndex:500},children:["system"===p&&(0,n.jsx)("div",{style:{background:"var(--bg-panel)",borderBottom:"1px solid var(--border)"},children:u?(0,n.jsx)("div",{style:{maxHeight:"min(600px, 75vh)",overflowY:"auto",padding:"12px 16px",color:"var(--text-muted)",fontSize:12,lineHeight:1.6,whiteSpace:"pre-wrap",fontFamily:"var(--font-mono)"},children:u}):""===u?(0,n.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:"System prompt is empty (tools are disabled)"}):(0,n.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:"Send a message to load the system prompt"})}),"session"===p&&(0,n.jsx)("div",{style:{background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",boxShadow:"0 10px 28px rgba(0,0,0,0.10)",padding:"12px 16px"},children:g?(E=[...g.sessionName?[{label:_("desktop.name"),value:g.sessionName,copyField:null}]:[],{label:_("desktop.sessionInfoFile"),value:g.sessionFile??_("desktop.sessionInfoInMemory"),copyField:"file"},{label:_("desktop.sessionInfoId"),value:g.sessionId,copyField:"id"}],$=[[_("desktop.sessionInfoUser"),g.userMessages.toLocaleString()],[_("desktop.sessionInfoAssistant"),g.assistantMessages.toLocaleString()],[_("desktop.sessionInfoToolCalls"),g.toolCalls.toLocaleString()],[_("desktop.sessionInfoToolResults"),g.toolResults.toLocaleString()],[_("desktop.sessionInfoTotal"),g.totalMessages.toLocaleString()]],W=[[_("desktop.sessionInfoInput"),g.tokens.input.toLocaleString()],[_("desktop.sessionInfoOutput"),g.tokens.output.toLocaleString()],...g.tokens.cacheRead>0?[[_("desktop.sessionInfoCacheRead"),g.tokens.cacheRead.toLocaleString()]]:[],...g.tokens.cacheWrite>0?[[_("desktop.sessionInfoCacheWrite"),g.tokens.cacheWrite.toLocaleString()]]:[],[_("desktop.sessionInfoTotal"),g.tokens.total.toLocaleString()]],A=m??g.contextUsage,F=[...g.cost>0?[[_("desktop.sessionInfoCost"),`$${g.cost.toFixed(4)}`]]:[],...A?.contextWindow?[[_("desktop.sessionInfoContext"),`${null!==A.percent?`${A.percent.toFixed(1)}%`:"?"} / ${(P=A.contextWindow)>=1e6?`${(P/1e6).toFixed(1)}M`:P>=1e3?`${(P/1e3).toFixed(0)}k`:String(P)}`]]:[]],D=(e,t,r="left",o=!1)=>(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:e}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:o?"max-content max-content":"auto minmax(0, 1fr)",columnGap:o?14:12,rowGap:4,justifyContent:o?"start":void 0},children:t.map(([t,i])=>(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:t}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:o?"normal":"anywhere",textAlign:r,whiteSpace:"right"===r?"nowrap":"normal"},children:i})]},`${e}:${t}`))})]}),H=(e,t)=>{let r=v===e;return(0,n.jsx)("button",{type:"button",title:r?_("desktop.copied"):_({file:"desktop.copyFilePath",id:"desktop.copySessionId",projectDir:"desktop.copyProjectDir",gitBranch:"desktop.copyGitBranch",gitWorktree:"desktop.copyGitWorktree"}[e]),onClick:()=>y(e,t),style:{alignSelf:"start",display:"inline-flex",alignItems:"center",justifyContent:"center",width:22,height:22,marginTop:-2,color:r?"var(--accent)":"var(--text-dim)",background:"transparent",border:"1px solid var(--border)",borderRadius:4,cursor:"pointer",flex:"0 0 auto",transition:"color 0.12s, border-color 0.12s, background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)",e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color=r?"var(--accent)":"var(--text-dim)",e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="transparent"},children:r?(0,n.jsx)(f.J,{size:12,"aria-hidden":"true"}):(0,n.jsx)(sU.Q,{size:12,"aria-hidden":"true"})})},O=(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:_("desktop.sessionInfoTitle")}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:12,rowGap:8,alignItems:"start"},children:E.map(e=>(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:e.label}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:"anywhere",wordBreak:"break-word",whiteSpace:"normal"},children:e.value}),(0,n.jsx)("div",{children:e.copyField?H(e.copyField,e.value):null})]},`session-info:${e.label}`))})]}),U=(B=[...x?[{label:_("desktop.projectDir"),value:x.projectRoot??x.cwd,copyField:"projectDir"}]:[],...x?.branch?[{label:_("desktop.gitBranch"),value:x.branch,copyField:"gitBranch"}]:[],...x?.isWorktree?[{label:_("desktop.gitWorktree"),value:x.cwd,copyField:"gitWorktree"}]:[]]).length>0?(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:_("desktop.projectSection")}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:12,rowGap:8,alignItems:"start"},children:B.map(e=>(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:e.label}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:"anywhere",wordBreak:"break-word",whiteSpace:"normal"},children:e.value}),(0,n.jsx)("div",{children:e.copyField?H(e.copyField,e.value):null})]},`project-info:${e.label}`))})]}):null,(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:l?"1fr":"minmax(360px, 1.7fr) minmax(140px, 0.55fr) minmax(190px, 0.75fr)",gap:l?16:24,fontSize:12,lineHeight:1.5,fontFamily:"var(--font-mono)"},children:[(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:l?16:20,minWidth:0},children:[O,U]}),D(_("desktop.sessionInfoMessages"),$),D(_("desktop.sessionInfoTokens"),[...W,...F],"right",!0)]})):(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:_("desktop.sendMessageForSessionInfo")})})]}),q&&C&&(0,n.jsx)("div",{className:"app-no-drag",onClick:()=>K(!1),style:{position:"fixed",inset:0,zIndex:3e3,display:"flex",alignItems:"flex-start",justifyContent:"center",paddingTop:48,background:"rgba(0,0,0,0.35)",cursor:"pointer"},children:(0,n.jsxs)("div",{role:"dialog","aria-label":C,style:{position:"relative",maxWidth:"min(560px, calc(100vw - 32px))",maxHeight:"min(60vh, 400px)",overflow:"auto",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:12,boxShadow:"0 16px 40px rgba(0,0,0,0.3)",padding:"14px 40px 14px 18px",fontSize:13,lineHeight:1.6,color:"var(--text)",wordBreak:"break-word",whiteSpace:"pre-wrap",cursor:"default"},children:[C,(0,n.jsx)("button",{type:"button","aria-label":_("i18n.close"),title:_("i18n.close"),onClick:e=>{e.stopPropagation(),K(!1)},style:{position:"sticky",top:0,float:"right",marginLeft:8,display:"inline-flex",alignItems:"center",justifyContent:"center",width:24,height:24,padding:0,border:"none",borderRadius:5,background:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:14,lineHeight:1},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="none"},children:"✕"})]})})]})}function p1({status:e}){return"running"===e||"starting"===e?(0,n.jsxs)("svg",{className:"animate-spin",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",opacity:"0.25"}),(0,n.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):"queued"===e?(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,n.jsx)("path",{d:"M12 7v5l3 2"})]}):"failed"===e?(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,n.jsx)("path",{d:"m9 9 6 6M15 9l-6 6"})]}):"aborted"===e||"interrupted"===e?(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,n.jsx)("path",{d:"M9 9h6v6H9z"})]}):(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,n.jsx)("path",{d:"m8 12 3 3 5-6"})]})}function p2({session:e,main:t,selected:r,running:o,onSelect:i}){let{locale:s,t:l}=(0,Y.s)(),a=e.relation?.kind==="subagent"?e.relation:null,d=o?"running":a?.status??"completed",c=t?l("agentSwitcher.main"):a?.description||os(e),u=t?os(e):`${a?.profile??l("agentSwitcher.subagent")} \xb7 ${function(e,t){let r=new Date(e).getTime();if(!Number.isFinite(r))return"";let n=Math.round((r-Date.now())/1e3),o=new Intl.RelativeTimeFormat(t,{numeric:"auto"});if(60>Math.abs(n))return o.format(n,"second");let i=Math.round(n/60);if(60>Math.abs(i))return o.format(i,"minute");let s=Math.round(i/60);return 24>Math.abs(s)?o.format(s,"hour"):o.format(Math.round(s/24),"day")}(e.modified,s)}`;return(0,n.jsxs)("button",{type:"button",role:"option","aria-selected":r,onClick:i,style:{width:"100%",minHeight:56,display:"grid",gridTemplateColumns:"28px minmax(0, 1fr) auto",alignItems:"center",gap:9,padding:"7px 12px",border:"none",borderBottom:"1px solid var(--border)",borderLeft:r?"2px solid var(--accent)":"2px solid transparent",background:r?"var(--bg-selected)":"transparent",color:"var(--text)",cursor:"pointer",textAlign:"left"},onMouseEnter:e=>{r||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{r||(e.currentTarget.style.background="transparent")},children:[(0,n.jsx)("span",{style:{width:28,height:28,display:"grid",placeItems:"center",color:t?"var(--text-muted)":"var(--accent)"},children:t?(0,n.jsxs)("svg",{width:"17",height:"17",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"8",r:"4"}),(0,n.jsx)("path",{d:"M4 21a8 8 0 0 1 16 0"})]}):(0,n.jsxs)("svg",{width:"17",height:"17",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"5",y:"7",width:"14",height:"11",rx:"2"}),(0,n.jsx)("path",{d:"M9 11h.01M15 11h.01M9 15h6M12 7V4M10 4h4"})]})}),(0,n.jsxs)("span",{style:{minWidth:0},children:[(0,n.jsx)("span",{style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12,fontWeight:r?600:500},title:c,children:c}),(0,n.jsx)("span",{style:{display:"block",marginTop:2,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-dim)",fontSize:11},title:u,children:u})]}),(0,n.jsx)("span",{style:{display:"flex",alignItems:"center",gap:6,color:t&&!o?"var(--text-dim)":"running"===d||"starting"===d?"var(--accent)":"queued"===d?"var(--text-dim)":"completed"===d?"var(--status-success)":"failed"===d?"var(--status-error)":"aborted"===d?"var(--status-warning)":"var(--text-dim)",fontSize:11,whiteSpace:"nowrap"},children:t&&!o?r?l("agentSwitcher.current"):null:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(p1,{status:d}),(0,n.jsx)("span",{children:l(`agentSwitcher.status.${d}`)})]})})]})}function p6({rootSession:e,subagents:t,selectedSessionId:r,runningSessionIds:i,onSelectSession:s}){let{t:l}=(0,Y.s)(),[a,d]=(0,o.useState)(""),c=(0,o.useMemo)(()=>[...t].sort((e,t)=>{let r=i.has(e.id);return r!==i.has(t.id)?r?-1:1:t.modified.localeCompare(e.modified)}),[i,t]),u=a.trim().toLowerCase(),p=u?c.filter(e=>{let t=e.relation?.kind==="subagent"?e.relation:null;return[t?.description,t?.profile,e.name,e.firstMessage].some(e=>e?.toLowerCase().includes(u))}):c,h=t.filter(e=>i.has(e.id)).length;return(0,n.jsx)("div",{role:"listbox","aria-label":l("agentSwitcher.title"),style:{background:"var(--bg-panel)",borderLeft:"1px solid var(--border)",borderRight:"1px solid var(--border)",borderBottom:"1px solid var(--border)",borderRadius:"0 0 6px 6px",boxShadow:"0 10px 28px rgba(0,0,0,0.10)",overflow:"hidden"},children:(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:{minHeight:44,display:"flex",alignItems:"center",gap:8,padding:"7px 12px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("strong",{style:{fontSize:12,fontWeight:600},children:l("agentSwitcher.title")}),(0,n.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11},children:l("agentSwitcher.count",{count:t.length})}),h>0&&(0,n.jsx)("span",{style:{marginLeft:"auto",color:"var(--accent)",fontSize:11},children:l("agentSwitcher.runningCount",{count:h})})]}),t.length>8&&(0,n.jsx)("div",{style:{padding:8,borderBottom:"1px solid var(--border)"},children:(0,n.jsx)("input",{type:"search",value:a,onChange:e=>d(e.target.value),placeholder:l("agentSwitcher.search"),"aria-label":l("agentSwitcher.search"),style:{width:"100%",height:32,padding:"0 10px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg)",color:"var(--text)",fontSize:12,outline:"none"}})}),(0,n.jsxs)("div",{style:{maxHeight:"min(58dvh, 480px)",overflowY:"auto"},children:[(0,n.jsx)(p2,{session:e,main:!0,selected:e.id===r,running:i.has(e.id),onSelect:()=>s(e)}),p.map(e=>(0,n.jsx)(p2,{session:e,selected:e.id===r,running:i.has(e.id),onSelect:()=>s(e)},e.id)),0===p.length&&(0,n.jsx)("div",{style:{padding:"22px 12px",color:"var(--text-dim)",fontSize:12,textAlign:"center"},children:l("agentSwitcher.noMatches")})]})]})})}function p4({loading:e,prompt:t,translate:r}){return(0,n.jsxs)("section",{className:"system-prompt-panel","aria-label":r("system.prompt"),children:[(0,n.jsx)("div",{className:"system-prompt-scroll",children:t?(0,n.jsx)("div",{className:"system-prompt-text",children:t}):(0,n.jsx)("div",{className:"system-prompt-empty",children:r(""===t?"system.empty":e?"system.loading":"system.load")})}),(0,n.jsx)("style",{children:`
198
198
  .system-prompt-panel {
199
199
  display: flex;
200
200
  height: min(600px, 75dvh);
@@ -223,7 +223,7 @@ ${r}`):i=r;let h=i,g=o?.map(e=>({type:"image",source:{type:"base64",media_type:e
223
223
  font-size: 12px;
224
224
  font-style: italic;
225
225
  }
226
- `})]})}function p6({cwd:e,busy:t,error:r,onCancelAction:o,onConfirmAction:i}){let{t:s}=(0,Y.s)();return L(!t,o),(0,n.jsx)("div",{role:"presentation",style:{position:"fixed",inset:0,zIndex:1100,display:"flex",alignItems:"center",justifyContent:"center",padding:16,background:"rgba(0, 0, 0, 0.4)"},children:(0,n.jsxs)("section",{role:"dialog","aria-modal":"true","aria-labelledby":"project-trust-title",style:{width:440,maxWidth:"100%",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)",boxShadow:"0 12px 36px rgba(0, 0, 0, 0.24)",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{display:"flex",gap:12,padding:"18px 18px 14px"},children:[(0,n.jsx)(aV.o,{size:21,weight:"duotone",color:"var(--accent-orange)",style:{flexShrink:0,marginTop:1},"aria-hidden":"true"}),(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("h2",{id:"project-trust-title",style:{margin:0,fontSize:15,fontWeight:700,color:"var(--text)"},children:s("desktop.trustProjectTitle")}),(0,n.jsx)("p",{style:{margin:"7px 0 0",fontSize:12,lineHeight:1.6,color:"var(--text-muted)"},children:s("desktop.trustProjectBody")}),(0,n.jsx)("code",{style:{display:"block",marginTop:10,padding:"8px 10px",border:"1px solid var(--border)",borderRadius:5,background:"var(--bg)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:11,overflowWrap:"anywhere"},children:e}),r&&(0,n.jsx)("div",{role:"alert",style:{marginTop:10,color:"var(--accent-red)",fontSize:12,lineHeight:1.5},children:r})]})]}),(0,n.jsxs)("footer",{style:{display:"flex",justifyContent:"flex-end",gap:8,padding:"10px 18px",borderTop:"1px solid var(--border)"},children:[(0,n.jsx)("button",{type:"button",onClick:o,disabled:t,style:{height:32,padding:"0 12px",border:"1px solid var(--border)",borderRadius:5,background:"transparent",color:"var(--text-muted)",cursor:t?"not-allowed":"pointer",fontSize:12},children:s("desktop.cancel")}),(0,n.jsx)("button",{type:"button",onClick:i,disabled:t,style:{height:32,padding:"0 12px",border:"1px solid var(--accent)",borderRadius:5,background:"var(--accent)",color:"var(--accent-contrast)",cursor:t?"wait":"pointer",opacity:t?.7:1,fontSize:12,fontWeight:600},children:s(t?"desktop.trustingProject":"desktop.trustProject")})]})]})})}function p4(e,t,r){let n=Number.isFinite(e)?e:t,o=Math.max(t,r);return Math.round(Math.max(t,Math.min(o,n)))}function p5(e){return p4(.42*e,360,640)}function p3(e,t){try{window.localStorage.setItem(e,String(t))}catch{}}function p8(e){let{ariaLabel:t,axis:r="horizontal",cssVariable:n,defaultWidth:i,getDefaultWidth:s,getMaxWidth:l,growthDirection:a,maxWidth:d,minWidth:c,storageKey:u,widthRef:p}=e,h=(0,o.useRef)(null),g=(0,o.useRef)(null),x=(0,o.useRef)(!1),[f,m]=(0,o.useState)(i),[v,y]=(0,o.useState)(!1),[b,k]=(0,o.useState)(!1);(0,o.useEffect)(()=>{k(!0)},[]);let j=(0,o.useCallback)(()=>Math.min(d,Math.max(c,l())),[l,d,c]),w=(0,o.useCallback)(e=>p4(e,c,j()),[j,c]),S=(0,o.useCallback)(e=>{p.current=e;let t=`${e}px`;h.current?.style.setProperty(n,t),h.current?.parentElement?.style.setProperty(n,t)},[n,p]),C=(0,o.useCallback)((e,t={})=>{let{forcePersist:r=!1,persist:n=!0}=t,o=w(e),i=o!==p.current;return S(o),m(o),n&&(i||r)&&p3(u,o),o},[S,w,u,p]),z=(0,o.useCallback)(e=>{document.body.style.cursor=e.previousCursor,document.body.style.userSelect=e.previousUserSelect},[]),T=(0,o.useCallback)(e=>{let t=g.current;if(t&&t.pointerId===e){g.current=null,z(t),y(!1),C(p.current,{forcePersist:!0});try{t.target.hasPointerCapture(e)&&t.target.releasePointerCapture(e)}catch{}}},[C,z,p]),R=(0,o.useCallback)(e=>{if("mouse"===e.pointerType&&0!==e.button)return;e.preventDefault(),e.stopPropagation();let t=g.current;t&&T(t.pointerId);let n=e.currentTarget;n.focus({preventScroll:!0}),n.setPointerCapture(e.pointerId),g.current={pointerId:e.pointerId,startPosition:"vertical"===r?e.clientY:e.clientX,startWidth:p.current,target:n,previousCursor:document.body.style.cursor,previousUserSelect:document.body.style.userSelect},document.body.style.cursor="vertical"===r?"row-resize":"col-resize",document.body.style.userSelect="none",y(!0)},[r,T,p]),I=(0,o.useCallback)(e=>{let t=g.current;if(!t||t.pointerId!==e.pointerId)return;if("mouse"===e.pointerType&&0===e.buttons)return void T(e.pointerId);e.preventDefault();let n="right"===a||"down"===a?1:-1,o="vertical"===r?e.clientY:e.clientX,i=w(t.startWidth+(o-t.startPosition)*n);S(i),e.currentTarget.setAttribute("aria-valuenow",String(i)),e.currentTarget.setAttribute("aria-valuetext",`${i} px`)},[S,r,w,T,a]),M=(0,o.useCallback)(e=>{T(e.pointerId)},[T]),E=(0,o.useCallback)(e=>{T(e.pointerId)},[T]),$=(0,o.useCallback)(e=>{T(e.pointerId)},[T]),W=(0,o.useCallback)(()=>{C(s?.()??i,{forcePersist:!0})},[C,i,s]),L=(0,o.useCallback)(()=>{C(p.current)},[C,p]),N=(0,o.useCallback)(e=>{let t=e.shiftKey?32:12,n="right"===a||"down"===a,o="vertical"===r?"ArrowDown":"ArrowRight",i="vertical"===r?"ArrowUp":"ArrowLeft";e.key===(n?o:i)?(e.preventDefault(),C(p.current+t,{forcePersist:!0})):e.key===(n?i:o)?(e.preventDefault(),C(p.current-t,{forcePersist:!0})):"Home"===e.key?(e.preventDefault(),C(c,{forcePersist:!0})):"End"===e.key?(e.preventDefault(),C(j(),{forcePersist:!0})):"Enter"===e.key&&(e.preventDefault(),W())},[r,C,j,a,c,W,p]);return(0,o.useEffect)(()=>{if(x.current)return;x.current=!0;let e=function(e){try{let t=window.localStorage.getItem(e);if(null===t)return null;let r=Number.parseInt(t,10);return Number.isFinite(r)?r:null}catch{return null}}(u),t=C(e??s?.()??i,{persist:!1});null!==e&&e!==t&&p3(u,t)},[C,i,s,u]),(0,o.useEffect)(()=>{if(!x.current)return;C(p.current);let e=()=>{C(p.current)};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[C,p]),(0,o.useEffect)(()=>{if(!v)return;let e=()=>{let e=g.current;e&&T(e.pointerId)},t=()=>{"visible"!==document.visibilityState&&e()};return window.addEventListener("blur",e),document.addEventListener("visibilitychange",t),()=>{window.removeEventListener("blur",e),document.removeEventListener("visibilitychange",t)}},[T,v]),(0,o.useEffect)(()=>()=>{let e=g.current;e&&(g.current=null,z(e))},[z]),{isResizing:v,panelRef:h,reclampWidth:L,separatorProps:{"aria-label":t,"aria-orientation":"vertical"===r?"horizontal":"vertical","aria-valuemax":b?j():d,"aria-valuemin":c,"aria-valuenow":f,"aria-valuetext":`${f} px`,onDoubleClick:W,onKeyDown:N,onLostPointerCapture:$,onPointerCancel:E,onPointerDown:R,onPointerMove:I,onPointerUp:M,role:"separator",tabIndex:0},width:f}}let p7=null;async function p9(e){if(!("serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window)||"granted"!==Notification.permission)return!1;if(p7)return p7;let t=(async()=>{try{let t=await fetch("/api/push/config");if(!t.ok)return!1;let{publicKey:r}=await t.json();if(!r)return!1;let n=await navigator.serviceWorker.ready,o=await n.pushManager.getSubscription();return o||(o=await n.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:function(e){let t="=".repeat((4-e.length%4)%4),r=atob((e+t).replace(/-/g,"+").replace(/_/g,"/")),n=new Uint8Array(r.length);for(let e=0;e<r.length;e+=1)n[e]=r.charCodeAt(e);return n}(r)})),(await fetch("/api/push/subscribe",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({subscription:o.toJSON(),locale:e})})).ok}catch{return p7=null,!1}})();return p7=t,t.then(e=>{e||p7!==t||(p7=null)}),t}let he="pi-web:tab-open-session";function ht(){try{return window.sessionStorage}catch{return null}}function hr(e){if("string"!=typeof e||0===e.length)return null;if(e.startsWith("{"))try{let t=JSON.parse(e);if(!t||"object"!=typeof t||Array.isArray(t))return null;if("session"===t.kind&&"string"==typeof t.sessionId&&t.sessionId)return{kind:"session",sessionId:t.sessionId};if("new"===t.kind&&"string"==typeof t.cwd&&t.cwd.trim())return{kind:"new",cwd:t.cwd};return null}catch{return null}return{kind:"session",sessionId:e}}function hn(e,t){t.setItem(he,JSON.stringify(e))}function ho(e,t){return t?(function(e){let t=function(e){let t=new Map(e.map(e=>[e.id,e])),r=new Map;for(let n of e){if(r.has(n.id))continue;let e=[],o=new Set,i=n.id,s=null;for(;;){if(r.has(i)){s=r.get(i)??null;break}if(o.has(i))break;o.add(i),e.push(i);let n=t.get(i);if(!n)break;if(n.relation?.kind!=="subagent"){s=n.id;break}i=n.relation.parentSessionId}for(let t of e)r.set(t,s)}return r}(e),r=new Map;for(let t of e)t.relation?.kind!=="subagent"&&r.set(t.id,{root:t,subagents:[],latestModified:t.modified});for(let n of e){if(n.relation?.kind!=="subagent")continue;let e=t.get(n.id),o=e?r.get(e):void 0;o&&(o.subagents.push(n),n.modified>o.latestModified&&(o.latestModified=n.modified))}return[...r.values()].sort((e,t)=>t.latestModified.localeCompare(e.latestModified))})(e).find(e=>e.root.id===t||e.subagents.some(e=>e.id===t))??null:null}let hi="pi-web:last-open-by-workspace";function hs(){try{return window.localStorage}catch{return null}}function hl(e){let t=e.getItem(hi);if(!t)return{};try{let e=JSON.parse(t);return null===e||"object"!=typeof e||Array.isArray(e)?{}:e}catch{return{}}}function ha(e,t=hs()){if(t)try{let r=hl(t);if(!(e in r))return;delete r[e],0===Object.keys(r).length?t.removeItem(hi):t.setItem(hi,JSON.stringify(r))}catch{}}function hd(e){return e.projectKey??e.projectRoot??e.cwd}function hc(){let e,t,r,d,c,u,p,h,g,x,f,m,v,y,b,k,j=(0,s.useRouter)(),w=(0,s.useSearchParams)(),[S,C]=(0,o.useState)(()=>l(w));(0,o.useEffect)(()=>{C(l(w))},[w]),(0,o.useMemo)(()=>S,[S]);let{isDark:z,toggleTheme:T}=eA(),{locale:R,t:I}=(0,Y.s)(),M=tp(),[E,$]=(0,o.useState)(!1);(0,o.useEffect)(()=>{let e=window.matchMedia("(max-width: 480px)"),t=()=>$(e.matches);return t(),e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[]);let[W,L]=(0,o.useState)(null),[N,A]=(0,o.useState)([]),P=(0,o.useCallback)(e=>{A(e),L(t=>{if(!t)return t;let r=e.find(e=>e.id===t.id);return r?{...t,...r,detailsPending:r.detailsPending,relation:r.relation,branch:r.branch,isWorktree:r.isWorktree}:t})},[]),F=(0,o.useMemo)(()=>W?[...N.filter(e=>e.id!==W.id),W]:N,[W,N]),D=(0,o.useMemo)(()=>ho(F,W?.id),[W?.id,F]),H=!!D?.subagents.length,[O,B]=(0,o.useState)(()=>new Set);(0,o.useCallback)(e=>{B(t=>t.size===e.size&&[...e].every(e=>t.has(e))?t:e)},[]);let[U,_]=(0,o.useState)(null),[q,K]=(0,o.useState)(null),V=(0,o.useRef)(0),J=(0,o.useRef)(null),G=(0,o.useRef)(null),[X,Z]=(0,o.useState)(0),[Q,ee]=(0,o.useState)(0),[et,er]=(0,o.useState)(0),[en,eo]=(0,o.useState)(!1),[ei,es]=(0,o.useState)("models"),[el,ea]=(0,o.useState)(0),[ed,ec]=(0,o.useState)(null),[eu,ep]=(0,o.useState)(!1),[eh,eg]=(0,o.useState)(!1),[ex,ef]=(0,o.useState)(null),[em,ev]=(0,o.useState)(()=>!S.sidebarCollapsed),[ey,eb]=(0,o.useState)(!1),[ek,ej]=(0,o.useState)(!1),[ew,eS]=(0,o.useState)(!1),eC=ek&&ew&&!M;(0,o.useEffect)(()=>{(!ek||M)&&eS(!1)},[ek,M]);let[ez,eT]=(0,o.useState)(!1),[eR,eI]=(0,o.useState)(!1);(0,o.useEffect)(()=>{M&&ev(!1)},[M]),(0,o.useEffect)(()=>{eI(!0)},[]);let eM=(0,o.useRef)(null),eE=(0,o.useRef)(null),e$=(0,o.useRef)(null),eW=(0,o.useRef)(null),[eL,eN]=(0,o.useState)(null),[eP,eF]=(0,o.useState)(null),[eD,eH]=(0,o.useState)(null),eO=pB(),eB=function(){let{isDesktop:e,isMacOS:t}=pB(),r=(0,o.useCallback)(e=>{var t;0===e.button&&(t=e.target).closest("[data-tauri-drag-region]")&&!t.closest('button, a, input, textarea, select, [role="button"], [contenteditable="true"], [data-no-drag]')&&(e.preventDefault(),e.stopPropagation(),2===e.detail?pF():pD())},[]);return e&&!t?{onMouseDown:r}:{}}(),[eU,e_]=(0,o.useState)([]),[eq,eK]=(0,o.useState)(null),eV=(0,o.useRef)(null),eJ=cL(eU),[eY,eG]=(0,o.useState)(null),eX=(0,o.useCallback)(e=>{eG(e)},[]),[eZ,eQ]=(0,o.useState)(null),e0=(0,o.useCallback)(e=>{eQ(e)},[]),[e1,e2]=(0,o.useState)(null),e6=(0,o.useRef)(null),e4=(0,o.useCallback)((e,t)=>{nA(t).then(()=>{e6.current&&clearTimeout(e6.current),e2(e),e6.current=setTimeout(()=>e2(null),1400)})},[]);(0,o.useEffect)(()=>()=>{e6.current&&clearTimeout(e6.current)},[]);let[e5,e3]=(0,o.useState)(null),e8=(0,o.useCallback)(e=>{e3(e)},[]),[e7,e9]=(0,o.useState)(null),[te,tt]=(0,o.useState)(null);(0,o.useEffect)(()=>{eJ||e9(e=>"branches"===e?null:e)},[eJ]),(0,o.useEffect)(()=>{H||e9(e=>"agents"===e?null:e)},[H]),(0,o.useEffect)(()=>{eC&&e9(null)},[eC]);let tr=(0,o.useCallback)((e,t=!1)=>{M&&ev(!1),e9(t=>t===e?null:e),M&&E&&t&&eT(!0)},[M,E]),[tn,to]=(0,o.useState)({kind:"idle"}),ti=(0,o.useRef)(null),ts=(0,o.useRef)(W?.id??null);ts.current=W?.id??null;let[tl,ta]=(0,o.useState)(null),[td,tc]=(0,o.useState)(!1),tu=(0,o.useRef)(null),th=(0,o.useRef)(0),tg=(0,o.useRef)(null),tx=(0,o.useRef)(new Set),tf=(0,o.useCallback)((e,t=!1)=>{let r=e7!==e;if(tr(e,t),!r||td)return;let n=tu.current;if(!n)return;let o=++th.current;tc(!0),n().catch(e=>{console.error("Failed to load system information:",e)}).finally(()=>{th.current===o&&tc(!1)})},[e7,td,tr]),tm=(0,o.useCallback)(()=>{M&&ev(!1),e9("session")},[M]),tv=(0,o.useCallback)(()=>{M&&e9(null),ev(e=>!e)},[M]),ty=(0,o.useCallback)(()=>{ev(!1),e9(null),eT(e=>!e)},[]),tb=(0,o.useCallback)(()=>{M&&(ev(!1),e9(null),eT(!1)),ej(e=>!e)},[M]),tk=(0,o.useCallback)(()=>{e9(null),eS(e=>!e)},[]);(0,o.useEffect)(()=>{if(!ez)return;let e=e=>{let t=eM.current;t&&e.composedPath().includes(t)||eT(!1)},t=e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),eT(!1))};return document.addEventListener("pointerdown",e,!0),document.addEventListener("keydown",t,!0),()=>{document.removeEventListener("pointerdown",e,!0),document.removeEventListener("keydown",t,!0)}},[ez]),(0,o.useEffect)(()=>{eT(!1)},[M,E,W?.id,q]),(0,o.useEffect)(()=>{let e=eW.current;if(!e7||!e)return;let t=()=>{let t=e.getBoundingClientRect();"agents"===e7?tt({top:t.bottom,left:t.left,width:Math.min(420,t.width)}):tt({top:t.bottom,left:t.left,width:t.width})};t();let r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[e7]);let[tj,tw]=(0,o.useState)([]),[tS,tC]=(0,o.useState)(null),tz=(0,o.useRef)(!1);(0,o.useEffect)(()=>{let e;if(!tz.current){tz.current=!0;try{e=function(e){try{let t=JSON.parse(e??"null");if(!uH(t))return{tabs:[],activeId:null,open:!1};let r=[],n=new Set;for(let e of Array.isArray(t.tabs)?t.tabs:[]){if(!uH(e))continue;let t="string"==typeof e.id?e.id:"",o="string"==typeof e.filePath?e.filePath:"",i="string"==typeof e.label?e.label:"",s="subagent"===e.kind,l="string"==typeof e.sessionId?e.sessionId:"";!(!t||!i||n.has(t))&&(s?l:o)&&(n.add(t),r.push({id:t,label:i,filePath:o,..."terminal"===e.kind?{kind:"terminal"}:{},...s?{kind:"subagent",sessionId:l}:{},..."string"==typeof e.sourceSessionId?{sourceSessionId:e.sourceSessionId}:{},..."diff"===e.initialDisplayMode?{initialDisplayMode:"diff"}:{}}))}let o="string"==typeof t.activeId&&r.some(e=>e.id===t.activeId)?t.activeId:r[r.length-1]?.id??null;return{tabs:r,activeId:o,open:!0===t.open&&r.length>0}}catch{return{tabs:[],activeId:null,open:!1}}}(localStorage.getItem(uD))}catch{return}0!==e.tabs.length&&(tw(e.tabs),tC(e.activeId),ej(e.open))}},[]),(0,o.useEffect)(()=>{if(tz.current)try{localStorage.setItem(uD,JSON.stringify({tabs:tj.filter(e=>!e.closing).map(e=>({id:e.id,label:e.label,filePath:e.filePath,...e.kind?{kind:e.kind}:{},...e.sessionId?{sessionId:e.sessionId}:{},...e.sourceSessionId?{sourceSessionId:e.sourceSessionId}:{},...e.initialDisplayMode?{initialDisplayMode:e.initialDisplayMode}:{}})),activeId:tS,open:ek}))}catch{}},[tj,tS,ek]);let[tT,tR]=(0,o.useState)(!1),[tI,tM]=(0,o.useState)([]),[tE,t$]=(0,o.useState)(()=>new Set);(0,o.useEffect)(()=>{if(!tT)return void tM(e=>0===e.length?e:[]);let e=!1,t=()=>{fetch("/api/sessions",{cache:"no-store"}).then(e=>e.json()).then(t=>{e||(tM(t.sessions??[]),t$(new Set(t.runningSessionIds??[])))}).catch(()=>{})};t();let r=setInterval(t,3e3);return()=>{e=!0,clearInterval(r)}},[tT,W?.id,X]);let tW=(0,o.useCallback)(async e=>{try{let t=await fetch(`/api/sessions/${encodeURIComponent(e)}`,{cache:"no-store"}),r=await t.json();if(!t.ok||!r.info)throw Error(r.error??`HTTP ${t.status}`);t9.current(r.info)}catch(e){console.error("[pi-web] failed to open session:",e instanceof Error?e.message:e)}},[]),tL=(0,o.useRef)(264),tN=(0,o.useRef)(p5(1366)),tA=(0,o.useCallback)(()=>p5(window.innerWidth),[]),tP=(0,o.useCallback)(()=>(function(e){let{viewportWidth:t,rightPanelOpen:r,rightPanelWidth:n}=e;if(t<=640)return 480;let o=t<960;return Math.min(480,t-(o?320:420)-(!o&&r?n:0))})({viewportWidth:window.innerWidth,rightPanelOpen:ek,rightPanelWidth:tN.current}),[ek]),tF=(0,o.useCallback)(()=>(function(e){let{viewportWidth:t,sidebarOpen:r,sidebarWidth:n}=e;return t<960?1200:Math.min(1200,t-420-(r?n:0))})({viewportWidth:window.innerWidth,sidebarOpen:em,sidebarWidth:tL.current}),[em]),tD=p8({ariaLabel:I("desktop.resizeSidebar"),cssVariable:"--sidebar-width",defaultWidth:264,getMaxWidth:tP,growthDirection:"right",maxWidth:480,minWidth:180,storageKey:"pi-sidebar-width",widthRef:tL}),tH=p8({ariaLabel:I("desktop.resizeFilePanel"),cssVariable:"--right-panel-width",defaultWidth:p5(1366),getDefaultWidth:tA,getMaxWidth:tF,growthDirection:"left",maxWidth:1200,minWidth:300,storageKey:"pi-right-panel-width",widthRef:tN}),tO=tD.reclampWidth,tB=tH.reclampWidth;(0,o.useEffect)(()=>{ek&&(tO(),tB())},[tB,tO,ek]);let tU=(0,o.useCallback)((e,t)=>{eE.current?.insertText(dY(e,t))},[]),t_=(0,o.useCallback)(e=>{let t=e.map(e=>dY(e,!1)).join("");t&&eE.current?.insertText(t)},[]);(0,o.useCallback)((e,t,r)=>{let n,o,i,s;eE.current?.insertText((n=Math.max(1,Math.min(t,r)),o=Math.max(1,Math.max(t,r)),i=e.includes(" ")?`@"${e}"`:`@${e}`,s=n===o?`:${n}`:`:${n}-${o}`,`${i}${s} `))},[]);let[tq,tK]=(0,o.useState)(()=>S.sessionId),[tV,tJ]=(0,o.useState)(null),[tY,tG]=(0,o.useState)(()=>S.requestedCwd?"validating":"idle"),[tX,tZ]=(0,o.useState)(null),[tQ,t0]=(0,o.useState)(()=>!tq);(0,o.useLayoutEffect)(()=>{var e;let t=(e=function(e=ht()){if(!e)return null;try{return hr(e.getItem(he))}catch{return null}}(),S.requestedCwd||S.sessionId||!e?S:"session"===e.kind?{...S,sessionId:e.sessionId}:{...S,requestedCwd:e.cwd});t!==S&&(C(t),t.sessionId&&t0(!1))},[S]);let t1=(0,o.useRef)(!1),t2=(0,o.useRef)(new Map),[t6,t4]=(0,o.useState)(null),t5=(0,o.useRef)("");(0,o.useEffect)(()=>{let e=`${S.requestedCwd??""}|${S.sessionId??""}`;t5.current!==e&&(t5.current=e,tK(S.sessionId),t0(!S.sessionId),S.requestedCwd||tG("idle"),tZ(null))},[S]),(0,o.useEffect)(()=>{if(W){!function(e,t,r=hs()){if(r)try{let n=hl(r);n[e]=t,r.setItem(hi,JSON.stringify(n))}catch{}}(W.projectKey??J.current??hd(W),W.id),function(e,t=ht()){if(t&&e)try{hn({kind:"session",sessionId:e},t)}catch{}}(W.id);return}U&&function(e,t=ht()){let r=e.trim();if(t&&r)try{hn({kind:"new",cwd:r},t)}catch{}}(U)},[U,W]),(0,o.useEffect)(()=>{let e=S.requestedCwd;if(!e)return;let t=new AbortController;return tG("validating"),tZ(null),fetch("/api/cwd/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e}),signal:t.signal}).then(async e=>{let t=await e.json().catch(()=>({}));if(!e.ok||!t.cwd)throw Error(t.error??`HTTP ${e.status}`);t1.current=!0,_(t.cwd),tG("ready"),new URLSearchParams(window.location.search).get("cwd")||j.replace(`?cwd=${encodeURIComponent(t.cwd)}`,{scroll:!1})}).catch(e=>{t.signal.aborted||(tZ(e instanceof Error?e.message:String(e)),tG("error"))}),()=>t.abort()},[S,j]),(0,o.useCallback)((e,t)=>{let r=++V.current,n=function(e,t=hs()){if(!t)return null;try{let r=hl(t)[e];return"string"==typeof r&&r.length>0?r:null}catch{return null}}(e);if(!n)return;let o=o=>{if(r!==V.current)return;let i=o?.sessions.find(e=>e.id===n);if(!i){o&&ha(e);return}if(hd(i)!==e)return void ha(e);let s=G.current;s&&function(e,t){if(e===t)return dH(t);let r=dH(e)??null,n=dH(t);if(dB(e),!r)return;let o=n?dU(n.value,n.images,r.value,r.images,n.pastedBlocks,r.pastedBlocks):r;dO(t,o),dD(o)}(s,`parked-new:${t}`),G.current=null,L(i),ee(e=>e+1),new URLSearchParams(window.location.search).get("session")!==i.id&&j.replace(`?session=${encodeURIComponent(i.id)}`,{scroll:!1})};N.length>0?o({sessions:N}):fetch("/api/sessions").then(e=>e.ok?e.json():null).then(o).catch(()=>{})},[j,N]);let t3=(0,o.useCallback)(()=>{V.current+=1},[]),t8=(0,o.useCallback)((e,t,r)=>{if(t3(),tJ(e),!e)return;if(tJ(e),t1.current&&W&&iX(W.projectRoot??W.cwd,t??e)){if(t1.current=!1,W){let e=W.projectRoot??W.cwd;e&&t2.current.set(e,W.id)}return}t1.current=!1;let n=t??e;if(W&&iX(W.projectRoot??W.cwd,n)){(W.projectRoot??W.cwd)&&t2.current.set(n,W.id);return}if(W){let e=W.projectRoot??W.cwd;e&&t2.current.set(e,W.id)}L(null),_(t=>t&&t!==e?null:t),ee(e=>e+1),eG(null),e9(null),window.history.replaceState(null,"","/");let o=t2.current.get(n);t4(o?{projectRoot:n,sessionId:o}:null)},[W]);(0,o.useEffect)(()=>{let e=tV?oL(tV)||tV:null;document.title=e?`${e} — Pi Agent Web`:"Pi Agent Web"},[tV]);let t7=(0,o.useCallback)((e,t=!1)=>{if(t||t4(null),!t&&W){let t=iX(W.projectRoot??W.cwd,e.projectRoot??e.cwd);if(W.id===e.id&&t){M&&ev(!1);return}}let r=e.projectRoot??e.cwd;r&&t2.current.set(r,e.id),_(null),L(e),ee(e=>e+1),eG(null),t0(!0),M&&!t&&ev(!1),t&&(t1.current=!0),t&&new URLSearchParams(window.location.search).get("session")===e.id||j.replace(`?session=${encodeURIComponent(e.id)}`,{scroll:!1})},[M,W]),t9=(0,o.useRef)(()=>{});(0,o.useEffect)(()=>{t9.current=t7},[t7]);let re=(0,o.useRef)(null),rt=(0,o.useCallback)(()=>{re.current?.()},[]),rr=(0,o.useCallback)(e=>{eV.current?.(e)},[]),rn=(0,o.useCallback)(({targetSession:e,title:t,body:r,tag:n})=>{if(!("Notification"in window))return;let o=()=>{iQ({title:t,body:r,sessionUrl:e?`/?session=${encodeURIComponent(e.id)}`:"/",tag:n,onClick:()=>{window.focus(),e&&t7(e)}})};"granted"===Notification.permission?(o(),p9(R)):"default"===Notification.permission&&Notification.requestPermission().then(e=>{"granted"===e&&(o(),p9(R))})},[t7,R]);(0,o.useCallback)(e=>{var t;W?.relation?.kind!=="subagent"&&iZ()&&(t=tx.current,!(!function(e){switch(e.method){case"select":case"confirm":case"input":case"editor":return!0;case"custom":return!0!==e.closed;default:return!1}}(e)||t.has(e.id))&&(t.add(e.id),1)&&rn({targetSession:W,title:I("i18n.attentionNeeded"),body:"custom"===e.method?I("i18n.extensionInputNeeded"):e.title,tag:`pi-extension-ui:${e.id}`}))},[rn,W,I]);let ro=(0,o.useCallback)(async()=>{let e=W?.id;if(e&&"naming"!==tn.kind){ti.current&&clearTimeout(ti.current),e9(null),to({kind:"naming"});try{let t=await fetch(`/api/sessions/${encodeURIComponent(e)}/auto-name`,{method:"POST"}),r=await t.json().catch(()=>({}));if(!t.ok||!r.title)throw Error(r.error||`HTTP ${t.status}`);let n=r.title.trim();if(Z(e=>e+1),ts.current!==e)return;L(t=>t?.id===e?{...t,name:n}:t),eQ(t=>t?.sessionId===e?{...t,sessionName:n}:t),to({kind:"success"}),ti.current=setTimeout(()=>to({kind:"idle"}),1800)}catch(t){if(ts.current!==e)return;to({kind:"error",message:t instanceof Error?t.message:String(t)}),ti.current=setTimeout(()=>to({kind:"idle"}),5e3)}}},[tn.kind,W?.id]);(0,o.useEffect)(()=>{ti.current&&clearTimeout(ti.current),to({kind:"idle"})},[W?.id]),(0,o.useCallback)(()=>{er(e=>e+1)},[]);let ri=(0,o.useCallback)(()=>{t0(!0)},[]),rs=(0,o.useCallback)(e=>{if(Z(e=>e+1),W?.id===e){!function(e,t=ht()){if(t&&e)try{let r=hr(t.getItem(he));if(r?.kind!=="session"||r.sessionId!==e)return;t.removeItem(he)}catch{}}(e);let t=W.cwd;L(null),_(t??null),ee(e=>e+1),eG(null),e9(null),window.history.replaceState(null,"","/")}},[j,W]),rl=(0,o.useCallback)(e=>{fetch("/api/sessions").then(e=>e.ok?e.json():null).then(t=>{let r=t?.sessions.find(t=>t.id===e);r&&L(t=>!t||t.id!==e||t.projectRoot&&t.name?t:r)}).catch(()=>{})},[]),ra=(0,o.useCallback)((e,t)=>{Z(e=>e+1),G.current===t&&(t3(),G.current=null,_(null),L(e),rl(e.id),j.replace(`?session=${encodeURIComponent(e.id)}`,{scroll:!1}))},[t3,j,rl]),rd=(0,o.useCallback)(e=>{t3(),G.current=null,Z(e=>e+1),ee(e=>e+1),_(null),L(t=>({...t??{path:"",cwd:"",created:"",modified:"",messageCount:0,firstMessage:""},id:e,transient:!1})),rl(e),j.replace(`?session=${encodeURIComponent(e)}`,{scroll:!1})},[t3,j,rl]),rc=(0,o.useCallback)(()=>{Z(e=>e+1),er(e=>e+1),W&&rl(W.id),W?.relation?.kind!=="subagent"&&iZ()&&rn({targetSession:W,title:W?.name??I("i18n.sessionComplete"),body:I("i18n.taskFinished"),tag:W?`pi-session-complete:${W.id}`:"pi-session-complete"})},[rn,rl,W,I]);(0,o.useEffect)(()=>{if(!t6)return;let{projectRoot:e,sessionId:t}=t6;t9.current({path:"",id:t,cwd:e,created:"",modified:"",messageCount:0,firstMessage:"",projectRoot:e},!0),rl(t),window.history.replaceState(null,"",`?session=${encodeURIComponent(t)}`),t4(null)},[t6,rl]);let ru=(0,o.useCallback)((e,t)=>{t4(null),L(null),_(t),ee(e=>e+1),eG(null),e9(null),M&&ev(!1),K(null),j.replace(`?cwd=${encodeURIComponent(t)}`,{scroll:!1})},[j,M]);!function(e){let{onNewSession:t,activeCwd:r,onOpenCommandPalette:n,commandPaletteOpen:i}=e;(0,o.useEffect)(()=>{let e=e=>{if((e.metaKey||e.ctrlKey)&&("k"===e.key||"K"===e.key||e.shiftKey&&("p"===e.key||"P"===e.key))){if(!n)return;e.preventDefault(),n();return}if("Escape"===e.key){if(i||!a)return;let t=e.target?.tagName;if("TEXTAREA"===t||"INPUT"===t)return;e.preventDefault(),a();return}if("n"===e.key&&e.ctrlKey&&e.altKey){if(!r||!t)return;e.preventDefault(),t(r)}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[r,t,n,i])}({onNewSession:e=>ru(`kb-${Date.now()}`,e),activeCwd:tV,onOpenCommandPalette:()=>eb(e=>!e),commandPaletteOpen:ey});let rp=(0,o.useCallback)((e,t,r,n)=>{let o="string"==typeof r||null===r?r:r?.sourceSessionId??void 0,i=("object"==typeof r&&null!==r?r:n)??{},s=`file:${e}`;tw(r=>(function(e,t){let r=e.find(e=>e.id===t.tabId);if(!r)return[...e,{id:t.tabId,label:t.fileName,filePath:t.filePath,sourceSessionId:t.sourceSessionId,initialDisplayMode:t.modeHint,page:t.page,viewerState:t.modeHint?{displayMode:t.modeHint,wrapLines:!1,scrollTop:0,scrollLeft:0}:void 0,viewerRevision:0}];let n=!!(t.sourceSessionId&&r.sourceSessionId!==t.sourceSessionId),o=r.page!==t.page;return n||t.modeHint||o?e.map(e=>{if(e.id!==t.tabId)return e;let r={...e},i=!1;return n&&(r.sourceSessionId=t.sourceSessionId,i=!0),o&&(r.page=t.page,i=!0),t.modeHint&&(r.initialDisplayMode=t.modeHint,r.viewerState={displayMode:t.modeHint,wrapLines:e.viewerState?.wrapLines??!1,scrollTop:0,scrollLeft:0},i=!0),i&&(r.viewerRevision=(e.viewerRevision??0)+1),r}):e})(r,{fileName:t,filePath:e,modeHint:i.initialDisplayMode,page:i.page,sourceSessionId:o,tabId:s})),tC(s),ej(!0),M&&ev(!1)},[M]),rh=(0,o.useCallback)((e,t)=>{rp(e,oL(e),{sourceSessionId:W?.id??null,page:t})},[rp,W?.id]),rg=(0,o.useMemo)(()=>{let e=new Map;for(let t of tI){if(t.relation?.kind!=="subagent")continue;let r=t.relation;e.set(t.id,{status:tE.has(t.id)?"running":r.status,...r.createdAt?{createdAt:r.createdAt}:{},...r.completedAt?{completedAt:r.completedAt}:{}})}return e},[tI,tE]),rx=(0,o.useCallback)((e,t)=>{let r=`subagent:${e}`;tw(n=>n.some(e=>e.id===r)?n:[...n,{id:r,label:t,filePath:"",kind:"subagent",sessionId:e}]),tC(r),ej(!0),M&&ev(!1)},[M]),rf=(0,o.useCallback)(e=>{tw(t=>{let r=t.filter(t=>t.id!==e);return 0===r.length&&ej(!1),r}),tC(t=>{if(t!==e)return t;let r=tj.filter(t=>t.id!==e);return r.length>0?r[r.length-1].id:null})},[tj]),rm=(0,o.useCallback)(e=>{er(e=>e+1),rp(e,oL(e))},[rp]),rv=(0,o.useCallback)((e,t)=>{er(e=>e+1);let r=e.endsWith("/")?e:e+"/",n=n=>n===e||t&&n.startsWith(r);tw(e=>{let t=e.filter(e=>!n(e.filePath));return 0===t.length&&ej(!1),t}),tC(e=>{if(!e)return e;let t=tj.find(t=>t.id===e);if(!t||!n(t.filePath))return e;let r=tj.filter(e=>!n(e.filePath));return r.length>0?r[r.length-1].id:null})},[tj]),ry=W?os({name:W.name||eZ?.sessionName||void 0,firstMessage:W.firstMessage,id:W.id},(W.cwd??tV??"").replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean).pop()):(e=tV??U)?e.replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean).pop()||e:null,rb=(0,o.useCallback)(()=>{W&&window.open(`/api/sessions/${encodeURIComponent(W.id)}/export?inline=1`,"_blank","noopener,noreferrer")},[W]),rk=U??(null===W&&tV?tV:null),rj="validating"!==tY&&"error"!==tY&&(null!==W||null!==rk),rw=W?.cwd??rk,[rS,rC]=(0,o.useState)(!1),rz=(0,o.useCallback)(()=>{M||rC(e=>!e)},[M]),[rT,rR]=(0,o.useState)(!0);(0,o.useEffect)(()=>{let e=!1,t=()=>fetch("/api/features").then(e=>e.ok?e.json():null).then(t=>{!e&&t&&"boolean"==typeof t.tasksBoard&&(rR(t.tasksBoard),t.tasksBoard||rC(!1))}).catch(()=>{});t();let r=()=>t();return window.addEventListener("pi:features-changed",r),()=>{e=!0,window.removeEventListener("pi:features-changed",r)}},[]);let rI=tQ&&!rj;(0,o.useEffect)(()=>{let e=()=>{M||rC(!0)};return window.addEventListener(ul,e),()=>window.removeEventListener(ul,e)},[M]),(0,o.useEffect)(()=>{if(ec(null),ep(!1),ef(null),!rw)return;let e=new AbortController;return fetch(`/api/project-trust?cwd=${encodeURIComponent(rw)}`,{signal:e.signal}).then(async e=>{let t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);ec(t)}).catch(e=>{e instanceof DOMException&&"AbortError"===e.name||console.error("Failed to load project trust:",e)}),()=>e.abort()},[rw]);let rM=(0,o.useCallback)(async()=>{if(rw&&!eh){eg(!0),ef(null);try{let e=await fetch("/api/project-trust",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:rw})}),t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);ec(t),ep(!1),ea(e=>e+1),ee(e=>e+1)}catch(e){ef(e instanceof Error?e.message:String(e))}finally{eg(!1)}}},[eh,rw]),rE=tj.find(e=>e.id===tS)??null,r$=tV??W?.cwd??U,rW=(0,o.useCallback)(e=>{es(e),eo(!0)},[]),rL=(0,o.useMemo)(()=>(function(e){let{t}=e;return[{id:"new-session",section:"suggested",title:t("palette.cmd.newSession"),icon:uJ.A,keywords:["new","task","session","新建"],run:e.onNewSession},{id:"toggle-sidebar",section:"panels",title:t("palette.cmd.toggleSidebar"),icon:uY.A,keywords:["sidebar","侧边栏"],run:e.onToggleSidebar},{id:"cycle-sidebar-form",section:"panels",title:t("palette.cmd.sidebarForm"),icon:is.A,keywords:["sidebar","form","形态","列表","面板"],run:e.onCycleSidebarForm},{id:"toggle-right-panel",section:"panels",title:t("palette.cmd.toggleRightPanel"),icon:uG.A,keywords:["panel","right","面板"],run:e.onToggleRightPanel},{id:"toggle-task-board",section:"panels",title:t("palette.cmd.toggleTasks"),icon:il.A,keywords:["tasks","board","任务","看板"],run:e.onToggleTasks},{id:"toggle-theme",section:"configure",title:t("palette.cmd.toggleTheme"),icon:e.isDark?uX.A:uZ.A,keywords:["theme","dark","light","主题"],run:e.onToggleTheme},{id:"open-settings",section:"configure",title:t("palette.cmd.openSettings"),icon:uQ.A,keywords:["settings","设置"],run:e.onOpenSettings}]})({onNewSession:()=>ru("u">typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`palette-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,tV??""),onCycleSidebarForm:rt,onToggleSidebar:()=>ev(e=>!e),onToggleRightPanel:()=>ej(e=>!e),onToggleTasks:rz,onToggleTheme:T,onOpenSettings:()=>rW("models"),isDark:z,t:I}),[ru,tV,rt,T,rW,z,I,rz]),rN=(0,n.jsx)(n.Fragment,{children:(0,n.jsx)(i7,{selectedSessionId:W?.id??null,onSelectSession:t7,onNewSession:ru,initialSessionId:tq,onInitialRestoreDone:ri,refreshKey:X,onSessionDeleted:rs,selectedCwd:W?.cwd??U??null,onCwdChange:t8,onOpenFile:rp,selectedSessionStats:eZ,onOpenSettings:e=>{rW(e??"models")},explorerRefreshKey:et,onAtMention:tU,onAtMentions:t_,onFileCreated:rm,onFileDeleted:rv,workspaceControlsHosts:{title:eL,welcome:eD,titleRight:eP},showWorkspaceControls:!0,onOpenCommandPalette:()=>eb(!0),cycleSidebarFormRef:re,onSessionsLoaded:P})}),rA=e=>rj&&ed?.requiresTrust&&!ed.trusted?(0,n.jsxs)("button",{type:"button",onClick:()=>{ef(null),ep(!0)},title:I("trust.resourcesNotLoaded"),"aria-label":I("trust.resourcesNotLoaded"),style:{display:"flex",alignItems:"center",justifyContent:e?"flex-start":"center",gap:6,width:e?"100%":void 0,minHeight:e?32:void 0,height:e?void 0:"100%",padding:e?"6px 12px":"0 12px",background:e?"color-mix(in srgb, #d97706 8%, var(--bg-panel))":"none",border:"none",borderRight:e?"none":"1px solid var(--border)",borderBottom:e?"1px solid var(--border)":"none",color:"#d97706",cursor:"pointer",flexShrink:0,fontSize:11,lineHeight:1.35,textAlign:"left"},"data-mobile-trust-banner":e?"true":void 0,children:[(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:{flexShrink:0},children:[(0,n.jsx)("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z"}),(0,n.jsx)("path",{d:"M12 8v4"}),(0,n.jsx)("path",{d:"M12 16h.01"})]}),(0,n.jsx)("span",{children:I("trust.resourcesNotLoaded")})]}):null,rP=e=>{let t,r,o,i,s,l;return e||rj?(0,n.jsxs)("div",{style:{display:"flex",alignItems:"stretch",height:"100%"},children:[(0,n.jsxs)("button",{type:"button",onClick:()=>{rb(),e&&E&&eT(!0)},disabled:!W,title:W?I("history.full"):I("history.unsaved"),"aria-label":I("history.full"),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:e?36:void 0,height:"100%",padding:e?0:"0 12px",background:"none",border:"none",borderTop:"2px solid transparent",borderRight:"1px solid var(--border)",color:W?"var(--text-muted)":"var(--text-dim)",cursor:W?"pointer":"not-allowed",opacity:W?1:.45,flexShrink:0,fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s, opacity 0.1s"},onMouseEnter:e=>{W&&(e.currentTarget.style.color="var(--text)",e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.color=W?"var(--text-muted)":"var(--text-dim)",e.currentTarget.style.background="none"},"data-mobile-toolbar-action":e?"history":void 0,children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:W?"var(--text-muted)":"var(--text-dim)",flexShrink:0},"aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M3 12a9 9 0 1 0 3-6.7L3 8"}),(0,n.jsx)("path",{d:"M3 3v5h5"}),(0,n.jsx)("path",{d:"M12 7v5l3 2"})]}),!e&&(0,n.jsx)("span",{children:I("history.label")})]}),(t=!!(W&&((eZ?.userMessages??0)>0||W.messageCount>0)),r=!W||W.transient||!t||"naming"===tn.kind,o="success"===tn.kind,i="error"===tn.kind,s="naming"===tn.kind?I("title.generating"):o?I("title.updated"):i?I("title.failed"):I("title.generate"),l=!W||W.transient?I("title.unsaved"):t?i?tn.message:I("title.generateSession"):I("title.noMessages"),(0,n.jsxs)("button",{type:"button",onClick:()=>{ro(),e&&E&&eT(!0)},disabled:r,title:l,"aria-label":s,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:e?36:void 0,height:"100%",padding:e?0:"0 12px",background:"none",border:"none",borderTop:"2px solid transparent",borderRight:"1px solid var(--border)",color:i?"#dc2626":o?"var(--accent)":r?"var(--text-dim)":"var(--text-muted)",cursor:r?"not-allowed":"pointer",opacity:r&&"naming"!==tn.kind?.45:1,flexShrink:0,fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s, opacity 0.1s"},onMouseEnter:e=>{r||(e.currentTarget.style.color=i?"#dc2626":"var(--text)",e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.color=i?"#dc2626":o?"var(--accent)":r?"var(--text-dim)":"var(--text-muted)",e.currentTarget.style.background="none"},"data-mobile-toolbar-action":e?"name":void 0,children:["naming"===tn.kind?(0,n.jsxs)("svg",{className:"animate-spin",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",opacity:"0.25"}),(0,n.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):o?(0,n.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("path",{d:"m15 4 5 5L7 22l-5-5Z"}),(0,n.jsx)("path",{d:"m14 5 5 5"}),(0,n.jsx)("path",{d:"M6 4V2M5 3H3M19 19v3M17.5 20.5h3"})]}),!e&&(0,n.jsx)("span",{children:s})]})),H&&(0,n.jsxs)("button",{type:"button",onClick:()=>tr("agents",e),title:I("agentSwitcher.title"),"aria-label":I("agentSwitcher.title"),"aria-pressed":"agents"===e7,style:{position:"relative",display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:e?36:void 0,height:"100%",padding:e?0:"0 12px",background:"agents"===e7?"var(--bg-selected)":"none",border:"none",borderTop:"agents"===e7?"2px solid var(--accent)":"2px solid transparent",borderRight:"1px solid var(--border)",color:"agents"===e7?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s"},"data-mobile-toolbar-action":e?"agents":void 0,children:[(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.9",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"5",y:"7",width:"14",height:"11",rx:"2"}),(0,n.jsx)("path",{d:"M9 11h.01M15 11h.01M9 15h6M12 7V4M10 4h4"})]}),!e&&(0,n.jsx)("span",{children:I("agentSwitcher.title")}),(0,n.jsx)("span",{"aria-hidden":"true",style:{minWidth:15,height:15,padding:"0 4px",display:"grid",placeItems:"center",borderRadius:7,background:"var(--bg-selected)",color:"var(--accent)",fontSize:10,lineHeight:1,fontVariantNumeric:"tabular-nums",...e?{position:"absolute",top:2,right:2,minWidth:13,height:13,padding:"0 3px",fontSize:9}:{}},children:D.subagents.length})]}),eJ&&(e?(0,n.jsx)("button",{type:"button",onClick:()=>tr("branches",!0),title:I("i18n.branches"),"aria-label":I("i18n.branches"),"aria-pressed":"branches"===e7,style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:"100%",padding:0,background:"branches"===e7?"var(--bg-selected)":"none",border:"none",borderTop:"branches"===e7?"2px solid var(--accent)":"2px solid transparent",borderRight:"1px solid var(--border)",color:"branches"===e7?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0},"data-mobile-toolbar-action":"branches",children:(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:eU.length>0?"var(--accent)":"var(--text-dim)"},"aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,n.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,n.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,n.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]})}):(0,n.jsx)(cA,{tree:eU,activeLeafId:eq,onLeafChange:rr,inline:!0,containerRef:e$,open:"branches"===e7,onToggle:()=>tr("branches"),hasSession:!0})),(0,n.jsxs)("button",{ref:tg,type:"button",onClick:()=>tf("system",e),disabled:e&&!rj,title:I("system.prompt"),"aria-label":I("system.prompt"),"aria-pressed":"system"===e7,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:e?36:void 0,height:"100%",padding:e?0:"0 12px",background:"system"===e7?"var(--bg-selected)":"none",border:"none",borderTop:"system"===e7?"2px solid var(--accent)":"2px solid transparent",borderRight:"1px solid var(--border)",cursor:e&&!rj?"not-allowed":"pointer",color:"system"===e7?"var(--text)":"var(--text-muted)",opacity:e&&!rj?.45:1,fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s"},onMouseEnter:t=>{(!e||rj)&&(t.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.color="system"===e7?"var(--text)":"var(--text-muted)"},"data-mobile-toolbar-action":e?"system":void 0,children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:eY?"var(--accent)":"var(--text-dim)",flexShrink:0},"aria-hidden":"true",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"}),(0,n.jsx)("line",{x1:"8",y1:"13",x2:"16",y2:"13"}),(0,n.jsx)("line",{x1:"8",y1:"17",x2:"13",y2:"17"})]}),!e&&(0,n.jsx)("span",{children:I("system.label")})]}),(0,n.jsxs)("button",{type:"button",onClick:()=>tf("tools",e),disabled:e&&!rj,title:I("tools.title"),"aria-label":I("tools.title"),"aria-pressed":"tools"===e7,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:e?36:void 0,height:"100%",padding:e?0:"0 12px",background:"tools"===e7?"var(--bg-selected)":"none",border:"none",borderTop:"tools"===e7?"2px solid var(--accent)":"2px solid transparent",borderRight:"1px solid var(--border)",cursor:e&&!rj?"not-allowed":"pointer",color:"tools"===e7?"var(--text)":"var(--text-muted)",opacity:e&&!rj?.45:1,fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s"},onMouseEnter:t=>{(!e||rj)&&(t.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.color="tools"===e7?"var(--text)":"var(--text-muted)"},"data-mobile-toolbar-action":e?"tools":void 0,children:[(0,n.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:tl?.some(e=>e.active)?"var(--accent)":"var(--text-dim)",flexShrink:0},"aria-hidden":"true",children:(0,n.jsx)("path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.8-3.8a6 6 0 0 1-7.9 7.9l-6.9 6.9a2.1 2.1 0 0 1-3-3l6.9-6.9a6 6 0 0 1 7.9-7.9z"})}),!e&&(0,n.jsx)("span",{children:I("tools.label")})]})]}):null};return(0,n.jsxs)(u8,{children:[(0,n.jsx)("style",{children:`
226
+ `})]})}function p5({cwd:e,busy:t,error:r,onCancelAction:o,onConfirmAction:i}){let{t:s}=(0,Y.s)();return L(!t,o),(0,n.jsx)("div",{role:"presentation",style:{position:"fixed",inset:0,zIndex:1100,display:"flex",alignItems:"center",justifyContent:"center",padding:16,background:"rgba(0, 0, 0, 0.4)"},children:(0,n.jsxs)("section",{role:"dialog","aria-modal":"true","aria-labelledby":"project-trust-title",style:{width:440,maxWidth:"100%",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)",boxShadow:"0 12px 36px rgba(0, 0, 0, 0.24)",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{display:"flex",gap:12,padding:"18px 18px 14px"},children:[(0,n.jsx)(aV.o,{size:21,weight:"duotone",color:"var(--accent-orange)",style:{flexShrink:0,marginTop:1},"aria-hidden":"true"}),(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("h2",{id:"project-trust-title",style:{margin:0,fontSize:15,fontWeight:700,color:"var(--text)"},children:s("desktop.trustProjectTitle")}),(0,n.jsx)("p",{style:{margin:"7px 0 0",fontSize:12,lineHeight:1.6,color:"var(--text-muted)"},children:s("desktop.trustProjectBody")}),(0,n.jsx)("code",{style:{display:"block",marginTop:10,padding:"8px 10px",border:"1px solid var(--border)",borderRadius:5,background:"var(--bg)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:11,overflowWrap:"anywhere"},children:e}),r&&(0,n.jsx)("div",{role:"alert",style:{marginTop:10,color:"var(--accent-red)",fontSize:12,lineHeight:1.5},children:r})]})]}),(0,n.jsxs)("footer",{style:{display:"flex",justifyContent:"flex-end",gap:8,padding:"10px 18px",borderTop:"1px solid var(--border)"},children:[(0,n.jsx)("button",{type:"button",onClick:o,disabled:t,style:{height:32,padding:"0 12px",border:"1px solid var(--border)",borderRadius:5,background:"transparent",color:"var(--text-muted)",cursor:t?"not-allowed":"pointer",fontSize:12},children:s("desktop.cancel")}),(0,n.jsx)("button",{type:"button",onClick:i,disabled:t,style:{height:32,padding:"0 12px",border:"1px solid var(--accent)",borderRadius:5,background:"var(--accent)",color:"var(--accent-contrast)",cursor:t?"wait":"pointer",opacity:t?.7:1,fontSize:12,fontWeight:600},children:s(t?"desktop.trustingProject":"desktop.trustProject")})]})]})})}function p3(e,t,r){let n=Number.isFinite(e)?e:t,o=Math.max(t,r);return Math.round(Math.max(t,Math.min(o,n)))}function p8(e){return p3(.42*e,360,640)}function p7(e,t){try{window.localStorage.setItem(e,String(t))}catch{}}function p9(e){let{ariaLabel:t,axis:r="horizontal",cssVariable:n,defaultWidth:i,getDefaultWidth:s,getMaxWidth:l,growthDirection:a,maxWidth:d,minWidth:c,storageKey:u,widthRef:p}=e,h=(0,o.useRef)(null),g=(0,o.useRef)(null),x=(0,o.useRef)(!1),[f,m]=(0,o.useState)(i),[v,y]=(0,o.useState)(!1),[b,k]=(0,o.useState)(!1);(0,o.useEffect)(()=>{k(!0)},[]);let j=(0,o.useCallback)(()=>Math.min(d,Math.max(c,l())),[l,d,c]),w=(0,o.useCallback)(e=>p3(e,c,j()),[j,c]),S=(0,o.useCallback)(e=>{p.current=e;let t=`${e}px`;h.current?.style.setProperty(n,t),h.current?.parentElement?.style.setProperty(n,t)},[n,p]),C=(0,o.useCallback)((e,t={})=>{let{forcePersist:r=!1,persist:n=!0}=t,o=w(e),i=o!==p.current;return S(o),m(o),n&&(i||r)&&p7(u,o),o},[S,w,u,p]),z=(0,o.useCallback)(e=>{document.body.style.cursor=e.previousCursor,document.body.style.userSelect=e.previousUserSelect},[]),T=(0,o.useCallback)(e=>{let t=g.current;if(t&&t.pointerId===e){g.current=null,z(t),y(!1),C(p.current,{forcePersist:!0});try{t.target.hasPointerCapture(e)&&t.target.releasePointerCapture(e)}catch{}}},[C,z,p]),R=(0,o.useCallback)(e=>{if("mouse"===e.pointerType&&0!==e.button)return;e.preventDefault(),e.stopPropagation();let t=g.current;t&&T(t.pointerId);let n=e.currentTarget;n.focus({preventScroll:!0}),n.setPointerCapture(e.pointerId),g.current={pointerId:e.pointerId,startPosition:"vertical"===r?e.clientY:e.clientX,startWidth:p.current,target:n,previousCursor:document.body.style.cursor,previousUserSelect:document.body.style.userSelect},document.body.style.cursor="vertical"===r?"row-resize":"col-resize",document.body.style.userSelect="none",y(!0)},[r,T,p]),I=(0,o.useCallback)(e=>{let t=g.current;if(!t||t.pointerId!==e.pointerId)return;if("mouse"===e.pointerType&&0===e.buttons)return void T(e.pointerId);e.preventDefault();let n="right"===a||"down"===a?1:-1,o="vertical"===r?e.clientY:e.clientX,i=w(t.startWidth+(o-t.startPosition)*n);S(i),e.currentTarget.setAttribute("aria-valuenow",String(i)),e.currentTarget.setAttribute("aria-valuetext",`${i} px`)},[S,r,w,T,a]),M=(0,o.useCallback)(e=>{T(e.pointerId)},[T]),E=(0,o.useCallback)(e=>{T(e.pointerId)},[T]),$=(0,o.useCallback)(e=>{T(e.pointerId)},[T]),W=(0,o.useCallback)(()=>{C(s?.()??i,{forcePersist:!0})},[C,i,s]),L=(0,o.useCallback)(()=>{C(p.current)},[C,p]),N=(0,o.useCallback)(e=>{let t=e.shiftKey?32:12,n="right"===a||"down"===a,o="vertical"===r?"ArrowDown":"ArrowRight",i="vertical"===r?"ArrowUp":"ArrowLeft";e.key===(n?o:i)?(e.preventDefault(),C(p.current+t,{forcePersist:!0})):e.key===(n?i:o)?(e.preventDefault(),C(p.current-t,{forcePersist:!0})):"Home"===e.key?(e.preventDefault(),C(c,{forcePersist:!0})):"End"===e.key?(e.preventDefault(),C(j(),{forcePersist:!0})):"Enter"===e.key&&(e.preventDefault(),W())},[r,C,j,a,c,W,p]);return(0,o.useEffect)(()=>{if(x.current)return;x.current=!0;let e=function(e){try{let t=window.localStorage.getItem(e);if(null===t)return null;let r=Number.parseInt(t,10);return Number.isFinite(r)?r:null}catch{return null}}(u),t=C(e??s?.()??i,{persist:!1});null!==e&&e!==t&&p7(u,t)},[C,i,s,u]),(0,o.useEffect)(()=>{if(!x.current)return;C(p.current);let e=()=>{C(p.current)};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[C,p]),(0,o.useEffect)(()=>{if(!v)return;let e=()=>{let e=g.current;e&&T(e.pointerId)},t=()=>{"visible"!==document.visibilityState&&e()};return window.addEventListener("blur",e),document.addEventListener("visibilitychange",t),()=>{window.removeEventListener("blur",e),document.removeEventListener("visibilitychange",t)}},[T,v]),(0,o.useEffect)(()=>()=>{let e=g.current;e&&(g.current=null,z(e))},[z]),{isResizing:v,panelRef:h,reclampWidth:L,separatorProps:{"aria-label":t,"aria-orientation":"vertical"===r?"horizontal":"vertical","aria-valuemax":b?j():d,"aria-valuemin":c,"aria-valuenow":f,"aria-valuetext":`${f} px`,onDoubleClick:W,onKeyDown:N,onLostPointerCapture:$,onPointerCancel:E,onPointerDown:R,onPointerMove:I,onPointerUp:M,role:"separator",tabIndex:0},width:f}}let he=null;async function ht(e){if(!("serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window)||"granted"!==Notification.permission)return!1;if(he)return he;let t=(async()=>{try{let t=await fetch("/api/push/config");if(!t.ok)return!1;let{publicKey:r}=await t.json();if(!r)return!1;let n=await navigator.serviceWorker.ready,o=await n.pushManager.getSubscription();return o||(o=await n.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:function(e){let t="=".repeat((4-e.length%4)%4),r=atob((e+t).replace(/-/g,"+").replace(/_/g,"/")),n=new Uint8Array(r.length);for(let e=0;e<r.length;e+=1)n[e]=r.charCodeAt(e);return n}(r)})),(await fetch("/api/push/subscribe",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({subscription:o.toJSON(),locale:e})})).ok}catch{return he=null,!1}})();return he=t,t.then(e=>{e||he!==t||(he=null)}),t}let hr="pi-web:tab-open-session";function hn(){try{return window.sessionStorage}catch{return null}}function ho(e){if("string"!=typeof e||0===e.length)return null;if(e.startsWith("{"))try{let t=JSON.parse(e);if(!t||"object"!=typeof t||Array.isArray(t))return null;if("session"===t.kind&&"string"==typeof t.sessionId&&t.sessionId)return{kind:"session",sessionId:t.sessionId};if("new"===t.kind&&"string"==typeof t.cwd&&t.cwd.trim())return{kind:"new",cwd:t.cwd};return null}catch{return null}return{kind:"session",sessionId:e}}function hi(e,t){t.setItem(hr,JSON.stringify(e))}function hs(e,t){return t?(function(e){let t=function(e){let t=new Map(e.map(e=>[e.id,e])),r=new Map;for(let n of e){if(r.has(n.id))continue;let e=[],o=new Set,i=n.id,s=null;for(;;){if(r.has(i)){s=r.get(i)??null;break}if(o.has(i))break;o.add(i),e.push(i);let n=t.get(i);if(!n)break;if(n.relation?.kind!=="subagent"){s=n.id;break}i=n.relation.parentSessionId}for(let t of e)r.set(t,s)}return r}(e),r=new Map;for(let t of e)t.relation?.kind!=="subagent"&&r.set(t.id,{root:t,subagents:[],latestModified:t.modified});for(let n of e){if(n.relation?.kind!=="subagent")continue;let e=t.get(n.id),o=e?r.get(e):void 0;o&&(o.subagents.push(n),n.modified>o.latestModified&&(o.latestModified=n.modified))}return[...r.values()].sort((e,t)=>t.latestModified.localeCompare(e.latestModified))})(e).find(e=>e.root.id===t||e.subagents.some(e=>e.id===t))??null:null}let hl="pi-web:last-open-by-workspace";function ha(){try{return window.localStorage}catch{return null}}function hd(e){let t=e.getItem(hl);if(!t)return{};try{let e=JSON.parse(t);return null===e||"object"!=typeof e||Array.isArray(e)?{}:e}catch{return{}}}function hc(e,t=ha()){if(t)try{let r=hd(t);if(!(e in r))return;delete r[e],0===Object.keys(r).length?t.removeItem(hl):t.setItem(hl,JSON.stringify(r))}catch{}}function hu(e){return e.projectKey??e.projectRoot??e.cwd}function hp(){let e,t,r,d,c,u,p,h,g,x,f,m,v,y,b,k,j=(0,s.useRouter)(),w=(0,s.useSearchParams)(),[S,C]=(0,o.useState)(()=>l(w));(0,o.useEffect)(()=>{C(l(w))},[w]),(0,o.useMemo)(()=>S,[S]);let{isDark:z,toggleTheme:T}=eA(),{locale:R,t:I}=(0,Y.s)(),M=tp(),[E,$]=(0,o.useState)(!1);(0,o.useEffect)(()=>{let e=window.matchMedia("(max-width: 480px)"),t=()=>$(e.matches);return t(),e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[]);let[W,L]=(0,o.useState)(null),[N,A]=(0,o.useState)([]),P=(0,o.useCallback)(e=>{A(e),L(t=>{if(!t)return t;let r=e.find(e=>e.id===t.id);return r?{...t,...r,detailsPending:r.detailsPending,relation:r.relation,branch:r.branch,isWorktree:r.isWorktree}:t})},[]),F=(0,o.useMemo)(()=>W?[...N.filter(e=>e.id!==W.id),W]:N,[W,N]),D=(0,o.useMemo)(()=>hs(F,W?.id),[W?.id,F]),H=!!D?.subagents.length,[O,B]=(0,o.useState)(()=>new Set);(0,o.useCallback)(e=>{B(t=>t.size===e.size&&[...e].every(e=>t.has(e))?t:e)},[]);let[U,_]=(0,o.useState)(null),[q,K]=(0,o.useState)(null),V=(0,o.useRef)(0),J=(0,o.useRef)(null),G=(0,o.useRef)(null),[X,Z]=(0,o.useState)(0),[Q,ee]=(0,o.useState)(0),[et,er]=(0,o.useState)(0),[en,eo]=(0,o.useState)(!1),[ei,es]=(0,o.useState)("models"),[el,ea]=(0,o.useState)(0),[ed,ec]=(0,o.useState)(null),[eu,ep]=(0,o.useState)(!1),[eh,eg]=(0,o.useState)(!1),[ex,ef]=(0,o.useState)(null),[em,ev]=(0,o.useState)(()=>!S.sidebarCollapsed),[ey,eb]=(0,o.useState)(!1),[ek,ej]=(0,o.useState)(!1),[ew,eS]=(0,o.useState)(!1),eC=ek&&ew&&!M;(0,o.useEffect)(()=>{(!ek||M)&&eS(!1)},[ek,M]);let[ez,eT]=(0,o.useState)(!1),[eR,eI]=(0,o.useState)(!1);(0,o.useEffect)(()=>{M&&ev(!1)},[M]),(0,o.useEffect)(()=>{eI(!0)},[]);let eM=(0,o.useRef)(null),eE=(0,o.useRef)(null),e$=(0,o.useRef)(null),eW=(0,o.useRef)(null),[eL,eN]=(0,o.useState)(null),[eP,eF]=(0,o.useState)(null),[eD,eH]=(0,o.useState)(null),eO=p_(),eB=function(){let{isDesktop:e,isMacOS:t}=p_(),r=(0,o.useCallback)(e=>{var t;0===e.button&&(t=e.target).closest("[data-tauri-drag-region]")&&!t.closest('button, a, input, textarea, select, [role="button"], [contenteditable="true"], [data-no-drag]')&&(e.preventDefault(),e.stopPropagation(),2===e.detail?pH():pO())},[]);return e&&!t?{onMouseDown:r}:{}}(),[eU,e_]=(0,o.useState)([]),[eq,eK]=(0,o.useState)(null),eV=(0,o.useRef)(null),eJ=cL(eU),[eY,eG]=(0,o.useState)(null),eX=(0,o.useCallback)(e=>{eG(e)},[]),[eZ,eQ]=(0,o.useState)(null),e0=(0,o.useCallback)(e=>{eQ(e)},[]),[e1,e2]=(0,o.useState)(null),e6=(0,o.useRef)(null),e4=(0,o.useCallback)((e,t)=>{nA(t).then(()=>{e6.current&&clearTimeout(e6.current),e2(e),e6.current=setTimeout(()=>e2(null),1400)})},[]);(0,o.useEffect)(()=>()=>{e6.current&&clearTimeout(e6.current)},[]);let[e5,e3]=(0,o.useState)(null),e8=(0,o.useCallback)(e=>{e3(e)},[]),[e7,e9]=(0,o.useState)(null),[te,tt]=(0,o.useState)(null);(0,o.useEffect)(()=>{eJ||e9(e=>"branches"===e?null:e)},[eJ]),(0,o.useEffect)(()=>{H||e9(e=>"agents"===e?null:e)},[H]),(0,o.useEffect)(()=>{eC&&e9(null)},[eC]);let tr=(0,o.useCallback)((e,t=!1)=>{M&&ev(!1),e9(t=>t===e?null:e),M&&E&&t&&eT(!0)},[M,E]),[tn,to]=(0,o.useState)({kind:"idle"}),ti=(0,o.useRef)(null),ts=(0,o.useRef)(W?.id??null);ts.current=W?.id??null;let[tl,ta]=(0,o.useState)(null),[td,tc]=(0,o.useState)(!1),tu=(0,o.useRef)(null),th=(0,o.useRef)(0),tg=(0,o.useRef)(null),tx=(0,o.useRef)(new Set),tf=(0,o.useCallback)((e,t=!1)=>{let r=e7!==e;if(tr(e,t),!r||td)return;let n=tu.current;if(!n)return;let o=++th.current;tc(!0),n().catch(e=>{console.error("Failed to load system information:",e)}).finally(()=>{th.current===o&&tc(!1)})},[e7,td,tr]),tm=(0,o.useCallback)(()=>{M&&ev(!1),e9("session")},[M]),tv=(0,o.useCallback)(()=>{M&&e9(null),ev(e=>!e)},[M]),ty=(0,o.useCallback)(()=>{ev(!1),e9(null),eT(e=>!e)},[]),tb=(0,o.useCallback)(()=>{M&&(ev(!1),e9(null),eT(!1)),ej(e=>!e)},[M]),tk=(0,o.useCallback)(()=>{e9(null),eS(e=>!e)},[]);(0,o.useEffect)(()=>{if(!ez)return;let e=e=>{let t=eM.current;t&&e.composedPath().includes(t)||eT(!1)},t=e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),eT(!1))};return document.addEventListener("pointerdown",e,!0),document.addEventListener("keydown",t,!0),()=>{document.removeEventListener("pointerdown",e,!0),document.removeEventListener("keydown",t,!0)}},[ez]),(0,o.useEffect)(()=>{eT(!1)},[M,E,W?.id,q]),(0,o.useEffect)(()=>{let e=eW.current;if(!e7||!e)return;let t=()=>{let t=e.getBoundingClientRect();"agents"===e7?tt({top:t.bottom,left:t.left,width:Math.min(420,t.width)}):tt({top:t.bottom,left:t.left,width:t.width})};t();let r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[e7]);let[tj,tw]=(0,o.useState)([]),[tS,tC]=(0,o.useState)(null),tz=(0,o.useRef)(!1);(0,o.useEffect)(()=>{let e;if(!tz.current){tz.current=!0;try{e=function(e){try{let t=JSON.parse(e??"null");if(!uB(t))return{tabs:[],activeId:null,open:!1};let r=[],n=new Set;for(let e of Array.isArray(t.tabs)?t.tabs:[]){if(!uB(e))continue;let t="string"==typeof e.id?e.id:"",o="string"==typeof e.filePath?e.filePath:"",i="string"==typeof e.label?e.label:"",s="subagent"===e.kind,l="string"==typeof e.sessionId?e.sessionId:"";!(!t||!i||n.has(t))&&(s?l:o)&&(n.add(t),r.push({id:t,label:i,filePath:o,..."terminal"===e.kind?{kind:"terminal"}:{},...s?{kind:"subagent",sessionId:l}:{},..."string"==typeof e.sourceSessionId?{sourceSessionId:e.sourceSessionId}:{},..."diff"===e.initialDisplayMode?{initialDisplayMode:"diff"}:{}}))}let o="string"==typeof t.activeId&&r.some(e=>e.id===t.activeId)?t.activeId:r[r.length-1]?.id??null;return{tabs:r,activeId:o,open:!0===t.open&&r.length>0}}catch{return{tabs:[],activeId:null,open:!1}}}(localStorage.getItem(uO))}catch{return}0!==e.tabs.length&&(tw(e.tabs),tC(e.activeId),ej(e.open))}},[]),(0,o.useEffect)(()=>{if(tz.current)try{localStorage.setItem(uO,JSON.stringify({tabs:tj.filter(e=>!e.closing).map(e=>({id:e.id,label:e.label,filePath:e.filePath,...e.kind?{kind:e.kind}:{},...e.sessionId?{sessionId:e.sessionId}:{},...e.sourceSessionId?{sourceSessionId:e.sourceSessionId}:{},...e.initialDisplayMode?{initialDisplayMode:e.initialDisplayMode}:{}})),activeId:tS,open:ek}))}catch{}},[tj,tS,ek]);let[tT,tR]=(0,o.useState)(!1),[tI,tM]=(0,o.useState)([]),[tE,t$]=(0,o.useState)(()=>new Set);(0,o.useEffect)(()=>{if(!tT)return void tM(e=>0===e.length?e:[]);let e=!1,t=()=>{fetch("/api/sessions",{cache:"no-store"}).then(e=>e.ok?e.json():null).then(t=>{!e&&t&&(tM(t.sessions??[]),t$(new Set(t.runningSessionIds??[])))}).catch(()=>{})};t();let r=setInterval(t,3e3);return()=>{e=!0,clearInterval(r)}},[tT,W?.id,X]);let tW=(0,o.useCallback)(async e=>{try{let t=await fetch(`/api/sessions/${encodeURIComponent(e)}`,{cache:"no-store"}),r=await t.json();if(!t.ok||!r.info)throw Error(r.error??`HTTP ${t.status}`);t9.current(r.info)}catch(e){console.error("[pi-web] failed to open session:",e instanceof Error?e.message:e)}},[]),tL=(0,o.useRef)(264),tN=(0,o.useRef)(p8(1366)),tA=(0,o.useCallback)(()=>p8(window.innerWidth),[]),tP=(0,o.useCallback)(()=>(function(e){let{viewportWidth:t,rightPanelOpen:r,rightPanelWidth:n}=e;if(t<=640)return 480;let o=t<960;return Math.min(480,t-(o?320:420)-(!o&&r?n:0))})({viewportWidth:window.innerWidth,rightPanelOpen:ek,rightPanelWidth:tN.current}),[ek]),tF=(0,o.useCallback)(()=>(function(e){let{viewportWidth:t,sidebarOpen:r,sidebarWidth:n}=e;return t<960?1200:Math.min(1200,t-420-(r?n:0))})({viewportWidth:window.innerWidth,sidebarOpen:em,sidebarWidth:tL.current}),[em]),tD=p9({ariaLabel:I("desktop.resizeSidebar"),cssVariable:"--sidebar-width",defaultWidth:264,getMaxWidth:tP,growthDirection:"right",maxWidth:480,minWidth:180,storageKey:"pi-sidebar-width",widthRef:tL}),tH=p9({ariaLabel:I("desktop.resizeFilePanel"),cssVariable:"--right-panel-width",defaultWidth:p8(1366),getDefaultWidth:tA,getMaxWidth:tF,growthDirection:"left",maxWidth:1200,minWidth:300,storageKey:"pi-right-panel-width",widthRef:tN}),tO=tD.reclampWidth,tB=tH.reclampWidth;(0,o.useEffect)(()=>{ek&&(tO(),tB())},[tB,tO,ek]);let tU=(0,o.useCallback)((e,t)=>{eE.current?.insertText(dY(e,t))},[]),t_=(0,o.useCallback)(e=>{let t=e.map(e=>dY(e,!1)).join("");t&&eE.current?.insertText(t)},[]);(0,o.useCallback)((e,t,r)=>{let n,o,i,s;eE.current?.insertText((n=Math.max(1,Math.min(t,r)),o=Math.max(1,Math.max(t,r)),i=e.includes(" ")?`@"${e}"`:`@${e}`,s=n===o?`:${n}`:`:${n}-${o}`,`${i}${s} `))},[]);let[tq,tK]=(0,o.useState)(()=>S.sessionId),[tV,tJ]=(0,o.useState)(null),[tY,tG]=(0,o.useState)(()=>S.requestedCwd?"validating":"idle"),[tX,tZ]=(0,o.useState)(null),[tQ,t0]=(0,o.useState)(()=>!tq);(0,o.useLayoutEffect)(()=>{var e;let t=(e=function(e=hn()){if(!e)return null;try{return ho(e.getItem(hr))}catch{return null}}(),S.requestedCwd||S.sessionId||!e?S:"session"===e.kind?{...S,sessionId:e.sessionId}:{...S,requestedCwd:e.cwd});t!==S&&(C(t),t.sessionId&&t0(!1))},[S]);let t1=(0,o.useRef)(!1),t2=(0,o.useRef)(new Map),[t6,t4]=(0,o.useState)(null),t5=(0,o.useRef)("");(0,o.useEffect)(()=>{let e=`${S.requestedCwd??""}|${S.sessionId??""}`;t5.current!==e&&(t5.current=e,tK(S.sessionId),t0(!S.sessionId),S.requestedCwd||tG("idle"),tZ(null))},[S]),(0,o.useEffect)(()=>{if(W){!function(e,t,r=ha()){if(r)try{let n=hd(r);n[e]=t,r.setItem(hl,JSON.stringify(n))}catch{}}(W.projectKey??J.current??hu(W),W.id),function(e,t=hn()){if(t&&e)try{hi({kind:"session",sessionId:e},t)}catch{}}(W.id);return}U&&function(e,t=hn()){let r=e.trim();if(t&&r)try{hi({kind:"new",cwd:r},t)}catch{}}(U)},[U,W]),(0,o.useEffect)(()=>{let e=S.requestedCwd;if(!e)return;let t=new AbortController;return tG("validating"),tZ(null),fetch("/api/cwd/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e}),signal:t.signal}).then(async e=>{let t=await e.json().catch(()=>({}));if(!e.ok||!t.cwd)throw Error(t.error??`HTTP ${e.status}`);t1.current=!0,_(t.cwd),tG("ready"),new URLSearchParams(window.location.search).get("cwd")||j.replace(`?cwd=${encodeURIComponent(t.cwd)}`,{scroll:!1})}).catch(e=>{t.signal.aborted||(tZ(e instanceof Error?e.message:String(e)),tG("error"))}),()=>t.abort()},[S,j]),(0,o.useCallback)((e,t)=>{let r=++V.current,n=function(e,t=ha()){if(!t)return null;try{let r=hd(t)[e];return"string"==typeof r&&r.length>0?r:null}catch{return null}}(e);if(!n)return;let o=o=>{if(r!==V.current)return;let i=o?.sessions.find(e=>e.id===n);if(!i){o&&hc(e);return}if(hu(i)!==e)return void hc(e);let s=G.current;s&&function(e,t){if(e===t)return dH(t);let r=dH(e)??null,n=dH(t);if(dB(e),!r)return;let o=n?dU(n.value,n.images,r.value,r.images,n.pastedBlocks,r.pastedBlocks):r;dO(t,o),dD(o)}(s,`parked-new:${t}`),G.current=null,L(i),ee(e=>e+1),new URLSearchParams(window.location.search).get("session")!==i.id&&j.replace(`?session=${encodeURIComponent(i.id)}`,{scroll:!1})};N.length>0?o({sessions:N}):fetch("/api/sessions").then(e=>e.ok?e.json():null).then(o).catch(()=>{})},[j,N]);let t3=(0,o.useCallback)(()=>{V.current+=1},[]),t8=(0,o.useCallback)((e,t,r)=>{if(t3(),tJ(e),!e)return;if(tJ(e),t1.current&&W&&oH(W.projectRoot??W.cwd,t??e)){if(t1.current=!1,W){let e=W.projectRoot??W.cwd;e&&t2.current.set(e,W.id)}return}t1.current=!1;let n=t??e;if(W&&oH(W.projectRoot??W.cwd,n)){(W.projectRoot??W.cwd)&&t2.current.set(n,W.id);return}if(W){let e=W.projectRoot??W.cwd;e&&t2.current.set(e,W.id)}L(null),_(t=>t&&t!==e?null:t),ee(e=>e+1),eG(null),e9(null),window.history.replaceState(null,"","/");let o=t2.current.get(n);t4(o?{projectRoot:n,sessionId:o}:null)},[W]);(0,o.useEffect)(()=>{let e=tV?oL(tV)||tV:null;document.title=e?`${e} — Pi Agent Web`:"Pi Agent Web"},[tV]);let t7=(0,o.useCallback)((e,t=!1)=>{if(t||t4(null),!t&&W){let t=oH(W.projectRoot??W.cwd,e.projectRoot??e.cwd);if(W.id===e.id&&t){M&&ev(!1);return}}let r=e.projectRoot??e.cwd;r&&t2.current.set(r,e.id),_(null),L(e),ee(e=>e+1),eG(null),t0(!0),M&&!t&&ev(!1),t&&(t1.current=!0),t&&new URLSearchParams(window.location.search).get("session")===e.id||j.replace(`?session=${encodeURIComponent(e.id)}`,{scroll:!1})},[M,W]),t9=(0,o.useRef)(()=>{});(0,o.useEffect)(()=>{t9.current=t7},[t7]);let re=(0,o.useRef)(null),rt=(0,o.useCallback)(()=>{re.current?.()},[]),rr=(0,o.useCallback)(e=>{eV.current?.(e)},[]),rn=(0,o.useCallback)(({targetSession:e,title:t,body:r,tag:n})=>{if(!("Notification"in window))return;let o=()=>{iQ({title:t,body:r,sessionUrl:e?`/?session=${encodeURIComponent(e.id)}`:"/",tag:n,onClick:()=>{window.focus(),e&&t7(e)}})};"granted"===Notification.permission?(o(),ht(R)):"default"===Notification.permission&&Notification.requestPermission().then(e=>{"granted"===e&&(o(),ht(R))})},[t7,R]);(0,o.useCallback)(e=>{var t;W?.relation?.kind!=="subagent"&&iZ()&&(t=tx.current,!(!function(e){switch(e.method){case"select":case"confirm":case"input":case"editor":return!0;case"custom":return!0!==e.closed;default:return!1}}(e)||t.has(e.id))&&(t.add(e.id),1)&&rn({targetSession:W,title:I("i18n.attentionNeeded"),body:"custom"===e.method?I("i18n.extensionInputNeeded"):e.title,tag:`pi-extension-ui:${e.id}`}))},[rn,W,I]);let ro=(0,o.useCallback)(async()=>{let e=W?.id;if(e&&"naming"!==tn.kind){ti.current&&clearTimeout(ti.current),e9(null),to({kind:"naming"});try{let t=await fetch(`/api/sessions/${encodeURIComponent(e)}/auto-name`,{method:"POST"}),r=await t.json().catch(()=>({}));if(!t.ok||!r.title)throw Error(r.error||`HTTP ${t.status}`);let n=r.title.trim();if(Z(e=>e+1),ts.current!==e)return;L(t=>t?.id===e?{...t,name:n}:t),eQ(t=>t?.sessionId===e?{...t,sessionName:n}:t),to({kind:"success"}),ti.current=setTimeout(()=>to({kind:"idle"}),1800)}catch(t){if(ts.current!==e)return;to({kind:"error",message:t instanceof Error?t.message:String(t)}),ti.current=setTimeout(()=>to({kind:"idle"}),5e3)}}},[tn.kind,W?.id]);(0,o.useEffect)(()=>{ti.current&&clearTimeout(ti.current),to({kind:"idle"})},[W?.id]),(0,o.useCallback)(()=>{er(e=>e+1)},[]);let ri=(0,o.useCallback)(()=>{t0(!0)},[]),rs=(0,o.useCallback)(e=>{if(Z(e=>e+1),W?.id===e){!function(e,t=hn()){if(t&&e)try{let r=ho(t.getItem(hr));if(r?.kind!=="session"||r.sessionId!==e)return;t.removeItem(hr)}catch{}}(e);let t=W.cwd;L(null),_(t??null),ee(e=>e+1),eG(null),e9(null),window.history.replaceState(null,"","/")}},[j,W]),rl=(0,o.useCallback)(e=>{fetch("/api/sessions").then(e=>e.ok?e.json():null).then(t=>{let r=t?.sessions.find(t=>t.id===e);r&&L(t=>!t||t.id!==e||t.projectRoot&&t.name?t:r)}).catch(()=>{})},[]),ra=(0,o.useCallback)((e,t)=>{Z(e=>e+1),G.current===t&&(t3(),G.current=null,_(null),L(e),rl(e.id),j.replace(`?session=${encodeURIComponent(e.id)}`,{scroll:!1}))},[t3,j,rl]),rd=(0,o.useCallback)(e=>{t3(),G.current=null,Z(e=>e+1),ee(e=>e+1),_(null),L(t=>({...t??{path:"",cwd:"",created:"",modified:"",messageCount:0,firstMessage:""},id:e,transient:!1})),rl(e),j.replace(`?session=${encodeURIComponent(e)}`,{scroll:!1})},[t3,j,rl]),rc=(0,o.useCallback)(()=>{Z(e=>e+1),er(e=>e+1),W&&rl(W.id),W?.relation?.kind!=="subagent"&&iZ()&&rn({targetSession:W,title:W?.name??I("i18n.sessionComplete"),body:I("i18n.taskFinished"),tag:W?`pi-session-complete:${W.id}`:"pi-session-complete"})},[rn,rl,W,I]);(0,o.useEffect)(()=>{if(!t6)return;let{projectRoot:e,sessionId:t}=t6;t9.current({path:"",id:t,cwd:e,created:"",modified:"",messageCount:0,firstMessage:"",projectRoot:e},!0),rl(t),window.history.replaceState(null,"",`?session=${encodeURIComponent(t)}`),t4(null)},[t6,rl]);let ru=(0,o.useCallback)((e,t)=>{t4(null),L(null),_(t),ee(e=>e+1),eG(null),e9(null),M&&ev(!1),K(null),j.replace(`?cwd=${encodeURIComponent(t)}`,{scroll:!1})},[j,M]);!function(e){let{onNewSession:t,activeCwd:r,onOpenCommandPalette:n,commandPaletteOpen:i}=e;(0,o.useEffect)(()=>{let e=e=>{if((e.metaKey||e.ctrlKey)&&("k"===e.key||"K"===e.key||e.shiftKey&&("p"===e.key||"P"===e.key))){if(!n)return;e.preventDefault(),n();return}if("Escape"===e.key){if(i||!a)return;let t=e.target?.tagName;if("TEXTAREA"===t||"INPUT"===t)return;e.preventDefault(),a();return}if("n"===e.key&&e.ctrlKey&&e.altKey){if(!r||!t)return;e.preventDefault(),t(r)}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[r,t,n,i])}({onNewSession:e=>ru(`kb-${Date.now()}`,e),activeCwd:tV,onOpenCommandPalette:()=>eb(e=>!e),commandPaletteOpen:ey});let rp=(0,o.useCallback)((e,t,r,n)=>{let o="string"==typeof r||null===r?r:r?.sourceSessionId??void 0,i=("object"==typeof r&&null!==r?r:n)??{},s=`file:${e}`;tw(r=>(function(e,t){let r=e.find(e=>e.id===t.tabId);if(!r)return[...e,{id:t.tabId,label:t.fileName,filePath:t.filePath,sourceSessionId:t.sourceSessionId,initialDisplayMode:t.modeHint,page:t.page,viewerState:t.modeHint?{displayMode:t.modeHint,wrapLines:!1,scrollTop:0,scrollLeft:0}:void 0,viewerRevision:0}];let n=!!(t.sourceSessionId&&r.sourceSessionId!==t.sourceSessionId),o=r.page!==t.page;return n||t.modeHint||o?e.map(e=>{if(e.id!==t.tabId)return e;let r={...e},i=!1;return n&&(r.sourceSessionId=t.sourceSessionId,i=!0),o&&(r.page=t.page,i=!0),t.modeHint&&(r.initialDisplayMode=t.modeHint,r.viewerState={displayMode:t.modeHint,wrapLines:e.viewerState?.wrapLines??!1,scrollTop:0,scrollLeft:0},i=!0),i&&(r.viewerRevision=(e.viewerRevision??0)+1),r}):e})(r,{fileName:t,filePath:e,modeHint:i.initialDisplayMode,page:i.page,sourceSessionId:o,tabId:s})),tC(s),ej(!0),M&&ev(!1)},[M]),rh=(0,o.useCallback)((e,t)=>{rp(e,oL(e),{sourceSessionId:W?.id??null,page:t})},[rp,W?.id]),rg=(0,o.useMemo)(()=>{let e=new Map;for(let t of tI){if(t.relation?.kind!=="subagent")continue;let r=t.relation;e.set(t.id,{status:tE.has(t.id)?"running":r.status,...r.createdAt?{createdAt:r.createdAt}:{},...r.completedAt?{completedAt:r.completedAt}:{}})}return e},[tI,tE]),rx=(0,o.useCallback)((e,t)=>{let r=`subagent:${e}`;tw(n=>n.some(e=>e.id===r)?n:[...n,{id:r,label:t,filePath:"",kind:"subagent",sessionId:e}]),tC(r),ej(!0),M&&ev(!1)},[M]),rf=(0,o.useCallback)(e=>{tw(t=>{let r=t.filter(t=>t.id!==e);return 0===r.length&&ej(!1),r}),tC(t=>{if(t!==e)return t;let r=tj.filter(t=>t.id!==e);return r.length>0?r[r.length-1].id:null})},[tj]),rm=(0,o.useCallback)(e=>{er(e=>e+1),rp(e,oL(e))},[rp]),rv=(0,o.useCallback)((e,t)=>{er(e=>e+1);let r=e.endsWith("/")?e:e+"/",n=n=>n===e||t&&n.startsWith(r);tw(e=>{let t=e.filter(e=>!n(e.filePath));return 0===t.length&&ej(!1),t}),tC(e=>{if(!e)return e;let t=tj.find(t=>t.id===e);if(!t||!n(t.filePath))return e;let r=tj.filter(e=>!n(e.filePath));return r.length>0?r[r.length-1].id:null})},[tj]),ry=W?os({name:W.name||eZ?.sessionName||void 0,firstMessage:W.firstMessage,id:W.id},(W.cwd??tV??"").replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean).pop()):(e=tV??U)?e.replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean).pop()||e:null,rb=(0,o.useCallback)(()=>{W&&window.open(`/api/sessions/${encodeURIComponent(W.id)}/export?inline=1`,"_blank","noopener,noreferrer")},[W]),rk=U??(null===W&&tV?tV:null),rj="validating"!==tY&&"error"!==tY&&(null!==W||null!==rk),rw=W?.cwd??rk,[rS,rC]=(0,o.useState)(!1),rz=(0,o.useCallback)(()=>{M||rC(e=>!e)},[M]),[rT,rR]=(0,o.useState)(!0);(0,o.useEffect)(()=>{let e=!1,t=()=>fetch("/api/features").then(e=>e.ok?e.json():null).then(t=>{!e&&t&&"boolean"==typeof t.tasksBoard&&(rR(t.tasksBoard),t.tasksBoard||rC(!1))}).catch(()=>{});t();let r=()=>t();return window.addEventListener("pi:features-changed",r),()=>{e=!0,window.removeEventListener("pi:features-changed",r)}},[]);let rI=tQ&&!rj;(0,o.useEffect)(()=>{let e=()=>{M||rC(!0)};return window.addEventListener(ud,e),()=>window.removeEventListener(ud,e)},[M]),(0,o.useEffect)(()=>{if(ec(null),ep(!1),ef(null),!rw)return;let e=new AbortController;return fetch(`/api/project-trust?cwd=${encodeURIComponent(rw)}`,{signal:e.signal}).then(async e=>{let t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);ec(t)}).catch(e=>{e instanceof DOMException&&"AbortError"===e.name||console.error("Failed to load project trust:",e)}),()=>e.abort()},[rw]);let rM=(0,o.useCallback)(async()=>{if(rw&&!eh){eg(!0),ef(null);try{let e=await fetch("/api/project-trust",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:rw})}),t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);ec(t),ep(!1),ea(e=>e+1),ee(e=>e+1)}catch(e){ef(e instanceof Error?e.message:String(e))}finally{eg(!1)}}},[eh,rw]),rE=tj.find(e=>e.id===tS)??null,r$=tV??W?.cwd??U,rW=(0,o.useCallback)(e=>{es(e),eo(!0)},[]),rL=(0,o.useMemo)(()=>(function(e){let{t}=e;return[{id:"new-session",section:"suggested",title:t("palette.cmd.newSession"),icon:uG.A,keywords:["new","task","session","新建"],run:e.onNewSession},{id:"toggle-sidebar",section:"panels",title:t("palette.cmd.toggleSidebar"),icon:uX.A,keywords:["sidebar","侧边栏"],run:e.onToggleSidebar},{id:"cycle-sidebar-form",section:"panels",title:t("palette.cmd.sidebarForm"),icon:ic.A,keywords:["sidebar","form","形态","列表","面板"],run:e.onCycleSidebarForm},{id:"toggle-right-panel",section:"panels",title:t("palette.cmd.toggleRightPanel"),icon:uZ.A,keywords:["panel","right","面板"],run:e.onToggleRightPanel},{id:"toggle-task-board",section:"panels",title:t("palette.cmd.toggleTasks"),icon:iu.A,keywords:["tasks","board","任务","看板"],run:e.onToggleTasks},{id:"toggle-theme",section:"configure",title:t("palette.cmd.toggleTheme"),icon:e.isDark?uQ.A:u0.A,keywords:["theme","dark","light","主题"],run:e.onToggleTheme},{id:"open-settings",section:"configure",title:t("palette.cmd.openSettings"),icon:u1.A,keywords:["settings","设置"],run:e.onOpenSettings}]})({onNewSession:()=>ru("u">typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`palette-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,tV??""),onCycleSidebarForm:rt,onToggleSidebar:()=>ev(e=>!e),onToggleRightPanel:()=>ej(e=>!e),onToggleTasks:rz,onToggleTheme:T,onOpenSettings:()=>rW("models"),isDark:z,t:I}),[ru,tV,rt,T,rW,z,I,rz]),rN=(0,n.jsx)(n.Fragment,{children:(0,n.jsx)(i7,{selectedSessionId:W?.id??null,onSelectSession:t7,onNewSession:ru,initialSessionId:tq,onInitialRestoreDone:ri,refreshKey:X,onSessionDeleted:rs,selectedCwd:W?.cwd??U??null,onCwdChange:t8,onOpenFile:rp,selectedFilePath:rE?.filePath||null,selectedSessionStats:eZ,onOpenSettings:e=>{rW(e??"models")},explorerRefreshKey:et,onAtMention:tU,onAtMentions:t_,onFileCreated:rm,onFileDeleted:rv,workspaceControlsHosts:{title:eL,welcome:eD,titleRight:eP},showWorkspaceControls:!0,onOpenCommandPalette:()=>eb(!0),cycleSidebarFormRef:re,onSessionsLoaded:P})}),rA=e=>rj&&ed?.requiresTrust&&!ed.trusted?(0,n.jsxs)("button",{type:"button",onClick:()=>{ef(null),ep(!0)},title:I("trust.resourcesNotLoaded"),"aria-label":I("trust.resourcesNotLoaded"),style:{display:"flex",alignItems:"center",justifyContent:e?"flex-start":"center",gap:6,width:e?"100%":void 0,minHeight:e?32:void 0,height:e?void 0:"100%",padding:e?"6px 12px":"0 12px",background:e?"color-mix(in srgb, #d97706 8%, var(--bg-panel))":"none",border:"none",borderRight:e?"none":"1px solid var(--border)",borderBottom:e?"1px solid var(--border)":"none",color:"#d97706",cursor:"pointer",flexShrink:0,fontSize:11,lineHeight:1.35,textAlign:"left"},"data-mobile-trust-banner":e?"true":void 0,children:[(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:{flexShrink:0},children:[(0,n.jsx)("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z"}),(0,n.jsx)("path",{d:"M12 8v4"}),(0,n.jsx)("path",{d:"M12 16h.01"})]}),(0,n.jsx)("span",{children:I("trust.resourcesNotLoaded")})]}):null,rP=e=>{let t,r,o,i,s,l;return e||rj?(0,n.jsxs)("div",{style:{display:"flex",alignItems:"stretch",height:"100%"},children:[(0,n.jsxs)("button",{type:"button",onClick:()=>{rb(),e&&E&&eT(!0)},disabled:!W,title:W?I("history.full"):I("history.unsaved"),"aria-label":I("history.full"),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:e?36:void 0,height:"100%",padding:e?0:"0 12px",background:"none",border:"none",borderTop:"2px solid transparent",borderRight:"1px solid var(--border)",color:W?"var(--text-muted)":"var(--text-dim)",cursor:W?"pointer":"not-allowed",opacity:W?1:.45,flexShrink:0,fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s, opacity 0.1s"},onMouseEnter:e=>{W&&(e.currentTarget.style.color="var(--text)",e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.color=W?"var(--text-muted)":"var(--text-dim)",e.currentTarget.style.background="none"},"data-mobile-toolbar-action":e?"history":void 0,children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:W?"var(--text-muted)":"var(--text-dim)",flexShrink:0},"aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M3 12a9 9 0 1 0 3-6.7L3 8"}),(0,n.jsx)("path",{d:"M3 3v5h5"}),(0,n.jsx)("path",{d:"M12 7v5l3 2"})]}),!e&&(0,n.jsx)("span",{children:I("history.label")})]}),(t=!!(W&&((eZ?.userMessages??0)>0||W.messageCount>0)),r=!W||W.transient||!t||"naming"===tn.kind,o="success"===tn.kind,i="error"===tn.kind,s="naming"===tn.kind?I("title.generating"):o?I("title.updated"):i?I("title.failed"):I("title.generate"),l=!W||W.transient?I("title.unsaved"):t?i?tn.message:I("title.generateSession"):I("title.noMessages"),(0,n.jsxs)("button",{type:"button",onClick:()=>{ro(),e&&E&&eT(!0)},disabled:r,title:l,"aria-label":s,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:e?36:void 0,height:"100%",padding:e?0:"0 12px",background:"none",border:"none",borderTop:"2px solid transparent",borderRight:"1px solid var(--border)",color:i?"#dc2626":o?"var(--accent)":r?"var(--text-dim)":"var(--text-muted)",cursor:r?"not-allowed":"pointer",opacity:r&&"naming"!==tn.kind?.45:1,flexShrink:0,fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s, opacity 0.1s"},onMouseEnter:e=>{r||(e.currentTarget.style.color=i?"#dc2626":"var(--text)",e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.color=i?"#dc2626":o?"var(--accent)":r?"var(--text-dim)":"var(--text-muted)",e.currentTarget.style.background="none"},"data-mobile-toolbar-action":e?"name":void 0,children:["naming"===tn.kind?(0,n.jsxs)("svg",{className:"animate-spin",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",opacity:"0.25"}),(0,n.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):o?(0,n.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("path",{d:"m15 4 5 5L7 22l-5-5Z"}),(0,n.jsx)("path",{d:"m14 5 5 5"}),(0,n.jsx)("path",{d:"M6 4V2M5 3H3M19 19v3M17.5 20.5h3"})]}),!e&&(0,n.jsx)("span",{children:s})]})),H&&(0,n.jsxs)("button",{type:"button",onClick:()=>tr("agents",e),title:I("agentSwitcher.title"),"aria-label":I("agentSwitcher.title"),"aria-pressed":"agents"===e7,style:{position:"relative",display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:e?36:void 0,height:"100%",padding:e?0:"0 12px",background:"agents"===e7?"var(--bg-selected)":"none",border:"none",borderTop:"agents"===e7?"2px solid var(--accent)":"2px solid transparent",borderRight:"1px solid var(--border)",color:"agents"===e7?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s"},"data-mobile-toolbar-action":e?"agents":void 0,children:[(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.9",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"5",y:"7",width:"14",height:"11",rx:"2"}),(0,n.jsx)("path",{d:"M9 11h.01M15 11h.01M9 15h6M12 7V4M10 4h4"})]}),!e&&(0,n.jsx)("span",{children:I("agentSwitcher.title")}),(0,n.jsx)("span",{"aria-hidden":"true",style:{minWidth:15,height:15,padding:"0 4px",display:"grid",placeItems:"center",borderRadius:7,background:"var(--bg-selected)",color:"var(--accent)",fontSize:10,lineHeight:1,fontVariantNumeric:"tabular-nums",...e?{position:"absolute",top:2,right:2,minWidth:13,height:13,padding:"0 3px",fontSize:9}:{}},children:D.subagents.length})]}),eJ&&(e?(0,n.jsx)("button",{type:"button",onClick:()=>tr("branches",!0),title:I("i18n.branches"),"aria-label":I("i18n.branches"),"aria-pressed":"branches"===e7,style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:"100%",padding:0,background:"branches"===e7?"var(--bg-selected)":"none",border:"none",borderTop:"branches"===e7?"2px solid var(--accent)":"2px solid transparent",borderRight:"1px solid var(--border)",color:"branches"===e7?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0},"data-mobile-toolbar-action":"branches",children:(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:eU.length>0?"var(--accent)":"var(--text-dim)"},"aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,n.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,n.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,n.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]})}):(0,n.jsx)(cA,{tree:eU,activeLeafId:eq,onLeafChange:rr,inline:!0,containerRef:e$,open:"branches"===e7,onToggle:()=>tr("branches"),hasSession:!0})),(0,n.jsxs)("button",{ref:tg,type:"button",onClick:()=>tf("system",e),disabled:e&&!rj,title:I("system.prompt"),"aria-label":I("system.prompt"),"aria-pressed":"system"===e7,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:e?36:void 0,height:"100%",padding:e?0:"0 12px",background:"system"===e7?"var(--bg-selected)":"none",border:"none",borderTop:"system"===e7?"2px solid var(--accent)":"2px solid transparent",borderRight:"1px solid var(--border)",cursor:e&&!rj?"not-allowed":"pointer",color:"system"===e7?"var(--text)":"var(--text-muted)",opacity:e&&!rj?.45:1,fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s"},onMouseEnter:t=>{(!e||rj)&&(t.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.color="system"===e7?"var(--text)":"var(--text-muted)"},"data-mobile-toolbar-action":e?"system":void 0,children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:eY?"var(--accent)":"var(--text-dim)",flexShrink:0},"aria-hidden":"true",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"}),(0,n.jsx)("line",{x1:"8",y1:"13",x2:"16",y2:"13"}),(0,n.jsx)("line",{x1:"8",y1:"17",x2:"13",y2:"17"})]}),!e&&(0,n.jsx)("span",{children:I("system.label")})]}),(0,n.jsxs)("button",{type:"button",onClick:()=>tf("tools",e),disabled:e&&!rj,title:I("tools.title"),"aria-label":I("tools.title"),"aria-pressed":"tools"===e7,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:e?36:void 0,height:"100%",padding:e?0:"0 12px",background:"tools"===e7?"var(--bg-selected)":"none",border:"none",borderTop:"tools"===e7?"2px solid var(--accent)":"2px solid transparent",borderRight:"1px solid var(--border)",cursor:e&&!rj?"not-allowed":"pointer",color:"tools"===e7?"var(--text)":"var(--text-muted)",opacity:e&&!rj?.45:1,fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s"},onMouseEnter:t=>{(!e||rj)&&(t.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.color="tools"===e7?"var(--text)":"var(--text-muted)"},"data-mobile-toolbar-action":e?"tools":void 0,children:[(0,n.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:tl?.some(e=>e.active)?"var(--accent)":"var(--text-dim)",flexShrink:0},"aria-hidden":"true",children:(0,n.jsx)("path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.8-3.8a6 6 0 0 1-7.9 7.9l-6.9 6.9a2.1 2.1 0 0 1-3-3l6.9-6.9a6 6 0 0 1 7.9-7.9z"})}),!e&&(0,n.jsx)("span",{children:I("tools.label")})]})]}):null};return(0,n.jsxs)(u9,{children:[(0,n.jsx)("style",{children:`
227
227
  @media (max-width: 640px) {
228
228
  .sidebar-overlay-backdrop.sidebar-mobile-pending {
229
229
  opacity: 0 !important;
@@ -234,4 +234,4 @@ ${r}`):i=r;let h=i,g=o?.map(e=>({type:"image",source:{type:"base64",media_type:e
234
234
  box-shadow: none;
235
235
  }
236
236
  }
237
- `}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"row",height:"100dvh",overflow:"hidden",background:"var(--bg-panel)"},children:[(0,n.jsxs)("div",{ref:tD.panelRef,id:"session-sidebar",inert:eC,className:`sidebar-container${em?" sidebar-open":" sidebar-closed"}${eR?"":" sidebar-mobile-pending"}${tD.isResizing?" sidebar-resizing":""}`,style:{"--sidebar-width":`${tD.width}px`,display:"flex",flexDirection:"column",flexShrink:0,zIndex:200},children:[eO?.isMacOS&&(0,n.jsx)("div",{...eO.dragRegionProps,...eB,"aria-hidden":"true",style:{height:48,flexShrink:0}}),rN]}),em&&(0,n.jsx)("div",{...tD.separatorProps,inert:eC,"aria-controls":"session-sidebar",className:`panel-resize-handle sidebar-resize-handle${tD.isResizing?" is-resizing":""}`,"data-resize-handle":"sidebar",title:`${I("layout.resizeSidebar")}: ${I("layout.resizeHint")}`}),(0,n.jsxs)("div",{className:"app-main-region",style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",minWidth:0,position:"relative",background:"var(--bg)"},children:[(0,n.jsx)(pZ,{topBarRef:e$,sidebarOpen:em,onSidebarToggle:tv,isDark:z,toggleTheme:T,isMobile:M,showTasks:rS,tasksBoardEnabled:rT,onToggleTasks:rz,systemPrompt:eY,activeTopPanel:e7,topPanelPos:te,sessionStats:eZ,selectedSession:W,contextUsage:e5,copiedSessionField:e1,onCopySessionField:e4,rightPanelOpen:ek,onToggleFilePanel:()=>ej(e=>!e),onRefreshSession:()=>ee(e=>e+1),onOpenSettings:()=>rW("models"),sessionTitle:ry,onWorkspaceControlsHostChange:eN,onTitleRightHostChange:eF,desktopChrome:eO,windowDrag:eB}),rj&&ed?.requiresTrust&&!ed.trusted&&(0,n.jsxs)("button",{type:"button",onClick:()=>{ef(null),ep(!0)},title:I("desktop.projectResourcesRestricted"),"aria-label":I("desktop.projectResourcesRestricted"),style:{position:"fixed",top:60,right:M?12:20,zIndex:700,display:"inline-flex",alignItems:"center",gap:7,padding:"8px 11px",border:"1px solid color-mix(in srgb, var(--accent-orange) 52%, var(--border))",borderRadius:7,background:"color-mix(in srgb, var(--accent-orange) 11%, var(--bg-panel))",color:"var(--accent-orange)",boxShadow:"0 8px 24px rgba(0, 0, 0, 0.16)",cursor:"pointer",fontSize:12,fontWeight:600},children:[(0,n.jsx)("span",{"aria-hidden":"true",children:"⚠"}),I("desktop.trustProject")]}),(0,n.jsxs)("div",{style:{"--right-panel-width":`${tH.width}px`,flex:1,display:"flex",overflow:"hidden",minWidth:0,position:"relative"},children:[(0,n.jsx)("div",{className:`sidebar-overlay-backdrop${eR?"":" sidebar-mobile-pending"}`,onClick:()=>ev(!1),style:{position:"fixed",inset:0,zIndex:199,background:"rgba(0,0,0,0.4)",opacity:+!!em,pointerEvents:em?"auto":"none",transition:"opacity 0.25s ease"}}),(0,n.jsxs)("div",{inert:eC,style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",minWidth:0},children:[(0,n.jsxs)("div",{ref:eW,style:{flexShrink:0},children:[!M&&rA(!1),(0,n.jsxs)("div",{style:{display:"none",alignItems:"center",position:"relative",borderBottom:"1px solid var(--border)",height:"calc(36px + env(safe-area-inset-top))",paddingTop:"env(safe-area-inset-top)"},children:[(0,n.jsx)("button",{onClick:tv,title:em?I("sidebar.hide"):I("sidebar.show"),"aria-label":em?I("sidebar.hide"):I("sidebar.show"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:"none",border:"none",borderRight:"1px solid var(--border)",color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)"},children:em?(0,n.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,n.jsx)("line",{x1:"9",y1:"3",x2:"9",y2:"21"})]}):(0,n.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:[(0,n.jsx)("line",{x1:"3",y1:"6",x2:"21",y2:"6"}),(0,n.jsx)("line",{x1:"3",y1:"12",x2:"21",y2:"12"}),(0,n.jsx)("line",{x1:"3",y1:"18",x2:"21",y2:"18"})]})}),M&&(0,n.jsxs)("div",{ref:eM,"data-mobile-toolbar":"true",style:{position:"relative",display:"flex",alignItems:"stretch",flex:1,minWidth:0,height:"100%"},children:[E&&(0,n.jsx)("button",{type:"button",onClick:ty,title:ez?I("chat.close"):I("chat.moreControls"),"aria-label":ez?I("chat.close"):I("chat.moreControls"),"aria-controls":"mobile-toolbar-actions","aria-expanded":ez,"data-mobile-toolbar-more":"true",style:{position:"relative",zIndex:ez?21:void 0,display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:ez?"var(--bg-selected)":"none",border:"none",borderRight:"1px solid var(--border)",color:ez?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s, background 0.12s"},children:ez?(0,n.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"5",y1:"5",x2:"19",y2:"19"}),(0,n.jsx)("line",{x1:"19",y1:"5",x2:"5",y2:"19"})]}):(0,n.jsxs)("svg",{width:"17",height:"17",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"5",cy:"12",r:"1.5"}),(0,n.jsx)("circle",{cx:"12",cy:"12",r:"1.5"}),(0,n.jsx)("circle",{cx:"19",cy:"12",r:"1.5"})]})}),!E&&rP(!0),(e=>{if(!e&&(!rj||!eZ&&!e5))return null;let t=eZ?.tokens,r=eZ?.cost??0,o=e=>e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(0)}k`:String(e),i=r>0?r>=.01?`$${r.toFixed(2)}`:"<$0.01":null,s="var(--text-muted)",l=null,a=null;if(e5?.contextWindow){let e=e5.percent;null!==e&&e>90?s="#ef4444":null!==e&&e>70&&(s="rgba(234,179,8,0.95)"),l=null!==e?`${e.toFixed(0)}% / ${o(e5.contextWindow)}`:`? / ${o(e5.contextWindow)}`,a=null!==e?`${e.toFixed(0)}%`:null}let d=[];if(t&&(d.push(`in: ${t.input.toLocaleString(R)}`),d.push(`out: ${t.output.toLocaleString(R)}`),d.push(`cache read: ${t.cacheRead.toLocaleString(R)}`),d.push(`cache write: ${t.cacheWrite.toLocaleString(R)}`),r>0&&d.push(`cost: $${r.toFixed(4)}`)),e5?.contextWindow){let e=e5.percent;d.push(`context: ${null!==e?e.toFixed(1)+"%":"unknown"} of ${e5.contextWindow.toLocaleString()} tokens`)}let c=d.join(" | "),u=e&&E&&ez,p=!!(t&&(t.input>0||t.output>0)||i||a);return(0,n.jsx)("button",{type:"button",onClick:()=>tr("session"),disabled:!rj||u,tabIndex:u?-1:void 0,title:c||I("session.title"),"aria-label":I("session.title"),"aria-pressed":"session"===e7,"aria-hidden":!!u||void 0,className:e?"mobile-session-stats":void 0,"data-mobile-toolbar-stats":e?"true":void 0,style:{marginLeft:e?0:"auto",display:"flex",alignItems:"center",justifyContent:"flex-end",flex:e?1:void 0,minWidth:0,gap:e?7:10,paddingLeft:e?6:12,paddingRight:e?6:12,height:"100%",overflow:"hidden",visibility:u?"hidden":"visible",pointerEvents:u?"none":"auto",background:"session"===e7?"var(--bg-selected)":"none",border:"none",borderTop:"session"===e7?"2px solid var(--accent)":"2px solid transparent",fontSize:11,color:"var(--text-muted)",whiteSpace:"nowrap",cursor:rj?"pointer":"default",fontVariantNumeric:"tabular-nums",transition:"color 0.1s, background 0.1s"},onMouseEnter:e=>{rj&&!u&&(e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.color="session"===e7?"var(--text)":"var(--text-muted)"},children:e?(0,n.jsxs)(n.Fragment,{children:[t&&t.input>0&&(0,n.jsxs)("span",{className:"mobile-session-stat-io",style:{display:"flex",alignItems:"center",gap:2,flexShrink:0},children:[(0,n.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"5",y1:"8.5",x2:"5",y2:"1.5"}),(0,n.jsx)("polyline",{points:"2 4 5 1.5 8 4"})]}),o(t.input)]}),t&&t.output>0&&(0,n.jsxs)("span",{className:"mobile-session-stat-io",style:{display:"flex",alignItems:"center",gap:2,flexShrink:0},children:[(0,n.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"5",y1:"1.5",x2:"5",y2:"8.5"}),(0,n.jsx)("polyline",{points:"2 6 5 8.5 8 6"})]}),o(t.output)]}),i&&(0,n.jsx)("span",{className:"mobile-session-stat-cost",style:{color:"var(--text)",fontWeight:500,flexShrink:0},children:i}),a&&(0,n.jsx)("span",{style:{color:s,flexShrink:0},children:a}),!p&&rj&&(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",color:"var(--text-dim)"},children:I("session.title")})]}):(0,n.jsxs)(n.Fragment,{children:[t&&t.input>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"5",y1:"8.5",x2:"5",y2:"1.5"}),(0,n.jsx)("polyline",{points:"2 4 5 1.5 8 4"})]}),o(t.input)]}),t&&t.output>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"5",y1:"1.5",x2:"5",y2:"8.5"}),(0,n.jsx)("polyline",{points:"2 6 5 8.5 8 6"})]}),o(t.output)]}),t&&t.cacheRead>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M8.5 5a3.5 3.5 0 1 1-1-2.45"}),(0,n.jsx)("polyline",{points:"6.5 1.5 8.5 2.5 7.5 4.5"})]}),o(t.cacheRead)]}),i&&(0,n.jsx)("span",{style:{display:"flex",alignItems:"center",color:"var(--text)",fontWeight:500},children:i}),l&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,color:s},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M1 9 L1 5 Q1 1 5 1 Q9 1 9 5 L9 9"}),(0,n.jsx)("line",{x1:"1",y1:"9",x2:"9",y2:"9"})]}),l]})]})})})(!0),(t=E&&ez,(0,n.jsx)("button",{type:"button",onClick:tb,disabled:t,tabIndex:t?-1:void 0,"aria-controls":"file-panel","aria-expanded":ek,"aria-hidden":!!t||void 0,title:ek?I("files.hidePanel"):I("files.showPanel"),"aria-label":ek?I("files.hidePanel"):I("files.showPanel"),"data-mobile-toolbar-file":"true",style:{marginLeft:0,display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,visibility:t?"hidden":"visible",pointerEvents:t?"none":"auto",background:ek?"var(--bg-selected)":"none",border:"none",borderLeft:"1px solid var(--border)",color:ek?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s, background 0.12s"},onMouseEnter:e=>{t||(e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.color=ek?"var(--text)":"var(--text-muted)"},children:(0,n.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,n.jsx)("line",{x1:"15",y1:"3",x2:"15",y2:"21"})]})})),E&&ez&&(0,n.jsx)("div",{id:"mobile-toolbar-actions",role:"toolbar","aria-label":I("chat.moreControls"),"data-mobile-toolbar-actions":"true",style:{position:"absolute",top:0,right:0,bottom:0,left:36,zIndex:20,display:"flex",alignItems:"stretch",background:"color-mix(in srgb, var(--bg-panel) 94%, var(--bg))",boxShadow:"4px 0 18px rgba(0,0,0,0.12)",backdropFilter:"blur(10px)"},children:rP(!0)})]}),M&&eJ&&(0,n.jsx)(cA,{tree:eU,activeLeafId:eq,onLeafChange:rr,inline:!0,compact:!0,containerRef:e$,open:"branches"===e7,onToggle:()=>tr("branches"),hasSession:rj,hideInlineButton:!0}),M&&e7&&te&&(0,n.jsxs)("div",{style:{position:"fixed",top:te.top,left:te.left,width:te.width,maxHeight:`calc(100dvh - ${te.top}px)`,overflowY:"auto",zIndex:500},children:["agents"===e7&&D&&W&&(0,n.jsx)(p1,{rootSession:D.root,subagents:D.subagents,selectedSessionId:W.id,runningSessionIds:O,onSelectSession:t7}),"system"===e7&&(0,n.jsx)(p2,{loading:td,prompt:eY,translate:I}),"tools"===e7&&(0,n.jsx)(or,{loading:td,tools:tl,translate:I}),"session"===e7&&(0,n.jsx)("div",{className:"session-info-popover",style:{background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",boxShadow:"0 10px 28px rgba(0,0,0,0.10)",padding:"12px 16px"},children:eZ?(r=eZ.totalActiveMs??0,d=[...eZ.sessionName?[{label:I("session.name"),value:eZ.sessionName,copyField:null}]:[],{label:I("session.file"),value:eZ.sessionFile??I("session.inMemory"),copyField:"file"},{label:I("session.id"),value:eZ.sessionId,copyField:"id"},...r>0?[{label:I("session.totalActive"),value:(e=>{if(e<=0)return"0s";let t=Math.floor(e/1e3),r=Math.floor(t/3600),n=Math.floor(t%3600/60),o=t%60;return r>0?`${r}h ${n}m`:n>0?`${n}m ${o}s`:`${o}s`})(r),copyField:null}]:[]],c=[...W?[{label:I("session.projectDir"),value:W.projectRoot??W.cwd,copyField:"projectDir"}]:[],...W?.branch?[{label:I("session.gitBranch"),value:W.branch,copyField:"gitBranch"}]:[],...W?.isWorktree?[{label:I("session.gitWorktree"),value:W.cwd,copyField:"gitWorktree"}]:[]],u=[[I("session.user"),eZ.userMessages.toLocaleString(R)],[I("session.assistant"),eZ.assistantMessages.toLocaleString(R)],[I("session.toolCalls"),eZ.toolCalls.toLocaleString(R)],[I("session.toolResults"),eZ.toolResults.toLocaleString(R)],[I("session.total"),eZ.totalMessages.toLocaleString(R)]],p=[[I("session.input"),eZ.tokens.input.toLocaleString(R)],[I("session.output"),eZ.tokens.output.toLocaleString(R)],...eZ.tokens.cacheRead>0?[[I("session.cacheRead"),eZ.tokens.cacheRead.toLocaleString(R)]]:[],...eZ.tokens.cacheWrite>0?[[I("session.cacheWrite"),eZ.tokens.cacheWrite.toLocaleString(R)]]:[],[I("session.total"),eZ.tokens.total.toLocaleString(R)]],h=e5??eZ.contextUsage,x=[...eZ.cost>0?[[I("session.cost"),`$${eZ.cost.toFixed(4)}`]]:[],...h?.contextWindow?[[I("session.context"),`${null!==h.percent?`${h.percent.toFixed(1)}%`:"?"} / ${(g=h.contextWindow)>=1e6?`${(g/1e6).toFixed(1)}M`:g>=1e3?`${(g/1e3).toFixed(0)}k`:String(g)}`]]:[],...eZ.tokens.cacheRead+eZ.tokens.cacheWrite>0&&eZ.tokens.cacheRead+eZ.tokens.cacheWrite+eZ.tokens.input>0?[[I("session.cacheHitRate"),`${(eZ.tokens.cacheRead/(eZ.tokens.cacheRead+eZ.tokens.cacheWrite+eZ.tokens.input)*100).toFixed(1)}%`]]:[]],f=(e,t,r="left",o=!1)=>(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:e}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:o?"max-content max-content":"auto minmax(0, 1fr)",columnGap:o?14:12,rowGap:4,justifyContent:o?"start":void 0},children:t.map(([t,i])=>(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:t}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:o?"normal":"anywhere",textAlign:r,whiteSpace:"right"===r?"nowrap":"normal"},children:i})]},`${e}:${t}`))})]}),m={file:"session.copyFile",id:"session.copyId",projectDir:"session.copyProjectDir",gitBranch:"session.copyGitBranch",gitWorktree:"session.copyGitWorktree"},v=(e,t)=>{let r=e1===e;return(0,n.jsx)("button",{type:"button",title:r?I("session.copied"):I(m[e]),onClick:()=>e4(e,t),style:{alignSelf:"start",display:"inline-flex",alignItems:"center",justifyContent:"center",width:22,height:22,marginTop:-2,color:r?"var(--accent)":"var(--text-dim)",background:"transparent",border:"1px solid var(--border)",borderRadius:4,cursor:"pointer",flex:"0 0 auto",transition:"color 0.12s, border-color 0.12s, background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)",e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color=r?"var(--accent)":"var(--text-dim)",e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="transparent"},children:r?(0,n.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,n.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})})},y=(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:I("session.infoSection")}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:12,rowGap:8,alignItems:"start"},children:d.map(e=>(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:e.label}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:"anywhere",wordBreak:"break-word",whiteSpace:"normal"},children:e.value}),(0,n.jsx)("div",{children:e.copyField?v(e.copyField,e.value):null})]},`session-info:${e.label}`))})]}),b=c.length>0?(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:I("session.projectSection")}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:12,rowGap:8,alignItems:"start"},children:c.map(e=>(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:e.label}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:"anywhere",wordBreak:"break-word",whiteSpace:"normal"},children:e.value}),(0,n.jsx)("div",{children:e.copyField?v(e.copyField,e.value):null})]},`project-info:${e.label}`))})]}):null,(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:M?"1fr":"minmax(360px, 1.7fr) minmax(140px, 0.55fr) minmax(190px, 0.75fr)",gap:M?16:24,fontSize:12,lineHeight:1.5,fontFamily:"var(--font-mono)"},children:[(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:M?16:20},children:[y,b]}),f(I("session.messages"),u),f(I("session.tokens"),[...p,...x],"right",!0)]})):(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:I("session.load")})})]})]}),M&&rA(!0)]}),(0,n.jsx)("div",{style:{flex:1,overflow:"hidden",position:"relative"},children:rS&&rT?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(pI,{}),(0,n.jsx)(pM,{activeProject:tV??void 0})]}):rj?(0,n.jsx)(ua,{session:W,newSessionCwd:rk,onAgentEnd:rc,onSessionCreated:ra,onSessionForked:rd,modelsRefreshKey:el,chatInputRef:eE,tasksBoardEnabled:rT,onSystemPromptChange:eX,onSessionStatsChange:e0,onOpenSession:tW,onOpenSubagent:rx,subagentRuns:rg,onSessionStatsPanelOpen:tm,onContextUsageChange:e8,onOpenFile:rh,onWorkspaceControlsHostChange:eH,onViewFullHistory:rb,systemPrompt:eY},Q):"validating"===tY?(0,n.jsxs)("div",{role:"status",style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:8,padding:24,color:"var(--text-muted)",textAlign:"center"},children:[(0,n.jsx)("div",{style:{fontSize:14,color:"var(--text)"},children:I("desktop.openingWorkspace")}),(0,n.jsx)("div",{style:{maxWidth:"min(720px, 100%)",overflowWrap:"anywhere",fontFamily:"var(--font-mono)",fontSize:12},children:S.requestedCwd})]}):"error"===tY?(0,n.jsxs)("div",{role:"alert",style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:8,padding:24,color:"var(--text-muted)",textAlign:"center"},children:[(0,n.jsx)("div",{style:{fontSize:14,color:"var(--status-error)"},children:I("desktop.unableToOpenWorkspace")}),(0,n.jsx)("div",{style:{maxWidth:"min(720px, 100%)",overflowWrap:"anywhere",fontFamily:"var(--font-mono)",fontSize:12},children:S.requestedCwd}),(0,n.jsx)("div",{style:{maxWidth:720,fontSize:12},children:tX})]}):rI?tV?(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:15},children:I("desktop.selectSessionFromSidebar")}):(0,n.jsxs)("div",{style:{position:"absolute",top:12,left:12,display:"flex",alignItems:"flex-start",gap:8,userSelect:"none",pointerEvents:"none"},children:[(0,n.jsx)(i.n,{size:44,color:"var(--accent)","aria-hidden":"true",style:{opacity:.7,flexShrink:0}}),(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{fontSize:18,fontWeight:600,color:"var(--text)",marginBottom:8},children:I("desktop.getStarted")}),(0,n.jsxs)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.8},children:[(0,n.jsx)("span",{style:{color:"var(--text-dim)",marginRight:6},children:"1."}),I("desktop.selectProjectDirectory"),(0,n.jsx)("br",{}),(0,n.jsx)("span",{style:{color:"var(--text-dim)",marginRight:6},children:"2."}),I("desktop.addModelsFromBottom")]})]})]}):null})]}),ek&&(0,n.jsx)("div",{...tH.separatorProps,inert:eC,"aria-controls":"file-panel",className:`panel-resize-handle right-panel-resize-handle${tH.isResizing?" is-resizing":""}`,"data-resize-handle":"right-panel",title:`${I("layout.resizeFilePanel")}: ${I("layout.resizeHint")}`}),(0,n.jsxs)("div",{ref:tH.panelRef,id:"file-panel",className:`right-panel-container${ek?" right-panel-open":" right-panel-closed"}${eC?" right-panel-full-width":""}${tH.isResizing?" right-panel-resizing":""}`,style:{display:"flex",flexDirection:"column",background:"var(--bg)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",flexShrink:0,borderBottom:"1px solid var(--border)",height:36},children:[(0,n.jsx)("div",{style:{flex:1,overflow:"hidden"},children:(0,n.jsx)(uF,{tabs:tj,activeTabId:tS??"",onSelectTab:tC,onCloseTab:rf})}),(0,n.jsx)("div",{style:{width:1,height:18,flexShrink:0,background:"var(--border)",marginRight:6},"aria-hidden":"true"}),(0,n.jsx)("button",{type:"button",className:"file-panel-expand-button",onClick:tk,"aria-controls":"file-panel","aria-pressed":eC,title:I(eC?"files.restorePanelWidth":"files.expandPanel"),"aria-label":I(eC?"files.restorePanelWidth":"files.expandPanel"),children:(0,n.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:eC?"M9 3v6H3m12-6v6h6M9 21v-6H3m12 6v-6h6M3 3l6 6m12-6-6 6M3 21l6-6m12 6-6-6":"M8 3H3v5m13-5h5v5M3 16v5h5m13-5v5h-5M3 3l6 6m12-6-6 6M3 21l6-6m12 6-6-6"})})}),(0,n.jsxs)("button",{type:"button",onClick:()=>tR(e=>!e),"aria-controls":"file-panel","aria-pressed":tT,title:I("agentSwitcher.title"),"aria-label":I("agentSwitcher.title"),style:{display:"inline-flex",alignItems:"center",gap:5,flexShrink:0,height:28,marginRight:6,padding:"0 10px",border:"1px solid var(--border)",borderRadius:6,background:tT?"var(--bg-selected)":"transparent",color:tT?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:11,whiteSpace:"nowrap"},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"3",y:"11",width:"18",height:"10",rx:"2"}),(0,n.jsx)("circle",{cx:"12",cy:"5",r:"2"}),(0,n.jsx)("path",{d:"M12 7v4"})]}),I("agentSwitcher.title")]}),(0,n.jsx)("button",{type:"button",onClick:()=>ej(!1),"aria-controls":"file-panel","aria-expanded":ek,title:I("files.hidePanel"),"aria-label":I("files.hidePanel"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:"var(--bg-selected)",border:"none",borderLeft:"1px solid var(--border)",color:"var(--text)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text)"},children:(0,n.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,n.jsx)("line",{x1:"15",y1:"3",x2:"15",y2:"21"})]})})]}),(0,n.jsx)("div",{style:{flex:1,overflow:"hidden",display:"flex",flexDirection:"column",minHeight:0},children:tT?(k=ho(tI,W?.id))?(0,n.jsx)(p1,{rootSession:k.root,subagents:k.subagents,selectedSessionId:W?.id??"",runningSessionIds:tE,onSelectSession:e=>{tR(!1),t9.current(e)}}):(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:12},children:I("agentSwitcher.noFamily")}):rE?.kind==="subagent"&&rE.sessionId?(0,n.jsx)(uP,{sessionId:rE.sessionId,label:rE.label,running:tE.has(rE.sessionId),onOpenFile:rh}):rE?.filePath?(0,n.jsx)(uN,{filePath:rE.filePath,cwd:tV??void 0,sourceSessionId:rE.sourceSessionId,initialDisplayMode:rE.initialDisplayMode,initialPage:rE.page,initialState:rE.viewerState,onOpenFile:(e,t)=>rp(e,oL(e),{sourceSessionId:rE.sourceSessionId,page:t}),onFileSaved:()=>er(e=>e+1)}):(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:12},children:"No file open"})})]})]})]}),eu&&rw&&(0,n.jsx)(p6,{cwd:rw,busy:eh,error:ex,onCancelAction:()=>{eh||ep(!1)},onConfirmAction:()=>void rM()}),(0,n.jsx)(u6,{open:ey,onOpenChange:eb,sessions:N,projectKey:tV??"",cwd:tV,commands:rL,onOpenSession:e=>{t9.current(e)},onOpenFile:e=>{let t=tV?oA(tV,e):e;rp(t,oL(t))},onOpenMessage:(e,t)=>{if(t9.current(e),!t)return;let r=0,n=()=>{let e=document.querySelector(`[data-entry-id="${CSS.escape(t)}"]`);e?e.scrollIntoView({block:"center",behavior:"smooth"}):r++<20&&setTimeout(n,150)};setTimeout(n,200)}}),en&&(0,n.jsx)(op,{initialTab:ei,cwd:r$,sessionId:W?.id??null,onCloseAction:()=>{eo(!1),ea(e=>e+1)},onModelsSavedAction:()=>ea(e=>e+1),onSessionReloadedAction:()=>ee(e=>e+1),onSessionsChanged:()=>Z(e=>e+1)})]})]})}},79023:(e,t,r)=>{Promise.resolve().then(r.bind(r,64983)),Promise.resolve().then(r.bind(r,32981))}},e=>{e.O(0,[7330,8272,2981,8441,3794,7358],()=>e(e.s=79023)),_N_E=e.O()}]);
237
+ `}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"row",height:"100dvh",overflow:"hidden",background:"var(--bg-panel)"},children:[(0,n.jsxs)("div",{ref:tD.panelRef,id:"session-sidebar",inert:eC,className:`sidebar-container${em?" sidebar-open":" sidebar-closed"}${eR?"":" sidebar-mobile-pending"}${tD.isResizing?" sidebar-resizing":""}`,style:{"--sidebar-width":`${tD.width}px`,display:"flex",flexDirection:"column",flexShrink:0,zIndex:200},children:[eO?.isMacOS&&(0,n.jsx)("div",{...eO.dragRegionProps,...eB,"aria-hidden":"true",style:{height:48,flexShrink:0}}),rN]}),em&&(0,n.jsx)("div",{...tD.separatorProps,inert:eC,"aria-controls":"session-sidebar",className:`panel-resize-handle sidebar-resize-handle${tD.isResizing?" is-resizing":""}`,"data-resize-handle":"sidebar",title:`${I("layout.resizeSidebar")}: ${I("layout.resizeHint")}`}),(0,n.jsxs)("div",{className:"app-main-region",style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",minWidth:0,position:"relative",background:"var(--bg)"},children:[(0,n.jsx)(p0,{topBarRef:e$,sidebarOpen:em,onSidebarToggle:tv,isDark:z,toggleTheme:T,isMobile:M,showTasks:rS,tasksBoardEnabled:rT,onToggleTasks:rz,systemPrompt:eY,activeTopPanel:e7,topPanelPos:te,sessionStats:eZ,selectedSession:W,contextUsage:e5,copiedSessionField:e1,onCopySessionField:e4,rightPanelOpen:ek,onToggleFilePanel:()=>ej(e=>!e),onRefreshSession:()=>ee(e=>e+1),onOpenSettings:()=>rW("models"),sessionTitle:ry,onWorkspaceControlsHostChange:eN,onTitleRightHostChange:eF,desktopChrome:eO,windowDrag:eB}),rj&&ed?.requiresTrust&&!ed.trusted&&(0,n.jsxs)("button",{type:"button",onClick:()=>{ef(null),ep(!0)},title:I("desktop.projectResourcesRestricted"),"aria-label":I("desktop.projectResourcesRestricted"),style:{position:"fixed",top:60,right:M?12:20,zIndex:700,display:"inline-flex",alignItems:"center",gap:7,padding:"8px 11px",border:"1px solid color-mix(in srgb, var(--accent-orange) 52%, var(--border))",borderRadius:7,background:"color-mix(in srgb, var(--accent-orange) 11%, var(--bg-panel))",color:"var(--accent-orange)",boxShadow:"0 8px 24px rgba(0, 0, 0, 0.16)",cursor:"pointer",fontSize:12,fontWeight:600},children:[(0,n.jsx)("span",{"aria-hidden":"true",children:"⚠"}),I("desktop.trustProject")]}),(0,n.jsxs)("div",{style:{"--right-panel-width":`${tH.width}px`,flex:1,display:"flex",overflow:"hidden",minWidth:0,position:"relative"},children:[(0,n.jsx)("div",{className:`sidebar-overlay-backdrop${eR?"":" sidebar-mobile-pending"}`,onClick:()=>ev(!1),style:{position:"fixed",inset:0,zIndex:199,background:"rgba(0,0,0,0.4)",opacity:+!!em,pointerEvents:em?"auto":"none",transition:"opacity 0.25s ease"}}),(0,n.jsxs)("div",{inert:eC,style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",minWidth:0},children:[(0,n.jsxs)("div",{ref:eW,style:{flexShrink:0},children:[!M&&rA(!1),(0,n.jsxs)("div",{style:{display:"none",alignItems:"center",position:"relative",borderBottom:"1px solid var(--border)",height:"calc(36px + env(safe-area-inset-top))",paddingTop:"env(safe-area-inset-top)"},children:[(0,n.jsx)("button",{onClick:tv,title:em?I("sidebar.hide"):I("sidebar.show"),"aria-label":em?I("sidebar.hide"):I("sidebar.show"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:"none",border:"none",borderRight:"1px solid var(--border)",color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)"},children:em?(0,n.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,n.jsx)("line",{x1:"9",y1:"3",x2:"9",y2:"21"})]}):(0,n.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:[(0,n.jsx)("line",{x1:"3",y1:"6",x2:"21",y2:"6"}),(0,n.jsx)("line",{x1:"3",y1:"12",x2:"21",y2:"12"}),(0,n.jsx)("line",{x1:"3",y1:"18",x2:"21",y2:"18"})]})}),M&&(0,n.jsxs)("div",{ref:eM,"data-mobile-toolbar":"true",style:{position:"relative",display:"flex",alignItems:"stretch",flex:1,minWidth:0,height:"100%"},children:[E&&(0,n.jsx)("button",{type:"button",onClick:ty,title:ez?I("chat.close"):I("chat.moreControls"),"aria-label":ez?I("chat.close"):I("chat.moreControls"),"aria-controls":"mobile-toolbar-actions","aria-expanded":ez,"data-mobile-toolbar-more":"true",style:{position:"relative",zIndex:ez?21:void 0,display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:ez?"var(--bg-selected)":"none",border:"none",borderRight:"1px solid var(--border)",color:ez?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s, background 0.12s"},children:ez?(0,n.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"5",y1:"5",x2:"19",y2:"19"}),(0,n.jsx)("line",{x1:"19",y1:"5",x2:"5",y2:"19"})]}):(0,n.jsxs)("svg",{width:"17",height:"17",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"5",cy:"12",r:"1.5"}),(0,n.jsx)("circle",{cx:"12",cy:"12",r:"1.5"}),(0,n.jsx)("circle",{cx:"19",cy:"12",r:"1.5"})]})}),!E&&rP(!0),(e=>{if(!e&&(!rj||!eZ&&!e5))return null;let t=eZ?.tokens,r=eZ?.cost??0,o=e=>e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(0)}k`:String(e),i=r>0?r>=.01?`$${r.toFixed(2)}`:"<$0.01":null,s="var(--text-muted)",l=null,a=null;if(e5?.contextWindow){let e=e5.percent;null!==e&&e>90?s="#ef4444":null!==e&&e>70&&(s="rgba(234,179,8,0.95)"),l=null!==e?`${e.toFixed(0)}% / ${o(e5.contextWindow)}`:`? / ${o(e5.contextWindow)}`,a=null!==e?`${e.toFixed(0)}%`:null}let d=[];if(t&&(d.push(`in: ${t.input.toLocaleString(R)}`),d.push(`out: ${t.output.toLocaleString(R)}`),d.push(`cache read: ${t.cacheRead.toLocaleString(R)}`),d.push(`cache write: ${t.cacheWrite.toLocaleString(R)}`),r>0&&d.push(`cost: $${r.toFixed(4)}`)),e5?.contextWindow){let e=e5.percent;d.push(`context: ${null!==e?e.toFixed(1)+"%":"unknown"} of ${e5.contextWindow.toLocaleString()} tokens`)}let c=d.join(" | "),u=e&&E&&ez,p=!!(t&&(t.input>0||t.output>0)||i||a);return(0,n.jsx)("button",{type:"button",onClick:()=>tr("session"),disabled:!rj||u,tabIndex:u?-1:void 0,title:c||I("session.title"),"aria-label":I("session.title"),"aria-pressed":"session"===e7,"aria-hidden":!!u||void 0,className:e?"mobile-session-stats":void 0,"data-mobile-toolbar-stats":e?"true":void 0,style:{marginLeft:e?0:"auto",display:"flex",alignItems:"center",justifyContent:"flex-end",flex:e?1:void 0,minWidth:0,gap:e?7:10,paddingLeft:e?6:12,paddingRight:e?6:12,height:"100%",overflow:"hidden",visibility:u?"hidden":"visible",pointerEvents:u?"none":"auto",background:"session"===e7?"var(--bg-selected)":"none",border:"none",borderTop:"session"===e7?"2px solid var(--accent)":"2px solid transparent",fontSize:11,color:"var(--text-muted)",whiteSpace:"nowrap",cursor:rj?"pointer":"default",fontVariantNumeric:"tabular-nums",transition:"color 0.1s, background 0.1s"},onMouseEnter:e=>{rj&&!u&&(e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.color="session"===e7?"var(--text)":"var(--text-muted)"},children:e?(0,n.jsxs)(n.Fragment,{children:[t&&t.input>0&&(0,n.jsxs)("span",{className:"mobile-session-stat-io",style:{display:"flex",alignItems:"center",gap:2,flexShrink:0},children:[(0,n.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"5",y1:"8.5",x2:"5",y2:"1.5"}),(0,n.jsx)("polyline",{points:"2 4 5 1.5 8 4"})]}),o(t.input)]}),t&&t.output>0&&(0,n.jsxs)("span",{className:"mobile-session-stat-io",style:{display:"flex",alignItems:"center",gap:2,flexShrink:0},children:[(0,n.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"5",y1:"1.5",x2:"5",y2:"8.5"}),(0,n.jsx)("polyline",{points:"2 6 5 8.5 8 6"})]}),o(t.output)]}),i&&(0,n.jsx)("span",{className:"mobile-session-stat-cost",style:{color:"var(--text)",fontWeight:500,flexShrink:0},children:i}),a&&(0,n.jsx)("span",{style:{color:s,flexShrink:0},children:a}),!p&&rj&&(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",color:"var(--text-dim)"},children:I("session.title")})]}):(0,n.jsxs)(n.Fragment,{children:[t&&t.input>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"5",y1:"8.5",x2:"5",y2:"1.5"}),(0,n.jsx)("polyline",{points:"2 4 5 1.5 8 4"})]}),o(t.input)]}),t&&t.output>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"5",y1:"1.5",x2:"5",y2:"8.5"}),(0,n.jsx)("polyline",{points:"2 6 5 8.5 8 6"})]}),o(t.output)]}),t&&t.cacheRead>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M8.5 5a3.5 3.5 0 1 1-1-2.45"}),(0,n.jsx)("polyline",{points:"6.5 1.5 8.5 2.5 7.5 4.5"})]}),o(t.cacheRead)]}),i&&(0,n.jsx)("span",{style:{display:"flex",alignItems:"center",color:"var(--text)",fontWeight:500},children:i}),l&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,color:s},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M1 9 L1 5 Q1 1 5 1 Q9 1 9 5 L9 9"}),(0,n.jsx)("line",{x1:"1",y1:"9",x2:"9",y2:"9"})]}),l]})]})})})(!0),(t=E&&ez,(0,n.jsx)("button",{type:"button",onClick:tb,disabled:t,tabIndex:t?-1:void 0,"aria-controls":"file-panel","aria-expanded":ek,"aria-hidden":!!t||void 0,title:ek?I("files.hidePanel"):I("files.showPanel"),"aria-label":ek?I("files.hidePanel"):I("files.showPanel"),"data-mobile-toolbar-file":"true",style:{marginLeft:0,display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,visibility:t?"hidden":"visible",pointerEvents:t?"none":"auto",background:ek?"var(--bg-selected)":"none",border:"none",borderLeft:"1px solid var(--border)",color:ek?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s, background 0.12s"},onMouseEnter:e=>{t||(e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.color=ek?"var(--text)":"var(--text-muted)"},children:(0,n.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,n.jsx)("line",{x1:"15",y1:"3",x2:"15",y2:"21"})]})})),E&&ez&&(0,n.jsx)("div",{id:"mobile-toolbar-actions",role:"toolbar","aria-label":I("chat.moreControls"),"data-mobile-toolbar-actions":"true",style:{position:"absolute",top:0,right:0,bottom:0,left:36,zIndex:20,display:"flex",alignItems:"stretch",background:"color-mix(in srgb, var(--bg-panel) 94%, var(--bg))",boxShadow:"4px 0 18px rgba(0,0,0,0.12)",backdropFilter:"blur(10px)"},children:rP(!0)})]}),M&&eJ&&(0,n.jsx)(cA,{tree:eU,activeLeafId:eq,onLeafChange:rr,inline:!0,compact:!0,containerRef:e$,open:"branches"===e7,onToggle:()=>tr("branches"),hasSession:rj,hideInlineButton:!0}),M&&e7&&te&&(0,n.jsxs)("div",{style:{position:"fixed",top:te.top,left:te.left,width:te.width,maxHeight:`calc(100dvh - ${te.top}px)`,overflowY:"auto",zIndex:500},children:["agents"===e7&&D&&W&&(0,n.jsx)(p6,{rootSession:D.root,subagents:D.subagents,selectedSessionId:W.id,runningSessionIds:O,onSelectSession:t7}),"system"===e7&&(0,n.jsx)(p4,{loading:td,prompt:eY,translate:I}),"tools"===e7&&(0,n.jsx)(or,{loading:td,tools:tl,translate:I}),"session"===e7&&(0,n.jsx)("div",{className:"session-info-popover",style:{background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",boxShadow:"0 10px 28px rgba(0,0,0,0.10)",padding:"12px 16px"},children:eZ?(r=eZ.totalActiveMs??0,d=[...eZ.sessionName?[{label:I("session.name"),value:eZ.sessionName,copyField:null}]:[],{label:I("session.file"),value:eZ.sessionFile??I("session.inMemory"),copyField:"file"},{label:I("session.id"),value:eZ.sessionId,copyField:"id"},...r>0?[{label:I("session.totalActive"),value:(e=>{if(e<=0)return"0s";let t=Math.floor(e/1e3),r=Math.floor(t/3600),n=Math.floor(t%3600/60),o=t%60;return r>0?`${r}h ${n}m`:n>0?`${n}m ${o}s`:`${o}s`})(r),copyField:null}]:[]],c=[...W?[{label:I("session.projectDir"),value:W.projectRoot??W.cwd,copyField:"projectDir"}]:[],...W?.branch?[{label:I("session.gitBranch"),value:W.branch,copyField:"gitBranch"}]:[],...W?.isWorktree?[{label:I("session.gitWorktree"),value:W.cwd,copyField:"gitWorktree"}]:[]],u=[[I("session.user"),eZ.userMessages.toLocaleString(R)],[I("session.assistant"),eZ.assistantMessages.toLocaleString(R)],[I("session.toolCalls"),eZ.toolCalls.toLocaleString(R)],[I("session.toolResults"),eZ.toolResults.toLocaleString(R)],[I("session.total"),eZ.totalMessages.toLocaleString(R)]],p=[[I("session.input"),eZ.tokens.input.toLocaleString(R)],[I("session.output"),eZ.tokens.output.toLocaleString(R)],...eZ.tokens.cacheRead>0?[[I("session.cacheRead"),eZ.tokens.cacheRead.toLocaleString(R)]]:[],...eZ.tokens.cacheWrite>0?[[I("session.cacheWrite"),eZ.tokens.cacheWrite.toLocaleString(R)]]:[],[I("session.total"),eZ.tokens.total.toLocaleString(R)]],h=e5??eZ.contextUsage,x=[...eZ.cost>0?[[I("session.cost"),`$${eZ.cost.toFixed(4)}`]]:[],...h?.contextWindow?[[I("session.context"),`${null!==h.percent?`${h.percent.toFixed(1)}%`:"?"} / ${(g=h.contextWindow)>=1e6?`${(g/1e6).toFixed(1)}M`:g>=1e3?`${(g/1e3).toFixed(0)}k`:String(g)}`]]:[],...eZ.tokens.cacheRead+eZ.tokens.cacheWrite>0&&eZ.tokens.cacheRead+eZ.tokens.cacheWrite+eZ.tokens.input>0?[[I("session.cacheHitRate"),`${(eZ.tokens.cacheRead/(eZ.tokens.cacheRead+eZ.tokens.cacheWrite+eZ.tokens.input)*100).toFixed(1)}%`]]:[]],f=(e,t,r="left",o=!1)=>(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:e}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:o?"max-content max-content":"auto minmax(0, 1fr)",columnGap:o?14:12,rowGap:4,justifyContent:o?"start":void 0},children:t.map(([t,i])=>(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:t}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:o?"normal":"anywhere",textAlign:r,whiteSpace:"right"===r?"nowrap":"normal"},children:i})]},`${e}:${t}`))})]}),m={file:"session.copyFile",id:"session.copyId",projectDir:"session.copyProjectDir",gitBranch:"session.copyGitBranch",gitWorktree:"session.copyGitWorktree"},v=(e,t)=>{let r=e1===e;return(0,n.jsx)("button",{type:"button",title:r?I("session.copied"):I(m[e]),onClick:()=>e4(e,t),style:{alignSelf:"start",display:"inline-flex",alignItems:"center",justifyContent:"center",width:22,height:22,marginTop:-2,color:r?"var(--accent)":"var(--text-dim)",background:"transparent",border:"1px solid var(--border)",borderRadius:4,cursor:"pointer",flex:"0 0 auto",transition:"color 0.12s, border-color 0.12s, background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)",e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color=r?"var(--accent)":"var(--text-dim)",e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="transparent"},children:r?(0,n.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,n.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})})},y=(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:I("session.infoSection")}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:12,rowGap:8,alignItems:"start"},children:d.map(e=>(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:e.label}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:"anywhere",wordBreak:"break-word",whiteSpace:"normal"},children:e.value}),(0,n.jsx)("div",{children:e.copyField?v(e.copyField,e.value):null})]},`session-info:${e.label}`))})]}),b=c.length>0?(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:I("session.projectSection")}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:12,rowGap:8,alignItems:"start"},children:c.map(e=>(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:e.label}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:"anywhere",wordBreak:"break-word",whiteSpace:"normal"},children:e.value}),(0,n.jsx)("div",{children:e.copyField?v(e.copyField,e.value):null})]},`project-info:${e.label}`))})]}):null,(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:M?"1fr":"minmax(360px, 1.7fr) minmax(140px, 0.55fr) minmax(190px, 0.75fr)",gap:M?16:24,fontSize:12,lineHeight:1.5,fontFamily:"var(--font-mono)"},children:[(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:M?16:20},children:[y,b]}),f(I("session.messages"),u),f(I("session.tokens"),[...p,...x],"right",!0)]})):(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:I("session.load")})})]})]}),M&&rA(!0)]}),(0,n.jsx)("div",{style:{flex:1,overflow:"hidden",position:"relative"},children:rS&&rT?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(pE,{}),(0,n.jsx)(p$,{activeProject:tV??void 0})]}):rj?(0,n.jsx)(uc,{session:W,newSessionCwd:rk,onAgentEnd:rc,onSessionCreated:ra,onSessionForked:rd,modelsRefreshKey:el,chatInputRef:eE,tasksBoardEnabled:rT,onSystemPromptChange:eX,onSessionStatsChange:e0,onOpenSession:tW,onOpenSubagent:rx,subagentRuns:rg,onSessionStatsPanelOpen:tm,onContextUsageChange:e8,onOpenFile:rh,onWorkspaceControlsHostChange:eH,onViewFullHistory:rb,systemPrompt:eY},Q):"validating"===tY?(0,n.jsxs)("div",{role:"status",style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:8,padding:24,color:"var(--text-muted)",textAlign:"center"},children:[(0,n.jsx)("div",{style:{fontSize:14,color:"var(--text)"},children:I("desktop.openingWorkspace")}),(0,n.jsx)("div",{style:{maxWidth:"min(720px, 100%)",overflowWrap:"anywhere",fontFamily:"var(--font-mono)",fontSize:12},children:S.requestedCwd})]}):"error"===tY?(0,n.jsxs)("div",{role:"alert",style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:8,padding:24,color:"var(--text-muted)",textAlign:"center"},children:[(0,n.jsx)("div",{style:{fontSize:14,color:"var(--status-error)"},children:I("desktop.unableToOpenWorkspace")}),(0,n.jsx)("div",{style:{maxWidth:"min(720px, 100%)",overflowWrap:"anywhere",fontFamily:"var(--font-mono)",fontSize:12},children:S.requestedCwd}),(0,n.jsx)("div",{style:{maxWidth:720,fontSize:12},children:tX})]}):rI?tV?(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:15},children:I("desktop.selectSessionFromSidebar")}):(0,n.jsxs)("div",{style:{position:"absolute",top:12,left:12,display:"flex",alignItems:"flex-start",gap:8,userSelect:"none",pointerEvents:"none"},children:[(0,n.jsx)(i.n,{size:44,color:"var(--accent)","aria-hidden":"true",style:{opacity:.7,flexShrink:0}}),(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{fontSize:18,fontWeight:600,color:"var(--text)",marginBottom:8},children:I("desktop.getStarted")}),(0,n.jsxs)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.8},children:[(0,n.jsx)("span",{style:{color:"var(--text-dim)",marginRight:6},children:"1."}),I("desktop.selectProjectDirectory"),(0,n.jsx)("br",{}),(0,n.jsx)("span",{style:{color:"var(--text-dim)",marginRight:6},children:"2."}),I("desktop.addModelsFromBottom")]})]})]}):null})]}),ek&&(0,n.jsx)("div",{...tH.separatorProps,inert:eC,"aria-controls":"file-panel",className:`panel-resize-handle right-panel-resize-handle${tH.isResizing?" is-resizing":""}`,"data-resize-handle":"right-panel",title:`${I("layout.resizeFilePanel")}: ${I("layout.resizeHint")}`}),(0,n.jsxs)("div",{ref:tH.panelRef,id:"file-panel",className:`right-panel-container${ek?" right-panel-open":" right-panel-closed"}${eC?" right-panel-full-width":""}${tH.isResizing?" right-panel-resizing":""}`,style:{display:"flex",flexDirection:"column",background:"var(--bg)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",flexShrink:0,borderBottom:"1px solid var(--border)",height:36},children:[(0,n.jsx)("div",{style:{flex:1,overflow:"hidden"},children:(0,n.jsx)(uH,{tabs:tj,activeTabId:tS??"",onSelectTab:tC,onCloseTab:rf})}),(0,n.jsx)("div",{style:{width:1,height:18,flexShrink:0,background:"var(--border)",marginRight:6},"aria-hidden":"true"}),(0,n.jsx)("button",{type:"button",className:"file-panel-expand-button",onClick:tk,"aria-controls":"file-panel","aria-pressed":eC,title:I(eC?"files.restorePanelWidth":"files.expandPanel"),"aria-label":I(eC?"files.restorePanelWidth":"files.expandPanel"),children:(0,n.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:eC?"M9 3v6H3m12-6v6h6M9 21v-6H3m12 6v-6h6M3 3l6 6m12-6-6 6M3 21l6-6m12 6-6-6":"M8 3H3v5m13-5h5v5M3 16v5h5m13-5v5h-5M3 3l6 6m12-6-6 6M3 21l6-6m12 6-6-6"})})}),(0,n.jsxs)("button",{type:"button",onClick:()=>tR(e=>!e),"aria-controls":"file-panel","aria-pressed":tT,title:I("agentSwitcher.title"),"aria-label":I("agentSwitcher.title"),style:{display:"inline-flex",alignItems:"center",gap:5,flexShrink:0,height:28,marginRight:6,padding:"0 10px",border:"1px solid var(--border)",borderRadius:6,background:tT?"var(--bg-selected)":"transparent",color:tT?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:11,whiteSpace:"nowrap"},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"3",y:"11",width:"18",height:"10",rx:"2"}),(0,n.jsx)("circle",{cx:"12",cy:"5",r:"2"}),(0,n.jsx)("path",{d:"M12 7v4"})]}),I("agentSwitcher.title")]}),(0,n.jsx)("button",{type:"button",onClick:()=>ej(!1),"aria-controls":"file-panel","aria-expanded":ek,title:I("files.hidePanel"),"aria-label":I("files.hidePanel"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:"var(--bg-selected)",border:"none",borderLeft:"1px solid var(--border)",color:"var(--text)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text)"},children:(0,n.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,n.jsx)("line",{x1:"15",y1:"3",x2:"15",y2:"21"})]})})]}),(0,n.jsx)("div",{style:{flex:1,overflow:"hidden",display:"flex",flexDirection:"column",minHeight:0},children:tT?(k=hs(tI,W?.id))?(0,n.jsx)(p6,{rootSession:k.root,subagents:k.subagents,selectedSessionId:W?.id??"",runningSessionIds:tE,onSelectSession:e=>{tR(!1),t9.current(e)}}):(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:12},children:I("agentSwitcher.noFamily")}):rE?.kind==="subagent"&&rE.sessionId?(0,n.jsx)(uD,{sessionId:rE.sessionId,label:rE.label,running:tE.has(rE.sessionId),onOpenFile:rh}):rE?.filePath?(0,n.jsx)(uP,{filePath:rE.filePath,cwd:tV??void 0,sourceSessionId:rE.sourceSessionId,initialDisplayMode:rE.initialDisplayMode,initialPage:rE.page,initialState:rE.viewerState,onOpenFile:(e,t)=>rp(e,oL(e),{sourceSessionId:rE.sourceSessionId,page:t}),onFileSaved:()=>er(e=>e+1)}):(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:12},children:"No file open"})})]})]})]}),eu&&rw&&(0,n.jsx)(p5,{cwd:rw,busy:eh,error:ex,onCancelAction:()=>{eh||ep(!1)},onConfirmAction:()=>void rM()}),(0,n.jsx)(u5,{open:ey,onOpenChange:eb,sessions:N,projectKey:tV??"",cwd:tV,commands:rL,onOpenSession:e=>{t9.current(e)},onOpenFile:e=>{let t=tV?oA(tV,e):e;rp(t,oL(t))},onOpenMessage:(e,t)=>{if(t9.current(e),!t)return;let r=0,n=()=>{let e=document.querySelector(`[data-entry-id="${CSS.escape(t)}"]`);e?e.scrollIntoView({block:"center",behavior:"smooth"}):r++<20&&setTimeout(n,150)};setTimeout(n,200)}}),en&&(0,n.jsx)(op,{initialTab:ei,cwd:r$,sessionId:W?.id??null,onCloseAction:()=>{eo(!1),ea(e=>e+1)},onModelsSavedAction:()=>ea(e=>e+1),onSessionReloadedAction:()=>ee(e=>e+1),onSessionsChanged:()=>Z(e=>e+1)})]})]})}},79023:(e,t,r)=>{Promise.resolve().then(r.bind(r,64983)),Promise.resolve().then(r.bind(r,15170))}},e=>{e.O(0,[7330,8272,5170,8441,3794,7358],()=>e(e.s=79023)),_N_E=e.O()}]);