@qt4798/pi-web 0.14.3 → 0.14.4

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 (36) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +23 -23
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/required-server-files.js +1 -1
  5. package/.next/required-server-files.json +1 -1
  6. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  7. package/.next/server/app/_global-error.html +1 -1
  8. package/.next/server/app/_global-error.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  12. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  13. package/.next/server/app/_not-found.html +1 -1
  14. package/.next/server/app/_not-found.rsc +1 -1
  15. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  16. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  18. package/.next/server/app/api/app-update/route.js +1 -1
  19. package/.next/server/app/index.html +1 -1
  20. package/.next/server/app/index.rsc +3 -3
  21. package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  22. package/.next/server/app/index.segments/_full.segment.rsc +3 -3
  23. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  24. package/.next/server/app/page.js +3 -3
  25. package/.next/server/app/page_client-reference-manifest.js +1 -1
  26. package/.next/server/app-paths-manifest.json +23 -23
  27. package/.next/server/chunks/7915.js +1 -1
  28. package/.next/server/middleware-build-manifest.js +1 -1
  29. package/.next/server/pages/404.html +1 -1
  30. package/.next/server/pages/500.html +1 -1
  31. package/.next/static/chunks/app/{page-ed0a4e93e7c65b25.js → page-bcc0e2ed5b5f6035.js} +3 -3
  32. package/.next/trace +8 -7
  33. package/.next/trace-build +1 -1
  34. package/package.json +1 -1
  35. /package/.next/static/{-KlXyudIresJbEC448mlv → h9xeO9wlQinP87V3yuXj6}/_buildManifest.js +0 -0
  36. /package/.next/static/{-KlXyudIresJbEC448mlv → h9xeO9wlQinP87V3yuXj6}/_ssgManifest.js +0 -0
@@ -24,7 +24,7 @@ At the end of each turn report your disposition explicitly:
24
24
  ${s}`:`${i}
25
25
  `))},title:e.text.slice(0,60),style:{display:"inline-flex",alignItems:"center",gap:4,padding:"3px 9px",fontSize:12,color:o.value?"var(--accent)":"var(--text-muted)",background:o.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:o.label},r))})}function oB(){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 oU(e,t,o){return Math.min(o,Math.max(t,e))}function o_(e,t,o,n){return o<=0||n<=0||e<=0||t<=0?1:Math.min(.9*e/o,.9*t/n)}function oq({children:e,contentWidth:t,contentHeight:o,title:s,ariaLabel:i,onClose:a}){let{t:l}=(0,F.s)(),d=(0,r.useRef)(null),c=(0,r.useRef)(null),p=t+26,u=o+26,[h,g]=(0,r.useState)(1),[m,f]=(0,r.useState)({scale:1,tx:0,ty:0}),[x,k]=(0,r.useState)(!1),[v,y]=(0,r.useState)(!1),b=(0,r.useRef)(0),w=(0,r.useRef)(h),j=(0,r.useRef)(m);w.current=h,j.current=m;let S=(0,r.useRef)(null),C=(0,r.useCallback)((e,t,o)=>{let{scale:n,tx:r,ty:s}=j.current,i=w.current,a=oU(e,.25*i,3*i);a!==n&&f({scale:a,tx:t-(t-r)*a/n,ty:o-(o-s)*a/n})},[]),T=(0,r.useCallback)(e=>{let t=c.current;if(!t)return;let o=t.getBoundingClientRect(),n=o.width/2,r=o.height/2,s=w.current;C((j.current.scale/s+.25*e)*s,n,r)},[C]),R=(0,r.useCallback)(()=>{let e=c.current;if(!e)return;let{clientWidth:t,clientHeight:o}=e,n=o_(t,o,p,u);g(n),f({scale:n,tx:(t-p*n)/2,ty:(o-u*n)/2})},[p,u]);(0,r.useEffect)(()=>{let e=d.current;if(!e)return;let t=document.body.style.overflow;document.body.style.overflow="hidden",e.showModal();let o=requestAnimationFrame(()=>{R()});return()=>{cancelAnimationFrame(o),document.body.style.overflow=t,e.open&&e.close()}},[R]),(0,r.useEffect)(()=>{let e=c.current;if(!e||"u"<typeof ResizeObserver)return;let t=!1,o=new ResizeObserver(()=>{if(!t){t=!0;return}let{clientWidth:o,clientHeight:n}=e;if(o<=0||n<=0)return;let r=w.current,s=j.current,i=s.scale/r,a=o_(o,n,p,u),l=oU(i*a,.25*a,3*a),d=o/2,c=n/2,h=(d-s.tx)/s.scale,m=(c-s.ty)/s.scale;g(a),f({scale:l,tx:d-h*l,ty:c-m*l})});return o.observe(e),()=>o.disconnect()},[p,u]);let z=e=>{let t=S.current;if(!t||t.pointerId!==e.pointerId)return;t.capturing&&e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId);let o=t.moved;S.current=null,k(!1),o&&(b.current=Date.now())},I=Math.round(m.scale/h*100),M=.25*h,P=3*h;return(0,n.jsx)("dialog",{ref:d,className:"mermaid-zoom-dialog","aria-label":i,onCancel:e=>{e.preventDefault(),a()},onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),a())},children:(0,n.jsxs)("div",{className:"mermaid-zoom-layout",children:[(0,n.jsxs)("div",{className:"mermaid-zoom-toolbar",children:[s?(0,n.jsx)("span",{className:"mermaid-zoom-title",children:s}):null,!v&&(0,n.jsx)("span",{className:"mermaid-zoom-hint",children:l("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",v?"is-active":""].filter(Boolean).join(" "),onClick:()=>y(e=>!e),title:l("desktop.selectText"),"aria-label":l("desktop.selectText"),"aria-pressed":v,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:()=>T(-1),disabled:m.scale<=M+1e-9,title:l("desktop.zoomOut"),"aria-label":l("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:()=>{R()},title:l("desktop.resetZoom"),"aria-label":`${I}%`,children:[I,"%"]}),(0,n.jsx)("button",{type:"button",onClick:()=>T(1),disabled:m.scale>=P-1e-9,title:l("desktop.zoomIn"),"aria-label":l("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:R,title:l("desktop.fitToViewport"),"aria-label":l("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:a,title:l("desktop.close"),"aria-label":l("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",v?"is-selecting":"",x?"is-dragging":""].filter(Boolean).join(" "),onWheel:e=>{e.preventDefault();let t=c.current;if(!t)return;let o=t.getBoundingClientRect(),n=e.clientX-o.left,r=e.clientY-o.top,s=Math.exp(-(.0015*e.deltaY));C(j.current.scale*s,n,r)},onPointerDown:e=>{0!==e.button||v||(S.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=S.current;if(!t||t.pointerId!==e.pointerId)return;let o=e.clientX-t.startX,n=e.clientY-t.startY;if(!t.moved){if(4>Math.hypot(o,n))return;t.moved=!0,t.capturing=!0,k(!0),e.currentTarget.setPointerCapture(e.pointerId)}f(e=>({...e,tx:t.originTx+o,ty:t.originTy+n}))},onPointerUp:z,onPointerCancel:z,onClick:e=>{if(Date.now()-b.current<500||e.target!==e.currentTarget)return;let t=window.getSelection();(!t||t.isCollapsed)&&a()},onDoubleClick:e=>{if(v)return;e.preventDefault();let t=c.current;if(!t)return;let o=t.getBoundingClientRect(),n=e.clientX-o.left,r=e.clientY-o.top,s=w.current,i=.05>Math.abs(j.current.scale/s-1)?2:1;1===i?R():C(i*s,n,r)},children:(0,n.jsx)("div",{className:"mermaid-zoom-world",style:{width:t*m.scale+26,height:o*m.scale+26,left:m.tx,top:m.ty},children:(0,n.jsx)("div",{className:"mermaid-zoom-canvas",children:e})})})]})})}let oV=(0,r.createContext)({openId:null,setOpenId:()=>{}});function oK({isStreaming:e,cwd:t,onOpenFile:o,onQuoteReply:s,quoteScope:i="markdown"}){return{h1:({children:e})=>(0,n.jsx)("h1",{id:oM(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:oM(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:oM(e),className:"scroll-mt-24 text-base font-semibold mt-3 mb-1 text-(--text)",children:e}),code({className:t,children:o,...r}){let s=t?.replace("language-","").toLowerCase()??"",i=String(o);return t?.includes("language-")?"mermaid"===s?(0,n.jsx)(oX,{code:i.replace(/\n$/,""),isStreaming:e}):(0,n.jsx)(o0,{code:i.replace(/\n$/,""),lang:s,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)",...r,children:o})},pre:({children:e})=>(0,n.jsx)("div",{className:"markdown-block-code",children:e}),p({children:e,node:a,...l}){let d=`${i}-p-${a?.position?.start?.offset??0}`;return r.Children.toArray(e).some(e=>(0,r.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",...l,children:e}):s?(0,n.jsx)(oQ,{pid:d,onQuoteReply:s,onOpenFile:o,cwd:t,children:e}):(0,n.jsx)("p",{...l,children:e})},li({children:e,node:r,...a}){let l=`${i}-li-${r?.position?.start?.offset??0}`;return s?(0,n.jsx)(oQ,{as:"li",pid:l,onQuoteReply:s,onOpenFile:o,cwd:t,children:e}):(0,n.jsx)("li",{...a,children:e})},a({href:e,children:r,...s}){delete s.node;let i="text-(--accent-blue) underline underline-offset-2 hover:text-(--accent-blue)/80",a=o?ty(e,t):null;return a&&o?(0,n.jsx)("a",{href:e,...s,className:i,onClick:e=>{if(e.defaultPrevented||0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;let t=e.currentTarget.getAttribute("target");t&&"_self"!==t||(e.preventDefault(),o(a))},children:r}):(0,n.jsx)("a",{href:e,...s,className:i,target:"_blank",rel:"noopener noreferrer",children:r})},img({src:e,alt:o,...r}){delete r.node;let s="string"==typeof e?ty(e,t):null,i=s?`/api/files/${ei(s)}?type=read`:e;return(0,n.jsx)("img",{src:i,alt:o??"",loading:"lazy",...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})})}),tr({children:e,node:r,...a}){let l=`${i}-tr-${r?.position?.start?.offset??0}`;return s?(0,n.jsx)(oQ,{as:"tr",pid:l,onQuoteReply:s,onOpenFile:o,cwd:t,children:e}):(0,n.jsx)("tr",{...a,children:e})}}}let oG=(0,r.memo)(function({text:e,isStreaming:t,cwd:o,onOpenFile:s,onQuoteReply:i,quoteScope:a}){let l=(0,r.useMemo)(()=>oP(e),[e]),d=(0,r.useMemo)(()=>oK({isStreaming:t,cwd:o,onOpenFile:s,onQuoteReply:i,quoteScope:a}),[t,o,s,i,a]);return(0,n.jsx)(tS.oz,{remarkPlugins:oD,rehypePlugins:oW,components:d,children:l})});function oJ({children:e,className:t,isStreaming:o,cwd:s,onOpenFile:i,onQuoteReply:a}){let l=(0,r.useMemo)(()=>oP(e),[e]),d=(0,r.useRef)(new Map),c=(0,r.useMemo)(()=>(function(e,t){let o;if(0===e.length)return[];let n=e.split(/\r?\n/),r="",s=0,i=!1,a=-1;for(let e=0;e<n.length;e++){let t=ow.exec(n[e]);i?t&&t[1][0]===r&&t[1].length>=s&&(i=!1,r="",s=0,a=-1):t&&(r=t[1][0],s=t[1].length,i=!0,a=e)}if(a>=0)o=a;else{let e=-1;for(let t=0;t<n.length;t++)""===n[t]&&(e=t);o=e+1}let l=n.slice(0,o),d=n.slice(o),c=[],p=[],u=()=>{for(;p.length>0&&""===p[p.length-1];)p.pop();for(;p.length>0&&""===p[0];)p.shift();p.length>0&&(c.push(ob(p.join("\n"),!1,t)),p=[])};for(let e of l)""===e&&p.length>0?u():p.push(e);for(p.length>0&&u();d.length>0&&""===d[0];)d.shift();return d.length>0&&c.push(ob(d.join("\n"),!0,t)),c})(l,d.current),[l]),p=o&&c.length>1,u=(0,r.useMemo)(()=>oK({isStreaming:o,cwd:s,onOpenFile:i,onQuoteReply:a,quoteScope:"full"}),[o,s,i,a]);return(0,n.jsx)(oY,{children:(0,n.jsx)("div",{className:["markdown-body",t].filter(Boolean).join(" "),children:p?c.map((e,t)=>(0,n.jsx)(oG,{text:e.text,isStreaming:!!e.tail&&o,cwd:s,onOpenFile:i,onQuoteReply:a,quoteScope:e.id},`${t}-${e.id}`)):(0,n.jsx)(tS.oz,{remarkPlugins:oD,rehypePlugins:oW,components:u,children:l})})})}function oY({children:e}){let[t,o]=(0,r.useState)(null),s=(0,r.useMemo)(()=>({openId:t,setOpenId:o}),[t]);return(0,n.jsx)(oV.Provider,{value:s,children:e})}function oX({code:e,isStreaming:t}){let{t:s}=(0,F.s)(),{isDark:i}=ov(),[a,l]=(0,r.useState)(!1),[d,c]=(0,r.useState)(null),[p,u]=(0,r.useState)(""),[h,g]=(0,r.useState)(null),[m,f]=(0,r.useState)(!1),x=`${i?"dark":"light"}
26
26
  ${e}`;(0,r.useEffect)(()=>{if(!a||t)return;let n=!1;return g(null),(async()=>{let{default:t}=await Promise.all([o.e(988),o.e(9425),o.e(3308)]).then(o.bind(o,43328));if(t.initialize({startOnLoad:!1,securityLevel:"strict",suppressErrorRendering:!0,theme:i?"dark":"default"}),!await t.parse(e,{suppressErrors:!0}))throw Error("Invalid Mermaid diagram");let r="u">typeof crypto&&"randomUUID"in crypto?`mermaid-${crypto.randomUUID()}`:`mermaid-${Date.now()}-${Math.random().toString(36).slice(2)}`,s=await t.render(r,e);n||(c(s.svg),u(x))})().catch(()=>{n||g(x)}),()=>{n=!0}},[e,x,i,t,a]);let k=(0,n.jsx)("button",{onClick:()=>l(e=>!e),disabled:t,title:s(t?"desktop.markdownPreviewAvailableAfterStreaming":a?"desktop.source":"desktop.markdownPreviewMermaidDiagram"),className:["markdown-code-action",a?"is-active":""].filter(Boolean).join(" "),children:s(a?"desktop.source":"desktop.preview")});if(!a||t)return(0,n.jsx)(o0,{code:e,lang:"mermaid",headerAction:k,isStreaming:t});let v=h===x?(0,n.jsx)("div",{className:"mermaid-block mermaid-block-error",children:s("desktop.markdownInvalidMermaidDiagram")}):d&&p===x?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button",className:"mermaid-block mermaid-preview-button",title:s("desktop.openMermaidViewer"),"aria-label":s("desktop.openMermaidViewer"),onClick:()=>f(!0),dangerouslySetInnerHTML:{__html:d}}),m&&(0,n.jsx)(oZ,{svg:d,onClose:()=>f(!1)})]}):(0,n.jsx)("div",{className:"mermaid-block mermaid-block-loading","aria-label":s("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:k})]}),v]})}function oZ({svg:e,onClose:t}){let{t:o}=(0,F.s)(),s=(0,r.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 o=0,n=0,r=t.getAttribute("viewBox");if(r){let e=r.trim().split(/[\s,]+/).map(Number);4===e.length&&e.every(e=>Number.isFinite(e))&&(o=e[2],n=e[3])}return o>0&&n>0||(o=parseFloat(t.getAttribute("width")||""),n=parseFloat(t.getAttribute("height")||"")),o>0&&n>0||(o=800,n=600),t.removeAttribute("width"),t.removeAttribute("height"),t.style.maxWidth="none",t.getAttribute("viewBox")||t.setAttribute("viewBox",`0 0 ${o} ${n}`),{html:t.outerHTML,width:o,height:n}})(e),[e]);return(0,n.jsx)(oq,{contentWidth:s.width,contentHeight:s.height,title:o("desktop.mermaidDiagram"),ariaLabel:o("desktop.mermaidViewer"),onClose:t,children:(0,n.jsx)("div",{dangerouslySetInnerHTML:{__html:s.html}})})}function oQ({children:e,onQuoteReply:t,onOpenFile:o,cwd:s,as:i="p",pid:a}){let{openId:l,setOpenId:d}=(0,r.useContext)(oV),{t:c}=(0,F.s)(),p=l===a,u=(0,r.useRef)(null),[h,g]=(0,r.useState)(null),[m,f]=(0,r.useState)(!1),[x,k]=(0,r.useState)(1),v=(0,r.useRef)(null),[y]=(0,r.useState)(()=>window.matchMedia?.("(pointer: coarse)").matches);(0,r.useEffect)(()=>{!p&&h&&g(null)},[p,h]);let b=(0,r.useRef)(null);(0,r.useEffect)(()=>{h&&b.current&&b.current.scrollIntoView({block:"nearest"})},[h]);let w=()=>{g(null),d(null)},j=()=>{h?w():(()=>{let e;if(h||p)return;let t=u.current,o=(!(e=oN("tr"===i&&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=oN(e);if(!t)return null;let o=t.match(/^(.+?)\s*(?:还是|或者|或者还是|\bor\b)\s*(.+?)[??]?\s*$/iu);if(o){let e=oL(o[1]),t=oL(o[2]);if(e&&t&&e!==t)return[{label:o$(e,12),value:e},{label:o$(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:`好,${o$(e,10)}`,value:"是的"},{label:"不用",value:"不用了"}]:[{label:"是",value:"是的"},{label:"否",value:"不用了"}]}return null}(e)}));o.length>0&&("tr"===i&&t&&k(Math.max(1,t.querySelectorAll("td, th").length)),g(o),d(a))})()},S=(e,t)=>{v.current&&(v.current.style.left=`${e+12}px`,v.current.style.top=`${t+14}px`)},C=h&&(0,n.jsx)(oO,{innerRef:b,segments:h,onPick:e=>{t(e),w()},onOpenFile:o,cwd:s});return"tr"===i?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("tr",{ref:e=>{u.current=e},onClick:j,title:y||h?void 0:c("desktop.quoteReplyHint"),style:{cursor:"pointer"},children:e}),C&&(0,n.jsx)("tr",{children:(0,n.jsx)("td",{colSpan:x,children:C})})]}):(0,n.jsxs)(i,{ref:u,onMouseEnter:e=>{if(y)return;f(!0);let{clientX:t,clientY:o}=e;requestAnimationFrame(()=>S(t,o))},onMouseMove:y?void 0:e=>S(e.clientX,e.clientY),onMouseLeave:()=>f(!1),onClick:j,style:{position:"relative",cursor:"pointer"},children:[e,m&&!h&&(0,n.jsx)("span",{ref:v,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 o0({code:e,lang:t,headerAction:o,isStreaming:s}){let{t:i}=(0,F.s)(),[a,l]=(0,r.useState)(!1),[d,c]=(0,r.useState)(!1);return(0,n.jsxs)("div",{className:"markdown-code-block",onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),children:[(0,n.jsxs)("div",{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||i("desktop.markdownPlainText")}),o,(0,n.jsx)("button",{onClick:()=>{oy(e).then(()=>{l(!0),setTimeout(()=>l(!1),1500)})},title:i(a?"desktop.copied":"desktop.copy"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,border:"none",borderRadius:5,background:"transparent",color:a?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:10,transition:"color 0.12s"},onMouseEnter:e=>{a||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{a||(e.currentTarget.style.color="var(--text-dim)")},children:a?(0,n.jsx)(h.J,{size:11,"aria-hidden":"true"}):(0,n.jsx)(tj.Q,{size:11,"aria-hidden":"true"})})]}),s?(0,n.jsx)("pre",{className:"markdown-code-streaming",children:(0,n.jsx)("code",{children:e})}):(0,n.jsx)(tC.A,{language:t||"text",style:oA,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 o1=/^<skill name="([^"]+)" location="([^"]+)">/,o2="\n</skill>";function o4({src:e,alt:t="",children:o,className:s,style:i}){let{t:a}=(0,F.s)(),[l,d]=(0,r.useState)(!1),c=(0,r.useRef)(null),p=(0,r.useRef)(null),u=(0,r.useRef)(null);(0,r.useEffect)(()=>{if(!l)return;let e=p.current;if(!e)return;let t=c.current,o=document.body.style.overflow;return document.body.style.overflow="hidden",e.showModal(),u.current?.focus({preventScroll:!0}),()=>{document.body.style.overflow=o,e.open&&e.close(),t?.isConnected&&t.focus({preventScroll:!0})}},[l]);let h=()=>{p.current?.open&&p.current.close(),d(!1)};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{ref:c,type:"button",className:s,style:{display:"block",padding:0,border:"none",background:"none",color:"inherit",cursor:"zoom-in",...i},onClick:()=>d(!0),"aria-label":a("chat.previewImage"),"aria-haspopup":"dialog","aria-expanded":l,title:a("chat.previewImage"),children:o}),l&&(0,n.jsxs)("dialog",{ref:p,className:"image-preview-dialog","aria-label":a("chat.previewImage"),onCancel:e=>{e.preventDefault(),e.stopPropagation(),h()},onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),h())},onClick:e=>{e.target===e.currentTarget&&h()},children:[(0,n.jsx)("img",{className:"image-preview-image",src:e,alt:t}),(0,n.jsx)("button",{ref:u,type:"button",className:"image-preview-close",onClick:h,"aria-label":a("chat.close"),title:a("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 o6=/<(read-files|modified-files)>\s*([\s\S]*?)\s*<\/\1>/g,o8=/(?:\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 o5({content:e}){var t,o,s;let i,{t:a}=(0,F.s)(),[l,d]=(0,r.useState)(!1),c="string"==typeof e?e:e.filter(e=>"text"===e.type).map(e=>e.text).join("\n"),p=(0,r.useMemo)(()=>{let e,t,o,n,r;return e=[],t=[],o=c.match(o8),n=o?.[1]??"",r=o?.index===void 0?c:c.slice(0,o.index),n.replace(o6,(o,n,r)=>{let s=r.split(/\r?\n/).map(e=>e.trim()).filter(Boolean);return"read-files"===n?e.push(...s):t.push(...s),""}),{body:r.trim(),readFiles:e,modifiedFiles:t}},[c]),u=(t=p.readFiles.length,o=p.modifiedFiles.length,s=a,i=[],t>0&&i.push(s("desktop.readFilesCount",{count:t})),o>0&&i.push(s("desktop.modifiedFilesCount",{count:o})),i.length>0?i.join(", "):null),[h,g]=(0,r.useState)(!1),[m,f]=(0,r.useState)(!1),x=(0,r.useRef)(null),k=(0,r.useCallback)(()=>{let e=x.current;e&&(g(e.scrollTop>0),f(e.scrollHeight-e.scrollTop-e.clientHeight>1))},[]);return(0,r.useEffect)(()=>{let e=x.current;if(!e||!l)return;let t=new ResizeObserver(k);return e.addEventListener("scroll",k,{passive:!0}),t.observe(e),e.firstElementChild&&t.observe(e.firstElementChild),k(),()=>{e.removeEventListener("scroll",k),t.disconnect()}},[l,k]),(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":l,children:[(0,n.jsx)("span",{className:"truncate",children:a("desktop.conversationCompacted")}),(0,n.jsx)("span",{className:`opacity-0 transition-opacity group-hover/summary:opacity-60 ${l?"rotate-90":""}`,children:(0,n.jsx)(v.J,{size:12,className:"shrink-0 transition-all duration-150"})})]})}),l&&(0,n.jsxs)("div",{className:"relative mt-2",children:[(0,n.jsxs)("div",{ref:x,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:a("desktop.compactionSummaryDescription")}),p.body?(0,n.jsx)(oJ,{className:"!text-text-dim",children:p.body}):(0,n.jsx)("span",{className:"text-xs",children:a("desktop.noSummary")}),u&&(0,n.jsxs)("div",{className:"mt-3 border-t border-border pt-2 text-xs",children:[(0,n.jsx)("div",{className:"font-medium",children:a("desktop.fileContext",{context:u})}),p.modifiedFiles.length>0&&(0,n.jsx)(o3,{title:a("desktop.modifiedFiles"),files:p.modifiedFiles}),p.readFiles.length>0&&(0,n.jsx)(o3,{title:a("desktop.readFiles"),files:p.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"}),m&&(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 o3({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 o7(e){let t,o=[],n=null,r=0,s=0,i=0,a=0,l=[],d=[],c=()=>({lineNo:null,text:"",type:"empty"}),p=()=>{if(!n){l=[],d=[];return}let e=Math.max(l.length,d.length);for(let t=0;t<e;t++){let e=l[t]?{lineNo:l[t].lineNo,text:l[t].text,type:"removed"}:c(),o=d[t]?{lineNo:d[t].lineNo,text:d[t].text,type:"added"}:c();n.rows.push({type:"line",left:e,right:o})}l=[],d=[]};for(let c of e.split(/\r?\n/)){if(!(i>0||a>0)){if(c.startsWith("--- ")){p(),t=o9(c.slice(4));continue}if(c.startsWith("+++ ")){p(),n={oldPath:t,newPath:o9(c.slice(4)),rows:[]},o.push(n);continue}}let e=c.match(/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/);if(e){n||(n={rows:[]},o.push(n)),p(),r=Number(e[1]),s=Number(e[3]),i=void 0===e[2]?1:Number(e[2]),a=void 0===e[4]?1:Number(e[4]),n.rows.push({type:"hunk",text:c});continue}if(!n)continue;if(c.startsWith("\\ ")){p(),n.rows.push({type:"hunk",text:c});continue}if(0===i&&0===a){""!==c&&n.rows.push({type:"hunk",text:c});continue}let u=c[0],h=c.slice(1);" "===u?(p(),n.rows.push({type:"line",left:{lineNo:r++,text:h,type:"context"},right:{lineNo:s++,text:h,type:"context"}}),i>0&&i--,a>0&&a--):"-"===u?(l.push({lineNo:r++,text:h}),i>0&&i--):"+"===u?(d.push({lineNo:s++,text:h}),a>0&&a--):""!==c&&(p(),n.rows.push({type:"hunk",text:c}))}p();let u=o.filter(e=>e.rows.some(e=>"line"===e.type));return u.length>0?u:null}function o9(e){return e.split(" ")[0].trim()}function ne({files:e,onOpenFile:t}){let{t:o}=(0,F.s)();return 0===e.length?null:(0,n.jsx)("div",{"aria-label":o("desktop.filesWritten"),style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:6,marginTop:6},children:e.map(({filePath:e})=>{let r=ea(e);return(0,n.jsxs)("button",{type:"button",title:e,"aria-label":o("desktop.openWrittenFile",{name:r}),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:r})]},e)})})}var nt=o(89698);let no={running:"var(--accent)",completed:"#22c55e",failed:"#ef4444",stopped:"#d97706"};function nn({agent:e,cwd:t,onOpen:o}){let{t:s}=(0,F.s)(),i=e=>{if(e)return s("user"===e?"desktop.transcriptRoleUser":"assistant"===e?"desktop.transcriptRoleAssistant":"toolResult"===e?"desktop.transcriptRoleResult":"desktop.transcriptRoleBash")},[a,l]=(0,r.useState)(!1),[d,c]=(0,r.useState)(()=>Date.now());(0,r.useEffect)(()=>{if("running"!==e.status)return;let t=setInterval(()=>c(Date.now()),1e3);return()=>clearInterval(t)},[e.status]);let[p,u]=(0,r.useState)(null),h=(0,r.useCallback)(async()=>{if(e.id&&t)try{let o=new URLSearchParams({id:e.id,cwd:t}),n=await fetch(`/api/subagents/transcript?${o}`);if(!n.ok)return;let r=(await n.json()).lines??[];r.length>0&&u(r[r.length-1])}catch{}},[e.id,t]);(0,r.useEffect)(()=>{h()},[h]);let g=(0,r.useRef)(e.status);(0,r.useEffect)(()=>{let t="running"===g.current;g.current=e.status,t&&"running"!==e.status&&h()},[e.status]),(0,r.useEffect)(()=>{if("running"!==e.status)return;let t=setInterval(()=>void h(),2e3);return()=>clearInterval(t)},[e.status,h]);let m=no[e.status],f="running"===e.status,x=f?d-e.startedAt:e.completedAt?e.completedAt-e.startedAt:void 0,k=e.tokens?.total??e.tokens?.input??e.tokens?.output,y=f?s("desktop.subagentCardProcessing"):s(`desktop.subagentsStatus${"completed"===e.status?"Completed":"failed"===e.status?"Failed":"Stopped"}`);return(0,n.jsxs)("button",{type:"button",onClick:()=>o?.(e.id),onMouseEnter:()=>l(!0),onMouseLeave:()=>l(!1),title:e.error||`${e.agentType} \xb7 ${e.description}`,style:{display:"block",width:"100%",minWidth:0,textAlign:"left",margin:"6px 0",padding:0,border:`1px solid ${a?"color-mix(in srgb, var(--accent) 55%, var(--border))":"var(--border)"}`,borderRadius:8,background:"var(--bg-panel)",color:"var(--text)",cursor:"pointer",overflow:"hidden",transition:"border-color 0.15s, box-shadow 0.15s",boxShadow:a?"0 2px 10px rgba(0,0,0,0.18)":"none"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"7px 10px",borderBottom:"1px solid var(--border)"},children:[f?(0,n.jsx)("span",{"aria-hidden":"true",style:{flexShrink:0,display:"inline-flex",width:13,height:13,borderRadius:"50%",border:"2px solid color-mix(in srgb, var(--accent) 25%, transparent)",borderTopColor:"var(--accent)",animation:"spin 0.8s linear infinite"}}):(0,n.jsx)("span",{"aria-hidden":"true",style:{flexShrink:0,width:8,height:8,borderRadius:"50%",background:m}}),(0,n.jsx)("span",{style:{fontSize:12,fontWeight:600,color:f?"var(--text)":"var(--text-muted)"},children:y}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:10,fontFamily:"var(--font-mono)",color:"var(--text-dim)",textAlign:"right"},children:e.agentType}),(0,n.jsx)(v.K,{size:11,style:{flexShrink:0,color:a?"var(--text)":"var(--text-dim)",transition:"color 0.15s, transform 0.15s",transform:a?"translateX(1px)":"none"},"aria-hidden":"true"})]}),e.description&&(0,n.jsx)("div",{style:{padding:"6px 10px 0",fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.description}),p&&(0,n.jsxs)("div",{style:{padding:"3px 10px 0",display:"flex",alignItems:"flex-start",gap:6,minWidth:0},children:[p.role&&i(p.role)&&(0,n.jsxs)("span",{style:{flexShrink:0,fontSize:9.5,fontFamily:"var(--font-mono)",fontWeight:600,color:"var(--accent)",marginTop:1},children:["[",i(p.role),"]"]}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,fontSize:11.5,lineHeight:1.45,color:"var(--text-muted)",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden",wordBreak:"break-word"},children:p.text})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"5px 10px 7px",fontSize:10,fontFamily:"var(--font-mono)",color:"var(--text-dim)"},children:[(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4},children:[(0,n.jsx)(nt.e,{size:9,weight:"bold",style:{animation:f?"spin 1.2s linear infinite":"none",color:f?"var(--accent)":"var(--text-dim)"},"aria-hidden":"true"}),function(e){if(void 0===e)return"…";if(e<1e3)return`${e}ms`;let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let o=Math.floor(t/60),n=t%60;return n>0?`${o}m ${n}s`:`${o}m`}(x)]}),void 0!==k&&k>0&&(0,n.jsxs)("span",{children:[void 0===k?"":k>=1e6?`${(k/1e6).toFixed(1)}M`:k>=1e3?`${(k/1e3).toFixed(1)}k`:`${k}`,"t"]})]})]})}var nr=o(35831),ns=o(63522),ni=o(22540),na=o(36462),nl=o(42405),nd=o(26131),nc=o(47142);let np={flash:{cacheRead:.02,input:1,output:2,cacheWrite:0},pro:{cacheRead:.025,input:3,output:6,cacheWrite:0}};function nu(e){let t=(e??"").toLowerCase();return t.includes("deepseek-v4-flash")?"flash":t.includes("deepseek-v4-pro")?"pro":null}function nh(e){return null!==nu(e)}function ng(e,t){let o=nu(e);if(!o||!t)return 0;let n=np[o],r=nf(t.input),s=nf(t.output),i=nf(t.cacheRead),a=nf(t.cacheWrite);return(i*n.cacheRead+r*n.input+s*n.output+a*n.cacheWrite)/1e6}function nm(e){var t;let o="number"==typeof(t=e)&&Number.isFinite(t)?t:0;return!Number.isFinite(o)||o<=0?"\xa50.00":o<.01?"<\xa50.01":o<1?`\xa5${o.toFixed(4)}`:`\xa5${o.toFixed(2)}`}function nf(e){return"number"==typeof e&&Number.isFinite(e)&&e>0?e:0}let nx=new Map;function nk(e,t,o){let n=`${e}:${t}:${o}`,r=nx.get(n);if(r)return nx.delete(n),nx.set(n,r),r;let s=fetch(`/api/sessions/${encodeURIComponent(e)}/entries/${encodeURIComponent(t)}/thinking?blockIndex=${o}`).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 nx.delete(n),e});if(nx.set(n,s),nx.size>100){let e=nx.keys().next().value;e&&nx.delete(e)}return s}function nv(e){if(!e)return null;let t=new Date(e),o=new Date,n=t.getFullYear()===o.getFullYear()&&t.getMonth()===o.getMonth()&&t.getDate()===o.getDate(),r=t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});if(n)return r;let s=t.toLocaleDateString([],{month:"short",day:"numeric",year:t.getFullYear()!==o.getFullYear()?"numeric":void 0});return`${s} ${r}`}let ny=(0,r.memo)(function({message:e,isStreaming:t,toolResults:o,modelNames:r,cwd:s,onOpenFile:i,onQuoteReply:a,entryId:l,onFork:d,forking:c,onNavigate:p,prevAssistantEntryId:u,onEditContent:h,showTimestamp:g,prevTimestamp:m,sessionId:f,onCreateTask:x,writtenFiles:k,subagents:v,onOpenSubagent:y}){return"user"===e.role?(0,n.jsx)(nb,{message:e,cwd:s,onOpenFile:i,entryId:l,onFork:d,forking:c,onNavigate:p,prevAssistantEntryId:u,onEditContent:h,onCreateTask:x}):"assistant"===e.role?(0,n.jsx)(nw,{message:e,isStreaming:t,toolResults:o,modelNames:r,cwd:s,onOpenFile:i,onQuoteReply:a,showTimestamp:g,prevTimestamp:m,sessionId:f,entryId:l,onFork:d,forking:c,writtenFiles:k,subagents:v,onOpenSubagent:y}):"toolResult"===e.role?null:"custom"===e.role?"compaction"===e.customType?(0,n.jsx)(o5,{content:e.content}):(0,n.jsx)(nA,{message:e,isStreaming:t,cwd:s,onOpenFile:i}):"bashExecution"===e.role?(0,n.jsx)(nN,{message:e,sessionId:f}):null},(e,t)=>e.message===t.message&&e.isStreaming===t.isStreaming&&function(e,t,o){if(t===o||"assistant"!==e.role)return!0;for(let n of e.content??[])if("toolCall"===n.type&&t?.get(n.toolCallId)!==o?.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.entryId===t.entryId&&e.onFork===t.onFork&&e.forking===t.forking&&e.onNavigate===t.onNavigate&&e.prevAssistantEntryId===t.prevAssistantEntryId&&e.onEditContent===t.onEditContent&&e.onCreateTask===t.onCreateTask&&e.showTimestamp===t.showTimestamp&&e.prevTimestamp===t.prevTimestamp&&e.sessionId===t.sessionId&&e.writtenFiles===t.writtenFiles&&e.subagents===t.subagents&&e.onOpenSubagent===t.onOpenSubagent);function nb({message:e,cwd:t,onOpenFile:o,entryId:s,onFork:i,forking:a,onNavigate:l,prevAssistantEntryId:d,onEditContent:c,onCreateTask:p}){let{t:u}=(0,F.s)(),[g,m]=(0,r.useState)(!1),[f,x]=(0,r.useState)(!1),k="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?k.replace(/(?<!\\)!\[[^\]]*\]\([^)]*\)/g,"").replace(/[ \t]*\n{3,}/g,"\n\n"):k,b=(y&&y.trim()?y.trim().startsWith("/")?y:function(e){let t=e.match(o1);if(!t)return null;let o=t[1],n=e.indexOf(o2),r="";if(-1!==n){let t=e.slice(n+o2.length);t.startsWith("\n\n")&&(r=t.slice(2).trim())}return r?`/skill:${o} ${r}`:`/skill:${o}`}(y):null)??y,w=nv(e.timestamp),j=!!s&&!!i,S=!!d&&!!l;return(0,n.jsxs)("div",{className:"chat-user-message chat-msg-in",onMouseEnter:()=>m(!0),onMouseLeave:()=>m(!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 o=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)(o4,{src:o,children:(0,n.jsx)("img",{src:o,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)(oJ,{className:"markdown-user-message",cwd:t,onOpenFile:o,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",{style:{display:"flex",gap:3,opacity:+!!g,pointerEvents:g?"auto":"none",transition:"opacity 0.12s"},children:[(0,n.jsx)("button",{onClick:()=>{oy(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:f?"var(--accent)":"var(--text-dim)",cursor:"pointer",transition:"color 0.12s"},onMouseEnter:e=>{f||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{f||(e.currentTarget.style.color="var(--text-dim)")},children:f?(0,n.jsx)(h.S,{size:11}):(0,n.jsx)(tj.T,{size:11})}),p&&y.trim()&&(0,n.jsx)("button",{onClick:()=>p(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)(nl.X,{size:11})})]}),(j||S)&&(0,n.jsxs)("div",{className:"msg-actions",style:{display:"flex",gap:3,opacity:g||a?1:0,pointerEvents:g||a?"auto":"none",transition:"opacity 0.12s"},children:[S&&(0,n.jsx)("button",{onClick:()=>{l(d),c?.(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)(nr.S,{size:11})}),j&&(0,n.jsx)("button",{onClick:()=>{i(s)},disabled:a,title:u(a?"desktop.creatingNewSession":"desktop.newSessionFromHere"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,background:"none",border:"none",borderRadius:5,color:a?"var(--accent)":"var(--text-dim)",cursor:a?"not-allowed":"pointer",transition:"color 0.12s"},onMouseEnter:e=>{a||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{a||(e.currentTarget.style.color="var(--text-dim)")},children:(0,n.jsx)(P.C,{size:11})})]}),w&&(0,n.jsx)("span",{style:{fontSize:11,color:g?"var(--text-muted)":"var(--text-dim)",opacity:g?1:.5,transition:"color 0.15s, opacity 0.15s"},children:w})]})]})}function nw({message:e,isStreaming:t,toolResults:o,modelNames:s,cwd:i,onOpenFile:a,onQuoteReply:l,showTimestamp:d,prevTimestamp:c,sessionId:p,entryId:u,onFork:g,forking:m,writtenFiles:f,subagents:x,onOpenSubagent:k}){let{t:v}=(0,F.s)(),y=d?nv(e.timestamp):null,b=(e.content??[]).map((e,t)=>({block:e,originalIndex:t})).filter(({block:e})=>!td(e,{isStreaming:t})),w=b.map(({block:e})=>e),[j,S]=(0,r.useState)(!1),[C,T]=(0,r.useState)(!1),[R,z]=(0,r.useState)(!1),I=(0,r.useRef)(null),[M,E]=(0,r.useState)(null),D=(0,r.useRef)(b);D.current=b;let W=(0,r.useRef)(new Map),[A,N]=(0,r.useState)(new Map),$=(0,r.useMemo)(()=>{if(!e.timestamp||!c)return;let t=Math.round((e.timestamp-c)/1e3);return t>0?t:void 0},[e.timestamp,c]),L=(0,r.useMemo)(()=>{let t=new Map;if(!o||!e.timestamp)return t;for(let[n,r]of o)if(r.timestamp&&e.timestamp){let o=Math.round((r.timestamp-e.timestamp)/1e3);o>0&&t.set(n,o)}return t},[o,e.timestamp]),O=w.filter(e=>"text"===e.type).map(e=>e.text).join("\n"),H=function(e){let t=new Set;for(let o of e){if("toolCall"!==o.type)continue;let e=(o.toolName??"").toLowerCase();if("apply_patch"===e||e.includes("patch")||!(nD(o.toolName??"")||"write"===e||"create"===e||e.includes("file_write")||e.includes("create_file")||e.includes("multiedit")))continue;let n=o.input??{},r=n.filePath??n.file_path??n.path??n.file??n.destination??n.newFilePath??n.oldPath;"string"==typeof r&&r.trim()&&t.add(r)}return[...t]}(w),[B,U]=(0,r.useState)(!1);(0,r.useEffect)(()=>{if(!t){let e=new Date().getTime();N(t=>{let o=new Map(t);for(let[t,n]of W.current)o.has(t)||o.set(t,Math.round((e-n)/1e3));return o}),I.current=null,E(null);return}let e=setInterval(()=>{let e=D.current,t=e.map(({block:e})=>e),o=Date.now();e.forEach(({originalIndex:e})=>{W.current.has(e)||W.current.set(e,o)}),N(t=>{let n=!1,r=new Map(t);for(let t=0;t<e.length-1;t++){let s=e[t].originalIndex,i=e[t+1].originalIndex;if(!r.has(s)&&W.current.has(s)){let e=W.current.get(s),t=W.current.get(i)??o;r.set(s,Math.round((t-e)/1e3)),n=!0}}return n?r: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===I.current&&(I.current=o);let r=(o-I.current)/1e3;r>.5&&E(n/4/r)},300);return()=>clearInterval(e)},[t]);let _=e=>e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:e.toLocaleString(),q="error"===e.stopReason&&e.errorMessage?e.errorMessage:null;return 0!==w.length||t||q?(0,n.jsxs)("div",{className:["chat-assistant-message chat-msg-in",t?"is-streaming":""].filter(Boolean).join(" "),onMouseEnter:()=>S(!0),onMouseLeave:()=>S(!1),children:[t&&(0,n.jsx)("div",{className:"chat-assistant-meta",children:(()=>{let e,t=0;for(let e of w)"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 o=Math.round(t/4);return(0,n.jsx)(n.Fragment,{children:o>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,color:"var(--text)"},title:v("desktop.estimatedStreamingTokenCount"),children:[(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:2,fontSize:11,fontWeight:400},children:[(0,n.jsx)(na.g,{size:13}),o]}),null!==M&&(e=M>=50?"--accent-green":M>=30?"--accent-blue":M>=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:v("desktop.tokensPerSecond",{count:M.toFixed(1)})}))]})})})()}),(0,n.jsxs)("div",{className:"chat-assistant-content",children:[q&&(0,n.jsxs)("div",{className:"chat-assistant-error",role:"alert",children:[(0,n.jsx)(nc.M,{size:13,weight:"bold"}),(0,n.jsx)("span",{children:q})]}),b.map(({block:e,originalIndex:r})=>(0,n.jsx)(nj,{block:e,toolResults:o,isStreaming:t,streamingDuration:A.get(r)??("thinking"===e.type?$:void 0),toolCallDurations:L,cwd:i,onOpenFile:a,onQuoteReply:l,sessionId:p,entryId:u,blockIndex:r,subagents:x,onOpenSubagent:k},`${u??"stream"}-${r}`))]}),f&&f.length>0&&(0,n.jsx)(ne,{files:f,onOpenFile:a}),(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:j?"var(--text-muted)":"var(--text-dim)",opacity:j?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:s?.[`${e.provider}:${e.model}`]??s?.[e.model]??e.model}),e.usage&&e.usage.input>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:2},children:[(0,n.jsx)(ni.K,{size:10}),_(e.usage.input)]}),e.usage&&e.usage.output>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:2},children:[(0,n.jsx)(ns.Z,{size:10}),_(e.usage.output)]}),e.usage&&e.usage.cacheRead>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:2},children:[(0,n.jsx)(nd.b,{size:10}),_(e.usage.cacheRead)]}),e.usage&&e.usage.cost?.total>0&&(()=>{if(nh(e.model)){let t=ng(e.model,e.usage);return t<=0?null:(0,n.jsx)("span",{title:v("desktop.turnUsageByOfficialPrice"),children:nm(t)})}return(0,n.jsxs)("span",{children:["$",e.usage.cost.total.toFixed(4)]})})()]}),O&&!t&&(0,n.jsx)("button",{className:"msg-actions",onClick:()=>{oy(O).then(()=>{T(!0),setTimeout(()=>T(!1),1500)})},title:v("desktop.copyMessage"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,background:"none",border:"none",borderRadius:5,color:C?"var(--accent)":"var(--text-dim)",cursor:"pointer",opacity:+!!j,pointerEvents:j?"auto":"none",transition:"opacity 0.12s, color 0.12s"},onMouseEnter:e=>{C||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{C||(e.currentTarget.style.color="var(--text-dim)")},children:C?(0,n.jsx)(h.S,{size:11}):(0,n.jsx)(tj.T,{size:11})}),O&&!t&&(0,n.jsx)("button",{className:"msg-actions",onClick:()=>{oy(O.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(()=>{z(!0),setTimeout(()=>z(!1),1500)})},title:v("desktop.copyPlainText"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,background:"none",border:"none",borderRadius:5,color:R?"var(--accent)":"var(--text-dim)",cursor:"pointer",opacity:+!!j,pointerEvents:j?"auto":"none",transition:"opacity 0.12s, color 0.12s"},onMouseEnter:e=>{R||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{R||(e.currentTarget.style.color="var(--text-dim)")},children:R?(0,n.jsx)(h.S,{size:11}):(0,n.jsx)(nl.X,{size:11})}),u&&g&&!t&&(0,n.jsx)("button",{className:"msg-actions",onClick:()=>g(u),disabled:m,title:m?v("desktop.creatingNewSession"):v("desktop.newSessionFromHere"),"aria-label":v("desktop.newSessionFromHere"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,background:"none",border:"none",borderRadius:5,color:m?"var(--accent)":"var(--text-dim)",cursor:m?"not-allowed":"pointer",opacity:+!!j,pointerEvents:j?"auto":"none",transition:"opacity 0.12s, color 0.12s"},children:(0,n.jsx)(P.C,{size:11})}),y&&!t&&(0,n.jsx)("span",{style:{fontSize:11,color:j?"var(--text-muted)":"var(--text-dim)",opacity:j?1:.5,marginLeft:"auto",transition:"color 0.15s, opacity 0.15s"},children:y}),H.length>0&&!t&&(0,n.jsxs)("span",{style:{position:"relative",display:"inline-flex",alignItems:"center"},children:[(0,n.jsxs)("button",{type:"button",onClick:()=>U(e=>!e),title:v("desktop.changedFiles",{count:H.length}),style:{display:"inline-flex",alignItems:"center",gap:4,padding:"1px 7px",border:"1px solid var(--border)",borderRadius:999,background:B?"var(--bg-hover)":"none",color:"var(--text-muted)",fontSize:10,cursor:"pointer",opacity:j||B?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=>{B||(e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.borderColor="var(--border)")},children:[(0,n.jsx)(P.C,{size:10,"aria-hidden":"true"}),H.length]}),B&&(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:H.map(e=>(0,n.jsx)("button",{type:"button",onClick:()=>{U(!1),a?.(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 nj({block:e,toolResults:t,isStreaming:o,streamingDuration:r,toolCallDurations:s,cwd:i,onOpenFile:a,onQuoteReply:l,sessionId:d,entryId:c,blockIndex:p,subagents:u,onOpenSubagent:h}){if("text"===e.type)return(0,n.jsx)(nC,{block:e,isStreaming:o,cwd:i,onOpenFile:a,onQuoteReply:l});if("thinking"===e.type)return(0,n.jsx)(nT,{block:e,duration:r,sessionId:d,entryId:c,blockIndex:p});if("toolCall"===e.type){if(nS.has(e.toolName)){let o=t?.get(e.toolCallId),r=u?.find(t=>t.id===e.toolCallId)??function(e,t){let o=e.input??{},n="string"==typeof o.description&&o.description.trim()?o.description.trim():"string"==typeof o.prompt?o.prompt.slice(0,80):"",r="string"==typeof o.subagent_type&&o.subagent_type?o.subagent_type:e.toolName,s={id:e.toolCallId,agentType:r,description:n};if(t){let e=Date.now();return{...s,status:t.isError?"failed":"completed",startedAt:e,completedAt:e,error:t.isError?"Subagent returned an error":void 0}}return{...s,status:"running",startedAt:Date.now()}}(e,o);return(0,n.jsx)(nn,{agent:r,cwd:i,onOpen:h})}let o=t?.get(e.toolCallId),r=s?.get(e.toolCallId);return(0,n.jsx)(nz,{block:e,result:o,duration:r})}return null}let nS=new Set(["Agent","Task"]);function nC({block:e,isStreaming:t,cwd:o,onOpenFile:r,onQuoteReply:s}){return(0,n.jsx)(oJ,{isStreaming:t,cwd:o,onOpenFile:r,onQuoteReply:s,children:e.text})}function nT({block:e,duration:t,sessionId:o,entryId:s,blockIndex:i,contentOnly:a=!1,isStreaming:l,cwd:d,onOpenFile:c,className:p}){let{t:u}=(0,F.s)(),[h,g]=(0,r.useState)(!1),[m,f]=(0,r.useState)(null),[x,k]=(0,r.useState)(!1),[v,y]=(0,r.useState)(null),b=async()=>{let t=!h;if(g(t),!t||!e.deferred||null!==m)return;if(!o||!s)return void y(u("desktop.thinkingContentUnavailable"));let n=5,r=()=>{k(!0),y(null),nk(o,s,i).then(e=>{f(e),k(!1)}).catch(e=>{n>1?(n--,setTimeout(r,2e3)):(k(!1),y(e instanceof Error?e.message:String(e)))})};r()};return a?(0,n.jsx)(nR,{block:e,sessionId:o,entryId:s,blockIndex:i,isStreaming:l,cwd:d,onOpenFile:c,className:p}):(0,n.jsxs)("div",{className:"thinking-block",children:[(0,n.jsxs)("button",{onClick:()=>void b(),className:"thinking-block-trigger","aria-expanded":h,children:[(0,n.jsx)("span",{className:`thinking-block-caret ${h?"is-expanded":""}`,"aria-hidden":"true",children:"›"}),(0,n.jsx)("span",{className:"thinking-block-icon","aria-hidden":"true",children:"✦"}),(0,n.jsx)("span",{children:u("desktop.thinking")}),void 0!==t&&(0,n.jsxs)("span",{style:{marginLeft:"auto",fontSize:11,color:"var(--text-dim)",fontVariantNumeric:"tabular-nums"},children:[t,"s"]})]}),h&&(0,n.jsx)("div",{className:`thinking-block-content ${v?"is-error":""}`,children:x?u("desktop.loadingThinking"):v??(e.deferred?m:e.thinking)})]})}function nR({block:e,sessionId:t,entryId:o,blockIndex:s,isStreaming:i,cwd:a,onOpenFile:l,className:d}){let{t:c}=(0,F.s)(),[p,u]=(0,r.useState)(null),[h,g]=(0,r.useState)(!0===e.deferred),[m,f]=(0,r.useState)(null);return((0,r.useEffect)(()=>{let n=!1,r=5;if(!e.deferred)return void g(!1);if(!t||!o){g(!1),f(c("desktop.thinkingContentUnavailable"));return}let i=()=>{n||(g(!0),f(null),nk(t,o,s).then(e=>{n||(u(e),g(!1))}).catch(e=>{n||(r>1?(r--,setTimeout(i,2e3)):(g(!1),f(e instanceof Error?e.message:String(e))))}))};return i(),()=>{n=!0}},[e.deferred,s,o,t,c]),h)?(0,n.jsx)("div",{className:"text-xs text-text-dim",children:c("desktop.loadingThinking")}):m?(0,n.jsx)("div",{className:"text-xs text-red-400",children:m}):(0,n.jsx)(oJ,{isStreaming:i,cwd:a,onOpenFile:l,className:d,children:e.deferred?p??"":e.thinking})}let nz=(0,r.memo)(function({block:e,result:t,duration:o,processStyle:s=!1}){let[i,a]=(0,r.useState)(!1),l=(0,r.useMemo)(()=>JSON.stringify(e.input,null,2),[e.input]),d=nD(e.toolName),c=t&&!t.isError?function(e){var t;let o=e.details;if(!("object"==typeof(t=o)&&null!==t&&!Array.isArray(t)))return null;let n="string"==typeof o.patch?o.patch:null;if(n)return{text:n};let r="string"==typeof o.diff?o.diff:null;return r?{text:r}:null}(t):null,p=(0,r.useMemo)(()=>t?t.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n"):null,[t]),u=t?.content.filter(e=>"image"===e.type)??[],h=null!==p&&("(no output)"===p.trim()||""===p.trim()),g=t?.isError??!1;return(0,n.jsxs)("div",{className:`tool-call-block ${s?"is-process":""} ${g?"is-error":""}`,children:[(0,n.jsxs)("button",{onClick:()=>a(e=>!e),className:"tool-call-trigger","aria-expanded":i,children:[(0,n.jsx)("span",{className:"tool-call-name",children:e.toolName}),(0,n.jsx)("span",{className:"tool-call-preview",children:function(e){let t=e.input;if(!t||"object"!=typeof t)return"";let o=Object.keys(t);return 0===o.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[o[0]]).slice(0,120)}(e)}),void 0!==o&&(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-dim)",flexShrink:0,fontVariantNumeric:"tabular-nums"},children:[o,"s"]}),(0,n.jsx)("span",{className:`tool-call-caret ${i?"is-expanded":""}`,"aria-hidden":"true",children:(0,n.jsx)(v.J,{size:12})})]}),i&&!d&&(0,n.jsx)("pre",{className:"tool-call-input",children:l}),i&&t&&(c?(0,n.jsx)(nI,{diff:c,processStyle:s}):(0,n.jsx)(nW,{text:p??"",images:u,isEmpty:h,isError:g,processStyle:s}))]})});function nI({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)(nM,{text:e.text})})}function nM({text:e}){let{t}=(0,F.s)(),o=(0,r.useMemo)(()=>o7(e),[e]);if(!o)return(0,n.jsx)(nF,{text:e});let s=o.length>1;return(0,n.jsx)("div",{style:{maxHeight:560,overflowY:"auto",overflowX:"hidden",background:"var(--bg)"},children:o.map((e,o)=>(0,n.jsxs)("div",{style:{minWidth:0,borderTop:0===o?"none":"1px solid var(--border)",fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.55},children:[s&&(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)(nP,{title:e.oldPath||t("desktop.before"),side:"left"}),(0,n.jsx)(nP,{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)(nE,{cell:e.left,side:"left"}),(0,n.jsx)(nE,{cell:e.right,side:"right"})]},t))})]},o))})}function nP({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 nE({cell:e,side:t}){let o="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",r="added"===e.type?"+":"removed"===e.type?"-":" ",s="added"===e.type?"#22c55e":"removed"===e.type?"#f87171":"var(--text-dim)";return(0,n.jsxs)("div",{style:{display:"flex",minWidth:0,background:o,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:s,userSelect:"none",fontWeight:"context"===e.type||"empty"===e.type?400:700,flexShrink:0},children:r}),(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 nF({text:e}){let t=e.split(/\r?\n/);return(0,n.jsx)("div",{style:{maxHeight:520,overflowY:"auto",overflowX:"hidden",fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.55,minWidth:0},children:t.map((e,t)=>{let o=e.startsWith("@@")?"hunk":e.startsWith("+")&&!e.startsWith("+++")?"added":e.startsWith("-")&&!e.startsWith("---")?"removed":"context";return(0,n.jsxs)("div",{style:{display:"flex",background:"added"===o?"rgba(34,197,94,0.12)":"removed"===o?"rgba(248,113,113,0.13)":"hunk"===o?"rgba(96,165,250,0.12)":"transparent",borderLeft:"added"===o?"3px solid #22c55e":"removed"===o?"3px solid #f87171":"hunk"===o?"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"===o?"#22c55e":"removed"===o?"#f87171":"hunk"===o?"var(--accent)":"var(--text)"},children:e||"\xa0"})]},t)})})}function nD(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 nW({text:e,images:t=[],isEmpty:o,isError:s,processStyle:i=!1}){let{t:a}=(0,F.s)(),[l,d]=(0,r.useState)(!1),c=!o&&e.length>8e3&&!l,p=c?e.slice(0,8e3):e,u=!o||0===t.length;return(0,n.jsxs)("div",{style:{borderTop:`1px solid ${i?"var(--border)":s?"rgba(248,113,113,0.3)":"rgba(34,197,94,0.15)"}`,background:i?"var(--bg-subtle)":s?"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 o=n$(e);return o?(0,n.jsx)(o4,{src:o,children:(0,n.jsx)("img",{src:o,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)"}})},`${o}-${t}`):null})}),u&&(0,n.jsx)("pre",{style:{margin:0,padding:"8px 10px",color:s?"#f87171":o?"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:o?"italic":"normal",opacity:o?.6:1},children:o?a("desktop.noOutput"):p}),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:a("desktop.loadFullOutput")})]})}function nA({message:e,isStreaming:t,cwd:o,onOpenFile:s}){var i,a,l,d,c,p;let u,{t:h}=(0,F.s)(),g=!1===e.display,[m,f]=(0,r.useState)(!g),[x,k]=(0,r.useState)(!1),[v,y]=(0,r.useState)(!1),b="string"==typeof(i=e.content)?i:i.filter(e=>"text"===e.type).map(e=>e.text).join("\n"),w="string"==typeof(a=e.content)?[]:a.filter(e=>"image"===e.type),j=void 0!==e.details,S=j?function(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}}(e.details):"",C=(l=e.customType,d=h("desktop.extension"),l||d),T=nv(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&&!m?.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")}),T&&(0,n.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10},children:T})]}),m?(0,n.jsxs)("div",{style:{padding:"6px 9px"},children:[w.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:8*!!b},children:w.map((e,t)=>{let o=n$(e);return o?(0,n.jsx)(o4,{src:o,children:(0,n.jsx)("img",{src:o,alt:"",style:{maxWidth:240,maxHeight:240,borderRadius:6,objectFit:"contain",display:"block",border:"1px solid var(--border)"}})},t):null})}),b?(0,n.jsx)(oJ,{className:"markdown-custom-message",isStreaming:t,cwd:o,onOpenFile:s,children:b}):(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:b?(c=b,p=h("desktop.showExtensionMessage"),(u=c.replace(/\s+/g," ").trim())?u.length>140?`${u.slice(0,140)}...`:u:p):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:[b||S?(0,n.jsx)("button",{onClick:()=>{oy(b||S).then(()=>{y(!0),setTimeout(()=>y(!1),1500)})},style:{padding:"3px 7px",border:"none",background:"none",color:v?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:11},children:h(v?"desktop.copied":"desktop.copy")}):null,(j||g)&&(0,n.jsx)("button",{onClick:()=>{g?f(e=>!e):k(e=>!e)},style:{marginLeft:"auto",padding:"3px 7px",border:"none",background:"none",color:"var(--text-dim)",cursor:"pointer",fontSize:11},children:h(g?m?"desktop.collapse":"desktop.expand":x?"desktop.hideDetails":"desktop.showDetails")})]}),j&&(g&&m||!g&&x)&&(0,n.jsx)("pre",{style:{margin:0,padding:"9px 10px",borderTop:"1px solid var(--border)",background:"var(--bg)",color:"var(--text-muted)",fontSize:12,lineHeight:1.5,whiteSpace:"pre-wrap",wordBreak:"break-word",maxHeight:360,overflow:"auto",fontFamily:"var(--font-mono)"},children:S})]})})}function nN({message:e,sessionId:t}){let{t:o}=(0,F.s)(),[s,i]=(0,r.useState)(null),[a,l]=(0,r.useState)(!1),[d,c]=(0,r.useState)(null),p=!e.output&&void 0===e.exitCode&&!e.cancelled,u=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=s??e.output,m=async()=>{if(h){l(!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}`);i(t.data?.output??"")}catch(e){c(e instanceof Error?e.message:String(e))}finally{l(!1)}}},f=e.excludeFromContext?"bash (local)":"bash",x={type:"toolCall",toolCallId:`bash-${e.timestamp??e.command}`,toolName:f,input:{command:e.command}},k=p?void 0:{role:"toolResult",toolCallId:x.toolCallId,toolName:f,content:g?[{type:"text",text:g}]:[],isError:u,timestamp:e.timestamp};return(0,n.jsxs)("div",{style:{margin:"6px 0"},children:[(0,n.jsx)(nz,{block:x,result:k}),e.truncated&&h&&null===s&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:4},children:[(0,n.jsx)("button",{type:"button",onClick:()=>void m(),disabled:a,style:{padding:"3px 8px",border:"1px solid var(--border)",borderRadius:4,background:"none",color:"var(--text-muted)",cursor:a?"wait":"pointer",fontSize:11},children:o(a?"desktop.loading":"desktop.loadFullOutput")}),(0,n.jsx)("a",{href:`${h}&download=1`,style:{fontSize:11,color:"var(--accent)"},children:o("desktop.download")})]}),d&&(0,n.jsx)("div",{style:{marginTop:4,color:"var(--accent-red)",fontSize:11},children:d})]})}function n$(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 nL=o(35828),nO=o(61719),nH=o(259);function nB({open:e,planText:t,onExecute:o,onFeedback:s,onExit:i,onClose:a,busy:l=!1}){let{t:d}=(0,F.s)(),[c,p]=(0,r.useState)(!1),[u,h]=(0,r.useState)(""),[g,m]=(0,r.useState)(!0),f=(0,r.useRef)(null);return((0,r.useEffect)(()=>{e&&(p(!1),h(""),m(!0))},[e]),(0,r.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:u,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:()=>p(!1),disabled:l,style:{padding:"5px 10px",borderRadius:6,background:"none",border:"1px solid var(--border)",color:"var(--text-muted)",fontSize:11.5,cursor:l?"not-allowed":"pointer"},children:d("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>{u.trim()&&s(u.trim())},disabled:l||!u.trim(),style:{padding:"5px 12px",borderRadius:6,background:"var(--accent)",color:"#fff",border:"none",fontSize:11.5,fontWeight:600,cursor:l||!u.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:()=>m(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)(nL.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:o,disabled:l,title:d("tasks.planReviewExecute"),style:{display:"inline-flex",alignItems:"center",gap:5,padding:"6px 12px",borderRadius:7,background:"var(--accent)",color:"#fff",border:"none",fontSize:12,fontWeight:650,cursor:l?"not-allowed":"pointer",transition:"opacity 0.12s"},onMouseEnter:e=>{l||(e.currentTarget.style.opacity="0.88")},onMouseLeave:e=>{e.currentTarget.style.opacity="1"},children:[(0,n.jsx)(nO.r,{size:13,weight:"fill","aria-hidden":"true"}),d("tasks.planReviewExecute")]}),(0,n.jsxs)("button",{type:"button",onClick:()=>{c?p(!1):(p(!0),requestAnimationFrame(()=>f.current?.focus()))},disabled:l,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:l?"not-allowed":"pointer",transition:"background 0.12s"},onMouseEnter:e=>{l||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)(j.S,{size:12,"aria-hidden":"true"}),d("tasks.planReviewSuggest")]}),(0,n.jsxs)("button",{type:"button",onClick:()=>{p(!1),i()},disabled:l,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:l?"not-allowed":"pointer"},onMouseEnter:e=>{l||(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)(nH.f,{size:12,"aria-hidden":"true"}),d("tasks.planReviewExit")]}),(0,n.jsx)("button",{type:"button",onClick:a,disabled:l,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:l?"not-allowed":"pointer",borderRadius:5},onMouseEnter:e=>{l||(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 nU=o(19336);let n_={idle:"#6b7280",running:"#10b981",paused:"#d97706",blocked:"#ea580c",budget_limited:"#ef4444",complete:"#6b7280"},nq=new Set(["paused","blocked"]);function nV(e){let t=Math.abs(e);return t>=1e6?`${(e/1e6).toFixed(2)}M`:t>=1e3?`${(e/1e3).toFixed(1)}K`:`${e}`}function nK(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 nG({goalState:e,onPause:t,onResume:o,onStop:s,onEdit:i}){let{t:a}=(0,F.s)(),[l,d]=(0,r.useState)(!1),[c,p]=(0,r.useState)(""),u=(0,r.useRef)(null),[h,g]=(0,r.useState)(()=>Date.now());if((0,r.useEffect)(()=>{if("running"!==e.status)return;let t=setInterval(()=>g(Date.now()),1e3);return()=>clearInterval(t)},[e.status]),(0,r.useEffect)(()=>{l&&u.current&&(u.current.focus(),u.current.select())},[l]),"idle"===e.status||"complete"===e.status)return null;let m=n_[e.status]??"var(--text-muted)",f="running"===e.status,x=nq.has(e.status),k="running"===e.status,v=e.timeUsedSeconds??0;k&&e.startedAt&&(v=Math.floor((h-e.startedAt)/1e3));let y=null!=e.tokenBudget?`${nV(e.tokensUsed)}/${nV(e.tokenBudget)}`:nV(e.tokensUsed),b=()=>{d(!1),p("")},w=()=>{let t=c.trim();t&&t!==e.goalText?(i(t),d(!1),p("")):b()},j=(e,t,o)=>(0,n.jsx)("button",{type:"button",onClick:t,style:{padding:"3px 9px",borderRadius:5,border:`1px solid ${o?"var(--accent)":"var(--border)"}`,background:o?"var(--accent)":"var(--bg)",color:o?"#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 ${m}55`,borderBottom:`1px solid ${m}55`,background:`color-mix(in srgb, ${m} 5%, transparent)`,minWidth:0},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0},children:[(0,n.jsx)(nU.d,{size:13,weight:"fill",color:m,"aria-hidden":"true"}),(0,n.jsx)("span",{title:nK(e.status),style:{flexShrink:0,width:8,height:8,borderRadius:"50%",background:m}}),(0,n.jsx)("span",{style:{flexShrink:0,fontSize:11,fontFamily:"var(--font-mono)",color:m,textTransform:"uppercase",letterSpacing:.4},children:nK(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 o=Math.floor(t/60);if(o<60)return`${o}m`;let n=Math.floor(o/60),r=o%60;if(n>=24){let e=Math.floor(n/24);return`${e}d ${n%24}h`}return 0===r?`${n}h`:`${n}h ${r}m`}(v)," \xb7 ",y,"t",null!=e.tokenBudget?" \xb7 "+a("desktop.goalBudget"):""]}),(0,n.jsxs)("div",{style:{display:"flex",gap:4,flexShrink:0},children:[f&&j(a("desktop.goalPauseShort"),t,!1),x&&j(a("desktop.goalResumeShort"),o,!0),!l&&j(a("desktop.goalEdit"),()=>{p(e.goalText??""),d(!0)},!1),j("✕",s,!1)]})]}),l?(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[(0,n.jsx)("textarea",{ref:u,value:c,onChange:e=>p(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.metaKey||e.ctrlKey)?(e.preventDefault(),w()):"Escape"===e.key&&(e.preventDefault(),b())},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:[j(a("desktop.goalCancel"),b,!1),j(a("desktop.goalSave"),w,!0)]}),(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",fontFamily:"var(--font-mono)"},children:a("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??a("desktop.goalRunning")}),k&&(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:[a("desktop.goalTurns"),": ",e.turnsUsed,"/",e.turnsLimit]}),e.noProgressTurns>0&&(0,n.jsx)("span",{children:a("desktop.goalNoProgress",{n:e.noProgressTurns})})]})]})]})}var nJ=o(77229);function nY({request:e,queuedCount:t=0,busy:o=!1,onResolve:s}){let{t:i}=(0,F.s)(),[a,l]=(0,r.useState)(""),d=(0,r.useRef)(null),[c,u]=(0,r.useState)(!1);if((0,r.useEffect)(()=>{e&&(l(""),u(!1))},[e?.id]),!e)return null;let g=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),m=g.length>4e3;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":"false","aria-label":"工具调用审批",style:{pointerEvents:"auto",width:"min(380px, 100%)",maxHeight:"min(60vh, 400px)",display:"flex",flexDirection:"column",background:"var(--bg-panel)",border:"1px solid color-mix(in srgb, #f59e0b 32%, var(--border))",borderRadius:12,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",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)(nJ.Z,{size:18,weight:"fill",color:"var(--accent)","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:[i("approval.title"),t>0&&(0,n.jsxs)("span",{style:{marginLeft:8,fontSize:11,fontWeight:500,color:"var(--text-muted)"},children:["+",t," ",i("approval.queued")]})]}),(0,n.jsx)("div",{style:{fontSize:11.5,color:"var(--text-muted)",marginTop:1},children:i("approval.subtitle")})]}),(0,n.jsx)("button",{type:"button","aria-label":i("i18n.close"),onClick:()=>s(!1,"Dismissed"),disabled:o,style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,background:"none",border:"none",borderRadius:6,color:"var(--text-muted)",cursor:o?"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)(p.u,{size:14,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{padding:"14px 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}),e.args&&"object"==typeof e.args&&"command"in e.args?(0,n.jsx)("span",{style:{fontSize:11.5,color:"var(--text-muted)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:String(e.args.command??"")}):null]}),(0,n.jsx)("div",{style:{background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"10px 12px",maxHeight:220,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:m?`${g.slice(0,4e3)}
27
- …`:g})}),c&&(0,n.jsx)("textarea",{ref:d,value:a,onChange:e=>l(e.target.value),placeholder:i("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.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6,padding:"10px 14px",borderTop:"1px solid var(--border)"},children:[(0,n.jsxs)("button",{type:"button",onClick:()=>s(!0),disabled:o,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:"100%",padding:"9px 14px",borderRadius:8,background:"var(--accent)",color:"#fff",border:"none",fontSize:12.5,fontWeight:650,cursor:o?"not-allowed":"pointer",transition:"opacity 0.12s"},onMouseEnter:e=>{o||(e.currentTarget.style.opacity="0.88")},onMouseLeave:e=>{e.currentTarget.style.opacity="1"},children:[(0,n.jsx)(h.S,{size:14,weight:"bold","aria-hidden":"true"}),i("approval.allow")]}),(0,n.jsxs)("button",{type:"button",onClick:()=>{u(e=>!e),c||requestAnimationFrame(()=>d.current?.focus())},disabled:o,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:"100%",padding:"9px 14px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12.5,fontWeight:550,cursor:o?"not-allowed":"pointer",transition:"background 0.12s"},onMouseEnter:e=>{o||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:[(0,n.jsx)(p.u,{size:13,"aria-hidden":"true"}),i(c?"approval.hideReason":"approval.denyWithReason")]}),(0,n.jsx)("button",{type:"button",onClick:()=>s(!1,a.trim()||void 0),disabled:o,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:"100%",padding:"8px 14px",borderRadius:8,background:"none",border:"none",color:"var(--text-muted)",fontSize:12,cursor:o?"not-allowed":"pointer"},onMouseEnter:e=>{o||(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("approval.deny")})]})]})})}let nX="pi:create-task-from-text",nZ=null,nQ="pi-process-display-mode",n0="tabs",n1="pi-process-display-mode-change";function n2(){let e=window.localStorage.getItem(nQ);return"timeline"===e||"tabs"===e?e:n0}function n4(e){let t=t=>{t.key===nQ&&e()};return window.addEventListener(n1,e),window.addEventListener("storage",t),()=>{window.removeEventListener(n1,e),window.removeEventListener("storage",t)}}function n6(){return n0}function n8(e,t){if(!e)return!1;let o=new Set(t.map(e=>e.toLowerCase()));return Object.keys(e).some(e=>o.has(e.toLowerCase()))}function n5(e,t){if(!e)return;let o=new Set(t.map(e=>e.toLowerCase()));for(let[t,n]of Object.entries(e)){if(!o.has(t.toLowerCase())||"string"!=typeof n)continue;let e=n.trim();if(e)return e}}function n3(e){return"object"==typeof e&&null!==e?e:{}}function n7(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 n9(e){if(0!==e.length)return 1===new Set(e).size?e[0]:"edit"}function re(e){if(Array.isArray(e))return n9(e.map(e=>n7(n3(e).type||n3(e).status||n3(e).changeType)).filter(e=>!!e))}function rt(e){if(!e)return;let t=(e.match(/^\*\*\* Add File:/gm)||[]).length,o=(e.match(/^\*\*\* Delete File:/gm)||[]).length,n=(e.match(/^\*\*\* (Update File|Move to):/gm)||[]).length;if(t||o||n){let e=[];if(t)for(let o=0;o<t;o++)e.push("create");if(o)for(let t=0;t<o;t++)e.push("delete");if(n)for(let t=0;t<n;t++)e.push("edit");return n9(e)}return/^@@ -0,0 \+\d+/m.test(e)?"create":/^@@ -\d+(?:,\d+)? \+0,0/m.test(e)?"delete":void 0}function ro(e){let t=n5(e.args,["path","file","filePath","filepath"]);if(t)return t;let o=n5(e.metadata,["relativePath","filePath","filepath","path","file"]);if(o)return o;let n=n5(Array.isArray(e.metadata?.files)?n3(e.metadata.files[0]):{},["relativePath","filePath","filepath","path","file"]);if(n)return n}function rn(e){return e.split(/[\\/]/).filter(Boolean).pop()||e}let rr=new Set(["cd","chdir","pwd","echo","set","export","source",".","pushd","popd","dirs"]),rs=new Set(["timeout"]),ri=new Set(["ls","dir","ll","la","l","tree","eza","exa"]),ra=new Set(["rg","grep","egrep","fgrep","ack","ag","ripgrep"]),rl=new Set(["find","fd","fdfind","locate","mlocate","glob"]),rd=new Set(["cat","head","tail","less","more","bat","nl","wc"]),rc=new Set(["curl","wget","fetch","http","xh","httpx"]),rp=new Set(["rm","del","rmdir","unlink","erase"]),ru=new Set(["cp","mv","copy","move","rename","ren"]);var rh=o(36705),rg=o(94366),rm=o(66129),rf=o(2152),rx=o(59304),rk=o(8727),rv=o(60721),ry=o(47208),rb=o(95951),rw=o(29886),rj=o(86756);function rS(e,t){var o,n,r;let s,i,a,l,d,c,p,u,h,g="string"==typeof(l=e.input.label)&&l.trim()?l:e.toolName;if("error"===e.status)return{displayLabel:g,iconName:"warning",tone:void 0};let m=(d=[(n=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}).toolName,n.title,n.label].filter(Boolean).join("\n").toLowerCase(),c=n8(o.args,["path","file","filePath","filepath"]),p=n8(o.args,["content","oldString","old_string","newString","new_string","patch","diff","edits","text"]),u=n8(o.args,["command","cmd","script"]),h=n8(o.args,["pattern","query"]),u||/\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&&p?"document_change":"ls"===(s=o.toolName.toLowerCase())||"list"===s||"dir"===s||s.startsWith("list_")||s.endsWith("_list")||s.includes("list_directory")||s.includes("list_dir")||/\b(ls|list\s*directory|list\s*dir|dir\s*list|listdir)\b/i.test(d)?"directory_list":"find"===(i=o.toolName.toLowerCase())||"glob"===i||"scan"===i||i.includes("file_search")||i.includes("file_find")||i.startsWith("find_")||i.startsWith("glob_")||i.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)||(a=o.toolName.toLowerCase()).includes("grep")||a.includes("search")||a.includes("fuzzy")||a.includes("ripgrep")||h&&!p&&!u?"document_search":/\b(read|view|open|cat|show|display)\b/i.test(d)||c&&!p&&!u?"document_read":void 0),f="toolbox";if("document_change"===m){let o,n,s,i=(n=n3((o=(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}).metadata||{}).filediff),s=function(e){if(!e)return{};try{return n3(JSON.parse(e))}catch{return{}}}(r.result),re(o.files)??re(s.files)??n7(o.type||o.status||o.changeType)??(!1===o.exists?"create":void 0)??(!0===o.exists?"edit":void 0)??rt("string"==typeof o.diff?o.diff:"")??rt("string"==typeof o.patch?o.patch:"")??rt("string"==typeof n.patch?n.patch:"")??rt("string"==typeof r.args?.patchText?r.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 n9(t.map(e=>e.startsWith("A ")?"create":e.startsWith("D ")?"delete":"edit"))}(r.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 r.args?.command?r.args.command:void 0)??"edit");f="create"===i?"filePlus":"delete"===i?"trash":"pencilSimpleLine";let a=t("create"===i?"desktop.processStepFileCreate":"delete"===i?"desktop.processStepFileDelete":"desktop.processStepFileEdit"),l=ro({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 l?{displayLabel:`${a} ${rn(l)}`,iconName:f,target:l,tone:m,typeLabel:a}:{displayLabel:`${a}: ${g}`.slice(0,100),iconName:f,tone:m,typeLabel:a}}if("document_read"===m){f="bookOpen";let o=t("desktop.processStepFileRead"),n=ro({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:`${o} ${rn(n)}`,iconName:f,target:n,tone:m,typeLabel:o}:{displayLabel:g,iconName:f,tone:m,typeLabel:o}}if("document_search"===m){f="magnifyingGlass";let o=t("desktop.processStepSearch"),n="string"==typeof e.input.pattern?e.input.pattern:"string"==typeof e.input.query?e.input.query:"";return n?{displayLabel:`${o} "${n.slice(0,60)}"`,iconName:f,tone:m,typeLabel:o}:{displayLabel:g,iconName:f,tone:m,typeLabel:o}}if("directory_list"===m){f="folder";let o=t("desktop.processStepList"),n=ro({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:`${o} ${rn(n)}`,iconName:f,target:n,tone:m,typeLabel:o}:{displayLabel:g,iconName:f,tone:m,typeLabel:o}}if("file_find"===m){f="magnifyingGlass";let o=t("desktop.processStepFind"),n="string"==typeof e.input.pattern?e.input.pattern:"string"==typeof e.input.glob?e.input.glob:"";return n?{displayLabel:`${o} "${n.slice(0,60)}"`,iconName:f,tone:m,typeLabel:o}:{displayLabel:g,iconName:f,tone:m,typeLabel:o}}if("command_execution"===m){let o="string"==typeof e.input.command?e.input.command:"string"==typeof e.input.cmd?e.input.cmd:"";if(o){let e=function(e){let t=e.split(/&&|\n|;(?!;)|(?<!\|)\|(?!\|)/),o=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 o=0;for(;o<t.length&&(rr.has(t[o].toLowerCase())||rs.has(t[o].toLowerCase()));){let e=t[o].toLowerCase();if((o+=1)<t.length&&["cd","chdir","pushd"].includes(e)&&(o+=1),"timeout"===e)for(;o<t.length&&(t[o].startsWith("-")||/^\d/.test(t[o]));)o++}if(o>=t.length)continue;let r=t[o].replace(/^[.\\/]+/,"").toLowerCase(),s=r.split(/[/\\]/).pop()||r,i=o+1;for(;i<t.length&&t[i].startsWith("-");)i+=1;let a=i<t.length?t[i]:void 0;if(ri.has(s))return{kind:"list",binary:s,argument:a};if(ra.has(s))return{kind:"search",binary:s,argument:a};if(rl.has(s))return{kind:"find",binary:s,argument:a};if(rd.has(s))return{kind:"read",binary:s,argument:a};if(rc.has(s))return{kind:"fetch",binary:s,argument:a};if(rp.has(s))return{kind:"delete",binary:s,argument:a};if(ru.has(s))return{kind:"copy",binary:s,argument:a};return{kind:"run",binary:s,argument:a}}return{kind:"run",binary:o}}(o);if("list"===e.kind){f="folder";let o=t("desktop.processStepList"),n=e.argument?` ${e.argument}`:"";return{displayLabel:`${o}${n}`,iconName:f,tone:m,typeLabel:o}}if("search"===e.kind){f="magnifyingGlass";let o=t("desktop.processStepSearch"),n=e.argument?` "${e.argument.slice(0,60)}"`:"";return{displayLabel:`${o}${n}`,iconName:f,tone:m,typeLabel:o}}if("find"===e.kind){f="magnifyingGlass";let o=t("desktop.processStepFind"),n=e.argument?` "${e.argument.slice(0,60)}"`:"";return{displayLabel:`${o}${n}`,iconName:f,tone:m,typeLabel:o}}if("read"===e.kind){f="bookOpen";let o=t("desktop.processStepRead"),n=e.argument?` ${e.argument}`:"";return{displayLabel:`${o}${n}`,iconName:f,tone:m,typeLabel:o,target:e.argument||void 0}}if("fetch"===e.kind){f="download";let o=t("desktop.processStepFetch"),n=e.argument?` ${e.argument.slice(0,80)}`:"";return{displayLabel:`${o}${n}`,iconName:f,tone:m,typeLabel:o}}if("delete"===e.kind){f="trash";let o=t("desktop.processStepDelete"),n=e.argument?` ${e.argument}`:"";return{displayLabel:`${o}${n}`,iconName:f,tone:m,typeLabel:o}}if("copy"===e.kind){f="copy";let o=t("desktop.processStepCopy"),n=e.argument?` ${e.argument}`:"";return{displayLabel:`${o}${n}`,iconName:f,tone:m,typeLabel:o}}f="terminal";let n=t("desktop.processStepCommand"),r=e.argument?`${e.binary} ${e.argument.length>60?e.argument.slice(0,57)+"...":e.argument}`:e.binary;return{displayLabel:`${n} ${r}`,iconName:f,tone:m,typeLabel:n}}return{displayLabel:g,iconName:f="terminal",tone:m}}return"todo_update"===m?{displayLabel:g,iconName:f="checklist",tone:m,typeLabel:t("desktop.processStepTodo")}:{displayLabel:g,iconName:f,tone:m}}function rC({expanded:e}){return(0,n.jsx)(v.J,{size:12,className:`shrink-0 transition-all duration-150 ${e?"rotate-90":""}`})}function rT(e,t=14){switch(e){case"brain":return(0,n.jsx)(rh.$,{size:t});case"bookOpen":return(0,n.jsx)(rg.R,{size:t});case"magnifyingGlass":return(0,n.jsx)(c.$,{size:t});case"pencilSimpleLine":return(0,n.jsx)(ry.B,{size:t});case"filePlus":return(0,n.jsx)(q.u,{size:t});case"trash":return(0,n.jsx)(S.u,{size:t});case"folder":return(0,n.jsx)(rx.sj,{size:t});case"download":return(0,n.jsx)(I.e,{size:t});case"copy":return(0,n.jsx)(rf.t,{size:t});case"terminal":return(0,n.jsx)(rw.k,{size:t});case"toolbox":default:return(0,n.jsx)(rj.D,{size:t});case"image":return(0,n.jsx)(rk.x,{size:t});case"listBullets":case"checklist":return(0,n.jsx)(rv.j,{size:t});case"warning":case"circleX":return(0,n.jsx)(nc.M,{size:t})}}function rR({step:e,ts:t}){if("thinking"===e.kind)return rT("brain");if("image"===e.kind)return rT("image");if("custom"===e.kind)return rT("listBullets");if("toolGroup"===e.kind)return rT(e.iconName);let{iconName:o}=rS(e.block,t);return rT(o)}function rz({targets:e,typeLabel:t,count:o,label:r}){if(0===e.length)return(0,n.jsx)("span",{className:"max-w-52 truncate",title:r,children:r});if(2===e.length)return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"shrink-0",children:t}),(0,n.jsx)(rI,{filePath:e[0]}),(0,n.jsx)(rI,{filePath:e[1]})]});let s=e[0].split(".").pop()?.toLowerCase()||"",i=[],a=new Set([s]);for(let t=1;t<e.length&&i.length<2;t++){let o=e[t].split(".").pop()?.toLowerCase()||"";a.has(o)||(a.add(o),i.push({key:e[t],node:er(e[t],12)}))}return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"shrink-0",children:t}),i.length>0&&(0,n.jsx)("span",{className:"shrink-0 inline-flex gap-px",children:i.map(e=>(0,n.jsx)("span",{className:"inline-flex",children:e.node},e.key))}),(0,n.jsx)(rI,{filePath:e[0]}),(0,n.jsxs)("span",{className:"shrink-0 text-[10px] tabular-nums text-text-dim",children:["+",o-1]})]})}function rI({filePath:e}){let t=e.split(/[\\/]/).filter(Boolean).pop()||e;return(0,n.jsxs)("span",{className:"process-file-tag",title:e,children:[er(e,12),(0,n.jsx)("span",{children:t})]})}function rM({mode:e}){return"timeline"===e?(0,n.jsx)(rb.D,{size:14}):(0,n.jsx)(rm.j,{size:14})}function rP({step:e,cwd:t,onOpenFile:o,sessionId:r,ts:s,isStreaming:i}){let a;if("thinking"===e.kind)return(0,n.jsx)(rE,{blocks:e.blocks,cwd:t,onOpenFile:o,sessionId:r,isStreaming:i});if("tool"===e.kind)return(0,n.jsxs)("div",{className:"space-y-2",children:[e.leadBlocks.length>0&&(0,n.jsx)(rE,{blocks:e.leadBlocks,cwd:t,onOpenFile:o,sessionId:r,isStreaming:i}),(0,n.jsx)(nz,{block:{type:"toolCall",toolCallId:e.block.toolCallId,toolName:e.block.toolName,input:e.block.input},result:e.block.result,duration:e.block.duration,processStyle:!0})]});if("toolGroup"===e.kind)return(0,n.jsx)("div",{className:"space-y-2",children:e.blocks.map((s,a)=>(0,n.jsxs)("div",{children:[e.leadBlocks[a]&&e.leadBlocks[a].length>0&&(0,n.jsx)("div",{className:"mb-2",children:(0,n.jsx)(rE,{blocks:e.leadBlocks[a],cwd:t,onOpenFile:o,sessionId:r,isStreaming:i})}),(0,n.jsx)(nz,{block:{type:"toolCall",toolCallId:s.toolCallId,toolName:s.toolName,input:s.input},result:s.result,duration:s.duration,processStyle:!0})]},s.id))});if("custom"===e.kind)return(0,n.jsx)(ny,{message:e.block.message,cwd:t,onOpenFile:o,isStreaming:i});let l="url"===(a=e.block.source).type?a.url:a.data?`data:${a.media_type??"image/png"};base64,${a.data}`:void 0;return l?(0,n.jsx)("img",{src:l,alt:s("desktop.processOutput"),className:"max-h-72 max-w-full rounded border border-border object-contain"}):null}function rE({blocks:e,cwd:t,onOpenFile:o,sessionId:r,isStreaming:s}){return(0,n.jsx)("div",{className:"space-y-2 pr-2",children:e.map(e=>"text"===e.type?(0,n.jsx)(oJ,{cwd:t,onOpenFile:o,className:"!text-text-dim",isStreaming:s,children:e.text},e.id):(0,n.jsx)(nT,{block:{type:"thinking",thinking:e.thinking,deferred:e.deferred},sessionId:r,entryId:e.origin.sourceEntryId,blockIndex:e.origin.sourceBlockIndex??0,contentOnly:!0,cwd:t,onOpenFile:o,className:"!text-text-dim",isStreaming:s},e.id))})}function rF({blocks:e,isStreaming:t,defaultExpanded:o=!1,onAutoExpanded:s,cwd:i,onOpenFile:a,sessionId:l,tokenRate:d=null}){let c,{t:p}=(0,F.s)(),u=(0,r.useCallback)(e=>p(e),[p]),h=(0,r.useMemo)(()=>(function(e,t,o=!1){let n=[],r=[],s=()=>{0!==r.length&&(n.push({kind:"thinking",id:r.map(e=>e.id).join("+"),label:t("desktop.processStepThinking"),blocks:r}),r=[])};for(let o of e){if("thinking"===o.type||"text"===o.type){r.push(o);continue}if("toolCall"===o.type){let{displayLabel:e}=rS(o,t);n.push({kind:"tool",id:o.id,label:e,block:o,leadBlocks:r}),r=[];continue}s(),"custom"===o.type?n.push({kind:"custom",id:o.id,label:o.customType.replace(/[_-]+/g," ").replace(/\b\w/g,e=>e.toUpperCase()),block:o}):"image"===o.type&&n.push({kind:"image",id:o.id,label:t("desktop.processOutput"),block:o})}s();try{return function(e,t,o){if(e.length<2)return e;let n=[],r=0;for(;r<e.length;){let s,i=e[r];if("tool"!==i.kind||"error"===i.block.status){n.push(i),r++;continue}let a=rS(i.block,t).tone;if(!a){n.push(i),r++;continue}let l=r+1;for(;l<e.length&&"tool"===e[l].kind;){let o=e[l];if("error"===o.block.status||rS(o.block,t).tone!==a)break;l++}if(o&&l===e.length&&l>r+1&&l--,l-r<2){n.push(i),r++;continue}let d=e.slice(r,l),c=d.map(e=>rS(e.block,t)),p=c[0].iconName,u=c[0].typeLabel||"",h=d.map(e=>e.block),g=c.map(e=>e.displayLabel),m=c.map(e=>e.target||""),f=c.map(e=>{if(e.target)return rn(e.target);let t=e.displayLabel;return e.typeLabel&&t.startsWith(e.typeLabel+" ")?t.slice(e.typeLabel.length+1):t}),x=new Set,k=new Set,v=[],y=[];for(let e=0;e<f.length;e++){let t=f[e];x.has(t)||(x.add(t),v.push(t));let o=m[e];o&&!k.has(o)&&(k.add(o),y.push(o))}let b=d.length;s=2===b&&2===v.length?`${u} ${v[0]}, ${v[1]}`:1===v.length?1===b?`${u} ${v[0]}`:`${u} ${v[0]} \xd7${b}`:2===v.length?`${u} ${v[0]}, ${v[1]}`:`${u} ${v[0]} +${v.length-1}`,n.push({kind:"toolGroup",id:h.map(e=>e.id).join("+"),label:s,blocks:h,leadBlocks:d.map(e=>e.leadBlocks),iconName:p,tone:a,typeLabel:u,targetLabels:g,targets:y}),r=l}return n}(n,t,o)}catch(e){return console.error("[ProcessGroup] mergeConsecutiveToolSteps crashed:",e),n}})(e,u,t),[e,u,t]),[g,m]=(0,r.useState)(t||o),[f,x]=(0,r.useState)({}),{displayMode:k,setDisplayMode:v}={displayMode:(0,r.useSyncExternalStore)(n4,n2,n6),setDisplayMode:(0,r.useCallback)(e=>{window.localStorage.setItem(nQ,e),window.dispatchEvent(new Event(n1))},[])},[y,b]=(0,r.useState)(0),[w,j]=(0,r.useState)(!1),[S,C]=(0,r.useState)(!1),T=(0,r.useRef)(null),R=(0,r.useRef)(!1),z=(0,r.useRef)(!1),I=(0,r.useRef)(!1),M=(0,r.useRef)(!1),P=(0,r.useRef)(0);(0,r.useEffect)(()=>{if(t){R.current=!0,m(!0);return}if(!R.current)return;M.current=!1,x({});let e=window.setTimeout(()=>m(!1),300);return R.current=!1,()=>window.clearTimeout(e)},[t]),(0,r.useEffect)(()=>{if(o&&!t&&!I.current&&h.length>0){let e=h[h.length-1];I.current=!0,x({[e.id]:!0}),window.requestAnimationFrame(()=>s?.())}},[o,t,s,h]),(0,r.useEffect)(()=>{if(0===h.length)return;let e=h[h.length-1];b(e=>z.current&&e<h.length?e:h.length-1),t&&x(t=>!0===t[e.id]&&1===Object.keys(t).length?t:{[e.id]:!0})},[t,h]);let E=(0,r.useCallback)(()=>{let e=T.current;e&&(j(t=>{let o=e.scrollTop>0;return t===o?t:o}),C(t=>{let o=e.scrollHeight-e.scrollTop-e.clientHeight>1;return t===o?t:o}))},[]),D=(0,r.useCallback)(()=>{if(Date.now()<P.current)return;let e=T.current;e&&(M.current=e.scrollHeight-e.scrollTop-e.clientHeight>4)},[]);if((0,r.useEffect)(()=>{let e=T.current;if(!e||!g)return;let t=new ResizeObserver(E);return e.addEventListener("scroll",E,{passive:!0}),t.observe(e),e.firstElementChild&&t.observe(e.firstElementChild),E(),()=>{e.removeEventListener("scroll",E),t.disconnect()}},[y,g,k,t,f,h.length,E]),(0,r.useEffect)(()=>{let e=T.current;if(e&&g)return e.addEventListener("scroll",D,{passive:!0}),()=>e.removeEventListener("scroll",D)},[g,k,D]),(0,r.useEffect)(()=>{t&&T.current&&(M.current||(P.current=Date.now()+100,T.current.scrollTop=T.current.scrollHeight,E()))},[e,t,E]),0===h.length)return null;let W=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),N=e.filter(e=>"thinking"===e.type||"text"===e.type).length,$=h.filter(e=>"custom"===e.kind).length,L=1===h.length&&"thinking"===h[0].kind&&!t,O=1===h.length&&("tool"===h[0].kind||"toolGroup"===h[0].kind)&&!t;if(t)c=p("desktop.processWorking");else if(L){let e=function(e){let t;if("thinking"===e.kind){for(let o of e.blocks)"thinking"===o.type&&"number"==typeof o.duration&&(t=(t??0)+o.duration);return t}}(h[0]);c=void 0!==e?p("desktop.processThoughtDone",{duration:e}):p("desktop.processThoughtDoneNoDuration")}else if(O){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,o=rS(t,u),n=t.duration;c=void 0!==n?`${o.displayLabel} ${n}s`:o.displayLabel}}else{let e=[];if(W){let t=1===W?p("desktop.processToolCount",{count:W}):p("desktop.processToolsCount",{count:W});e.push(A>0?t+p("desktop.processFailedCount",{failed:A}):t)}N&&e.push(1===N?p("desktop.processThoughtCount",{count:N}):p("desktop.processThoughtsCount",{count:N})),$&&e.push(1===$?p("desktop.processCustomCount",{count:$}):p("desktop.processCustomsCount",{count:$})),c=e.length>0?p("desktop.processUsed",{summary:e.join(" \xb7 ")}):p("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:()=>m(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":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:p("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)(rC,{expanded:!1})})]}),!L&&(0,n.jsx)("button",{type:"button",onClick:()=>{v("timeline"===k?"tabs":"timeline"),m(!0)},className:"shrink-0 p-1 text-text-dim opacity-0 transition-colors hover:text-text group-hover/summary-row:opacity-100",title:"timeline"===k?p("desktop.processTabMode"):p("desktop.processTimelineMode"),children:(0,n.jsx)(rM,{mode:k})})]}),g&&(0,n.jsx)("div",{className:"overflow-hidden",children:L?(0,n.jsxs)("div",{className:"relative mt-2",children:[(0,n.jsx)("div",{ref:T,className:"max-h-[280px] overflow-y-auto pr-2",children:(0,n.jsx)(rP,{step:h[0],cwd:i,onOpenFile:a,sessionId:l,ts:u,isStreaming:t})}),w&&(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"===k?(0,n.jsxs)("div",{className:"relative mt-2",children:[w&&(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:T,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,o)=>{let r=f[e.id]??!1,s="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?rS(e.block,u):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:[o<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:()=>s&&x(t=>({...t,[e.id]:!r})),className:`flex w-full min-w-0 items-center gap-1.5 text-left text-sm leading-relaxed transition-colors ${s?"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)(rR,{step:e,ts:u})}),"toolGroup"===e.kind&&e.targets.length>0?(0,n.jsx)(rz,{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)(rI,{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:p("desktop.processFailedStep")}),s&&(0,n.jsx)("span",{className:`ml-0.5 shrink-0 opacity-0 transition-opacity group-hover/step:opacity-50 ${r?"rotate-90":""}`,children:(0,n.jsx)(rC,{expanded:!1})})]}),r&&s&&(0,n.jsx)("div",{className:"ml-5 mt-1.5 overflow-hidden",children:(0,n.jsx)(rP,{step:e,cwd:i,onOpenFile:a,sessionId:l,ts:u,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,o)=>{let r="tool"===e.kind&&"error"===e.block.status||"toolGroup"===e.kind&&e.blocks.some(e=>"error"===e.status),s="tool"===e.kind?rS(e.block,u):null,i="toolGroup"!==e.kind&&s?.target!==void 0&&s?.typeLabel!==void 0,a=t&&o===h.length-1,l=y===o;return(0,n.jsxs)("button",{type:"button",onClick:()=>{o===h.length-1&&t?(z.current=!1,M.current=!1):z.current=!0,b(o)},"data-has-file-target":i?"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 ${l?r?"process-tab-error":"process-tab-active":"text-text-dim hover:text-text"}${a?" process-tab-streaming":""}`,children:[(0,n.jsx)(rR,{step:e,ts:u}),"toolGroup"===e.kind&&e.targets.length>0?(0,n.jsx)(rz,{targets:e.targets,typeLabel:e.typeLabel,count:e.blocks.length,label:e.label}):i?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"shrink-0",children:s.typeLabel}),(0,n.jsx)(rI,{filePath:s.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:T,className:"max-h-[280px] overflow-y-auto pr-2",children:h[y]&&(0,n.jsx)(rP,{step:h[y],cwd:i,onOpenFile:a,sessionId:l,ts:u,isStreaming:t})}),w&&(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"})]})]})})]})}let rD=new Map;function rW(e){var t;return{value:e.value,images:e.images.map(e=>({...e})),pastedBlocks:(t=e.pastedBlocks)?t.map(e=>({...e})):void 0}}function rA(e){let t=rD.get(e);return t?rW(t):null}function rN(e,t){if(!t.value&&0===t.images.length)return void rD.delete(e);for(rD.delete(e),rD.set(e,rW(t));rD.size>100;){let e=rD.keys().next().value;if(void 0===e)break;rD.delete(e)}}function r$(e){let t=e.trim();if(!t.startsWith("file://"))return t;try{let e=new URL(t),o=decodeURIComponent(e.pathname);return/^\/[a-zA-Z]:[\\/]/.test(o)?o=o.slice(1):e.host&&"localhost"!==e.host&&(o=`//${e.host}${o}`),o}catch{let e=t.replace(/^file:\/\/(localhost)?/,"");try{e=decodeURIComponent(e)}catch{}return/^\/[a-zA-Z]:[\\/]/.test(e)&&(e=e.slice(1)),e}}let rL=["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 rO(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 o=function(e){if(!e||e.length%4!=0)return null;let t=e.endsWith("==")?2:+!!e.endsWith("="),o=e.length-t,n=null;for(let t=0;t<o;t+=1){var r;let o=(r=e.charCodeAt(t))>=65&&r<=90?r-65:r>=97&&r<=122?r-97+26:r>=48&&r<=57?r-48+52:43===r?62:47===r?63:null;if(null===o)return null;n=o}for(let t=o;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!==o&&o<=0xa00000}function rH(e){let t=/(?:^|\s)@"([^"\n]*)$/.exec(e);if(t)return{start:e.length-(t[1].length+2),query:t[1],quoted:!0};let o=/(?:^|\s)@([^\s"]*)$/.exec(e);return o?{start:e.length-(o[1].length+1),query:o[1],quoted:!1}:null}function rB(e){let t=0;for(let o=0;o<e.length;o++)"/"===e[o]&&t++;return t}function rU(e,t){if(!e)return!0;let o=0;for(let n=0;n<t.length&&o<e.length;n++)t[n]===e[o]&&o++;return o===e.length}function r_(e,t){let o=t?`${e}/`:e;return o.includes(" ")?`@"${o}" `:`@${o} `}var rq=o(23084),rV=o(70312),rK=o(37597),rG=o(49560),rJ=o(21163),rY=o(4615),rX=o(25248),rZ=o(58506),rQ=o(41789),r0=o(87124),r1=o(65098),r2=o(93587);function r4(e,t,o){let s=({size:r=16,style:s})=>(0,n.jsxs)("svg",{fill:t.fill,fillRule:t.fillRule,height:r,style:{flex:"none",lineHeight:1,...s},viewBox:"0 0 24 24",width:r,xmlns:"http://www.w3.org/2000/svg",children:[(0,n.jsx)("title",{children:e}),o]});return s.displayName=`${e}Icon`,(0,r.memo)(s)}let r6=r4("Anthropic",{fill:"currentColor",fillRule:"evenodd"},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M13.827 3.52h3.603L24 20h-3.603l-6.57-16.48zm-7.258 0h3.767L16.906 20h-3.674l-1.343-3.461H5.017l-1.344 3.46H0L6.57 3.522zm4.132 9.959L8.453 7.687 6.205 13.48H10.7z"})})),r8=r4("OpenAI",{fill:"currentColor",fillRule:"evenodd"},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M9.205 8.658v-2.26c0-.19.072-.333.238-.428l4.543-2.616c.619-.357 1.356-.523 2.117-.523 2.854 0 4.662 2.212 4.662 4.566 0 .167 0 .357-.024.547l-4.71-2.759a.797.797 0 00-.856 0l-5.97 3.473zm10.609 8.8V12.06c0-.333-.143-.57-.429-.737l-5.97-3.473 1.95-1.118a.433.433 0 01.476 0l4.543 2.617c1.309.76 2.189 2.378 2.189 3.948 0 1.808-1.07 3.473-2.76 4.163zM7.802 12.703l-1.95-1.142c-.167-.095-.239-.238-.239-.428V5.899c0-2.545 1.95-4.472 4.591-4.472 1 0 1.927.333 2.712.928L8.23 5.067c-.285.166-.428.404-.428.737v6.898zM12 15.128l-2.795-1.57v-3.33L12 8.658l2.795 1.57v3.33L12 15.128zm1.796 7.23c-1 0-1.927-.332-2.712-.927l4.686-2.712c.285-.166.428-.404.428-.737v-6.898l1.974 1.142c.167.095.238.238.238.428v5.233c0 2.545-1.974 4.472-4.614 4.472zm-5.637-5.303l-4.544-2.617c-1.308-.761-2.188-2.378-2.188-3.948A4.482 4.482 0 014.21 6.327v5.423c0 .333.143.571.428.738l5.947 3.449-1.95 1.118a.432.432 0 01-.476 0zm-.262 3.9c-2.688 0-4.662-2.021-4.662-4.519 0-.19.024-.38.047-.57l4.686 2.71c.286.167.571.167.856 0l5.97-3.448v2.26c0 .19-.07.333-.237.428l-4.543 2.616c-.619.357-1.356.523-2.117.523zm5.899 2.83a5.947 5.947 0 005.827-4.756C22.287 18.339 24 15.84 24 13.296c0-1.665-.713-3.282-1.998-4.448.119-.5.19-.999.19-1.498 0-3.401-2.759-5.947-5.946-5.947-.642 0-1.26.095-1.88.31A5.962 5.962 0 0010.205 0a5.947 5.947 0 00-5.827 4.757C1.713 5.447 0 7.945 0 10.49c0 1.666.713 3.283 1.998 4.448-.119.5-.19 1-.19 1.499 0 3.401 2.759 5.946 5.946 5.946.642 0 1.26-.095 1.88-.309a5.96 5.96 0 004.162 1.713z"})})),r5=r4("Google",{},(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("path",{d:"M23 12.245c0-.905-.075-1.565-.236-2.25h-10.54v4.083h6.186c-.124 1.014-.797 2.542-2.294 3.569l-.021.136 3.332 2.53.23.022C21.779 18.417 23 15.593 23 12.245z",fill:"#4285F4"}),(0,n.jsx)("path",{d:"M12.225 23c3.03 0 5.574-.978 7.433-2.665l-3.542-2.688c-.948.648-2.22 1.1-3.891 1.1a6.745 6.745 0 01-6.386-4.572l-.132.011-3.465 2.628-.045.124C4.043 20.531 7.835 23 12.225 23z",fill:"#34A853"}),(0,n.jsx)("path",{d:"M5.84 14.175A6.65 6.65 0 015.463 12c0-.758.138-1.491.361-2.175l-.006-.147-3.508-2.67-.115.054A10.831 10.831 0 001 12c0 1.772.436 3.447 1.197 4.938l3.642-2.763z",fill:"#FBBC05"}),(0,n.jsx)("path",{d:"M12.225 5.253c2.108 0 3.529.892 4.34 1.638l3.167-3.031C17.787 2.088 15.255 1 12.225 1 7.834 1 4.043 3.469 2.197 7.062l3.63 2.763a6.77 6.77 0 016.398-4.572z",fill:"#EB4335"})]})),r3=r4("DeepSeek",{},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M23.748 4.482c-.254-.124-.364.113-.512.234-.051.039-.094.09-.137.136-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.156-.708-.311-.955-.65-.172-.241-.219-.51-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434 1.202-.422 1.84.027 1.436.633 2.58 1.838 3.393.137.093.172.187.129.323-.082.28-.18.552-.266.833-.055.179-.137.217-.329.14a5.526 5.526 0 01-1.736-1.18c-.857-.828-1.631-1.742-2.597-2.458a11.365 11.365 0 00-.689-.471c-.985-.957.13-1.743.388-1.836.27-.098.093-.432-.779-.428-.872.004-1.67.295-2.687.684a3.055 3.055 0 01-.465.137 9.597 9.597 0 00-2.883-.102c-1.885.21-3.39 1.102-4.497 2.623C.082 8.606-.231 10.684.152 12.85c.403 2.284 1.569 4.175 3.36 5.653 1.858 1.533 3.997 2.284 6.438 2.14 1.482-.085 3.133-.284 4.994-1.86.47.234.962.327 1.78.397.63.059 1.236-.03 1.705-.128.735-.156.684-.837.419-.961-2.155-1.004-1.682-.595-2.113-.926 1.096-1.296 2.746-2.642 3.392-7.003.05-.347.007-.565 0-.845-.004-.17.035-.237.23-.256a4.173 4.173 0 001.545-.475c1.396-.763 1.96-2.015 2.093-3.517.02-.23-.004-.467-.247-.588zM11.581 18c-2.089-1.642-3.102-2.183-3.52-2.16-.392.024-.321.471-.235.763.09.288.207.486.371.739.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.167-1.361-.802-2.5-1.86-3.301-3.307-.774-1.393-1.224-2.887-1.298-4.482-.02-.386.093-.522.477-.592a4.696 4.696 0 011.529-.039c2.132.312 3.946 1.265 5.468 2.774.868.86 1.525 1.887 2.202 2.891.72 1.066 1.494 2.082 2.48 2.914.348.292.625.514.891.677-.802.09-2.14.11-3.054-.614zm1-6.44a.306.306 0 01.415-.287.302.302 0 01.2.288.306.306 0 01-.31.307.303.303 0 01-.304-.308zm3.11 1.596c-.2.081-.399.151-.59.16a1.245 1.245 0 01-.798-.254c-.274-.23-.47-.358-.552-.758a1.73 1.73 0 01.016-.588c.07-.327-.008-.537-.239-.727-.187-.156-.426-.199-.688-.199a.559.559 0 01-.254-.078c-.11-.054-.2-.19-.114-.358.028-.054.16-.186.192-.21.356-.202.767-.136 1.146.016.352.144.618.408 1.001.782.391.451.462.576.685.914.176.265.336.537.445.848.067.195-.019.354-.25.452z",fill:"#4D6BFE"})})),r7=r4("Groq",{fill:"currentColor",fillRule:"evenodd"},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M12.036 2c-3.853-.035-7 3-7.036 6.781-.035 3.782 3.055 6.872 6.908 6.907h2.42v-2.566h-2.292c-2.407.028-4.38-1.866-4.408-4.23-.029-2.362 1.901-4.298 4.308-4.326h.1c2.407 0 4.358 1.915 4.365 4.278v6.305c0 2.342-1.944 4.25-4.323 4.279a4.375 4.375 0 01-3.033-1.252l-1.851 1.818A7 7 0 0012.029 22h.092c3.803-.056 6.858-3.083 6.879-6.816v-6.5C18.907 4.963 15.817 2 12.036 2z"})})),r9=r4("Mistral",{},(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("path",{d:"M3.428 3.4h3.429v3.428H3.428V3.4zm13.714 0h3.43v3.428h-3.43V3.4z",fill:"gold"}),(0,n.jsx)("path",{d:"M3.428 6.828h6.857v3.429H3.429V6.828zm10.286 0h6.857v3.429h-6.857V6.828z",fill:"#FFAF00"}),(0,n.jsx)("path",{d:"M3.428 10.258h17.144v3.428H3.428v-3.428z",fill:"#FF8205"}),(0,n.jsx)("path",{d:"M3.428 13.686h3.429v3.428H3.428v-3.428zm6.858 0h3.429v3.428h-3.429v-3.428zm6.856 0h3.43v3.428h-3.43v-3.428z",fill:"#FA500F"}),(0,n.jsx)("path",{d:"M0 17.114h10.286v3.429H0v-3.429zm13.714 0H24v3.429H13.714v-3.429z",fill:"#E10500"})]})),se=r4("Moonshot",{fill:"currentColor",fillRule:"evenodd"},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M1.052 16.916l9.539 2.552a21.007 21.007 0 00.06 2.033l5.956 1.593a11.997 11.997 0 01-5.586.865l-.18-.016-.044-.004-.084-.009-.094-.01a11.605 11.605 0 01-.157-.02l-.107-.014-.11-.016a11.962 11.962 0 01-.32-.051l-.042-.008-.075-.013-.107-.02-.07-.015-.093-.019-.075-.016-.095-.02-.097-.023-.094-.022-.068-.017-.088-.022-.09-.024-.095-.025-.082-.023-.109-.03-.062-.02-.084-.025-.093-.028-.105-.034-.058-.019-.08-.026-.09-.031-.066-.024a6.293 6.293 0 01-.044-.015l-.068-.025-.101-.037-.057-.022-.08-.03-.087-.035-.088-.035-.079-.032-.095-.04-.063-.028-.063-.027a5.655 5.655 0 01-.041-.018l-.066-.03-.103-.047-.052-.024-.096-.046-.062-.03-.084-.04-.086-.044-.093-.047-.052-.027-.103-.055-.057-.03-.058-.032a6.49 6.49 0 01-.046-.026l-.094-.053-.06-.034-.051-.03-.072-.041-.082-.05-.093-.056-.052-.032-.084-.053-.061-.039-.079-.05-.07-.047-.053-.035a7.785 7.785 0 01-.054-.036l-.044-.03-.044-.03a6.066 6.066 0 01-.04-.028l-.057-.04-.076-.054-.069-.05-.074-.054-.056-.042-.076-.057-.076-.059-.086-.067-.045-.035-.064-.052-.074-.06-.089-.073-.046-.039-.046-.039a7.516 7.516 0 01-.043-.037l-.045-.04-.061-.053-.07-.062-.068-.06-.062-.058-.067-.062-.053-.05-.088-.084a13.28 13.28 0 01-.099-.097l-.029-.028-.041-.042-.069-.07-.05-.051-.05-.053a6.457 6.457 0 01-.168-.179l-.08-.088-.062-.07-.071-.08-.042-.049-.053-.062-.058-.068-.046-.056a7.175 7.175 0 01-.027-.033l-.045-.055-.066-.082-.041-.052-.05-.064-.02-.025a11.99 11.99 0 01-1.44-2.402zm-1.02-5.794l11.353 3.037a20.468 20.468 0 00-.469 2.011l10.817 2.894a12.076 12.076 0 01-1.845 2.005L.657 15.923l-.016-.046-.035-.104a11.965 11.965 0 01-.05-.153l-.007-.023a11.896 11.896 0 01-.207-.741l-.03-.126-.018-.08-.021-.097-.018-.081-.018-.09-.017-.084-.018-.094c-.026-.141-.05-.283-.071-.426l-.017-.118-.011-.083-.013-.102a12.01 12.01 0 01-.019-.161l-.005-.047a12.12 12.12 0 01-.034-2.145zm1.593-5.15l11.948 3.196c-.368.605-.705 1.231-1.01 1.875l11.295 3.022c-.142.82-.368 1.612-.668 2.365l-11.55-3.09L.124 10.26l.015-.1.008-.049.01-.067.015-.087.018-.098c.026-.148.056-.295.088-.442l.028-.124.02-.085.024-.097c.022-.09.045-.18.07-.268l.028-.102.023-.083.03-.1.025-.082.03-.096.026-.082.031-.095a11.896 11.896 0 011.01-2.232zm4.442-4.4L17.352 4.59a20.77 20.77 0 00-1.688 1.721l7.823 2.093c.267.852.442 1.744.513 2.665L2.106 5.213l.045-.065.027-.04.04-.055.046-.065.055-.076.054-.072.064-.086.05-.065.057-.073.055-.07.06-.074.055-.069.065-.077.054-.066.066-.077.053-.06.072-.082.053-.06.067-.074.054-.058.073-.078.058-.06.063-.067.168-.17.1-.098.059-.056.076-.071a12.084 12.084 0 012.272-1.677zM12.017 0h.097l.082.001.069.001.054.002.068.002.046.001.076.003.047.002.06.003.054.002.087.005.105.007.144.011.088.007.044.004.077.008.082.008.047.005.102.012.05.006.108.014.081.01.042.006.065.01.207.032.07.012.065.011.14.026.092.018.11.022.046.01.075.016.041.01L14.7.3l.042.01.065.015.049.012.071.017.096.024.112.03.113.03.113.032.05.015.07.02.078.024.073.023.05.016.05.016.076.025.099.033.102.036.048.017.064.023.093.034.11.041.116.045.1.04.047.02.06.024.041.018.063.026.04.018.057.025.11.048.1.046.074.035.075.036.06.028.092.046.091.045.102.052.053.028.049.026.046.024.06.033.041.022.052.029.088.05.106.06.087.051.057.034.053.032.096.059.088.055.098.062.036.024.064.041.084.056.04.027.062.042.062.043.023.017c.054.037.108.075.161.114l.083.06.065.048.056.043.086.065.082.064.04.03.05.041.086.069.079.065.085.071c.712.6 1.353 1.283 1.909 2.031L7.222.994l.062-.027.065-.028.081-.034.086-.035c.113-.045.227-.09.341-.131l.096-.035.093-.033.084-.03.096-.031c.087-.03.176-.058.264-.085l.091-.027.086-.025.102-.03.085-.023.1-.026L9.04.37l.09-.023.091-.022.095-.022.09-.02.098-.021.091-.02.095-.018.092-.018.1-.018.091-.016.098-.017.092-.014.097-.015.092-.013.102-.013.091-.012.105-.012.09-.01.105-.01c.093-.01.186-.018.28-.024l.106-.008.09-.005.11-.006.093-.004.1-.004.097-.002.099-.002.197-.002z"})})),st=r4("Minimax",{},(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("defs",{children:(0,n.jsxs)("linearGradient",{id:"pi-minimax-lobe-icons-minimax-_R_0_",x1:"0%",x2:"100.182%",y1:"50.057%",y2:"50.057%",children:[(0,n.jsx)("stop",{offset:"0%","stop-color":"#E2167E"}),(0,n.jsx)("stop",{offset:"100%","stop-color":"#FE603C"})]})}),(0,n.jsx)("path",{d:"M16.278 2c1.156 0 2.093.927 2.093 2.07v12.501a.74.74 0 00.744.709.74.74 0 00.743-.709V9.099a2.06 2.06 0 012.071-2.049A2.06 2.06 0 0124 9.1v6.561a.649.649 0 01-.652.645.649.649 0 01-.653-.645V9.1a.762.762 0 00-.766-.758.762.762 0 00-.766.758v7.472a2.037 2.037 0 01-2.048 2.026 2.037 2.037 0 01-2.048-2.026v-12.5a.785.785 0 00-.788-.753.785.785 0 00-.789.752l-.001 15.904A2.037 2.037 0 0113.441 22a2.037 2.037 0 01-2.048-2.026V18.04c0-.356.292-.645.652-.645.36 0 .652.289.652.645v1.934c0 .263.142.506.372.638.23.131.514.131.744 0a.734.734 0 00.372-.638V4.07c0-1.143.937-2.07 2.093-2.07zm-5.674 0c1.156 0 2.093.927 2.093 2.07v11.523a.648.648 0 01-.652.645.648.648 0 01-.652-.645V4.07a.785.785 0 00-.789-.78.785.785 0 00-.789.78v14.013a2.06 2.06 0 01-2.07 2.048 2.06 2.06 0 01-2.071-2.048V9.1a.762.762 0 00-.766-.758.762.762 0 00-.766.758v3.8a2.06 2.06 0 01-2.071 2.049A2.06 2.06 0 010 12.9v-1.378c0-.357.292-.646.652-.646.36 0 .653.29.653.646V12.9c0 .418.343.757.766.757s.766-.339.766-.757V9.099a2.06 2.06 0 012.07-2.048 2.06 2.06 0 012.071 2.048v8.984c0 .419.343.758.767.758.423 0 .766-.339.766-.758V4.07c0-1.143.937-2.07 2.093-2.07z",fill:"url(#pi-minimax-lobe-icons-minimax-_R_0_)","fill-rule":"nonzero"})]})),so=r4("Fireworks",{},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{"clip-rule":"evenodd",d:"M14.8 5l-2.801 6.795L9.195 5H7.397l3.072 7.428a1.64 1.64 0 003.038.002L16.598 5H14.8zm1.196 10.352l5.124-5.244-.699-1.669-5.596 5.739a1.664 1.664 0 00-.343 1.807 1.642 1.642 0 001.516 1.012L16 17l8-.02-.699-1.669-7.303.041h-.002zM2.88 10.104l.699-1.669 5.596 5.739c.468.479.603 1.189.343 1.807a1.643 1.643 0 01-1.516 1.012l-8-.018-.002.002.699-1.669 7.303.042-5.122-5.246z",fill:"#5019C5","fill-rule":"evenodd"})})),sn=r4("HuggingFace",{},(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("path",{d:"M2.25 11.535c0-3.407 1.847-6.554 4.844-8.258a9.822 9.822 0 019.687 0c2.997 1.704 4.844 4.851 4.844 8.258 0 5.266-4.337 9.535-9.687 9.535S2.25 16.8 2.25 11.535z",fill:"#FF9D0B"}),(0,n.jsx)("path",{d:"M11.938 20.086c4.797 0 8.687-3.829 8.687-8.551 0-4.722-3.89-8.55-8.687-8.55-4.798 0-8.688 3.828-8.688 8.55 0 4.722 3.89 8.55 8.688 8.55z",fill:"#FFD21E"}),(0,n.jsx)("path",{d:"M11.875 15.113c2.457 0 3.25-2.156 3.25-3.263 0-.576-.393-.394-1.023-.089-.582.283-1.365.675-2.224.675-1.798 0-3.25-1.693-3.25-.586 0 1.107.79 3.263 3.25 3.263h-.003z",fill:"#FF323D"}),(0,n.jsx)("path",{d:"M14.76 9.21c.32.108.445.753.767.585.447-.233.707-.708.659-1.204a1.235 1.235 0 00-.879-1.059 1.262 1.262 0 00-1.33.394c-.322.384-.377.92-.14 1.36.153.283.638-.177.925-.079l-.002.003zm-5.887 0c-.32.108-.448.753-.768.585a1.226 1.226 0 01-.658-1.204c.048-.495.395-.913.878-1.059a1.262 1.262 0 011.33.394c.322.384.377.92.14 1.36-.152.283-.64-.177-.925-.079l.003.003zm1.12 5.34a2.166 2.166 0 011.325-1.106c.07-.02.144.06.219.171l.192.306c.069.1.139.175.209.175.074 0 .15-.074.223-.172l.205-.302c.08-.11.157-.188.234-.165.537.168.986.536 1.25 1.026.932-.724 1.275-1.905 1.275-2.633 0-.508-.306-.426-.81-.19l-.616.296c-.52.24-1.148.48-1.824.48-.676 0-1.302-.24-1.823-.48l-.589-.283c-.52-.248-.838-.342-.838.177 0 .703.32 1.831 1.187 2.56l.18.14z",fill:"#3A3B45"}),(0,n.jsx)("path",{d:"M17.812 10.366a.806.806 0 00.813-.8c0-.441-.364-.8-.813-.8a.806.806 0 00-.812.8c0 .442.364.8.812.8zm-11.624 0a.806.806 0 00.812-.8c0-.441-.364-.8-.812-.8a.806.806 0 00-.813.8c0 .442.364.8.813.8zM4.515 13.073c-.405 0-.765.162-1.017.46a1.455 1.455 0 00-.333.925 1.801 1.801 0 00-.485-.074c-.387 0-.737.146-.985.409a1.41 1.41 0 00-.2 1.722 1.302 1.302 0 00-.447.694c-.06.222-.12.69.2 1.166a1.267 1.267 0 00-.093 1.236c.238.533.81.958 1.89 1.405l.24.096c.768.3 1.473.492 1.478.494.89.243 1.808.375 2.732.394 1.465 0 2.513-.443 3.115-1.314.93-1.342.842-2.575-.274-3.763l-.151-.154c-.692-.684-1.155-1.69-1.25-1.912-.195-.655-.71-1.383-1.562-1.383-.46.007-.889.233-1.15.605-.25-.31-.495-.553-.715-.694a1.87 1.87 0 00-.993-.312zm14.97 0c.405 0 .767.162 1.017.46.216.262.333.588.333.925.158-.047.322-.071.487-.074.388 0 .738.146.985.409a1.41 1.41 0 01.2 1.722c.22.178.377.422.445.694.06.222.12.69-.2 1.166.244.37.279.836.093 1.236-.238.533-.81.958-1.889 1.405l-.239.096c-.77.3-1.475.492-1.48.494-.89.243-1.808.375-2.732.394-1.465 0-2.513-.443-3.115-1.314-.93-1.342-.842-2.575.274-3.763l.151-.154c.695-.684 1.157-1.69 1.252-1.912.195-.655.708-1.383 1.56-1.383.46.007.889.233 1.15.605.25-.31.495-.553.718-.694.244-.162.523-.265.814-.3l.176-.012z",fill:"#FF9D0B"}),(0,n.jsx)("path",{d:"M9.785 20.132c.688-.994.638-1.74-.305-2.667-.945-.928-1.495-2.288-1.495-2.288s-.205-.788-.672-.714c-.468.074-.81 1.25.17 1.971.977.721-.195 1.21-.573.534-.375-.677-1.405-2.416-1.94-2.751-.532-.332-.907-.148-.782.541.125.687 2.357 2.35 2.14 2.707-.218.362-.983-.42-.983-.42S2.953 14.9 2.43 15.46c-.52.558.398 1.026 1.7 1.803 1.308.778 1.41.985 1.225 1.28-.187.295-3.07-2.1-3.34-1.083-.27 1.011 2.943 1.304 2.745 2.006-.2.7-2.265-1.324-2.685-.537-.425.79 2.913 1.718 2.94 1.725 1.075.276 3.813.859 4.77-.522zm4.432 0c-.687-.994-.64-1.74.305-2.667.943-.928 1.493-2.288 1.493-2.288s.205-.788.675-.714c.465.074.807 1.25-.17 1.971-.98.721.195 1.21.57.534.377-.677 1.407-2.416 1.94-2.751.532-.332.91-.148.782.541-.125.687-2.355 2.35-2.137 2.707.215.362.98-.42.98-.42S21.05 14.9 21.57 15.46c.52.558-.395 1.026-1.7 1.803-1.308.778-1.408.985-1.225 1.28.187.295 3.07-2.1 3.34-1.083.27 1.011-2.94 1.304-2.743 2.006.2.7 2.263-1.324 2.685-.537.423.79-2.912 1.718-2.94 1.725-1.077.276-3.815.859-4.77-.522z",fill:"#FFD21E"})]})),sr=r4("Cerebras",{fill:"currentColor"},(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("path",{"clip-rule":"evenodd",d:"M14.121 2.701a9.299 9.299 0 000 18.598V22.7c-5.91 0-10.7-4.791-10.7-10.701S8.21 1.299 14.12 1.299V2.7zm4.752 3.677A7.353 7.353 0 109.42 17.643l-.901 1.074a8.754 8.754 0 01-1.08-12.334 8.755 8.755 0 0112.335-1.08l-.901 1.075zm-2.255.844a5.407 5.407 0 00-5.048 9.563l-.656 1.24a6.81 6.81 0 016.358-12.043l-.654 1.24zM14.12 8.539a3.46 3.46 0 100 6.922v1.402a4.863 4.863 0 010-9.726v1.402z",fill:"#F15A29","fill-rule":"evenodd"}),(0,n.jsx)("path",{d:"M15.407 10.836a2.24 2.24 0 00-.51-.409 1.084 1.084 0 00-.544-.152c-.255 0-.483.047-.684.14a1.58 1.58 0 00-.84.912c-.074.203-.11.416-.11.631 0 .218.036.43.11.631a1.594 1.594 0 00.84.913c.2.093.43.14.684.14.216 0 .417-.046.602-.135.188-.09.35-.225.475-.392l.928 1.006c-.14.14-.3.261-.482.363a3.367 3.367 0 01-1.083.38c-.17.026-.317.04-.44.04a3.315 3.315 0 01-1.182-.21 2.825 2.825 0 01-.961-.597 2.816 2.816 0 01-.644-.929 2.987 2.987 0 01-.238-1.21c0-.444.08-.847.238-1.21.15-.35.368-.666.643-.929.278-.261.605-.464.962-.596a3.315 3.315 0 011.182-.21c.355 0 .712.068 1.072.204.361.138.685.36.944.649l-.962.97z"})]})),ss=r4("OpenRouter",{fill:"currentColor",fillRule:"evenodd"},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M18.654 3.87a5.087 5.087 0 110 10.174L23.7 19.09c.64.641.187 1.737-.72 1.737H8.48a8.479 8.479 0 010-16.958h10.175zM8.479 7.26a5.087 5.087 0 100 10.176 5.087 5.087 0 000-10.175z"})})),si=r4("XAI",{fill:"currentColor",fillRule:"evenodd"},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M6.469 8.776L16.512 23h-4.464L2.005 8.776H6.47zm-.004 7.9l2.233 3.164L6.467 23H2l4.465-6.324zM22 2.582V23h-3.659V7.764L22 2.582zM22 1l-9.952 14.095-2.233-3.163L17.533 1H22z"})})),sa=r4("Cloudflare",{},(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("path",{d:"M16.493 17.4c.135-.52.08-.983-.161-1.338-.215-.328-.592-.519-1.05-.519l-8.663-.109a.148.148 0 01-.135-.082c-.027-.054-.027-.109-.027-.163.027-.082.108-.164.189-.164l8.744-.11c1.05-.054 2.153-.9 2.556-1.937l.511-1.31c.027-.055.027-.11.027-.164C17.92 8.91 15.66 7 12.942 7c-2.503 0-4.628 1.638-5.381 3.903a2.432 2.432 0 00-1.803-.491c-1.21.109-2.153 1.092-2.287 2.32-.027.328 0 .628.054.9C1.56 13.688 0 15.326 0 17.319c0 .19.027.355.027.545 0 .082.08.137.161.137h15.983c.08 0 .188-.055.215-.164l.107-.437",fill:"#F38020"}),(0,n.jsx)("path",{d:"M19.238 11.75h-.242c-.054 0-.108.054-.135.109l-.35 1.2c-.134.52-.08.983.162 1.338.215.328.592.518 1.05.518l1.855.11c.054 0 .108.027.135.082.027.054.027.109.027.163-.027.082-.108.164-.188.164l-1.91.11c-1.05.054-2.153.9-2.557 1.937l-.134.355c-.027.055.026.137.107.137h6.592c.081 0 .162-.055.162-.137.107-.41.188-.846.188-1.31-.027-2.62-2.153-4.777-4.762-4.777",fill:"#FCAD32"})]})),sl=r4("Vercel",{fill:"currentColor",fillRule:"evenodd"},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M12 0l12 20.785H0L12 0z"})})),sd=r4("GithubCopilot",{fill:"currentColor",fillRule:"evenodd"},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M19.245 5.364c1.322 1.36 1.877 3.216 2.11 5.817.622 0 1.2.135 1.592.654l.73.964c.21.278.323.61.323.955v2.62c0 .339-.173.669-.453.868C20.239 19.602 16.157 21.5 12 21.5c-4.6 0-9.205-2.583-11.547-4.258-.28-.2-.452-.53-.453-.868v-2.62c0-.345.113-.679.321-.956l.73-.963c.392-.517.974-.654 1.593-.654l.029-.297c.25-2.446.81-4.213 2.082-5.52 2.461-2.54 5.71-2.851 7.146-2.864h.198c1.436.013 4.685.323 7.146 2.864zm-7.244 4.328c-.284 0-.613.016-.962.05-.123.447-.305.85-.57 1.108-1.05 1.023-2.316 1.18-2.994 1.18-.638 0-1.306-.13-1.851-.464-.516.165-1.012.403-1.044.996a65.882 65.882 0 00-.063 2.884l-.002.48c-.002.563-.005 1.126-.013 1.69.002.326.204.63.51.765 2.482 1.102 4.83 1.657 6.99 1.657 2.156 0 4.504-.555 6.985-1.657a.854.854 0 00.51-.766c.03-1.682.006-3.372-.076-5.053-.031-.596-.528-.83-1.046-.996-.546.333-1.212.464-1.85.464-.677 0-1.942-.157-2.993-1.18-.266-.258-.447-.661-.57-1.108-.32-.032-.64-.049-.96-.05zm-2.525 4.013c.539 0 .976.426.976.95v1.753c0 .525-.437.95-.976.95a.964.964 0 01-.976-.95v-1.752c0-.525.437-.951.976-.951zm5 0c.539 0 .976.426.976.95v1.753c0 .525-.437.95-.976.95a.964.964 0 01-.976-.95v-1.752c0-.525.437-.951.976-.951zM7.635 5.087c-1.05.102-1.935.438-2.385.906-.975 1.037-.765 3.668-.21 4.224.405.394 1.17.657 1.995.657h.09c.649-.013 1.785-.176 2.73-1.11.435-.41.705-1.433.675-2.47-.03-.834-.27-1.52-.63-1.813-.39-.336-1.275-.482-2.265-.394zm6.465.394c-.36.292-.6.98-.63 1.813-.03 1.037.24 2.06.675 2.47.968.957 2.136 1.104 2.776 1.11h.044c.825 0 1.59-.263 1.995-.657.555-.556.765-3.187-.21-4.224-.45-.468-1.335-.804-2.385-.906-.99-.088-1.875.058-2.265.394zM12 7.615c-.24 0-.525.015-.84.044.03.16.045.336.06.526l-.001.159a2.94 2.94 0 01-.014.25c.225-.022.425-.027.612-.028h.366c.187 0 .387.006.612.028-.015-.146-.015-.277-.015-.409.015-.19.03-.365.06-.526a9.29 9.29 0 00-.84-.044z"})})),sc=r4("Aws",{fill:"currentColor",fillRule:"evenodd"},(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("path",{d:"M6.763 11.212c0 .296.032.535.088.71.064.176.144.368.256.576.04.063.056.127.056.183 0 .08-.048.16-.152.24l-.503.335a.383.383 0 01-.208.072c-.08 0-.16-.04-.239-.112a2.47 2.47 0 01-.287-.375 6.18 6.18 0 01-.248-.471c-.622.734-1.405 1.101-2.347 1.101-.67 0-1.205-.191-1.596-.574-.39-.384-.59-.894-.59-1.533 0-.678.24-1.23.726-1.644.487-.415 1.133-.623 1.955-.623.272 0 .551.024.846.064.296.04.6.104.918.176v-.583c0-.607-.127-1.03-.375-1.277-.255-.248-.686-.367-1.3-.367-.28 0-.568.031-.863.103-.295.072-.583.16-.862.272a2.4 2.4 0 01-.28.104.488.488 0 01-.127.023c-.112 0-.168-.08-.168-.247v-.391c0-.128.016-.224.056-.28a.597.597 0 01.224-.167 4.577 4.577 0 011.005-.36 4.84 4.84 0 011.246-.151c.95 0 1.644.216 2.091.647.44.43.662 1.085.662 1.963v2.586h.016zm-3.24 1.214c.263 0 .534-.048.822-.144a1.78 1.78 0 00.758-.51 1.27 1.27 0 00.272-.512c.047-.191.08-.423.08-.694v-.335a6.66 6.66 0 00-.735-.136 6.02 6.02 0 00-.75-.048c-.535 0-.926.104-1.19.32-.263.215-.39.518-.39.917 0 .375.095.655.295.846.191.2.47.296.838.296zm6.41.862c-.144 0-.24-.024-.304-.08-.064-.048-.12-.16-.168-.311L7.586 6.726a1.398 1.398 0 01-.072-.32c0-.128.064-.2.191-.2h.783c.151 0 .255.025.31.08.065.048.113.16.16.312l1.342 5.284 1.245-5.284c.04-.16.088-.264.151-.312a.549.549 0 01.32-.08h.638c.152 0 .256.025.32.08.063.048.12.16.151.312l1.261 5.348 1.381-5.348c.048-.16.104-.264.16-.312a.52.52 0 01.311-.08h.743c.127 0 .2.065.2.2 0 .04-.009.08-.017.128a1.137 1.137 0 01-.056.2l-1.923 6.17c-.048.16-.104.263-.168.311a.51.51 0 01-.303.08h-.687c-.15 0-.255-.024-.32-.08-.063-.056-.119-.16-.15-.32L12.32 7.747l-1.23 5.14c-.04.16-.087.264-.15.32-.065.056-.177.08-.32.08l-.686.001zm10.256.215c-.415 0-.83-.048-1.229-.143-.399-.096-.71-.2-.918-.32-.128-.071-.215-.151-.247-.223a.563.563 0 01-.048-.224v-.407c0-.167.064-.247.183-.247.048 0 .096.008.144.024.048.016.12.048.2.08.271.12.566.215.878.279.32.064.63.096.95.096.502 0 .894-.088 1.165-.264a.86.86 0 00.415-.758.777.777 0 00-.215-.559c-.144-.151-.416-.287-.807-.415l-1.157-.36c-.583-.183-1.014-.454-1.277-.813a1.902 1.902 0 01-.4-1.158c0-.335.073-.63.216-.886.144-.255.335-.479.575-.654.24-.184.51-.32.83-.415.32-.096.655-.136 1.006-.136.175 0 .36.008.535.032.183.024.35.056.518.088.16.04.312.08.455.127.144.048.256.096.336.144a.69.69 0 01.24.2.43.43 0 01.071.263v.375c0 .168-.064.256-.184.256a.83.83 0 01-.303-.096 3.652 3.652 0 00-1.532-.311c-.455 0-.815.071-1.062.223-.248.152-.375.383-.375.71 0 .224.08.416.24.567.16.152.454.304.877.44l1.134.358c.574.184.99.44 1.237.767.247.327.367.702.367 1.117 0 .343-.072.655-.207.926a2.157 2.157 0 01-.583.703c-.248.2-.543.343-.886.447-.36.111-.734.167-1.142.167z"}),(0,n.jsx)("path",{d:"M.378 15.475c3.384 1.963 7.56 3.153 11.877 3.153 2.914 0 6.114-.607 9.06-1.852.44-.2.814.287.383.607-2.626 1.94-6.442 2.969-9.722 2.969-4.598 0-8.74-1.7-11.87-4.526-.247-.223-.024-.527.272-.351zm23.531-.2c.287.36-.08 2.826-1.485 4.007-.215.184-.423.088-.327-.151l.175-.439c.343-.88.802-2.198.52-2.555-.336-.43-2.22-.207-3.074-.103-.255.032-.295-.192-.063-.36 1.5-1.053 3.967-.75 4.254-.399z",fill:"#F90"})]})),sp=r4("Azure",{},(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("path",{d:"M7.242 1.613A1.11 1.11 0 018.295.857h6.977L8.03 22.316a1.11 1.11 0 01-1.052.755h-5.43a1.11 1.11 0 01-1.053-1.466L7.242 1.613z",fill:"url(#pi-azure-lobe-icons-azure-0-_R_0_)"}),(0,n.jsx)("path",{d:"M18.397 15.296H7.4a.51.51 0 00-.347.882l7.066 6.595c.206.192.477.298.758.298h6.226l-2.706-7.775z",fill:"#0078D4"}),(0,n.jsx)("path",{d:"M15.272.857H7.497L0 23.071h7.775l1.596-4.73 5.068 4.73h6.665l-2.707-7.775h-7.998L15.272.857z",fill:"url(#pi-azure-lobe-icons-azure-1-_R_0_)"}),(0,n.jsx)("path",{d:"M17.193 1.613a1.11 1.11 0 00-1.052-.756h-7.81.035c.477 0 .9.304 1.052.756l6.748 19.992a1.11 1.11 0 01-1.052 1.466h-.12 7.895a1.11 1.11 0 001.052-1.466L17.193 1.613z",fill:"url(#pi-azure-lobe-icons-azure-2-_R_0_)"}),(0,n.jsxs)("defs",{children:[(0,n.jsxs)("linearGradient",{gradientUnits:"userSpaceOnUse",id:"pi-azure-lobe-icons-azure-0-_R_0_",x1:"8.247",x2:"1.002",y1:"1.626",y2:"23.03",children:[(0,n.jsx)("stop",{"stop-color":"#114A8B"}),(0,n.jsx)("stop",{offset:"1","stop-color":"#0669BC"})]}),(0,n.jsxs)("linearGradient",{gradientUnits:"userSpaceOnUse",id:"pi-azure-lobe-icons-azure-1-_R_0_",x1:"14.042",x2:"12.324",y1:"15.302",y2:"15.888",children:[(0,n.jsx)("stop",{"stop-opacity":".3"}),(0,n.jsx)("stop",{offset:".071","stop-opacity":".2"}),(0,n.jsx)("stop",{offset:".321","stop-opacity":".1"}),(0,n.jsx)("stop",{offset:".623","stop-opacity":".05"}),(0,n.jsx)("stop",{offset:"1","stop-opacity":"0"})]}),(0,n.jsxs)("linearGradient",{gradientUnits:"userSpaceOnUse",id:"pi-azure-lobe-icons-azure-2-_R_0_",x1:"12.841",x2:"20.793",y1:"1.626",y2:"22.814",children:[(0,n.jsx)("stop",{"stop-color":"#3CCBF4"}),(0,n.jsx)("stop",{offset:"1","stop-color":"#2892DF"})]})]})]})),su=r4("Kimi",{},(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("path",{d:"M21.846 0a1.923 1.923 0 110 3.846H20.15a.226.226 0 01-.227-.226V1.923C19.923.861 20.784 0 21.846 0z",fill:"#1783FF"}),(0,n.jsx)("path",{d:"M11.065 11.199l7.257-7.2c.137-.136.06-.41-.116-.41H14.3a.164.164 0 00-.117.051l-7.82 7.756c-.122.12-.302.013-.302-.179V3.82c0-.127-.083-.23-.185-.23H3.186c-.103 0-.186.103-.186.23V19.77c0 .128.083.23.186.23h2.69c.103 0 .186-.102.186-.23v-3.25c0-.069.025-.135.069-.178l2.424-2.406a.158.158 0 01.205-.023l6.484 4.772a7.677 7.677 0 003.453 1.283c.108.012.2-.095.2-.23v-3.06c0-.117-.07-.212-.164-.227a5.028 5.028 0 01-2.027-.807l-5.613-4.064c-.117-.078-.132-.279-.028-.381z",fill:"#fff"})]})),sh=r4("Qwen",{},(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("path",{d:"M12.604 1.34c.393.69.784 1.382 1.174 2.075a.18.18 0 00.157.091h5.552c.174 0 .322.11.446.327l1.454 2.57c.19.337.24.478.024.837-.26.43-.513.864-.76 1.3l-.367.658c-.106.196-.223.28-.04.512l2.652 4.637c.172.301.111.494-.043.77-.437.785-.882 1.564-1.335 2.34-.159.272-.352.375-.68.37-.777-.016-1.552-.01-2.327.016a.099.099 0 00-.081.05 575.097 575.097 0 01-2.705 4.74c-.169.293-.38.363-.725.364-.997.003-2.002.004-3.017.002a.537.537 0 01-.465-.271l-1.335-2.323a.09.09 0 00-.083-.049H4.982c-.285.03-.553-.001-.805-.092l-1.603-2.77a.543.543 0 01-.002-.54l1.207-2.12a.198.198 0 000-.197 550.951 550.951 0 01-1.875-3.272l-.79-1.395c-.16-.31-.173-.496.095-.965.465-.813.927-1.625 1.387-2.436.132-.234.304-.334.584-.335a338.3 338.3 0 012.589-.001.124.124 0 00.107-.063l2.806-4.895a.488.488 0 01.422-.246c.524-.001 1.053 0 1.583-.006L11.704 1c.341-.003.724.032.9.34zm-3.432.403a.06.06 0 00-.052.03L6.254 6.788a.157.157 0 01-.135.078H3.253c-.056 0-.07.025-.041.074l5.81 10.156c.025.042.013.062-.034.063l-2.795.015a.218.218 0 00-.2.116l-1.32 2.31c-.044.078-.021.118.068.118l5.716.008c.046 0 .08.02.104.061l1.403 2.454c.046.081.092.082.139 0l5.006-8.76.783-1.382a.055.055 0 01.096 0l1.424 2.53a.122.122 0 00.107.062l2.763-.02a.04.04 0 00.035-.02.041.041 0 000-.04l-2.9-5.086a.108.108 0 010-.113l.293-.507 1.12-1.977c.024-.041.012-.062-.035-.062H9.2c-.059 0-.073-.026-.043-.077l1.434-2.505a.107.107 0 000-.114L9.225 1.774a.06.06 0 00-.053-.031zm6.29 8.02c.046 0 .058.02.034.06l-.832 1.465-2.613 4.585a.056.056 0 01-.05.029.058.058 0 01-.05-.029L8.498 9.841c-.02-.034-.01-.052.028-.054l.216-.012 6.722-.012z",fill:"url(#pi-qwen-lobe-icons-qwen-_R_0_)","fill-rule":"nonzero"}),(0,n.jsx)("defs",{children:(0,n.jsxs)("linearGradient",{id:"pi-qwen-lobe-icons-qwen-_R_0_",x1:"0%",x2:"100%",y1:"0%",y2:"0%",children:[(0,n.jsx)("stop",{offset:"0%","stop-color":"#6336E7","stop-opacity":".84"}),(0,n.jsx)("stop",{offset:"100%","stop-color":"#6F69F7","stop-opacity":".84"})]})})]})),sg=r4("Zhipu",{},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M11.991 23.503a.24.24 0 00-.244.248.24.24 0 00.244.249.24.24 0 00.245-.249.24.24 0 00-.22-.247l-.025-.001zM9.671 5.365a1.697 1.697 0 011.099 2.132l-.071.172-.016.04-.018.054c-.07.16-.104.32-.104.498-.035.71.47 1.279 1.186 1.314h.366c1.309.053 2.338 1.173 2.286 2.523-.052 1.332-1.152 2.38-2.478 2.327h-.174c-.715.018-1.274.64-1.239 1.368 0 .124.018.23.053.337.209.373.54.658.96.8.75.23 1.517-.125 1.9-.782l.018-.035c.402-.64 1.17-.96 1.92-.711.854.284 1.378 1.226 1.099 2.167a1.661 1.661 0 01-2.077 1.102 1.711 1.711 0 01-.907-.711l-.017-.035c-.2-.323-.463-.58-.851-.711l-.056-.018a1.646 1.646 0 00-1.954.746 1.66 1.66 0 01-1.065.764 1.677 1.677 0 01-1.989-1.279c-.209-.906.332-1.83 1.257-2.043a1.51 1.51 0 01.296-.035h.018c.68-.071 1.151-.622 1.116-1.333a1.307 1.307 0 00-.227-.693 2.515 2.515 0 01-.366-1.403 2.39 2.39 0 01.366-1.208c.14-.195.21-.444.227-.693.018-.71-.506-1.261-1.186-1.332l-.07-.018a1.43 1.43 0 01-.299-.07l-.05-.019a1.7 1.7 0 01-1.047-2.114 1.68 1.68 0 012.094-1.101zm-5.575 10.11c.26-.264.639-.367.994-.27.355.096.633.379.728.74.095.362-.007.748-.267 1.013-.402.41-1.053.41-1.455 0a1.062 1.062 0 010-1.482zm14.845-.294c.359-.09.738.024.992.297.254.274.344.665.237 1.025-.107.36-.396.634-.756.718-.551.128-1.1-.22-1.23-.781a1.05 1.05 0 01.757-1.26zm-.064-4.39c.314.32.49.753.49 1.206 0 .452-.176.886-.49 1.206-.315.32-.74.5-1.185.5-.444 0-.87-.18-1.184-.5a1.727 1.727 0 010-2.412 1.654 1.654 0 012.369 0zm-11.243.163c.364.484.447 1.128.218 1.691a1.665 1.665 0 01-2.188.923c-.855-.36-1.26-1.358-.907-2.228a1.68 1.68 0 011.33-1.038c.593-.08 1.183.169 1.547.652zm11.545-4.221c.368 0 .708.2.892.524.184.324.184.724 0 1.048a1.026 1.026 0 01-.892.524c-.568 0-1.03-.47-1.03-1.048 0-.579.462-1.048 1.03-1.048zm-14.358 0c.368 0 .707.2.891.524.184.324.184.724 0 1.048a1.026 1.026 0 01-.891.524c-.569 0-1.03-.47-1.03-1.048 0-.579.461-1.048 1.03-1.048zm10.031-1.475c.925 0 1.675.764 1.675 1.706s-.75 1.705-1.675 1.705-1.674-.763-1.674-1.705c0-.942.75-1.706 1.674-1.706zm-2.626-.684c.362-.082.653-.356.761-.718a1.062 1.062 0 00-.238-1.028 1.017 1.017 0 00-.996-.294c-.547.14-.881.7-.752 1.257.13.558.675.907 1.225.783zm0 16.876c.359-.087.644-.36.75-.72a1.062 1.062 0 00-.237-1.019 1.018 1.018 0 00-.985-.301 1.037 1.037 0 00-.762.717c-.108.361-.017.754.239 1.028.245.263.606.377.953.305l.043-.01zM17.19 3.5a.631.631 0 00.628-.64c0-.355-.279-.64-.628-.64a.631.631 0 00-.628.64c0 .355.28.64.628.64zm-10.38 0a.631.631 0 00.628-.64c0-.355-.28-.64-.628-.64a.631.631 0 00-.628.64c0 .355.279.64.628.64zm-5.182 7.852a.631.631 0 00-.628.64c0 .354.28.639.628.639a.63.63 0 00.627-.606l.001-.034a.62.62 0 00-.628-.64zm5.182 9.13a.631.631 0 00-.628.64c0 .355.279.64.628.64a.631.631 0 00.628-.64c0-.355-.28-.64-.628-.64zm10.38.018a.631.631 0 00-.628.64c0 .355.28.64.628.64a.631.631 0 00.628-.64c0-.355-.279-.64-.628-.64zm5.182-9.148a.631.631 0 00-.628.64c0 .354.279.639.628.639a.631.631 0 00.628-.64c0-.355-.28-.64-.628-.64zm-.384-4.992a.24.24 0 00.244-.249.24.24 0 00-.244-.249.24.24 0 00-.244.249c0 .142.122.249.244.249zM11.991.497a.24.24 0 00.245-.248A.24.24 0 0011.99 0a.24.24 0 00-.244.249c0 .133.108.236.223.247l.021.001zM2.011 6.36a.24.24 0 00.245-.249.24.24 0 00-.244-.249.24.24 0 00-.244.249.24.24 0 00.244.249zm0 11.263a.24.24 0 00-.243.248.24.24 0 00.244.249.24.24 0 00.244-.249.252.252 0 00-.244-.248zm19.995-.018a.24.24 0 00-.245.248.24.24 0 00.245.25.24.24 0 00.244-.25.252.252 0 00-.244-.248z",fill:"#3859FF","fill-rule":"nonzero"})})),sm=r4("Cohere",{},(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("path",{"clip-rule":"evenodd",d:"M8.128 14.099c.592 0 1.77-.033 3.398-.703 1.897-.781 5.672-2.2 8.395-3.656 1.905-1.018 2.74-2.366 2.74-4.18A4.56 4.56 0 0018.1 1H7.549A6.55 6.55 0 001 7.55c0 3.617 2.745 6.549 7.128 6.549z",fill:"#39594D","fill-rule":"evenodd"}),(0,n.jsx)("path",{"clip-rule":"evenodd",d:"M9.912 18.61a4.387 4.387 0 012.705-4.052l3.323-1.38c3.361-1.394 7.06 1.076 7.06 4.715a5.104 5.104 0 01-5.105 5.104l-3.597-.001a4.386 4.386 0 01-4.386-4.387z",fill:"#D18EE2","fill-rule":"evenodd"}),(0,n.jsx)("path",{d:"M4.776 14.962A3.775 3.775 0 001 18.738v.489a3.776 3.776 0 007.551 0v-.49a3.775 3.775 0 00-3.775-3.775z",fill:"#FF7759"})]})),sf=r4("Perplexity",{},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M19.785 0v7.272H22.5V17.62h-2.935V24l-7.037-6.194v6.145h-1.091v-6.152L4.392 24v-6.465H1.5V7.188h2.884V0l7.053 6.494V.19h1.09v6.49L19.786 0zm-7.257 9.044v7.319l5.946 5.234V14.44l-5.946-5.397zm-1.099-.08l-5.946 5.398v7.235l5.946-5.234V8.965zm8.136 7.58h1.844V8.349H13.46l6.105 5.54v2.655zm-8.982-8.28H2.59v8.195h1.8v-2.576l6.192-5.62zM5.475 2.476v4.71h5.115l-5.115-4.71zm13.219 0l-5.115 4.71h5.115v-4.71z",fill:"#22B8CD","fill-rule":"nonzero"})})),sx=r4("Together",{},(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("path",{d:"M23.197 4.503A6 6 0 0015 2.307a5.973 5.973 0 00-2.995 4.933l5.996.008v.515h-5.996c.039.937.298 1.87.8 2.74a6 6 0 1010.39-6z",fill:"#EF2CC1"}),(0,n.jsx)("path",{d:"M.805 4.5A6 6 0 003 12.697a5.972 5.972 0 005.77.127L5.779 7.627l.446-.257 2.997 5.192A6 6 0 10.804 4.5z",fill:"#CAAEF5"}),(0,n.jsx)("path",{d:"M12 23.894a6 6 0 005.999-6c0-2.13-1.1-3.996-2.775-5.06l-3.005 5.189-.444-.258 2.997-5.192A6 6 0 1012 23.894z",fill:"#FC4C02"})]})),sk=r4("Grok",{fill:"currentColor",fillRule:"evenodd"},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M9.27 15.29l7.978-5.897c.391-.29.95-.177 1.137.272.98 2.369.542 5.215-1.41 7.169-1.951 1.954-4.667 2.382-7.149 1.406l-2.711 1.257c3.889 2.661 8.611 2.003 11.562-.953 2.341-2.344 3.066-5.539 2.388-8.42l.006.007c-.983-4.232.242-5.924 2.75-9.383.06-.082.12-.164.179-.248l-3.301 3.305v-.01L9.267 15.292M7.623 16.723c-2.792-2.67-2.31-6.801.071-9.184 1.761-1.763 4.647-2.483 7.166-1.425l2.705-1.25a7.808 7.808 0 00-1.829-1A8.975 8.975 0 005.984 5.83c-2.533 2.536-3.33 6.436-1.962 9.764 1.022 2.487-.653 4.246-2.34 6.022-.599.63-1.199 1.259-1.682 1.925l7.62-6.815"})})),sv=r4("AntGroup",{},(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("path",{d:"M9.797 6.282a.451.451 0 01-.336-.315 1.019 1.019 0 010-.505c.156-.86.3-1.725.501-2.577.14-.7.42-1.367.823-1.96.305-.431.75-.746 1.262-.89.877-.217 1.24.629.937 1.348-.259.593-.877.914-1.334 1.348-.835.795-1.096 2.14-1.336 3.212a.427.427 0 01-.186.277.437.437 0 01-.331.062z",fill:"url(#pi-antgroup-lobe-icons-antgroup-0-_R_0_)",transform:"translate(3)"}),(0,n.jsx)("path",{d:"M6.334 4.672c.33-.121.682.146.946.297.278.145.587.219.901.214.231.01.466 0 .688.018 4.098.176 7.484 3.22 8.05 7.237.565 4.016-1.852 7.859-5.745 9.134-3.894 1.276-8.153-.38-10.126-3.935A8.339 8.339 0 013.133 7.081c.348-.278.716-.53 1.102-.755a8.404 8.404 0 001.318-.79c.28-.243.45-.742.781-.864zm4.406 2.15c-2.841.003-4.898 2.533-4.628 5.642.27 3.109 2.781 5.641 5.613 5.665 2.832.024 4.932-2.512 4.658-5.644-.273-3.133-2.802-5.666-5.643-5.663zm.357.57a4.707 4.707 0 013.304 1.446 5.703 5.703 0 011.643 3.49 4.841 4.841 0 01-1.141 3.705v.015a3.923 3.923 0 01-2.808 1.303 4.664 4.664 0 01-3.367-1.387 5.678 5.678 0 01-1.71-3.518 4.832 4.832 0 011.14-3.753 3.923 3.923 0 012.813-1.3h.126z",fill:"url(#pi-antgroup-lobe-icons-antgroup-1-_R_0_)",transform:"translate(3)"}),(0,n.jsx)("path",{d:"M2.346 2.054a1.26 1.26 0 01.384-.594.842.842 0 011.165.11c.694.82.169 2.078.142 3.02.013.805.208 1.597.57 2.318.084.134.147.279.186.43a.539.539 0 01-.3.577c-.345.17-.568-.19-.709-.446-.324-.6-.617-1.216-.877-1.846a8.698 8.698 0 01-.618-1.987 7.523 7.523 0 01-.051-.37 3.717 3.717 0 01-.024-.34 2.506 2.506 0 01.132-.872z",fill:"url(#pi-antgroup-lobe-icons-antgroup-2-_R_0_)",transform:"translate(3)"}),(0,n.jsxs)("defs",{children:[(0,n.jsxs)("linearGradient",{id:"pi-antgroup-lobe-icons-antgroup-0-_R_0_",x1:"31.373%",x2:"61.365%",y1:"95.551%",y2:"-.348%",children:[(0,n.jsx)("stop",{offset:"0%","stop-color":"#06F"}),(0,n.jsx)("stop",{offset:"20%","stop-color":"#1677FF"}),(0,n.jsx)("stop",{offset:"100%","stop-color":"#04A6FF"})]}),(0,n.jsxs)("linearGradient",{id:"pi-antgroup-lobe-icons-antgroup-1-_R_0_",x1:"4.366%",x2:"94.359%",y1:"65.982%",y2:"32.918%",children:[(0,n.jsx)("stop",{offset:"0%","stop-color":"#06F"}),(0,n.jsx)("stop",{offset:"20%","stop-color":"#1677FF"}),(0,n.jsx)("stop",{offset:"100%","stop-color":"#04A6FF"})]}),(0,n.jsxs)("linearGradient",{id:"pi-antgroup-lobe-icons-antgroup-2-_R_0_",x1:"56.255%",x2:"45.986%",y1:"99.257%",y2:"1.384%",children:[(0,n.jsx)("stop",{offset:"0%","stop-color":"#06F"}),(0,n.jsx)("stop",{offset:"20%","stop-color":"#1677FF"}),(0,n.jsx)("stop",{offset:"100%","stop-color":"#04A6FF"})]})]})]})),sy=r4("Nvidia",{},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M10.212 8.976V7.62c.127-.01.256-.017.388-.021 3.596-.117 5.957 3.184 5.957 3.184s-2.548 3.647-5.282 3.647a3.227 3.227 0 01-1.063-.175v-4.109c1.4.174 1.681.812 2.523 2.258l1.873-1.627a4.905 4.905 0 00-3.67-1.846 6.594 6.594 0 00-.729.044m0-4.476v2.025c.13-.01.259-.019.388-.024 5.002-.174 8.261 4.226 8.261 4.226s-3.743 4.69-7.643 4.69c-.338 0-.675-.031-1.007-.092v1.25c.278.038.558.057.838.057 3.629 0 6.253-1.91 8.794-4.169.421.347 2.146 1.193 2.501 1.564-2.416 2.083-8.048 3.763-11.24 3.763-.308 0-.603-.02-.894-.048V19.5H24v-15H10.21zm0 9.756v1.068c-3.356-.616-4.287-4.21-4.287-4.21a7.173 7.173 0 014.287-2.138v1.172h-.005a3.182 3.182 0 00-2.502 1.178s.615 2.276 2.507 2.931m-5.961-3.3c1.436-1.935 3.604-3.148 5.961-3.336V6.523C5.81 6.887 2 10.723 2 10.723s2.158 6.427 8.21 7.015v-1.166C5.77 16 4.25 10.958 4.25 10.958h-.002z",fill:"#74B71B","fill-rule":"nonzero"})})),sb=r4("OpenCode",{fill:"currentColor",fillRule:"evenodd"},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M16 6H8v12h8V6zm4 16H4V2h16v20z"})})),sw=r4("XiaomiMiMo",{fill:"currentColor",fillRule:"evenodd"},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M.958 15.936a.459.459 0 01.459.44v2.729a.46.46 0 01-.918 0v-2.729a.459.459 0 01.459-.44zm4.814-2.035a.46.46 0 01.553.45v4.754a.458.458 0 11-.918 0V15.48L3.74 17.202a.462.462 0 01-.655.016.462.462 0 01-.065-.082L.628 14.67a.459.459 0 01.658-.637l2.124 2.187 2.127-2.188a.46.46 0 01.235-.13zm2.068.004a.46.46 0 01.458.445v4.755a.46.46 0 01-.458.458.459.459 0 01-.458-.458V14.35a.459.459 0 01.458-.445zm1.973 2.014a.46.46 0 01.46.457v2.729a.46.46 0 01-.784.324.46.46 0 01-.134-.324v-2.729a.46.46 0 01.458-.458zm.002-2.045a.458.458 0 01.328.157l2.127 2.19 2.125-2.19a.459.459 0 01.784.318v4.756a.46.46 0 01-.455.458.46.46 0 01-.458-.458V15.48l-1.667 1.723a.46.46 0 01-.65.008l-.005-.005c0-.002-.002-.002-.004-.003l-2.455-2.534a.46.46 0 01-.008-.667.461.461 0 01.338-.128zm6.797 1.206a.46.46 0 01.53.651A1.966 1.966 0 0019.81 18.4a.462.462 0 01.623.18.46.46 0 01-.181.624 2.863 2.863 0 01-1.38.353l-.142-.004a2.88 2.88 0 01-2.393-4.263.461.461 0 01.274-.21zm.864-.931a2.884 2.884 0 013.915 3.914.46.46 0 01-.402.24l-.057-.004a.458.458 0 01-.164-.055.46.46 0 01-.182-.622 1.967 1.967 0 00-2.669-2.67.459.459 0 11-.441-.803zM9.59 6.368c1.481 0 1.696 1.202 1.696 1.654v2.648h-.917v-.432c-.26.346-.792.535-1.36.535-.133 0-1.289-.03-1.384-1.136-.082-.932.675-1.61 2.053-1.61h.691c0-.563-.367-.886-.983-.886-.44.013-.864.174-1.2.458l-.36-.664c.484-.379 1.012-.567 1.764-.567zm4.427.1c1.263 0 2.082.97 2.083 2.15 0 1.181-.824 2.154-2.083 2.154-1.26 0-2.084-.972-2.084-2.152 0-1.18.82-2.153 2.084-2.153zm6.801.015c.68 0 1.202.465 1.197 1.548v2.642H21.1V8.29c0-.312-.002-.98-.63-.98s-.628.667-.628.838v2.524h-.89V8.148c0-.17-.001-.838-.63-.838-.628 0-.628.668-.628.98v2.383h-.917v-4.03h.917V7a1.22 1.22 0 01.947-.516c.398 0 .76.193.982.686a1.321 1.321 0 011.195-.686zm-18.093.872l1.457-1.772H5.32L3.311 8.07l2.14 2.602H4.24L2.725 8.796 1.21 10.672H0L2.138 8.07.13 5.583h1.138l1.458 1.772zm4.149 3.317h-.916V6.644h.916v4.028zm16.99 0h-.916V6.644h.916v4.028zM9.925 8.71c-1.055 0-1.359.412-1.326.742.032.329.324.537.757.537a1.013 1.013 0 001.014-.968l.002-.31h-.447zM14.018 7.3c-.663 0-1.184.487-1.184 1.32 0 .832.52 1.32 1.184 1.32.662 0 1.182-.49 1.182-1.32 0-.832-.52-1.32-1.182-1.32zM6.417 5.001a.568.568 0 01.587.582.588.588 0 01-1.175 0A.57.57 0 016.417 5zm16.991 0a.57.57 0 01.592.582.588.588 0 01-1.174 0 .57.57 0 01.357-.542.572.572 0 01.225-.04z"})})),sj=r4("ZAI",{fill:"currentColor",fillRule:"evenodd"},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M12.105 2L9.927 4.953H.653L2.83 2h9.276zM23.254 19.048L21.078 22h-9.242l2.174-2.952h9.244zM24 2L9.264 22H0L14.736 2H24z"})})),sS={anthropic:{Icon:r6,hasColor:!1},openai:{Icon:r8,hasColor:!1},"openai-codex":{Icon:r8,hasColor:!1},reqtoken:{Icon:r8,hasColor:!1},google:{Icon:r5,hasColor:!0},"google-vertex":{Icon:r5,hasColor:!0},"ant-ling":{Icon:sv,hasColor:!0},deepseek:{Icon:r3,hasColor:!0},groq:{Icon:r7,hasColor:!1},mistral:{Icon:r9,hasColor:!0},moonshotai:{Icon:se,hasColor:!1},"moonshotai-cn":{Icon:se,hasColor:!1},moonshot:{Icon:se,hasColor:!1},minimax:{Icon:st,hasColor:!0},"minimax-cn":{Icon:st,hasColor:!0},fireworks:{Icon:so,hasColor:!0},huggingface:{Icon:sn,hasColor:!0},cerebras:{Icon:sr,hasColor:!0},openrouter:{Icon:ss,hasColor:!1},xai:{Icon:si,hasColor:!1},"cloudflare-ai-gateway":{Icon:sa,hasColor:!0},"cloudflare-workers-ai":{Icon:sa,hasColor:!0},"vercel-ai-gateway":{Icon:sl,hasColor:!1},"github-copilot":{Icon:sd,hasColor:!1},"amazon-bedrock":{Icon:sc,hasColor:!0},"azure-openai-responses":{Icon:sp,hasColor:!0},"kimi-coding":{Icon:su,hasColor:!0},nvidia:{Icon:sy,hasColor:!0},opencode:{Icon:sb,hasColor:!1},"opencode-go":{Icon:sb,hasColor:!1},qwen:{Icon:sh,hasColor:!0},xiaomi:{Icon:sw,hasColor:!1},"xiaomi-token-plan-ams":{Icon:sw,hasColor:!1},"xiaomi-token-plan-cn":{Icon:sw,hasColor:!1},"xiaomi-token-plan-sgp":{Icon:sw,hasColor:!1},zai:{Icon:sj,hasColor:!1},"zai-coding-cn":{Icon:sj,hasColor:!1},zhipu:{Icon:sg,hasColor:!0},cohere:{Icon:sm,hasColor:!0},perplexity:{Icon:sf,hasColor:!0},together:{Icon:sx,hasColor:!0},grok:{Icon:sk,hasColor:!1}};function sC({id:e,size:t=14}){let o=sS[e];return o?o.hasColor?(0,n.jsx)(o.Icon,{size:t}):(0,n.jsx)(o.Icon,{size:t,style:{color:"currentColor"}}):(0,n.jsx)(T.G,{size:t,weight:"regular","aria-hidden":"true"})}var sT=o(61394),sR=o(72692),sz=o(73869),sI=o(46874),sM=o(21418),sP=o(64421);let sE=[{value:"normal",Icon:sT.f,titleKey:"modes.collabNormalTitle",descKey:"modes.collabNormalDesc"},{value:"plan",Icon:sM._,titleKey:"modes.collabPlanTitle",descKey:"modes.collabPlanDesc"},{value:"goal",Icon:nU.d,titleKey:"modes.collabGoalTitle",descKey:"modes.collabGoalDesc"}],sF=[{value:"economy",Icon:sI.T,titleKey:"modes.tokenEconomyTitle",descKey:"modes.tokenEconomyDesc"},{value:"full",Icon:sR.R,titleKey:"modes.tokenFullTitle",descKey:"modes.tokenFullDesc"},{value:"delivery",Icon:sz.i,titleKey:"modes.tokenDeliveryTitle",descKey:"modes.tokenDeliveryDesc"}],sD=[{value:"ask",Icon:sP.l,titleKey:"modes.approvalAskTitle",descKey:"modes.approvalAskDesc"},{value:"auto",Icon:nJ.Z,titleKey:"modes.approvalAutoTitle",descKey:"modes.approvalAutoDesc"},{value:"yolo",Icon:u.C,titleKey:"modes.approvalYoloTitle",descKey:"modes.approvalYoloDesc"}],sW={normal:sT.f,plan:sM._,goal:nU.d},sA={economy:sI.T,full:sR.R,delivery:sz.i},sN={ask:sP.l,auto:nJ.Z,yolo:u.C};function s$({collaborationMode:e,tokenMode:t,toolApprovalMode:o,onCollaborationModeChange:s,onTokenModeChange:i,onToolApprovalModeChange:a,disabled:l=!1}){let{t:d}=(0,F.s)(),c=$(),[p,u]=(0,r.useState)(null),[g,m]=(0,r.useState)(null),[x,k]=(0,r.useState)({}),v=(0,r.useRef)(null),y=(0,r.useRef)(null),b=(0,r.useRef)(null),w=(0,r.useRef)(null);(0,r.useEffect)(()=>()=>{null!==w.current&&window.clearTimeout(w.current)},[]);let j=(e,t)=>()=>{if(l)return;let o=t.current;if(!o)return;let n=o.getBoundingClientRect();k(t=>({...t,[e]:{top:n.top,left:n.left,width:n.width}})),u(t=>t===e?null:e)},S=(0,r.useCallback)(e=>{m(e),window.requestAnimationFrame(()=>u(t=>t===e?null:t)),null!==w.current&&window.clearTimeout(w.current),w.current=window.setTimeout(()=>m(null),150)},[]),C=()=>window.visualViewport?.height??window.innerHeight,T=(r,c,u,m)=>{if(p!==r)return null;let f=x[r];if(!f)return null;let k=Math.min(248,window.innerWidth-16),v=Math.min(f.left,window.innerWidth-k-8),y=C()-f.top+6,b=Math.min(300,Math.max(120,.55*C()));return(0,n.jsx)("div",{role:"menu",style:{position:"fixed",bottom:y,left:v,zIndex:2100,width:k,maxHeight:b,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:+(g!==r),transition:"opacity 0.12s"},children:c.map(c=>{let p=c.value===u,g=c.Icon;return(0,n.jsxs)("button",{type:"button",role:"menuitemradio","aria-checked":p,onClick:()=>{var n;return n=c.value,void(S(r),"collab"===r&&n!==e&&s(n),"token"===r&&n!==t&&i(n),"approval"===r&&n!==o&&a(n))},disabled:l,style:{display:"flex",alignItems:"center",gap:10,width:"100%",padding:"8px 10px",background:p?"var(--bg-selected)":"none",border:"none",borderRadius:8,cursor:l?"not-allowed":"pointer",textAlign:"left",transition:"background 0.12s"},onMouseEnter:e=>{p||l||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.background=p?"var(--bg-selected)":"none"},children:[(0,n.jsx)(g,{size:16,weight:p?"fill":"regular",color:p?"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:d(c.titleKey)}),(0,n.jsx)("span",{style:{display:"block",fontSize:10.5,color:"var(--text-muted)",marginTop:1,lineHeight:1.4},children:d(c.descKey)})]}),p&&(0,n.jsx)(h.S,{size:12,weight:"bold",color:"var(--accent)","aria-hidden":"true"})]},c.value)})})},R=(e,t)=>({display:"flex",alignItems:"center",gap:3,padding:c?"0 3px":"3px 6px",height:24,background:e?"var(--bg-hover)":"none",border:"none",borderRadius:6,color:t?"var(--accent)":"var(--text-muted)",cursor:l?"not-allowed":"pointer",fontSize:c?11:12,whiteSpace:"nowrap",opacity:l?.5:1,transition:"background 0.12s, color 0.12s",maxWidth:c?30:void 0}),z=sW[e],I=sA[t],M=sN[o],P="plan"===e?d("modes.collabPlan"):"goal"===e?d("modes.collabGoal"):d("modes.collabNormal"),E="economy"===t?d("modes.tokenEconomy"):"delivery"===t?d("modes.tokenDelivery"):d("modes.tokenFull");return"ask"===o?d("modes.approvalAsk"):"yolo"===o?d("modes.approvalYolo"):d("modes.approvalAuto"),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:2},children:[(0,n.jsxs)("button",{ref:v,type:"button","aria-label":"任务模式",title:d("modes.collabNormalTitle"),"aria-expanded":"collab"===p,onClick:j("collab",v),disabled:l,style:R("collab"===p,"normal"!==e),children:[(0,n.jsx)(z,{size:13,weight:"normal"!==e?"fill":"regular",color:"normal"!==e?"var(--accent)":"var(--text-muted)","aria-hidden":"true"}),!c&&(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis"},children:P}),(0,n.jsx)(f.b,{size:10,weight:"bold","aria-hidden":"true",style:{transform:"collab"===p?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.12s",flexShrink:0}})]}),(0,n.jsxs)("button",{ref:y,type:"button","aria-label":"运行档位",title:d("modes.tokenFullTitle"),"aria-expanded":"token"===p,onClick:j("token",y),disabled:l,style:R("token"===p,"full"!==t),children:[(0,n.jsx)(I,{size:13,weight:"full"!==t?"fill":"regular",color:"full"!==t?"var(--accent)":"var(--text-muted)","aria-hidden":"true"}),!c&&(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis"},children:E}),(0,n.jsx)(f.b,{size:10,weight:"bold","aria-hidden":"true",style:{transform:"token"===p?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.12s",flexShrink:0}})]}),!c&&(0,n.jsx)("div",{role:"radiogroup","aria-label":"工具权限",style:{display:"flex",alignItems:"center",border:"1px solid var(--border)",borderRadius:7,overflow:"hidden",height:22,marginLeft:2},children:sD.map(e=>{let t=e.value===o,r=e.Icon;return(0,n.jsxs)("button",{type:"button",role:"radio","aria-checked":t,onClick:()=>{e.value!==o&&a(e.value)},title:d(e.descKey),"aria-label":d(e.titleKey),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:4,height:"100%",padding:"0 7px",background:t?"var(--bg-selected)":"none",border:"none",color:t?"yolo"===e.value?"var(--accent-red, #ef4444)":"var(--accent)":"var(--text-muted)",cursor:"pointer",fontSize:11,fontWeight:t?650:500,transition:"background 0.12s, color 0.12s",whiteSpace:"nowrap"},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="none")},children:[(0,n.jsx)(r,{size:11,weight:t?"fill":"regular","aria-hidden":"true"}),d("ask"===e.value?"modes.approvalAsk":"yolo"===e.value?"modes.approvalYolo":"modes.approvalAuto")]},e.value)})}),c&&(0,n.jsxs)("button",{ref:b,type:"button","aria-label":"工具权限",title:d("modes.approvalAutoTitle"),"aria-expanded":"approval"===p,onClick:j("approval",b),disabled:l,style:{...R("approval"===p,"ask"===o),..."yolo"===o?{color:"var(--accent-red, #ef4444)"}:{}},children:[(0,n.jsx)(M,{size:13,weight:"ask"===o?"fill":"regular",color:"ask"===o?"var(--accent)":"yolo"===o?"var(--accent-red, #ef4444)":"var(--text-muted)","aria-hidden":"true"}),(0,n.jsx)(f.b,{size:10,weight:"bold","aria-hidden":"true",style:{transform:"approval"===p?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.12s",flexShrink:0}})]})]}),T("collab",sE,e,z),T("token",sF,t,I),c&&T("approval",sD,o,M)]})}let sL=["off","default","full"],sO={off:"none",default:"default",full:"full"},sH=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function sB(e,t){return sH.compare(e.name||e.modelId,t.name||t.modelId)||sH.compare(e.provider,t.provider)||sH.compare(e.modelId,t.modelId)}let sU=["max","xhigh","high","medium","low","minimal","auto","off"];function s_({level:e,size:t=14}){if("off"===e)return(0,n.jsx)(rZ.x,{size:t,weight:"regular",color:"var(--text-dim)"});if("auto"===e)return(0,n.jsx)(r2.I,{size:t,weight:"regular",color:"var(--accent)"});let o=["medium","high","xhigh","max"].includes(e),r="var(--accent)";return(0,n.jsxs)("span",{style:{position:"relative",display:"inline-flex"},children:[(0,n.jsx)(rZ.x,{size:t,weight:o?"fill":"regular",color:r}),"high"===e&&(0,n.jsx)(x.c,{size:Math.round(.57*t),weight:"bold",color:r,style:{position:"absolute",right:-4,top:-1}}),"xhigh"===e&&(0,n.jsx)(u.C,{size:Math.round(.57*t),weight:"fill",color:r,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)(u.C,{size:Math.round(.5*t),weight:"fill",color:r,style:{marginRight:-3}}),(0,n.jsx)(u.C,{size:Math.round(.5*t),weight:"fill",color:r})]})]})}function sq(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${Math.round(e/1e3)}k`:e.toLocaleString()}let sV=["builtin","extension","prompt","skill"],sK={builtin:0,extension:1,prompt:2,skill:3};function sG(e,t){let o=e.name.toLowerCase(),n=e.description?.toLowerCase()??"";return o===t?0:o.startsWith(t)?1:o.includes(t)?2:n.includes(t)?3:4}function sJ(e,t){return"skill"===e.source&&e.name.startsWith("skill:")&&!0===t[e.name.slice(6)]}async function sY(e){let t=()=>{var t;return t=e.type,new Promise((o,n)=>{let r=new FileReader;r.onload=()=>{let e="string"==typeof r.result?r.result.split(",")[1]:void 0;e?o({data:e,mimeType:t}):n(Error("Failed to read image"))},r.onerror=n,r.readAsDataURL(e)})};if(!(e.size>1048576&&"image/gif"!==e.type)||"function"!=typeof createImageBitmap)return t();let o=await createImageBitmap(e).catch(()=>null);if(!o)return t();try{let n=Math.min(1,1024/Math.max(o.width,o.height)),r=document.createElement("canvas");r.width=Math.max(1,Math.round(o.width*n)),r.height=Math.max(1,Math.round(o.height*n));let s=r.getContext("2d");if(!s)return t();s.fillStyle="#fff",s.fillRect(0,0,r.width,r.height),s.drawImage(o,0,0,r.width,r.height);let i=r.toDataURL("image/jpeg",.85).split(",")[1];return i&&i.length<4*Math.ceil(e.size/3)?{data:i,mimeType:"image/jpeg"}:t()}catch{return t()}finally{o.close()}}function sX(e){return{data:e.data,mimeType:e.mimeType}}function sZ(e,t){let o=e;for(let e of t)o=o.split(e.label).join(e.text);return o}function sQ(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function s0(e){return{...e,previewUrl:`data:${e.mimeType};base64,${e.data}`}}function s1(e){e.previewUrl.startsWith("blob:")&&URL.revokeObjectURL(e.previewUrl)}function s2({kind:e,text:t,label:o,index:r,total:s,onMove:i,onRecall:a,onRemove:l}){let{t:d}=(0,F.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,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:o}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},children:t}),i&&s>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===r,onClick:()=>i(-1),style:{...c,opacity:0===r?.3:1},children:"↑"}),(0,n.jsx)("button",{type:"button","aria-label":d("desktop.queueMoveDown"),title:d("desktop.queueMoveDown"),disabled:r===s-1,onClick:()=>i(1),style:{...c,opacity:r===s-1?.3:1},children:"↓"})]}),a&&(0,n.jsx)("button",{type:"button","aria-label":d("desktop.queueRecallOne"),title:d("desktop.queueRecallOne"),onClick:a,style:c,children:(0,n.jsx)(rV.Y,{size:13})}),l&&(0,n.jsx)("button",{type:"button","aria-label":d("desktop.queueRemove"),title:d("desktop.queueRemove"),onClick:l,style:c,children:(0,n.jsx)(p.u,{size:13})})]})}let s4=(0,r.memo)((0,r.forwardRef)(function({onSend:e,onBash:t,onAbort:o,onSteer:s,onFollowUp:i,isStreaming:a,model:l,modelNames:d,modelList:g,modelScopeWarnings:m,modelsError:k,onRetryModels:y,onModelChange:b,compactResult:w,toolPreset:T,onToolPresetChange:z,planMode:I=!1,onPlanModeChange:M,collaborationMode:P="normal",tokenMode:E="full",toolApprovalMode:D="auto",onCollaborationModeChange:W,onTokenModeChange:A,onToolApprovalModeChange:N,goalState:L,onGoalStart:O,onGoalPause:H,onGoalResume:B,onGoalStop:U,thinkingLevel:_,onThinkingLevelChange:q,availableThinkingLevels:V,thinkingLevelMap:K,retryInfo:G,queuedMessages:J,inputHistory:Y=[],onRecallQueue:X,onMoveQueue:Z,onRecallOne:ee,onRequeueAt:et,onRemoveQueueItem:eo,slashCommands:en,slashCommandsLoading:es,onLoadSlashCommands:ei,onBuiltinCommand:ea,onAudioUnlock:el,onPromptWithStreamingBehavior:ed,draftKey:ec,cwd:ep,tasksBoardEnabled:eu=!0},eh){var eg;let em,ef,ex,ek,ev,ey,eb,ew,ej,eS,eC,eT,eR,ez,eI,eM,eP,eE,eF,eD,eW,eA,eN,e$=$(),{t:eL}=(0,F.s)(),eO={auto:"auto",off:"off",minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},eH={off:eL("desktop.toolOff"),default:eL("desktop.toolDefault"),full:eL("desktop.toolFull")},eB=[{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"}],eU={builtin:eL("desktop.builtIn"),extension:eL("desktop.extensions"),prompt:eL("desktop.prompts"),skill:eL("desktop.commandSkills")},[e_,eq]=(0,r.useState)(()=>ec?rA(ec)?.value??"":""),[eV,eK]=(0,r.useState)(()=>ec?rA(ec)?.pastedBlocks??[]:[]),[eG,eJ]=(0,r.useState)([]),eY=r.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(sQ).join("(\\d+)"),"g")}catch{return null}},[eL]),[eX,eZ]=(0,r.useState)(null),eQ=(0,r.useRef)(null),e0=(0,r.useRef)(0),[e1,e2]=(0,r.useState)(!1),[e4,e6]=(0,r.useState)(null),[e8,e5]=(0,r.useState)({height:0,width:0,offsetTop:0}),[e3,e7]=(0,r.useState)(""),[e9,te]=(0,r.useState)(()=>{try{let e=localStorage.getItem("pi-favorite-models");return e?new Set(JSON.parse(e)):new Set}catch{return new Set}}),[tt,to]=(0,r.useState)(new Set),[tn,tr]=(0,r.useState)(!1),[ts,ti]=(0,r.useState)(null),[ta,tl]=(0,r.useState)(!1),[td,tc]=(0,r.useState)(null),[tp,tu]=(0,r.useState)(!1),[th,tg]=(0,r.useState)(null),[tm,tf]=(0,r.useState)(()=>ec?rA(ec)?.images.map(s0)??[]:[]),tx=e_.trimStart(),tk=0===tm.length&&tx.startsWith("!"),tv=tk&&tx.startsWith("!!"),[ty,tb]=(0,r.useState)(!1),[tw,tj]=(0,r.useState)(0),[tS,tC]=(0,r.useState)({}),[tT,tR]=(0,r.useState)(()=>{try{return"ctrl-enter"===localStorage.getItem("pi-input-shortcut")?"ctrl-enter":"enter"}catch{return"enter"}}),[tz,tI]=(0,r.useState)(null),[tM,tP]=(0,r.useState)(!1),[tE,tF]=(0,r.useState)(0),[tD,tW]=(0,r.useState)(!1),[tA,tN]=(0,r.useState)(0),[t$,tL]=(0,r.useState)(null),[tO,tH]=(0,r.useState)(!1),[tB,tU]=(0,r.useState)(null),t_=(0,r.useRef)(null),tq=(0,r.useRef)(null),tV=(0,r.useRef)(null),tK=(0,r.useRef)(null),tG=(0,r.useRef)(null),tJ=(0,r.useRef)(null),tY=(0,r.useRef)(null),tX=(0,r.useRef)(null),tZ=(0,r.useRef)(null),tQ=(0,r.useRef)(null),t0=(0,r.useRef)(!1),t1=(0,r.useRef)(0),t2=(0,r.useRef)(!1),t4=(0,r.useRef)([]),t6=(0,r.useRef)([]),t8=(0,r.useRef)([]),t5=(0,r.useRef)(null),t3=(0,r.useRef)(null),t7=(0,r.useRef)(ec),t9=(0,r.useRef)(e_),oe=(0,r.useRef)(tm),ot=(0,r.useRef)(eV),oo=(0,r.useRef)(null),[on,or]=(0,r.useState)(!1);t9.current=e_,oe.current=tm,ot.current=eV,(0,r.useImperativeHandle)(eh,()=>({insertIfEmpty(e){let t=t_.current;(t?t.value:e_).trim()||(eq(e),tI(null),requestAnimationFrame(()=>{t&&(t.focus(),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)}))},replaceMessage(e){var t,o;let n=t_.current;t=n?n.value:e_,o=oe.current.length,t.trim()||0!==o||(eq("string"==typeof e.content?e.content:e.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n")),tI(null),tW(!1),tf(t=>(t.forEach(s1),(("string"==typeof e.content?[]:e.content.flatMap(e=>{if("image"!==e.type)return[];let t=e.source?.type==="base64"?e.source.data:e.data,o=e.source?.type==="base64"?e.source.media_type:e.mimeType;return"string"!=typeof t||"string"!=typeof o?[]:rO({type:"image",data:t,mimeType:o})?[{data:t,mimeType:o}]:[]}))??[]).filter(rO).slice(0,10).map(s0))),requestAnimationFrame(()=>{n&&(n.focus(),n.style.height="auto",n.style.height=`${Math.min(n.scrollHeight,200)}px`)}))},prependText(e){if(!e.trim())return;let t=t_.current,o=[e,t?t.value:e_].filter(e=>e.trim()).join("\n\n");eq(o),tI(null),requestAnimationFrame(()=>{t&&(t.focus(),t.setSelectionRange(o.length,o.length),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)})},insertText(e){let t=t_.current;if(!t)return void eq(t=>t+(t?" ":"")+e);let o=t.selectionStart??t.value.length,n=t.selectionEnd??t.value.length,r=t.value.slice(0,o),s=t.value.slice(n),i=r.length>0&&!r.endsWith(" ")?" ":"";eq(r+i+e+s),tI(null),requestAnimationFrame(()=>{if(!t)return;let n=o+i.length+e.length;t.setSelectionRange(n,n),t.focus(),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`})},addImages(e){os(e)},addFiles(e,t){let o=function(e,t,o){let n=e.map(()=>null),r=t.split(/\r?\n/).map(e=>e.trim()).filter(e=>e&&!e.startsWith("#")).filter(e=>e.startsWith("file://"));if(r.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}(r[t]);return n}if(1===e.length&&o.trim()){let e=o.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/")),r=e.map((e,t)=>e.type.startsWith("image/")?null:o[t]??e.name).filter(e=>!!e);if(n.length&&os(n),r.length&&!a){let e=r.join(" ");eq(t=>t+(t&&!t.endsWith(" ")?" ":"")+e)}},measureHeight:()=>tJ.current?.getBoundingClientRect().height??0}));let os=(0,r.useCallback)(async e=>{let t=e.filter(e=>e.type.startsWith("image/"));if(!t.length)return;let o=await Promise.all(t.map(async e=>({...await sY(e),previewUrl:URL.createObjectURL(e)})));tf(e=>[...e,...o])},[]),oi=(0,r.useCallback)((e,t)=>{te(o=>{let n=`${e}:${t}`,r=new Set(o);return r.has(n)?r.delete(n):r.add(n),localStorage.setItem("pi-favorite-models",JSON.stringify([...r])),r})},[]),oa=(0,r.useCallback)(e=>{to(t=>{let o=new Set(t);return o.has(e)?o.delete(e):o.add(e),o})},[]),ol=(0,r.useCallback)(e=>{tf(t=>{let o=[...t],[n]=o.splice(e,1);return n&&s1(n),o})},[]),od=(0,r.useCallback)(()=>{tf(e=>(e.forEach(s1),[]))},[]),oc=(0,r.useCallback)(()=>{var e;eq(""),tI(null),eK([]),eJ([]),ec&&rD.delete(ec),t7.current&&t7.current!==ec&&(e=t7.current,rD.delete(e)),od(),t_.current&&(t_.current.style.height="auto")},[od,ec]),op=(0,r.useCallback)(async(e,t,o)=>{await Z?.(e,t,t+o)},[Z]),ou=(0,r.useCallback)(async(e,t)=>{await eo?.(e,t)},[eo]),oh=(0,r.useCallback)(async(e,t)=>{let o=await ee?.(e,t);if(!o)return;oo.current={kind:e,index:t,text:o.text,images:o.images},or(!0);let n=t_.current?.value??e_,r=[o.text,n].filter(e=>e.trim()).join("\n\n");eq(r),tI(null),requestAnimationFrame(()=>{let e=t_.current;e&&(e.focus(),e.setSelectionRange(r.length,r.length),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[ee,e_]);(0,r.useEffect)(()=>{ec&&t7.current===ec&&rN(ec,{value:e_,images:tm.map(sX),pastedBlocks:eV.length?eV:void 0})},[tm,ec,e_,eV]),(0,r.useEffect)(()=>{let e=t7.current;if(e===ec)return;e&&rN(e,{value:t9.current,images:oe.current.map(sX),pastedBlocks:ot.current.length?ot.current:void 0});let t=ec?rA(ec):null;t7.current=ec,eq(t?.value??""),tI(null),eK(t?.pastedBlocks??[]),eJ([]),tf(e=>(e.forEach(s1),t?.images.map(s0)??[]))},[ec]),(0,r.useEffect)(()=>{let e=t_.current;e&&(e.style.height="auto",e_&&(e.style.height=`${Math.min(e.scrollHeight,200)}px`))},[e_]),(0,r.useEffect)(()=>{let e=()=>{try{tR("ctrl-enter"===localStorage.getItem("pi-input-shortcut")?"ctrl-enter":"enter")}catch{tR("enter")}};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[]),(0,r.useEffect)(()=>()=>{oe.current.forEach(s1)},[]);let og=(0,r.useCallback)(e=>{let t;if(!eY)return null;for(eY.lastIndex=0;null!==(t=eY.exec(e));){let e=t[0];if(!(ot.current.some(t=>t.label===e)||ot.current.some(t=>t.text.includes(e))))return e}return null},[eY]),om=(0,r.useCallback)(()=>{eZ(eL("desktop.pastedMissingContent")),eQ.current&&clearTimeout(eQ.current),eQ.current=setTimeout(()=>eZ(null),5e3)},[eL]),of=(0,r.useCallback)(async()=>{let o=sZ(e_,eV),n=o.trim();if(!n&&!tm.length)return;if(og(o))return void om();if(a)return;el?.();let r=oo.current;if(r&&et){if(oo.current=null,or(!1),!await et(r.kind,r.index,n,tm.length?tm.map(sX):r.images)){oo.current={...r,text:n},or(!0);return}oc();return}if(!tm.length&&n.startsWith("!")&&t){let e=n.startsWith("!!"),o=n.slice(e?2:1).trim();if(!o)return;t(o,e),oc();return}if(!tm.length&&n.startsWith("/")&&ea){let e=await ea(n);if(e.handled){e.error||oc();return}}e(n,tm.length?tm:void 0),oc()},[e_,eV,tm,a,t,ea,e,oc,el,et,og,om]),ox=e_.startsWith("/")&&!/\s/.test(e_.slice(1))?e_.slice(1).toLowerCase():null,{commands:ok,groups:ov}=(eg=null===ox?[]:[...a?[]:eB,...en??[]].filter(e=>{let t=e.name.toLowerCase(),o=e.description?.toLowerCase()??"";return t.includes(ox)||o.includes(ox)}).sort((e,t)=>{let o=sG(e,ox)-sG(t,ox);return 0!==o?o:sK[e.source]-sK[t.source]||sH.compare(e.name,t.name)}),em=0,{commands:(ef=sV.map(e=>{let t=eg.filter(t=>t.source===e),o="skill"===e?[...t.filter(e=>!sJ(e,tS)),...t.filter(e=>sJ(e,tS))]:t;return{source:e,items:o.map(e=>({command:e,index:em++}))}}).filter(e=>e.items.length>0)).flatMap(e=>e.items.map(({command:e})=>e)),groups:ef});(0,r.useEffect)(()=>{if(!ty||!ep)return;let e=!1;return fetch(`/api/skills?cwd=${encodeURIComponent(ep)}`).then(e=>e.ok?e.json():null).then(t=>{!e&&t&&tC(Object.fromEntries(t.skills.map(e=>[e.name,e.disableModelInvocation])))}).catch(()=>{}),()=>{e=!0}},[ep,ty]);let oy=`${ok.length} ${eL(ox?1===ok.length?"desktop.match":"desktop.matches":1===ok.length?"desktop.command":"desktop.commands")}`,ob=!!e_.trim()||tm.length>0,ow=(0,r.useCallback)((e,t)=>{if(!ep)return void tI(null);let o=t??e.length;tI(rH(e.slice(0,o)))},[ep]),[oj,oS]=(0,r.useState)(null),oC=(0,r.useRef)(oj);oC.current=oj;let[oT,oR]=(0,r.useState)([]),oz=(0,r.useRef)(!1),oI=(0,r.useCallback)(async()=>{try{let e=await fetch("/api/snippets");if(!e.ok)return;let t=await e.json();oR(t.snippets??[]),oz.current=!0}catch{}},[]);(0,r.useEffect)(()=>{oI();let e=()=>void oI();return window.addEventListener("pi:snippets-changed",e),()=>window.removeEventListener("pi:snippets-changed",e)},[oI]);let oM=oj?.query??null,oP=r.useMemo(()=>{if(null===oM||!1===oz.current)return[];let e=oM.toLowerCase();return oT.filter(t=>t.name.toLowerCase().includes(e))},[oM,oT]),[oE,oF]=(0,r.useState)(0);(0,r.useEffect)(()=>{oF(0)},[oM]);let oD=(0,r.useCallback)((e,t)=>{var o;let n,r=t??e.length,s=(o=e.slice(0,r),(n=/(?:^|[\s(])(#[\w-]+)$/.exec(o))?{start:o.length-n[1].length,end:o.length,query:n[1].slice(1)}:null);oS(s),s&&oF(0)},[]),oW=(0,r.useCallback)(e=>{let t=oC.current;if(!t)return;let o=e_.slice(0,t.start),n=e_.slice(t.end);eq(o+e.content+n),oS(null);let r=o.length+e.content.length;requestAnimationFrame(()=>{let e=t_.current;e&&(e.focus(),e.setSelectionRange(r,r))})},[e_]),oA=(0,r.useCallback)(e=>{let t=oP[e];t&&oW(t)},[oP,oW]),oN=tz?.query??null,o$=r.useMemo(()=>null!==oN&&t$&&t$.cwd===ep?function(e,t,o=20){let n=t.toLowerCase();if(!n)return e.slice(0,o);let r=[];for(let t of e){let e=function(e,t){let o=e.path.toLowerCase(),n=0;if(t.includes("/"))o===t?n=100:o.startsWith(t)?n=80:o.includes(t)?n=50:rU(t,o)&&(n=10);else{let e=o.lastIndexOf("/"),r=-1===e?o:o.slice(e+1);r===t?n=100:r.startsWith(t)?n=80:r.includes(t)?n=50:o.includes(t)?n=30:rU(t,o)&&(n=10)}return e.isDir&&n>0&&(n+=10),n}(t,n);e>0&&r.push({entry:t,score:e})}return r.sort((e,t)=>t.score-e.score||rB(e.entry.path)-rB(t.entry.path)||e.entry.path.localeCompare(t.entry.path)),r.slice(0,o).map(e=>e.entry)}(t$.entries,oN):[],[oN,t$,ep]),oL=!!(oN&&t$?.truncated&&t$.cwd===ep);(0,r.useEffect)(()=>{if(!oL||!ep||!oN)return;let e=setTimeout(()=>{fetch(`/api/file-index?cwd=${encodeURIComponent(ep)}&q=${encodeURIComponent(oN)}`).then(e=>{if(!e.ok)throw Error(`file search failed: ${e.status}`);return e.json()}).then(e=>tU({cwd:ep,query:oN,matches:e.matches??[]})).catch(()=>{})},150);return()=>clearTimeout(e)},[oL,oN,ep]);let oO=oL&&null!==tB&&tB.cwd===ep&&tB.query===oN,oH=oO?tB.matches:o$,oB=null===tz?null:`${tz.start}:${+!!tz.quoted}:${tz.query}`;(0,r.useEffect)(()=>{if(null===oB){tP(!1),tF(0);return}tP(!0),tF(0)},[oB]);let oU=null!==tz;(0,r.useEffect)(()=>{if(!oU||!ep)return;let e=t5.current;e&&e.cwd===ep&&Date.now()-e.fetchedAt<1e4||t3.current===ep||(t3.current=ep,tH(!0),fetch(`/api/file-index?cwd=${encodeURIComponent(ep)}`).then(e=>{if(!e.ok)throw Error(`file index failed: ${e.status}`);return e.json()}).then(e=>{tL({cwd:ep,entries:function(e){let t=new Set;for(let o of e){let e=o.indexOf("/");for(;-1!==e;)t.add(o.slice(0,e)),e=o.indexOf("/",e+1)}let o=[];for(let e of t)o.push({path:e,isDir:!0});for(let t of e)t&&o.push({path:t,isDir:!1});return o.sort((e,t)=>rB(e.path)-rB(t.path)||e.path.localeCompare(t.path)),o}(e.files??[]),truncated:!!e.truncated}),t5.current={cwd:ep,fetchedAt:Date.now()}}).catch(()=>{t5.current=null}).finally(()=>{t3.current=null,tH(!1)}))},[oU,ep]);let o_=(0,r.useCallback)(e=>{if(!tz)return;let t=t_.current,o=t?.selectionStart??e_.length,n=e_.slice(0,tz.start),r=e_.slice(o);tz.quoted&&r.startsWith('"')&&(r=r.slice(1));let s=function(e,t,o=!1){let n=t?`${e}/`:e,r=o||n.includes(" ");if(t){let e=r?`@"${n}"`:`@${n}`;return{text:e,cursorOffset:r?e.length-1:e.length}}let s=r?`@"${n}" `:`@${n} `;return{text:s,cursorOffset:s.length}}(e.path,e.isDir,tz.quoted),i=n+s.text+r,a=n.length+s.cursorOffset;eq(i),tI(rH(i.slice(0,a))),requestAnimationFrame(()=>{let e=t_.current;e&&(e.focus(),e.setSelectionRange(a,a),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[tz,e_]);(0,r.useEffect)(()=>{tE>=oH.length&&tF(Math.max(0,oH.length-1))},[oH.length,tE]),(0,r.useEffect)(()=>{t6.current.length=oH.length},[oH.length]),(0,r.useEffect)(()=>{tM&&t6.current[tE]?.scrollIntoView({block:"nearest",inline:"nearest"})},[tE,tM]);let oq=(0,r.useCallback)(e=>{eq(e),tI(null),tW(!1),tN(0),requestAnimationFrame(()=>{let t=t_.current;t&&(t.focus(),t.setSelectionRange(e.length,e.length),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)})},[]),oV=(0,r.useCallback)(e=>{let t=`/${e.name} `;eq(t),tb(!1),tj(0),requestAnimationFrame(()=>{let e=t_.current;e&&(e.focus(),e.setSelectionRange(t.length,t.length),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[]),oK=(0,r.useCallback)(()=>{let e=t_.current;if(!e)return;let t=e.selectionStart??e.value.length,o=e.value.slice(0,t),n=e.value.slice(e.selectionEnd??t),r=o.length>0&&!o.endsWith(" ")?" ":"",s=o+r+"@"+n;eq(s);let i=t+r.length+1;ow(s,i),requestAnimationFrame(()=>{e&&(e.setSelectionRange(i,i),e.focus(),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[]),oG=(0,r.useCallback)(()=>{let e=t_.current;if(!e)return;let t=e.selectionStart??e.value.length,o=e.value.slice(0,t),n=e.value.slice(e.selectionEnd??t),r=o.length>0&&!o.endsWith(" ")?" ":"",s=o+r+"#"+n;eq(s),ow(s,t+r.length+1),requestAnimationFrame(()=>{e&&(e.setSelectionRange(t+r.length+1,t+r.length+1),e.focus(),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[]),oJ=(0,r.useCallback)(()=>{let e=t_.current;if(!e)return;let t=e.selectionStart??e.value.length,o=e.value.slice(0,t),n=e.value.slice(e.selectionEnd??t),r=o.length>0&&!o.endsWith(" ")?" ":"";eq(o+r+"/"+n);let s=t+r.length+1;requestAnimationFrame(()=>{e&&(e.setSelectionRange(s,s),e.focus(),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[]),oY=(0,r.useCallback)(e=>{let t=sZ(e_,eV);if(og(t))return void om();let o=t.trim();if(o||tm.length){if(el?.(),o.startsWith("/")&&ed){ed(o,"steer"===e?"steer":"followUp",tm.length?tm:void 0),oc();return}"steer"===e&&s?s(o,tm.length?tm:void 0):"followup"===e&&i&&i(o,tm.length?tm:void 0),oc()}},[e_,eV,tm,ed,s,i,oc,el,og,om]),oX=(0,r.useCallback)(e=>{let t=ok.length-1;if(t<0)return 0;if("left"===e)return Math.max(0,tw-1);if("right"===e)return Math.min(t,tw+1);let o=t4.current[tw];if(!o)return"down"===e?Math.min(t,tw+1):Math.max(0,tw-1);let n=o.getBoundingClientRect(),r=n.left+n.width/2,s=n.top+n.height/2,i=-1,a=1/0;for(let o=0;o<=t;o+=1){if(o===tw)continue;let t=t4.current[o];if(!t)continue;let n=t.getBoundingClientRect(),l=n.top+n.height/2-s;if("down"===e?l<=4:l>=-4)continue;let d=1e3*Math.abs(l)+Math.abs(n.left+n.width/2-r);d<a&&(i=o,a=d)}return i>=0?i:"down"===e?Math.min(t,tw+1):Math.max(0,tw-1)},[ok.length,tw]),oZ=(0,r.useCallback)(e=>{let t=e.nativeEvent,n=Date.now()-t1.current<100,r=t0.current||t.isComposing||229===t.keyCode;if("Enter"===e.key&&!e.shiftKey&&(r||n)){n&&e.preventDefault();return}if((e.ctrlKey||e.metaKey)&&!e.altKey&&!e.shiftKey&&"i"===e.key.toLowerCase()&&!r&&ep){e.preventDefault();let t=e.currentTarget,o=t.selectionStart??t.value.length,n=t.selectionEnd??o,r=t.value.slice(0,o),s=t.value.slice(n),i=r&&!/[\s@]$/.test(r)?" ":"",a=`${r}${i}@${s}`,l=r.length+i.length+1;eq(a),tI(rH(a.slice(0,l))),tP(!0),requestAnimationFrame(()=>{t.focus(),t.setSelectionRange(l,l)});return}if(tD&&!r){if("ArrowDown"===e.key){e.preventDefault(),tN(e=>Math.min(Math.max(0,(Y?.length??0)-1),e+1));return}if("ArrowUp"===e.key){e.preventDefault(),tN(e=>Math.max(0,e-1));return}if("Escape"===e.key){e.preventDefault(),tW(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&Y?.[tA]){e.preventDefault(),oq(Y[tA]);return}}if(ty&&null!==ox){if("ArrowDown"===e.key){e.preventDefault(),tj(oX("down"));return}if("ArrowUp"===e.key){e.preventDefault(),tj(oX("up"));return}if("ArrowRight"===e.key){e.preventDefault(),tj(oX("right"));return}if("ArrowLeft"===e.key){e.preventDefault(),tj(oX("left"));return}if("Escape"===e.key){e.preventDefault(),tb(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&ok[tw]){e.preventDefault(),oV(ok[tw]);return}}if(tM&&null!==tz&&!r){if("ArrowDown"===e.key){e.preventDefault(),tF(e=>Math.min(Math.max(0,oH.length-1),e+1));return}if("ArrowUp"===e.key){e.preventDefault(),tF(e=>Math.max(0,e-1));return}if("Escape"===e.key){e.preventDefault(),tP(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&oH[tE]){e.preventDefault(),o_(oH[tE]);return}}if(null!==oj&&oP.length>0&&!r){if("ArrowDown"===e.key){e.preventDefault(),oF(e=>Math.min(Math.max(0,oP.length-1),e+1));return}if("ArrowUp"===e.key){e.preventDefault(),oF(e=>Math.max(0,e-1));return}if("Escape"===e.key){e.preventDefault(),oS(null);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&oP[oE]){e.preventDefault(),oA(oE);return}}if("ArrowUp"===e.key&&!r&&!a&&(Y?.length??0)>0&&0===e_.trim().length){e.preventDefault(),tb(!1),tP(!1),tN(0),tW(!0);return}if("Escape"===e.key&&!r&&a&&o){e.preventDefault(),o();return}if("Enter"===e.key&&!e.shiftKey){if("ctrl-enter"===tT&&!(e.ctrlKey||e.metaKey))return;e.preventDefault(),a&&(s||i)?oY(s?"steer":"followup"):of()}},[a,s,i,o,ty,ox,ok,tw,oV,oY,of,oX,tM,tz,oH,tE,o_,oj,oP,oE,oA,tT,ep,tD,Y,tA,oq,e_]),oQ=(0,r.useCallback)(()=>{let e=t_.current;e&&(e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)},[]),o0=(0,r.useCallback)(e=>{let t=Array.from(e.clipboardData?.items??[]),o=t.filter(e=>e.type.startsWith("image/"));if(o.length){e.preventDefault(),os(o.map(e=>e.getAsFile()).filter(e=>null!==e));return}let n=function(e,t){if(!e)return[];let o=[],n=Array.from(e.files??[]);for(let e of n){let t=e.path;"string"==typeof t&&t.trim()&&o.push(t.trim())}if(o.length>0)return Array.from(new Set(o));for(let t of Array.from(e.items??[]))if("file"===t.kind){let e=t.getAsFile(),n=e?.path;"string"==typeof n&&n.trim()&&o.push(n.trim())}if(o.length>0)return Array.from(new Set(o));for(let t of rL)try{let n=e.getData(t);if(n){let e=function(e){if(!e)return[];let t=e.split(/\r?\n/),o=[];for(let e of t){let t=e.trim();!(!t||t.startsWith("#"))&&"copy"!==t&&"cut"!==t&&(t.startsWith("file://")?o.push(r$(t)):(t.startsWith("/")||/^[a-zA-Z]:[\\/]/.test(t))&&o.push(t))}return o}(n);e.length>0&&o.push(...e)}}catch{}if(o.length>0)return Array.from(new Set(o));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)o.push(r$(e))}}catch{}if(o.length>0)return Array.from(new Set(o));if(t?.fallbackToFileName&&n.length>0)for(let e of n)e.name&&o.push(e.name);return Array.from(new Set(o))}(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),o=t_.current,r=o?.selectionStart??e_.length,s=o?.selectionEnd??e_.length;eq(e_.slice(0,r)+t+e_.slice(s)),requestAnimationFrame(()=>{if(o){let e=r+t.length;o.selectionStart=e,o.selectionEnd=e,oQ()}});return}if(!t.find(e=>e.type.startsWith("text/plain")))return;let r=e.clipboardData.getData("text/plain");if(!r)return;let s=r.split(/\r?\n/).length;if(r.length<2e3&&s<20)return;e.preventDefault();let i=`paste-${++e0.current}`,a=eL("desktop.pastedLabel",{id:e0.current,lines:s}),l=t_.current,d=l?.selectionStart??e_.length,c=l?.selectionEnd??e_.length,p=e_.slice(0,d),u=e_.slice(c),h=!(p.length>0)||p.endsWith("\n")||p.endsWith(" ")?"":"\n\n";eq(p+h+a+u),eK(e=>[...e,{id:i,label:a,text:r}]),requestAnimationFrame(()=>{if(!l)return;let e=d+h.length+a.length;l.setSelectionRange(e,e),l.focus()})},[os,eL,e_,oQ]);(0,r.useEffect)(()=>{tA>=(Y?.length??0)&&tN(Math.max(0,(Y?.length??0)-1))},[tA,Y]),(0,r.useEffect)(()=>{t8.current.length=Y?.length??0},[Y]),(0,r.useEffect)(()=>{tD&&t8.current[tA]?.scrollIntoView({block:"nearest",inline:"nearest"})},[tA,tD]),(0,r.useEffect)(()=>{if(null===ox){tb(!1),tj(0),t2.current=!1;return}tb(!0),tj(0),!t2.current&&ei&&(t2.current=!0,Promise.resolve(ei()).catch(()=>{t2.current=!1}))},[ox,ei]),(0,r.useEffect)(()=>{tw>=ok.length&&tj(Math.max(0,ok.length-1))},[ok.length,tw]),(0,r.useEffect)(()=>{t4.current.length=ok.length},[ok.length]),(0,r.useEffect)(()=>{ty&&t4.current[tw]?.scrollIntoView({block:"nearest",inline:"nearest"})},[tw,ty]);let o1=g&&g.length>0?g.map(e=>({provider:e.provider,modelId:e.id,name:e.name})).sort(sB):Object.entries(d??{}).map(([e,t])=>({provider:l?.provider??"unknown",modelId:e,name:t})).sort(sB),o2=[];for(let e of o1){let t=o2.find(t=>t.provider===e.provider);t?t.options.push(e):o2.push({provider:e.provider,options:[e]})}let o4=l?o1.find(e=>e.modelId===l.modelId&&e.provider===l.provider)?.name??l.modelId:null,o6=w?Math.max(0,w.tokensBefore-w.estimatedTokensAfter):0,o8=w?`${eL("desktop.compacted")} ${sq(w.tokensBefore)} -> ${sq(w.estimatedTokensAfter)} ${eL("desktop.tokens")} (${sq(o6)} ${eL("desktop.saved")})`:null,o5="auto"!==(ex=_??"auto")&&K?K[ex]??eO[ex]:eO[ex],o3=Object.entries(sO).find(([,e])=>e===(T??"default"))?.[0],o7="plan"===T?eL("desktop.planModeLabel"):eH[o3??"default"];(0,r.useEffect)(()=>{let e=e=>{tq.current&&!tq.current.contains(e.target)&&tV.current&&!tV.current.contains(e.target)&&e2(!1),tG.current&&!tG.current.contains(e.target)&&tr(!1),tY.current&&!tY.current.contains(e.target)&&tu(!1),tX.current&&!tX.current.contains(e.target)&&tl(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,r.useEffect)(()=>{let e=null,t=()=>{e=null;let t=window.visualViewport;e5({height:t?.height??window.innerHeight,width:t?.width??window.innerWidth,offsetTop:t?.offsetTop??0})},o=()=>{null!==e&&window.cancelAnimationFrame(e),e=window.requestAnimationFrame(t)};return o(),window.addEventListener("resize",o),window.visualViewport?.addEventListener("resize",o),window.visualViewport?.addEventListener("scroll",o),window.addEventListener("focusin",o),window.addEventListener("focusout",o),window.addEventListener("pageshow",o),()=>{window.removeEventListener("resize",o),window.visualViewport?.removeEventListener("resize",o),window.visualViewport?.removeEventListener("scroll",o),window.removeEventListener("focusin",o),window.removeEventListener("focusout",o),window.removeEventListener("pageshow",o),null!==e&&window.cancelAnimationFrame(e)}},[]),(0,r.useEffect)(()=>{e1&&tK.current?.focus()},[e1]);let[o9,ne]=(0,r.useState)(null);return(0,r.useEffect)(()=>{if(!ep||!eu)return void ne(null);let e=!1,t=async()=>{try{let t=await fetch("/api/tasks/projects"),{projects:o}=await t.json(),n=o.find(e=>ep===e||ep.startsWith(e+"/")||e.startsWith(ep+"/"));if(!n){e||ne(null);return}let r=await (0,rq.Vk)(n);if(e)return;ne({running:r.filter(e=>["running","awaiting_input","preparing","merging"].includes(e.status)).length,todo:r.filter(e=>["todo","queued"].includes(e.status)).length})}catch{e||ne(null)}};t();let o=new EventSource("/api/tasks/events");return o.onmessage=()=>void t(),()=>{e=!0,o.close()}},[ep,eu]),(0,n.jsxs)("div",{style:{flexShrink:0,background:"transparent",padding:"0 16px 15px",paddingRight:e$?16:34},children:[(0,n.jsx)("input",{ref:tQ,type:"file",accept:"image/*",multiple:!0,style:{display:"none"},onChange:e=>{os(Array.from(e.target.files??[])),e.target.value=""}}),(0,n.jsxs)("div",{style:{maxWidth:820,margin:"0 auto"},children:[o9&&(o9.running>0||o9.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)(R.m,{size:12,"aria-hidden":"true"}),o9.running>0&&(0,n.jsxs)("span",{style:{color:"var(--accent)"},children:[o9.running," ",eL("desktop.taskRunning")]}),o9.running>0&&o9.todo>0&&(0,n.jsx)("span",{"aria-hidden":"true",children:"\xb7"}),o9.todo>0&&(0,n.jsxs)("span",{children:[o9.todo," ",eL("desktop.taskTodo")]})]}),m&&m.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:m.join(" ")}),(J?.steering.length??0)+(J?.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"},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 ",(J?.steering.length??0)+(J?.followUp.length??0)]}),X&&(0,n.jsxs)("button",{onClick:X,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)(rV.Y,{size:13}),eL("desktop.recallToInput")]})]}),J?.steering.map((e,t)=>(0,n.jsx)(s2,{kind:"steer",label:eL("desktop.steer"),text:e,index:t,total:J.steering.length,onMove:Z?e=>void op("steer",t,e):void 0,onRecall:ee?()=>void oh("steer",t):void 0,onRemove:eo?()=>void ou("steer",t):void 0},`steer-${t}`)),J?.followUp.map((e,t)=>(0,n.jsx)(s2,{kind:"follow-up",label:eL("desktop.followUp"),text:e,index:t,total:J.followUp.length,onMove:Z?e=>void op("followUp",t,e):void 0,onRecall:ee?()=>void oh("followUp",t):void 0,onRemove:eo?()=>void ou("followUp",t):void 0},`followup-${t}`))]}),on&&(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")}),G&&(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)(j.B,{size:11,style:{flexShrink:0}}),eL("desktop.retrying")," (",G.attempt,"/",G.maxAttempts,")…",G.errorMessage&&(0,n.jsxs)("span",{style:{opacity:.7,marginLeft:4},children:["— ",G.errorMessage]})]}),o8&&(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)(h.S,{size:11,style:{flexShrink:0}}),o8]}),tm.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:6,marginBottom:6,flexWrap:"wrap"},children:tm.map((e,t)=>(0,n.jsxs)("div",{style:{position:"relative",flexShrink:0},children:[(0,n.jsx)("img",{src:e.previewUrl,alt:"",style:{width:56,height:56,objectFit:"cover",borderRadius:6,border:"1px solid var(--border)",display:"block"}}),(0,n.jsx)("button",{onClick:()=>ol(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)(p.u,{size:8})})]},t))}),(0,n.jsxs)("div",{style:{position:"relative"},children:[tD&&Y.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:Y.map((e,t)=>(0,n.jsxs)("button",{ref:e=>{t8.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),oq(e)},onMouseEnter:()=>tN(t),style:{width:"100%",display:"flex",alignItems:"flex-start",gap:8,padding:"5px 6px",border:"none",borderRadius:5,background:t===tA?"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}`))})]}),ty&&null!==ox&&(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:es?eL("desktop.loadingCommands"):`${eL("desktop.slashCommands")} \xb7 ${oy}`}),(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:es||0!==ok.length?ov.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:eU[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 o=t===tw;return(0,n.jsxs)("button",{ref:e=>{t4.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),oV(e)},onMouseEnter:()=>tj(t),style:{width:"100%",display:"flex",alignItems:"center",gap:8,padding:"3px 6px",border:"none",borderRadius:5,background:o?"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}),sJ(e,tS)&&(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")})})]}),tM&&null!==tz&&(ek=tO&&(!t$||t$.cwd!==ep),ev=`${oH.length} ${eL(1===oH.length?"desktop.match":"desktop.matches")}`,ey=t$?.truncated&&!oO?tz.query?` \xb7 ${eL("desktop.searchingAllFiles")}`:` \xb7 ${eL("desktop.indexTruncated")}`:"",(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.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:ek?eL("desktop.loadingFiles"):`${eL("desktop.files")} \xb7 ${ev}${ey}`}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:eL("desktop.tabOrEnter")})]}),(0,n.jsx)("div",{style:{maxHeight:"calc(min(30vh, 240px) - 24px)",overflowY:"auto",padding:2},children:ek||0!==oH.length?oH.map((e,t)=>{let o=t===tE,r=e.path.split("/").pop()??e.path,s=e.path.slice(0,e.path.length-r.length);return(0,n.jsxs)("button",{ref:e=>{t6.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),o_(e)},onMouseEnter:()=>tF(t),style:{width:"100%",display:"flex",alignItems:"center",gap:5,padding:"3px 6px",border:"none",borderRadius:5,background:o?"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)(Q,{size:14,name:r}):er(r,14)}),(0,n.jsxs)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[s&&(0,n.jsx)("span",{style:{color:"var(--text-dim)"},children:s}),r,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:oL&&!oO?eL("desktop.searching"):eL("desktop.noMatchingFiles")})})]})),null!==oj&&oP.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:[oP.length," ",eL("desktop.snippetMatches")]})}),(0,n.jsx)("div",{style:{maxHeight:"min(26vh, 210px)",overflowY:"auto"},children:oP.map((e,t)=>(0,n.jsxs)("button",{type:"button",onMouseEnter:()=>oF(t),onClick:()=>oA(t),style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 10px",background:t===oE?"var(--bg-selected)":"none",border:"none",color:t===oE?"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 ${a&&(s||i)?"is-streaming":""} ${"yolo"===D?"is-yolo":""}`,ref:tJ,onClick:e=>{e.target.closest("button, input, select, [role=button]")||t_.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:[a&&(0,n.jsx)("div",{className:"chat-input-streaming-overlay hatch-45","aria-hidden":"true"}),a&&(s||i)&&(0,n.jsxs)("div",{className:"chat-input-streaming-actions",children:[s&&(0,n.jsx)("button",{type:"button",className:"chat-input-streaming-action chat-input-streaming-action-steer",onClick:()=>oY("steer"),disabled:!ob,title:eL("desktop.injectMessageNow"),"aria-label":eL("desktop.steer"),children:(0,n.jsx)(rK.A,{size:15})}),i&&(0,n.jsx)("button",{type:"button",className:"chat-input-streaming-action",onClick:()=>oY("followup"),disabled:!ob,title:eL("desktop.queueMessageAfterFinish"),"aria-label":eL("desktop.followUp"),children:(0,n.jsx)(rY.M,{size:15})})]}),eX&&(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:eX}),eV.length>0&&(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:4,marginBottom:6},children:eV.map(e=>{let t=eG.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)(rJ.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:()=>eJ(o=>t?o.filter(t=>t!==e.id):[...o,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)(rG.b,{size:12,"aria-hidden":"true"})}),(0,n.jsx)("button",{type:"button",onClick:()=>{eK(t=>t.filter(t=>t.id!==e.id)),eq(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)(S.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:tk?"var(--tool-bg)":void 0},children:["goal"===P&&L&&"idle"!==L.status&&(0,n.jsxs)("span",{style:{flexShrink:0,display:"inline-flex",alignItems:"center",gap:6,marginRight:8,padding:"2px 8px",borderRadius:6,background:"complete"===L.status?"color-mix(in srgb, var(--accent-green, #22c55e) 14%, transparent)":"blocked"===L.status||"paused"===L.status?"color-mix(in srgb, #f59e0b 14%, transparent)":"color-mix(in srgb, var(--accent) 12%, transparent)",color:"complete"===L.status?"var(--accent-green, #22c55e)":"blocked"===L.status||"paused"===L.status?"#f59e0b":"var(--accent)",fontSize:11,fontWeight:600,whiteSpace:"nowrap",userSelect:"none"},title:L.goalText??"",children:[(0,n.jsx)(nU.d,{size:12,weight:"fill","aria-hidden":"true"}),"running"===L.status&&(0,n.jsxs)("span",{children:[eL("desktop.goalRunning")," \xb7 ",L.turnsUsed,"/",L.turnsLimit]}),"complete"===L.status&&(0,n.jsx)("span",{children:eL("desktop.goalComplete")}),"blocked"===L.status&&(0,n.jsx)("span",{children:eL("desktop.goalBlocked")}),"paused"===L.status&&(0,n.jsx)("span",{children:eL("desktop.goalPaused")}),L.noProgressTurns>0&&"running"===L.status&&(0,n.jsxs)("span",{style:{opacity:.8},children:["\xb7 ",eL("desktop.goalNoProgress",{n:L.noProgressTurns})]}),"running"===L.status&&(0,n.jsx)("button",{type:"button",onClick:H,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"===L.status||"blocked"===L.status)&&(0,n.jsx)("button",{type:"button",onClick:B,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:U,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:t_,value:e_,spellCheck:!1,onChange:e=>{eq(e.target.value),ow(e.target.value,e.target.selectionStart),oD(e.target.value,e.target.selectionStart)},onSelect:e=>{let t=e.currentTarget;ow(t.value,t.selectionStart)},onKeyDown:oZ,onCompositionStart:()=>{t0.current=!0},onCompositionEnd:e=>{t0.current=!1,t1.current=Date.now();let t=e.currentTarget;ow(t.value,t.selectionStart)},onInput:oQ,onPaste:o0,placeholder:a&&(s||i)?eL("desktop.steerOrQueueFollowUp"):a?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"}})]}),tk&&(0,n.jsxs)("div",{style:{marginTop:4,padding:"2px 8px",fontSize:11,color:tv?"var(--text-muted)":"var(--accent)"},children:[eL("desktop.shellCommand")," \xb7 ",tv?eL("desktop.shellOutputLocal"):eL("desktop.shellOutputModel")]}),(0,n.jsxs)("div",{className:"chat-input-toolbar",style:{display:e$?"grid":"flex",gridTemplateColumns:e$?"auto auto minmax(0, 1fr)":void 0,alignItems:"center",gap:4},children:[(0,n.jsxs)("div",{ref:tX,className:"chat-input-toolbar-attach",style:{position:"relative"},children:[(0,n.jsx)("button",{onClick:e=>{let t=e.currentTarget.getBoundingClientRect();tc({top:t.top,left:t.left,width:t.width}),tl(e=>!e)},title:eL("desktop.attachMenu"),"aria-label":eL("desktop.attachMenu"),"aria-expanded":ta,style:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,padding:0,background:ta?"var(--bg-hover)":"none",border:"none",borderRadius:6,color:tm.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=tm.length?"var(--accent)":"var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background=ta?"var(--bg-hover)":"none",e.currentTarget.style.color=tm.length?"var(--accent)":"var(--text-muted)"},children:(0,n.jsx)(x.c,{size:14})}),ta&&td&&(eb=[{id:"upload",label:eL("desktop.attachUpload"),desc:eL("desktop.attachUploadDesc"),icon:C.J},{id:"reference",label:eL("desktop.attachReference"),desc:eL("desktop.attachReferenceDesc"),icon:rx.sj},{id:"sessions",label:eL("desktop.attachSessions"),desc:eL("desktop.attachSessionsDesc"),icon:rX.v},{id:"slash",label:eL("desktop.attachCommands"),desc:eL("desktop.attachCommandsDesc"),icon:u.C}],ew=window.visualViewport?.height??window.innerHeight,ej=window.innerWidth,eS=Math.min(td.left,ej-220-8),eC=ew-td.top+6,(0,n.jsx)("div",{role:"menu",style:{position:"fixed",left:eS,bottom:eC,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:eb.map(e=>(0,n.jsxs)("button",{type:"button",role:"menuitem",onClick:()=>{tl(!1),"upload"===e.id?tQ.current?.click():"reference"===e.id?oK():"sessions"===e.id?oG():"slash"===e.id&&oJ()},style:{display:"flex",alignItems:"center",gap:10,width:"100%",padding:"8px 10px",background:e.active?"var(--bg-selected)":"none",border:"none",borderRadius:8,cursor:"pointer",textAlign:"left",transition:"background 0.12s"},onMouseEnter:t=>{e.active||(t.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:e.desc})]}),e.active?(0,n.jsx)(h.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:!e$&&W&&A&&N&&(0,n.jsx)(s$,{collaborationMode:P,tokenMode:E,toolApprovalMode:D,onCollaborationModeChange:W,onTokenModeChange:A,onToolApprovalModeChange:N,disabled:a})}),!e$&&(0,n.jsx)("div",{className:"chat-input-toolbar-spacer",style:{flex:1}}),(0,n.jsx)("div",{ref:tZ,className:"chat-input-toolbar-controls",style:{flex:e$?"1 1 auto":"0 0 auto",minWidth:e$?0:void 0,display:"flex",alignItems:"center",justifyContent:"flex-end",position:"relative",marginLeft:e$?0:"auto"},children:(0,n.jsxs)("div",{className:"chat-input-toolbar-actions",style:{display:"flex",alignItems:"center",gap:e$?1:2,...e$?{flex:"1 1 auto",minWidth:0,justifyContent:"flex-end"}:null},children:[q&&(0,n.jsxs)("div",{ref:tY,className:"chat-input-toolbar-thinking",style:{position:"relative"},children:[(0,n.jsxs)("button",{onClick:e=>{if(a)return;let t=e.currentTarget.getBoundingClientRect();tg({top:t.top,left:t.left,width:t.width}),tu(e=>!e)},disabled:a,title:eL("desktop.changeReasoningLevel",{level:o5}),"aria-label":eL("desktop.reasoningLevel"),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,padding:e$?"0 5px":"3px 7px",width:e$?"auto":void 0,height:24,background:tp?"var(--bg-hover)":"none",border:"none",borderRadius:6,color:(_??"auto")==="off"?"var(--text-dim)":"var(--accent)",cursor:a?"not-allowed":"pointer",fontSize:12,opacity:a?.5:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{a||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.background=tp?"var(--bg-hover)":"none"},children:[(0,n.jsx)(s_,{level:_??"auto"}),(0,n.jsx)("span",{style:{whiteSpace:"nowrap"},children:o5}),(0,n.jsx)(f.b,{size:11,weight:"bold","aria-hidden":"true",style:{transform:tp?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.12s"}})]}),tp&&th&&(eT=window.visualViewport?.height??window.innerHeight,ez=Math.min(240,(eR=window.innerWidth)-16),eI=Math.min(th.left,eR-ez-8),eM=eT-th.top+4,eP=Math.min(360,Math.max(120,Math.min(th.top-8,.6*eT))),(0,n.jsx)("div",{style:{position:"fixed",bottom:eM,left:eI,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:ez,maxHeight:eP,overflowY:"auto"},children:sU.filter(e=>!V||"auto"===e||V.includes(e)).map(e=>{let t=(_??"auto")===e,o="auto"!==e&&K?K[e]:void 0,r=null!=o&&o!==e?o:eO[e],s=null!=o&&o!==e;return(0,n.jsxs)("button",{onClick:()=>{tu(!1),t||q(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)(s_,{level:e,size:14}),(0,n.jsxs)("span",{style:{flex:1},children:[r,s&&(0,n.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",marginLeft:5},children:["(",e,")"]})]}),t&&(0,n.jsx)(h.S,{size:12,weight:"bold",color:"var(--accent)",style:{flexShrink:0}})]},e)})}))]}),z&&"plan"===T&&(0,n.jsxs)("div",{ref:tG,className:"chat-input-toolbar-tools",style:{position:"relative"},children:[" ",(0,n.jsxs)("button",{onClick:e=>{if(a)return;let t=e.currentTarget.getBoundingClientRect();ti({top:t.top,left:t.left,width:t.width}),tr(e=>!e)},disabled:a,title:eL("desktop.changeToolPreset",{preset:o7}),"aria-label":eL("desktop.toolPreset"),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,padding:e$?"0 5px":"3px 7px",width:e$?"auto":void 0,height:24,background:tn?"var(--bg-hover)":"none",border:"none",borderRadius:6,color:"var(--text-muted)",cursor:a?"not-allowed":"pointer",fontSize:12,opacity:a?.5:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{a||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background=tn?"var(--bg-hover)":"none",e.currentTarget.style.color="var(--text-muted)"},children:[(0,n.jsx)("span",{style:{whiteSpace:"nowrap"},children:o7}),(0,n.jsx)(f.b,{size:11,weight:"bold","aria-hidden":"true",style:{transform:tn?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.12s"}})]}),tn&&ts&&(eE=window.visualViewport?.height??window.innerHeight,eD=Math.min(200,(eF=window.innerWidth)-16),eW=Math.max(8,eF-(ts.left+ts.width)),eA=eE-ts.top+6,eN=Math.min(320,Math.max(100,Math.min(ts.top-8,.5*eE))),(0,n.jsx)("div",{style:{position:"fixed",bottom:eA,right:eW,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:eD,maxHeight:eN,overflowY:"auto"},children:sL.map(e=>{let t=sO[e],o="plan"!==T&&(T??"default")===t,r="off"===e?eL("desktop.noToolsReadOnly"):"default"===e?eL("desktop.fourBuiltInTools"):eL("desktop.allBuiltInTools");return(0,n.jsxs)("button",{onClick:()=>{tr(!1),o||z(t)},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 12px",background:o?"var(--bg-selected)":"none",border:"none",color:o?"var(--accent)":"var(--text)",cursor:"pointer",fontSize:12,textAlign:"left",fontFamily:"var(--font-mono)",whiteSpace:"nowrap"},onMouseEnter:e=>{o||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{o||(e.currentTarget.style.background="none")},children:[(0,n.jsx)("span",{style:{flex:1},children:eH[e]}),(0,n.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",marginLeft:8},children:r}),o&&(0,n.jsx)(h.S,{size:12,weight:"bold",color:"var(--accent)",style:{flexShrink:0}})]},e)})}))]}),o1.length>0&&b&&(0,n.jsxs)("div",{ref:tq,className:"chat-input-toolbar-model",style:{position:"relative",flex:e$?"1 1 auto":void 0,minWidth:0},children:[(0,n.jsxs)("button",{onClick:e=>{let t=e.currentTarget.getBoundingClientRect();e6({top:t.top,left:t.left,width:t.width}),e1||e7(""),e2(e=>!e)},disabled:a,style:{display:"flex",alignItems:"center",gap:6,justifyContent:e$?"flex-start":void 0,padding:e$?"4px 6px":"3px 7px",height:24,width:e$?"100%":void 0,maxWidth:e$?"100%":"min(220px, 34vw)",overflow:"hidden",background:e1?"var(--bg-hover)":"none",border:"none",borderRadius:6,color:"var(--text-muted)",cursor:a?"not-allowed":"pointer",fontSize:12,opacity:a?.5:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{a||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background=e1?"var(--bg-hover)":"none",e.currentTarget.style.color="var(--text-muted)"},children:[(0,n.jsx)(sC,{id:l?.provider??"unknown",size:14}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:o4??eL("desktop.selectModel")}),(0,n.jsx)(f.b,{size:11,weight:"bold","aria-hidden":"true",style:{flexShrink:0,transform:e1?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.12s"}})]}),e1&&e4&&(()=>{let e=e8.height||window.innerHeight,t=e8.width||window.innerWidth,o=e4.top-e8.offsetTop,r=Math.max(6,e-o+6),s=Math.min(400,Math.max(120,Math.min(o-8,.6*e))),i=Math.min(320,s),a=e4.width,d=Math.min(360,t-16),p=e$?{left:8,right:8,maxWidth:"calc(100vw - 16px)"}:{right:Math.max(8,t-(e4.left+e4.width)),width:"max-content",minWidth:Math.min(a,d),maxWidth:d},u=[];for(let e of[...e9]){let[t,o]=e.split(":",2),n=o1.find(e=>e.provider===t&&e.modelId===o);n&&u.push(n)}let g=e3.trim().toLowerCase(),m=g.length>0,x=e=>e.name.toLowerCase().includes(g)||e.modelId.toLowerCase().includes(g)||e.provider.toLowerCase().includes(g),k=m?u.filter(x):u,y=k.length>0,w=m?o2.map(e=>({...e,options:e.options.filter(x)})).filter(e=>e.options.length>0):o2,j=y||w.length>0;return(0,n.jsxs)("div",{ref:tV,className:"chat-input-model-dropdown",style:{position:"fixed",bottom:r,...p,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:i,maxHeight:s,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)(c.$,{size:13,color:"var(--text-dim)",style:{position:"absolute",left:12,pointerEvents:"none"}}),(0,n.jsx)("input",{ref:tK,value:e3,onChange:e=>e7(e.target.value),onKeyDown:e=>{if("Escape"===e.key)e3?e7(""):e2(!1);else if("ArrowDown"===e.key){let t=tV.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")}),k.map(e=>{let t=e.modelId===l?.modelId&&e.provider===l?.provider,o=e9.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:()=>{e2(!1),b(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)(sC,{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)(h.S,{size:12,weight:"bold",color:"var(--accent)",style:{flexShrink:0}}),(0,n.jsx)("span",{onClick:t=>{t.stopPropagation(),oi(e.provider,e.modelId)},className:"model-star",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,cursor:"pointer",color:o?"var(--accent)":"var(--text-dim)",opacity:+!!o,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=o?"var(--accent)":"var(--text-dim)"},title:o?eL("desktop.unfavorite"):eL("desktop.favorite"),"aria-label":o?eL("desktop.unfavorite"):eL("desktop.favorite"),children:(0,n.jsx)(r1.G,{size:12,weight:o?"fill":"regular"})})]})},`fav-${e.provider}:${e.modelId}`)}),(0,n.jsx)("div",{style:{borderTop:"1px solid var(--border)"}})]}),w.map((e,t)=>{let o=m||tt.has(e.provider),r=o?(0,n.jsx)(f.b,{size:10,color:"var(--text-dim)"}):(0,n.jsx)(v.J,{size:10,color:"var(--text-dim)"});return(0,n.jsxs)("div",{children:[(0,n.jsxs)("button",{onClick:()=>oa(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:[r,(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",minWidth:0},children:e.provider})]}),o&&e.options.map(e=>{let t=e.modelId===l?.modelId&&e.provider===l?.provider,o=e9.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:()=>{e2(!1),b(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)(sC,{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)(h.S,{size:12,weight:"bold",color:"var(--accent)",style:{flexShrink:0}}),(0,n.jsx)("span",{onClick:t=>{t.stopPropagation(),oi(e.provider,e.modelId)},className:"model-star",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,cursor:"pointer",color:o?"var(--accent)":"var(--text-dim)",opacity:+!!o,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=o?"var(--accent)":"var(--text-dim)"},title:o?eL("desktop.unfavorite"):eL("desktop.favorite"),"aria-label":o?eL("desktop.unfavorite"):eL("desktop.favorite"),children:(0,n.jsx)(r1.G,{size:12,weight:o?"fill":"regular"})})]})},`${e.provider}:${e.modelId}`)})]},e.provider)}),m&&!j&&(0,n.jsx)("div",{style:{padding:"14px 12px",textAlign:"center",fontSize:12,color:"var(--text-dim)"},children:eL("desktop.noModelsMatch")})]})]})})()]}),0===o1.length&&k&&(0,n.jsxs)("div",{className:"chat-input-toolbar-model",title:`${eL("desktop.modelsLoadFailed")}: ${k}`,style:{display:"flex",alignItems:"center",gap:6,flex:e$?"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)(nc.M,{size:14,color:"#ef4444",weight:"fill",style:{flexShrink:0}}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,color:"#ef4444"},children:eL("desktop.modelsLoadFailed")}),y&&(0,n.jsx)("button",{type:"button",onClick:y,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:"#ef4444",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===o1.length&&!k&&(0,n.jsxs)("div",{className:"chat-input-toolbar-model",title:eL("desktop.noModelsConfigured"),style:{display:"flex",alignItems:"center",gap:6,flex:e$?"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)(nc.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")})]}),!a&&(0,n.jsx)("button",{type:"button",onClick:of,disabled:!e_.trim()&&!tm.length,className:"chat-input-send",title:eL("desktop.sendMessage"),"aria-label":eL("desktop.sendMessage"),children:(0,n.jsx)(rQ.l,{size:14})}),a&&(0,n.jsxs)("button",{onClick:o,title:eL("desktop.stopAgent"),"aria-label":eL("desktop.stopAgent"),style:{display:"flex",alignItems:"center",gap:6,padding:"3px 7px",height:24,background:"rgba(239,68,68,0.12)",border:"none",borderRadius:6,color:"#ef4444",cursor:"pointer",fontSize:12,fontWeight:600,whiteSpace:"nowrap",letterSpacing:"-0.01em",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)(r0.d,{size:14}),eL("desktop.stop")]})]})})]})]})]})]})]})}));function s6(e){return!!e&&"string"==typeof e.type&&"string"==typeof e.data&&"string"==typeof e.mimeType}function s8(e){let t;if(!e||"object"!=typeof e)return null;let o=e.kind;return"steer"!==o&&"followUp"!==o||"string"!=typeof e.text?null:(Array.isArray(e.images)&&0===(t=e.images.filter(s6)).length&&(t=void 0),{kind:o,text:e.text,...t?{images:t}:{}})}function s5({items:e,sessionId:t,onResolve:o,onExport:s,onStageImport:i,onDismiss:a,mode:l="recovery"}){let{t:d}=(0,F.s)(),c=$(),[p,u]=(0,r.useState)(()=>new Set(e.map(e=>e.id))),[h,g]=(0,r.useState)(!1),[m,f]=(0,r.useState)(null),x=(0,r.useRef)(null);(0,r.useEffect)(()=>{u(new Set(e.map(e=>e.id)))},[e]);let k=e.filter(e=>p.has(e.id)),v=k.length===e.length&&e.length>0,y=e=>u(t=>{let o=new Set(t);return o.has(e)?o.delete(e):o.add(e),o}),b=async(e,t=!1)=>{if(0!==k.length){g(!0),f(null);try{await o("keep"===e?k.map(e=>e.id):[],"discard"===e?k.map(e=>e.id):[],t)}catch(e){f(e instanceof Error?e.message:String(e))}finally{g(!1)}}},w=async e=>{let o=await s();if(!o)return;let n=o.recovery.filter(e=>p.has(e.id));if(n.length){var r;let o,s,i,a,l,c,p;r={sessionId:t,source:"recovery"},s="md"===e?(((o=[]).push("# Queued messages export"),r.sessionId&&o.push(`- Session: ${r.sessionId}`),o.push(`- Source: ${"live"===r.source?"live queue":"pending recovery"}`),o.push(`- Exported: ${r.exportedAt??new Date().toISOString()}`),o.push(""),0===n.length)?o.push("_No entries._"):n.forEach((e,t)=>{var n;o.push(`## ${t+1}. ${"steer"===e.kind?"steer":"follow-up"} \xb7 ${new Date(e.queuedAt).toISOString()}`),e.text&&o.push(e.text),e.images?.length&&o.push(`> _${0===(n=e.images.length)?"":1===n?"(1 image)":`(${n} images)`}_`),o.push("")}),o.join("\n")):JSON.stringify({format:"pi-web-queue",version:1,exportedAt:r.exportedAt??new Date().toISOString(),source:r.source,sessionId:r.sessionId,entries:n.map(({kind:e,text:t,images:o})=>({kind:e,text:t,...o?.length?{images:o}:{}}))},null,2),i=new Date().toISOString().replace(/[:.]/g,"-").slice(0,19),a=`${r.sessionId??"session"}-queue-${r.source}-${i}.${e}`,l=new Blob([s],{type:"md"===e?"text/markdown;charset=utf-8":"application/json;charset=utf-8"}),c=URL.createObjectURL(l),(p=document.createElement("a")).href=c,p.download=a,p.click(),setTimeout(()=>URL.revokeObjectURL(c),1e3),f(d("desktop.queueExported",{count:n.length}))}},j=async e=>{let t=function(e){let t;try{t=JSON.parse(e)}catch{return[]}let o=Array.isArray(t)?t:t&&"object"==typeof t&&Array.isArray(t.entries)?t.entries:null;return o?o.map(s8).filter(e=>null!==e):[]}(await e.text());if(!t.length)return void f(d("desktop.queueImportEmpty"));let o=await i(t);f(null===o?d("desktop.queueImportEmpty"):d("desktop.queueImported",{count:o}))};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"===l?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"===l?d("desktop.queueImportTitle"):d("desktop.queueRecoveryTitle")}),(0,n.jsx)("p",{className:"mt-1 text-xs leading-5 text-(--text-muted)",children:"import"===l?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:()=>u(new Set(v?[]:e.map(e=>e.id))),children:v?d("desktop.selectNone"):d("desktop.selectAll")}),(0,n.jsx)("button",{type:"button",className:"markdown-code-action",disabled:h||0===k.length,onClick:()=>void w("json"),children:"JSON"}),(0,n.jsx)("button",{type:"button",className:"markdown-code-action",disabled:h||0===k.length,onClick:()=>void w("md"),children:"MD"}),(0,n.jsx)("button",{type:"button",className:"markdown-code-action",disabled:h,onClick:()=>x.current?.click(),children:d("desktop.import")}),(0,n.jsx)("button",{type:"button",className:"markdown-code-action",onClick:a,"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=p.has(e.id);return(0,n.jsxs)("button",{type:"button",onClick:()=>y(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:()=>y(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:[m?(0,n.jsx)("span",{className:"mr-auto text-xs text-(--text-muted)",children:m}):null,(0,n.jsx)("button",{type:"button",className:"rounded-md px-3 py-2 text-xs text-(--text-muted) hover:bg-(--bg-hover)",onClick:a,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 b("discard"),disabled:h||0===k.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 b("keep"),disabled:h||0===k.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 b("keep",!0),disabled:h||0===k.length,children:d("desktop.requeueAndContinue")})]})]}),(0,n.jsx)("input",{ref:x,type:"file",accept:".json,application/json",className:"hidden",onChange:e=>{let t=e.target.files?.[0];t&&j(t),e.currentTarget.value=""}})]})}var s3=o(36405),s7=o(92185),s9=o(75877),ie=o(30830),it=o(86965);function io(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function ir(e){let t=e,o=t.compressedEntryIds?.length??0;for(;1===t.children.length;)t=t.children[0],o+=1+(t.compressedEntryIds?.length??0);return{node:t,skipped:o}}function is({node:e,assistantLabel:t,activePathIds:o,depth:r,isLast:s,parentLines:i,onSelect:a}){let{node:l,skipped:d}=ir(e),c=o.has(l.entry.id),p=o.has(e.entry.id)||o.has(l.entry.id),u=function(e,t){if("message"===e.type&&"message"in e){let o=e.message,n=o.content,r="";if("string"==typeof n?r=n:Array.isArray(n)&&(r=n.filter(e=>"text"===e.type).map(e=>e.text).join(" ")),r.length>40&&(r=r.slice(0,40)+"…"),r)return r;if("assistant"===o.role)return`[${t}]`}return e.type}(l.entry,t),h="message"===l.entry.type&&"message"in l.entry?l.entry.message.role:null;return(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",height:24,cursor:"pointer"},onClick:()=>a(l.entry.id),children:[i.map((e,t)=>(0,n.jsx)("div",{style:{width:16,flexShrink:0,position:"relative",height:"100%",alignSelf:"stretch"},children:e&&(0,n.jsx)("div",{style:{position:"absolute",left:7,top:0,bottom:0,width:1,background:"var(--border)"}})},t)),(0,n.jsxs)("div",{style:{width:16,flexShrink:0,position:"relative",height:"100%",alignSelf:"stretch"},children:[(0,n.jsx)("div",{style:{position:"absolute",left:7,top:0,bottom:s?"50%":0,width:1,background:"var(--border)"}}),(0,n.jsx)("div",{style:{position:"absolute",left:7,top:"50%",width:9,height:1,background:"var(--border)"}})]}),(0,n.jsx)("div",{style:{width:7,height:7,borderRadius:"50%",flexShrink:0,background:c?"var(--accent)":p?"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)":p?"var(--text-muted)":"var(--text-dim)",fontWeight:c?500:400,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:u})]}),l.children.map((e,d)=>(0,n.jsx)(is,{node:e,assistantLabel:t,activePathIds:o,depth:r+1,isLast:d===l.children.length-1,parentLines:[...i,!s],onSelect:a},e.entry.id))]})}function ii({tree:e,activeLeafId:t,onLeafChange:o,inline:s,containerRef:i,open:a,onToggle:l,hasSession:d,embedded:c}){let{t:p}=(0,F.s)(),[u,h]=(0,r.useState)(!1),g=void 0!==a?a:u,m=(0,r.useRef)(null),[x,v]=(0,r.useState)(null);(0,r.useEffect)(()=>{if(!g||!s)return;let e=i?.current??m.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect();v({top:t.bottom,left:t.left,width:t.width})};t();let o=new ResizeObserver(t);return o.observe(e),()=>o.disconnect()},[g,s,i]);let y=(0,r.useMemo)(()=>(function(e,t){if(!t)return new Set;let o=e.map(e=>({node:e,path:[e.entry.id]}));for(;o.length>0;){let{node:e,path:n}=o.pop();if(e.entry.id===t||e.compressedEntryIds?.includes(t))return new Set(n);for(let t of e.children)o.push({node:t,path:[...n,t.entry.id]})}return new Set})(e,t),[e,t]),b=(0,r.useCallback)(e=>{o(e)},[o]),w=d?!function(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 o of e.children)t.push(o)}return!1}(e)?p("desktop.sessionHasNoBranches"):null:p("desktop.noActiveSession"),j=e.length>0?ir(e[0]):null,S=j?.node??null,C=!w&&S&&S.children.length>1,T=(0,n.jsx)(k.Z,{size:16,"aria-hidden":"true",style:{flexShrink:0}}),R=(0,n.jsx)(f.a,{size:8,color:"var(--text-dim)","aria-hidden":"true",style:{marginLeft:1,transition:"transform 0.15s",transform:g?"rotate(180deg)":"none"}});return s?(0,n.jsxs)("div",{style:{height:"100%",display:"flex",alignItems:"stretch"},children:[(0,n.jsx)("button",{ref:m,className:"app-no-drag",onClick:()=>l?l():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:p("desktop.branches"),"aria-label":p("desktop.branches"),"aria-pressed":g,children:T}),g&&x&&(0,n.jsx)("div",{className:"app-no-drag",style:{position:"fixed",top:x.top,left:x.left,width:x.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)(is,{node:e,assistantLabel:p("desktop.assistant"),activePathIds:y,depth:0,isLast:t===S.children.length-1,parentLines:[],onSelect:b},e.entry.id))}):(0,n.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:w})})]}):c?C&&S?(0,n.jsx)("div",{style:{padding:"4px 8px 8px 8px"},children:S.children.map((e,t)=>(0,n.jsx)(is,{node:e,assistantLabel:p("desktop.assistant"),activePathIds:y,depth:0,isLast:t===S.children.length-1,parentLines:[],onSelect:b},e.entry.id))}):(0,n.jsx)("div",{style:{padding:"10px 12px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:w??p("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:[T,(0,n.jsx)("span",{style:{color:"var(--text-muted)"},children:p("desktop.branches")}),R]}),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)(is,{node:e,assistantLabel:p("desktop.assistant"),activePathIds:y,depth:0,isLast:t===S.children.length-1,parentLines:[],onSelect:b},e.entry.id))}):(0,n.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:w??p("desktop.sessionHasNoBranches")})})]})}var ia=o(45390),il=o(33846),id=o(80388);function ic({open:e,onOpenChange:t,cwd:o}){let{t:s}=(0,F.s)(),[i,a]=(0,r.useState)([]),[l,d]=(0,r.useState)(""),[c,u]=(0,r.useState)(!1),[h,g]=(0,r.useState)(null),[m,f]=(0,r.useState)(null),x=(0,r.useCallback)(async()=>{if(o)try{let e=await fetch(`/api/git/stash?${new URLSearchParams({cwd:o}).toString()}`,{cache:"no-store"});if(e.ok){let t=await e.json();a(t.entries)}}catch{}},[o]);if((0,r.useEffect)(()=>{e&&x()},[e,x]),!e)return null;let k=async(e,t)=>{u(!0),g(null),f(null);try{let n=await fetch(`/api/git/stash?${new URLSearchParams({cwd:o??""}).toString()}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e,message:l||void 0,ref:t})}),r=await n.json();n.ok&&r.ok?(f(r.output??s("tasks.stashDone")),d(""),x()):g(r.error??`HTTP ${n.status}`)}catch(e){g(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)"},onMouseDown:e=>{e.target===e.currentTarget&&t(!1)},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:s("desktop.stashTitle")}),(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)(p.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:l,onChange:e=>d(e.target.value),placeholder:s("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 k("push"),disabled:c,style:{alignSelf:"flex-start",display:"inline-flex",alignItems:"center",gap:5,padding:"7px 14px",borderRadius:8,background:"var(--accent)",color:"#fff",border:"none",fontSize:12,fontWeight:600,cursor:c?"not-allowed":"pointer"},children:[(0,n.jsx)(il.c,{size:13,"aria-hidden":"true"}),s("desktop.stashPush")]})]}),h&&(0,n.jsx)("div",{style:{padding:"8px 10px",borderRadius:8,background:"rgba(239,68,68,0.10)",color:"#ef4444",fontSize:12,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:h}),m&&(0,n.jsx)("div",{style:{padding:"8px 10px",borderRadius:8,background:"rgba(34,197,94,0.10)",color:"#22c55e",fontSize:12,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:m}),(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:[s("desktop.stashList")," (",i.length,")"]}),0===i.length?(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)"},children:s("desktop.stashEmpty")}):(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:i.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 k("pop",e.ref),disabled:c,title:s("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)(j.S,{size:11,"aria-hidden":"true"}),s("desktop.stashPop")]}),(0,n.jsx)("button",{type:"button",onClick:()=>void k("drop",e.ref),disabled:c,title:s("desktop.stashDrop"),style:{display:"inline-flex",alignItems:"center",padding:"4px 8px",borderRadius:6,border:"1px solid var(--border)",background:"none",color:"#ef4444",fontSize:11,cursor:c?"not-allowed":"pointer"},children:s("desktop.stashDrop")})]},e.ref))})]})]})]})})}function ip({cwd:e}){let{t}=(0,F.s)(),[o,s]=(0,r.useState)(!1),[i,a]=(0,r.useState)("idle"),[l,d]=(0,r.useState)(null),[c,p]=(0,r.useState)(!1),u=(0,r.useCallback)(async()=>{if(e&&!o){s(!0),a("idle");try{let o=await fetch(`/api/git/push?${new URLSearchParams({cwd:e}).toString()}`,{method:"POST",cache:"no-store"}),n=await o.json();o.ok&&n.ok?(a("ok"),d(n.output||t("desktop.pushOk"))):(a("error"),d(n.error??t("desktop.pushFailed")))}catch(e){a("error"),d(e instanceof Error?e.message:t("desktop.pushFailed"))}finally{s(!1),setTimeout(()=>{a("idle"),d(null)},4e3)}}},[e,o,t]);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button",className:"session-info-bar-button",onClick:()=>void u(),disabled:!e||o,title:t("desktop.push"),"aria-label":t("desktop.push"),style:{position:"relative"},children:"ok"===i?(0,n.jsx)(nO.r,{size:13,color:"#22c55e",weight:"fill","aria-hidden":"true"}):"error"===i?(0,n.jsx)(ia.J,{size:13,color:"#ef4444",weight:"fill","aria-hidden":"true"}):(0,n.jsx)(il.c,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("button",{type:"button",className:"session-info-bar-button",onClick:()=>p(!0),disabled:!e,title:t("desktop.stash"),"aria-label":t("desktop.stash"),children:(0,n.jsx)(id.T,{size:13,"aria-hidden":"true"})}),l&&(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"===i?"#22c55e":"#ef4444"}`,boxShadow:"0 8px 24px rgba(0,0,0,0.2)",fontSize:12,color:"ok"===i?"#22c55e":"#ef4444",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:l}),(0,n.jsx)(ic,{open:c,onOpenChange:p,cwd:e})]})}function iu({onViewFullHistory:e,cwd:t,systemPrompt:o,sessionStats:s,contextUsage:i,hasSession:a,showChat:l,soundEnabled:d,onSoundToggle:c,onCompact:p,onAbortCompaction:u,isCompacting:g,compactError:m,branchTree:f,branchActiveLeafId:x,onBranchLeafChange:v,showSoundLabel:y,isDeepSeekOfficial:b,deepseekBalance:w,lastTurnUsage:j}){let{t:S}=(0,F.s)(),[C,T]=(0,r.useState)(null),R=(0,r.useCallback)(()=>T(null),[]),[z,I]=(0,r.useState)(null),M=(0,r.useRef)(null),P=(0,r.useCallback)((e,t)=>{oy(t).then(()=>{M.current&&clearTimeout(M.current),I(e),M.current=setTimeout(()=>I(null),1400)})},[]),E=(0,r.useMemo)(()=>{if(!o)return 0;let e=0;for(let t of o){let o=t.codePointAt(0)??0;o>=19968&&o<=40959||o>=13312&&o<=19903||o>=131072&&o<=173791||o>=12352&&o<=12447||o>=12448&&o<=12543||o>=44032&&o<=55215?e+=1:e+=.25}return Math.max(1,Math.round(e))},[o]),D=(0,r.useMemo)(()=>{if(!w?.available||null==w.totalBalance)return S("desktop.balanceUnavailable");let e=Number(w.grantedBalance)||0,t=Number(w.toppedUpBalance)||0;return`${S("desktop.balance")}:${nm(Number(w.totalBalance)||0)}(${S("desktop.balanceGranted")}:${nm(e)} / ${S("desktop.balanceToppedUp")}:${nm(t)})`},[w,S]);if(!l)return null;let W=s?.tokens,A=s?.cost??0,N=s?.costCNY??0,$=s?.costUSD??0,L=[];N>0&&L.push(nm(N)),$>0&&L.push($>=.01?`$${$.toFixed(2)}`:"<$0.01"),0===L.length&&A>0&&L.push(A>=.01?`$${A.toFixed(2)}`:"<$0.01");let O=L.length>0?L.join(" + "):null,H="var(--text-muted)";if(i?.contextWindow){let e=i.percent;null!==e&&e>90?H="#ef4444":null!==e&&e>70&&(H="rgba(234,179,8,0.95)")}let B=null!==o&&""!==o,U=s&&W&&(W.input>0||W.output>0),_=a&&v,q=[];if(W&&(q.push(`${S("desktop.sessionInfoInput")}: ${W.input.toLocaleString()}`),q.push(`${S("desktop.sessionInfoOutput")}: ${W.output.toLocaleString()}`),W.cacheRead>0&&q.push(`${S("desktop.sessionInfoCacheRead")}: ${W.cacheRead.toLocaleString()}`),W.cacheWrite>0&&q.push(`${S("desktop.sessionInfoCacheWrite")}: ${W.cacheWrite.toLocaleString()}`),N>0&&q.push(`${S("desktop.sessionInfoCostOfficial")}: ${nm(N)}`),$>0&&q.push(`${S("desktop.sessionInfoCost")}: $${$.toFixed(4)}`),N<=0&&$<=0&&A>0&&q.push(`${S("desktop.sessionInfoCost")}: $${A.toFixed(4)}`)),i?.contextWindow&&null!==i.percent){let e=i.percent,t=i.tokens;q.push(`${S("desktop.sessionInfoContext")}: ${null!==e?`${e.toFixed(1)}%`:"?"} ${null!==t?io(t):"?"}/${io(i.contextWindow)}`)}let V=q.join(" | ");return(0,n.jsxs)("div",{className:"session-info-bar",children:[t&&(0,n.jsx)(ip,{cwd:t}),c&&(0,n.jsxs)("button",{type:"button",className:"session-info-bar-button",onClick:c,title:d?S("desktop.disableCompletionSound"):S("desktop.enableCompletionSound"),"aria-label":d?S("desktop.disableCompletionSound"):S("desktop.enableCompletionSound"),children:[d?(0,n.jsx)(s3.Q,{size:13}):(0,n.jsx)(s7.l,{size:13}),y&&(0,n.jsx)("span",{style:{marginLeft:4},children:d?S("desktop.soundLabelOn"):S("desktop.soundLabelOff")})]}),a&&(0,n.jsx)("button",{type:"button",className:"session-info-bar-button",onClick:e,title:S("desktop.viewFullHistory"),"aria-label":S("desktop.viewFullHistory"),children:(0,n.jsx)(s9.n,{size:13,"aria-hidden":"true"})}),_&&(0,n.jsxs)("div",{className:"session-info-bar-popover-host",children:[(0,n.jsx)("button",{type:"button",className:`session-info-bar-button${"branches"===C?" is-active":""}`,onClick:()=>T(e=>"branches"===e?null:"branches"),title:S("desktop.branches"),"aria-label":S("desktop.branches"),"aria-pressed":"branches"===C,children:(0,n.jsx)(k.Z,{size:13,"aria-hidden":"true"})}),"branches"===C&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"session-info-bar-popover-cover",onClick:R}),(0,n.jsxs)("div",{className:"session-info-bar-popover is-branches",children:[(0,n.jsxs)("div",{className:"session-info-bar-popover-header",children:[(0,n.jsx)("span",{className:"session-info-bar-popover-title",children:S("desktop.branches")}),(0,n.jsx)("button",{type:"button",className:"session-info-bar-popover-close",onClick:R,title:S("i18n.close"),"aria-label":S("i18n.close"),children:"✕"})]}),(0,n.jsx)("div",{className:"session-info-bar-popover-body",children:(0,n.jsx)(ii,{tree:f??[],activeLeafId:x??null,onLeafChange:e=>{v(e),R()},hasSession:!0,embedded:!0})})]})]})]}),B&&(0,n.jsxs)("div",{className:"session-info-bar-popover-host",children:[(0,n.jsx)("button",{type:"button",className:`session-info-bar-button${"system"===C?" is-active":""}`,onClick:()=>T(e=>"system"===e?null:"system"),title:S("desktop.systemPrompt"),"aria-label":S("desktop.systemPrompt"),"aria-pressed":"system"===C,children:(0,n.jsx)(rJ.i,{size:13,"aria-hidden":"true"})}),"system"===C&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"session-info-bar-popover-cover",onClick:R}),(0,n.jsxs)("div",{className:"session-info-bar-popover is-system",children:[(0,n.jsxs)("div",{className:"session-info-bar-popover-header",children:[(0,n.jsx)("span",{className:"session-info-bar-popover-title",children:S("desktop.systemPrompt")}),(0,n.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",marginLeft:8},children:["~",io(E)," tokens"]}),(0,n.jsx)("div",{style:{flex:1}}),(0,n.jsx)("button",{type:"button",className:"session-info-bar-popover-close",onClick:R,title:S("i18n.close"),"aria-label":S("i18n.close"),children:"✕"})]}),(0,n.jsx)("div",{className:"session-info-bar-system-body",children:o?(0,n.jsx)(tS.oz,{remarkPlugins:[oR.A],children:o}):(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"}),p&&(0,n.jsxs)("div",{className:"session-info-bar-compact-wrap",children:[m&&(0,n.jsx)("div",{className:"session-info-bar-compact-error",children:m}),(0,n.jsx)("button",{type:"button",className:`session-info-bar-button${g?" is-compacting":""}`,onClick:g?u:p,title:g?S("desktop.stopCompaction"):S("desktop.compactContext"),"aria-label":g?S("desktop.stopCompaction"):S("desktop.compactContext"),children:g?(0,n.jsx)(r0.M,{size:13}):(0,n.jsx)(ie.C,{size:13})})]}),b&&w?.available&&null!=w.totalBalance&&(0,n.jsxs)("span",{className:"session-info-bar-token-chip",style:{color:"var(--text-muted)",cursor:"default"},title:D,children:[(0,n.jsx)(it.u,{size:11,"aria-hidden":"true"}),S("desktop.balance")," ",nm(Number(w.totalBalance)||0)]}),U&&(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"===C?" is-active":""}`,onClick:()=>T(e=>"session"===e?null:"session"),title:V||S("desktop.sessionInfo"),"aria-label":S("desktop.sessionInfo"),"aria-pressed":"session"===C,children:[W&&W.input>0&&(0,n.jsxs)("span",{className:"session-info-bar-token-chip",children:[(0,n.jsx)(ni.D,{size:10,"aria-hidden":"true"}),io(W.input)]}),W&&W.output>0&&(0,n.jsxs)("span",{className:"session-info-bar-token-chip",children:[(0,n.jsx)(ns.y,{size:10,"aria-hidden":"true"}),io(W.output)]}),W&&W.cacheRead>0&&(0,n.jsxs)("span",{className:"session-info-bar-token-chip",children:[(0,n.jsx)(nd.W,{size:10,"aria-hidden":"true"}),io(W.cacheRead)]}),O&&(0,n.jsx)("span",{children:O}),i?.contextWindow&&null!==i.percent&&(0,n.jsx)("span",{className:"session-info-bar-token-chip",style:{color:H},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===i.percent?0:100-Math.min(100,Math.max(0,i.percent)),transform:"rotate(-90 8 8)"})]})})]}),"session"===C&&s&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"session-info-bar-popover-cover",onClick:R}),(0,n.jsx)("div",{className:"session-info-bar-popover is-session",children:(0,n.jsx)("div",{className:"session-stats-body",children:(()=>{let e=s.tokens,t=i??s.contextUsage,o=(e,t)=>{let o=z===e;return(0,n.jsx)("button",{type:"button",className:`session-stats-copy${o?" is-copied":""}`,title:o?S("desktop.copied"):"file"===e?S("desktop.copyFilePath"):S("desktop.copySessionId"),onClick:()=>P(e,t),children:o?(0,n.jsx)(h.J,{size:12,"aria-hidden":"true"}):(0,n.jsx)(tj.Q,{size:12,"aria-hidden":"true"})})},r=[];s.sessionName&&r.push((0,n.jsx)("div",{className:"session-stats-info-name",children:s.sessionName},"name")),r.push((0,n.jsxs)("div",{className:"session-stats-info-line",children:[(0,n.jsx)("span",{className:"session-stats-info-text",children:s.sessionFile?s.sessionFile.split(/[/\\]/).pop()??s.sessionFile:S("desktop.sessionInfoInMemory")}),s.sessionFile?o("file",s.sessionFile):null]},"file")),r.push((0,n.jsxs)("div",{className:"session-stats-info-line",children:[(0,n.jsx)("span",{className:"session-stats-info-text",children:s.sessionId}),o("id",s.sessionId)]},"id"));let a=[[S("desktop.sessionInfoUser"),s.userMessages.toLocaleString()],[S("desktop.sessionInfoAssistant"),s.assistantMessages.toLocaleString()],[S("desktop.sessionInfoToolCalls"),s.toolCalls.toLocaleString()],[S("desktop.sessionInfoToolResults"),s.toolResults.toLocaleString()],[S("desktop.sessionInfoTotal"),s.totalMessages.toLocaleString()]],l=[[S("desktop.sessionInfoInput"),e.input.toLocaleString()],[S("desktop.sessionInfoOutput"),e.output.toLocaleString()]];e.cacheRead>0&&l.push([S("desktop.sessionInfoCacheRead"),e.cacheRead.toLocaleString()]),e.cacheWrite>0&&l.push([S("desktop.sessionInfoCacheWrite"),e.cacheWrite.toLocaleString()]),l.push([S("desktop.sessionInfoTotal"),e.total.toLocaleString()]);let d=s.costCNY??0,c=s.costUSD??0;if(d>0&&l.push([S("desktop.sessionInfoCostOfficial"),nm(d)]),c>0&&l.push([S("desktop.sessionInfoCost"),`$${c.toFixed(4)}`]),d<=0&&c<=0&&s.cost>0&&l.push([S("desktop.sessionInfoCost"),`$${s.cost.toFixed(4)}`]),t?.contextWindow&&null!==t.percent){let e=t.percent,o=t.tokens;l.push([S("desktop.sessionInfoContext"),`${null!==e?`${e.toFixed(1)}%`:"?"} ${null!==o?io(o):"?"}/${io(t.contextWindow)}`])}(s.totalActiveMs??0)>0&&l.push([S("desktop.sessionInfoActiveTime"),function(e){if(e<=0)return"0s";let t=Math.floor(e/1e3),o=Math.floor(t/3600),n=Math.floor(t%3600/60),r=t%60;return o>0?`${o}h ${n}m`:n>0?`${n}m ${r}s`:`${r}s`}(s.totalActiveMs)]);let p=j?j.costCNY>0?nm(j.costCNY):j.costUSD>0?`$${j.costUSD.toFixed(4)}`:null:null,u=(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:r}),(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:S("desktop.sessionInfoMessages")}),(0,n.jsx)("div",{className:"session-stats-compact-grid",children:a.map(([e,t])=>u(e,t))})]}),(0,n.jsxs)("div",{className:"session-stats-column",children:[(0,n.jsx)("div",{className:"session-stats-section-title",children:S("desktop.sessionInfoTokens")}),(0,n.jsx)("div",{className:"session-stats-compact-grid",children:l.map(([e,t])=>u(e,t))})]}),j&&(0,n.jsxs)("div",{className:"session-stats-column",children:[(0,n.jsx)("div",{className:"session-stats-section-title",children:S("desktop.turnUsageTitle")}),(0,n.jsxs)("div",{className:"session-stats-compact-grid",children:[u(S("desktop.sessionInfoInput"),j.input.toLocaleString()),u(S("desktop.sessionInfoOutput"),j.output.toLocaleString()),j.cacheRead>0&&u(S("desktop.sessionInfoCacheRead"),j.cacheRead.toLocaleString()),p&&u(S("desktop.sessionInfoCost"),p)]})]})]})]})})()})})]})]})]})}var ih=o(68635);function ig({scrollElementRef:e,items:t,estimateSize:o=120,overscan:s=8,virtualizerRef:i}){let a=(0,ih.Te)({count:t.length,getScrollElement:()=>e.current,estimateSize:(0,r.useCallback)(()=>o,[o]),overscan:s});a.shouldAdjustScrollPositionOnItemSizeChange=()=>!1,i&&(i.current=a);let l=(0,r.useRef)(!1),d=(0,r.useRef)(a);d.current=a,(0,r.useEffect)(()=>{l.current||0===t.length||e.current&&(l.current=!0,d.current.scrollToIndex(t.length-1,{align:"end"}))},[t.length,e]);let c=a.getVirtualItems();return(0,n.jsx)("div",{style:{position:"relative",width:"100%",minWidth:0,height:a.getTotalSize()},children:c.map(e=>(0,n.jsx)("div",{"data-index":e.index,ref:a.measureElement,style:{position:"absolute",top:0,left:0,width:"100%",minWidth:0,overflow:"hidden",transform:`translateY(${e.start}px)`},children:t[e.index]},e.key))})}function im(e){return e.replace(/<\/?[\w:-]+\b[^>]*>/g," ").replace(/&lt;\/?[\w:-]+\b[^&]*?&gt;/gi," ").replace(/\s+/g," ").trim()}function ix(e){return"user"===e.role||"assistant"===e.role&&(e.content??[]).some(e=>"text"===e.type)}function ik({messages:e,streamingMessage:t,scrollContainer:o,messageRefs:s,onWidthChange:i,virtualizer:a}){var l;let[d,c]=(0,r.useState)(0),[p,u]=(0,r.useState)(1),[h,g]=(0,r.useState)(!1),[m,f]=(0,r.useState)([]),[x,k]=(0,r.useState)(!1),[v,y]=(0,r.useState)(null),[b,w]=(0,r.useState)(0),j=(0,r.useRef)(!1),S=(0,r.useRef)(null),C=(0,r.useMemo)(()=>t?[...e,t]:e,[e,t]),T=(0,r.useRef)(C);T.current=C;let R=(0,r.useCallback)(()=>{let e=o.current;if(!e)return;let t=e.scrollHeight,n=e.clientHeight,r=t-n;g(r>20),r<=0?(c(0),u(1)):(c(e.scrollTop/r),u(n/t))},[o]),z=(0,r.useRef)(null),I=(0,r.useRef)([]),M=(0,r.useRef)(a);M.current=a;let P=(0,r.useCallback)(()=>{z.current||(z.current=setTimeout(()=>{z.current=null;let e=o.current;if(!e)return;let t=e.scrollHeight;if(t<=0)return;let n=[],r=T.current,i=M.current;if(i){if(0>=i.totalHeight())return;let e=0;for(let o=0;o<r.length;o++){let s=r[o];if("user"!==s.role&&"assistant"!==s.role)continue;if(!ix(s)){e+=1;continue}let a=i.refToItemIndex(e);if(e+=1,void 0===a)continue;let l=i.getOffsetForIndex(a),d=i.sizeFor(a);n.push({topRatio:l/t,heightRatio:Math.max(d/t,1/t),msg:s,index:n.length})}}else{let o=s.current,i=0;for(let s=0;s<r.length;s++){let a=r[s];if("user"!==a.role&&"assistant"!==a.role)continue;let l=o?.[i];if(i++,ix(a)&&l){let o=l.getBoundingClientRect(),r=e.getBoundingClientRect(),s=o.top-r.top+e.scrollTop,i=o.height;n.push({topRatio:s/t,heightRatio:i/t,msg:a,index:n.length})}}}let a=I.current;a.length===n.length&&n.every((e,t)=>1e-6>Math.abs(e.topRatio-a[t].topRatio)&&1e-6>Math.abs(e.heightRatio-a[t].heightRatio))||(I.current=n,f(n))},150))},[o,s]);(0,r.useEffect)(()=>{let e=o.current;if(e)return e.addEventListener("scroll",R,{passive:!0}),()=>e.removeEventListener("scroll",R)},[o,R]),(0,r.useEffect)(()=>{let e=o.current;if(!e)return;let t=()=>{R(),P()},n=new ResizeObserver(t);return n.observe(e),e.firstElementChild&&n.observe(e.firstElementChild),t(),()=>{n.disconnect(),z.current&&(clearTimeout(z.current),z.current=null)}},[o,P,R]),(0,r.useEffect)(()=>{let e=setTimeout(()=>{R(),P()},50);return()=>clearTimeout(e)},[e.length,P,R]);let E=(0,r.useCallback)(e=>{let t=o.current;if(!t)return;let n=t.scrollHeight-t.clientHeight;n<=0||(t.scrollTop=Math.max(0,Math.min(1-p,e))/(1-p)*n)},[o,p]),F=(0,r.useCallback)(e=>{if(!h)return;j.current=!0;let t=e.currentTarget.getBoundingClientRect(),o=(e.clientY-t.top)/t.height,n=o-d*(1-p),r=n>=0&&n<=p?n:p/2;E(o-r);let s=e=>{j.current&&E((e.clientY-t.top)/t.height-r)},i=()=>{j.current=!1,window.removeEventListener("mousemove",s),window.removeEventListener("mouseup",i)};window.addEventListener("mousemove",s),window.addEventListener("mouseup",i)},[h,p,d,E]);(0,r.useEffect)(()=>{if(!h)return void w(0);let e=S.current;if(!e)return;let t=()=>w(e.clientHeight),o=new ResizeObserver(t);return o.observe(e),t(),()=>o.disconnect()},[h]);let D=(0,r.useMemo)(()=>{if(b<=0)return[];let e=[];return m.map(t=>{let o=t.topRatio*b,n=Math.max(3,Math.min(46,t.heightRatio*b)),r=Math.max(0,o-n/2),s=Math.min(b,o+n/2),i=e.findIndex(e=>r>=e+1);return -1===i?(i=e.length,e.push(s)):e[i]=s,{...t,displayTopPx:o,lane:i}})},[m,b]),W=Math.max(18,4+5*(l=(0,r.useMemo)(()=>D.reduce((e,t)=>Math.max(e,t.lane+1),1),[D]))+(l-1)*1);if((0,r.useEffect)(()=>{i?.(h?W:18)},[W,i,h]),(0,r.useEffect)(()=>()=>i?.(18),[i]),!h)return null;let A=d*(1-p)*100,N=100*p,$=null!==v&&D.length>0?D.reduce((e,t)=>Math.abs(t.displayTopPx/b-v)<Math.abs(D[e].displayTopPx/b-v)?t.index:e,0):null,L=null===$?null:D.find(e=>e.index===$)??null;return(0,n.jsxs)("div",{ref:S,onMouseDown:F,onMouseEnter:()=>k(!0),onMouseLeave:()=>{k(!1),y(null)},onMouseMove:e=>{let t=e.currentTarget.getBoundingClientRect();y((e.clientY-t.top)/t.height)},style:{width:W,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:`${N}%`,background:"color-mix(in srgb, var(--text-muted) 14%, transparent)",pointerEvents:"none",zIndex:1}}),D.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),o=x&&L?.index===e.index,r="user"===e.msg.role,s=Math.max(3,Math.min(46,e.heightRatio*b)),i=2+6*e.lane;return(0,n.jsx)("div",{style:{position:"absolute",top:e.displayTopPx,transform:"translateY(-50%)",left:i,width:5,height:s,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:o?1:r?.92:.72,transition:"opacity 0.1s, filter 0.1s",filter:o?"brightness(1.2)":"none"}})},e.index)}),x&&L&&(()=>{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??[],o=t.filter(e=>"text"===e.type).map(e=>e.text).join(" ");if(o)return im(o).slice(0,200);let n=t.filter(e=>"thinking"===e.type).map(e=>im(e.thinking??"")).filter(Boolean).join(" ");if(n)return n.slice(0,200);let r=t.filter(e=>"toolCall"===e.type).map(e=>e.toolName);if(r.length)return r.join(", ")}return""}(L.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)"}(L.msg),o=Math.max(1,Math.min(5,Math.floor(b/120))),r=15*o+4,s=Math.max(r/2,Math.min(b-r/2,L.displayTopPx));return(0,n.jsx)("div",{style:{position:"absolute",top:s,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:o,overflow:"hidden",overflowWrap:"anywhere"},children:e})})})()]})}function iv(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function iy(e){return function(e,t={}){if("assistant"!==e.role)return e;let o=e.content;if(!Array.isArray(o))return e;let n=o.map(e=>(function(e,t={}){if(!iv(e)||"toolCall"!==e.type)return null;let o={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=iv(e.customInput)?e.customInput:null,o=t&&"string"==typeof t.property?t.property:null,n=iv(e.arguments)?e.arguments:null;return o&&n&&"string"==typeof n[o]?n[o]:void 0}(e):void 0;return void 0===n?o:{...o,rawInput:n}})(e,t)??e);return{...e,content:n}}(e)}class ib extends Error{constructor(e,t,o,n){super(e),this.status=t,this.code=o,this.accepted=n,this.name="AgentCommandError"}}class iw extends Error{constructor(e,t,o){super(e),this.commandType=t,this.timeoutMs=o,this.name="AgentCommandTimeoutError"}}let ij=new Set(["compact","bash"]);async function iS(e,t,o={}){let n,r=function(e,t){if(void 0!==t.timeoutMs)return t.timeoutMs;let o="string"==typeof e.type?e.type:"";return 3e4*!ij.has(o)}(t,o),s=r>0?new AbortController:void 0,i=s?setTimeout(()=>s.abort(),r):void 0;try{n=await fetch(`/api/agent/${encodeURIComponent(e)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t),...s?{signal:s.signal}:{}})}catch(e){if(s?.signal.aborted)throw new iw(`Agent command "${String(t.type??"unknown")}" timed out after ${r}ms`,String(t.type??"unknown"),r);throw e}finally{i&&clearTimeout(i)}let a=await n.json().catch(()=>({}));if(!n.ok||a.error)throw new ib(a.error??`HTTP ${n.status}`,n.status,a.code,a.accepted);return a.data}var iC=o(14755);function iT(e){if(!e)return 0;let t=0;for(let o of e){let e=o.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 iR(){return"u">typeof performance?performance.now():Date.now()}function iz(e,t){switch(t.type){case"start":return{isStreaming:!0,streamingMessage:null};case"update":return{isStreaming:!0,streamingMessage:t.message};case"end":case"reset":return{isStreaming:!1,streamingMessage:null};default:return e}}function iI(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 iM(e,t){return e.length===t.length&&e.every((e,o)=>e===t[o])}function iP(e){return{steering:e?.steering??[],followUp:e?.followUp??[]}}let iE=`You are in PLAN MODE. Work as a read-only planning assistant.
27
+ …`:g})}),c&&(0,n.jsx)("textarea",{ref:d,value:a,onChange:e=>l(e.target.value),placeholder:i("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.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6,padding:"10px 14px",borderTop:"1px solid var(--border)"},children:[(0,n.jsxs)("button",{type:"button",onClick:()=>s(!0),disabled:o,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:"100%",padding:"9px 14px",borderRadius:8,background:"var(--accent)",color:"#fff",border:"none",fontSize:12.5,fontWeight:650,cursor:o?"not-allowed":"pointer",transition:"opacity 0.12s"},onMouseEnter:e=>{o||(e.currentTarget.style.opacity="0.88")},onMouseLeave:e=>{e.currentTarget.style.opacity="1"},children:[(0,n.jsx)(h.S,{size:14,weight:"bold","aria-hidden":"true"}),i("approval.allow")]}),(0,n.jsxs)("button",{type:"button",onClick:()=>{u(e=>!e),c||requestAnimationFrame(()=>d.current?.focus())},disabled:o,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:"100%",padding:"9px 14px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12.5,fontWeight:550,cursor:o?"not-allowed":"pointer",transition:"background 0.12s"},onMouseEnter:e=>{o||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:[(0,n.jsx)(p.u,{size:13,"aria-hidden":"true"}),i(c?"approval.hideReason":"approval.denyWithReason")]}),(0,n.jsx)("button",{type:"button",onClick:()=>s(!1,a.trim()||void 0),disabled:o,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:"100%",padding:"8px 14px",borderRadius:8,background:"none",border:"none",color:"var(--text-muted)",fontSize:12,cursor:o?"not-allowed":"pointer"},onMouseEnter:e=>{o||(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("approval.deny")})]})]})})}let nX="pi:create-task-from-text",nZ=null,nQ="pi-process-display-mode",n0="tabs",n1="pi-process-display-mode-change";function n2(){let e=window.localStorage.getItem(nQ);return"timeline"===e||"tabs"===e?e:n0}function n4(e){let t=t=>{t.key===nQ&&e()};return window.addEventListener(n1,e),window.addEventListener("storage",t),()=>{window.removeEventListener(n1,e),window.removeEventListener("storage",t)}}function n6(){return n0}function n8(e,t){if(!e)return!1;let o=new Set(t.map(e=>e.toLowerCase()));return Object.keys(e).some(e=>o.has(e.toLowerCase()))}function n5(e,t){if(!e)return;let o=new Set(t.map(e=>e.toLowerCase()));for(let[t,n]of Object.entries(e)){if(!o.has(t.toLowerCase())||"string"!=typeof n)continue;let e=n.trim();if(e)return e}}function n3(e){return"object"==typeof e&&null!==e?e:{}}function n7(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 n9(e){if(0!==e.length)return 1===new Set(e).size?e[0]:"edit"}function re(e){if(Array.isArray(e))return n9(e.map(e=>n7(n3(e).type||n3(e).status||n3(e).changeType)).filter(e=>!!e))}function rt(e){if(!e)return;let t=(e.match(/^\*\*\* Add File:/gm)||[]).length,o=(e.match(/^\*\*\* Delete File:/gm)||[]).length,n=(e.match(/^\*\*\* (Update File|Move to):/gm)||[]).length;if(t||o||n){let e=[];if(t)for(let o=0;o<t;o++)e.push("create");if(o)for(let t=0;t<o;t++)e.push("delete");if(n)for(let t=0;t<n;t++)e.push("edit");return n9(e)}return/^@@ -0,0 \+\d+/m.test(e)?"create":/^@@ -\d+(?:,\d+)? \+0,0/m.test(e)?"delete":void 0}function ro(e){let t=n5(e.args,["path","file","filePath","filepath"]);if(t)return t;let o=n5(e.metadata,["relativePath","filePath","filepath","path","file"]);if(o)return o;let n=n5(Array.isArray(e.metadata?.files)?n3(e.metadata.files[0]):{},["relativePath","filePath","filepath","path","file"]);if(n)return n}function rn(e){return e.split(/[\\/]/).filter(Boolean).pop()||e}let rr=new Set(["cd","chdir","pwd","echo","set","export","source",".","pushd","popd","dirs"]),rs=new Set(["timeout"]),ri=new Set(["ls","dir","ll","la","l","tree","eza","exa"]),ra=new Set(["rg","grep","egrep","fgrep","ack","ag","ripgrep"]),rl=new Set(["find","fd","fdfind","locate","mlocate","glob"]),rd=new Set(["cat","head","tail","less","more","bat","nl","wc"]),rc=new Set(["curl","wget","fetch","http","xh","httpx"]),rp=new Set(["rm","del","rmdir","unlink","erase"]),ru=new Set(["cp","mv","copy","move","rename","ren"]);var rh=o(36705),rg=o(94366),rm=o(66129),rf=o(2152),rx=o(59304),rk=o(8727),rv=o(60721),ry=o(47208),rb=o(95951),rw=o(29886),rj=o(86756);function rS(e,t){var o,n,r;let s,i,a,l,d,c,p,u,h,g="string"==typeof(l=e.input.label)&&l.trim()?l:e.toolName;if("error"===e.status)return{displayLabel:g,iconName:"warning",tone:void 0};let m=(d=[(n=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}).toolName,n.title,n.label].filter(Boolean).join("\n").toLowerCase(),c=n8(o.args,["path","file","filePath","filepath"]),p=n8(o.args,["content","oldString","old_string","newString","new_string","patch","diff","edits","text"]),u=n8(o.args,["command","cmd","script"]),h=n8(o.args,["pattern","query"]),u||/\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&&p?"document_change":"ls"===(s=o.toolName.toLowerCase())||"list"===s||"dir"===s||s.startsWith("list_")||s.endsWith("_list")||s.includes("list_directory")||s.includes("list_dir")||/\b(ls|list\s*directory|list\s*dir|dir\s*list|listdir)\b/i.test(d)?"directory_list":"find"===(i=o.toolName.toLowerCase())||"glob"===i||"scan"===i||i.includes("file_search")||i.includes("file_find")||i.startsWith("find_")||i.startsWith("glob_")||i.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)||(a=o.toolName.toLowerCase()).includes("grep")||a.includes("search")||a.includes("fuzzy")||a.includes("ripgrep")||h&&!p&&!u?"document_search":/\b(read|view|open|cat|show|display)\b/i.test(d)||c&&!p&&!u?"document_read":void 0),f="toolbox";if("document_change"===m){let o,n,s,i=(n=n3((o=(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}).metadata||{}).filediff),s=function(e){if(!e)return{};try{return n3(JSON.parse(e))}catch{return{}}}(r.result),re(o.files)??re(s.files)??n7(o.type||o.status||o.changeType)??(!1===o.exists?"create":void 0)??(!0===o.exists?"edit":void 0)??rt("string"==typeof o.diff?o.diff:"")??rt("string"==typeof o.patch?o.patch:"")??rt("string"==typeof n.patch?n.patch:"")??rt("string"==typeof r.args?.patchText?r.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 n9(t.map(e=>e.startsWith("A ")?"create":e.startsWith("D ")?"delete":"edit"))}(r.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 r.args?.command?r.args.command:void 0)??"edit");f="create"===i?"filePlus":"delete"===i?"trash":"pencilSimpleLine";let a=t("create"===i?"desktop.processStepFileCreate":"delete"===i?"desktop.processStepFileDelete":"desktop.processStepFileEdit"),l=ro({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 l?{displayLabel:`${a} ${rn(l)}`,iconName:f,target:l,tone:m,typeLabel:a}:{displayLabel:`${a}: ${g}`.slice(0,100),iconName:f,tone:m,typeLabel:a}}if("document_read"===m){f="bookOpen";let o=t("desktop.processStepFileRead"),n=ro({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:`${o} ${rn(n)}`,iconName:f,target:n,tone:m,typeLabel:o}:{displayLabel:g,iconName:f,tone:m,typeLabel:o}}if("document_search"===m){f="magnifyingGlass";let o=t("desktop.processStepSearch"),n="string"==typeof e.input.pattern?e.input.pattern:"string"==typeof e.input.query?e.input.query:"";return n?{displayLabel:`${o} "${n.slice(0,60)}"`,iconName:f,tone:m,typeLabel:o}:{displayLabel:g,iconName:f,tone:m,typeLabel:o}}if("directory_list"===m){f="folder";let o=t("desktop.processStepList"),n=ro({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:`${o} ${rn(n)}`,iconName:f,target:n,tone:m,typeLabel:o}:{displayLabel:g,iconName:f,tone:m,typeLabel:o}}if("file_find"===m){f="magnifyingGlass";let o=t("desktop.processStepFind"),n="string"==typeof e.input.pattern?e.input.pattern:"string"==typeof e.input.glob?e.input.glob:"";return n?{displayLabel:`${o} "${n.slice(0,60)}"`,iconName:f,tone:m,typeLabel:o}:{displayLabel:g,iconName:f,tone:m,typeLabel:o}}if("command_execution"===m){let o="string"==typeof e.input.command?e.input.command:"string"==typeof e.input.cmd?e.input.cmd:"";if(o){let e=function(e){let t=e.split(/&&|\n|;(?!;)|(?<!\|)\|(?!\|)/),o=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 o=0;for(;o<t.length&&(rr.has(t[o].toLowerCase())||rs.has(t[o].toLowerCase()));){let e=t[o].toLowerCase();if((o+=1)<t.length&&["cd","chdir","pushd"].includes(e)&&(o+=1),"timeout"===e)for(;o<t.length&&(t[o].startsWith("-")||/^\d/.test(t[o]));)o++}if(o>=t.length)continue;let r=t[o].replace(/^[.\\/]+/,"").toLowerCase(),s=r.split(/[/\\]/).pop()||r,i=o+1;for(;i<t.length&&t[i].startsWith("-");)i+=1;let a=i<t.length?t[i]:void 0;if(ri.has(s))return{kind:"list",binary:s,argument:a};if(ra.has(s))return{kind:"search",binary:s,argument:a};if(rl.has(s))return{kind:"find",binary:s,argument:a};if(rd.has(s))return{kind:"read",binary:s,argument:a};if(rc.has(s))return{kind:"fetch",binary:s,argument:a};if(rp.has(s))return{kind:"delete",binary:s,argument:a};if(ru.has(s))return{kind:"copy",binary:s,argument:a};return{kind:"run",binary:s,argument:a}}return{kind:"run",binary:o}}(o);if("list"===e.kind){f="folder";let o=t("desktop.processStepList"),n=e.argument?` ${e.argument}`:"";return{displayLabel:`${o}${n}`,iconName:f,tone:m,typeLabel:o}}if("search"===e.kind){f="magnifyingGlass";let o=t("desktop.processStepSearch"),n=e.argument?` "${e.argument.slice(0,60)}"`:"";return{displayLabel:`${o}${n}`,iconName:f,tone:m,typeLabel:o}}if("find"===e.kind){f="magnifyingGlass";let o=t("desktop.processStepFind"),n=e.argument?` "${e.argument.slice(0,60)}"`:"";return{displayLabel:`${o}${n}`,iconName:f,tone:m,typeLabel:o}}if("read"===e.kind){f="bookOpen";let o=t("desktop.processStepRead"),n=e.argument?` ${e.argument}`:"";return{displayLabel:`${o}${n}`,iconName:f,tone:m,typeLabel:o,target:e.argument||void 0}}if("fetch"===e.kind){f="download";let o=t("desktop.processStepFetch"),n=e.argument?` ${e.argument.slice(0,80)}`:"";return{displayLabel:`${o}${n}`,iconName:f,tone:m,typeLabel:o}}if("delete"===e.kind){f="trash";let o=t("desktop.processStepDelete"),n=e.argument?` ${e.argument}`:"";return{displayLabel:`${o}${n}`,iconName:f,tone:m,typeLabel:o}}if("copy"===e.kind){f="copy";let o=t("desktop.processStepCopy"),n=e.argument?` ${e.argument}`:"";return{displayLabel:`${o}${n}`,iconName:f,tone:m,typeLabel:o}}f="terminal";let n=t("desktop.processStepCommand"),r=e.argument?`${e.binary} ${e.argument.length>60?e.argument.slice(0,57)+"...":e.argument}`:e.binary;return{displayLabel:`${n} ${r}`,iconName:f,tone:m,typeLabel:n}}return{displayLabel:g,iconName:f="terminal",tone:m}}return"todo_update"===m?{displayLabel:g,iconName:f="checklist",tone:m,typeLabel:t("desktop.processStepTodo")}:{displayLabel:g,iconName:f,tone:m}}function rC({expanded:e}){return(0,n.jsx)(v.J,{size:12,className:`shrink-0 transition-all duration-150 ${e?"rotate-90":""}`})}function rT(e,t=14){switch(e){case"brain":return(0,n.jsx)(rh.$,{size:t});case"bookOpen":return(0,n.jsx)(rg.R,{size:t});case"magnifyingGlass":return(0,n.jsx)(c.$,{size:t});case"pencilSimpleLine":return(0,n.jsx)(ry.B,{size:t});case"filePlus":return(0,n.jsx)(q.u,{size:t});case"trash":return(0,n.jsx)(S.u,{size:t});case"folder":return(0,n.jsx)(rx.sj,{size:t});case"download":return(0,n.jsx)(I.e,{size:t});case"copy":return(0,n.jsx)(rf.t,{size:t});case"terminal":return(0,n.jsx)(rw.k,{size:t});case"toolbox":default:return(0,n.jsx)(rj.D,{size:t});case"image":return(0,n.jsx)(rk.x,{size:t});case"listBullets":case"checklist":return(0,n.jsx)(rv.j,{size:t});case"warning":case"circleX":return(0,n.jsx)(nc.M,{size:t})}}function rR({step:e,ts:t}){if("thinking"===e.kind)return rT("brain");if("image"===e.kind)return rT("image");if("custom"===e.kind)return rT("listBullets");if("toolGroup"===e.kind)return rT(e.iconName);let{iconName:o}=rS(e.block,t);return rT(o)}function rz({targets:e,typeLabel:t,count:o,label:r}){if(0===e.length)return(0,n.jsx)("span",{className:"max-w-52 truncate",title:r,children:r});if(2===e.length)return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"shrink-0",children:t}),(0,n.jsx)(rI,{filePath:e[0]}),(0,n.jsx)(rI,{filePath:e[1]})]});let s=e[0].split(".").pop()?.toLowerCase()||"",i=[],a=new Set([s]);for(let t=1;t<e.length&&i.length<2;t++){let o=e[t].split(".").pop()?.toLowerCase()||"";a.has(o)||(a.add(o),i.push({key:e[t],node:er(e[t],12)}))}return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"shrink-0",children:t}),i.length>0&&(0,n.jsx)("span",{className:"shrink-0 inline-flex gap-px",children:i.map(e=>(0,n.jsx)("span",{className:"inline-flex",children:e.node},e.key))}),(0,n.jsx)(rI,{filePath:e[0]}),(0,n.jsxs)("span",{className:"shrink-0 text-[10px] tabular-nums text-text-dim",children:["+",o-1]})]})}function rI({filePath:e}){let t=e.split(/[\\/]/).filter(Boolean).pop()||e;return(0,n.jsxs)("span",{className:"process-file-tag",title:e,children:[er(e,12),(0,n.jsx)("span",{children:t})]})}function rM({mode:e}){return"timeline"===e?(0,n.jsx)(rb.D,{size:14}):(0,n.jsx)(rm.j,{size:14})}function rP({step:e,cwd:t,onOpenFile:o,sessionId:r,ts:s,isStreaming:i}){let a;if("thinking"===e.kind)return(0,n.jsx)(rE,{blocks:e.blocks,cwd:t,onOpenFile:o,sessionId:r,isStreaming:i});if("tool"===e.kind)return(0,n.jsxs)("div",{className:"space-y-2",children:[e.leadBlocks.length>0&&(0,n.jsx)(rE,{blocks:e.leadBlocks,cwd:t,onOpenFile:o,sessionId:r,isStreaming:i}),(0,n.jsx)(nz,{block:{type:"toolCall",toolCallId:e.block.toolCallId,toolName:e.block.toolName,input:e.block.input},result:e.block.result,duration:e.block.duration,processStyle:!0})]});if("toolGroup"===e.kind)return(0,n.jsx)("div",{className:"space-y-2",children:e.blocks.map((s,a)=>(0,n.jsxs)("div",{children:[e.leadBlocks[a]&&e.leadBlocks[a].length>0&&(0,n.jsx)("div",{className:"mb-2",children:(0,n.jsx)(rE,{blocks:e.leadBlocks[a],cwd:t,onOpenFile:o,sessionId:r,isStreaming:i})}),(0,n.jsx)(nz,{block:{type:"toolCall",toolCallId:s.toolCallId,toolName:s.toolName,input:s.input},result:s.result,duration:s.duration,processStyle:!0})]},s.id))});if("custom"===e.kind)return(0,n.jsx)(ny,{message:e.block.message,cwd:t,onOpenFile:o,isStreaming:i});let l="url"===(a=e.block.source).type?a.url:a.data?`data:${a.media_type??"image/png"};base64,${a.data}`:void 0;return l?(0,n.jsx)("img",{src:l,alt:s("desktop.processOutput"),className:"max-h-72 max-w-full rounded border border-border object-contain"}):null}function rE({blocks:e,cwd:t,onOpenFile:o,sessionId:r,isStreaming:s}){return(0,n.jsx)("div",{className:"space-y-2 pr-2",children:e.map(e=>"text"===e.type?(0,n.jsx)(oJ,{cwd:t,onOpenFile:o,className:"!text-text-dim",isStreaming:s,children:e.text},e.id):(0,n.jsx)(nT,{block:{type:"thinking",thinking:e.thinking,deferred:e.deferred},sessionId:r,entryId:e.origin.sourceEntryId,blockIndex:e.origin.sourceBlockIndex??0,contentOnly:!0,cwd:t,onOpenFile:o,className:"!text-text-dim",isStreaming:s},e.id))})}function rF({blocks:e,isStreaming:t,defaultExpanded:o=!1,onAutoExpanded:s,cwd:i,onOpenFile:a,sessionId:l,tokenRate:d=null}){let c,{t:p}=(0,F.s)(),u=(0,r.useCallback)(e=>p(e),[p]),h=(0,r.useMemo)(()=>(function(e,t,o=!1){let n=[],r=[],s=()=>{0!==r.length&&(n.push({kind:"thinking",id:r.map(e=>e.id).join("+"),label:t("desktop.processStepThinking"),blocks:r}),r=[])};for(let o of e){if("thinking"===o.type||"text"===o.type){r.push(o);continue}if("toolCall"===o.type){let{displayLabel:e}=rS(o,t);n.push({kind:"tool",id:o.id,label:e,block:o,leadBlocks:r}),r=[];continue}s(),"custom"===o.type?n.push({kind:"custom",id:o.id,label:o.customType.replace(/[_-]+/g," ").replace(/\b\w/g,e=>e.toUpperCase()),block:o}):"image"===o.type&&n.push({kind:"image",id:o.id,label:t("desktop.processOutput"),block:o})}s();try{return function(e,t,o){if(e.length<2)return e;let n=[],r=0;for(;r<e.length;){let s,i=e[r];if("tool"!==i.kind||"error"===i.block.status){n.push(i),r++;continue}let a=rS(i.block,t).tone;if(!a){n.push(i),r++;continue}let l=r+1;for(;l<e.length&&"tool"===e[l].kind;){let o=e[l];if("error"===o.block.status||rS(o.block,t).tone!==a)break;l++}if(o&&l===e.length&&l>r+1&&l--,l-r<2){n.push(i),r++;continue}let d=e.slice(r,l),c=d.map(e=>rS(e.block,t)),p=c[0].iconName,u=c[0].typeLabel||"",h=d.map(e=>e.block),g=c.map(e=>e.displayLabel),m=c.map(e=>e.target||""),f=c.map(e=>{if(e.target)return rn(e.target);let t=e.displayLabel;return e.typeLabel&&t.startsWith(e.typeLabel+" ")?t.slice(e.typeLabel.length+1):t}),x=new Set,k=new Set,v=[],y=[];for(let e=0;e<f.length;e++){let t=f[e];x.has(t)||(x.add(t),v.push(t));let o=m[e];o&&!k.has(o)&&(k.add(o),y.push(o))}let b=d.length;s=2===b&&2===v.length?`${u} ${v[0]}, ${v[1]}`:1===v.length?1===b?`${u} ${v[0]}`:`${u} ${v[0]} \xd7${b}`:2===v.length?`${u} ${v[0]}, ${v[1]}`:`${u} ${v[0]} +${v.length-1}`,n.push({kind:"toolGroup",id:h.map(e=>e.id).join("+"),label:s,blocks:h,leadBlocks:d.map(e=>e.leadBlocks),iconName:p,tone:a,typeLabel:u,targetLabels:g,targets:y}),r=l}return n}(n,t,o)}catch(e){return console.error("[ProcessGroup] mergeConsecutiveToolSteps crashed:",e),n}})(e,u,t),[e,u,t]),[g,m]=(0,r.useState)(t||o),[f,x]=(0,r.useState)({}),{displayMode:k,setDisplayMode:v}={displayMode:(0,r.useSyncExternalStore)(n4,n2,n6),setDisplayMode:(0,r.useCallback)(e=>{window.localStorage.setItem(nQ,e),window.dispatchEvent(new Event(n1))},[])},[y,b]=(0,r.useState)(0),[w,j]=(0,r.useState)(!1),[S,C]=(0,r.useState)(!1),T=(0,r.useRef)(null),R=(0,r.useRef)(!1),z=(0,r.useRef)(!1),I=(0,r.useRef)(!1),M=(0,r.useRef)(!1),P=(0,r.useRef)(0);(0,r.useEffect)(()=>{if(t){R.current=!0,m(!0);return}if(!R.current)return;M.current=!1,x({});let e=window.setTimeout(()=>m(!1),300);return R.current=!1,()=>window.clearTimeout(e)},[t]),(0,r.useEffect)(()=>{if(o&&!t&&!I.current&&h.length>0){let e=h[h.length-1];I.current=!0,x({[e.id]:!0}),window.requestAnimationFrame(()=>s?.())}},[o,t,s,h]),(0,r.useEffect)(()=>{if(0===h.length)return;let e=h[h.length-1];b(e=>z.current&&e<h.length?e:h.length-1),t&&x(t=>!0===t[e.id]&&1===Object.keys(t).length?t:{[e.id]:!0})},[t,h]);let E=(0,r.useCallback)(()=>{let e=T.current;e&&(j(t=>{let o=e.scrollTop>0;return t===o?t:o}),C(t=>{let o=e.scrollHeight-e.scrollTop-e.clientHeight>1;return t===o?t:o}))},[]),D=(0,r.useCallback)(()=>{if(Date.now()<P.current)return;let e=T.current;e&&(M.current=e.scrollHeight-e.scrollTop-e.clientHeight>4)},[]);if((0,r.useEffect)(()=>{let e=T.current;if(!e||!g)return;let t=new ResizeObserver(E);return e.addEventListener("scroll",E,{passive:!0}),t.observe(e),e.firstElementChild&&t.observe(e.firstElementChild),E(),()=>{e.removeEventListener("scroll",E),t.disconnect()}},[y,g,k,t,f,h.length,E]),(0,r.useEffect)(()=>{let e=T.current;if(e&&g)return e.addEventListener("scroll",D,{passive:!0}),()=>e.removeEventListener("scroll",D)},[g,k,D]),(0,r.useEffect)(()=>{t&&T.current&&(M.current||(P.current=Date.now()+100,T.current.scrollTop=T.current.scrollHeight,E()))},[e,t,E]),0===h.length)return null;let W=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),N=e.filter(e=>"thinking"===e.type||"text"===e.type).length,$=h.filter(e=>"custom"===e.kind).length,L=1===h.length&&"thinking"===h[0].kind&&!t,O=1===h.length&&("tool"===h[0].kind||"toolGroup"===h[0].kind)&&!t;if(t)c=p("desktop.processWorking");else if(L){let e=function(e){let t;if("thinking"===e.kind){for(let o of e.blocks)"thinking"===o.type&&"number"==typeof o.duration&&(t=(t??0)+o.duration);return t}}(h[0]);c=void 0!==e?p("desktop.processThoughtDone",{duration:e}):p("desktop.processThoughtDoneNoDuration")}else if(O){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,o=rS(t,u),n=t.duration;c=void 0!==n?`${o.displayLabel} ${n}s`:o.displayLabel}}else{let e=[];if(W){let t=1===W?p("desktop.processToolCount",{count:W}):p("desktop.processToolsCount",{count:W});e.push(A>0?t+p("desktop.processFailedCount",{failed:A}):t)}N&&e.push(1===N?p("desktop.processThoughtCount",{count:N}):p("desktop.processThoughtsCount",{count:N})),$&&e.push(1===$?p("desktop.processCustomCount",{count:$}):p("desktop.processCustomsCount",{count:$})),c=e.length>0?p("desktop.processUsed",{summary:e.join(" \xb7 ")}):p("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:()=>m(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":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:p("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)(rC,{expanded:!1})})]}),!L&&(0,n.jsx)("button",{type:"button",onClick:()=>{v("timeline"===k?"tabs":"timeline"),m(!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"===k?"opacity-60":"opacity-0"}`,title:"timeline"===k?p("desktop.processTabMode"):p("desktop.processTimelineMode"),children:(0,n.jsx)(rM,{mode:k})})]}),g&&(0,n.jsx)("div",{className:"overflow-hidden",children:L?(0,n.jsxs)("div",{className:"relative mt-2",children:[(0,n.jsx)("div",{ref:T,className:"max-h-[280px] overflow-y-auto pr-2",children:(0,n.jsx)(rP,{step:h[0],cwd:i,onOpenFile:a,sessionId:l,ts:u,isStreaming:t})}),w&&(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"===k?(0,n.jsxs)("div",{className:"relative mt-2",children:[w&&(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:T,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,o)=>{let r=f[e.id]??!1,s="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?rS(e.block,u):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:[o<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:()=>s&&x(t=>({...t,[e.id]:!r})),className:`flex w-full min-w-0 items-center gap-1.5 text-left text-sm leading-relaxed transition-colors ${s?"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)(rR,{step:e,ts:u})}),"toolGroup"===e.kind&&e.targets.length>0?(0,n.jsx)(rz,{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)(rI,{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:p("desktop.processFailedStep")}),s&&(0,n.jsx)("span",{className:`ml-0.5 shrink-0 opacity-0 transition-opacity group-hover/step:opacity-50 ${r?"rotate-90":""}`,children:(0,n.jsx)(rC,{expanded:!1})})]}),r&&s&&(0,n.jsx)("div",{className:"ml-5 mt-1.5 overflow-hidden",children:(0,n.jsx)(rP,{step:e,cwd:i,onOpenFile:a,sessionId:l,ts:u,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,o)=>{let r="tool"===e.kind&&"error"===e.block.status||"toolGroup"===e.kind&&e.blocks.some(e=>"error"===e.status),s="tool"===e.kind?rS(e.block,u):null,i="toolGroup"!==e.kind&&s?.target!==void 0&&s?.typeLabel!==void 0,a=t&&o===h.length-1,l=y===o;return(0,n.jsxs)("button",{type:"button",onClick:()=>{o===h.length-1&&t?(z.current=!1,M.current=!1):z.current=!0,b(o)},"data-has-file-target":i?"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 ${l?r?"process-tab-error":"process-tab-active":"text-text-dim hover:text-text"}${a?" process-tab-streaming":""}`,children:[(0,n.jsx)(rR,{step:e,ts:u}),"toolGroup"===e.kind&&e.targets.length>0?(0,n.jsx)(rz,{targets:e.targets,typeLabel:e.typeLabel,count:e.blocks.length,label:e.label}):i?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"shrink-0",children:s.typeLabel}),(0,n.jsx)(rI,{filePath:s.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:T,className:"max-h-[280px] overflow-y-auto pr-2",children:h[y]&&(0,n.jsx)(rP,{step:h[y],cwd:i,onOpenFile:a,sessionId:l,ts:u,isStreaming:t})}),w&&(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"})]})]})})]})}let rD=new Map;function rW(e){var t;return{value:e.value,images:e.images.map(e=>({...e})),pastedBlocks:(t=e.pastedBlocks)?t.map(e=>({...e})):void 0}}function rA(e){let t=rD.get(e);return t?rW(t):null}function rN(e,t){if(!t.value&&0===t.images.length)return void rD.delete(e);for(rD.delete(e),rD.set(e,rW(t));rD.size>100;){let e=rD.keys().next().value;if(void 0===e)break;rD.delete(e)}}function r$(e){let t=e.trim();if(!t.startsWith("file://"))return t;try{let e=new URL(t),o=decodeURIComponent(e.pathname);return/^\/[a-zA-Z]:[\\/]/.test(o)?o=o.slice(1):e.host&&"localhost"!==e.host&&(o=`//${e.host}${o}`),o}catch{let e=t.replace(/^file:\/\/(localhost)?/,"");try{e=decodeURIComponent(e)}catch{}return/^\/[a-zA-Z]:[\\/]/.test(e)&&(e=e.slice(1)),e}}let rL=["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 rO(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 o=function(e){if(!e||e.length%4!=0)return null;let t=e.endsWith("==")?2:+!!e.endsWith("="),o=e.length-t,n=null;for(let t=0;t<o;t+=1){var r;let o=(r=e.charCodeAt(t))>=65&&r<=90?r-65:r>=97&&r<=122?r-97+26:r>=48&&r<=57?r-48+52:43===r?62:47===r?63:null;if(null===o)return null;n=o}for(let t=o;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!==o&&o<=0xa00000}function rH(e){let t=/(?:^|\s)@"([^"\n]*)$/.exec(e);if(t)return{start:e.length-(t[1].length+2),query:t[1],quoted:!0};let o=/(?:^|\s)@([^\s"]*)$/.exec(e);return o?{start:e.length-(o[1].length+1),query:o[1],quoted:!1}:null}function rB(e){let t=0;for(let o=0;o<e.length;o++)"/"===e[o]&&t++;return t}function rU(e,t){if(!e)return!0;let o=0;for(let n=0;n<t.length&&o<e.length;n++)t[n]===e[o]&&o++;return o===e.length}function r_(e,t){let o=t?`${e}/`:e;return o.includes(" ")?`@"${o}" `:`@${o} `}var rq=o(23084),rV=o(70312),rK=o(37597),rG=o(49560),rJ=o(21163),rY=o(4615),rX=o(25248),rZ=o(58506),rQ=o(41789),r0=o(87124),r1=o(65098),r2=o(93587);function r4(e,t,o){let s=({size:r=16,style:s})=>(0,n.jsxs)("svg",{fill:t.fill,fillRule:t.fillRule,height:r,style:{flex:"none",lineHeight:1,...s},viewBox:"0 0 24 24",width:r,xmlns:"http://www.w3.org/2000/svg",children:[(0,n.jsx)("title",{children:e}),o]});return s.displayName=`${e}Icon`,(0,r.memo)(s)}let r6=r4("Anthropic",{fill:"currentColor",fillRule:"evenodd"},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M13.827 3.52h3.603L24 20h-3.603l-6.57-16.48zm-7.258 0h3.767L16.906 20h-3.674l-1.343-3.461H5.017l-1.344 3.46H0L6.57 3.522zm4.132 9.959L8.453 7.687 6.205 13.48H10.7z"})})),r8=r4("OpenAI",{fill:"currentColor",fillRule:"evenodd"},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M9.205 8.658v-2.26c0-.19.072-.333.238-.428l4.543-2.616c.619-.357 1.356-.523 2.117-.523 2.854 0 4.662 2.212 4.662 4.566 0 .167 0 .357-.024.547l-4.71-2.759a.797.797 0 00-.856 0l-5.97 3.473zm10.609 8.8V12.06c0-.333-.143-.57-.429-.737l-5.97-3.473 1.95-1.118a.433.433 0 01.476 0l4.543 2.617c1.309.76 2.189 2.378 2.189 3.948 0 1.808-1.07 3.473-2.76 4.163zM7.802 12.703l-1.95-1.142c-.167-.095-.239-.238-.239-.428V5.899c0-2.545 1.95-4.472 4.591-4.472 1 0 1.927.333 2.712.928L8.23 5.067c-.285.166-.428.404-.428.737v6.898zM12 15.128l-2.795-1.57v-3.33L12 8.658l2.795 1.57v3.33L12 15.128zm1.796 7.23c-1 0-1.927-.332-2.712-.927l4.686-2.712c.285-.166.428-.404.428-.737v-6.898l1.974 1.142c.167.095.238.238.238.428v5.233c0 2.545-1.974 4.472-4.614 4.472zm-5.637-5.303l-4.544-2.617c-1.308-.761-2.188-2.378-2.188-3.948A4.482 4.482 0 014.21 6.327v5.423c0 .333.143.571.428.738l5.947 3.449-1.95 1.118a.432.432 0 01-.476 0zm-.262 3.9c-2.688 0-4.662-2.021-4.662-4.519 0-.19.024-.38.047-.57l4.686 2.71c.286.167.571.167.856 0l5.97-3.448v2.26c0 .19-.07.333-.237.428l-4.543 2.616c-.619.357-1.356.523-2.117.523zm5.899 2.83a5.947 5.947 0 005.827-4.756C22.287 18.339 24 15.84 24 13.296c0-1.665-.713-3.282-1.998-4.448.119-.5.19-.999.19-1.498 0-3.401-2.759-5.947-5.946-5.947-.642 0-1.26.095-1.88.31A5.962 5.962 0 0010.205 0a5.947 5.947 0 00-5.827 4.757C1.713 5.447 0 7.945 0 10.49c0 1.666.713 3.283 1.998 4.448-.119.5-.19 1-.19 1.499 0 3.401 2.759 5.946 5.946 5.946.642 0 1.26-.095 1.88-.309a5.96 5.96 0 004.162 1.713z"})})),r5=r4("Google",{},(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("path",{d:"M23 12.245c0-.905-.075-1.565-.236-2.25h-10.54v4.083h6.186c-.124 1.014-.797 2.542-2.294 3.569l-.021.136 3.332 2.53.23.022C21.779 18.417 23 15.593 23 12.245z",fill:"#4285F4"}),(0,n.jsx)("path",{d:"M12.225 23c3.03 0 5.574-.978 7.433-2.665l-3.542-2.688c-.948.648-2.22 1.1-3.891 1.1a6.745 6.745 0 01-6.386-4.572l-.132.011-3.465 2.628-.045.124C4.043 20.531 7.835 23 12.225 23z",fill:"#34A853"}),(0,n.jsx)("path",{d:"M5.84 14.175A6.65 6.65 0 015.463 12c0-.758.138-1.491.361-2.175l-.006-.147-3.508-2.67-.115.054A10.831 10.831 0 001 12c0 1.772.436 3.447 1.197 4.938l3.642-2.763z",fill:"#FBBC05"}),(0,n.jsx)("path",{d:"M12.225 5.253c2.108 0 3.529.892 4.34 1.638l3.167-3.031C17.787 2.088 15.255 1 12.225 1 7.834 1 4.043 3.469 2.197 7.062l3.63 2.763a6.77 6.77 0 016.398-4.572z",fill:"#EB4335"})]})),r3=r4("DeepSeek",{},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M23.748 4.482c-.254-.124-.364.113-.512.234-.051.039-.094.09-.137.136-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.156-.708-.311-.955-.65-.172-.241-.219-.51-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434 1.202-.422 1.84.027 1.436.633 2.58 1.838 3.393.137.093.172.187.129.323-.082.28-.18.552-.266.833-.055.179-.137.217-.329.14a5.526 5.526 0 01-1.736-1.18c-.857-.828-1.631-1.742-2.597-2.458a11.365 11.365 0 00-.689-.471c-.985-.957.13-1.743.388-1.836.27-.098.093-.432-.779-.428-.872.004-1.67.295-2.687.684a3.055 3.055 0 01-.465.137 9.597 9.597 0 00-2.883-.102c-1.885.21-3.39 1.102-4.497 2.623C.082 8.606-.231 10.684.152 12.85c.403 2.284 1.569 4.175 3.36 5.653 1.858 1.533 3.997 2.284 6.438 2.14 1.482-.085 3.133-.284 4.994-1.86.47.234.962.327 1.78.397.63.059 1.236-.03 1.705-.128.735-.156.684-.837.419-.961-2.155-1.004-1.682-.595-2.113-.926 1.096-1.296 2.746-2.642 3.392-7.003.05-.347.007-.565 0-.845-.004-.17.035-.237.23-.256a4.173 4.173 0 001.545-.475c1.396-.763 1.96-2.015 2.093-3.517.02-.23-.004-.467-.247-.588zM11.581 18c-2.089-1.642-3.102-2.183-3.52-2.16-.392.024-.321.471-.235.763.09.288.207.486.371.739.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.167-1.361-.802-2.5-1.86-3.301-3.307-.774-1.393-1.224-2.887-1.298-4.482-.02-.386.093-.522.477-.592a4.696 4.696 0 011.529-.039c2.132.312 3.946 1.265 5.468 2.774.868.86 1.525 1.887 2.202 2.891.72 1.066 1.494 2.082 2.48 2.914.348.292.625.514.891.677-.802.09-2.14.11-3.054-.614zm1-6.44a.306.306 0 01.415-.287.302.302 0 01.2.288.306.306 0 01-.31.307.303.303 0 01-.304-.308zm3.11 1.596c-.2.081-.399.151-.59.16a1.245 1.245 0 01-.798-.254c-.274-.23-.47-.358-.552-.758a1.73 1.73 0 01.016-.588c.07-.327-.008-.537-.239-.727-.187-.156-.426-.199-.688-.199a.559.559 0 01-.254-.078c-.11-.054-.2-.19-.114-.358.028-.054.16-.186.192-.21.356-.202.767-.136 1.146.016.352.144.618.408 1.001.782.391.451.462.576.685.914.176.265.336.537.445.848.067.195-.019.354-.25.452z",fill:"#4D6BFE"})})),r7=r4("Groq",{fill:"currentColor",fillRule:"evenodd"},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M12.036 2c-3.853-.035-7 3-7.036 6.781-.035 3.782 3.055 6.872 6.908 6.907h2.42v-2.566h-2.292c-2.407.028-4.38-1.866-4.408-4.23-.029-2.362 1.901-4.298 4.308-4.326h.1c2.407 0 4.358 1.915 4.365 4.278v6.305c0 2.342-1.944 4.25-4.323 4.279a4.375 4.375 0 01-3.033-1.252l-1.851 1.818A7 7 0 0012.029 22h.092c3.803-.056 6.858-3.083 6.879-6.816v-6.5C18.907 4.963 15.817 2 12.036 2z"})})),r9=r4("Mistral",{},(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("path",{d:"M3.428 3.4h3.429v3.428H3.428V3.4zm13.714 0h3.43v3.428h-3.43V3.4z",fill:"gold"}),(0,n.jsx)("path",{d:"M3.428 6.828h6.857v3.429H3.429V6.828zm10.286 0h6.857v3.429h-6.857V6.828z",fill:"#FFAF00"}),(0,n.jsx)("path",{d:"M3.428 10.258h17.144v3.428H3.428v-3.428z",fill:"#FF8205"}),(0,n.jsx)("path",{d:"M3.428 13.686h3.429v3.428H3.428v-3.428zm6.858 0h3.429v3.428h-3.429v-3.428zm6.856 0h3.43v3.428h-3.43v-3.428z",fill:"#FA500F"}),(0,n.jsx)("path",{d:"M0 17.114h10.286v3.429H0v-3.429zm13.714 0H24v3.429H13.714v-3.429z",fill:"#E10500"})]})),se=r4("Moonshot",{fill:"currentColor",fillRule:"evenodd"},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M1.052 16.916l9.539 2.552a21.007 21.007 0 00.06 2.033l5.956 1.593a11.997 11.997 0 01-5.586.865l-.18-.016-.044-.004-.084-.009-.094-.01a11.605 11.605 0 01-.157-.02l-.107-.014-.11-.016a11.962 11.962 0 01-.32-.051l-.042-.008-.075-.013-.107-.02-.07-.015-.093-.019-.075-.016-.095-.02-.097-.023-.094-.022-.068-.017-.088-.022-.09-.024-.095-.025-.082-.023-.109-.03-.062-.02-.084-.025-.093-.028-.105-.034-.058-.019-.08-.026-.09-.031-.066-.024a6.293 6.293 0 01-.044-.015l-.068-.025-.101-.037-.057-.022-.08-.03-.087-.035-.088-.035-.079-.032-.095-.04-.063-.028-.063-.027a5.655 5.655 0 01-.041-.018l-.066-.03-.103-.047-.052-.024-.096-.046-.062-.03-.084-.04-.086-.044-.093-.047-.052-.027-.103-.055-.057-.03-.058-.032a6.49 6.49 0 01-.046-.026l-.094-.053-.06-.034-.051-.03-.072-.041-.082-.05-.093-.056-.052-.032-.084-.053-.061-.039-.079-.05-.07-.047-.053-.035a7.785 7.785 0 01-.054-.036l-.044-.03-.044-.03a6.066 6.066 0 01-.04-.028l-.057-.04-.076-.054-.069-.05-.074-.054-.056-.042-.076-.057-.076-.059-.086-.067-.045-.035-.064-.052-.074-.06-.089-.073-.046-.039-.046-.039a7.516 7.516 0 01-.043-.037l-.045-.04-.061-.053-.07-.062-.068-.06-.062-.058-.067-.062-.053-.05-.088-.084a13.28 13.28 0 01-.099-.097l-.029-.028-.041-.042-.069-.07-.05-.051-.05-.053a6.457 6.457 0 01-.168-.179l-.08-.088-.062-.07-.071-.08-.042-.049-.053-.062-.058-.068-.046-.056a7.175 7.175 0 01-.027-.033l-.045-.055-.066-.082-.041-.052-.05-.064-.02-.025a11.99 11.99 0 01-1.44-2.402zm-1.02-5.794l11.353 3.037a20.468 20.468 0 00-.469 2.011l10.817 2.894a12.076 12.076 0 01-1.845 2.005L.657 15.923l-.016-.046-.035-.104a11.965 11.965 0 01-.05-.153l-.007-.023a11.896 11.896 0 01-.207-.741l-.03-.126-.018-.08-.021-.097-.018-.081-.018-.09-.017-.084-.018-.094c-.026-.141-.05-.283-.071-.426l-.017-.118-.011-.083-.013-.102a12.01 12.01 0 01-.019-.161l-.005-.047a12.12 12.12 0 01-.034-2.145zm1.593-5.15l11.948 3.196c-.368.605-.705 1.231-1.01 1.875l11.295 3.022c-.142.82-.368 1.612-.668 2.365l-11.55-3.09L.124 10.26l.015-.1.008-.049.01-.067.015-.087.018-.098c.026-.148.056-.295.088-.442l.028-.124.02-.085.024-.097c.022-.09.045-.18.07-.268l.028-.102.023-.083.03-.1.025-.082.03-.096.026-.082.031-.095a11.896 11.896 0 011.01-2.232zm4.442-4.4L17.352 4.59a20.77 20.77 0 00-1.688 1.721l7.823 2.093c.267.852.442 1.744.513 2.665L2.106 5.213l.045-.065.027-.04.04-.055.046-.065.055-.076.054-.072.064-.086.05-.065.057-.073.055-.07.06-.074.055-.069.065-.077.054-.066.066-.077.053-.06.072-.082.053-.06.067-.074.054-.058.073-.078.058-.06.063-.067.168-.17.1-.098.059-.056.076-.071a12.084 12.084 0 012.272-1.677zM12.017 0h.097l.082.001.069.001.054.002.068.002.046.001.076.003.047.002.06.003.054.002.087.005.105.007.144.011.088.007.044.004.077.008.082.008.047.005.102.012.05.006.108.014.081.01.042.006.065.01.207.032.07.012.065.011.14.026.092.018.11.022.046.01.075.016.041.01L14.7.3l.042.01.065.015.049.012.071.017.096.024.112.03.113.03.113.032.05.015.07.02.078.024.073.023.05.016.05.016.076.025.099.033.102.036.048.017.064.023.093.034.11.041.116.045.1.04.047.02.06.024.041.018.063.026.04.018.057.025.11.048.1.046.074.035.075.036.06.028.092.046.091.045.102.052.053.028.049.026.046.024.06.033.041.022.052.029.088.05.106.06.087.051.057.034.053.032.096.059.088.055.098.062.036.024.064.041.084.056.04.027.062.042.062.043.023.017c.054.037.108.075.161.114l.083.06.065.048.056.043.086.065.082.064.04.03.05.041.086.069.079.065.085.071c.712.6 1.353 1.283 1.909 2.031L7.222.994l.062-.027.065-.028.081-.034.086-.035c.113-.045.227-.09.341-.131l.096-.035.093-.033.084-.03.096-.031c.087-.03.176-.058.264-.085l.091-.027.086-.025.102-.03.085-.023.1-.026L9.04.37l.09-.023.091-.022.095-.022.09-.02.098-.021.091-.02.095-.018.092-.018.1-.018.091-.016.098-.017.092-.014.097-.015.092-.013.102-.013.091-.012.105-.012.09-.01.105-.01c.093-.01.186-.018.28-.024l.106-.008.09-.005.11-.006.093-.004.1-.004.097-.002.099-.002.197-.002z"})})),st=r4("Minimax",{},(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("defs",{children:(0,n.jsxs)("linearGradient",{id:"pi-minimax-lobe-icons-minimax-_R_0_",x1:"0%",x2:"100.182%",y1:"50.057%",y2:"50.057%",children:[(0,n.jsx)("stop",{offset:"0%","stop-color":"#E2167E"}),(0,n.jsx)("stop",{offset:"100%","stop-color":"#FE603C"})]})}),(0,n.jsx)("path",{d:"M16.278 2c1.156 0 2.093.927 2.093 2.07v12.501a.74.74 0 00.744.709.74.74 0 00.743-.709V9.099a2.06 2.06 0 012.071-2.049A2.06 2.06 0 0124 9.1v6.561a.649.649 0 01-.652.645.649.649 0 01-.653-.645V9.1a.762.762 0 00-.766-.758.762.762 0 00-.766.758v7.472a2.037 2.037 0 01-2.048 2.026 2.037 2.037 0 01-2.048-2.026v-12.5a.785.785 0 00-.788-.753.785.785 0 00-.789.752l-.001 15.904A2.037 2.037 0 0113.441 22a2.037 2.037 0 01-2.048-2.026V18.04c0-.356.292-.645.652-.645.36 0 .652.289.652.645v1.934c0 .263.142.506.372.638.23.131.514.131.744 0a.734.734 0 00.372-.638V4.07c0-1.143.937-2.07 2.093-2.07zm-5.674 0c1.156 0 2.093.927 2.093 2.07v11.523a.648.648 0 01-.652.645.648.648 0 01-.652-.645V4.07a.785.785 0 00-.789-.78.785.785 0 00-.789.78v14.013a2.06 2.06 0 01-2.07 2.048 2.06 2.06 0 01-2.071-2.048V9.1a.762.762 0 00-.766-.758.762.762 0 00-.766.758v3.8a2.06 2.06 0 01-2.071 2.049A2.06 2.06 0 010 12.9v-1.378c0-.357.292-.646.652-.646.36 0 .653.29.653.646V12.9c0 .418.343.757.766.757s.766-.339.766-.757V9.099a2.06 2.06 0 012.07-2.048 2.06 2.06 0 012.071 2.048v8.984c0 .419.343.758.767.758.423 0 .766-.339.766-.758V4.07c0-1.143.937-2.07 2.093-2.07z",fill:"url(#pi-minimax-lobe-icons-minimax-_R_0_)","fill-rule":"nonzero"})]})),so=r4("Fireworks",{},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{"clip-rule":"evenodd",d:"M14.8 5l-2.801 6.795L9.195 5H7.397l3.072 7.428a1.64 1.64 0 003.038.002L16.598 5H14.8zm1.196 10.352l5.124-5.244-.699-1.669-5.596 5.739a1.664 1.664 0 00-.343 1.807 1.642 1.642 0 001.516 1.012L16 17l8-.02-.699-1.669-7.303.041h-.002zM2.88 10.104l.699-1.669 5.596 5.739c.468.479.603 1.189.343 1.807a1.643 1.643 0 01-1.516 1.012l-8-.018-.002.002.699-1.669 7.303.042-5.122-5.246z",fill:"#5019C5","fill-rule":"evenodd"})})),sn=r4("HuggingFace",{},(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("path",{d:"M2.25 11.535c0-3.407 1.847-6.554 4.844-8.258a9.822 9.822 0 019.687 0c2.997 1.704 4.844 4.851 4.844 8.258 0 5.266-4.337 9.535-9.687 9.535S2.25 16.8 2.25 11.535z",fill:"#FF9D0B"}),(0,n.jsx)("path",{d:"M11.938 20.086c4.797 0 8.687-3.829 8.687-8.551 0-4.722-3.89-8.55-8.687-8.55-4.798 0-8.688 3.828-8.688 8.55 0 4.722 3.89 8.55 8.688 8.55z",fill:"#FFD21E"}),(0,n.jsx)("path",{d:"M11.875 15.113c2.457 0 3.25-2.156 3.25-3.263 0-.576-.393-.394-1.023-.089-.582.283-1.365.675-2.224.675-1.798 0-3.25-1.693-3.25-.586 0 1.107.79 3.263 3.25 3.263h-.003z",fill:"#FF323D"}),(0,n.jsx)("path",{d:"M14.76 9.21c.32.108.445.753.767.585.447-.233.707-.708.659-1.204a1.235 1.235 0 00-.879-1.059 1.262 1.262 0 00-1.33.394c-.322.384-.377.92-.14 1.36.153.283.638-.177.925-.079l-.002.003zm-5.887 0c-.32.108-.448.753-.768.585a1.226 1.226 0 01-.658-1.204c.048-.495.395-.913.878-1.059a1.262 1.262 0 011.33.394c.322.384.377.92.14 1.36-.152.283-.64-.177-.925-.079l.003.003zm1.12 5.34a2.166 2.166 0 011.325-1.106c.07-.02.144.06.219.171l.192.306c.069.1.139.175.209.175.074 0 .15-.074.223-.172l.205-.302c.08-.11.157-.188.234-.165.537.168.986.536 1.25 1.026.932-.724 1.275-1.905 1.275-2.633 0-.508-.306-.426-.81-.19l-.616.296c-.52.24-1.148.48-1.824.48-.676 0-1.302-.24-1.823-.48l-.589-.283c-.52-.248-.838-.342-.838.177 0 .703.32 1.831 1.187 2.56l.18.14z",fill:"#3A3B45"}),(0,n.jsx)("path",{d:"M17.812 10.366a.806.806 0 00.813-.8c0-.441-.364-.8-.813-.8a.806.806 0 00-.812.8c0 .442.364.8.812.8zm-11.624 0a.806.806 0 00.812-.8c0-.441-.364-.8-.812-.8a.806.806 0 00-.813.8c0 .442.364.8.813.8zM4.515 13.073c-.405 0-.765.162-1.017.46a1.455 1.455 0 00-.333.925 1.801 1.801 0 00-.485-.074c-.387 0-.737.146-.985.409a1.41 1.41 0 00-.2 1.722 1.302 1.302 0 00-.447.694c-.06.222-.12.69.2 1.166a1.267 1.267 0 00-.093 1.236c.238.533.81.958 1.89 1.405l.24.096c.768.3 1.473.492 1.478.494.89.243 1.808.375 2.732.394 1.465 0 2.513-.443 3.115-1.314.93-1.342.842-2.575-.274-3.763l-.151-.154c-.692-.684-1.155-1.69-1.25-1.912-.195-.655-.71-1.383-1.562-1.383-.46.007-.889.233-1.15.605-.25-.31-.495-.553-.715-.694a1.87 1.87 0 00-.993-.312zm14.97 0c.405 0 .767.162 1.017.46.216.262.333.588.333.925.158-.047.322-.071.487-.074.388 0 .738.146.985.409a1.41 1.41 0 01.2 1.722c.22.178.377.422.445.694.06.222.12.69-.2 1.166.244.37.279.836.093 1.236-.238.533-.81.958-1.889 1.405l-.239.096c-.77.3-1.475.492-1.48.494-.89.243-1.808.375-2.732.394-1.465 0-2.513-.443-3.115-1.314-.93-1.342-.842-2.575.274-3.763l.151-.154c.695-.684 1.157-1.69 1.252-1.912.195-.655.708-1.383 1.56-1.383.46.007.889.233 1.15.605.25-.31.495-.553.718-.694.244-.162.523-.265.814-.3l.176-.012z",fill:"#FF9D0B"}),(0,n.jsx)("path",{d:"M9.785 20.132c.688-.994.638-1.74-.305-2.667-.945-.928-1.495-2.288-1.495-2.288s-.205-.788-.672-.714c-.468.074-.81 1.25.17 1.971.977.721-.195 1.21-.573.534-.375-.677-1.405-2.416-1.94-2.751-.532-.332-.907-.148-.782.541.125.687 2.357 2.35 2.14 2.707-.218.362-.983-.42-.983-.42S2.953 14.9 2.43 15.46c-.52.558.398 1.026 1.7 1.803 1.308.778 1.41.985 1.225 1.28-.187.295-3.07-2.1-3.34-1.083-.27 1.011 2.943 1.304 2.745 2.006-.2.7-2.265-1.324-2.685-.537-.425.79 2.913 1.718 2.94 1.725 1.075.276 3.813.859 4.77-.522zm4.432 0c-.687-.994-.64-1.74.305-2.667.943-.928 1.493-2.288 1.493-2.288s.205-.788.675-.714c.465.074.807 1.25-.17 1.971-.98.721.195 1.21.57.534.377-.677 1.407-2.416 1.94-2.751.532-.332.91-.148.782.541-.125.687-2.355 2.35-2.137 2.707.215.362.98-.42.98-.42S21.05 14.9 21.57 15.46c.52.558-.395 1.026-1.7 1.803-1.308.778-1.408.985-1.225 1.28.187.295 3.07-2.1 3.34-1.083.27 1.011-2.94 1.304-2.743 2.006.2.7 2.263-1.324 2.685-.537.423.79-2.912 1.718-2.94 1.725-1.077.276-3.815.859-4.77-.522z",fill:"#FFD21E"})]})),sr=r4("Cerebras",{fill:"currentColor"},(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("path",{"clip-rule":"evenodd",d:"M14.121 2.701a9.299 9.299 0 000 18.598V22.7c-5.91 0-10.7-4.791-10.7-10.701S8.21 1.299 14.12 1.299V2.7zm4.752 3.677A7.353 7.353 0 109.42 17.643l-.901 1.074a8.754 8.754 0 01-1.08-12.334 8.755 8.755 0 0112.335-1.08l-.901 1.075zm-2.255.844a5.407 5.407 0 00-5.048 9.563l-.656 1.24a6.81 6.81 0 016.358-12.043l-.654 1.24zM14.12 8.539a3.46 3.46 0 100 6.922v1.402a4.863 4.863 0 010-9.726v1.402z",fill:"#F15A29","fill-rule":"evenodd"}),(0,n.jsx)("path",{d:"M15.407 10.836a2.24 2.24 0 00-.51-.409 1.084 1.084 0 00-.544-.152c-.255 0-.483.047-.684.14a1.58 1.58 0 00-.84.912c-.074.203-.11.416-.11.631 0 .218.036.43.11.631a1.594 1.594 0 00.84.913c.2.093.43.14.684.14.216 0 .417-.046.602-.135.188-.09.35-.225.475-.392l.928 1.006c-.14.14-.3.261-.482.363a3.367 3.367 0 01-1.083.38c-.17.026-.317.04-.44.04a3.315 3.315 0 01-1.182-.21 2.825 2.825 0 01-.961-.597 2.816 2.816 0 01-.644-.929 2.987 2.987 0 01-.238-1.21c0-.444.08-.847.238-1.21.15-.35.368-.666.643-.929.278-.261.605-.464.962-.596a3.315 3.315 0 011.182-.21c.355 0 .712.068 1.072.204.361.138.685.36.944.649l-.962.97z"})]})),ss=r4("OpenRouter",{fill:"currentColor",fillRule:"evenodd"},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M18.654 3.87a5.087 5.087 0 110 10.174L23.7 19.09c.64.641.187 1.737-.72 1.737H8.48a8.479 8.479 0 010-16.958h10.175zM8.479 7.26a5.087 5.087 0 100 10.176 5.087 5.087 0 000-10.175z"})})),si=r4("XAI",{fill:"currentColor",fillRule:"evenodd"},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M6.469 8.776L16.512 23h-4.464L2.005 8.776H6.47zm-.004 7.9l2.233 3.164L6.467 23H2l4.465-6.324zM22 2.582V23h-3.659V7.764L22 2.582zM22 1l-9.952 14.095-2.233-3.163L17.533 1H22z"})})),sa=r4("Cloudflare",{},(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("path",{d:"M16.493 17.4c.135-.52.08-.983-.161-1.338-.215-.328-.592-.519-1.05-.519l-8.663-.109a.148.148 0 01-.135-.082c-.027-.054-.027-.109-.027-.163.027-.082.108-.164.189-.164l8.744-.11c1.05-.054 2.153-.9 2.556-1.937l.511-1.31c.027-.055.027-.11.027-.164C17.92 8.91 15.66 7 12.942 7c-2.503 0-4.628 1.638-5.381 3.903a2.432 2.432 0 00-1.803-.491c-1.21.109-2.153 1.092-2.287 2.32-.027.328 0 .628.054.9C1.56 13.688 0 15.326 0 17.319c0 .19.027.355.027.545 0 .082.08.137.161.137h15.983c.08 0 .188-.055.215-.164l.107-.437",fill:"#F38020"}),(0,n.jsx)("path",{d:"M19.238 11.75h-.242c-.054 0-.108.054-.135.109l-.35 1.2c-.134.52-.08.983.162 1.338.215.328.592.518 1.05.518l1.855.11c.054 0 .108.027.135.082.027.054.027.109.027.163-.027.082-.108.164-.188.164l-1.91.11c-1.05.054-2.153.9-2.557 1.937l-.134.355c-.027.055.026.137.107.137h6.592c.081 0 .162-.055.162-.137.107-.41.188-.846.188-1.31-.027-2.62-2.153-4.777-4.762-4.777",fill:"#FCAD32"})]})),sl=r4("Vercel",{fill:"currentColor",fillRule:"evenodd"},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M12 0l12 20.785H0L12 0z"})})),sd=r4("GithubCopilot",{fill:"currentColor",fillRule:"evenodd"},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M19.245 5.364c1.322 1.36 1.877 3.216 2.11 5.817.622 0 1.2.135 1.592.654l.73.964c.21.278.323.61.323.955v2.62c0 .339-.173.669-.453.868C20.239 19.602 16.157 21.5 12 21.5c-4.6 0-9.205-2.583-11.547-4.258-.28-.2-.452-.53-.453-.868v-2.62c0-.345.113-.679.321-.956l.73-.963c.392-.517.974-.654 1.593-.654l.029-.297c.25-2.446.81-4.213 2.082-5.52 2.461-2.54 5.71-2.851 7.146-2.864h.198c1.436.013 4.685.323 7.146 2.864zm-7.244 4.328c-.284 0-.613.016-.962.05-.123.447-.305.85-.57 1.108-1.05 1.023-2.316 1.18-2.994 1.18-.638 0-1.306-.13-1.851-.464-.516.165-1.012.403-1.044.996a65.882 65.882 0 00-.063 2.884l-.002.48c-.002.563-.005 1.126-.013 1.69.002.326.204.63.51.765 2.482 1.102 4.83 1.657 6.99 1.657 2.156 0 4.504-.555 6.985-1.657a.854.854 0 00.51-.766c.03-1.682.006-3.372-.076-5.053-.031-.596-.528-.83-1.046-.996-.546.333-1.212.464-1.85.464-.677 0-1.942-.157-2.993-1.18-.266-.258-.447-.661-.57-1.108-.32-.032-.64-.049-.96-.05zm-2.525 4.013c.539 0 .976.426.976.95v1.753c0 .525-.437.95-.976.95a.964.964 0 01-.976-.95v-1.752c0-.525.437-.951.976-.951zm5 0c.539 0 .976.426.976.95v1.753c0 .525-.437.95-.976.95a.964.964 0 01-.976-.95v-1.752c0-.525.437-.951.976-.951zM7.635 5.087c-1.05.102-1.935.438-2.385.906-.975 1.037-.765 3.668-.21 4.224.405.394 1.17.657 1.995.657h.09c.649-.013 1.785-.176 2.73-1.11.435-.41.705-1.433.675-2.47-.03-.834-.27-1.52-.63-1.813-.39-.336-1.275-.482-2.265-.394zm6.465.394c-.36.292-.6.98-.63 1.813-.03 1.037.24 2.06.675 2.47.968.957 2.136 1.104 2.776 1.11h.044c.825 0 1.59-.263 1.995-.657.555-.556.765-3.187-.21-4.224-.45-.468-1.335-.804-2.385-.906-.99-.088-1.875.058-2.265.394zM12 7.615c-.24 0-.525.015-.84.044.03.16.045.336.06.526l-.001.159a2.94 2.94 0 01-.014.25c.225-.022.425-.027.612-.028h.366c.187 0 .387.006.612.028-.015-.146-.015-.277-.015-.409.015-.19.03-.365.06-.526a9.29 9.29 0 00-.84-.044z"})})),sc=r4("Aws",{fill:"currentColor",fillRule:"evenodd"},(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("path",{d:"M6.763 11.212c0 .296.032.535.088.71.064.176.144.368.256.576.04.063.056.127.056.183 0 .08-.048.16-.152.24l-.503.335a.383.383 0 01-.208.072c-.08 0-.16-.04-.239-.112a2.47 2.47 0 01-.287-.375 6.18 6.18 0 01-.248-.471c-.622.734-1.405 1.101-2.347 1.101-.67 0-1.205-.191-1.596-.574-.39-.384-.59-.894-.59-1.533 0-.678.24-1.23.726-1.644.487-.415 1.133-.623 1.955-.623.272 0 .551.024.846.064.296.04.6.104.918.176v-.583c0-.607-.127-1.03-.375-1.277-.255-.248-.686-.367-1.3-.367-.28 0-.568.031-.863.103-.295.072-.583.16-.862.272a2.4 2.4 0 01-.28.104.488.488 0 01-.127.023c-.112 0-.168-.08-.168-.247v-.391c0-.128.016-.224.056-.28a.597.597 0 01.224-.167 4.577 4.577 0 011.005-.36 4.84 4.84 0 011.246-.151c.95 0 1.644.216 2.091.647.44.43.662 1.085.662 1.963v2.586h.016zm-3.24 1.214c.263 0 .534-.048.822-.144a1.78 1.78 0 00.758-.51 1.27 1.27 0 00.272-.512c.047-.191.08-.423.08-.694v-.335a6.66 6.66 0 00-.735-.136 6.02 6.02 0 00-.75-.048c-.535 0-.926.104-1.19.32-.263.215-.39.518-.39.917 0 .375.095.655.295.846.191.2.47.296.838.296zm6.41.862c-.144 0-.24-.024-.304-.08-.064-.048-.12-.16-.168-.311L7.586 6.726a1.398 1.398 0 01-.072-.32c0-.128.064-.2.191-.2h.783c.151 0 .255.025.31.08.065.048.113.16.16.312l1.342 5.284 1.245-5.284c.04-.16.088-.264.151-.312a.549.549 0 01.32-.08h.638c.152 0 .256.025.32.08.063.048.12.16.151.312l1.261 5.348 1.381-5.348c.048-.16.104-.264.16-.312a.52.52 0 01.311-.08h.743c.127 0 .2.065.2.2 0 .04-.009.08-.017.128a1.137 1.137 0 01-.056.2l-1.923 6.17c-.048.16-.104.263-.168.311a.51.51 0 01-.303.08h-.687c-.15 0-.255-.024-.32-.08-.063-.056-.119-.16-.15-.32L12.32 7.747l-1.23 5.14c-.04.16-.087.264-.15.32-.065.056-.177.08-.32.08l-.686.001zm10.256.215c-.415 0-.83-.048-1.229-.143-.399-.096-.71-.2-.918-.32-.128-.071-.215-.151-.247-.223a.563.563 0 01-.048-.224v-.407c0-.167.064-.247.183-.247.048 0 .096.008.144.024.048.016.12.048.2.08.271.12.566.215.878.279.32.064.63.096.95.096.502 0 .894-.088 1.165-.264a.86.86 0 00.415-.758.777.777 0 00-.215-.559c-.144-.151-.416-.287-.807-.415l-1.157-.36c-.583-.183-1.014-.454-1.277-.813a1.902 1.902 0 01-.4-1.158c0-.335.073-.63.216-.886.144-.255.335-.479.575-.654.24-.184.51-.32.83-.415.32-.096.655-.136 1.006-.136.175 0 .36.008.535.032.183.024.35.056.518.088.16.04.312.08.455.127.144.048.256.096.336.144a.69.69 0 01.24.2.43.43 0 01.071.263v.375c0 .168-.064.256-.184.256a.83.83 0 01-.303-.096 3.652 3.652 0 00-1.532-.311c-.455 0-.815.071-1.062.223-.248.152-.375.383-.375.71 0 .224.08.416.24.567.16.152.454.304.877.44l1.134.358c.574.184.99.44 1.237.767.247.327.367.702.367 1.117 0 .343-.072.655-.207.926a2.157 2.157 0 01-.583.703c-.248.2-.543.343-.886.447-.36.111-.734.167-1.142.167z"}),(0,n.jsx)("path",{d:"M.378 15.475c3.384 1.963 7.56 3.153 11.877 3.153 2.914 0 6.114-.607 9.06-1.852.44-.2.814.287.383.607-2.626 1.94-6.442 2.969-9.722 2.969-4.598 0-8.74-1.7-11.87-4.526-.247-.223-.024-.527.272-.351zm23.531-.2c.287.36-.08 2.826-1.485 4.007-.215.184-.423.088-.327-.151l.175-.439c.343-.88.802-2.198.52-2.555-.336-.43-2.22-.207-3.074-.103-.255.032-.295-.192-.063-.36 1.5-1.053 3.967-.75 4.254-.399z",fill:"#F90"})]})),sp=r4("Azure",{},(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("path",{d:"M7.242 1.613A1.11 1.11 0 018.295.857h6.977L8.03 22.316a1.11 1.11 0 01-1.052.755h-5.43a1.11 1.11 0 01-1.053-1.466L7.242 1.613z",fill:"url(#pi-azure-lobe-icons-azure-0-_R_0_)"}),(0,n.jsx)("path",{d:"M18.397 15.296H7.4a.51.51 0 00-.347.882l7.066 6.595c.206.192.477.298.758.298h6.226l-2.706-7.775z",fill:"#0078D4"}),(0,n.jsx)("path",{d:"M15.272.857H7.497L0 23.071h7.775l1.596-4.73 5.068 4.73h6.665l-2.707-7.775h-7.998L15.272.857z",fill:"url(#pi-azure-lobe-icons-azure-1-_R_0_)"}),(0,n.jsx)("path",{d:"M17.193 1.613a1.11 1.11 0 00-1.052-.756h-7.81.035c.477 0 .9.304 1.052.756l6.748 19.992a1.11 1.11 0 01-1.052 1.466h-.12 7.895a1.11 1.11 0 001.052-1.466L17.193 1.613z",fill:"url(#pi-azure-lobe-icons-azure-2-_R_0_)"}),(0,n.jsxs)("defs",{children:[(0,n.jsxs)("linearGradient",{gradientUnits:"userSpaceOnUse",id:"pi-azure-lobe-icons-azure-0-_R_0_",x1:"8.247",x2:"1.002",y1:"1.626",y2:"23.03",children:[(0,n.jsx)("stop",{"stop-color":"#114A8B"}),(0,n.jsx)("stop",{offset:"1","stop-color":"#0669BC"})]}),(0,n.jsxs)("linearGradient",{gradientUnits:"userSpaceOnUse",id:"pi-azure-lobe-icons-azure-1-_R_0_",x1:"14.042",x2:"12.324",y1:"15.302",y2:"15.888",children:[(0,n.jsx)("stop",{"stop-opacity":".3"}),(0,n.jsx)("stop",{offset:".071","stop-opacity":".2"}),(0,n.jsx)("stop",{offset:".321","stop-opacity":".1"}),(0,n.jsx)("stop",{offset:".623","stop-opacity":".05"}),(0,n.jsx)("stop",{offset:"1","stop-opacity":"0"})]}),(0,n.jsxs)("linearGradient",{gradientUnits:"userSpaceOnUse",id:"pi-azure-lobe-icons-azure-2-_R_0_",x1:"12.841",x2:"20.793",y1:"1.626",y2:"22.814",children:[(0,n.jsx)("stop",{"stop-color":"#3CCBF4"}),(0,n.jsx)("stop",{offset:"1","stop-color":"#2892DF"})]})]})]})),su=r4("Kimi",{},(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("path",{d:"M21.846 0a1.923 1.923 0 110 3.846H20.15a.226.226 0 01-.227-.226V1.923C19.923.861 20.784 0 21.846 0z",fill:"#1783FF"}),(0,n.jsx)("path",{d:"M11.065 11.199l7.257-7.2c.137-.136.06-.41-.116-.41H14.3a.164.164 0 00-.117.051l-7.82 7.756c-.122.12-.302.013-.302-.179V3.82c0-.127-.083-.23-.185-.23H3.186c-.103 0-.186.103-.186.23V19.77c0 .128.083.23.186.23h2.69c.103 0 .186-.102.186-.23v-3.25c0-.069.025-.135.069-.178l2.424-2.406a.158.158 0 01.205-.023l6.484 4.772a7.677 7.677 0 003.453 1.283c.108.012.2-.095.2-.23v-3.06c0-.117-.07-.212-.164-.227a5.028 5.028 0 01-2.027-.807l-5.613-4.064c-.117-.078-.132-.279-.028-.381z",fill:"#fff"})]})),sh=r4("Qwen",{},(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("path",{d:"M12.604 1.34c.393.69.784 1.382 1.174 2.075a.18.18 0 00.157.091h5.552c.174 0 .322.11.446.327l1.454 2.57c.19.337.24.478.024.837-.26.43-.513.864-.76 1.3l-.367.658c-.106.196-.223.28-.04.512l2.652 4.637c.172.301.111.494-.043.77-.437.785-.882 1.564-1.335 2.34-.159.272-.352.375-.68.37-.777-.016-1.552-.01-2.327.016a.099.099 0 00-.081.05 575.097 575.097 0 01-2.705 4.74c-.169.293-.38.363-.725.364-.997.003-2.002.004-3.017.002a.537.537 0 01-.465-.271l-1.335-2.323a.09.09 0 00-.083-.049H4.982c-.285.03-.553-.001-.805-.092l-1.603-2.77a.543.543 0 01-.002-.54l1.207-2.12a.198.198 0 000-.197 550.951 550.951 0 01-1.875-3.272l-.79-1.395c-.16-.31-.173-.496.095-.965.465-.813.927-1.625 1.387-2.436.132-.234.304-.334.584-.335a338.3 338.3 0 012.589-.001.124.124 0 00.107-.063l2.806-4.895a.488.488 0 01.422-.246c.524-.001 1.053 0 1.583-.006L11.704 1c.341-.003.724.032.9.34zm-3.432.403a.06.06 0 00-.052.03L6.254 6.788a.157.157 0 01-.135.078H3.253c-.056 0-.07.025-.041.074l5.81 10.156c.025.042.013.062-.034.063l-2.795.015a.218.218 0 00-.2.116l-1.32 2.31c-.044.078-.021.118.068.118l5.716.008c.046 0 .08.02.104.061l1.403 2.454c.046.081.092.082.139 0l5.006-8.76.783-1.382a.055.055 0 01.096 0l1.424 2.53a.122.122 0 00.107.062l2.763-.02a.04.04 0 00.035-.02.041.041 0 000-.04l-2.9-5.086a.108.108 0 010-.113l.293-.507 1.12-1.977c.024-.041.012-.062-.035-.062H9.2c-.059 0-.073-.026-.043-.077l1.434-2.505a.107.107 0 000-.114L9.225 1.774a.06.06 0 00-.053-.031zm6.29 8.02c.046 0 .058.02.034.06l-.832 1.465-2.613 4.585a.056.056 0 01-.05.029.058.058 0 01-.05-.029L8.498 9.841c-.02-.034-.01-.052.028-.054l.216-.012 6.722-.012z",fill:"url(#pi-qwen-lobe-icons-qwen-_R_0_)","fill-rule":"nonzero"}),(0,n.jsx)("defs",{children:(0,n.jsxs)("linearGradient",{id:"pi-qwen-lobe-icons-qwen-_R_0_",x1:"0%",x2:"100%",y1:"0%",y2:"0%",children:[(0,n.jsx)("stop",{offset:"0%","stop-color":"#6336E7","stop-opacity":".84"}),(0,n.jsx)("stop",{offset:"100%","stop-color":"#6F69F7","stop-opacity":".84"})]})})]})),sg=r4("Zhipu",{},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M11.991 23.503a.24.24 0 00-.244.248.24.24 0 00.244.249.24.24 0 00.245-.249.24.24 0 00-.22-.247l-.025-.001zM9.671 5.365a1.697 1.697 0 011.099 2.132l-.071.172-.016.04-.018.054c-.07.16-.104.32-.104.498-.035.71.47 1.279 1.186 1.314h.366c1.309.053 2.338 1.173 2.286 2.523-.052 1.332-1.152 2.38-2.478 2.327h-.174c-.715.018-1.274.64-1.239 1.368 0 .124.018.23.053.337.209.373.54.658.96.8.75.23 1.517-.125 1.9-.782l.018-.035c.402-.64 1.17-.96 1.92-.711.854.284 1.378 1.226 1.099 2.167a1.661 1.661 0 01-2.077 1.102 1.711 1.711 0 01-.907-.711l-.017-.035c-.2-.323-.463-.58-.851-.711l-.056-.018a1.646 1.646 0 00-1.954.746 1.66 1.66 0 01-1.065.764 1.677 1.677 0 01-1.989-1.279c-.209-.906.332-1.83 1.257-2.043a1.51 1.51 0 01.296-.035h.018c.68-.071 1.151-.622 1.116-1.333a1.307 1.307 0 00-.227-.693 2.515 2.515 0 01-.366-1.403 2.39 2.39 0 01.366-1.208c.14-.195.21-.444.227-.693.018-.71-.506-1.261-1.186-1.332l-.07-.018a1.43 1.43 0 01-.299-.07l-.05-.019a1.7 1.7 0 01-1.047-2.114 1.68 1.68 0 012.094-1.101zm-5.575 10.11c.26-.264.639-.367.994-.27.355.096.633.379.728.74.095.362-.007.748-.267 1.013-.402.41-1.053.41-1.455 0a1.062 1.062 0 010-1.482zm14.845-.294c.359-.09.738.024.992.297.254.274.344.665.237 1.025-.107.36-.396.634-.756.718-.551.128-1.1-.22-1.23-.781a1.05 1.05 0 01.757-1.26zm-.064-4.39c.314.32.49.753.49 1.206 0 .452-.176.886-.49 1.206-.315.32-.74.5-1.185.5-.444 0-.87-.18-1.184-.5a1.727 1.727 0 010-2.412 1.654 1.654 0 012.369 0zm-11.243.163c.364.484.447 1.128.218 1.691a1.665 1.665 0 01-2.188.923c-.855-.36-1.26-1.358-.907-2.228a1.68 1.68 0 011.33-1.038c.593-.08 1.183.169 1.547.652zm11.545-4.221c.368 0 .708.2.892.524.184.324.184.724 0 1.048a1.026 1.026 0 01-.892.524c-.568 0-1.03-.47-1.03-1.048 0-.579.462-1.048 1.03-1.048zm-14.358 0c.368 0 .707.2.891.524.184.324.184.724 0 1.048a1.026 1.026 0 01-.891.524c-.569 0-1.03-.47-1.03-1.048 0-.579.461-1.048 1.03-1.048zm10.031-1.475c.925 0 1.675.764 1.675 1.706s-.75 1.705-1.675 1.705-1.674-.763-1.674-1.705c0-.942.75-1.706 1.674-1.706zm-2.626-.684c.362-.082.653-.356.761-.718a1.062 1.062 0 00-.238-1.028 1.017 1.017 0 00-.996-.294c-.547.14-.881.7-.752 1.257.13.558.675.907 1.225.783zm0 16.876c.359-.087.644-.36.75-.72a1.062 1.062 0 00-.237-1.019 1.018 1.018 0 00-.985-.301 1.037 1.037 0 00-.762.717c-.108.361-.017.754.239 1.028.245.263.606.377.953.305l.043-.01zM17.19 3.5a.631.631 0 00.628-.64c0-.355-.279-.64-.628-.64a.631.631 0 00-.628.64c0 .355.28.64.628.64zm-10.38 0a.631.631 0 00.628-.64c0-.355-.28-.64-.628-.64a.631.631 0 00-.628.64c0 .355.279.64.628.64zm-5.182 7.852a.631.631 0 00-.628.64c0 .354.28.639.628.639a.63.63 0 00.627-.606l.001-.034a.62.62 0 00-.628-.64zm5.182 9.13a.631.631 0 00-.628.64c0 .355.279.64.628.64a.631.631 0 00.628-.64c0-.355-.28-.64-.628-.64zm10.38.018a.631.631 0 00-.628.64c0 .355.28.64.628.64a.631.631 0 00.628-.64c0-.355-.279-.64-.628-.64zm5.182-9.148a.631.631 0 00-.628.64c0 .354.279.639.628.639a.631.631 0 00.628-.64c0-.355-.28-.64-.628-.64zm-.384-4.992a.24.24 0 00.244-.249.24.24 0 00-.244-.249.24.24 0 00-.244.249c0 .142.122.249.244.249zM11.991.497a.24.24 0 00.245-.248A.24.24 0 0011.99 0a.24.24 0 00-.244.249c0 .133.108.236.223.247l.021.001zM2.011 6.36a.24.24 0 00.245-.249.24.24 0 00-.244-.249.24.24 0 00-.244.249.24.24 0 00.244.249zm0 11.263a.24.24 0 00-.243.248.24.24 0 00.244.249.24.24 0 00.244-.249.252.252 0 00-.244-.248zm19.995-.018a.24.24 0 00-.245.248.24.24 0 00.245.25.24.24 0 00.244-.25.252.252 0 00-.244-.248z",fill:"#3859FF","fill-rule":"nonzero"})})),sm=r4("Cohere",{},(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("path",{"clip-rule":"evenodd",d:"M8.128 14.099c.592 0 1.77-.033 3.398-.703 1.897-.781 5.672-2.2 8.395-3.656 1.905-1.018 2.74-2.366 2.74-4.18A4.56 4.56 0 0018.1 1H7.549A6.55 6.55 0 001 7.55c0 3.617 2.745 6.549 7.128 6.549z",fill:"#39594D","fill-rule":"evenodd"}),(0,n.jsx)("path",{"clip-rule":"evenodd",d:"M9.912 18.61a4.387 4.387 0 012.705-4.052l3.323-1.38c3.361-1.394 7.06 1.076 7.06 4.715a5.104 5.104 0 01-5.105 5.104l-3.597-.001a4.386 4.386 0 01-4.386-4.387z",fill:"#D18EE2","fill-rule":"evenodd"}),(0,n.jsx)("path",{d:"M4.776 14.962A3.775 3.775 0 001 18.738v.489a3.776 3.776 0 007.551 0v-.49a3.775 3.775 0 00-3.775-3.775z",fill:"#FF7759"})]})),sf=r4("Perplexity",{},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M19.785 0v7.272H22.5V17.62h-2.935V24l-7.037-6.194v6.145h-1.091v-6.152L4.392 24v-6.465H1.5V7.188h2.884V0l7.053 6.494V.19h1.09v6.49L19.786 0zm-7.257 9.044v7.319l5.946 5.234V14.44l-5.946-5.397zm-1.099-.08l-5.946 5.398v7.235l5.946-5.234V8.965zm8.136 7.58h1.844V8.349H13.46l6.105 5.54v2.655zm-8.982-8.28H2.59v8.195h1.8v-2.576l6.192-5.62zM5.475 2.476v4.71h5.115l-5.115-4.71zm13.219 0l-5.115 4.71h5.115v-4.71z",fill:"#22B8CD","fill-rule":"nonzero"})})),sx=r4("Together",{},(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("path",{d:"M23.197 4.503A6 6 0 0015 2.307a5.973 5.973 0 00-2.995 4.933l5.996.008v.515h-5.996c.039.937.298 1.87.8 2.74a6 6 0 1010.39-6z",fill:"#EF2CC1"}),(0,n.jsx)("path",{d:"M.805 4.5A6 6 0 003 12.697a5.972 5.972 0 005.77.127L5.779 7.627l.446-.257 2.997 5.192A6 6 0 10.804 4.5z",fill:"#CAAEF5"}),(0,n.jsx)("path",{d:"M12 23.894a6 6 0 005.999-6c0-2.13-1.1-3.996-2.775-5.06l-3.005 5.189-.444-.258 2.997-5.192A6 6 0 1012 23.894z",fill:"#FC4C02"})]})),sk=r4("Grok",{fill:"currentColor",fillRule:"evenodd"},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M9.27 15.29l7.978-5.897c.391-.29.95-.177 1.137.272.98 2.369.542 5.215-1.41 7.169-1.951 1.954-4.667 2.382-7.149 1.406l-2.711 1.257c3.889 2.661 8.611 2.003 11.562-.953 2.341-2.344 3.066-5.539 2.388-8.42l.006.007c-.983-4.232.242-5.924 2.75-9.383.06-.082.12-.164.179-.248l-3.301 3.305v-.01L9.267 15.292M7.623 16.723c-2.792-2.67-2.31-6.801.071-9.184 1.761-1.763 4.647-2.483 7.166-1.425l2.705-1.25a7.808 7.808 0 00-1.829-1A8.975 8.975 0 005.984 5.83c-2.533 2.536-3.33 6.436-1.962 9.764 1.022 2.487-.653 4.246-2.34 6.022-.599.63-1.199 1.259-1.682 1.925l7.62-6.815"})})),sv=r4("AntGroup",{},(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("path",{d:"M9.797 6.282a.451.451 0 01-.336-.315 1.019 1.019 0 010-.505c.156-.86.3-1.725.501-2.577.14-.7.42-1.367.823-1.96.305-.431.75-.746 1.262-.89.877-.217 1.24.629.937 1.348-.259.593-.877.914-1.334 1.348-.835.795-1.096 2.14-1.336 3.212a.427.427 0 01-.186.277.437.437 0 01-.331.062z",fill:"url(#pi-antgroup-lobe-icons-antgroup-0-_R_0_)",transform:"translate(3)"}),(0,n.jsx)("path",{d:"M6.334 4.672c.33-.121.682.146.946.297.278.145.587.219.901.214.231.01.466 0 .688.018 4.098.176 7.484 3.22 8.05 7.237.565 4.016-1.852 7.859-5.745 9.134-3.894 1.276-8.153-.38-10.126-3.935A8.339 8.339 0 013.133 7.081c.348-.278.716-.53 1.102-.755a8.404 8.404 0 001.318-.79c.28-.243.45-.742.781-.864zm4.406 2.15c-2.841.003-4.898 2.533-4.628 5.642.27 3.109 2.781 5.641 5.613 5.665 2.832.024 4.932-2.512 4.658-5.644-.273-3.133-2.802-5.666-5.643-5.663zm.357.57a4.707 4.707 0 013.304 1.446 5.703 5.703 0 011.643 3.49 4.841 4.841 0 01-1.141 3.705v.015a3.923 3.923 0 01-2.808 1.303 4.664 4.664 0 01-3.367-1.387 5.678 5.678 0 01-1.71-3.518 4.832 4.832 0 011.14-3.753 3.923 3.923 0 012.813-1.3h.126z",fill:"url(#pi-antgroup-lobe-icons-antgroup-1-_R_0_)",transform:"translate(3)"}),(0,n.jsx)("path",{d:"M2.346 2.054a1.26 1.26 0 01.384-.594.842.842 0 011.165.11c.694.82.169 2.078.142 3.02.013.805.208 1.597.57 2.318.084.134.147.279.186.43a.539.539 0 01-.3.577c-.345.17-.568-.19-.709-.446-.324-.6-.617-1.216-.877-1.846a8.698 8.698 0 01-.618-1.987 7.523 7.523 0 01-.051-.37 3.717 3.717 0 01-.024-.34 2.506 2.506 0 01.132-.872z",fill:"url(#pi-antgroup-lobe-icons-antgroup-2-_R_0_)",transform:"translate(3)"}),(0,n.jsxs)("defs",{children:[(0,n.jsxs)("linearGradient",{id:"pi-antgroup-lobe-icons-antgroup-0-_R_0_",x1:"31.373%",x2:"61.365%",y1:"95.551%",y2:"-.348%",children:[(0,n.jsx)("stop",{offset:"0%","stop-color":"#06F"}),(0,n.jsx)("stop",{offset:"20%","stop-color":"#1677FF"}),(0,n.jsx)("stop",{offset:"100%","stop-color":"#04A6FF"})]}),(0,n.jsxs)("linearGradient",{id:"pi-antgroup-lobe-icons-antgroup-1-_R_0_",x1:"4.366%",x2:"94.359%",y1:"65.982%",y2:"32.918%",children:[(0,n.jsx)("stop",{offset:"0%","stop-color":"#06F"}),(0,n.jsx)("stop",{offset:"20%","stop-color":"#1677FF"}),(0,n.jsx)("stop",{offset:"100%","stop-color":"#04A6FF"})]}),(0,n.jsxs)("linearGradient",{id:"pi-antgroup-lobe-icons-antgroup-2-_R_0_",x1:"56.255%",x2:"45.986%",y1:"99.257%",y2:"1.384%",children:[(0,n.jsx)("stop",{offset:"0%","stop-color":"#06F"}),(0,n.jsx)("stop",{offset:"20%","stop-color":"#1677FF"}),(0,n.jsx)("stop",{offset:"100%","stop-color":"#04A6FF"})]})]})]})),sy=r4("Nvidia",{},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M10.212 8.976V7.62c.127-.01.256-.017.388-.021 3.596-.117 5.957 3.184 5.957 3.184s-2.548 3.647-5.282 3.647a3.227 3.227 0 01-1.063-.175v-4.109c1.4.174 1.681.812 2.523 2.258l1.873-1.627a4.905 4.905 0 00-3.67-1.846 6.594 6.594 0 00-.729.044m0-4.476v2.025c.13-.01.259-.019.388-.024 5.002-.174 8.261 4.226 8.261 4.226s-3.743 4.69-7.643 4.69c-.338 0-.675-.031-1.007-.092v1.25c.278.038.558.057.838.057 3.629 0 6.253-1.91 8.794-4.169.421.347 2.146 1.193 2.501 1.564-2.416 2.083-8.048 3.763-11.24 3.763-.308 0-.603-.02-.894-.048V19.5H24v-15H10.21zm0 9.756v1.068c-3.356-.616-4.287-4.21-4.287-4.21a7.173 7.173 0 014.287-2.138v1.172h-.005a3.182 3.182 0 00-2.502 1.178s.615 2.276 2.507 2.931m-5.961-3.3c1.436-1.935 3.604-3.148 5.961-3.336V6.523C5.81 6.887 2 10.723 2 10.723s2.158 6.427 8.21 7.015v-1.166C5.77 16 4.25 10.958 4.25 10.958h-.002z",fill:"#74B71B","fill-rule":"nonzero"})})),sb=r4("OpenCode",{fill:"currentColor",fillRule:"evenodd"},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M16 6H8v12h8V6zm4 16H4V2h16v20z"})})),sw=r4("XiaomiMiMo",{fill:"currentColor",fillRule:"evenodd"},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M.958 15.936a.459.459 0 01.459.44v2.729a.46.46 0 01-.918 0v-2.729a.459.459 0 01.459-.44zm4.814-2.035a.46.46 0 01.553.45v4.754a.458.458 0 11-.918 0V15.48L3.74 17.202a.462.462 0 01-.655.016.462.462 0 01-.065-.082L.628 14.67a.459.459 0 01.658-.637l2.124 2.187 2.127-2.188a.46.46 0 01.235-.13zm2.068.004a.46.46 0 01.458.445v4.755a.46.46 0 01-.458.458.459.459 0 01-.458-.458V14.35a.459.459 0 01.458-.445zm1.973 2.014a.46.46 0 01.46.457v2.729a.46.46 0 01-.784.324.46.46 0 01-.134-.324v-2.729a.46.46 0 01.458-.458zm.002-2.045a.458.458 0 01.328.157l2.127 2.19 2.125-2.19a.459.459 0 01.784.318v4.756a.46.46 0 01-.455.458.46.46 0 01-.458-.458V15.48l-1.667 1.723a.46.46 0 01-.65.008l-.005-.005c0-.002-.002-.002-.004-.003l-2.455-2.534a.46.46 0 01-.008-.667.461.461 0 01.338-.128zm6.797 1.206a.46.46 0 01.53.651A1.966 1.966 0 0019.81 18.4a.462.462 0 01.623.18.46.46 0 01-.181.624 2.863 2.863 0 01-1.38.353l-.142-.004a2.88 2.88 0 01-2.393-4.263.461.461 0 01.274-.21zm.864-.931a2.884 2.884 0 013.915 3.914.46.46 0 01-.402.24l-.057-.004a.458.458 0 01-.164-.055.46.46 0 01-.182-.622 1.967 1.967 0 00-2.669-2.67.459.459 0 11-.441-.803zM9.59 6.368c1.481 0 1.696 1.202 1.696 1.654v2.648h-.917v-.432c-.26.346-.792.535-1.36.535-.133 0-1.289-.03-1.384-1.136-.082-.932.675-1.61 2.053-1.61h.691c0-.563-.367-.886-.983-.886-.44.013-.864.174-1.2.458l-.36-.664c.484-.379 1.012-.567 1.764-.567zm4.427.1c1.263 0 2.082.97 2.083 2.15 0 1.181-.824 2.154-2.083 2.154-1.26 0-2.084-.972-2.084-2.152 0-1.18.82-2.153 2.084-2.153zm6.801.015c.68 0 1.202.465 1.197 1.548v2.642H21.1V8.29c0-.312-.002-.98-.63-.98s-.628.667-.628.838v2.524h-.89V8.148c0-.17-.001-.838-.63-.838-.628 0-.628.668-.628.98v2.383h-.917v-4.03h.917V7a1.22 1.22 0 01.947-.516c.398 0 .76.193.982.686a1.321 1.321 0 011.195-.686zm-18.093.872l1.457-1.772H5.32L3.311 8.07l2.14 2.602H4.24L2.725 8.796 1.21 10.672H0L2.138 8.07.13 5.583h1.138l1.458 1.772zm4.149 3.317h-.916V6.644h.916v4.028zm16.99 0h-.916V6.644h.916v4.028zM9.925 8.71c-1.055 0-1.359.412-1.326.742.032.329.324.537.757.537a1.013 1.013 0 001.014-.968l.002-.31h-.447zM14.018 7.3c-.663 0-1.184.487-1.184 1.32 0 .832.52 1.32 1.184 1.32.662 0 1.182-.49 1.182-1.32 0-.832-.52-1.32-1.182-1.32zM6.417 5.001a.568.568 0 01.587.582.588.588 0 01-1.175 0A.57.57 0 016.417 5zm16.991 0a.57.57 0 01.592.582.588.588 0 01-1.174 0 .57.57 0 01.357-.542.572.572 0 01.225-.04z"})})),sj=r4("ZAI",{fill:"currentColor",fillRule:"evenodd"},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M12.105 2L9.927 4.953H.653L2.83 2h9.276zM23.254 19.048L21.078 22h-9.242l2.174-2.952h9.244zM24 2L9.264 22H0L14.736 2H24z"})})),sS={anthropic:{Icon:r6,hasColor:!1},openai:{Icon:r8,hasColor:!1},"openai-codex":{Icon:r8,hasColor:!1},reqtoken:{Icon:r8,hasColor:!1},google:{Icon:r5,hasColor:!0},"google-vertex":{Icon:r5,hasColor:!0},"ant-ling":{Icon:sv,hasColor:!0},deepseek:{Icon:r3,hasColor:!0},groq:{Icon:r7,hasColor:!1},mistral:{Icon:r9,hasColor:!0},moonshotai:{Icon:se,hasColor:!1},"moonshotai-cn":{Icon:se,hasColor:!1},moonshot:{Icon:se,hasColor:!1},minimax:{Icon:st,hasColor:!0},"minimax-cn":{Icon:st,hasColor:!0},fireworks:{Icon:so,hasColor:!0},huggingface:{Icon:sn,hasColor:!0},cerebras:{Icon:sr,hasColor:!0},openrouter:{Icon:ss,hasColor:!1},xai:{Icon:si,hasColor:!1},"cloudflare-ai-gateway":{Icon:sa,hasColor:!0},"cloudflare-workers-ai":{Icon:sa,hasColor:!0},"vercel-ai-gateway":{Icon:sl,hasColor:!1},"github-copilot":{Icon:sd,hasColor:!1},"amazon-bedrock":{Icon:sc,hasColor:!0},"azure-openai-responses":{Icon:sp,hasColor:!0},"kimi-coding":{Icon:su,hasColor:!0},nvidia:{Icon:sy,hasColor:!0},opencode:{Icon:sb,hasColor:!1},"opencode-go":{Icon:sb,hasColor:!1},qwen:{Icon:sh,hasColor:!0},xiaomi:{Icon:sw,hasColor:!1},"xiaomi-token-plan-ams":{Icon:sw,hasColor:!1},"xiaomi-token-plan-cn":{Icon:sw,hasColor:!1},"xiaomi-token-plan-sgp":{Icon:sw,hasColor:!1},zai:{Icon:sj,hasColor:!1},"zai-coding-cn":{Icon:sj,hasColor:!1},zhipu:{Icon:sg,hasColor:!0},cohere:{Icon:sm,hasColor:!0},perplexity:{Icon:sf,hasColor:!0},together:{Icon:sx,hasColor:!0},grok:{Icon:sk,hasColor:!1}};function sC({id:e,size:t=14}){let o=sS[e];return o?o.hasColor?(0,n.jsx)(o.Icon,{size:t}):(0,n.jsx)(o.Icon,{size:t,style:{color:"currentColor"}}):(0,n.jsx)(T.G,{size:t,weight:"regular","aria-hidden":"true"})}var sT=o(61394),sR=o(72692),sz=o(73869),sI=o(46874),sM=o(21418),sP=o(64421);let sE=[{value:"normal",Icon:sT.f,titleKey:"modes.collabNormalTitle",descKey:"modes.collabNormalDesc"},{value:"plan",Icon:sM._,titleKey:"modes.collabPlanTitle",descKey:"modes.collabPlanDesc"},{value:"goal",Icon:nU.d,titleKey:"modes.collabGoalTitle",descKey:"modes.collabGoalDesc"}],sF=[{value:"economy",Icon:sI.T,titleKey:"modes.tokenEconomyTitle",descKey:"modes.tokenEconomyDesc"},{value:"full",Icon:sR.R,titleKey:"modes.tokenFullTitle",descKey:"modes.tokenFullDesc"},{value:"delivery",Icon:sz.i,titleKey:"modes.tokenDeliveryTitle",descKey:"modes.tokenDeliveryDesc"}],sD=[{value:"ask",Icon:sP.l,titleKey:"modes.approvalAskTitle",descKey:"modes.approvalAskDesc"},{value:"auto",Icon:nJ.Z,titleKey:"modes.approvalAutoTitle",descKey:"modes.approvalAutoDesc"},{value:"yolo",Icon:u.C,titleKey:"modes.approvalYoloTitle",descKey:"modes.approvalYoloDesc"}],sW={normal:sT.f,plan:sM._,goal:nU.d},sA={economy:sI.T,full:sR.R,delivery:sz.i},sN={ask:sP.l,auto:nJ.Z,yolo:u.C};function s$({collaborationMode:e,tokenMode:t,toolApprovalMode:o,onCollaborationModeChange:s,onTokenModeChange:i,onToolApprovalModeChange:a,disabled:l=!1}){let{t:d}=(0,F.s)(),c=$(),[p,u]=(0,r.useState)(null),[g,m]=(0,r.useState)(null),[x,k]=(0,r.useState)({}),v=(0,r.useRef)(null),y=(0,r.useRef)(null),b=(0,r.useRef)(null),w=(0,r.useRef)(null);(0,r.useEffect)(()=>()=>{null!==w.current&&window.clearTimeout(w.current)},[]);let j=(e,t)=>()=>{if(l)return;let o=t.current;if(!o)return;let n=o.getBoundingClientRect();k(t=>({...t,[e]:{top:n.top,left:n.left,width:n.width}})),u(t=>t===e?null:e)},S=(0,r.useCallback)(e=>{m(e),window.requestAnimationFrame(()=>u(t=>t===e?null:t)),null!==w.current&&window.clearTimeout(w.current),w.current=window.setTimeout(()=>m(null),150)},[]),C=()=>window.visualViewport?.height??window.innerHeight,T=(r,c,u,m)=>{if(p!==r)return null;let f=x[r];if(!f)return null;let k=Math.min(248,window.innerWidth-16),v=Math.min(f.left,window.innerWidth-k-8),y=C()-f.top+6,b=Math.min(300,Math.max(120,.55*C()));return(0,n.jsx)("div",{role:"menu",style:{position:"fixed",bottom:y,left:v,zIndex:2100,width:k,maxHeight:b,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:+(g!==r),transition:"opacity 0.12s"},children:c.map(c=>{let p=c.value===u,g=c.Icon;return(0,n.jsxs)("button",{type:"button",role:"menuitemradio","aria-checked":p,onClick:()=>{var n;return n=c.value,void(S(r),"collab"===r&&n!==e&&s(n),"token"===r&&n!==t&&i(n),"approval"===r&&n!==o&&a(n))},disabled:l,style:{display:"flex",alignItems:"center",gap:10,width:"100%",padding:"8px 10px",background:p?"var(--bg-selected)":"none",border:"none",borderRadius:8,cursor:l?"not-allowed":"pointer",textAlign:"left",transition:"background 0.12s"},onMouseEnter:e=>{p||l||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.background=p?"var(--bg-selected)":"none"},children:[(0,n.jsx)(g,{size:16,weight:p?"fill":"regular",color:p?"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:d(c.titleKey)}),(0,n.jsx)("span",{style:{display:"block",fontSize:10.5,color:"var(--text-muted)",marginTop:1,lineHeight:1.4},children:d(c.descKey)})]}),p&&(0,n.jsx)(h.S,{size:12,weight:"bold",color:"var(--accent)","aria-hidden":"true"})]},c.value)})})},R=(e,t)=>({display:"flex",alignItems:"center",gap:3,padding:c?"0 3px":"3px 6px",height:24,background:e?"var(--bg-hover)":"none",border:"none",borderRadius:6,color:t?"var(--accent)":"var(--text-muted)",cursor:l?"not-allowed":"pointer",fontSize:c?11:12,whiteSpace:"nowrap",opacity:l?.5:1,transition:"background 0.12s, color 0.12s",maxWidth:c?30:void 0}),z=sW[e],I=sA[t],M=sN[o],P="plan"===e?d("modes.collabPlan"):"goal"===e?d("modes.collabGoal"):d("modes.collabNormal"),E="economy"===t?d("modes.tokenEconomy"):"delivery"===t?d("modes.tokenDelivery"):d("modes.tokenFull");return"ask"===o?d("modes.approvalAsk"):"yolo"===o?d("modes.approvalYolo"):d("modes.approvalAuto"),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:2},children:[(0,n.jsxs)("button",{ref:v,type:"button","aria-label":"任务模式",title:d("modes.collabNormalTitle"),"aria-expanded":"collab"===p,onClick:j("collab",v),disabled:l,style:R("collab"===p,"normal"!==e),children:[(0,n.jsx)(z,{size:13,weight:"normal"!==e?"fill":"regular",color:"normal"!==e?"var(--accent)":"var(--text-muted)","aria-hidden":"true"}),!c&&(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis"},children:P}),(0,n.jsx)(f.b,{size:10,weight:"bold","aria-hidden":"true",style:{transform:"collab"===p?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.12s",flexShrink:0}})]}),(0,n.jsxs)("button",{ref:y,type:"button","aria-label":"运行档位",title:d("modes.tokenFullTitle"),"aria-expanded":"token"===p,onClick:j("token",y),disabled:l,style:R("token"===p,"full"!==t),children:[(0,n.jsx)(I,{size:13,weight:"full"!==t?"fill":"regular",color:"full"!==t?"var(--accent)":"var(--text-muted)","aria-hidden":"true"}),!c&&(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis"},children:E}),(0,n.jsx)(f.b,{size:10,weight:"bold","aria-hidden":"true",style:{transform:"token"===p?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.12s",flexShrink:0}})]}),!c&&(0,n.jsx)("div",{role:"radiogroup","aria-label":"工具权限",style:{display:"flex",alignItems:"center",border:"1px solid var(--border)",borderRadius:7,overflow:"hidden",height:22,marginLeft:2},children:sD.map(e=>{let t=e.value===o,r=e.Icon;return(0,n.jsxs)("button",{type:"button",role:"radio","aria-checked":t,onClick:()=>{e.value!==o&&a(e.value)},title:d(e.descKey),"aria-label":d(e.titleKey),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:4,height:"100%",padding:"0 7px",background:t?"var(--bg-selected)":"none",border:"none",color:t?"yolo"===e.value?"var(--accent-red, #ef4444)":"var(--accent)":"var(--text-muted)",cursor:"pointer",fontSize:11,fontWeight:t?650:500,transition:"background 0.12s, color 0.12s",whiteSpace:"nowrap"},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="none")},children:[(0,n.jsx)(r,{size:11,weight:t?"fill":"regular","aria-hidden":"true"}),d("ask"===e.value?"modes.approvalAsk":"yolo"===e.value?"modes.approvalYolo":"modes.approvalAuto")]},e.value)})}),c&&(0,n.jsxs)("button",{ref:b,type:"button","aria-label":"工具权限",title:d("modes.approvalAutoTitle"),"aria-expanded":"approval"===p,onClick:j("approval",b),disabled:l,style:{...R("approval"===p,"ask"===o),..."yolo"===o?{color:"var(--accent-red, #ef4444)"}:{}},children:[(0,n.jsx)(M,{size:13,weight:"ask"===o?"fill":"regular",color:"ask"===o?"var(--accent)":"yolo"===o?"var(--accent-red, #ef4444)":"var(--text-muted)","aria-hidden":"true"}),(0,n.jsx)(f.b,{size:10,weight:"bold","aria-hidden":"true",style:{transform:"approval"===p?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.12s",flexShrink:0}})]})]}),T("collab",sE,e,z),T("token",sF,t,I),c&&T("approval",sD,o,M)]})}let sL=["off","default","full"],sO={off:"none",default:"default",full:"full"},sH=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function sB(e,t){return sH.compare(e.name||e.modelId,t.name||t.modelId)||sH.compare(e.provider,t.provider)||sH.compare(e.modelId,t.modelId)}let sU=["max","xhigh","high","medium","low","minimal","auto","off"];function s_({level:e,size:t=14}){if("off"===e)return(0,n.jsx)(rZ.x,{size:t,weight:"regular",color:"var(--text-dim)"});if("auto"===e)return(0,n.jsx)(r2.I,{size:t,weight:"regular",color:"var(--accent)"});let o=["medium","high","xhigh","max"].includes(e),r="var(--accent)";return(0,n.jsxs)("span",{style:{position:"relative",display:"inline-flex"},children:[(0,n.jsx)(rZ.x,{size:t,weight:o?"fill":"regular",color:r}),"high"===e&&(0,n.jsx)(x.c,{size:Math.round(.57*t),weight:"bold",color:r,style:{position:"absolute",right:-4,top:-1}}),"xhigh"===e&&(0,n.jsx)(u.C,{size:Math.round(.57*t),weight:"fill",color:r,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)(u.C,{size:Math.round(.5*t),weight:"fill",color:r,style:{marginRight:-3}}),(0,n.jsx)(u.C,{size:Math.round(.5*t),weight:"fill",color:r})]})]})}function sq(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${Math.round(e/1e3)}k`:e.toLocaleString()}let sV=["builtin","extension","prompt","skill"],sK={builtin:0,extension:1,prompt:2,skill:3};function sG(e,t){let o=e.name.toLowerCase(),n=e.description?.toLowerCase()??"";return o===t?0:o.startsWith(t)?1:o.includes(t)?2:n.includes(t)?3:4}function sJ(e,t){return"skill"===e.source&&e.name.startsWith("skill:")&&!0===t[e.name.slice(6)]}async function sY(e){let t=()=>{var t;return t=e.type,new Promise((o,n)=>{let r=new FileReader;r.onload=()=>{let e="string"==typeof r.result?r.result.split(",")[1]:void 0;e?o({data:e,mimeType:t}):n(Error("Failed to read image"))},r.onerror=n,r.readAsDataURL(e)})};if(!(e.size>1048576&&"image/gif"!==e.type)||"function"!=typeof createImageBitmap)return t();let o=await createImageBitmap(e).catch(()=>null);if(!o)return t();try{let n=Math.min(1,1024/Math.max(o.width,o.height)),r=document.createElement("canvas");r.width=Math.max(1,Math.round(o.width*n)),r.height=Math.max(1,Math.round(o.height*n));let s=r.getContext("2d");if(!s)return t();s.fillStyle="#fff",s.fillRect(0,0,r.width,r.height),s.drawImage(o,0,0,r.width,r.height);let i=r.toDataURL("image/jpeg",.85).split(",")[1];return i&&i.length<4*Math.ceil(e.size/3)?{data:i,mimeType:"image/jpeg"}:t()}catch{return t()}finally{o.close()}}function sX(e){return{data:e.data,mimeType:e.mimeType}}function sZ(e,t){let o=e;for(let e of t)o=o.split(e.label).join(e.text);return o}function sQ(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function s0(e){return{...e,previewUrl:`data:${e.mimeType};base64,${e.data}`}}function s1(e){e.previewUrl.startsWith("blob:")&&URL.revokeObjectURL(e.previewUrl)}function s2({kind:e,text:t,label:o,index:r,total:s,onMove:i,onRecall:a,onRemove:l}){let{t:d}=(0,F.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,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:o}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},children:t}),i&&s>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===r,onClick:()=>i(-1),style:{...c,opacity:0===r?.3:1},children:"↑"}),(0,n.jsx)("button",{type:"button","aria-label":d("desktop.queueMoveDown"),title:d("desktop.queueMoveDown"),disabled:r===s-1,onClick:()=>i(1),style:{...c,opacity:r===s-1?.3:1},children:"↓"})]}),a&&(0,n.jsx)("button",{type:"button","aria-label":d("desktop.queueRecallOne"),title:d("desktop.queueRecallOne"),onClick:a,style:c,children:(0,n.jsx)(rV.Y,{size:13})}),l&&(0,n.jsx)("button",{type:"button","aria-label":d("desktop.queueRemove"),title:d("desktop.queueRemove"),onClick:l,style:c,children:(0,n.jsx)(p.u,{size:13})})]})}let s4=(0,r.memo)((0,r.forwardRef)(function({onSend:e,onBash:t,onAbort:o,onSteer:s,onFollowUp:i,isStreaming:a,model:l,modelNames:d,modelList:g,modelScopeWarnings:m,modelsError:k,onRetryModels:y,onModelChange:b,compactResult:w,toolPreset:T,onToolPresetChange:z,planMode:I=!1,onPlanModeChange:M,collaborationMode:P="normal",tokenMode:E="full",toolApprovalMode:D="auto",onCollaborationModeChange:W,onTokenModeChange:A,onToolApprovalModeChange:N,goalState:L,onGoalStart:O,onGoalPause:H,onGoalResume:B,onGoalStop:U,thinkingLevel:_,onThinkingLevelChange:q,availableThinkingLevels:V,thinkingLevelMap:K,retryInfo:G,queuedMessages:J,inputHistory:Y=[],onRecallQueue:X,onMoveQueue:Z,onRecallOne:ee,onRequeueAt:et,onRemoveQueueItem:eo,slashCommands:en,slashCommandsLoading:es,onLoadSlashCommands:ei,onBuiltinCommand:ea,onAudioUnlock:el,onPromptWithStreamingBehavior:ed,draftKey:ec,cwd:ep,tasksBoardEnabled:eu=!0},eh){var eg;let em,ef,ex,ek,ev,ey,eb,ew,ej,eS,eC,eT,eR,ez,eI,eM,eP,eE,eF,eD,eW,eA,eN,e$=$(),{t:eL}=(0,F.s)(),eO={auto:"auto",off:"off",minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},eH={off:eL("desktop.toolOff"),default:eL("desktop.toolDefault"),full:eL("desktop.toolFull")},eB=[{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"}],eU={builtin:eL("desktop.builtIn"),extension:eL("desktop.extensions"),prompt:eL("desktop.prompts"),skill:eL("desktop.commandSkills")},[e_,eq]=(0,r.useState)(()=>ec?rA(ec)?.value??"":""),[eV,eK]=(0,r.useState)(()=>ec?rA(ec)?.pastedBlocks??[]:[]),[eG,eJ]=(0,r.useState)([]),eY=r.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(sQ).join("(\\d+)"),"g")}catch{return null}},[eL]),[eX,eZ]=(0,r.useState)(null),eQ=(0,r.useRef)(null),e0=(0,r.useRef)(0),[e1,e2]=(0,r.useState)(!1),[e4,e6]=(0,r.useState)(null),[e8,e5]=(0,r.useState)({height:0,width:0,offsetTop:0}),[e3,e7]=(0,r.useState)(""),[e9,te]=(0,r.useState)(()=>{try{let e=localStorage.getItem("pi-favorite-models");return e?new Set(JSON.parse(e)):new Set}catch{return new Set}}),[tt,to]=(0,r.useState)(new Set),[tn,tr]=(0,r.useState)(!1),[ts,ti]=(0,r.useState)(null),[ta,tl]=(0,r.useState)(!1),[td,tc]=(0,r.useState)(null),[tp,tu]=(0,r.useState)(!1),[th,tg]=(0,r.useState)(null),[tm,tf]=(0,r.useState)(()=>ec?rA(ec)?.images.map(s0)??[]:[]),tx=e_.trimStart(),tk=0===tm.length&&tx.startsWith("!"),tv=tk&&tx.startsWith("!!"),[ty,tb]=(0,r.useState)(!1),[tw,tj]=(0,r.useState)(0),[tS,tC]=(0,r.useState)({}),[tT,tR]=(0,r.useState)(()=>{try{return"ctrl-enter"===localStorage.getItem("pi-input-shortcut")?"ctrl-enter":"enter"}catch{return"enter"}}),[tz,tI]=(0,r.useState)(null),[tM,tP]=(0,r.useState)(!1),[tE,tF]=(0,r.useState)(0),[tD,tW]=(0,r.useState)(!1),[tA,tN]=(0,r.useState)(0),[t$,tL]=(0,r.useState)(null),[tO,tH]=(0,r.useState)(!1),[tB,tU]=(0,r.useState)(null),t_=(0,r.useRef)(null),tq=(0,r.useRef)(null),tV=(0,r.useRef)(null),tK=(0,r.useRef)(null),tG=(0,r.useRef)(null),tJ=(0,r.useRef)(null),tY=(0,r.useRef)(null),tX=(0,r.useRef)(null),tZ=(0,r.useRef)(null),tQ=(0,r.useRef)(null),t0=(0,r.useRef)(!1),t1=(0,r.useRef)(0),t2=(0,r.useRef)(!1),t4=(0,r.useRef)([]),t6=(0,r.useRef)([]),t8=(0,r.useRef)([]),t5=(0,r.useRef)(null),t3=(0,r.useRef)(null),t7=(0,r.useRef)(ec),t9=(0,r.useRef)(e_),oe=(0,r.useRef)(tm),ot=(0,r.useRef)(eV),oo=(0,r.useRef)(null),[on,or]=(0,r.useState)(!1);t9.current=e_,oe.current=tm,ot.current=eV,(0,r.useImperativeHandle)(eh,()=>({insertIfEmpty(e){let t=t_.current;(t?t.value:e_).trim()||(eq(e),tI(null),requestAnimationFrame(()=>{t&&(t.focus(),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)}))},replaceMessage(e){var t,o;let n=t_.current;t=n?n.value:e_,o=oe.current.length,t.trim()||0!==o||(eq("string"==typeof e.content?e.content:e.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n")),tI(null),tW(!1),tf(t=>(t.forEach(s1),(("string"==typeof e.content?[]:e.content.flatMap(e=>{if("image"!==e.type)return[];let t=e.source?.type==="base64"?e.source.data:e.data,o=e.source?.type==="base64"?e.source.media_type:e.mimeType;return"string"!=typeof t||"string"!=typeof o?[]:rO({type:"image",data:t,mimeType:o})?[{data:t,mimeType:o}]:[]}))??[]).filter(rO).slice(0,10).map(s0))),requestAnimationFrame(()=>{n&&(n.focus(),n.style.height="auto",n.style.height=`${Math.min(n.scrollHeight,200)}px`)}))},prependText(e){if(!e.trim())return;let t=t_.current,o=[e,t?t.value:e_].filter(e=>e.trim()).join("\n\n");eq(o),tI(null),requestAnimationFrame(()=>{t&&(t.focus(),t.setSelectionRange(o.length,o.length),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)})},insertText(e){let t=t_.current;if(!t)return void eq(t=>t+(t?" ":"")+e);let o=t.selectionStart??t.value.length,n=t.selectionEnd??t.value.length,r=t.value.slice(0,o),s=t.value.slice(n),i=r.length>0&&!r.endsWith(" ")?" ":"";eq(r+i+e+s),tI(null),requestAnimationFrame(()=>{if(!t)return;let n=o+i.length+e.length;t.setSelectionRange(n,n),t.focus(),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`})},addImages(e){os(e)},addFiles(e,t){let o=function(e,t,o){let n=e.map(()=>null),r=t.split(/\r?\n/).map(e=>e.trim()).filter(e=>e&&!e.startsWith("#")).filter(e=>e.startsWith("file://"));if(r.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}(r[t]);return n}if(1===e.length&&o.trim()){let e=o.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/")),r=e.map((e,t)=>e.type.startsWith("image/")?null:o[t]??e.name).filter(e=>!!e);if(n.length&&os(n),r.length&&!a){let e=r.join(" ");eq(t=>t+(t&&!t.endsWith(" ")?" ":"")+e)}},measureHeight:()=>tJ.current?.getBoundingClientRect().height??0}));let os=(0,r.useCallback)(async e=>{let t=e.filter(e=>e.type.startsWith("image/"));if(!t.length)return;let o=await Promise.all(t.map(async e=>({...await sY(e),previewUrl:URL.createObjectURL(e)})));tf(e=>[...e,...o])},[]),oi=(0,r.useCallback)((e,t)=>{te(o=>{let n=`${e}:${t}`,r=new Set(o);return r.has(n)?r.delete(n):r.add(n),localStorage.setItem("pi-favorite-models",JSON.stringify([...r])),r})},[]),oa=(0,r.useCallback)(e=>{to(t=>{let o=new Set(t);return o.has(e)?o.delete(e):o.add(e),o})},[]),ol=(0,r.useCallback)(e=>{tf(t=>{let o=[...t],[n]=o.splice(e,1);return n&&s1(n),o})},[]),od=(0,r.useCallback)(()=>{tf(e=>(e.forEach(s1),[]))},[]),oc=(0,r.useCallback)(()=>{var e;eq(""),tI(null),eK([]),eJ([]),ec&&rD.delete(ec),t7.current&&t7.current!==ec&&(e=t7.current,rD.delete(e)),od(),t_.current&&(t_.current.style.height="auto")},[od,ec]),op=(0,r.useCallback)(async(e,t,o)=>{await Z?.(e,t,t+o)},[Z]),ou=(0,r.useCallback)(async(e,t)=>{await eo?.(e,t)},[eo]),oh=(0,r.useCallback)(async(e,t)=>{let o=await ee?.(e,t);if(!o)return;oo.current={kind:e,index:t,text:o.text,images:o.images},or(!0);let n=t_.current?.value??e_,r=[o.text,n].filter(e=>e.trim()).join("\n\n");eq(r),tI(null),requestAnimationFrame(()=>{let e=t_.current;e&&(e.focus(),e.setSelectionRange(r.length,r.length),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[ee,e_]);(0,r.useEffect)(()=>{ec&&t7.current===ec&&rN(ec,{value:e_,images:tm.map(sX),pastedBlocks:eV.length?eV:void 0})},[tm,ec,e_,eV]),(0,r.useEffect)(()=>{let e=t7.current;if(e===ec)return;e&&rN(e,{value:t9.current,images:oe.current.map(sX),pastedBlocks:ot.current.length?ot.current:void 0});let t=ec?rA(ec):null;t7.current=ec,eq(t?.value??""),tI(null),eK(t?.pastedBlocks??[]),eJ([]),tf(e=>(e.forEach(s1),t?.images.map(s0)??[]))},[ec]),(0,r.useEffect)(()=>{let e=t_.current;e&&(e.style.height="auto",e_&&(e.style.height=`${Math.min(e.scrollHeight,200)}px`))},[e_]),(0,r.useEffect)(()=>{let e=()=>{try{tR("ctrl-enter"===localStorage.getItem("pi-input-shortcut")?"ctrl-enter":"enter")}catch{tR("enter")}};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[]),(0,r.useEffect)(()=>()=>{oe.current.forEach(s1)},[]);let og=(0,r.useCallback)(e=>{let t;if(!eY)return null;for(eY.lastIndex=0;null!==(t=eY.exec(e));){let e=t[0];if(!(ot.current.some(t=>t.label===e)||ot.current.some(t=>t.text.includes(e))))return e}return null},[eY]),om=(0,r.useCallback)(()=>{eZ(eL("desktop.pastedMissingContent")),eQ.current&&clearTimeout(eQ.current),eQ.current=setTimeout(()=>eZ(null),5e3)},[eL]),of=(0,r.useCallback)(async()=>{let o=sZ(e_,eV),n=o.trim();if(!n&&!tm.length)return;if(og(o))return void om();if(a)return;el?.();let r=oo.current;if(r&&et){if(oo.current=null,or(!1),!await et(r.kind,r.index,n,tm.length?tm.map(sX):r.images)){oo.current={...r,text:n},or(!0);return}oc();return}if(!tm.length&&n.startsWith("!")&&t){let e=n.startsWith("!!"),o=n.slice(e?2:1).trim();if(!o)return;t(o,e),oc();return}if(!tm.length&&n.startsWith("/")&&ea){let e=await ea(n);if(e.handled){e.error||oc();return}}e(n,tm.length?tm:void 0),oc()},[e_,eV,tm,a,t,ea,e,oc,el,et,og,om]),ox=e_.startsWith("/")&&!/\s/.test(e_.slice(1))?e_.slice(1).toLowerCase():null,{commands:ok,groups:ov}=(eg=null===ox?[]:[...a?[]:eB,...en??[]].filter(e=>{let t=e.name.toLowerCase(),o=e.description?.toLowerCase()??"";return t.includes(ox)||o.includes(ox)}).sort((e,t)=>{let o=sG(e,ox)-sG(t,ox);return 0!==o?o:sK[e.source]-sK[t.source]||sH.compare(e.name,t.name)}),em=0,{commands:(ef=sV.map(e=>{let t=eg.filter(t=>t.source===e),o="skill"===e?[...t.filter(e=>!sJ(e,tS)),...t.filter(e=>sJ(e,tS))]:t;return{source:e,items:o.map(e=>({command:e,index:em++}))}}).filter(e=>e.items.length>0)).flatMap(e=>e.items.map(({command:e})=>e)),groups:ef});(0,r.useEffect)(()=>{if(!ty||!ep)return;let e=!1;return fetch(`/api/skills?cwd=${encodeURIComponent(ep)}`).then(e=>e.ok?e.json():null).then(t=>{!e&&t&&tC(Object.fromEntries(t.skills.map(e=>[e.name,e.disableModelInvocation])))}).catch(()=>{}),()=>{e=!0}},[ep,ty]);let oy=`${ok.length} ${eL(ox?1===ok.length?"desktop.match":"desktop.matches":1===ok.length?"desktop.command":"desktop.commands")}`,ob=!!e_.trim()||tm.length>0,ow=(0,r.useCallback)((e,t)=>{if(!ep)return void tI(null);let o=t??e.length;tI(rH(e.slice(0,o)))},[ep]),[oj,oS]=(0,r.useState)(null),oC=(0,r.useRef)(oj);oC.current=oj;let[oT,oR]=(0,r.useState)([]),oz=(0,r.useRef)(!1),oI=(0,r.useCallback)(async()=>{try{let e=await fetch("/api/snippets");if(!e.ok)return;let t=await e.json();oR(t.snippets??[]),oz.current=!0}catch{}},[]);(0,r.useEffect)(()=>{oI();let e=()=>void oI();return window.addEventListener("pi:snippets-changed",e),()=>window.removeEventListener("pi:snippets-changed",e)},[oI]);let oM=oj?.query??null,oP=r.useMemo(()=>{if(null===oM||!1===oz.current)return[];let e=oM.toLowerCase();return oT.filter(t=>t.name.toLowerCase().includes(e))},[oM,oT]),[oE,oF]=(0,r.useState)(0);(0,r.useEffect)(()=>{oF(0)},[oM]);let oD=(0,r.useCallback)((e,t)=>{var o;let n,r=t??e.length,s=(o=e.slice(0,r),(n=/(?:^|[\s(])(#[\w-]+)$/.exec(o))?{start:o.length-n[1].length,end:o.length,query:n[1].slice(1)}:null);oS(s),s&&oF(0)},[]),oW=(0,r.useCallback)(e=>{let t=oC.current;if(!t)return;let o=e_.slice(0,t.start),n=e_.slice(t.end);eq(o+e.content+n),oS(null);let r=o.length+e.content.length;requestAnimationFrame(()=>{let e=t_.current;e&&(e.focus(),e.setSelectionRange(r,r))})},[e_]),oA=(0,r.useCallback)(e=>{let t=oP[e];t&&oW(t)},[oP,oW]),oN=tz?.query??null,o$=r.useMemo(()=>null!==oN&&t$&&t$.cwd===ep?function(e,t,o=20){let n=t.toLowerCase();if(!n)return e.slice(0,o);let r=[];for(let t of e){let e=function(e,t){let o=e.path.toLowerCase(),n=0;if(t.includes("/"))o===t?n=100:o.startsWith(t)?n=80:o.includes(t)?n=50:rU(t,o)&&(n=10);else{let e=o.lastIndexOf("/"),r=-1===e?o:o.slice(e+1);r===t?n=100:r.startsWith(t)?n=80:r.includes(t)?n=50:o.includes(t)?n=30:rU(t,o)&&(n=10)}return e.isDir&&n>0&&(n+=10),n}(t,n);e>0&&r.push({entry:t,score:e})}return r.sort((e,t)=>t.score-e.score||rB(e.entry.path)-rB(t.entry.path)||e.entry.path.localeCompare(t.entry.path)),r.slice(0,o).map(e=>e.entry)}(t$.entries,oN):[],[oN,t$,ep]),oL=!!(oN&&t$?.truncated&&t$.cwd===ep);(0,r.useEffect)(()=>{if(!oL||!ep||!oN)return;let e=setTimeout(()=>{fetch(`/api/file-index?cwd=${encodeURIComponent(ep)}&q=${encodeURIComponent(oN)}`).then(e=>{if(!e.ok)throw Error(`file search failed: ${e.status}`);return e.json()}).then(e=>tU({cwd:ep,query:oN,matches:e.matches??[]})).catch(()=>{})},150);return()=>clearTimeout(e)},[oL,oN,ep]);let oO=oL&&null!==tB&&tB.cwd===ep&&tB.query===oN,oH=oO?tB.matches:o$,oB=null===tz?null:`${tz.start}:${+!!tz.quoted}:${tz.query}`;(0,r.useEffect)(()=>{if(null===oB){tP(!1),tF(0);return}tP(!0),tF(0)},[oB]);let oU=null!==tz;(0,r.useEffect)(()=>{if(!oU||!ep)return;let e=t5.current;e&&e.cwd===ep&&Date.now()-e.fetchedAt<1e4||t3.current===ep||(t3.current=ep,tH(!0),fetch(`/api/file-index?cwd=${encodeURIComponent(ep)}`).then(e=>{if(!e.ok)throw Error(`file index failed: ${e.status}`);return e.json()}).then(e=>{tL({cwd:ep,entries:function(e){let t=new Set;for(let o of e){let e=o.indexOf("/");for(;-1!==e;)t.add(o.slice(0,e)),e=o.indexOf("/",e+1)}let o=[];for(let e of t)o.push({path:e,isDir:!0});for(let t of e)t&&o.push({path:t,isDir:!1});return o.sort((e,t)=>rB(e.path)-rB(t.path)||e.path.localeCompare(t.path)),o}(e.files??[]),truncated:!!e.truncated}),t5.current={cwd:ep,fetchedAt:Date.now()}}).catch(()=>{t5.current=null}).finally(()=>{t3.current=null,tH(!1)}))},[oU,ep]);let o_=(0,r.useCallback)(e=>{if(!tz)return;let t=t_.current,o=t?.selectionStart??e_.length,n=e_.slice(0,tz.start),r=e_.slice(o);tz.quoted&&r.startsWith('"')&&(r=r.slice(1));let s=function(e,t,o=!1){let n=t?`${e}/`:e,r=o||n.includes(" ");if(t){let e=r?`@"${n}"`:`@${n}`;return{text:e,cursorOffset:r?e.length-1:e.length}}let s=r?`@"${n}" `:`@${n} `;return{text:s,cursorOffset:s.length}}(e.path,e.isDir,tz.quoted),i=n+s.text+r,a=n.length+s.cursorOffset;eq(i),tI(rH(i.slice(0,a))),requestAnimationFrame(()=>{let e=t_.current;e&&(e.focus(),e.setSelectionRange(a,a),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[tz,e_]);(0,r.useEffect)(()=>{tE>=oH.length&&tF(Math.max(0,oH.length-1))},[oH.length,tE]),(0,r.useEffect)(()=>{t6.current.length=oH.length},[oH.length]),(0,r.useEffect)(()=>{tM&&t6.current[tE]?.scrollIntoView({block:"nearest",inline:"nearest"})},[tE,tM]);let oq=(0,r.useCallback)(e=>{eq(e),tI(null),tW(!1),tN(0),requestAnimationFrame(()=>{let t=t_.current;t&&(t.focus(),t.setSelectionRange(e.length,e.length),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)})},[]),oV=(0,r.useCallback)(e=>{let t=`/${e.name} `;eq(t),tb(!1),tj(0),requestAnimationFrame(()=>{let e=t_.current;e&&(e.focus(),e.setSelectionRange(t.length,t.length),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[]),oK=(0,r.useCallback)(()=>{let e=t_.current;if(!e)return;let t=e.selectionStart??e.value.length,o=e.value.slice(0,t),n=e.value.slice(e.selectionEnd??t),r=o.length>0&&!o.endsWith(" ")?" ":"",s=o+r+"@"+n;eq(s);let i=t+r.length+1;ow(s,i),requestAnimationFrame(()=>{e&&(e.setSelectionRange(i,i),e.focus(),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[]),oG=(0,r.useCallback)(()=>{let e=t_.current;if(!e)return;let t=e.selectionStart??e.value.length,o=e.value.slice(0,t),n=e.value.slice(e.selectionEnd??t),r=o.length>0&&!o.endsWith(" ")?" ":"",s=o+r+"#"+n;eq(s),ow(s,t+r.length+1),requestAnimationFrame(()=>{e&&(e.setSelectionRange(t+r.length+1,t+r.length+1),e.focus(),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[]),oJ=(0,r.useCallback)(()=>{let e=t_.current;if(!e)return;let t=e.selectionStart??e.value.length,o=e.value.slice(0,t),n=e.value.slice(e.selectionEnd??t),r=o.length>0&&!o.endsWith(" ")?" ":"";eq(o+r+"/"+n);let s=t+r.length+1;requestAnimationFrame(()=>{e&&(e.setSelectionRange(s,s),e.focus(),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[]),oY=(0,r.useCallback)(e=>{let t=sZ(e_,eV);if(og(t))return void om();let o=t.trim();if(o||tm.length){if(el?.(),o.startsWith("/")&&ed){ed(o,"steer"===e?"steer":"followUp",tm.length?tm:void 0),oc();return}"steer"===e&&s?s(o,tm.length?tm:void 0):"followup"===e&&i&&i(o,tm.length?tm:void 0),oc()}},[e_,eV,tm,ed,s,i,oc,el,og,om]),oX=(0,r.useCallback)(e=>{let t=ok.length-1;if(t<0)return 0;if("left"===e)return Math.max(0,tw-1);if("right"===e)return Math.min(t,tw+1);let o=t4.current[tw];if(!o)return"down"===e?Math.min(t,tw+1):Math.max(0,tw-1);let n=o.getBoundingClientRect(),r=n.left+n.width/2,s=n.top+n.height/2,i=-1,a=1/0;for(let o=0;o<=t;o+=1){if(o===tw)continue;let t=t4.current[o];if(!t)continue;let n=t.getBoundingClientRect(),l=n.top+n.height/2-s;if("down"===e?l<=4:l>=-4)continue;let d=1e3*Math.abs(l)+Math.abs(n.left+n.width/2-r);d<a&&(i=o,a=d)}return i>=0?i:"down"===e?Math.min(t,tw+1):Math.max(0,tw-1)},[ok.length,tw]),oZ=(0,r.useCallback)(e=>{let t=e.nativeEvent,n=Date.now()-t1.current<100,r=t0.current||t.isComposing||229===t.keyCode;if("Enter"===e.key&&!e.shiftKey&&(r||n)){n&&e.preventDefault();return}if((e.ctrlKey||e.metaKey)&&!e.altKey&&!e.shiftKey&&"i"===e.key.toLowerCase()&&!r&&ep){e.preventDefault();let t=e.currentTarget,o=t.selectionStart??t.value.length,n=t.selectionEnd??o,r=t.value.slice(0,o),s=t.value.slice(n),i=r&&!/[\s@]$/.test(r)?" ":"",a=`${r}${i}@${s}`,l=r.length+i.length+1;eq(a),tI(rH(a.slice(0,l))),tP(!0),requestAnimationFrame(()=>{t.focus(),t.setSelectionRange(l,l)});return}if(tD&&!r){if("ArrowDown"===e.key){e.preventDefault(),tN(e=>Math.min(Math.max(0,(Y?.length??0)-1),e+1));return}if("ArrowUp"===e.key){e.preventDefault(),tN(e=>Math.max(0,e-1));return}if("Escape"===e.key){e.preventDefault(),tW(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&Y?.[tA]){e.preventDefault(),oq(Y[tA]);return}}if(ty&&null!==ox){if("ArrowDown"===e.key){e.preventDefault(),tj(oX("down"));return}if("ArrowUp"===e.key){e.preventDefault(),tj(oX("up"));return}if("ArrowRight"===e.key){e.preventDefault(),tj(oX("right"));return}if("ArrowLeft"===e.key){e.preventDefault(),tj(oX("left"));return}if("Escape"===e.key){e.preventDefault(),tb(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&ok[tw]){e.preventDefault(),oV(ok[tw]);return}}if(tM&&null!==tz&&!r){if("ArrowDown"===e.key){e.preventDefault(),tF(e=>Math.min(Math.max(0,oH.length-1),e+1));return}if("ArrowUp"===e.key){e.preventDefault(),tF(e=>Math.max(0,e-1));return}if("Escape"===e.key){e.preventDefault(),tP(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&oH[tE]){e.preventDefault(),o_(oH[tE]);return}}if(null!==oj&&oP.length>0&&!r){if("ArrowDown"===e.key){e.preventDefault(),oF(e=>Math.min(Math.max(0,oP.length-1),e+1));return}if("ArrowUp"===e.key){e.preventDefault(),oF(e=>Math.max(0,e-1));return}if("Escape"===e.key){e.preventDefault(),oS(null);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&oP[oE]){e.preventDefault(),oA(oE);return}}if("ArrowUp"===e.key&&!r&&!a&&(Y?.length??0)>0&&0===e_.trim().length){e.preventDefault(),tb(!1),tP(!1),tN(0),tW(!0);return}if("Escape"===e.key&&!r&&a&&o){e.preventDefault(),o();return}if("Enter"===e.key&&!e.shiftKey){if("ctrl-enter"===tT&&!(e.ctrlKey||e.metaKey))return;e.preventDefault(),a&&(s||i)?oY(s?"steer":"followup"):of()}},[a,s,i,o,ty,ox,ok,tw,oV,oY,of,oX,tM,tz,oH,tE,o_,oj,oP,oE,oA,tT,ep,tD,Y,tA,oq,e_]),oQ=(0,r.useCallback)(()=>{let e=t_.current;e&&(e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)},[]),o0=(0,r.useCallback)(e=>{let t=Array.from(e.clipboardData?.items??[]),o=t.filter(e=>e.type.startsWith("image/"));if(o.length){e.preventDefault(),os(o.map(e=>e.getAsFile()).filter(e=>null!==e));return}let n=function(e,t){if(!e)return[];let o=[],n=Array.from(e.files??[]);for(let e of n){let t=e.path;"string"==typeof t&&t.trim()&&o.push(t.trim())}if(o.length>0)return Array.from(new Set(o));for(let t of Array.from(e.items??[]))if("file"===t.kind){let e=t.getAsFile(),n=e?.path;"string"==typeof n&&n.trim()&&o.push(n.trim())}if(o.length>0)return Array.from(new Set(o));for(let t of rL)try{let n=e.getData(t);if(n){let e=function(e){if(!e)return[];let t=e.split(/\r?\n/),o=[];for(let e of t){let t=e.trim();!(!t||t.startsWith("#"))&&"copy"!==t&&"cut"!==t&&(t.startsWith("file://")?o.push(r$(t)):(t.startsWith("/")||/^[a-zA-Z]:[\\/]/.test(t))&&o.push(t))}return o}(n);e.length>0&&o.push(...e)}}catch{}if(o.length>0)return Array.from(new Set(o));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)o.push(r$(e))}}catch{}if(o.length>0)return Array.from(new Set(o));if(t?.fallbackToFileName&&n.length>0)for(let e of n)e.name&&o.push(e.name);return Array.from(new Set(o))}(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),o=t_.current,r=o?.selectionStart??e_.length,s=o?.selectionEnd??e_.length;eq(e_.slice(0,r)+t+e_.slice(s)),requestAnimationFrame(()=>{if(o){let e=r+t.length;o.selectionStart=e,o.selectionEnd=e,oQ()}});return}if(!t.find(e=>e.type.startsWith("text/plain")))return;let r=e.clipboardData.getData("text/plain");if(!r)return;let s=r.split(/\r?\n/).length;if(r.length<2e3&&s<20)return;e.preventDefault();let i=`paste-${++e0.current}`,a=eL("desktop.pastedLabel",{id:e0.current,lines:s}),l=t_.current,d=l?.selectionStart??e_.length,c=l?.selectionEnd??e_.length,p=e_.slice(0,d),u=e_.slice(c),h=!(p.length>0)||p.endsWith("\n")||p.endsWith(" ")?"":"\n\n";eq(p+h+a+u),eK(e=>[...e,{id:i,label:a,text:r}]),requestAnimationFrame(()=>{if(!l)return;let e=d+h.length+a.length;l.setSelectionRange(e,e),l.focus()})},[os,eL,e_,oQ]);(0,r.useEffect)(()=>{tA>=(Y?.length??0)&&tN(Math.max(0,(Y?.length??0)-1))},[tA,Y]),(0,r.useEffect)(()=>{t8.current.length=Y?.length??0},[Y]),(0,r.useEffect)(()=>{tD&&t8.current[tA]?.scrollIntoView({block:"nearest",inline:"nearest"})},[tA,tD]),(0,r.useEffect)(()=>{if(null===ox){tb(!1),tj(0),t2.current=!1;return}tb(!0),tj(0),!t2.current&&ei&&(t2.current=!0,Promise.resolve(ei()).catch(()=>{t2.current=!1}))},[ox,ei]),(0,r.useEffect)(()=>{tw>=ok.length&&tj(Math.max(0,ok.length-1))},[ok.length,tw]),(0,r.useEffect)(()=>{t4.current.length=ok.length},[ok.length]),(0,r.useEffect)(()=>{ty&&t4.current[tw]?.scrollIntoView({block:"nearest",inline:"nearest"})},[tw,ty]);let o1=g&&g.length>0?g.map(e=>({provider:e.provider,modelId:e.id,name:e.name})).sort(sB):Object.entries(d??{}).map(([e,t])=>({provider:l?.provider??"unknown",modelId:e,name:t})).sort(sB),o2=[];for(let e of o1){let t=o2.find(t=>t.provider===e.provider);t?t.options.push(e):o2.push({provider:e.provider,options:[e]})}let o4=l?o1.find(e=>e.modelId===l.modelId&&e.provider===l.provider)?.name??l.modelId:null,o6=w?Math.max(0,w.tokensBefore-w.estimatedTokensAfter):0,o8=w?`${eL("desktop.compacted")} ${sq(w.tokensBefore)} -> ${sq(w.estimatedTokensAfter)} ${eL("desktop.tokens")} (${sq(o6)} ${eL("desktop.saved")})`:null,o5="auto"!==(ex=_??"auto")&&K?K[ex]??eO[ex]:eO[ex],o3=Object.entries(sO).find(([,e])=>e===(T??"default"))?.[0],o7="plan"===T?eL("desktop.planModeLabel"):eH[o3??"default"];(0,r.useEffect)(()=>{let e=e=>{tq.current&&!tq.current.contains(e.target)&&tV.current&&!tV.current.contains(e.target)&&e2(!1),tG.current&&!tG.current.contains(e.target)&&tr(!1),tY.current&&!tY.current.contains(e.target)&&tu(!1),tX.current&&!tX.current.contains(e.target)&&tl(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,r.useEffect)(()=>{let e=null,t=()=>{e=null;let t=window.visualViewport;e5({height:t?.height??window.innerHeight,width:t?.width??window.innerWidth,offsetTop:t?.offsetTop??0})},o=()=>{null!==e&&window.cancelAnimationFrame(e),e=window.requestAnimationFrame(t)};return o(),window.addEventListener("resize",o),window.visualViewport?.addEventListener("resize",o),window.visualViewport?.addEventListener("scroll",o),window.addEventListener("focusin",o),window.addEventListener("focusout",o),window.addEventListener("pageshow",o),()=>{window.removeEventListener("resize",o),window.visualViewport?.removeEventListener("resize",o),window.visualViewport?.removeEventListener("scroll",o),window.removeEventListener("focusin",o),window.removeEventListener("focusout",o),window.removeEventListener("pageshow",o),null!==e&&window.cancelAnimationFrame(e)}},[]),(0,r.useEffect)(()=>{e1&&tK.current?.focus()},[e1]);let[o9,ne]=(0,r.useState)(null);return(0,r.useEffect)(()=>{if(!ep||!eu)return void ne(null);let e=!1,t=async()=>{try{let t=await fetch("/api/tasks/projects"),{projects:o}=await t.json(),n=o.find(e=>ep===e||ep.startsWith(e+"/")||e.startsWith(ep+"/"));if(!n){e||ne(null);return}let r=await (0,rq.Vk)(n);if(e)return;ne({running:r.filter(e=>["running","awaiting_input","preparing","merging"].includes(e.status)).length,todo:r.filter(e=>["todo","queued"].includes(e.status)).length})}catch{e||ne(null)}};t();let o=new EventSource("/api/tasks/events");return o.onmessage=()=>void t(),()=>{e=!0,o.close()}},[ep,eu]),(0,n.jsxs)("div",{style:{flexShrink:0,background:"transparent",padding:"0 16px 15px",paddingRight:e$?16:34},children:[(0,n.jsx)("input",{ref:tQ,type:"file",accept:"image/*",multiple:!0,style:{display:"none"},onChange:e=>{os(Array.from(e.target.files??[])),e.target.value=""}}),(0,n.jsxs)("div",{style:{maxWidth:820,margin:"0 auto"},children:[o9&&(o9.running>0||o9.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)(R.m,{size:12,"aria-hidden":"true"}),o9.running>0&&(0,n.jsxs)("span",{style:{color:"var(--accent)"},children:[o9.running," ",eL("desktop.taskRunning")]}),o9.running>0&&o9.todo>0&&(0,n.jsx)("span",{"aria-hidden":"true",children:"\xb7"}),o9.todo>0&&(0,n.jsxs)("span",{children:[o9.todo," ",eL("desktop.taskTodo")]})]}),m&&m.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:m.join(" ")}),(J?.steering.length??0)+(J?.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"},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 ",(J?.steering.length??0)+(J?.followUp.length??0)]}),X&&(0,n.jsxs)("button",{onClick:X,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)(rV.Y,{size:13}),eL("desktop.recallToInput")]})]}),J?.steering.map((e,t)=>(0,n.jsx)(s2,{kind:"steer",label:eL("desktop.steer"),text:e,index:t,total:J.steering.length,onMove:Z?e=>void op("steer",t,e):void 0,onRecall:ee?()=>void oh("steer",t):void 0,onRemove:eo?()=>void ou("steer",t):void 0},`steer-${t}`)),J?.followUp.map((e,t)=>(0,n.jsx)(s2,{kind:"follow-up",label:eL("desktop.followUp"),text:e,index:t,total:J.followUp.length,onMove:Z?e=>void op("followUp",t,e):void 0,onRecall:ee?()=>void oh("followUp",t):void 0,onRemove:eo?()=>void ou("followUp",t):void 0},`followup-${t}`))]}),on&&(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")}),G&&(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)(j.B,{size:11,style:{flexShrink:0}}),eL("desktop.retrying")," (",G.attempt,"/",G.maxAttempts,")…",G.errorMessage&&(0,n.jsxs)("span",{style:{opacity:.7,marginLeft:4},children:["— ",G.errorMessage]})]}),o8&&(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)(h.S,{size:11,style:{flexShrink:0}}),o8]}),tm.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:6,marginBottom:6,flexWrap:"wrap"},children:tm.map((e,t)=>(0,n.jsxs)("div",{style:{position:"relative",flexShrink:0},children:[(0,n.jsx)("img",{src:e.previewUrl,alt:"",style:{width:56,height:56,objectFit:"cover",borderRadius:6,border:"1px solid var(--border)",display:"block"}}),(0,n.jsx)("button",{onClick:()=>ol(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)(p.u,{size:8})})]},t))}),(0,n.jsxs)("div",{style:{position:"relative"},children:[tD&&Y.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:Y.map((e,t)=>(0,n.jsxs)("button",{ref:e=>{t8.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),oq(e)},onMouseEnter:()=>tN(t),style:{width:"100%",display:"flex",alignItems:"flex-start",gap:8,padding:"5px 6px",border:"none",borderRadius:5,background:t===tA?"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}`))})]}),ty&&null!==ox&&(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:es?eL("desktop.loadingCommands"):`${eL("desktop.slashCommands")} \xb7 ${oy}`}),(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:es||0!==ok.length?ov.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:eU[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 o=t===tw;return(0,n.jsxs)("button",{ref:e=>{t4.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),oV(e)},onMouseEnter:()=>tj(t),style:{width:"100%",display:"flex",alignItems:"center",gap:8,padding:"3px 6px",border:"none",borderRadius:5,background:o?"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}),sJ(e,tS)&&(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")})})]}),tM&&null!==tz&&(ek=tO&&(!t$||t$.cwd!==ep),ev=`${oH.length} ${eL(1===oH.length?"desktop.match":"desktop.matches")}`,ey=t$?.truncated&&!oO?tz.query?` \xb7 ${eL("desktop.searchingAllFiles")}`:` \xb7 ${eL("desktop.indexTruncated")}`:"",(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.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:ek?eL("desktop.loadingFiles"):`${eL("desktop.files")} \xb7 ${ev}${ey}`}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:eL("desktop.tabOrEnter")})]}),(0,n.jsx)("div",{style:{maxHeight:"calc(min(30vh, 240px) - 24px)",overflowY:"auto",padding:2},children:ek||0!==oH.length?oH.map((e,t)=>{let o=t===tE,r=e.path.split("/").pop()??e.path,s=e.path.slice(0,e.path.length-r.length);return(0,n.jsxs)("button",{ref:e=>{t6.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),o_(e)},onMouseEnter:()=>tF(t),style:{width:"100%",display:"flex",alignItems:"center",gap:5,padding:"3px 6px",border:"none",borderRadius:5,background:o?"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)(Q,{size:14,name:r}):er(r,14)}),(0,n.jsxs)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[s&&(0,n.jsx)("span",{style:{color:"var(--text-dim)"},children:s}),r,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:oL&&!oO?eL("desktop.searching"):eL("desktop.noMatchingFiles")})})]})),null!==oj&&oP.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:[oP.length," ",eL("desktop.snippetMatches")]})}),(0,n.jsx)("div",{style:{maxHeight:"min(26vh, 210px)",overflowY:"auto"},children:oP.map((e,t)=>(0,n.jsxs)("button",{type:"button",onMouseEnter:()=>oF(t),onClick:()=>oA(t),style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 10px",background:t===oE?"var(--bg-selected)":"none",border:"none",color:t===oE?"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 ${a&&(s||i)?"is-streaming":""} ${"yolo"===D?"is-yolo":""}`,ref:tJ,onClick:e=>{e.target.closest("button, input, select, [role=button]")||t_.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:[a&&(0,n.jsx)("div",{className:"chat-input-streaming-overlay hatch-45","aria-hidden":"true"}),a&&(s||i)&&(0,n.jsxs)("div",{className:"chat-input-streaming-actions",children:[s&&(0,n.jsx)("button",{type:"button",className:"chat-input-streaming-action chat-input-streaming-action-steer",onClick:()=>oY("steer"),disabled:!ob,title:eL("desktop.injectMessageNow"),"aria-label":eL("desktop.steer"),children:(0,n.jsx)(rK.A,{size:15})}),i&&(0,n.jsx)("button",{type:"button",className:"chat-input-streaming-action",onClick:()=>oY("followup"),disabled:!ob,title:eL("desktop.queueMessageAfterFinish"),"aria-label":eL("desktop.followUp"),children:(0,n.jsx)(rY.M,{size:15})})]}),eX&&(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:eX}),eV.length>0&&(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:4,marginBottom:6},children:eV.map(e=>{let t=eG.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)(rJ.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:()=>eJ(o=>t?o.filter(t=>t!==e.id):[...o,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)(rG.b,{size:12,"aria-hidden":"true"})}),(0,n.jsx)("button",{type:"button",onClick:()=>{eK(t=>t.filter(t=>t.id!==e.id)),eq(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)(S.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:tk?"var(--tool-bg)":void 0},children:["goal"===P&&L&&"idle"!==L.status&&(0,n.jsxs)("span",{style:{flexShrink:0,display:"inline-flex",alignItems:"center",gap:6,marginRight:8,padding:"2px 8px",borderRadius:6,background:"complete"===L.status?"color-mix(in srgb, var(--accent-green, #22c55e) 14%, transparent)":"blocked"===L.status||"paused"===L.status?"color-mix(in srgb, #f59e0b 14%, transparent)":"color-mix(in srgb, var(--accent) 12%, transparent)",color:"complete"===L.status?"var(--accent-green, #22c55e)":"blocked"===L.status||"paused"===L.status?"#f59e0b":"var(--accent)",fontSize:11,fontWeight:600,whiteSpace:"nowrap",userSelect:"none"},title:L.goalText??"",children:[(0,n.jsx)(nU.d,{size:12,weight:"fill","aria-hidden":"true"}),"running"===L.status&&(0,n.jsxs)("span",{children:[eL("desktop.goalRunning")," \xb7 ",L.turnsUsed,"/",L.turnsLimit]}),"complete"===L.status&&(0,n.jsx)("span",{children:eL("desktop.goalComplete")}),"blocked"===L.status&&(0,n.jsx)("span",{children:eL("desktop.goalBlocked")}),"paused"===L.status&&(0,n.jsx)("span",{children:eL("desktop.goalPaused")}),L.noProgressTurns>0&&"running"===L.status&&(0,n.jsxs)("span",{style:{opacity:.8},children:["\xb7 ",eL("desktop.goalNoProgress",{n:L.noProgressTurns})]}),"running"===L.status&&(0,n.jsx)("button",{type:"button",onClick:H,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"===L.status||"blocked"===L.status)&&(0,n.jsx)("button",{type:"button",onClick:B,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:U,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:t_,value:e_,spellCheck:!1,onChange:e=>{eq(e.target.value),ow(e.target.value,e.target.selectionStart),oD(e.target.value,e.target.selectionStart)},onSelect:e=>{let t=e.currentTarget;ow(t.value,t.selectionStart)},onKeyDown:oZ,onCompositionStart:()=>{t0.current=!0},onCompositionEnd:e=>{t0.current=!1,t1.current=Date.now();let t=e.currentTarget;ow(t.value,t.selectionStart)},onInput:oQ,onPaste:o0,placeholder:a&&(s||i)?eL("desktop.steerOrQueueFollowUp"):a?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"}})]}),tk&&(0,n.jsxs)("div",{style:{marginTop:4,padding:"2px 8px",fontSize:11,color:tv?"var(--text-muted)":"var(--accent)"},children:[eL("desktop.shellCommand")," \xb7 ",tv?eL("desktop.shellOutputLocal"):eL("desktop.shellOutputModel")]}),(0,n.jsxs)("div",{className:"chat-input-toolbar",style:{display:e$?"grid":"flex",gridTemplateColumns:e$?"auto auto minmax(0, 1fr)":void 0,alignItems:"center",gap:4},children:[(0,n.jsxs)("div",{ref:tX,className:"chat-input-toolbar-attach",style:{position:"relative"},children:[(0,n.jsx)("button",{onClick:e=>{let t=e.currentTarget.getBoundingClientRect();tc({top:t.top,left:t.left,width:t.width}),tl(e=>!e)},title:eL("desktop.attachMenu"),"aria-label":eL("desktop.attachMenu"),"aria-expanded":ta,style:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,padding:0,background:ta?"var(--bg-hover)":"none",border:"none",borderRadius:6,color:tm.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=tm.length?"var(--accent)":"var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background=ta?"var(--bg-hover)":"none",e.currentTarget.style.color=tm.length?"var(--accent)":"var(--text-muted)"},children:(0,n.jsx)(x.c,{size:14})}),ta&&td&&(eb=[{id:"upload",label:eL("desktop.attachUpload"),desc:eL("desktop.attachUploadDesc"),icon:C.J},{id:"reference",label:eL("desktop.attachReference"),desc:eL("desktop.attachReferenceDesc"),icon:rx.sj},{id:"sessions",label:eL("desktop.attachSessions"),desc:eL("desktop.attachSessionsDesc"),icon:rX.v},{id:"slash",label:eL("desktop.attachCommands"),desc:eL("desktop.attachCommandsDesc"),icon:u.C}],ew=window.visualViewport?.height??window.innerHeight,ej=window.innerWidth,eS=Math.min(td.left,ej-220-8),eC=ew-td.top+6,(0,n.jsx)("div",{role:"menu",style:{position:"fixed",left:eS,bottom:eC,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:eb.map(e=>(0,n.jsxs)("button",{type:"button",role:"menuitem",onClick:()=>{tl(!1),"upload"===e.id?tQ.current?.click():"reference"===e.id?oK():"sessions"===e.id?oG():"slash"===e.id&&oJ()},style:{display:"flex",alignItems:"center",gap:10,width:"100%",padding:"8px 10px",background:e.active?"var(--bg-selected)":"none",border:"none",borderRadius:8,cursor:"pointer",textAlign:"left",transition:"background 0.12s"},onMouseEnter:t=>{e.active||(t.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:e.desc})]}),e.active?(0,n.jsx)(h.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:!e$&&W&&A&&N&&(0,n.jsx)(s$,{collaborationMode:P,tokenMode:E,toolApprovalMode:D,onCollaborationModeChange:W,onTokenModeChange:A,onToolApprovalModeChange:N,disabled:a})}),!e$&&(0,n.jsx)("div",{className:"chat-input-toolbar-spacer",style:{flex:1}}),(0,n.jsx)("div",{ref:tZ,className:"chat-input-toolbar-controls",style:{flex:e$?"1 1 auto":"0 0 auto",minWidth:e$?0:void 0,display:"flex",alignItems:"center",justifyContent:"flex-end",position:"relative",marginLeft:e$?0:"auto"},children:(0,n.jsxs)("div",{className:"chat-input-toolbar-actions",style:{display:"flex",alignItems:"center",gap:e$?1:2,...e$?{flex:"1 1 auto",minWidth:0,justifyContent:"flex-end"}:null},children:[q&&(0,n.jsxs)("div",{ref:tY,className:"chat-input-toolbar-thinking",style:{position:"relative"},children:[(0,n.jsxs)("button",{onClick:e=>{if(a)return;let t=e.currentTarget.getBoundingClientRect();tg({top:t.top,left:t.left,width:t.width}),tu(e=>!e)},disabled:a,title:eL("desktop.changeReasoningLevel",{level:o5}),"aria-label":eL("desktop.reasoningLevel"),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,padding:e$?"0 5px":"3px 7px",width:e$?"auto":void 0,height:24,background:tp?"var(--bg-hover)":"none",border:"none",borderRadius:6,color:(_??"auto")==="off"?"var(--text-dim)":"var(--accent)",cursor:a?"not-allowed":"pointer",fontSize:12,opacity:a?.5:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{a||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.background=tp?"var(--bg-hover)":"none"},children:[(0,n.jsx)(s_,{level:_??"auto"}),(0,n.jsx)("span",{style:{whiteSpace:"nowrap"},children:o5}),(0,n.jsx)(f.b,{size:11,weight:"bold","aria-hidden":"true",style:{transform:tp?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.12s"}})]}),tp&&th&&(eT=window.visualViewport?.height??window.innerHeight,ez=Math.min(240,(eR=window.innerWidth)-16),eI=Math.min(th.left,eR-ez-8),eM=eT-th.top+4,eP=Math.min(360,Math.max(120,Math.min(th.top-8,.6*eT))),(0,n.jsx)("div",{style:{position:"fixed",bottom:eM,left:eI,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:ez,maxHeight:eP,overflowY:"auto"},children:sU.filter(e=>!V||"auto"===e||V.includes(e)).map(e=>{let t=(_??"auto")===e,o="auto"!==e&&K?K[e]:void 0,r=null!=o&&o!==e?o:eO[e],s=null!=o&&o!==e;return(0,n.jsxs)("button",{onClick:()=>{tu(!1),t||q(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)(s_,{level:e,size:14}),(0,n.jsxs)("span",{style:{flex:1},children:[r,s&&(0,n.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",marginLeft:5},children:["(",e,")"]})]}),t&&(0,n.jsx)(h.S,{size:12,weight:"bold",color:"var(--accent)",style:{flexShrink:0}})]},e)})}))]}),z&&"plan"===T&&(0,n.jsxs)("div",{ref:tG,className:"chat-input-toolbar-tools",style:{position:"relative"},children:[" ",(0,n.jsxs)("button",{onClick:e=>{if(a)return;let t=e.currentTarget.getBoundingClientRect();ti({top:t.top,left:t.left,width:t.width}),tr(e=>!e)},disabled:a,title:eL("desktop.changeToolPreset",{preset:o7}),"aria-label":eL("desktop.toolPreset"),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,padding:e$?"0 5px":"3px 7px",width:e$?"auto":void 0,height:24,background:tn?"var(--bg-hover)":"none",border:"none",borderRadius:6,color:"var(--text-muted)",cursor:a?"not-allowed":"pointer",fontSize:12,opacity:a?.5:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{a||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background=tn?"var(--bg-hover)":"none",e.currentTarget.style.color="var(--text-muted)"},children:[(0,n.jsx)("span",{style:{whiteSpace:"nowrap"},children:o7}),(0,n.jsx)(f.b,{size:11,weight:"bold","aria-hidden":"true",style:{transform:tn?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.12s"}})]}),tn&&ts&&(eE=window.visualViewport?.height??window.innerHeight,eD=Math.min(200,(eF=window.innerWidth)-16),eW=Math.max(8,eF-(ts.left+ts.width)),eA=eE-ts.top+6,eN=Math.min(320,Math.max(100,Math.min(ts.top-8,.5*eE))),(0,n.jsx)("div",{style:{position:"fixed",bottom:eA,right:eW,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:eD,maxHeight:eN,overflowY:"auto"},children:sL.map(e=>{let t=sO[e],o="plan"!==T&&(T??"default")===t,r="off"===e?eL("desktop.noToolsReadOnly"):"default"===e?eL("desktop.fourBuiltInTools"):eL("desktop.allBuiltInTools");return(0,n.jsxs)("button",{onClick:()=>{tr(!1),o||z(t)},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 12px",background:o?"var(--bg-selected)":"none",border:"none",color:o?"var(--accent)":"var(--text)",cursor:"pointer",fontSize:12,textAlign:"left",fontFamily:"var(--font-mono)",whiteSpace:"nowrap"},onMouseEnter:e=>{o||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{o||(e.currentTarget.style.background="none")},children:[(0,n.jsx)("span",{style:{flex:1},children:eH[e]}),(0,n.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",marginLeft:8},children:r}),o&&(0,n.jsx)(h.S,{size:12,weight:"bold",color:"var(--accent)",style:{flexShrink:0}})]},e)})}))]}),o1.length>0&&b&&(0,n.jsxs)("div",{ref:tq,className:"chat-input-toolbar-model",style:{position:"relative",flex:e$?"1 1 auto":void 0,minWidth:0},children:[(0,n.jsxs)("button",{onClick:e=>{let t=e.currentTarget.getBoundingClientRect();e6({top:t.top,left:t.left,width:t.width}),e1||e7(""),e2(e=>!e)},disabled:a,style:{display:"flex",alignItems:"center",gap:6,justifyContent:e$?"flex-start":void 0,padding:e$?"4px 6px":"3px 7px",height:24,width:e$?"100%":void 0,maxWidth:e$?"100%":"min(220px, 34vw)",overflow:"hidden",background:e1?"var(--bg-hover)":"none",border:"none",borderRadius:6,color:"var(--text-muted)",cursor:a?"not-allowed":"pointer",fontSize:12,opacity:a?.5:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{a||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background=e1?"var(--bg-hover)":"none",e.currentTarget.style.color="var(--text-muted)"},children:[(0,n.jsx)(sC,{id:l?.provider??"unknown",size:14}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:o4??eL("desktop.selectModel")}),(0,n.jsx)(f.b,{size:11,weight:"bold","aria-hidden":"true",style:{flexShrink:0,transform:e1?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.12s"}})]}),e1&&e4&&(()=>{let e=e8.height||window.innerHeight,t=e8.width||window.innerWidth,o=e4.top-e8.offsetTop,r=Math.max(6,e-o+6),s=Math.min(400,Math.max(120,Math.min(o-8,.6*e))),i=Math.min(320,s),a=e4.width,d=Math.min(360,t-16),p=e$?{left:8,right:8,maxWidth:"calc(100vw - 16px)"}:{right:Math.max(8,t-(e4.left+e4.width)),width:"max-content",minWidth:Math.min(a,d),maxWidth:d},u=[];for(let e of[...e9]){let[t,o]=e.split(":",2),n=o1.find(e=>e.provider===t&&e.modelId===o);n&&u.push(n)}let g=e3.trim().toLowerCase(),m=g.length>0,x=e=>e.name.toLowerCase().includes(g)||e.modelId.toLowerCase().includes(g)||e.provider.toLowerCase().includes(g),k=m?u.filter(x):u,y=k.length>0,w=m?o2.map(e=>({...e,options:e.options.filter(x)})).filter(e=>e.options.length>0):o2,j=y||w.length>0;return(0,n.jsxs)("div",{ref:tV,className:"chat-input-model-dropdown",style:{position:"fixed",bottom:r,...p,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:i,maxHeight:s,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)(c.$,{size:13,color:"var(--text-dim)",style:{position:"absolute",left:12,pointerEvents:"none"}}),(0,n.jsx)("input",{ref:tK,value:e3,onChange:e=>e7(e.target.value),onKeyDown:e=>{if("Escape"===e.key)e3?e7(""):e2(!1);else if("ArrowDown"===e.key){let t=tV.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")}),k.map(e=>{let t=e.modelId===l?.modelId&&e.provider===l?.provider,o=e9.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:()=>{e2(!1),b(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)(sC,{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)(h.S,{size:12,weight:"bold",color:"var(--accent)",style:{flexShrink:0}}),(0,n.jsx)("span",{onClick:t=>{t.stopPropagation(),oi(e.provider,e.modelId)},className:"model-star",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,cursor:"pointer",color:o?"var(--accent)":"var(--text-dim)",opacity:+!!o,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=o?"var(--accent)":"var(--text-dim)"},title:o?eL("desktop.unfavorite"):eL("desktop.favorite"),"aria-label":o?eL("desktop.unfavorite"):eL("desktop.favorite"),children:(0,n.jsx)(r1.G,{size:12,weight:o?"fill":"regular"})})]})},`fav-${e.provider}:${e.modelId}`)}),(0,n.jsx)("div",{style:{borderTop:"1px solid var(--border)"}})]}),w.map((e,t)=>{let o=m||tt.has(e.provider),r=o?(0,n.jsx)(f.b,{size:10,color:"var(--text-dim)"}):(0,n.jsx)(v.J,{size:10,color:"var(--text-dim)"});return(0,n.jsxs)("div",{children:[(0,n.jsxs)("button",{onClick:()=>oa(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:[r,(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",minWidth:0},children:e.provider})]}),o&&e.options.map(e=>{let t=e.modelId===l?.modelId&&e.provider===l?.provider,o=e9.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:()=>{e2(!1),b(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)(sC,{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)(h.S,{size:12,weight:"bold",color:"var(--accent)",style:{flexShrink:0}}),(0,n.jsx)("span",{onClick:t=>{t.stopPropagation(),oi(e.provider,e.modelId)},className:"model-star",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,cursor:"pointer",color:o?"var(--accent)":"var(--text-dim)",opacity:+!!o,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=o?"var(--accent)":"var(--text-dim)"},title:o?eL("desktop.unfavorite"):eL("desktop.favorite"),"aria-label":o?eL("desktop.unfavorite"):eL("desktop.favorite"),children:(0,n.jsx)(r1.G,{size:12,weight:o?"fill":"regular"})})]})},`${e.provider}:${e.modelId}`)})]},e.provider)}),m&&!j&&(0,n.jsx)("div",{style:{padding:"14px 12px",textAlign:"center",fontSize:12,color:"var(--text-dim)"},children:eL("desktop.noModelsMatch")})]})]})})()]}),0===o1.length&&k&&(0,n.jsxs)("div",{className:"chat-input-toolbar-model",title:`${eL("desktop.modelsLoadFailed")}: ${k}`,style:{display:"flex",alignItems:"center",gap:6,flex:e$?"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)(nc.M,{size:14,color:"#ef4444",weight:"fill",style:{flexShrink:0}}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,color:"#ef4444"},children:eL("desktop.modelsLoadFailed")}),y&&(0,n.jsx)("button",{type:"button",onClick:y,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:"#ef4444",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===o1.length&&!k&&(0,n.jsxs)("div",{className:"chat-input-toolbar-model",title:eL("desktop.noModelsConfigured"),style:{display:"flex",alignItems:"center",gap:6,flex:e$?"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)(nc.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")})]}),!a&&(0,n.jsx)("button",{type:"button",onClick:of,disabled:!e_.trim()&&!tm.length,className:"chat-input-send",title:eL("desktop.sendMessage"),"aria-label":eL("desktop.sendMessage"),children:(0,n.jsx)(rQ.l,{size:14})}),a&&(0,n.jsxs)("button",{onClick:o,title:eL("desktop.stopAgent"),"aria-label":eL("desktop.stopAgent"),style:{display:"flex",alignItems:"center",gap:6,padding:"3px 7px",height:24,background:"rgba(239,68,68,0.12)",border:"none",borderRadius:6,color:"#ef4444",cursor:"pointer",fontSize:12,fontWeight:600,whiteSpace:"nowrap",letterSpacing:"-0.01em",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)(r0.d,{size:14}),eL("desktop.stop")]})]})})]})]})]})]})]})}));function s6(e){return!!e&&"string"==typeof e.type&&"string"==typeof e.data&&"string"==typeof e.mimeType}function s8(e){let t;if(!e||"object"!=typeof e)return null;let o=e.kind;return"steer"!==o&&"followUp"!==o||"string"!=typeof e.text?null:(Array.isArray(e.images)&&0===(t=e.images.filter(s6)).length&&(t=void 0),{kind:o,text:e.text,...t?{images:t}:{}})}function s5({items:e,sessionId:t,onResolve:o,onExport:s,onStageImport:i,onDismiss:a,mode:l="recovery"}){let{t:d}=(0,F.s)(),c=$(),[p,u]=(0,r.useState)(()=>new Set(e.map(e=>e.id))),[h,g]=(0,r.useState)(!1),[m,f]=(0,r.useState)(null),x=(0,r.useRef)(null);(0,r.useEffect)(()=>{u(new Set(e.map(e=>e.id)))},[e]);let k=e.filter(e=>p.has(e.id)),v=k.length===e.length&&e.length>0,y=e=>u(t=>{let o=new Set(t);return o.has(e)?o.delete(e):o.add(e),o}),b=async(e,t=!1)=>{if(0!==k.length){g(!0),f(null);try{await o("keep"===e?k.map(e=>e.id):[],"discard"===e?k.map(e=>e.id):[],t)}catch(e){f(e instanceof Error?e.message:String(e))}finally{g(!1)}}},w=async e=>{let o=await s();if(!o)return;let n=o.recovery.filter(e=>p.has(e.id));if(n.length){var r;let o,s,i,a,l,c,p;r={sessionId:t,source:"recovery"},s="md"===e?(((o=[]).push("# Queued messages export"),r.sessionId&&o.push(`- Session: ${r.sessionId}`),o.push(`- Source: ${"live"===r.source?"live queue":"pending recovery"}`),o.push(`- Exported: ${r.exportedAt??new Date().toISOString()}`),o.push(""),0===n.length)?o.push("_No entries._"):n.forEach((e,t)=>{var n;o.push(`## ${t+1}. ${"steer"===e.kind?"steer":"follow-up"} \xb7 ${new Date(e.queuedAt).toISOString()}`),e.text&&o.push(e.text),e.images?.length&&o.push(`> _${0===(n=e.images.length)?"":1===n?"(1 image)":`(${n} images)`}_`),o.push("")}),o.join("\n")):JSON.stringify({format:"pi-web-queue",version:1,exportedAt:r.exportedAt??new Date().toISOString(),source:r.source,sessionId:r.sessionId,entries:n.map(({kind:e,text:t,images:o})=>({kind:e,text:t,...o?.length?{images:o}:{}}))},null,2),i=new Date().toISOString().replace(/[:.]/g,"-").slice(0,19),a=`${r.sessionId??"session"}-queue-${r.source}-${i}.${e}`,l=new Blob([s],{type:"md"===e?"text/markdown;charset=utf-8":"application/json;charset=utf-8"}),c=URL.createObjectURL(l),(p=document.createElement("a")).href=c,p.download=a,p.click(),setTimeout(()=>URL.revokeObjectURL(c),1e3),f(d("desktop.queueExported",{count:n.length}))}},j=async e=>{let t=function(e){let t;try{t=JSON.parse(e)}catch{return[]}let o=Array.isArray(t)?t:t&&"object"==typeof t&&Array.isArray(t.entries)?t.entries:null;return o?o.map(s8).filter(e=>null!==e):[]}(await e.text());if(!t.length)return void f(d("desktop.queueImportEmpty"));let o=await i(t);f(null===o?d("desktop.queueImportEmpty"):d("desktop.queueImported",{count:o}))};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"===l?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"===l?d("desktop.queueImportTitle"):d("desktop.queueRecoveryTitle")}),(0,n.jsx)("p",{className:"mt-1 text-xs leading-5 text-(--text-muted)",children:"import"===l?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:()=>u(new Set(v?[]:e.map(e=>e.id))),children:v?d("desktop.selectNone"):d("desktop.selectAll")}),(0,n.jsx)("button",{type:"button",className:"markdown-code-action",disabled:h||0===k.length,onClick:()=>void w("json"),children:"JSON"}),(0,n.jsx)("button",{type:"button",className:"markdown-code-action",disabled:h||0===k.length,onClick:()=>void w("md"),children:"MD"}),(0,n.jsx)("button",{type:"button",className:"markdown-code-action",disabled:h,onClick:()=>x.current?.click(),children:d("desktop.import")}),(0,n.jsx)("button",{type:"button",className:"markdown-code-action",onClick:a,"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=p.has(e.id);return(0,n.jsxs)("button",{type:"button",onClick:()=>y(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:()=>y(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:[m?(0,n.jsx)("span",{className:"mr-auto text-xs text-(--text-muted)",children:m}):null,(0,n.jsx)("button",{type:"button",className:"rounded-md px-3 py-2 text-xs text-(--text-muted) hover:bg-(--bg-hover)",onClick:a,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 b("discard"),disabled:h||0===k.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 b("keep"),disabled:h||0===k.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 b("keep",!0),disabled:h||0===k.length,children:d("desktop.requeueAndContinue")})]})]}),(0,n.jsx)("input",{ref:x,type:"file",accept:".json,application/json",className:"hidden",onChange:e=>{let t=e.target.files?.[0];t&&j(t),e.currentTarget.value=""}})]})}var s3=o(36405),s7=o(92185),s9=o(75877),ie=o(30830),it=o(86965);function io(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function ir(e){let t=e,o=t.compressedEntryIds?.length??0;for(;1===t.children.length;)t=t.children[0],o+=1+(t.compressedEntryIds?.length??0);return{node:t,skipped:o}}function is({node:e,assistantLabel:t,activePathIds:o,depth:r,isLast:s,parentLines:i,onSelect:a}){let{node:l,skipped:d}=ir(e),c=o.has(l.entry.id),p=o.has(e.entry.id)||o.has(l.entry.id),u=function(e,t){if("message"===e.type&&"message"in e){let o=e.message,n=o.content,r="";if("string"==typeof n?r=n:Array.isArray(n)&&(r=n.filter(e=>"text"===e.type).map(e=>e.text).join(" ")),r.length>40&&(r=r.slice(0,40)+"…"),r)return r;if("assistant"===o.role)return`[${t}]`}return e.type}(l.entry,t),h="message"===l.entry.type&&"message"in l.entry?l.entry.message.role:null;return(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",height:24,cursor:"pointer"},onClick:()=>a(l.entry.id),children:[i.map((e,t)=>(0,n.jsx)("div",{style:{width:16,flexShrink:0,position:"relative",height:"100%",alignSelf:"stretch"},children:e&&(0,n.jsx)("div",{style:{position:"absolute",left:7,top:0,bottom:0,width:1,background:"var(--border)"}})},t)),(0,n.jsxs)("div",{style:{width:16,flexShrink:0,position:"relative",height:"100%",alignSelf:"stretch"},children:[(0,n.jsx)("div",{style:{position:"absolute",left:7,top:0,bottom:s?"50%":0,width:1,background:"var(--border)"}}),(0,n.jsx)("div",{style:{position:"absolute",left:7,top:"50%",width:9,height:1,background:"var(--border)"}})]}),(0,n.jsx)("div",{style:{width:7,height:7,borderRadius:"50%",flexShrink:0,background:c?"var(--accent)":p?"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)":p?"var(--text-muted)":"var(--text-dim)",fontWeight:c?500:400,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:u})]}),l.children.map((e,d)=>(0,n.jsx)(is,{node:e,assistantLabel:t,activePathIds:o,depth:r+1,isLast:d===l.children.length-1,parentLines:[...i,!s],onSelect:a},e.entry.id))]})}function ii({tree:e,activeLeafId:t,onLeafChange:o,inline:s,containerRef:i,open:a,onToggle:l,hasSession:d,embedded:c}){let{t:p}=(0,F.s)(),[u,h]=(0,r.useState)(!1),g=void 0!==a?a:u,m=(0,r.useRef)(null),[x,v]=(0,r.useState)(null);(0,r.useEffect)(()=>{if(!g||!s)return;let e=i?.current??m.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect();v({top:t.bottom,left:t.left,width:t.width})};t();let o=new ResizeObserver(t);return o.observe(e),()=>o.disconnect()},[g,s,i]);let y=(0,r.useMemo)(()=>(function(e,t){if(!t)return new Set;let o=e.map(e=>({node:e,path:[e.entry.id]}));for(;o.length>0;){let{node:e,path:n}=o.pop();if(e.entry.id===t||e.compressedEntryIds?.includes(t))return new Set(n);for(let t of e.children)o.push({node:t,path:[...n,t.entry.id]})}return new Set})(e,t),[e,t]),b=(0,r.useCallback)(e=>{o(e)},[o]),w=d?!function(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 o of e.children)t.push(o)}return!1}(e)?p("desktop.sessionHasNoBranches"):null:p("desktop.noActiveSession"),j=e.length>0?ir(e[0]):null,S=j?.node??null,C=!w&&S&&S.children.length>1,T=(0,n.jsx)(k.Z,{size:16,"aria-hidden":"true",style:{flexShrink:0}}),R=(0,n.jsx)(f.a,{size:8,color:"var(--text-dim)","aria-hidden":"true",style:{marginLeft:1,transition:"transform 0.15s",transform:g?"rotate(180deg)":"none"}});return s?(0,n.jsxs)("div",{style:{height:"100%",display:"flex",alignItems:"stretch"},children:[(0,n.jsx)("button",{ref:m,className:"app-no-drag",onClick:()=>l?l():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:p("desktop.branches"),"aria-label":p("desktop.branches"),"aria-pressed":g,children:T}),g&&x&&(0,n.jsx)("div",{className:"app-no-drag",style:{position:"fixed",top:x.top,left:x.left,width:x.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)(is,{node:e,assistantLabel:p("desktop.assistant"),activePathIds:y,depth:0,isLast:t===S.children.length-1,parentLines:[],onSelect:b},e.entry.id))}):(0,n.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:w})})]}):c?C&&S?(0,n.jsx)("div",{style:{padding:"4px 8px 8px 8px"},children:S.children.map((e,t)=>(0,n.jsx)(is,{node:e,assistantLabel:p("desktop.assistant"),activePathIds:y,depth:0,isLast:t===S.children.length-1,parentLines:[],onSelect:b},e.entry.id))}):(0,n.jsx)("div",{style:{padding:"10px 12px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:w??p("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:[T,(0,n.jsx)("span",{style:{color:"var(--text-muted)"},children:p("desktop.branches")}),R]}),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)(is,{node:e,assistantLabel:p("desktop.assistant"),activePathIds:y,depth:0,isLast:t===S.children.length-1,parentLines:[],onSelect:b},e.entry.id))}):(0,n.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:w??p("desktop.sessionHasNoBranches")})})]})}var ia=o(45390),il=o(33846),id=o(80388);function ic({open:e,onOpenChange:t,cwd:o}){let{t:s}=(0,F.s)(),[i,a]=(0,r.useState)([]),[l,d]=(0,r.useState)(""),[c,u]=(0,r.useState)(!1),[h,g]=(0,r.useState)(null),[m,f]=(0,r.useState)(null),x=(0,r.useCallback)(async()=>{if(o)try{let e=await fetch(`/api/git/stash?${new URLSearchParams({cwd:o}).toString()}`,{cache:"no-store"});if(e.ok){let t=await e.json();a(t.entries)}}catch{}},[o]);if((0,r.useEffect)(()=>{e&&x()},[e,x]),!e)return null;let k=async(e,t)=>{u(!0),g(null),f(null);try{let n=await fetch(`/api/git/stash?${new URLSearchParams({cwd:o??""}).toString()}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e,message:l||void 0,ref:t})}),r=await n.json();n.ok&&r.ok?(f(r.output??s("tasks.stashDone")),d(""),x()):g(r.error??`HTTP ${n.status}`)}catch(e){g(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)"},onMouseDown:e=>{e.target===e.currentTarget&&t(!1)},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:s("desktop.stashTitle")}),(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)(p.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:l,onChange:e=>d(e.target.value),placeholder:s("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 k("push"),disabled:c,style:{alignSelf:"flex-start",display:"inline-flex",alignItems:"center",gap:5,padding:"7px 14px",borderRadius:8,background:"var(--accent)",color:"#fff",border:"none",fontSize:12,fontWeight:600,cursor:c?"not-allowed":"pointer"},children:[(0,n.jsx)(il.c,{size:13,"aria-hidden":"true"}),s("desktop.stashPush")]})]}),h&&(0,n.jsx)("div",{style:{padding:"8px 10px",borderRadius:8,background:"rgba(239,68,68,0.10)",color:"#ef4444",fontSize:12,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:h}),m&&(0,n.jsx)("div",{style:{padding:"8px 10px",borderRadius:8,background:"rgba(34,197,94,0.10)",color:"#22c55e",fontSize:12,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:m}),(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:[s("desktop.stashList")," (",i.length,")"]}),0===i.length?(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)"},children:s("desktop.stashEmpty")}):(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:i.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 k("pop",e.ref),disabled:c,title:s("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)(j.S,{size:11,"aria-hidden":"true"}),s("desktop.stashPop")]}),(0,n.jsx)("button",{type:"button",onClick:()=>void k("drop",e.ref),disabled:c,title:s("desktop.stashDrop"),style:{display:"inline-flex",alignItems:"center",padding:"4px 8px",borderRadius:6,border:"1px solid var(--border)",background:"none",color:"#ef4444",fontSize:11,cursor:c?"not-allowed":"pointer"},children:s("desktop.stashDrop")})]},e.ref))})]})]})]})})}function ip({cwd:e}){let{t}=(0,F.s)(),[o,s]=(0,r.useState)(!1),[i,a]=(0,r.useState)("idle"),[l,d]=(0,r.useState)(null),[c,p]=(0,r.useState)(!1),u=(0,r.useCallback)(async()=>{if(e&&!o){s(!0),a("idle");try{let o=await fetch(`/api/git/push?${new URLSearchParams({cwd:e}).toString()}`,{method:"POST",cache:"no-store"}),n=await o.json();o.ok&&n.ok?(a("ok"),d(n.output||t("desktop.pushOk"))):(a("error"),d(n.error??t("desktop.pushFailed")))}catch(e){a("error"),d(e instanceof Error?e.message:t("desktop.pushFailed"))}finally{s(!1),setTimeout(()=>{a("idle"),d(null)},4e3)}}},[e,o,t]);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button",className:"session-info-bar-button",onClick:()=>void u(),disabled:!e||o,title:t("desktop.push"),"aria-label":t("desktop.push"),style:{position:"relative"},children:"ok"===i?(0,n.jsx)(nO.r,{size:13,color:"#22c55e",weight:"fill","aria-hidden":"true"}):"error"===i?(0,n.jsx)(ia.J,{size:13,color:"#ef4444",weight:"fill","aria-hidden":"true"}):(0,n.jsx)(il.c,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("button",{type:"button",className:"session-info-bar-button",onClick:()=>p(!0),disabled:!e,title:t("desktop.stash"),"aria-label":t("desktop.stash"),children:(0,n.jsx)(id.T,{size:13,"aria-hidden":"true"})}),l&&(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"===i?"#22c55e":"#ef4444"}`,boxShadow:"0 8px 24px rgba(0,0,0,0.2)",fontSize:12,color:"ok"===i?"#22c55e":"#ef4444",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:l}),(0,n.jsx)(ic,{open:c,onOpenChange:p,cwd:e})]})}function iu({onViewFullHistory:e,cwd:t,systemPrompt:o,sessionStats:s,contextUsage:i,hasSession:a,showChat:l,soundEnabled:d,onSoundToggle:c,onCompact:p,onAbortCompaction:u,isCompacting:g,compactError:m,branchTree:f,branchActiveLeafId:x,onBranchLeafChange:v,showSoundLabel:y,isDeepSeekOfficial:b,deepseekBalance:w,lastTurnUsage:j}){let{t:S}=(0,F.s)(),[C,T]=(0,r.useState)(null),R=(0,r.useCallback)(()=>T(null),[]),[z,I]=(0,r.useState)(null),M=(0,r.useRef)(null),P=(0,r.useCallback)((e,t)=>{oy(t).then(()=>{M.current&&clearTimeout(M.current),I(e),M.current=setTimeout(()=>I(null),1400)})},[]),E=(0,r.useMemo)(()=>{if(!o)return 0;let e=0;for(let t of o){let o=t.codePointAt(0)??0;o>=19968&&o<=40959||o>=13312&&o<=19903||o>=131072&&o<=173791||o>=12352&&o<=12447||o>=12448&&o<=12543||o>=44032&&o<=55215?e+=1:e+=.25}return Math.max(1,Math.round(e))},[o]),D=(0,r.useMemo)(()=>{if(!w?.available||null==w.totalBalance)return S("desktop.balanceUnavailable");let e=Number(w.grantedBalance)||0,t=Number(w.toppedUpBalance)||0;return`${S("desktop.balance")}:${nm(Number(w.totalBalance)||0)}(${S("desktop.balanceGranted")}:${nm(e)} / ${S("desktop.balanceToppedUp")}:${nm(t)})`},[w,S]);if(!l)return null;let W=s?.tokens,A=s?.cost??0,N=s?.costCNY??0,$=s?.costUSD??0,L=[];N>0&&L.push(nm(N)),$>0&&L.push($>=.01?`$${$.toFixed(2)}`:"<$0.01"),0===L.length&&A>0&&L.push(A>=.01?`$${A.toFixed(2)}`:"<$0.01");let O=L.length>0?L.join(" + "):null,H="var(--text-muted)";if(i?.contextWindow){let e=i.percent;null!==e&&e>90?H="#ef4444":null!==e&&e>70&&(H="rgba(234,179,8,0.95)")}let B=null!==o&&""!==o,U=s&&W&&(W.input>0||W.output>0),_=a&&v,q=[];if(W&&(q.push(`${S("desktop.sessionInfoInput")}: ${W.input.toLocaleString()}`),q.push(`${S("desktop.sessionInfoOutput")}: ${W.output.toLocaleString()}`),W.cacheRead>0&&q.push(`${S("desktop.sessionInfoCacheRead")}: ${W.cacheRead.toLocaleString()}`),W.cacheWrite>0&&q.push(`${S("desktop.sessionInfoCacheWrite")}: ${W.cacheWrite.toLocaleString()}`),N>0&&q.push(`${S("desktop.sessionInfoCostOfficial")}: ${nm(N)}`),$>0&&q.push(`${S("desktop.sessionInfoCost")}: $${$.toFixed(4)}`),N<=0&&$<=0&&A>0&&q.push(`${S("desktop.sessionInfoCost")}: $${A.toFixed(4)}`)),i?.contextWindow&&null!==i.percent){let e=i.percent,t=i.tokens;q.push(`${S("desktop.sessionInfoContext")}: ${null!==e?`${e.toFixed(1)}%`:"?"} ${null!==t?io(t):"?"}/${io(i.contextWindow)}`)}let V=q.join(" | ");return(0,n.jsxs)("div",{className:"session-info-bar",children:[t&&(0,n.jsx)(ip,{cwd:t}),c&&(0,n.jsxs)("button",{type:"button",className:"session-info-bar-button",onClick:c,title:d?S("desktop.disableCompletionSound"):S("desktop.enableCompletionSound"),"aria-label":d?S("desktop.disableCompletionSound"):S("desktop.enableCompletionSound"),children:[d?(0,n.jsx)(s3.Q,{size:13}):(0,n.jsx)(s7.l,{size:13}),y&&(0,n.jsx)("span",{style:{marginLeft:4},children:d?S("desktop.soundLabelOn"):S("desktop.soundLabelOff")})]}),a&&(0,n.jsx)("button",{type:"button",className:"session-info-bar-button",onClick:e,title:S("desktop.viewFullHistory"),"aria-label":S("desktop.viewFullHistory"),children:(0,n.jsx)(s9.n,{size:13,"aria-hidden":"true"})}),_&&(0,n.jsxs)("div",{className:"session-info-bar-popover-host",children:[(0,n.jsx)("button",{type:"button",className:`session-info-bar-button${"branches"===C?" is-active":""}`,onClick:()=>T(e=>"branches"===e?null:"branches"),title:S("desktop.branches"),"aria-label":S("desktop.branches"),"aria-pressed":"branches"===C,children:(0,n.jsx)(k.Z,{size:13,"aria-hidden":"true"})}),"branches"===C&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"session-info-bar-popover-cover",onClick:R}),(0,n.jsxs)("div",{className:"session-info-bar-popover is-branches",children:[(0,n.jsxs)("div",{className:"session-info-bar-popover-header",children:[(0,n.jsx)("span",{className:"session-info-bar-popover-title",children:S("desktop.branches")}),(0,n.jsx)("button",{type:"button",className:"session-info-bar-popover-close",onClick:R,title:S("i18n.close"),"aria-label":S("i18n.close"),children:"✕"})]}),(0,n.jsx)("div",{className:"session-info-bar-popover-body",children:(0,n.jsx)(ii,{tree:f??[],activeLeafId:x??null,onLeafChange:e=>{v(e),R()},hasSession:!0,embedded:!0})})]})]})]}),B&&(0,n.jsxs)("div",{className:"session-info-bar-popover-host",children:[(0,n.jsx)("button",{type:"button",className:`session-info-bar-button${"system"===C?" is-active":""}`,onClick:()=>T(e=>"system"===e?null:"system"),title:S("desktop.systemPrompt"),"aria-label":S("desktop.systemPrompt"),"aria-pressed":"system"===C,children:(0,n.jsx)(rJ.i,{size:13,"aria-hidden":"true"})}),"system"===C&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"session-info-bar-popover-cover",onClick:R}),(0,n.jsxs)("div",{className:"session-info-bar-popover is-system",children:[(0,n.jsxs)("div",{className:"session-info-bar-popover-header",children:[(0,n.jsx)("span",{className:"session-info-bar-popover-title",children:S("desktop.systemPrompt")}),(0,n.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",marginLeft:8},children:["~",io(E)," tokens"]}),(0,n.jsx)("div",{style:{flex:1}}),(0,n.jsx)("button",{type:"button",className:"session-info-bar-popover-close",onClick:R,title:S("i18n.close"),"aria-label":S("i18n.close"),children:"✕"})]}),(0,n.jsx)("div",{className:"session-info-bar-system-body",children:o?(0,n.jsx)(tS.oz,{remarkPlugins:[oR.A],children:o}):(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"}),p&&(0,n.jsxs)("div",{className:"session-info-bar-compact-wrap",children:[m&&(0,n.jsx)("div",{className:"session-info-bar-compact-error",children:m}),(0,n.jsx)("button",{type:"button",className:`session-info-bar-button${g?" is-compacting":""}`,onClick:g?u:p,title:g?S("desktop.stopCompaction"):S("desktop.compactContext"),"aria-label":g?S("desktop.stopCompaction"):S("desktop.compactContext"),children:g?(0,n.jsx)(r0.M,{size:13}):(0,n.jsx)(ie.C,{size:13})})]}),b&&w?.available&&null!=w.totalBalance&&(0,n.jsxs)("span",{className:"session-info-bar-token-chip",style:{color:"var(--text-muted)",cursor:"default"},title:D,children:[(0,n.jsx)(it.u,{size:11,"aria-hidden":"true"}),S("desktop.balance")," ",nm(Number(w.totalBalance)||0)]}),U&&(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"===C?" is-active":""}`,onClick:()=>T(e=>"session"===e?null:"session"),title:V||S("desktop.sessionInfo"),"aria-label":S("desktop.sessionInfo"),"aria-pressed":"session"===C,children:[W&&W.input>0&&(0,n.jsxs)("span",{className:"session-info-bar-token-chip",children:[(0,n.jsx)(ni.D,{size:10,"aria-hidden":"true"}),io(W.input)]}),W&&W.output>0&&(0,n.jsxs)("span",{className:"session-info-bar-token-chip",children:[(0,n.jsx)(ns.y,{size:10,"aria-hidden":"true"}),io(W.output)]}),W&&W.cacheRead>0&&(0,n.jsxs)("span",{className:"session-info-bar-token-chip",children:[(0,n.jsx)(nd.W,{size:10,"aria-hidden":"true"}),io(W.cacheRead)]}),O&&(0,n.jsx)("span",{children:O}),i?.contextWindow&&null!==i.percent&&(0,n.jsx)("span",{className:"session-info-bar-token-chip",style:{color:H},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===i.percent?0:100-Math.min(100,Math.max(0,i.percent)),transform:"rotate(-90 8 8)"})]})})]}),"session"===C&&s&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"session-info-bar-popover-cover",onClick:R}),(0,n.jsx)("div",{className:"session-info-bar-popover is-session",children:(0,n.jsx)("div",{className:"session-stats-body",children:(()=>{let e=s.tokens,t=i??s.contextUsage,o=(e,t)=>{let o=z===e;return(0,n.jsx)("button",{type:"button",className:`session-stats-copy${o?" is-copied":""}`,title:o?S("desktop.copied"):"file"===e?S("desktop.copyFilePath"):S("desktop.copySessionId"),onClick:()=>P(e,t),children:o?(0,n.jsx)(h.J,{size:12,"aria-hidden":"true"}):(0,n.jsx)(tj.Q,{size:12,"aria-hidden":"true"})})},r=[];s.sessionName&&r.push((0,n.jsx)("div",{className:"session-stats-info-name",children:s.sessionName},"name")),r.push((0,n.jsxs)("div",{className:"session-stats-info-line",children:[(0,n.jsx)("span",{className:"session-stats-info-text",children:s.sessionFile?s.sessionFile.split(/[/\\]/).pop()??s.sessionFile:S("desktop.sessionInfoInMemory")}),s.sessionFile?o("file",s.sessionFile):null]},"file")),r.push((0,n.jsxs)("div",{className:"session-stats-info-line",children:[(0,n.jsx)("span",{className:"session-stats-info-text",children:s.sessionId}),o("id",s.sessionId)]},"id"));let a=[[S("desktop.sessionInfoUser"),s.userMessages.toLocaleString()],[S("desktop.sessionInfoAssistant"),s.assistantMessages.toLocaleString()],[S("desktop.sessionInfoToolCalls"),s.toolCalls.toLocaleString()],[S("desktop.sessionInfoToolResults"),s.toolResults.toLocaleString()],[S("desktop.sessionInfoTotal"),s.totalMessages.toLocaleString()]],l=[[S("desktop.sessionInfoInput"),e.input.toLocaleString()],[S("desktop.sessionInfoOutput"),e.output.toLocaleString()]];e.cacheRead>0&&l.push([S("desktop.sessionInfoCacheRead"),e.cacheRead.toLocaleString()]),e.cacheWrite>0&&l.push([S("desktop.sessionInfoCacheWrite"),e.cacheWrite.toLocaleString()]),l.push([S("desktop.sessionInfoTotal"),e.total.toLocaleString()]);let d=s.costCNY??0,c=s.costUSD??0;if(d>0&&l.push([S("desktop.sessionInfoCostOfficial"),nm(d)]),c>0&&l.push([S("desktop.sessionInfoCost"),`$${c.toFixed(4)}`]),d<=0&&c<=0&&s.cost>0&&l.push([S("desktop.sessionInfoCost"),`$${s.cost.toFixed(4)}`]),t?.contextWindow&&null!==t.percent){let e=t.percent,o=t.tokens;l.push([S("desktop.sessionInfoContext"),`${null!==e?`${e.toFixed(1)}%`:"?"} ${null!==o?io(o):"?"}/${io(t.contextWindow)}`])}(s.totalActiveMs??0)>0&&l.push([S("desktop.sessionInfoActiveTime"),function(e){if(e<=0)return"0s";let t=Math.floor(e/1e3),o=Math.floor(t/3600),n=Math.floor(t%3600/60),r=t%60;return o>0?`${o}h ${n}m`:n>0?`${n}m ${r}s`:`${r}s`}(s.totalActiveMs)]);let p=j?j.costCNY>0?nm(j.costCNY):j.costUSD>0?`$${j.costUSD.toFixed(4)}`:null:null,u=(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:r}),(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:S("desktop.sessionInfoMessages")}),(0,n.jsx)("div",{className:"session-stats-compact-grid",children:a.map(([e,t])=>u(e,t))})]}),(0,n.jsxs)("div",{className:"session-stats-column",children:[(0,n.jsx)("div",{className:"session-stats-section-title",children:S("desktop.sessionInfoTokens")}),(0,n.jsx)("div",{className:"session-stats-compact-grid",children:l.map(([e,t])=>u(e,t))})]}),j&&(0,n.jsxs)("div",{className:"session-stats-column",children:[(0,n.jsx)("div",{className:"session-stats-section-title",children:S("desktop.turnUsageTitle")}),(0,n.jsxs)("div",{className:"session-stats-compact-grid",children:[u(S("desktop.sessionInfoInput"),j.input.toLocaleString()),u(S("desktop.sessionInfoOutput"),j.output.toLocaleString()),j.cacheRead>0&&u(S("desktop.sessionInfoCacheRead"),j.cacheRead.toLocaleString()),p&&u(S("desktop.sessionInfoCost"),p)]})]})]})]})})()})})]})]})]})}var ih=o(68635);function ig({scrollElementRef:e,items:t,estimateSize:o=120,overscan:s=8,virtualizerRef:i}){let a=(0,ih.Te)({count:t.length,getScrollElement:()=>e.current,estimateSize:(0,r.useCallback)(()=>o,[o]),overscan:s});a.shouldAdjustScrollPositionOnItemSizeChange=()=>!1,i&&(i.current=a);let l=(0,r.useRef)(!1),d=(0,r.useRef)(a);d.current=a,(0,r.useEffect)(()=>{l.current||0===t.length||e.current&&(l.current=!0,d.current.scrollToIndex(t.length-1,{align:"end"}))},[t.length,e]);let c=a.getVirtualItems();return(0,n.jsx)("div",{style:{position:"relative",width:"100%",minWidth:0,height:a.getTotalSize()},children:c.map(e=>(0,n.jsx)("div",{"data-index":e.index,ref:a.measureElement,style:{position:"absolute",top:0,left:0,width:"100%",minWidth:0,overflow:"hidden",transform:`translateY(${e.start}px)`},children:t[e.index]},e.key))})}function im(e){return e.replace(/<\/?[\w:-]+\b[^>]*>/g," ").replace(/&lt;\/?[\w:-]+\b[^&]*?&gt;/gi," ").replace(/\s+/g," ").trim()}function ix(e){return"user"===e.role||"assistant"===e.role&&(e.content??[]).some(e=>"text"===e.type)}function ik({messages:e,streamingMessage:t,scrollContainer:o,messageRefs:s,onWidthChange:i,virtualizer:a}){var l;let[d,c]=(0,r.useState)(0),[p,u]=(0,r.useState)(1),[h,g]=(0,r.useState)(!1),[m,f]=(0,r.useState)([]),[x,k]=(0,r.useState)(!1),[v,y]=(0,r.useState)(null),[b,w]=(0,r.useState)(0),j=(0,r.useRef)(!1),S=(0,r.useRef)(null),C=(0,r.useMemo)(()=>t?[...e,t]:e,[e,t]),T=(0,r.useRef)(C);T.current=C;let R=(0,r.useCallback)(()=>{let e=o.current;if(!e)return;let t=e.scrollHeight,n=e.clientHeight,r=t-n;g(r>20),r<=0?(c(0),u(1)):(c(e.scrollTop/r),u(n/t))},[o]),z=(0,r.useRef)(null),I=(0,r.useRef)([]),M=(0,r.useRef)(a);M.current=a;let P=(0,r.useCallback)(()=>{z.current||(z.current=setTimeout(()=>{z.current=null;let e=o.current;if(!e)return;let t=e.scrollHeight;if(t<=0)return;let n=[],r=T.current,i=M.current;if(i){if(0>=i.totalHeight())return;let e=0;for(let o=0;o<r.length;o++){let s=r[o];if("user"!==s.role&&"assistant"!==s.role)continue;if(!ix(s)){e+=1;continue}let a=i.refToItemIndex(e);if(e+=1,void 0===a)continue;let l=i.getOffsetForIndex(a),d=i.sizeFor(a);n.push({topRatio:l/t,heightRatio:Math.max(d/t,1/t),msg:s,index:n.length})}}else{let o=s.current,i=0;for(let s=0;s<r.length;s++){let a=r[s];if("user"!==a.role&&"assistant"!==a.role)continue;let l=o?.[i];if(i++,ix(a)&&l){let o=l.getBoundingClientRect(),r=e.getBoundingClientRect(),s=o.top-r.top+e.scrollTop,i=o.height;n.push({topRatio:s/t,heightRatio:i/t,msg:a,index:n.length})}}}let a=I.current;a.length===n.length&&n.every((e,t)=>1e-6>Math.abs(e.topRatio-a[t].topRatio)&&1e-6>Math.abs(e.heightRatio-a[t].heightRatio))||(I.current=n,f(n))},150))},[o,s]);(0,r.useEffect)(()=>{let e=o.current;if(e)return e.addEventListener("scroll",R,{passive:!0}),()=>e.removeEventListener("scroll",R)},[o,R]),(0,r.useEffect)(()=>{let e=o.current;if(!e)return;let t=()=>{R(),P()},n=new ResizeObserver(t);return n.observe(e),e.firstElementChild&&n.observe(e.firstElementChild),t(),()=>{n.disconnect(),z.current&&(clearTimeout(z.current),z.current=null)}},[o,P,R]),(0,r.useEffect)(()=>{let e=setTimeout(()=>{R(),P()},50);return()=>clearTimeout(e)},[e.length,P,R]);let E=(0,r.useCallback)(e=>{let t=o.current;if(!t)return;let n=t.scrollHeight-t.clientHeight;n<=0||(t.scrollTop=Math.max(0,Math.min(1-p,e))/(1-p)*n)},[o,p]),F=(0,r.useCallback)(e=>{if(!h)return;j.current=!0;let t=e.currentTarget.getBoundingClientRect(),o=(e.clientY-t.top)/t.height,n=o-d*(1-p),r=n>=0&&n<=p?n:p/2;E(o-r);let s=e=>{j.current&&E((e.clientY-t.top)/t.height-r)},i=()=>{j.current=!1,window.removeEventListener("mousemove",s),window.removeEventListener("mouseup",i)};window.addEventListener("mousemove",s),window.addEventListener("mouseup",i)},[h,p,d,E]);(0,r.useEffect)(()=>{if(!h)return void w(0);let e=S.current;if(!e)return;let t=()=>w(e.clientHeight),o=new ResizeObserver(t);return o.observe(e),t(),()=>o.disconnect()},[h]);let D=(0,r.useMemo)(()=>{if(b<=0)return[];let e=[];return m.map(t=>{let o=t.topRatio*b,n=Math.max(3,Math.min(46,t.heightRatio*b)),r=Math.max(0,o-n/2),s=Math.min(b,o+n/2),i=e.findIndex(e=>r>=e+1);return -1===i?(i=e.length,e.push(s)):e[i]=s,{...t,displayTopPx:o,lane:i}})},[m,b]),W=Math.max(18,4+5*(l=(0,r.useMemo)(()=>D.reduce((e,t)=>Math.max(e,t.lane+1),1),[D]))+(l-1)*1);if((0,r.useEffect)(()=>{i?.(h?W:18)},[W,i,h]),(0,r.useEffect)(()=>()=>i?.(18),[i]),!h)return null;let A=d*(1-p)*100,N=100*p,$=null!==v&&D.length>0?D.reduce((e,t)=>Math.abs(t.displayTopPx/b-v)<Math.abs(D[e].displayTopPx/b-v)?t.index:e,0):null,L=null===$?null:D.find(e=>e.index===$)??null;return(0,n.jsxs)("div",{ref:S,onMouseDown:F,onMouseEnter:()=>k(!0),onMouseLeave:()=>{k(!1),y(null)},onMouseMove:e=>{let t=e.currentTarget.getBoundingClientRect();y((e.clientY-t.top)/t.height)},style:{width:W,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:`${N}%`,background:"color-mix(in srgb, var(--text-muted) 14%, transparent)",pointerEvents:"none",zIndex:1}}),D.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),o=x&&L?.index===e.index,r="user"===e.msg.role,s=Math.max(3,Math.min(46,e.heightRatio*b)),i=2+6*e.lane;return(0,n.jsx)("div",{style:{position:"absolute",top:e.displayTopPx,transform:"translateY(-50%)",left:i,width:5,height:s,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:o?1:r?.92:.72,transition:"opacity 0.1s, filter 0.1s",filter:o?"brightness(1.2)":"none"}})},e.index)}),x&&L&&(()=>{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??[],o=t.filter(e=>"text"===e.type).map(e=>e.text).join(" ");if(o)return im(o).slice(0,200);let n=t.filter(e=>"thinking"===e.type).map(e=>im(e.thinking??"")).filter(Boolean).join(" ");if(n)return n.slice(0,200);let r=t.filter(e=>"toolCall"===e.type).map(e=>e.toolName);if(r.length)return r.join(", ")}return""}(L.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)"}(L.msg),o=Math.max(1,Math.min(5,Math.floor(b/120))),r=15*o+4,s=Math.max(r/2,Math.min(b-r/2,L.displayTopPx));return(0,n.jsx)("div",{style:{position:"absolute",top:s,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:o,overflow:"hidden",overflowWrap:"anywhere"},children:e})})})()]})}function iv(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function iy(e){return function(e,t={}){if("assistant"!==e.role)return e;let o=e.content;if(!Array.isArray(o))return e;let n=o.map(e=>(function(e,t={}){if(!iv(e)||"toolCall"!==e.type)return null;let o={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=iv(e.customInput)?e.customInput:null,o=t&&"string"==typeof t.property?t.property:null,n=iv(e.arguments)?e.arguments:null;return o&&n&&"string"==typeof n[o]?n[o]:void 0}(e):void 0;return void 0===n?o:{...o,rawInput:n}})(e,t)??e);return{...e,content:n}}(e)}class ib extends Error{constructor(e,t,o,n){super(e),this.status=t,this.code=o,this.accepted=n,this.name="AgentCommandError"}}class iw extends Error{constructor(e,t,o){super(e),this.commandType=t,this.timeoutMs=o,this.name="AgentCommandTimeoutError"}}let ij=new Set(["compact","bash"]);async function iS(e,t,o={}){let n,r=function(e,t){if(void 0!==t.timeoutMs)return t.timeoutMs;let o="string"==typeof e.type?e.type:"";return 3e4*!ij.has(o)}(t,o),s=r>0?new AbortController:void 0,i=s?setTimeout(()=>s.abort(),r):void 0;try{n=await fetch(`/api/agent/${encodeURIComponent(e)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t),...s?{signal:s.signal}:{}})}catch(e){if(s?.signal.aborted)throw new iw(`Agent command "${String(t.type??"unknown")}" timed out after ${r}ms`,String(t.type??"unknown"),r);throw e}finally{i&&clearTimeout(i)}let a=await n.json().catch(()=>({}));if(!n.ok||a.error)throw new ib(a.error??`HTTP ${n.status}`,n.status,a.code,a.accepted);return a.data}var iC=o(14755);function iT(e){if(!e)return 0;let t=0;for(let o of e){let e=o.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 iR(){return"u">typeof performance?performance.now():Date.now()}function iz(e,t){switch(t.type){case"start":return{isStreaming:!0,streamingMessage:null};case"update":return{isStreaming:!0,streamingMessage:t.message};case"end":case"reset":return{isStreaming:!1,streamingMessage:null};default:return e}}function iI(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 iM(e,t){return e.length===t.length&&e.every((e,o)=>e===t[o])}function iP(e){return{steering:e?.steering??[],followUp:e?.followUp??[]}}let iE=`You are in PLAN MODE. Work as a read-only planning assistant.
28
28
  - Analyze, read, search and reason about the codebase; do NOT modify any files.
29
29
  - Do NOT run shell commands that mutate state, install packages, or start servers.
30
30
  - When you have enough understanding, produce a concrete, step-by-step implementation plan.
@@ -33,8 +33,8 @@ ${e}`;(0,r.useEffect)(()=>{if(!a||t)return;let n=!1;return g(null),(async()=>{le
33
33
 
34
34
  Goal: ${o}`:e_)}return t.join("\n\n")}({collaborationMode:ew.current,tokenMode:ej.current,goalText:"goal"===ew.current?eT.current??void 0:void 0}),c=d||!eu.current||a?"":iE,p=d||c,u=[ew.current,ej.current,eu.current?"legacy-plan":"",p?String(p.length):""].join("|"),g=t?.id??"new";p&&(eR.current.sessionKey!==g||eR.current.signature!==u)?(eR.current={sessionKey:g,signature:u},s=`${p}
35
35
 
36
- ${o}`):s=o;let m=s,f=r?.map(e=>({type:"image",source:{type:"base64",media_type:e.mimeType,data:e.data}})),x={role:"user",content:f?.length?[...o.trim()?[{type:"text",text:o}]:[],...f]:o,timestamp:Date.now()};S(e=>[...e,x]),ol.current=iO(x),oa.current=l,"goal"!==ew.current||a||(eT.current=i,eF(e=>({...e,status:"running",goalText:i,turnsUsed:0,noProgressTurns:0,tokensUsed:0})),eK.current=!0),tX.current=!0,O(!0),ts(a?{kind:"running_command"}:{kind:"waiting_model"}),E({type:"start"}),t7.current=!0,ta(!0),t9.current=!0;let k=r?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType})),v=null,y=!1;try{if(h&&n){let e=tY.current??await os.current,t=e??await oz();if(t){v=t,oR(1,o),en&&(e3(en),e&&await iS(t,{type:"set_model",provider:en.provider,modelId:en.modelId}));let n=await Promise.race([oF(t).then(()=>!0).catch(()=>!1),iA(4e3).then(()=>!1)]);y=!0,await iS(t,{type:"prompt",message:m,...k?.length?{images:k}:{}}),n||o_(t,l),"goal"!==ew.current||a||iS(t,{type:"goal_start",goalText:i}).catch(()=>{})}else throw Error("Unable to create a session for this message")}else if(t){v=t.id;let e=await Promise.race([oF(t.id).then(()=>!0).catch(()=>!1),iA(4e3).then(()=>!1)]);y=!0,await iS(t.id,{type:"prompt",message:m,...k?.length?{images:k}:{}}),e||o_(t.id,l),"goal"!==ew.current||a||iS(t.id,{type:"goal_start",goalText:i}).catch(()=>{})}a&&v&&o_(v,l)}catch(t){if(console.error("Failed to send message:",t),y&&v)return void o_(v,l);if(tQ.current=!1,oP(),t instanceof iW){let e=ol.current;e&&S(t=>{let o=t[t.length-1];return o?.role==="user"&&iO(o)===e?t.slice(0,-1):t}),oA({type:"error",message:t.message})}else{let o=ol.current;o&&S(e=>{let t=e[e.length-1];return t?.role==="user"&&iO(t)===o?e.slice(0,-1):e}),e.chatInputRef?.current?.replaceMessage?.(x),oA({type:"error",message:`Failed to send message: ${t instanceof Error?t.message:String(t)}`})}ol.current=null,tX.current=!1,O(!1),ts(null),E({type:"end"})}},[h,n,en,t,oz,oF,oR,o_,oA,oM,oP,of]),oJ=(0,r.useCallback)(async(o,n)=>{if(tX.current||t4.current)return;let r=`${n?"!!":"!"}${o}`;t4.current=!0,_({command:o,excludeFromContext:n}),B(!0);try{let e=tY.current??t?.id??await oz();if(!e)throw Error("Unable to create a session for the shell command");oR(1,r),await iS(e,{type:"bash",command:o,excludeFromContext:n}),await oS(e)}catch(t){console.error("Failed to execute shell command:",t),oA({type:"error",message:t instanceof Error?t.message:String(t)}),e.chatInputRef?.current?.insertIfEmpty(r)}finally{t4.current=!1,_(null),B(!1)}},[oA,oz,oS,e.chatInputRef,oR,t]),oY=(0,r.useCallback)(async()=>{let e=tY.current;if(e)try{await iS(e,{type:t4.current?"abort_bash":"abort"})}catch(e){console.error("Failed to abort:",e)}},[]),oX=(0,r.useCallback)(async e=>{let t=tY.current;if(t){e4(e);try{let{cancelled:o,newSessionId:n}=await iS(t,{type:"fork",entryId:e})??{};!o&&n&&a?.(n)}catch(e){console.error("Fork failed:",e)}finally{e4(null)}}},[a]),oZ=(0,r.useCallback)(async e=>{let t=tY.current;t&&(iS(t,{type:"navigate_tree",targetId:e}).catch(()=>{}),w(e),await oC(t,e))},[oC]),oQ=(0,r.useCallback)(async e=>{w(e);let t=tY.current;t&&(await oC(t,e),e&&iS(t,{type:"navigate_tree",targetId:e}).catch(()=>{}))},[oC]),o0=(0,r.useCallback)(async(e,t)=>{if(h){let o={provider:e,modelId:t};oh.current=o,er(o),e3(o);let n=tY.current??await os.current;if(!n)return;try{await iS(n,{type:"set_model",provider:e,modelId:t})}catch(e){console.error("Failed to set model:",e)}return}let o=tY.current;if(!o)return;let n=++od.current,r=e6??m?.context.model??null;e8({provider:e,modelId:t});try{await iS(o,{type:"set_model",provider:e,modelId:t})}catch(o){console.error("Failed to set model:",o),od.current===n&&(e8(r&&(r.provider!==e||r.modelId!==t)?r:null),oA({type:"error",message:o instanceof Error?o.message:String(o)}))}},[oA,e6,m?.context.model,h,er]),o1=(0,r.useCallback)(async()=>{let e=tY.current;if(e&&!e7){e9(!0),tt(null),tn(null);try{let t=await iS(e,{type:"compact"});tn(iH(t,"manual")),await oS(e,!0)}catch(e){tt(e instanceof Error?e.message:String(e)),tn(null)}finally{e9(!1)}}},[e7,oS]),o2=(0,r.useCallback)(async e=>{let o=++oc.current,r=n??t?.cwd??"",s=r?`/api/models?cwd=${encodeURIComponent(r)}`:"/api/models",i=op.current;i?.abort();let a=new AbortController;op.current=a;let l=()=>a.abort();e?.aborted?a.abort():e?.addEventListener("abort",l,{once:!0});try{let e=await fetch(s,{signal:a.signal});if(!e.ok){let t=`HTTP ${e.status}`;try{let o=await e.json();o?.error&&(t=o.error)}catch{}throw Error(t)}let t=await e.json();if(o!==oc.current||g!==ou.current)return;eo(null),V(t.models),Y(t.thinkingLevels??{}),Z(t.thinkingLevelMaps??{}),ee(t.modelScopeWarnings??[]);let n=t.modelList??[];if(G(n),h&&!tY.current){let e=(t.defaultModel?n.find(e=>e.id===t.defaultModel?.modelId&&e.provider===t.defaultModel?.provider):void 0)??n[0];ei(e?{provider:e.provider,modelId:e.id}:null);let o=e?t.thinkingLevelPins?.[`${e.provider}/${e.id}`]:void 0;null===og.current&&eJ(o??"auto")}}catch(e){if(a.signal.aborted||o!==oc.current||g!==ou.current)return;eo(e instanceof Error?e.message:String(e))}finally{e?.removeEventListener("abort",l),op.current===a&&(op.current=null)}},[h,g,n,t?.cwd]),o4=(0,r.useCallback)(async e=>{if(!e.startsWith("/"))return{handled:!1};let t=e.match(/^\/([^\s]+)(?:\s+([\s\S]*))?$/);if(!t)return{handled:!1};let[,o,n=""]=t,r=n.trim(),s=tY.current??await oz(),i=e=>(e.handled&&(e.error?oA({type:"error",message:e.error}):"openSessionStats"!==e.action&&oA({type:"success",message:e.message??"Command completed"})),e);try{switch(o){case"compact":{if(!s||e7)return i({handled:!0,error:"No active session to compact"});e9(!0),tt(null),tn(null);let e=await iS(s,{type:"compact",...r?{customInstructions:r}:{}});return tn(iH(e,"manual")),await oS(s,!0)&&oR(),i({handled:!0,message:"Compacted context"})}case"reload":if(!s)return i({handled:!0,error:"No active session to reload"});return await iS(s,{type:"reload"}),await Promise.all([oS(s,!1,!0),oT(s),oI(),o2()]),i({handled:!0,message:"Reloaded session resources"});case"name":if(!s)return i({handled:!0,error:"No active session to name"});if(!r)return i({handled:!0,error:"Usage: /name <name>"});return await iS(s,{type:"set_session_name",name:eq(r)}),await oS(s)&&oR(),i({handled:!0,message:`Session renamed to ${r}`});case"session":{if(!s)return i({handled:!0,error:"No active session"});let e=await iS(s,{type:"get_session_stats"});return e&&tm(e),p?.(),i({handled:!0,action:"openSessionStats"})}case"copy":{if(!s)return i({handled:!0,error:"No active session"});let e=await iS(s,{type:"get_last_assistant_text"}),t=e?.text??"";if(!t)return i({handled:!0,error:"No assistant message to copy"});return await navigator.clipboard.writeText(t),i({handled:!0,message:"Copied last assistant message"})}default:return{handled:!1}}}catch(e){return i({handled:!0,error:e instanceof Error?e.message:String(e)})}finally{"compact"===o&&e9(!1)}},[oA,oz,e7,o2,oS,oI,oT,oR,p]),o6=(0,r.useCallback)(async e=>{let t=!1;try{let o=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(o.ok){let e=await o.json(),n=e.state;if(e.running&&n&&(n.isStreaming||n.isPromptRunning||n.isBashRunning||n.isCompacting))return;t=!0}}catch{}if(t){tX.current=!1,O(!1),ts(null);return}o_(e)},[o_]),o8=(0,r.useCallback)(async(e,t)=>{let o=tY.current;if(!o)return;let n=t?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}));tX.current=!0,O(!0),ts(e=>e??{kind:"waiting_model"});try{await iS(o,{type:"steer",message:e,...n?.length?{images:n}:{}})}catch(e){console.error("Failed to steer:",e),o6(o)}},[o6]),o5=(0,r.useCallback)(async(e,t,o)=>{let n=tY.current;if(!n)return;let r=o?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}));tX.current=!0,O(!0),ts(e=>e??{kind:"waiting_model"});try{await iS(n,{type:"prompt",message:e,streamingBehavior:t,...r?.length?{images:r}:{}})}catch(e){console.error("Failed to queue prompt:",e),o6(n)}},[o6]),o3=(0,r.useCallback)(async(e,t)=>{let o=tY.current;if(!o)return;let n=t?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}));tX.current=!0,O(!0),ts(e=>e??{kind:"waiting_model"});try{await iS(o,{type:"follow_up",message:e,...n?.length?{images:n}:{}})}catch(e){console.error("Failed to follow up:",e),o6(o)}},[o6]),o7=(0,r.useCallback)(async()=>{let e=tY.current;if(e)try{await iS(e,{type:"abort_compaction"})}catch(e){console.error("Failed to abort compaction:",e)}},[]),o9=(0,r.useCallback)(async()=>{let t=tY.current;if(t)try{let o=await iS(t,{type:"clear_queue"});tT({steering:[],followUp:[]});let n=[...o?.steering??[],...o?.followUp??[]];n.length>0&&e.chatInputRef?.current?.prependText(n.join("\n\n"))}catch(e){console.error("Failed to recall queued messages:",e),oA({type:"error",message:"Failed to recall queued messages"})}},[e.chatInputRef,oA,tT]);(0,r.useEffect)(()=>{0===tR.length&&tP(!1)},[tR.length]);let ne=(0,r.useCallback)(async(e,t,o=!1)=>{let n=tY.current;if(!n)return tR;try{let r=await iS(n,{type:"resolve_recovery",keep:e,discard:t,continueRun:o}),s=r?.remaining??[];return tI(s),o&&e.length>0&&(async()=>{try{let e=await fetch(`/api/agent/${encodeURIComponent(n)}`);if(!e.ok)return;let t=await e.json(),o=t.state;if(!t.running||!o||!o.isStreaming&&!o.isPromptRunning)return;tZ.current=!!o.isStreaming,tQ.current=!!o.isPromptRunning,tX.current=!0,O(!0),ts(iI(o)),E({type:"start"}),oE(n),!o.isStreaming&&o.isPromptRunning&&o_(n)}catch{}})(),s}catch(e){return console.error("Failed to resolve queued message recovery:",e),oA({type:"error",message:"Failed to resolve queued message recovery"}),tR}},[tR,oA,oE,o_,tI]),nt=(0,r.useCallback)(async()=>{let e=tY.current;if(!e)return null;try{return await iS(e,{type:"export_queue"})}catch(e){return console.error("Failed to export queue:",e),oA({type:"error",message:"Failed to export queue"}),null}},[oA]),no=(0,r.useCallback)(async e=>{let t=tY.current;if(!t)return null;try{let o=await iS(t,{type:"import_queue",entries:e});return o&&tT(iP(o)),o?.imported??0}catch(e){return console.error("Failed to import queue:",e),oA({type:"error",message:"Failed to import queue"}),null}},[oA,tT]),nn=(0,r.useCallback)(async e=>{let t=tY.current;if(!t)return null;try{let o=await iS(t,{type:"stage_recovery",entries:e});return o?.pendingRecovery&&tI(o.pendingRecovery),(o?.staged??0)>0&&tP(!0),o?.staged??0}catch(e){return console.error("Failed to stage imported queue:",e),oA({type:"error",message:"Failed to stage imported queue"}),null}},[oA,tI]),nr=(0,r.useCallback)(async(e,t,o)=>{let n=tY.current;if(!n)return!1;try{let r=await iS(n,{type:"move_queue",kind:e,fromIndex:t,toIndex:o});return r&&tT(iP(r)),!0}catch(e){return console.error("Failed to move queued message:",e),oA({type:"error",message:e instanceof Error?e.message:"Failed to move queued message"}),!1}},[oA,tT]),ns=(0,r.useCallback)(async(e,t)=>{let o=tY.current;if(!o)return null;try{let n=await iS(o,{type:"recall_queue_item",kind:e,index:t});return n&&(void 0!==n.steering||void 0!==n.followUp)&&tT(iP(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),oA({type:"error",message:e instanceof Error?e.message:"Failed to recall queued message"}),null}},[oA,tT]),ni=(0,r.useCallback)(async(e,t,o,n)=>{let r=tY.current;if(!r)return!1;try{let s=await iS(r,{type:"requeue_at",kind:e,index:t,text:o,images:n?.map(({data:e,mimeType:t})=>({type:"image",data:e,mimeType:t}))});return s&&tT(iP(s)),!0}catch(e){return console.error("Failed to requeue message:",e),oA({type:"error",message:e instanceof Error?e.message:"Failed to requeue message"}),!1}},[oA,tT]),na=(0,r.useCallback)(async(e,t)=>{let o=tY.current;if(!o)return!1;try{let n=await iS(o,{type:"remove_queue_item",kind:e,index:t});return n&&tT(iP(n)),!0}catch(e){return console.error("Failed to remove queued message:",e),oA({type:"error",message:e instanceof Error?e.message:"Failed to remove queued message"}),!1}},[oA,tT]),nl=(0,r.useCallback)(async e=>{if(og.current="auto"===e?null:e,eJ(e),"auto"===e)return;let t=tY.current??await os.current;if(t)try{await iS(t,{type:"set_thinking_level",level:e})}catch(e){console.error("Failed to set thinking level:",e)}},[]),nd=(0,r.useCallback)(async e=>{let t=(0,iC.xG)(e);ok(e);let o=tY.current??await os.current;if(o)try{await iS(o,{type:"set_tools",toolNames:t})}catch(e){console.error("Failed to set tools:",e)}},[ok]),nc=(0,r.useRef)(0),np=(0,r.useCallback)(async e=>{let t=tY.current??await os.current,o=++nc.current;if(e){if(ep.current="plan"===ea?"default":ea,ec(!0),eu.current=!0,eR.current={sessionKey:"",signature:""},t)try{if(await iS(t,{type:"prompt",message:"/plan"}),nc.current!==o)return}catch(e){if(nc.current!==o)return;console.error("Failed to enter plan mode:",e)}}else if(ec(!1),eu.current=!1,eR.current={sessionKey:"",signature:""},t){try{if(await iS(t,{type:"prompt",message:"/plan exit"}),nc.current!==o)return}catch(e){if(nc.current!==o)return;console.error("Failed to exit plan mode:",e)}if(nc.current!==o)return;try{let e=ep.current;await iS(t,{type:"set_tools",toolNames:(0,iC.xG)(e)})}catch(e){console.error("Failed to restore tools after plan exit:",e)}}},[ea]),nu=(0,r.useCallback)(e=>{eg(e);let t=tY.current;if(!t){em.current=e;return}em.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)})},[]),nm=(0,r.useCallback)(e=>{if(nu({...ez.current,collaborationMode:eN(e)}),ew.current=eN(e),eR.current={sessionKey:"",signature:""},"goal"!==e){eT.current=null,eK.current=!1,eF(e=>"idle"===e.status?e:{...e,status:"idle",goalText:null});let e=tY.current;e&&iS(e,{type:"goal_stop"}).catch(()=>{})}},[nu]),nf=(0,r.useCallback)(async e=>{nu({...ez.current,tokenMode:e$(e)});let t=tY.current??await os.current;if(t)try{if("economy"!==e||eu.current){if("economy"!==e){let e=eu.current?iC.SC:(0,iC.xG)("plan"===ea?"default":ea);await iS(t,{type:"set_tools",toolNames:e})}}else await iS(t,{type:"set_tools",toolNames:[...eO]})}catch(e){console.error("Failed to apply token mode tools:",e)}},[nu,ea]),nx=(0,r.useCallback)(async e=>{nu({...ez.current,toolApprovalMode:eL(e)});let t=tY.current??await os.current;if(t)try{await iS(t,{type:"set_approval_mode",mode:eL(e)})}catch(e){console.error("Failed to apply approval mode:",e)}},[nu]),nk=(0,r.useCallback)(async e=>{nu({...ez.current,permissionRules:e});let t=tY.current??await os.current;if(t)try{await iS(t,{type:"set_approval_policy",policy:e})}catch(e){console.error("Failed to apply permission rules:",e)}},[nu]),nv=(0,r.useCallback)(async(e,t,o)=>{let n=tY.current;if(n)try{await iS(n,{type:"resolve_approval",id:e,approve:t,reason:o})}catch(e){console.error("Failed to resolve approval:",e)}finally{eM(t=>t.filter(t=>t.id!==e))}},[]),ny=(0,r.useCallback)(e=>{eT.current=e},[]),nb=(0,r.useCallback)(e=>{let t=e.trim();if(!t)return;eT.current=t,eF(e=>({...e,status:"running",goalText:t,turnsUsed:0,noProgressTurns:0,tokensUsed:0,startedAt:Date.now()}));let o=tY.current;o&&iS(o,{type:"goal_start",goalText:t}).catch(()=>{})},[]),nw=(0,r.useCallback)(()=>{if("running"!==eV.current.status)return;eF(e=>({...e,status:"paused"}));let e=tY.current;e&&iS(e,{type:"goal_pause"}).catch(()=>{})},[]),nj=(0,r.useCallback)(()=>{let e=eV.current;if("paused"!==e.status&&"blocked"!==e.status)return;eF(e=>({...e,status:"running"}));let t=tY.current;t&&iS(t,{type:"goal_resume"}).catch(()=>{})},[]),nS=(0,r.useCallback)(()=>{eK.current=!1,eT.current=null,eF(e=>({...e,status:"idle",goalText:null,turnsUsed:0,noProgressTurns:0}));let e=tY.current;e&&iS(e,{type:"goal_stop"}).catch(()=>{})},[]),nC=(0,r.useCallback)(e=>{let t=e.trim();if(!t)return;eF(e=>({...e,goalText:t}));let o=tY.current;o&&iS(o,{type:"goal_edit",goalText:t}).catch(()=>{})},[]),nT=tE.map(e=>`${e.id}:${e.status}:${e.completedAt??""}`).join("|"),nR=(0,r.useRef)(tE);nR.current=tE,(0,r.useEffect)(()=>{u?.(nR.current)},[nT,u]),(0,r.useEffect)(()=>()=>{u?.([])},[u]),(0,r.useEffect)(()=>{tA(()=>[])},[t?.id,n??t?.cwd]);let nz=(0,r.useCallback)(()=>{let e=or.current,t=t3.current;if(!e||!t)return;let o=t.getBoundingClientRect().top-e.getBoundingClientRect().top+e.scrollTop,n=Math.max(0,e.scrollHeight-e.clientHeight),r=Math.min(Math.max(0,o-16),n);oe.current=r>=n-150,oo.current=Date.now()+700,e.scrollTo({top:r,behavior:"smooth"})},[]),nI=(0,r.useCallback)(e=>{if(e instanceof KeyboardEvent){if(!iD.has(e.key)||e.target instanceof Element&&e.target.closest("input, textarea, [contenteditable='true']"))return}else if(e instanceof PointerEvent){let t=or.current;if(t&&e.target instanceof Element&&!t.contains(e.target))return}ot.current=Date.now()+1200},[]),nM=(0,r.useCallback)(()=>{let e=or.current;if(e){let{scrollTop:t,clientHeight:o,scrollHeight:n}=e;oe.current=t+o>=n-150}if(Date.now()<ot.current){t9.current=!1;return}Date.now()<oo.current||(t9.current=!1)},[]);(0,r.useEffect)(()=>{if(t1.current=!0,t){tY.current=t.id;let e=eS.current,o=eC.current;("auto"!==e||o.allow.length||o.ask.length||o.deny.length)&&(iS(t.id,{type:"set_approval_mode",mode:e}).catch(()=>{}),iS(t.id,{type:"set_approval_policy",policy:o}).catch(()=>{}));let n=e=>{!t6.current&&(t6.current=!0,e.isBashRunning&&(t4.current=!0,B(!0)),oT(t.id),(e.isStreaming||e.isPromptRunning)&&(tZ.current=!!e.isStreaming,tQ.current=!!e.isPromptRunning,tX.current=!0,O(!0),ts(iI(e)),E({type:"start"}),oE(t.id),!e.isStreaming&&e.isPromptRunning&&o_(t.id)))};(async()=>{try{let e,o=new AbortController,r=setTimeout(()=>o.abort(),2e4);try{e=await fetch(`/api/sessions/${encodeURIComponent(t.id)}/state`,{signal:o.signal})}finally{clearTimeout(r)}if(!e.ok)throw Error(`HTTP ${e.status}`);let s=await e.json();if(!t1.current||tY.current!==t.id)return;s.running&&s.state&&n(s.state)}catch{}})(),oS(t.id,!0,!0).then(e=>{e?.running&&e.state&&n(e.state),e?.state&&(void 0!==e.state.isCompacting&&e9(e.state.isCompacting),void 0!==e.state.contextUsage&&eQ(e.state.contextUsage??null),void 0!==e.state.systemPrompt&&e1(e.state.systemPrompt??null),void 0!==e.state.thinkingLevel&&eJ(e.state.thinkingLevel??"auto"),void 0!==e.state.extensionStatuses&&tb(e.state.extensionStatuses??[]),void 0!==e.state.extensionWidgets&&tj(e.state.extensionWidgets??[]),void 0!==e.state.queuedMessages&&tT(iP(e.state.queuedMessages)),void 0!==e.state.pendingRecovery&&tI(e.state.pendingRecovery??[])),e?.running||(async()=>{for(let e=0;e<5;e++){if(e>0&&await new Promise(e=>setTimeout(e,2e3)),!t1.current||tY.current!==t.id||tX.current)return;try{let e=await fetch(`/api/agent/${encodeURIComponent(t.id)}`);if(!e.ok)continue;let o=await e.json();if(!t1.current||tY.current!==t.id)return;if(o?.running&&o.state)return void n(o.state)}catch{}}})()})}return()=>{t1.current=!1,of(),tU(),oM(),oP()}},[of]),(0,r.useEffect)(()=>{c?.(e0)},[e0,c]),(0,r.useEffect)(()=>{d&&d(m?.tree??[],b,oQ)},[m?.tree,b,oQ,d]),(0,r.useEffect)(()=>(window.addEventListener("keydown",nI),window.addEventListener("pointerdown",nI,{passive:!0}),()=>{window.removeEventListener("keydown",nI),window.removeEventListener("pointerdown",nI)}),[nI]),(0,r.useEffect)(()=>{let e=or.current;if(e)return e.addEventListener("wheel",nI,{passive:!0}),e.addEventListener("touchstart",nI,{passive:!0}),e.addEventListener("scroll",nM,{passive:!0}),()=>{e.removeEventListener("wheel",nI),e.removeEventListener("touchstart",nI),e.removeEventListener("scroll",nM)}},[j.length,x,nM,nI]),(0,r.useEffect)(()=>{j.length>0&&(t7.current?(t5.current=!0,t3.current&&(t7.current=!1,nz())):x||!t5.current?(x||(t5.current=!0),oV("instant")):!tX.current&&(t9.current||oe.current)&&oV("smooth"))},[j.length,x,L,oV,nz]);let nP=(0,r.useRef)(null),nE=t?.id??null;(0,r.useEffect)(()=>{let e;if(x){nP.current=null;return}if(0===j.length||nP.current===nE)return;nP.current=nE;let t=!1,o=!1,n=-1,r=0,s=Date.now(),i=()=>{if(t||o)return;let a=or.current;if(a){if(Date.now()<ot.current){let{scrollTop:e,clientHeight:t,scrollHeight:n}=a;if(e+t<n-150){o=!0;return}}if(oV("instant"),a.scrollHeight===n){if((r+=1)>=4||Date.now()-s>=3e4)return}else if(n=a.scrollHeight,r=0,Date.now()-s>=3e4)return;e=window.setTimeout(i,r>0?500:250)}};return e=window.setTimeout(i,250),()=>{t=!0,void 0!==e&&window.clearTimeout(e)}},[x,oV,nE]),(0,r.useEffect)(()=>{let e=new AbortController;return o2(e.signal).catch(e=>{if(e instanceof DOMException&&"AbortError"===e.name)return}),()=>e.abort()},[o2,l]),(0,r.useEffect)(()=>{if(!et)return;let e=()=>{"visible"===document.visibilityState&&o2()};return document.addEventListener("visibilitychange",e),window.addEventListener("online",e),()=>{document.removeEventListener("visibilitychange",e),window.removeEventListener("online",e)}},[et,o2]),(0,r.useEffect)(()=>{if(!te)return;let e=setTimeout(()=>tt(null),3e3);return()=>clearTimeout(e)},[te]),(0,r.useEffect)(()=>{if(!to)return;let e=setTimeout(()=>tn(null),6e3);return()=>clearTimeout(e)},[to]),(0,r.useEffect)(()=>{if(0===tu.visible.length)return;let e=tu.visible.find(e=>e.exiting);if(e){let t=setTimeout(()=>{th({type:"remove",id:e.id})},180);return()=>clearTimeout(t)}if(!tu.visible[0])return;let t=setTimeout(()=>{th({type:"mark_oldest_exiting"})},5e3);return()=>clearTimeout(t)},[tu.visible]),(0,r.useEffect)(()=>{tm(null)},[j.length,eZ?.tokens,eZ?.percent,eZ?.contextWindow]);let nF=m?.tree??[];return{data:m,loading:x,error:v,activeLeafId:b,messages:j,entryIds:C,historyCursor:R,hasEarlierMessages:I,streamState:P,agentRunning:L,bashRunning:H,pendingBash:U,modelNames:q,modelList:K,modelThinkingLevels:J,modelThinkingLevelMaps:X,modelScopeWarnings:Q,modelsError:et,newSessionModel:en,toolPreset:ea,thinkingLevel:eG,retryInfo:eY,contextUsage:eZ,systemPrompt:e0,forkingEntryId:e2,isCompacting:e7,compactError:te,compactResult:to,currentModel:ob,displayModel:ow,sessionStats:oj,tokenRate:F,planMode:ed,subagents:tE,collaborationMode:ek,tokenMode:ev,toolApprovalMode:ey,permissionRules:eb,modeSettings:eh,approvalRequests:eI,handleCollaborationModeChange:nm,handleTokenModeChange:nf,handleToolApprovalModeChange:nx,handlePermissionRulesChange:nk,resolveApproval:nv,setActiveGoalText:ny,goalState:eE,handleGoalStart:nb,handleGoalPause:nw,handleGoalResume:nj,handleGoalStop:nS,handleGoalEdit:nC,slashCommands:tl,slashCommandsLoading:tc,queuedMessages:tS,pendingRecovery:tR,recoveryIsImport:tM,notices:tu.visible,extensionDialog:tf,extensionCustomUi:tk,extensionStatuses:ty,extensionWidgets:tw,respondToExtensionUi:oD,sendExtensionCustomInput:oW,agentPhase:tr,isNew:h,promptAnchorActive:ti,branchTree:nF,sessionIdRef:tY,eventSourceRef:t_,messagesEndRef:on,scrollContainerRef:or,lastUserMsgRef:t3,pendingScrollToUserRef:t7,initialScrollDoneRef:t5,scrollUserMsgToTop:nz,handleSend:oG,executeBash:oJ,handleAbort:oY,handleFork:oX,handleNavigate:oZ,handleModelChange:o0,handleCompact:o1,handleSteer:o8,handleFollowUp:o3,handlePromptWithStreamingBehavior:o5,handleAbortCompaction:o7,handleRecallQueue:o9,resolveRecovery:ne,exportQueueData:nt,importQueueData:no,stageQueueImport:nn,moveQueuedMessage:nr,recallQueuedMessage:ns,requeueAt:ni,removeQueuedMessage:na,handleBuiltinSlashCommand:o4,handleToolPresetChange:nd,handleThinkingLevelChange:nl,handlePlanModeChange:np,loadTools:oT,loadSlashCommands:oI,reloadModels:o2,setActiveLeafId:w,setData:f,setMessages:S,loadContext:oC,dispatch:E,setAgentRunning:O,setForkingEntryId:e4,handleLeafChange:oQ,handleAgentEventRef:t8}}({session:e,newSessionCwd:t,onAgentEnd:A,onSessionCreated:i,onSessionForked:a,modelsRefreshKey:d,chatInputRef:c,onBranchDataChange:p,onSystemPromptChange:u,onSessionStatsPanelOpen:m,onSubagentsChange:g}),[tF,tD]=(0,r.useState)(!1);(0,r.useEffect)(()=>{0===ef.length&&tD(!1)},[ef.length]);let{balance:tW,refresh:tA,refreshSoon:tN}=function(){let[e,t]=(0,r.useState)(null),[o,n]=(0,r.useState)(!1),s=(0,r.useRef)(null),i=(0,r.useRef)(null),a=(0,r.useRef)(!0);(0,r.useEffect)(()=>(a.current=!0,()=>{a.current=!1,i.current&&clearTimeout(i.current),s.current?.abort()}),[]);let l=(0,r.useRef)(null),d=(0,r.useCallback)(async()=>{s.current?.abort();let e=new AbortController;s.current=e;try{let o=await fetch("/api/deepseek/balance",{signal:e.signal,cache:"no-store"}),r=await o.json();if(!a.current)return;if(r?.available&&null!=r.totalBalance){let e=l.current;(null===e||e.available!==r.available||e.reason!==r.reason||e.currency!==r.currency||e.totalBalance!==r.totalBalance||e.grantedBalance!==r.grantedBalance||e.toppedUpBalance!==r.toppedUpBalance)&&(l.current=r,t(r)),n(!1)}else null===l.current&&n(!0)}catch{if(!a.current)return;null===l.current&&n(!0)}},[]),c=(0,r.useCallback)(()=>{i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{i.current=null,d()},2e3)},[d]);return{balance:e,failed:o,refresh:d,refreshSoon:c}}(),t$=ec?.provider==="deepseek",tL=(0,r.useRef)(null);(0,r.useEffect)(()=>{t$&&tA()},[t$,tA]),(0,r.useEffect)(()=>{if(t$)for(let e=U.length-1;e>=0;e--){let t=U[e];if("assistant"!==t.role||!t.usage)continue;let o=`${e}:${_[e]??""}`;o!==tL.current&&(tL.current=o,tN());break}},[U,_,t$,tN]);let tO=(0,r.useMemo)(()=>{let e=U.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:nh(e.model)?ng(e.model,t):0,costUSD:nh(e.model)?0:t.cost?.total??0}},[U]),[tH,tB]=(0,r.useState)(!1),[tU,t_]=(0,r.useState)(null),tq=(0,r.useRef)(!1);(0,r.useEffect)(()=>{if(!tl){tq.current=!1;return}if(V){tq.current=!0;return}tq.current&&(tq.current=!1,t_(function(e){for(let t=e.length-1;t>=0;t--){let o=e[t];if("assistant"!==o.role)continue;let n=o.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 o=e[t];if("toolResult"!==o.role)continue;let n=o.content,r="string"==typeof n?n:Array.isArray(n)?n.map(e=>e.text??"").join("\n"):"";if(!r)continue;let s=r.match(/\*\*Proposed Plan\*\*\s*\n+([\s\S]+)/i);if(s?.[1]?.trim())return s[1].trim()}return null}(U)??null),tB(!0))},[V,tl,U]);let tV=(0,r.useCallback)(()=>{tB(!1);let e=tK.current;"plan"===tc&&tg("normal"),td(!1).then(()=>{e&&eJ(P("tasks.planReviewExecutePrompt",{plan:e}))})},[td,eJ,P,tc,tg]),tK=(0,r.useRef)(null);(0,r.useEffect)(()=>{tK.current=tU},[tU]);let tG=(0,r.useCallback)(e=>{tB(!1),e2(e)},[e2]),tJ=(0,r.useCallback)(()=>{tB(!1),"plan"===tc&&tg("normal"),td(!1)},[td,tc,tg]);(0,r.useEffect)(()=>{ev&&W.current!==ev.id&&(W.current=ev.id,D.current&&E.current())},[ev]),(0,r.useEffect)(()=>(l=V||K?eX:null,()=>void(l=null)),[V,K,eX]);let[tY,tX]=(0,r.useState)(!1),[tZ,tQ]=(0,r.useState)(!1),[t0,t1]=(0,r.useState)(!1),t2=(0,r.useCallback)(()=>{let e=eE.current;if(!e)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight;tX(e.scrollTop>1),tQ(t>1),t1(t>240)},[eE]),t4=(0,r.useCallback)(()=>{window.requestAnimationFrame(()=>{let e=eE.current,t=eP.current;if(!e||!t)return;let o=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+o);e.scrollTo({top:n,behavior:"auto"})};n(),t2(),window.setTimeout(n,200)})},[eP,eE,t2,c]);(0,r.useEffect)(()=>{let e=eE.current;if(!e)return;let t=new ResizeObserver(t2);return t.observe(e),e.firstElementChild&&t.observe(e.firstElementChild),e.addEventListener("scroll",t2,{passive:!0}),t2(),()=>{e.removeEventListener("scroll",t2),t.disconnect()}},[U.length,eE,t2]);let t6=(0,r.useRef)(!1);(0,r.useEffect)(()=>{let t=eE.current;if(!t)return;let o=()=>{if(t6.current||!tP||!tM||t.scrollTop>8)return;let o=e?.id;if(!o)return;t6.current=!0;let n=t.scrollHeight-t.scrollTop;tE(o,ez,tM).finally(()=>{t6.current=!1,requestAnimationFrame(()=>{let e=t.scrollHeight-n;Math.abs(t.scrollTop-e)>1&&t.scrollTo({top:e,behavior:"auto"})})})};return t.addEventListener("scroll",o,{passive:!0}),()=>t.removeEventListener("scroll",o)},[eE,tM,tP,tE,e?.id,ez]);let t8=(0,r.useRef)(null),t5=(0,r.useRef)([]),t3=(0,r.useMemo)(()=>({getOffsetForIndex:e=>t8.current?.getOffsetForIndex(e)?.[0]??0,sizeFor:e=>{let t=t8.current;if(!t)return 0;let o=t.measurementsCache[e];return o?.size??t.options.estimateSize?.(e)??0},totalHeight:()=>t8.current?.getTotalSize()??0,refToItemIndex:e=>t5.current[e],itemCount:t5.current.length}),[]),t7=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,t9=(0,r.useRef)(ep);t9.current=ep,(0,r.useEffect)(()=>{h?.(t9.current)},[t7,h]),(0,r.useEffect)(()=>()=>{h?.(null)},[h]);let oe=es?`${es.percent??"null"}|${es.contextWindow}|${es.tokens??"null"}`:null,ot=(0,r.useRef)(es);ot.current=es,(0,r.useEffect)(()=>{f?.(ot.current)},[oe,f]),(0,r.useEffect)(()=>()=>{f?.(null)},[f]);let{isDragOver:oo,handleDragEnter:on,handleDragOver:or,handleDragLeave:os,handleDrop:oi}=function(e){let[t,o]=(0,r.useState)(!1),n=(0,r.useRef)(0),s=(0,r.useCallback)(e=>{e.dataTransfer.files.length&&(e.preventDefault(),n.current+=1,o(!0))},[]),i=(0,r.useCallback)(e=>{e.dataTransfer.files.length&&e.preventDefault()},[]);return{isDragOver:t,handleDragEnter:s,handleDragOver:i,handleDragLeave:(0,r.useCallback)(()=>{n.current-=1,n.current<=0&&(n.current=0,o(!1))},[]),handleDrop:(0,r.useCallback)(t=>{t.preventDefault(),n.current=0,o(!1),e(Array.from(t.dataTransfer.files),t.dataTransfer)},[e])}}((0,r.useCallback)((e,t)=>{if(V){let t=e.filter(e=>e.type.startsWith("image/"));t.length&&c?.current?.addImages(t);return}c?.current?.addFiles(e,t)},[V,c])),oa=U.filter(e=>"user"===e.role||"assistant"===e.role),ol=(0,r.useMemo)(()=>{let e=new Set,t=[];for(let n=U.length-1;n>=0&&t.length<50;n-=1){var o;let r="user"!==(o=U[n]).role?null:("string"==typeof o.content?o.content:o.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n")).trim()||null;!r||e.has(r)||(e.add(r),t.push(r))}return t},[U]),od=(S=oa.length,(C=(0,r.useRef)([])).current=Array(S).fill(null).map((e,t)=>C.current[t]??null),C),oc=eT&&0===U.length&&!q.isStreaming&&!V,op=e?.cwd??t??void 0,ou=(0,r.useMemo)(()=>(function(e,t,o){let n=new Map;for(let t of e)"toolResult"===t.role&&n.set(t.toolCallId,t);let r=-1;for(let t=e.length-1;t>=0;t--)if("user"===e[t].role){r=t;break}let s=new Map,i=0;e.forEach((e,t)=>{("user"===e.role||"assistant"===e.role)&&s.set(t,i++)});let a=[];for(let r=0;r<e.length;){let s,i=e[r],l="custom"===i.role&&"compaction"===i.customType;if("user"!==i.role&&!l){a.push({kind:"single",idx:r}),r+=1;continue}let d=r,c=d+1;for(;c<e.length&&"user"!==e[c].role;)c+=1;let p=function(e,t,o){for(let r=o-1;r>t;r--){var n;if("assistant"===(n=e[r]).role&&tp(n).answerBlocks.some(e=>"image"===e.type||"text"===e.type&&e.text.trim().length>0))return r}for(let n=o-1;n>t;n--)if(e[n]?.role==="assistant")return n;return -1}(e,d,c);if(-1===p){a.push({kind:"turn",userIdx:d,endIdx:c,startsCompactionTurn:l,finalAssistantIdx:p,visibleProcessIndices:[],processBlocks:[],finalAnswerMessage:null,writtenFiles:void 0}),r=c;continue}let u=[];for(let e=d+1;e<p;e++)u.push(e);let h=u.filter(t=>tb(e[t])),g=e[p],m=tp(g),f=m.processBlocks.length>0?tw(g,m.processBlocks,{omitUsage:!0}):null,x=m.answerBlocks.length>0?tw(g,m.answerBlocks):null,k=tf(e,t,h,n);if(f&&(k=k.concat(tm(g,{messageIndex:p,entryId:t[p],toolResults:n}).processBlocks)),x){let t=[];for(let o=d+1;o<=p;o++){let n=e[o];if(n?.role==="assistant")for(let e of n.content??[])t.push(e)}s=function(e,t,o){let n=new Set,r=[];for(let s of e){if("toolCall"!==s.type||!function(e){let t,o;return"write"===(t=e.toLowerCase())||t.startsWith("write_")||t.endsWith(".write")||t.endsWith("_write")||"edit"===(o=e.toLowerCase())||o.startsWith("edit_")||o.endsWith(".edit")||o.endsWith("_edit")||o.includes("str_replace")||o.includes("replace_editor")}(s.toolName))continue;let e=t?.get(s.toolCallId);if(!e||e.isError)continue;let i=function(e){if(!e)return null;let t=e.file_path??e.path;return"string"==typeof t&&t.length>0?t:null}(s.input);if(!i)continue;let a=function(e,t){let o;if(!e)return null;let n=/^[a-zA-Z]:[\\/]/.test(e)||e.startsWith("\\\\")||void 0!==t&&(/^[a-zA-Z]:[\\/]/.test(t)||t.startsWith("\\\\")),r=e=>n?e.replace(/\\/g,"/"):e,s=r(e),i=t?r(t).replace(/\/+$/,""):void 0,a=/^[a-zA-Z]:\//.test(s),l=s.startsWith("//");if(a||l)o=s;else if(s.startsWith("/")){let e=i?.match(/^([a-zA-Z]:)(?:\/|$)/)?.[1]??i?.match(/^(\/\/[^/]+\/[^/]+)(?:\/|$)/)?.[1];o=e?`${e}${s}`:s}else{if(!i)return null;o=`${i}/${s}`}return tv(o)}(i,o);a&&(n.has(a)||(n.add(a),r.push({filePath:a})))}return r}(t,n,o)}a.push({kind:"turn",userIdx:d,endIdx:c,startsCompactionTurn:l,finalAssistantIdx:p,visibleProcessIndices:h,processBlocks:k,finalAnswerMessage:x,writtenFiles:s}),r=c}return{toolResultsMap:n,lastUserIdx:r,visibleRefIndexByMessage:s,items:a}})(U,_,op),[U,_,op]),oh=ec?X[`${ec.provider}:${ec.modelId}`]??null:null,og=ec?Z[`${ec.provider}:${ec.modelId}`]??null:null,om=(0,r.useCallback)(()=>{et()},[et]),of=(0,r.useCallback)(e=>{td(e),e&&"plan"!==tc?tg("plan"):e||"plan"!==tc||tg("normal")},[td,tg,tc]),ox=(0,r.useCallback)(e=>{tg(e),"plan"!==e||tl?"plan"!==e&&tl&&td(!1):td(!0)},[tg,td,tl]),ok=(0,n.jsx)(s4,{ref:c,onSend:eJ,onBash:eY,tasksBoardEnabled:b,onAbort:eX,onSteer:V?e2:void 0,onFollowUp:V?e4:void 0,onPromptWithStreamingBehavior:V?e6:void 0,isStreaming:V,model:ec,modelNames:J,modelList:Y,modelScopeWarnings:Q,modelsError:ee,onRetryModels:om,onModelChange:e0,compactResult:ed,toolPreset:eo,onToolPresetChange:e||eT?ts:void 0,planMode:tl,onPlanModeChange:of,collaborationMode:tc,tokenMode:tu,toolApprovalMode:th,onCollaborationModeChange:ox,onTokenModeChange:tx,onToolApprovalModeChange:tk,goalState:tS,onGoalStart:tC,onGoalPause:tT,onGoalResume:tR,onGoalStop:tz,thinkingLevel:en,onThinkingLevelChange:e||eT?ti:void 0,availableThinkingLevels:oh,thinkingLevelMap:og,retryInfo:er,queuedMessages:em,inputHistory:ol,onRecallQueue:e5,onMoveQueue:te,onRecallOne:tt,onRequeueAt:to,onRemoveQueueItem:tn,slashCommands:eh,slashCommandsLoading:eg,onLoadSlashCommands:ta,onBuiltinCommand:tr,onAudioUnlock:I,draftKey:e?.id??(t?`new:${t}`:void 0),cwd:e?.cwd??t}),ov=ew.filter(e=>"belowEditor"!==e.placement),oy=ew.filter(e=>"belowEditor"===e.placement),ob=ea?P("desktop.compacting"):function(e,t){if(e?.kind==="running_tools"){let o=e.tools.map(e=>e.name);return 0===o.length?t("desktop.runningTool"):t("desktop.runningTools",{tools:o.length<=3?o.join(", "):`${o.slice(0,2).join(", ")} (+${o.length-2})`})}return e?.kind==="waiting_model"?t("desktop.waitingForModel"):e?.kind==="running_command"?t("desktop.runningCommand"):null}(eC,P);return H?(0,n.jsx)("div",{className:"flex h-full items-center justify-center text-text-muted",children:P("desktop.loadingSession")}):B?(0,n.jsx)("div",{className:"flex h-full items-center justify-center text-red-400",children:B}):(0,n.jsxs)("div",{className:"relative flex h-full min-w-0 flex-col overflow-hidden",onDragEnter:on,onDragOver:or,onDragLeave:os,onDrop:oi,children:[oo&&(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"})]})]})]}),ev&&(0,n.jsx)(iG,{request:ev,onRespond:ej}),ey&&(0,n.jsx)(iJ,{request:ey,onInput:eS}),!eT&&ef.length>0&&!tF&&(0,n.jsx)(s5,{items:ef,sessionId:e?.id,onResolve:e3,onExport:e7,onStageImport:e9,onDismiss:()=>tD(!0),mode:ex?"import":"recovery"}),ty.length>0&&(0,n.jsx)(nY,{request:ty[0]??null,queuedCount:Math.max(0,ty.length-1),busy:!1,onResolve:(e,t)=>{let o=ty[0];o&&tj(o.id,e,t)}}),oc?(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.14.3"]})]}),(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.84.3"]})]})]}),(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:k,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.14.3"]})]}),(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.84.3"]})]})]})]})}),(0,n.jsx)("div",{style:{padding:"0 16px",paddingRight:M?16:34},children:(0,n.jsx)(iK,{notices:ek,align:"right"})}),"goal"===tc&&(0,n.jsx)(nG,{goalState:tS,onPause:tT,onResume:tR,onStop:tz,onEdit:tI}),ok,(0,n.jsx)("div",{style:{padding:"0 16px 6px",paddingRight:M?16:34,marginTop:-15},children:(0,n.jsx)(iu,{onViewFullHistory:v,cwd:op,systemPrompt:y,sessionStats:ep,contextUsage:es,hasSession:!!e,showChat:!0,showSoundLabel:!0,soundEnabled:T,onSoundToggle:R,onCompact:e?e1:void 0,onAbortCompaction:e8,isCompacting:ea,compactError:el,isDeepSeekOfficial:t$,deepseekBalance:tW,lastTurnUsage:tO})})]})}):(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)(iK,{notices:ek,floating:!0,align:"right"})})}),(0,n.jsxs)("div",{className:"relative flex-1 min-h-0 min-w-0",children:[(0,n.jsx)("div",{ref:eE,className:"h-full min-w-0 overflow-x-hidden overflow-y-auto pt-4 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",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.jsx)(iq,{statuses:eb}),(0,n.jsx)(iV,{widgets:ov}),(()=>{let{toolResultsMap:t,lastUserIdx:o,visibleRefIndexByMessage:r,items:s}=ou,i=(s,i={})=>{let a=i.messageOverride??U[s],l="user"===a.role&&s>0&&"assistant"===U[s-1].role?_[s-1]:void 0,d="user"===a.role||"assistant"===a.role,c=r.get(s),p=i.keyPrefix??"message",u=!1;if("assistant"===a.role){u=!0;for(let e=s+1;e<U.length;e++){let t=U[e].role;if("user"===t)break;if("assistant"===t){u=!1;break}}u&&q.isStreaming&&s===U.length-1&&(u=!1)}void 0!==i.showTimestamp&&(u=i.showTimestamp);let h=(0,n.jsx)(ny,{message:a,toolResults:t,modelNames:J,cwd:op,onOpenFile:x,entryId:_[s],onFork:V||eT||0===s&&"user"===a.role?void 0:eZ,forking:ei===_[s],onNavigate:V?void 0:eQ,prevAssistantEntryId:V?void 0:l,onEditContent:N,onQuoteReply:L,onCreateTask:O,showTimestamp:u,prevTimestamp:s>0?U[s-1].timestamp:void 0,sessionId:e?.id??eM.current??void 0,writtenFiles:i.writtenFiles,subagents:w,onOpenSubagent:j},`${p}-view-${s}`);return d&&!1!==i.attachRef&&void 0!==c?(0,n.jsx)("div",{ref:e=>{od.current[c]=e,s===o&&(eF.current=e,e&&eV.current&&(eV.current=!1,eK.current=!0,eG()))},children:h},`${p}-${s}`):h},a=[],l=[],d=(e,t)=>{a.push(e),l.push(t)};for(let a of s){if("single"===a.kind){d(i(a.idx),r.get(a.idx));continue}let{userIdx:s,endIdx:l,startsCompactionTurn:c,finalAssistantIdx:p}=a;if((V||q.isStreaming)&&l===U.length&&(s===o||c)){d(i(s),r.get(s));let o=q.streamingMessage?.role==="assistant",a=[],c=!o&&p>=0?p:l;for(let e=s+1;e<c;e++)tb(U[e])&&a.push(e);let u=tf(U,_,a,t),h=null;if(!o&&p>=0){let e=U[p],o=tp(e,{isStreaming:!0}),n=tm(e,{messageIndex:p,entryId:_[p],toolResults:t,isStreaming:!0});u=u.concat(n.processBlocks),o.answerBlocks.length>0&&(h=tw(e,o.answerBlocks,{omitUsage:!0}))}if(o){let e=q.streamingMessage,o=tp(e,{isStreaming:!0}),n=tm(e,{messageIndex:U.length,toolResults:t,isStreaming:!0});u=u.concat(n.processBlocks),o.answerBlocks.length>0&&(h=tw(e,o.answerBlocks,{omitUsage:!0}))}if(u.length>0){let t=a.map(e=>r.get(e)).find(e=>"number"==typeof e);d((0,n.jsx)("div",{ref:void 0===t?void 0:e=>{od.current[t]=e},children:(0,n.jsx)(rF,{blocks:u,isStreaming:V||q.isStreaming,cwd:op,onOpenFile:x,sessionId:e?.id??eM.current??void 0,tokenRate:eu})},`live-process-group-${s}`),t)}h&&d((0,n.jsx)(ny,{message:h,isStreaming:!0,modelNames:J,cwd:op,onOpenFile:x,onQuoteReply:L},`live-answer-${s}`),p>=0?r.get(p):void 0);continue}if(-1===p){for(let e=s;e<l;e++)d(i(e),r.get(e));continue}d(i(s),r.get(s));let{processBlocks:u,finalAnswerMessage:h,writtenFiles:g,visibleProcessIndices:m}=a;if(u.length>0){let t=m.map(e=>r.get(e)).find(e=>"number"==typeof e)??(h?void 0:r.get(p));d((0,n.jsx)("div",{ref:void 0===t?void 0:e=>{od.current[t]=e},children:(0,n.jsx)(rF,{blocks:u,isStreaming:!1,defaultExpanded:!h,onAutoExpanded:void 0,cwd:op,onOpenFile:x,sessionId:e?.id??eM.current??void 0})},`process-group-${s}-${p}`),t)}h&&d(i(p,{messageOverride:h,writtenFiles:g}),r.get(p));for(let e=p+1;e<l;e++)d(i(e),r.get(e))}let c=[];return l.forEach((e,t)=>{void 0!==e&&(c[e]=t)}),t5.current=c,(0,n.jsx)(ig,{scrollElementRef:eE,items:a,virtualizerRef:t8})})(),ob&&(ea||V&&!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:[ob,eC?.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"}})]})}),G&&(0,n.jsx)(ny,{message:{role:"bashExecution",command:G.command,output:"",excludeFromContext:G.excludeFromContext},sessionId:e?.id??eM.current??void 0}),K&&!G&&(0,n.jsx)("div",{className:"py-2 text-[13px] text-text-muted",children:(0,n.jsx)("span",{className:"animate-[pulse_1.5s_infinite]",children:P("desktop.runningShellCommand")})}),(0,n.jsx)("div",{style:{height:96}}),(0,n.jsx)("div",{ref:eP}),(0,n.jsx)(nB,{open:tH,planText:tU,busy:V,onExecute:tV,onFeedback:tG,onExit:tJ,onClose:()=>tB(!1)})]})})}),tY&&(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"}),tZ&&(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"}),t0&&(0,n.jsxs)("button",{type:"button",onClick:()=>t4(),title:P("desktop.scrollToBottom"),"aria-label":P("desktop.scrollToBottom"),style:{position:"absolute",bottom:14,right:18,zIndex:20,display:"flex",alignItems:"center",gap:6,padding:"5px 10px",border:"1px solid var(--border)",borderRadius:999,background:"color-mix(in srgb, var(--bg-panel) 92%, transparent)",color:"var(--text-muted)",fontSize:11,fontWeight:600,cursor:"pointer",boxShadow:"0 4px 14px rgba(0,0,0,0.14)",backdropFilter:"blur(4px)",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)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.borderColor="var(--border)"},children:[(0,n.jsx)(ns.Z,{size:12,weight:"bold","aria-hidden":"true"}),P("desktop.scrollToBottom")]})]}),M?null:(0,n.jsx)(ik,{messages:U,streamingMessage:q.streamingMessage,scrollContainer:eE,messageRefs:od,virtualizer:t3})]}),(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)(iV,{widgets:oy})})}),ok,(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)(iu,{onViewFullHistory:v,cwd:op,systemPrompt:y,sessionStats:ep,contextUsage:es,hasSession:!!e,showChat:!0,soundEnabled:T,onSoundToggle:R,onCompact:e?e1:void 0,onAbortCompaction:e8,isCompacting:ea,compactError:el,branchTree:eR,branchActiveLeafId:ez,onBranchLeafChange:eI,isDeepSeekOfficial:t$,deepseekBalance:tW,lastTurnUsage:tO})})})]})]})]})}function iq({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 iV({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 iK({notices:e,floating:t=!1,align:o="left"}){return 0===e.length?null:(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",alignItems:"right"===o?"flex-end":"stretch",marginBottom:10*!t},children:e.map((o,r)=>{let s="error"===o.type?"#ef4444":"warning"===o.type?"#d97706":"success"===o.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*(r!==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:o.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:s,flexShrink:0}}),(0,n.jsx)("span",{style:{padding:"10px 0",minWidth:0,maxWidth:"100%",overflowWrap:"anywhere",whiteSpace:"pre-wrap"},children:o.message})]},o.id)})})}function iG({request:e,onRespond:t}){let{t:o}=(0,F.s)(),[s,i]=(0,r.useState)("editor"===e.method?e.prefill??"":"");(0,r.useEffect)(()=>{i("editor"===e.method?e.prefill??"":"")},[e]);let a=()=>{"confirm"===e.method?t(e,{confirmed:!0}):t(e,{value:s})};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:{padding:"12px 14px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("div",{style:{color:"var(--text)",fontSize:14,fontWeight:650},children:e.title}),(0,n.jsx)("div",{style:{marginTop:3,color:"var(--text-dim)",fontSize:11,fontFamily:"var(--font-mono)"},children:o("desktop.extensionRequest")})]}),(0,n.jsxs)("div",{style:{padding:14},children:["confirm"===e.method&&(0,n.jsx)("div",{style:{color:"var(--text-muted)",fontSize:13,lineHeight:1.6,whiteSpace:"pre-wrap"},children:e.message}),"select"===e.method&&(0,n.jsx)("div",{style:{display:"grid",gap:8},children:e.options.map(o=>(0,n.jsx)("button",{onClick:()=>t(e,{value:o}),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},children:o},o))}),"input"===e.method&&(0,n.jsx)("input",{autoFocus:!0,value:s,placeholder:e.placeholder,onChange:e=>i(e.target.value),onKeyDown:o=>{"Enter"===o.key&&a(),"Escape"===o.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:s,onChange:e=>i(e.target.value),onKeyDown:o=>{"Escape"===o.key&&t(e,{cancelled:!0}),(o.metaKey||o.ctrlKey)&&"Enter"===o.key&&a()},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:o("desktop.cancel")}),"confirm"===e.method?(0,n.jsx)("button",{onClick:a,style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"#fff",cursor:"pointer"},children:o("desktop.confirm")}):"select"!==e.method?(0,n.jsx)("button",{onClick:a,style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"#fff",cursor:"pointer"},children:o("desktop.submit")}):null]})]})})}function iJ({request:e,onInput:t}){let{t:o}=(0,F.s)(),s=(0,r.useRef)(null),i=function(e){let t=/^[┌├└╭╰][─┬┴┼]+[┐┤┘╮╯]$/,o=[];for(let n of e){let e=ts(n).trimEnd();if(t.test(e))continue;let r=n,s=tl(r);("│"===s||"┃"===s)&&" "===tl(r=ta(r,0))&&(r=ta(r,0));let i=function(e){let t=ti(e);for(let e=t.length-1;e>=0;e--)if(""!==t[e].char.trim())return e;return -1}(r),a=i>=0?ti(r)[i]?.char:void 0;("│"===a||"┃"===a)&&(r=ta(r,i)),o.push(function(e){let t=e;for(;;){let e=ti(t),o=e[e.length-1];if(!o||""!==o.char.trim())return t;t=t.slice(0,o.start)+t.slice(o.end)}}(r))}for(;o.length>0&&""===ts(o[0]).trim();)o.shift();for(;o.length>0&&""===ts(o[o.length-1]).trim();)o.pop();return o.length?o:e}(e.lines);return(0,r.useEffect)(()=>{s.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:s,tabIndex:0,role:"dialog","aria-modal":"true",onKeyDown:o=>{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}}(o);n&&(o.preventDefault(),o.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:o("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:o("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:(i.length?i:[""]).map((e,t,o)=>{var s;return(0,n.jsxs)(r.Fragment,{children:[(s=`line-${t}`,(function(e){let t,o=[],n={},r=0;for(to.lastIndex=0;null!==(t=to.exec(e));)t.index>r&&o.push({text:e.slice(r,t.index),style:n}),n=function(e,t){let o={...e};for(let e=0;e<t.length;e++){let n=t[e];if(0===n)for(let e of Object.keys(o))delete o[e];else if(1===n)o.fontWeight=700;else if(2===n)o.opacity=.65;else if(3===n)o.fontStyle="italic";else if(4===n)o.textDecoration="underline";else if(22===n)delete o.fontWeight,delete o.opacity;else if(23===n)delete o.fontStyle;else if(24===n)delete o.textDecoration;else if(39===n)delete o.color;else if(49===n)delete o.backgroundColor;else if(n>=30&&n<=37)o.color=tn[n-30];else if(n>=90&&n<=97)o.color=tr[n-90];else if(n>=40&&n<=47)o.backgroundColor=tn[n-40];else if(n>=100&&n<=107)o.backgroundColor=tr[n-100];else if((38===n||48===n)&&2===t[e+1]){let[r,s,i]=[t[e+2],t[e+3],t[e+4]];[r,s,i].every(e=>"number"==typeof e&&Number.isFinite(e))&&(38===n?o.color=`rgb(${r}, ${s}, ${i})`:o.backgroundColor=`rgb(${r}, ${s}, ${i})`),e+=4}else if((38===n||48===n)&&5===t[e+1]){let r=function(e){if(e>=0&&e<8)return tn[e];if(e>=8&&e<16)return tr[e-8];if(e>=16&&e<=231){let t=e-16,o=Math.floor(t/36),n=Math.floor(t%36/6),r=e=>0===e?0:55+40*e;return`rgb(${r(o)}, ${r(n)}, ${r(t%6)})`}if(e>=232&&e<=255){let t=8+(e-232)*10;return`rgb(${t}, ${t}, ${t})`}}(t[e+2]);r&&(38===n?o.color=r:o.backgroundColor=r),e+=2}}return o}(n,t[1]?t[1].split(";").map(e=>Number(e||"0")):[0]),r=t.index+t[0].length;return r<e.length&&o.push({text:e.slice(r),style:n}),o})(e).map((e,t)=>Object.keys(e.style).length>0?(0,n.jsx)("span",{style:e.style,children:e.text},`${s}-${t}`):e.text)),t<o.length-1?"\n":null]},t)})})]})})}var iY=o(93549);let iX={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"},iZ={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",webm:"audio/webm"};function iQ(e){return(e.replace(/\\/g,"/").split("/").pop()??"").toLowerCase().split(".").pop()??""}function i0(e){let t=e.nodeType===Node.ELEMENT_NODE?e:e.parentElement;return t?.closest(".file-source-line[data-line-number]")??null}function i1(e,t){if(!t||t.isCollapsed||0===t.rangeCount)return null;let o=t.getRangeAt(0);if(!e.contains(o.startContainer)||!e.contains(o.endContainer))return null;let n=Number(i0(o.startContainer)?.dataset.lineNumber),r=Number(i0(o.endContainer)?.dataset.lineNumber);return Number.isInteger(n)&&Number.isInteger(r)?n<=r?{startLine:n,endLine:r}:{startLine:r,endLine:n}:null}function i2(e,t,o,n={}){let r=ei(e),s=new URLSearchParams({type:t});for(let[e,t]of(o&&s.set("sessionId",o),Object.entries(n)))void 0!==t&&s.set(e,String(t));return`/api/files/${r}?${s.toString()}`}function i4({filePath:e,sourceSessionId:t}){let{t:o}=(0,F.s)();return(0,n.jsx)("a",{href:i2(e,"download",t),download:ea(e),title:o("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)(I.z,{size:11,"aria-hidden":"true"})})}let i6={fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.6,tabSize:2},i8={fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.6,padding:"12px 0 12px 16px",color:"var(--text-dim)",textAlign:"right",userSelect:"none"};async function i5(e,t){let o=await fetch(`/api/files/${ei(e)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:t})});if(!o.ok)throw Error((await o.json().catch(()=>({}))).error??`HTTP ${o.status}`);let n=await o.json();return"number"==typeof n.size?n.size:0}let i3={delete:"3px solid var(--git-status-deleted)",add:"3px solid var(--git-status-added)",edit:"3px solid var(--git-status-modified)"},i7="var(--git-status-deleted-bg)",i9="var(--git-status-added-bg)",ae="var(--git-status-added)";function at(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}function ao({oldContent:e,newContent:t}){let{t:o}=(0,F.s)(),r=function(e,t){let o=e.length,n=t.length,r=o+n,s=Array(2*r+1).fill(0),i=[];for(let a=0;a<=r;a++){i.push([...s]);for(let l=-a;l<=a;l+=2){let d,c=(d=l===-a||l!==a&&s[l-1+r]<s[l+1+r]?s[l+1+r]:s[l-1+r]+1)-l;for(;d<o&&c<n&&e[d]===t[c];)d++,c++;if(s[l+r]=d,d>=o&&c>=n){let s=[],l=o,d=n;for(let o=a;o>0;o--){let n,a=i[o-1],c=l-d;n=c===-o||c!==o&&a[c-1+r]<a[c+1+r]?c+1:c-1;let p=a[n+r],u=p-n;for(;l>p&&d>u;)l--,d--,s.unshift({type:"unchanged",text:e[l]});o>0&&(l>p?(l--,s.unshift({type:"removed",text:e[l]})):(d--,s.unshift({type:"added",text:t[d]})))}for(;l>0&&d>0;)l--,d--,s.unshift({type:"unchanged",text:e[l]});return s}}}return[...e.map(e=>({type:"removed",text:e})),...t.map(e=>({type:"added",text:e}))]}(e.split("\n"),t.split("\n"));if(!r.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:o("desktop.noChanges")});let s=new Set(r.flatMap((e,t)=>"unchanged"!==e.type?[t]:[])),i=new Set;for(let e of s)for(let t=Math.max(0,e-3);t<=Math.min(r.length-1,e+3);t++)i.add(t);let a=[],l=0;for(;l<r.length;)if(i.has(l)){let e=[];for(;l<r.length&&i.has(l);)e.push(r[l]),l++;a.push({hidden:!1,lines:e})}else{let e=0;for(;l<r.length&&!i.has(l);)e++,l++;a.push({hidden:!0,count:e})}let d=[],c=1;for(let e of r)"removed"===e.type?d.push(0):d.push(c++);let p=0;return(0,n.jsx)("div",{style:{fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.6,minWidth:"max-content"},children:a.map((e,t)=>{if(e.hidden){let r=(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:o("desktop.unchangedLines",{count:e.count})},t);return p+=e.count,r}let r=[],s=[],i=[],a=()=>{if(s.length||i.length){let e=s.length&&i.length?"edit":s.length?"delete":"add";for(let t of s)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});s=[],i=[]}};e.lines.forEach((e,o)=>{"unchanged"===e.type?(a(),r.push({key:`${t}:${o}`,kind:"context",text:e.text,lineNo:d[p+o],block:null})):"removed"===e.type?s.push({key:`${t}:${o}`,text:e.text}):i.push({key:`${t}:${o}`,text:e.text,lineNo:d[p+o]})}),a();let l=r.map(e=>{let t="removed"===e.kind?i7:"added"===e.kind?i9:"transparent",o=e.block?i3[e.block]:"3px solid transparent",r="added"===e.kind?ae:"var(--text-dim)";return(0,n.jsxs)("div",{style:{display:"flex",background:t,borderLeft:o},children:[(0,n.jsx)("span",{style:{minWidth:44,padding:"0 8px 0 16px",textAlign:"right",color:r,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 p+=e.lines.length,(0,n.jsx)("div",{children:l},t)})})}function an({patch:e}){let t=o7(e);if(!t)return null;let o=[],r=[],s=[],i=()=>{if(r.length||s.length){let e=r.length&&s.length?"edit":r.length?"delete":"add";for(let t of r)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});r=[],s=[]}};return t.forEach((e,t)=>{e.rows.forEach((e,n)=>{if("hunk"===e.type){i(),o.push({key:`${t}:${n}:h`,kind:"hunk",text:e.text,lineNo:null,block:null});return}let{left:a,right:l}=e;if("context"===a.type&&"context"===l.type){i(),o.push({key:`${t}:${n}:c`,kind:"context",text:a.text,lineNo:l.lineNo,block:null});return}"removed"===a.type&&r.push({key:`${t}:${n}:l`,text:a.text}),"added"===l.type&&s.push({key:`${t}:${n}:r`,text:l.text,lineNo:l.lineNo})})}),i(),(0,n.jsx)("div",{style:{fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.55,minWidth:"max-content"},children:o.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?i7:"added"===e.kind?i9:"transparent",o=e.block?i3[e.block]:"3px solid transparent",r="added"===e.kind?ae:"var(--text-dim)";return(0,n.jsxs)("div",{style:{display:"flex",background:t,borderLeft:o},children:[(0,n.jsx)("span",{style:{width:44,flexShrink:0,padding:"0 8px 0 16px",textAlign:"right",color:r,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 ar({filePath:e,cwd:t,sourceSessionId:o}){let{t:s}=(0,F.s)(),[i,a]=(0,r.useState)(0),[l,d]=(0,r.useState)(null),[c,p]=(0,r.useState)(null),[u,h]=(0,r.useState)(null),g=(0,r.useRef)(null),m=ea(e).toLowerCase().split(".").pop()??"";(0,r.useEffect)(()=>{a(0),d(null),p(null),h(null),g.current&&(g.current.close(),g.current=null);let t=new EventSource(i2(e,"watch",o));return g.current=t,t.addEventListener("change",e=>{try{let t=JSON.parse(e.data);"number"==typeof t.size&&d(t.size)}catch{}a(e=>e+1)}),()=>{t.close(),g.current=null}},[e,o]);let f=i2(e,"read",o,i?{v:i}:void 0),x=null!=l?at(l):null;return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{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},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)"},title:e,children:el(e,t)}),(0,n.jsx)("span",{style:{marginLeft:"auto"},children:m||s("desktop.image")}),c&&(0,n.jsxs)("span",{children:[c.w," \xd7 ",c.h]}),x&&(0,n.jsx)("span",{children:x}),(0,n.jsx)(i4,{filePath:e,sourceSessionId:o})]}),(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:u?(0,n.jsx)("div",{style:{color:"#f87171",fontSize:13},children:u}):(0,n.jsx)("img",{src:f,alt:e,onLoad:e=>{let t=e.currentTarget;p({w:t.naturalWidth,h:t.naturalHeight})},onError:()=>h(s("desktop.failedToLoadImage")),style:{maxWidth:"100%",maxHeight:"100%",objectFit:"contain",boxShadow:"0 2px 8px rgba(0,0,0,0.15)"}})})]})}function as({filePath:e,cwd:t,sourceSessionId:o}){let{t:s}=(0,F.s)(),[i,a]=(0,r.useState)(0),[l,d]=(0,r.useState)(null),[c,p]=(0,r.useState)(null),[u,h]=(0,r.useState)(null),g=(0,r.useRef)(null),m=ea(e).toLowerCase().split(".").pop()??"";(0,r.useEffect)(()=>{a(0),d(null),p(null),h(null),g.current&&(g.current.close(),g.current=null);let t=new EventSource(i2(e,"watch",o));return g.current=t,t.addEventListener("change",e=>{try{let t=JSON.parse(e.data);"number"==typeof t.size&&d(t.size)}catch{}p(null),h(null),a(e=>e+1)}),()=>{t.close(),g.current=null}},[e,o]);let f=i2(e,"read",o,i?{v:i}:void 0);return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{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},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)"},title:e,children:el(e,t)}),(0,n.jsx)("span",{style:{marginLeft:"auto"},children:m||s("desktop.audio")}),null!=c&&(0,n.jsx)("span",{children:function(e){if(!Number.isFinite(e))return"";let t=Math.round(e),o=Math.floor(t/60);return`${o}:${String(t%60).padStart(2,"0")}`}(c)}),null!=l&&(0,n.jsx)("span",{children:at(l)}),(0,n.jsx)(i4,{filePath:e,sourceSessionId:o})]}),(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:[u&&(0,n.jsx)("div",{style:{color:"#f87171",fontSize:13,marginBottom:12,textAlign:"center"},children:u}),(0,n.jsx)("audio",{controls:!0,preload:"metadata",src:f,onLoadedMetadata:e=>p(e.currentTarget.duration),onError:()=>h(s("desktop.failedToLoadAudio")),style:{width:"100%"}},f)]})})]})}function ai({filePath:e,cwd:t,sourceSessionId:o}){let{t:s}=(0,F.s)(),[i,a]=(0,r.useState)(0),[l,d]=(0,r.useState)(null),[c,p]=(0,r.useState)(null),u=(0,r.useRef)(null),h=iQ(e),g="pdf"===h,m=g?i2(e,"read",o,i?{v:i}:void 0):i2(e,"preview",o,i?{v:i}:void 0);return(0,r.useEffect)(()=>{a(0),d(null),p(null),u.current&&(u.current.close(),u.current=null),fetch(i2(e,"meta",o)).then(e=>e.json()).then(e=>{e.error&&p(e.error),"number"==typeof e.size&&(d(e.size),!g&&e.size>0xa00000&&p(s("desktop.docxTooLargeForPreview")))}).catch(e=>p(String(e)));let t=new EventSource(i2(e,"watch",o));return u.current=t,t.addEventListener("change",e=>{try{let t=JSON.parse(e.data);if("number"==typeof t.size&&(d(t.size),!g&&t.size>0xa00000))return void p(s("desktop.docxTooLargeForPreview"))}catch{}p(null),a(e=>e+1)}),()=>{t.close(),u.current=null}},[e,g,o,s]),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{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},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e,children:el(e,t)}),(0,n.jsx)("span",{style:{marginLeft:"auto"},children:"docx"===h?s("desktop.docxPreview"):"pdf"}),null!=l&&(0,n.jsx)("span",{children:at(l)}),(0,n.jsx)(i4,{filePath:e,sourceSessionId:o})]}),(0,n.jsx)("div",{style:{flex:1,minHeight:0,background:"var(--bg-panel)"},children:c?(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",padding:24,color:"#f87171",fontSize:13,textAlign:"center"},children:c}):(0,n.jsx)("iframe",{src:m,sandbox:g?void 0:"allow-same-origin",title:s("desktop.previewFile",{file:ea(e)}),style:{width:"100%",height:"100%",border:"none",background:g?"var(--bg)":"#eef1f5"}},m)})]})}function aa({filePath:e,cwd:t,sourceSessionId:o,onOpenFile:r,onAtMention:s,onMentionLines:i,initialDisplayMode:a,onFileSaved:l}){let d;return null!==(iX[iQ(e)]??null)?(0,n.jsx)(ar,{filePath:e,cwd:t,sourceSessionId:o}):null!==(iZ[iQ(e)]??null)?(0,n.jsx)(as,{filePath:e,cwd:t,sourceSessionId:o}):null!==("pdf"===(d=iQ(e))||"docx"===d?d:null)?(0,n.jsx)(ai,{filePath:e,cwd:t,sourceSessionId:o}):(0,n.jsx)(al,{filePath:e,cwd:t,sourceSessionId:o,onOpenFile:r,onAtMention:s,onMentionLines:i,initialDisplayMode:a,onFileSaved:l})}function al({filePath:e,cwd:t,sourceSessionId:o,onOpenFile:s,onAtMention:i,onMentionLines:a,initialDisplayMode:l,onFileSaved:d}){let c,u,{t:h}=(0,F.s)(),[m,f]=(0,r.useState)(null),[x,k]=(0,r.useState)(null),[v,y]=(0,r.useState)(null),[b,w]=(0,r.useState)(!0),[j,S]=(0,r.useState)(null),[C,T]=(0,r.useState)(!1),[R,z]=(0,r.useState)("source"),[I,M]=(0,r.useState)(!1),[P,E]=(0,r.useState)(0),[D,W]=(0,r.useState)(null),A=(0,r.useRef)(null),N=(0,r.useRef)(null),[$,L]=(0,r.useState)(!1),[O,H]=(0,r.useState)(""),[B,U]=(0,r.useState)(""),[_,q]=(0,r.useState)(!1),[V,K]=(0,r.useState)(null),[G,J]=(0,r.useState)(!1),Y=(0,r.useRef)(null),X=(0,r.useRef)(null),Z=(0,r.useRef)(0),Q=(0,r.useRef)(!1);(0,r.useEffect)(()=>{Q.current=$},[$]);let ee=$&&O!==B,et=!!(m?.content&&m.content.includes("\0")),eo=(0,r.useCallback)(async e=>{if(!t)return void y(null);try{let o=new URLSearchParams({cwd:t,path:e}),n=await fetch(`/api/git/diff?${o.toString()}`),r=await n.json();y(n.ok&&r.supported&&"string"==typeof r.patch?r:null)}catch{y(null)}},[t]),en=(0,r.useCallback)((e,t=!1)=>fetch(i2(e,"read",o)).then(e=>e.json()).then(e=>e.error?(S(e.error),null):(t?(f(t=>(t&&k(t.content),e)),E(e=>e+1)):f(e),e)).catch(e=>(S(String(e)),null)),[o]);(0,r.useEffect)(()=>{w(!0),S(null),f(null),k(null),y(null),T(!1),z("source"),M(!1),E(0),L(!1),H(""),U(""),K(null),J(!1),q(!1),A.current&&(A.current.close(),A.current=null),en(e).then(e=>{(e?.language==="markdown"||e?.language==="html")&&"diff"!==l&&T(!0)}).finally(()=>w(!1)),eo(e);let t=new EventSource(i2(e,"watch",o));return A.current=t,t.addEventListener("change",()=>{Q.current?J(!0):(en(e,!0),eo(e))}),()=>{t.close(),A.current=null}},[e,en,eo,l,o]);let er=(0,r.useCallback)(()=>{m&&!et&&(H(m.content),U(m.content),K(null),J(!1),L(!0))},[m,et]),ei=(0,r.useCallback)(()=>{L(!1),H(""),U(""),K(null),J(!1)},[]),ea=(0,r.useCallback)(()=>{(!ee||window.confirm(h("files.unsavedChanges")))&&ei()},[ee,ei,h]),ed=(0,r.useCallback)(async()=>{if(!m||_)return;let t=++Z.current;q(!0),K(null);try{let o=await i5(e,O);if(t!==Z.current)return;f(e=>e?{...e,content:O,size:o}:e),U(O),q(!1),ei(),eo(e),d?.()}catch(e){if(t!==Z.current)return;K(e instanceof Error?e.message:String(e)),q(!1)}},[m,_,O,e,ei,eo,d]);(0,r.useEffect)(()=>{if(!$)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)},[$,ed,ea]),(0,r.useEffect)(()=>{if(!ee)return;let e=e=>{e.preventDefault(),e.returnValue=""};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[ee]);let ec=(0,r.useCallback)(()=>{let e=Y.current,t=X.current;e&&t&&(t.scrollTop=e.scrollTop)},[]),eu=(0,r.useCallback)(e=>{if("Tab"!==e.key||e.metaKey||e.ctrlKey||e.altKey)return;e.preventDefault();let t=e.currentTarget,{selectionStart:o,selectionEnd:n}=t;H(t.value.slice(0,o)+" "+t.value.slice(n)),requestAnimationFrame(()=>{let e=Y.current;if(!e)return;let t=o+2;e.selectionStart=t,e.selectionEnd=t})},[]),eh=(0,r.useMemo)(()=>oP(m?.content??""),[m?.content]),eg=v?.supported===!0&&"string"==typeof v.patch;(0,r.useEffect)(()=>{"diff"===l&&eg&&z("diff")},[eg,l]);let em=eg&&v?.status==="deleted",ef=(0,r.useCallback)(o=>{a&&o&&a(el(e,t),o.startLine,o.endLine)},[t,e,a]);if((0,r.useEffect)(()=>{let e=()=>{let e=N.current,t="source"===R&&!C;W(a&&t&&e?i1(e,window.getSelection()):null)};if(e(),a&&"source"===R&&!C)return document.addEventListener("selectionchange",e),()=>document.removeEventListener("selectionchange",e)},[m?.content,a,C,R]),(0,r.useEffect)(()=>{if(!a||"source"!==R||C)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 o=N.current,n=o?i1(o,window.getSelection()):null;n&&(e.preventDefault(),ef(n))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[ef,a,C,R]),b)return(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:13},children:h("desktop.loadingFile")});if(em&&!m)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:el(e,t)}),(0,n.jsx)("div",{style:{flex:1,overflow:"auto",background:"var(--bg)"},children:(0,n.jsx)(an,{patch:v.patch})})]});if(j)return(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"#f87171",fontSize:13},children:j});if(!m)return null;let ex="html"===m.language,ek="markdown"===m.language,ev=(u=(c=es(e).replace(/\/+$/,"")).lastIndexOf("/"))<0?"":0===u?"/":2===u&&/^[a-zA-Z]:\//.test(c)?c.slice(0,3):c.slice(0,u),ey=m.content.split("\n"),eb=null!==x&&x!==m.content||eg,ew=!em&&!et&&ep();return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{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},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)"},title:e,children:el(e,t)}),(0,n.jsx)("span",{style:{marginLeft:"auto"},children:m.language}),"source"===R&&!$&&(0,n.jsx)("span",{children:h("desktop.lines",{count:ey.length})}),(0,n.jsx)("span",{children:at(m.size)}),eb&&!$&&(0,n.jsxs)("div",{style:{display:"flex",borderRadius:5,overflow:"hidden",border:"1px solid var(--border)"},children:[(0,n.jsx)("button",{onClick:()=>z("source"),style:{padding:"2px 8px",fontSize:11,border:"none",cursor:"pointer",background:"source"===R?"var(--bg-selected)":"var(--bg-hover)",color:"source"===R?"var(--text)":"var(--text-muted)",fontWeight:"source"===R?600:400},children:h("desktop.source")}),(0,n.jsxs)("button",{onClick:()=>z("diff"),style:{padding:"2px 8px",fontSize:11,border:"none",borderLeft:"1px solid var(--border)",cursor:"pointer",background:"diff"===R?"var(--bg-selected)":"var(--bg-hover)",color:"diff"===R?"var(--text)":"var(--text-muted)",fontWeight:"diff"===R?600:400},children:[h("desktop.diff")," ",P>0&&(0,n.jsxs)("span",{style:{color:"var(--git-status-added)",marginLeft:2},children:["+",P]})]})]}),"source"===R&&!C&&!$&&(0,n.jsx)("button",{onClick:()=>M(e=>!e),title:I?h("desktop.disableWordWrap"):h("desktop.enableWordWrap"),style:{padding:"2px 8px",fontSize:11,cursor:"pointer",background:I?"var(--bg-selected)":"var(--bg-hover)",color:I?"var(--text)":"var(--text-muted)",border:"1px solid var(--border)",borderRadius:5,fontWeight:I?600:400},children:h("desktop.wrap")}),ex&&"source"===R&&!$&&(0,n.jsxs)("div",{style:{display:"flex",borderRadius:5,overflow:"hidden",border:"1px solid var(--border)"},children:[(0,n.jsx)("button",{onClick:()=>T(!1),style:{padding:"2px 8px",fontSize:11,border:"none",cursor:"pointer",background:C?"var(--bg-hover)":"var(--bg-selected)",color:C?"var(--text-muted)":"var(--text)",fontWeight:C?400:600},children:h("desktop.code")}),(0,n.jsx)("button",{onClick:()=>T(!0),style:{padding:"2px 8px",fontSize:11,border:"none",borderLeft:"1px solid var(--border)",cursor:"pointer",background:C?"var(--bg-selected)":"var(--bg-hover)",color:C?"var(--text)":"var(--text-muted)",fontWeight:C?600:400},children:h("desktop.preview")})]}),ek&&"source"===R&&!$&&(0,n.jsxs)("div",{style:{display:"flex",borderRadius:5,overflow:"hidden",border:"1px solid var(--border)"},children:[(0,n.jsx)("button",{onClick:()=>T(!0),style:{padding:"2px 8px",fontSize:11,border:"none",cursor:"pointer",background:C?"var(--bg-selected)":"var(--bg-hover)",color:C?"var(--text)":"var(--text-muted)",fontWeight:C?600:400},children:h("desktop.preview")}),(0,n.jsx)("button",{onClick:()=>T(!1),style:{padding:"2px 8px",fontSize:11,border:"none",borderLeft:"1px solid var(--border)",cursor:"pointer",background:C?"var(--bg-hover)":"var(--bg-selected)",color:C?"var(--text-muted)":"var(--text)",fontWeight:C?400:600},children:h("desktop.raw")})]}),$?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button",onClick:()=>void ed(),disabled:_,title:h("files.saveHint"),"aria-label":h("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)(iY.g,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("button",{type:"button",onClick:ea,disabled:_,title:h("files.cancelEdit"),"aria-label":h("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)(p.X,{size:13,"aria-hidden":"true"})})]}):"source"===R&&ew?(0,n.jsx)("button",{type:"button",onClick:er,title:h("files.edit"),"aria-label":h("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)(g.I,{size:13,"aria-hidden":"true"})}):null,(i||a)&&!$&&(0,n.jsx)("button",{type:"button",onPointerDown:e=>e.preventDefault(),onClick:()=>{D&&a?ef(D):i?.(el(e,t),!1)},title:D?h("desktop.mentionSelectedLines",{start:D.startLine,end:D.endLine}):h("desktop.mentionFile"),"aria-label":D?h("desktop.mentionSelectedLines",{start:D.startLine,end:D.endLine}):h("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:"@"}),!$&&(0,n.jsx)(i4,{filePath:e,sourceSessionId:o})]}),(0,n.jsx)("div",{ref:N,style:{flex:1,overflow:"auto",background:"var(--bg)"},children:$?(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:h("files.externalModified")}),(0,n.jsx)("button",{type:"button",onClick:()=>{(!ee||window.confirm(h("files.reloadOverwriteConfirm")))&&en(e).then(e=>{e&&(H(e.content),U(e.content),J(!1))})},disabled:_,style:{padding:"2px 8px",fontSize:11,border:"1px solid #d6a84b",borderRadius:4,background:"transparent",color:"#d6a84b",cursor:"pointer"},children:h("files.reload")})]}),V&&(0,n.jsx)("div",{style:{padding:"5px 12px",borderBottom:"1px solid var(--border)",background:"rgba(248,113,113,0.14)",color:"#f87171",fontSize:11,flexShrink:0},children:h("files.saveFailed",{error:V})}),(0,n.jsxs)("div",{style:{flex:1,display:"flex",overflow:"hidden"},children:[(0,n.jsx)("div",{ref:X,"aria-hidden":"true",style:{...i8,height:"100%",overflow:"hidden",whiteSpace:"pre",pointerEvents:"none"},children:O.split("\n").map((e,t)=>`${t+1}
37
- `).join("")}),(0,n.jsx)("textarea",{ref:Y,value:O,onChange:e=>H(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)",...i6,whiteSpace:"pre",overflow:"auto",padding:0,tabSize:2}})]})]}):"diff"===R&&eb?eg?(0,n.jsx)(an,{patch:v.patch}):(0,n.jsx)(ao,{oldContent:x,newContent:m.content}):ex&&C?(0,n.jsx)("iframe",{srcDoc:m.content,sandbox:"allow-scripts",style:{width:"100%",height:"100%",border:"none",background:"var(--bg)"},title:h("desktop.htmlPreview")}):ek&&C?(0,n.jsx)("div",{className:"markdown-body markdown-file-preview",style:{padding:"24px 32px"},children:(0,n.jsx)(tS.oz,{remarkPlugins:oD,rehypePlugins:oW,components:{h1:({children:e})=>(0,n.jsx)("h1",{id:oM(e),children:e}),h2:({children:e})=>(0,n.jsx)("h2",{id:oM(e),children:e}),h3:({children:e})=>(0,n.jsx)("h3",{id:oM(e),children:e}),code({className:e,children:t,...o}){let r=e?.replace("language-","").toLowerCase()??"",s=String(t);return e?.includes("language-")||s.includes("\n")?"mermaid"===r?(0,n.jsx)(oX,{code:s.replace(/\n$/,"")}):(0,n.jsx)(o0,{code:s.replace(/\n$/,""),lang:r}):(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:t})},pre:({children:e})=>(0,n.jsx)(n.Fragment,{children:e}),a({href:e,children:o,...r}){delete r.node;let i="text-(--accent-blue) underline underline-offset-2 hover:text-(--accent-blue)/80",a=s?ty(e,ev,t??ev):null;return a&&s?(0,n.jsx)("a",{href:e,...r,className:i,onClick:e=>{if(e.defaultPrevented||0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;let t=e.currentTarget.getAttribute("target");t&&"_self"!==t||(e.preventDefault(),s(a))},children:o}):(0,n.jsx)("a",{href:e,...r,className:i,target:"_blank",rel:"noopener noreferrer",children:o})},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:eh})}):(0,n.jsx)(tC.A,{language:"text"===m.language?"plaintext":m.language,style:oA,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:I,children:m.content})})]})}let ad={running:"var(--accent)",completed:"#22c55e",failed:"#ef4444",stopped:"#d97706"},ac={running:"desktop.subagentsStatusRunning",completed:"desktop.subagentsStatusCompleted",failed:"desktop.subagentsStatusFailed",stopped:"desktop.subagentsStatusStopped"};function ap({agent:e,selected:t,onSelect:o}){let[s,i]=(0,r.useState)(!1),{t:a}=(0,F.s)(),[l,d]=(0,r.useState)(()=>Date.now());(0,r.useEffect)(()=>{if("running"!==e.status)return;let t=setInterval(()=>d(Date.now()),1e3);return()=>clearInterval(t)},[e.status]);let c=e.completedAt?e.completedAt-e.startedAt:l-e.startedAt,p=e.tokens?.total??e.tokens?.input??e.tokens?.output,u=ad[e.status];return(0,n.jsxs)("button",{type:"button",onClick:()=>o?.(e),onMouseEnter:()=>i(!0),onMouseLeave:()=>i(!1),title:e.error||`${e.agentType} \xb7 ${e.description}`,style:{width:"100%",display:"flex",alignItems:"center",gap:7,padding:"5px 10px",border:"none",borderRadius:5,background:t?"var(--bg-selected)":s?"var(--bg-hover)":"transparent",color:"var(--text)",cursor:"pointer",textAlign:"left",minWidth:0},children:[(0,n.jsx)("span",{"aria-hidden":"true",style:{width:7,height:7,flexShrink:0,borderRadius:"50%",background:u,boxShadow:"running"===e.status?`0 0 0 0 ${u}`:"none",animation:"running"===e.status?"subagent-pulse 1.4s ease-out infinite":"none"}}),(0,n.jsx)("span",{style:{flexShrink:0,fontSize:10,fontFamily:"var(--font-mono)",fontWeight:600,color:"var(--text-dim)"},children:e.agentType}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:11.5,color:"var(--text-muted)"},children:e.description||a("desktop.subagentsNoDesc")}),void 0!==p&&p>0&&(0,n.jsxs)("span",{style:{flexShrink:0,fontSize:10,fontFamily:"var(--font-mono)",color:"var(--text-dim)"},children:[void 0===p?"":p>=1e6?`${(p/1e6).toFixed(1)}M`:p>=1e3?`${(p/1e3).toFixed(1)}k`:`${p}`,"t"]}),(0,n.jsx)("span",{style:{flexShrink:0,fontSize:10,fontFamily:"var(--font-mono)",color:"var(--text-dim)"},children:function(e){if(void 0===e)return"…";if(e<1e3)return`${e}ms`;let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let o=Math.floor(t/60),n=t%60;return n>0?`${o}m ${n}s`:`${o}m`}(c)}),(0,n.jsx)("span",{style:{flexShrink:0,fontSize:10,color:u},children:a(ac[e.status])})]})}function au({subagents:e,onSelect:t,selectedId:o}){let{t:s}=(0,F.s)(),[i,a]=(0,r.useState)(!0),l=e.filter(e=>"running"===e.status).length;return 0===e.length?(0,n.jsx)("div",{style:{padding:"18px 14px",fontSize:12,color:"var(--text-dim)",textAlign:"center"},children:s("desktop.subagentsEmpty")}):(0,n.jsxs)("section",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",flexShrink:0,padding:"6px 10px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsxs)("button",{type:"button",onClick:()=>a(e=>!e),"aria-expanded":i,style:{display:"flex",alignItems:"center",gap:6,flex:1,minWidth:0,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:11,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",textAlign:"left"},children:[(0,n.jsx)(v.K,{size:9,weight:"regular",style:{transform:i?"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:s("desktop.subagentsPanelTitle")})]}),l>0&&(0,n.jsxs)("span",{style:{marginRight:4,fontSize:10,fontFamily:"var(--font-mono)",color:"var(--accent)"},children:["● ",l," ",s("desktop.subagentsStatusRunning")]})]}),i&&(0,n.jsx)("div",{style:{flex:1,minHeight:0,overflowY:"auto",overflowX:"hidden",padding:"4px 0 8px"},children:e.map(e=>(0,n.jsx)(ap,{agent:e,selected:e.id===o,onSelect:t},e.id))})]})}let ah={user:{color:"var(--accent)"},assistant:{color:"var(--text)"},toolResult:{color:"var(--text-dim)"},bashExecution:{color:"var(--text-muted)"}};function ag({line:e,roleLabel:t}){let o=ah[e.role]??ah.toolResult;return(0,n.jsxs)("div",{style:{marginBottom:6},children:[(0,n.jsxs)("div",{style:{fontSize:10.5,fontWeight:600,color:o.color,marginBottom:2,fontFamily:"var(--font-mono)"},children:["[",t(e.role),"]"]}),(0,n.jsx)("pre",{style:{margin:0,fontSize:11.5,lineHeight:1.55,color:"var(--text-muted)",whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"var(--font-mono)",maxHeight:240,overflowY:"auto",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,padding:"6px 8px"},children:e.text})]})}function am({agent:e,cwd:t,onBack:o}){let{t:s}=(0,F.s)(),a=e=>s("user"===e?"desktop.transcriptRoleUser":"assistant"===e?"desktop.transcriptRoleAssistant":"toolResult"===e?"desktop.transcriptRoleResult":"desktop.transcriptRoleBash"),[l,d]=(0,r.useState)([]),[c,p]=(0,r.useState)(!0),[u,h]=(0,r.useState)(null),g=(0,r.useRef)(null),m=(0,r.useRef)(!0),f=(0,r.useCallback)(async(o=!1)=>{if(e.id&&t){o||p(!0);try{let n=new URLSearchParams({id:e.id,cwd:t}),r=await fetch(`/api/subagents/transcript?${n}`),s=await r.json();if(!r.ok||s.error){o||h(s.error??`HTTP ${r.status}`);return}d(s.lines??[]),h(null)}catch(e){o||h(e instanceof Error?e.message:String(e))}finally{p(!1)}}},[e.id,t]);(0,r.useEffect)(()=>{f()},[f]);let x=(0,r.useRef)(e.status);(0,r.useEffect)(()=>{let t="running"===x.current;x.current=e.status,t&&"running"!==e.status&&f(!0)},[e.status]),(0,r.useEffect)(()=>{if("running"!==e.status)return;let t=setInterval(()=>void f(!0),2e3);return()=>clearInterval(t)},[e.status,f]),(0,r.useEffect)(()=>{let e=g.current;e&&m.current&&(e.scrollTop=e.scrollHeight)},[l]);let k=e.completedAt?e.completedAt-e.startedAt:void 0,v=e.tokens?.total??e.tokens?.input??e.tokens?.output,y="completed"===e.status?"#22c55e":"failed"===e.status?"#ef4444":"stopped"===e.status?"#d97706":"var(--accent)";return(0,n.jsxs)("div",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column"},children:[(0,n.jsxs)("div",{style:{flexShrink:0,borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",padding:"6px 8px"},children:[(0,n.jsx)("div",{style:{display:"flex",alignItems:"center",gap:8},children:(0,n.jsxs)("button",{type:"button",onClick:o,title:s("desktop.subagentsBack"),style:{display:"inline-flex",alignItems:"center",gap:2,padding:"3px 6px",border:"none",borderRadius:5,background:"transparent",color:"var(--text-muted)",cursor:"pointer",fontSize:11},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)(i.Z,{size:12,"aria-hidden":"true"}),s("desktop.subagentsBack")]})}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginTop:4,minWidth:0},children:[(0,n.jsx)("span",{"aria-hidden":"true",style:{width:8,height:8,flexShrink:0,borderRadius:"50%",background:y,boxShadow:"running"===e.status?`0 0 0 0 ${y}`:"none",animation:"running"===e.status?"subagent-pulse 1.4s ease-out infinite":"none"}}),(0,n.jsx)("span",{style:{fontSize:12,fontWeight:700,color:"var(--text)",fontFamily:"var(--font-mono)",flexShrink:0},children:e.agentType}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:11.5,color:"var(--text-muted)"},children:e.description})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,marginTop:3,fontSize:10.5,fontFamily:"var(--font-mono)",color:"var(--text-dim)"},children:[void 0!==e.toolUses&&e.toolUses>0&&(0,n.jsxs)("span",{children:[e.toolUses," tool",1===e.toolUses?"":"s"]}),void 0!==v&&v>0&&(0,n.jsxs)("span",{children:[void 0===v?"":v>=1e6?`${(v/1e6).toFixed(1)}M`:v>=1e3?`${(v/1e3).toFixed(1)}k`:`${v}`," tokens"]}),void 0!==k&&(0,n.jsx)("span",{children:function(e){if(void 0===e)return"";if(e<1e3)return`${e}ms`;let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let o=Math.floor(t/60),n=t%60;return n>0?`${o}m ${n}s`:`${o}m`}(k)}),(0,n.jsx)("span",{style:{color:y},children:s(`desktop.subagentsStatus${"running"===e.status?"Running":"completed"===e.status?"Completed":"failed"===e.status?"Failed":"Stopped"}`)})]})]}),(0,n.jsx)("div",{ref:g,onScroll:e=>{let t=e.currentTarget;m.current=t.scrollHeight-t.scrollTop-t.clientHeight<40},style:{flex:1,minHeight:0,overflowY:"auto",overflowX:"hidden",padding:"8px 10px",background:"var(--bg)"},children:c?(0,n.jsxs)("div",{style:{fontSize:12,color:"var(--text-dim)",padding:"12px 4px"},children:[s("desktop.loading"),"…"]}):u?(0,n.jsx)("div",{style:{fontSize:12,color:"#ef4444",padding:"12px 4px"},children:u}):0===l.length?(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-dim)",padding:"12px 4px"},children:"running"===e.status?s("desktop.subagentsWaitingFirstMessage"):s("desktop.subagentsNoTranscript")}):(0,n.jsx)("div",{style:{paddingBottom:8},children:l.map((e,t)=>(0,n.jsx)(ag,{line:e,roleLabel:a},t))})})]})}function af({tabs:e,activeTabId:t,onSelectTab:o,onCloseTab:s}){let{t:i}=(0,F.s)(),[a,l]=(0,r.useState)(null);return(0,n.jsx)("div",{style:{display:"flex",alignItems:"flex-end",background:"var(--bg-panel)",overflowX:"auto",flexShrink:0,height:36},children:e.map(e=>{let r=e.id===t;return(0,n.jsxs)("div",{onClick:()=>o(e.id),onMouseDown:e=>{1===e.button&&e.preventDefault()},onAuxClick:t=>{1===t.button&&(t.preventDefault(),t.stopPropagation(),s(e.id))},style:{display:"flex",alignItems:"center",gap:6,height:36,paddingLeft:12,paddingRight:6,borderRight:"1px solid var(--border)",background:r?"var(--bg)":"var(--bg-panel)",cursor:"pointer",fontSize:12,color:r?"var(--text)":"var(--text-muted)",whiteSpace:"nowrap",maxWidth:180,minWidth:80,flexShrink:0,userSelect:"none",transition:"background 0.1s, color 0.1s"},children:[(0,n.jsx)("span",{style:{flexShrink:0,opacity:r?1:.7,display:"flex",alignItems:"center"},children:er(e.label,13)}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",flex:1,fontWeight:r?500:400},title:e.filePath,children:e.label}),(0,n.jsx)("button",{onClick:t=>{t.stopPropagation(),s(e.id)},onMouseEnter:()=>l(e.id),onMouseLeave:()=>l(null),style:{display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,background:a===e.id?"var(--bg-hover)":"transparent",border:"none",borderRadius:4,color:a===e.id?"var(--text)":"var(--text-dim)",cursor:"pointer",padding:0,flexShrink:0,transition:"background 0.1s, color 0.1s"},title:i("desktop.closeTab"),"aria-label":i("desktop.closeTabWithLabel",{label:e.label}),children:(0,n.jsx)(p.X,{size:11,"aria-hidden":"true"})})]},e.id)})})}var ax=o(27289),ak=o(93534),av=o(45781),ay=o(68731),ab=o(93912),aw=o(23675),aj=o(48716),aS=o(47013),aC=o(51265);let aT={"restore-script":"restore","generate-cmd":"cmd",keep:"keep","keep-with-warning":"warning",manual:"manual"};function aR({cwd:e}){let{t}=(0,F.s)(),o=(0,r.useRef)(null),[s,i]=(0,r.useState)(!0),[a,l]=(0,r.useState)(!1),[d,c]=(0,r.useState)(!1),[p,u]=(0,r.useState)(null),[h,g]=(0,r.useState)(null),[m,f]=(0,r.useState)(new Set),[x,k]=(0,r.useState)(new Set),[v,y]=(0,r.useState)(!1),[b,w]=(0,r.useState)(null),[j,S]=(0,r.useState)(!1),[C,T]=(0,r.useState)(null),[R,z]=(0,r.useState)([]),[I,M]=(0,r.useState)(""),[P,E]=(0,r.useState)(null),[D,W]=(0,r.useState)(null);(0,r.useEffect)(()=>{fetch("/api/models").then(e=>e.json()).then(e=>{let t=e.models??[];z(t),t.length>0&&M(`${t[0].provider}/${t[0].id}`)}).catch(()=>{})},[]);let A=(0,r.useCallback)(async()=>{c(!0),u(null);try{let e=await fetch("/api/backup/export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({includeSecrets:s,includeSessions:a})});if(!e.ok){let t=await e.json();u(t.error??`HTTP ${e.status}`);return}let t=await e.blob(),o=(e.headers.get("Content-Disposition")??"").match(/filename="?([^";]+)"?/),n=URL.createObjectURL(t),r=document.createElement("a");r.href=n,r.download=o?.[1]??"pi-backup.zip",document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(n)}catch{u(String(t("desktop.backupExportFailed")))}finally{c(!1)}},[s,a,t]),N=(0,r.useCallback)(async e=>{if(e){w(null),T(null),g(null);try{let o=new FormData;o.append("phase","parse"),o.append("file",e);let n=await fetch("/api/backup/import",{method:"POST",body:o}),r=await n.json();if(!n.ok||r.error)return void w(r.error??`HTTP ${n.status}`);if("preview"!==r.phase||!r.preview)return void w(String(t("desktop.backupImportFailed")));g(r),f(new Set(r.preview.categories)),k(new Set),y(!1)}catch{w(String(t("desktop.backupImportFailed")))}}},[t]),$=(0,r.useCallback)(async()=>{if(h){S(!0),w(null);try{let e=new FormData;e.append("phase","restore"),e.append("token",h.token),e.append("selections",JSON.stringify({categories:[...m],skippedMcpServers:[...x],reinstallNpm:v}));let n=await fetch("/api/backup/import",{method:"POST",body:e}),r=await n.json();if(!n.ok||r.error)return void w(r.error??`HTTP ${n.status}`);if("report"!==r.phase||!r.report)return void w(String(t("desktop.backupRestoreFailed")));T(r.report),g(null),o.current&&(o.current.value="")}catch{w(String(t("desktop.backupRestoreFailed")))}finally{S(!1)}}},[h,m,x,v,t]),L=(0,r.useCallback)(async o=>{if(o.installPrompt&&e){E(o.name),W(null);try{let t=I.indexOf("/"),n=t>0?I.slice(0,t):void 0,r=t>0?I.slice(t+1):void 0,s=await fetch("/api/agent/new",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,message:o.installPrompt,provider:n,modelId:r})}),i=await s.json();if(!s.ok||i.error)return void w(i.error??`HTTP ${s.status}`);W({server:o.name,sessionId:i.sessionId})}catch{w(String(t("desktop.backupInstallSessionFailed")))}finally{E(null)}}},[e,I,t]),O=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:s,onChange:e=>i(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:"#ef4444"},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:a,onChange:e=>l(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:A,disabled:d,style:{display:"inline-flex",alignItems:"center",gap:7,padding:"8px 14px",background:"var(--accent)",border:"none",borderRadius:6,color:"#fff",fontSize:12,fontWeight:600,cursor:d?"wait":"pointer"},children:[(0,n.jsx)(aS.f,{size:15,"aria-hidden":"true"}),d?t("desktop.backupExporting"):t("desktop.backupExportButton")]}),p&&(0,n.jsx)("p",{style:{margin:"8px 0 0",fontSize:11,color:"#ef4444"},children:p})]}),(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:o,type:"file",accept:".zip,application/zip",onChange:e=>N(e.target.files?.[0]),style:{display:"none"}}),(0,n.jsxs)("button",{type:"button",onClick:()=>o.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)(aC._,{size:15,"aria-hidden":"true"}),t("desktop.backupImportButton")]}),b&&(0,n.jsx)("p",{style:{margin:"0 0 10px",fontSize:11,color:"#ef4444",lineHeight:1.5},children:b}),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 ",O(h.preview.manifest.sourcePlatform)," →",O(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:m.has(e),onChange:t=>{let o=new Set(m);t.target.checked?o.add(e):o.delete(e),f(o)}}),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(o=>(0,n.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:8,fontSize:12},children:[(0,n.jsx)("input",{type:"checkbox",checked:!x.has(o.name),onChange:e=>{let t=new Set(x);e.target.checked?t.delete(o.name):t.add(o.name),k(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:o.name}),(0,n.jsx)("span",{style:{fontSize:10,padding:"1px 6px",borderRadius:8,background:"manual"===o.action||"keep-with-warning"===o.action?"rgba(239,68,68,0.15)":"var(--bg-selected)",color:"manual"===o.action||"keep-with-warning"===o.action?"#ef4444":"var(--text-muted)"},children:aT[o.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:o.original.command}),o.adapted&&o.adapted.command!==o.original.command&&(0,n.jsxs)(n.Fragment,{children:[" → ",(0,n.jsx)("code",{style:{fontFamily:"var(--font-mono)",color:"var(--text)"},children:o.adapted.command})]})]}),o.reason&&(0,n.jsx)("div",{style:{fontSize:11,color:"#ef4444"},children:o.reason}),"manual"===o.action&&o.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:R.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:P===o.name,onClick:()=>L(o),style:{padding:"4px 10px",fontSize:11,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:4,color:"var(--text)",cursor:P===o.name?"wait":"pointer"},children:P===o.name?"…":t("desktop.backupInstallSession")}),D?.server===o.name&&(0,n.jsx)("a",{href:`?session=${encodeURIComponent(D.sessionId)}`,style:{fontSize:11,color:"var(--accent)"},children:t("desktop.backupOpenSession")})]})]})]},o.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:v,onChange:e=>y(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:"#ef4444",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:$,disabled:j||0===m.size,style:{display:"inline-flex",alignItems:"center",gap:7,padding:"8px 14px",background:"var(--accent)",border:"none",borderRadius:6,color:"#fff",fontSize:12,fontWeight:600,cursor:j?"wait":"pointer",opacity:0===m.size?.5:1},children:[(0,n.jsx)(aC._,{size:15,"aria-hidden":"true"}),j?t("desktop.backupRestoring"):t("desktop.backupRestoreButton")]}),(0,n.jsx)("button",{type:"button",onClick:()=>{g(null),o.current&&(o.current.value="")},disabled:j,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)(nd.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:"#4ade80",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:"#fbbf24",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:"#ef4444",marginBottom:4},children:[(0,n.jsx)(G.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:"#ef4444",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:"#fbbf24",lineHeight:1.5},children:t("desktop.backupRestartHint")})]})]})]})}let az={position:"relative",width:40,height:22,borderRadius:11,border:"none",cursor:"pointer",padding:0,flexShrink:0,transition:"background 0.18s ease",outline:"none"},aI={position:"absolute",top:3,width:16,height:16,borderRadius:"50%",background:"#fff",transition:"left 0.18s ease, transform 0.18s ease",boxShadow:"0 1px 3px rgba(0,0,0,0.18)"};function aM({checked:e,onChange:t,label:o,description:r}){return(0,n.jsxs)("label",{style:{display:"flex",alignItems:r?"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:o}),r&&(0,n.jsx)("span",{style:{display:"block",fontSize:11,lineHeight:1.5,color:"var(--text-muted)",marginTop:2},children:r})]}),(0,n.jsx)("button",{type:"button",role:"switch","aria-checked":e,onClick:o=>{o.preventDefault(),t(!e)},style:{...az,background:e?"var(--accent)":"color-mix(in srgb, var(--border) 70%, var(--bg))"},children:(0,n.jsx)("span",{style:{...aI,left:e?21:3}})})]})}function aP({title:e,description:t,children:o}){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:o})]})}let aE="pi-input-shortcut";function aF(){try{let e=localStorage.getItem(aE);return"ctrl-enter"===e?"ctrl-enter":"enter"}catch{return"enter"}}function aD(){let{t:e}=(0,F.s)(),[t,o]=(0,r.useState)(aF);(0,r.useEffect)(()=>{let e=()=>o(aF());return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[]);let s=(0,r.useCallback)(e=>{o(e);try{localStorage.setItem(aE,e),window.dispatchEvent(new StorageEvent("storage",{key:aE,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)(aP,{title:e("desktop.inputShortcut"),description:e("desktop.inputShortcutDescription"),children:(0,n.jsx)(aM,{checked:"ctrl-enter"===t,onChange:e=>s(e?"ctrl-enter":"enter"),label:e("desktop.useCtrlEnter"),description:e("desktop.useCtrlEnterDescription")})})]})}var aW=o(95650),aA=o(55803),aN=o(23602),a$=o(18613),aL=o(12779);let aO={display:"flex",gap:6,flexWrap:"wrap"};function aH(e,t,o){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:o?"not-allowed":"pointer",opacity:o?.5:1,transition:"border-color 0.15s, background 0.15s, color 0.15s",outline:"none",whiteSpace:"nowrap"}}function aB({icon:e,label:t,actions:o}){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}),o&&(0,n.jsx)("span",{style:{display:"inline-flex",alignItems:"center",gap:12,marginLeft:"auto"},children:o})]})}let aU={display:"inline-flex",alignItems:"center",gap:6,padding:0,border:0,background:"transparent",color:"var(--accent)",fontSize:11,cursor:"pointer",whiteSpace:"nowrap"},a_={onMouseEnter:e=>{e.currentTarget.style.textDecoration="underline"},onMouseLeave:e=>{e.currentTarget.style.textDecoration="none"}};function aq({title:e,description:t,children:o}){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}),o]})}function aV({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 aK({hasDark:e,hasLight:t,darkColor:o,lightColor:r,t:s}){return(0,n.jsxs)("span",{style:{display:"inline-flex",gap:3,alignItems:"center",flexShrink:0},children:[e&&(0,n.jsx)("span",{title:s("desktop.darkVariant"),style:{display:"inline-block",width:7,height:7,borderRadius:"50%",background:o??"#7c6f64"}}),t&&(0,n.jsx)("span",{title:s("desktop.lightVariant"),style:{display:"inline-block",width:7,height:7,borderRadius:"50%",background:r??"#d5c4a1",border:"1px solid rgba(0,0,0,0.1)"}})]})}function aG(){let{mode:e,resolvedMode:t,themeName:o,setMode:s,setTheme:i,previewTheme:a,clearPreview:l,isThemeCached:d,borderDepth:c,setBorderDepth:p}=ov(),{locale:u,setLocale:h,t:g}=(0,F.s)(),[m,f]=(0,r.useState)([]),[x,k]=(0,r.useState)(!0),[v,y]=(0,r.useState)(null),[b,w]=(0,r.useState)(null);(0,r.useEffect)(()=>{let e=!1;return fetch("/api/themes").then(e=>e.ok?e.json():null).then(t=>{!e&&t&&f(t.themeSets)}).catch(()=>{}).finally(()=>{e||k(!1)}),()=>{e=!0}},[]);let j=(0,r.useCallback)(e=>{y(e),i(e).finally(()=>y(null))},[i]),S=(0,r.useRef)(null),C=(0,r.useCallback)(e=>{w(e),null!==S.current&&window.clearTimeout(S.current),S.current=window.setTimeout(()=>{S.current=null,null!==e?d(e)&&a(e):l()},160)},[a,l,d]),T=(0,r.useCallback)(e=>{s(e)},[s]),R=(0,r.useCallback)(()=>{window.piDesktop?.openThemeFolder()},[]),z=(0,r.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:g("desktop.display")})}),(0,n.jsxs)(aq,{title:g("desktop.theme"),description:g("desktop.themeDescription"),children:[(0,n.jsx)(aB,{icon:(0,n.jsx)(aW.p,{size:14,weight:"fill"}),label:g("desktop.colorScheme"),actions:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("button",{type:"button",onClick:R,style:aU,...a_,children:[(0,n.jsx)(aA.N,{size:12,weight:"regular","aria-hidden":"true"}),g("desktop.openThemeFolder")]}),(0,n.jsxs)("button",{type:"button",onClick:z,style:aU,...a_,children:[(0,n.jsx)(aN.B,{size:12,weight:"regular","aria-hidden":"true"}),g("desktop.learnPiThemes")]})]})}),x?(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-dim)"},children:g("desktop.loadingThemes")}):(0,n.jsxs)("div",{style:aO,children:[(0,n.jsx)("button",{type:"button",onClick:()=>j(""),disabled:null!==v,style:aH(""===o,"__default__"===b,null!==v),onMouseEnter:()=>C(""),onMouseLeave:()=>C(null),children:g("desktop.defaultTheme")}),m.map(e=>(0,n.jsxs)("button",{type:"button",onClick:()=>j(e.name),disabled:null!==v,style:aH(o===e.name,b===e.name,v===e.name),onMouseEnter:()=>C(e.name),onMouseLeave:()=>C(null),children:[e.displayName,(0,n.jsx)(aK,{hasDark:e.hasDark,hasLight:e.hasLight,darkColor:e.accent,lightColor:e.accentLight,t:g})]},e.name))]}),(0,n.jsxs)("div",{style:{marginTop:20},children:[(0,n.jsx)(aB,{icon:(0,n.jsx)(aV,{depth:c}),label:`${g("desktop.borderVisibility")} (${c})`}),(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:g("desktop.borderSubtle")}),(0,n.jsx)("input",{type:"range",min:0,max:100,step:1,value:c,onChange:e=>p(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:g("desktop.borderBold")})]}),(0,n.jsx)("div",{style:{marginTop:10,display:"flex",gap:10},children:[0,25,50,75,100].map(e=>{let t=c===e,o=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:()=>p(e),style:{width:28,height:20,border:`2px solid ${t?"var(--accent)":o}`,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)(aB,{icon:"dark"===t?(0,n.jsx)(a$.A,{size:14,weight:"fill"}):(0,n.jsx)(aL.b,{size:14,weight:"fill"}),label:g("desktop.appearanceMode")}),(0,n.jsx)("div",{style:aO,children:[{value:"light",icon:(0,n.jsx)(aL.b,{size:15,weight:"light"===e?"fill":"regular"})},{value:"dark",icon:(0,n.jsx)(a$.A,{size:15,weight:"dark"===e?"fill":"regular"})},{value:"system",icon:(0,n.jsx)(ak.V,{size:15,weight:"system"===e?"fill":"regular"})}].map(t=>{let o=e===t.value;return(0,n.jsxs)("button",{type:"button",onClick:()=>T(t.value),style:aH(o,b===`mode:${t.value}`),onMouseEnter:()=>w(`mode:${t.value}`),onMouseLeave:()=>w(null),children:[t.icon,g(`desktop.${t.value}`)]},t.value)})})]}),!x&&0===m.length&&(0,n.jsxs)("p",{style:{margin:"14px 0 0",fontSize:11,color:"var(--text-dim)",lineHeight:1.5},children:[g("desktop.noCustomThemes")," ",g("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"})," ",g("desktop.noCustomThemesHint2")]})]}),(0,n.jsx)(aq,{title:g("desktop.language"),description:g("desktop.languageDescription"),children:(0,n.jsx)("div",{style:aO,children:["en","zh-CN"].map(e=>(0,n.jsx)("button",{type:"button",onClick:()=>h("zh-CN"===e?"zh-CN":"en"),style:aH("zh-CN"===e?"zh-CN"===u:"zh-CN"!==u,b===`lang:${e}`),onMouseEnter:()=>w(`lang:${e}`),onMouseLeave:()=>w(null),children:"en"===e?g("desktop.english"):g("desktop.chinese")},e))})})]})}var aJ=o(94638);function aY({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 aX({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 aZ({children:e}){return(0,n.jsx)("div",{style:{padding:"0 14px"},children:e})}function aQ({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 a0=[{value:"normal",labelKey:"modes.collabNormal"},{value:"plan",labelKey:"modes.collabPlan"},{value:"goal",labelKey:"modes.collabGoal"}],a1=[{value:"economy",labelKey:"modes.tokenEconomy"},{value:"full",labelKey:"modes.tokenFull"},{value:"delivery",labelKey:"modes.tokenDelivery"}],a2=[{value:"ask",labelKey:"modes.approvalAsk"},{value:"auto",labelKey:"modes.approvalAuto"},{value:"yolo",labelKey:"modes.approvalYolo"}];function a4({options:e,value:t,onChange:o,disabled:r,accentFor:s}){let{t:i}=(0,F.s)();return(0,n.jsx)("div",{role:"radiogroup",style:{display:"flex",border:"1px solid var(--border)",borderRadius:8,overflow:"hidden",height:28,flexShrink:0},children:e.map(e=>{let a=e.value===t,l=s?.(e.value);return(0,n.jsx)("button",{type:"button",role:"radio","aria-checked":a,disabled:r,onClick:()=>{e.value!==t&&o(e.value)},style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",padding:"0 12px",background:a?"var(--bg-selected)":"none",border:"none",color:a?l??"var(--accent)":"var(--text-muted)",cursor:r?"not-allowed":"pointer",fontSize:11.5,fontWeight:a?650:500,opacity:r?.5:1,whiteSpace:"nowrap",transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{a||r||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{a||(e.currentTarget.style.background="none")},children:i(e.labelKey)},e.value)})})}function a6(){let{t:e}=(0,F.s)(),[t,o]=(0,r.useState)({tasksBoard:!0}),[s,i]=(0,r.useState)(null),[a,l]=(0,r.useState)(!1),[d,c]=(0,r.useState)(!1);(0,r.useEffect)(()=>{let e=!1;return(async()=>{try{let[t,n]=await Promise.all([fetch("/api/features"),fetch("/api/modes")]);if(!e&&t.ok){let e=await t.json();o(t=>({...t,...e}))}if(!e&&n.ok){let e=await n.json();i({collaborationMode:eN(e.collaborationMode),tokenMode:e$(e.tokenMode),toolApprovalMode:eL(e.toolApprovalMode),permissionRules:e.permissionRules??{allow:[],ask:[],deny:[]}})}e||l(!0)}catch{}})(),()=>{e=!0}},[]);let p=(0,r.useCallback)(async e=>{c(!0);try{let t=await fetch("/api/features",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({tasksBoard:e})});if(t.ok){let e=await t.json();o(t=>({...t,...e.features})),window.dispatchEvent(new CustomEvent("pi:features-changed"))}}catch{}finally{c(!1)}},[]),u=(0,r.useCallback)(async e=>{c(!0);try{let t=await fetch("/api/modes",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(t.ok){let e=await t.json();i(t=>t?{...t,collaborationMode:eN(e.modes?.collaborationMode??t.collaborationMode),tokenMode:e$(e.modes?.tokenMode??t.tokenMode),toolApprovalMode:eL(e.modes?.toolApprovalMode??t.toolApprovalMode),permissionRules:e.modes?.permissionRules??t.permissionRules}:t),window.dispatchEvent(new CustomEvent("pi:modes-changed"))}}catch{}finally{c(!1)}},[]);return(0,n.jsx)("div",{style:{flex:1,overflow:"auto",minWidth:0,padding:"20px 22px",display:"flex",flexDirection:"column",gap:16},children:(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[a?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(aY,{children:(0,n.jsx)(aZ,{children:(0,n.jsx)(aM,{checked:t.tasksBoard,onChange:e=>void p(e),label:(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6},children:[(0,n.jsx)(aJ.x,{size:14,"aria-hidden":"true"}),e("desktop.featuresTasksBoard"),(0,n.jsx)("span",{style:{borderRadius:999,background:"rgba(37,99,235,0.12)",color:"var(--accent)",padding:"1px 7px",fontSize:9,fontWeight:700,textTransform:"uppercase",letterSpacing:"0.04em"},children:"Beta"})]}),description:e("desktop.featuresTasksBoardDesc")})})}),s&&(0,n.jsxs)(aY,{children:[(0,n.jsx)(aX,{children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:16,padding:"12px 0"},children:[(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"var(--text)"},children:e("desktop.featuresCollabDefault")}),(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:2},children:e("desktop.featuresCollabDefaultDesc")})]}),(0,n.jsx)(a4,{options:a0,value:s.collaborationMode,onChange:e=>void u({collaborationMode:e}),disabled:d})]})}),(0,n.jsx)(aX,{children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:16,padding:"12px 0"},children:[(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"var(--text)"},children:e("desktop.featuresTokenDefault")}),(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:2},children:e("desktop.featuresTokenDefaultDesc")})]}),(0,n.jsx)(a4,{options:a1,value:s.tokenMode,onChange:e=>void u({tokenMode:e}),disabled:d})]})}),(0,n.jsx)(aZ,{children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:16,padding:"12px 0"},children:[(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"var(--text)"},children:e("desktop.featuresApprovalDefault")}),(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:2},children:e("desktop.featuresApprovalDefaultDesc")})]}),(0,n.jsx)(a4,{options:a2,value:s.toolApprovalMode,onChange:e=>void u({toolApprovalMode:e}),disabled:d,accentFor:e=>"yolo"===e?"var(--accent-red, #ef4444)":void 0})]})})]})]}):(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)"},children:e("desktop.featuresLoading")}),(0,n.jsx)(aQ,{children:e("desktop.featuresDesc")}),d&&(0,n.jsx)("div",{style:{padding:"0 2px",fontSize:11,color:"var(--text-muted)"},children:e("desktop.featuresSaving")})]})})}var a8=o(76553);function a5({open:e,onClose:t,children:o}){let[s,i]=(0,r.useState)(!1),[a,l]=(0,r.useState)(!1);return((0,r.useEffect)(()=>{if(e)l(!0),requestAnimationFrame(()=>requestAnimationFrame(()=>i(!0)));else{i(!1);let e=setTimeout(()=>l(!1),250);return()=>clearTimeout(e)}},[e]),a)?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{onClick:t,style:{position:"fixed",inset:0,zIndex:1001,background:s?"rgba(0,0,0,0.35)":"rgba(0,0,0,0)",transition:"background 0.25s ease"}}),(0,n.jsxs)("div",{style:{position:"fixed",bottom:0,left:0,right:0,zIndex:1002,maxHeight:"85dvh",borderRadius:"16px 16px 0 0",background:"var(--bg)",boxShadow:"0 -4px 24px rgba(0,0,0,0.15)",transform:s?"translateY(0)":"translateY(100%)",transition:"transform 0.25s cubic-bezier(0.32, 0.72, 0, 1)",display:"flex",flexDirection:"column",overflow:"hidden"},children:[(0,n.jsx)("div",{style:{display:"flex",justifyContent:"center",padding:"10px 0 4px",flexShrink:0},children:(0,n.jsx)("div",{style:{width:36,height:4,borderRadius:2,background:"var(--border)"}})}),(0,n.jsx)("div",{style:{flex:1,overflow:"auto",minHeight:0},children:o})]})]}):null}function a3({onSessionsChanged:e}){let{t}=(0,F.s)(),o=$(),[s,i]=(0,r.useState)(null),[a,l]=(0,r.useState)([]),[d,c]=(0,r.useState)([]),[u,h]=(0,r.useState)(new Set),[g,m]=(0,r.useState)(null),[f,x]=(0,r.useState)({imported:0,skipped:0,errors:0,total:0,done:!1}),[k,v]=(0,r.useState)([]),[y,b]=(0,r.useState)(!1),[w,j]=(0,r.useState)({done:0,total:0}),[S,C]=(0,r.useState)(!1),[T,R]=(0,r.useState)(null),[z,M]=(0,r.useState)(!1),P=(0,r.useCallback)(async()=>{C(!0),R(null);try{let e=await fetch("/api/import/discover"),t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);l(t.sources),t.reasonix?.available&&(c(t.reasonix.projects),i("reasonix"))}catch(e){R(e instanceof Error?e.message:String(e))}finally{C(!1)}},[]),[E,D]=(0,r.useState)(!1);(0,r.useEffect)(()=>{E||(D(!0),P())},[E,P]);let W=(0,r.useCallback)(async()=>{if(0!==u.size&&s){C(!0),R(null);try{let e=await fetch("/api/import/execute",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({source:s,projects:[...u]})}),t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);m(t.jobId)}catch(e){R(e instanceof Error?e.message:String(e))}finally{C(!1)}}},[s,u]);(0,r.useEffect)(()=>{let t;if(!g)return;let o=!0,n=async()=>{if(o)try{let r=await fetch(`/api/import/status?jobId=${encodeURIComponent(g)}`),s=await r.json();if(!o)return;x({imported:s.imported??0,skipped:s.skipped??0,errors:s.errors??0,total:s.total??0,done:s.done??!1}),s.done&&s.sessionIds&&(v(s.sessionIds),e?.()),s.done||(t=setTimeout(n,800))}catch{o&&(t=setTimeout(n,2e3))}};return n(),()=>{o=!1,clearTimeout(t)}},[g,e]);let A=(0,r.useCallback)(async()=>{if(0===k.length)return;b(!0),j({done:0,total:k.length});let t=0,o=async()=>{for(;t<k.length;){let e=t++,o=k[e];if(o){try{await fetch(`/api/sessions/${encodeURIComponent(o)}/auto-name`,{method:"POST"})}catch{}j({done:e+1,total:k.length})}}},n=Array.from({length:Math.min(4,k.length)},o);await Promise.all(n),b(!1),e?.()},[k,e]);if(f.done&&k.length>0)return(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},children:[(0,n.jsx)(nO.r,{size:20,weight:"fill",style:{color:"#4ade80"}}),(0,n.jsx)("span",{style:{fontSize:14,fontWeight:600,color:"var(--text)"},children:t("desktop.importDone")??"导入完成"})]}),(0,n.jsxs)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.6},children:[t("desktop.importedSummary",{imported:f.imported})??`成功导入 ${f.imported} 个会话`,f.skipped>0&&(0,n.jsx)("span",{style:{marginLeft:8},children:t("desktop.importSkippedCount",{skipped:f.skipped})??`,${f.skipped} 个跳过`}),f.errors>0&&(0,n.jsx)("span",{style:{marginLeft:8,color:"#ef4444"},children:t("desktop.importErrorsCount",{errors:f.errors})??`,${f.errors} 个失败`})]}),y?(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,fontSize:12,color:"var(--text-muted)"},children:[(0,n.jsx)(_.y,{size:14,style:{animation:"spin 1s linear infinite"}}),t("desktop.importGeneratingTitles")??"正在生成标题…"," ","(",w.done,"/",w.total,")"]}):(0,n.jsxs)("button",{type:"button",onClick:A,style:{display:"inline-flex",alignItems:"center",gap:7,padding:"8px 14px",background:"var(--accent)",border:"none",borderRadius:6,color:"#fff",fontSize:12,fontWeight:600,cursor:"pointer",alignSelf:"flex-start"},children:[(0,n.jsx)(a8.o,{size:15}),t("desktop.importGenerateTitles")??"为导入的会话生成标题"]}),(0,n.jsx)("button",{type:"button",onClick:()=>{m(null),x({imported:0,skipped:0,errors:0,total:0,done:!1}),v([]),b(!1),j({done:0,total:0})},style:{display:"inline-flex",alignItems:"center",gap:7,padding:"8px 14px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",fontSize:12,cursor:"pointer",alignSelf:"flex-start"},children:t("desktop.importAgain")??"再次导入"})]});let N=(0,n.jsxs)("div",{style:{padding:o?"12px 18px":"18px 22px",display:"flex",flexDirection:"column",gap:14},children:[T&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:8,fontSize:12,color:"#ef4444",lineHeight:1.5},children:[(0,n.jsx)(G.N,{size:14,style:{flexShrink:0,marginTop:1}}),(0,n.jsx)("span",{children:T})]}),!g&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.6},children:t("desktop.importSessionsDesc")??"从其他 AI 编码工具导入历史对话记录到 pi-web。目前支持 Reasonix,更多工具陆续支持中。"}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:a.map(e=>(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:10,padding:"10px 14px",border:"1px solid var(--border)",borderRadius:8,cursor:"available"===e.status?"pointer":"default",background:s===e.key?"var(--bg-selected)":"var(--bg-panel)",opacity:"unavailable"===e.status?.5:"coming-soon"===e.status?.7:1,transition:"background 0.12s"},children:[(0,n.jsx)("input",{type:"radio",name:"import-source",value:e.key,checked:s===e.key,disabled:"available"!==e.status,onChange:()=>i(e.key)}),(0,n.jsxs)("div",{style:{flex:1},children:[(0,n.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"var(--text)"},children:e.label}),"coming-soon"===e.status&&(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",marginTop:1},children:t("desktop.comingSoon")??"即将支持"})]}),"reasonix"===e.key&&d.length>0&&(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-muted)"},children:[d.length," ",t("desktop.projects")??"个项目"," \xb7 ",d.reduce((e,t)=>e+t.sessions,0)," ",t("desktop.sessions")??"会话"]})]},e.key))}),"reasonix"===s&&d.length>0&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,n.jsx)("span",{style:{fontSize:12,fontWeight:600,color:"var(--text)"},children:t("desktop.importSelectProjects")??"选择要导入的项目"}),(0,n.jsx)("button",{type:"button",onClick:()=>h(new Set(d.map(e=>e.name))),style:a7,children:t("desktop.importSelectAll")??"全选"}),(0,n.jsx)("button",{type:"button",onClick:()=>h(new Set),style:a7,children:t("desktop.importDeselectAll")??"取消全选"})]}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:d.map(e=>(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:10,padding:"8px 12px",border:"1px solid var(--border)",borderRadius:6,cursor:"pointer",background:u.has(e.name)?"var(--bg-selected)":"transparent",transition:"background 0.12s"},children:[(0,n.jsx)("input",{type:"checkbox",checked:u.has(e.name),onChange:()=>{var t;return t=e.name,void h(e=>{let o=new Set(e);return o.has(t)?o.delete(t):o.add(t),o})}}),(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:12,fontWeight:500,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),(0,n.jsxs)("div",{style:{fontSize:11,color:"var(--text-dim)",marginTop:2},children:[e.sessions," ",t("desktop.sessions")??"会话",e.matched&&(0,n.jsxs)("span",{style:{marginLeft:8,color:"var(--accent)"},children:["→ ",t("desktop.importMerged")??"合并到现有项目",e.existingCount>0&&` (${t("desktop.importExistingCount",{count:e.existingCount})??`${e.existingCount} 个已有`})`]}),!e.matched&&(0,n.jsxs)("span",{style:{marginLeft:8,color:"var(--text-muted)"},children:["→ ",t("desktop.importNewProject")??"新建项目"]})]})]})]},e.name))}),(0,n.jsx)("button",{type:"button",onClick:W,disabled:S||0===u.size,style:{display:"inline-flex",alignItems:"center",gap:7,padding:"8px 14px",background:"var(--accent)",border:"none",borderRadius:6,color:"#fff",fontSize:12,fontWeight:600,cursor:0===u.size?"not-allowed":"pointer",alignSelf:"flex-start",opacity:0===u.size?.5:1},children:S?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(_.y,{size:14,style:{animation:"spin 1s linear infinite"}})," ",t("desktop.importing")??"导入中…"]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(I.z,{size:15})," ",t("desktop.importStart")??"开始导入"]})})]}),"reasonix"===s&&0===d.length&&!S&&(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",padding:"12px 0"},children:t("desktop.importNoData")??"未找到 Reasonix 数据。请确认 ~/.reasonix/projects/ 目录存在且包含会话文件。"})]}),g&&!f.done&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,fontSize:12,color:"var(--text)"},children:[(0,n.jsx)(_.y,{size:14,style:{animation:"spin 1s linear infinite"}}),t("desktop.importing")??"导入中…"]}),(0,n.jsx)("div",{style:{height:6,borderRadius:3,background:"var(--bg-panel)",overflow:"hidden"},children:(0,n.jsx)("div",{style:{height:"100%",borderRadius:3,background:"var(--accent)",width:`${f.total>0?(f.imported+f.skipped+f.errors)/f.total*100:0}%`,transition:"width 0.3s ease"}})}),(0,n.jsxs)("div",{style:{fontSize:11,color:"var(--text-dim)"},children:[f.imported+f.skipped+f.errors," / ",f.total,f.skipped>0&&` \xb7 ${t("desktop.importSkippedCount",{skipped:f.skipped})??`${f.skipped} 跳过`}`]})]})]});return o?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("button",{type:"button",onClick:()=>M(!0),style:{display:"flex",alignItems:"center",gap:8,padding:"10px 14px",width:"100%",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:8,color:"var(--text)",fontSize:12,cursor:"pointer"},children:[(0,n.jsx)(I.z,{size:16}),(0,n.jsx)("span",{style:{fontWeight:500},children:t("desktop.importSessions")??"导入会话"})]}),(0,n.jsxs)(a5,{open:z,onClose:()=>M(!1),children:[(0,n.jsxs)("div",{style:{padding:"4px 18px 14px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,n.jsx)("span",{style:{fontSize:15,fontWeight:700,color:"var(--text)"},children:t("desktop.importSessions")??"导入会话"}),(0,n.jsx)("button",{onClick:()=>M(!1),style:a9,children:(0,n.jsx)(p.X,{size:18})})]}),N]})]}):N}let a7={background:"none",border:"none",color:"var(--accent)",fontSize:11,cursor:"pointer",padding:"2px 4px"},a9={background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",padding:4,display:"flex"},le="deepseek-vision",lt={padding:"7px 9px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",fontSize:12,fontFamily:"var(--font-mono)",width:"100%",boxSizing:"border-box"};function lo(){return{fontSize:12,color:"var(--text-muted)"}}let ln={padding:"7px 12px",border:"none",borderRadius:6,background:"var(--accent)",color:"#fff",cursor:"pointer",fontSize:12};function lr({sessionId:e}){let{t}=(0,F.s)(),[o,s]=(0,r.useState)(!1),[i,a]=(0,r.useState)(null),[l,d]=(0,r.useState)(!1),[c,p]=(0,r.useState)(null),[u,h]=(0,r.useState)(!1),[g,m]=(0,r.useState)({}),[f,x]=(0,r.useState)(""),[k,v]=(0,r.useState)(""),[y,b]=(0,r.useState)("eager"),[w,j]=(0,r.useState)(!1),[S,C]=(0,r.useState)(null),[T,R]=(0,r.useState)(!1),[z,I]=(0,r.useState)(!1),[M,P]=(0,r.useState)({provider:"custom",baseUrl:"",apiKey:"",model:"",maxTokens:4096,hasApiKey:!1}),[E,D]=(0,r.useState)(""),[W,A]=(0,r.useState)(""),[N,$]=(0,r.useState)(!1),[L,O]=(0,r.useState)(null),[H,B]=(0,r.useState)(!1);(0,r.useEffect)(()=>{let e=!1;return(async()=>{a(null);try{let[t,o]=await Promise.all([fetch("/api/mcp"),fetch("/api/vision-config")]),n=await t.json();if(!t.ok||n.error)throw Error(n.error??`HTTP ${t.status}`);let r=await o.json();if(!o.ok||r.error)throw Error(r.error??`HTTP ${o.status}`);if(e)return;m(n.mcpServers??{}),x(n.filePath);let i=(n.mcpServers??{})[le];v(i?.command??""),b(i?.lifecycle==="lazy"?"lazy":"eager"),P({provider:r.provider,baseUrl:r.baseUrl,apiKey:"",model:r.model,maxTokens:r.maxTokens,hasApiKey:r.hasApiKey}),r.path&&A(r.path),s(!0)}catch(t){e||a(t instanceof Error?t.message:String(t))}})(),()=>{e=!0}},[]);let U=(0,r.useCallback)(async()=>{if(!k.trim())return void C(t("desktop.mcpVisionCommandRequired"));j(!0),C(null),R(!1),I(!1);try{let e=g[le],t={...g,[le]:{...e??{},command:k.trim(),args:Array.isArray(e?.args)?e.args:[],transport:"stdio",lifecycle:y}},o=await fetch("/api/mcp",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({mcpServers:t})}),n=await o.json();if(!o.ok||n.error)throw Error(n.error??`HTTP ${o.status}`);m(t),R(!0)}catch(e){C(e instanceof Error?e.message:String(e))}finally{j(!1)}},[g,k,y,t]),_=(0,r.useCallback)(async()=>{j(!0),C(null),R(!1),I(!1);try{let e={...g};delete e[le];let t=await fetch("/api/mcp",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({mcpServers:e})}),o=await t.json();if(!t.ok||o.error)throw Error(o.error??`HTTP ${t.status}`);m(e),v(""),b("eager"),I(!0)}catch(e){C(e instanceof Error?e.message:String(e))}finally{j(!1)}},[g]),q=(0,r.useCallback)(async()=>{$(!0),O(null),B(!1);try{let e=await fetch("/api/vision-config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({...M,...E?{apiKey:E}:{}})}),t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);P({...t,apiKey:"",hasApiKey:t.hasApiKey}),D(""),B(!0)}catch(e){O(e instanceof Error?e.message:String(e))}finally{$(!1)}},[M,E]),V=(0,r.useCallback)(async()=>{if(e){d(!0),p(null),h(!1);try{let t=await fetch("/api/mcp/restart",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:e,name:le})}),o=await t.json();if(!t.ok||o.error)throw Error(o.error??`HTTP ${t.status}`);h(!0)}catch(e){p(e instanceof Error?e.message:String(e))}finally{d(!1)}}},[e]),K=!!g[le];return(0,n.jsxs)(aY,{children:[(0,n.jsx)(aX,{children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:7,padding:"12px 0"},children:[(0,n.jsx)(rG.k,{size:15,"aria-hidden":"true"}),(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,n.jsx)("span",{style:{fontSize:13,fontWeight:600,color:"var(--text)"},children:t("desktop.mcpVisionTitle")}),(0,n.jsx)("span",{style:{fontSize:10,padding:"1px 6px",borderRadius:3,background:K?"rgba(37,99,235,0.12)":"rgba(245,158,11,0.12)",color:K?"var(--accent)":"#d97706",textTransform:"capitalize"},children:K?t("desktop.mcpVisionRegistered"):t("desktop.mcpVisionNotRegistered")})]}),(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:2},children:t("desktop.mcpVisionDesc")})]})]})}),o?i?(0,n.jsx)(aZ,{children:(0,n.jsx)("div",{style:{padding:"8px 0",fontSize:12,color:"#ef4444"},children:i})}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(aX,{children:(0,n.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",padding:"10px 0 2px"},children:t("desktop.mcpVisionRegistration")})}),(0,n.jsx)(aX,{children:(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(120px, 180px) 1fr",gap:8,alignItems:"center",padding:"6px 0"},children:[(0,n.jsxs)("span",{style:lo(),children:[t("desktop.mcpVisionCommand")," *"]}),(0,n.jsx)("input",{value:k,onChange:e=>v(e.target.value),placeholder:"/path/to/deepseek-vision-mcp",style:lt}),(0,n.jsx)("span",{style:lo(),children:t("desktop.mcpVisionLifecycle")}),(0,n.jsxs)("select",{value:y,onChange:e=>b(e.target.value),style:{...lt,fontFamily:"var(--font-mono)"},children:[(0,n.jsx)("option",{value:"eager",children:"eager"}),(0,n.jsx)("option",{value:"lazy",children:"lazy"})]}),(0,n.jsx)("span",{style:lo(),children:t("desktop.mcpVisionTransport")}),(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",fontFamily:"var(--font-mono)",padding:"7px 0"},children:t("desktop.mcpVisionTransportFixed")})]})}),(0,n.jsx)(aX,{children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"6px 0",flexWrap:"wrap"},children:[(0,n.jsx)("button",{type:"button",onClick:()=>void U(),disabled:w,style:{...ln,cursor:w?"wait":"pointer"},children:w?t("desktop.saving"):t("desktop.mcpVisionSaveReg")}),K&&(0,n.jsx)("button",{type:"button",onClick:()=>void _(),disabled:w,title:t("desktop.mcpVisionRemove"),style:{padding:"7px 12px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"#ef4444",cursor:w?"not-allowed":"pointer",fontSize:12},children:t("desktop.mcpVisionRemove")}),T&&(0,n.jsx)("span",{style:{color:"#22c55e",fontSize:12},children:t("desktop.mcpVisionSavedReg")}),z&&(0,n.jsx)("span",{style:{color:"#22c55e",fontSize:12},children:t("desktop.mcpVisionRemoved")}),S&&(0,n.jsx)("span",{style:{color:"#ef4444",fontSize:12},children:S})]})}),(0,n.jsx)(aX,{children:(0,n.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",padding:"10px 0 2px"},children:t("desktop.mcpVisionModelConfig")})}),(0,n.jsx)(aX,{children:(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(120px, 180px) 1fr",gap:8,alignItems:"center",padding:"6px 0"},children:[(0,n.jsx)("span",{style:lo(),children:t("desktop.mcpVisionProvider")}),(0,n.jsx)("input",{value:M.provider,onChange:e=>P(t=>({...t,provider:e.target.value})),style:lt}),(0,n.jsx)("span",{style:lo(),children:t("desktop.mcpVisionBaseUrl")}),(0,n.jsx)("input",{value:M.baseUrl,onChange:e=>P(t=>({...t,baseUrl:e.target.value})),style:lt}),(0,n.jsx)("span",{style:lo(),children:t("desktop.mcpVisionApiKey")}),(0,n.jsx)("input",{type:"password",value:E,onChange:e=>D(e.target.value),placeholder:M.hasApiKey?"••••••••":"API key",style:lt}),(0,n.jsx)("span",{style:lo(),children:t("desktop.mcpVisionModel")}),(0,n.jsx)("input",{value:M.model,onChange:e=>P(t=>({...t,model:e.target.value})),style:lt}),(0,n.jsx)("span",{style:lo(),children:t("desktop.mcpVisionMaxTokens")}),(0,n.jsx)("input",{type:"number",min:1,value:M.maxTokens,onChange:e=>P(t=>({...t,maxTokens:Number(e.target.value)||1})),style:lt})]})}),(0,n.jsx)(aZ,{children:(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8,padding:"6px 0"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[(0,n.jsx)("button",{type:"button",onClick:()=>void q(),disabled:N,style:{...ln,cursor:N?"wait":"pointer"},children:N?t("desktop.saving"):t("desktop.mcpVisionSaveModel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void V(),disabled:l||!e||!K,title:e?t("desktop.mcpVisionRestartTitle"):t("desktop.mcpVisionRestartNoSession"),style:{padding:"7px 12px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:!l&&e&&K?"pointer":"not-allowed",fontSize:12,opacity:!l&&e&&K?1:.5},children:l?t("desktop.mcpVisionRestarting"):t("desktop.mcpVisionRestart")}),H&&(0,n.jsx)("span",{style:{color:"#22c55e",fontSize:12},children:t("desktop.mcpVisionSavedModel")}),u&&(0,n.jsx)("span",{style:{color:"#22c55e",fontSize:12},children:t("desktop.mcpVisionRestarted")}),L&&(0,n.jsx)("span",{style:{color:"#ef4444",fontSize:12},children:L}),c&&(0,n.jsx)("span",{style:{color:"#ef4444",fontSize:12},children:c})]}),(0,n.jsxs)(aQ,{children:[t("desktop.mcpVisionModelNote"),W&&(0,n.jsx)("div",{style:{marginTop:4,fontFamily:"var(--font-mono)",fontSize:10},children:W}),f&&(0,n.jsx)("div",{style:{fontFamily:"var(--font-mono)",fontSize:10},children:f})]})]})})]}):(0,n.jsx)(aZ,{children:(0,n.jsx)("div",{style:{padding:"8px 0",fontSize:12,color:"var(--text-muted)"},children:t("desktop.loading")})})]})}function ls({sessionId:e,onApplied:t,onBeforeApply:o}){let{t:s}=(0,F.s)(),[i,a]=(0,r.useState)(!1),[l,d]=(0,r.useState)(!1),[c,p]=(0,r.useState)(null),u=(0,r.useCallback)(async()=>{if(e){a(!0),p(null),d(!1);try{await o?.(),await iS(e,{type:"reload"}),d(!0),await t?.()}catch(e){p(e instanceof Error?e.message:String(e))}finally{a(!1)}}},[e,t,o]),h=i||!e;return(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,n.jsx)("button",{type:"button",onClick:()=>void u(),disabled:h,title:s(e?"desktop.applyNowTitle":"desktop.applyNowNoSession"),style:{padding:"7px 12px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:h?"not-allowed":"pointer",fontSize:12,opacity:h?.5:1,whiteSpace:"nowrap"},children:s(i?"desktop.applyNowApplying":"desktop.applyNow")}),l&&(0,n.jsx)("span",{style:{color:"#22c55e",fontSize:12},children:s("desktop.applyNowDone")}),c&&(0,n.jsx)("span",{style:{color:"#ef4444",fontSize:12},children:c})]})}let li=["stdio","sse","http"],la=["eager","lazy"],ll={name:"",command:"",args:"",transport:"stdio",lifecycle:"eager",requestTimeoutMs:"",env:""},ld={padding:"7px 9px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",fontSize:12,fontFamily:"var(--font-mono)",width:"100%",boxSizing:"border-box"};function lc(){return{fontSize:12,color:"var(--text-muted)"}}function lp(e,t){return{fontSize:10,padding:"1px 6px",borderRadius:3,background:t,color:e,flexShrink:0,textTransform:"capitalize"}}function lu({sessionId:e}){let{t}=(0,F.s)(),[o,s]=(0,r.useState)({}),[i,a]=(0,r.useState)(""),[l,d]=(0,r.useState)(!1),[c,p]=(0,r.useState)(null),[u,h]=(0,r.useState)(null),[m,f]=(0,r.useState)(ll),[k,v]=(0,r.useState)(!1),[y,b]=(0,r.useState)(null),[w,j]=(0,r.useState)(!1),C=(0,r.useCallback)(async()=>{p(null);try{let e=await fetch("/api/mcp"),t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);s(t.mcpServers??{}),a(t.filePath)}catch(e){p(e instanceof Error?e.message:String(e))}finally{d(!0)}},[]);(0,r.useEffect)(()=>{C()},[C]);let T=(0,r.useCallback)(()=>{f(ll),h({name:"",isNew:!0}),b(null),j(!1)},[]),R=(0,r.useCallback)((e,t)=>{f({name:e,command:t.command??"",args:Array.isArray(t.args)?t.args.join("\n"):"",transport:"string"==typeof t.transport?t.transport:"stdio",lifecycle:"string"==typeof t.lifecycle?t.lifecycle:"eager",requestTimeoutMs:"number"==typeof t.requestTimeoutMs?String(t.requestTimeoutMs):"",env:void 0!==t.env?JSON.stringify(t.env,null,2):""}),h({name:e,isNew:!1}),b(null),j(!1)},[]),z=(0,r.useCallback)(async()=>{if(u){v(!0),b(null),j(!1);try{let e=m.name.trim();if(u.isNew&&!e)return void b("Server name is required");if(u.isNew&&!/^[a-zA-Z0-9_-]+$/.test(e))return void b("Allowed characters: a-z, A-Z, 0-9, _ and -");if(u.isNew&&e===le)return void b(t("desktop.mcpVisionNameReserved"));let n=function(e){if(!e.command.trim())return{error:"Command is required"};let t=e.args.split("\n").map(e=>e.trim()).filter(Boolean),o={command:e.command.trim(),args:t,transport:li.includes(e.transport)?e.transport:"stdio",lifecycle:la.includes(e.lifecycle)?e.lifecycle:"eager"};if(""!==e.requestTimeoutMs.trim()){let t=Number(e.requestTimeoutMs);if(!Number.isFinite(t)||t<=0)return{error:"Request timeout must be a positive number"};o.requestTimeoutMs=t}if(""!==e.env.trim())try{o.env=JSON.parse(e.env)}catch{return{error:"Environment must be valid JSON"}}return{server:o}}(m);if(n.error||!n.server)return void b(n.error??"Invalid server");let r={...o};u.isNew?r[e]=n.server:(delete r[u.name],r[m.name.trim()||u.name]=n.server);let i=await fetch("/api/mcp",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({mcpServers:r})}),a=await i.json();if(!i.ok||a.error)throw Error(a.error??`HTTP ${i.status}`);s(r),h(null),j(!0)}catch(e){b(e instanceof Error?e.message:String(e))}finally{v(!1)}}},[u,m,o,t]),I=(0,r.useCallback)(async e=>{v(!0),b(null);try{let t={...o};delete t[e];let n=await fetch("/api/mcp",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({mcpServers:t})}),r=await n.json();if(!n.ok||r.error)throw Error(r.error??`HTTP ${n.status}`);s(t),j(!0)}catch(e){b(e instanceof Error?e.message:String(e))}finally{v(!1)}},[o]),M=(0,r.useCallback)((e,t)=>{f(o=>({...o,[e]:t}))},[]),P=Object.entries(o).filter(([e])=>e!==le);return(0,n.jsx)("div",{style:{flex:1,overflow:"auto",minWidth:0,padding:"20px 22px",display:"flex",flexDirection:"column",gap:16},children:(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:l?c?(0,n.jsx)("div",{style:{fontSize:12,color:"#ef4444"},children:c}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12},children:[(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:14,fontWeight:700,color:"var(--text)"},children:t("desktop.mcpServers")}),(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",fontFamily:"var(--font-mono)",marginTop:2,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:i})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexShrink:0},children:[(0,n.jsx)(ls,{sessionId:e,onApplied:C}),(0,n.jsxs)("button",{type:"button",onClick:T,style:{display:"flex",alignItems:"center",gap:6,padding:"7px 12px",border:"none",borderRadius:6,background:"var(--accent)",color:"#fff",cursor:"pointer",fontSize:12,flexShrink:0},children:[(0,n.jsx)(x.c,{size:13,"aria-hidden":"true"}),t("desktop.mcpAddServer")]})]})]}),(0,n.jsx)(aQ,{children:t("desktop.mcpRestartNote")}),(0,n.jsx)(lr,{sessionId:e}),0!==P.length||u?P.map(([e,o])=>(0,n.jsx)(aY,{children:(0,n.jsx)(aZ,{children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"12px 0",minWidth:0},children:[(0,n.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,n.jsx)("span",{style:{fontSize:13,fontWeight:600,color:"var(--text)",fontFamily:"var(--font-mono)"},children:e}),(0,n.jsx)("span",{style:lp("var(--accent)","rgba(37,99,235,0.12)"),children:o.transport??"stdio"}),(0,n.jsx)("span",{style:lp("#d97706","rgba(245,158,11,0.12)"),children:o.lifecycle??"lazy"})]}),(0,n.jsxs)("div",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)",marginTop:4,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[o.command,Array.isArray(o.args)&&o.args.length>0?` ${o.args.map(e=>e.includes(" ")?`"${e}"`:e).join(" ")}`:""]})]}),(0,n.jsxs)("div",{style:{display:"flex",gap:6,flexShrink:0},children:[(0,n.jsxs)("button",{type:"button",onClick:()=>R(e,o),disabled:k,style:{display:"flex",alignItems:"center",gap:5,padding:"6px 10px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:k?"not-allowed":"pointer",fontSize:12,opacity:k?.5:1},children:[(0,n.jsx)(g.I,{size:12,"aria-hidden":"true"}),t("desktop.mcpEdit")]}),(0,n.jsx)("button",{type:"button",onClick:()=>void I(e),disabled:k,title:t("desktop.mcpDelete"),"aria-label":t("desktop.mcpDelete"),style:{display:"flex",alignItems:"center",padding:"6px 9px",background:"rgba(239,68,68,0.08)",border:"1px solid var(--border)",borderRadius:6,color:"#ef4444",cursor:k?"not-allowed":"pointer",fontSize:12,opacity:k?.5:1},children:(0,n.jsx)(S.l,{size:12,"aria-hidden":"true"})})]})]})})},e)):(0,n.jsx)(aY,{children:(0,n.jsx)(aZ,{children:(0,n.jsx)("div",{style:{padding:"14px 0",fontSize:12,color:"var(--text-dim)"},children:o[le]?t("desktop.mcpEmptyOther"):t("desktop.mcpEmpty")})})}),u&&(0,n.jsxs)(aY,{children:[(0,n.jsx)(aX,{children:(0,n.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"var(--text)",padding:"12px 0 4px"},children:u.isNew?t("desktop.mcpNewServer"):t("desktop.mcpEditServer",{name:u.name})})}),(0,n.jsx)(aX,{children:(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(150px, 220px) 1fr",gap:"8px 12px",alignItems:"center",padding:"8px 0"},children:[(0,n.jsx)("span",{style:lc(),children:t("desktop.mcpServerName")}),(0,n.jsx)("input",{value:m.name,onChange:e=>M("name",e.target.value),disabled:!u.isNew,placeholder:"my-server",style:{...ld,opacity:u.isNew?1:.5}}),(0,n.jsxs)("span",{style:lc(),children:[t("desktop.mcpCommand")," *"]}),(0,n.jsx)("input",{value:m.command,onChange:e=>M("command",e.target.value),placeholder:"npx @modelcontextprotocol/server-foo",style:ld}),(0,n.jsx)("span",{style:lc(),children:t("desktop.mcpArgs")}),(0,n.jsx)("textarea",{value:m.args,onChange:e=>M("args",e.target.value),placeholder:"--port 3000\n--verbose",rows:3,style:{...ld,resize:"vertical",lineHeight:1.5}}),(0,n.jsx)("span",{style:lc(),children:t("desktop.mcpTransport")}),(0,n.jsx)("select",{value:m.transport,onChange:e=>M("transport",e.target.value),style:{...ld,fontFamily:"var(--font-mono)"},children:li.map(e=>(0,n.jsx)("option",{value:e,children:e},e))}),(0,n.jsx)("span",{style:lc(),children:t("desktop.mcpLifecycle")}),(0,n.jsx)("select",{value:m.lifecycle,onChange:e=>M("lifecycle",e.target.value),style:{...ld,fontFamily:"var(--font-mono)"},children:la.map(e=>(0,n.jsx)("option",{value:e,children:e},e))}),(0,n.jsx)("span",{style:lc(),children:t("desktop.mcpRequestTimeoutMs")}),(0,n.jsx)("input",{type:"number",min:1,value:m.requestTimeoutMs,onChange:e=>M("requestTimeoutMs",e.target.value),placeholder:"300000",style:ld}),(0,n.jsx)("span",{style:lc(),children:t("desktop.mcpEnv")}),(0,n.jsx)("textarea",{value:m.env,onChange:e=>M("env",e.target.value),placeholder:'{\n "API_KEY": "..."\n}',rows:3,style:{...ld,resize:"vertical",lineHeight:1.5}})]})}),(0,n.jsx)(aZ,{children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"10px 0"},children:[(0,n.jsx)("button",{type:"button",onClick:()=>void z(),disabled:k,style:{padding:"7px 12px",border:"none",borderRadius:6,background:"var(--accent)",color:"#fff",cursor:k?"wait":"pointer",fontSize:12},children:k?t("desktop.saving"):t("desktop.mcpSave")}),(0,n.jsx)("button",{type:"button",onClick:()=>h(null),disabled:k,style:{padding:"7px 12px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:k?"not-allowed":"pointer",fontSize:12},children:t("desktop.mcpCancel")}),y&&(0,n.jsx)("span",{style:{color:"#ef4444",fontSize:12},children:y})]})})]}),w&&!u&&(0,n.jsx)("div",{style:{fontSize:12,color:"#22c55e"},children:t("desktop.mcpSavedRestart")})]}):(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)"},children:t("desktop.loading")})})})}var lh=o(9210);function lg(){let{t:e}=(0,F.s)(),[t,o]=(0,r.useState)(null),[s,i]=(0,r.useState)([]),[a,l]=(0,r.useState)(!0),[d,c]=(0,r.useState)(!1),[p,u]=(0,r.useState)(!1),[h,g]=(0,r.useState)(null);(0,r.useEffect)(()=>{fetch("/api/settings/title-model").then(e=>e.json()).then(e=>{o(e.value),i(e.models??[])}).catch(()=>{}).finally(()=>l(!1))},[]);let m=null!==t&&!s.some(e=>e.label===t),f=(0,r.useCallback)(async t=>{c(!0),g(null),u(!1);try{let e=await fetch("/api/settings/title-model",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({value:""===t?null:t})}),n=await e.json();if(!e.ok||n.error)return void g(n.error??`HTTP ${e.status}`);o(n.value??null),u(!0),setTimeout(()=>u(!1),2e3)}catch{g(String(e("desktop.titleModelSaveError")))}finally{c(!1)}},[e]),x=[...new Set(s.map(e=>e.provider))];return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6,padding:"12px 18px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",flexShrink:0},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[(0,n.jsx)("span",{style:{fontSize:12,fontWeight:600,color:"var(--text)",whiteSpace:"nowrap"},children:e("desktop.titleModel")}),(0,n.jsxs)("select",{value:t??"",disabled:a||d,onChange:e=>f(e.target.value),style:{flex:1,minWidth:200,maxWidth:420,padding:"6px 9px",fontSize:12,color:"var(--text)",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:5},children:[(0,n.jsx)("option",{value:"",children:e("desktop.titleModelFollowSession")}),m&&null!==t&&(0,n.jsxs)("option",{value:t,style:{color:"#ef4444"},children:[t,"(",e("desktop.titleModelInvalid"),")"]}),x.map(e=>(0,n.jsx)("optgroup",{label:e,children:s.filter(t=>t.provider===e).map(e=>(0,n.jsxs)("option",{value:e.label,children:[e.name||e.id,e.reasoning?"(reasoning)":""]},e.label))},e))]}),d&&(0,n.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)"},children:"…"}),!d&&p&&(0,n.jsx)("span",{style:{fontSize:11,color:"#4ade80"},children:e("desktop.titleModelSaved")})]}),(0,n.jsx)("p",{style:{margin:0,fontSize:11,color:"var(--text-muted)",lineHeight:1.5},children:e("desktop.titleModelDescription")}),h&&(0,n.jsx)("p",{style:{margin:0,fontSize:11,color:"#ef4444",lineHeight:1.5},children:h}),m&&null!==t&&(0,n.jsxs)("p",{style:{margin:0,fontSize:11,color:"#ef4444",lineHeight:1.5},children:[t,"(",e("desktop.titleModelInvalid"),")"]})]})}let lm=["name","reasoning","contextWindow","maxTokens","thinkingLevelMap","hidden"];function lf(e){if(""===e.trim())return;let t=Number(e);return Number.isFinite(t)&&t>0?t:void 0}function lx(e){let t=lf(e.contextWindow??""),o=lf(e.maxTokens??""),n=e.thinkingLevelMap&&Object.keys(e.thinkingLevelMap).length>0?{...e.thinkingLevelMap}:void 0;return{...e.name?.trim()?{name:e.name.trim()}:{},..."boolean"==typeof e.reasoning?{reasoning:e.reasoning}:{},...void 0!==t?{contextWindow:t}:{},...void 0!==o?{maxTokens:o}:{},...n?{thinkingLevelMap:n}:{},..."boolean"==typeof e.hidden?{hidden:e.hidden}:{}}}function lk({providerId:e,onRegisterFlush:t,onConfigChange:o}){let{t:s}=(0,F.s)(),i=$(),[a,l]=(0,r.useState)([]),[d,c]=(0,r.useState)({}),[p,u]=(0,r.useState)({}),[h,g]=(0,r.useState)(new Set),[m,f]=(0,r.useState)(!0),[x,k]=(0,r.useState)(!1),[v,y]=(0,r.useState)(null),[b,w]=(0,r.useState)(!1),[j,S]=(0,r.useState)(null),C=(0,r.useRef)(d),T=(0,r.useRef)(p),R=(0,r.useRef)(a),z=(0,r.useRef)(h),I=(0,r.useRef)(0),M=(0,r.useRef)(null);C.current=d,T.current=p,R.current=a,z.current=h,(0,r.useEffect)(()=>{let t=!1;return f(!0),y(null),(async()=>{try{let o=await fetch(`/api/models-config/builtin?provider=${encodeURIComponent(e)}`),n=await o.json();if(!o.ok||n.error)throw Error(n.error??`HTTP ${o.status}`);if(t)return;let r={};for(let e of n.models){let t=n.overrides[e.id]??{};r[e.id]={name:"string"==typeof t.name&&t.name.length>0?t.name:e.name,reasoning:"boolean"==typeof t.reasoning?t.reasoning:e.reasoning,contextWindow:"number"==typeof t.contextWindow?String(t.contextWindow):null!=e.contextWindow?String(e.contextWindow):"",maxTokens:"number"==typeof t.maxTokens?String(t.maxTokens):null!=e.maxTokens?String(e.maxTokens):"",hidden:"boolean"==typeof t.hidden&&t.hidden,thinkingLevelMap:t.thinkingLevelMap??e.thinkingLevelMap}}l(n.models),c(r),u(r),g(new Set)}catch(e){t||y(e instanceof Error?e.message:String(e))}finally{t||f(!1)}})(),()=>{t=!0}},[e]);let P=(0,r.useCallback)((e,t)=>{I.current+=1,c(o=>({...o,[e]:{...o[e]??{},...t}})),g(t=>new Set(t).add(e))},[]),E=(0,r.useCallback)(async()=>{let t=M.current;if(t)return t;let n=(async()=>{let t=new Set(z.current);if(0===t.size)return;let n=I.current,r={...C.current},s={},i={};for(let e of R.current){let t=r[e.id],o=T.current[e.id];t&&(s[e.id]=lx(t)),o&&(i[e.id]=lx(o))}let a=function(e,t,o){let n={};for(let r of e){let e=t[r];if(!e)continue;let s=o[r]??{},i={};for(let t of lm){let o=e[t],n=s[t];JSON.stringify(o)!==JSON.stringify(n)&&(i[t]=void 0===o?null:o)}Object.keys(i).length>0&&(n[r]=i)}return n}(t,s,i);if(0===Object.keys(a).length)return void g(new Set);k(!0),y(null),w(!1);try{let s=await fetch("/api/models-config/builtin",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e,patches:a})}),i=await s.json();if(!s.ok||i.error)throw Error(i.error??`HTTP ${s.status}`);o?.(i.provider??null);let l={...T.current};for(let e of t){let t=r[e];t&&(l[e]={...t})}T.current=l,u(l),I.current===n&&g(e=>new Set([...e].filter(e=>!t.has(e)))),w(!0),setTimeout(()=>w(!1),2e3)}catch(e){throw y(e instanceof Error?e.message:String(e)),e}finally{k(!1)}})();M.current=n;try{await n}finally{M.current===n&&(M.current=null)}},[o,e]);(0,r.useEffect)(()=>{if(t)return t(e,E)??void 0},[t,e,E]);let[D,W]=(0,r.useState)({phase:"idle"}),[A,N]=(0,r.useState)([]),L=(0,r.useCallback)(async()=>{W({phase:"loading"});try{let t=await fetch("/api/models-config/discover",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerName:e,provider:{}})}),o=await t.json();if(!t.ok||o.error||!o.models)return void W({phase:"error",message:o.error??`HTTP ${t.status}`});let n=new Set(R.current.map(e=>e.id)),r=new Set(o.models.filter(e=>!n.has(e.id)).map(e=>e.id));W({phase:"success",models:o.models,newIds:r}),N(o.models.filter(e=>r.has(e.id)).map(e=>e.id))}catch(e){W({phase:"error",message:e instanceof Error?e.message:String(e)})}},[e]),O=(0,r.useCallback)(async()=>{if(D.models?.length){k(!0),y(null);try{let t=D.models.map(e=>({id:e.id,...e.name?{name:e.name}:{}})),n=await fetch("/api/models-config/builtin",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e,models:t})}),r=await n.json();if(!n.ok||r.error)throw Error(r.error??`HTTP ${n.status}`);o?.(r.provider??null),W({phase:"idle"}),N([]);let s=await fetch(`/api/models-config/builtin?provider=${encodeURIComponent(e)}`);if(s.ok){let e=await s.json();if(e.models){l(e.models),R.current=e.models;let t={};for(let o of e.models){let n=e.overrides?.[o.id]??{};t[o.id]={name:"string"==typeof n.name&&n.name.length>0?n.name:o.name,reasoning:"boolean"==typeof n.reasoning?n.reasoning:o.reasoning,contextWindow:"number"==typeof n.contextWindow?String(n.contextWindow):null!=o.contextWindow?String(o.contextWindow):"",maxTokens:"number"==typeof n.maxTokens?String(n.maxTokens):null!=o.maxTokens?String(o.maxTokens):"",hidden:"boolean"==typeof n.hidden&&n.hidden,thinkingLevelMap:n.thinkingLevelMap??o.thinkingLevelMap}}c(t),u(t),g(new Set)}}}catch(e){y(e instanceof Error?e.message:String(e))}finally{k(!1)}}},[D.models,o,e]);return m?(0,n.jsx)("div",{style:{borderTop:"1px solid var(--border)",marginTop:14,paddingTop:12},children:(0,n.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-dim)"},children:s("desktop.modelsLoading")})}):(0,n.jsxs)("div",{style:{borderTop:"1px solid var(--border)",marginTop:14,paddingTop:12,display:"flex",flexDirection:"column",gap:10},children:[(0,n.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)"},children:s("desktop.builtinModelsTitle")}),(0,n.jsxs)("div",{style:{borderTop:"1px solid var(--border)",paddingTop:10,display:"flex",flexDirection:"column",gap:8},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,n.jsx)("button",{type:"button",onClick:()=>{L()},disabled:"loading"===D.phase,style:{padding:"5px 12px",background:(D.phase,"var(--bg-panel)"),border:"1px solid var(--border)",borderRadius:5,color:"loading"===D.phase?"var(--text-dim)":"var(--text-muted)",cursor:"loading"===D.phase?"not-allowed":"pointer",fontSize:12},children:"loading"===D.phase?s("desktop.modelsDiscoveryFetching"):s("desktop.builtinModelsFetchNew")}),"success"===D.phase&&D.models&&(0,n.jsx)("button",{type:"button",onClick:()=>{O()},disabled:x||0===A.length,style:{padding:"5px 12px",background:A.length>0&&!x?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:5,color:A.length>0&&!x?"#fff":"var(--text-dim)",cursor:A.length>0&&!x?"pointer":"not-allowed",fontSize:12,fontWeight:600},children:x?s("desktop.modelsSaving"):`${s("desktop.modelsAddModelManual")} (${A.length})`})]}),"error"===D.phase&&(0,n.jsx)("p",{style:{margin:0,fontSize:11,color:"#f87171"},children:D.message}),"success"===D.phase&&D.models&&(0,n.jsx)("div",{style:{maxHeight:200,overflowY:"auto",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)"},children:D.models.map(e=>{let t=D.newIds?.has(e.id)??!1,o=A.includes(e.id);return(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,minHeight:32,padding:"5px 9px",borderBottom:"1px solid var(--border)",cursor:t?"pointer":"default",opacity:t?1:.55},children:[(0,n.jsx)("input",{type:"checkbox",checked:o,disabled:!t,onChange:t=>{N(o=>t.target.checked?[...o,e.id]:o.filter(t=>t!==e.id))},style:{width:13,height:13,accentColor:"var(--accent)",flexShrink:0}}),(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text)",fontWeight:t?600:400},children:e.name||e.id}),(0,n.jsx)("code",{style:{fontSize:10,color:"var(--text-dim)",fontFamily:"var(--font-mono)"},children:e.id}),t&&(0,n.jsx)("span",{style:{fontSize:10,padding:"1px 6px",borderRadius:8,background:"var(--accent)",color:"#fff",marginLeft:"auto"},children:"新"})]},e.id)})})]}),v&&(0,n.jsx)("p",{style:{margin:0,fontSize:11,color:"#f87171"},children:v}),0===a.length&&!v&&(0,n.jsx)("p",{style:{margin:0,fontSize:11,color:"var(--text-dim)"},children:s("desktop.builtinModelsEmpty")}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:a.map(e=>{let t=d[e.id]??{},o=j===e.id,r=h.has(e.id);return(0,n.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",padding:"8px 10px"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,n.jsxs)("button",{type:"button",onClick:()=>S(o?null:e.id),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text)",fontSize:12,fontWeight:600,padding:0,textAlign:"left"},children:[t.name||e.name||e.id,r&&(0,n.jsx)("span",{style:{color:"var(--accent)",marginLeft:6},children:"•"})]}),(0,n.jsx)("code",{style:{fontSize:10,color:"var(--text-dim)",fontFamily:"var(--font-mono)"},children:e.id}),(t.reasoning??e.reasoning)&&(0,n.jsx)("span",{style:{fontSize:10,padding:"1px 6px",borderRadius:8,background:"var(--bg-selected)",color:"var(--text-muted)"},children:"reasoning"}),(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-muted)"},children:[s("desktop.builtinModelsContext"),": ",(0,n.jsx)("b",{children:t.contextWindow?Number(t.contextWindow).toLocaleString():"—"})," \xb7 ",s("desktop.builtinModelsMaxTokens"),": ",(0,n.jsx)("b",{children:t.maxTokens?Number(t.maxTokens).toLocaleString():"—"})]})]}),o&&(0,n.jsxs)("div",{style:{marginTop:10,display:"flex",flexDirection:"column",gap:10},children:[(0,n.jsxs)("label",{style:{display:"flex",gap:6,alignItems:"center",fontSize:12,color:"var(--text)",width:"100%"},children:[s("desktop.modelsName"),(0,n.jsx)("input",{type:"text",value:t.name??"",placeholder:e.name||e.id,onChange:t=>P(e.id,{name:t.target.value.trim()||void 0}),style:{flex:1,minWidth:0,padding:"4px 7px",fontSize:11,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:4,color:"var(--text)",fontFamily:"var(--font-mono)"}}),(0,n.jsxs)("label",{style:{display:"flex",gap:4,alignItems:"center",fontSize:11,color:t.hidden?"#f87171":"var(--text-muted)",cursor:"pointer",whiteSpace:"nowrap",marginLeft:8},children:[(0,n.jsx)("input",{type:"checkbox",checked:!0===t.hidden,onChange:t=>P(e.id,{hidden:t.target.checked})}),s("desktop.builtinModelsHide")]})]}),(0,n.jsxs)("div",{style:{display:"flex",gap:16,flexWrap:"wrap",flexDirection:i?"column":"row",alignItems:i?"flex-start":"center"},children:[(0,n.jsxs)("label",{style:{display:"flex",gap:6,alignItems:"center",fontSize:12,color:"var(--text)",cursor:"pointer"},children:[(0,n.jsx)("input",{type:"checkbox",checked:!0===t.reasoning,onChange:t=>P(e.id,{reasoning:t.target.checked})}),s("desktop.builtinModelsReasoning")]}),(0,n.jsxs)("label",{style:{display:"flex",gap:6,alignItems:"center",fontSize:12,color:"var(--text)",flex:i?1:void 0,width:i?"100%":void 0},children:[s("desktop.modelsContextWindow"),(0,n.jsx)("input",{type:"number",min:1,value:t.contextWindow??"",placeholder:null!=e.contextWindow?String(e.contextWindow):"",onChange:t=>P(e.id,{contextWindow:t.target.value}),style:{flex:1,minWidth:0,padding:"4px 7px",fontSize:11,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:4,color:"var(--text)",fontFamily:"var(--font-mono)"}})]}),(0,n.jsxs)("label",{style:{display:"flex",gap:6,alignItems:"center",fontSize:12,color:"var(--text)",flex:i?1:void 0,width:i?"100%":void 0},children:[s("desktop.modelsMaxOutputTokens"),(0,n.jsx)("input",{type:"number",min:1,value:t.maxTokens??"",placeholder:null!=e.maxTokens?String(e.maxTokens):"",onChange:t=>P(e.id,{maxTokens:t.target.value}),style:{flex:1,minWidth:0,padding:"4px 7px",fontSize:11,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:4,color:"var(--text)",fontFamily:"var(--font-mono)"}})]})]}),(0,n.jsx)("div",{style:{fontSize:11,fontWeight:600,color:"var(--text-dim)"},children:s("desktop.builtinModelsThinking")}),(0,n.jsx)(lF,{value:t.thinkingLevelMap,onChange:t=>P(e.id,{thinkingLevelMap:t})})]})]},e.id)})}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,n.jsx)("button",{type:"button",onClick:()=>{E().catch(()=>{})},disabled:x||0===h.size,style:{alignSelf:"flex-start",padding:"5px 14px",background:h.size>0&&!x?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:5,color:h.size>0&&!x?"#fff":"var(--text-dim)",cursor:h.size>0&&!x?"pointer":"not-allowed",fontSize:12,fontWeight:600},children:x?s("desktop.modelsSaving"):b?s("desktop.modelsSaved"):s("desktop.modelsSave")}),h.size>0&&(0,n.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)"},children:s("desktop.builtinModelsDirty",{count:h.size})})]})]})}let lv=["openai-completions","openai-responses","anthropic-messages","google-generative-ai","mistral-conversations"],ly="__custom__";function lb(){let{t:e}=(0,F.s)();return(0,r.useCallback)((t,o)=>e(t,o),[e])}function lw({label:e,children:t}){return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("label",{style:{fontSize:11,color:"var(--text-muted)",fontWeight:500},children:e}),t]})}let lj={padding:"6px 9px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",fontSize:12,outline:"none",width:"100%",boxSizing:"border-box"};function lS({value:e,onChange:t,placeholder:o,mono:r,inputRef:s}){return(0,n.jsx)("input",{ref:s,value:e,onChange:e=>t(e.target.value),placeholder:o,style:{...lj,fontFamily:r?"var(--font-mono)":"inherit"}})}function lC({value:e,onChange:t,placeholder:o,mono:s,onKeyDown:i,autoComplete:a="off",spellCheck:l=!1,style:d}){let c=lb(),[p,u]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{e||u(!1)},[e]),(0,n.jsxs)("div",{style:{position:"relative",width:"100%",...d},children:[(0,n.jsx)("input",{type:p?"text":"password",value:e,onChange:e=>t(e.target.value),onKeyDown:i,placeholder:o,style:{...lj,paddingRight:34,fontFamily:s?"var(--font-mono)":"inherit"},autoComplete:a,spellCheck:l}),(0,n.jsx)("button",{type:"button",onClick:()=>u(e=>!e),"aria-label":c(p?"desktop.modelsHideApiKey":"desktop.modelsShowApiKey"),title:c(p?"desktop.modelsHideApiKey":"desktop.modelsShowApiKey"),style:{position:"absolute",right:5,top:"50%",transform:"translateY(-50%)",width:24,height:24,padding:0,border:"none",background:"transparent",color:"var(--text-dim)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center"},children:p?(0,n.jsx)(lh.G,{size:15}):(0,n.jsx)(rG.b,{size:15})})]})}function lT({value:e,onChange:t,placeholder:o}){return(0,n.jsx)("input",{type:"number",value:e,onChange:e=>t(e.target.value),placeholder:o,style:lj})}function lR({value:e,onChange:t,options:o,required:r}){let s=lb();return(0,n.jsxs)("select",{value:e,onChange:e=>t(e.target.value),style:{...lj,color:e?"var(--text)":"var(--text-dim)"},children:[!r&&(0,n.jsx)("option",{value:"",children:s("desktop.modelsInheritNone")}),o.map(e=>(0,n.jsx)("option",{value:e,children:e},e))]})}function lz({label:e,checked:t,onChange:o}){return(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:6,cursor:"pointer",fontSize:12,color:"var(--text-muted)"},children:[(0,n.jsx)("input",{type:"checkbox",checked:t,onChange:e=>o(e.target.checked),style:{width:13,height:13,accentColor:"var(--accent)",cursor:"pointer"}}),e]})}function lI({children:e}){return(0,n.jsx)("div",{style:{fontSize:11,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.06em",marginBottom:2},children:e})}function lM({name:e,provider:t,onChange:o,onRename:s,onDelete:i,onAddModels:a,onAddModel:l}){let d=lb(),[c,p]=(0,r.useState)(e),[u,h]=(0,r.useState)({phase:"idle"}),[g,m]=(0,r.useState)(""),[f,x]=(0,r.useState)([]),k=(0,r.useRef)(0),v=(0,r.useRef)(null);(0,r.useEffect)(()=>p(e),[e]);let y=(e,n)=>o({...t,[e]:n});(0,r.useEffect)(()=>{t.api||o({...t,api:"openai-completions"})},[t.api]),(0,r.useEffect)(()=>{k.current+=1,h({phase:"idle"}),m(""),x([])},[e,t.baseUrl,t.api,t.apiKey]);let b=(0,r.useCallback)(async()=>{if("loading"===u.phase)return;let o=++k.current;h({phase:"loading"}),x([]);try{let n=await fetch("/api/models-config/discover",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerName:e,provider:{...t,models:void 0}})}),r=await n.json();if(o!==k.current)return;if(!n.ok||r.error||!r.models)return void h({phase:"error",message:r.error??`HTTP ${n.status}`});h({phase:"success",models:r.models,endpoint:r.endpoint??t.baseUrl??""})}catch(e){if(o!==k.current)return;h({phase:"error",message:e instanceof Error?e.message:String(e)})}},[u.phase,e,t]),w=new Set((t.models??[]).map(e=>e.id)),j="success"===u.phase?u.models:[],S=g.trim().toLocaleLowerCase(),C=j.filter(e=>!S||e.id.toLocaleLowerCase().includes(S)||e.name?.toLocaleLowerCase().includes(S)),T=C.slice(0,300),R=T.filter(e=>!w.has(e.id)).map(e=>e.id),z=f.filter(e=>!w.has(e)).length,I=R.length>0&&R.every(e=>f.includes(e)),M=!I&&R.some(e=>f.includes(e));return(0,r.useEffect)(()=>{v.current&&(v.current.indeterminate=M)},[M]),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,n.jsx)(lI,{children:d("desktop.modelsProvider")}),(0,n.jsx)("button",{onClick:i,style:{padding:"3px 8px",background:"none",border:"1px solid rgba(239,68,68,0.3)",borderRadius:4,color:"#ef4444",cursor:"pointer",fontSize:11},children:d("desktop.delete")})]}),(0,n.jsxs)(lw,{label:d("desktop.modelsProviderName"),children:[(0,n.jsx)(lS,{value:c,onChange:p,placeholder:"provider-name",mono:!0}),c!==e&&c.trim()&&(0,n.jsx)("button",{onClick:()=>s(c.trim()),style:{marginTop:4,padding:"3px 10px",background:"var(--accent)",border:"none",borderRadius:4,color:"#fff",cursor:"pointer",fontSize:11,alignSelf:"flex-start"},children:d("desktop.rename")})]}),(0,n.jsx)(lw,{label:d("desktop.modelsBaseUrl"),children:(0,n.jsx)(lS,{value:t.baseUrl??"",onChange:e=>y("baseUrl",e||void 0),placeholder:"http(s)://host:port/v1",mono:!0})}),(0,n.jsxs)(lw,{label:d("desktop.modelsApiKey"),children:[(0,n.jsx)(lC,{value:t.apiKey??"",onChange:e=>y("apiKey",e||void 0),placeholder:d("desktop.modelsApiKeyPlaceholder"),mono:!0}),(0,n.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:d("desktop.modelsApiKeyHelp")})]}),(0,n.jsx)(lw,{label:d("desktop.modelsApi"),children:(0,n.jsx)(lR,{value:t.api??"openai-completions",onChange:e=>y("api",e),options:lv,required:!0})}),(0,n.jsxs)("div",{style:{borderTop:"1px solid var(--border)",paddingTop:14,display:"flex",flexDirection:"column",gap:10},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:["success"!==u.phase&&(0,n.jsx)("button",{onClick:b,disabled:"loading"===u.phase,style:{height:30,padding:"0 12px",border:"1px solid var(--border)",borderRadius:5,background:"var(--bg-panel)",color:t.baseUrl?.trim()&&"loading"!==u.phase?"var(--text-muted)":"var(--text-dim)",cursor:t.baseUrl?.trim()&&"loading"!==u.phase?"pointer":"not-allowed",fontSize:11},children:"loading"===u.phase?d("desktop.modelsDiscoveryFetching"):d("desktop.modelsDiscoveryFetch")}),(0,n.jsx)("button",{onClick:l,title:d("desktop.modelsAddModelManual"),style:{height:30,padding:"0 12px",border:"none",borderRadius:5,background:"var(--accent)",color:"#fff",cursor:"pointer",fontSize:11,fontWeight:600},children:d("desktop.modelsAddModelManual")})]}),"error"===u.phase&&(0,n.jsx)("div",{style:{padding:"7px 9px",border:"1px solid rgba(239,68,68,0.3)",borderRadius:5,color:"#ef4444",fontSize:11,lineHeight:1.4},children:u.message}),"success"===u.phase&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("input",{value:g,onChange:e=>m(e.target.value),placeholder:d("desktop.modelsDiscoveryFilterPlaceholder",{count:u.models.length}),"aria-label":d("desktop.modelsDiscoveryFilter"),style:{...lj,width:"100%",minWidth:0}}),(0,n.jsxs)("div",{style:{maxHeight:220,overflowY:"auto",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)"},children:[(0,n.jsxs)("label",{style:{minHeight:32,padding:"5px 9px",display:"flex",alignItems:"center",gap:8,position:"sticky",top:0,zIndex:1,borderBottom:"1px solid var(--border)",background:"var(--bg)",cursor:R.length?"pointer":"default",color:"var(--text-muted)",fontSize:10,fontWeight:600},children:[(0,n.jsx)("input",{ref:v,type:"checkbox",checked:I,disabled:0===R.length,onChange:()=>{let e=new Set(R);x(t=>I?t.filter(t=>!e.has(t)):Array.from(new Set([...t,...R])))},style:{width:13,height:13,accentColor:"var(--accent)",flexShrink:0}}),d("desktop.modelsDiscoverySelectShown")]}),0===T.length?(0,n.jsx)("div",{style:{padding:12,color:"var(--text-dim)",fontSize:11},children:d("desktop.modelsDiscoveryNoMatches")}):T.map((e,t)=>{let o=w.has(e.id),r=f.includes(e.id);return(0,n.jsxs)("label",{style:{minHeight:36,padding:"6px 9px",display:"flex",alignItems:"center",gap:8,borderTop:0===t?"none":"1px solid var(--border)",cursor:o?"default":"pointer",opacity:o?.65:1},children:[(0,n.jsx)("input",{type:"checkbox",checked:r||o,disabled:o,onChange:()=>{var t;return t=e.id,void x(e=>e.includes(t)?e.filter(e=>e!==t):[...e,t])},style:{width:13,height:13,accentColor:"var(--accent)",flexShrink:0}}),(0,n.jsxs)("span",{style:{minWidth:0,flex:1},children:[(0,n.jsx)("span",{style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text)",fontSize:11},children:e.name??e.id}),e.name&&(0,n.jsx)("code",{style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-dim)",fontSize:10,fontFamily:"var(--font-mono)"},children:e.id})]}),o&&(0,n.jsx)("span",{style:{color:"var(--text-dim)",fontSize:10},children:d("desktop.modelsDiscoveryAdded")})]},e.id)})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:10},children:[(0,n.jsx)("span",{title:u.endpoint,style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-dim)",fontSize:10},children:C.length>T.length?d("desktop.modelsDiscoveryShowing",{shown:T.length,total:C.length}):d("desktop.modelsDiscoveryFetched",{count:u.models.length})}),(0,n.jsx)("button",{onClick:()=>{if("success"!==u.phase)return;let e=new Set(f),t=u.models.filter(t=>e.has(t.id)&&!w.has(t.id));0!==t.length&&(a(t),x([]))},disabled:0===z,style:{height:28,padding:"0 11px",border:"none",borderRadius:5,background:z?"var(--accent)":"var(--bg-panel)",color:z?"#fff":"var(--text-dim)",cursor:z?"pointer":"not-allowed",fontSize:11,fontWeight:600,whiteSpace:"nowrap"},children:z?d("desktop.modelsDiscoveryAddSelectedCount",{count:z}):d("desktop.modelsDiscoveryAddSelected")})]})]})]})]})}let lP=["off","minimal","low","medium","high","xhigh","max"],lE={off:"var(--text-dim)",minimal:"var(--text-muted)",low:"#60a5fa",medium:"#a78bfa",high:"#f472b6",xhigh:"#fb923c",max:"#ef4444"};function lF({value:e,onChange:t}){let o=lb(),r=e??{},s=(e,o)=>{let n={...r};"omit"===o?delete n[e]:n[e]=o,t(Object.keys(n).length?n:void 0)};return(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:lP.map(e=>{let t=r[e],i=e in r?null===t?"null":"string":"omit",a="string"==typeof t?t:"",l=lE[e],d={padding:"4px 10px",fontSize:10,border:"none",cursor:"pointer",fontWeight:400,transition:"background 0.1s, color 0.1s",whiteSpace:"nowrap",background:"var(--bg-panel)",color:"var(--text-dim)"},c={background:"var(--accent)",color:"#fff",fontWeight:600};return(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"5px 4px",borderRadius:6,background:"transparent",border:"1px solid transparent"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5,width:68,flexShrink:0},children:[(0,n.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:l,flexShrink:0,opacity:"null"===i?.3:1}}),(0,n.jsx)("span",{style:{fontSize:11,fontFamily:"var(--font-mono)",color:"null"===i?"var(--text-dim)":"var(--text-muted)",textDecoration:"null"===i?"line-through":"none"},children:e})]}),(0,n.jsxs)("div",{style:{display:"flex",borderRadius:5,border:"1px solid var(--border)",overflow:"hidden",flexShrink:0},children:[(0,n.jsx)("button",{onClick:()=>s(e,"omit"),style:{...d,..."omit"===i?c:{}},children:o("desktop.modelsDefault")}),(0,n.jsx)("button",{onClick:()=>s(e,null),style:{...d,borderLeft:"1px solid var(--border)",..."null"===i?{background:"#ef4444",color:"#fff",fontWeight:600}:{}},children:o("desktop.modelsDisabled")})]}),(0,n.jsxs)("div",{style:{display:"flex",borderRadius:5,border:`1px solid ${"string"===i?"var(--accent)":"var(--border)"}`,overflow:"hidden",transition:"border-color 0.1s"},children:[(0,n.jsx)("button",{onClick:()=>s(e,a||e),style:{...d,..."string"===i?c:{},borderRight:"1px solid var(--border)",flexShrink:0},children:o("desktop.modelsCustom")}),(0,n.jsx)("input",{value:a,onChange:t=>s(e,t.target.value),onFocus:()=>{"string"!==i&&s(e,a||e)},placeholder:e,maxLength:10,style:{width:"12ch",background:"string"===i?"var(--bg)":"var(--bg-panel)",border:"none",outline:"none",color:"string"===i?"var(--text)":"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:11,padding:"4px 7px",transition:"background 0.1s, color 0.1s"}})]})]},e)})})}let lD={thinkingFormat:"deepseek",requiresReasoningContentOnAssistantMessages:!0};function lW({providerName:e,provider:t,model:o,onChange:s,onDelete:i}){let a=lb(),[l,d]=(0,r.useState)({phase:"idle"}),[c,p]=(0,r.useState)({phase:"idle"}),u=(0,r.useRef)(0),g=(0,r.useRef)(null),m=(e,t)=>s({...o,[e]:t}),f=(()=>{if("idle"===l.phase)return null;if("testing"===l.phase)return a("desktop.modelsTestingConnection");let e=[void 0!==l.latencyMs?`${l.latencyMs}ms`:null,void 0!==l.status?`HTTP ${l.status}`:null].filter(Boolean);return"success"===l.phase?[a("desktop.modelsConnected"),...e,l.responseText||null].filter(Boolean).join(" \xb7 "):[a("desktop.modelsFailed"),...e,l.message].filter(Boolean).join(" \xb7 ")})();(0,r.useEffect)(()=>{d({phase:"idle"})},[e,t.baseUrl,t.api,t.apiKey,o.id,o.api]);let x=(0,r.useCallback)(async()=>{if(o.id.trim()&&"testing"!==l.phase){d({phase:"testing"});try{let n=await fetch("/api/models-config/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerName:e,provider:t,model:o})}),r=await n.json();if(!n.ok||!r.ok)return void d({phase:"error",message:r.error??`HTTP ${n.status}`,latencyMs:r.latencyMs,status:r.status});d({phase:"success",latencyMs:r.latencyMs,status:r.status,responseText:r.responseText})}catch(e){d({phase:"error",message:e instanceof Error?e.message:String(e)})}}},[o,t,e,l.phase]);(0,r.useEffect)(()=>{u.current+=1,p({phase:"idle"}),g.current=null},[e,t.baseUrl,o.id]);let k=(0,r.useCallback)(async()=>{let n=o.id.trim();if(!n||"loading"===c.phase)return;let r=++u.current;p({phase:"loading"});try{let i=new URLSearchParams({q:n,provider:e,limit:"50"});t.baseUrl?.trim()&&i.set("baseUrl",t.baseUrl.trim());let a=await fetch(`/api/models-config/catalog?${i}`),l=await a.json();if(r!==u.current)return;if(!a.ok||l.error||!l.recommendation)return void p({phase:"error",message:l.error??`HTTP ${a.status}`});let d=function(e,t){let o={...e},n=0;if(!e.name?.trim()&&t.name&&(o.name=t.name,n+=1),void 0===e.reasoning&&!0===t.reasoning&&(o.reasoning=!0,n+=1),!e.input?.length&&t.input?.length&&(o.input=[...t.input],n+=1),void 0===e.contextWindow&&void 0!==t.contextWindow&&(o.contextWindow=t.contextWindow,n+=1),void 0===e.maxTokens&&void 0!==t.maxTokens&&(o.maxTokens=t.maxTokens,n+=1),t.cost){let r={...e.cost??{}},s=!1;for(let e of["input","output","cacheRead","cacheWrite"])void 0===r[e]&&void 0!==t.cost[e]&&(r[e]=t.cost[e],s=!0,n+=1);s&&(o.cost=r)}return{model:o,appliedCount:n}}(o,l.recommendation.preset);d.appliedCount>0&&(g.current=o,s(d.model)),p({phase:"success",recommendation:l.recommendation,appliedCount:d.appliedCount})}catch(e){if(r!==u.current)return;p({phase:"error",message:e instanceof Error?e.message:String(e)})}},[c.phase,o,s,t.baseUrl,e]),v=(()=>{if("success"!==c.phase)return null;let{recommendation:t,appliedCount:o}=c,n=o>0?a("desktop.modelsCatalogFilled",{count:o}):a("desktop.modelsCatalogNoEmptyFields");if("unreliable"===t.price.status){let e="no-exact-match"===t.price.reason?a("desktop.modelsCatalogNoExactMatch"):a("desktop.modelsCatalogPriceUnreliable");return`${n} \xb7 ${e}`}let r="provider"===t.price.method?a("desktop.modelsCatalogPriceProvider",{provider:t.price.providerName??t.price.providerId??e}):"base-url"===t.price.method?a("desktop.modelsCatalogPriceBaseUrl",{provider:t.price.providerName??t.price.providerId??e}):a("desktop.modelsCatalogPriceConsensus",{support:t.price.support,total:t.price.total});return`${n} \xb7 ${r}`})(),y="error"===c.phase?c.message:v,b="error"===c.phase?"#ef4444":"success"===c.phase&&"unreliable"===c.recommendation.price.status?"#d97706":"var(--text-dim)";return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,n.jsx)(lI,{children:a("desktop.modelsModelSection")}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[f&&(0,n.jsx)("span",{title:f,style:{maxWidth:260,height:24,padding:"0 8px",border:`1px solid ${"error"===l.phase?"#fecaca":"success"===l.phase?"#bbf7d0":"var(--border)"}`,borderRadius:4,background:"error"===l.phase?"#fee2e2":"success"===l.phase?"#dcfce7":"#e5e7eb",color:"#111827",fontSize:11,display:"inline-flex",alignItems:"center",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",boxSizing:"border-box"},children:f}),(0,n.jsxs)("button",{onClick:x,disabled:!o.id.trim()||"testing"===l.phase,title:a("desktop.modelsTestConnection"),style:{height:24,padding:"0 8px",background:"success"===l.phase?"#16a34a":"none",border:`1px solid ${"success"===l.phase?"#16a34a":"var(--border)"}`,borderRadius:4,color:"success"===l.phase?"#fff":o.id.trim()&&"testing"!==l.phase?"var(--text-muted)":"var(--text-dim)",cursor:o.id.trim()&&"testing"!==l.phase?"pointer":"not-allowed",fontSize:11,display:"inline-flex",alignItems:"center",justifyContent:"center",boxSizing:"border-box",gap:5},children:["success"===l.phase&&(0,n.jsx)(h.S,{size:11}),"testing"===l.phase?a("desktop.modelsTesting"):"success"===l.phase?a("desktop.modelsOk"):a("desktop.modelsTest")]}),(0,n.jsx)("button",{onClick:i,style:{height:24,padding:"0 8px",background:"none",border:"1px solid rgba(239,68,68,0.3)",borderRadius:4,color:"#ef4444",cursor:"pointer",fontSize:11,boxSizing:"border-box"},children:a("desktop.modelsRemove")})]})]}),(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:[(0,n.jsx)(lw,{label:a("desktop.modelsIdRequired"),children:(0,n.jsx)(lS,{value:o.id,onChange:e=>m("id",e),placeholder:"model-id",mono:!0})}),(0,n.jsx)(lw,{label:a("desktop.modelsName"),children:(0,n.jsx)(lS,{value:o.name??"",onChange:e=>m("name",e||void 0),placeholder:a("desktop.modelsDisplayName")})})]}),(0,n.jsxs)("div",{style:{padding:"10px 0",borderTop:"1px solid var(--border)",borderBottom:"1px solid var(--border)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,n.jsx)("button",{onClick:()=>void k(),disabled:!o.id.trim()||"loading"===c.phase,style:{height:28,padding:"0 10px",border:"1px solid var(--border)",borderRadius:5,background:"var(--bg-panel)",color:o.id.trim()&&"loading"!==c.phase?"var(--text-muted)":"var(--text-dim)",cursor:o.id.trim()&&"loading"!==c.phase?"pointer":"not-allowed",fontSize:11},children:"loading"===c.phase?a("desktop.modelsCatalogFilling"):a("desktop.modelsCatalogFill")}),(0,n.jsx)("a",{href:"https://github.com/anomalyco/models.dev",target:"_blank",rel:"noreferrer",style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10,textDecoration:"none"},children:a("desktop.modelsCatalogSource")})]}),(0,n.jsxs)("div",{"aria-live":"polite",style:{marginTop:6,height:20,display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,color:b,fontSize:10},children:[(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:y}),"success"===c.phase&&g.current&&(0,n.jsx)("button",{onClick:()=>{let e=g.current;e&&(g.current=null,s(e),p({phase:"idle"}))},style:{background:"none",border:"none",color:"var(--accent)",cursor:"pointer",fontSize:10,flexShrink:0},children:a("desktop.modelsCatalogUndo")})]})]}),(0,n.jsx)(lw,{label:a("desktop.modelsApiOverride"),children:(0,n.jsx)(lR,{value:o.api??"",onChange:e=>m("api",e||void 0),options:lv})}),(0,n.jsxs)("div",{style:{display:"flex",gap:20,flexWrap:"wrap"},children:[(0,n.jsx)(lz,{label:a("desktop.modelsReasoningThinking"),checked:o.reasoning??!1,onChange:e=>m("reasoning",e||void 0)}),(0,n.jsx)(lz,{label:a("desktop.modelsImageInput"),checked:o.input?.includes("image")??!1,onChange:e=>m("input",e?["text","image"]:void 0)})]}),o.reasoning&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(lz,{label:a("desktop.modelsDeepSeekCompat"),checked:o.compat?.thinkingFormat==="deepseek",onChange:e=>s(function(e,t){if(t)return{...e,compat:{...e.compat??{},...lD}};if(!e.compat)return e;let o={...e.compat};return delete o.thinkingFormat,delete o.requiresReasoningContentOnAssistantMessages,{...e,compat:Object.keys(o).length?o:void 0}}(o,e))}),(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8},children:[(0,n.jsx)(lI,{children:a("desktop.modelsThinkingLevelMap")}),o.thinkingLevelMap&&(0,n.jsx)("button",{onClick:()=>m("thinkingLevelMap",void 0),style:{fontSize:10,padding:"2px 7px",background:"none",border:"1px solid var(--border)",borderRadius:4,color:"var(--text-dim)",cursor:"pointer"},children:a("desktop.modelsClearAll")})]}),(0,n.jsx)(lF,{value:o.thinkingLevelMap,onChange:e=>m("thinkingLevelMap",e)})]})]}),(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:[(0,n.jsx)(lw,{label:a("desktop.modelsContextWindow"),children:(0,n.jsx)(lT,{value:void 0!==o.contextWindow?String(o.contextWindow):"",onChange:e=>m("contextWindow",e?parseInt(e):void 0),placeholder:"128000"})}),(0,n.jsx)(lw,{label:a("desktop.modelsMaxOutputTokens"),children:(0,n.jsx)(lT,{value:void 0!==o.maxTokens?String(o.maxTokens):"",onChange:e=>m("maxTokens",e?parseInt(e):void 0),placeholder:"16384"})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)(lI,{children:a("desktop.modelsCostPerMillionTokens")}),(0,n.jsx)("div",{style:{marginTop:8,display:"grid",gridTemplateColumns:"1fr 1fr 1fr 1fr",gap:8},children:["input","output","cacheRead","cacheWrite"].map(e=>(0,n.jsx)(lw,{label:e,children:(0,n.jsx)(lT,{value:o.cost?.[e]!==void 0?String(o.cost[e]):"",onChange:t=>{let n;return n=parseFloat(t),void s({...o,cost:{...o.cost??{},[e]:isNaN(n)?void 0:n}})},placeholder:"0"})},e))})]})]})}function lA({provider:e,onRefresh:t,onRegisterBuiltinFlush:o,onBuiltinProviderChange:s}){let i=lb(),[a,l]=(0,r.useState)({phase:"idle"}),[d,c]=(0,r.useState)(""),p=(0,r.useRef)(null),u=(0,r.useRef)(null);(0,r.useEffect)(()=>{("auth"===a.phase||"prompt"===a.phase)&&setTimeout(()=>u.current?.focus(),50)},[a.phase]),(0,r.useEffect)(()=>{l({phase:"idle"}),c(""),p.current?.close(),p.current=null},[e.id]),(0,r.useEffect)(()=>()=>{p.current?.close()},[]);let h=(0,r.useCallback)(()=>{p.current?.close(),l({phase:"connecting"}),c("");let o=new EventSource(`/api/auth/login/${encodeURIComponent(e.id)}`);p.current=o,o.onmessage=e=>{let n=JSON.parse(e.data);"auth"===n.type?(l({phase:"auth",url:n.url,instructions:n.instructions??null,token:n.token}),window.open(n.url,"_blank","noopener,noreferrer")):"device_code"===n.type?(l({phase:"device_code",userCode:n.userCode,verificationUri:n.verificationUri,intervalSeconds:n.intervalSeconds??null,expiresInSeconds:n.expiresInSeconds??null}),window.open(n.verificationUri,"_blank","noopener,noreferrer")):"prompt_request"===n.type?l({phase:"prompt",message:n.message,placeholder:n.placeholder??null,token:n.token}):"select_request"===n.type?l({phase:"select",message:n.message,options:n.options??[],token:n.token}):"progress"===n.type?l({phase:"progress",message:n.message}):"success"===n.type?(o.close(),l({phase:"success"}),t()):"error"===n.type?(o.close(),l({phase:"error",message:n.message})):"cancelled"===n.type&&(o.close(),l({phase:"idle"}))},o.onerror=()=>{o.close(),l(e=>"success"===e.phase?e:{phase:"error",message:i("desktop.modelsConnectionLost")})}},[e.id,t,i]),g=(0,r.useCallback)(async()=>{try{let t=await fetch(`/api/auth/logout/${encodeURIComponent(e.id)}`,{method:"POST"});if(t.ok)l({phase:"idle"});else{let e=await t.json().catch(()=>null);l({phase:"error",message:409===t.status?i("desktop.modelsAuthenticationStateChanged"):e?.error??`HTTP ${t.status}`})}}catch(e){l({phase:"error",message:e instanceof Error?e.message:String(e)})}finally{t()}},[e.id,t,i]),m=(0,r.useCallback)(async(t,o)=>{if(o.trim()){l({phase:"progress",message:i("desktop.modelsVerifying")});try{let n=await fetch(`/api/auth/login/${encodeURIComponent(e.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:t,code:o.trim()})});if(!n.ok){let e=await n.json().catch(()=>({}));l({phase:"error",message:e.error??i("desktop.modelsServerError",{status:n.status})});return}c("")}catch(e){l({phase:"error",message:e instanceof Error?e.message:i("desktop.modelsNetworkError")})}}},[e.id,i]),f=(0,r.useCallback)(async(t,o)=>{l({phase:"progress",message:i("desktop.modelsContinuing")});try{let n=await fetch(`/api/auth/login/${encodeURIComponent(e.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:t,code:o})});if(!n.ok){let e=await n.json().catch(()=>({}));l({phase:"error",message:e.error??i("desktop.modelsServerError",{status:n.status})})}}catch(e){l({phase:"error",message:e instanceof Error?e.message:i("desktop.modelsNetworkError")})}},[e.id,i]),x="connecting"===a.phase||"progress"===a.phase||"auth"===a.phase||"device_code"===a.phase||"prompt"===a.phase||"select"===a.phase;return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,n.jsx)(lI,{children:i("desktop.modelsSubscription")}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,n.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:e.loggedIn?"#4ade80":"var(--border)",display:"inline-block"}}),(0,n.jsx)("span",{style:{fontSize:11,color:e.loggedIn?"#4ade80":"var(--text-dim)"},children:e.loggedIn?i("desktop.modelsConnected"):i("desktop.modelsNotConnected")})]})]}),(0,n.jsxs)("div",{style:{minHeight:48},children:["idle"===a.phase&&(0,n.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:e.loggedIn?i("desktop.modelsAlreadyConnected"):i("desktop.modelsConnectAccount",{provider:e.name})}),"connecting"===a.phase&&(0,n.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)"},children:i("desktop.modelsOpeningBrowser")}),"select"===a.phase&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,n.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:a.message}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:a.options.map(e=>(0,n.jsx)("button",{onClick:()=>f(a.token,e.id),style:{padding:"6px 9px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",cursor:"pointer",fontSize:12,textAlign:"left"},children:e.label},e.id))})]}),("auth"===a.phase||"prompt"===a.phase)&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,n.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:"auth"===a.phase?i("desktop.modelsCompleteSignIn"):a.message}),"auth"===a.phase&&(0,n.jsxs)("p",{style:{margin:0,fontSize:11,color:"var(--text-dim)",lineHeight:1.5},children:[i("desktop.modelsBrowserDidNotOpen")," ",(0,n.jsx)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--accent)",wordBreak:"break-all"},children:i("desktop.modelsOpenLoginPage")}),"."]}),(0,n.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,n.jsx)("input",{ref:u,value:d,onChange:e=>c(e.target.value),onKeyDown:e=>{"Enter"===e.key&&m(a.token,d)},placeholder:"auth"===a.phase?"http://localhost:1455/auth/callback?code=…":a.placeholder??i("desktop.modelsEnterValue"),style:{flex:1,padding:"6px 9px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",fontSize:12,outline:"none",fontFamily:"var(--font-mono)",boxSizing:"border-box"}}),(0,n.jsx)("button",{onClick:()=>m(a.token,d),disabled:!d.trim(),style:{padding:"6px 12px",background:d.trim()?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:5,color:d.trim()?"#fff":"var(--text-dim)",cursor:d.trim()?"pointer":"not-allowed",fontSize:12,fontWeight:600,flexShrink:0},children:i("desktop.submit")})]})]}),"device_code"===a.phase&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,n.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:i("desktop.modelsOpenVerificationPage")}),(0,n.jsx)("div",{style:{padding:"8px 10px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",fontSize:16,fontWeight:700,fontFamily:"var(--font-mono)",letterSpacing:0},children:a.userCode}),(0,n.jsxs)("p",{style:{margin:0,fontSize:11,color:"var(--text-dim)",lineHeight:1.5},children:[(0,n.jsx)("a",{href:a.verificationUri,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--accent)",wordBreak:"break-all"},children:a.verificationUri}),a.expiresInSeconds?` ${i("desktop.modelsExpiresInMinutes",{count:Math.ceil(a.expiresInSeconds/60)})}`:""]})]}),"progress"===a.phase&&(0,n.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)"},children:a.message}),"success"===a.phase&&(0,n.jsx)("p",{style:{margin:0,fontSize:12,color:"#4ade80"},children:i("desktop.modelsConnectedSuccessfully")}),"error"===a.phase&&(0,n.jsx)("p",{style:{margin:0,fontSize:12,color:"#f87171"},children:a.message})]}),(0,n.jsx)("div",{style:{display:"flex",gap:8},children:x?(0,n.jsx)("button",{onClick:()=>{p.current?.close(),l({phase:"idle"})},style:{padding:"5px 12px",background:"none",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-muted)",cursor:"pointer",fontSize:12},children:i("desktop.cancel")}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{onClick:h,style:{padding:"5px 14px",background:"var(--accent)",border:"none",borderRadius:5,color:"#fff",cursor:"pointer",fontSize:12,fontWeight:600},children:e.loggedIn?i("desktop.modelsReLogin"):i("desktop.modelsLogin")}),e.loggedIn&&(0,n.jsx)("button",{onClick:g,style:{padding:"5px 12px",background:"none",border:"1px solid rgba(239,68,68,0.3)",borderRadius:5,color:"#ef4444",cursor:"pointer",fontSize:12},children:i("desktop.modelsDisconnect")})]})}),(0,n.jsx)(lk,{providerId:e.id,onRegisterFlush:o,onConfigChange:s})]})}function lN({provider:e,onRefresh:t,onRegisterBuiltinFlush:o,onBuiltinProviderChange:s}){let i=lb(),[a,l]=(0,r.useState)(""),[d,c]=(0,r.useState)(!1),[p,u]=(0,r.useState)(!1),[g,m]=(0,r.useState)(null),[f,x]=(0,r.useState)(!1);(0,r.useEffect)(()=>{l(""),m(null),x(!1)},[e.id]);let k=(0,r.useCallback)(async()=>{if(a.trim()){c(!0),m(null),x(!1);try{let o=await fetch(`/api/auth/api-key/${encodeURIComponent(e.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:a.trim()})}),n=await o.json();!o.ok||n.error?m(n.error??`HTTP ${o.status}`):(l(""),x(!0),setTimeout(()=>x(!1),2e3),t())}catch(e){m(String(e))}finally{c(!1)}}},[a,e.id,t]),v=(0,r.useCallback)(async()=>{u(!0),m(null);try{let t=await fetch(`/api/auth/api-key/${encodeURIComponent(e.id)}`,{method:"DELETE"}),o=await t.json();(!t.ok||o.error)&&m(409===t.status?i("desktop.modelsAuthenticationStateChanged"):o.error??`HTTP ${t.status}`)}catch(e){m(String(e))}finally{t(),u(!1)}},[e.id,t,i]);return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,n.jsx)(lI,{children:i("desktop.modelsApiKey")}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,n.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:e.configured?"#4ade80":"var(--border)",display:"inline-block"}}),(0,n.jsx)("span",{style:{fontSize:11,color:e.configured?"#4ade80":"var(--text-dim)"},children:e.configured?i("desktop.modelsConfigured"):i("desktop.modelsNotConfigured")})]})]}),(0,n.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:e.configured?i("desktop.modelsApiKeyStored"):i("desktop.modelsEnableModels",{provider:e.displayName,count:e.modelCount,models:1===e.modelCount?i("desktop.modelsSingular"):i("desktop.modelsPlural")})}),(0,n.jsx)(lw,{label:i("desktop.modelsApiKey"),children:(0,n.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,n.jsx)(lC,{value:a,onChange:l,onKeyDown:e=>{"Enter"===e.key&&a.trim()&&k()},placeholder:e.configured?i("desktop.modelsEnterNewKey"):"sk-…",style:{flex:1},autoComplete:"off",spellCheck:!1,mono:!0}),(0,n.jsxs)("button",{onClick:k,disabled:d||!a.trim()||f,style:{padding:"6px 12px",background:f?"#16a34a":a.trim()?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:5,color:a.trim()||f?"#fff":"var(--text-dim)",cursor:d||!a.trim()||f?"not-allowed":"pointer",fontSize:12,fontWeight:600,flexShrink:0,display:"flex",alignItems:"center",gap:5},children:[f&&(0,n.jsx)(h.S,{size:12}),f?i("desktop.modelsSaved"):d?i("desktop.modelsSaving"):i("desktop.modelsSave")]})]})}),g&&(0,n.jsx)("p",{style:{margin:0,fontSize:12,color:"#f87171"},children:g}),e.configured&&(0,n.jsx)("button",{onClick:v,disabled:p,style:{alignSelf:"flex-start",padding:"5px 12px",background:"none",border:"1px solid rgba(239,68,68,0.3)",borderRadius:5,color:"#ef4444",cursor:p?"not-allowed":"pointer",fontSize:12},children:p?i("desktop.modelsRemoving"):i("desktop.modelsDisconnect")}),(0,n.jsx)(lk,{providerId:e.id,onRegisterFlush:o,onConfigChange:s})]})}function l$({oauthProviders:e,apiKeyProviders:t,onSelectOAuth:o,onSelectApiKey:s,onAddCustom:i,onClose:a}){let l=lb(),[d,p]=(0,r.useState)(""),u=(0,r.useRef)(null);(0,r.useEffect)(()=>{setTimeout(()=>u.current?.focus(),30)},[]);let h=d.trim().toLowerCase(),g=e.filter(e=>!e.loggedIn&&(!h||e.name.toLowerCase().includes(h))),m=t.filter(e=>!e.configured&&(!h||e.displayName.toLowerCase().includes(h)||e.id.toLowerCase().includes(h))),f=!h||"custom".includes(h)||"openai-compatible".includes(h)||"anthropic-compatible".includes(h),k=g.length+m.length+ +!!f,v={display:"flex",flexDirection:"row",alignItems:"center",gap:8,padding:"10px 12px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:7,boxSizing:"border-box",cursor:"pointer",minWidth:0,textAlign:"left",transition:"border-color 0.12s, background 0.12s",width:"100%"};return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:1100,background:"rgba(0,0,0,0.4)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:e=>{e.target===e.currentTarget&&a()},children:(0,n.jsxs)("div",{style:{width:820,maxWidth:"calc(100vw - 32px)",maxHeight:"min(72vh, calc(100vh - 32px))",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,display:"flex",flexDirection:"column",boxShadow:"0 8px 32px rgba(0,0,0,0.22)",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{padding:"10px 14px",borderBottom:"1px solid var(--border)",flexShrink:0,display:"flex",alignItems:"center",gap:8},children:[(0,n.jsx)(c.$,{size:13,style:{color:"var(--text-dim)",flexShrink:0}}),(0,n.jsx)("input",{ref:u,value:d,onChange:e=>p(e.target.value),onKeyDown:e=>{"Escape"===e.key&&a()},placeholder:l("desktop.modelsSearchProviders"),style:{flex:1,background:"none",border:"none",outline:"none",color:"var(--text)",fontSize:13,boxSizing:"border-box"}})]}),(0,n.jsx)("div",{style:{flex:1,overflowY:"auto",padding:14},children:0===k?(0,n.jsx)("div",{style:{padding:"20px 0",fontSize:12,color:"var(--text-dim)",textAlign:"center"},children:l("desktop.modelsNoProvidersMatch")}):(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(min(240px, 100%), 1fr))",gap:8},children:[f&&(0,n.jsx)("div",{style:{gridColumn:"1 / -1",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:l("desktop.modelsCustom")}),f&&(0,n.jsxs)("button",{onClick:()=>{i(),a()},style:v,onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="var(--bg-panel)"},children:[(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:l("desktop.modelsCompatibleProvider")}),(0,n.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:l("desktop.modelsCustomEndpointFormat")})]}),(0,n.jsx)("span",{style:{width:26,height:26,borderRadius:5,background:"var(--bg-hover)",border:"1px dashed var(--border)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,n.jsx)(x.c,{size:13,style:{color:"var(--text-dim)"}})})]}),g.length>0&&(0,n.jsx)("div",{style:{gridColumn:"1 / -1",paddingTop:6*!!f,fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:l("desktop.modelsSubscriptions")}),g.map(e=>(0,n.jsxs)("button",{onClick:()=>{o(e.id),a()},style:v,onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="var(--bg-panel)"},children:[(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),(0,n.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:"OAuth"})]}),(0,n.jsx)(sC,{id:e.id,size:28})]},e.id)),m.length>0&&(0,n.jsx)("div",{style:{gridColumn:"1 / -1",paddingTop:6*(g.length>0),fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:l("desktop.modelsApiKey")}),m.map(e=>(0,n.jsxs)("button",{onClick:()=>{s(e.id),a()},style:v,onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="var(--bg-panel)"},children:[(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.displayName}),(0,n.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:l("desktop.modelsCount",{count:e.modelCount})})]}),(0,n.jsx)(sC,{id:e.id,size:28})]},e.id))]})})]})})}function lL({existingProviders:e,onCancel:t,onSubmit:o}){let s=lb(),[i,a]=(0,r.useState)(""),[l,d]=(0,r.useState)(lv[0]),[c,p]=(0,r.useState)(lv[0]),[u,h]=(0,r.useState)(""),[g,m]=(0,r.useState)(""),[f,k]=(0,r.useState)(void 0),[v,y]=(0,r.useState)(!1),[b,w]=(0,r.useState)(""),[j,S]=(0,r.useState)(""),[C,T]=(0,r.useState)(""),[R,z]=(0,r.useState)(""),I=(0,r.useRef)(null);(0,r.useEffect)(()=>{setTimeout(()=>I.current?.focus(),30)},[]);let M=!u.trim()||/^https?:\/\//i.test(u.trim());return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:1100,background:"rgba(0,0,0,0.4)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:e=>{e.target===e.currentTarget&&t()},children:(0,n.jsxs)("div",{style:{width:480,maxWidth:"calc(100vw - 32px)",maxHeight:"min(82vh, calc(100vh - 32px))",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,display:"flex",flexDirection:"column",boxShadow:"0 8px 32px rgba(0,0,0,0.22)",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 16px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,n.jsx)("span",{style:{fontSize:14,fontWeight:700,color:"var(--text)"},children:s("desktop.modelsAddCustomTitle")}),(0,n.jsx)("button",{onClick:t,"aria-label":s("desktop.modelsClose"),title:s("desktop.modelsClose"),style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:20,lineHeight:1,padding:"2px 6px"},children:"\xd7"})]}),(0,n.jsxs)("div",{style:{padding:16,overflowY:"auto",display:"flex",flexDirection:"column",gap:14},children:[(0,n.jsx)(lw,{label:s("desktop.modelsProviderNameOptional"),children:(0,n.jsx)(lS,{value:i,onChange:a,placeholder:"new-provider",mono:!0,inputRef:I})}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)(lI,{children:s("desktop.modelsCallFormat")}),(0,n.jsxs)("select",{value:c,onChange:e=>{let t=e.target.value;(p(t),t===ly)?y(!0):d(t)},style:lj,children:[lv.map(e=>(0,n.jsx)("option",{value:e,children:e},e)),(0,n.jsx)("option",{value:ly,children:s("desktop.modelsCustomCallFormat")})]}),(0,n.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)"},children:s("desktop.modelsCallFormatHelp")}),c===ly&&(0,n.jsx)("span",{style:{fontSize:10,color:"#d97706",lineHeight:1.4},children:s("desktop.modelsCustomCallFormatHelp")})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)(lI,{children:s("desktop.modelsImportProvider")}),(0,n.jsxs)("select",{value:R,onChange:t=>{var o;let n;return z(o=t.target.value),void((n=e.find(e=>e.name===o))&&(n.provider.api&&(d(n.provider.api),p(n.provider.api)),h(n.provider.baseUrl??""),m(n.provider.apiKey??""),k(n.provider.headers?{...n.provider.headers}:void 0)))},style:{...lj,color:R?"var(--text)":"var(--text-dim)"},children:[(0,n.jsx)("option",{value:"",children:s("desktop.modelsImportProviderPlaceholder")}),e.map(e=>(0,n.jsxs)("option",{value:e.name,children:[e.name,e.provider.api?` \xb7 ${e.provider.api}`:""]},e.name))]}),R&&(0,n.jsxs)("span",{style:{fontSize:10,color:"#4ade80"},children:[s("desktop.modelsImported"),": ",R]})]}),(0,n.jsxs)("div",{style:{borderTop:"1px solid var(--border)",paddingTop:12,display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)(lI,{children:s("desktop.modelsFullUrl")}),v?(0,n.jsxs)("div",{style:{display:"flex",gap:6,alignItems:"center"},children:[(0,n.jsx)(lS,{value:u,onChange:h,placeholder:s("desktop.modelsUrlPlaceholder"),mono:!0}),(0,n.jsx)("button",{onClick:()=>{y(!1),h("")},title:s("desktop.modelsRemove"),style:{flexShrink:0,width:28,height:28,background:"none",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-dim)",cursor:"pointer",fontSize:14,lineHeight:1,display:"flex",alignItems:"center",justifyContent:"center"},children:"\xd7"})]}):(0,n.jsxs)("button",{onClick:()=>y(!0),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,padding:"7px 0",background:"none",border:"1px dashed var(--border)",borderRadius:5,color:"var(--text-muted)",cursor:"pointer",fontSize:12},onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.color="var(--text-muted)"},children:[(0,n.jsx)(x.c,{size:12}),s("desktop.modelsAddUrl")]}),u.trim()&&!M&&(0,n.jsx)("span",{style:{fontSize:10,color:"#ef4444"},children:s("desktop.modelsUrlInvalid")}),(0,n.jsxs)(lw,{label:s("desktop.modelsApiKey"),children:[(0,n.jsx)(lC,{value:g,onChange:m,placeholder:s("desktop.modelsApiKeyPlaceholder"),mono:!0}),(0,n.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:s("desktop.modelsApiKeyHelp")})]})]}),(0,n.jsxs)("div",{style:{borderTop:"1px solid var(--border)",paddingTop:12,display:"flex",flexDirection:"column",gap:10},children:[(0,n.jsx)(lI,{children:s("desktop.modelsCustomRequest")}),(0,n.jsxs)(lw,{label:s("desktop.modelsRequestModelId"),children:[(0,n.jsx)(lS,{value:b,onChange:w,placeholder:"model-id",mono:!0}),(0,n.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:s("desktop.modelsRequestModelIdHelp")})]}),(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:[(0,n.jsx)(lw,{label:s("desktop.modelsRequestContextLength"),children:(0,n.jsx)(lT,{value:j,onChange:S,placeholder:"128000"})}),(0,n.jsx)(lw,{label:s("desktop.modelsRequestOutputLength"),children:(0,n.jsx)(lT,{value:C,onChange:T,placeholder:"16384"})})]})]})]}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,padding:"10px 16px",borderTop:"1px solid var(--border)",flexShrink:0},children:[(0,n.jsx)("button",{onClick:t,style:{padding:"6px 14px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:"pointer",fontSize:13},children:s("desktop.cancel")}),(0,n.jsx)("button",{onClick:()=>{let e=b.trim()?{id:b.trim(),...parseInt(j,10)>0?{contextWindow:parseInt(j,10)}:{},...parseInt(C,10)>0?{maxTokens:parseInt(C,10)}:{}}:void 0;o({name:i.trim(),api:l,...u.trim()?{baseUrl:u.trim()}:{},...g.trim()?{apiKey:g.trim()}:{},...f?{headers:f}:{},model:e})},disabled:!M,style:{padding:"6px 16px",background:M?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:6,color:M?"#fff":"var(--text-dim)",cursor:M?"pointer":"not-allowed",fontSize:13,fontWeight:600},children:s("desktop.modelsAdd")})]})]})})}function lO({embedded:e=!1,sessionId:t,onCloseAction:o,onSavedAction:s,onRegisterFlush:i}){let a=lb(),l=$(),[d,c]=(0,r.useState)({providers:{}}),[p,u]=(0,r.useState)(!0),[g,m]=(0,r.useState)(!1),[f,x]=(0,r.useState)(null),[k,v]=(0,r.useState)(!1),[y,b]=(0,r.useState)(null),[w,j]=(0,r.useState)([]),[S,C]=(0,r.useState)([]),[R,z]=(0,r.useState)(!1),[I,M]=(0,r.useState)(!1),[P,E]=(0,r.useState)({oauth:!1,apiKey:!1}),F=(0,r.useRef)({providers:{}}),D=(0,r.useRef)(new Map),W=(0,r.useRef)(0),A=(0,r.useRef)(!1);F.current=d;let N=(0,r.useCallback)(e=>{let t=e(F.current);return F.current=t,W.current+=1,c(t),t},[]),L=(0,r.useCallback)(()=>{fetch("/api/auth/combined").then(e=>e.json()).then(e=>{j(e.oauth??[]),C(e.apiKey??[])}).catch(()=>{}).finally(()=>E({oauth:!0,apiKey:!0}))},[]),O=(0,r.useCallback)((e,t)=>(D.current.set(e,t),()=>{D.current.get(e)===t&&D.current.delete(e)}),[]),H=(0,r.useCallback)(async()=>{for(let e of[...D.current.values()])await e()},[]);(0,r.useEffect)(()=>{if(i)return i(H)??void 0},[H,i]);let B=(0,r.useCallback)((e,t)=>{N(o=>{let n={...o.providers??{}};return t?n[e]=t:delete n[e],{...o,providers:n}}),s?.()},[s,N]),U=(0,r.useCallback)(async e=>{if(!A.current){A.current=!0,x(null);try{await H(),b(e)}catch(e){x(e instanceof Error?e.message:String(e))}finally{A.current=!1}}},[H]);(0,r.useEffect)(()=>{fetch("/api/models-config").then(e=>e.json()).then(e=>{let t=e.providers?e:{...e,providers:{}};F.current=t,W.current+=1,c(t)}).catch(()=>{let e={providers:{}};F.current=e,W.current+=1,c(e)}).finally(()=>u(!1)),L()},[L]);let _=(0,r.useCallback)(async e=>{if(!A.current){A.current=!0,x(null);try{await H();let t=e.name.trim()||"new-provider",o=t,n=1;for(;F.current.providers?.[o];)o=`${t}-${n++}`;let r={api:e.api||"openai-completions",...e.baseUrl?{baseUrl:e.baseUrl}:{},...e.apiKey?{apiKey:e.apiKey}:{},...e.headers?{headers:e.headers}:{},...e.model?{models:[e.model]}:{}};N(e=>({...e,providers:{...e.providers??{},[o]:r}})),b({type:"provider",name:o}),M(!1)}catch(e){x(e instanceof Error?e.message:String(e))}finally{A.current=!1}}},[H,N]),q=(0,r.useCallback)((e,t)=>{N(o=>({...o,providers:{...o.providers??{},[e]:t}}))},[N]),V=(0,r.useCallback)((e,t)=>{N(o=>{let n=Object.entries(o.providers??{}),r=n.findIndex(([t])=>t===e);return -1===r?o:(n[r]=[t,n[r][1]],{...o,providers:Object.fromEntries(n)})}),b(o=>o?"provider"===o.type&&o.name===e?{type:"provider",name:t}:"model"===o.type&&o.providerName===e?{...o,providerName:t}:o:o)},[N]),K=(0,r.useCallback)(e=>{let t=Object.keys(N(t=>{let o={...t.providers??{}};return delete o[e],{...t,providers:o}}).providers??{});b(t.length>0?{type:"provider",name:t[0]}:null)},[N]),G=(0,r.useCallback)(async e=>{if(!A.current){A.current=!0,x(null);try{await H();let t=N(t=>{let o=t.providers?.[e]??{},n=[...o.models??[],{id:""}];return{...t,providers:{...t.providers??{},[e]:{...o,models:n}}}}),o=(t.providers?.[e]?.models?.length??1)-1;b({type:"model",providerName:e,index:o})}catch(e){x(e instanceof Error?e.message:String(e))}finally{A.current=!1}}},[H,N]),J=(0,r.useCallback)((e,t)=>{N(o=>{let n=o.providers?.[e]??{},r=[...n.models??[]],s=new Set(r.map(e=>e.id));for(let e of t)s.has(e.id)||(s.add(e.id),r.push({id:e.id,name:e.name}));return{...o,providers:{...o.providers??{},[e]:{...n,models:r}}}})},[N]),Y=(0,r.useCallback)((e,t,o)=>{N(n=>{let r=n.providers?.[e]??{},s=[...r.models??[]];return s[t]=o,{...n,providers:{...n.providers??{},[e]:{...r,models:s}}}})},[N]),X=(0,r.useCallback)(async(e,t)=>{if(!A.current){A.current=!0,x(null);try{await H(),N(o=>{let n=o.providers?.[e]??{},r=[...n.models??[]];return r.splice(t,1),{...o,providers:{...o.providers??{},[e]:{...n,models:r.length?r:void 0}}}}),b({type:"provider",name:e})}catch(e){x(e instanceof Error?e.message:String(e))}finally{A.current=!1}}},[H,N]),Z=(0,r.useCallback)(async()=>{if(!g){m(!0),x(null),v(!1);try{await H();let e=F.current,t=await fetch("/api/models-config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),o=await t.json();if(!t.ok||o.error)throw Error(o.error??`HTTP ${t.status}`);o.config&&(F.current=o.config,W.current+=1,c(o.config)),v(!0),s?.(),setTimeout(()=>v(!1),2e3)}catch(e){x(e instanceof Error?e.message:String(e))}finally{m(!1)}}},[H,s,g]),Q=(0,r.useCallback)(async()=>{try{await H(),o?.()}catch(e){x(e instanceof Error?e.message:String(e))}},[H,o]),ee=Object.entries(d.providers??{}),et=new Set([...w.map(e=>e.id),...S.map(e=>e.id)]),eo=ee.filter(([e])=>!et.has(e)),en=w.filter(e=>e.loggedIn),er=S.filter(e=>e.configured);(0,r.useEffect)(()=>{if(y||p||!P.oauth||!P.apiKey)return;let e=en[0]?{type:"oauth",providerId:en[0].id}:er[0]?{type:"apikey",providerId:er[0].id}:eo[0]?.[0]?{type:"provider",name:eo[0][0]}:null;e&&b(e)},[er,en,eo,p,P.apiKey,P.oauth,y]);let es=(()=>{if(!y)return null;if("oauth"===y.type){let e=w.find(e=>e.id===y.providerId);return e?(0,n.jsx)(lA,{provider:e,onRefresh:L,onRegisterBuiltinFlush:O,onBuiltinProviderChange:t=>B(e.id,t)},e.id):null}if("apikey"===y.type){let e=S.find(e=>e.id===y.providerId);return e?(0,n.jsx)(lN,{provider:e,onRefresh:L,onRegisterBuiltinFlush:O,onBuiltinProviderChange:t=>B(e.id,t)},e.id):null}if("provider"===y.type){let e=d.providers?.[y.name];return e?(0,n.jsx)(lM,{name:y.name,provider:e,onChange:e=>q(y.name,e),onRename:e=>V(y.name,e),onDelete:()=>K(y.name),onAddModels:e=>J(y.name,e),onAddModel:()=>{G(y.name)}},y.name):null}let e=d.providers?.[y.providerName],t=e?.models?.[y.index];return t?(0,n.jsx)(lW,{providerName:y.providerName,provider:e,model:t,onChange:e=>Y(y.providerName,y.index,e),onDelete:()=>{X(y.providerName,y.index)}},`${y.providerName}-${y.index}`):null})();return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:e?{display:"flex",flex:1,minWidth:0,minHeight:0,overflow:"hidden"}:{position:"fixed",inset:0,zIndex:1e3,background:"rgba(0,0,0,0.35)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:t=>{e||t.target!==t.currentTarget||Q()},children:(0,n.jsxs)("div",{style:e?{flex:1,minWidth:0,minHeight:0,display:"flex",flexDirection:"column",overflow:"hidden"}:{width:l?"calc(100vw - 16px)":860,maxWidth:"calc(100vw - 16px)",height:l?"calc(100dvh - 16px)":"78vh",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:[!e&&(0,n.jsxs)("div",{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},children:[(0,n.jsx)("span",{style:{fontSize:15,fontWeight:700,color:"var(--text)"},children:a("desktop.models")}),(0,n.jsx)("code",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:"~/.pi/agent/models.json"})]}),(0,n.jsx)("button",{onClick:()=>{Q()},"aria-label":a("desktop.modelsClose"),title:a("desktop.modelsClose"),style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:20,lineHeight:1,padding:"2px 6px"},children:"\xd7"})]}),(0,n.jsx)(lg,{}),(0,n.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:l?"column":"row",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{width:l?"100%":210,maxHeight:l?"40vh":void 0,borderRight:l?"none":"1px solid var(--border)",borderBottom:l?"1px solid var(--border)":"none",display:"flex",flexDirection:"column",flexShrink:0,background:"var(--bg-panel)"},children:[(0,n.jsxs)("div",{style:{flex:1,overflowY:"auto",padding:"8px 6px"},children:[en.map(e=>{let t=y?.type==="oauth"&&y.providerId===e.id;return(0,n.jsxs)("div",{onClick:()=>{U({type:"oauth",providerId:e.id})},style:{display:"flex",alignItems:"center",gap:7,padding:"5px 8px",borderRadius:5,cursor:"pointer",background:t?"var(--bg-selected)":"none"},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="none")},children:[(0,n.jsx)(sC,{id:e.id,size:16}),(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]},e.id)}),er.map(e=>{let t=y?.type==="apikey"&&y.providerId===e.id;return(0,n.jsxs)("div",{onClick:()=>{U({type:"apikey",providerId:e.id})},style:{display:"flex",alignItems:"center",gap:7,padding:"5px 8px",borderRadius:5,cursor:"pointer",background:t?"var(--bg-selected)":"none"},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="none")},children:[(0,n.jsx)(sC,{id:e.id,size:16}),(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.displayName})]},e.id)}),(en.length>0||er.length>0)&&eo.length>0&&(0,n.jsx)("div",{style:{margin:"4px 8px",borderTop:"1px solid var(--border)"}}),p?(0,n.jsx)("div",{style:{padding:"10px 8px",fontSize:12,color:"var(--text-muted)"},children:a("desktop.modelsLoading")}):eo.map(([e,t])=>{let o=y?.type==="provider"&&y.name===e,r=t.models??[];return(0,n.jsxs)("div",{style:{marginBottom:2},children:[(0,n.jsxs)("div",{onClick:()=>{U({type:"provider",name:e})},style:{display:"flex",alignItems:"center",gap:6,padding:"7px 8px",borderRadius:5,cursor:"pointer",background:o?"var(--bg-selected)":"none"},onMouseEnter:e=>{o||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{o||(e.currentTarget.style.background="none")},children:[(0,n.jsx)(T.G,{size:11,style:{color:"var(--text-dim)",flexShrink:0}}),(0,n.jsx)("span",{style:{fontSize:12,fontWeight:o?600:400,color:"var(--text)",fontFamily:"var(--font-mono)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e})]}),r.map((t,o)=>{let r=y?.type==="model"&&y.providerName===e&&y.index===o;return(0,n.jsxs)("div",{onClick:()=>{U({type:"model",providerName:e,index:o})},style:{display:"flex",alignItems:"center",gap:6,padding:"5px 8px 5px 26px",borderRadius:5,cursor:"pointer",background:r?"var(--bg-selected)":"none"},onMouseEnter:e=>{r||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{r||(e.currentTarget.style.background="none")},children:[(0,n.jsx)("span",{style:{fontSize:11,fontFamily:"var(--font-mono)",color:t.id?"var(--text-muted)":"var(--text-dim)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t.id||a("desktop.modelsNewModel")}),t.reasoning&&(0,n.jsx)("span",{style:{fontSize:9,padding:"1px 4px",background:"rgba(99,102,241,0.12)",color:"rgba(99,102,241,0.8)",borderRadius:3,flexShrink:0},children:"T"})]},o)}),(0,n.jsx)("div",{onClick:t=>{t.stopPropagation(),G(e)},style:{display:"flex",alignItems:"center",gap:4,padding:"4px 8px 4px 26px",borderRadius:5,cursor:"pointer",color:"var(--text-dim)"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:(0,n.jsx)("span",{style:{fontSize:11},children:a("desktop.modelsAddModel")})})]},e)})]}),(0,n.jsx)("div",{style:{borderTop:"1px solid var(--border)",padding:"8px 6px"},children:(0,n.jsx)("button",{onClick:()=>z(!0),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,width:"100%",padding:"6px 0",background:"none",border:"1px dashed var(--border)",borderRadius:5,color:"var(--text-muted)",cursor:"pointer",fontSize:12},onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.color="var(--text-muted)"},children:a("desktop.modelsAddProvider")})})]}),(0,n.jsx)("div",{style:{flex:1,overflowY:"auto",padding:20},children:p?null:es??(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:13},children:a("desktop.modelsSelectProviderOrModel")})})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:10,padding:"10px 18px",borderTop:"1px solid var(--border)",flexShrink:0},children:[f&&(0,n.jsx)("span",{style:{fontSize:12,color:"#f87171",flex:1},children:f}),!e&&(0,n.jsx)("button",{onClick:()=>{Q()},style:{padding:"6px 14px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:"pointer",fontSize:13},children:a("desktop.cancel")}),(0,n.jsx)(ls,{sessionId:t,onBeforeApply:Z}),(0,n.jsxs)("button",{onClick:Z,disabled:g||k,style:{position:"relative",padding:"6px 16px",minWidth:92,background:k?"#16a34a":g?"var(--bg-panel)":"var(--accent)",border:"none",borderRadius:6,color:k?"#fff":g?"var(--text-muted)":"#fff",cursor:g||k?"default":"pointer",fontSize:13,fontWeight:600,display:"inline-flex",alignItems:"center",justifyContent:"center",gap:6,transition:"background-color 0.2s ease, color 0.2s ease",animation:k?"saved-pop 0.45s ease":void 0},children:[k&&(0,n.jsx)(h.S,{size:14,style:{strokeDasharray:18,animation:"saved-check-draw 0.35s ease forwards",flexShrink:0}}),(0,n.jsx)("span",{children:k?a("desktop.modelsSaved"):g?a("desktop.modelsSaving"):a("desktop.modelsSave")})]})]})]})}),R&&(0,n.jsx)(l$,{oauthProviders:w,apiKeyProviders:S,onSelectOAuth:e=>{U({type:"oauth",providerId:e})},onSelectApiKey:e=>{U({type:"apikey",providerId:e})},onAddCustom:()=>{z(!1),M(!0)},onClose:()=>z(!1)}),I&&(0,n.jsx)(lL,{existingProviders:eo.map(([e,t])=>({name:e,provider:t})),onCancel:()=>M(!1),onSubmit:e=>{_(e)}})]})}function lH(e){return e.replace(/^\/(?:Users|home)\/[^/]+/,"~")}function lB(e){let t=e.trim().match(/^\$?\s*pi\s+install\s+(\S+)\s*$/);return t?.[1]??e}function lU(e){return`${e.scope}\0${e.source}`}function l_(e,t){if(e.disabled)return t("desktop.disabled");let o=[e.counts.extensions?t("desktop.extensionsCount",{count:e.counts.extensions}):"",e.counts.skills?t("desktop.skillsCount",{count:e.counts.skills}):"",e.counts.prompts?t("desktop.promptsCount",{count:e.counts.prompts}):"",e.counts.themes?t("desktop.themesCount",{count:e.counts.themes}):""].filter(Boolean);return o.length?o.join(" \xb7 "):t("desktop.noResources")}function lq(e,t){let o=[];return e.version&&o.push(t("desktop.installedVersion",{version:e.version})),e.configuredVersion&&o.push(t("desktop.configuredVersion",{version:e.configuredVersion})),o.length?o.join(" \xb7 "):t("desktop.unknown")}function lV(e){return"loaded"===e?"var(--accent)":"installed"===e?"#f59e0b":"disabled"===e?"var(--text-dim)":"#ef4444"}function lK({pkg:e}){let{t}=(0,F.s)(),o=[["extension",t("desktop.extensions")],["skill",t("desktop.skills")],["prompt",t("desktop.prompts")],["theme",t("desktop.themes")]].map(([t,o])=>({kind:t,label:o,resources:e.resources.filter(e=>e.kind===t)})).filter(e=>e.resources.length>0);return 0===o.length?(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-dim)"},children:t(e.disabled?"desktop.packageDisabled":"desktop.noResolvedResources")}):(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:o.map((e,t)=>(0,n.jsxs)("div",{style:{borderTop:0===t?"none":"1px solid var(--border)",paddingTop:12*(0!==t)},children:[(0,n.jsx)("div",{style:{fontSize:10,fontWeight:700,color:"var(--text-dim)",textTransform:"uppercase",marginBottom:6},children:e.label}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:e.resources.map(e=>(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e.path,children:e.name}),(0,n.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginTop:1},title:e.path,children:e.relativePath})]},`${e.kind}:${e.path}`))})]},e.kind))})}function lG({scope:e}){let{t}=(0,F.s)();return(0,n.jsx)("span",{style:{fontSize:10,padding:"1px 5px",borderRadius:3,flexShrink:0,background:"project"===e?"rgba(99,102,241,0.12)":"rgba(120,120,120,0.12)",color:"project"===e?"rgba(99,102,241,0.85)":"var(--text-dim)"},children:t(`desktop.${e}`)})}function lJ(e,t){return{padding:"6px 12px",background:t?"rgba(239,68,68,0.08)":"none",border:"1px solid var(--border)",borderRadius:6,color:t?"#ef4444":"var(--text-muted)",cursor:e?"not-allowed":"pointer",fontSize:12,opacity:e?.5:1}}function lY({enabled:e,loading:t,onToggle:o,label:r}){return(0,n.jsx)("button",{type:"button",onClick:o,disabled:t,title:r,"aria-label":r,"aria-pressed":e,style:{flexShrink:0,width:40,height:22,borderRadius:11,border:"none",padding:0,cursor:t?"wait":"pointer",background:e?"var(--accent)":"var(--border)",position:"relative",transition:"background 0.18s",outline:"none",opacity:t?.65:1},children:(0,n.jsx)("span",{style:{position:"absolute",top:3,left:e?21:3,width:16,height:16,borderRadius:"50%",background:"var(--bg)",boxShadow:"0 1px 4px rgba(0,0,0,0.22)",transition:"left 0.18s cubic-bezier(.4,0,.2,1)"}})})}function lX({value:e,onChange:t}){let{t:o}=(0,F.s)();return(0,n.jsx)("div",{style:{display:"inline-flex",border:"1px solid var(--border)",borderRadius:7,overflow:"hidden",height:30},children:["global","project"].map(r=>{let s=e===r;return(0,n.jsx)("button",{onClick:()=>t(r),style:{width:76,border:"none",borderRight:"global"===r?"1px solid var(--border)":"none",background:s?"var(--bg-selected)":"none",color:s?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:12},children:o(`desktop.${r}`)},r)})})}function lZ({cwd:e,source:t,scope:o,busy:s,actionError:i,onSourceChange:a,onScopeChange:l,onInstall:d}){let{t:c}=(0,F.s)(),p=(0,r.useRef)(null);return(0,r.useEffect)(()=>{p.current?.focus()},[]),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:18,maxWidth:660,minHeight:"100%"},children:[(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:5},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,flexWrap:"wrap"},children:[(0,n.jsx)("div",{style:{fontSize:14,fontWeight:700,color:"var(--text)"},children:c("desktop.addPluginTitle")}),(0,n.jsx)("a",{href:"https://pi.dev/packages",target:"_blank",rel:"noopener noreferrer",style:{color:"var(--accent)",fontSize:12,textDecoration:"none",whiteSpace:"nowrap"},children:"pi.dev/packages ↗"})]}),(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-dim)",fontFamily:"var(--font-mono)"},children:"project"===o?`${lH(e)}/.pi/agent/{npm,git}`:"~/.pi/agent/{npm,git}"})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:7},children:[(0,n.jsx)("label",{htmlFor:"plugin-source",style:{fontSize:12,fontWeight:600,color:"var(--text-muted)"},children:c("desktop.pluginSource")}),(0,n.jsx)("input",{id:"plugin-source",ref:p,value:t,onChange:e=>a(e.target.value),onPaste:e=>{let t=e.clipboardData.getData("text"),o=lB(t);o!==t&&(e.preventDefault(),a(o))},onBlur:e=>a(lB(e.currentTarget.value)),placeholder:"npm:@scope/package",style:{width:"100%",height:36,padding:"0 11px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:13,outline:"none"},onKeyDown:e=>{"Enter"===e.key&&t.trim()&&!s&&d()}})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[(0,n.jsx)(lX,{value:o,onChange:l}),(0,n.jsx)("button",{type:"button",onClick:d,disabled:s||!t.trim(),style:{...lJ(s||!t.trim()),background:"var(--accent)",color:"white",borderColor:"var(--accent)"},children:c(s?"desktop.installing":"desktop.install")})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:7},children:[(0,n.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text-muted)"},children:c("desktop.examples")}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:["npm:@scope/pi-plugin","git:https://github.com/user/repo","/absolute/path/to/plugin"].map(e=>(0,n.jsx)("button",{type:"button",onClick:()=>a(e),style:{width:"100%",minHeight:30,textAlign:"left",padding:"6px 9px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text-dim)",cursor:"pointer",fontFamily:"var(--font-mono)",fontSize:11},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text-muted)"},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg-panel)",e.currentTarget.style.color="var(--text-dim)"},children:e},e))})]}),i&&(0,n.jsx)("div",{style:{fontSize:12,color:"#ef4444",whiteSpace:"pre-wrap"},children:i})]})}function lQ({pkg:e,cwd:t,busyKey:o,actionError:r,actionMessage:s,sessionId:i,onAction:a,onReloadSession:l}){let{t:d}=(0,F.s)(),c=lU(e),p=o?.endsWith(c)??!1,u="reload"===o,h=!e.disabled;return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:20,maxWidth:680},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:12,minWidth:0,flexWrap:"wrap"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:180,flex:1},children:[(0,n.jsx)(lY,{enabled:h,loading:p||u,onToggle:()=>a(e.disabled?"enable":"disable",e),label:d(e.disabled?"desktop.enablePackage":"desktop.disablePackage")}),(0,n.jsx)(lG,{scope:e.scope}),e.disabled?(0,n.jsx)("span",{style:{fontSize:10,padding:"1px 5px",borderRadius:3,background:"rgba(120,120,120,0.12)",color:"var(--text-dim)"},children:d("desktop.disabled")}):e.filtered&&(0,n.jsx)("span",{style:{fontSize:10,padding:"1px 5px",borderRadius:3,background:"rgba(245,158,11,0.12)",color:"#d97706"},children:d("desktop.filtered")}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.source})]}),(0,n.jsxs)("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[(0,n.jsx)("button",{onClick:()=>a("update",e),disabled:p||u,style:lJ(p||u),children:d(o===`update:${c}`?"desktop.updating":"desktop.update")}),(0,n.jsx)("button",{onClick:l,disabled:!i||u||p,style:lJ(!i||u||p),title:d(i?"desktop.reloadCurrentSession":"desktop.openSessionToReload"),children:d(u?"desktop.reloading":"desktop.reloadSession")}),(0,n.jsx)("button",{onClick:()=>a("remove",e),disabled:p||u,style:lJ(p||u,!0),children:d(o===`remove:${c}`?"desktop.removing":"desktop.remove")})]})]}),(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(96px, 130px) minmax(0, 1fr)",gap:"9px 14px",fontSize:12,lineHeight:1.45},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)"},children:d("desktop.status")}),(0,n.jsx)("div",{style:{color:lV(e.status),textTransform:"capitalize"},children:e.status}),(0,n.jsx)("div",{style:{color:"var(--text-dim)"},children:d("desktop.version")}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:lq(e,d)}),(0,n.jsx)("div",{style:{color:"var(--text-dim)"},children:d("desktop.package")}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",overflowWrap:"anywhere"},children:e.packageName??d("desktop.unknown")}),(0,n.jsx)("div",{style:{color:"var(--text-dim)"},children:d("desktop.resources")}),(0,n.jsx)("div",{style:{color:"var(--text-muted)"},children:l_(e,d)}),(0,n.jsx)("div",{style:{color:"var(--text-dim)"},children:d("desktop.installedPath")}),(0,n.jsx)("div",{style:{color:e.installedPath?"var(--text-muted)":"#ef4444",fontFamily:"var(--font-mono)",overflowWrap:"anywhere"},children:e.installedPath?lH(e.installedPath):d("desktop.notFound")}),(0,n.jsx)("div",{style:{color:"var(--text-dim)"},children:d("desktop.cwd")}),(0,n.jsx)("div",{style:{color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflowWrap:"anywhere"},children:lH(t)})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[(0,n.jsx)("div",{style:{fontSize:12,fontWeight:700,color:"var(--text)"},children:d("desktop.resolvedResources")}),(0,n.jsx)(lK,{pkg:e})]}),s&&(0,n.jsx)("div",{style:{fontSize:12,color:"#16a34a"},children:s}),r&&(0,n.jsx)("div",{style:{fontSize:12,color:"#ef4444",whiteSpace:"pre-wrap"},children:r})]})}function l0({cwd:e,sessionId:t,embedded:o=!1,onCloseAction:s,onReloadedAction:i}){let a=$(),{t:l}=(0,F.s)(),[d,c]=(0,r.useState)(null),[p,u]=(0,r.useState)(!0),[h,g]=(0,r.useState)(null),[m,f]=(0,r.useState)(null),[k,v]=(0,r.useState)(!1),[y,b]=(0,r.useState)(""),[w,j]=(0,r.useState)("global"),[S,C]=(0,r.useState)(null),[T,R]=(0,r.useState)(null),[z,I]=(0,r.useState)(null),M=(0,r.useMemo)(()=>d?.packages??[],[d?.packages]),P=M.find(e=>lU(e)===m)??null,E=(0,r.useMemo)(()=>["project","global"].map(e=>({scope:e,packages:M.filter(t=>t.scope===e)})).filter(e=>e.packages.length>0),[M]),D=(0,r.useCallback)(async()=>{u(!0),g(null);try{let t=await fetch(`/api/plugins?cwd=${encodeURIComponent(e)}`),o=await t.json();if(!t.ok||o.error)throw Error(o.error??`HTTP ${t.status}`);c(o),v(e=>0===o.packages.length||e),f(e=>e&&o.packages.some(t=>lU(t)===e)?e:o.packages[0]?lU(o.packages[0]):null)}catch(e){g(e instanceof Error?e.message:String(e))}finally{u(!1)}},[e]);(0,r.useEffect)(()=>{D()},[D]);let W=(0,r.useCallback)(async(t,o)=>{let n=lU(o);C(`${t}:${n}`),R(null),I(null);try{let n=await fetch("/api/plugins",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:t,source:o.source,scope:o.scope,cwd:e})}),r=await n.json();if(!n.ok||r.error)throw Error(r.error??`HTTP ${n.status}`);if(c(r),"remove"===t)f(r.packages[0]?lU(r.packages[0]):null),0===r.packages.length&&v(!0),I(l("desktop.packageRemoved"));else{let e={install:l("desktop.packageInstalled"),update:l("desktop.packageUpdated"),disable:l("desktop.packageDisabledMessage"),enable:l("desktop.packageEnabled")};I(e[t])}}catch(e){R(e instanceof Error?e.message:String(e))}finally{C(null)}},[e,l]),A=(0,r.useCallback)(async()=>{let t=lB(y).trim();if(!t)return;let o=`${w}\0${t}`;C(`install:${o}`),R(null),I(null);try{var n;let r,s,i=await fetch("/api/plugins",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"install",source:t,scope:w,cwd:e})}),a=await i.json();if(!i.ok||a.error)throw Error(a.error??`HTTP ${i.status}`);c(a);let d=(n=a.packages,s=(r=t.trim()).startsWith("npm:")?r.slice(4):r,n.find(e=>e.scope===w&&e.source===r)??n.find(e=>e.scope===w&&e.source===`npm:${s}`)??n.find(e=>e.scope===w&&e.source.endsWith(r)));f(d?lU(d):o),v(!1),b(""),I(l("desktop.packageInstalled"))}catch(e){R(e instanceof Error?e.message:String(e))}finally{C(null)}},[e,w,y,l]),N=(0,r.useCallback)(async()=>{if(t){C("reload"),R(null),I(null);try{await iS(t,{type:"reload"}),i?.(),await D(),I(l("desktop.sessionReloaded"))}catch(e){R(e instanceof Error?e.message:String(e))}finally{C(null)}}},[D,i,t,l]),L=S?.startsWith("install:")??!1;return(0,n.jsx)("div",{style:o?{display:"flex",flex:1,minWidth:0,minHeight:0,overflow:"hidden"}:{position:"fixed",inset:0,zIndex:1e3,background:"rgba(0,0,0,0.35)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:e=>{o||e.target!==e.currentTarget||s?.()},children:(0,n.jsxs)("div",{style:o?{display:"flex",flex:1,minWidth:0,minHeight:0,flexDirection:"column",overflow:"hidden"}:{width:a?"calc(100vw - 16px)":860,maxWidth:"calc(100vw - 16px)",height:a?"calc(100dvh - 16px)":"76vh",maxHeight:"calc(100dvh - 16px)",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,display:"flex",flexDirection:"column",boxShadow:"0 8px 32px rgba(0,0,0,0.18)",overflow:"hidden"},children:[!o&&(0,n.jsxs)("div",{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:l("desktop.plugins")}),(0,n.jsx)("code",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:lH(e)})]}),(0,n.jsx)("button",{onClick:s,title:l("desktop.close"),"aria-label":l("desktop.close"),style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:20,lineHeight:1,padding:"2px 6px"},children:"\xd7"})]}),(0,n.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:a?"column":"row",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{width:a?"100%":245,maxHeight:a?"40vh":void 0,borderRight:a?"none":"1px solid var(--border)",borderBottom:a?"1px solid var(--border)":"none",display:"flex",flexDirection:"column",flexShrink:0,background:"var(--bg-panel)"},children:[(0,n.jsx)("div",{style:{flex:1,overflowY:"auto",padding:"8px 6px"},children:p?(0,n.jsx)("div",{style:{padding:"10px 8px",fontSize:12,color:"var(--text-muted)"},children:l("desktop.loading")}):h?(0,n.jsx)("div",{style:{padding:"10px 8px",fontSize:11,color:"#ef4444"},children:h}):0===M.length?(0,n.jsx)("div",{style:{padding:"10px 8px",fontSize:11,color:"var(--text-dim)"},children:l("desktop.noPluginsConfigured")}):E.map(e=>(0,n.jsxs)("div",{style:{marginBottom:6},children:[(0,n.jsx)("div",{style:{padding:"4px 8px 3px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase"},children:l(`desktop.${e.scope}`)}),e.packages.map(e=>{let t=lU(e),o=!k&&m===t;return(0,n.jsxs)("div",{onClick:()=>{f(t),v(!1),R(null),I(null)},style:{display:"flex",alignItems:"center",gap:7,padding:"8px 8px",borderRadius:5,cursor:"pointer",background:o?"var(--bg-selected)":"none"},onMouseEnter:e=>{o||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{o||(e.currentTarget.style.background="none")},children:[(0,n.jsx)("span",{style:{flexShrink:0,width:7,height:7,borderRadius:"50%",background:lV(e.status)}}),(0,n.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,n.jsx)("div",{style:{fontSize:12,fontWeight:o?600:400,color:"var(--text)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.source}),(0,n.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginTop:2},children:l_(e,l)}),(e.version||e.configuredVersion)&&(0,n.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginTop:2},children:lq(e,l)})]})]},t)})]},e.scope))}),(0,n.jsx)("div",{style:{padding:"8px 6px",borderTop:"1px solid var(--border)",flexShrink:0},children:(0,n.jsxs)("button",{type:"button",onClick:()=>{v(!0),R(null),I(null)},style:{display:"flex",alignItems:"center",gap:6,padding:"7px 8px",borderRadius:5,border:"none",width:"100%",cursor:"pointer",background:k?"var(--bg-selected)":"none",color:k?"var(--accent)":"var(--text-dim)",fontSize:12},onMouseEnter:e=>{k||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{k||(e.currentTarget.style.background="none")},children:[(0,n.jsx)(x.c,{size:13}),l("desktop.addPlugin")]})})]}),(0,n.jsx)("div",{style:{flex:1,overflowY:"auto",padding:20},children:k?(0,n.jsx)(lZ,{cwd:e,source:y,scope:w,busy:L,actionError:T,onSourceChange:b,onScopeChange:j,onInstall:A}):p?null:P?(0,n.jsx)(lQ,{pkg:P,cwd:e,busyKey:S,actionError:T,actionMessage:z,sessionId:t,onAction:W,onReloadSession:N},lU(P)):(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:13},children:l("desktop.selectPackage")})})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,padding:"10px 18px",borderTop:"1px solid var(--border)",flexShrink:0},children:[(0,n.jsx)("div",{style:{minWidth:0,flex:1,fontSize:11,color:"var(--text-dim)",overflow:"hidden"},children:d?.diagnostics.length?(0,n.jsx)("span",{title:d.diagnostics.map(e=>`${e.type}: ${e.source?`${e.source}: `:""}${e.message}`).join("\n"),style:{color:d.diagnostics.some(e=>"error"===e.type)?"#ef4444":"#d97706"},children:l("desktop.diagnosticsCount",{count:d.diagnostics.length,suffix:1===d.diagnostics.length?"":"s"})}):(0,n.jsx)("span",{children:d?l("desktop.pluginResourceTotals",{extensions:d.totals.extensions,skills:d.totals.skills,prompts:d.totals.prompts,themes:d.totals.themes}):""})}),(0,n.jsx)("button",{onClick:()=>void D(),disabled:p||null!==S,style:lJ(p||null!==S),children:l("desktop.refresh")}),!o&&(0,n.jsx)("button",{onClick:s,style:lJ(!1),children:l("desktop.close")})]})]})})}var l1=o(36282);function l2(){let{t:e}=(0,F.s)(),[t,o]=(0,r.useState)({enabled:!1,protocol:"http",host:"127.0.0.1",port:7890,username:"",password:"",noProxy:"localhost,127.0.0.1,.local",hasPassword:!1}),[s,i]=(0,r.useState)(!1),[a,l]=(0,r.useState)(!1),[d,c]=(0,r.useState)(null),[p,u]=(0,r.useState)(null),[h,g]=(0,r.useState)(null),[m,f]=(0,r.useState)(!1),[x,k]=(0,r.useState)(!1);(0,r.useEffect)(()=>{(async()=>{try{let e=await fetch("/api/proxy");if(e.ok){let t=await e.json();o(e=>({...e,...t,password:""}))}}catch{}})()},[]);let v=(0,r.useCallback)((e,t)=>{o(o=>({...o,[e]:t})),"password"===e&&k(!0),f(!0),u(null),g(null)},[]),y=(0,r.useCallback)(async()=>{i(!0),u(null),g(null);try{let n={...t};delete n.hasPassword,x||delete n.password;let r=await fetch("/api/proxy",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)}),s=await r.json();if(r.ok){u(!0),f(!1),k(!1);let e=await fetch("/api/proxy");if(e.ok){let t=await e.json();o(e=>({...e,...t,password:""}))}}else u(!1),g(s.error||e("desktop.proxySaveFailed"))}catch(t){u(!1),g(t instanceof Error?t.message:e("desktop.proxySaveFailed"))}finally{i(!1)}},[t,x,e]),b=(0,r.useCallback)(async()=>{l(!0),c(null),m&&await y();try{let t=await fetch("/api/proxy/test",{method:"POST"}),o=await t.json();o.success?c({ok:!0,message:`${e("desktop.proxyTestSuccess")} \xb7 ${o.latencyMs}ms`,latencyMs:o.latencyMs}):c({ok:!1,message:o.error||e("desktop.proxyTestFailed")})}catch(t){c({ok:!1,message:t instanceof Error?t.message:e("desktop.proxyTestFailed")})}finally{l(!1)}},[m,y,e]),w=(0,r.useCallback)(()=>{if(!t.enabled||!t.host||!t.port)return null;let e="";return t.username&&t.password?e=`${t.username}:${"•".repeat(Math.min(t.password.length,8))}@`:t.username&&(e=`${t.username}@`),`${t.protocol}://${e}${t.host}:${t.port}`},[t.enabled,t.host,t.port,t.protocol,t.username,t.password])();return(0,n.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",padding:"16px 20px",overflow:"auto",gap:16},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,marginBottom:4},children:[(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,fontSize:14,fontWeight:500,color:"var(--text)",cursor:"pointer"},children:[(0,n.jsx)("input",{type:"checkbox",checked:t.enabled,onChange:e=>v("enabled",e.target.checked),style:{width:16,height:16,accentColor:"var(--accent)"}}),e("desktop.proxyEnable")]}),t.enabled&&w&&(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",fontFamily:"var(--font-mono)",backgroundColor:"var(--bg-hover)",padding:"2px 10px",borderRadius:4,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"60%"},title:w,children:w})]}),(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"12px 16px",opacity:t.enabled?1:.5,pointerEvents:t.enabled?"auto":"none"},children:[(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("label",{style:{fontSize:12,color:"var(--text-muted)"},children:e("desktop.proxyProtocol")}),(0,n.jsxs)("select",{value:t.protocol,onChange:e=>v("protocol",e.target.value),style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:13,fontFamily:"var(--font-mono)",outline:"none"},children:[(0,n.jsx)("option",{value:"http",children:"HTTP"}),(0,n.jsx)("option",{value:"https",children:"HTTPS"}),(0,n.jsx)("option",{value:"socks5",children:"SOCKS5"})]})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("label",{style:{fontSize:12,color:"var(--text-muted)"},children:e("desktop.proxyHost")}),(0,n.jsx)("input",{type:"text",value:t.host,onChange:e=>v("host",e.target.value),placeholder:"127.0.0.1",style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:13,fontFamily:"var(--font-mono)",outline:"none"}})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("label",{style:{fontSize:12,color:"var(--text-muted)"},children:e("desktop.proxyPort")}),(0,n.jsx)("input",{type:"number",value:t.port,onChange:e=>v("port",parseInt(e.target.value,10)||0),placeholder:"7890",min:1,max:65535,style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:13,fontFamily:"var(--font-mono)",outline:"none"}})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("label",{style:{fontSize:12,color:"var(--text-muted)"},children:e("desktop.proxyUsername")}),(0,n.jsx)("input",{type:"text",value:t.username,onChange:e=>v("username",e.target.value),placeholder:t.username?"":e("desktop.proxyUsername"),style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:13,fontFamily:"var(--font-mono)",outline:"none"}})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("label",{style:{fontSize:12,color:"var(--text-muted)"},children:e("desktop.proxyPassword")}),(0,n.jsx)("input",{type:"password",value:t.password,onChange:e=>v("password",e.target.value),placeholder:t.hasPassword?"••••••••":e("desktop.proxyPassword"),style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:13,fontFamily:"var(--font-mono)",outline:"none"}})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4,gridColumn:"1 / -1"},children:[(0,n.jsx)("label",{style:{fontSize:12,color:"var(--text-muted)"},children:e("desktop.proxyNoProxy")}),(0,n.jsx)("input",{type:"text",value:t.noProxy,onChange:e=>v("noProxy",e.target.value),placeholder:"localhost,127.0.0.1,.local",style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:13,fontFamily:"var(--font-mono)",outline:"none"}})]})]}),(0,n.jsxs)("div",{style:{display:"flex",gap:10,marginTop:4},children:[(0,n.jsx)("button",{type:"button",onClick:y,disabled:s,style:{padding:"6px 18px",borderRadius:6,border:"none",background:"var(--accent)",color:"#fff",fontSize:13,fontWeight:500,cursor:s?"not-allowed":"pointer",opacity:s?.5:1,transition:"background 0.15s"},onMouseEnter:e=>{s||(e.currentTarget.style.background="var(--accent-hover)")},onMouseLeave:e=>{s||(e.currentTarget.style.background="var(--accent)")},children:s?e("desktop.proxySaving"):e("desktop.proxySave")}),(0,n.jsx)("button",{type:"button",onClick:b,disabled:a||!t.enabled,style:{padding:"6px 18px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:t.enabled?"var(--text)":"var(--text-muted)",fontSize:13,fontWeight:500,cursor:t.enabled?"pointer":"not-allowed",opacity:t.enabled?1:.5,transition:"background 0.15s"},onMouseEnter:e=>{t.enabled&&(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t.enabled&&(e.currentTarget.style.background="var(--bg)")},children:a?e("desktop.proxyTesting"):e("desktop.proxyTest")})]}),!0===p&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 12px",borderRadius:6,backgroundColor:"rgba(34, 197, 94, 0.12)",color:"#22c55e",fontSize:13},children:[(0,n.jsx)(nO.r,{size:16,weight:"fill"}),e("desktop.proxySaved")]}),!1===p&&h&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 12px",borderRadius:6,backgroundColor:"rgba(239, 68, 68, 0.10)",color:"#ef4444",fontSize:13},children:[(0,n.jsx)(ia.J,{size:16,weight:"fill"}),h]}),d&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 12px",borderRadius:6,backgroundColor:d.ok?"rgba(34, 197, 94, 0.10)":"rgba(239, 68, 68, 0.10)",color:d.ok?"#22c55e":"#ef4444",fontSize:13},children:[d.ok?(0,n.jsx)(nO.r,{size:16,weight:"fill"}):(0,n.jsx)(ia.J,{size:16,weight:"fill"}),d.message,void 0!==d.latencyMs&&(0,n.jsxs)("span",{style:{color:"var(--text-muted)",fontSize:12,marginLeft:4},children:["(",d.latencyMs,"ms)"]})]}),m&&!p&&!h&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"4px 12px",borderRadius:6,backgroundColor:"var(--bg-hover)",color:"var(--text-muted)",fontSize:12},children:[(0,n.jsx)(l1.j,{size:12,weight:"fill"}),e("desktop.proxyUnsaved")]})]})}function l4(e){return e.replace(/^\/(?:Users|home)\/[^/]+/,"~")}function l6(e){let t=e.sourceInfo?.source,o=e.sourceInfo?.scope;return"user"===o||"user"===t?"global":"project"===o||"project"===t?"project":"path"}function l8(e){let t=l6(e);return"path"===t?t:e.install?.skillsShUrl?`${t} / skills.sh`:t}function l5(e){return e.install?`${e.install.scope}\0${e.install.package}`:null}function l3(e,t){return e?e.slice(0,8):t}function l7({enabled:e,loading:t,onToggle:o}){let{t:r}=(0,F.s)();return(0,n.jsx)("button",{onClick:o,disabled:t,title:r(e?"desktop.visibleInModelPrompt":"desktop.hiddenFromModelPrompt"),style:{flexShrink:0,width:40,height:22,borderRadius:11,border:"none",padding:0,cursor:t?"wait":"pointer",background:e?"var(--accent)":"var(--border)",position:"relative",transition:"background 0.18s",outline:"none"},children:(0,n.jsx)("span",{style:{position:"absolute",top:3,left:e?21:3,width:16,height:16,borderRadius:"50%",background:"var(--bg)",boxShadow:"0 1px 4px rgba(0,0,0,0.22)",transition:"left 0.18s cubic-bezier(.4,0,.2,1)"}})})}function l9({skill:e,cwd:t,onToggle:o,toggling:r,saveError:s,updateStatus:i,checkingUpdate:a,updating:l,updateError:d,onCheckUpdate:c,onUpdate:p}){let{t:u}=(0,F.s)(),h=l6(e),g=!e.disableModelInvocation;return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:20},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:7},children:[(0,n.jsx)("span",{style:{fontSize:10,padding:"1px 5px",borderRadius:3,flexShrink:0,background:"project"===h?"rgba(99,102,241,0.12)":"rgba(120,120,120,0.12)",color:"project"===h?"rgba(99,102,241,0.8)":"var(--text-dim)"},children:u(`desktop.${h}`)}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-dim)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:function(e){if("project"===h&&e.startsWith(t)){let o=e.slice(t.length).replace(/^[/\\]/,"");return`./${o}`}return l4(e)}(e.filePath)}),(0,n.jsx)(l7,{enabled:g,loading:r,onToggle:()=>o(e)}),s&&(0,n.jsx)("span",{style:{fontSize:12,color:"#f87171",flexShrink:0},children:s})]}),!g&&(0,n.jsx)("div",{style:{marginTop:-12,color:"var(--text-dim)",fontSize:12},children:u("desktop.hiddenButInvocable")}),e.install?.skillsShUrl&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:5},children:[(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",fontWeight:500},children:u("desktop.pluginSource")}),(0,n.jsx)("a",{href:e.install.skillsShUrl,target:"_blank",rel:"noreferrer",title:e.install.skillsShUrl,style:{display:"flex",alignItems:"center",gap:8,width:"fit-content",maxWidth:"100%",color:"var(--accent)",textDecoration:"none"},children:(0,n.jsxs)("span",{style:{fontFamily:"var(--font-mono)",fontSize:12,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[e.install.skillsShUrl.replace(/^https?:\/\//,"")," ↗"]})})]}),e.install&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:7},children:[(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",fontWeight:500},children:u("desktop.version")}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:12,color:"var(--text-muted)"},children:l3(i?.currentVersion??e.install.versionHash,u("desktop.unknown"))}),e.install.canCheckForUpdates&&(0,n.jsx)("button",{onClick:c,disabled:a||l,style:{padding:"4px 9px",border:"1px solid var(--border)",borderRadius:5,background:"none",color:"var(--text-muted)",cursor:a||l?"not-allowed":"pointer",opacity:a||l?.5:1,fontSize:11},children:u("desktop.check")}),i?.state==="update-available"&&(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:12,color:"#d97706"},children:l3(i.latestVersion,u("desktop.unknown"))}),(a||i&&"update-available"!==i.state)&&(0,n.jsx)("span",{style:{fontSize:12,color:a?"var(--accent)":i?.state==="up-to-date"?"#16a34a":i?.state==="error"?"#ef4444":"var(--text-dim)"},children:a?u("desktop.checking"):i?.state==="up-to-date"?u("desktop.upToDate"):i?.state==="unsupported"?u("desktop.automaticChecksUnavailable"):i?.message||u("desktop.checkFailed")}),i?.state==="update-available"&&(0,n.jsx)("button",{onClick:p,disabled:l||a,style:{padding:"4px 10px",border:"none",borderRadius:5,background:"var(--accent)",color:"#fff",cursor:l||a?"not-allowed":"pointer",opacity:l||a?.5:1,fontSize:11,fontWeight:600},children:u(l?"desktop.updating":"desktop.update")})]}),d&&(0,n.jsx)("span",{style:{fontSize:12,color:"#ef4444"},children:d})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:5},children:[(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",fontWeight:500},children:u("desktop.name")}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:14,color:"var(--text)"},children:e.name})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:5},children:[(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",fontWeight:500},children:u("desktop.description")}),(0,n.jsx)("span",{style:{fontSize:14,color:"var(--text-muted)",lineHeight:1.6},children:e.description})]})]})}function de({cwd:e,installedPackages:t,projectResourcesLoaded:o,onInstalled:s}){let{t:i}=(0,F.s)(),[a,l]=(0,r.useState)(""),[d,c]=(0,r.useState)([]),[p,u]=(0,r.useState)(!1),[h,g]=(0,r.useState)(null),[m,f]=(0,r.useState)(null),[x,k]=(0,r.useState)(null),[v,y]=(0,r.useState)(new Set),[b,w]=(0,r.useState)("global"),j=(0,r.useRef)(null);(0,r.useEffect)(()=>{j.current?.focus()},[]),(0,r.useEffect)(()=>{o||w("global")},[o]);let S=(0,r.useCallback)(async e=>{if(e.trim()){u(!0),g(null),c([]);try{let t=await fetch("/api/skills/search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:e.trim()})}),o=await t.json();if(o.error)return void g(o.error);c(o.results??[]),0===(o.results??[]).length&&g(i("desktop.noSkillsFound"))}catch(e){g(String(e))}finally{u(!1)}}},[i]),C=(0,r.useCallback)(async t=>{f(t),k(null);try{let o=await fetch("/api/skills/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({package:t,scope:b,cwd:e})}),n=await o.json();if(!o.ok||n.error)return void k(n.error??`HTTP ${o.status}`);y(e=>new Set(e).add(`${b}:${t}`)),s()}catch(e){k(String(e))}finally{f(null)}},[s,b,e]),T="global"===b?"~/.pi/agent/skills/":`${l4(e)}/.pi/skills/`;return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%"},children:[(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12,marginBottom:20},children:[(0,n.jsx)("div",{style:{fontSize:14,fontWeight:600,color:"var(--text)"},children:i("desktop.addSkillTitle")}),(0,n.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,n.jsx)("input",{ref:j,value:a,onChange:e=>l(e.target.value),onKeyDown:e=>{"Enter"===e.key&&S(a)},placeholder:i("desktop.skillSearchPlaceholder"),style:{flex:1,padding:"7px 10px",fontSize:13,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",outline:"none"}}),(0,n.jsx)("button",{onClick:()=>S(a),disabled:p||!a.trim(),style:{padding:"7px 16px",fontSize:13,borderRadius:6,border:"none",background:"var(--accent)",color:"#fff",cursor:p||!a.trim()?"not-allowed":"pointer",opacity:p||!a.trim()?.5:1,flexShrink:0},children:p?i("desktop.searching"):i("desktop.search")})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,n.jsx)("div",{style:{display:"flex",borderRadius:5,border:"1px solid var(--border)",overflow:"hidden",fontSize:12,flexShrink:0},children:["global","project"].map(e=>(0,n.jsx)("button",{onClick:()=>w(e),disabled:"project"===e&&!o,title:"project"!==e||o?void 0:i("desktop.projectSkillInstallUnavailable"),style:{padding:"3px 10px",border:"none",cursor:"project"!==e||o?"pointer":"not-allowed",opacity:"project"!==e||o?1:.5,background:b===e?"var(--bg-selected)":"none",color:b===e?"var(--text)":"var(--text-dim)",fontWeight:b===e?600:400,borderRight:"global"===e?"1px solid var(--border)":"none"},children:i(`desktop.${e}`)},e))}),(0,n.jsxs)("span",{style:{fontSize:12,color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:["→ ",T]})]}),h&&(0,n.jsx)("div",{style:{fontSize:12,color:"#f87171"},children:h}),x&&(0,n.jsx)("div",{style:{fontSize:12,color:"#f87171",wordBreak:"break-word"},children:x})]}),d.length>0?(0,n.jsx)("div",{style:{flex:1,overflowY:"auto"},children:d.map(e=>{let o=t[b].has(e.package)||v.has(`${b}:${e.package}`),r=m===e.package,s=e.package.indexOf("@"),a=s>-1?e.package.slice(0,s):e.package,l=s>-1?e.package.slice(s+1):null;return(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:14,padding:"12px 0",borderBottom:"1px solid var(--border)"},children:[(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"var(--text)",marginBottom:3},children:l??a}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-dim)"},children:a}),(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",fontWeight:500},children:e.installs}),e.url&&(0,n.jsx)("a",{href:e.url,target:"_blank",rel:"noreferrer",style:{fontSize:12,color:"var(--accent)",textDecoration:"none"},children:"skills.sh ↗"})]})]}),(0,n.jsx)("button",{onClick:()=>!o&&!r&&C(e.package),disabled:o||r||null!==m,style:{flexShrink:0,padding:"5px 14px",fontSize:12,fontWeight:500,borderRadius:5,border:"1px solid var(--border)",cursor:o||r||null!==m?"not-allowed":"pointer",background:o?"rgba(34,197,94,0.1)":"none",color:o?"#16a34a":r?"var(--accent)":"var(--text-muted)",transition:"color 0.12s"},children:o?`✓ ${i("desktop.installed")}`:r?i("desktop.installing"):i("desktop.install")})]},e.package)})}):!h&&!p&&(0,n.jsxs)("div",{style:{fontSize:13,color:"var(--text-dim)",lineHeight:1.8},children:[i("desktop.skillSearchHint").split("skills.sh")[0],(0,n.jsx)("a",{href:"https://skills.sh",target:"_blank",rel:"noreferrer",style:{color:"var(--accent)",textDecoration:"none"},children:"skills.sh"}),i("desktop.skillSearchHint").split("skills.sh")[1]]})]})}function dt({cwd:e,embedded:t=!1,sessionId:o,onCloseAction:s}){let i=$(),{t:a}=(0,F.s)(),[l,d]=(0,r.useState)([]),[c,p]=(0,r.useState)(!0),[u,h]=(0,r.useState)(null),[g,m]=(0,r.useState)(null),[f,k]=(0,r.useState)(new Set),[v,y]=(0,r.useState)(null),[b,w]=(0,r.useState)(!1),[j,S]=(0,r.useState)({}),[C,T]=(0,r.useState)(new Set),[R,z]=(0,r.useState)(!1),[I,M]=(0,r.useState)(null),[P,E]=(0,r.useState)(null),[D,W]=(0,r.useState)(!0),[A,N]=(0,r.useState)({}),L=(0,r.useCallback)(async()=>{p(!0),h(null);try{let t=await fetch(`/api/skills?cwd=${encodeURIComponent(e)}`),o=await t.json();if(!t.ok||o.error)throw Error(o.error??`HTTP ${t.status}`);let n=o.skills??[];if(d(n),W(o.projectResourcesLoaded??!0),n.length>0&&!g){let e=n.find(e=>!e.disableModelInvocation)??n[0];m(e.filePath),e.disableModelInvocation&&N(t=>({...t,[l8(e)]:!0}))}return n}catch(e){return h(String(e)),[]}finally{p(!1)}},[e,g]);(0,r.useEffect)(()=>{S({}),E(null),L()},[e]);let O=(0,r.useCallback)(async t=>{let o=(t?[t]:l.filter(e=>!!e.install)).map(l5).filter(e=>!!e);if(0!==o.length){E(null),T(e=>new Set([...e,...o])),t||z(!0);try{let o=await fetch("/api/skills/check",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,package:t?.install?.package,scope:t?.install?.scope})}),n=await o.json();if(!o.ok||n.error)throw Error(n.error??`HTTP ${o.status}`);S(e=>{let t={...e};for(let e of n.updates??[])t[`${e.scope}\0${e.package}`]=e;return t})}catch(e){E(e instanceof Error?e.message:String(e))}finally{T(e=>{let t=new Set(e);for(let e of o)t.delete(e);return t}),t||z(!1)}}},[e,l]),H=(0,r.useCallback)(async t=>{if(!t.install)return;let o=l5(t);M(o),E(null);try{let n=await fetch("/api/skills/update",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,package:t.install.package,scope:t.install.scope})}),r=await n.json();if(!n.ok||r.error||!r.success)throw Error(r.error??`HTTP ${n.status}`);await L();let s=r.skill?.install?.versionHash;S(e=>({...e,[o]:{package:t.install.package,scope:t.install.scope,state:"up-to-date",currentVersion:s,latestVersion:s}}))}catch(e){E(e instanceof Error?e.message:String(e))}finally{M(null)}},[e,L]),B=(0,r.useCallback)(async t=>{let o=!t.disableModelInvocation;k(e=>new Set(e).add(t.filePath)),y(null);try{let n=await fetch("/api/skills",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,filePath:t.filePath,disableModelInvocation:o})}),r=await n.json();if(!n.ok||r.error)return void y(r.error??`HTTP ${n.status}`);d(e=>e.map(e=>e.filePath===t.filePath?{...e,disableModelInvocation:o}:e)),o&&N(e=>({...e,[l8(t)]:!0}))}catch(e){y(String(e))}finally{k(e=>{let o=new Set(e);return o.delete(t.filePath),o})}},[e]),U=l.find(e=>e.filePath===g)??null;return(0,n.jsx)("div",{style:t?{display:"flex",flex:1,minWidth:0,minHeight:0,overflow:"hidden"}:{position:"fixed",inset:0,zIndex:1e3,background:"rgba(0,0,0,0.35)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:e=>{t||e.target!==e.currentTarget||s?.()},children:(0,n.jsxs)("div",{style:t?{display:"flex",flex:1,minWidth:0,minHeight:0,flexDirection:"column",overflow:"hidden"}:{width:i?"calc(100vw - 16px)":860,maxWidth:"calc(100vw - 16px)",height:i?"calc(100dvh - 16px)":"78vh",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:[!t&&(0,n.jsxs)("div",{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},children:[(0,n.jsx)("span",{style:{fontSize:15,fontWeight:700,color:"var(--text)"},children:a("desktop.skills")}),(0,n.jsx)("code",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)",maxWidth:320,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:l4(e)})]}),(0,n.jsx)("button",{onClick:s,title:a("desktop.close"),"aria-label":a("desktop.close"),style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:20,lineHeight:1,padding:"2px 6px"},children:"\xd7"})]}),!D&&(0,n.jsx)("div",{role:"status",style:{padding:"8px 18px",borderBottom:"1px solid var(--border)",background:"var(--bg-subtle)",color:"var(--text-muted)",fontSize:12},children:a("desktop.projectSkillsRestricted")}),(0,n.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:i?"column":"row",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{width:i?"100%":210,maxHeight:i?"40vh":void 0,borderRight:i?"none":"1px solid var(--border)",borderBottom:i?"1px solid var(--border)":"none",display:"flex",flexDirection:"column",flexShrink:0,background:"var(--bg-panel)"},children:[(0,n.jsx)("div",{style:{padding:"8px 8px 0",display:"flex",justifyContent:"flex-end"},children:(0,n.jsx)(ls,{sessionId:o,onApplied:L})}),(0,n.jsx)("div",{style:{flex:1,overflowY:"auto",padding:"8px 6px"},children:c?(0,n.jsx)("div",{style:{padding:"10px 8px",fontSize:12,color:"var(--text-muted)"},children:a("desktop.loading")}):u?(0,n.jsx)("div",{style:{padding:"10px 8px",fontSize:11,color:"#f87171"},children:u}):0===l.length?(0,n.jsx)("div",{style:{padding:"10px 8px",fontSize:11,color:"var(--text-dim)"},children:a("desktop.noSkillsFound")}):(()=>{let e=[];for(let{key:t,label:o,matches:n}of[{key:"project / skills.sh",label:`${a("desktop.project")} / skills.sh`,matches:e=>"project"===l6(e)&&!!e.install?.skillsShUrl},{key:"project",label:a("desktop.project"),matches:e=>"project"===l6(e)&&!e.install?.skillsShUrl},{key:"global / skills.sh",label:`${a("desktop.global")} / skills.sh`,matches:e=>"global"===l6(e)&&!!e.install?.skillsShUrl},{key:"global",label:a("desktop.global"),matches:e=>"global"===l6(e)&&!e.install?.skillsShUrl},{key:"path",label:a("desktop.path"),matches:e=>"path"===l6(e)}]){let r=l.filter(n);r.length>0&&e.push({key:t,label:o,skills:r})}return e.map(({key:e,label:t,skills:o})=>{let r=o.filter(e=>!e.disableModelInvocation),s=o.filter(e=>e.disableModelInvocation),i=A[e]??!1,l=i?[...r,...s]:r;return(0,n.jsxs)("div",{style:{marginBottom:6},children:[(0,n.jsx)("div",{style:{padding:"4px 8px 3px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.06em"},children:t}),s.length>0&&(0,n.jsxs)("button",{type:"button",onClick:()=>N(t=>({...t,[e]:!i})),style:{display:"flex",alignItems:"center",gap:5,width:"100%",padding:"4px 8px 3px",border:"none",background:"transparent",color:"var(--text-dim)",cursor:"pointer",fontSize:10,fontWeight:600,letterSpacing:"0.06em",textAlign:"left",textTransform:"uppercase"},children:[(0,n.jsx)("span",{style:{fontSize:8},children:i?"▾":"▸"}),a("desktop.dormant")," (",s.length,")"]}),l.map(e=>{let t,o,r=!b&&g===e.filePath,s=e.disableModelInvocation;return(0,n.jsxs)("div",{onClick:()=>{m(e.filePath),w(!1)},style:{display:"flex",alignItems:"center",gap:7,padding:"8px 8px",borderRadius:5,cursor:"pointer",background:r?"var(--bg-selected)":"none"},onMouseEnter:e=>{r||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{r||(e.currentTarget.style.background="none")},children:[(0,n.jsx)("span",{style:{flexShrink:0,width:7,height:7,borderRadius:"50%",background:s?"var(--border)":"var(--accent)",boxShadow:s?"none":"0 0 4px var(--accent)",transition:"background 0.15s, box-shadow 0.15s"}}),(0,n.jsx)("span",{style:{fontSize:12,fontWeight:r?600:400,color:s?"var(--text-dim)":"var(--text)",fontFamily:"var(--font-mono)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),(o=(t=l5(e))?j[t]:void 0,o?.state!=="update-available"?null:(0,n.jsx)("span",{title:a("desktop.updateAvailable"),style:{color:"#d97706",fontSize:13,lineHeight:1,flexShrink:0},children:"↑"}))]},e.filePath)})]},e)})})()}),(0,n.jsx)("div",{style:{padding:"8px 6px",borderTop:"1px solid var(--border)",flexShrink:0},children:(0,n.jsxs)("div",{onClick:()=>w(!0),style:{display:"flex",alignItems:"center",gap:6,padding:"7px 8px",borderRadius:5,cursor:"pointer",background:b?"var(--bg-selected)":"none",color:b?"var(--accent)":"var(--text-dim)",fontSize:12},onMouseEnter:e=>{b||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{b||(e.currentTarget.style.background="none")},children:[(0,n.jsx)(x.c,{size:13}),a("desktop.addSkill")]})})]}),(0,n.jsx)("div",{style:{flex:1,overflowY:"auto",padding:20},children:b?(0,n.jsx)(de,{cwd:e,installedPackages:{global:new Set(l.filter(e=>e.install?.scope==="global").map(e=>e.install.package)),project:new Set(l.filter(e=>e.install?.scope==="project").map(e=>e.install.package))},projectResourcesLoaded:D,onInstalled:()=>{L()}}):c?null:U?(0,n.jsx)(l9,{skill:U,cwd:e,onToggle:B,toggling:f.has(U.filePath),saveError:v,updateStatus:l5(U)?j[l5(U)]:void 0,checkingUpdate:!!l5(U)&&C.has(l5(U)),updating:I===l5(U),updateError:P,onCheckUpdate:()=>void O(U),onUpdate:()=>void H(U)},U.filePath):(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:13},children:a("desktop.selectSkill")})})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 18px",borderTop:"1px solid var(--border)",flexShrink:0},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[l.some(e=>!!e.install)&&(0,n.jsx)("button",{onClick:()=>void O(),disabled:R||null!==I,style:{padding:"6px 12px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:R||null!==I?"not-allowed":"pointer",opacity:R||null!==I?.5:1,fontSize:12},children:R?a("desktop.checking"):a("desktop.checkUpdates")}),Object.values(j).filter(e=>"update-available"===e.state).length>0&&(0,n.jsx)("span",{style:{fontSize:12,color:"#d97706"},children:a("desktop.updatesCount").replace("{count}",String(Object.values(j).filter(e=>"update-available"===e.state).length)).replace("{suffix}",1===Object.values(j).filter(e=>"update-available"===e.state).length?"":"s")})]}),!t&&(0,n.jsx)("button",{onClick:s,style:{padding:"6px 14px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:"pointer",fontSize:13},children:a("desktop.close")})]})]})})}function dn(){let{t:e}=(0,F.s)(),[t,o]=(0,r.useState)([]),[s,i]=(0,r.useState)(""),[a,l]=(0,r.useState)(""),[d,c]=(0,r.useState)(""),[p,u]=(0,r.useState)(""),[h,g]=(0,r.useState)(!0),[m,f]=(0,r.useState)(null),x=(0,r.useCallback)(async()=>{g(!0),f(null);try{let e=await fetch("/api/logs?limit=500"),t=await e.json();if(!e.ok)throw Error(t.error??`HTTP ${e.status}`);o(t.entries??[])}catch(e){f(e instanceof Error?e.message:String(e))}finally{g(!1)}},[]);(0,r.useEffect)(()=>{x()},[x]);let k=(0,r.useMemo)(()=>[...new Set(t.map(e=>e.source).filter(Boolean))].sort(),[t]),v=(0,r.useMemo)(()=>[...new Set(t.map(e=>e.statusCode).filter(e=>void 0!==e))].sort((e,t)=>e-t),[t]),y=(0,r.useMemo)(()=>{let e=p.trim().toLocaleLowerCase();return t.filter(e=>!s||e.level===s).filter(e=>!a||e.statusCode===Number(a)).filter(e=>!d||e.source===d).filter(t=>!e||[t.message,t.details,t.provider,t.model,t.source].filter(Boolean).some(t=>t.toLocaleLowerCase().includes(e))).slice(0,200)},[t,s,a,d,p]),b=async()=>{try{let e=await fetch("/api/logs",{method:"DELETE"});if(!e.ok)throw Error(`HTTP ${e.status}`);o([])}catch(e){f(e instanceof Error?e.message:String(e))}},w=async e=>{let t=[`[${e.timestamp}] ${e.level.toUpperCase()} ${e.statusCode??"—"}`,`${e.source}${e.provider?` \xb7 ${e.provider}`:""}${e.model?` \xb7 ${e.model}`:""}`,e.message,e.details].filter(Boolean).join("\n");try{await oy(t),f(null)}catch(e){f(e instanceof Error?e.message:String(e))}};return(0,n.jsxs)("div",{style:{flex:1,minWidth:0,minHeight:0,overflow:"auto",padding:"18px 20px",display:"flex",flexDirection:"column",gap:12},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,n.jsxs)("select",{value:s,onChange:e=>i(e.target.value),style:{padding:"7px 9px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",fontSize:12},children:[(0,n.jsx)("option",{value:"",children:e("desktop.logsAllLevels")}),["error","warning","info"].map(e=>(0,n.jsx)("option",{value:e,children:e},e))]}),(0,n.jsxs)("select",{value:a,onChange:e=>l(e.target.value),style:{padding:"7px 9px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",fontSize:12},children:[(0,n.jsx)("option",{value:"",children:e("desktop.logsAllCodes")}),v.map(e=>(0,n.jsx)("option",{value:e,children:e},e))]}),(0,n.jsxs)("select",{value:d,onChange:e=>c(e.target.value),style:{padding:"7px 9px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",fontSize:12},children:[(0,n.jsx)("option",{value:"",children:e("desktop.logsAllSources")}),k.map(e=>(0,n.jsx)("option",{value:e,children:e},e))]}),(0,n.jsx)("input",{value:p,onChange:e=>u(e.target.value),placeholder:e("desktop.logsSearch"),style:{flex:1,minWidth:180,padding:"7px 9px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",fontSize:12}}),(0,n.jsx)("button",{type:"button",onClick:()=>void x(),title:e("desktop.refresh"),"aria-label":e("desktop.refresh"),style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:30,height:30,border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer"},children:(0,n.jsx)(j.S,{size:14})}),(0,n.jsx)("button",{type:"button",onClick:()=>void b(),title:e("desktop.logsClear"),"aria-label":e("desktop.logsClear"),style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:30,height:30,border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"#ef4444",cursor:"pointer"},children:(0,n.jsx)(S.l,{size:14})})]}),h&&(0,n.jsx)("div",{style:{color:"var(--text-muted)",fontSize:12},children:e("desktop.loading")}),m&&(0,n.jsx)("div",{style:{color:"#ef4444",fontSize:12},children:m}),!h&&!m&&0===y.length&&(0,n.jsx)("div",{style:{color:"var(--text-muted)",fontSize:12},children:e("desktop.logsEmpty")}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:y.map(t=>(0,n.jsxs)("details",{style:{border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-panel)",padding:"8px 10px"},children:[(0,n.jsxs)("summary",{style:{cursor:"pointer",color:"error"===t.level?"#ef4444":"warning"===t.level?"#f59e0b":"var(--text)",fontSize:12},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",marginRight:8},children:t.statusCode??"—"}),(0,n.jsx)("span",{style:{marginRight:8},children:new Date(t.timestamp).toLocaleString()}),(0,n.jsx)("span",{style:{overflowWrap:"anywhere"},children:t.message.length>180?`${t.message.slice(0,180)}…`:t.message})]}),(0,n.jsxs)("div",{style:{padding:"8px 0 0 18px",color:"var(--text-muted)",fontSize:11,lineHeight:1.5,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:[(0,n.jsxs)("div",{children:[t.source,t.provider?` \xb7 ${t.provider}`:"",t.model?` \xb7 ${t.model}`:""]}),(0,n.jsx)("div",{style:{marginTop:5,maxHeight:260,overflow:"auto"},children:t.message}),t.details&&(0,n.jsx)("div",{style:{marginTop:5,maxHeight:260,overflow:"auto"},children:t.details}),(0,n.jsx)("button",{type:"button",onClick:()=>void w(t),style:{marginTop:8,padding:"4px 7px",border:"1px solid var(--border)",borderRadius:5,background:"var(--bg)",color:"var(--text-muted)",cursor:"pointer",fontSize:11},children:e("desktop.logsCopy")})]})]},t.id))})]})}let dr={padding:"7px 9px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",fontSize:12,width:"100%"},ds={padding:"6px 12px",border:"none",borderRadius:6,background:"var(--accent)",color:"#fff",cursor:"pointer",fontSize:12};function di(){let{t:e}=(0,F.s)(),[t,o]=(0,r.useState)([]),[s,i]=(0,r.useState)(!0),[a,l]=(0,r.useState)(null),[d,c]=(0,r.useState)(""),[u,h]=(0,r.useState)(""),[m,f]=(0,r.useState)(!1),[k,v]=(0,r.useState)(null),y=(0,r.useCallback)(async()=>{try{let e=await fetch("/api/snippets");if(!e.ok)return;let t=await e.json();o(t.snippets??[]),i(!1)}catch{i(!1)}},[]);(0,r.useEffect)(()=>{y()},[y]);let b=(0,r.useCallback)(()=>{window.dispatchEvent(new Event("pi:snippets-changed"))},[]),w=()=>{l(null),c(""),h(""),v(null)},j=(0,r.useCallback)(async()=>{let t=d.trim();if(!t)return void v(e("desktop.snippetNameRequired"));f(!0),v(null);try{if(a){let e=await fetch(`/api/snippets/${encodeURIComponent(a.id)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t,content:u})});if(!e.ok)throw Error(`HTTP ${e.status}`)}else{let e=await fetch("/api/snippets",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t,content:u})});if(!e.ok)throw Error(`HTTP ${e.status}`)}await y(),b(),w()}catch(e){v(e instanceof Error?e.message:String(e))}finally{f(!1)}},[a,d,u,y,b,e]),C=(0,r.useCallback)(async e=>{try{let t=await fetch(`/api/snippets/${encodeURIComponent(e)}`,{method:"DELETE"});if(!t.ok)throw Error(`HTTP ${t.status}`);a?.id===e&&w(),await y(),b()}catch(e){v(e instanceof Error?e.message:String(e))}},[a,y,b]);return(0,n.jsxs)(aY,{children:[(0,n.jsx)(aX,{children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:7,padding:"12px 0"},children:[(0,n.jsx)(rv.c,{size:15,"aria-hidden":"true"}),(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"var(--text)"},children:e("desktop.snippets")}),(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:2},children:e("desktop.snippetsDesc")})]})]})}),(0,n.jsx)(aX,{children:(0,n.jsxs)("div",{style:{width:"100%"},children:[(0,n.jsxs)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:8},children:[(0,n.jsx)("button",{type:"button",onClick:w,style:ds,children:(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:5},children:[(0,n.jsx)(x.F,{size:13})," ",e("desktop.snippetNew")]})}),a&&(0,n.jsx)("button",{type:"button",onClick:w,style:{...ds,background:"var(--bg-hover)",color:"var(--text-muted)"},children:(0,n.jsx)(p.X,{size:13})})]}),(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(120px, 200px) 1fr",gap:8,alignItems:"start",marginBottom:8},children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",display:"block",marginBottom:4},children:e("desktop.snippetName")}),(0,n.jsx)("input",{value:d,onChange:e=>c(e.target.value),placeholder:"#name",style:dr})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",display:"block",marginBottom:4},children:e("desktop.snippetContent")}),(0,n.jsx)("textarea",{value:u,onChange:e=>h(e.target.value),rows:3,style:{...dr,resize:"vertical",fontFamily:"var(--font-mono)",fontSize:11}})]})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:10},children:[(0,n.jsx)("button",{type:"button",onClick:()=>void j(),disabled:m,style:{...ds,cursor:m?"wait":"pointer"},children:e("desktop.snippetSave")}),k&&(0,n.jsx)("span",{style:{color:"var(--status-error, #ef4444)",fontSize:12},children:k})]}),s?(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-dim)"},children:e("desktop.loadingThemes")}):0===t.length?(0,n.jsx)(aQ,{children:e("desktop.snippetEmpty")}):(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:t.map(t=>(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 10px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6},children:[(0,n.jsx)("span",{style:{color:"var(--accent)",fontFamily:"var(--font-mono)",fontSize:11},children:"#"}),(0,n.jsx)("span",{style:{fontWeight:600,fontSize:12,flexShrink:0},children:t.name}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-muted)",fontSize:11,fontFamily:"var(--font-mono)"},children:t.content.split("\n")[0]}),(0,n.jsx)("button",{type:"button",onClick:()=>{l(t),c(t.name),h(t.content),v(null)},title:e("desktop.snippetEdit"),style:{background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",padding:2},children:(0,n.jsx)(g.I,{size:13})}),(0,n.jsx)("button",{type:"button",onClick:()=>void C(t.id),title:e("desktop.snippetDelete"),style:{background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",padding:2},children:(0,n.jsx)(S.l,{size:13})})]},t.id))})]})}),(0,n.jsx)(aZ,{children:(0,n.jsx)(aQ,{children:e("desktop.snippetHint")})})]})}let da=["async","group","smart"],dl=["full","compact","custom"],dd=["all","background","off"],dc={padding:"7px 9px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",fontSize:12,width:"min(200px, 100%)",fontFamily:"var(--font-mono)"};function dp(){return{fontSize:12,color:"var(--text-muted)"}}function du({cwd:e,sessionId:t}){let{t:o}=(0,F.s)(),[s,i]=(0,r.useState)({}),[a,l]=(0,r.useState)([]),[d,c]=(0,r.useState)(""),[p,u]=(0,r.useState)(!1),[h,g]=(0,r.useState)(null),[m,f]=(0,r.useState)(!1),[x,k]=(0,r.useState)(null),[v,y]=(0,r.useState)(!1),[b,w]=(0,r.useState)([]),[j,S]=(0,r.useState)({}),C=(0,r.useCallback)(async()=>{g(null);try{let e=await fetch("/api/subagents"),t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);i(t.config??{}),l(t.agents??[]),c(t.filePath)}catch(e){g(e instanceof Error?e.message:String(e))}finally{u(!0)}},[]);(0,r.useEffect)(()=>{let t=e?`?cwd=${encodeURIComponent(e)}`:"";fetch(`/api/models${t}`).then(e=>e.ok?e.json():null).then(e=>{e?.modelList&&w(e.modelList)}).catch(()=>{})},[e]),(0,r.useEffect)(()=>{C()},[C]);let T=(0,r.useCallback)((e,t)=>{i(o=>({...o,[e]:t})),y(!1),k(null)},[]),R=(0,r.useCallback)(async()=>{f(!0),k(null),y(!1);try{let e=await fetch("/api/subagents",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)}),t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);i(t.config??{}),y(!0)}catch(e){k(e instanceof Error?e.message:String(e))}finally{f(!1)}},[s]),z=(0,r.useRef)({}),I=(0,r.useCallback)(async(e,t)=>{let o=(z.current[e]??0)+1;z.current[e]=o,S(t=>({...t,[e]:"saving"}));try{let n=await fetch(`/api/subagents/agents/${encodeURIComponent(e)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:t})});if(z.current[e]!==o)return;let r=await n.json();if(!n.ok||r.error)throw Error(r.error??`HTTP ${n.status}`);S(t=>({...t,[e]:"saved"})),l(o=>o.map(o=>o.name===e?{...o,model:t??void 0}:o)),setTimeout(()=>{S(t=>{if("saved"===t[e]){let o={...t};return delete o[e],o}return t})},2e3)}catch(t){if(z.current[e]!==o)return;S(o=>({...o,[e]:`error:${t instanceof Error?t.message:String(t)}`}))}},[]),M=(e,t)=>(0,n.jsx)(aX,{children:(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(150px, 240px) 1fr",gap:"8px 12px",alignItems:"center",padding:"8px 0"},children:[(0,n.jsx)("span",{style:dp(),children:o(t)}),(0,n.jsx)("input",{type:"number",min:0,value:s[e]??"",onChange:t=>T(e,""===t.target.value?void 0:Number(t.target.value)),placeholder:"defaultMaxTurns"===e?"0 = 不限":"",style:dc})]})},e),P=(e,t,r)=>(0,n.jsx)(aX,{children:(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(150px, 240px) 1fr",gap:"8px 12px",alignItems:"center",padding:"8px 0"},children:[(0,n.jsx)("span",{style:dp(),children:o(t)}),(0,n.jsx)("select",{value:s[e]??r[0],onChange:t=>T(e,t.target.value),style:{...dc,fontFamily:"var(--font-mono)"},children:r.map(e=>(0,n.jsx)("option",{value:e,children:e},e))})]})},e),E=(e,t,r)=>(0,n.jsx)(aX,{children:(0,n.jsx)(aM,{checked:s[e]??!1,onChange:t=>T(e,t),label:o(t),description:r?o(r):void 0})},e);return(0,n.jsx)("div",{style:{flex:1,overflow:"auto",minWidth:0,padding:"20px 22px",display:"flex",flexDirection:"column",gap:16},children:(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:p?h?(0,n.jsx)("div",{style:{fontSize:12,color:"#ef4444"},children:h}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:14,fontWeight:700,color:"var(--text)"},children:o("desktop.subagents")}),(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",fontFamily:"var(--font-mono)",marginTop:2,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:d||"~/.pi/agent/subagents.json"})]}),(0,n.jsx)(aQ,{children:o("desktop.subagentsDesc")}),(0,n.jsxs)(aY,{children:[M("maxConcurrent","desktop.subagentsMaxConcurrent"),M("defaultMaxTurns","desktop.subagentsDefaultMaxTurns"),M("graceTurns","desktop.subagentsGraceTurns"),P("defaultJoinMode","desktop.subagentsJoinMode",da),P("widgetMode","desktop.subagentsWidgetMode",dd),P("toolDescriptionMode","desktop.subagentsToolDescMode",dl),E("schedulingEnabled","desktop.subagentsScheduling","desktop.subagentsSchedulingDesc"),E("scopeModels","desktop.subagentsScopeModels","desktop.subagentsScopeModelsDesc"),E("disableDefaultAgents","desktop.subagentsDisableDefault","desktop.subagentsDisableDefaultDesc"),E("fleetView","desktop.subagentsFleetView","desktop.subagentsFleetViewDesc"),(0,n.jsx)(aZ,{children:E("outputTranscript","desktop.subagentsOutputTranscript","desktop.subagentsOutputTranscriptDesc")})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,n.jsx)("button",{type:"button",onClick:()=>void R(),disabled:m,style:{padding:"7px 12px",border:"none",borderRadius:6,background:"var(--accent)",color:"#fff",cursor:m?"wait":"pointer",fontSize:12},children:m?o("desktop.saving"):o("desktop.mcpSave")}),v&&(0,n.jsx)("span",{style:{color:"#22c55e",fontSize:12},children:o("desktop.subagentsSaved")}),x&&(0,n.jsx)("span",{style:{color:"#ef4444",fontSize:12},children:x}),(0,n.jsx)(ls,{sessionId:t})]}),a.length>0&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:7,fontSize:13,fontWeight:600,color:"var(--text)"},children:[(0,n.jsx)(aj.d,{size:15,"aria-hidden":"true"}),o("desktop.subagentsDiscovered")]}),(0,n.jsx)(aY,{children:a.map((e,t)=>(0,n.jsx)(aZ,{children:(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:3,padding:t===a.length-1?"12px 0":"12px 0 0"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,n.jsx)("span",{style:{fontSize:12.5,fontWeight:600,color:"var(--text)",fontFamily:"var(--font-mono)"},children:e.name}),e.displayName&&(0,n.jsx)("span",{style:{fontSize:11,color:"var(--text-muted)"},children:e.displayName}),e.model&&(0,n.jsx)("span",{style:{fontSize:10,padding:"1px 6px",borderRadius:3,background:"rgba(37,99,235,0.12)",color:"var(--accent)",fontFamily:"var(--font-mono)"},children:e.model})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"},children:[(0,n.jsx)("span",{style:{fontSize:11,color:"var(--text-muted)"},children:o("desktop.subagentsModel")}),(0,n.jsxs)("select",{value:e.model??"",onChange:t=>void I(e.name,t.target.value||null),style:{...dc,width:"min(260px, 100%)",maxWidth:260},children:[(0,n.jsx)("option",{value:"",children:o("desktop.subagentsModelDefault")}),e.model&&!b.some(t=>`${t.provider}/${t.id}`===e.model)&&(0,n.jsx)("option",{value:e.model,children:e.model}),b.map(e=>(0,n.jsxs)("option",{value:`${e.provider}/${e.id}`,children:[e.name,"(",e.provider,"/",e.id,")"]},`${e.provider}/${e.id}`))]}),"saving"===j[e.name]&&(0,n.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)"},children:[o("desktop.saving"),"…"]}),"saved"===j[e.name]&&(0,n.jsx)("span",{style:{fontSize:10,color:"#22c55e"},children:o("desktop.subagentsSaved")}),j[e.name]?.startsWith("error:")&&(0,n.jsx)("span",{style:{fontSize:10,color:"#ef4444"},children:j[e.name].slice(6)})]}),e.description&&(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",lineHeight:1.5},children:e.description})]})},e.name))})]})]}):(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)"},children:o("desktop.loading")})})})}function dh({sessionId:e,onSessionReloaded:t}){let{t:o}=(0,F.s)(),[s,i]=(0,r.useState)(null),[a,l]=(0,r.useState)(null);(0,r.useEffect)(()=>{let e=!1;return fetch("/api/tools/settings").then(async t=>{let o=await t.json();if(!t.ok||o.error)throw Error(o.error??`HTTP ${t.status}`);e||i(o)}).catch(t=>{e||l(t instanceof Error?t.message:String(t))}),()=>{e=!0}},[]);let d=(0,r.useCallback)(async o=>{l(null);try{let n=await fetch("/api/tools/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:o})}),r=await n.json();if(!n.ok||r.error)throw Error(r.error??`HTTP ${n.status}`);i(r),e&&(await iS(e,{type:"reload"}),t())}catch(e){l(e instanceof Error?e.message:String(e))}},[t,e]);return(0,n.jsx)("div",{style:{padding:16,overflowY:"auto",minHeight:0,flex:1},children:(0,n.jsxs)(aY,{children:[(0,n.jsx)(aX,{children:(0,n.jsx)(aM,{label:o("desktop.usePowerShell"),description:o("desktop.shellToolDescription"),checked:s?.powerShellEnabled??!1,onChange:e=>void d(e)})}),(0,n.jsx)(aZ,{children:(0,n.jsx)("div",{style:{padding:"10px 0",fontSize:12,lineHeight:1.5,color:"var(--text-dim)"},children:s?.isWindows?o("desktop.shellToolWindowsOnly"):a??o("desktop.shellToolMacOnly")})})]})})}function dg(e){return null==e?"—":io(e)}function dm({sessionId:e,cwd:t}){let{t:o}=(0,F.s)(),[s,i]=(0,r.useState)(null),[a,l]=(0,r.useState)(null),[d,c]=(0,r.useState)(!1);(0,r.useEffect)(()=>{let t=!1;return e?(fetch(`/api/agent/${encodeURIComponent(e)}`).then(e=>e.ok?e.json():null).then(e=>{t||i(e?.state?.contextUsage??null)}).catch(()=>{}),()=>{t=!0}):void i(null)},[e]);let p=(0,r.useCallback)(async()=>{c(!0);try{let e=await fetch("/api/usage");e.ok&&l(await e.json())}catch{}finally{c(!1)}},[]);(0,r.useEffect)(()=>{p()},[p]);let u=(0,r.useMemo)(()=>a?.daily.slice(-14)??[],[a]),h=(0,r.useMemo)(()=>u.reduce((e,t)=>Math.max(e,t.tokens),0),[u]);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:o("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:o("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:s?(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,(s.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!=s.percent?`${s.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:o("desktop.usageContext",{used:dg(s.tokens),window:dg(s.contextWindow)})}),(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)"},children:o("desktop.usageContextHint")})]})]})}):(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)"},children:o("desktop.usageNoSessionData")})}):(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)"},children:o("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:o("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:o("desktop.usageTotal"),value:dg(a?.totalTokens),sub:a?`${a.totalSessions} ${o("desktop.usageSessions")}`:"…"},{label:o("desktop.usageMessages"),value:a?String(a.messageCount):"…",sub:o("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:o("desktop.usageDaily")}),0===u.length?(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)"},children:o(d?"desktop.featuresLoading":"desktop.usageNoData")}):(0,n.jsx)("div",{style:{display:"flex",alignItems:"flex-end",gap:6,height:96,overflowX:"auto"},children:u.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?dg(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}: ${dg(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:o("desktop.usageTopSessions")}),a&&0===a.sessions.length?(0,n.jsx)("div",{style:{padding:"14px",fontSize:12,color:"var(--text-muted)"},children:o("desktop.usageNoData")}):(a?.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:e.name??e.firstMessage??e.id}),(0,n.jsx)("span",{style:{flexShrink:0,fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:dg(e.tokens)})]},e.path))]})]})]})]})}function df(){let{t:e}=(0,F.s)(),[t,o]=(0,r.useState)(!1),[s,i]=(0,r.useState)("");(0,r.useEffect)(()=>{o(new URLSearchParams(window.location.search).has("piweb_connected")),i(window.location.host)},[]);let a=(0,r.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)(ax.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:s})]})]}),(0,n.jsxs)("button",{type:"button",onClick:a,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:"#fff",fontSize:14,fontWeight:600,cursor:"pointer",border:"none"},children:[(0,n.jsx)(a8.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 dx=[{id:"server",labelKey:"desktop.server",Icon:ax.X},{id:"display",labelKey:"desktop.display",Icon:ak.V},{id:"chat",labelKey:"desktop.chat",Icon:av.W},{id:"models",labelKey:"desktop.models",Icon:T.f},{id:"skills",labelKey:"desktop.skills",Icon:R.B},{id:"plugins",labelKey:"desktop.plugins",Icon:z.F},{id:"proxy",labelKey:"desktop.proxy",Icon:ay.l},{id:"features",labelKey:"desktop.features",Icon:u.l},{id:"logs",labelKey:"desktop.logs",Icon:y.B},{id:"snippets",labelKey:"desktop.snippets",Icon:rv.c},{id:"usage",labelKey:"desktop.usage",Icon:ab._},{id:"mcp",labelKey:"desktop.mcp",Icon:aw.b},{id:"subagents",labelKey:"desktop.subagents",Icon:aj.d},{id:"tools",labelKey:"desktop.tools",Icon:aw.b},{id:"backup",labelKey:"desktop.backup",Icon:nd.W},{id:"import",labelKey:"desktop.importSessions",Icon:I.z}];function dk({initialTab:e="models",cwd:t,sessionId:o,onCloseAction:s,onModelsSavedAction:i,onSessionReloadedAction:a,onSessionsChanged:l}){let d=$(),{t:c}=(0,F.s)(),[u,h]=(0,r.useState)("skills"===e||"plugins"===e?t?e:"display":e),[g,m]=(0,r.useState)(!1);(0,r.useEffect)(()=>{m(new URLSearchParams(window.location.search).has("piweb_connected"))},[]);let f=g?dx:dx.filter(({id:e})=>"server"!==e),[x,k]=(0,r.useState)(!1),[v,y]=(0,r.useState)(null),b=(0,r.useRef)(new Set),w=(0,r.useCallback)(e=>(b.current.add(e),()=>{b.current.delete(e)}),[]),j=(0,r.useCallback)(async()=>{if(!x){k(!0),y(null);try{let e=(await Promise.allSettled([...b.current].map(e=>e()))).find(e=>"rejected"===e.status);if(e)throw e.reason;s()}catch(e){y(e instanceof Error?e.message:String(e))}finally{k(!1)}}},[x,s]);return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:1e3,background:"rgba(0,0,0,0.35)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:e=>{e.target===e.currentTarget&&j()},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:()=>{j()},disabled:x,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)(p.X,{size:18,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:d?"column":"row",minHeight:0,overflow:"hidden",pointerEvents:x?"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:o,Icon:r})=>{let s=("skills"===e||"plugins"===e)&&!t,i=u===e;return(0,n.jsxs)("button",{type:"button",disabled:s,onClick:()=>h(e),"aria-current":i?"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:i?"var(--bg-selected)":"none",color:i?"var(--text)":"var(--text-muted)",cursor:s?"not-allowed":"pointer",opacity:s?.4:1,fontSize:12,fontWeight:i?600:400,textAlign:"left",transition:"background 0.12s, color 0.12s"},title:c(o),"aria-label":c(o),onMouseEnter:e=>{i||s||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{i||(e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)")},children:[(0,n.jsx)(r,{size:16,"aria-hidden":"true"}),!d&&(0,n.jsx)("span",{children:c(o)})]},e)})}),(0,n.jsx)("div",{style:{display:"server"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(df,{})}),(0,n.jsx)("div",{style:{display:"display"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(aG,{})}),(0,n.jsx)("div",{style:{display:"chat"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(aD,{})}),(0,n.jsx)("div",{style:{display:"models"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(lO,{embedded:!0,sessionId:o,onSavedAction:i,onRegisterFlush:w})}),t&&(0,n.jsx)("div",{style:{display:"skills"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(dt,{cwd:t,embedded:!0,sessionId:o})}),t&&(0,n.jsx)("div",{style:{display:"plugins"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(l0,{cwd:t,sessionId:o,embedded:!0,onReloadedAction:a})}),(0,n.jsx)("div",{style:{display:"proxy"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(l2,{})}),(0,n.jsx)("div",{style:{display:"features"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(a6,{})}),(0,n.jsx)("div",{style:{display:"logs"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(dn,{})}),(0,n.jsx)("div",{style:{display:"snippets"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(di,{})}),(0,n.jsx)("div",{style:{display:"usage"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(dm,{sessionId:o,cwd:t})}),(0,n.jsx)("div",{style:{display:"mcp"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(lu,{sessionId:o})}),(0,n.jsx)("div",{style:{display:"subagents"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(du,{cwd:t,sessionId:o})}),(0,n.jsx)("div",{style:{display:"tools"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(dh,{sessionId:o,onSessionReloaded:a})}),(0,n.jsx)("div",{style:{display:"backup"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(aR,{cwd:t})}),(0,n.jsx)("div",{style:{display:"import"===u?"flex":"none",flex:1,minWidth:0,minHeight:0,overflowY:"auto"},children:(0,n.jsx)(a3,{onSessionsChanged:l})})]}),v&&(0,n.jsx)("div",{style:{padding:"6px 18px",borderTop:"1px solid var(--border)",color:"#f87171",fontSize:11},children:v})]})})}let dv=new Set(["awaiting_input","review","failed"]),dy=(0,r.createContext)(null);function db(){let e=(0,r.useContext)(dy);if(!e)throw Error("useTasksView must be used within TasksViewProvider");return e}function dw({children:e}){let{t}=(0,F.s)(),o=(0,r.useRef)(t);(0,r.useEffect)(()=>{o.current=t},[t]);let[s,i]=(0,r.useState)([]),[a,l]=(0,r.useState)([]),d=(0,r.useRef)(0),c=(0,r.useCallback)(async()=>{let e=++d.current;try{let t=await (0,rq.Wt)(),o=(await Promise.all(t.map(e=>(0,rq.Vk)(e).catch(()=>[])))).flat().sort((e,t)=>t.id-e.id);if(e!==d.current)return;l(e=>dj(e,t)?e:t),i(e=>dj(e,o)?e:o)}catch{}},[]);(0,r.useEffect)(()=>{c();let e=null,t=!1,o=()=>{t||((e=new EventSource("/api/tasks/events")).onmessage=()=>{c()},e.onerror=()=>{e?.close(),e=null,c(),setTimeout(o,2e3)})};o();let n=()=>{"visible"===document.visibilityState&&c()},r=()=>void c();document.addEventListener("visibilitychange",n),window.addEventListener("online",r);let s=setInterval(()=>void c(),6e4);return()=>{t=!0,e?.close(),document.removeEventListener("visibilitychange",n),window.removeEventListener("online",r),clearInterval(s)}},[c]);let p=(0,r.useMemo)(()=>s.filter(e=>dv.has(e.status)&&null==e.archivedAt).length,[s]),u=(0,r.useRef)(null);(0,r.useEffect)(()=>{let e=u.current;if((u.current=new Map(s.map(e=>[e.id,e.status])),e&&0!==s.length)&&"Notification"in window){for(let o of s)if(e.get(o.id)!==o.status&&("review"===o.status||"failed"===o.status)&&null==o.archivedAt&&"visible"!==document.visibilityState)try{let e="review"===o.status?t("tasks.notifyReview",{title:o.title}):t("tasks.notifyFailed",{title:o.title});!function(e,t){new Promise(o=>{if(!("Notification"in window))return void o();let n=()=>{try{new Notification(e,{body:t,tag:"pi-tasks"})}catch{}o()};"granted"===Notification.permission?n():"denied"!==Notification.permission?Notification.requestPermission().then(e=>{"granted"===e?n():o()}):o()})}("Pi Web Tasks",e)}catch{}}},[s,t]);let h=(0,r.useMemo)(()=>({tasks:s,projects:a,attentionCount:p,refetch:c}),[s,a,p,c]);return(0,n.jsx)(dy.Provider,{value:h,children:e})}function dj(e,t){return JSON.stringify(e)===JSON.stringify(t)}var dS=o(4539),dC=o(12449),dT=o(2571);let dR=["todo","inProgress","attention","done"];function dz(e){return"review"===e.status&&0===e.filesChanged}function dI(){return{defaultAgentType:null,modeId:null,configValues:{},autoProcess:!0,maxConcurrent:1,mergeStrategy:"merge",deleteWorktreeDefault:!0,preflightCommand:null,initCommand:null,stagePrompts:null}}let dM=["todo","inProgress","attention","done"],dP={todo:{id:"todo",marker:"var(--text-dim)"},inProgress:{id:"inProgress",marker:"var(--accent)"},attention:{id:"attention",marker:"#f59e0b"},done:{id:"done",marker:"#10b981"}};var dE=o(54775),dF=o(98998),dD=o(36668);function dW({task:e}){let{t}=(0,F.s)(),o=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)),r={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:{...r,color:"var(--accent)"},children:[(0,n.jsx)(dE.N,{size:11,className:"pi-spin",style:{animation:"pi-spin 1s linear infinite"},"aria-hidden":"true"}),o]});case"awaiting_input":case"review":return(0,n.jsx)("span",{style:{...r,border:"1px solid rgba(245,158,11,0.45)",background:"rgba(245,158,11,0.08)",color:"#d97706"},children:o});case"done":return(0,n.jsxs)("span",{style:{...r,background:"rgba(16,185,129,0.12)",color:"#059669"},children:[(0,n.jsx)(h.J,{size:10,weight:"bold","aria-hidden":"true"}),o]});case"failed":return(0,n.jsx)("span",{style:{...r,background:"rgba(239,68,68,0.12)",color:"#dc2626"},children:o});default:return(0,n.jsx)("span",{style:{...r,background:"var(--bg-hover)",color:"var(--text-muted)"},children:o})}}function dA({task:e}){let t=e.preflight;if(!t||"review"!==e.status)return null;let o="passed"===t.status?{background:"rgba(16,185,129,0.12)",color:"#059669"}:"failed"===t.status?{background:"rgba(239,68,68,0.12)",color:"#dc2626"}:{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%",...o},title:t.command,children:["running"===t.status?(0,n.jsx)(dE.N,{size:10,style:{animation:"pi-spin 1s linear infinite"},"aria-hidden":"true"}):"passed"===t.status?(0,n.jsx)(nO.r,{size:10,"aria-hidden":"true"}):(0,n.jsx)(ia.J,{size:10,"aria-hidden":"true"}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t.command})]})}function dN({task:e,folderName:t,now:o,onOpen:r,onStart:s,onCancel:i,onRetry:a,onRequeue:l,onViewSession:d,onMerge:c,onArchive:p,onEdit:u}){let{t:g}=(0,F.s)(),m=null!=e.archivedAt,f="running"===e.status||"awaiting_input"===e.status||"merging"===e.status,x=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:"#dc2626"},children:["-",e.deletions??0]})]}):null,k=function(e,t){if(!e)return"";let o=new Date(e).getTime();if(Number.isNaN(o))return"";let n=Math.floor(Math.max(0,t-o)/6e4);if(n<1)return"now";if(n<60)return`${n}m`;let r=Math.floor(n/60);if(r<24)return`${r}h`;let s=Math.floor(r/24);return`${s}d`}(e.finishedAt??e.settledAt??e.startedAt??e.createdAt,o),{primary:v,more:y}=(()=>{let t=[],o=null;if(m)return{primary:o={icon:id.T,label:g("tasks.actionUnarchive"),onClick:p},more:t};switch(e.status){case"todo":o={icon:dT.j,label:g("tasks.actionStart"),onClick:s},t.push({icon:ry.S,label:g("tasks.actionEdit"),onClick:u});break;case"queued":case"preparing":case"running":case"awaiting_input":o={icon:dF.k,label:g("tasks.actionCancel"),onClick:i};break;case"review":o=dz(e)?{icon:h.J,label:g("tasks.actionComplete"),onClick:c}:{icon:dD.r,label:g("tasks.actionMerge"),onClick:c};break;case"merging":break;case"failed":o={icon:j.S,label:g("tasks.actionRetry"),onClick:a},t.push({icon:ry.S,label:g("tasks.actionEdit"),onClick:u}),t.push({icon:id.T,label:g("tasks.actionArchive"),onClick:p});break;case"done":o={icon:id.T,label:g("tasks.actionArchive"),onClick:p};break;case"canceled":o={icon:nH.f,label:g("tasks.actionRequeue"),onClick:l},t.push({icon:id.T,label:g("tasks.actionArchive"),onClick:p})}return{primary:o,more:t}})(),b=[...y];return null!=e.conversationId&&b.push({icon:nL.y,label:g("tasks.actionViewSession"),onClick:d}),(0,n.jsxs)("div",{role:"button",tabIndex:0,onClick:r,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),r())},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:m?.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)(dW,{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)&&(x||k)?(0,n.jsx)("span",{style:{opacity:.5},children:"\xb7"}):null,x,x&&k?(0,n.jsx)("span",{style:{opacity:.5},children:"\xb7"}):null,k?(0,n.jsx)("span",{style:{flexShrink:0},children:k}):null,(0,n.jsx)(dA,{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:"#dc2626"},children:[(0,n.jsx)(nc.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(),r()},children:g("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,f&&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,v||b.length>0?(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginTop:12,paddingTop:12,borderTop:"1px solid var(--border)"},children:[v?(0,n.jsxs)("button",{type:"button",onClick:e=>{e.stopPropagation(),v.onClick()},style:{display:"inline-flex",alignItems:"center",gap:5,padding:"4px 10px",borderRadius:7,background:"var(--accent)",color:"#fff",border:"none",cursor:"pointer",fontSize:11,fontWeight:600},children:[(0,n.jsx)(v.icon,{size:12,weight:"bold","aria-hidden":"true"}),v.label]}):null,(0,n.jsx)("div",{style:{flex:1}}),b.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 d$({open:e,onOpenChange:t,task:o}){let{t:s}=(0,F.s)(),{refetch:i}=db(),[a,l]=(0,r.useState)(""),[d,c]=(0,r.useState)(!1);if((0,r.useEffect)(()=>{e&&(l(""),c(!1))},[e,o]),!e||!o)return null;let u=async()=>{if(!d){c(!0);try{await (0,rq.oQ)(o.id,o.projectRoot,"cancel",{reason:a.trim()||null}),t(!1),i()}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)"},onMouseDown:e=>{e.target===e.currentTarget&&t(!1)},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:s("tasks.cancelTitle")}),(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)(p.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.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:s("tasks.cancelReasonLabel")}),(0,n.jsx)("textarea",{value:a,onChange:e=>l(e.target.value),placeholder:s("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:s("tasks.cancelKeep")}),(0,n.jsx)("button",{type:"button",onClick:()=>void u(),disabled:d,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"#fff",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:s("tasks.cancelSubmit")})]})]})]})})}function dL({open:e,onOpenChange:t,task:o}){let{t:s}=(0,F.s)(),{refetch:i}=db(),[a,l]=(0,r.useState)(!0),[d,c]=(0,r.useState)(!1),u=o?.worktreePath!=null;if((0,r.useEffect)(()=>{if(!e||!o)return;c(!1);let t=!1;return(0,rq.CG)(o.projectRoot).then(e=>{t||l(e.deleteWorktreeDefault)}).catch(()=>{t||l(!0)}),()=>{t=!0}},[e,o]),!e||!o)return null;let h=async()=>{if(!d){c(!0);try{await (0,rq.ZX)(o.id,o.projectRoot,u&&a),t(!1),i()}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)"},onMouseDown:e=>{e.target===e.currentTarget&&t(!1)},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:s("tasks.completeTitle")}),(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)(p.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.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:a,onChange:e=>l(e.target.checked),style:{accentColor:"var(--accent)"}}),s("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:s("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void h(),disabled:d,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"#fff",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:s("tasks.completeSubmit")})]})]})]})})}var dO=o(51285),dH=o(16894);function dB({open:e,onOpenChange:t,task:o,onViewSession:s,onMerge:i,onEdit:a,onCancel:l,onRetry:d,onRequeue:c,onComplete:u}){let{t:g}=(0,F.s)(),{refetch:m}=db(),[f,x]=(0,r.useState)([]),[v,y]=(0,r.useState)([]),[b,w]=(0,r.useState)(null),[C,T]=(0,r.useState)(null),[R,z]=(0,r.useState)(!1),[I,M]=(0,r.useState)(!1),[P,E]=(0,r.useState)(""),[D,W]=(0,r.useState)(!1),[A,N]=(0,r.useState)(!1),[$,L]=(0,r.useState)(!1),O=o?.id??null,H=o?.projectRoot??null,B=(0,r.useCallback)(async()=>{if(null==O||null==H)return;let[e,t]=await Promise.all([(0,rq.HB)(H,O).catch(()=>[]),o?.worktreePath?(0,rq.JH)(H,O).then(e=>e.files).catch(()=>[]):Promise.resolve([])]);x(e),y(t)},[O,H,o?.worktreePath]);(0,r.useEffect)(()=>{if(!e||null==O)return;x([]),y([]),M(!1),E(""),B();let t=window.setInterval(()=>void B(),5e3);return()=>window.clearInterval(t)},[e,O,B]);let U=(0,r.useCallback)(async e=>{L(!0);try{await e()}catch(e){console.error("detail action failed",e)}finally{L(!1),m()}},[m]),_=(0,r.useCallback)(async e=>{if(null!=H&&null!=O){z(!0);try{let t=await (0,rq.h)(H,O,e);T(t.supported&&t.patch?t.patch:null)}catch{T(null)}finally{z(!1)}}},[H,O]),q=async()=>{null!=o&&null!=H&&(await U(()=>(0,rq.bH)(o.id,H,A)),t(!1))},V=async()=>{null!=o&&null!=H&&P.trim()&&(await U(()=>(0,rq.in)(o.id,H,P.trim())),M(!1),E(""))};if(!e||null==o||null==H)return null;let K=[];if(null==o.archivedAt)switch(o.status){case"todo":K.push({label:g("tasks.actionStart"),icon:dT.j,onClick:()=>void U(()=>(0,rq.oQ)(o.id,H,"start")),filled:!0}),K.push({label:g("tasks.actionEdit"),icon:ry.S,onClick:()=>a(o)});break;case"queued":case"preparing":case"running":case"awaiting_input":K.push({label:g("tasks.actionCancel"),icon:dF.k,onClick:()=>l(o),danger:!0});break;case"review":K.push({label:dz(o)?g("tasks.actionComplete"):g("tasks.actionMerge"),icon:dz(o)?h.J:dO.Y,onClick:()=>dz(o)?u(o):i(o),filled:!0}),K.push({label:g("tasks.actionReturn"),icon:nH.f,onClick:()=>M(!0)});break;case"failed":K.push({label:g("tasks.actionRetry"),icon:j.S,onClick:()=>d(o),filled:!0}),K.push({label:g("tasks.actionEdit"),icon:ry.S,onClick:()=>a(o)});break;case"done":K.push({label:g("tasks.actionArchive"),icon:id.T,onClick:()=>void U(()=>(0,rq.et)(o.id,H,!0))});break;case"canceled":K.push({label:g("tasks.actionRequeue"),icon:nH.f,onClick:()=>c(o),filled:!0})}else K.push({label:g("tasks.actionUnarchive"),icon:id.T,onClick:()=>void U(()=>(0,rq.et)(o.id,H,!1))});return null!=o.conversationId&&K.push({label:g("tasks.actionViewSession"),icon:nL.y,onClick:()=>s(o)}),(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:800,background:"rgba(0,0,0,0.35)"},onMouseDown:e=>{e.target===e.currentTarget&&t(!1)},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:o.title}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:6},children:[(0,n.jsx)(dW,{task:o}),o.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)(k.Z,{size:12,"aria-hidden":"true"}),o.workBranch]}):null]})]}),(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),"aria-label":g("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex",flexShrink:0},children:(0,n.jsx)(p.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:8,padding:"14px 16px 0"},children:K.map(e=>{let t,o;return(0,n.jsxs)("button",{type:"button",onClick:e.onClick,disabled:$,style:(t=e.filled,o=e.danger,{display:"inline-flex",alignItems:"center",gap:5,padding:"7px 12px",borderRadius:8,fontSize:12,fontWeight:600,cursor:"pointer",background:t?"var(--accent)":o?"rgba(239,68,68,0.1)":"var(--bg-hover)",color:t?"#fff":o?"#dc2626":"var(--text)",border:t||o?"none":"1px solid var(--border)"}),children:[(0,n.jsx)(e.icon,{size:13,weight:"bold","aria-hidden":"true"}),e.label]},e.label)})}),I&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8,padding:"12px 16px 0"},children:[(0,n.jsx)("textarea",{value:P,onChange:e=>E(e.target.value),placeholder:g("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:()=>M(!1),style:{padding:"6px 12px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:g("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void V(),disabled:!P.trim(),style:{padding:"6px 14px",borderRadius:8,background:"var(--accent)",color:"#fff",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:g("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:g("tasks.metaProject")}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)",fontSize:11},children:o.projectRoot})]}),o.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:g("tasks.metaCreated")}),(0,n.jsx)("span",{children:new Date(o.createdAt).toLocaleString()})]}):null,o.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:g("tasks.metaCommit")}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:o.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:g("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;w(t=e.file),T(null),_(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)(dH.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:"#dc2626",flexShrink:0},children:["-",e.deletions]})]},e.file))})]}),null!=b&&(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:g("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:b}),(0,n.jsx)("button",{type:"button",onClick:()=>w(null),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:2,display:"flex"},children:(0,n.jsx)(p.X,{size:12,"aria-hidden":"true"})})]}),R?(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",padding:8},children:g("tasks.loading")}):C?(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:C.split("\n").map((e,t)=>{let o;return e.startsWith("+")&&!e.startsWith("+++")?o="#059669":e.startsWith("-")&&!e.startsWith("---")?o="#dc2626":e.startsWith("@@")&&(o="var(--accent)"),(0,n.jsx)("div",{style:{color:o},children:e||" "},t)})}):(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",padding:8},children:g("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:g("tasks.timeline")}),(0,n.jsx)("div",{style:{flex:1,minHeight:0,overflowY:"auto",paddingBottom:8},children:0===f.length?(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",padding:8},children:g("tasks.noEvents")}):(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[...f].reverse().map(e=>{var t;let o,r;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,(r=g(o=`tasks.event_${t}`))===o?t:r)}),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:D?(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:A,onChange:e=>N(e.target.checked),style:{accentColor:"var(--accent)"}}),g("tasks.deleteWorktree")]}),(0,n.jsx)("button",{type:"button",onClick:()=>W(!1),style:{padding:"6px 12px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:g("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void q(),disabled:$,style:{padding:"6px 14px",borderRadius:8,background:"#dc2626",color:"#fff",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:g("tasks.deleteConfirm")})]}):(0,n.jsxs)("button",{type:"button",onClick:()=>W(!0),style:{display:"inline-flex",alignItems:"center",gap:5,padding:"6px 12px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"#dc2626",fontSize:12,cursor:"pointer"},children:[(0,n.jsx)(S.l,{size:13,"aria-hidden":"true"}),g("tasks.delete")]})})]})})}var dU=o(17757);function d_({open:e,onOpenChange:t,task:o,defaultProject:s,projects:i,prefillTitle:a,prefillPrompt:l,onSubmit:d}){let{t:c}=(0,F.s)(),[u,h]=(0,r.useState)(""),[g,m]=(0,r.useState)(""),[f,x]=(0,r.useState)(""),[k,v]=(0,r.useState)([]),[y,b]=(0,r.useState)(""),[w,j]=(0,r.useState)(!1),C=(0,r.useRef)(!1);if((0,r.useEffect)(()=>{if(!e){C.current=!1;return}C.current||(C.current=!0,h(o?.projectRoot??s??i[0]??""),m(o?.title??a??""),x(o?.config?.prompt??l??""),(0,rq.VB)().then(v).catch(()=>void 0))},[e,o,s,i,a,l]),!e)return null;let T=async()=>{if(u&&g.trim()&&!w){j(!0);try{await d(u,g.trim(),{prompt:f.trim(),agentType:o?.config?.agentType??null,modelId:o?.config?.modelId??null,thinkingLevel:o?.config?.thinkingLevel??null}),t(!1)}catch(e){console.error("submit task failed",e)}finally{j(!1)}}},R=async()=>{if(y.trim()&&g.trim())try{await (0,rq.nY)({name:y.trim(),title:g.trim(),config:{prompt:f.trim()}}),b(""),(0,rq.VB)().then(v).catch(()=>void 0)}catch(e){console.error("save template failed",e)}},z=async e=>{try{await (0,rq.B_)(e),(0,rq.VB)().then(v).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)"},onMouseDown:e=>{e.target===e.currentTarget&&t(!1)},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:o?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)(p.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12,padding:"14px 16px 16px"},children:[k.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:k.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:()=>{m(e.title),x(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 z(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)(S.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=>h(e.target.value),style:I,children:i.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:g,onChange:e=>m(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=>x(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:y,onChange:e=>b(e.target.value),placeholder:c("tasks.templateNamePlaceholder"),style:{...I,flex:1}}),(0,n.jsxs)("button",{type:"button",onClick:()=>void R(),disabled:!y.trim()||!g.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)(dU.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 T(),disabled:!u||!g.trim()||w,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"#fff",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:c("tasks.save")})]})]})]})})}function dq({open:e,onOpenChange:t,task:o}){let{t:s}=(0,F.s)(),{refetch:i}=db(),[a,l]=(0,r.useState)(!0),[d,c]=(0,r.useState)(""),[u,h]=(0,r.useState)(!0),[g,m]=(0,r.useState)(!1);if((0,r.useEffect)(()=>{e&&o&&(l(!0),c(o.title),m(!1),(0,rq.CG)(o.projectRoot).then(e=>h(e.deleteWorktreeDefault)).catch(()=>h(!0)))},[e,o]),!e||!o)return null;let f=async()=>{if((a||d.trim())&&!g){m(!0);try{await (0,rq.oB)(o.id,o.projectRoot,a?null:d.trim(),u),t(!1),i()}catch(e){console.error("merge failed",e)}finally{m(!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)"},onMouseDown:e=>{e.target===e.currentTarget&&t(!1)},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:s("tasks.mergeTitle")}),(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)(p.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:a,onChange:()=>l(!0),style:{accentColor:"var(--accent)"}}),s("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:!a,onChange:()=>l(!1),style:{accentColor:"var(--accent)"}}),s("tasks.mergeManualMessage")]}),!a&&(0,n.jsx)("input",{value:d,onChange:e=>c(e.target.value),placeholder:s("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=>h(e.target.checked),style:{accentColor:"var(--accent)"}}),s("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:s("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void f(),disabled:!a&&!d.trim()||g,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"#fff",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:s("tasks.mergeConfirm")})]})]})]})})}function dV({open:e,onOpenChange:t,task:o,kind:s}){let{t:i}=(0,F.s)(),{refetch:a}=db(),[l,d]=(0,r.useState)(""),[c,u]=(0,r.useState)(!1);if((0,r.useEffect)(()=>{e&&(d(""),u(!1))},[e,o]),!e||!o)return null;let h="retry"===s,g=async()=>{if(!c){u(!0);try{await (0,rq.oQ)(o.id,o.projectRoot,s,{note:l.trim()||null}),t(!1),a()}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)"},onMouseDown:e=>{e.target===e.currentTarget&&t(!1)},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:i(h?"tasks.restartTitleRetry":"tasks.restartTitleRequeue")}),(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)(p.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.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:i("tasks.actionAddNote")}),(0,n.jsx)("textarea",{value:l,onChange:e=>d(e.target.value),placeholder:i(h?"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:i("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void g(),disabled:c,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"#fff",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:i(h?"tasks.actionRetry":"tasks.actionRequeue")})]})]})]})})}let dK=["work","retry","return","merge"];function dG({open:e,onOpenChange:t,projectRoot:o}){let{t:s}=(0,F.s)(),{projects:i}=db(),[a,l]=(0,r.useState)(""),[d,c]=(0,r.useState)(()=>dI()),[u,h]=(0,r.useState)(!1),[g,m]=(0,r.useState)(!1);if((0,r.useEffect)(()=>{if(!e)return;let t=o??i[0]??"";l(t),t&&(0,rq.Pf)(t).then(e=>{h(null!=e),c(e??dI())}).catch(()=>{h(!1),c(dI())})},[e,o,i]),!e)return null;let f=(e,t)=>{c(o=>({...o,[e]:t}))},x=async()=>{if(a&&!g){m(!0);try{await (0,rq.eA)(a,d),h(!0),t(!1)}catch(e){console.error("save settings failed",e)}finally{m(!1)}}},k=async()=>{if(a)try{await (0,rq.E)(a),h(!1),c(dI())}catch(e){console.error("reset settings failed",e)}},v={width:"100%",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"7px 10px",color:"var(--text)",fontSize:12,outline:"none",fontFamily:"inherit"},y={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)"},onMouseDown:e=>{e.target===e.currentTarget&&t(!1)},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:s("tasks.settingsTitle")}),(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)(p.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:s("tasks.settingsProject")}),(0,n.jsx)("select",{value:a,onChange:e=>l(e.target.value),style:v,children:i.map(e=>(0,n.jsx)("option",{value:e,children:e.split("/").filter(Boolean).pop()??e},e))})]}),a?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{style:y,children:[(0,n.jsx)("span",{style:{fontSize:12},children:s("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:y,children:[(0,n.jsx)("span",{style:{fontSize:12},children:s("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:{...v,width:90}})]}),(0,n.jsxs)("div",{style:y,children:[(0,n.jsx)("span",{style:{fontSize:12},children:s("tasks.settingsMergeStrategy")}),(0,n.jsxs)("select",{value:d.mergeStrategy,onChange:e=>f("mergeStrategy",e.target.value),style:{...v,width:140},children:[(0,n.jsx)("option",{value:"merge",children:s("tasks.mergeStrategyMerge")}),(0,n.jsx)("option",{value:"squash",children:s("tasks.mergeStrategySquash")})]})]}),(0,n.jsxs)("div",{style:y,children:[(0,n.jsx)("span",{style:{fontSize:12},children:s("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:s("tasks.settingsPreflightCommand")}),(0,n.jsx)("input",{value:d.preflightCommand??"",onChange:e=>f("preflightCommand",e.target.value||null),placeholder:s("tasks.settingsPreflightPlaceholder"),style:{...v,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:s("tasks.settingsInitCommand")}),(0,n.jsx)("input",{value:d.initCommand??"",onChange:e=>f("initCommand",e.target.value||null),placeholder:s("tasks.settingsInitPlaceholder"),style:{...v,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:s("tasks.settingsStagePrompts")}),dK.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:s(`tasks.stage.${e}`)}),(0,n.jsx)("input",{value:d.stagePrompts?.[e]??"",onChange:t=>f("stagePrompts",{...d.stagePrompts??{},[e]:t.target.value}),style:{...v,fontSize:11}})]},e))]}),u&&(0,n.jsx)("button",{type:"button",onClick:()=>void k(),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:s("tasks.settingsReset")})]}):(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",padding:8},children:s("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:s("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void x(),disabled:!a||g,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"#fff",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:s("tasks.save")})]})]})]})})}function dJ({open:e,onOpenChange:t,task:o}){let{t:s}=(0,F.s)();return((0,r.useEffect)(()=>{if(!e)return},[e,o]),e&&o)?(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:970,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},onMouseDown:e=>{e.target===e.currentTarget&&t(!1)},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:s("tasks.sessionTitle")}),(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)(p.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:s("tasks.sessionId")}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,overflowWrap:"anywhere"},children:o.conversationId??"—"})]}),o.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:s("tasks.sessionFile")}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,overflowWrap:"anywhere"},children:o.sessionFile})]}):null,(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",lineHeight:1.6},children:s("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:"#fff",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:s("i18n.close")})})]})]})}):null}let dY="__all__",dX="pi-tasks-board-filter",dZ={showCanceled:!1,showArchived:!1},dQ="pi:open-task-settings";function d0(){let{t:e}=(0,F.s)(),{attentionCount:t}=db();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)(aJ.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:"#dc2626",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(dQ)),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)(dS.O,{size:13,"aria-hidden":"true"}),e("tasks.settingsTitle")]})]})}function d1({activeProject:e}){let{t}=(0,F.s)(),{tasks:s,projects:i,refetch:a}=db(),[l,c]=(0,r.useState)(null),[p,u]=(0,r.useState)(()=>(function(){try{let e=window.localStorage.getItem(dX);if(e){let t=JSON.parse(e);return{showCanceled:t.showCanceled??!1,showArchived:t.showArchived??!1}}}catch{}return dZ})()),[h,g]=(0,r.useState)(!1);(0,r.useEffect)(()=>{try{window.localStorage.setItem(dX,JSON.stringify(p))}catch{}},[p]);let[m,f]=(0,r.useState)(null),[k,v]=(0,r.useState)(!1),y=(0,r.useRef)(null),b=(0,r.useRef)({x:0,y:0}),w=(0,r.useRef)(null),j=(0,r.useRef)(null),[S,C]=(0,r.useState)(null),T=(0,r.useRef)(null);T.current=S;let R=(0,r.useRef)(!1),z=(0,r.useRef)(!1),[I,M]=(0,r.useState)(()=>Date.now());(0,r.useEffect)(()=>{let e=window.setInterval(()=>M(Date.now()),6e4);return()=>window.clearInterval(e)},[]);let[P,E]=(0,r.useState)(!1),[D,W]=(0,r.useState)(null),[A,N]=(0,r.useState)(null);(0,r.useEffect)(()=>{let e=()=>{let e,t=(e=nZ,nZ=null,e);t&&(W(null),N(t),E(!0))};return e(),window.addEventListener(nX,e),()=>window.removeEventListener(nX,e)},[]);let[$,L]=(0,r.useState)(null),[O,H]=(0,r.useState)(null),[B,U]=(0,r.useState)(!1),[_,q]=(0,r.useState)(null),[V,K]=(0,r.useState)(!1),[G,J]=(0,r.useState)(null),[Y,X]=(0,r.useState)("retry"),[Z,Q]=(0,r.useState)(!1),[ee,et]=(0,r.useState)(null),[eo,en]=(0,r.useState)(!1),[er,es]=(0,r.useState)(!1),[ei,ea]=(0,r.useState)(null),[el,ed]=(0,r.useState)(!1);(0,r.useEffect)(()=>{let e=()=>es(!0);return window.addEventListener(dQ,e),()=>window.removeEventListener(dQ,e)},[]);let ec=(0,r.useMemo)(()=>null==l?s:s.filter(e=>e.projectRoot===l),[s,l]),ep=(0,r.useMemo)(()=>(function(e,t,o=!1){let n={todo:[],inProgress:[],attention:[],done:[]};for(let r of e)("canceled"!==r.status||t)&&(null==r.archivedAt||o)&&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"}}(r.status)].push(r);for(let e of dR)n[e].sort((e,t)=>(t.updatedAt??"").localeCompare(e.updatedAt??""));return n})(ec,p.showCanceled,p.showArchived),[ec,p]),eu=(0,r.useMemo)(()=>{let e=ep.todo;if(null==S)return e;let t=new Map(e.map(e=>[e.id,e])),o=S.flatMap(e=>t.get(e)??[]);for(let t of e)S.includes(t.id)||o.push(t);return o},[ep.todo,S]),eh=(0,r.useMemo)(()=>s.find(e=>e.id===$)??null,[s,$]),eg=(0,r.useMemo)(()=>s.find(e=>e.id===ei)??null,[s,ei]),em=(0,r.useCallback)(async e=>{try{await e()}catch(e){console.error("task action failed",e)}finally{a()}},[a]),ef=(0,r.useCallback)(e=>{null!=e.conversationId&&(ea(e.id),ed(!0))},[ea,ed]),ex=(0,r.useCallback)(e=>{H(e),U(!0)},[H,U]),ek=(0,r.useCallback)(()=>{W(null),E(!0)},[W,E]),ev=(0,r.useCallback)((e,t)=>{let o=w.current,n=y.current;o&&n&&(o.style.transform=`translate3d(${e-n.dx}px, ${t-n.dy}px, 0)`)},[]),ey=e=>{let t=e.currentTarget.getBoundingClientRect();y.current={dx:e.clientX-t.left,dy:e.clientY-t.top,width:t.width}},eb=(0,r.useCallback)(e=>{if(f(null),v(!1),e){R.current=!1;return}requestAnimationFrame(()=>{R.current=!1})},[f,v]),ew=(0,r.useCallback)(()=>{z.current=!0,C(null),eb(!0)},[eb,C]);(0,r.useEffect)(()=>{if(!m)return;let e=()=>{document.hidden&&ew()};return window.addEventListener("blur",ew),document.addEventListener("visibilitychange",e),()=>{window.removeEventListener("blur",ew),document.removeEventListener("visibilitychange",e)}},[m,ew]),(0,r.useEffect)(()=>{m&&!eu.some(e=>e.id===m.task.id)&&ew()},[m,eu,ew]);let ej=(0,r.useCallback)((e,t,o)=>{if(z.current){eb(!0),C(null);return}let n=j.current?.getBoundingClientRect(),r=null!=n&&t>=n.left&&t<=n.right&&o>=n.top&&o<=n.bottom;if(eb(!1),r){C(null);let t=s.find(t=>t.id===e.id);t?.status==="todo"&&null!=l&&em(()=>(0,rq.oQ)(e.id,e.projectRoot,"start"));return}let i=T.current;null!=l&&null!=i&&(async()=>{try{await (0,rq.Lu)(l,i)}catch(e){console.error("reorder failed",e)}await a(),C(null)})()},[em,eb,l,a,s]),eS=(0,r.useCallback)(()=>{em(async()=>{let e=await (0,rq.a5)(l);e>0&&console.log(`started ${e} tasks`)})},[em,l]),eC=(0,r.useCallback)(()=>{let e=ep.done.filter(e=>null==e.archivedAt);0!==e.length&&em(()=>Promise.all(e.map(e=>(0,rq.et)(e.id,e.projectRoot,!0))))},[em,ep.done]),eT=+(p.showCanceled!==dZ.showCanceled)+ +(p.showArchived!==dZ.showArchived),eR=s.length>0,ez=(0,r.useMemo)(()=>{let t=new Set(i);return e&&t.add(e),[...t].sort()},[i,e]),eI=(0,r.useMemo)(()=>{let e=new Map;for(let t of ez)e.set(t,t.split("/").filter(Boolean).pop()??t);return e},[ez]);return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0},children:[eR&&(0,n.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:8,padding:"14px 16px 8px"},children:[(0,n.jsxs)("select",{value:l??dY,onChange:e=>c(e.target.value===dY?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:dY,children:t("tasks.allFolders")}),ez.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)(dC.n,{size:13,"aria-hidden":"true"}),t("tasks.filter"),eT>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:eT}):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:p[e],onChange:t=>u(o=>({...o,[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)(dT.j,{size:13,"aria-hidden":"true"}),t("tasks.startAll")]}),(0,n.jsxs)("button",{type:"button",onClick:ek,style:{display:"inline-flex",alignItems:"center",gap:6,height:30,borderRadius:999,padding:"0 14px",background:"var(--accent)",color:"#fff",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:[(0,n.jsx)(x.F,{size:13,weight:"bold","aria-hidden":"true"}),t("tasks.new")]})]}),eR?(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:dM.map(e=>{let o="todo"===e?eu:ep[e],r=dP[e],s=e=>(0,n.jsx)(dN,{task:e,folderName:e.projectRoot?eI.get(e.projectRoot)??null:null,now:I,onOpen:()=>{R.current||L(e.id)},onStart:()=>void em(()=>(0,rq.oQ)(e.id,e.projectRoot,"start")),onCancel:()=>{q(e),K(!0)},onRetry:()=>{J(e),X("retry"),Q(!0)},onRequeue:()=>{J(e),X("requeue"),Q(!0)},onViewSession:()=>ef(e),onMerge:()=>{dz(e)?(et(e),en(!0)):ex(e)},onArchive:()=>void em(()=>(0,rq.et)(e.id,e.projectRoot,null==e.archivedAt)),onEdit:()=>{W(e),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:r.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:o.length}),(0,n.jsx)("div",{style:{flex:1}}),"done"===e&&ep.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===o.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&&m?k?{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&&m?k?{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:o.map(t=>"todo"===e?(0,n.jsx)("div",{draggable:!0,onDragStart:e=>{var o,n;e.dataTransfer.effectAllowed="move",o=e.clientX,n=e.clientY,R.current=!0,z.current=!1,b.current={x:o,y:n},f({task:t,width:y.current?.width??280})},onDrag:e=>{var t,o;let n,r;return b.current={x:t=e.clientX,y:o=e.clientY},ev(t,o),void((r=null!=(n=j.current?.getBoundingClientRect())&&t>=n.left&&t<=n.right&&o>=n.top&&o<=n.bottom)!==k&&v(r))},onDragEnd:e=>ej(t,e.clientX,e.clientY),onPointerDown:ey,style:{cursor:"grab",opacity:m?.task.id===t.id?.4:1},children:s(t)},t.id):(0,n.jsx)("div",{children:s(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)(aJ.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:ek,style:{display:"inline-flex",alignItems:"center",gap:6,padding:"7px 14px",borderRadius:8,background:"var(--accent)",color:"#fff",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:[(0,n.jsx)(x.F,{size:13,weight:"bold","aria-hidden":"true"}),t("tasks.new")]})]}),(0,n.jsx)(d_,{open:P,onOpenChange:E,task:D,defaultProject:A?.projectRoot??l??e??null,projects:ez,prefillTitle:A?A.text.slice(0,80):void 0,prefillPrompt:A?A.text:void 0,onSubmit:async(e,t,n)=>{await em(async()=>{let{createTaskApi:r}=await Promise.resolve().then(o.bind(o,23084)),{updateTaskApi:s}=await Promise.resolve().then(o.bind(o,23084));D?await s(D.id,e,{title:t,config:n}):await r({projectRoot:e,title:t,config:n})}),E(!1),N(null)}}),(0,n.jsx)(dB,{open:null!=$,onOpenChange:e=>{e||L(null)},task:eh,onViewSession:ef,onMerge:ex,onEdit:e=>{W(e),E(!0)},onCancel:e=>{q(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)(dq,{open:B,onOpenChange:U,task:O}),(0,n.jsx)(d$,{open:V,onOpenChange:K,task:_}),(0,n.jsx)(dV,{open:Z,onOpenChange:Q,task:G,kind:Y}),(0,n.jsx)(dL,{open:eo,onOpenChange:en,task:ee}),(0,n.jsx)(dJ,{open:el&&null!=eg,onOpenChange:ed,task:eg}),(0,n.jsx)(dG,{open:er,onOpenChange:es,projectRoot:l}),m?(0,d.createPortal)((0,n.jsx)("div",{ref:w,style:{position:"fixed",left:0,top:0,zIndex:999,pointerEvents:"none",width:m.width,willChange:"transform"},"aria-hidden":"true",children:(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8,borderRadius:12,border:k?"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:m.task.title}),(0,n.jsx)(dW,{task:m.task})]}),k?(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,fontSize:11,fontWeight:600,color:"var(--accent)"},children:[(0,n.jsx)(dT.j,{size:11,weight:"bold","aria-hidden":"true"}),t("tasks.dropToStart")]}):null]})}),document.body):null]})}var d2=o(62235);function d4(){return!!window.__TAURI_INTERNALS__}async function d6(){let{getCurrentWindow:e}=await o.e(8518).then(o.bind(o,38518));await e().minimize()}async function d8(){let{getCurrentWindow:e}=await o.e(8518).then(o.bind(o,38518));await e().toggleMaximize()}async function d5(){let{getCurrentWindow:e}=await o.e(8518).then(o.bind(o,38518));await e().startDragging()}async function d3(){let{getCurrentWindow:e}=await o.e(8518).then(o.bind(o,38518));await e().close()}async function d7(){let{getCurrentWindow:e}=await o.e(8518).then(o.bind(o,38518));return e().isMaximized()}function d9(){let[e,t]=(0,r.useState)(null);return(0,r.useEffect)(()=>{d4()&&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 ce="pi-web-island-pos";function ct(e,t,o,n,r,s){return{x:Math.min(Math.max(0,e),Math.max(0,o-r)),y:Math.min(Math.max(0,t),Math.max(0,n-s))}}let co={display:"flex",alignItems:"center",justifyContent:"center",width:32,height:32,padding:0,flexShrink:0,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",borderRadius:8,transition:"background 0.12s, color 0.12s"};function cn(){let{t:e}=(0,F.s)(),{isDark:t}=ov(),{isDesktop:o,isMacOS:s}=d9(),i=o&&!s,[a,l]=(0,r.useState)(!1),[d,c]=(0,r.useState)(null),[p,u]=(0,r.useState)(null),h=(0,r.useRef)(null),g=(0,r.useRef)(null),m=(0,r.useCallback)(e=>{e().catch(e=>{console.error("[DynamicIsland] window command failed:",e),c(String(e)),window.setTimeout(()=>c(null),4e3)})},[]),f=(0,r.useCallback)(()=>{window.location.reload()},[]);(0,r.useEffect)(()=>{if(!d4()||!i)return;let e=()=>{d7().then(l)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[i]),(0,r.useEffect)(()=>{if(i)try{let e=localStorage.getItem(ce);if(e){let t=JSON.parse(e);"number"==typeof t.x&&"number"==typeof t.y&&u(ct(t.x,t.y,window.innerWidth,window.innerHeight,152,42))}}catch{}},[i]),(0,r.useEffect)(()=>{if(i&&p)try{localStorage.setItem(ce,JSON.stringify(p))}catch{}},[p,i]);let[x,k]=(0,r.useState)(0);(0,r.useEffect)(()=>{if(!i)return;let e=()=>{k(window.innerWidth),u(e=>e?ct(e.x,e.y,window.innerWidth,window.innerHeight,152,42):e)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[i]);let v=(0,r.useCallback)(e=>{if(0!==e.button||e.target.closest?.("[data-island-btn]"))return;let t=h.current;if(!t)return;let o=t.getBoundingClientRect();g.current={startX:e.clientX,startY:e.clientY,origX:o.left,origY:o.top},e.currentTarget.setPointerCapture(e.pointerId)},[]),y=(0,r.useCallback)(e=>{let t=g.current;if(!t)return;let o=e.clientX-t.startX,n=e.clientY-t.startY;u(ct(t.origX+o,t.origY+n,window.innerWidth,window.innerHeight,152,42))},[]),b=(0,r.useCallback)(e=>{g.current=null;try{e.currentTarget.releasePointerCapture(e.pointerId)}catch{}},[]),w=(0,r.useCallback)(()=>(l(e=>!e),d8()),[]),S=(0,r.useCallback)(e=>{if(!g.current&&!e.target.closest?.("[data-island-btn]")){u(null);try{localStorage.removeItem(ce)}catch{}}},[]);if(!i)return null;let C=x||window.innerWidth,T=null!==p?p.x:Math.max(0,C-152-14);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{ref:h,role:"toolbar","aria-label":e("desktop.islandLabel"),title:e("desktop.islandResetHint"),onPointerDown:v,onPointerMove:y,onPointerUp:b,onPointerCancel:b,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:2,padding:"4px 6px",borderRadius:999,background:"color-mix(in srgb, var(--bg-panel) 88%, transparent)",border:"1px solid var(--border)",boxShadow:t?"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)("button",{type:"button","data-island-btn":!0,"aria-label":e("desktop.refreshSession"),title:e("desktop.refreshSession"),onClick:f,style:co,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)(j.S,{size:14,"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":e("desktop.minimize"),title:e("desktop.minimize"),onClick:()=>m(d6),style:co,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:"0",y1:"5",x2:"10",y2:"5"})})}),(0,n.jsx)("button",{type:"button","data-island-btn":!0,"aria-label":e(a?"desktop.restore":"desktop.maximize"),title:e(a?"desktop.restore":"desktop.maximize"),onClick:()=>m(w),style:co,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":e("desktop.close"),title:e("desktop.close"),onClick:()=>m(d3),style:co,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"})]})})]}),d&&(0,n.jsx)("div",{role:"alert",style:{position:"fixed",top:(null!==p?p.y:100)+42+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:t?"0 6px 24px rgba(0,0,0,0.45)":"0 6px 20px rgba(0,0,0,0.12)",pointerEvents:"none"},children:d})]})}function cr({isDark:e,toggleTheme:t,translate:o}){let[s,i]=(0,r.useState)(!1);(0,r.useEffect)(()=>{i(!0)},[]);let a=o(s?e?"desktop.switchToLight":"desktop.switchToDark":"desktop.switchToLight");return(0,n.jsx)("button",{className:"app-no-drag",suppressHydrationWarning:!0,onClick:e=>{let o=e.currentTarget.getBoundingClientRect();t({x:o.left+o.width/2,y:o.top+o.height/2})},title:a,"aria-label":a,"aria-pressed":!s||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:s?e?(0,n.jsx)(aL.b,{size:16,"aria-hidden":"true"}):(0,n.jsx)(a$.A,{size:16,"aria-hidden":"true"}):(0,n.jsx)(aL.b,{size:16,"aria-hidden":"true"})})}function cs({topBarRef:e,sidebarOpen:t,onSidebarToggle:o,isDark:s,toggleTheme:i,isMobile:a,showTasks:l,tasksBoardEnabled:d,onToggleTasks:c,systemPrompt:p,activeTopPanel:u,topPanelPos:g,sessionStats:m,selectedSession:f,contextUsage:x,copiedSessionField:k,onCopySessionField:v,rightPanelOpen:b,onToggleFilePanel:w,onRefreshSession:S,onOpenSettings:C,sessionTitle:T,onWorkspaceControlsHostChange:R,onTitleRightHostChange:z,desktopChrome:I,windowDrag:M}){let P,E,D,W,A,N,$,L,O,H,B,{t:U}=(0,F.s)(),[_,q]=(0,r.useState)(!1),[V,K]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{try{K(new URLSearchParams(window.location.search).has("piweb_connected"))}catch{K(!1)}},[]),(0,n.jsxs)(n.Fragment,{children:[(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:"var(--bg-panel)",position:"relative",zIndex:600,paddingLeft:76*!!I?.isMacOS},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",minWidth:0,height:"100%",flex:"0 1 auto"},children:[(0,n.jsx)("button",{className:"app-no-drag",onClick:o,title:t?U("desktop.hideSidebar"):U("desktop.showSidebar"),"aria-label":t?U("desktop.hideSidebar"):U("desktop.showSidebar"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,flexShrink:0,background:t?"var(--bg-selected)":"none",border:"none",color:t?"var(--text)":"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="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background=t?"var(--bg-selected)":"none",e.currentTarget.style.color=t?"var(--text)":"var(--text-muted)"},children:t?(0,n.jsx)(d2.V,{size:16,"aria-hidden":"true"}):(0,n.jsx)(y.B,{size:16,"aria-hidden":"true"})}),(0,n.jsx)("div",{className:"app-no-drag",ref:R,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:{flex:1,minWidth:0,display:"flex",alignItems:"center",justifyContent:"center",height:"100%",padding:"0 12px",overflow:"hidden",userSelect:"none"},children:[T&&(0,n.jsx)("button",{type:"button",onClick:()=>{a&&q(!0)},title:a?T:void 0,style:{display:"block",flex:"0 1 auto",minWidth:0,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:T}),(0,n.jsx)("div",{className:"app-no-drag",ref:z,style:{flexShrink:0,display:"flex",alignItems:"center",marginLeft:4}})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",minWidth:0,height:"100%",flexShrink:1,overflow:"hidden"},children:[!a&&d&&(0,n.jsx)("button",{className:"app-no-drag",onClick:c,title:l?U("desktop.hideTaskBoard"):U("desktop.showTaskBoard"),"aria-label":l?U("desktop.hideTaskBoard"):U("desktop.showTaskBoard"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:l?"var(--bg-selected)":"none",border:"none",color:l?"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=l?"var(--bg-selected)":"none",e.currentTarget.style.color=l?"var(--text)":"var(--text-muted)"},children:(0,n.jsx)(aJ.x,{size:16,"aria-hidden":"true"})}),(0,n.jsx)("button",{className:"app-no-drag",onClick:w,title:b?U("desktop.hideFilePanel"):U("desktop.showFilePanel"),"aria-label":b?U("desktop.hideFilePanel"):U("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)(d2.V,{size:16,"aria-hidden":"true",style:{transform:"scaleX(-1)"}})}),(0,n.jsx)(cr,{isDark:s,toggleTheme:i,translate:U}),V&&(0,n.jsx)("button",{className:"app-no-drag",type:"button",onClick:()=>{window.location.href="piweb-switch://manage"},title:U("desktop.serverSwitch"),"aria-label":U("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)(ax.X,{size:16,"aria-hidden":"true"})}),!V&&(0,n.jsx)("button",{className:"app-no-drag",type:"button",onClick:S,title:U("desktop.refreshSession"),"aria-label":U("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)(j.S,{size:16,"aria-hidden":"true"})}),(0,n.jsx)("button",{className:"app-no-drag",type:"button",onClick:C,title:U("desktop.settings"),"aria-label":U("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)(dS.O,{size:16,"aria-hidden":"true"})})]})]}),(0,n.jsx)(cn,{}),u&&g&&(0,n.jsxs)("div",{style:{position:"fixed",top:g.top,left:g.left,width:g.width,maxHeight:`calc(100dvh - ${g.top}px)`,overflowY:"auto",zIndex:500},children:["system"===u&&(0,n.jsx)("div",{style:{background:"var(--bg-panel)",borderBottom:"1px solid var(--border)"},children:p?(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:p}):""===p?(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"===u&&(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:m?(P=[...m.sessionName?[{label:U("desktop.name"),value:m.sessionName,copyField:null}]:[],{label:U("desktop.sessionInfoFile"),value:m.sessionFile??U("desktop.sessionInfoInMemory"),copyField:"file"},{label:U("desktop.sessionInfoId"),value:m.sessionId,copyField:"id"}],E=[[U("desktop.sessionInfoUser"),m.userMessages.toLocaleString()],[U("desktop.sessionInfoAssistant"),m.assistantMessages.toLocaleString()],[U("desktop.sessionInfoToolCalls"),m.toolCalls.toLocaleString()],[U("desktop.sessionInfoToolResults"),m.toolResults.toLocaleString()],[U("desktop.sessionInfoTotal"),m.totalMessages.toLocaleString()]],D=[[U("desktop.sessionInfoInput"),m.tokens.input.toLocaleString()],[U("desktop.sessionInfoOutput"),m.tokens.output.toLocaleString()],...m.tokens.cacheRead>0?[[U("desktop.sessionInfoCacheRead"),m.tokens.cacheRead.toLocaleString()]]:[],...m.tokens.cacheWrite>0?[[U("desktop.sessionInfoCacheWrite"),m.tokens.cacheWrite.toLocaleString()]]:[],[U("desktop.sessionInfoTotal"),m.tokens.total.toLocaleString()]],W=x??m.contextUsage,N=[...m.cost>0?[[U("desktop.sessionInfoCost"),`$${m.cost.toFixed(4)}`]]:[],...W?.contextWindow?[[U("desktop.sessionInfoContext"),`${null!==W.percent?`${W.percent.toFixed(1)}%`:"?"} / ${(A=W.contextWindow)>=1e6?`${(A/1e6).toFixed(1)}M`:A>=1e3?`${(A/1e3).toFixed(0)}k`:String(A)}`]]:[]],$=(e,t,o="left",r=!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:r?"max-content max-content":"auto minmax(0, 1fr)",columnGap:r?14:12,rowGap:4,justifyContent:r?"start":void 0},children:t.map(([t,s])=>(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:r?"normal":"anywhere",textAlign:o,whiteSpace:"right"===o?"nowrap":"normal"},children:s})]},`${e}:${t}`))})]}),L=(e,t)=>{let o=k===e;return(0,n.jsx)("button",{type:"button",title:o?U("desktop.copied"):U({file:"desktop.copyFilePath",id:"desktop.copySessionId",projectDir:"desktop.copyProjectDir",gitBranch:"desktop.copyGitBranch",gitWorktree:"desktop.copyGitWorktree"}[e]),onClick:()=>v(e,t),style:{alignSelf:"start",display:"inline-flex",alignItems:"center",justifyContent:"center",width:22,height:22,marginTop:-2,color:o?"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=o?"var(--accent)":"var(--text-dim)",e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="transparent"},children:o?(0,n.jsx)(h.J,{size:12,"aria-hidden":"true"}):(0,n.jsx)(tj.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:U("desktop.sessionInfoTitle")}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:12,rowGap:8,alignItems:"start"},children:P.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?L(e.copyField,e.value):null})]},`session-info:${e.label}`))})]}),B=(H=[...f?[{label:U("desktop.projectDir"),value:f.projectRoot??f.cwd,copyField:"projectDir"}]:[],...f?.branch?[{label:U("desktop.gitBranch"),value:f.branch,copyField:"gitBranch"}]:[],...f?.isWorktree?[{label:U("desktop.gitWorktree"),value:f.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:U("desktop.projectSection")}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:12,rowGap:8,alignItems:"start"},children:H.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?L(e.copyField,e.value):null})]},`project-info:${e.label}`))})]}):null,(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:a?"1fr":"minmax(360px, 1.7fr) minmax(140px, 0.55fr) minmax(190px, 0.75fr)",gap:a?16:24,fontSize:12,lineHeight:1.5,fontFamily:"var(--font-mono)"},children:[(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:a?16:20,minWidth:0},children:[O,B]}),$(U("desktop.sessionInfoMessages"),E),$(U("desktop.sessionInfoTokens"),[...D,...N],"right",!0)]})):(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:U("desktop.sendMessageForSessionInfo")})})]}),_&&T&&(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:3e3,display:"flex",alignItems:"flex-start",justifyContent:"center",paddingTop:48,background:"rgba(0,0,0,0.35)"},onMouseDown:e=>{e.target===e.currentTarget&&q(!1)},children:(0,n.jsx)("div",{role:"dialog","aria-label":T,style:{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 18px",fontSize:13,lineHeight:1.6,color:"var(--text)",wordBreak:"break-word",whiteSpace:"pre-wrap"},children:T})})]})}function ci({cwd:e,busy:t,error:o,onCancelAction:r,onConfirmAction:s}){let{t:i}=(0,F.s)();return(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)"},onClick:e=>{t||e.target!==e.currentTarget||r()},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)(nJ.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:i("desktop.trustProjectTitle")}),(0,n.jsx)("p",{style:{margin:"7px 0 0",fontSize:12,lineHeight:1.6,color:"var(--text-muted)"},children:i("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}),o&&(0,n.jsx)("div",{role:"alert",style:{marginTop:10,color:"var(--accent-red)",fontSize:12,lineHeight:1.5},children:o})]})]}),(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:r,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:i("desktop.cancel")}),(0,n.jsx)("button",{type:"button",onClick:s,disabled:t,style:{height:32,padding:"0 12px",border:"1px solid var(--accent)",borderRadius:5,background:"var(--accent)",color:"white",cursor:t?"wait":"pointer",opacity:t?.7:1,fontSize:12,fontWeight:600},children:i(t?"desktop.trustingProject":"desktop.trustProject")})]})]})})}function ca(e,t,o){let n=Number.isFinite(e)?e:t,r=Math.max(t,o);return Math.round(Math.max(t,Math.min(r,n)))}function cl(e){return ca(.42*e,360,640)}function cd(e,t){try{window.localStorage.setItem(e,String(t))}catch{}}function cc(e){let{ariaLabel:t,cssVariable:o,defaultWidth:n,getDefaultWidth:s,getMaxWidth:i,growthDirection:a,maxWidth:l,minWidth:d,storageKey:c,widthRef:p}=e,u=(0,r.useRef)(null),h=(0,r.useRef)(null),g=(0,r.useRef)(!1),[m,f]=(0,r.useState)(n),[x,k]=(0,r.useState)(!1),[v,y]=(0,r.useState)(!1);(0,r.useEffect)(()=>{y(!0)},[]);let b=(0,r.useCallback)(()=>Math.min(l,Math.max(d,i())),[i,l,d]),w=(0,r.useCallback)(e=>ca(e,d,b()),[b,d]),j=(0,r.useCallback)(e=>{p.current=e;let t=`${e}px`;u.current?.style.setProperty(o,t),u.current?.parentElement?.style.setProperty(o,t)},[o,p]),S=(0,r.useCallback)((e,t={})=>{let{forcePersist:o=!1,persist:n=!0}=t,r=w(e),s=r!==p.current;return j(r),f(r),n&&(s||o)&&cd(c,r),r},[j,w,c,p]),C=(0,r.useCallback)(e=>{document.body.style.cursor=e.previousCursor,document.body.style.userSelect=e.previousUserSelect},[]),T=(0,r.useCallback)(e=>{let t=h.current;if(t&&t.pointerId===e){h.current=null,C(t),k(!1),S(p.current,{forcePersist:!0});try{t.target.hasPointerCapture(e)&&t.target.releasePointerCapture(e)}catch{}}},[S,C,p]),R=(0,r.useCallback)(e=>{if("mouse"===e.pointerType&&0!==e.button)return;e.preventDefault(),e.stopPropagation();let t=h.current;t&&T(t.pointerId);let o=e.currentTarget;o.focus({preventScroll:!0}),o.setPointerCapture(e.pointerId),h.current={pointerId:e.pointerId,startX:e.clientX,startWidth:p.current,target:o,previousCursor:document.body.style.cursor,previousUserSelect:document.body.style.userSelect},document.body.style.cursor="col-resize",document.body.style.userSelect="none",k(!0)},[T,p]),z=(0,r.useCallback)(e=>{let t=h.current;if(!t||t.pointerId!==e.pointerId)return;if("mouse"===e.pointerType&&0===e.buttons)return void T(e.pointerId);e.preventDefault();let o="right"===a?1:-1,n=w(t.startWidth+(e.clientX-t.startX)*o);j(n),e.currentTarget.setAttribute("aria-valuenow",String(n)),e.currentTarget.setAttribute("aria-valuetext",`${n} px`)},[j,w,T,a]),I=(0,r.useCallback)(e=>{T(e.pointerId)},[T]),M=(0,r.useCallback)(e=>{T(e.pointerId)},[T]),P=(0,r.useCallback)(e=>{T(e.pointerId)},[T]),E=(0,r.useCallback)(()=>{S(s?.()??n,{forcePersist:!0})},[S,n,s]),F=(0,r.useCallback)(()=>{S(p.current)},[S,p]),D=(0,r.useCallback)(e=>{let t=e.shiftKey?32:12,o="right"===a?"ArrowRight":"ArrowLeft",n="right"===a?"ArrowLeft":"ArrowRight";e.key===o?(e.preventDefault(),S(p.current+t,{forcePersist:!0})):e.key===n?(e.preventDefault(),S(p.current-t,{forcePersist:!0})):"Home"===e.key?(e.preventDefault(),S(d,{forcePersist:!0})):"End"===e.key?(e.preventDefault(),S(b(),{forcePersist:!0})):"Enter"===e.key&&(e.preventDefault(),E())},[S,b,a,d,E,p]);return(0,r.useEffect)(()=>{if(g.current)return;g.current=!0;let e=function(e){try{let t=window.localStorage.getItem(e);if(null===t)return null;let o=Number.parseInt(t,10);return Number.isFinite(o)?o:null}catch{return null}}(c),t=S(e??s?.()??n,{persist:!1});null!==e&&e!==t&&cd(c,t)},[S,n,s,c]),(0,r.useEffect)(()=>{if(!g.current)return;S(p.current);let e=()=>{S(p.current)};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[S,p]),(0,r.useEffect)(()=>{if(!x)return;let e=()=>{let e=h.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,x]),(0,r.useEffect)(()=>()=>{let e=h.current;e&&(h.current=null,C(e))},[C]),{isResizing:x,panelRef:u,reclampWidth:F,separatorProps:{"aria-label":t,"aria-orientation":"vertical","aria-valuemax":v?b():l,"aria-valuemin":d,"aria-valuenow":m,"aria-valuetext":`${m} px`,onDoubleClick:E,onKeyDown:D,onLostPointerCapture:P,onPointerCancel:M,onPointerDown:R,onPointerMove:z,onPointerUp:I,role:"separator",tabIndex:0},width:m}}function cp(){let e,t,o,d=(0,a.useRouter)(),c=(0,a.useSearchParams)(),p=(0,r.useMemo)(()=>{let e;return{requestedCwd:e=c.get("cwd")?.trim()||null,sessionId:e?null:c.get("session")}},[c]),{isDark:u,toggleTheme:h}=ov(),{t:g}=(0,F.s)(),m=$(),[f,x]=(0,r.useState)(null),[k,v]=(0,r.useState)(null),[y,b]=(0,r.useState)(0),[w,j]=(0,r.useState)(0),[S,C]=(0,r.useState)(0),[T,R]=(0,r.useState)(!1),[z,I]=(0,r.useState)("models"),[M,P]=(0,r.useState)(0),[E,D]=(0,r.useState)(null),[W,A]=(0,r.useState)(!1),[N,L]=(0,r.useState)(!1),[O,H]=(0,r.useState)(null),[B,U]=(0,r.useState)(!0),[_,q]=(0,r.useState)(!1);(0,r.useEffect)(()=>{m&&U(!1)},[m]),(0,r.useEffect)(()=>{q(!0)},[]);let V=(0,r.useRef)(null),K=(0,r.useRef)(null),[G,J]=(0,r.useState)(null),[Y,X]=(0,r.useState)(null),[Z,Q]=(0,r.useState)(null),ee=d9(),et=function(){let{isDesktop:e,isMacOS:t}=d9(),o=(0,r.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?d8():d5())},[]);return e&&!t?{onMouseDown:o}:{}}(),[eo,en]=(0,r.useState)(null),er=(0,r.useCallback)(e=>{en(e)},[]),[es,ei]=(0,r.useState)(null),el=(0,r.useCallback)(e=>{ei(e)},[]),[ed,ec]=(0,r.useState)([]),ep=(0,r.useCallback)(e=>{ec(e)},[]),eu=ed.filter(e=>"running"===e.status).length,[eh,eg]=(0,r.useState)(null),em=(0,r.useRef)(null),ef=(0,r.useCallback)((e,t)=>{oy(t).then(()=>{em.current&&clearTimeout(em.current),eg(e),em.current=setTimeout(()=>eg(null),1400)})},[]);(0,r.useEffect)(()=>()=>{em.current&&clearTimeout(em.current)},[]);let[ex,ek]=(0,r.useState)(null),ev=(0,r.useCallback)(e=>{ek(e)},[]),[ey,eb]=(0,r.useState)(null),[ew,ej]=(0,r.useState)(null),eS=(0,r.useCallback)(()=>{m&&U(!1),eb("session")},[m]),eC=(0,r.useCallback)(()=>{m&&eb(null),U(e=>!e)},[m]);(0,r.useEffect)(()=>{if(!ey||!K.current)return;let e=()=>{let e=K.current.getBoundingClientRect();ej({top:e.bottom,left:e.left,width:e.width})};e();let t=new ResizeObserver(e);return t.observe(K.current),()=>t.disconnect()},[ey]);let[eT,eR]=(0,r.useState)([]),[ez,eI]=(0,r.useState)(null),[eM,eP]=(0,r.useState)(!1),[eE,eD]=(0,r.useState)(!1),[eW,eA]=(0,r.useState)(null),eN=(0,r.useCallback)(e=>{eA(e??null),eD(!0),eP(!0),m&&U(!1)},[m]),e$=(0,r.useCallback)(()=>{eD(!1),eA(null)},[]),[eL,eO]=(0,r.useState)(null),eH=(0,r.useCallback)(e=>eO(e),[]),eB=(0,r.useCallback)(()=>eO(null),[]);(0,r.useEffect)(()=>{if(!eL)return;let e=e=>{"Escape"===e.key&&(e.stopImmediatePropagation(),e.preventDefault(),eO(null))};return window.addEventListener("keydown",e,!0),()=>window.removeEventListener("keydown",e,!0)},[eL]);let eU=(0,r.useRef)(260),e_=(0,r.useRef)(cl(1366)),eV=(0,r.useCallback)(()=>cl(window.innerWidth),[]),eK=(0,r.useCallback)(()=>(function(e){let{viewportWidth:t,rightPanelOpen:o,rightPanelWidth:n}=e;if(t<=640)return 480;let r=t<960;return Math.min(480,t-(r?320:420)-(!r&&o?n:0))})({viewportWidth:window.innerWidth,rightPanelOpen:eM,rightPanelWidth:e_.current}),[eM]),eG=(0,r.useCallback)(()=>(function(e){let{viewportWidth:t,sidebarOpen:o,sidebarWidth:n}=e;return t<960?1200:Math.min(1200,t-420-(o?n:0))})({viewportWidth:window.innerWidth,sidebarOpen:B,sidebarWidth:eU.current}),[B]),eJ=cc({ariaLabel:g("desktop.resizeSidebar"),cssVariable:"--sidebar-width",defaultWidth:260,getMaxWidth:eK,growthDirection:"right",maxWidth:480,minWidth:180,storageKey:"pi-sidebar-width",widthRef:eU}),eY=cc({ariaLabel:g("desktop.resizeFilePanel"),cssVariable:"--right-panel-width",defaultWidth:cl(1366),getDefaultWidth:eV,getMaxWidth:eG,growthDirection:"left",maxWidth:1200,minWidth:300,storageKey:"pi-right-panel-width",widthRef:e_}),eX=eJ.reclampWidth,eZ=eY.reclampWidth;(0,r.useEffect)(()=>{eM&&(eX(),eZ())},[eZ,eX,eM]);let eQ=(0,r.useCallback)((e,t)=>{V.current?.insertText(r_(e,t))},[]),e0=(0,r.useCallback)(e=>{let t=e.map(e=>r_(e,!1)).join("");t&&V.current?.insertText(t)},[]),e1=(0,r.useCallback)((e,t,o)=>{let n,r,s,i;V.current?.insertText((n=Math.max(1,Math.min(t,o)),r=Math.max(1,Math.max(t,o)),s=e.includes(" ")?`@"${e}"`:`@${e}`,i=n===r?`:${n}`:`:${n}-${r}`,`${s}${i} `))},[]),[e2,e6]=(0,r.useState)(()=>p.sessionId),[e8,e5]=(0,r.useState)(null),[e3,e7]=(0,r.useState)(()=>p.requestedCwd?"validating":"idle"),[e9,te]=(0,r.useState)(null),[tt,to]=(0,r.useState)(()=>!e2),tn=(0,r.useRef)(!1),tr=(0,r.useRef)(new Map),[ts,ti]=(0,r.useState)(null),ta=(0,r.useRef)("");(0,r.useEffect)(()=>{let e=`${p.requestedCwd??""}|${p.sessionId??""}`;ta.current!==e&&(ta.current=e,e6(p.sessionId),to(!p.sessionId),p.requestedCwd||e7("idle"),te(null))},[p]),(0,r.useEffect)(()=>{let e=p.requestedCwd;if(!e)return;let t=new AbortController;return e7("validating"),te(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}`);tn.current=!0,v(t.cwd),e7("ready")}).catch(e=>{t.signal.aborted||(te(e instanceof Error?e.message:String(e)),e7("error"))}),()=>t.abort()},[p]);let tl=(0,r.useCallback)((e,t)=>{if(!e)return;if(e5(e),tn.current&&f&&eF(f.projectRoot??f.cwd,t??e)){if(tn.current=!1,f){let e=f.projectRoot??f.cwd;e&&tr.current.set(e,f.id)}return}tn.current=!1;let o=t??e;if(f&&eF(f.projectRoot??f.cwd,o)){(f.projectRoot??f.cwd)&&tr.current.set(o,f.id);return}if(f){let e=f.projectRoot??f.cwd;e&&tr.current.set(e,f.id)}x(null),v(t=>t&&t!==e?null:t),j(e=>e+1),en(null),eb(null),window.history.replaceState(null,"","/");let n=tr.current.get(o);ti(n?{projectRoot:o,sessionId:n}:null)},[f]);(0,r.useEffect)(()=>{let e=e8?ea(e8)||e8:null;document.title=e?`${e} — Pi Agent Web`:"Pi Agent Web"},[e8]);let td=(0,r.useCallback)((e,t=!1)=>{if(t||ti(null),!t&&f){let t=eF(f.projectRoot??f.cwd,e.projectRoot??e.cwd);if(f.id===e.id&&t){m&&U(!1);return}}let o=e.projectRoot??e.cwd;o&&tr.current.set(o,e.id),v(null),x(e),j(e=>e+1),en(null),to(!0),m&&!t&&U(!1),t&&(tn.current=!0),t||window.history.replaceState(null,"",`?session=${encodeURIComponent(e.id)}`)},[m,f]),tc=(0,r.useRef)(()=>{});(0,r.useEffect)(()=>{tc.current=td},[td]);let tp=(0,r.useCallback)(e=>{fetch("/api/sessions").then(e=>e.ok?e.json():null).then(t=>{let o=t?.sessions.find(t=>t.id===e);o&&x(t=>!t||t.id!==e||t.projectRoot&&t.name?t:o)}).catch(()=>{})},[]);(0,r.useEffect)(()=>{if(!ts)return;let{projectRoot:e,sessionId:t}=ts;tc.current({path:"",id:t,cwd:e,created:"",modified:"",messageCount:0,firstMessage:"",projectRoot:e},!0),tp(t),window.history.replaceState(null,"",`?session=${encodeURIComponent(t)}`),ti(null)},[ts,tp]);let tu=(0,r.useCallback)((e,t)=>{ti(null),x(null),v(t),j(e=>e+1),en(null),eb(null),m&&U(!1),window.history.replaceState(null,"","/")},[d,m]);!function(e){let{onNewSession:t,activeCwd:o}=e;(0,r.useEffect)(()=>{let e=e=>{if("Escape"===e.key){if(!l)return;let t=e.target?.tagName;if("TEXTAREA"===t||"INPUT"===t)return;e.preventDefault(),l();return}if("n"===e.key&&e.ctrlKey&&e.altKey){if(!o||!t)return;e.preventDefault(),t(o)}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[o,t])}({onNewSession:e=>tu(`kb-${Date.now()}`,e),activeCwd:e8});let th=(0,r.useCallback)(e=>{v(null),ti(null);let t=e.projectRoot??e.cwd;t&&tr.current.set(t,e.id),x(e),e.cwd&&e5(e.cwd),b(e=>e+1),tp(e.id),window.history.replaceState(null,"",`?session=${encodeURIComponent(e.id)}`),window.setTimeout(()=>b(e=>e+1),1200),window.setTimeout(()=>b(e=>e+1),4e3)},[d,tp]),tg=(0,r.useCallback)(()=>{b(e=>e+1),C(e=>e+1)},[]),tm=(0,r.useCallback)(e=>{b(e=>e+1),j(e=>e+1),v(null),ti(null),x(t=>{let o={...t??{path:"",cwd:"",created:"",modified:"",messageCount:0,firstMessage:""},id:e},n=o.projectRoot??o.cwd;return n&&tr.current.set(n,e),o}),tp(e),window.history.replaceState(null,"",`?session=${encodeURIComponent(e)}`)},[d,tp]),tf=(0,r.useCallback)(()=>{to(!0)},[]),tx=(0,r.useCallback)(e=>{if(b(e=>e+1),f?.id===e){let e=f.cwd;x(null),v(e??null),j(e=>e+1),en(null),eb(null),window.history.replaceState(null,"","/")}},[d,f]),tk=(0,r.useCallback)((e,t,o,n)=>{let r="string"==typeof o||null===o?o:void 0,s="object"==typeof o&&null!==o?o:n,i=`file:${e}`;eR(o=>{let n=o.find(e=>e.id===i);return n?r&&n.sourceSessionId!==r||s?.initialDisplayMode&&n.initialDisplayMode!==s.initialDisplayMode?o.map(e=>e.id===i?{...e,sourceSessionId:r??e.sourceSessionId,initialDisplayMode:s?.initialDisplayMode??e.initialDisplayMode}:e):o:[...o,{id:i,label:t,filePath:e,sourceSessionId:r,initialDisplayMode:s?.initialDisplayMode}]}),eI(i),eP(!0),m&&U(!1)},[m]),tv=(0,r.useCallback)(e=>{tk(e,ea(e),f?.id??null)},[tk,f?.id]),ty=(0,r.useCallback)(e=>{eR(t=>{let o=t.filter(t=>t.id!==e);return 0===o.length&&eP(!1),o}),eI(t=>{if(t!==e)return t;let o=eT.filter(t=>t.id!==e);return o.length>0?o[o.length-1].id:null})},[eT]),tb=(0,r.useCallback)(e=>{C(e=>e+1),tk(e,ea(e))},[tk]),tw=(0,r.useCallback)((e,t)=>{C(e=>e+1);let o=e.endsWith("/")?e:e+"/",n=n=>n===e||t&&n.startsWith(o);eR(e=>{let t=e.filter(e=>!n(e.filePath));return 0===t.length&&eP(!1),t}),eI(e=>{if(!e)return e;let t=eT.find(t=>t.id===e);if(!t||!n(t.filePath))return e;let o=eT.filter(e=>!n(e.filePath));return o.length>0?o[o.length-1].id:null})},[eT]),tj=f?eq(f.name||es?.sessionName)||f.firstMessage.slice(0,50)||f.id.slice(0,12):(e=e8??k)?e.replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean).pop()||e:null,tS=(0,r.useCallback)(()=>{f&&window.open(`/api/sessions/${encodeURIComponent(f.id)}/export?inline=1`,"_blank","noopener,noreferrer")},[f]),tC=k??(null===f&&e8?e8:null),tT="validating"!==e3&&"error"!==e3&&(null!==f||null!==tC),tR=f?.id;(0,r.useEffect)(()=>{eL&&eO(null)},[tR,tT]);let tz=f?.cwd??tC,[tI,tM]=(0,r.useState)(!1),tP=(0,r.useCallback)(()=>{m||tM(e=>!e)},[m]),[tE,tF]=(0,r.useState)(!0);(0,r.useEffect)(()=>{let e=!1,t=()=>fetch("/api/features").then(e=>e.ok?e.json():null).then(t=>{!e&&t&&"boolean"==typeof t.tasksBoard&&(tF(t.tasksBoard),t.tasksBoard||tM(!1))}).catch(()=>{});t();let o=()=>t();return window.addEventListener("pi:features-changed",o),()=>{e=!0,window.removeEventListener("pi:features-changed",o)}},[]);let tD=tt&&!tT;(0,r.useEffect)(()=>{let e=()=>{m||tM(!0)};return window.addEventListener(iU,e),()=>window.removeEventListener(iU,e)},[m]),(0,r.useEffect)(()=>{if(D(null),A(!1),H(null),!tz)return;let e=new AbortController;return fetch(`/api/project-trust?cwd=${encodeURIComponent(tz)}`,{signal:e.signal}).then(async e=>{let t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);D(t)}).catch(e=>{e instanceof DOMException&&"AbortError"===e.name||console.error("Failed to load project trust:",e)}),()=>e.abort()},[tz]);let tW=(0,r.useCallback)(async()=>{if(tz&&!N){L(!0),H(null);try{let e=await fetch("/api/project-trust",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:tz})}),t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);D(t),A(!1),P(e=>e+1),j(e=>e+1)}catch(e){H(e instanceof Error?e.message:String(e))}finally{L(!1)}}},[N,tz]),tA=eT.find(e=>e.id===ez)??null,tN=e8??f?.cwd??k,t$=(0,r.useCallback)(e=>{I(e),R(!0)},[]),tL=(0,n.jsx)(n.Fragment,{children:(0,n.jsx)(e4,{selectedSessionId:f?.id??null,onSelectSession:td,onNewSession:tu,initialSessionId:e2,onInitialRestoreDone:tf,refreshKey:y,onSessionDeleted:tx,selectedCwd:f?.cwd??k??null,onCwdChange:tl,onOpenFile:tk,selectedSessionStats:es,onOpenSettings:e=>{t$(["models","skills","plugins","chat","features","logs"].includes(e)?e:"models")},explorerRefreshKey:S,onAtMention:eQ,onAtMentions:e0,onFileCreated:tb,onFileDeleted:tw,workspaceControlsHosts:{title:G,welcome:Z,titleRight:Y},showWorkspaceControls:!0})});return(0,n.jsxs)(dw,{children:[(0,n.jsx)("style",{children:`
36
+ ${o}`):s=o;let m=s,f=r?.map(e=>({type:"image",source:{type:"base64",media_type:e.mimeType,data:e.data}})),x={role:"user",content:f?.length?[...o.trim()?[{type:"text",text:o}]:[],...f]:o,timestamp:Date.now()};S(e=>[...e,x]),ol.current=iO(x),oa.current=l,"goal"!==ew.current||a||(eT.current=i,eF(e=>({...e,status:"running",goalText:i,turnsUsed:0,noProgressTurns:0,tokensUsed:0})),eK.current=!0),tX.current=!0,O(!0),ts(a?{kind:"running_command"}:{kind:"waiting_model"}),E({type:"start"}),t7.current=!0,ta(!0),t9.current=!0;let k=r?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType})),v=null,y=!1;try{if(h&&n){let e=tY.current??await os.current,t=e??await oz();if(t){v=t,oR(1,o),en&&(e3(en),e&&await iS(t,{type:"set_model",provider:en.provider,modelId:en.modelId}));let n=await Promise.race([oF(t).then(()=>!0).catch(()=>!1),iA(4e3).then(()=>!1)]);y=!0,await iS(t,{type:"prompt",message:m,...k?.length?{images:k}:{}}),n||o_(t,l),"goal"!==ew.current||a||iS(t,{type:"goal_start",goalText:i}).catch(()=>{})}else throw Error("Unable to create a session for this message")}else if(t){v=t.id;let e=await Promise.race([oF(t.id).then(()=>!0).catch(()=>!1),iA(4e3).then(()=>!1)]);y=!0,await iS(t.id,{type:"prompt",message:m,...k?.length?{images:k}:{}}),e||o_(t.id,l),"goal"!==ew.current||a||iS(t.id,{type:"goal_start",goalText:i}).catch(()=>{})}a&&v&&o_(v,l)}catch(t){if(console.error("Failed to send message:",t),y&&v)return void o_(v,l);if(tQ.current=!1,oP(),t instanceof iW){let e=ol.current;e&&S(t=>{let o=t[t.length-1];return o?.role==="user"&&iO(o)===e?t.slice(0,-1):t}),oA({type:"error",message:t.message})}else{let o=ol.current;o&&S(e=>{let t=e[e.length-1];return t?.role==="user"&&iO(t)===o?e.slice(0,-1):e}),e.chatInputRef?.current?.replaceMessage?.(x),oA({type:"error",message:`Failed to send message: ${t instanceof Error?t.message:String(t)}`})}ol.current=null,tX.current=!1,O(!1),ts(null),E({type:"end"})}},[h,n,en,t,oz,oF,oR,o_,oA,oM,oP,of]),oJ=(0,r.useCallback)(async(o,n)=>{if(tX.current||t4.current)return;let r=`${n?"!!":"!"}${o}`;t4.current=!0,_({command:o,excludeFromContext:n}),B(!0);try{let e=tY.current??t?.id??await oz();if(!e)throw Error("Unable to create a session for the shell command");oR(1,r),await iS(e,{type:"bash",command:o,excludeFromContext:n}),await oS(e)}catch(t){console.error("Failed to execute shell command:",t),oA({type:"error",message:t instanceof Error?t.message:String(t)}),e.chatInputRef?.current?.insertIfEmpty(r)}finally{t4.current=!1,_(null),B(!1)}},[oA,oz,oS,e.chatInputRef,oR,t]),oY=(0,r.useCallback)(async()=>{let e=tY.current;if(e)try{await iS(e,{type:t4.current?"abort_bash":"abort"})}catch(e){console.error("Failed to abort:",e)}},[]),oX=(0,r.useCallback)(async e=>{let t=tY.current;if(t){e4(e);try{let{cancelled:o,newSessionId:n}=await iS(t,{type:"fork",entryId:e})??{};!o&&n&&a?.(n)}catch(e){console.error("Fork failed:",e)}finally{e4(null)}}},[a]),oZ=(0,r.useCallback)(async e=>{let t=tY.current;t&&(iS(t,{type:"navigate_tree",targetId:e}).catch(()=>{}),w(e),await oC(t,e))},[oC]),oQ=(0,r.useCallback)(async e=>{w(e);let t=tY.current;t&&(await oC(t,e),e&&iS(t,{type:"navigate_tree",targetId:e}).catch(()=>{}))},[oC]),o0=(0,r.useCallback)(async(e,t)=>{if(h){let o={provider:e,modelId:t};oh.current=o,er(o),e3(o);let n=tY.current??await os.current;if(!n)return;try{await iS(n,{type:"set_model",provider:e,modelId:t})}catch(e){console.error("Failed to set model:",e)}return}let o=tY.current;if(!o)return;let n=++od.current,r=e6??m?.context.model??null;e8({provider:e,modelId:t});try{await iS(o,{type:"set_model",provider:e,modelId:t})}catch(o){console.error("Failed to set model:",o),od.current===n&&(e8(r&&(r.provider!==e||r.modelId!==t)?r:null),oA({type:"error",message:o instanceof Error?o.message:String(o)}))}},[oA,e6,m?.context.model,h,er]),o1=(0,r.useCallback)(async()=>{let e=tY.current;if(e&&!e7){e9(!0),tt(null),tn(null);try{let t=await iS(e,{type:"compact"});tn(iH(t,"manual")),await oS(e,!0)}catch(e){tt(e instanceof Error?e.message:String(e)),tn(null)}finally{e9(!1)}}},[e7,oS]),o2=(0,r.useCallback)(async e=>{let o=++oc.current,r=n??t?.cwd??"",s=r?`/api/models?cwd=${encodeURIComponent(r)}`:"/api/models",i=op.current;i?.abort();let a=new AbortController;op.current=a;let l=()=>a.abort();e?.aborted?a.abort():e?.addEventListener("abort",l,{once:!0});try{let e=await fetch(s,{signal:a.signal});if(!e.ok){let t=`HTTP ${e.status}`;try{let o=await e.json();o?.error&&(t=o.error)}catch{}throw Error(t)}let t=await e.json();if(o!==oc.current||g!==ou.current)return;eo(null),V(t.models),Y(t.thinkingLevels??{}),Z(t.thinkingLevelMaps??{}),ee(t.modelScopeWarnings??[]);let n=t.modelList??[];if(G(n),h&&!tY.current){let e=(t.defaultModel?n.find(e=>e.id===t.defaultModel?.modelId&&e.provider===t.defaultModel?.provider):void 0)??n[0];ei(e?{provider:e.provider,modelId:e.id}:null);let o=e?t.thinkingLevelPins?.[`${e.provider}/${e.id}`]:void 0;null===og.current&&eJ(o??"auto")}}catch(e){if(a.signal.aborted||o!==oc.current||g!==ou.current)return;eo(e instanceof Error?e.message:String(e))}finally{e?.removeEventListener("abort",l),op.current===a&&(op.current=null)}},[h,g,n,t?.cwd]),o4=(0,r.useCallback)(async e=>{if(!e.startsWith("/"))return{handled:!1};let t=e.match(/^\/([^\s]+)(?:\s+([\s\S]*))?$/);if(!t)return{handled:!1};let[,o,n=""]=t,r=n.trim(),s=tY.current??await oz(),i=e=>(e.handled&&(e.error?oA({type:"error",message:e.error}):"openSessionStats"!==e.action&&oA({type:"success",message:e.message??"Command completed"})),e);try{switch(o){case"compact":{if(!s||e7)return i({handled:!0,error:"No active session to compact"});e9(!0),tt(null),tn(null);let e=await iS(s,{type:"compact",...r?{customInstructions:r}:{}});return tn(iH(e,"manual")),await oS(s,!0)&&oR(),i({handled:!0,message:"Compacted context"})}case"reload":if(!s)return i({handled:!0,error:"No active session to reload"});return await iS(s,{type:"reload"}),await Promise.all([oS(s,!1,!0),oT(s),oI(),o2()]),i({handled:!0,message:"Reloaded session resources"});case"name":if(!s)return i({handled:!0,error:"No active session to name"});if(!r)return i({handled:!0,error:"Usage: /name <name>"});return await iS(s,{type:"set_session_name",name:eq(r)}),await oS(s)&&oR(),i({handled:!0,message:`Session renamed to ${r}`});case"session":{if(!s)return i({handled:!0,error:"No active session"});let e=await iS(s,{type:"get_session_stats"});return e&&tm(e),p?.(),i({handled:!0,action:"openSessionStats"})}case"copy":{if(!s)return i({handled:!0,error:"No active session"});let e=await iS(s,{type:"get_last_assistant_text"}),t=e?.text??"";if(!t)return i({handled:!0,error:"No assistant message to copy"});return await navigator.clipboard.writeText(t),i({handled:!0,message:"Copied last assistant message"})}default:return{handled:!1}}}catch(e){return i({handled:!0,error:e instanceof Error?e.message:String(e)})}finally{"compact"===o&&e9(!1)}},[oA,oz,e7,o2,oS,oI,oT,oR,p]),o6=(0,r.useCallback)(async e=>{let t=!1;try{let o=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(o.ok){let e=await o.json(),n=e.state;if(e.running&&n&&(n.isStreaming||n.isPromptRunning||n.isBashRunning||n.isCompacting))return;t=!0}}catch{}if(t){tX.current=!1,O(!1),ts(null);return}o_(e)},[o_]),o8=(0,r.useCallback)(async(e,t)=>{let o=tY.current;if(!o)return;let n=t?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}));tX.current=!0,O(!0),ts(e=>e??{kind:"waiting_model"});try{await iS(o,{type:"steer",message:e,...n?.length?{images:n}:{}})}catch(e){console.error("Failed to steer:",e),o6(o)}},[o6]),o5=(0,r.useCallback)(async(e,t,o)=>{let n=tY.current;if(!n)return;let r=o?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}));tX.current=!0,O(!0),ts(e=>e??{kind:"waiting_model"});try{await iS(n,{type:"prompt",message:e,streamingBehavior:t,...r?.length?{images:r}:{}})}catch(e){console.error("Failed to queue prompt:",e),o6(n)}},[o6]),o3=(0,r.useCallback)(async(e,t)=>{let o=tY.current;if(!o)return;let n=t?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}));tX.current=!0,O(!0),ts(e=>e??{kind:"waiting_model"});try{await iS(o,{type:"follow_up",message:e,...n?.length?{images:n}:{}})}catch(e){console.error("Failed to follow up:",e),o6(o)}},[o6]),o7=(0,r.useCallback)(async()=>{let e=tY.current;if(e)try{await iS(e,{type:"abort_compaction"})}catch(e){console.error("Failed to abort compaction:",e)}},[]),o9=(0,r.useCallback)(async()=>{let t=tY.current;if(t)try{let o=await iS(t,{type:"clear_queue"});tT({steering:[],followUp:[]});let n=[...o?.steering??[],...o?.followUp??[]];n.length>0&&e.chatInputRef?.current?.prependText(n.join("\n\n"))}catch(e){console.error("Failed to recall queued messages:",e),oA({type:"error",message:"Failed to recall queued messages"})}},[e.chatInputRef,oA,tT]);(0,r.useEffect)(()=>{0===tR.length&&tP(!1)},[tR.length]);let ne=(0,r.useCallback)(async(e,t,o=!1)=>{let n=tY.current;if(!n)return tR;try{let r=await iS(n,{type:"resolve_recovery",keep:e,discard:t,continueRun:o}),s=r?.remaining??[];return tI(s),o&&e.length>0&&(async()=>{try{let e=await fetch(`/api/agent/${encodeURIComponent(n)}`);if(!e.ok)return;let t=await e.json(),o=t.state;if(!t.running||!o||!o.isStreaming&&!o.isPromptRunning)return;tZ.current=!!o.isStreaming,tQ.current=!!o.isPromptRunning,tX.current=!0,O(!0),ts(iI(o)),E({type:"start"}),oE(n),!o.isStreaming&&o.isPromptRunning&&o_(n)}catch{}})(),s}catch(e){return console.error("Failed to resolve queued message recovery:",e),oA({type:"error",message:"Failed to resolve queued message recovery"}),tR}},[tR,oA,oE,o_,tI]),nt=(0,r.useCallback)(async()=>{let e=tY.current;if(!e)return null;try{return await iS(e,{type:"export_queue"})}catch(e){return console.error("Failed to export queue:",e),oA({type:"error",message:"Failed to export queue"}),null}},[oA]),no=(0,r.useCallback)(async e=>{let t=tY.current;if(!t)return null;try{let o=await iS(t,{type:"import_queue",entries:e});return o&&tT(iP(o)),o?.imported??0}catch(e){return console.error("Failed to import queue:",e),oA({type:"error",message:"Failed to import queue"}),null}},[oA,tT]),nn=(0,r.useCallback)(async e=>{let t=tY.current;if(!t)return null;try{let o=await iS(t,{type:"stage_recovery",entries:e});return o?.pendingRecovery&&tI(o.pendingRecovery),(o?.staged??0)>0&&tP(!0),o?.staged??0}catch(e){return console.error("Failed to stage imported queue:",e),oA({type:"error",message:"Failed to stage imported queue"}),null}},[oA,tI]),nr=(0,r.useCallback)(async(e,t,o)=>{let n=tY.current;if(!n)return!1;try{let r=await iS(n,{type:"move_queue",kind:e,fromIndex:t,toIndex:o});return r&&tT(iP(r)),!0}catch(e){return console.error("Failed to move queued message:",e),oA({type:"error",message:e instanceof Error?e.message:"Failed to move queued message"}),!1}},[oA,tT]),ns=(0,r.useCallback)(async(e,t)=>{let o=tY.current;if(!o)return null;try{let n=await iS(o,{type:"recall_queue_item",kind:e,index:t});return n&&(void 0!==n.steering||void 0!==n.followUp)&&tT(iP(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),oA({type:"error",message:e instanceof Error?e.message:"Failed to recall queued message"}),null}},[oA,tT]),ni=(0,r.useCallback)(async(e,t,o,n)=>{let r=tY.current;if(!r)return!1;try{let s=await iS(r,{type:"requeue_at",kind:e,index:t,text:o,images:n?.map(({data:e,mimeType:t})=>({type:"image",data:e,mimeType:t}))});return s&&tT(iP(s)),!0}catch(e){return console.error("Failed to requeue message:",e),oA({type:"error",message:e instanceof Error?e.message:"Failed to requeue message"}),!1}},[oA,tT]),na=(0,r.useCallback)(async(e,t)=>{let o=tY.current;if(!o)return!1;try{let n=await iS(o,{type:"remove_queue_item",kind:e,index:t});return n&&tT(iP(n)),!0}catch(e){return console.error("Failed to remove queued message:",e),oA({type:"error",message:e instanceof Error?e.message:"Failed to remove queued message"}),!1}},[oA,tT]),nl=(0,r.useCallback)(async e=>{if(og.current="auto"===e?null:e,eJ(e),"auto"===e)return;let t=tY.current??await os.current;if(t)try{await iS(t,{type:"set_thinking_level",level:e})}catch(e){console.error("Failed to set thinking level:",e)}},[]),nd=(0,r.useCallback)(async e=>{let t=(0,iC.xG)(e);ok(e);let o=tY.current??await os.current;if(o)try{await iS(o,{type:"set_tools",toolNames:t})}catch(e){console.error("Failed to set tools:",e)}},[ok]),nc=(0,r.useRef)(0),np=(0,r.useCallback)(async e=>{let t=tY.current??await os.current,o=++nc.current;if(e){if(ep.current="plan"===ea?"default":ea,ec(!0),eu.current=!0,eR.current={sessionKey:"",signature:""},t)try{if(await iS(t,{type:"prompt",message:"/plan"}),nc.current!==o)return}catch(e){if(nc.current!==o)return;console.error("Failed to enter plan mode:",e)}}else if(ec(!1),eu.current=!1,eR.current={sessionKey:"",signature:""},t){try{if(await iS(t,{type:"prompt",message:"/plan exit"}),nc.current!==o)return}catch(e){if(nc.current!==o)return;console.error("Failed to exit plan mode:",e)}if(nc.current!==o)return;try{let e=ep.current;await iS(t,{type:"set_tools",toolNames:(0,iC.xG)(e)})}catch(e){console.error("Failed to restore tools after plan exit:",e)}}},[ea]),nu=(0,r.useCallback)(e=>{eg(e);let t=tY.current;if(!t){em.current=e;return}em.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)})},[]),nm=(0,r.useCallback)(e=>{if(nu({...ez.current,collaborationMode:eN(e)}),ew.current=eN(e),eR.current={sessionKey:"",signature:""},"goal"!==e){eT.current=null,eK.current=!1,eF(e=>"idle"===e.status?e:{...e,status:"idle",goalText:null});let e=tY.current;e&&iS(e,{type:"goal_stop"}).catch(()=>{})}},[nu]),nf=(0,r.useCallback)(async e=>{nu({...ez.current,tokenMode:e$(e)});let t=tY.current??await os.current;if(t)try{if("economy"!==e||eu.current){if("economy"!==e){let e=eu.current?iC.SC:(0,iC.xG)("plan"===ea?"default":ea);await iS(t,{type:"set_tools",toolNames:e})}}else await iS(t,{type:"set_tools",toolNames:[...eO]})}catch(e){console.error("Failed to apply token mode tools:",e)}},[nu,ea]),nx=(0,r.useCallback)(async e=>{nu({...ez.current,toolApprovalMode:eL(e)});let t=tY.current??await os.current;if(t)try{await iS(t,{type:"set_approval_mode",mode:eL(e)})}catch(e){console.error("Failed to apply approval mode:",e)}},[nu]),nk=(0,r.useCallback)(async e=>{nu({...ez.current,permissionRules:e});let t=tY.current??await os.current;if(t)try{await iS(t,{type:"set_approval_policy",policy:e})}catch(e){console.error("Failed to apply permission rules:",e)}},[nu]),nv=(0,r.useCallback)(async(e,t,o)=>{let n=tY.current;if(n)try{await iS(n,{type:"resolve_approval",id:e,approve:t,reason:o})}catch(e){console.error("Failed to resolve approval:",e)}finally{eM(t=>t.filter(t=>t.id!==e))}},[]),ny=(0,r.useCallback)(e=>{eT.current=e},[]),nb=(0,r.useCallback)(e=>{let t=e.trim();if(!t)return;eT.current=t,eF(e=>({...e,status:"running",goalText:t,turnsUsed:0,noProgressTurns:0,tokensUsed:0,startedAt:Date.now()}));let o=tY.current;o&&iS(o,{type:"goal_start",goalText:t}).catch(()=>{})},[]),nw=(0,r.useCallback)(()=>{if("running"!==eV.current.status)return;eF(e=>({...e,status:"paused"}));let e=tY.current;e&&iS(e,{type:"goal_pause"}).catch(()=>{})},[]),nj=(0,r.useCallback)(()=>{let e=eV.current;if("paused"!==e.status&&"blocked"!==e.status)return;eF(e=>({...e,status:"running"}));let t=tY.current;t&&iS(t,{type:"goal_resume"}).catch(()=>{})},[]),nS=(0,r.useCallback)(()=>{eK.current=!1,eT.current=null,eF(e=>({...e,status:"idle",goalText:null,turnsUsed:0,noProgressTurns:0}));let e=tY.current;e&&iS(e,{type:"goal_stop"}).catch(()=>{})},[]),nC=(0,r.useCallback)(e=>{let t=e.trim();if(!t)return;eF(e=>({...e,goalText:t}));let o=tY.current;o&&iS(o,{type:"goal_edit",goalText:t}).catch(()=>{})},[]),nT=tE.map(e=>`${e.id}:${e.status}:${e.completedAt??""}`).join("|"),nR=(0,r.useRef)(tE);nR.current=tE,(0,r.useEffect)(()=>{u?.(nR.current)},[nT,u]),(0,r.useEffect)(()=>()=>{u?.([])},[u]),(0,r.useEffect)(()=>{tA(()=>[])},[t?.id,n??t?.cwd]);let nz=(0,r.useCallback)(()=>{let e=or.current,t=t3.current;if(!e||!t)return;let o=t.getBoundingClientRect().top-e.getBoundingClientRect().top+e.scrollTop,n=Math.max(0,e.scrollHeight-e.clientHeight),r=Math.min(Math.max(0,o-16),n);oe.current=r>=n-150,oo.current=Date.now()+700,e.scrollTo({top:r,behavior:"smooth"})},[]),nI=(0,r.useCallback)(e=>{if(e instanceof KeyboardEvent){if(!iD.has(e.key)||e.target instanceof Element&&e.target.closest("input, textarea, [contenteditable='true']"))return}else if(e instanceof PointerEvent){let t=or.current;if(t&&e.target instanceof Element&&!t.contains(e.target))return}ot.current=Date.now()+1200},[]),nM=(0,r.useCallback)(()=>{let e=or.current;if(e){let{scrollTop:t,clientHeight:o,scrollHeight:n}=e;oe.current=t+o>=n-150}if(Date.now()<ot.current){t9.current=!1;return}Date.now()<oo.current||(t9.current=!1)},[]);(0,r.useEffect)(()=>{if(t1.current=!0,t){tY.current=t.id;let e=eS.current,o=eC.current;("auto"!==e||o.allow.length||o.ask.length||o.deny.length)&&(iS(t.id,{type:"set_approval_mode",mode:e}).catch(()=>{}),iS(t.id,{type:"set_approval_policy",policy:o}).catch(()=>{}));let n=e=>{!t6.current&&(t6.current=!0,e.isBashRunning&&(t4.current=!0,B(!0)),oT(t.id),(e.isStreaming||e.isPromptRunning)&&(tZ.current=!!e.isStreaming,tQ.current=!!e.isPromptRunning,tX.current=!0,O(!0),ts(iI(e)),E({type:"start"}),oE(t.id),!e.isStreaming&&e.isPromptRunning&&o_(t.id)))};(async()=>{try{let e,o=new AbortController,r=setTimeout(()=>o.abort(),2e4);try{e=await fetch(`/api/sessions/${encodeURIComponent(t.id)}/state`,{signal:o.signal})}finally{clearTimeout(r)}if(!e.ok)throw Error(`HTTP ${e.status}`);let s=await e.json();if(!t1.current||tY.current!==t.id)return;s.running&&s.state&&n(s.state)}catch{}})(),oS(t.id,!0,!0).then(e=>{e?.running&&e.state&&n(e.state),e?.state&&(void 0!==e.state.isCompacting&&e9(e.state.isCompacting),void 0!==e.state.contextUsage&&eQ(e.state.contextUsage??null),void 0!==e.state.systemPrompt&&e1(e.state.systemPrompt??null),void 0!==e.state.thinkingLevel&&eJ(e.state.thinkingLevel??"auto"),void 0!==e.state.extensionStatuses&&tb(e.state.extensionStatuses??[]),void 0!==e.state.extensionWidgets&&tj(e.state.extensionWidgets??[]),void 0!==e.state.queuedMessages&&tT(iP(e.state.queuedMessages)),void 0!==e.state.pendingRecovery&&tI(e.state.pendingRecovery??[])),e?.running||(async()=>{for(let e=0;e<5;e++){if(e>0&&await new Promise(e=>setTimeout(e,2e3)),!t1.current||tY.current!==t.id||tX.current)return;try{let e=await fetch(`/api/agent/${encodeURIComponent(t.id)}`);if(!e.ok)continue;let o=await e.json();if(!t1.current||tY.current!==t.id)return;if(o?.running&&o.state)return void n(o.state)}catch{}}})()})}return()=>{t1.current=!1,of(),tU(),oM(),oP()}},[of]),(0,r.useEffect)(()=>{c?.(e0)},[e0,c]),(0,r.useEffect)(()=>{d&&d(m?.tree??[],b,oQ)},[m?.tree,b,oQ,d]),(0,r.useEffect)(()=>(window.addEventListener("keydown",nI),window.addEventListener("pointerdown",nI,{passive:!0}),()=>{window.removeEventListener("keydown",nI),window.removeEventListener("pointerdown",nI)}),[nI]),(0,r.useEffect)(()=>{let e=or.current;if(e)return e.addEventListener("wheel",nI,{passive:!0}),e.addEventListener("touchstart",nI,{passive:!0}),e.addEventListener("scroll",nM,{passive:!0}),()=>{e.removeEventListener("wheel",nI),e.removeEventListener("touchstart",nI),e.removeEventListener("scroll",nM)}},[j.length,x,nM,nI]),(0,r.useEffect)(()=>{j.length>0&&(t7.current?(t5.current=!0,t3.current&&(t7.current=!1,nz())):x||!t5.current?(x||(t5.current=!0),oV("instant")):!tX.current&&(t9.current||oe.current)&&oV("smooth"))},[j.length,x,L,oV,nz]);let nP=(0,r.useRef)(null),nE=t?.id??null;(0,r.useEffect)(()=>{let e;if(x){nP.current=null;return}if(0===j.length||nP.current===nE)return;nP.current=nE;let t=!1,o=!1,n=-1,r=0,s=Date.now(),i=()=>{if(t||o)return;let a=or.current;if(a){if(Date.now()<ot.current){let{scrollTop:e,clientHeight:t,scrollHeight:n}=a;if(e+t<n-150){o=!0;return}}if(oV("instant"),a.scrollHeight===n){if((r+=1)>=4||Date.now()-s>=3e4)return}else if(n=a.scrollHeight,r=0,Date.now()-s>=3e4)return;e=window.setTimeout(i,r>0?500:250)}};return e=window.setTimeout(i,250),()=>{t=!0,void 0!==e&&window.clearTimeout(e)}},[x,oV,nE]),(0,r.useEffect)(()=>{let e=new AbortController;return o2(e.signal).catch(e=>{if(e instanceof DOMException&&"AbortError"===e.name)return}),()=>e.abort()},[o2,l]),(0,r.useEffect)(()=>{if(!et)return;let e=()=>{"visible"===document.visibilityState&&o2()};return document.addEventListener("visibilitychange",e),window.addEventListener("online",e),()=>{document.removeEventListener("visibilitychange",e),window.removeEventListener("online",e)}},[et,o2]),(0,r.useEffect)(()=>{if(!te)return;let e=setTimeout(()=>tt(null),3e3);return()=>clearTimeout(e)},[te]),(0,r.useEffect)(()=>{if(!to)return;let e=setTimeout(()=>tn(null),6e3);return()=>clearTimeout(e)},[to]),(0,r.useEffect)(()=>{if(0===tu.visible.length)return;let e=tu.visible.find(e=>e.exiting);if(e){let t=setTimeout(()=>{th({type:"remove",id:e.id})},180);return()=>clearTimeout(t)}if(!tu.visible[0])return;let t=setTimeout(()=>{th({type:"mark_oldest_exiting"})},5e3);return()=>clearTimeout(t)},[tu.visible]),(0,r.useEffect)(()=>{tm(null)},[j.length,eZ?.tokens,eZ?.percent,eZ?.contextWindow]);let nF=m?.tree??[];return{data:m,loading:x,error:v,activeLeafId:b,messages:j,entryIds:C,historyCursor:R,hasEarlierMessages:I,streamState:P,agentRunning:L,bashRunning:H,pendingBash:U,modelNames:q,modelList:K,modelThinkingLevels:J,modelThinkingLevelMaps:X,modelScopeWarnings:Q,modelsError:et,newSessionModel:en,toolPreset:ea,thinkingLevel:eG,retryInfo:eY,contextUsage:eZ,systemPrompt:e0,forkingEntryId:e2,isCompacting:e7,compactError:te,compactResult:to,currentModel:ob,displayModel:ow,sessionStats:oj,tokenRate:F,planMode:ed,subagents:tE,collaborationMode:ek,tokenMode:ev,toolApprovalMode:ey,permissionRules:eb,modeSettings:eh,approvalRequests:eI,handleCollaborationModeChange:nm,handleTokenModeChange:nf,handleToolApprovalModeChange:nx,handlePermissionRulesChange:nk,resolveApproval:nv,setActiveGoalText:ny,goalState:eE,handleGoalStart:nb,handleGoalPause:nw,handleGoalResume:nj,handleGoalStop:nS,handleGoalEdit:nC,slashCommands:tl,slashCommandsLoading:tc,queuedMessages:tS,pendingRecovery:tR,recoveryIsImport:tM,notices:tu.visible,extensionDialog:tf,extensionCustomUi:tk,extensionStatuses:ty,extensionWidgets:tw,respondToExtensionUi:oD,sendExtensionCustomInput:oW,agentPhase:tr,isNew:h,promptAnchorActive:ti,branchTree:nF,sessionIdRef:tY,eventSourceRef:t_,messagesEndRef:on,scrollContainerRef:or,lastUserMsgRef:t3,pendingScrollToUserRef:t7,initialScrollDoneRef:t5,scrollUserMsgToTop:nz,handleSend:oG,executeBash:oJ,handleAbort:oY,handleFork:oX,handleNavigate:oZ,handleModelChange:o0,handleCompact:o1,handleSteer:o8,handleFollowUp:o3,handlePromptWithStreamingBehavior:o5,handleAbortCompaction:o7,handleRecallQueue:o9,resolveRecovery:ne,exportQueueData:nt,importQueueData:no,stageQueueImport:nn,moveQueuedMessage:nr,recallQueuedMessage:ns,requeueAt:ni,removeQueuedMessage:na,handleBuiltinSlashCommand:o4,handleToolPresetChange:nd,handleThinkingLevelChange:nl,handlePlanModeChange:np,loadTools:oT,loadSlashCommands:oI,reloadModels:o2,setActiveLeafId:w,setData:f,setMessages:S,loadContext:oC,dispatch:E,setAgentRunning:O,setForkingEntryId:e4,handleLeafChange:oQ,handleAgentEventRef:t8}}({session:e,newSessionCwd:t,onAgentEnd:A,onSessionCreated:i,onSessionForked:a,modelsRefreshKey:d,chatInputRef:c,onBranchDataChange:p,onSystemPromptChange:u,onSessionStatsPanelOpen:m,onSubagentsChange:g}),[tF,tD]=(0,r.useState)(!1);(0,r.useEffect)(()=>{0===ef.length&&tD(!1)},[ef.length]);let{balance:tW,refresh:tA,refreshSoon:tN}=function(){let[e,t]=(0,r.useState)(null),[o,n]=(0,r.useState)(!1),s=(0,r.useRef)(null),i=(0,r.useRef)(null),a=(0,r.useRef)(!0);(0,r.useEffect)(()=>(a.current=!0,()=>{a.current=!1,i.current&&clearTimeout(i.current),s.current?.abort()}),[]);let l=(0,r.useRef)(null),d=(0,r.useCallback)(async()=>{s.current?.abort();let e=new AbortController;s.current=e;try{let o=await fetch("/api/deepseek/balance",{signal:e.signal,cache:"no-store"}),r=await o.json();if(!a.current)return;if(r?.available&&null!=r.totalBalance){let e=l.current;(null===e||e.available!==r.available||e.reason!==r.reason||e.currency!==r.currency||e.totalBalance!==r.totalBalance||e.grantedBalance!==r.grantedBalance||e.toppedUpBalance!==r.toppedUpBalance)&&(l.current=r,t(r)),n(!1)}else null===l.current&&n(!0)}catch{if(!a.current)return;null===l.current&&n(!0)}},[]),c=(0,r.useCallback)(()=>{i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{i.current=null,d()},2e3)},[d]);return{balance:e,failed:o,refresh:d,refreshSoon:c}}(),t$=ec?.provider==="deepseek",tL=(0,r.useRef)(null);(0,r.useEffect)(()=>{t$&&tA()},[t$,tA]),(0,r.useEffect)(()=>{if(t$)for(let e=U.length-1;e>=0;e--){let t=U[e];if("assistant"!==t.role||!t.usage)continue;let o=`${e}:${_[e]??""}`;o!==tL.current&&(tL.current=o,tN());break}},[U,_,t$,tN]);let tO=(0,r.useMemo)(()=>{let e=U.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:nh(e.model)?ng(e.model,t):0,costUSD:nh(e.model)?0:t.cost?.total??0}},[U]),[tH,tB]=(0,r.useState)(!1),[tU,t_]=(0,r.useState)(null),tq=(0,r.useRef)(!1);(0,r.useEffect)(()=>{if(!tl){tq.current=!1;return}if(V){tq.current=!0;return}tq.current&&(tq.current=!1,t_(function(e){for(let t=e.length-1;t>=0;t--){let o=e[t];if("assistant"!==o.role)continue;let n=o.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 o=e[t];if("toolResult"!==o.role)continue;let n=o.content,r="string"==typeof n?n:Array.isArray(n)?n.map(e=>e.text??"").join("\n"):"";if(!r)continue;let s=r.match(/\*\*Proposed Plan\*\*\s*\n+([\s\S]+)/i);if(s?.[1]?.trim())return s[1].trim()}return null}(U)??null),tB(!0))},[V,tl,U]);let tV=(0,r.useCallback)(()=>{tB(!1);let e=tK.current;"plan"===tc&&tg("normal"),td(!1).then(()=>{e&&eJ(P("tasks.planReviewExecutePrompt",{plan:e}))})},[td,eJ,P,tc,tg]),tK=(0,r.useRef)(null);(0,r.useEffect)(()=>{tK.current=tU},[tU]);let tG=(0,r.useCallback)(e=>{tB(!1),e2(e)},[e2]),tJ=(0,r.useCallback)(()=>{tB(!1),"plan"===tc&&tg("normal"),td(!1)},[td,tc,tg]);(0,r.useEffect)(()=>{ev&&W.current!==ev.id&&(W.current=ev.id,D.current&&E.current())},[ev]),(0,r.useEffect)(()=>(l=V||K?eX:null,()=>void(l=null)),[V,K,eX]);let[tY,tX]=(0,r.useState)(!1),[tZ,tQ]=(0,r.useState)(!1),[t0,t1]=(0,r.useState)(!1),t2=(0,r.useCallback)(()=>{let e=eE.current;if(!e)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight;tX(e.scrollTop>1),tQ(t>1),t1(t>240)},[eE]),t4=(0,r.useCallback)(()=>{window.requestAnimationFrame(()=>{let e=eE.current,t=eP.current;if(!e||!t)return;let o=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+o);e.scrollTo({top:n,behavior:"auto"})};n(),t2(),window.setTimeout(n,200)})},[eP,eE,t2,c]);(0,r.useEffect)(()=>{let e=eE.current;if(!e)return;let t=new ResizeObserver(t2);return t.observe(e),e.firstElementChild&&t.observe(e.firstElementChild),e.addEventListener("scroll",t2,{passive:!0}),t2(),()=>{e.removeEventListener("scroll",t2),t.disconnect()}},[U.length,eE,t2]);let t6=(0,r.useRef)(!1);(0,r.useEffect)(()=>{let t=eE.current;if(!t)return;let o=()=>{if(t6.current||!tP||!tM||t.scrollTop>8)return;let o=e?.id;if(!o)return;t6.current=!0;let n=t.scrollHeight-t.scrollTop;tE(o,ez,tM).finally(()=>{t6.current=!1,requestAnimationFrame(()=>{let e=t.scrollHeight-n;Math.abs(t.scrollTop-e)>1&&t.scrollTo({top:e,behavior:"auto"})})})};return t.addEventListener("scroll",o,{passive:!0}),()=>t.removeEventListener("scroll",o)},[eE,tM,tP,tE,e?.id,ez]);let t8=(0,r.useRef)(null),t5=(0,r.useRef)([]),t3=(0,r.useMemo)(()=>({getOffsetForIndex:e=>t8.current?.getOffsetForIndex(e)?.[0]??0,sizeFor:e=>{let t=t8.current;if(!t)return 0;let o=t.measurementsCache[e];return o?.size??t.options.estimateSize?.(e)??0},totalHeight:()=>t8.current?.getTotalSize()??0,refToItemIndex:e=>t5.current[e],itemCount:t5.current.length}),[]),t7=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,t9=(0,r.useRef)(ep);t9.current=ep,(0,r.useEffect)(()=>{h?.(t9.current)},[t7,h]),(0,r.useEffect)(()=>()=>{h?.(null)},[h]);let oe=es?`${es.percent??"null"}|${es.contextWindow}|${es.tokens??"null"}`:null,ot=(0,r.useRef)(es);ot.current=es,(0,r.useEffect)(()=>{f?.(ot.current)},[oe,f]),(0,r.useEffect)(()=>()=>{f?.(null)},[f]);let{isDragOver:oo,handleDragEnter:on,handleDragOver:or,handleDragLeave:os,handleDrop:oi}=function(e){let[t,o]=(0,r.useState)(!1),n=(0,r.useRef)(0),s=(0,r.useCallback)(e=>{e.dataTransfer.files.length&&(e.preventDefault(),n.current+=1,o(!0))},[]),i=(0,r.useCallback)(e=>{e.dataTransfer.files.length&&e.preventDefault()},[]);return{isDragOver:t,handleDragEnter:s,handleDragOver:i,handleDragLeave:(0,r.useCallback)(()=>{n.current-=1,n.current<=0&&(n.current=0,o(!1))},[]),handleDrop:(0,r.useCallback)(t=>{t.preventDefault(),n.current=0,o(!1),e(Array.from(t.dataTransfer.files),t.dataTransfer)},[e])}}((0,r.useCallback)((e,t)=>{if(V){let t=e.filter(e=>e.type.startsWith("image/"));t.length&&c?.current?.addImages(t);return}c?.current?.addFiles(e,t)},[V,c])),oa=U.filter(e=>"user"===e.role||"assistant"===e.role),ol=(0,r.useMemo)(()=>{let e=new Set,t=[];for(let n=U.length-1;n>=0&&t.length<50;n-=1){var o;let r="user"!==(o=U[n]).role?null:("string"==typeof o.content?o.content:o.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n")).trim()||null;!r||e.has(r)||(e.add(r),t.push(r))}return t},[U]),od=(S=oa.length,(C=(0,r.useRef)([])).current=Array(S).fill(null).map((e,t)=>C.current[t]??null),C),oc=eT&&0===U.length&&!q.isStreaming&&!V,op=e?.cwd??t??void 0,ou=(0,r.useMemo)(()=>(function(e,t,o){let n=new Map;for(let t of e)"toolResult"===t.role&&n.set(t.toolCallId,t);let r=-1;for(let t=e.length-1;t>=0;t--)if("user"===e[t].role){r=t;break}let s=new Map,i=0;e.forEach((e,t)=>{("user"===e.role||"assistant"===e.role)&&s.set(t,i++)});let a=[];for(let r=0;r<e.length;){let s,i=e[r],l="custom"===i.role&&"compaction"===i.customType;if("user"!==i.role&&!l){a.push({kind:"single",idx:r}),r+=1;continue}let d=r,c=d+1;for(;c<e.length&&"user"!==e[c].role;)c+=1;let p=function(e,t,o){for(let r=o-1;r>t;r--){var n;if("assistant"===(n=e[r]).role&&tp(n).answerBlocks.some(e=>"image"===e.type||"text"===e.type&&e.text.trim().length>0))return r}for(let n=o-1;n>t;n--)if(e[n]?.role==="assistant")return n;return -1}(e,d,c);if(-1===p){a.push({kind:"turn",userIdx:d,endIdx:c,startsCompactionTurn:l,finalAssistantIdx:p,visibleProcessIndices:[],processBlocks:[],finalAnswerMessage:null,writtenFiles:void 0}),r=c;continue}let u=[];for(let e=d+1;e<p;e++)u.push(e);let h=u.filter(t=>tb(e[t])),g=e[p],m=tp(g),f=m.processBlocks.length>0?tw(g,m.processBlocks,{omitUsage:!0}):null,x=m.answerBlocks.length>0?tw(g,m.answerBlocks):null,k=tf(e,t,h,n);if(f&&(k=k.concat(tm(g,{messageIndex:p,entryId:t[p],toolResults:n}).processBlocks)),x){let t=[];for(let o=d+1;o<=p;o++){let n=e[o];if(n?.role==="assistant")for(let e of n.content??[])t.push(e)}s=function(e,t,o){let n=new Set,r=[];for(let s of e){if("toolCall"!==s.type||!function(e){let t,o;return"write"===(t=e.toLowerCase())||t.startsWith("write_")||t.endsWith(".write")||t.endsWith("_write")||"edit"===(o=e.toLowerCase())||o.startsWith("edit_")||o.endsWith(".edit")||o.endsWith("_edit")||o.includes("str_replace")||o.includes("replace_editor")}(s.toolName))continue;let e=t?.get(s.toolCallId);if(!e||e.isError)continue;let i=function(e){if(!e)return null;let t=e.file_path??e.path;return"string"==typeof t&&t.length>0?t:null}(s.input);if(!i)continue;let a=function(e,t){let o;if(!e)return null;let n=/^[a-zA-Z]:[\\/]/.test(e)||e.startsWith("\\\\")||void 0!==t&&(/^[a-zA-Z]:[\\/]/.test(t)||t.startsWith("\\\\")),r=e=>n?e.replace(/\\/g,"/"):e,s=r(e),i=t?r(t).replace(/\/+$/,""):void 0,a=/^[a-zA-Z]:\//.test(s),l=s.startsWith("//");if(a||l)o=s;else if(s.startsWith("/")){let e=i?.match(/^([a-zA-Z]:)(?:\/|$)/)?.[1]??i?.match(/^(\/\/[^/]+\/[^/]+)(?:\/|$)/)?.[1];o=e?`${e}${s}`:s}else{if(!i)return null;o=`${i}/${s}`}return tv(o)}(i,o);a&&(n.has(a)||(n.add(a),r.push({filePath:a})))}return r}(t,n,o)}a.push({kind:"turn",userIdx:d,endIdx:c,startsCompactionTurn:l,finalAssistantIdx:p,visibleProcessIndices:h,processBlocks:k,finalAnswerMessage:x,writtenFiles:s}),r=c}return{toolResultsMap:n,lastUserIdx:r,visibleRefIndexByMessage:s,items:a}})(U,_,op),[U,_,op]),oh=ec?X[`${ec.provider}:${ec.modelId}`]??null:null,og=ec?Z[`${ec.provider}:${ec.modelId}`]??null:null,om=(0,r.useCallback)(()=>{et()},[et]),of=(0,r.useCallback)(e=>{td(e),e&&"plan"!==tc?tg("plan"):e||"plan"!==tc||tg("normal")},[td,tg,tc]),ox=(0,r.useCallback)(e=>{tg(e),"plan"!==e||tl?"plan"!==e&&tl&&td(!1):td(!0)},[tg,td,tl]),ok=(0,n.jsx)(s4,{ref:c,onSend:eJ,onBash:eY,tasksBoardEnabled:b,onAbort:eX,onSteer:V?e2:void 0,onFollowUp:V?e4:void 0,onPromptWithStreamingBehavior:V?e6:void 0,isStreaming:V,model:ec,modelNames:J,modelList:Y,modelScopeWarnings:Q,modelsError:ee,onRetryModels:om,onModelChange:e0,compactResult:ed,toolPreset:eo,onToolPresetChange:e||eT?ts:void 0,planMode:tl,onPlanModeChange:of,collaborationMode:tc,tokenMode:tu,toolApprovalMode:th,onCollaborationModeChange:ox,onTokenModeChange:tx,onToolApprovalModeChange:tk,goalState:tS,onGoalStart:tC,onGoalPause:tT,onGoalResume:tR,onGoalStop:tz,thinkingLevel:en,onThinkingLevelChange:e||eT?ti:void 0,availableThinkingLevels:oh,thinkingLevelMap:og,retryInfo:er,queuedMessages:em,inputHistory:ol,onRecallQueue:e5,onMoveQueue:te,onRecallOne:tt,onRequeueAt:to,onRemoveQueueItem:tn,slashCommands:eh,slashCommandsLoading:eg,onLoadSlashCommands:ta,onBuiltinCommand:tr,onAudioUnlock:I,draftKey:e?.id??(t?`new:${t}`:void 0),cwd:e?.cwd??t}),ov=ew.filter(e=>"belowEditor"!==e.placement),oy=ew.filter(e=>"belowEditor"===e.placement),ob=ea?P("desktop.compacting"):function(e,t){if(e?.kind==="running_tools"){let o=e.tools.map(e=>e.name);return 0===o.length?t("desktop.runningTool"):t("desktop.runningTools",{tools:o.length<=3?o.join(", "):`${o.slice(0,2).join(", ")} (+${o.length-2})`})}return e?.kind==="waiting_model"?t("desktop.waitingForModel"):e?.kind==="running_command"?t("desktop.runningCommand"):null}(eC,P);return H?(0,n.jsx)("div",{className:"flex h-full items-center justify-center text-text-muted",children:P("desktop.loadingSession")}):B?(0,n.jsx)("div",{className:"flex h-full items-center justify-center text-red-400",children:B}):(0,n.jsxs)("div",{className:"relative flex h-full min-w-0 flex-col overflow-hidden",onDragEnter:on,onDragOver:or,onDragLeave:os,onDrop:oi,children:[oo&&(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"})]})]})]}),ev&&(0,n.jsx)(iG,{request:ev,onRespond:ej}),ey&&(0,n.jsx)(iJ,{request:ey,onInput:eS}),!eT&&ef.length>0&&!tF&&(0,n.jsx)(s5,{items:ef,sessionId:e?.id,onResolve:e3,onExport:e7,onStageImport:e9,onDismiss:()=>tD(!0),mode:ex?"import":"recovery"}),ty.length>0&&(0,n.jsx)(nY,{request:ty[0]??null,queuedCount:Math.max(0,ty.length-1),busy:!1,onResolve:(e,t)=>{let o=ty[0];o&&tj(o.id,e,t)}}),oc?(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.14.4"]})]}),(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.84.3"]})]})]}),(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:k,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.14.4"]})]}),(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.84.3"]})]})]})]})}),(0,n.jsx)("div",{style:{padding:"0 16px",paddingRight:M?16:34},children:(0,n.jsx)(iK,{notices:ek,align:"right"})}),"goal"===tc&&(0,n.jsx)(nG,{goalState:tS,onPause:tT,onResume:tR,onStop:tz,onEdit:tI}),ok,(0,n.jsx)("div",{style:{padding:"0 16px 6px",paddingRight:M?16:34,marginTop:-15},children:(0,n.jsx)(iu,{onViewFullHistory:v,cwd:op,systemPrompt:y,sessionStats:ep,contextUsage:es,hasSession:!!e,showChat:!0,showSoundLabel:!0,soundEnabled:T,onSoundToggle:R,onCompact:e?e1:void 0,onAbortCompaction:e8,isCompacting:ea,compactError:el,isDeepSeekOfficial:t$,deepseekBalance:tW,lastTurnUsage:tO})})]})}):(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)(iK,{notices:ek,floating:!0,align:"right"})})}),(0,n.jsxs)("div",{className:"relative flex-1 min-h-0 min-w-0",children:[(0,n.jsx)("div",{ref:eE,className:"h-full min-w-0 overflow-x-hidden overflow-y-auto pt-4 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",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.jsx)(iq,{statuses:eb}),(0,n.jsx)(iV,{widgets:ov}),(()=>{let{toolResultsMap:t,lastUserIdx:o,visibleRefIndexByMessage:r,items:s}=ou,i=(s,i={})=>{let a=i.messageOverride??U[s],l="user"===a.role&&s>0&&"assistant"===U[s-1].role?_[s-1]:void 0,d="user"===a.role||"assistant"===a.role,c=r.get(s),p=i.keyPrefix??"message",u=!1;if("assistant"===a.role){u=!0;for(let e=s+1;e<U.length;e++){let t=U[e].role;if("user"===t)break;if("assistant"===t){u=!1;break}}u&&q.isStreaming&&s===U.length-1&&(u=!1)}void 0!==i.showTimestamp&&(u=i.showTimestamp);let h=(0,n.jsx)(ny,{message:a,toolResults:t,modelNames:J,cwd:op,onOpenFile:x,entryId:_[s],onFork:V||eT||0===s&&"user"===a.role?void 0:eZ,forking:ei===_[s],onNavigate:V?void 0:eQ,prevAssistantEntryId:V?void 0:l,onEditContent:N,onQuoteReply:L,onCreateTask:O,showTimestamp:u,prevTimestamp:s>0?U[s-1].timestamp:void 0,sessionId:e?.id??eM.current??void 0,writtenFiles:i.writtenFiles,subagents:w,onOpenSubagent:j},`${p}-view-${s}`);return d&&!1!==i.attachRef&&void 0!==c?(0,n.jsx)("div",{ref:e=>{od.current[c]=e,s===o&&(eF.current=e,e&&eV.current&&(eV.current=!1,eK.current=!0,eG()))},children:h},`${p}-${s}`):h},a=[],l=[],d=(e,t)=>{a.push(e),l.push(t)};for(let a of s){if("single"===a.kind){d(i(a.idx),r.get(a.idx));continue}let{userIdx:s,endIdx:l,startsCompactionTurn:c,finalAssistantIdx:p}=a;if((V||q.isStreaming)&&l===U.length&&(s===o||c)){d(i(s),r.get(s));let o=q.streamingMessage?.role==="assistant",a=[],c=!o&&p>=0?p:l;for(let e=s+1;e<c;e++)tb(U[e])&&a.push(e);let u=tf(U,_,a,t),h=null;if(!o&&p>=0){let e=U[p],o=tp(e,{isStreaming:!0}),n=tm(e,{messageIndex:p,entryId:_[p],toolResults:t,isStreaming:!0});u=u.concat(n.processBlocks),o.answerBlocks.length>0&&(h=tw(e,o.answerBlocks,{omitUsage:!0}))}if(o){let e=q.streamingMessage,o=tp(e,{isStreaming:!0}),n=tm(e,{messageIndex:U.length,toolResults:t,isStreaming:!0});u=u.concat(n.processBlocks),o.answerBlocks.length>0&&(h=tw(e,o.answerBlocks,{omitUsage:!0}))}if(u.length>0){let t=a.map(e=>r.get(e)).find(e=>"number"==typeof e);d((0,n.jsx)("div",{ref:void 0===t?void 0:e=>{od.current[t]=e},children:(0,n.jsx)(rF,{blocks:u,isStreaming:V||q.isStreaming,cwd:op,onOpenFile:x,sessionId:e?.id??eM.current??void 0,tokenRate:eu})},`live-process-group-${s}`),t)}h&&d((0,n.jsx)(ny,{message:h,isStreaming:!0,modelNames:J,cwd:op,onOpenFile:x,onQuoteReply:L},`live-answer-${s}`),p>=0?r.get(p):void 0);continue}if(-1===p){for(let e=s;e<l;e++)d(i(e),r.get(e));continue}d(i(s),r.get(s));let{processBlocks:u,finalAnswerMessage:h,writtenFiles:g,visibleProcessIndices:m}=a;if(u.length>0){let t=m.map(e=>r.get(e)).find(e=>"number"==typeof e)??(h?void 0:r.get(p));d((0,n.jsx)("div",{ref:void 0===t?void 0:e=>{od.current[t]=e},children:(0,n.jsx)(rF,{blocks:u,isStreaming:!1,defaultExpanded:!h,onAutoExpanded:void 0,cwd:op,onOpenFile:x,sessionId:e?.id??eM.current??void 0})},`process-group-${s}-${p}`),t)}h&&d(i(p,{messageOverride:h,writtenFiles:g}),r.get(p));for(let e=p+1;e<l;e++)d(i(e),r.get(e))}let c=[];return l.forEach((e,t)=>{void 0!==e&&(c[e]=t)}),t5.current=c,(0,n.jsx)(ig,{scrollElementRef:eE,items:a,virtualizerRef:t8})})(),ob&&(ea||V&&!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:[ob,eC?.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"}})]})}),G&&(0,n.jsx)(ny,{message:{role:"bashExecution",command:G.command,output:"",excludeFromContext:G.excludeFromContext},sessionId:e?.id??eM.current??void 0}),K&&!G&&(0,n.jsx)("div",{className:"py-2 text-[13px] text-text-muted",children:(0,n.jsx)("span",{className:"animate-[pulse_1.5s_infinite]",children:P("desktop.runningShellCommand")})}),(0,n.jsx)("div",{style:{height:96}}),(0,n.jsx)("div",{ref:eP}),(0,n.jsx)(nB,{open:tH,planText:tU,busy:V,onExecute:tV,onFeedback:tG,onExit:tJ,onClose:()=>tB(!1)})]})})}),tY&&(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"}),tZ&&(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"}),t0&&(0,n.jsxs)("button",{type:"button",onClick:()=>t4(),title:P("desktop.scrollToBottom"),"aria-label":P("desktop.scrollToBottom"),style:{position:"absolute",bottom:14,right:18,zIndex:20,display:"flex",alignItems:"center",gap:6,padding:"5px 10px",border:"1px solid var(--border)",borderRadius:999,background:"color-mix(in srgb, var(--bg-panel) 92%, transparent)",color:"var(--text-muted)",fontSize:11,fontWeight:600,cursor:"pointer",boxShadow:"0 4px 14px rgba(0,0,0,0.14)",backdropFilter:"blur(4px)",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)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.borderColor="var(--border)"},children:[(0,n.jsx)(ns.Z,{size:12,weight:"bold","aria-hidden":"true"}),P("desktop.scrollToBottom")]})]}),M?null:(0,n.jsx)(ik,{messages:U,streamingMessage:q.streamingMessage,scrollContainer:eE,messageRefs:od,virtualizer:t3})]}),(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)(iV,{widgets:oy})})}),ok,(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)(iu,{onViewFullHistory:v,cwd:op,systemPrompt:y,sessionStats:ep,contextUsage:es,hasSession:!!e,showChat:!0,soundEnabled:T,onSoundToggle:R,onCompact:e?e1:void 0,onAbortCompaction:e8,isCompacting:ea,compactError:el,branchTree:eR,branchActiveLeafId:ez,onBranchLeafChange:eI,isDeepSeekOfficial:t$,deepseekBalance:tW,lastTurnUsage:tO})})})]})]})]})}function iq({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 iV({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 iK({notices:e,floating:t=!1,align:o="left"}){return 0===e.length?null:(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",alignItems:"right"===o?"flex-end":"stretch",marginBottom:10*!t},children:e.map((o,r)=>{let s="error"===o.type?"#ef4444":"warning"===o.type?"#d97706":"success"===o.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*(r!==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:o.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:s,flexShrink:0}}),(0,n.jsx)("span",{style:{padding:"10px 0",minWidth:0,maxWidth:"100%",overflowWrap:"anywhere",whiteSpace:"pre-wrap"},children:o.message})]},o.id)})})}function iG({request:e,onRespond:t}){let{t:o}=(0,F.s)(),[s,i]=(0,r.useState)("editor"===e.method?e.prefill??"":"");(0,r.useEffect)(()=>{i("editor"===e.method?e.prefill??"":"")},[e]);let a=()=>{"confirm"===e.method?t(e,{confirmed:!0}):t(e,{value:s})};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:{padding:"12px 14px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("div",{style:{color:"var(--text)",fontSize:14,fontWeight:650},children:e.title}),(0,n.jsx)("div",{style:{marginTop:3,color:"var(--text-dim)",fontSize:11,fontFamily:"var(--font-mono)"},children:o("desktop.extensionRequest")})]}),(0,n.jsxs)("div",{style:{padding:14},children:["confirm"===e.method&&(0,n.jsx)("div",{style:{color:"var(--text-muted)",fontSize:13,lineHeight:1.6,whiteSpace:"pre-wrap"},children:e.message}),"select"===e.method&&(0,n.jsx)("div",{style:{display:"grid",gap:8},children:e.options.map(o=>(0,n.jsx)("button",{onClick:()=>t(e,{value:o}),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},children:o},o))}),"input"===e.method&&(0,n.jsx)("input",{autoFocus:!0,value:s,placeholder:e.placeholder,onChange:e=>i(e.target.value),onKeyDown:o=>{"Enter"===o.key&&a(),"Escape"===o.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:s,onChange:e=>i(e.target.value),onKeyDown:o=>{"Escape"===o.key&&t(e,{cancelled:!0}),(o.metaKey||o.ctrlKey)&&"Enter"===o.key&&a()},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:o("desktop.cancel")}),"confirm"===e.method?(0,n.jsx)("button",{onClick:a,style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"#fff",cursor:"pointer"},children:o("desktop.confirm")}):"select"!==e.method?(0,n.jsx)("button",{onClick:a,style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"#fff",cursor:"pointer"},children:o("desktop.submit")}):null]})]})})}function iJ({request:e,onInput:t}){let{t:o}=(0,F.s)(),s=(0,r.useRef)(null),i=function(e){let t=/^[┌├└╭╰][─┬┴┼]+[┐┤┘╮╯]$/,o=[];for(let n of e){let e=ts(n).trimEnd();if(t.test(e))continue;let r=n,s=tl(r);("│"===s||"┃"===s)&&" "===tl(r=ta(r,0))&&(r=ta(r,0));let i=function(e){let t=ti(e);for(let e=t.length-1;e>=0;e--)if(""!==t[e].char.trim())return e;return -1}(r),a=i>=0?ti(r)[i]?.char:void 0;("│"===a||"┃"===a)&&(r=ta(r,i)),o.push(function(e){let t=e;for(;;){let e=ti(t),o=e[e.length-1];if(!o||""!==o.char.trim())return t;t=t.slice(0,o.start)+t.slice(o.end)}}(r))}for(;o.length>0&&""===ts(o[0]).trim();)o.shift();for(;o.length>0&&""===ts(o[o.length-1]).trim();)o.pop();return o.length?o:e}(e.lines);return(0,r.useEffect)(()=>{s.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:s,tabIndex:0,role:"dialog","aria-modal":"true",onKeyDown:o=>{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}}(o);n&&(o.preventDefault(),o.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:o("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:o("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:(i.length?i:[""]).map((e,t,o)=>{var s;return(0,n.jsxs)(r.Fragment,{children:[(s=`line-${t}`,(function(e){let t,o=[],n={},r=0;for(to.lastIndex=0;null!==(t=to.exec(e));)t.index>r&&o.push({text:e.slice(r,t.index),style:n}),n=function(e,t){let o={...e};for(let e=0;e<t.length;e++){let n=t[e];if(0===n)for(let e of Object.keys(o))delete o[e];else if(1===n)o.fontWeight=700;else if(2===n)o.opacity=.65;else if(3===n)o.fontStyle="italic";else if(4===n)o.textDecoration="underline";else if(22===n)delete o.fontWeight,delete o.opacity;else if(23===n)delete o.fontStyle;else if(24===n)delete o.textDecoration;else if(39===n)delete o.color;else if(49===n)delete o.backgroundColor;else if(n>=30&&n<=37)o.color=tn[n-30];else if(n>=90&&n<=97)o.color=tr[n-90];else if(n>=40&&n<=47)o.backgroundColor=tn[n-40];else if(n>=100&&n<=107)o.backgroundColor=tr[n-100];else if((38===n||48===n)&&2===t[e+1]){let[r,s,i]=[t[e+2],t[e+3],t[e+4]];[r,s,i].every(e=>"number"==typeof e&&Number.isFinite(e))&&(38===n?o.color=`rgb(${r}, ${s}, ${i})`:o.backgroundColor=`rgb(${r}, ${s}, ${i})`),e+=4}else if((38===n||48===n)&&5===t[e+1]){let r=function(e){if(e>=0&&e<8)return tn[e];if(e>=8&&e<16)return tr[e-8];if(e>=16&&e<=231){let t=e-16,o=Math.floor(t/36),n=Math.floor(t%36/6),r=e=>0===e?0:55+40*e;return`rgb(${r(o)}, ${r(n)}, ${r(t%6)})`}if(e>=232&&e<=255){let t=8+(e-232)*10;return`rgb(${t}, ${t}, ${t})`}}(t[e+2]);r&&(38===n?o.color=r:o.backgroundColor=r),e+=2}}return o}(n,t[1]?t[1].split(";").map(e=>Number(e||"0")):[0]),r=t.index+t[0].length;return r<e.length&&o.push({text:e.slice(r),style:n}),o})(e).map((e,t)=>Object.keys(e.style).length>0?(0,n.jsx)("span",{style:e.style,children:e.text},`${s}-${t}`):e.text)),t<o.length-1?"\n":null]},t)})})]})})}var iY=o(93549);let iX={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"},iZ={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",webm:"audio/webm"};function iQ(e){return(e.replace(/\\/g,"/").split("/").pop()??"").toLowerCase().split(".").pop()??""}function i0(e){let t=e.nodeType===Node.ELEMENT_NODE?e:e.parentElement;return t?.closest(".file-source-line[data-line-number]")??null}function i1(e,t){if(!t||t.isCollapsed||0===t.rangeCount)return null;let o=t.getRangeAt(0);if(!e.contains(o.startContainer)||!e.contains(o.endContainer))return null;let n=Number(i0(o.startContainer)?.dataset.lineNumber),r=Number(i0(o.endContainer)?.dataset.lineNumber);return Number.isInteger(n)&&Number.isInteger(r)?n<=r?{startLine:n,endLine:r}:{startLine:r,endLine:n}:null}function i2(e,t,o,n={}){let r=ei(e),s=new URLSearchParams({type:t});for(let[e,t]of(o&&s.set("sessionId",o),Object.entries(n)))void 0!==t&&s.set(e,String(t));return`/api/files/${r}?${s.toString()}`}function i4({filePath:e,sourceSessionId:t}){let{t:o}=(0,F.s)();return(0,n.jsx)("a",{href:i2(e,"download",t),download:ea(e),title:o("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)(I.z,{size:11,"aria-hidden":"true"})})}let i6={fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.6,tabSize:2},i8={fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.6,padding:"12px 0 12px 16px",color:"var(--text-dim)",textAlign:"right",userSelect:"none"};async function i5(e,t){let o=await fetch(`/api/files/${ei(e)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:t})});if(!o.ok)throw Error((await o.json().catch(()=>({}))).error??`HTTP ${o.status}`);let n=await o.json();return"number"==typeof n.size?n.size:0}let i3={delete:"3px solid var(--git-status-deleted)",add:"3px solid var(--git-status-added)",edit:"3px solid var(--git-status-modified)"},i7="var(--git-status-deleted-bg)",i9="var(--git-status-added-bg)",ae="var(--git-status-added)";function at(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}function ao({oldContent:e,newContent:t}){let{t:o}=(0,F.s)(),r=function(e,t){let o=e.length,n=t.length,r=o+n,s=Array(2*r+1).fill(0),i=[];for(let a=0;a<=r;a++){i.push([...s]);for(let l=-a;l<=a;l+=2){let d,c=(d=l===-a||l!==a&&s[l-1+r]<s[l+1+r]?s[l+1+r]:s[l-1+r]+1)-l;for(;d<o&&c<n&&e[d]===t[c];)d++,c++;if(s[l+r]=d,d>=o&&c>=n){let s=[],l=o,d=n;for(let o=a;o>0;o--){let n,a=i[o-1],c=l-d;n=c===-o||c!==o&&a[c-1+r]<a[c+1+r]?c+1:c-1;let p=a[n+r],u=p-n;for(;l>p&&d>u;)l--,d--,s.unshift({type:"unchanged",text:e[l]});o>0&&(l>p?(l--,s.unshift({type:"removed",text:e[l]})):(d--,s.unshift({type:"added",text:t[d]})))}for(;l>0&&d>0;)l--,d--,s.unshift({type:"unchanged",text:e[l]});return s}}}return[...e.map(e=>({type:"removed",text:e})),...t.map(e=>({type:"added",text:e}))]}(e.split("\n"),t.split("\n"));if(!r.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:o("desktop.noChanges")});let s=new Set(r.flatMap((e,t)=>"unchanged"!==e.type?[t]:[])),i=new Set;for(let e of s)for(let t=Math.max(0,e-3);t<=Math.min(r.length-1,e+3);t++)i.add(t);let a=[],l=0;for(;l<r.length;)if(i.has(l)){let e=[];for(;l<r.length&&i.has(l);)e.push(r[l]),l++;a.push({hidden:!1,lines:e})}else{let e=0;for(;l<r.length&&!i.has(l);)e++,l++;a.push({hidden:!0,count:e})}let d=[],c=1;for(let e of r)"removed"===e.type?d.push(0):d.push(c++);let p=0;return(0,n.jsx)("div",{style:{fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.6,minWidth:"max-content"},children:a.map((e,t)=>{if(e.hidden){let r=(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:o("desktop.unchangedLines",{count:e.count})},t);return p+=e.count,r}let r=[],s=[],i=[],a=()=>{if(s.length||i.length){let e=s.length&&i.length?"edit":s.length?"delete":"add";for(let t of s)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});s=[],i=[]}};e.lines.forEach((e,o)=>{"unchanged"===e.type?(a(),r.push({key:`${t}:${o}`,kind:"context",text:e.text,lineNo:d[p+o],block:null})):"removed"===e.type?s.push({key:`${t}:${o}`,text:e.text}):i.push({key:`${t}:${o}`,text:e.text,lineNo:d[p+o]})}),a();let l=r.map(e=>{let t="removed"===e.kind?i7:"added"===e.kind?i9:"transparent",o=e.block?i3[e.block]:"3px solid transparent",r="added"===e.kind?ae:"var(--text-dim)";return(0,n.jsxs)("div",{style:{display:"flex",background:t,borderLeft:o},children:[(0,n.jsx)("span",{style:{minWidth:44,padding:"0 8px 0 16px",textAlign:"right",color:r,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 p+=e.lines.length,(0,n.jsx)("div",{children:l},t)})})}function an({patch:e}){let t=o7(e);if(!t)return null;let o=[],r=[],s=[],i=()=>{if(r.length||s.length){let e=r.length&&s.length?"edit":r.length?"delete":"add";for(let t of r)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});r=[],s=[]}};return t.forEach((e,t)=>{e.rows.forEach((e,n)=>{if("hunk"===e.type){i(),o.push({key:`${t}:${n}:h`,kind:"hunk",text:e.text,lineNo:null,block:null});return}let{left:a,right:l}=e;if("context"===a.type&&"context"===l.type){i(),o.push({key:`${t}:${n}:c`,kind:"context",text:a.text,lineNo:l.lineNo,block:null});return}"removed"===a.type&&r.push({key:`${t}:${n}:l`,text:a.text}),"added"===l.type&&s.push({key:`${t}:${n}:r`,text:l.text,lineNo:l.lineNo})})}),i(),(0,n.jsx)("div",{style:{fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.55,minWidth:"max-content"},children:o.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?i7:"added"===e.kind?i9:"transparent",o=e.block?i3[e.block]:"3px solid transparent",r="added"===e.kind?ae:"var(--text-dim)";return(0,n.jsxs)("div",{style:{display:"flex",background:t,borderLeft:o},children:[(0,n.jsx)("span",{style:{width:44,flexShrink:0,padding:"0 8px 0 16px",textAlign:"right",color:r,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 ar({filePath:e,cwd:t,sourceSessionId:o}){let{t:s}=(0,F.s)(),[i,a]=(0,r.useState)(0),[l,d]=(0,r.useState)(null),[c,p]=(0,r.useState)(null),[u,h]=(0,r.useState)(null),g=(0,r.useRef)(null),m=ea(e).toLowerCase().split(".").pop()??"";(0,r.useEffect)(()=>{a(0),d(null),p(null),h(null),g.current&&(g.current.close(),g.current=null);let t=new EventSource(i2(e,"watch",o));return g.current=t,t.addEventListener("change",e=>{try{let t=JSON.parse(e.data);"number"==typeof t.size&&d(t.size)}catch{}a(e=>e+1)}),()=>{t.close(),g.current=null}},[e,o]);let f=i2(e,"read",o,i?{v:i}:void 0),x=null!=l?at(l):null;return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{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},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)"},title:e,children:el(e,t)}),(0,n.jsx)("span",{style:{marginLeft:"auto"},children:m||s("desktop.image")}),c&&(0,n.jsxs)("span",{children:[c.w," \xd7 ",c.h]}),x&&(0,n.jsx)("span",{children:x}),(0,n.jsx)(i4,{filePath:e,sourceSessionId:o})]}),(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:u?(0,n.jsx)("div",{style:{color:"#f87171",fontSize:13},children:u}):(0,n.jsx)("img",{src:f,alt:e,onLoad:e=>{let t=e.currentTarget;p({w:t.naturalWidth,h:t.naturalHeight})},onError:()=>h(s("desktop.failedToLoadImage")),style:{maxWidth:"100%",maxHeight:"100%",objectFit:"contain",boxShadow:"0 2px 8px rgba(0,0,0,0.15)"}})})]})}function as({filePath:e,cwd:t,sourceSessionId:o}){let{t:s}=(0,F.s)(),[i,a]=(0,r.useState)(0),[l,d]=(0,r.useState)(null),[c,p]=(0,r.useState)(null),[u,h]=(0,r.useState)(null),g=(0,r.useRef)(null),m=ea(e).toLowerCase().split(".").pop()??"";(0,r.useEffect)(()=>{a(0),d(null),p(null),h(null),g.current&&(g.current.close(),g.current=null);let t=new EventSource(i2(e,"watch",o));return g.current=t,t.addEventListener("change",e=>{try{let t=JSON.parse(e.data);"number"==typeof t.size&&d(t.size)}catch{}p(null),h(null),a(e=>e+1)}),()=>{t.close(),g.current=null}},[e,o]);let f=i2(e,"read",o,i?{v:i}:void 0);return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{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},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)"},title:e,children:el(e,t)}),(0,n.jsx)("span",{style:{marginLeft:"auto"},children:m||s("desktop.audio")}),null!=c&&(0,n.jsx)("span",{children:function(e){if(!Number.isFinite(e))return"";let t=Math.round(e),o=Math.floor(t/60);return`${o}:${String(t%60).padStart(2,"0")}`}(c)}),null!=l&&(0,n.jsx)("span",{children:at(l)}),(0,n.jsx)(i4,{filePath:e,sourceSessionId:o})]}),(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:[u&&(0,n.jsx)("div",{style:{color:"#f87171",fontSize:13,marginBottom:12,textAlign:"center"},children:u}),(0,n.jsx)("audio",{controls:!0,preload:"metadata",src:f,onLoadedMetadata:e=>p(e.currentTarget.duration),onError:()=>h(s("desktop.failedToLoadAudio")),style:{width:"100%"}},f)]})})]})}function ai({filePath:e,cwd:t,sourceSessionId:o}){let{t:s}=(0,F.s)(),[i,a]=(0,r.useState)(0),[l,d]=(0,r.useState)(null),[c,p]=(0,r.useState)(null),u=(0,r.useRef)(null),h=iQ(e),g="pdf"===h,m=g?i2(e,"read",o,i?{v:i}:void 0):i2(e,"preview",o,i?{v:i}:void 0);return(0,r.useEffect)(()=>{a(0),d(null),p(null),u.current&&(u.current.close(),u.current=null),fetch(i2(e,"meta",o)).then(e=>e.json()).then(e=>{e.error&&p(e.error),"number"==typeof e.size&&(d(e.size),!g&&e.size>0xa00000&&p(s("desktop.docxTooLargeForPreview")))}).catch(e=>p(String(e)));let t=new EventSource(i2(e,"watch",o));return u.current=t,t.addEventListener("change",e=>{try{let t=JSON.parse(e.data);if("number"==typeof t.size&&(d(t.size),!g&&t.size>0xa00000))return void p(s("desktop.docxTooLargeForPreview"))}catch{}p(null),a(e=>e+1)}),()=>{t.close(),u.current=null}},[e,g,o,s]),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{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},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e,children:el(e,t)}),(0,n.jsx)("span",{style:{marginLeft:"auto"},children:"docx"===h?s("desktop.docxPreview"):"pdf"}),null!=l&&(0,n.jsx)("span",{children:at(l)}),(0,n.jsx)(i4,{filePath:e,sourceSessionId:o})]}),(0,n.jsx)("div",{style:{flex:1,minHeight:0,background:"var(--bg-panel)"},children:c?(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",padding:24,color:"#f87171",fontSize:13,textAlign:"center"},children:c}):(0,n.jsx)("iframe",{src:m,sandbox:g?void 0:"allow-same-origin",title:s("desktop.previewFile",{file:ea(e)}),style:{width:"100%",height:"100%",border:"none",background:g?"var(--bg)":"#eef1f5"}},m)})]})}function aa({filePath:e,cwd:t,sourceSessionId:o,onOpenFile:r,onAtMention:s,onMentionLines:i,initialDisplayMode:a,onFileSaved:l}){let d;return null!==(iX[iQ(e)]??null)?(0,n.jsx)(ar,{filePath:e,cwd:t,sourceSessionId:o}):null!==(iZ[iQ(e)]??null)?(0,n.jsx)(as,{filePath:e,cwd:t,sourceSessionId:o}):null!==("pdf"===(d=iQ(e))||"docx"===d?d:null)?(0,n.jsx)(ai,{filePath:e,cwd:t,sourceSessionId:o}):(0,n.jsx)(al,{filePath:e,cwd:t,sourceSessionId:o,onOpenFile:r,onAtMention:s,onMentionLines:i,initialDisplayMode:a,onFileSaved:l})}function al({filePath:e,cwd:t,sourceSessionId:o,onOpenFile:s,onAtMention:i,onMentionLines:a,initialDisplayMode:l,onFileSaved:d}){let c,u,{t:h}=(0,F.s)(),[m,f]=(0,r.useState)(null),[x,k]=(0,r.useState)(null),[v,y]=(0,r.useState)(null),[b,w]=(0,r.useState)(!0),[j,S]=(0,r.useState)(null),[C,T]=(0,r.useState)(!1),[R,z]=(0,r.useState)("source"),[I,M]=(0,r.useState)(!1),[P,E]=(0,r.useState)(0),[D,W]=(0,r.useState)(null),A=(0,r.useRef)(null),N=(0,r.useRef)(null),[$,L]=(0,r.useState)(!1),[O,H]=(0,r.useState)(""),[B,U]=(0,r.useState)(""),[_,q]=(0,r.useState)(!1),[V,K]=(0,r.useState)(null),[G,J]=(0,r.useState)(!1),Y=(0,r.useRef)(null),X=(0,r.useRef)(null),Z=(0,r.useRef)(0),Q=(0,r.useRef)(!1);(0,r.useEffect)(()=>{Q.current=$},[$]);let ee=$&&O!==B,et=!!(m?.content&&m.content.includes("\0")),eo=(0,r.useCallback)(async e=>{if(!t)return void y(null);try{let o=new URLSearchParams({cwd:t,path:e}),n=await fetch(`/api/git/diff?${o.toString()}`),r=await n.json();y(n.ok&&r.supported&&"string"==typeof r.patch?r:null)}catch{y(null)}},[t]),en=(0,r.useCallback)((e,t=!1)=>fetch(i2(e,"read",o)).then(e=>e.json()).then(e=>e.error?(S(e.error),null):(t?(f(t=>(t&&k(t.content),e)),E(e=>e+1)):f(e),e)).catch(e=>(S(String(e)),null)),[o]);(0,r.useEffect)(()=>{w(!0),S(null),f(null),k(null),y(null),T(!1),z("source"),M(!1),E(0),L(!1),H(""),U(""),K(null),J(!1),q(!1),A.current&&(A.current.close(),A.current=null),en(e).then(e=>{(e?.language==="markdown"||e?.language==="html")&&"diff"!==l&&T(!0)}).finally(()=>w(!1)),eo(e);let t=new EventSource(i2(e,"watch",o));return A.current=t,t.addEventListener("change",()=>{Q.current?J(!0):(en(e,!0),eo(e))}),()=>{t.close(),A.current=null}},[e,en,eo,l,o]);let er=(0,r.useCallback)(()=>{m&&!et&&(H(m.content),U(m.content),K(null),J(!1),L(!0))},[m,et]),ei=(0,r.useCallback)(()=>{L(!1),H(""),U(""),K(null),J(!1)},[]),ea=(0,r.useCallback)(()=>{(!ee||window.confirm(h("files.unsavedChanges")))&&ei()},[ee,ei,h]),ed=(0,r.useCallback)(async()=>{if(!m||_)return;let t=++Z.current;q(!0),K(null);try{let o=await i5(e,O);if(t!==Z.current)return;f(e=>e?{...e,content:O,size:o}:e),U(O),q(!1),ei(),eo(e),d?.()}catch(e){if(t!==Z.current)return;K(e instanceof Error?e.message:String(e)),q(!1)}},[m,_,O,e,ei,eo,d]);(0,r.useEffect)(()=>{if(!$)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)},[$,ed,ea]),(0,r.useEffect)(()=>{if(!ee)return;let e=e=>{e.preventDefault(),e.returnValue=""};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[ee]);let ec=(0,r.useCallback)(()=>{let e=Y.current,t=X.current;e&&t&&(t.scrollTop=e.scrollTop)},[]),eu=(0,r.useCallback)(e=>{if("Tab"!==e.key||e.metaKey||e.ctrlKey||e.altKey)return;e.preventDefault();let t=e.currentTarget,{selectionStart:o,selectionEnd:n}=t;H(t.value.slice(0,o)+" "+t.value.slice(n)),requestAnimationFrame(()=>{let e=Y.current;if(!e)return;let t=o+2;e.selectionStart=t,e.selectionEnd=t})},[]),eh=(0,r.useMemo)(()=>oP(m?.content??""),[m?.content]),eg=v?.supported===!0&&"string"==typeof v.patch;(0,r.useEffect)(()=>{"diff"===l&&eg&&z("diff")},[eg,l]);let em=eg&&v?.status==="deleted",ef=(0,r.useCallback)(o=>{a&&o&&a(el(e,t),o.startLine,o.endLine)},[t,e,a]);if((0,r.useEffect)(()=>{let e=()=>{let e=N.current,t="source"===R&&!C;W(a&&t&&e?i1(e,window.getSelection()):null)};if(e(),a&&"source"===R&&!C)return document.addEventListener("selectionchange",e),()=>document.removeEventListener("selectionchange",e)},[m?.content,a,C,R]),(0,r.useEffect)(()=>{if(!a||"source"!==R||C)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 o=N.current,n=o?i1(o,window.getSelection()):null;n&&(e.preventDefault(),ef(n))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[ef,a,C,R]),b)return(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:13},children:h("desktop.loadingFile")});if(em&&!m)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:el(e,t)}),(0,n.jsx)("div",{style:{flex:1,overflow:"auto",background:"var(--bg)"},children:(0,n.jsx)(an,{patch:v.patch})})]});if(j)return(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"#f87171",fontSize:13},children:j});if(!m)return null;let ex="html"===m.language,ek="markdown"===m.language,ev=(u=(c=es(e).replace(/\/+$/,"")).lastIndexOf("/"))<0?"":0===u?"/":2===u&&/^[a-zA-Z]:\//.test(c)?c.slice(0,3):c.slice(0,u),ey=m.content.split("\n"),eb=null!==x&&x!==m.content||eg,ew=!em&&!et&&ep();return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{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},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)"},title:e,children:el(e,t)}),(0,n.jsx)("span",{style:{marginLeft:"auto"},children:m.language}),"source"===R&&!$&&(0,n.jsx)("span",{children:h("desktop.lines",{count:ey.length})}),(0,n.jsx)("span",{children:at(m.size)}),eb&&!$&&(0,n.jsxs)("div",{style:{display:"flex",borderRadius:5,overflow:"hidden",border:"1px solid var(--border)"},children:[(0,n.jsx)("button",{onClick:()=>z("source"),style:{padding:"2px 8px",fontSize:11,border:"none",cursor:"pointer",background:"source"===R?"var(--bg-selected)":"var(--bg-hover)",color:"source"===R?"var(--text)":"var(--text-muted)",fontWeight:"source"===R?600:400},children:h("desktop.source")}),(0,n.jsxs)("button",{onClick:()=>z("diff"),style:{padding:"2px 8px",fontSize:11,border:"none",borderLeft:"1px solid var(--border)",cursor:"pointer",background:"diff"===R?"var(--bg-selected)":"var(--bg-hover)",color:"diff"===R?"var(--text)":"var(--text-muted)",fontWeight:"diff"===R?600:400},children:[h("desktop.diff")," ",P>0&&(0,n.jsxs)("span",{style:{color:"var(--git-status-added)",marginLeft:2},children:["+",P]})]})]}),"source"===R&&!C&&!$&&(0,n.jsx)("button",{onClick:()=>M(e=>!e),title:I?h("desktop.disableWordWrap"):h("desktop.enableWordWrap"),style:{padding:"2px 8px",fontSize:11,cursor:"pointer",background:I?"var(--bg-selected)":"var(--bg-hover)",color:I?"var(--text)":"var(--text-muted)",border:"1px solid var(--border)",borderRadius:5,fontWeight:I?600:400},children:h("desktop.wrap")}),ex&&"source"===R&&!$&&(0,n.jsxs)("div",{style:{display:"flex",borderRadius:5,overflow:"hidden",border:"1px solid var(--border)"},children:[(0,n.jsx)("button",{onClick:()=>T(!1),style:{padding:"2px 8px",fontSize:11,border:"none",cursor:"pointer",background:C?"var(--bg-hover)":"var(--bg-selected)",color:C?"var(--text-muted)":"var(--text)",fontWeight:C?400:600},children:h("desktop.code")}),(0,n.jsx)("button",{onClick:()=>T(!0),style:{padding:"2px 8px",fontSize:11,border:"none",borderLeft:"1px solid var(--border)",cursor:"pointer",background:C?"var(--bg-selected)":"var(--bg-hover)",color:C?"var(--text)":"var(--text-muted)",fontWeight:C?600:400},children:h("desktop.preview")})]}),ek&&"source"===R&&!$&&(0,n.jsxs)("div",{style:{display:"flex",borderRadius:5,overflow:"hidden",border:"1px solid var(--border)"},children:[(0,n.jsx)("button",{onClick:()=>T(!0),style:{padding:"2px 8px",fontSize:11,border:"none",cursor:"pointer",background:C?"var(--bg-selected)":"var(--bg-hover)",color:C?"var(--text)":"var(--text-muted)",fontWeight:C?600:400},children:h("desktop.preview")}),(0,n.jsx)("button",{onClick:()=>T(!1),style:{padding:"2px 8px",fontSize:11,border:"none",borderLeft:"1px solid var(--border)",cursor:"pointer",background:C?"var(--bg-hover)":"var(--bg-selected)",color:C?"var(--text-muted)":"var(--text)",fontWeight:C?400:600},children:h("desktop.raw")})]}),$?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button",onClick:()=>void ed(),disabled:_,title:h("files.saveHint"),"aria-label":h("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)(iY.g,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("button",{type:"button",onClick:ea,disabled:_,title:h("files.cancelEdit"),"aria-label":h("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)(p.X,{size:13,"aria-hidden":"true"})})]}):"source"===R&&ew?(0,n.jsx)("button",{type:"button",onClick:er,title:h("files.edit"),"aria-label":h("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)(g.I,{size:13,"aria-hidden":"true"})}):null,(i||a)&&!$&&(0,n.jsx)("button",{type:"button",onPointerDown:e=>e.preventDefault(),onClick:()=>{D&&a?ef(D):i?.(el(e,t),!1)},title:D?h("desktop.mentionSelectedLines",{start:D.startLine,end:D.endLine}):h("desktop.mentionFile"),"aria-label":D?h("desktop.mentionSelectedLines",{start:D.startLine,end:D.endLine}):h("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:"@"}),!$&&(0,n.jsx)(i4,{filePath:e,sourceSessionId:o})]}),(0,n.jsx)("div",{ref:N,style:{flex:1,overflow:"auto",background:"var(--bg)"},children:$?(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:h("files.externalModified")}),(0,n.jsx)("button",{type:"button",onClick:()=>{(!ee||window.confirm(h("files.reloadOverwriteConfirm")))&&en(e).then(e=>{e&&(H(e.content),U(e.content),J(!1))})},disabled:_,style:{padding:"2px 8px",fontSize:11,border:"1px solid #d6a84b",borderRadius:4,background:"transparent",color:"#d6a84b",cursor:"pointer"},children:h("files.reload")})]}),V&&(0,n.jsx)("div",{style:{padding:"5px 12px",borderBottom:"1px solid var(--border)",background:"rgba(248,113,113,0.14)",color:"#f87171",fontSize:11,flexShrink:0},children:h("files.saveFailed",{error:V})}),(0,n.jsxs)("div",{style:{flex:1,display:"flex",overflow:"hidden"},children:[(0,n.jsx)("div",{ref:X,"aria-hidden":"true",style:{...i8,height:"100%",overflow:"hidden",whiteSpace:"pre",pointerEvents:"none"},children:O.split("\n").map((e,t)=>`${t+1}
37
+ `).join("")}),(0,n.jsx)("textarea",{ref:Y,value:O,onChange:e=>H(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)",...i6,whiteSpace:"pre",overflow:"auto",padding:0,tabSize:2}})]})]}):"diff"===R&&eb?eg?(0,n.jsx)(an,{patch:v.patch}):(0,n.jsx)(ao,{oldContent:x,newContent:m.content}):ex&&C?(0,n.jsx)("iframe",{srcDoc:m.content,sandbox:"allow-scripts",style:{width:"100%",height:"100%",border:"none",background:"var(--bg)"},title:h("desktop.htmlPreview")}):ek&&C?(0,n.jsx)("div",{className:"markdown-body markdown-file-preview",style:{padding:"24px 32px"},children:(0,n.jsx)(tS.oz,{remarkPlugins:oD,rehypePlugins:oW,components:{h1:({children:e})=>(0,n.jsx)("h1",{id:oM(e),children:e}),h2:({children:e})=>(0,n.jsx)("h2",{id:oM(e),children:e}),h3:({children:e})=>(0,n.jsx)("h3",{id:oM(e),children:e}),code({className:e,children:t,...o}){let r=e?.replace("language-","").toLowerCase()??"",s=String(t);return e?.includes("language-")||s.includes("\n")?"mermaid"===r?(0,n.jsx)(oX,{code:s.replace(/\n$/,"")}):(0,n.jsx)(o0,{code:s.replace(/\n$/,""),lang:r}):(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:t})},pre:({children:e})=>(0,n.jsx)(n.Fragment,{children:e}),a({href:e,children:o,...r}){delete r.node;let i="text-(--accent-blue) underline underline-offset-2 hover:text-(--accent-blue)/80",a=s?ty(e,ev,t??ev):null;return a&&s?(0,n.jsx)("a",{href:e,...r,className:i,onClick:e=>{if(e.defaultPrevented||0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;let t=e.currentTarget.getAttribute("target");t&&"_self"!==t||(e.preventDefault(),s(a))},children:o}):(0,n.jsx)("a",{href:e,...r,className:i,target:"_blank",rel:"noopener noreferrer",children:o})},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:eh})}):(0,n.jsx)(tC.A,{language:"text"===m.language?"plaintext":m.language,style:oA,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:I,children:m.content})})]})}let ad={running:"var(--accent)",completed:"#22c55e",failed:"#ef4444",stopped:"#d97706"},ac={running:"desktop.subagentsStatusRunning",completed:"desktop.subagentsStatusCompleted",failed:"desktop.subagentsStatusFailed",stopped:"desktop.subagentsStatusStopped"};function ap({agent:e,selected:t,onSelect:o}){let[s,i]=(0,r.useState)(!1),{t:a}=(0,F.s)(),[l,d]=(0,r.useState)(()=>Date.now());(0,r.useEffect)(()=>{if("running"!==e.status)return;let t=setInterval(()=>d(Date.now()),1e3);return()=>clearInterval(t)},[e.status]);let c=e.completedAt?e.completedAt-e.startedAt:l-e.startedAt,p=e.tokens?.total??e.tokens?.input??e.tokens?.output,u=ad[e.status];return(0,n.jsxs)("button",{type:"button",onClick:()=>o?.(e),onMouseEnter:()=>i(!0),onMouseLeave:()=>i(!1),title:e.error||`${e.agentType} \xb7 ${e.description}`,style:{width:"100%",display:"flex",alignItems:"center",gap:7,padding:"5px 10px",border:"none",borderRadius:5,background:t?"var(--bg-selected)":s?"var(--bg-hover)":"transparent",color:"var(--text)",cursor:"pointer",textAlign:"left",minWidth:0},children:[(0,n.jsx)("span",{"aria-hidden":"true",style:{width:7,height:7,flexShrink:0,borderRadius:"50%",background:u,boxShadow:"running"===e.status?`0 0 0 0 ${u}`:"none",animation:"running"===e.status?"subagent-pulse 1.4s ease-out infinite":"none"}}),(0,n.jsx)("span",{style:{flexShrink:0,fontSize:10,fontFamily:"var(--font-mono)",fontWeight:600,color:"var(--text-dim)"},children:e.agentType}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:11.5,color:"var(--text-muted)"},children:e.description||a("desktop.subagentsNoDesc")}),void 0!==p&&p>0&&(0,n.jsxs)("span",{style:{flexShrink:0,fontSize:10,fontFamily:"var(--font-mono)",color:"var(--text-dim)"},children:[void 0===p?"":p>=1e6?`${(p/1e6).toFixed(1)}M`:p>=1e3?`${(p/1e3).toFixed(1)}k`:`${p}`,"t"]}),(0,n.jsx)("span",{style:{flexShrink:0,fontSize:10,fontFamily:"var(--font-mono)",color:"var(--text-dim)"},children:function(e){if(void 0===e)return"…";if(e<1e3)return`${e}ms`;let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let o=Math.floor(t/60),n=t%60;return n>0?`${o}m ${n}s`:`${o}m`}(c)}),(0,n.jsx)("span",{style:{flexShrink:0,fontSize:10,color:u},children:a(ac[e.status])})]})}function au({subagents:e,onSelect:t,selectedId:o}){let{t:s}=(0,F.s)(),[i,a]=(0,r.useState)(!0),l=e.filter(e=>"running"===e.status).length;return 0===e.length?(0,n.jsx)("div",{style:{padding:"18px 14px",fontSize:12,color:"var(--text-dim)",textAlign:"center"},children:s("desktop.subagentsEmpty")}):(0,n.jsxs)("section",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",flexShrink:0,padding:"6px 10px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsxs)("button",{type:"button",onClick:()=>a(e=>!e),"aria-expanded":i,style:{display:"flex",alignItems:"center",gap:6,flex:1,minWidth:0,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:11,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",textAlign:"left"},children:[(0,n.jsx)(v.K,{size:9,weight:"regular",style:{transform:i?"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:s("desktop.subagentsPanelTitle")})]}),l>0&&(0,n.jsxs)("span",{style:{marginRight:4,fontSize:10,fontFamily:"var(--font-mono)",color:"var(--accent)"},children:["● ",l," ",s("desktop.subagentsStatusRunning")]})]}),i&&(0,n.jsx)("div",{style:{flex:1,minHeight:0,overflowY:"auto",overflowX:"hidden",padding:"4px 0 8px"},children:e.map(e=>(0,n.jsx)(ap,{agent:e,selected:e.id===o,onSelect:t},e.id))})]})}let ah={user:{color:"var(--accent)"},assistant:{color:"var(--text)"},toolResult:{color:"var(--text-dim)"},bashExecution:{color:"var(--text-muted)"}};function ag({line:e,roleLabel:t}){let o=ah[e.role]??ah.toolResult;return(0,n.jsxs)("div",{style:{marginBottom:6},children:[(0,n.jsxs)("div",{style:{fontSize:10.5,fontWeight:600,color:o.color,marginBottom:2,fontFamily:"var(--font-mono)"},children:["[",t(e.role),"]"]}),(0,n.jsx)("pre",{style:{margin:0,fontSize:11.5,lineHeight:1.55,color:"var(--text-muted)",whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"var(--font-mono)",maxHeight:240,overflowY:"auto",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,padding:"6px 8px"},children:e.text})]})}function am({agent:e,cwd:t,onBack:o}){let{t:s}=(0,F.s)(),a=e=>s("user"===e?"desktop.transcriptRoleUser":"assistant"===e?"desktop.transcriptRoleAssistant":"toolResult"===e?"desktop.transcriptRoleResult":"desktop.transcriptRoleBash"),[l,d]=(0,r.useState)([]),[c,p]=(0,r.useState)(!0),[u,h]=(0,r.useState)(null),g=(0,r.useRef)(null),m=(0,r.useRef)(!0),f=(0,r.useCallback)(async(o=!1)=>{if(e.id&&t){o||p(!0);try{let n=new URLSearchParams({id:e.id,cwd:t}),r=await fetch(`/api/subagents/transcript?${n}`),s=await r.json();if(!r.ok||s.error){o||h(s.error??`HTTP ${r.status}`);return}d(s.lines??[]),h(null)}catch(e){o||h(e instanceof Error?e.message:String(e))}finally{p(!1)}}},[e.id,t]);(0,r.useEffect)(()=>{f()},[f]);let x=(0,r.useRef)(e.status);(0,r.useEffect)(()=>{let t="running"===x.current;x.current=e.status,t&&"running"!==e.status&&f(!0)},[e.status]),(0,r.useEffect)(()=>{if("running"!==e.status)return;let t=setInterval(()=>void f(!0),2e3);return()=>clearInterval(t)},[e.status,f]),(0,r.useEffect)(()=>{let e=g.current;e&&m.current&&(e.scrollTop=e.scrollHeight)},[l]);let k=e.completedAt?e.completedAt-e.startedAt:void 0,v=e.tokens?.total??e.tokens?.input??e.tokens?.output,y="completed"===e.status?"#22c55e":"failed"===e.status?"#ef4444":"stopped"===e.status?"#d97706":"var(--accent)";return(0,n.jsxs)("div",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column"},children:[(0,n.jsxs)("div",{style:{flexShrink:0,borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",padding:"6px 8px"},children:[(0,n.jsx)("div",{style:{display:"flex",alignItems:"center",gap:8},children:(0,n.jsxs)("button",{type:"button",onClick:o,title:s("desktop.subagentsBack"),style:{display:"inline-flex",alignItems:"center",gap:2,padding:"3px 6px",border:"none",borderRadius:5,background:"transparent",color:"var(--text-muted)",cursor:"pointer",fontSize:11},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)(i.Z,{size:12,"aria-hidden":"true"}),s("desktop.subagentsBack")]})}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginTop:4,minWidth:0},children:[(0,n.jsx)("span",{"aria-hidden":"true",style:{width:8,height:8,flexShrink:0,borderRadius:"50%",background:y,boxShadow:"running"===e.status?`0 0 0 0 ${y}`:"none",animation:"running"===e.status?"subagent-pulse 1.4s ease-out infinite":"none"}}),(0,n.jsx)("span",{style:{fontSize:12,fontWeight:700,color:"var(--text)",fontFamily:"var(--font-mono)",flexShrink:0},children:e.agentType}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:11.5,color:"var(--text-muted)"},children:e.description})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,marginTop:3,fontSize:10.5,fontFamily:"var(--font-mono)",color:"var(--text-dim)"},children:[void 0!==e.toolUses&&e.toolUses>0&&(0,n.jsxs)("span",{children:[e.toolUses," tool",1===e.toolUses?"":"s"]}),void 0!==v&&v>0&&(0,n.jsxs)("span",{children:[void 0===v?"":v>=1e6?`${(v/1e6).toFixed(1)}M`:v>=1e3?`${(v/1e3).toFixed(1)}k`:`${v}`," tokens"]}),void 0!==k&&(0,n.jsx)("span",{children:function(e){if(void 0===e)return"";if(e<1e3)return`${e}ms`;let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let o=Math.floor(t/60),n=t%60;return n>0?`${o}m ${n}s`:`${o}m`}(k)}),(0,n.jsx)("span",{style:{color:y},children:s(`desktop.subagentsStatus${"running"===e.status?"Running":"completed"===e.status?"Completed":"failed"===e.status?"Failed":"Stopped"}`)})]})]}),(0,n.jsx)("div",{ref:g,onScroll:e=>{let t=e.currentTarget;m.current=t.scrollHeight-t.scrollTop-t.clientHeight<40},style:{flex:1,minHeight:0,overflowY:"auto",overflowX:"hidden",padding:"8px 10px",background:"var(--bg)"},children:c?(0,n.jsxs)("div",{style:{fontSize:12,color:"var(--text-dim)",padding:"12px 4px"},children:[s("desktop.loading"),"…"]}):u?(0,n.jsx)("div",{style:{fontSize:12,color:"#ef4444",padding:"12px 4px"},children:u}):0===l.length?(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-dim)",padding:"12px 4px"},children:"running"===e.status?s("desktop.subagentsWaitingFirstMessage"):s("desktop.subagentsNoTranscript")}):(0,n.jsx)("div",{style:{paddingBottom:8},children:l.map((e,t)=>(0,n.jsx)(ag,{line:e,roleLabel:a},t))})})]})}function af({tabs:e,activeTabId:t,onSelectTab:o,onCloseTab:s}){let{t:i}=(0,F.s)(),[a,l]=(0,r.useState)(null);return(0,n.jsx)("div",{style:{display:"flex",alignItems:"flex-end",background:"var(--bg-panel)",overflowX:"auto",flexShrink:0,height:36},children:e.map(e=>{let r=e.id===t;return(0,n.jsxs)("div",{onClick:()=>o(e.id),onMouseDown:e=>{1===e.button&&e.preventDefault()},onAuxClick:t=>{1===t.button&&(t.preventDefault(),t.stopPropagation(),s(e.id))},style:{display:"flex",alignItems:"center",gap:6,height:36,paddingLeft:12,paddingRight:6,borderRight:"1px solid var(--border)",background:r?"var(--bg)":"var(--bg-panel)",cursor:"pointer",fontSize:12,color:r?"var(--text)":"var(--text-muted)",whiteSpace:"nowrap",maxWidth:180,minWidth:80,flexShrink:0,userSelect:"none",transition:"background 0.1s, color 0.1s"},children:[(0,n.jsx)("span",{style:{flexShrink:0,opacity:r?1:.7,display:"flex",alignItems:"center"},children:er(e.label,13)}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",flex:1,fontWeight:r?500:400},title:e.filePath,children:e.label}),(0,n.jsx)("button",{onClick:t=>{t.stopPropagation(),s(e.id)},onMouseEnter:()=>l(e.id),onMouseLeave:()=>l(null),style:{display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,background:a===e.id?"var(--bg-hover)":"transparent",border:"none",borderRadius:4,color:a===e.id?"var(--text)":"var(--text-dim)",cursor:"pointer",padding:0,flexShrink:0,transition:"background 0.1s, color 0.1s"},title:i("desktop.closeTab"),"aria-label":i("desktop.closeTabWithLabel",{label:e.label}),children:(0,n.jsx)(p.X,{size:11,"aria-hidden":"true"})})]},e.id)})})}var ax=o(27289),ak=o(93534),av=o(45781),ay=o(68731),ab=o(93912),aw=o(23675),aj=o(48716),aS=o(47013),aC=o(51265);let aT={"restore-script":"restore","generate-cmd":"cmd",keep:"keep","keep-with-warning":"warning",manual:"manual"};function aR({cwd:e}){let{t}=(0,F.s)(),o=(0,r.useRef)(null),[s,i]=(0,r.useState)(!0),[a,l]=(0,r.useState)(!1),[d,c]=(0,r.useState)(!1),[p,u]=(0,r.useState)(null),[h,g]=(0,r.useState)(null),[m,f]=(0,r.useState)(new Set),[x,k]=(0,r.useState)(new Set),[v,y]=(0,r.useState)(!1),[b,w]=(0,r.useState)(null),[j,S]=(0,r.useState)(!1),[C,T]=(0,r.useState)(null),[R,z]=(0,r.useState)([]),[I,M]=(0,r.useState)(""),[P,E]=(0,r.useState)(null),[D,W]=(0,r.useState)(null);(0,r.useEffect)(()=>{fetch("/api/models").then(e=>e.json()).then(e=>{let t=e.models??[];z(t),t.length>0&&M(`${t[0].provider}/${t[0].id}`)}).catch(()=>{})},[]);let A=(0,r.useCallback)(async()=>{c(!0),u(null);try{let e=await fetch("/api/backup/export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({includeSecrets:s,includeSessions:a})});if(!e.ok){let t=await e.json();u(t.error??`HTTP ${e.status}`);return}let t=await e.blob(),o=(e.headers.get("Content-Disposition")??"").match(/filename="?([^";]+)"?/),n=URL.createObjectURL(t),r=document.createElement("a");r.href=n,r.download=o?.[1]??"pi-backup.zip",document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(n)}catch{u(String(t("desktop.backupExportFailed")))}finally{c(!1)}},[s,a,t]),N=(0,r.useCallback)(async e=>{if(e){w(null),T(null),g(null);try{let o=new FormData;o.append("phase","parse"),o.append("file",e);let n=await fetch("/api/backup/import",{method:"POST",body:o}),r=await n.json();if(!n.ok||r.error)return void w(r.error??`HTTP ${n.status}`);if("preview"!==r.phase||!r.preview)return void w(String(t("desktop.backupImportFailed")));g(r),f(new Set(r.preview.categories)),k(new Set),y(!1)}catch{w(String(t("desktop.backupImportFailed")))}}},[t]),$=(0,r.useCallback)(async()=>{if(h){S(!0),w(null);try{let e=new FormData;e.append("phase","restore"),e.append("token",h.token),e.append("selections",JSON.stringify({categories:[...m],skippedMcpServers:[...x],reinstallNpm:v}));let n=await fetch("/api/backup/import",{method:"POST",body:e}),r=await n.json();if(!n.ok||r.error)return void w(r.error??`HTTP ${n.status}`);if("report"!==r.phase||!r.report)return void w(String(t("desktop.backupRestoreFailed")));T(r.report),g(null),o.current&&(o.current.value="")}catch{w(String(t("desktop.backupRestoreFailed")))}finally{S(!1)}}},[h,m,x,v,t]),L=(0,r.useCallback)(async o=>{if(o.installPrompt&&e){E(o.name),W(null);try{let t=I.indexOf("/"),n=t>0?I.slice(0,t):void 0,r=t>0?I.slice(t+1):void 0,s=await fetch("/api/agent/new",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,message:o.installPrompt,provider:n,modelId:r})}),i=await s.json();if(!s.ok||i.error)return void w(i.error??`HTTP ${s.status}`);W({server:o.name,sessionId:i.sessionId})}catch{w(String(t("desktop.backupInstallSessionFailed")))}finally{E(null)}}},[e,I,t]),O=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:s,onChange:e=>i(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:"#ef4444"},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:a,onChange:e=>l(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:A,disabled:d,style:{display:"inline-flex",alignItems:"center",gap:7,padding:"8px 14px",background:"var(--accent)",border:"none",borderRadius:6,color:"#fff",fontSize:12,fontWeight:600,cursor:d?"wait":"pointer"},children:[(0,n.jsx)(aS.f,{size:15,"aria-hidden":"true"}),d?t("desktop.backupExporting"):t("desktop.backupExportButton")]}),p&&(0,n.jsx)("p",{style:{margin:"8px 0 0",fontSize:11,color:"#ef4444"},children:p})]}),(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:o,type:"file",accept:".zip,application/zip",onChange:e=>N(e.target.files?.[0]),style:{display:"none"}}),(0,n.jsxs)("button",{type:"button",onClick:()=>o.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)(aC._,{size:15,"aria-hidden":"true"}),t("desktop.backupImportButton")]}),b&&(0,n.jsx)("p",{style:{margin:"0 0 10px",fontSize:11,color:"#ef4444",lineHeight:1.5},children:b}),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 ",O(h.preview.manifest.sourcePlatform)," →",O(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:m.has(e),onChange:t=>{let o=new Set(m);t.target.checked?o.add(e):o.delete(e),f(o)}}),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(o=>(0,n.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:8,fontSize:12},children:[(0,n.jsx)("input",{type:"checkbox",checked:!x.has(o.name),onChange:e=>{let t=new Set(x);e.target.checked?t.delete(o.name):t.add(o.name),k(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:o.name}),(0,n.jsx)("span",{style:{fontSize:10,padding:"1px 6px",borderRadius:8,background:"manual"===o.action||"keep-with-warning"===o.action?"rgba(239,68,68,0.15)":"var(--bg-selected)",color:"manual"===o.action||"keep-with-warning"===o.action?"#ef4444":"var(--text-muted)"},children:aT[o.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:o.original.command}),o.adapted&&o.adapted.command!==o.original.command&&(0,n.jsxs)(n.Fragment,{children:[" → ",(0,n.jsx)("code",{style:{fontFamily:"var(--font-mono)",color:"var(--text)"},children:o.adapted.command})]})]}),o.reason&&(0,n.jsx)("div",{style:{fontSize:11,color:"#ef4444"},children:o.reason}),"manual"===o.action&&o.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:R.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:P===o.name,onClick:()=>L(o),style:{padding:"4px 10px",fontSize:11,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:4,color:"var(--text)",cursor:P===o.name?"wait":"pointer"},children:P===o.name?"…":t("desktop.backupInstallSession")}),D?.server===o.name&&(0,n.jsx)("a",{href:`?session=${encodeURIComponent(D.sessionId)}`,style:{fontSize:11,color:"var(--accent)"},children:t("desktop.backupOpenSession")})]})]})]},o.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:v,onChange:e=>y(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:"#ef4444",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:$,disabled:j||0===m.size,style:{display:"inline-flex",alignItems:"center",gap:7,padding:"8px 14px",background:"var(--accent)",border:"none",borderRadius:6,color:"#fff",fontSize:12,fontWeight:600,cursor:j?"wait":"pointer",opacity:0===m.size?.5:1},children:[(0,n.jsx)(aC._,{size:15,"aria-hidden":"true"}),j?t("desktop.backupRestoring"):t("desktop.backupRestoreButton")]}),(0,n.jsx)("button",{type:"button",onClick:()=>{g(null),o.current&&(o.current.value="")},disabled:j,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)(nd.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:"#4ade80",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:"#fbbf24",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:"#ef4444",marginBottom:4},children:[(0,n.jsx)(G.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:"#ef4444",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:"#fbbf24",lineHeight:1.5},children:t("desktop.backupRestartHint")})]})]})]})}let az={position:"relative",width:40,height:22,borderRadius:11,border:"none",cursor:"pointer",padding:0,flexShrink:0,transition:"background 0.18s ease",outline:"none"},aI={position:"absolute",top:3,width:16,height:16,borderRadius:"50%",background:"#fff",transition:"left 0.18s ease, transform 0.18s ease",boxShadow:"0 1px 3px rgba(0,0,0,0.18)"};function aM({checked:e,onChange:t,label:o,description:r}){return(0,n.jsxs)("label",{style:{display:"flex",alignItems:r?"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:o}),r&&(0,n.jsx)("span",{style:{display:"block",fontSize:11,lineHeight:1.5,color:"var(--text-muted)",marginTop:2},children:r})]}),(0,n.jsx)("button",{type:"button",role:"switch","aria-checked":e,onClick:o=>{o.preventDefault(),t(!e)},style:{...az,background:e?"var(--accent)":"color-mix(in srgb, var(--border) 70%, var(--bg))"},children:(0,n.jsx)("span",{style:{...aI,left:e?21:3}})})]})}function aP({title:e,description:t,children:o}){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:o})]})}let aE="pi-input-shortcut";function aF(){try{let e=localStorage.getItem(aE);return"ctrl-enter"===e?"ctrl-enter":"enter"}catch{return"enter"}}function aD(){let{t:e}=(0,F.s)(),[t,o]=(0,r.useState)(aF);(0,r.useEffect)(()=>{let e=()=>o(aF());return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[]);let s=(0,r.useCallback)(e=>{o(e);try{localStorage.setItem(aE,e),window.dispatchEvent(new StorageEvent("storage",{key:aE,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)(aP,{title:e("desktop.inputShortcut"),description:e("desktop.inputShortcutDescription"),children:(0,n.jsx)(aM,{checked:"ctrl-enter"===t,onChange:e=>s(e?"ctrl-enter":"enter"),label:e("desktop.useCtrlEnter"),description:e("desktop.useCtrlEnterDescription")})})]})}var aW=o(95650),aA=o(55803),aN=o(23602),a$=o(18613),aL=o(12779);let aO={display:"flex",gap:6,flexWrap:"wrap"};function aH(e,t,o){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:o?"not-allowed":"pointer",opacity:o?.5:1,transition:"border-color 0.15s, background 0.15s, color 0.15s",outline:"none",whiteSpace:"nowrap"}}function aB({icon:e,label:t,actions:o}){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}),o&&(0,n.jsx)("span",{style:{display:"inline-flex",alignItems:"center",gap:12,marginLeft:"auto"},children:o})]})}let aU={display:"inline-flex",alignItems:"center",gap:6,padding:0,border:0,background:"transparent",color:"var(--accent)",fontSize:11,cursor:"pointer",whiteSpace:"nowrap"},a_={onMouseEnter:e=>{e.currentTarget.style.textDecoration="underline"},onMouseLeave:e=>{e.currentTarget.style.textDecoration="none"}};function aq({title:e,description:t,children:o}){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}),o]})}function aV({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 aK({hasDark:e,hasLight:t,darkColor:o,lightColor:r,t:s}){return(0,n.jsxs)("span",{style:{display:"inline-flex",gap:3,alignItems:"center",flexShrink:0},children:[e&&(0,n.jsx)("span",{title:s("desktop.darkVariant"),style:{display:"inline-block",width:7,height:7,borderRadius:"50%",background:o??"#7c6f64"}}),t&&(0,n.jsx)("span",{title:s("desktop.lightVariant"),style:{display:"inline-block",width:7,height:7,borderRadius:"50%",background:r??"#d5c4a1",border:"1px solid rgba(0,0,0,0.1)"}})]})}function aG(){let{mode:e,resolvedMode:t,themeName:o,setMode:s,setTheme:i,previewTheme:a,clearPreview:l,isThemeCached:d,borderDepth:c,setBorderDepth:p}=ov(),{locale:u,setLocale:h,t:g}=(0,F.s)(),[m,f]=(0,r.useState)([]),[x,k]=(0,r.useState)(!0),[v,y]=(0,r.useState)(null),[b,w]=(0,r.useState)(null);(0,r.useEffect)(()=>{let e=!1;return fetch("/api/themes").then(e=>e.ok?e.json():null).then(t=>{!e&&t&&f(t.themeSets)}).catch(()=>{}).finally(()=>{e||k(!1)}),()=>{e=!0}},[]);let j=(0,r.useCallback)(e=>{y(e),i(e).finally(()=>y(null))},[i]),S=(0,r.useRef)(null),C=(0,r.useCallback)(e=>{w(e),null!==S.current&&window.clearTimeout(S.current),S.current=window.setTimeout(()=>{S.current=null,null!==e?d(e)&&a(e):l()},160)},[a,l,d]),T=(0,r.useCallback)(e=>{s(e)},[s]),R=(0,r.useCallback)(()=>{window.piDesktop?.openThemeFolder()},[]),z=(0,r.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:g("desktop.display")})}),(0,n.jsxs)(aq,{title:g("desktop.theme"),description:g("desktop.themeDescription"),children:[(0,n.jsx)(aB,{icon:(0,n.jsx)(aW.p,{size:14,weight:"fill"}),label:g("desktop.colorScheme"),actions:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("button",{type:"button",onClick:R,style:aU,...a_,children:[(0,n.jsx)(aA.N,{size:12,weight:"regular","aria-hidden":"true"}),g("desktop.openThemeFolder")]}),(0,n.jsxs)("button",{type:"button",onClick:z,style:aU,...a_,children:[(0,n.jsx)(aN.B,{size:12,weight:"regular","aria-hidden":"true"}),g("desktop.learnPiThemes")]})]})}),x?(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-dim)"},children:g("desktop.loadingThemes")}):(0,n.jsxs)("div",{style:aO,children:[(0,n.jsx)("button",{type:"button",onClick:()=>j(""),disabled:null!==v,style:aH(""===o,"__default__"===b,null!==v),onMouseEnter:()=>C(""),onMouseLeave:()=>C(null),children:g("desktop.defaultTheme")}),m.map(e=>(0,n.jsxs)("button",{type:"button",onClick:()=>j(e.name),disabled:null!==v,style:aH(o===e.name,b===e.name,v===e.name),onMouseEnter:()=>C(e.name),onMouseLeave:()=>C(null),children:[e.displayName,(0,n.jsx)(aK,{hasDark:e.hasDark,hasLight:e.hasLight,darkColor:e.accent,lightColor:e.accentLight,t:g})]},e.name))]}),(0,n.jsxs)("div",{style:{marginTop:20},children:[(0,n.jsx)(aB,{icon:(0,n.jsx)(aV,{depth:c}),label:`${g("desktop.borderVisibility")} (${c})`}),(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:g("desktop.borderSubtle")}),(0,n.jsx)("input",{type:"range",min:0,max:100,step:1,value:c,onChange:e=>p(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:g("desktop.borderBold")})]}),(0,n.jsx)("div",{style:{marginTop:10,display:"flex",gap:10},children:[0,25,50,75,100].map(e=>{let t=c===e,o=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:()=>p(e),style:{width:28,height:20,border:`2px solid ${t?"var(--accent)":o}`,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)(aB,{icon:"dark"===t?(0,n.jsx)(a$.A,{size:14,weight:"fill"}):(0,n.jsx)(aL.b,{size:14,weight:"fill"}),label:g("desktop.appearanceMode")}),(0,n.jsx)("div",{style:aO,children:[{value:"light",icon:(0,n.jsx)(aL.b,{size:15,weight:"light"===e?"fill":"regular"})},{value:"dark",icon:(0,n.jsx)(a$.A,{size:15,weight:"dark"===e?"fill":"regular"})},{value:"system",icon:(0,n.jsx)(ak.V,{size:15,weight:"system"===e?"fill":"regular"})}].map(t=>{let o=e===t.value;return(0,n.jsxs)("button",{type:"button",onClick:()=>T(t.value),style:aH(o,b===`mode:${t.value}`),onMouseEnter:()=>w(`mode:${t.value}`),onMouseLeave:()=>w(null),children:[t.icon,g(`desktop.${t.value}`)]},t.value)})})]}),!x&&0===m.length&&(0,n.jsxs)("p",{style:{margin:"14px 0 0",fontSize:11,color:"var(--text-dim)",lineHeight:1.5},children:[g("desktop.noCustomThemes")," ",g("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"})," ",g("desktop.noCustomThemesHint2")]})]}),(0,n.jsx)(aq,{title:g("desktop.language"),description:g("desktop.languageDescription"),children:(0,n.jsx)("div",{style:aO,children:["en","zh-CN"].map(e=>(0,n.jsx)("button",{type:"button",onClick:()=>h("zh-CN"===e?"zh-CN":"en"),style:aH("zh-CN"===e?"zh-CN"===u:"zh-CN"!==u,b===`lang:${e}`),onMouseEnter:()=>w(`lang:${e}`),onMouseLeave:()=>w(null),children:"en"===e?g("desktop.english"):g("desktop.chinese")},e))})})]})}var aJ=o(94638);function aY({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 aX({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 aZ({children:e}){return(0,n.jsx)("div",{style:{padding:"0 14px"},children:e})}function aQ({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 a0=[{value:"normal",labelKey:"modes.collabNormal"},{value:"plan",labelKey:"modes.collabPlan"},{value:"goal",labelKey:"modes.collabGoal"}],a1=[{value:"economy",labelKey:"modes.tokenEconomy"},{value:"full",labelKey:"modes.tokenFull"},{value:"delivery",labelKey:"modes.tokenDelivery"}],a2=[{value:"ask",labelKey:"modes.approvalAsk"},{value:"auto",labelKey:"modes.approvalAuto"},{value:"yolo",labelKey:"modes.approvalYolo"}];function a4({options:e,value:t,onChange:o,disabled:r,accentFor:s}){let{t:i}=(0,F.s)();return(0,n.jsx)("div",{role:"radiogroup",style:{display:"flex",border:"1px solid var(--border)",borderRadius:8,overflow:"hidden",height:28,flexShrink:0},children:e.map(e=>{let a=e.value===t,l=s?.(e.value);return(0,n.jsx)("button",{type:"button",role:"radio","aria-checked":a,disabled:r,onClick:()=>{e.value!==t&&o(e.value)},style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",padding:"0 12px",background:a?"var(--bg-selected)":"none",border:"none",color:a?l??"var(--accent)":"var(--text-muted)",cursor:r?"not-allowed":"pointer",fontSize:11.5,fontWeight:a?650:500,opacity:r?.5:1,whiteSpace:"nowrap",transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{a||r||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{a||(e.currentTarget.style.background="none")},children:i(e.labelKey)},e.value)})})}function a6(){let{t:e}=(0,F.s)(),[t,o]=(0,r.useState)({tasksBoard:!0}),[s,i]=(0,r.useState)(null),[a,l]=(0,r.useState)(!1),[d,c]=(0,r.useState)(!1);(0,r.useEffect)(()=>{let e=!1;return(async()=>{try{let[t,n]=await Promise.all([fetch("/api/features"),fetch("/api/modes")]);if(!e&&t.ok){let e=await t.json();o(t=>({...t,...e}))}if(!e&&n.ok){let e=await n.json();i({collaborationMode:eN(e.collaborationMode),tokenMode:e$(e.tokenMode),toolApprovalMode:eL(e.toolApprovalMode),permissionRules:e.permissionRules??{allow:[],ask:[],deny:[]}})}e||l(!0)}catch{}})(),()=>{e=!0}},[]);let p=(0,r.useCallback)(async e=>{c(!0);try{let t=await fetch("/api/features",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({tasksBoard:e})});if(t.ok){let e=await t.json();o(t=>({...t,...e.features})),window.dispatchEvent(new CustomEvent("pi:features-changed"))}}catch{}finally{c(!1)}},[]),u=(0,r.useCallback)(async e=>{c(!0);try{let t=await fetch("/api/modes",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(t.ok){let e=await t.json();i(t=>t?{...t,collaborationMode:eN(e.modes?.collaborationMode??t.collaborationMode),tokenMode:e$(e.modes?.tokenMode??t.tokenMode),toolApprovalMode:eL(e.modes?.toolApprovalMode??t.toolApprovalMode),permissionRules:e.modes?.permissionRules??t.permissionRules}:t),window.dispatchEvent(new CustomEvent("pi:modes-changed"))}}catch{}finally{c(!1)}},[]);return(0,n.jsx)("div",{style:{flex:1,overflow:"auto",minWidth:0,padding:"20px 22px",display:"flex",flexDirection:"column",gap:16},children:(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[a?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(aY,{children:(0,n.jsx)(aZ,{children:(0,n.jsx)(aM,{checked:t.tasksBoard,onChange:e=>void p(e),label:(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6},children:[(0,n.jsx)(aJ.x,{size:14,"aria-hidden":"true"}),e("desktop.featuresTasksBoard"),(0,n.jsx)("span",{style:{borderRadius:999,background:"rgba(37,99,235,0.12)",color:"var(--accent)",padding:"1px 7px",fontSize:9,fontWeight:700,textTransform:"uppercase",letterSpacing:"0.04em"},children:"Beta"})]}),description:e("desktop.featuresTasksBoardDesc")})})}),s&&(0,n.jsxs)(aY,{children:[(0,n.jsx)(aX,{children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:16,padding:"12px 0"},children:[(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"var(--text)"},children:e("desktop.featuresCollabDefault")}),(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:2},children:e("desktop.featuresCollabDefaultDesc")})]}),(0,n.jsx)(a4,{options:a0,value:s.collaborationMode,onChange:e=>void u({collaborationMode:e}),disabled:d})]})}),(0,n.jsx)(aX,{children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:16,padding:"12px 0"},children:[(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"var(--text)"},children:e("desktop.featuresTokenDefault")}),(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:2},children:e("desktop.featuresTokenDefaultDesc")})]}),(0,n.jsx)(a4,{options:a1,value:s.tokenMode,onChange:e=>void u({tokenMode:e}),disabled:d})]})}),(0,n.jsx)(aZ,{children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:16,padding:"12px 0"},children:[(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"var(--text)"},children:e("desktop.featuresApprovalDefault")}),(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:2},children:e("desktop.featuresApprovalDefaultDesc")})]}),(0,n.jsx)(a4,{options:a2,value:s.toolApprovalMode,onChange:e=>void u({toolApprovalMode:e}),disabled:d,accentFor:e=>"yolo"===e?"var(--accent-red, #ef4444)":void 0})]})})]})]}):(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)"},children:e("desktop.featuresLoading")}),(0,n.jsx)(aQ,{children:e("desktop.featuresDesc")}),d&&(0,n.jsx)("div",{style:{padding:"0 2px",fontSize:11,color:"var(--text-muted)"},children:e("desktop.featuresSaving")})]})})}var a8=o(76553);function a5({open:e,onClose:t,children:o}){let[s,i]=(0,r.useState)(!1),[a,l]=(0,r.useState)(!1);return((0,r.useEffect)(()=>{if(e)l(!0),requestAnimationFrame(()=>requestAnimationFrame(()=>i(!0)));else{i(!1);let e=setTimeout(()=>l(!1),250);return()=>clearTimeout(e)}},[e]),a)?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{onClick:t,style:{position:"fixed",inset:0,zIndex:1001,background:s?"rgba(0,0,0,0.35)":"rgba(0,0,0,0)",transition:"background 0.25s ease"}}),(0,n.jsxs)("div",{style:{position:"fixed",bottom:0,left:0,right:0,zIndex:1002,maxHeight:"85dvh",borderRadius:"16px 16px 0 0",background:"var(--bg)",boxShadow:"0 -4px 24px rgba(0,0,0,0.15)",transform:s?"translateY(0)":"translateY(100%)",transition:"transform 0.25s cubic-bezier(0.32, 0.72, 0, 1)",display:"flex",flexDirection:"column",overflow:"hidden"},children:[(0,n.jsx)("div",{style:{display:"flex",justifyContent:"center",padding:"10px 0 4px",flexShrink:0},children:(0,n.jsx)("div",{style:{width:36,height:4,borderRadius:2,background:"var(--border)"}})}),(0,n.jsx)("div",{style:{flex:1,overflow:"auto",minHeight:0},children:o})]})]}):null}function a3({onSessionsChanged:e}){let{t}=(0,F.s)(),o=$(),[s,i]=(0,r.useState)(null),[a,l]=(0,r.useState)([]),[d,c]=(0,r.useState)([]),[u,h]=(0,r.useState)(new Set),[g,m]=(0,r.useState)(null),[f,x]=(0,r.useState)({imported:0,skipped:0,errors:0,total:0,done:!1}),[k,v]=(0,r.useState)([]),[y,b]=(0,r.useState)(!1),[w,j]=(0,r.useState)({done:0,total:0}),[S,C]=(0,r.useState)(!1),[T,R]=(0,r.useState)(null),[z,M]=(0,r.useState)(!1),P=(0,r.useCallback)(async()=>{C(!0),R(null);try{let e=await fetch("/api/import/discover"),t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);l(t.sources),t.reasonix?.available&&(c(t.reasonix.projects),i("reasonix"))}catch(e){R(e instanceof Error?e.message:String(e))}finally{C(!1)}},[]),[E,D]=(0,r.useState)(!1);(0,r.useEffect)(()=>{E||(D(!0),P())},[E,P]);let W=(0,r.useCallback)(async()=>{if(0!==u.size&&s){C(!0),R(null);try{let e=await fetch("/api/import/execute",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({source:s,projects:[...u]})}),t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);m(t.jobId)}catch(e){R(e instanceof Error?e.message:String(e))}finally{C(!1)}}},[s,u]);(0,r.useEffect)(()=>{let t;if(!g)return;let o=!0,n=async()=>{if(o)try{let r=await fetch(`/api/import/status?jobId=${encodeURIComponent(g)}`),s=await r.json();if(!o)return;x({imported:s.imported??0,skipped:s.skipped??0,errors:s.errors??0,total:s.total??0,done:s.done??!1}),s.done&&s.sessionIds&&(v(s.sessionIds),e?.()),s.done||(t=setTimeout(n,800))}catch{o&&(t=setTimeout(n,2e3))}};return n(),()=>{o=!1,clearTimeout(t)}},[g,e]);let A=(0,r.useCallback)(async()=>{if(0===k.length)return;b(!0),j({done:0,total:k.length});let t=0,o=async()=>{for(;t<k.length;){let e=t++,o=k[e];if(o){try{await fetch(`/api/sessions/${encodeURIComponent(o)}/auto-name`,{method:"POST"})}catch{}j({done:e+1,total:k.length})}}},n=Array.from({length:Math.min(4,k.length)},o);await Promise.all(n),b(!1),e?.()},[k,e]);if(f.done&&k.length>0)return(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},children:[(0,n.jsx)(nO.r,{size:20,weight:"fill",style:{color:"#4ade80"}}),(0,n.jsx)("span",{style:{fontSize:14,fontWeight:600,color:"var(--text)"},children:t("desktop.importDone")??"导入完成"})]}),(0,n.jsxs)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.6},children:[t("desktop.importedSummary",{imported:f.imported})??`成功导入 ${f.imported} 个会话`,f.skipped>0&&(0,n.jsx)("span",{style:{marginLeft:8},children:t("desktop.importSkippedCount",{skipped:f.skipped})??`,${f.skipped} 个跳过`}),f.errors>0&&(0,n.jsx)("span",{style:{marginLeft:8,color:"#ef4444"},children:t("desktop.importErrorsCount",{errors:f.errors})??`,${f.errors} 个失败`})]}),y?(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,fontSize:12,color:"var(--text-muted)"},children:[(0,n.jsx)(_.y,{size:14,style:{animation:"spin 1s linear infinite"}}),t("desktop.importGeneratingTitles")??"正在生成标题…"," ","(",w.done,"/",w.total,")"]}):(0,n.jsxs)("button",{type:"button",onClick:A,style:{display:"inline-flex",alignItems:"center",gap:7,padding:"8px 14px",background:"var(--accent)",border:"none",borderRadius:6,color:"#fff",fontSize:12,fontWeight:600,cursor:"pointer",alignSelf:"flex-start"},children:[(0,n.jsx)(a8.o,{size:15}),t("desktop.importGenerateTitles")??"为导入的会话生成标题"]}),(0,n.jsx)("button",{type:"button",onClick:()=>{m(null),x({imported:0,skipped:0,errors:0,total:0,done:!1}),v([]),b(!1),j({done:0,total:0})},style:{display:"inline-flex",alignItems:"center",gap:7,padding:"8px 14px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",fontSize:12,cursor:"pointer",alignSelf:"flex-start"},children:t("desktop.importAgain")??"再次导入"})]});let N=(0,n.jsxs)("div",{style:{padding:o?"12px 18px":"18px 22px",display:"flex",flexDirection:"column",gap:14},children:[T&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:8,fontSize:12,color:"#ef4444",lineHeight:1.5},children:[(0,n.jsx)(G.N,{size:14,style:{flexShrink:0,marginTop:1}}),(0,n.jsx)("span",{children:T})]}),!g&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.6},children:t("desktop.importSessionsDesc")??"从其他 AI 编码工具导入历史对话记录到 pi-web。目前支持 Reasonix,更多工具陆续支持中。"}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:a.map(e=>(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:10,padding:"10px 14px",border:"1px solid var(--border)",borderRadius:8,cursor:"available"===e.status?"pointer":"default",background:s===e.key?"var(--bg-selected)":"var(--bg-panel)",opacity:"unavailable"===e.status?.5:"coming-soon"===e.status?.7:1,transition:"background 0.12s"},children:[(0,n.jsx)("input",{type:"radio",name:"import-source",value:e.key,checked:s===e.key,disabled:"available"!==e.status,onChange:()=>i(e.key)}),(0,n.jsxs)("div",{style:{flex:1},children:[(0,n.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"var(--text)"},children:e.label}),"coming-soon"===e.status&&(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",marginTop:1},children:t("desktop.comingSoon")??"即将支持"})]}),"reasonix"===e.key&&d.length>0&&(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-muted)"},children:[d.length," ",t("desktop.projects")??"个项目"," \xb7 ",d.reduce((e,t)=>e+t.sessions,0)," ",t("desktop.sessions")??"会话"]})]},e.key))}),"reasonix"===s&&d.length>0&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,n.jsx)("span",{style:{fontSize:12,fontWeight:600,color:"var(--text)"},children:t("desktop.importSelectProjects")??"选择要导入的项目"}),(0,n.jsx)("button",{type:"button",onClick:()=>h(new Set(d.map(e=>e.name))),style:a7,children:t("desktop.importSelectAll")??"全选"}),(0,n.jsx)("button",{type:"button",onClick:()=>h(new Set),style:a7,children:t("desktop.importDeselectAll")??"取消全选"})]}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:d.map(e=>(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:10,padding:"8px 12px",border:"1px solid var(--border)",borderRadius:6,cursor:"pointer",background:u.has(e.name)?"var(--bg-selected)":"transparent",transition:"background 0.12s"},children:[(0,n.jsx)("input",{type:"checkbox",checked:u.has(e.name),onChange:()=>{var t;return t=e.name,void h(e=>{let o=new Set(e);return o.has(t)?o.delete(t):o.add(t),o})}}),(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:12,fontWeight:500,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),(0,n.jsxs)("div",{style:{fontSize:11,color:"var(--text-dim)",marginTop:2},children:[e.sessions," ",t("desktop.sessions")??"会话",e.matched&&(0,n.jsxs)("span",{style:{marginLeft:8,color:"var(--accent)"},children:["→ ",t("desktop.importMerged")??"合并到现有项目",e.existingCount>0&&` (${t("desktop.importExistingCount",{count:e.existingCount})??`${e.existingCount} 个已有`})`]}),!e.matched&&(0,n.jsxs)("span",{style:{marginLeft:8,color:"var(--text-muted)"},children:["→ ",t("desktop.importNewProject")??"新建项目"]})]})]})]},e.name))}),(0,n.jsx)("button",{type:"button",onClick:W,disabled:S||0===u.size,style:{display:"inline-flex",alignItems:"center",gap:7,padding:"8px 14px",background:"var(--accent)",border:"none",borderRadius:6,color:"#fff",fontSize:12,fontWeight:600,cursor:0===u.size?"not-allowed":"pointer",alignSelf:"flex-start",opacity:0===u.size?.5:1},children:S?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(_.y,{size:14,style:{animation:"spin 1s linear infinite"}})," ",t("desktop.importing")??"导入中…"]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(I.z,{size:15})," ",t("desktop.importStart")??"开始导入"]})})]}),"reasonix"===s&&0===d.length&&!S&&(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",padding:"12px 0"},children:t("desktop.importNoData")??"未找到 Reasonix 数据。请确认 ~/.reasonix/projects/ 目录存在且包含会话文件。"})]}),g&&!f.done&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,fontSize:12,color:"var(--text)"},children:[(0,n.jsx)(_.y,{size:14,style:{animation:"spin 1s linear infinite"}}),t("desktop.importing")??"导入中…"]}),(0,n.jsx)("div",{style:{height:6,borderRadius:3,background:"var(--bg-panel)",overflow:"hidden"},children:(0,n.jsx)("div",{style:{height:"100%",borderRadius:3,background:"var(--accent)",width:`${f.total>0?(f.imported+f.skipped+f.errors)/f.total*100:0}%`,transition:"width 0.3s ease"}})}),(0,n.jsxs)("div",{style:{fontSize:11,color:"var(--text-dim)"},children:[f.imported+f.skipped+f.errors," / ",f.total,f.skipped>0&&` \xb7 ${t("desktop.importSkippedCount",{skipped:f.skipped})??`${f.skipped} 跳过`}`]})]})]});return o?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("button",{type:"button",onClick:()=>M(!0),style:{display:"flex",alignItems:"center",gap:8,padding:"10px 14px",width:"100%",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:8,color:"var(--text)",fontSize:12,cursor:"pointer"},children:[(0,n.jsx)(I.z,{size:16}),(0,n.jsx)("span",{style:{fontWeight:500},children:t("desktop.importSessions")??"导入会话"})]}),(0,n.jsxs)(a5,{open:z,onClose:()=>M(!1),children:[(0,n.jsxs)("div",{style:{padding:"4px 18px 14px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,n.jsx)("span",{style:{fontSize:15,fontWeight:700,color:"var(--text)"},children:t("desktop.importSessions")??"导入会话"}),(0,n.jsx)("button",{onClick:()=>M(!1),style:a9,children:(0,n.jsx)(p.X,{size:18})})]}),N]})]}):N}let a7={background:"none",border:"none",color:"var(--accent)",fontSize:11,cursor:"pointer",padding:"2px 4px"},a9={background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",padding:4,display:"flex"},le="deepseek-vision",lt={padding:"7px 9px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",fontSize:12,fontFamily:"var(--font-mono)",width:"100%",boxSizing:"border-box"};function lo(){return{fontSize:12,color:"var(--text-muted)"}}let ln={padding:"7px 12px",border:"none",borderRadius:6,background:"var(--accent)",color:"#fff",cursor:"pointer",fontSize:12};function lr({sessionId:e}){let{t}=(0,F.s)(),[o,s]=(0,r.useState)(!1),[i,a]=(0,r.useState)(null),[l,d]=(0,r.useState)(!1),[c,p]=(0,r.useState)(null),[u,h]=(0,r.useState)(!1),[g,m]=(0,r.useState)({}),[f,x]=(0,r.useState)(""),[k,v]=(0,r.useState)(""),[y,b]=(0,r.useState)("eager"),[w,j]=(0,r.useState)(!1),[S,C]=(0,r.useState)(null),[T,R]=(0,r.useState)(!1),[z,I]=(0,r.useState)(!1),[M,P]=(0,r.useState)({provider:"custom",baseUrl:"",apiKey:"",model:"",maxTokens:4096,hasApiKey:!1}),[E,D]=(0,r.useState)(""),[W,A]=(0,r.useState)(""),[N,$]=(0,r.useState)(!1),[L,O]=(0,r.useState)(null),[H,B]=(0,r.useState)(!1);(0,r.useEffect)(()=>{let e=!1;return(async()=>{a(null);try{let[t,o]=await Promise.all([fetch("/api/mcp"),fetch("/api/vision-config")]),n=await t.json();if(!t.ok||n.error)throw Error(n.error??`HTTP ${t.status}`);let r=await o.json();if(!o.ok||r.error)throw Error(r.error??`HTTP ${o.status}`);if(e)return;m(n.mcpServers??{}),x(n.filePath);let i=(n.mcpServers??{})[le];v(i?.command??""),b(i?.lifecycle==="lazy"?"lazy":"eager"),P({provider:r.provider,baseUrl:r.baseUrl,apiKey:"",model:r.model,maxTokens:r.maxTokens,hasApiKey:r.hasApiKey}),r.path&&A(r.path),s(!0)}catch(t){e||a(t instanceof Error?t.message:String(t))}})(),()=>{e=!0}},[]);let U=(0,r.useCallback)(async()=>{if(!k.trim())return void C(t("desktop.mcpVisionCommandRequired"));j(!0),C(null),R(!1),I(!1);try{let e=g[le],t={...g,[le]:{...e??{},command:k.trim(),args:Array.isArray(e?.args)?e.args:[],transport:"stdio",lifecycle:y}},o=await fetch("/api/mcp",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({mcpServers:t})}),n=await o.json();if(!o.ok||n.error)throw Error(n.error??`HTTP ${o.status}`);m(t),R(!0)}catch(e){C(e instanceof Error?e.message:String(e))}finally{j(!1)}},[g,k,y,t]),_=(0,r.useCallback)(async()=>{j(!0),C(null),R(!1),I(!1);try{let e={...g};delete e[le];let t=await fetch("/api/mcp",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({mcpServers:e})}),o=await t.json();if(!t.ok||o.error)throw Error(o.error??`HTTP ${t.status}`);m(e),v(""),b("eager"),I(!0)}catch(e){C(e instanceof Error?e.message:String(e))}finally{j(!1)}},[g]),q=(0,r.useCallback)(async()=>{$(!0),O(null),B(!1);try{let e=await fetch("/api/vision-config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({...M,...E?{apiKey:E}:{}})}),t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);P({...t,apiKey:"",hasApiKey:t.hasApiKey}),D(""),B(!0)}catch(e){O(e instanceof Error?e.message:String(e))}finally{$(!1)}},[M,E]),V=(0,r.useCallback)(async()=>{if(e){d(!0),p(null),h(!1);try{let t=await fetch("/api/mcp/restart",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:e,name:le})}),o=await t.json();if(!t.ok||o.error)throw Error(o.error??`HTTP ${t.status}`);h(!0)}catch(e){p(e instanceof Error?e.message:String(e))}finally{d(!1)}}},[e]),K=!!g[le];return(0,n.jsxs)(aY,{children:[(0,n.jsx)(aX,{children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:7,padding:"12px 0"},children:[(0,n.jsx)(rG.k,{size:15,"aria-hidden":"true"}),(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,n.jsx)("span",{style:{fontSize:13,fontWeight:600,color:"var(--text)"},children:t("desktop.mcpVisionTitle")}),(0,n.jsx)("span",{style:{fontSize:10,padding:"1px 6px",borderRadius:3,background:K?"rgba(37,99,235,0.12)":"rgba(245,158,11,0.12)",color:K?"var(--accent)":"#d97706",textTransform:"capitalize"},children:K?t("desktop.mcpVisionRegistered"):t("desktop.mcpVisionNotRegistered")})]}),(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:2},children:t("desktop.mcpVisionDesc")})]})]})}),o?i?(0,n.jsx)(aZ,{children:(0,n.jsx)("div",{style:{padding:"8px 0",fontSize:12,color:"#ef4444"},children:i})}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(aX,{children:(0,n.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",padding:"10px 0 2px"},children:t("desktop.mcpVisionRegistration")})}),(0,n.jsx)(aX,{children:(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(120px, 180px) 1fr",gap:8,alignItems:"center",padding:"6px 0"},children:[(0,n.jsxs)("span",{style:lo(),children:[t("desktop.mcpVisionCommand")," *"]}),(0,n.jsx)("input",{value:k,onChange:e=>v(e.target.value),placeholder:"/path/to/deepseek-vision-mcp",style:lt}),(0,n.jsx)("span",{style:lo(),children:t("desktop.mcpVisionLifecycle")}),(0,n.jsxs)("select",{value:y,onChange:e=>b(e.target.value),style:{...lt,fontFamily:"var(--font-mono)"},children:[(0,n.jsx)("option",{value:"eager",children:"eager"}),(0,n.jsx)("option",{value:"lazy",children:"lazy"})]}),(0,n.jsx)("span",{style:lo(),children:t("desktop.mcpVisionTransport")}),(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",fontFamily:"var(--font-mono)",padding:"7px 0"},children:t("desktop.mcpVisionTransportFixed")})]})}),(0,n.jsx)(aX,{children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"6px 0",flexWrap:"wrap"},children:[(0,n.jsx)("button",{type:"button",onClick:()=>void U(),disabled:w,style:{...ln,cursor:w?"wait":"pointer"},children:w?t("desktop.saving"):t("desktop.mcpVisionSaveReg")}),K&&(0,n.jsx)("button",{type:"button",onClick:()=>void _(),disabled:w,title:t("desktop.mcpVisionRemove"),style:{padding:"7px 12px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"#ef4444",cursor:w?"not-allowed":"pointer",fontSize:12},children:t("desktop.mcpVisionRemove")}),T&&(0,n.jsx)("span",{style:{color:"#22c55e",fontSize:12},children:t("desktop.mcpVisionSavedReg")}),z&&(0,n.jsx)("span",{style:{color:"#22c55e",fontSize:12},children:t("desktop.mcpVisionRemoved")}),S&&(0,n.jsx)("span",{style:{color:"#ef4444",fontSize:12},children:S})]})}),(0,n.jsx)(aX,{children:(0,n.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",padding:"10px 0 2px"},children:t("desktop.mcpVisionModelConfig")})}),(0,n.jsx)(aX,{children:(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(120px, 180px) 1fr",gap:8,alignItems:"center",padding:"6px 0"},children:[(0,n.jsx)("span",{style:lo(),children:t("desktop.mcpVisionProvider")}),(0,n.jsx)("input",{value:M.provider,onChange:e=>P(t=>({...t,provider:e.target.value})),style:lt}),(0,n.jsx)("span",{style:lo(),children:t("desktop.mcpVisionBaseUrl")}),(0,n.jsx)("input",{value:M.baseUrl,onChange:e=>P(t=>({...t,baseUrl:e.target.value})),style:lt}),(0,n.jsx)("span",{style:lo(),children:t("desktop.mcpVisionApiKey")}),(0,n.jsx)("input",{type:"password",value:E,onChange:e=>D(e.target.value),placeholder:M.hasApiKey?"••••••••":"API key",style:lt}),(0,n.jsx)("span",{style:lo(),children:t("desktop.mcpVisionModel")}),(0,n.jsx)("input",{value:M.model,onChange:e=>P(t=>({...t,model:e.target.value})),style:lt}),(0,n.jsx)("span",{style:lo(),children:t("desktop.mcpVisionMaxTokens")}),(0,n.jsx)("input",{type:"number",min:1,value:M.maxTokens,onChange:e=>P(t=>({...t,maxTokens:Number(e.target.value)||1})),style:lt})]})}),(0,n.jsx)(aZ,{children:(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8,padding:"6px 0"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[(0,n.jsx)("button",{type:"button",onClick:()=>void q(),disabled:N,style:{...ln,cursor:N?"wait":"pointer"},children:N?t("desktop.saving"):t("desktop.mcpVisionSaveModel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void V(),disabled:l||!e||!K,title:e?t("desktop.mcpVisionRestartTitle"):t("desktop.mcpVisionRestartNoSession"),style:{padding:"7px 12px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:!l&&e&&K?"pointer":"not-allowed",fontSize:12,opacity:!l&&e&&K?1:.5},children:l?t("desktop.mcpVisionRestarting"):t("desktop.mcpVisionRestart")}),H&&(0,n.jsx)("span",{style:{color:"#22c55e",fontSize:12},children:t("desktop.mcpVisionSavedModel")}),u&&(0,n.jsx)("span",{style:{color:"#22c55e",fontSize:12},children:t("desktop.mcpVisionRestarted")}),L&&(0,n.jsx)("span",{style:{color:"#ef4444",fontSize:12},children:L}),c&&(0,n.jsx)("span",{style:{color:"#ef4444",fontSize:12},children:c})]}),(0,n.jsxs)(aQ,{children:[t("desktop.mcpVisionModelNote"),W&&(0,n.jsx)("div",{style:{marginTop:4,fontFamily:"var(--font-mono)",fontSize:10},children:W}),f&&(0,n.jsx)("div",{style:{fontFamily:"var(--font-mono)",fontSize:10},children:f})]})]})})]}):(0,n.jsx)(aZ,{children:(0,n.jsx)("div",{style:{padding:"8px 0",fontSize:12,color:"var(--text-muted)"},children:t("desktop.loading")})})]})}function ls({sessionId:e,onApplied:t,onBeforeApply:o}){let{t:s}=(0,F.s)(),[i,a]=(0,r.useState)(!1),[l,d]=(0,r.useState)(!1),[c,p]=(0,r.useState)(null),u=(0,r.useCallback)(async()=>{if(e){a(!0),p(null),d(!1);try{await o?.(),await iS(e,{type:"reload"}),d(!0),await t?.()}catch(e){p(e instanceof Error?e.message:String(e))}finally{a(!1)}}},[e,t,o]),h=i||!e;return(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,n.jsx)("button",{type:"button",onClick:()=>void u(),disabled:h,title:s(e?"desktop.applyNowTitle":"desktop.applyNowNoSession"),style:{padding:"7px 12px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:h?"not-allowed":"pointer",fontSize:12,opacity:h?.5:1,whiteSpace:"nowrap"},children:s(i?"desktop.applyNowApplying":"desktop.applyNow")}),l&&(0,n.jsx)("span",{style:{color:"#22c55e",fontSize:12},children:s("desktop.applyNowDone")}),c&&(0,n.jsx)("span",{style:{color:"#ef4444",fontSize:12},children:c})]})}let li=["stdio","sse","http"],la=["eager","lazy"],ll={name:"",command:"",args:"",transport:"stdio",lifecycle:"eager",requestTimeoutMs:"",env:""},ld={padding:"7px 9px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",fontSize:12,fontFamily:"var(--font-mono)",width:"100%",boxSizing:"border-box"};function lc(){return{fontSize:12,color:"var(--text-muted)"}}function lp(e,t){return{fontSize:10,padding:"1px 6px",borderRadius:3,background:t,color:e,flexShrink:0,textTransform:"capitalize"}}function lu({sessionId:e}){let{t}=(0,F.s)(),[o,s]=(0,r.useState)({}),[i,a]=(0,r.useState)(""),[l,d]=(0,r.useState)(!1),[c,p]=(0,r.useState)(null),[u,h]=(0,r.useState)(null),[m,f]=(0,r.useState)(ll),[k,v]=(0,r.useState)(!1),[y,b]=(0,r.useState)(null),[w,j]=(0,r.useState)(!1),C=(0,r.useCallback)(async()=>{p(null);try{let e=await fetch("/api/mcp"),t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);s(t.mcpServers??{}),a(t.filePath)}catch(e){p(e instanceof Error?e.message:String(e))}finally{d(!0)}},[]);(0,r.useEffect)(()=>{C()},[C]);let T=(0,r.useCallback)(()=>{f(ll),h({name:"",isNew:!0}),b(null),j(!1)},[]),R=(0,r.useCallback)((e,t)=>{f({name:e,command:t.command??"",args:Array.isArray(t.args)?t.args.join("\n"):"",transport:"string"==typeof t.transport?t.transport:"stdio",lifecycle:"string"==typeof t.lifecycle?t.lifecycle:"eager",requestTimeoutMs:"number"==typeof t.requestTimeoutMs?String(t.requestTimeoutMs):"",env:void 0!==t.env?JSON.stringify(t.env,null,2):""}),h({name:e,isNew:!1}),b(null),j(!1)},[]),z=(0,r.useCallback)(async()=>{if(u){v(!0),b(null),j(!1);try{let e=m.name.trim();if(u.isNew&&!e)return void b("Server name is required");if(u.isNew&&!/^[a-zA-Z0-9_-]+$/.test(e))return void b("Allowed characters: a-z, A-Z, 0-9, _ and -");if(u.isNew&&e===le)return void b(t("desktop.mcpVisionNameReserved"));let n=function(e){if(!e.command.trim())return{error:"Command is required"};let t=e.args.split("\n").map(e=>e.trim()).filter(Boolean),o={command:e.command.trim(),args:t,transport:li.includes(e.transport)?e.transport:"stdio",lifecycle:la.includes(e.lifecycle)?e.lifecycle:"eager"};if(""!==e.requestTimeoutMs.trim()){let t=Number(e.requestTimeoutMs);if(!Number.isFinite(t)||t<=0)return{error:"Request timeout must be a positive number"};o.requestTimeoutMs=t}if(""!==e.env.trim())try{o.env=JSON.parse(e.env)}catch{return{error:"Environment must be valid JSON"}}return{server:o}}(m);if(n.error||!n.server)return void b(n.error??"Invalid server");let r={...o};u.isNew?r[e]=n.server:(delete r[u.name],r[m.name.trim()||u.name]=n.server);let i=await fetch("/api/mcp",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({mcpServers:r})}),a=await i.json();if(!i.ok||a.error)throw Error(a.error??`HTTP ${i.status}`);s(r),h(null),j(!0)}catch(e){b(e instanceof Error?e.message:String(e))}finally{v(!1)}}},[u,m,o,t]),I=(0,r.useCallback)(async e=>{v(!0),b(null);try{let t={...o};delete t[e];let n=await fetch("/api/mcp",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({mcpServers:t})}),r=await n.json();if(!n.ok||r.error)throw Error(r.error??`HTTP ${n.status}`);s(t),j(!0)}catch(e){b(e instanceof Error?e.message:String(e))}finally{v(!1)}},[o]),M=(0,r.useCallback)((e,t)=>{f(o=>({...o,[e]:t}))},[]),P=Object.entries(o).filter(([e])=>e!==le);return(0,n.jsx)("div",{style:{flex:1,overflow:"auto",minWidth:0,padding:"20px 22px",display:"flex",flexDirection:"column",gap:16},children:(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:l?c?(0,n.jsx)("div",{style:{fontSize:12,color:"#ef4444"},children:c}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12},children:[(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:14,fontWeight:700,color:"var(--text)"},children:t("desktop.mcpServers")}),(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",fontFamily:"var(--font-mono)",marginTop:2,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:i})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexShrink:0},children:[(0,n.jsx)(ls,{sessionId:e,onApplied:C}),(0,n.jsxs)("button",{type:"button",onClick:T,style:{display:"flex",alignItems:"center",gap:6,padding:"7px 12px",border:"none",borderRadius:6,background:"var(--accent)",color:"#fff",cursor:"pointer",fontSize:12,flexShrink:0},children:[(0,n.jsx)(x.c,{size:13,"aria-hidden":"true"}),t("desktop.mcpAddServer")]})]})]}),(0,n.jsx)(aQ,{children:t("desktop.mcpRestartNote")}),(0,n.jsx)(lr,{sessionId:e}),0!==P.length||u?P.map(([e,o])=>(0,n.jsx)(aY,{children:(0,n.jsx)(aZ,{children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"12px 0",minWidth:0},children:[(0,n.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,n.jsx)("span",{style:{fontSize:13,fontWeight:600,color:"var(--text)",fontFamily:"var(--font-mono)"},children:e}),(0,n.jsx)("span",{style:lp("var(--accent)","rgba(37,99,235,0.12)"),children:o.transport??"stdio"}),(0,n.jsx)("span",{style:lp("#d97706","rgba(245,158,11,0.12)"),children:o.lifecycle??"lazy"})]}),(0,n.jsxs)("div",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)",marginTop:4,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[o.command,Array.isArray(o.args)&&o.args.length>0?` ${o.args.map(e=>e.includes(" ")?`"${e}"`:e).join(" ")}`:""]})]}),(0,n.jsxs)("div",{style:{display:"flex",gap:6,flexShrink:0},children:[(0,n.jsxs)("button",{type:"button",onClick:()=>R(e,o),disabled:k,style:{display:"flex",alignItems:"center",gap:5,padding:"6px 10px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:k?"not-allowed":"pointer",fontSize:12,opacity:k?.5:1},children:[(0,n.jsx)(g.I,{size:12,"aria-hidden":"true"}),t("desktop.mcpEdit")]}),(0,n.jsx)("button",{type:"button",onClick:()=>void I(e),disabled:k,title:t("desktop.mcpDelete"),"aria-label":t("desktop.mcpDelete"),style:{display:"flex",alignItems:"center",padding:"6px 9px",background:"rgba(239,68,68,0.08)",border:"1px solid var(--border)",borderRadius:6,color:"#ef4444",cursor:k?"not-allowed":"pointer",fontSize:12,opacity:k?.5:1},children:(0,n.jsx)(S.l,{size:12,"aria-hidden":"true"})})]})]})})},e)):(0,n.jsx)(aY,{children:(0,n.jsx)(aZ,{children:(0,n.jsx)("div",{style:{padding:"14px 0",fontSize:12,color:"var(--text-dim)"},children:o[le]?t("desktop.mcpEmptyOther"):t("desktop.mcpEmpty")})})}),u&&(0,n.jsxs)(aY,{children:[(0,n.jsx)(aX,{children:(0,n.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"var(--text)",padding:"12px 0 4px"},children:u.isNew?t("desktop.mcpNewServer"):t("desktop.mcpEditServer",{name:u.name})})}),(0,n.jsx)(aX,{children:(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(150px, 220px) 1fr",gap:"8px 12px",alignItems:"center",padding:"8px 0"},children:[(0,n.jsx)("span",{style:lc(),children:t("desktop.mcpServerName")}),(0,n.jsx)("input",{value:m.name,onChange:e=>M("name",e.target.value),disabled:!u.isNew,placeholder:"my-server",style:{...ld,opacity:u.isNew?1:.5}}),(0,n.jsxs)("span",{style:lc(),children:[t("desktop.mcpCommand")," *"]}),(0,n.jsx)("input",{value:m.command,onChange:e=>M("command",e.target.value),placeholder:"npx @modelcontextprotocol/server-foo",style:ld}),(0,n.jsx)("span",{style:lc(),children:t("desktop.mcpArgs")}),(0,n.jsx)("textarea",{value:m.args,onChange:e=>M("args",e.target.value),placeholder:"--port 3000\n--verbose",rows:3,style:{...ld,resize:"vertical",lineHeight:1.5}}),(0,n.jsx)("span",{style:lc(),children:t("desktop.mcpTransport")}),(0,n.jsx)("select",{value:m.transport,onChange:e=>M("transport",e.target.value),style:{...ld,fontFamily:"var(--font-mono)"},children:li.map(e=>(0,n.jsx)("option",{value:e,children:e},e))}),(0,n.jsx)("span",{style:lc(),children:t("desktop.mcpLifecycle")}),(0,n.jsx)("select",{value:m.lifecycle,onChange:e=>M("lifecycle",e.target.value),style:{...ld,fontFamily:"var(--font-mono)"},children:la.map(e=>(0,n.jsx)("option",{value:e,children:e},e))}),(0,n.jsx)("span",{style:lc(),children:t("desktop.mcpRequestTimeoutMs")}),(0,n.jsx)("input",{type:"number",min:1,value:m.requestTimeoutMs,onChange:e=>M("requestTimeoutMs",e.target.value),placeholder:"300000",style:ld}),(0,n.jsx)("span",{style:lc(),children:t("desktop.mcpEnv")}),(0,n.jsx)("textarea",{value:m.env,onChange:e=>M("env",e.target.value),placeholder:'{\n "API_KEY": "..."\n}',rows:3,style:{...ld,resize:"vertical",lineHeight:1.5}})]})}),(0,n.jsx)(aZ,{children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"10px 0"},children:[(0,n.jsx)("button",{type:"button",onClick:()=>void z(),disabled:k,style:{padding:"7px 12px",border:"none",borderRadius:6,background:"var(--accent)",color:"#fff",cursor:k?"wait":"pointer",fontSize:12},children:k?t("desktop.saving"):t("desktop.mcpSave")}),(0,n.jsx)("button",{type:"button",onClick:()=>h(null),disabled:k,style:{padding:"7px 12px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:k?"not-allowed":"pointer",fontSize:12},children:t("desktop.mcpCancel")}),y&&(0,n.jsx)("span",{style:{color:"#ef4444",fontSize:12},children:y})]})})]}),w&&!u&&(0,n.jsx)("div",{style:{fontSize:12,color:"#22c55e"},children:t("desktop.mcpSavedRestart")})]}):(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)"},children:t("desktop.loading")})})})}var lh=o(9210);function lg(){let{t:e}=(0,F.s)(),[t,o]=(0,r.useState)(null),[s,i]=(0,r.useState)([]),[a,l]=(0,r.useState)(!0),[d,c]=(0,r.useState)(!1),[p,u]=(0,r.useState)(!1),[h,g]=(0,r.useState)(null);(0,r.useEffect)(()=>{fetch("/api/settings/title-model").then(e=>e.json()).then(e=>{o(e.value),i(e.models??[])}).catch(()=>{}).finally(()=>l(!1))},[]);let m=null!==t&&!s.some(e=>e.label===t),f=(0,r.useCallback)(async t=>{c(!0),g(null),u(!1);try{let e=await fetch("/api/settings/title-model",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({value:""===t?null:t})}),n=await e.json();if(!e.ok||n.error)return void g(n.error??`HTTP ${e.status}`);o(n.value??null),u(!0),setTimeout(()=>u(!1),2e3)}catch{g(String(e("desktop.titleModelSaveError")))}finally{c(!1)}},[e]),x=[...new Set(s.map(e=>e.provider))];return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6,padding:"12px 18px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",flexShrink:0},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[(0,n.jsx)("span",{style:{fontSize:12,fontWeight:600,color:"var(--text)",whiteSpace:"nowrap"},children:e("desktop.titleModel")}),(0,n.jsxs)("select",{value:t??"",disabled:a||d,onChange:e=>f(e.target.value),style:{flex:1,minWidth:200,maxWidth:420,padding:"6px 9px",fontSize:12,color:"var(--text)",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:5},children:[(0,n.jsx)("option",{value:"",children:e("desktop.titleModelFollowSession")}),m&&null!==t&&(0,n.jsxs)("option",{value:t,style:{color:"#ef4444"},children:[t,"(",e("desktop.titleModelInvalid"),")"]}),x.map(e=>(0,n.jsx)("optgroup",{label:e,children:s.filter(t=>t.provider===e).map(e=>(0,n.jsxs)("option",{value:e.label,children:[e.name||e.id,e.reasoning?"(reasoning)":""]},e.label))},e))]}),d&&(0,n.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)"},children:"…"}),!d&&p&&(0,n.jsx)("span",{style:{fontSize:11,color:"#4ade80"},children:e("desktop.titleModelSaved")})]}),(0,n.jsx)("p",{style:{margin:0,fontSize:11,color:"var(--text-muted)",lineHeight:1.5},children:e("desktop.titleModelDescription")}),h&&(0,n.jsx)("p",{style:{margin:0,fontSize:11,color:"#ef4444",lineHeight:1.5},children:h}),m&&null!==t&&(0,n.jsxs)("p",{style:{margin:0,fontSize:11,color:"#ef4444",lineHeight:1.5},children:[t,"(",e("desktop.titleModelInvalid"),")"]})]})}let lm=["name","reasoning","contextWindow","maxTokens","thinkingLevelMap","hidden"];function lf(e){if(""===e.trim())return;let t=Number(e);return Number.isFinite(t)&&t>0?t:void 0}function lx(e){let t=lf(e.contextWindow??""),o=lf(e.maxTokens??""),n=e.thinkingLevelMap&&Object.keys(e.thinkingLevelMap).length>0?{...e.thinkingLevelMap}:void 0;return{...e.name?.trim()?{name:e.name.trim()}:{},..."boolean"==typeof e.reasoning?{reasoning:e.reasoning}:{},...void 0!==t?{contextWindow:t}:{},...void 0!==o?{maxTokens:o}:{},...n?{thinkingLevelMap:n}:{},..."boolean"==typeof e.hidden?{hidden:e.hidden}:{}}}function lk({providerId:e,onRegisterFlush:t,onConfigChange:o}){let{t:s}=(0,F.s)(),i=$(),[a,l]=(0,r.useState)([]),[d,c]=(0,r.useState)({}),[p,u]=(0,r.useState)({}),[h,g]=(0,r.useState)(new Set),[m,f]=(0,r.useState)(!0),[x,k]=(0,r.useState)(!1),[v,y]=(0,r.useState)(null),[b,w]=(0,r.useState)(!1),[j,S]=(0,r.useState)(null),C=(0,r.useRef)(d),T=(0,r.useRef)(p),R=(0,r.useRef)(a),z=(0,r.useRef)(h),I=(0,r.useRef)(0),M=(0,r.useRef)(null);C.current=d,T.current=p,R.current=a,z.current=h,(0,r.useEffect)(()=>{let t=!1;return f(!0),y(null),(async()=>{try{let o=await fetch(`/api/models-config/builtin?provider=${encodeURIComponent(e)}`),n=await o.json();if(!o.ok||n.error)throw Error(n.error??`HTTP ${o.status}`);if(t)return;let r={};for(let e of n.models){let t=n.overrides[e.id]??{};r[e.id]={name:"string"==typeof t.name&&t.name.length>0?t.name:e.name,reasoning:"boolean"==typeof t.reasoning?t.reasoning:e.reasoning,contextWindow:"number"==typeof t.contextWindow?String(t.contextWindow):null!=e.contextWindow?String(e.contextWindow):"",maxTokens:"number"==typeof t.maxTokens?String(t.maxTokens):null!=e.maxTokens?String(e.maxTokens):"",hidden:"boolean"==typeof t.hidden&&t.hidden,thinkingLevelMap:t.thinkingLevelMap??e.thinkingLevelMap}}l(n.models),c(r),u(r),g(new Set)}catch(e){t||y(e instanceof Error?e.message:String(e))}finally{t||f(!1)}})(),()=>{t=!0}},[e]);let P=(0,r.useCallback)((e,t)=>{I.current+=1,c(o=>({...o,[e]:{...o[e]??{},...t}})),g(t=>new Set(t).add(e))},[]),E=(0,r.useCallback)(async()=>{let t=M.current;if(t)return t;let n=(async()=>{let t=new Set(z.current);if(0===t.size)return;let n=I.current,r={...C.current},s={},i={};for(let e of R.current){let t=r[e.id],o=T.current[e.id];t&&(s[e.id]=lx(t)),o&&(i[e.id]=lx(o))}let a=function(e,t,o){let n={};for(let r of e){let e=t[r];if(!e)continue;let s=o[r]??{},i={};for(let t of lm){let o=e[t],n=s[t];JSON.stringify(o)!==JSON.stringify(n)&&(i[t]=void 0===o?null:o)}Object.keys(i).length>0&&(n[r]=i)}return n}(t,s,i);if(0===Object.keys(a).length)return void g(new Set);k(!0),y(null),w(!1);try{let s=await fetch("/api/models-config/builtin",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e,patches:a})}),i=await s.json();if(!s.ok||i.error)throw Error(i.error??`HTTP ${s.status}`);o?.(i.provider??null);let l={...T.current};for(let e of t){let t=r[e];t&&(l[e]={...t})}T.current=l,u(l),I.current===n&&g(e=>new Set([...e].filter(e=>!t.has(e)))),w(!0),setTimeout(()=>w(!1),2e3)}catch(e){throw y(e instanceof Error?e.message:String(e)),e}finally{k(!1)}})();M.current=n;try{await n}finally{M.current===n&&(M.current=null)}},[o,e]);(0,r.useEffect)(()=>{if(t)return t(e,E)??void 0},[t,e,E]);let[D,W]=(0,r.useState)({phase:"idle"}),[A,N]=(0,r.useState)([]),L=(0,r.useCallback)(async()=>{W({phase:"loading"});try{let t=await fetch("/api/models-config/discover",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerName:e,provider:{}})}),o=await t.json();if(!t.ok||o.error||!o.models)return void W({phase:"error",message:o.error??`HTTP ${t.status}`});let n=new Set(R.current.map(e=>e.id)),r=new Set(o.models.filter(e=>!n.has(e.id)).map(e=>e.id));W({phase:"success",models:o.models,newIds:r}),N(o.models.filter(e=>r.has(e.id)).map(e=>e.id))}catch(e){W({phase:"error",message:e instanceof Error?e.message:String(e)})}},[e]),O=(0,r.useCallback)(async()=>{if(D.models?.length){k(!0),y(null);try{let t=D.models.map(e=>({id:e.id,...e.name?{name:e.name}:{}})),n=await fetch("/api/models-config/builtin",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e,models:t})}),r=await n.json();if(!n.ok||r.error)throw Error(r.error??`HTTP ${n.status}`);o?.(r.provider??null),W({phase:"idle"}),N([]);let s=await fetch(`/api/models-config/builtin?provider=${encodeURIComponent(e)}`);if(s.ok){let e=await s.json();if(e.models){l(e.models),R.current=e.models;let t={};for(let o of e.models){let n=e.overrides?.[o.id]??{};t[o.id]={name:"string"==typeof n.name&&n.name.length>0?n.name:o.name,reasoning:"boolean"==typeof n.reasoning?n.reasoning:o.reasoning,contextWindow:"number"==typeof n.contextWindow?String(n.contextWindow):null!=o.contextWindow?String(o.contextWindow):"",maxTokens:"number"==typeof n.maxTokens?String(n.maxTokens):null!=o.maxTokens?String(o.maxTokens):"",hidden:"boolean"==typeof n.hidden&&n.hidden,thinkingLevelMap:n.thinkingLevelMap??o.thinkingLevelMap}}c(t),u(t),g(new Set)}}}catch(e){y(e instanceof Error?e.message:String(e))}finally{k(!1)}}},[D.models,o,e]);return m?(0,n.jsx)("div",{style:{borderTop:"1px solid var(--border)",marginTop:14,paddingTop:12},children:(0,n.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-dim)"},children:s("desktop.modelsLoading")})}):(0,n.jsxs)("div",{style:{borderTop:"1px solid var(--border)",marginTop:14,paddingTop:12,display:"flex",flexDirection:"column",gap:10},children:[(0,n.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)"},children:s("desktop.builtinModelsTitle")}),(0,n.jsxs)("div",{style:{borderTop:"1px solid var(--border)",paddingTop:10,display:"flex",flexDirection:"column",gap:8},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,n.jsx)("button",{type:"button",onClick:()=>{L()},disabled:"loading"===D.phase,style:{padding:"5px 12px",background:(D.phase,"var(--bg-panel)"),border:"1px solid var(--border)",borderRadius:5,color:"loading"===D.phase?"var(--text-dim)":"var(--text-muted)",cursor:"loading"===D.phase?"not-allowed":"pointer",fontSize:12},children:"loading"===D.phase?s("desktop.modelsDiscoveryFetching"):s("desktop.builtinModelsFetchNew")}),"success"===D.phase&&D.models&&(0,n.jsx)("button",{type:"button",onClick:()=>{O()},disabled:x||0===A.length,style:{padding:"5px 12px",background:A.length>0&&!x?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:5,color:A.length>0&&!x?"#fff":"var(--text-dim)",cursor:A.length>0&&!x?"pointer":"not-allowed",fontSize:12,fontWeight:600},children:x?s("desktop.modelsSaving"):`${s("desktop.modelsAddModelManual")} (${A.length})`})]}),"error"===D.phase&&(0,n.jsx)("p",{style:{margin:0,fontSize:11,color:"#f87171"},children:D.message}),"success"===D.phase&&D.models&&(0,n.jsx)("div",{style:{maxHeight:200,overflowY:"auto",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)"},children:D.models.map(e=>{let t=D.newIds?.has(e.id)??!1,o=A.includes(e.id);return(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,minHeight:32,padding:"5px 9px",borderBottom:"1px solid var(--border)",cursor:t?"pointer":"default",opacity:t?1:.55},children:[(0,n.jsx)("input",{type:"checkbox",checked:o,disabled:!t,onChange:t=>{N(o=>t.target.checked?[...o,e.id]:o.filter(t=>t!==e.id))},style:{width:13,height:13,accentColor:"var(--accent)",flexShrink:0}}),(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text)",fontWeight:t?600:400},children:e.name||e.id}),(0,n.jsx)("code",{style:{fontSize:10,color:"var(--text-dim)",fontFamily:"var(--font-mono)"},children:e.id}),t&&(0,n.jsx)("span",{style:{fontSize:10,padding:"1px 6px",borderRadius:8,background:"var(--accent)",color:"#fff",marginLeft:"auto"},children:"新"})]},e.id)})})]}),v&&(0,n.jsx)("p",{style:{margin:0,fontSize:11,color:"#f87171"},children:v}),0===a.length&&!v&&(0,n.jsx)("p",{style:{margin:0,fontSize:11,color:"var(--text-dim)"},children:s("desktop.builtinModelsEmpty")}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:a.map(e=>{let t=d[e.id]??{},o=j===e.id,r=h.has(e.id);return(0,n.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",padding:"8px 10px"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,n.jsxs)("button",{type:"button",onClick:()=>S(o?null:e.id),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text)",fontSize:12,fontWeight:600,padding:0,textAlign:"left"},children:[t.name||e.name||e.id,r&&(0,n.jsx)("span",{style:{color:"var(--accent)",marginLeft:6},children:"•"})]}),(0,n.jsx)("code",{style:{fontSize:10,color:"var(--text-dim)",fontFamily:"var(--font-mono)"},children:e.id}),(t.reasoning??e.reasoning)&&(0,n.jsx)("span",{style:{fontSize:10,padding:"1px 6px",borderRadius:8,background:"var(--bg-selected)",color:"var(--text-muted)"},children:"reasoning"}),(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-muted)"},children:[s("desktop.builtinModelsContext"),": ",(0,n.jsx)("b",{children:t.contextWindow?Number(t.contextWindow).toLocaleString():"—"})," \xb7 ",s("desktop.builtinModelsMaxTokens"),": ",(0,n.jsx)("b",{children:t.maxTokens?Number(t.maxTokens).toLocaleString():"—"})]})]}),o&&(0,n.jsxs)("div",{style:{marginTop:10,display:"flex",flexDirection:"column",gap:10},children:[(0,n.jsxs)("label",{style:{display:"flex",gap:6,alignItems:"center",fontSize:12,color:"var(--text)",width:"100%"},children:[s("desktop.modelsName"),(0,n.jsx)("input",{type:"text",value:t.name??"",placeholder:e.name||e.id,onChange:t=>P(e.id,{name:t.target.value.trim()||void 0}),style:{flex:1,minWidth:0,padding:"4px 7px",fontSize:11,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:4,color:"var(--text)",fontFamily:"var(--font-mono)"}}),(0,n.jsxs)("label",{style:{display:"flex",gap:4,alignItems:"center",fontSize:11,color:t.hidden?"#f87171":"var(--text-muted)",cursor:"pointer",whiteSpace:"nowrap",marginLeft:8},children:[(0,n.jsx)("input",{type:"checkbox",checked:!0===t.hidden,onChange:t=>P(e.id,{hidden:t.target.checked})}),s("desktop.builtinModelsHide")]})]}),(0,n.jsxs)("div",{style:{display:"flex",gap:16,flexWrap:"wrap",flexDirection:i?"column":"row",alignItems:i?"flex-start":"center"},children:[(0,n.jsxs)("label",{style:{display:"flex",gap:6,alignItems:"center",fontSize:12,color:"var(--text)",cursor:"pointer"},children:[(0,n.jsx)("input",{type:"checkbox",checked:!0===t.reasoning,onChange:t=>P(e.id,{reasoning:t.target.checked})}),s("desktop.builtinModelsReasoning")]}),(0,n.jsxs)("label",{style:{display:"flex",gap:6,alignItems:"center",fontSize:12,color:"var(--text)",flex:i?1:void 0,width:i?"100%":void 0},children:[s("desktop.modelsContextWindow"),(0,n.jsx)("input",{type:"number",min:1,value:t.contextWindow??"",placeholder:null!=e.contextWindow?String(e.contextWindow):"",onChange:t=>P(e.id,{contextWindow:t.target.value}),style:{flex:1,minWidth:0,padding:"4px 7px",fontSize:11,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:4,color:"var(--text)",fontFamily:"var(--font-mono)"}})]}),(0,n.jsxs)("label",{style:{display:"flex",gap:6,alignItems:"center",fontSize:12,color:"var(--text)",flex:i?1:void 0,width:i?"100%":void 0},children:[s("desktop.modelsMaxOutputTokens"),(0,n.jsx)("input",{type:"number",min:1,value:t.maxTokens??"",placeholder:null!=e.maxTokens?String(e.maxTokens):"",onChange:t=>P(e.id,{maxTokens:t.target.value}),style:{flex:1,minWidth:0,padding:"4px 7px",fontSize:11,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:4,color:"var(--text)",fontFamily:"var(--font-mono)"}})]})]}),(0,n.jsx)("div",{style:{fontSize:11,fontWeight:600,color:"var(--text-dim)"},children:s("desktop.builtinModelsThinking")}),(0,n.jsx)(lF,{value:t.thinkingLevelMap,onChange:t=>P(e.id,{thinkingLevelMap:t})})]})]},e.id)})}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,n.jsx)("button",{type:"button",onClick:()=>{E().catch(()=>{})},disabled:x||0===h.size,style:{alignSelf:"flex-start",padding:"5px 14px",background:h.size>0&&!x?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:5,color:h.size>0&&!x?"#fff":"var(--text-dim)",cursor:h.size>0&&!x?"pointer":"not-allowed",fontSize:12,fontWeight:600},children:x?s("desktop.modelsSaving"):b?s("desktop.modelsSaved"):s("desktop.modelsSave")}),h.size>0&&(0,n.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)"},children:s("desktop.builtinModelsDirty",{count:h.size})})]})]})}let lv=["openai-completions","openai-responses","anthropic-messages","google-generative-ai","mistral-conversations"],ly="__custom__";function lb(){let{t:e}=(0,F.s)();return(0,r.useCallback)((t,o)=>e(t,o),[e])}function lw({label:e,children:t}){return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("label",{style:{fontSize:11,color:"var(--text-muted)",fontWeight:500},children:e}),t]})}let lj={padding:"6px 9px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",fontSize:12,outline:"none",width:"100%",boxSizing:"border-box"};function lS({value:e,onChange:t,placeholder:o,mono:r,inputRef:s}){return(0,n.jsx)("input",{ref:s,value:e,onChange:e=>t(e.target.value),placeholder:o,style:{...lj,fontFamily:r?"var(--font-mono)":"inherit"}})}function lC({value:e,onChange:t,placeholder:o,mono:s,onKeyDown:i,autoComplete:a="off",spellCheck:l=!1,style:d}){let c=lb(),[p,u]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{e||u(!1)},[e]),(0,n.jsxs)("div",{style:{position:"relative",width:"100%",...d},children:[(0,n.jsx)("input",{type:p?"text":"password",value:e,onChange:e=>t(e.target.value),onKeyDown:i,placeholder:o,style:{...lj,paddingRight:34,fontFamily:s?"var(--font-mono)":"inherit"},autoComplete:a,spellCheck:l}),(0,n.jsx)("button",{type:"button",onClick:()=>u(e=>!e),"aria-label":c(p?"desktop.modelsHideApiKey":"desktop.modelsShowApiKey"),title:c(p?"desktop.modelsHideApiKey":"desktop.modelsShowApiKey"),style:{position:"absolute",right:5,top:"50%",transform:"translateY(-50%)",width:24,height:24,padding:0,border:"none",background:"transparent",color:"var(--text-dim)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center"},children:p?(0,n.jsx)(lh.G,{size:15}):(0,n.jsx)(rG.b,{size:15})})]})}function lT({value:e,onChange:t,placeholder:o}){return(0,n.jsx)("input",{type:"number",value:e,onChange:e=>t(e.target.value),placeholder:o,style:lj})}function lR({value:e,onChange:t,options:o,required:r}){let s=lb();return(0,n.jsxs)("select",{value:e,onChange:e=>t(e.target.value),style:{...lj,color:e?"var(--text)":"var(--text-dim)"},children:[!r&&(0,n.jsx)("option",{value:"",children:s("desktop.modelsInheritNone")}),o.map(e=>(0,n.jsx)("option",{value:e,children:e},e))]})}function lz({label:e,checked:t,onChange:o}){return(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:6,cursor:"pointer",fontSize:12,color:"var(--text-muted)"},children:[(0,n.jsx)("input",{type:"checkbox",checked:t,onChange:e=>o(e.target.checked),style:{width:13,height:13,accentColor:"var(--accent)",cursor:"pointer"}}),e]})}function lI({children:e}){return(0,n.jsx)("div",{style:{fontSize:11,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.06em",marginBottom:2},children:e})}function lM({name:e,provider:t,onChange:o,onRename:s,onDelete:i,onAddModels:a,onAddModel:l}){let d=lb(),[c,p]=(0,r.useState)(e),[u,h]=(0,r.useState)({phase:"idle"}),[g,m]=(0,r.useState)(""),[f,x]=(0,r.useState)([]),k=(0,r.useRef)(0),v=(0,r.useRef)(null);(0,r.useEffect)(()=>p(e),[e]);let y=(e,n)=>o({...t,[e]:n});(0,r.useEffect)(()=>{t.api||o({...t,api:"openai-completions"})},[t.api]),(0,r.useEffect)(()=>{k.current+=1,h({phase:"idle"}),m(""),x([])},[e,t.baseUrl,t.api,t.apiKey]);let b=(0,r.useCallback)(async()=>{if("loading"===u.phase)return;let o=++k.current;h({phase:"loading"}),x([]);try{let n=await fetch("/api/models-config/discover",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerName:e,provider:{...t,models:void 0}})}),r=await n.json();if(o!==k.current)return;if(!n.ok||r.error||!r.models)return void h({phase:"error",message:r.error??`HTTP ${n.status}`});h({phase:"success",models:r.models,endpoint:r.endpoint??t.baseUrl??""})}catch(e){if(o!==k.current)return;h({phase:"error",message:e instanceof Error?e.message:String(e)})}},[u.phase,e,t]),w=new Set((t.models??[]).map(e=>e.id)),j="success"===u.phase?u.models:[],S=g.trim().toLocaleLowerCase(),C=j.filter(e=>!S||e.id.toLocaleLowerCase().includes(S)||e.name?.toLocaleLowerCase().includes(S)),T=C.slice(0,300),R=T.filter(e=>!w.has(e.id)).map(e=>e.id),z=f.filter(e=>!w.has(e)).length,I=R.length>0&&R.every(e=>f.includes(e)),M=!I&&R.some(e=>f.includes(e));return(0,r.useEffect)(()=>{v.current&&(v.current.indeterminate=M)},[M]),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,n.jsx)(lI,{children:d("desktop.modelsProvider")}),(0,n.jsx)("button",{onClick:i,style:{padding:"3px 8px",background:"none",border:"1px solid rgba(239,68,68,0.3)",borderRadius:4,color:"#ef4444",cursor:"pointer",fontSize:11},children:d("desktop.delete")})]}),(0,n.jsxs)(lw,{label:d("desktop.modelsProviderName"),children:[(0,n.jsx)(lS,{value:c,onChange:p,placeholder:"provider-name",mono:!0}),c!==e&&c.trim()&&(0,n.jsx)("button",{onClick:()=>s(c.trim()),style:{marginTop:4,padding:"3px 10px",background:"var(--accent)",border:"none",borderRadius:4,color:"#fff",cursor:"pointer",fontSize:11,alignSelf:"flex-start"},children:d("desktop.rename")})]}),(0,n.jsx)(lw,{label:d("desktop.modelsBaseUrl"),children:(0,n.jsx)(lS,{value:t.baseUrl??"",onChange:e=>y("baseUrl",e||void 0),placeholder:"http(s)://host:port/v1",mono:!0})}),(0,n.jsxs)(lw,{label:d("desktop.modelsApiKey"),children:[(0,n.jsx)(lC,{value:t.apiKey??"",onChange:e=>y("apiKey",e||void 0),placeholder:d("desktop.modelsApiKeyPlaceholder"),mono:!0}),(0,n.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:d("desktop.modelsApiKeyHelp")})]}),(0,n.jsx)(lw,{label:d("desktop.modelsApi"),children:(0,n.jsx)(lR,{value:t.api??"openai-completions",onChange:e=>y("api",e),options:lv,required:!0})}),(0,n.jsxs)("div",{style:{borderTop:"1px solid var(--border)",paddingTop:14,display:"flex",flexDirection:"column",gap:10},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:["success"!==u.phase&&(0,n.jsx)("button",{onClick:b,disabled:"loading"===u.phase,style:{height:30,padding:"0 12px",border:"1px solid var(--border)",borderRadius:5,background:"var(--bg-panel)",color:t.baseUrl?.trim()&&"loading"!==u.phase?"var(--text-muted)":"var(--text-dim)",cursor:t.baseUrl?.trim()&&"loading"!==u.phase?"pointer":"not-allowed",fontSize:11},children:"loading"===u.phase?d("desktop.modelsDiscoveryFetching"):d("desktop.modelsDiscoveryFetch")}),(0,n.jsx)("button",{onClick:l,title:d("desktop.modelsAddModelManual"),style:{height:30,padding:"0 12px",border:"none",borderRadius:5,background:"var(--accent)",color:"#fff",cursor:"pointer",fontSize:11,fontWeight:600},children:d("desktop.modelsAddModelManual")})]}),"error"===u.phase&&(0,n.jsx)("div",{style:{padding:"7px 9px",border:"1px solid rgba(239,68,68,0.3)",borderRadius:5,color:"#ef4444",fontSize:11,lineHeight:1.4},children:u.message}),"success"===u.phase&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("input",{value:g,onChange:e=>m(e.target.value),placeholder:d("desktop.modelsDiscoveryFilterPlaceholder",{count:u.models.length}),"aria-label":d("desktop.modelsDiscoveryFilter"),style:{...lj,width:"100%",minWidth:0}}),(0,n.jsxs)("div",{style:{maxHeight:220,overflowY:"auto",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)"},children:[(0,n.jsxs)("label",{style:{minHeight:32,padding:"5px 9px",display:"flex",alignItems:"center",gap:8,position:"sticky",top:0,zIndex:1,borderBottom:"1px solid var(--border)",background:"var(--bg)",cursor:R.length?"pointer":"default",color:"var(--text-muted)",fontSize:10,fontWeight:600},children:[(0,n.jsx)("input",{ref:v,type:"checkbox",checked:I,disabled:0===R.length,onChange:()=>{let e=new Set(R);x(t=>I?t.filter(t=>!e.has(t)):Array.from(new Set([...t,...R])))},style:{width:13,height:13,accentColor:"var(--accent)",flexShrink:0}}),d("desktop.modelsDiscoverySelectShown")]}),0===T.length?(0,n.jsx)("div",{style:{padding:12,color:"var(--text-dim)",fontSize:11},children:d("desktop.modelsDiscoveryNoMatches")}):T.map((e,t)=>{let o=w.has(e.id),r=f.includes(e.id);return(0,n.jsxs)("label",{style:{minHeight:36,padding:"6px 9px",display:"flex",alignItems:"center",gap:8,borderTop:0===t?"none":"1px solid var(--border)",cursor:o?"default":"pointer",opacity:o?.65:1},children:[(0,n.jsx)("input",{type:"checkbox",checked:r||o,disabled:o,onChange:()=>{var t;return t=e.id,void x(e=>e.includes(t)?e.filter(e=>e!==t):[...e,t])},style:{width:13,height:13,accentColor:"var(--accent)",flexShrink:0}}),(0,n.jsxs)("span",{style:{minWidth:0,flex:1},children:[(0,n.jsx)("span",{style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text)",fontSize:11},children:e.name??e.id}),e.name&&(0,n.jsx)("code",{style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-dim)",fontSize:10,fontFamily:"var(--font-mono)"},children:e.id})]}),o&&(0,n.jsx)("span",{style:{color:"var(--text-dim)",fontSize:10},children:d("desktop.modelsDiscoveryAdded")})]},e.id)})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:10},children:[(0,n.jsx)("span",{title:u.endpoint,style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-dim)",fontSize:10},children:C.length>T.length?d("desktop.modelsDiscoveryShowing",{shown:T.length,total:C.length}):d("desktop.modelsDiscoveryFetched",{count:u.models.length})}),(0,n.jsx)("button",{onClick:()=>{if("success"!==u.phase)return;let e=new Set(f),t=u.models.filter(t=>e.has(t.id)&&!w.has(t.id));0!==t.length&&(a(t),x([]))},disabled:0===z,style:{height:28,padding:"0 11px",border:"none",borderRadius:5,background:z?"var(--accent)":"var(--bg-panel)",color:z?"#fff":"var(--text-dim)",cursor:z?"pointer":"not-allowed",fontSize:11,fontWeight:600,whiteSpace:"nowrap"},children:z?d("desktop.modelsDiscoveryAddSelectedCount",{count:z}):d("desktop.modelsDiscoveryAddSelected")})]})]})]})]})}let lP=["off","minimal","low","medium","high","xhigh","max"],lE={off:"var(--text-dim)",minimal:"var(--text-muted)",low:"#60a5fa",medium:"#a78bfa",high:"#f472b6",xhigh:"#fb923c",max:"#ef4444"};function lF({value:e,onChange:t}){let o=lb(),r=e??{},s=(e,o)=>{let n={...r};"omit"===o?delete n[e]:n[e]=o,t(Object.keys(n).length?n:void 0)};return(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:lP.map(e=>{let t=r[e],i=e in r?null===t?"null":"string":"omit",a="string"==typeof t?t:"",l=lE[e],d={padding:"4px 10px",fontSize:10,border:"none",cursor:"pointer",fontWeight:400,transition:"background 0.1s, color 0.1s",whiteSpace:"nowrap",background:"var(--bg-panel)",color:"var(--text-dim)"},c={background:"var(--accent)",color:"#fff",fontWeight:600};return(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"5px 4px",borderRadius:6,background:"transparent",border:"1px solid transparent"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5,width:68,flexShrink:0},children:[(0,n.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:l,flexShrink:0,opacity:"null"===i?.3:1}}),(0,n.jsx)("span",{style:{fontSize:11,fontFamily:"var(--font-mono)",color:"null"===i?"var(--text-dim)":"var(--text-muted)",textDecoration:"null"===i?"line-through":"none"},children:e})]}),(0,n.jsxs)("div",{style:{display:"flex",borderRadius:5,border:"1px solid var(--border)",overflow:"hidden",flexShrink:0},children:[(0,n.jsx)("button",{onClick:()=>s(e,"omit"),style:{...d,..."omit"===i?c:{}},children:o("desktop.modelsDefault")}),(0,n.jsx)("button",{onClick:()=>s(e,null),style:{...d,borderLeft:"1px solid var(--border)",..."null"===i?{background:"#ef4444",color:"#fff",fontWeight:600}:{}},children:o("desktop.modelsDisabled")})]}),(0,n.jsxs)("div",{style:{display:"flex",borderRadius:5,border:`1px solid ${"string"===i?"var(--accent)":"var(--border)"}`,overflow:"hidden",transition:"border-color 0.1s"},children:[(0,n.jsx)("button",{onClick:()=>s(e,a||e),style:{...d,..."string"===i?c:{},borderRight:"1px solid var(--border)",flexShrink:0},children:o("desktop.modelsCustom")}),(0,n.jsx)("input",{value:a,onChange:t=>s(e,t.target.value),onFocus:()=>{"string"!==i&&s(e,a||e)},placeholder:e,maxLength:10,style:{width:"12ch",background:"string"===i?"var(--bg)":"var(--bg-panel)",border:"none",outline:"none",color:"string"===i?"var(--text)":"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:11,padding:"4px 7px",transition:"background 0.1s, color 0.1s"}})]})]},e)})})}let lD={thinkingFormat:"deepseek",requiresReasoningContentOnAssistantMessages:!0};function lW({providerName:e,provider:t,model:o,onChange:s,onDelete:i}){let a=lb(),[l,d]=(0,r.useState)({phase:"idle"}),[c,p]=(0,r.useState)({phase:"idle"}),u=(0,r.useRef)(0),g=(0,r.useRef)(null),m=(e,t)=>s({...o,[e]:t}),f=(()=>{if("idle"===l.phase)return null;if("testing"===l.phase)return a("desktop.modelsTestingConnection");let e=[void 0!==l.latencyMs?`${l.latencyMs}ms`:null,void 0!==l.status?`HTTP ${l.status}`:null].filter(Boolean);return"success"===l.phase?[a("desktop.modelsConnected"),...e,l.responseText||null].filter(Boolean).join(" \xb7 "):[a("desktop.modelsFailed"),...e,l.message].filter(Boolean).join(" \xb7 ")})();(0,r.useEffect)(()=>{d({phase:"idle"})},[e,t.baseUrl,t.api,t.apiKey,o.id,o.api]);let x=(0,r.useCallback)(async()=>{if(o.id.trim()&&"testing"!==l.phase){d({phase:"testing"});try{let n=await fetch("/api/models-config/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerName:e,provider:t,model:o})}),r=await n.json();if(!n.ok||!r.ok)return void d({phase:"error",message:r.error??`HTTP ${n.status}`,latencyMs:r.latencyMs,status:r.status});d({phase:"success",latencyMs:r.latencyMs,status:r.status,responseText:r.responseText})}catch(e){d({phase:"error",message:e instanceof Error?e.message:String(e)})}}},[o,t,e,l.phase]);(0,r.useEffect)(()=>{u.current+=1,p({phase:"idle"}),g.current=null},[e,t.baseUrl,o.id]);let k=(0,r.useCallback)(async()=>{let n=o.id.trim();if(!n||"loading"===c.phase)return;let r=++u.current;p({phase:"loading"});try{let i=new URLSearchParams({q:n,provider:e,limit:"50"});t.baseUrl?.trim()&&i.set("baseUrl",t.baseUrl.trim());let a=await fetch(`/api/models-config/catalog?${i}`),l=await a.json();if(r!==u.current)return;if(!a.ok||l.error||!l.recommendation)return void p({phase:"error",message:l.error??`HTTP ${a.status}`});let d=function(e,t){let o={...e},n=0;if(!e.name?.trim()&&t.name&&(o.name=t.name,n+=1),void 0===e.reasoning&&!0===t.reasoning&&(o.reasoning=!0,n+=1),!e.input?.length&&t.input?.length&&(o.input=[...t.input],n+=1),void 0===e.contextWindow&&void 0!==t.contextWindow&&(o.contextWindow=t.contextWindow,n+=1),void 0===e.maxTokens&&void 0!==t.maxTokens&&(o.maxTokens=t.maxTokens,n+=1),t.cost){let r={...e.cost??{}},s=!1;for(let e of["input","output","cacheRead","cacheWrite"])void 0===r[e]&&void 0!==t.cost[e]&&(r[e]=t.cost[e],s=!0,n+=1);s&&(o.cost=r)}return{model:o,appliedCount:n}}(o,l.recommendation.preset);d.appliedCount>0&&(g.current=o,s(d.model)),p({phase:"success",recommendation:l.recommendation,appliedCount:d.appliedCount})}catch(e){if(r!==u.current)return;p({phase:"error",message:e instanceof Error?e.message:String(e)})}},[c.phase,o,s,t.baseUrl,e]),v=(()=>{if("success"!==c.phase)return null;let{recommendation:t,appliedCount:o}=c,n=o>0?a("desktop.modelsCatalogFilled",{count:o}):a("desktop.modelsCatalogNoEmptyFields");if("unreliable"===t.price.status){let e="no-exact-match"===t.price.reason?a("desktop.modelsCatalogNoExactMatch"):a("desktop.modelsCatalogPriceUnreliable");return`${n} \xb7 ${e}`}let r="provider"===t.price.method?a("desktop.modelsCatalogPriceProvider",{provider:t.price.providerName??t.price.providerId??e}):"base-url"===t.price.method?a("desktop.modelsCatalogPriceBaseUrl",{provider:t.price.providerName??t.price.providerId??e}):a("desktop.modelsCatalogPriceConsensus",{support:t.price.support,total:t.price.total});return`${n} \xb7 ${r}`})(),y="error"===c.phase?c.message:v,b="error"===c.phase?"#ef4444":"success"===c.phase&&"unreliable"===c.recommendation.price.status?"#d97706":"var(--text-dim)";return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,n.jsx)(lI,{children:a("desktop.modelsModelSection")}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[f&&(0,n.jsx)("span",{title:f,style:{maxWidth:260,height:24,padding:"0 8px",border:`1px solid ${"error"===l.phase?"#fecaca":"success"===l.phase?"#bbf7d0":"var(--border)"}`,borderRadius:4,background:"error"===l.phase?"#fee2e2":"success"===l.phase?"#dcfce7":"#e5e7eb",color:"#111827",fontSize:11,display:"inline-flex",alignItems:"center",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",boxSizing:"border-box"},children:f}),(0,n.jsxs)("button",{onClick:x,disabled:!o.id.trim()||"testing"===l.phase,title:a("desktop.modelsTestConnection"),style:{height:24,padding:"0 8px",background:"success"===l.phase?"#16a34a":"none",border:`1px solid ${"success"===l.phase?"#16a34a":"var(--border)"}`,borderRadius:4,color:"success"===l.phase?"#fff":o.id.trim()&&"testing"!==l.phase?"var(--text-muted)":"var(--text-dim)",cursor:o.id.trim()&&"testing"!==l.phase?"pointer":"not-allowed",fontSize:11,display:"inline-flex",alignItems:"center",justifyContent:"center",boxSizing:"border-box",gap:5},children:["success"===l.phase&&(0,n.jsx)(h.S,{size:11}),"testing"===l.phase?a("desktop.modelsTesting"):"success"===l.phase?a("desktop.modelsOk"):a("desktop.modelsTest")]}),(0,n.jsx)("button",{onClick:i,style:{height:24,padding:"0 8px",background:"none",border:"1px solid rgba(239,68,68,0.3)",borderRadius:4,color:"#ef4444",cursor:"pointer",fontSize:11,boxSizing:"border-box"},children:a("desktop.modelsRemove")})]})]}),(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:[(0,n.jsx)(lw,{label:a("desktop.modelsIdRequired"),children:(0,n.jsx)(lS,{value:o.id,onChange:e=>m("id",e),placeholder:"model-id",mono:!0})}),(0,n.jsx)(lw,{label:a("desktop.modelsName"),children:(0,n.jsx)(lS,{value:o.name??"",onChange:e=>m("name",e||void 0),placeholder:a("desktop.modelsDisplayName")})})]}),(0,n.jsxs)("div",{style:{padding:"10px 0",borderTop:"1px solid var(--border)",borderBottom:"1px solid var(--border)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,n.jsx)("button",{onClick:()=>void k(),disabled:!o.id.trim()||"loading"===c.phase,style:{height:28,padding:"0 10px",border:"1px solid var(--border)",borderRadius:5,background:"var(--bg-panel)",color:o.id.trim()&&"loading"!==c.phase?"var(--text-muted)":"var(--text-dim)",cursor:o.id.trim()&&"loading"!==c.phase?"pointer":"not-allowed",fontSize:11},children:"loading"===c.phase?a("desktop.modelsCatalogFilling"):a("desktop.modelsCatalogFill")}),(0,n.jsx)("a",{href:"https://github.com/anomalyco/models.dev",target:"_blank",rel:"noreferrer",style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10,textDecoration:"none"},children:a("desktop.modelsCatalogSource")})]}),(0,n.jsxs)("div",{"aria-live":"polite",style:{marginTop:6,height:20,display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,color:b,fontSize:10},children:[(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:y}),"success"===c.phase&&g.current&&(0,n.jsx)("button",{onClick:()=>{let e=g.current;e&&(g.current=null,s(e),p({phase:"idle"}))},style:{background:"none",border:"none",color:"var(--accent)",cursor:"pointer",fontSize:10,flexShrink:0},children:a("desktop.modelsCatalogUndo")})]})]}),(0,n.jsx)(lw,{label:a("desktop.modelsApiOverride"),children:(0,n.jsx)(lR,{value:o.api??"",onChange:e=>m("api",e||void 0),options:lv})}),(0,n.jsxs)("div",{style:{display:"flex",gap:20,flexWrap:"wrap"},children:[(0,n.jsx)(lz,{label:a("desktop.modelsReasoningThinking"),checked:o.reasoning??!1,onChange:e=>m("reasoning",e||void 0)}),(0,n.jsx)(lz,{label:a("desktop.modelsImageInput"),checked:o.input?.includes("image")??!1,onChange:e=>m("input",e?["text","image"]:void 0)})]}),o.reasoning&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(lz,{label:a("desktop.modelsDeepSeekCompat"),checked:o.compat?.thinkingFormat==="deepseek",onChange:e=>s(function(e,t){if(t)return{...e,compat:{...e.compat??{},...lD}};if(!e.compat)return e;let o={...e.compat};return delete o.thinkingFormat,delete o.requiresReasoningContentOnAssistantMessages,{...e,compat:Object.keys(o).length?o:void 0}}(o,e))}),(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8},children:[(0,n.jsx)(lI,{children:a("desktop.modelsThinkingLevelMap")}),o.thinkingLevelMap&&(0,n.jsx)("button",{onClick:()=>m("thinkingLevelMap",void 0),style:{fontSize:10,padding:"2px 7px",background:"none",border:"1px solid var(--border)",borderRadius:4,color:"var(--text-dim)",cursor:"pointer"},children:a("desktop.modelsClearAll")})]}),(0,n.jsx)(lF,{value:o.thinkingLevelMap,onChange:e=>m("thinkingLevelMap",e)})]})]}),(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:[(0,n.jsx)(lw,{label:a("desktop.modelsContextWindow"),children:(0,n.jsx)(lT,{value:void 0!==o.contextWindow?String(o.contextWindow):"",onChange:e=>m("contextWindow",e?parseInt(e):void 0),placeholder:"128000"})}),(0,n.jsx)(lw,{label:a("desktop.modelsMaxOutputTokens"),children:(0,n.jsx)(lT,{value:void 0!==o.maxTokens?String(o.maxTokens):"",onChange:e=>m("maxTokens",e?parseInt(e):void 0),placeholder:"16384"})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)(lI,{children:a("desktop.modelsCostPerMillionTokens")}),(0,n.jsx)("div",{style:{marginTop:8,display:"grid",gridTemplateColumns:"1fr 1fr 1fr 1fr",gap:8},children:["input","output","cacheRead","cacheWrite"].map(e=>(0,n.jsx)(lw,{label:e,children:(0,n.jsx)(lT,{value:o.cost?.[e]!==void 0?String(o.cost[e]):"",onChange:t=>{let n;return n=parseFloat(t),void s({...o,cost:{...o.cost??{},[e]:isNaN(n)?void 0:n}})},placeholder:"0"})},e))})]})]})}function lA({provider:e,onRefresh:t,onRegisterBuiltinFlush:o,onBuiltinProviderChange:s}){let i=lb(),[a,l]=(0,r.useState)({phase:"idle"}),[d,c]=(0,r.useState)(""),p=(0,r.useRef)(null),u=(0,r.useRef)(null);(0,r.useEffect)(()=>{("auth"===a.phase||"prompt"===a.phase)&&setTimeout(()=>u.current?.focus(),50)},[a.phase]),(0,r.useEffect)(()=>{l({phase:"idle"}),c(""),p.current?.close(),p.current=null},[e.id]),(0,r.useEffect)(()=>()=>{p.current?.close()},[]);let h=(0,r.useCallback)(()=>{p.current?.close(),l({phase:"connecting"}),c("");let o=new EventSource(`/api/auth/login/${encodeURIComponent(e.id)}`);p.current=o,o.onmessage=e=>{let n=JSON.parse(e.data);"auth"===n.type?(l({phase:"auth",url:n.url,instructions:n.instructions??null,token:n.token}),window.open(n.url,"_blank","noopener,noreferrer")):"device_code"===n.type?(l({phase:"device_code",userCode:n.userCode,verificationUri:n.verificationUri,intervalSeconds:n.intervalSeconds??null,expiresInSeconds:n.expiresInSeconds??null}),window.open(n.verificationUri,"_blank","noopener,noreferrer")):"prompt_request"===n.type?l({phase:"prompt",message:n.message,placeholder:n.placeholder??null,token:n.token}):"select_request"===n.type?l({phase:"select",message:n.message,options:n.options??[],token:n.token}):"progress"===n.type?l({phase:"progress",message:n.message}):"success"===n.type?(o.close(),l({phase:"success"}),t()):"error"===n.type?(o.close(),l({phase:"error",message:n.message})):"cancelled"===n.type&&(o.close(),l({phase:"idle"}))},o.onerror=()=>{o.close(),l(e=>"success"===e.phase?e:{phase:"error",message:i("desktop.modelsConnectionLost")})}},[e.id,t,i]),g=(0,r.useCallback)(async()=>{try{let t=await fetch(`/api/auth/logout/${encodeURIComponent(e.id)}`,{method:"POST"});if(t.ok)l({phase:"idle"});else{let e=await t.json().catch(()=>null);l({phase:"error",message:409===t.status?i("desktop.modelsAuthenticationStateChanged"):e?.error??`HTTP ${t.status}`})}}catch(e){l({phase:"error",message:e instanceof Error?e.message:String(e)})}finally{t()}},[e.id,t,i]),m=(0,r.useCallback)(async(t,o)=>{if(o.trim()){l({phase:"progress",message:i("desktop.modelsVerifying")});try{let n=await fetch(`/api/auth/login/${encodeURIComponent(e.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:t,code:o.trim()})});if(!n.ok){let e=await n.json().catch(()=>({}));l({phase:"error",message:e.error??i("desktop.modelsServerError",{status:n.status})});return}c("")}catch(e){l({phase:"error",message:e instanceof Error?e.message:i("desktop.modelsNetworkError")})}}},[e.id,i]),f=(0,r.useCallback)(async(t,o)=>{l({phase:"progress",message:i("desktop.modelsContinuing")});try{let n=await fetch(`/api/auth/login/${encodeURIComponent(e.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:t,code:o})});if(!n.ok){let e=await n.json().catch(()=>({}));l({phase:"error",message:e.error??i("desktop.modelsServerError",{status:n.status})})}}catch(e){l({phase:"error",message:e instanceof Error?e.message:i("desktop.modelsNetworkError")})}},[e.id,i]),x="connecting"===a.phase||"progress"===a.phase||"auth"===a.phase||"device_code"===a.phase||"prompt"===a.phase||"select"===a.phase;return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,n.jsx)(lI,{children:i("desktop.modelsSubscription")}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,n.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:e.loggedIn?"#4ade80":"var(--border)",display:"inline-block"}}),(0,n.jsx)("span",{style:{fontSize:11,color:e.loggedIn?"#4ade80":"var(--text-dim)"},children:e.loggedIn?i("desktop.modelsConnected"):i("desktop.modelsNotConnected")})]})]}),(0,n.jsxs)("div",{style:{minHeight:48},children:["idle"===a.phase&&(0,n.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:e.loggedIn?i("desktop.modelsAlreadyConnected"):i("desktop.modelsConnectAccount",{provider:e.name})}),"connecting"===a.phase&&(0,n.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)"},children:i("desktop.modelsOpeningBrowser")}),"select"===a.phase&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,n.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:a.message}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:a.options.map(e=>(0,n.jsx)("button",{onClick:()=>f(a.token,e.id),style:{padding:"6px 9px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",cursor:"pointer",fontSize:12,textAlign:"left"},children:e.label},e.id))})]}),("auth"===a.phase||"prompt"===a.phase)&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,n.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:"auth"===a.phase?i("desktop.modelsCompleteSignIn"):a.message}),"auth"===a.phase&&(0,n.jsxs)("p",{style:{margin:0,fontSize:11,color:"var(--text-dim)",lineHeight:1.5},children:[i("desktop.modelsBrowserDidNotOpen")," ",(0,n.jsx)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--accent)",wordBreak:"break-all"},children:i("desktop.modelsOpenLoginPage")}),"."]}),(0,n.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,n.jsx)("input",{ref:u,value:d,onChange:e=>c(e.target.value),onKeyDown:e=>{"Enter"===e.key&&m(a.token,d)},placeholder:"auth"===a.phase?"http://localhost:1455/auth/callback?code=…":a.placeholder??i("desktop.modelsEnterValue"),style:{flex:1,padding:"6px 9px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",fontSize:12,outline:"none",fontFamily:"var(--font-mono)",boxSizing:"border-box"}}),(0,n.jsx)("button",{onClick:()=>m(a.token,d),disabled:!d.trim(),style:{padding:"6px 12px",background:d.trim()?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:5,color:d.trim()?"#fff":"var(--text-dim)",cursor:d.trim()?"pointer":"not-allowed",fontSize:12,fontWeight:600,flexShrink:0},children:i("desktop.submit")})]})]}),"device_code"===a.phase&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,n.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:i("desktop.modelsOpenVerificationPage")}),(0,n.jsx)("div",{style:{padding:"8px 10px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",fontSize:16,fontWeight:700,fontFamily:"var(--font-mono)",letterSpacing:0},children:a.userCode}),(0,n.jsxs)("p",{style:{margin:0,fontSize:11,color:"var(--text-dim)",lineHeight:1.5},children:[(0,n.jsx)("a",{href:a.verificationUri,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--accent)",wordBreak:"break-all"},children:a.verificationUri}),a.expiresInSeconds?` ${i("desktop.modelsExpiresInMinutes",{count:Math.ceil(a.expiresInSeconds/60)})}`:""]})]}),"progress"===a.phase&&(0,n.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)"},children:a.message}),"success"===a.phase&&(0,n.jsx)("p",{style:{margin:0,fontSize:12,color:"#4ade80"},children:i("desktop.modelsConnectedSuccessfully")}),"error"===a.phase&&(0,n.jsx)("p",{style:{margin:0,fontSize:12,color:"#f87171"},children:a.message})]}),(0,n.jsx)("div",{style:{display:"flex",gap:8},children:x?(0,n.jsx)("button",{onClick:()=>{p.current?.close(),l({phase:"idle"})},style:{padding:"5px 12px",background:"none",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-muted)",cursor:"pointer",fontSize:12},children:i("desktop.cancel")}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{onClick:h,style:{padding:"5px 14px",background:"var(--accent)",border:"none",borderRadius:5,color:"#fff",cursor:"pointer",fontSize:12,fontWeight:600},children:e.loggedIn?i("desktop.modelsReLogin"):i("desktop.modelsLogin")}),e.loggedIn&&(0,n.jsx)("button",{onClick:g,style:{padding:"5px 12px",background:"none",border:"1px solid rgba(239,68,68,0.3)",borderRadius:5,color:"#ef4444",cursor:"pointer",fontSize:12},children:i("desktop.modelsDisconnect")})]})}),(0,n.jsx)(lk,{providerId:e.id,onRegisterFlush:o,onConfigChange:s})]})}function lN({provider:e,onRefresh:t,onRegisterBuiltinFlush:o,onBuiltinProviderChange:s}){let i=lb(),[a,l]=(0,r.useState)(""),[d,c]=(0,r.useState)(!1),[p,u]=(0,r.useState)(!1),[g,m]=(0,r.useState)(null),[f,x]=(0,r.useState)(!1);(0,r.useEffect)(()=>{l(""),m(null),x(!1)},[e.id]);let k=(0,r.useCallback)(async()=>{if(a.trim()){c(!0),m(null),x(!1);try{let o=await fetch(`/api/auth/api-key/${encodeURIComponent(e.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:a.trim()})}),n=await o.json();!o.ok||n.error?m(n.error??`HTTP ${o.status}`):(l(""),x(!0),setTimeout(()=>x(!1),2e3),t())}catch(e){m(String(e))}finally{c(!1)}}},[a,e.id,t]),v=(0,r.useCallback)(async()=>{u(!0),m(null);try{let t=await fetch(`/api/auth/api-key/${encodeURIComponent(e.id)}`,{method:"DELETE"}),o=await t.json();(!t.ok||o.error)&&m(409===t.status?i("desktop.modelsAuthenticationStateChanged"):o.error??`HTTP ${t.status}`)}catch(e){m(String(e))}finally{t(),u(!1)}},[e.id,t,i]);return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,n.jsx)(lI,{children:i("desktop.modelsApiKey")}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,n.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:e.configured?"#4ade80":"var(--border)",display:"inline-block"}}),(0,n.jsx)("span",{style:{fontSize:11,color:e.configured?"#4ade80":"var(--text-dim)"},children:e.configured?i("desktop.modelsConfigured"):i("desktop.modelsNotConfigured")})]})]}),(0,n.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:e.configured?i("desktop.modelsApiKeyStored"):i("desktop.modelsEnableModels",{provider:e.displayName,count:e.modelCount,models:1===e.modelCount?i("desktop.modelsSingular"):i("desktop.modelsPlural")})}),(0,n.jsx)(lw,{label:i("desktop.modelsApiKey"),children:(0,n.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,n.jsx)(lC,{value:a,onChange:l,onKeyDown:e=>{"Enter"===e.key&&a.trim()&&k()},placeholder:e.configured?i("desktop.modelsEnterNewKey"):"sk-…",style:{flex:1},autoComplete:"off",spellCheck:!1,mono:!0}),(0,n.jsxs)("button",{onClick:k,disabled:d||!a.trim()||f,style:{padding:"6px 12px",background:f?"#16a34a":a.trim()?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:5,color:a.trim()||f?"#fff":"var(--text-dim)",cursor:d||!a.trim()||f?"not-allowed":"pointer",fontSize:12,fontWeight:600,flexShrink:0,display:"flex",alignItems:"center",gap:5},children:[f&&(0,n.jsx)(h.S,{size:12}),f?i("desktop.modelsSaved"):d?i("desktop.modelsSaving"):i("desktop.modelsSave")]})]})}),g&&(0,n.jsx)("p",{style:{margin:0,fontSize:12,color:"#f87171"},children:g}),e.configured&&(0,n.jsx)("button",{onClick:v,disabled:p,style:{alignSelf:"flex-start",padding:"5px 12px",background:"none",border:"1px solid rgba(239,68,68,0.3)",borderRadius:5,color:"#ef4444",cursor:p?"not-allowed":"pointer",fontSize:12},children:p?i("desktop.modelsRemoving"):i("desktop.modelsDisconnect")}),(0,n.jsx)(lk,{providerId:e.id,onRegisterFlush:o,onConfigChange:s})]})}function l$({oauthProviders:e,apiKeyProviders:t,onSelectOAuth:o,onSelectApiKey:s,onAddCustom:i,onClose:a}){let l=lb(),[d,p]=(0,r.useState)(""),u=(0,r.useRef)(null);(0,r.useEffect)(()=>{setTimeout(()=>u.current?.focus(),30)},[]);let h=d.trim().toLowerCase(),g=e.filter(e=>!e.loggedIn&&(!h||e.name.toLowerCase().includes(h))),m=t.filter(e=>!e.configured&&(!h||e.displayName.toLowerCase().includes(h)||e.id.toLowerCase().includes(h))),f=!h||"custom".includes(h)||"openai-compatible".includes(h)||"anthropic-compatible".includes(h),k=g.length+m.length+ +!!f,v={display:"flex",flexDirection:"row",alignItems:"center",gap:8,padding:"10px 12px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:7,boxSizing:"border-box",cursor:"pointer",minWidth:0,textAlign:"left",transition:"border-color 0.12s, background 0.12s",width:"100%"};return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:1100,background:"rgba(0,0,0,0.4)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:e=>{e.target===e.currentTarget&&a()},children:(0,n.jsxs)("div",{style:{width:820,maxWidth:"calc(100vw - 32px)",maxHeight:"min(72vh, calc(100vh - 32px))",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,display:"flex",flexDirection:"column",boxShadow:"0 8px 32px rgba(0,0,0,0.22)",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{padding:"10px 14px",borderBottom:"1px solid var(--border)",flexShrink:0,display:"flex",alignItems:"center",gap:8},children:[(0,n.jsx)(c.$,{size:13,style:{color:"var(--text-dim)",flexShrink:0}}),(0,n.jsx)("input",{ref:u,value:d,onChange:e=>p(e.target.value),onKeyDown:e=>{"Escape"===e.key&&a()},placeholder:l("desktop.modelsSearchProviders"),style:{flex:1,background:"none",border:"none",outline:"none",color:"var(--text)",fontSize:13,boxSizing:"border-box"}})]}),(0,n.jsx)("div",{style:{flex:1,overflowY:"auto",padding:14},children:0===k?(0,n.jsx)("div",{style:{padding:"20px 0",fontSize:12,color:"var(--text-dim)",textAlign:"center"},children:l("desktop.modelsNoProvidersMatch")}):(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(min(240px, 100%), 1fr))",gap:8},children:[f&&(0,n.jsx)("div",{style:{gridColumn:"1 / -1",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:l("desktop.modelsCustom")}),f&&(0,n.jsxs)("button",{onClick:()=>{i(),a()},style:v,onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="var(--bg-panel)"},children:[(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:l("desktop.modelsCompatibleProvider")}),(0,n.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:l("desktop.modelsCustomEndpointFormat")})]}),(0,n.jsx)("span",{style:{width:26,height:26,borderRadius:5,background:"var(--bg-hover)",border:"1px dashed var(--border)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,n.jsx)(x.c,{size:13,style:{color:"var(--text-dim)"}})})]}),g.length>0&&(0,n.jsx)("div",{style:{gridColumn:"1 / -1",paddingTop:6*!!f,fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:l("desktop.modelsSubscriptions")}),g.map(e=>(0,n.jsxs)("button",{onClick:()=>{o(e.id),a()},style:v,onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="var(--bg-panel)"},children:[(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),(0,n.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:"OAuth"})]}),(0,n.jsx)(sC,{id:e.id,size:28})]},e.id)),m.length>0&&(0,n.jsx)("div",{style:{gridColumn:"1 / -1",paddingTop:6*(g.length>0),fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:l("desktop.modelsApiKey")}),m.map(e=>(0,n.jsxs)("button",{onClick:()=>{s(e.id),a()},style:v,onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="var(--bg-panel)"},children:[(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.displayName}),(0,n.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:l("desktop.modelsCount",{count:e.modelCount})})]}),(0,n.jsx)(sC,{id:e.id,size:28})]},e.id))]})})]})})}function lL({existingProviders:e,onCancel:t,onSubmit:o}){let s=lb(),[i,a]=(0,r.useState)(""),[l,d]=(0,r.useState)(lv[0]),[c,p]=(0,r.useState)(lv[0]),[u,h]=(0,r.useState)(""),[g,m]=(0,r.useState)(""),[f,k]=(0,r.useState)(void 0),[v,y]=(0,r.useState)(!1),[b,w]=(0,r.useState)(""),[j,S]=(0,r.useState)(""),[C,T]=(0,r.useState)(""),[R,z]=(0,r.useState)(""),I=(0,r.useRef)(null);(0,r.useEffect)(()=>{setTimeout(()=>I.current?.focus(),30)},[]);let M=!u.trim()||/^https?:\/\//i.test(u.trim());return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:1100,background:"rgba(0,0,0,0.4)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:e=>{e.target===e.currentTarget&&t()},children:(0,n.jsxs)("div",{style:{width:480,maxWidth:"calc(100vw - 32px)",maxHeight:"min(82vh, calc(100vh - 32px))",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,display:"flex",flexDirection:"column",boxShadow:"0 8px 32px rgba(0,0,0,0.22)",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 16px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,n.jsx)("span",{style:{fontSize:14,fontWeight:700,color:"var(--text)"},children:s("desktop.modelsAddCustomTitle")}),(0,n.jsx)("button",{onClick:t,"aria-label":s("desktop.modelsClose"),title:s("desktop.modelsClose"),style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:20,lineHeight:1,padding:"2px 6px"},children:"\xd7"})]}),(0,n.jsxs)("div",{style:{padding:16,overflowY:"auto",display:"flex",flexDirection:"column",gap:14},children:[(0,n.jsx)(lw,{label:s("desktop.modelsProviderNameOptional"),children:(0,n.jsx)(lS,{value:i,onChange:a,placeholder:"new-provider",mono:!0,inputRef:I})}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)(lI,{children:s("desktop.modelsCallFormat")}),(0,n.jsxs)("select",{value:c,onChange:e=>{let t=e.target.value;(p(t),t===ly)?y(!0):d(t)},style:lj,children:[lv.map(e=>(0,n.jsx)("option",{value:e,children:e},e)),(0,n.jsx)("option",{value:ly,children:s("desktop.modelsCustomCallFormat")})]}),(0,n.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)"},children:s("desktop.modelsCallFormatHelp")}),c===ly&&(0,n.jsx)("span",{style:{fontSize:10,color:"#d97706",lineHeight:1.4},children:s("desktop.modelsCustomCallFormatHelp")})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)(lI,{children:s("desktop.modelsImportProvider")}),(0,n.jsxs)("select",{value:R,onChange:t=>{var o;let n;return z(o=t.target.value),void((n=e.find(e=>e.name===o))&&(n.provider.api&&(d(n.provider.api),p(n.provider.api)),h(n.provider.baseUrl??""),m(n.provider.apiKey??""),k(n.provider.headers?{...n.provider.headers}:void 0)))},style:{...lj,color:R?"var(--text)":"var(--text-dim)"},children:[(0,n.jsx)("option",{value:"",children:s("desktop.modelsImportProviderPlaceholder")}),e.map(e=>(0,n.jsxs)("option",{value:e.name,children:[e.name,e.provider.api?` \xb7 ${e.provider.api}`:""]},e.name))]}),R&&(0,n.jsxs)("span",{style:{fontSize:10,color:"#4ade80"},children:[s("desktop.modelsImported"),": ",R]})]}),(0,n.jsxs)("div",{style:{borderTop:"1px solid var(--border)",paddingTop:12,display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)(lI,{children:s("desktop.modelsFullUrl")}),v?(0,n.jsxs)("div",{style:{display:"flex",gap:6,alignItems:"center"},children:[(0,n.jsx)(lS,{value:u,onChange:h,placeholder:s("desktop.modelsUrlPlaceholder"),mono:!0}),(0,n.jsx)("button",{onClick:()=>{y(!1),h("")},title:s("desktop.modelsRemove"),style:{flexShrink:0,width:28,height:28,background:"none",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-dim)",cursor:"pointer",fontSize:14,lineHeight:1,display:"flex",alignItems:"center",justifyContent:"center"},children:"\xd7"})]}):(0,n.jsxs)("button",{onClick:()=>y(!0),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,padding:"7px 0",background:"none",border:"1px dashed var(--border)",borderRadius:5,color:"var(--text-muted)",cursor:"pointer",fontSize:12},onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.color="var(--text-muted)"},children:[(0,n.jsx)(x.c,{size:12}),s("desktop.modelsAddUrl")]}),u.trim()&&!M&&(0,n.jsx)("span",{style:{fontSize:10,color:"#ef4444"},children:s("desktop.modelsUrlInvalid")}),(0,n.jsxs)(lw,{label:s("desktop.modelsApiKey"),children:[(0,n.jsx)(lC,{value:g,onChange:m,placeholder:s("desktop.modelsApiKeyPlaceholder"),mono:!0}),(0,n.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:s("desktop.modelsApiKeyHelp")})]})]}),(0,n.jsxs)("div",{style:{borderTop:"1px solid var(--border)",paddingTop:12,display:"flex",flexDirection:"column",gap:10},children:[(0,n.jsx)(lI,{children:s("desktop.modelsCustomRequest")}),(0,n.jsxs)(lw,{label:s("desktop.modelsRequestModelId"),children:[(0,n.jsx)(lS,{value:b,onChange:w,placeholder:"model-id",mono:!0}),(0,n.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:s("desktop.modelsRequestModelIdHelp")})]}),(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:[(0,n.jsx)(lw,{label:s("desktop.modelsRequestContextLength"),children:(0,n.jsx)(lT,{value:j,onChange:S,placeholder:"128000"})}),(0,n.jsx)(lw,{label:s("desktop.modelsRequestOutputLength"),children:(0,n.jsx)(lT,{value:C,onChange:T,placeholder:"16384"})})]})]})]}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,padding:"10px 16px",borderTop:"1px solid var(--border)",flexShrink:0},children:[(0,n.jsx)("button",{onClick:t,style:{padding:"6px 14px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:"pointer",fontSize:13},children:s("desktop.cancel")}),(0,n.jsx)("button",{onClick:()=>{let e=b.trim()?{id:b.trim(),...parseInt(j,10)>0?{contextWindow:parseInt(j,10)}:{},...parseInt(C,10)>0?{maxTokens:parseInt(C,10)}:{}}:void 0;o({name:i.trim(),api:l,...u.trim()?{baseUrl:u.trim()}:{},...g.trim()?{apiKey:g.trim()}:{},...f?{headers:f}:{},model:e})},disabled:!M,style:{padding:"6px 16px",background:M?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:6,color:M?"#fff":"var(--text-dim)",cursor:M?"pointer":"not-allowed",fontSize:13,fontWeight:600},children:s("desktop.modelsAdd")})]})]})})}function lO({embedded:e=!1,sessionId:t,onCloseAction:o,onSavedAction:s,onRegisterFlush:i}){let a=lb(),l=$(),[d,c]=(0,r.useState)({providers:{}}),[p,u]=(0,r.useState)(!0),[g,m]=(0,r.useState)(!1),[f,x]=(0,r.useState)(null),[k,v]=(0,r.useState)(!1),[y,b]=(0,r.useState)(null),[w,j]=(0,r.useState)([]),[S,C]=(0,r.useState)([]),[R,z]=(0,r.useState)(!1),[I,M]=(0,r.useState)(!1),[P,E]=(0,r.useState)({oauth:!1,apiKey:!1}),F=(0,r.useRef)({providers:{}}),D=(0,r.useRef)(new Map),W=(0,r.useRef)(0),A=(0,r.useRef)(!1);F.current=d;let N=(0,r.useCallback)(e=>{let t=e(F.current);return F.current=t,W.current+=1,c(t),t},[]),L=(0,r.useCallback)(()=>{fetch("/api/auth/combined").then(e=>e.json()).then(e=>{j(e.oauth??[]),C(e.apiKey??[])}).catch(()=>{}).finally(()=>E({oauth:!0,apiKey:!0}))},[]),O=(0,r.useCallback)((e,t)=>(D.current.set(e,t),()=>{D.current.get(e)===t&&D.current.delete(e)}),[]),H=(0,r.useCallback)(async()=>{for(let e of[...D.current.values()])await e()},[]);(0,r.useEffect)(()=>{if(i)return i(H)??void 0},[H,i]);let B=(0,r.useCallback)((e,t)=>{N(o=>{let n={...o.providers??{}};return t?n[e]=t:delete n[e],{...o,providers:n}}),s?.()},[s,N]),U=(0,r.useCallback)(async e=>{if(!A.current){A.current=!0,x(null);try{await H(),b(e)}catch(e){x(e instanceof Error?e.message:String(e))}finally{A.current=!1}}},[H]);(0,r.useEffect)(()=>{fetch("/api/models-config").then(e=>e.json()).then(e=>{let t=e.providers?e:{...e,providers:{}};F.current=t,W.current+=1,c(t)}).catch(()=>{let e={providers:{}};F.current=e,W.current+=1,c(e)}).finally(()=>u(!1)),L()},[L]);let _=(0,r.useCallback)(async e=>{if(!A.current){A.current=!0,x(null);try{await H();let t=e.name.trim()||"new-provider",o=t,n=1;for(;F.current.providers?.[o];)o=`${t}-${n++}`;let r={api:e.api||"openai-completions",...e.baseUrl?{baseUrl:e.baseUrl}:{},...e.apiKey?{apiKey:e.apiKey}:{},...e.headers?{headers:e.headers}:{},...e.model?{models:[e.model]}:{}};N(e=>({...e,providers:{...e.providers??{},[o]:r}})),b({type:"provider",name:o}),M(!1)}catch(e){x(e instanceof Error?e.message:String(e))}finally{A.current=!1}}},[H,N]),q=(0,r.useCallback)((e,t)=>{N(o=>({...o,providers:{...o.providers??{},[e]:t}}))},[N]),V=(0,r.useCallback)((e,t)=>{N(o=>{let n=Object.entries(o.providers??{}),r=n.findIndex(([t])=>t===e);return -1===r?o:(n[r]=[t,n[r][1]],{...o,providers:Object.fromEntries(n)})}),b(o=>o?"provider"===o.type&&o.name===e?{type:"provider",name:t}:"model"===o.type&&o.providerName===e?{...o,providerName:t}:o:o)},[N]),K=(0,r.useCallback)(e=>{let t=Object.keys(N(t=>{let o={...t.providers??{}};return delete o[e],{...t,providers:o}}).providers??{});b(t.length>0?{type:"provider",name:t[0]}:null)},[N]),G=(0,r.useCallback)(async e=>{if(!A.current){A.current=!0,x(null);try{await H();let t=N(t=>{let o=t.providers?.[e]??{},n=[...o.models??[],{id:""}];return{...t,providers:{...t.providers??{},[e]:{...o,models:n}}}}),o=(t.providers?.[e]?.models?.length??1)-1;b({type:"model",providerName:e,index:o})}catch(e){x(e instanceof Error?e.message:String(e))}finally{A.current=!1}}},[H,N]),J=(0,r.useCallback)((e,t)=>{N(o=>{let n=o.providers?.[e]??{},r=[...n.models??[]],s=new Set(r.map(e=>e.id));for(let e of t)s.has(e.id)||(s.add(e.id),r.push({id:e.id,name:e.name}));return{...o,providers:{...o.providers??{},[e]:{...n,models:r}}}})},[N]),Y=(0,r.useCallback)((e,t,o)=>{N(n=>{let r=n.providers?.[e]??{},s=[...r.models??[]];return s[t]=o,{...n,providers:{...n.providers??{},[e]:{...r,models:s}}}})},[N]),X=(0,r.useCallback)(async(e,t)=>{if(!A.current){A.current=!0,x(null);try{await H(),N(o=>{let n=o.providers?.[e]??{},r=[...n.models??[]];return r.splice(t,1),{...o,providers:{...o.providers??{},[e]:{...n,models:r.length?r:void 0}}}}),b({type:"provider",name:e})}catch(e){x(e instanceof Error?e.message:String(e))}finally{A.current=!1}}},[H,N]),Z=(0,r.useCallback)(async()=>{if(!g){m(!0),x(null),v(!1);try{await H();let e=F.current,t=await fetch("/api/models-config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),o=await t.json();if(!t.ok||o.error)throw Error(o.error??`HTTP ${t.status}`);o.config&&(F.current=o.config,W.current+=1,c(o.config)),v(!0),s?.(),setTimeout(()=>v(!1),2e3)}catch(e){x(e instanceof Error?e.message:String(e))}finally{m(!1)}}},[H,s,g]),Q=(0,r.useCallback)(async()=>{try{await H(),o?.()}catch(e){x(e instanceof Error?e.message:String(e))}},[H,o]),ee=Object.entries(d.providers??{}),et=new Set([...w.map(e=>e.id),...S.map(e=>e.id)]),eo=ee.filter(([e])=>!et.has(e)),en=w.filter(e=>e.loggedIn),er=S.filter(e=>e.configured);(0,r.useEffect)(()=>{if(y||p||!P.oauth||!P.apiKey)return;let e=en[0]?{type:"oauth",providerId:en[0].id}:er[0]?{type:"apikey",providerId:er[0].id}:eo[0]?.[0]?{type:"provider",name:eo[0][0]}:null;e&&b(e)},[er,en,eo,p,P.apiKey,P.oauth,y]);let es=(()=>{if(!y)return null;if("oauth"===y.type){let e=w.find(e=>e.id===y.providerId);return e?(0,n.jsx)(lA,{provider:e,onRefresh:L,onRegisterBuiltinFlush:O,onBuiltinProviderChange:t=>B(e.id,t)},e.id):null}if("apikey"===y.type){let e=S.find(e=>e.id===y.providerId);return e?(0,n.jsx)(lN,{provider:e,onRefresh:L,onRegisterBuiltinFlush:O,onBuiltinProviderChange:t=>B(e.id,t)},e.id):null}if("provider"===y.type){let e=d.providers?.[y.name];return e?(0,n.jsx)(lM,{name:y.name,provider:e,onChange:e=>q(y.name,e),onRename:e=>V(y.name,e),onDelete:()=>K(y.name),onAddModels:e=>J(y.name,e),onAddModel:()=>{G(y.name)}},y.name):null}let e=d.providers?.[y.providerName],t=e?.models?.[y.index];return t?(0,n.jsx)(lW,{providerName:y.providerName,provider:e,model:t,onChange:e=>Y(y.providerName,y.index,e),onDelete:()=>{X(y.providerName,y.index)}},`${y.providerName}-${y.index}`):null})();return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:e?{display:"flex",flex:1,minWidth:0,minHeight:0,overflow:"hidden"}:{position:"fixed",inset:0,zIndex:1e3,background:"rgba(0,0,0,0.35)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:t=>{e||t.target!==t.currentTarget||Q()},children:(0,n.jsxs)("div",{style:e?{flex:1,minWidth:0,minHeight:0,display:"flex",flexDirection:"column",overflow:"hidden"}:{width:l?"calc(100vw - 16px)":860,maxWidth:"calc(100vw - 16px)",height:l?"calc(100dvh - 16px)":"78vh",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:[!e&&(0,n.jsxs)("div",{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},children:[(0,n.jsx)("span",{style:{fontSize:15,fontWeight:700,color:"var(--text)"},children:a("desktop.models")}),(0,n.jsx)("code",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:"~/.pi/agent/models.json"})]}),(0,n.jsx)("button",{onClick:()=>{Q()},"aria-label":a("desktop.modelsClose"),title:a("desktop.modelsClose"),style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:20,lineHeight:1,padding:"2px 6px"},children:"\xd7"})]}),(0,n.jsx)(lg,{}),(0,n.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:l?"column":"row",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{width:l?"100%":210,maxHeight:l?"40vh":void 0,borderRight:l?"none":"1px solid var(--border)",borderBottom:l?"1px solid var(--border)":"none",display:"flex",flexDirection:"column",flexShrink:0,background:"var(--bg-panel)"},children:[(0,n.jsxs)("div",{style:{flex:1,overflowY:"auto",padding:"8px 6px"},children:[en.map(e=>{let t=y?.type==="oauth"&&y.providerId===e.id;return(0,n.jsxs)("div",{onClick:()=>{U({type:"oauth",providerId:e.id})},style:{display:"flex",alignItems:"center",gap:7,padding:"5px 8px",borderRadius:5,cursor:"pointer",background:t?"var(--bg-selected)":"none"},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="none")},children:[(0,n.jsx)(sC,{id:e.id,size:16}),(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]},e.id)}),er.map(e=>{let t=y?.type==="apikey"&&y.providerId===e.id;return(0,n.jsxs)("div",{onClick:()=>{U({type:"apikey",providerId:e.id})},style:{display:"flex",alignItems:"center",gap:7,padding:"5px 8px",borderRadius:5,cursor:"pointer",background:t?"var(--bg-selected)":"none"},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="none")},children:[(0,n.jsx)(sC,{id:e.id,size:16}),(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.displayName})]},e.id)}),(en.length>0||er.length>0)&&eo.length>0&&(0,n.jsx)("div",{style:{margin:"4px 8px",borderTop:"1px solid var(--border)"}}),p?(0,n.jsx)("div",{style:{padding:"10px 8px",fontSize:12,color:"var(--text-muted)"},children:a("desktop.modelsLoading")}):eo.map(([e,t])=>{let o=y?.type==="provider"&&y.name===e,r=t.models??[];return(0,n.jsxs)("div",{style:{marginBottom:2},children:[(0,n.jsxs)("div",{onClick:()=>{U({type:"provider",name:e})},style:{display:"flex",alignItems:"center",gap:6,padding:"7px 8px",borderRadius:5,cursor:"pointer",background:o?"var(--bg-selected)":"none"},onMouseEnter:e=>{o||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{o||(e.currentTarget.style.background="none")},children:[(0,n.jsx)(T.G,{size:11,style:{color:"var(--text-dim)",flexShrink:0}}),(0,n.jsx)("span",{style:{fontSize:12,fontWeight:o?600:400,color:"var(--text)",fontFamily:"var(--font-mono)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e})]}),r.map((t,o)=>{let r=y?.type==="model"&&y.providerName===e&&y.index===o;return(0,n.jsxs)("div",{onClick:()=>{U({type:"model",providerName:e,index:o})},style:{display:"flex",alignItems:"center",gap:6,padding:"5px 8px 5px 26px",borderRadius:5,cursor:"pointer",background:r?"var(--bg-selected)":"none"},onMouseEnter:e=>{r||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{r||(e.currentTarget.style.background="none")},children:[(0,n.jsx)("span",{style:{fontSize:11,fontFamily:"var(--font-mono)",color:t.id?"var(--text-muted)":"var(--text-dim)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t.id||a("desktop.modelsNewModel")}),t.reasoning&&(0,n.jsx)("span",{style:{fontSize:9,padding:"1px 4px",background:"rgba(99,102,241,0.12)",color:"rgba(99,102,241,0.8)",borderRadius:3,flexShrink:0},children:"T"})]},o)}),(0,n.jsx)("div",{onClick:t=>{t.stopPropagation(),G(e)},style:{display:"flex",alignItems:"center",gap:4,padding:"4px 8px 4px 26px",borderRadius:5,cursor:"pointer",color:"var(--text-dim)"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:(0,n.jsx)("span",{style:{fontSize:11},children:a("desktop.modelsAddModel")})})]},e)})]}),(0,n.jsx)("div",{style:{borderTop:"1px solid var(--border)",padding:"8px 6px"},children:(0,n.jsx)("button",{onClick:()=>z(!0),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,width:"100%",padding:"6px 0",background:"none",border:"1px dashed var(--border)",borderRadius:5,color:"var(--text-muted)",cursor:"pointer",fontSize:12},onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.color="var(--text-muted)"},children:a("desktop.modelsAddProvider")})})]}),(0,n.jsx)("div",{style:{flex:1,overflowY:"auto",padding:20},children:p?null:es??(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:13},children:a("desktop.modelsSelectProviderOrModel")})})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:10,padding:"10px 18px",borderTop:"1px solid var(--border)",flexShrink:0},children:[f&&(0,n.jsx)("span",{style:{fontSize:12,color:"#f87171",flex:1},children:f}),!e&&(0,n.jsx)("button",{onClick:()=>{Q()},style:{padding:"6px 14px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:"pointer",fontSize:13},children:a("desktop.cancel")}),(0,n.jsx)(ls,{sessionId:t,onBeforeApply:Z}),(0,n.jsxs)("button",{onClick:Z,disabled:g||k,style:{position:"relative",padding:"6px 16px",minWidth:92,background:k?"#16a34a":g?"var(--bg-panel)":"var(--accent)",border:"none",borderRadius:6,color:k?"#fff":g?"var(--text-muted)":"#fff",cursor:g||k?"default":"pointer",fontSize:13,fontWeight:600,display:"inline-flex",alignItems:"center",justifyContent:"center",gap:6,transition:"background-color 0.2s ease, color 0.2s ease",animation:k?"saved-pop 0.45s ease":void 0},children:[k&&(0,n.jsx)(h.S,{size:14,style:{strokeDasharray:18,animation:"saved-check-draw 0.35s ease forwards",flexShrink:0}}),(0,n.jsx)("span",{children:k?a("desktop.modelsSaved"):g?a("desktop.modelsSaving"):a("desktop.modelsSave")})]})]})]})}),R&&(0,n.jsx)(l$,{oauthProviders:w,apiKeyProviders:S,onSelectOAuth:e=>{U({type:"oauth",providerId:e})},onSelectApiKey:e=>{U({type:"apikey",providerId:e})},onAddCustom:()=>{z(!1),M(!0)},onClose:()=>z(!1)}),I&&(0,n.jsx)(lL,{existingProviders:eo.map(([e,t])=>({name:e,provider:t})),onCancel:()=>M(!1),onSubmit:e=>{_(e)}})]})}function lH(e){return e.replace(/^\/(?:Users|home)\/[^/]+/,"~")}function lB(e){let t=e.trim().match(/^\$?\s*pi\s+install\s+(\S+)\s*$/);return t?.[1]??e}function lU(e){return`${e.scope}\0${e.source}`}function l_(e,t){if(e.disabled)return t("desktop.disabled");let o=[e.counts.extensions?t("desktop.extensionsCount",{count:e.counts.extensions}):"",e.counts.skills?t("desktop.skillsCount",{count:e.counts.skills}):"",e.counts.prompts?t("desktop.promptsCount",{count:e.counts.prompts}):"",e.counts.themes?t("desktop.themesCount",{count:e.counts.themes}):""].filter(Boolean);return o.length?o.join(" \xb7 "):t("desktop.noResources")}function lq(e,t){let o=[];return e.version&&o.push(t("desktop.installedVersion",{version:e.version})),e.configuredVersion&&o.push(t("desktop.configuredVersion",{version:e.configuredVersion})),o.length?o.join(" \xb7 "):t("desktop.unknown")}function lV(e){return"loaded"===e?"var(--accent)":"installed"===e?"#f59e0b":"disabled"===e?"var(--text-dim)":"#ef4444"}function lK({pkg:e}){let{t}=(0,F.s)(),o=[["extension",t("desktop.extensions")],["skill",t("desktop.skills")],["prompt",t("desktop.prompts")],["theme",t("desktop.themes")]].map(([t,o])=>({kind:t,label:o,resources:e.resources.filter(e=>e.kind===t)})).filter(e=>e.resources.length>0);return 0===o.length?(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-dim)"},children:t(e.disabled?"desktop.packageDisabled":"desktop.noResolvedResources")}):(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:o.map((e,t)=>(0,n.jsxs)("div",{style:{borderTop:0===t?"none":"1px solid var(--border)",paddingTop:12*(0!==t)},children:[(0,n.jsx)("div",{style:{fontSize:10,fontWeight:700,color:"var(--text-dim)",textTransform:"uppercase",marginBottom:6},children:e.label}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:e.resources.map(e=>(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e.path,children:e.name}),(0,n.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginTop:1},title:e.path,children:e.relativePath})]},`${e.kind}:${e.path}`))})]},e.kind))})}function lG({scope:e}){let{t}=(0,F.s)();return(0,n.jsx)("span",{style:{fontSize:10,padding:"1px 5px",borderRadius:3,flexShrink:0,background:"project"===e?"rgba(99,102,241,0.12)":"rgba(120,120,120,0.12)",color:"project"===e?"rgba(99,102,241,0.85)":"var(--text-dim)"},children:t(`desktop.${e}`)})}function lJ(e,t){return{padding:"6px 12px",background:t?"rgba(239,68,68,0.08)":"none",border:"1px solid var(--border)",borderRadius:6,color:t?"#ef4444":"var(--text-muted)",cursor:e?"not-allowed":"pointer",fontSize:12,opacity:e?.5:1}}function lY({enabled:e,loading:t,onToggle:o,label:r}){return(0,n.jsx)("button",{type:"button",onClick:o,disabled:t,title:r,"aria-label":r,"aria-pressed":e,style:{flexShrink:0,width:40,height:22,borderRadius:11,border:"none",padding:0,cursor:t?"wait":"pointer",background:e?"var(--accent)":"var(--border)",position:"relative",transition:"background 0.18s",outline:"none",opacity:t?.65:1},children:(0,n.jsx)("span",{style:{position:"absolute",top:3,left:e?21:3,width:16,height:16,borderRadius:"50%",background:"var(--bg)",boxShadow:"0 1px 4px rgba(0,0,0,0.22)",transition:"left 0.18s cubic-bezier(.4,0,.2,1)"}})})}function lX({value:e,onChange:t}){let{t:o}=(0,F.s)();return(0,n.jsx)("div",{style:{display:"inline-flex",border:"1px solid var(--border)",borderRadius:7,overflow:"hidden",height:30},children:["global","project"].map(r=>{let s=e===r;return(0,n.jsx)("button",{onClick:()=>t(r),style:{width:76,border:"none",borderRight:"global"===r?"1px solid var(--border)":"none",background:s?"var(--bg-selected)":"none",color:s?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:12},children:o(`desktop.${r}`)},r)})})}function lZ({cwd:e,source:t,scope:o,busy:s,actionError:i,onSourceChange:a,onScopeChange:l,onInstall:d}){let{t:c}=(0,F.s)(),p=(0,r.useRef)(null);return(0,r.useEffect)(()=>{p.current?.focus()},[]),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:18,maxWidth:660,minHeight:"100%"},children:[(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:5},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,flexWrap:"wrap"},children:[(0,n.jsx)("div",{style:{fontSize:14,fontWeight:700,color:"var(--text)"},children:c("desktop.addPluginTitle")}),(0,n.jsx)("a",{href:"https://pi.dev/packages",target:"_blank",rel:"noopener noreferrer",style:{color:"var(--accent)",fontSize:12,textDecoration:"none",whiteSpace:"nowrap"},children:"pi.dev/packages ↗"})]}),(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-dim)",fontFamily:"var(--font-mono)"},children:"project"===o?`${lH(e)}/.pi/agent/{npm,git}`:"~/.pi/agent/{npm,git}"})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:7},children:[(0,n.jsx)("label",{htmlFor:"plugin-source",style:{fontSize:12,fontWeight:600,color:"var(--text-muted)"},children:c("desktop.pluginSource")}),(0,n.jsx)("input",{id:"plugin-source",ref:p,value:t,onChange:e=>a(e.target.value),onPaste:e=>{let t=e.clipboardData.getData("text"),o=lB(t);o!==t&&(e.preventDefault(),a(o))},onBlur:e=>a(lB(e.currentTarget.value)),placeholder:"npm:@scope/package",style:{width:"100%",height:36,padding:"0 11px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:13,outline:"none"},onKeyDown:e=>{"Enter"===e.key&&t.trim()&&!s&&d()}})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[(0,n.jsx)(lX,{value:o,onChange:l}),(0,n.jsx)("button",{type:"button",onClick:d,disabled:s||!t.trim(),style:{...lJ(s||!t.trim()),background:"var(--accent)",color:"white",borderColor:"var(--accent)"},children:c(s?"desktop.installing":"desktop.install")})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:7},children:[(0,n.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text-muted)"},children:c("desktop.examples")}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:["npm:@scope/pi-plugin","git:https://github.com/user/repo","/absolute/path/to/plugin"].map(e=>(0,n.jsx)("button",{type:"button",onClick:()=>a(e),style:{width:"100%",minHeight:30,textAlign:"left",padding:"6px 9px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text-dim)",cursor:"pointer",fontFamily:"var(--font-mono)",fontSize:11},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text-muted)"},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg-panel)",e.currentTarget.style.color="var(--text-dim)"},children:e},e))})]}),i&&(0,n.jsx)("div",{style:{fontSize:12,color:"#ef4444",whiteSpace:"pre-wrap"},children:i})]})}function lQ({pkg:e,cwd:t,busyKey:o,actionError:r,actionMessage:s,sessionId:i,onAction:a,onReloadSession:l}){let{t:d}=(0,F.s)(),c=lU(e),p=o?.endsWith(c)??!1,u="reload"===o,h=!e.disabled;return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:20,maxWidth:680},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:12,minWidth:0,flexWrap:"wrap"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:180,flex:1},children:[(0,n.jsx)(lY,{enabled:h,loading:p||u,onToggle:()=>a(e.disabled?"enable":"disable",e),label:d(e.disabled?"desktop.enablePackage":"desktop.disablePackage")}),(0,n.jsx)(lG,{scope:e.scope}),e.disabled?(0,n.jsx)("span",{style:{fontSize:10,padding:"1px 5px",borderRadius:3,background:"rgba(120,120,120,0.12)",color:"var(--text-dim)"},children:d("desktop.disabled")}):e.filtered&&(0,n.jsx)("span",{style:{fontSize:10,padding:"1px 5px",borderRadius:3,background:"rgba(245,158,11,0.12)",color:"#d97706"},children:d("desktop.filtered")}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.source})]}),(0,n.jsxs)("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[(0,n.jsx)("button",{onClick:()=>a("update",e),disabled:p||u,style:lJ(p||u),children:d(o===`update:${c}`?"desktop.updating":"desktop.update")}),(0,n.jsx)("button",{onClick:l,disabled:!i||u||p,style:lJ(!i||u||p),title:d(i?"desktop.reloadCurrentSession":"desktop.openSessionToReload"),children:d(u?"desktop.reloading":"desktop.reloadSession")}),(0,n.jsx)("button",{onClick:()=>a("remove",e),disabled:p||u,style:lJ(p||u,!0),children:d(o===`remove:${c}`?"desktop.removing":"desktop.remove")})]})]}),(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(96px, 130px) minmax(0, 1fr)",gap:"9px 14px",fontSize:12,lineHeight:1.45},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)"},children:d("desktop.status")}),(0,n.jsx)("div",{style:{color:lV(e.status),textTransform:"capitalize"},children:e.status}),(0,n.jsx)("div",{style:{color:"var(--text-dim)"},children:d("desktop.version")}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:lq(e,d)}),(0,n.jsx)("div",{style:{color:"var(--text-dim)"},children:d("desktop.package")}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",overflowWrap:"anywhere"},children:e.packageName??d("desktop.unknown")}),(0,n.jsx)("div",{style:{color:"var(--text-dim)"},children:d("desktop.resources")}),(0,n.jsx)("div",{style:{color:"var(--text-muted)"},children:l_(e,d)}),(0,n.jsx)("div",{style:{color:"var(--text-dim)"},children:d("desktop.installedPath")}),(0,n.jsx)("div",{style:{color:e.installedPath?"var(--text-muted)":"#ef4444",fontFamily:"var(--font-mono)",overflowWrap:"anywhere"},children:e.installedPath?lH(e.installedPath):d("desktop.notFound")}),(0,n.jsx)("div",{style:{color:"var(--text-dim)"},children:d("desktop.cwd")}),(0,n.jsx)("div",{style:{color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflowWrap:"anywhere"},children:lH(t)})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[(0,n.jsx)("div",{style:{fontSize:12,fontWeight:700,color:"var(--text)"},children:d("desktop.resolvedResources")}),(0,n.jsx)(lK,{pkg:e})]}),s&&(0,n.jsx)("div",{style:{fontSize:12,color:"#16a34a"},children:s}),r&&(0,n.jsx)("div",{style:{fontSize:12,color:"#ef4444",whiteSpace:"pre-wrap"},children:r})]})}function l0({cwd:e,sessionId:t,embedded:o=!1,onCloseAction:s,onReloadedAction:i}){let a=$(),{t:l}=(0,F.s)(),[d,c]=(0,r.useState)(null),[p,u]=(0,r.useState)(!0),[h,g]=(0,r.useState)(null),[m,f]=(0,r.useState)(null),[k,v]=(0,r.useState)(!1),[y,b]=(0,r.useState)(""),[w,j]=(0,r.useState)("global"),[S,C]=(0,r.useState)(null),[T,R]=(0,r.useState)(null),[z,I]=(0,r.useState)(null),M=(0,r.useMemo)(()=>d?.packages??[],[d?.packages]),P=M.find(e=>lU(e)===m)??null,E=(0,r.useMemo)(()=>["project","global"].map(e=>({scope:e,packages:M.filter(t=>t.scope===e)})).filter(e=>e.packages.length>0),[M]),D=(0,r.useCallback)(async()=>{u(!0),g(null);try{let t=await fetch(`/api/plugins?cwd=${encodeURIComponent(e)}`),o=await t.json();if(!t.ok||o.error)throw Error(o.error??`HTTP ${t.status}`);c(o),v(e=>0===o.packages.length||e),f(e=>e&&o.packages.some(t=>lU(t)===e)?e:o.packages[0]?lU(o.packages[0]):null)}catch(e){g(e instanceof Error?e.message:String(e))}finally{u(!1)}},[e]);(0,r.useEffect)(()=>{D()},[D]);let W=(0,r.useCallback)(async(t,o)=>{let n=lU(o);C(`${t}:${n}`),R(null),I(null);try{let n=await fetch("/api/plugins",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:t,source:o.source,scope:o.scope,cwd:e})}),r=await n.json();if(!n.ok||r.error)throw Error(r.error??`HTTP ${n.status}`);if(c(r),"remove"===t)f(r.packages[0]?lU(r.packages[0]):null),0===r.packages.length&&v(!0),I(l("desktop.packageRemoved"));else{let e={install:l("desktop.packageInstalled"),update:l("desktop.packageUpdated"),disable:l("desktop.packageDisabledMessage"),enable:l("desktop.packageEnabled")};I(e[t])}}catch(e){R(e instanceof Error?e.message:String(e))}finally{C(null)}},[e,l]),A=(0,r.useCallback)(async()=>{let t=lB(y).trim();if(!t)return;let o=`${w}\0${t}`;C(`install:${o}`),R(null),I(null);try{var n;let r,s,i=await fetch("/api/plugins",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"install",source:t,scope:w,cwd:e})}),a=await i.json();if(!i.ok||a.error)throw Error(a.error??`HTTP ${i.status}`);c(a);let d=(n=a.packages,s=(r=t.trim()).startsWith("npm:")?r.slice(4):r,n.find(e=>e.scope===w&&e.source===r)??n.find(e=>e.scope===w&&e.source===`npm:${s}`)??n.find(e=>e.scope===w&&e.source.endsWith(r)));f(d?lU(d):o),v(!1),b(""),I(l("desktop.packageInstalled"))}catch(e){R(e instanceof Error?e.message:String(e))}finally{C(null)}},[e,w,y,l]),N=(0,r.useCallback)(async()=>{if(t){C("reload"),R(null),I(null);try{await iS(t,{type:"reload"}),i?.(),await D(),I(l("desktop.sessionReloaded"))}catch(e){R(e instanceof Error?e.message:String(e))}finally{C(null)}}},[D,i,t,l]),L=S?.startsWith("install:")??!1;return(0,n.jsx)("div",{style:o?{display:"flex",flex:1,minWidth:0,minHeight:0,overflow:"hidden"}:{position:"fixed",inset:0,zIndex:1e3,background:"rgba(0,0,0,0.35)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:e=>{o||e.target!==e.currentTarget||s?.()},children:(0,n.jsxs)("div",{style:o?{display:"flex",flex:1,minWidth:0,minHeight:0,flexDirection:"column",overflow:"hidden"}:{width:a?"calc(100vw - 16px)":860,maxWidth:"calc(100vw - 16px)",height:a?"calc(100dvh - 16px)":"76vh",maxHeight:"calc(100dvh - 16px)",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,display:"flex",flexDirection:"column",boxShadow:"0 8px 32px rgba(0,0,0,0.18)",overflow:"hidden"},children:[!o&&(0,n.jsxs)("div",{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:l("desktop.plugins")}),(0,n.jsx)("code",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:lH(e)})]}),(0,n.jsx)("button",{onClick:s,title:l("desktop.close"),"aria-label":l("desktop.close"),style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:20,lineHeight:1,padding:"2px 6px"},children:"\xd7"})]}),(0,n.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:a?"column":"row",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{width:a?"100%":245,maxHeight:a?"40vh":void 0,borderRight:a?"none":"1px solid var(--border)",borderBottom:a?"1px solid var(--border)":"none",display:"flex",flexDirection:"column",flexShrink:0,background:"var(--bg-panel)"},children:[(0,n.jsx)("div",{style:{flex:1,overflowY:"auto",padding:"8px 6px"},children:p?(0,n.jsx)("div",{style:{padding:"10px 8px",fontSize:12,color:"var(--text-muted)"},children:l("desktop.loading")}):h?(0,n.jsx)("div",{style:{padding:"10px 8px",fontSize:11,color:"#ef4444"},children:h}):0===M.length?(0,n.jsx)("div",{style:{padding:"10px 8px",fontSize:11,color:"var(--text-dim)"},children:l("desktop.noPluginsConfigured")}):E.map(e=>(0,n.jsxs)("div",{style:{marginBottom:6},children:[(0,n.jsx)("div",{style:{padding:"4px 8px 3px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase"},children:l(`desktop.${e.scope}`)}),e.packages.map(e=>{let t=lU(e),o=!k&&m===t;return(0,n.jsxs)("div",{onClick:()=>{f(t),v(!1),R(null),I(null)},style:{display:"flex",alignItems:"center",gap:7,padding:"8px 8px",borderRadius:5,cursor:"pointer",background:o?"var(--bg-selected)":"none"},onMouseEnter:e=>{o||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{o||(e.currentTarget.style.background="none")},children:[(0,n.jsx)("span",{style:{flexShrink:0,width:7,height:7,borderRadius:"50%",background:lV(e.status)}}),(0,n.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,n.jsx)("div",{style:{fontSize:12,fontWeight:o?600:400,color:"var(--text)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.source}),(0,n.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginTop:2},children:l_(e,l)}),(e.version||e.configuredVersion)&&(0,n.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginTop:2},children:lq(e,l)})]})]},t)})]},e.scope))}),(0,n.jsx)("div",{style:{padding:"8px 6px",borderTop:"1px solid var(--border)",flexShrink:0},children:(0,n.jsxs)("button",{type:"button",onClick:()=>{v(!0),R(null),I(null)},style:{display:"flex",alignItems:"center",gap:6,padding:"7px 8px",borderRadius:5,border:"none",width:"100%",cursor:"pointer",background:k?"var(--bg-selected)":"none",color:k?"var(--accent)":"var(--text-dim)",fontSize:12},onMouseEnter:e=>{k||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{k||(e.currentTarget.style.background="none")},children:[(0,n.jsx)(x.c,{size:13}),l("desktop.addPlugin")]})})]}),(0,n.jsx)("div",{style:{flex:1,overflowY:"auto",padding:20},children:k?(0,n.jsx)(lZ,{cwd:e,source:y,scope:w,busy:L,actionError:T,onSourceChange:b,onScopeChange:j,onInstall:A}):p?null:P?(0,n.jsx)(lQ,{pkg:P,cwd:e,busyKey:S,actionError:T,actionMessage:z,sessionId:t,onAction:W,onReloadSession:N},lU(P)):(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:13},children:l("desktop.selectPackage")})})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,padding:"10px 18px",borderTop:"1px solid var(--border)",flexShrink:0},children:[(0,n.jsx)("div",{style:{minWidth:0,flex:1,fontSize:11,color:"var(--text-dim)",overflow:"hidden"},children:d?.diagnostics.length?(0,n.jsx)("span",{title:d.diagnostics.map(e=>`${e.type}: ${e.source?`${e.source}: `:""}${e.message}`).join("\n"),style:{color:d.diagnostics.some(e=>"error"===e.type)?"#ef4444":"#d97706"},children:l("desktop.diagnosticsCount",{count:d.diagnostics.length,suffix:1===d.diagnostics.length?"":"s"})}):(0,n.jsx)("span",{children:d?l("desktop.pluginResourceTotals",{extensions:d.totals.extensions,skills:d.totals.skills,prompts:d.totals.prompts,themes:d.totals.themes}):""})}),(0,n.jsx)("button",{onClick:()=>void D(),disabled:p||null!==S,style:lJ(p||null!==S),children:l("desktop.refresh")}),!o&&(0,n.jsx)("button",{onClick:s,style:lJ(!1),children:l("desktop.close")})]})]})})}var l1=o(36282);function l2(){let{t:e}=(0,F.s)(),[t,o]=(0,r.useState)({enabled:!1,protocol:"http",host:"127.0.0.1",port:7890,username:"",password:"",noProxy:"localhost,127.0.0.1,.local",hasPassword:!1}),[s,i]=(0,r.useState)(!1),[a,l]=(0,r.useState)(!1),[d,c]=(0,r.useState)(null),[p,u]=(0,r.useState)(null),[h,g]=(0,r.useState)(null),[m,f]=(0,r.useState)(!1),[x,k]=(0,r.useState)(!1);(0,r.useEffect)(()=>{(async()=>{try{let e=await fetch("/api/proxy");if(e.ok){let t=await e.json();o(e=>({...e,...t,password:""}))}}catch{}})()},[]);let v=(0,r.useCallback)((e,t)=>{o(o=>({...o,[e]:t})),"password"===e&&k(!0),f(!0),u(null),g(null)},[]),y=(0,r.useCallback)(async()=>{i(!0),u(null),g(null);try{let n={...t};delete n.hasPassword,x||delete n.password;let r=await fetch("/api/proxy",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)}),s=await r.json();if(r.ok){u(!0),f(!1),k(!1);let e=await fetch("/api/proxy");if(e.ok){let t=await e.json();o(e=>({...e,...t,password:""}))}}else u(!1),g(s.error||e("desktop.proxySaveFailed"))}catch(t){u(!1),g(t instanceof Error?t.message:e("desktop.proxySaveFailed"))}finally{i(!1)}},[t,x,e]),b=(0,r.useCallback)(async()=>{l(!0),c(null),m&&await y();try{let t=await fetch("/api/proxy/test",{method:"POST"}),o=await t.json();o.success?c({ok:!0,message:`${e("desktop.proxyTestSuccess")} \xb7 ${o.latencyMs}ms`,latencyMs:o.latencyMs}):c({ok:!1,message:o.error||e("desktop.proxyTestFailed")})}catch(t){c({ok:!1,message:t instanceof Error?t.message:e("desktop.proxyTestFailed")})}finally{l(!1)}},[m,y,e]),w=(0,r.useCallback)(()=>{if(!t.enabled||!t.host||!t.port)return null;let e="";return t.username&&t.password?e=`${t.username}:${"•".repeat(Math.min(t.password.length,8))}@`:t.username&&(e=`${t.username}@`),`${t.protocol}://${e}${t.host}:${t.port}`},[t.enabled,t.host,t.port,t.protocol,t.username,t.password])();return(0,n.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",padding:"16px 20px",overflow:"auto",gap:16},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,marginBottom:4},children:[(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,fontSize:14,fontWeight:500,color:"var(--text)",cursor:"pointer"},children:[(0,n.jsx)("input",{type:"checkbox",checked:t.enabled,onChange:e=>v("enabled",e.target.checked),style:{width:16,height:16,accentColor:"var(--accent)"}}),e("desktop.proxyEnable")]}),t.enabled&&w&&(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",fontFamily:"var(--font-mono)",backgroundColor:"var(--bg-hover)",padding:"2px 10px",borderRadius:4,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"60%"},title:w,children:w})]}),(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"12px 16px",opacity:t.enabled?1:.5,pointerEvents:t.enabled?"auto":"none"},children:[(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("label",{style:{fontSize:12,color:"var(--text-muted)"},children:e("desktop.proxyProtocol")}),(0,n.jsxs)("select",{value:t.protocol,onChange:e=>v("protocol",e.target.value),style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:13,fontFamily:"var(--font-mono)",outline:"none"},children:[(0,n.jsx)("option",{value:"http",children:"HTTP"}),(0,n.jsx)("option",{value:"https",children:"HTTPS"}),(0,n.jsx)("option",{value:"socks5",children:"SOCKS5"})]})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("label",{style:{fontSize:12,color:"var(--text-muted)"},children:e("desktop.proxyHost")}),(0,n.jsx)("input",{type:"text",value:t.host,onChange:e=>v("host",e.target.value),placeholder:"127.0.0.1",style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:13,fontFamily:"var(--font-mono)",outline:"none"}})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("label",{style:{fontSize:12,color:"var(--text-muted)"},children:e("desktop.proxyPort")}),(0,n.jsx)("input",{type:"number",value:t.port,onChange:e=>v("port",parseInt(e.target.value,10)||0),placeholder:"7890",min:1,max:65535,style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:13,fontFamily:"var(--font-mono)",outline:"none"}})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("label",{style:{fontSize:12,color:"var(--text-muted)"},children:e("desktop.proxyUsername")}),(0,n.jsx)("input",{type:"text",value:t.username,onChange:e=>v("username",e.target.value),placeholder:t.username?"":e("desktop.proxyUsername"),style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:13,fontFamily:"var(--font-mono)",outline:"none"}})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("label",{style:{fontSize:12,color:"var(--text-muted)"},children:e("desktop.proxyPassword")}),(0,n.jsx)("input",{type:"password",value:t.password,onChange:e=>v("password",e.target.value),placeholder:t.hasPassword?"••••••••":e("desktop.proxyPassword"),style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:13,fontFamily:"var(--font-mono)",outline:"none"}})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4,gridColumn:"1 / -1"},children:[(0,n.jsx)("label",{style:{fontSize:12,color:"var(--text-muted)"},children:e("desktop.proxyNoProxy")}),(0,n.jsx)("input",{type:"text",value:t.noProxy,onChange:e=>v("noProxy",e.target.value),placeholder:"localhost,127.0.0.1,.local",style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:13,fontFamily:"var(--font-mono)",outline:"none"}})]})]}),(0,n.jsxs)("div",{style:{display:"flex",gap:10,marginTop:4},children:[(0,n.jsx)("button",{type:"button",onClick:y,disabled:s,style:{padding:"6px 18px",borderRadius:6,border:"none",background:"var(--accent)",color:"#fff",fontSize:13,fontWeight:500,cursor:s?"not-allowed":"pointer",opacity:s?.5:1,transition:"background 0.15s"},onMouseEnter:e=>{s||(e.currentTarget.style.background="var(--accent-hover)")},onMouseLeave:e=>{s||(e.currentTarget.style.background="var(--accent)")},children:s?e("desktop.proxySaving"):e("desktop.proxySave")}),(0,n.jsx)("button",{type:"button",onClick:b,disabled:a||!t.enabled,style:{padding:"6px 18px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:t.enabled?"var(--text)":"var(--text-muted)",fontSize:13,fontWeight:500,cursor:t.enabled?"pointer":"not-allowed",opacity:t.enabled?1:.5,transition:"background 0.15s"},onMouseEnter:e=>{t.enabled&&(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t.enabled&&(e.currentTarget.style.background="var(--bg)")},children:a?e("desktop.proxyTesting"):e("desktop.proxyTest")})]}),!0===p&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 12px",borderRadius:6,backgroundColor:"rgba(34, 197, 94, 0.12)",color:"#22c55e",fontSize:13},children:[(0,n.jsx)(nO.r,{size:16,weight:"fill"}),e("desktop.proxySaved")]}),!1===p&&h&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 12px",borderRadius:6,backgroundColor:"rgba(239, 68, 68, 0.10)",color:"#ef4444",fontSize:13},children:[(0,n.jsx)(ia.J,{size:16,weight:"fill"}),h]}),d&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 12px",borderRadius:6,backgroundColor:d.ok?"rgba(34, 197, 94, 0.10)":"rgba(239, 68, 68, 0.10)",color:d.ok?"#22c55e":"#ef4444",fontSize:13},children:[d.ok?(0,n.jsx)(nO.r,{size:16,weight:"fill"}):(0,n.jsx)(ia.J,{size:16,weight:"fill"}),d.message,void 0!==d.latencyMs&&(0,n.jsxs)("span",{style:{color:"var(--text-muted)",fontSize:12,marginLeft:4},children:["(",d.latencyMs,"ms)"]})]}),m&&!p&&!h&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"4px 12px",borderRadius:6,backgroundColor:"var(--bg-hover)",color:"var(--text-muted)",fontSize:12},children:[(0,n.jsx)(l1.j,{size:12,weight:"fill"}),e("desktop.proxyUnsaved")]})]})}function l4(e){return e.replace(/^\/(?:Users|home)\/[^/]+/,"~")}function l6(e){let t=e.sourceInfo?.source,o=e.sourceInfo?.scope;return"user"===o||"user"===t?"global":"project"===o||"project"===t?"project":"path"}function l8(e){let t=l6(e);return"path"===t?t:e.install?.skillsShUrl?`${t} / skills.sh`:t}function l5(e){return e.install?`${e.install.scope}\0${e.install.package}`:null}function l3(e,t){return e?e.slice(0,8):t}function l7({enabled:e,loading:t,onToggle:o}){let{t:r}=(0,F.s)();return(0,n.jsx)("button",{onClick:o,disabled:t,title:r(e?"desktop.visibleInModelPrompt":"desktop.hiddenFromModelPrompt"),style:{flexShrink:0,width:40,height:22,borderRadius:11,border:"none",padding:0,cursor:t?"wait":"pointer",background:e?"var(--accent)":"var(--border)",position:"relative",transition:"background 0.18s",outline:"none"},children:(0,n.jsx)("span",{style:{position:"absolute",top:3,left:e?21:3,width:16,height:16,borderRadius:"50%",background:"var(--bg)",boxShadow:"0 1px 4px rgba(0,0,0,0.22)",transition:"left 0.18s cubic-bezier(.4,0,.2,1)"}})})}function l9({skill:e,cwd:t,onToggle:o,toggling:r,saveError:s,updateStatus:i,checkingUpdate:a,updating:l,updateError:d,onCheckUpdate:c,onUpdate:p}){let{t:u}=(0,F.s)(),h=l6(e),g=!e.disableModelInvocation;return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:20},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:7},children:[(0,n.jsx)("span",{style:{fontSize:10,padding:"1px 5px",borderRadius:3,flexShrink:0,background:"project"===h?"rgba(99,102,241,0.12)":"rgba(120,120,120,0.12)",color:"project"===h?"rgba(99,102,241,0.8)":"var(--text-dim)"},children:u(`desktop.${h}`)}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-dim)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:function(e){if("project"===h&&e.startsWith(t)){let o=e.slice(t.length).replace(/^[/\\]/,"");return`./${o}`}return l4(e)}(e.filePath)}),(0,n.jsx)(l7,{enabled:g,loading:r,onToggle:()=>o(e)}),s&&(0,n.jsx)("span",{style:{fontSize:12,color:"#f87171",flexShrink:0},children:s})]}),!g&&(0,n.jsx)("div",{style:{marginTop:-12,color:"var(--text-dim)",fontSize:12},children:u("desktop.hiddenButInvocable")}),e.install?.skillsShUrl&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:5},children:[(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",fontWeight:500},children:u("desktop.pluginSource")}),(0,n.jsx)("a",{href:e.install.skillsShUrl,target:"_blank",rel:"noreferrer",title:e.install.skillsShUrl,style:{display:"flex",alignItems:"center",gap:8,width:"fit-content",maxWidth:"100%",color:"var(--accent)",textDecoration:"none"},children:(0,n.jsxs)("span",{style:{fontFamily:"var(--font-mono)",fontSize:12,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[e.install.skillsShUrl.replace(/^https?:\/\//,"")," ↗"]})})]}),e.install&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:7},children:[(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",fontWeight:500},children:u("desktop.version")}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:12,color:"var(--text-muted)"},children:l3(i?.currentVersion??e.install.versionHash,u("desktop.unknown"))}),e.install.canCheckForUpdates&&(0,n.jsx)("button",{onClick:c,disabled:a||l,style:{padding:"4px 9px",border:"1px solid var(--border)",borderRadius:5,background:"none",color:"var(--text-muted)",cursor:a||l?"not-allowed":"pointer",opacity:a||l?.5:1,fontSize:11},children:u("desktop.check")}),i?.state==="update-available"&&(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:12,color:"#d97706"},children:l3(i.latestVersion,u("desktop.unknown"))}),(a||i&&"update-available"!==i.state)&&(0,n.jsx)("span",{style:{fontSize:12,color:a?"var(--accent)":i?.state==="up-to-date"?"#16a34a":i?.state==="error"?"#ef4444":"var(--text-dim)"},children:a?u("desktop.checking"):i?.state==="up-to-date"?u("desktop.upToDate"):i?.state==="unsupported"?u("desktop.automaticChecksUnavailable"):i?.message||u("desktop.checkFailed")}),i?.state==="update-available"&&(0,n.jsx)("button",{onClick:p,disabled:l||a,style:{padding:"4px 10px",border:"none",borderRadius:5,background:"var(--accent)",color:"#fff",cursor:l||a?"not-allowed":"pointer",opacity:l||a?.5:1,fontSize:11,fontWeight:600},children:u(l?"desktop.updating":"desktop.update")})]}),d&&(0,n.jsx)("span",{style:{fontSize:12,color:"#ef4444"},children:d})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:5},children:[(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",fontWeight:500},children:u("desktop.name")}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:14,color:"var(--text)"},children:e.name})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:5},children:[(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",fontWeight:500},children:u("desktop.description")}),(0,n.jsx)("span",{style:{fontSize:14,color:"var(--text-muted)",lineHeight:1.6},children:e.description})]})]})}function de({cwd:e,installedPackages:t,projectResourcesLoaded:o,onInstalled:s}){let{t:i}=(0,F.s)(),[a,l]=(0,r.useState)(""),[d,c]=(0,r.useState)([]),[p,u]=(0,r.useState)(!1),[h,g]=(0,r.useState)(null),[m,f]=(0,r.useState)(null),[x,k]=(0,r.useState)(null),[v,y]=(0,r.useState)(new Set),[b,w]=(0,r.useState)("global"),j=(0,r.useRef)(null);(0,r.useEffect)(()=>{j.current?.focus()},[]),(0,r.useEffect)(()=>{o||w("global")},[o]);let S=(0,r.useCallback)(async e=>{if(e.trim()){u(!0),g(null),c([]);try{let t=await fetch("/api/skills/search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:e.trim()})}),o=await t.json();if(o.error)return void g(o.error);c(o.results??[]),0===(o.results??[]).length&&g(i("desktop.noSkillsFound"))}catch(e){g(String(e))}finally{u(!1)}}},[i]),C=(0,r.useCallback)(async t=>{f(t),k(null);try{let o=await fetch("/api/skills/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({package:t,scope:b,cwd:e})}),n=await o.json();if(!o.ok||n.error)return void k(n.error??`HTTP ${o.status}`);y(e=>new Set(e).add(`${b}:${t}`)),s()}catch(e){k(String(e))}finally{f(null)}},[s,b,e]),T="global"===b?"~/.pi/agent/skills/":`${l4(e)}/.pi/skills/`;return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%"},children:[(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12,marginBottom:20},children:[(0,n.jsx)("div",{style:{fontSize:14,fontWeight:600,color:"var(--text)"},children:i("desktop.addSkillTitle")}),(0,n.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,n.jsx)("input",{ref:j,value:a,onChange:e=>l(e.target.value),onKeyDown:e=>{"Enter"===e.key&&S(a)},placeholder:i("desktop.skillSearchPlaceholder"),style:{flex:1,padding:"7px 10px",fontSize:13,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",outline:"none"}}),(0,n.jsx)("button",{onClick:()=>S(a),disabled:p||!a.trim(),style:{padding:"7px 16px",fontSize:13,borderRadius:6,border:"none",background:"var(--accent)",color:"#fff",cursor:p||!a.trim()?"not-allowed":"pointer",opacity:p||!a.trim()?.5:1,flexShrink:0},children:p?i("desktop.searching"):i("desktop.search")})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,n.jsx)("div",{style:{display:"flex",borderRadius:5,border:"1px solid var(--border)",overflow:"hidden",fontSize:12,flexShrink:0},children:["global","project"].map(e=>(0,n.jsx)("button",{onClick:()=>w(e),disabled:"project"===e&&!o,title:"project"!==e||o?void 0:i("desktop.projectSkillInstallUnavailable"),style:{padding:"3px 10px",border:"none",cursor:"project"!==e||o?"pointer":"not-allowed",opacity:"project"!==e||o?1:.5,background:b===e?"var(--bg-selected)":"none",color:b===e?"var(--text)":"var(--text-dim)",fontWeight:b===e?600:400,borderRight:"global"===e?"1px solid var(--border)":"none"},children:i(`desktop.${e}`)},e))}),(0,n.jsxs)("span",{style:{fontSize:12,color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:["→ ",T]})]}),h&&(0,n.jsx)("div",{style:{fontSize:12,color:"#f87171"},children:h}),x&&(0,n.jsx)("div",{style:{fontSize:12,color:"#f87171",wordBreak:"break-word"},children:x})]}),d.length>0?(0,n.jsx)("div",{style:{flex:1,overflowY:"auto"},children:d.map(e=>{let o=t[b].has(e.package)||v.has(`${b}:${e.package}`),r=m===e.package,s=e.package.indexOf("@"),a=s>-1?e.package.slice(0,s):e.package,l=s>-1?e.package.slice(s+1):null;return(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:14,padding:"12px 0",borderBottom:"1px solid var(--border)"},children:[(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"var(--text)",marginBottom:3},children:l??a}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-dim)"},children:a}),(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",fontWeight:500},children:e.installs}),e.url&&(0,n.jsx)("a",{href:e.url,target:"_blank",rel:"noreferrer",style:{fontSize:12,color:"var(--accent)",textDecoration:"none"},children:"skills.sh ↗"})]})]}),(0,n.jsx)("button",{onClick:()=>!o&&!r&&C(e.package),disabled:o||r||null!==m,style:{flexShrink:0,padding:"5px 14px",fontSize:12,fontWeight:500,borderRadius:5,border:"1px solid var(--border)",cursor:o||r||null!==m?"not-allowed":"pointer",background:o?"rgba(34,197,94,0.1)":"none",color:o?"#16a34a":r?"var(--accent)":"var(--text-muted)",transition:"color 0.12s"},children:o?`✓ ${i("desktop.installed")}`:r?i("desktop.installing"):i("desktop.install")})]},e.package)})}):!h&&!p&&(0,n.jsxs)("div",{style:{fontSize:13,color:"var(--text-dim)",lineHeight:1.8},children:[i("desktop.skillSearchHint").split("skills.sh")[0],(0,n.jsx)("a",{href:"https://skills.sh",target:"_blank",rel:"noreferrer",style:{color:"var(--accent)",textDecoration:"none"},children:"skills.sh"}),i("desktop.skillSearchHint").split("skills.sh")[1]]})]})}function dt({cwd:e,embedded:t=!1,sessionId:o,onCloseAction:s}){let i=$(),{t:a}=(0,F.s)(),[l,d]=(0,r.useState)([]),[c,p]=(0,r.useState)(!0),[u,h]=(0,r.useState)(null),[g,m]=(0,r.useState)(null),[f,k]=(0,r.useState)(new Set),[v,y]=(0,r.useState)(null),[b,w]=(0,r.useState)(!1),[j,S]=(0,r.useState)({}),[C,T]=(0,r.useState)(new Set),[R,z]=(0,r.useState)(!1),[I,M]=(0,r.useState)(null),[P,E]=(0,r.useState)(null),[D,W]=(0,r.useState)(!0),[A,N]=(0,r.useState)({}),L=(0,r.useCallback)(async()=>{p(!0),h(null);try{let t=await fetch(`/api/skills?cwd=${encodeURIComponent(e)}`),o=await t.json();if(!t.ok||o.error)throw Error(o.error??`HTTP ${t.status}`);let n=o.skills??[];if(d(n),W(o.projectResourcesLoaded??!0),n.length>0&&!g){let e=n.find(e=>!e.disableModelInvocation)??n[0];m(e.filePath),e.disableModelInvocation&&N(t=>({...t,[l8(e)]:!0}))}return n}catch(e){return h(String(e)),[]}finally{p(!1)}},[e,g]);(0,r.useEffect)(()=>{S({}),E(null),L()},[e]);let O=(0,r.useCallback)(async t=>{let o=(t?[t]:l.filter(e=>!!e.install)).map(l5).filter(e=>!!e);if(0!==o.length){E(null),T(e=>new Set([...e,...o])),t||z(!0);try{let o=await fetch("/api/skills/check",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,package:t?.install?.package,scope:t?.install?.scope})}),n=await o.json();if(!o.ok||n.error)throw Error(n.error??`HTTP ${o.status}`);S(e=>{let t={...e};for(let e of n.updates??[])t[`${e.scope}\0${e.package}`]=e;return t})}catch(e){E(e instanceof Error?e.message:String(e))}finally{T(e=>{let t=new Set(e);for(let e of o)t.delete(e);return t}),t||z(!1)}}},[e,l]),H=(0,r.useCallback)(async t=>{if(!t.install)return;let o=l5(t);M(o),E(null);try{let n=await fetch("/api/skills/update",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,package:t.install.package,scope:t.install.scope})}),r=await n.json();if(!n.ok||r.error||!r.success)throw Error(r.error??`HTTP ${n.status}`);await L();let s=r.skill?.install?.versionHash;S(e=>({...e,[o]:{package:t.install.package,scope:t.install.scope,state:"up-to-date",currentVersion:s,latestVersion:s}}))}catch(e){E(e instanceof Error?e.message:String(e))}finally{M(null)}},[e,L]),B=(0,r.useCallback)(async t=>{let o=!t.disableModelInvocation;k(e=>new Set(e).add(t.filePath)),y(null);try{let n=await fetch("/api/skills",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,filePath:t.filePath,disableModelInvocation:o})}),r=await n.json();if(!n.ok||r.error)return void y(r.error??`HTTP ${n.status}`);d(e=>e.map(e=>e.filePath===t.filePath?{...e,disableModelInvocation:o}:e)),o&&N(e=>({...e,[l8(t)]:!0}))}catch(e){y(String(e))}finally{k(e=>{let o=new Set(e);return o.delete(t.filePath),o})}},[e]),U=l.find(e=>e.filePath===g)??null;return(0,n.jsx)("div",{style:t?{display:"flex",flex:1,minWidth:0,minHeight:0,overflow:"hidden"}:{position:"fixed",inset:0,zIndex:1e3,background:"rgba(0,0,0,0.35)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:e=>{t||e.target!==e.currentTarget||s?.()},children:(0,n.jsxs)("div",{style:t?{display:"flex",flex:1,minWidth:0,minHeight:0,flexDirection:"column",overflow:"hidden"}:{width:i?"calc(100vw - 16px)":860,maxWidth:"calc(100vw - 16px)",height:i?"calc(100dvh - 16px)":"78vh",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:[!t&&(0,n.jsxs)("div",{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},children:[(0,n.jsx)("span",{style:{fontSize:15,fontWeight:700,color:"var(--text)"},children:a("desktop.skills")}),(0,n.jsx)("code",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)",maxWidth:320,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:l4(e)})]}),(0,n.jsx)("button",{onClick:s,title:a("desktop.close"),"aria-label":a("desktop.close"),style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:20,lineHeight:1,padding:"2px 6px"},children:"\xd7"})]}),!D&&(0,n.jsx)("div",{role:"status",style:{padding:"8px 18px",borderBottom:"1px solid var(--border)",background:"var(--bg-subtle)",color:"var(--text-muted)",fontSize:12},children:a("desktop.projectSkillsRestricted")}),(0,n.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:i?"column":"row",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{width:i?"100%":210,maxHeight:i?"40vh":void 0,borderRight:i?"none":"1px solid var(--border)",borderBottom:i?"1px solid var(--border)":"none",display:"flex",flexDirection:"column",flexShrink:0,background:"var(--bg-panel)"},children:[(0,n.jsx)("div",{style:{padding:"8px 8px 0",display:"flex",justifyContent:"flex-end"},children:(0,n.jsx)(ls,{sessionId:o,onApplied:L})}),(0,n.jsx)("div",{style:{flex:1,overflowY:"auto",padding:"8px 6px"},children:c?(0,n.jsx)("div",{style:{padding:"10px 8px",fontSize:12,color:"var(--text-muted)"},children:a("desktop.loading")}):u?(0,n.jsx)("div",{style:{padding:"10px 8px",fontSize:11,color:"#f87171"},children:u}):0===l.length?(0,n.jsx)("div",{style:{padding:"10px 8px",fontSize:11,color:"var(--text-dim)"},children:a("desktop.noSkillsFound")}):(()=>{let e=[];for(let{key:t,label:o,matches:n}of[{key:"project / skills.sh",label:`${a("desktop.project")} / skills.sh`,matches:e=>"project"===l6(e)&&!!e.install?.skillsShUrl},{key:"project",label:a("desktop.project"),matches:e=>"project"===l6(e)&&!e.install?.skillsShUrl},{key:"global / skills.sh",label:`${a("desktop.global")} / skills.sh`,matches:e=>"global"===l6(e)&&!!e.install?.skillsShUrl},{key:"global",label:a("desktop.global"),matches:e=>"global"===l6(e)&&!e.install?.skillsShUrl},{key:"path",label:a("desktop.path"),matches:e=>"path"===l6(e)}]){let r=l.filter(n);r.length>0&&e.push({key:t,label:o,skills:r})}return e.map(({key:e,label:t,skills:o})=>{let r=o.filter(e=>!e.disableModelInvocation),s=o.filter(e=>e.disableModelInvocation),i=A[e]??!1,l=i?[...r,...s]:r;return(0,n.jsxs)("div",{style:{marginBottom:6},children:[(0,n.jsx)("div",{style:{padding:"4px 8px 3px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.06em"},children:t}),s.length>0&&(0,n.jsxs)("button",{type:"button",onClick:()=>N(t=>({...t,[e]:!i})),style:{display:"flex",alignItems:"center",gap:5,width:"100%",padding:"4px 8px 3px",border:"none",background:"transparent",color:"var(--text-dim)",cursor:"pointer",fontSize:10,fontWeight:600,letterSpacing:"0.06em",textAlign:"left",textTransform:"uppercase"},children:[(0,n.jsx)("span",{style:{fontSize:8},children:i?"▾":"▸"}),a("desktop.dormant")," (",s.length,")"]}),l.map(e=>{let t,o,r=!b&&g===e.filePath,s=e.disableModelInvocation;return(0,n.jsxs)("div",{onClick:()=>{m(e.filePath),w(!1)},style:{display:"flex",alignItems:"center",gap:7,padding:"8px 8px",borderRadius:5,cursor:"pointer",background:r?"var(--bg-selected)":"none"},onMouseEnter:e=>{r||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{r||(e.currentTarget.style.background="none")},children:[(0,n.jsx)("span",{style:{flexShrink:0,width:7,height:7,borderRadius:"50%",background:s?"var(--border)":"var(--accent)",boxShadow:s?"none":"0 0 4px var(--accent)",transition:"background 0.15s, box-shadow 0.15s"}}),(0,n.jsx)("span",{style:{fontSize:12,fontWeight:r?600:400,color:s?"var(--text-dim)":"var(--text)",fontFamily:"var(--font-mono)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),(o=(t=l5(e))?j[t]:void 0,o?.state!=="update-available"?null:(0,n.jsx)("span",{title:a("desktop.updateAvailable"),style:{color:"#d97706",fontSize:13,lineHeight:1,flexShrink:0},children:"↑"}))]},e.filePath)})]},e)})})()}),(0,n.jsx)("div",{style:{padding:"8px 6px",borderTop:"1px solid var(--border)",flexShrink:0},children:(0,n.jsxs)("div",{onClick:()=>w(!0),style:{display:"flex",alignItems:"center",gap:6,padding:"7px 8px",borderRadius:5,cursor:"pointer",background:b?"var(--bg-selected)":"none",color:b?"var(--accent)":"var(--text-dim)",fontSize:12},onMouseEnter:e=>{b||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{b||(e.currentTarget.style.background="none")},children:[(0,n.jsx)(x.c,{size:13}),a("desktop.addSkill")]})})]}),(0,n.jsx)("div",{style:{flex:1,overflowY:"auto",padding:20},children:b?(0,n.jsx)(de,{cwd:e,installedPackages:{global:new Set(l.filter(e=>e.install?.scope==="global").map(e=>e.install.package)),project:new Set(l.filter(e=>e.install?.scope==="project").map(e=>e.install.package))},projectResourcesLoaded:D,onInstalled:()=>{L()}}):c?null:U?(0,n.jsx)(l9,{skill:U,cwd:e,onToggle:B,toggling:f.has(U.filePath),saveError:v,updateStatus:l5(U)?j[l5(U)]:void 0,checkingUpdate:!!l5(U)&&C.has(l5(U)),updating:I===l5(U),updateError:P,onCheckUpdate:()=>void O(U),onUpdate:()=>void H(U)},U.filePath):(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:13},children:a("desktop.selectSkill")})})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 18px",borderTop:"1px solid var(--border)",flexShrink:0},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[l.some(e=>!!e.install)&&(0,n.jsx)("button",{onClick:()=>void O(),disabled:R||null!==I,style:{padding:"6px 12px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:R||null!==I?"not-allowed":"pointer",opacity:R||null!==I?.5:1,fontSize:12},children:R?a("desktop.checking"):a("desktop.checkUpdates")}),Object.values(j).filter(e=>"update-available"===e.state).length>0&&(0,n.jsx)("span",{style:{fontSize:12,color:"#d97706"},children:a("desktop.updatesCount").replace("{count}",String(Object.values(j).filter(e=>"update-available"===e.state).length)).replace("{suffix}",1===Object.values(j).filter(e=>"update-available"===e.state).length?"":"s")})]}),!t&&(0,n.jsx)("button",{onClick:s,style:{padding:"6px 14px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:"pointer",fontSize:13},children:a("desktop.close")})]})]})})}function dn(){let{t:e}=(0,F.s)(),[t,o]=(0,r.useState)([]),[s,i]=(0,r.useState)(""),[a,l]=(0,r.useState)(""),[d,c]=(0,r.useState)(""),[p,u]=(0,r.useState)(""),[h,g]=(0,r.useState)(!0),[m,f]=(0,r.useState)(null),x=(0,r.useCallback)(async()=>{g(!0),f(null);try{let e=await fetch("/api/logs?limit=500"),t=await e.json();if(!e.ok)throw Error(t.error??`HTTP ${e.status}`);o(t.entries??[])}catch(e){f(e instanceof Error?e.message:String(e))}finally{g(!1)}},[]);(0,r.useEffect)(()=>{x()},[x]);let k=(0,r.useMemo)(()=>[...new Set(t.map(e=>e.source).filter(Boolean))].sort(),[t]),v=(0,r.useMemo)(()=>[...new Set(t.map(e=>e.statusCode).filter(e=>void 0!==e))].sort((e,t)=>e-t),[t]),y=(0,r.useMemo)(()=>{let e=p.trim().toLocaleLowerCase();return t.filter(e=>!s||e.level===s).filter(e=>!a||e.statusCode===Number(a)).filter(e=>!d||e.source===d).filter(t=>!e||[t.message,t.details,t.provider,t.model,t.source].filter(Boolean).some(t=>t.toLocaleLowerCase().includes(e))).slice(0,200)},[t,s,a,d,p]),b=async()=>{try{let e=await fetch("/api/logs",{method:"DELETE"});if(!e.ok)throw Error(`HTTP ${e.status}`);o([])}catch(e){f(e instanceof Error?e.message:String(e))}},w=async e=>{let t=[`[${e.timestamp}] ${e.level.toUpperCase()} ${e.statusCode??"—"}`,`${e.source}${e.provider?` \xb7 ${e.provider}`:""}${e.model?` \xb7 ${e.model}`:""}`,e.message,e.details].filter(Boolean).join("\n");try{await oy(t),f(null)}catch(e){f(e instanceof Error?e.message:String(e))}};return(0,n.jsxs)("div",{style:{flex:1,minWidth:0,minHeight:0,overflow:"auto",padding:"18px 20px",display:"flex",flexDirection:"column",gap:12},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,n.jsxs)("select",{value:s,onChange:e=>i(e.target.value),style:{padding:"7px 9px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",fontSize:12},children:[(0,n.jsx)("option",{value:"",children:e("desktop.logsAllLevels")}),["error","warning","info"].map(e=>(0,n.jsx)("option",{value:e,children:e},e))]}),(0,n.jsxs)("select",{value:a,onChange:e=>l(e.target.value),style:{padding:"7px 9px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",fontSize:12},children:[(0,n.jsx)("option",{value:"",children:e("desktop.logsAllCodes")}),v.map(e=>(0,n.jsx)("option",{value:e,children:e},e))]}),(0,n.jsxs)("select",{value:d,onChange:e=>c(e.target.value),style:{padding:"7px 9px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",fontSize:12},children:[(0,n.jsx)("option",{value:"",children:e("desktop.logsAllSources")}),k.map(e=>(0,n.jsx)("option",{value:e,children:e},e))]}),(0,n.jsx)("input",{value:p,onChange:e=>u(e.target.value),placeholder:e("desktop.logsSearch"),style:{flex:1,minWidth:180,padding:"7px 9px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",fontSize:12}}),(0,n.jsx)("button",{type:"button",onClick:()=>void x(),title:e("desktop.refresh"),"aria-label":e("desktop.refresh"),style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:30,height:30,border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer"},children:(0,n.jsx)(j.S,{size:14})}),(0,n.jsx)("button",{type:"button",onClick:()=>void b(),title:e("desktop.logsClear"),"aria-label":e("desktop.logsClear"),style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:30,height:30,border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"#ef4444",cursor:"pointer"},children:(0,n.jsx)(S.l,{size:14})})]}),h&&(0,n.jsx)("div",{style:{color:"var(--text-muted)",fontSize:12},children:e("desktop.loading")}),m&&(0,n.jsx)("div",{style:{color:"#ef4444",fontSize:12},children:m}),!h&&!m&&0===y.length&&(0,n.jsx)("div",{style:{color:"var(--text-muted)",fontSize:12},children:e("desktop.logsEmpty")}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:y.map(t=>(0,n.jsxs)("details",{style:{border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-panel)",padding:"8px 10px"},children:[(0,n.jsxs)("summary",{style:{cursor:"pointer",color:"error"===t.level?"#ef4444":"warning"===t.level?"#f59e0b":"var(--text)",fontSize:12},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",marginRight:8},children:t.statusCode??"—"}),(0,n.jsx)("span",{style:{marginRight:8},children:new Date(t.timestamp).toLocaleString()}),(0,n.jsx)("span",{style:{overflowWrap:"anywhere"},children:t.message.length>180?`${t.message.slice(0,180)}…`:t.message})]}),(0,n.jsxs)("div",{style:{padding:"8px 0 0 18px",color:"var(--text-muted)",fontSize:11,lineHeight:1.5,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:[(0,n.jsxs)("div",{children:[t.source,t.provider?` \xb7 ${t.provider}`:"",t.model?` \xb7 ${t.model}`:""]}),(0,n.jsx)("div",{style:{marginTop:5,maxHeight:260,overflow:"auto"},children:t.message}),t.details&&(0,n.jsx)("div",{style:{marginTop:5,maxHeight:260,overflow:"auto"},children:t.details}),(0,n.jsx)("button",{type:"button",onClick:()=>void w(t),style:{marginTop:8,padding:"4px 7px",border:"1px solid var(--border)",borderRadius:5,background:"var(--bg)",color:"var(--text-muted)",cursor:"pointer",fontSize:11},children:e("desktop.logsCopy")})]})]},t.id))})]})}let dr={padding:"7px 9px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",fontSize:12,width:"100%"},ds={padding:"6px 12px",border:"none",borderRadius:6,background:"var(--accent)",color:"#fff",cursor:"pointer",fontSize:12};function di(){let{t:e}=(0,F.s)(),[t,o]=(0,r.useState)([]),[s,i]=(0,r.useState)(!0),[a,l]=(0,r.useState)(null),[d,c]=(0,r.useState)(""),[u,h]=(0,r.useState)(""),[m,f]=(0,r.useState)(!1),[k,v]=(0,r.useState)(null),y=(0,r.useCallback)(async()=>{try{let e=await fetch("/api/snippets");if(!e.ok)return;let t=await e.json();o(t.snippets??[]),i(!1)}catch{i(!1)}},[]);(0,r.useEffect)(()=>{y()},[y]);let b=(0,r.useCallback)(()=>{window.dispatchEvent(new Event("pi:snippets-changed"))},[]),w=()=>{l(null),c(""),h(""),v(null)},j=(0,r.useCallback)(async()=>{let t=d.trim();if(!t)return void v(e("desktop.snippetNameRequired"));f(!0),v(null);try{if(a){let e=await fetch(`/api/snippets/${encodeURIComponent(a.id)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t,content:u})});if(!e.ok)throw Error(`HTTP ${e.status}`)}else{let e=await fetch("/api/snippets",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t,content:u})});if(!e.ok)throw Error(`HTTP ${e.status}`)}await y(),b(),w()}catch(e){v(e instanceof Error?e.message:String(e))}finally{f(!1)}},[a,d,u,y,b,e]),C=(0,r.useCallback)(async e=>{try{let t=await fetch(`/api/snippets/${encodeURIComponent(e)}`,{method:"DELETE"});if(!t.ok)throw Error(`HTTP ${t.status}`);a?.id===e&&w(),await y(),b()}catch(e){v(e instanceof Error?e.message:String(e))}},[a,y,b]);return(0,n.jsxs)(aY,{children:[(0,n.jsx)(aX,{children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:7,padding:"12px 0"},children:[(0,n.jsx)(rv.c,{size:15,"aria-hidden":"true"}),(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"var(--text)"},children:e("desktop.snippets")}),(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:2},children:e("desktop.snippetsDesc")})]})]})}),(0,n.jsx)(aX,{children:(0,n.jsxs)("div",{style:{width:"100%"},children:[(0,n.jsxs)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:8},children:[(0,n.jsx)("button",{type:"button",onClick:w,style:ds,children:(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:5},children:[(0,n.jsx)(x.F,{size:13})," ",e("desktop.snippetNew")]})}),a&&(0,n.jsx)("button",{type:"button",onClick:w,style:{...ds,background:"var(--bg-hover)",color:"var(--text-muted)"},children:(0,n.jsx)(p.X,{size:13})})]}),(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(120px, 200px) 1fr",gap:8,alignItems:"start",marginBottom:8},children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",display:"block",marginBottom:4},children:e("desktop.snippetName")}),(0,n.jsx)("input",{value:d,onChange:e=>c(e.target.value),placeholder:"#name",style:dr})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",display:"block",marginBottom:4},children:e("desktop.snippetContent")}),(0,n.jsx)("textarea",{value:u,onChange:e=>h(e.target.value),rows:3,style:{...dr,resize:"vertical",fontFamily:"var(--font-mono)",fontSize:11}})]})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:10},children:[(0,n.jsx)("button",{type:"button",onClick:()=>void j(),disabled:m,style:{...ds,cursor:m?"wait":"pointer"},children:e("desktop.snippetSave")}),k&&(0,n.jsx)("span",{style:{color:"var(--status-error, #ef4444)",fontSize:12},children:k})]}),s?(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-dim)"},children:e("desktop.loadingThemes")}):0===t.length?(0,n.jsx)(aQ,{children:e("desktop.snippetEmpty")}):(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:t.map(t=>(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 10px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6},children:[(0,n.jsx)("span",{style:{color:"var(--accent)",fontFamily:"var(--font-mono)",fontSize:11},children:"#"}),(0,n.jsx)("span",{style:{fontWeight:600,fontSize:12,flexShrink:0},children:t.name}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-muted)",fontSize:11,fontFamily:"var(--font-mono)"},children:t.content.split("\n")[0]}),(0,n.jsx)("button",{type:"button",onClick:()=>{l(t),c(t.name),h(t.content),v(null)},title:e("desktop.snippetEdit"),style:{background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",padding:2},children:(0,n.jsx)(g.I,{size:13})}),(0,n.jsx)("button",{type:"button",onClick:()=>void C(t.id),title:e("desktop.snippetDelete"),style:{background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",padding:2},children:(0,n.jsx)(S.l,{size:13})})]},t.id))})]})}),(0,n.jsx)(aZ,{children:(0,n.jsx)(aQ,{children:e("desktop.snippetHint")})})]})}let da=["async","group","smart"],dl=["full","compact","custom"],dd=["all","background","off"],dc={padding:"7px 9px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",fontSize:12,width:"min(200px, 100%)",fontFamily:"var(--font-mono)"};function dp(){return{fontSize:12,color:"var(--text-muted)"}}function du({cwd:e,sessionId:t}){let{t:o}=(0,F.s)(),[s,i]=(0,r.useState)({}),[a,l]=(0,r.useState)([]),[d,c]=(0,r.useState)(""),[p,u]=(0,r.useState)(!1),[h,g]=(0,r.useState)(null),[m,f]=(0,r.useState)(!1),[x,k]=(0,r.useState)(null),[v,y]=(0,r.useState)(!1),[b,w]=(0,r.useState)([]),[j,S]=(0,r.useState)({}),C=(0,r.useCallback)(async()=>{g(null);try{let e=await fetch("/api/subagents"),t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);i(t.config??{}),l(t.agents??[]),c(t.filePath)}catch(e){g(e instanceof Error?e.message:String(e))}finally{u(!0)}},[]);(0,r.useEffect)(()=>{let t=e?`?cwd=${encodeURIComponent(e)}`:"";fetch(`/api/models${t}`).then(e=>e.ok?e.json():null).then(e=>{e?.modelList&&w(e.modelList)}).catch(()=>{})},[e]),(0,r.useEffect)(()=>{C()},[C]);let T=(0,r.useCallback)((e,t)=>{i(o=>({...o,[e]:t})),y(!1),k(null)},[]),R=(0,r.useCallback)(async()=>{f(!0),k(null),y(!1);try{let e=await fetch("/api/subagents",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)}),t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);i(t.config??{}),y(!0)}catch(e){k(e instanceof Error?e.message:String(e))}finally{f(!1)}},[s]),z=(0,r.useRef)({}),I=(0,r.useCallback)(async(e,t)=>{let o=(z.current[e]??0)+1;z.current[e]=o,S(t=>({...t,[e]:"saving"}));try{let n=await fetch(`/api/subagents/agents/${encodeURIComponent(e)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:t})});if(z.current[e]!==o)return;let r=await n.json();if(!n.ok||r.error)throw Error(r.error??`HTTP ${n.status}`);S(t=>({...t,[e]:"saved"})),l(o=>o.map(o=>o.name===e?{...o,model:t??void 0}:o)),setTimeout(()=>{S(t=>{if("saved"===t[e]){let o={...t};return delete o[e],o}return t})},2e3)}catch(t){if(z.current[e]!==o)return;S(o=>({...o,[e]:`error:${t instanceof Error?t.message:String(t)}`}))}},[]),M=(e,t)=>(0,n.jsx)(aX,{children:(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(150px, 240px) 1fr",gap:"8px 12px",alignItems:"center",padding:"8px 0"},children:[(0,n.jsx)("span",{style:dp(),children:o(t)}),(0,n.jsx)("input",{type:"number",min:0,value:s[e]??"",onChange:t=>T(e,""===t.target.value?void 0:Number(t.target.value)),placeholder:"defaultMaxTurns"===e?"0 = 不限":"",style:dc})]})},e),P=(e,t,r)=>(0,n.jsx)(aX,{children:(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(150px, 240px) 1fr",gap:"8px 12px",alignItems:"center",padding:"8px 0"},children:[(0,n.jsx)("span",{style:dp(),children:o(t)}),(0,n.jsx)("select",{value:s[e]??r[0],onChange:t=>T(e,t.target.value),style:{...dc,fontFamily:"var(--font-mono)"},children:r.map(e=>(0,n.jsx)("option",{value:e,children:e},e))})]})},e),E=(e,t,r)=>(0,n.jsx)(aX,{children:(0,n.jsx)(aM,{checked:s[e]??!1,onChange:t=>T(e,t),label:o(t),description:r?o(r):void 0})},e);return(0,n.jsx)("div",{style:{flex:1,overflow:"auto",minWidth:0,padding:"20px 22px",display:"flex",flexDirection:"column",gap:16},children:(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:p?h?(0,n.jsx)("div",{style:{fontSize:12,color:"#ef4444"},children:h}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:14,fontWeight:700,color:"var(--text)"},children:o("desktop.subagents")}),(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",fontFamily:"var(--font-mono)",marginTop:2,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:d||"~/.pi/agent/subagents.json"})]}),(0,n.jsx)(aQ,{children:o("desktop.subagentsDesc")}),(0,n.jsxs)(aY,{children:[M("maxConcurrent","desktop.subagentsMaxConcurrent"),M("defaultMaxTurns","desktop.subagentsDefaultMaxTurns"),M("graceTurns","desktop.subagentsGraceTurns"),P("defaultJoinMode","desktop.subagentsJoinMode",da),P("widgetMode","desktop.subagentsWidgetMode",dd),P("toolDescriptionMode","desktop.subagentsToolDescMode",dl),E("schedulingEnabled","desktop.subagentsScheduling","desktop.subagentsSchedulingDesc"),E("scopeModels","desktop.subagentsScopeModels","desktop.subagentsScopeModelsDesc"),E("disableDefaultAgents","desktop.subagentsDisableDefault","desktop.subagentsDisableDefaultDesc"),E("fleetView","desktop.subagentsFleetView","desktop.subagentsFleetViewDesc"),(0,n.jsx)(aZ,{children:E("outputTranscript","desktop.subagentsOutputTranscript","desktop.subagentsOutputTranscriptDesc")})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,n.jsx)("button",{type:"button",onClick:()=>void R(),disabled:m,style:{padding:"7px 12px",border:"none",borderRadius:6,background:"var(--accent)",color:"#fff",cursor:m?"wait":"pointer",fontSize:12},children:m?o("desktop.saving"):o("desktop.mcpSave")}),v&&(0,n.jsx)("span",{style:{color:"#22c55e",fontSize:12},children:o("desktop.subagentsSaved")}),x&&(0,n.jsx)("span",{style:{color:"#ef4444",fontSize:12},children:x}),(0,n.jsx)(ls,{sessionId:t})]}),a.length>0&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:7,fontSize:13,fontWeight:600,color:"var(--text)"},children:[(0,n.jsx)(aj.d,{size:15,"aria-hidden":"true"}),o("desktop.subagentsDiscovered")]}),(0,n.jsx)(aY,{children:a.map((e,t)=>(0,n.jsx)(aZ,{children:(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:3,padding:t===a.length-1?"12px 0":"12px 0 0"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,n.jsx)("span",{style:{fontSize:12.5,fontWeight:600,color:"var(--text)",fontFamily:"var(--font-mono)"},children:e.name}),e.displayName&&(0,n.jsx)("span",{style:{fontSize:11,color:"var(--text-muted)"},children:e.displayName}),e.model&&(0,n.jsx)("span",{style:{fontSize:10,padding:"1px 6px",borderRadius:3,background:"rgba(37,99,235,0.12)",color:"var(--accent)",fontFamily:"var(--font-mono)"},children:e.model})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"},children:[(0,n.jsx)("span",{style:{fontSize:11,color:"var(--text-muted)"},children:o("desktop.subagentsModel")}),(0,n.jsxs)("select",{value:e.model??"",onChange:t=>void I(e.name,t.target.value||null),style:{...dc,width:"min(260px, 100%)",maxWidth:260},children:[(0,n.jsx)("option",{value:"",children:o("desktop.subagentsModelDefault")}),e.model&&!b.some(t=>`${t.provider}/${t.id}`===e.model)&&(0,n.jsx)("option",{value:e.model,children:e.model}),b.map(e=>(0,n.jsxs)("option",{value:`${e.provider}/${e.id}`,children:[e.name,"(",e.provider,"/",e.id,")"]},`${e.provider}/${e.id}`))]}),"saving"===j[e.name]&&(0,n.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)"},children:[o("desktop.saving"),"…"]}),"saved"===j[e.name]&&(0,n.jsx)("span",{style:{fontSize:10,color:"#22c55e"},children:o("desktop.subagentsSaved")}),j[e.name]?.startsWith("error:")&&(0,n.jsx)("span",{style:{fontSize:10,color:"#ef4444"},children:j[e.name].slice(6)})]}),e.description&&(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",lineHeight:1.5},children:e.description})]})},e.name))})]})]}):(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)"},children:o("desktop.loading")})})})}function dh({sessionId:e,onSessionReloaded:t}){let{t:o}=(0,F.s)(),[s,i]=(0,r.useState)(null),[a,l]=(0,r.useState)(null);(0,r.useEffect)(()=>{let e=!1;return fetch("/api/tools/settings").then(async t=>{let o=await t.json();if(!t.ok||o.error)throw Error(o.error??`HTTP ${t.status}`);e||i(o)}).catch(t=>{e||l(t instanceof Error?t.message:String(t))}),()=>{e=!0}},[]);let d=(0,r.useCallback)(async o=>{l(null);try{let n=await fetch("/api/tools/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:o})}),r=await n.json();if(!n.ok||r.error)throw Error(r.error??`HTTP ${n.status}`);i(r),e&&(await iS(e,{type:"reload"}),t())}catch(e){l(e instanceof Error?e.message:String(e))}},[t,e]);return(0,n.jsx)("div",{style:{padding:16,overflowY:"auto",minHeight:0,flex:1},children:(0,n.jsxs)(aY,{children:[(0,n.jsx)(aX,{children:(0,n.jsx)(aM,{label:o("desktop.usePowerShell"),description:o("desktop.shellToolDescription"),checked:s?.powerShellEnabled??!1,onChange:e=>void d(e)})}),(0,n.jsx)(aZ,{children:(0,n.jsx)("div",{style:{padding:"10px 0",fontSize:12,lineHeight:1.5,color:"var(--text-dim)"},children:s?.isWindows?o("desktop.shellToolWindowsOnly"):a??o("desktop.shellToolMacOnly")})})]})})}function dg(e){return null==e?"—":io(e)}function dm({sessionId:e,cwd:t}){let{t:o}=(0,F.s)(),[s,i]=(0,r.useState)(null),[a,l]=(0,r.useState)(null),[d,c]=(0,r.useState)(!1);(0,r.useEffect)(()=>{let t=!1;return e?(fetch(`/api/agent/${encodeURIComponent(e)}`).then(e=>e.ok?e.json():null).then(e=>{t||i(e?.state?.contextUsage??null)}).catch(()=>{}),()=>{t=!0}):void i(null)},[e]);let p=(0,r.useCallback)(async()=>{c(!0);try{let e=await fetch("/api/usage");e.ok&&l(await e.json())}catch{}finally{c(!1)}},[]);(0,r.useEffect)(()=>{p()},[p]);let u=(0,r.useMemo)(()=>a?.daily.slice(-14)??[],[a]),h=(0,r.useMemo)(()=>u.reduce((e,t)=>Math.max(e,t.tokens),0),[u]);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:o("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:o("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:s?(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,(s.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!=s.percent?`${s.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:o("desktop.usageContext",{used:dg(s.tokens),window:dg(s.contextWindow)})}),(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)"},children:o("desktop.usageContextHint")})]})]})}):(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)"},children:o("desktop.usageNoSessionData")})}):(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)"},children:o("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:o("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:o("desktop.usageTotal"),value:dg(a?.totalTokens),sub:a?`${a.totalSessions} ${o("desktop.usageSessions")}`:"…"},{label:o("desktop.usageMessages"),value:a?String(a.messageCount):"…",sub:o("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:o("desktop.usageDaily")}),0===u.length?(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)"},children:o(d?"desktop.featuresLoading":"desktop.usageNoData")}):(0,n.jsx)("div",{style:{display:"flex",alignItems:"flex-end",gap:6,height:96,overflowX:"auto"},children:u.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?dg(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}: ${dg(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:o("desktop.usageTopSessions")}),a&&0===a.sessions.length?(0,n.jsx)("div",{style:{padding:"14px",fontSize:12,color:"var(--text-muted)"},children:o("desktop.usageNoData")}):(a?.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:e.name??e.firstMessage??e.id}),(0,n.jsx)("span",{style:{flexShrink:0,fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:dg(e.tokens)})]},e.path))]})]})]})]})}function df(){let{t:e}=(0,F.s)(),[t,o]=(0,r.useState)(!1),[s,i]=(0,r.useState)("");(0,r.useEffect)(()=>{o(new URLSearchParams(window.location.search).has("piweb_connected")),i(window.location.host)},[]);let a=(0,r.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)(ax.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:s})]})]}),(0,n.jsxs)("button",{type:"button",onClick:a,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:"#fff",fontSize:14,fontWeight:600,cursor:"pointer",border:"none"},children:[(0,n.jsx)(a8.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 dx=[{id:"server",labelKey:"desktop.server",Icon:ax.X},{id:"display",labelKey:"desktop.display",Icon:ak.V},{id:"chat",labelKey:"desktop.chat",Icon:av.W},{id:"models",labelKey:"desktop.models",Icon:T.f},{id:"skills",labelKey:"desktop.skills",Icon:R.B},{id:"plugins",labelKey:"desktop.plugins",Icon:z.F},{id:"proxy",labelKey:"desktop.proxy",Icon:ay.l},{id:"features",labelKey:"desktop.features",Icon:u.l},{id:"logs",labelKey:"desktop.logs",Icon:y.B},{id:"snippets",labelKey:"desktop.snippets",Icon:rv.c},{id:"usage",labelKey:"desktop.usage",Icon:ab._},{id:"mcp",labelKey:"desktop.mcp",Icon:aw.b},{id:"subagents",labelKey:"desktop.subagents",Icon:aj.d},{id:"tools",labelKey:"desktop.tools",Icon:aw.b},{id:"backup",labelKey:"desktop.backup",Icon:nd.W},{id:"import",labelKey:"desktop.importSessions",Icon:I.z}];function dk({initialTab:e="models",cwd:t,sessionId:o,onCloseAction:s,onModelsSavedAction:i,onSessionReloadedAction:a,onSessionsChanged:l}){let d=$(),{t:c}=(0,F.s)(),[u,h]=(0,r.useState)("skills"===e||"plugins"===e?t?e:"display":e),[g,m]=(0,r.useState)(!1);(0,r.useEffect)(()=>{m(new URLSearchParams(window.location.search).has("piweb_connected"))},[]);let f=g?dx:dx.filter(({id:e})=>"server"!==e),[x,k]=(0,r.useState)(!1),[v,y]=(0,r.useState)(null),b=(0,r.useRef)(new Set),w=(0,r.useCallback)(e=>(b.current.add(e),()=>{b.current.delete(e)}),[]),j=(0,r.useCallback)(async()=>{if(!x){k(!0),y(null);try{let e=(await Promise.allSettled([...b.current].map(e=>e()))).find(e=>"rejected"===e.status);if(e)throw e.reason;s()}catch(e){y(e instanceof Error?e.message:String(e))}finally{k(!1)}}},[x,s]);return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:1e3,background:"rgba(0,0,0,0.35)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:e=>{e.target===e.currentTarget&&j()},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:()=>{j()},disabled:x,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)(p.X,{size:18,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:d?"column":"row",minHeight:0,overflow:"hidden",pointerEvents:x?"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:o,Icon:r})=>{let s=("skills"===e||"plugins"===e)&&!t,i=u===e;return(0,n.jsxs)("button",{type:"button",disabled:s,onClick:()=>h(e),"aria-current":i?"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:i?"var(--bg-selected)":"none",color:i?"var(--text)":"var(--text-muted)",cursor:s?"not-allowed":"pointer",opacity:s?.4:1,fontSize:12,fontWeight:i?600:400,textAlign:"left",transition:"background 0.12s, color 0.12s"},title:c(o),"aria-label":c(o),onMouseEnter:e=>{i||s||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{i||(e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)")},children:[(0,n.jsx)(r,{size:16,"aria-hidden":"true"}),!d&&(0,n.jsx)("span",{children:c(o)})]},e)})}),(0,n.jsx)("div",{style:{display:"server"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(df,{})}),(0,n.jsx)("div",{style:{display:"display"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(aG,{})}),(0,n.jsx)("div",{style:{display:"chat"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(aD,{})}),(0,n.jsx)("div",{style:{display:"models"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(lO,{embedded:!0,sessionId:o,onSavedAction:i,onRegisterFlush:w})}),t&&(0,n.jsx)("div",{style:{display:"skills"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(dt,{cwd:t,embedded:!0,sessionId:o})}),t&&(0,n.jsx)("div",{style:{display:"plugins"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(l0,{cwd:t,sessionId:o,embedded:!0,onReloadedAction:a})}),(0,n.jsx)("div",{style:{display:"proxy"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(l2,{})}),(0,n.jsx)("div",{style:{display:"features"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(a6,{})}),(0,n.jsx)("div",{style:{display:"logs"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(dn,{})}),(0,n.jsx)("div",{style:{display:"snippets"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(di,{})}),(0,n.jsx)("div",{style:{display:"usage"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(dm,{sessionId:o,cwd:t})}),(0,n.jsx)("div",{style:{display:"mcp"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(lu,{sessionId:o})}),(0,n.jsx)("div",{style:{display:"subagents"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(du,{cwd:t,sessionId:o})}),(0,n.jsx)("div",{style:{display:"tools"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(dh,{sessionId:o,onSessionReloaded:a})}),(0,n.jsx)("div",{style:{display:"backup"===u?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(aR,{cwd:t})}),(0,n.jsx)("div",{style:{display:"import"===u?"flex":"none",flex:1,minWidth:0,minHeight:0,overflowY:"auto"},children:(0,n.jsx)(a3,{onSessionsChanged:l})})]}),v&&(0,n.jsx)("div",{style:{padding:"6px 18px",borderTop:"1px solid var(--border)",color:"#f87171",fontSize:11},children:v})]})})}let dv=new Set(["awaiting_input","review","failed"]),dy=(0,r.createContext)(null);function db(){let e=(0,r.useContext)(dy);if(!e)throw Error("useTasksView must be used within TasksViewProvider");return e}function dw({children:e}){let{t}=(0,F.s)(),o=(0,r.useRef)(t);(0,r.useEffect)(()=>{o.current=t},[t]);let[s,i]=(0,r.useState)([]),[a,l]=(0,r.useState)([]),d=(0,r.useRef)(0),c=(0,r.useCallback)(async()=>{let e=++d.current;try{let t=await (0,rq.Wt)(),o=(await Promise.all(t.map(e=>(0,rq.Vk)(e).catch(()=>[])))).flat().sort((e,t)=>t.id-e.id);if(e!==d.current)return;l(e=>dj(e,t)?e:t),i(e=>dj(e,o)?e:o)}catch{}},[]);(0,r.useEffect)(()=>{c();let e=null,t=!1,o=()=>{t||((e=new EventSource("/api/tasks/events")).onmessage=()=>{c()},e.onerror=()=>{e?.close(),e=null,c(),setTimeout(o,2e3)})};o();let n=()=>{"visible"===document.visibilityState&&c()},r=()=>void c();document.addEventListener("visibilitychange",n),window.addEventListener("online",r);let s=setInterval(()=>void c(),6e4);return()=>{t=!0,e?.close(),document.removeEventListener("visibilitychange",n),window.removeEventListener("online",r),clearInterval(s)}},[c]);let p=(0,r.useMemo)(()=>s.filter(e=>dv.has(e.status)&&null==e.archivedAt).length,[s]),u=(0,r.useRef)(null);(0,r.useEffect)(()=>{let e=u.current;if((u.current=new Map(s.map(e=>[e.id,e.status])),e&&0!==s.length)&&"Notification"in window){for(let o of s)if(e.get(o.id)!==o.status&&("review"===o.status||"failed"===o.status)&&null==o.archivedAt&&"visible"!==document.visibilityState)try{let e="review"===o.status?t("tasks.notifyReview",{title:o.title}):t("tasks.notifyFailed",{title:o.title});!function(e,t){new Promise(o=>{if(!("Notification"in window))return void o();let n=()=>{try{new Notification(e,{body:t,tag:"pi-tasks"})}catch{}o()};"granted"===Notification.permission?n():"denied"!==Notification.permission?Notification.requestPermission().then(e=>{"granted"===e?n():o()}):o()})}("Pi Web Tasks",e)}catch{}}},[s,t]);let h=(0,r.useMemo)(()=>({tasks:s,projects:a,attentionCount:p,refetch:c}),[s,a,p,c]);return(0,n.jsx)(dy.Provider,{value:h,children:e})}function dj(e,t){return JSON.stringify(e)===JSON.stringify(t)}var dS=o(4539),dC=o(12449),dT=o(2571);let dR=["todo","inProgress","attention","done"];function dz(e){return"review"===e.status&&0===e.filesChanged}function dI(){return{defaultAgentType:null,modeId:null,configValues:{},autoProcess:!0,maxConcurrent:1,mergeStrategy:"merge",deleteWorktreeDefault:!0,preflightCommand:null,initCommand:null,stagePrompts:null}}let dM=["todo","inProgress","attention","done"],dP={todo:{id:"todo",marker:"var(--text-dim)"},inProgress:{id:"inProgress",marker:"var(--accent)"},attention:{id:"attention",marker:"#f59e0b"},done:{id:"done",marker:"#10b981"}};var dE=o(54775),dF=o(98998),dD=o(36668);function dW({task:e}){let{t}=(0,F.s)(),o=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)),r={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:{...r,color:"var(--accent)"},children:[(0,n.jsx)(dE.N,{size:11,className:"pi-spin",style:{animation:"pi-spin 1s linear infinite"},"aria-hidden":"true"}),o]});case"awaiting_input":case"review":return(0,n.jsx)("span",{style:{...r,border:"1px solid rgba(245,158,11,0.45)",background:"rgba(245,158,11,0.08)",color:"#d97706"},children:o});case"done":return(0,n.jsxs)("span",{style:{...r,background:"rgba(16,185,129,0.12)",color:"#059669"},children:[(0,n.jsx)(h.J,{size:10,weight:"bold","aria-hidden":"true"}),o]});case"failed":return(0,n.jsx)("span",{style:{...r,background:"rgba(239,68,68,0.12)",color:"#dc2626"},children:o});default:return(0,n.jsx)("span",{style:{...r,background:"var(--bg-hover)",color:"var(--text-muted)"},children:o})}}function dA({task:e}){let t=e.preflight;if(!t||"review"!==e.status)return null;let o="passed"===t.status?{background:"rgba(16,185,129,0.12)",color:"#059669"}:"failed"===t.status?{background:"rgba(239,68,68,0.12)",color:"#dc2626"}:{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%",...o},title:t.command,children:["running"===t.status?(0,n.jsx)(dE.N,{size:10,style:{animation:"pi-spin 1s linear infinite"},"aria-hidden":"true"}):"passed"===t.status?(0,n.jsx)(nO.r,{size:10,"aria-hidden":"true"}):(0,n.jsx)(ia.J,{size:10,"aria-hidden":"true"}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t.command})]})}function dN({task:e,folderName:t,now:o,onOpen:r,onStart:s,onCancel:i,onRetry:a,onRequeue:l,onViewSession:d,onMerge:c,onArchive:p,onEdit:u}){let{t:g}=(0,F.s)(),m=null!=e.archivedAt,f="running"===e.status||"awaiting_input"===e.status||"merging"===e.status,x=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:"#dc2626"},children:["-",e.deletions??0]})]}):null,k=function(e,t){if(!e)return"";let o=new Date(e).getTime();if(Number.isNaN(o))return"";let n=Math.floor(Math.max(0,t-o)/6e4);if(n<1)return"now";if(n<60)return`${n}m`;let r=Math.floor(n/60);if(r<24)return`${r}h`;let s=Math.floor(r/24);return`${s}d`}(e.finishedAt??e.settledAt??e.startedAt??e.createdAt,o),{primary:v,more:y}=(()=>{let t=[],o=null;if(m)return{primary:o={icon:id.T,label:g("tasks.actionUnarchive"),onClick:p},more:t};switch(e.status){case"todo":o={icon:dT.j,label:g("tasks.actionStart"),onClick:s},t.push({icon:ry.S,label:g("tasks.actionEdit"),onClick:u});break;case"queued":case"preparing":case"running":case"awaiting_input":o={icon:dF.k,label:g("tasks.actionCancel"),onClick:i};break;case"review":o=dz(e)?{icon:h.J,label:g("tasks.actionComplete"),onClick:c}:{icon:dD.r,label:g("tasks.actionMerge"),onClick:c};break;case"merging":break;case"failed":o={icon:j.S,label:g("tasks.actionRetry"),onClick:a},t.push({icon:ry.S,label:g("tasks.actionEdit"),onClick:u}),t.push({icon:id.T,label:g("tasks.actionArchive"),onClick:p});break;case"done":o={icon:id.T,label:g("tasks.actionArchive"),onClick:p};break;case"canceled":o={icon:nH.f,label:g("tasks.actionRequeue"),onClick:l},t.push({icon:id.T,label:g("tasks.actionArchive"),onClick:p})}return{primary:o,more:t}})(),b=[...y];return null!=e.conversationId&&b.push({icon:nL.y,label:g("tasks.actionViewSession"),onClick:d}),(0,n.jsxs)("div",{role:"button",tabIndex:0,onClick:r,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),r())},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:m?.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)(dW,{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)&&(x||k)?(0,n.jsx)("span",{style:{opacity:.5},children:"\xb7"}):null,x,x&&k?(0,n.jsx)("span",{style:{opacity:.5},children:"\xb7"}):null,k?(0,n.jsx)("span",{style:{flexShrink:0},children:k}):null,(0,n.jsx)(dA,{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:"#dc2626"},children:[(0,n.jsx)(nc.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(),r()},children:g("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,f&&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,v||b.length>0?(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginTop:12,paddingTop:12,borderTop:"1px solid var(--border)"},children:[v?(0,n.jsxs)("button",{type:"button",onClick:e=>{e.stopPropagation(),v.onClick()},style:{display:"inline-flex",alignItems:"center",gap:5,padding:"4px 10px",borderRadius:7,background:"var(--accent)",color:"#fff",border:"none",cursor:"pointer",fontSize:11,fontWeight:600},children:[(0,n.jsx)(v.icon,{size:12,weight:"bold","aria-hidden":"true"}),v.label]}):null,(0,n.jsx)("div",{style:{flex:1}}),b.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 d$({open:e,onOpenChange:t,task:o}){let{t:s}=(0,F.s)(),{refetch:i}=db(),[a,l]=(0,r.useState)(""),[d,c]=(0,r.useState)(!1);if((0,r.useEffect)(()=>{e&&(l(""),c(!1))},[e,o]),!e||!o)return null;let u=async()=>{if(!d){c(!0);try{await (0,rq.oQ)(o.id,o.projectRoot,"cancel",{reason:a.trim()||null}),t(!1),i()}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)"},onMouseDown:e=>{e.target===e.currentTarget&&t(!1)},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:s("tasks.cancelTitle")}),(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)(p.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.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:s("tasks.cancelReasonLabel")}),(0,n.jsx)("textarea",{value:a,onChange:e=>l(e.target.value),placeholder:s("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:s("tasks.cancelKeep")}),(0,n.jsx)("button",{type:"button",onClick:()=>void u(),disabled:d,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"#fff",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:s("tasks.cancelSubmit")})]})]})]})})}function dL({open:e,onOpenChange:t,task:o}){let{t:s}=(0,F.s)(),{refetch:i}=db(),[a,l]=(0,r.useState)(!0),[d,c]=(0,r.useState)(!1),u=o?.worktreePath!=null;if((0,r.useEffect)(()=>{if(!e||!o)return;c(!1);let t=!1;return(0,rq.CG)(o.projectRoot).then(e=>{t||l(e.deleteWorktreeDefault)}).catch(()=>{t||l(!0)}),()=>{t=!0}},[e,o]),!e||!o)return null;let h=async()=>{if(!d){c(!0);try{await (0,rq.ZX)(o.id,o.projectRoot,u&&a),t(!1),i()}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)"},onMouseDown:e=>{e.target===e.currentTarget&&t(!1)},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:s("tasks.completeTitle")}),(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)(p.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.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:a,onChange:e=>l(e.target.checked),style:{accentColor:"var(--accent)"}}),s("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:s("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void h(),disabled:d,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"#fff",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:s("tasks.completeSubmit")})]})]})]})})}var dO=o(51285),dH=o(16894);function dB({open:e,onOpenChange:t,task:o,onViewSession:s,onMerge:i,onEdit:a,onCancel:l,onRetry:d,onRequeue:c,onComplete:u}){let{t:g}=(0,F.s)(),{refetch:m}=db(),[f,x]=(0,r.useState)([]),[v,y]=(0,r.useState)([]),[b,w]=(0,r.useState)(null),[C,T]=(0,r.useState)(null),[R,z]=(0,r.useState)(!1),[I,M]=(0,r.useState)(!1),[P,E]=(0,r.useState)(""),[D,W]=(0,r.useState)(!1),[A,N]=(0,r.useState)(!1),[$,L]=(0,r.useState)(!1),O=o?.id??null,H=o?.projectRoot??null,B=(0,r.useCallback)(async()=>{if(null==O||null==H)return;let[e,t]=await Promise.all([(0,rq.HB)(H,O).catch(()=>[]),o?.worktreePath?(0,rq.JH)(H,O).then(e=>e.files).catch(()=>[]):Promise.resolve([])]);x(e),y(t)},[O,H,o?.worktreePath]);(0,r.useEffect)(()=>{if(!e||null==O)return;x([]),y([]),M(!1),E(""),B();let t=window.setInterval(()=>void B(),5e3);return()=>window.clearInterval(t)},[e,O,B]);let U=(0,r.useCallback)(async e=>{L(!0);try{await e()}catch(e){console.error("detail action failed",e)}finally{L(!1),m()}},[m]),_=(0,r.useCallback)(async e=>{if(null!=H&&null!=O){z(!0);try{let t=await (0,rq.h)(H,O,e);T(t.supported&&t.patch?t.patch:null)}catch{T(null)}finally{z(!1)}}},[H,O]),q=async()=>{null!=o&&null!=H&&(await U(()=>(0,rq.bH)(o.id,H,A)),t(!1))},V=async()=>{null!=o&&null!=H&&P.trim()&&(await U(()=>(0,rq.in)(o.id,H,P.trim())),M(!1),E(""))};if(!e||null==o||null==H)return null;let K=[];if(null==o.archivedAt)switch(o.status){case"todo":K.push({label:g("tasks.actionStart"),icon:dT.j,onClick:()=>void U(()=>(0,rq.oQ)(o.id,H,"start")),filled:!0}),K.push({label:g("tasks.actionEdit"),icon:ry.S,onClick:()=>a(o)});break;case"queued":case"preparing":case"running":case"awaiting_input":K.push({label:g("tasks.actionCancel"),icon:dF.k,onClick:()=>l(o),danger:!0});break;case"review":K.push({label:dz(o)?g("tasks.actionComplete"):g("tasks.actionMerge"),icon:dz(o)?h.J:dO.Y,onClick:()=>dz(o)?u(o):i(o),filled:!0}),K.push({label:g("tasks.actionReturn"),icon:nH.f,onClick:()=>M(!0)});break;case"failed":K.push({label:g("tasks.actionRetry"),icon:j.S,onClick:()=>d(o),filled:!0}),K.push({label:g("tasks.actionEdit"),icon:ry.S,onClick:()=>a(o)});break;case"done":K.push({label:g("tasks.actionArchive"),icon:id.T,onClick:()=>void U(()=>(0,rq.et)(o.id,H,!0))});break;case"canceled":K.push({label:g("tasks.actionRequeue"),icon:nH.f,onClick:()=>c(o),filled:!0})}else K.push({label:g("tasks.actionUnarchive"),icon:id.T,onClick:()=>void U(()=>(0,rq.et)(o.id,H,!1))});return null!=o.conversationId&&K.push({label:g("tasks.actionViewSession"),icon:nL.y,onClick:()=>s(o)}),(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:800,background:"rgba(0,0,0,0.35)"},onMouseDown:e=>{e.target===e.currentTarget&&t(!1)},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:o.title}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:6},children:[(0,n.jsx)(dW,{task:o}),o.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)(k.Z,{size:12,"aria-hidden":"true"}),o.workBranch]}):null]})]}),(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),"aria-label":g("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex",flexShrink:0},children:(0,n.jsx)(p.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:8,padding:"14px 16px 0"},children:K.map(e=>{let t,o;return(0,n.jsxs)("button",{type:"button",onClick:e.onClick,disabled:$,style:(t=e.filled,o=e.danger,{display:"inline-flex",alignItems:"center",gap:5,padding:"7px 12px",borderRadius:8,fontSize:12,fontWeight:600,cursor:"pointer",background:t?"var(--accent)":o?"rgba(239,68,68,0.1)":"var(--bg-hover)",color:t?"#fff":o?"#dc2626":"var(--text)",border:t||o?"none":"1px solid var(--border)"}),children:[(0,n.jsx)(e.icon,{size:13,weight:"bold","aria-hidden":"true"}),e.label]},e.label)})}),I&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8,padding:"12px 16px 0"},children:[(0,n.jsx)("textarea",{value:P,onChange:e=>E(e.target.value),placeholder:g("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:()=>M(!1),style:{padding:"6px 12px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:g("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void V(),disabled:!P.trim(),style:{padding:"6px 14px",borderRadius:8,background:"var(--accent)",color:"#fff",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:g("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:g("tasks.metaProject")}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)",fontSize:11},children:o.projectRoot})]}),o.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:g("tasks.metaCreated")}),(0,n.jsx)("span",{children:new Date(o.createdAt).toLocaleString()})]}):null,o.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:g("tasks.metaCommit")}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:o.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:g("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;w(t=e.file),T(null),_(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)(dH.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:"#dc2626",flexShrink:0},children:["-",e.deletions]})]},e.file))})]}),null!=b&&(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:g("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:b}),(0,n.jsx)("button",{type:"button",onClick:()=>w(null),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:2,display:"flex"},children:(0,n.jsx)(p.X,{size:12,"aria-hidden":"true"})})]}),R?(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",padding:8},children:g("tasks.loading")}):C?(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:C.split("\n").map((e,t)=>{let o;return e.startsWith("+")&&!e.startsWith("+++")?o="#059669":e.startsWith("-")&&!e.startsWith("---")?o="#dc2626":e.startsWith("@@")&&(o="var(--accent)"),(0,n.jsx)("div",{style:{color:o},children:e||" "},t)})}):(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",padding:8},children:g("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:g("tasks.timeline")}),(0,n.jsx)("div",{style:{flex:1,minHeight:0,overflowY:"auto",paddingBottom:8},children:0===f.length?(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",padding:8},children:g("tasks.noEvents")}):(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[...f].reverse().map(e=>{var t;let o,r;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,(r=g(o=`tasks.event_${t}`))===o?t:r)}),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:D?(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:A,onChange:e=>N(e.target.checked),style:{accentColor:"var(--accent)"}}),g("tasks.deleteWorktree")]}),(0,n.jsx)("button",{type:"button",onClick:()=>W(!1),style:{padding:"6px 12px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:g("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void q(),disabled:$,style:{padding:"6px 14px",borderRadius:8,background:"#dc2626",color:"#fff",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:g("tasks.deleteConfirm")})]}):(0,n.jsxs)("button",{type:"button",onClick:()=>W(!0),style:{display:"inline-flex",alignItems:"center",gap:5,padding:"6px 12px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"#dc2626",fontSize:12,cursor:"pointer"},children:[(0,n.jsx)(S.l,{size:13,"aria-hidden":"true"}),g("tasks.delete")]})})]})})}var dU=o(17757);function d_({open:e,onOpenChange:t,task:o,defaultProject:s,projects:i,prefillTitle:a,prefillPrompt:l,onSubmit:d}){let{t:c}=(0,F.s)(),[u,h]=(0,r.useState)(""),[g,m]=(0,r.useState)(""),[f,x]=(0,r.useState)(""),[k,v]=(0,r.useState)([]),[y,b]=(0,r.useState)(""),[w,j]=(0,r.useState)(!1),C=(0,r.useRef)(!1);if((0,r.useEffect)(()=>{if(!e){C.current=!1;return}C.current||(C.current=!0,h(o?.projectRoot??s??i[0]??""),m(o?.title??a??""),x(o?.config?.prompt??l??""),(0,rq.VB)().then(v).catch(()=>void 0))},[e,o,s,i,a,l]),!e)return null;let T=async()=>{if(u&&g.trim()&&!w){j(!0);try{await d(u,g.trim(),{prompt:f.trim(),agentType:o?.config?.agentType??null,modelId:o?.config?.modelId??null,thinkingLevel:o?.config?.thinkingLevel??null}),t(!1)}catch(e){console.error("submit task failed",e)}finally{j(!1)}}},R=async()=>{if(y.trim()&&g.trim())try{await (0,rq.nY)({name:y.trim(),title:g.trim(),config:{prompt:f.trim()}}),b(""),(0,rq.VB)().then(v).catch(()=>void 0)}catch(e){console.error("save template failed",e)}},z=async e=>{try{await (0,rq.B_)(e),(0,rq.VB)().then(v).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)"},onMouseDown:e=>{e.target===e.currentTarget&&t(!1)},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:o?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)(p.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12,padding:"14px 16px 16px"},children:[k.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:k.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:()=>{m(e.title),x(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 z(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)(S.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=>h(e.target.value),style:I,children:i.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:g,onChange:e=>m(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=>x(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:y,onChange:e=>b(e.target.value),placeholder:c("tasks.templateNamePlaceholder"),style:{...I,flex:1}}),(0,n.jsxs)("button",{type:"button",onClick:()=>void R(),disabled:!y.trim()||!g.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)(dU.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 T(),disabled:!u||!g.trim()||w,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"#fff",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:c("tasks.save")})]})]})]})})}function dq({open:e,onOpenChange:t,task:o}){let{t:s}=(0,F.s)(),{refetch:i}=db(),[a,l]=(0,r.useState)(!0),[d,c]=(0,r.useState)(""),[u,h]=(0,r.useState)(!0),[g,m]=(0,r.useState)(!1);if((0,r.useEffect)(()=>{e&&o&&(l(!0),c(o.title),m(!1),(0,rq.CG)(o.projectRoot).then(e=>h(e.deleteWorktreeDefault)).catch(()=>h(!0)))},[e,o]),!e||!o)return null;let f=async()=>{if((a||d.trim())&&!g){m(!0);try{await (0,rq.oB)(o.id,o.projectRoot,a?null:d.trim(),u),t(!1),i()}catch(e){console.error("merge failed",e)}finally{m(!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)"},onMouseDown:e=>{e.target===e.currentTarget&&t(!1)},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:s("tasks.mergeTitle")}),(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)(p.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:a,onChange:()=>l(!0),style:{accentColor:"var(--accent)"}}),s("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:!a,onChange:()=>l(!1),style:{accentColor:"var(--accent)"}}),s("tasks.mergeManualMessage")]}),!a&&(0,n.jsx)("input",{value:d,onChange:e=>c(e.target.value),placeholder:s("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=>h(e.target.checked),style:{accentColor:"var(--accent)"}}),s("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:s("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void f(),disabled:!a&&!d.trim()||g,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"#fff",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:s("tasks.mergeConfirm")})]})]})]})})}function dV({open:e,onOpenChange:t,task:o,kind:s}){let{t:i}=(0,F.s)(),{refetch:a}=db(),[l,d]=(0,r.useState)(""),[c,u]=(0,r.useState)(!1);if((0,r.useEffect)(()=>{e&&(d(""),u(!1))},[e,o]),!e||!o)return null;let h="retry"===s,g=async()=>{if(!c){u(!0);try{await (0,rq.oQ)(o.id,o.projectRoot,s,{note:l.trim()||null}),t(!1),a()}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)"},onMouseDown:e=>{e.target===e.currentTarget&&t(!1)},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:i(h?"tasks.restartTitleRetry":"tasks.restartTitleRequeue")}),(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)(p.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.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:i("tasks.actionAddNote")}),(0,n.jsx)("textarea",{value:l,onChange:e=>d(e.target.value),placeholder:i(h?"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:i("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void g(),disabled:c,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"#fff",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:i(h?"tasks.actionRetry":"tasks.actionRequeue")})]})]})]})})}let dK=["work","retry","return","merge"];function dG({open:e,onOpenChange:t,projectRoot:o}){let{t:s}=(0,F.s)(),{projects:i}=db(),[a,l]=(0,r.useState)(""),[d,c]=(0,r.useState)(()=>dI()),[u,h]=(0,r.useState)(!1),[g,m]=(0,r.useState)(!1);if((0,r.useEffect)(()=>{if(!e)return;let t=o??i[0]??"";l(t),t&&(0,rq.Pf)(t).then(e=>{h(null!=e),c(e??dI())}).catch(()=>{h(!1),c(dI())})},[e,o,i]),!e)return null;let f=(e,t)=>{c(o=>({...o,[e]:t}))},x=async()=>{if(a&&!g){m(!0);try{await (0,rq.eA)(a,d),h(!0),t(!1)}catch(e){console.error("save settings failed",e)}finally{m(!1)}}},k=async()=>{if(a)try{await (0,rq.E)(a),h(!1),c(dI())}catch(e){console.error("reset settings failed",e)}},v={width:"100%",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"7px 10px",color:"var(--text)",fontSize:12,outline:"none",fontFamily:"inherit"},y={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)"},onMouseDown:e=>{e.target===e.currentTarget&&t(!1)},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:s("tasks.settingsTitle")}),(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)(p.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:s("tasks.settingsProject")}),(0,n.jsx)("select",{value:a,onChange:e=>l(e.target.value),style:v,children:i.map(e=>(0,n.jsx)("option",{value:e,children:e.split("/").filter(Boolean).pop()??e},e))})]}),a?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{style:y,children:[(0,n.jsx)("span",{style:{fontSize:12},children:s("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:y,children:[(0,n.jsx)("span",{style:{fontSize:12},children:s("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:{...v,width:90}})]}),(0,n.jsxs)("div",{style:y,children:[(0,n.jsx)("span",{style:{fontSize:12},children:s("tasks.settingsMergeStrategy")}),(0,n.jsxs)("select",{value:d.mergeStrategy,onChange:e=>f("mergeStrategy",e.target.value),style:{...v,width:140},children:[(0,n.jsx)("option",{value:"merge",children:s("tasks.mergeStrategyMerge")}),(0,n.jsx)("option",{value:"squash",children:s("tasks.mergeStrategySquash")})]})]}),(0,n.jsxs)("div",{style:y,children:[(0,n.jsx)("span",{style:{fontSize:12},children:s("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:s("tasks.settingsPreflightCommand")}),(0,n.jsx)("input",{value:d.preflightCommand??"",onChange:e=>f("preflightCommand",e.target.value||null),placeholder:s("tasks.settingsPreflightPlaceholder"),style:{...v,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:s("tasks.settingsInitCommand")}),(0,n.jsx)("input",{value:d.initCommand??"",onChange:e=>f("initCommand",e.target.value||null),placeholder:s("tasks.settingsInitPlaceholder"),style:{...v,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:s("tasks.settingsStagePrompts")}),dK.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:s(`tasks.stage.${e}`)}),(0,n.jsx)("input",{value:d.stagePrompts?.[e]??"",onChange:t=>f("stagePrompts",{...d.stagePrompts??{},[e]:t.target.value}),style:{...v,fontSize:11}})]},e))]}),u&&(0,n.jsx)("button",{type:"button",onClick:()=>void k(),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:s("tasks.settingsReset")})]}):(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",padding:8},children:s("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:s("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void x(),disabled:!a||g,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"#fff",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:s("tasks.save")})]})]})]})})}function dJ({open:e,onOpenChange:t,task:o}){let{t:s}=(0,F.s)();return((0,r.useEffect)(()=>{if(!e)return},[e,o]),e&&o)?(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:970,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},onMouseDown:e=>{e.target===e.currentTarget&&t(!1)},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:s("tasks.sessionTitle")}),(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)(p.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:s("tasks.sessionId")}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,overflowWrap:"anywhere"},children:o.conversationId??"—"})]}),o.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:s("tasks.sessionFile")}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,overflowWrap:"anywhere"},children:o.sessionFile})]}):null,(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",lineHeight:1.6},children:s("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:"#fff",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:s("i18n.close")})})]})]})}):null}let dY="__all__",dX="pi-tasks-board-filter",dZ={showCanceled:!1,showArchived:!1},dQ="pi:open-task-settings";function d0(){let{t:e}=(0,F.s)(),{attentionCount:t}=db();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)(aJ.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:"#dc2626",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(dQ)),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)(dS.O,{size:13,"aria-hidden":"true"}),e("tasks.settingsTitle")]})]})}function d1({activeProject:e}){let{t}=(0,F.s)(),{tasks:s,projects:i,refetch:a}=db(),[l,c]=(0,r.useState)(null),[p,u]=(0,r.useState)(()=>(function(){try{let e=window.localStorage.getItem(dX);if(e){let t=JSON.parse(e);return{showCanceled:t.showCanceled??!1,showArchived:t.showArchived??!1}}}catch{}return dZ})()),[h,g]=(0,r.useState)(!1);(0,r.useEffect)(()=>{try{window.localStorage.setItem(dX,JSON.stringify(p))}catch{}},[p]);let[m,f]=(0,r.useState)(null),[k,v]=(0,r.useState)(!1),y=(0,r.useRef)(null),b=(0,r.useRef)({x:0,y:0}),w=(0,r.useRef)(null),j=(0,r.useRef)(null),[S,C]=(0,r.useState)(null),T=(0,r.useRef)(null);T.current=S;let R=(0,r.useRef)(!1),z=(0,r.useRef)(!1),[I,M]=(0,r.useState)(()=>Date.now());(0,r.useEffect)(()=>{let e=window.setInterval(()=>M(Date.now()),6e4);return()=>window.clearInterval(e)},[]);let[P,E]=(0,r.useState)(!1),[D,W]=(0,r.useState)(null),[A,N]=(0,r.useState)(null);(0,r.useEffect)(()=>{let e=()=>{let e,t=(e=nZ,nZ=null,e);t&&(W(null),N(t),E(!0))};return e(),window.addEventListener(nX,e),()=>window.removeEventListener(nX,e)},[]);let[$,L]=(0,r.useState)(null),[O,H]=(0,r.useState)(null),[B,U]=(0,r.useState)(!1),[_,q]=(0,r.useState)(null),[V,K]=(0,r.useState)(!1),[G,J]=(0,r.useState)(null),[Y,X]=(0,r.useState)("retry"),[Z,Q]=(0,r.useState)(!1),[ee,et]=(0,r.useState)(null),[eo,en]=(0,r.useState)(!1),[er,es]=(0,r.useState)(!1),[ei,ea]=(0,r.useState)(null),[el,ed]=(0,r.useState)(!1);(0,r.useEffect)(()=>{let e=()=>es(!0);return window.addEventListener(dQ,e),()=>window.removeEventListener(dQ,e)},[]);let ec=(0,r.useMemo)(()=>null==l?s:s.filter(e=>e.projectRoot===l),[s,l]),ep=(0,r.useMemo)(()=>(function(e,t,o=!1){let n={todo:[],inProgress:[],attention:[],done:[]};for(let r of e)("canceled"!==r.status||t)&&(null==r.archivedAt||o)&&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"}}(r.status)].push(r);for(let e of dR)n[e].sort((e,t)=>(t.updatedAt??"").localeCompare(e.updatedAt??""));return n})(ec,p.showCanceled,p.showArchived),[ec,p]),eu=(0,r.useMemo)(()=>{let e=ep.todo;if(null==S)return e;let t=new Map(e.map(e=>[e.id,e])),o=S.flatMap(e=>t.get(e)??[]);for(let t of e)S.includes(t.id)||o.push(t);return o},[ep.todo,S]),eh=(0,r.useMemo)(()=>s.find(e=>e.id===$)??null,[s,$]),eg=(0,r.useMemo)(()=>s.find(e=>e.id===ei)??null,[s,ei]),em=(0,r.useCallback)(async e=>{try{await e()}catch(e){console.error("task action failed",e)}finally{a()}},[a]),ef=(0,r.useCallback)(e=>{null!=e.conversationId&&(ea(e.id),ed(!0))},[ea,ed]),ex=(0,r.useCallback)(e=>{H(e),U(!0)},[H,U]),ek=(0,r.useCallback)(()=>{W(null),E(!0)},[W,E]),ev=(0,r.useCallback)((e,t)=>{let o=w.current,n=y.current;o&&n&&(o.style.transform=`translate3d(${e-n.dx}px, ${t-n.dy}px, 0)`)},[]),ey=e=>{let t=e.currentTarget.getBoundingClientRect();y.current={dx:e.clientX-t.left,dy:e.clientY-t.top,width:t.width}},eb=(0,r.useCallback)(e=>{if(f(null),v(!1),e){R.current=!1;return}requestAnimationFrame(()=>{R.current=!1})},[f,v]),ew=(0,r.useCallback)(()=>{z.current=!0,C(null),eb(!0)},[eb,C]);(0,r.useEffect)(()=>{if(!m)return;let e=()=>{document.hidden&&ew()};return window.addEventListener("blur",ew),document.addEventListener("visibilitychange",e),()=>{window.removeEventListener("blur",ew),document.removeEventListener("visibilitychange",e)}},[m,ew]),(0,r.useEffect)(()=>{m&&!eu.some(e=>e.id===m.task.id)&&ew()},[m,eu,ew]);let ej=(0,r.useCallback)((e,t,o)=>{if(z.current){eb(!0),C(null);return}let n=j.current?.getBoundingClientRect(),r=null!=n&&t>=n.left&&t<=n.right&&o>=n.top&&o<=n.bottom;if(eb(!1),r){C(null);let t=s.find(t=>t.id===e.id);t?.status==="todo"&&null!=l&&em(()=>(0,rq.oQ)(e.id,e.projectRoot,"start"));return}let i=T.current;null!=l&&null!=i&&(async()=>{try{await (0,rq.Lu)(l,i)}catch(e){console.error("reorder failed",e)}await a(),C(null)})()},[em,eb,l,a,s]),eS=(0,r.useCallback)(()=>{em(async()=>{let e=await (0,rq.a5)(l);e>0&&console.log(`started ${e} tasks`)})},[em,l]),eC=(0,r.useCallback)(()=>{let e=ep.done.filter(e=>null==e.archivedAt);0!==e.length&&em(()=>Promise.all(e.map(e=>(0,rq.et)(e.id,e.projectRoot,!0))))},[em,ep.done]),eT=+(p.showCanceled!==dZ.showCanceled)+ +(p.showArchived!==dZ.showArchived),eR=s.length>0,ez=(0,r.useMemo)(()=>{let t=new Set(i);return e&&t.add(e),[...t].sort()},[i,e]),eI=(0,r.useMemo)(()=>{let e=new Map;for(let t of ez)e.set(t,t.split("/").filter(Boolean).pop()??t);return e},[ez]);return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0},children:[eR&&(0,n.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:8,padding:"14px 16px 8px"},children:[(0,n.jsxs)("select",{value:l??dY,onChange:e=>c(e.target.value===dY?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:dY,children:t("tasks.allFolders")}),ez.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)(dC.n,{size:13,"aria-hidden":"true"}),t("tasks.filter"),eT>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:eT}):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:p[e],onChange:t=>u(o=>({...o,[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)(dT.j,{size:13,"aria-hidden":"true"}),t("tasks.startAll")]}),(0,n.jsxs)("button",{type:"button",onClick:ek,style:{display:"inline-flex",alignItems:"center",gap:6,height:30,borderRadius:999,padding:"0 14px",background:"var(--accent)",color:"#fff",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:[(0,n.jsx)(x.F,{size:13,weight:"bold","aria-hidden":"true"}),t("tasks.new")]})]}),eR?(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:dM.map(e=>{let o="todo"===e?eu:ep[e],r=dP[e],s=e=>(0,n.jsx)(dN,{task:e,folderName:e.projectRoot?eI.get(e.projectRoot)??null:null,now:I,onOpen:()=>{R.current||L(e.id)},onStart:()=>void em(()=>(0,rq.oQ)(e.id,e.projectRoot,"start")),onCancel:()=>{q(e),K(!0)},onRetry:()=>{J(e),X("retry"),Q(!0)},onRequeue:()=>{J(e),X("requeue"),Q(!0)},onViewSession:()=>ef(e),onMerge:()=>{dz(e)?(et(e),en(!0)):ex(e)},onArchive:()=>void em(()=>(0,rq.et)(e.id,e.projectRoot,null==e.archivedAt)),onEdit:()=>{W(e),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:r.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:o.length}),(0,n.jsx)("div",{style:{flex:1}}),"done"===e&&ep.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===o.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&&m?k?{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&&m?k?{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:o.map(t=>"todo"===e?(0,n.jsx)("div",{draggable:!0,onDragStart:e=>{var o,n;e.dataTransfer.effectAllowed="move",o=e.clientX,n=e.clientY,R.current=!0,z.current=!1,b.current={x:o,y:n},f({task:t,width:y.current?.width??280})},onDrag:e=>{var t,o;let n,r;return b.current={x:t=e.clientX,y:o=e.clientY},ev(t,o),void((r=null!=(n=j.current?.getBoundingClientRect())&&t>=n.left&&t<=n.right&&o>=n.top&&o<=n.bottom)!==k&&v(r))},onDragEnd:e=>ej(t,e.clientX,e.clientY),onPointerDown:ey,style:{cursor:"grab",opacity:m?.task.id===t.id?.4:1},children:s(t)},t.id):(0,n.jsx)("div",{children:s(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)(aJ.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:ek,style:{display:"inline-flex",alignItems:"center",gap:6,padding:"7px 14px",borderRadius:8,background:"var(--accent)",color:"#fff",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:[(0,n.jsx)(x.F,{size:13,weight:"bold","aria-hidden":"true"}),t("tasks.new")]})]}),(0,n.jsx)(d_,{open:P,onOpenChange:E,task:D,defaultProject:A?.projectRoot??l??e??null,projects:ez,prefillTitle:A?A.text.slice(0,80):void 0,prefillPrompt:A?A.text:void 0,onSubmit:async(e,t,n)=>{await em(async()=>{let{createTaskApi:r}=await Promise.resolve().then(o.bind(o,23084)),{updateTaskApi:s}=await Promise.resolve().then(o.bind(o,23084));D?await s(D.id,e,{title:t,config:n}):await r({projectRoot:e,title:t,config:n})}),E(!1),N(null)}}),(0,n.jsx)(dB,{open:null!=$,onOpenChange:e=>{e||L(null)},task:eh,onViewSession:ef,onMerge:ex,onEdit:e=>{W(e),E(!0)},onCancel:e=>{q(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)(dq,{open:B,onOpenChange:U,task:O}),(0,n.jsx)(d$,{open:V,onOpenChange:K,task:_}),(0,n.jsx)(dV,{open:Z,onOpenChange:Q,task:G,kind:Y}),(0,n.jsx)(dL,{open:eo,onOpenChange:en,task:ee}),(0,n.jsx)(dJ,{open:el&&null!=eg,onOpenChange:ed,task:eg}),(0,n.jsx)(dG,{open:er,onOpenChange:es,projectRoot:l}),m?(0,d.createPortal)((0,n.jsx)("div",{ref:w,style:{position:"fixed",left:0,top:0,zIndex:999,pointerEvents:"none",width:m.width,willChange:"transform"},"aria-hidden":"true",children:(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8,borderRadius:12,border:k?"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:m.task.title}),(0,n.jsx)(dW,{task:m.task})]}),k?(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,fontSize:11,fontWeight:600,color:"var(--accent)"},children:[(0,n.jsx)(dT.j,{size:11,weight:"bold","aria-hidden":"true"}),t("tasks.dropToStart")]}):null]})}),document.body):null]})}var d2=o(62235);function d4(){return!!window.__TAURI_INTERNALS__}async function d6(){let{getCurrentWindow:e}=await o.e(8518).then(o.bind(o,38518));await e().minimize()}async function d8(){let{getCurrentWindow:e}=await o.e(8518).then(o.bind(o,38518));await e().toggleMaximize()}async function d5(){let{getCurrentWindow:e}=await o.e(8518).then(o.bind(o,38518));await e().startDragging()}async function d3(){let{getCurrentWindow:e}=await o.e(8518).then(o.bind(o,38518));await e().close()}async function d7(){let{getCurrentWindow:e}=await o.e(8518).then(o.bind(o,38518));return e().isMaximized()}function d9(){let[e,t]=(0,r.useState)(null);return(0,r.useEffect)(()=>{d4()&&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 ce="pi-web-island-pos";function ct(e,t,o,n,r,s){return{x:Math.min(Math.max(0,e),Math.max(0,o-r)),y:Math.min(Math.max(0,t),Math.max(0,n-s))}}let co={display:"flex",alignItems:"center",justifyContent:"center",width:32,height:32,padding:0,flexShrink:0,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",borderRadius:8,transition:"background 0.12s, color 0.12s"};function cn(){let{t:e}=(0,F.s)(),{isDark:t}=ov(),{isDesktop:o,isMacOS:s}=d9(),i=o&&!s,[a,l]=(0,r.useState)(!1),[d,c]=(0,r.useState)(null),[p,u]=(0,r.useState)(null),h=(0,r.useRef)(null),g=(0,r.useRef)(null),m=(0,r.useCallback)(e=>{e().catch(e=>{console.error("[DynamicIsland] window command failed:",e),c(String(e)),window.setTimeout(()=>c(null),4e3)})},[]),f=(0,r.useCallback)(()=>{window.location.reload()},[]);(0,r.useEffect)(()=>{if(!d4()||!i)return;let e=()=>{d7().then(l)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[i]),(0,r.useEffect)(()=>{if(i)try{let e=localStorage.getItem(ce);if(e){let t=JSON.parse(e);"number"==typeof t.x&&"number"==typeof t.y&&u(ct(t.x,t.y,window.innerWidth,window.innerHeight,152,42))}}catch{}},[i]),(0,r.useEffect)(()=>{if(i&&p)try{localStorage.setItem(ce,JSON.stringify(p))}catch{}},[p,i]);let[x,k]=(0,r.useState)(0);(0,r.useEffect)(()=>{if(!i)return;let e=()=>{k(window.innerWidth),u(e=>e?ct(e.x,e.y,window.innerWidth,window.innerHeight,152,42):e)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[i]);let v=(0,r.useCallback)(e=>{if(0!==e.button||e.target.closest?.("[data-island-btn]"))return;let t=h.current;if(!t)return;let o=t.getBoundingClientRect();g.current={startX:e.clientX,startY:e.clientY,origX:o.left,origY:o.top},e.currentTarget.setPointerCapture(e.pointerId)},[]),y=(0,r.useCallback)(e=>{let t=g.current;if(!t)return;let o=e.clientX-t.startX,n=e.clientY-t.startY;u(ct(t.origX+o,t.origY+n,window.innerWidth,window.innerHeight,152,42))},[]),b=(0,r.useCallback)(e=>{g.current=null;try{e.currentTarget.releasePointerCapture(e.pointerId)}catch{}},[]),w=(0,r.useCallback)(()=>(l(e=>!e),d8()),[]),S=(0,r.useCallback)(e=>{if(!g.current&&!e.target.closest?.("[data-island-btn]")){u(null);try{localStorage.removeItem(ce)}catch{}}},[]);if(!i)return null;let C=x||window.innerWidth,T=null!==p?p.x:Math.max(0,C-152-14);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{ref:h,role:"toolbar","aria-label":e("desktop.islandLabel"),title:e("desktop.islandResetHint"),onPointerDown:v,onPointerMove:y,onPointerUp:b,onPointerCancel:b,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:2,padding:"4px 6px",borderRadius:999,background:"color-mix(in srgb, var(--bg-panel) 88%, transparent)",border:"1px solid var(--border)",boxShadow:t?"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)("button",{type:"button","data-island-btn":!0,"aria-label":e("desktop.refreshSession"),title:e("desktop.refreshSession"),onClick:f,style:co,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)(j.S,{size:14,"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":e("desktop.minimize"),title:e("desktop.minimize"),onClick:()=>m(d6),style:co,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:"0",y1:"5",x2:"10",y2:"5"})})}),(0,n.jsx)("button",{type:"button","data-island-btn":!0,"aria-label":e(a?"desktop.restore":"desktop.maximize"),title:e(a?"desktop.restore":"desktop.maximize"),onClick:()=>m(w),style:co,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":e("desktop.close"),title:e("desktop.close"),onClick:()=>m(d3),style:co,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"})]})})]}),d&&(0,n.jsx)("div",{role:"alert",style:{position:"fixed",top:(null!==p?p.y:100)+42+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:t?"0 6px 24px rgba(0,0,0,0.45)":"0 6px 20px rgba(0,0,0,0.12)",pointerEvents:"none"},children:d})]})}function cr({isDark:e,toggleTheme:t,translate:o}){let[s,i]=(0,r.useState)(!1);(0,r.useEffect)(()=>{i(!0)},[]);let a=o(s?e?"desktop.switchToLight":"desktop.switchToDark":"desktop.switchToLight");return(0,n.jsx)("button",{className:"app-no-drag",suppressHydrationWarning:!0,onClick:e=>{let o=e.currentTarget.getBoundingClientRect();t({x:o.left+o.width/2,y:o.top+o.height/2})},title:a,"aria-label":a,"aria-pressed":!s||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:s?e?(0,n.jsx)(aL.b,{size:16,"aria-hidden":"true"}):(0,n.jsx)(a$.A,{size:16,"aria-hidden":"true"}):(0,n.jsx)(aL.b,{size:16,"aria-hidden":"true"})})}function cs({topBarRef:e,sidebarOpen:t,onSidebarToggle:o,isDark:s,toggleTheme:i,isMobile:a,showTasks:l,tasksBoardEnabled:d,onToggleTasks:c,systemPrompt:p,activeTopPanel:u,topPanelPos:g,sessionStats:m,selectedSession:f,contextUsage:x,copiedSessionField:k,onCopySessionField:v,rightPanelOpen:b,onToggleFilePanel:w,onRefreshSession:S,onOpenSettings:C,sessionTitle:T,onWorkspaceControlsHostChange:R,onTitleRightHostChange:z,desktopChrome:I,windowDrag:M}){let P,E,D,W,A,N,$,L,O,H,B,{t:U}=(0,F.s)(),[_,q]=(0,r.useState)(!1),[V,K]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{try{K(new URLSearchParams(window.location.search).has("piweb_connected"))}catch{K(!1)}},[]),(0,n.jsxs)(n.Fragment,{children:[(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:"var(--bg-panel)",position:"relative",zIndex:600,paddingLeft:76*!!I?.isMacOS},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",minWidth:0,height:"100%",flex:"0 1 auto"},children:[(0,n.jsx)("button",{className:"app-no-drag",onClick:o,title:t?U("desktop.hideSidebar"):U("desktop.showSidebar"),"aria-label":t?U("desktop.hideSidebar"):U("desktop.showSidebar"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,flexShrink:0,background:t?"var(--bg-selected)":"none",border:"none",color:t?"var(--text)":"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="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background=t?"var(--bg-selected)":"none",e.currentTarget.style.color=t?"var(--text)":"var(--text-muted)"},children:t?(0,n.jsx)(d2.V,{size:16,"aria-hidden":"true"}):(0,n.jsx)(y.B,{size:16,"aria-hidden":"true"})}),(0,n.jsx)("div",{className:"app-no-drag",ref:R,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:{flex:1,minWidth:0,display:"flex",alignItems:"center",justifyContent:"center",height:"100%",padding:"0 12px",overflow:"hidden",userSelect:"none"},children:[T&&(0,n.jsx)("button",{type:"button",onClick:()=>{a&&q(!0)},title:a?T:void 0,style:{display:"block",flex:"0 1 auto",minWidth:0,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:T}),(0,n.jsx)("div",{className:"app-no-drag",ref:z,style:{flexShrink:0,display:"flex",alignItems:"center",marginLeft:4}})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:3,minWidth:0,height:"100%",flexShrink:1,overflow:"hidden"},children:[!a&&d&&(0,n.jsx)("button",{className:"app-no-drag",onClick:c,title:l?U("desktop.hideTaskBoard"):U("desktop.showTaskBoard"),"aria-label":l?U("desktop.hideTaskBoard"):U("desktop.showTaskBoard"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:l?"var(--bg-selected)":"none",border:"none",color:l?"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=l?"var(--bg-selected)":"none",e.currentTarget.style.color=l?"var(--text)":"var(--text-muted)"},children:(0,n.jsx)(aJ.x,{size:16,"aria-hidden":"true"})}),(0,n.jsx)("button",{className:"app-no-drag",onClick:w,title:b?U("desktop.hideFilePanel"):U("desktop.showFilePanel"),"aria-label":b?U("desktop.hideFilePanel"):U("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)(d2.V,{size:16,"aria-hidden":"true",style:{transform:"scaleX(-1)"}})}),(0,n.jsx)(cr,{isDark:s,toggleTheme:i,translate:U}),V&&(0,n.jsx)("button",{className:"app-no-drag",type:"button",onClick:()=>{window.location.href="piweb-switch://manage"},title:U("desktop.serverSwitch"),"aria-label":U("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)(ax.X,{size:16,"aria-hidden":"true"})}),!V&&(0,n.jsx)("button",{className:"app-no-drag",type:"button",onClick:S,title:U("desktop.refreshSession"),"aria-label":U("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)(j.S,{size:16,"aria-hidden":"true"})}),(0,n.jsx)("button",{className:"app-no-drag",type:"button",onClick:C,title:U("desktop.settings"),"aria-label":U("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)(dS.O,{size:16,"aria-hidden":"true"})})]})]}),(0,n.jsx)(cn,{}),u&&g&&(0,n.jsxs)("div",{style:{position:"fixed",top:g.top,left:g.left,width:g.width,maxHeight:`calc(100dvh - ${g.top}px)`,overflowY:"auto",zIndex:500},children:["system"===u&&(0,n.jsx)("div",{style:{background:"var(--bg-panel)",borderBottom:"1px solid var(--border)"},children:p?(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:p}):""===p?(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"===u&&(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:m?(P=[...m.sessionName?[{label:U("desktop.name"),value:m.sessionName,copyField:null}]:[],{label:U("desktop.sessionInfoFile"),value:m.sessionFile??U("desktop.sessionInfoInMemory"),copyField:"file"},{label:U("desktop.sessionInfoId"),value:m.sessionId,copyField:"id"}],E=[[U("desktop.sessionInfoUser"),m.userMessages.toLocaleString()],[U("desktop.sessionInfoAssistant"),m.assistantMessages.toLocaleString()],[U("desktop.sessionInfoToolCalls"),m.toolCalls.toLocaleString()],[U("desktop.sessionInfoToolResults"),m.toolResults.toLocaleString()],[U("desktop.sessionInfoTotal"),m.totalMessages.toLocaleString()]],D=[[U("desktop.sessionInfoInput"),m.tokens.input.toLocaleString()],[U("desktop.sessionInfoOutput"),m.tokens.output.toLocaleString()],...m.tokens.cacheRead>0?[[U("desktop.sessionInfoCacheRead"),m.tokens.cacheRead.toLocaleString()]]:[],...m.tokens.cacheWrite>0?[[U("desktop.sessionInfoCacheWrite"),m.tokens.cacheWrite.toLocaleString()]]:[],[U("desktop.sessionInfoTotal"),m.tokens.total.toLocaleString()]],W=x??m.contextUsage,N=[...m.cost>0?[[U("desktop.sessionInfoCost"),`$${m.cost.toFixed(4)}`]]:[],...W?.contextWindow?[[U("desktop.sessionInfoContext"),`${null!==W.percent?`${W.percent.toFixed(1)}%`:"?"} / ${(A=W.contextWindow)>=1e6?`${(A/1e6).toFixed(1)}M`:A>=1e3?`${(A/1e3).toFixed(0)}k`:String(A)}`]]:[]],$=(e,t,o="left",r=!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:r?"max-content max-content":"auto minmax(0, 1fr)",columnGap:r?14:12,rowGap:4,justifyContent:r?"start":void 0},children:t.map(([t,s])=>(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:r?"normal":"anywhere",textAlign:o,whiteSpace:"right"===o?"nowrap":"normal"},children:s})]},`${e}:${t}`))})]}),L=(e,t)=>{let o=k===e;return(0,n.jsx)("button",{type:"button",title:o?U("desktop.copied"):U({file:"desktop.copyFilePath",id:"desktop.copySessionId",projectDir:"desktop.copyProjectDir",gitBranch:"desktop.copyGitBranch",gitWorktree:"desktop.copyGitWorktree"}[e]),onClick:()=>v(e,t),style:{alignSelf:"start",display:"inline-flex",alignItems:"center",justifyContent:"center",width:22,height:22,marginTop:-2,color:o?"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=o?"var(--accent)":"var(--text-dim)",e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="transparent"},children:o?(0,n.jsx)(h.J,{size:12,"aria-hidden":"true"}):(0,n.jsx)(tj.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:U("desktop.sessionInfoTitle")}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:12,rowGap:8,alignItems:"start"},children:P.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?L(e.copyField,e.value):null})]},`session-info:${e.label}`))})]}),B=(H=[...f?[{label:U("desktop.projectDir"),value:f.projectRoot??f.cwd,copyField:"projectDir"}]:[],...f?.branch?[{label:U("desktop.gitBranch"),value:f.branch,copyField:"gitBranch"}]:[],...f?.isWorktree?[{label:U("desktop.gitWorktree"),value:f.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:U("desktop.projectSection")}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:12,rowGap:8,alignItems:"start"},children:H.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?L(e.copyField,e.value):null})]},`project-info:${e.label}`))})]}):null,(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:a?"1fr":"minmax(360px, 1.7fr) minmax(140px, 0.55fr) minmax(190px, 0.75fr)",gap:a?16:24,fontSize:12,lineHeight:1.5,fontFamily:"var(--font-mono)"},children:[(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:a?16:20,minWidth:0},children:[O,B]}),$(U("desktop.sessionInfoMessages"),E),$(U("desktop.sessionInfoTokens"),[...D,...N],"right",!0)]})):(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:U("desktop.sendMessageForSessionInfo")})})]}),_&&T&&(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:3e3,display:"flex",alignItems:"flex-start",justifyContent:"center",paddingTop:48,background:"rgba(0,0,0,0.35)"},onMouseDown:e=>{e.target===e.currentTarget&&q(!1)},children:(0,n.jsx)("div",{role:"dialog","aria-label":T,style:{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 18px",fontSize:13,lineHeight:1.6,color:"var(--text)",wordBreak:"break-word",whiteSpace:"pre-wrap"},children:T})})]})}function ci({cwd:e,busy:t,error:o,onCancelAction:r,onConfirmAction:s}){let{t:i}=(0,F.s)();return(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)"},onClick:e=>{t||e.target!==e.currentTarget||r()},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)(nJ.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:i("desktop.trustProjectTitle")}),(0,n.jsx)("p",{style:{margin:"7px 0 0",fontSize:12,lineHeight:1.6,color:"var(--text-muted)"},children:i("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}),o&&(0,n.jsx)("div",{role:"alert",style:{marginTop:10,color:"var(--accent-red)",fontSize:12,lineHeight:1.5},children:o})]})]}),(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:r,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:i("desktop.cancel")}),(0,n.jsx)("button",{type:"button",onClick:s,disabled:t,style:{height:32,padding:"0 12px",border:"1px solid var(--accent)",borderRadius:5,background:"var(--accent)",color:"white",cursor:t?"wait":"pointer",opacity:t?.7:1,fontSize:12,fontWeight:600},children:i(t?"desktop.trustingProject":"desktop.trustProject")})]})]})})}function ca(e,t,o){let n=Number.isFinite(e)?e:t,r=Math.max(t,o);return Math.round(Math.max(t,Math.min(r,n)))}function cl(e){return ca(.42*e,360,640)}function cd(e,t){try{window.localStorage.setItem(e,String(t))}catch{}}function cc(e){let{ariaLabel:t,cssVariable:o,defaultWidth:n,getDefaultWidth:s,getMaxWidth:i,growthDirection:a,maxWidth:l,minWidth:d,storageKey:c,widthRef:p}=e,u=(0,r.useRef)(null),h=(0,r.useRef)(null),g=(0,r.useRef)(!1),[m,f]=(0,r.useState)(n),[x,k]=(0,r.useState)(!1),[v,y]=(0,r.useState)(!1);(0,r.useEffect)(()=>{y(!0)},[]);let b=(0,r.useCallback)(()=>Math.min(l,Math.max(d,i())),[i,l,d]),w=(0,r.useCallback)(e=>ca(e,d,b()),[b,d]),j=(0,r.useCallback)(e=>{p.current=e;let t=`${e}px`;u.current?.style.setProperty(o,t),u.current?.parentElement?.style.setProperty(o,t)},[o,p]),S=(0,r.useCallback)((e,t={})=>{let{forcePersist:o=!1,persist:n=!0}=t,r=w(e),s=r!==p.current;return j(r),f(r),n&&(s||o)&&cd(c,r),r},[j,w,c,p]),C=(0,r.useCallback)(e=>{document.body.style.cursor=e.previousCursor,document.body.style.userSelect=e.previousUserSelect},[]),T=(0,r.useCallback)(e=>{let t=h.current;if(t&&t.pointerId===e){h.current=null,C(t),k(!1),S(p.current,{forcePersist:!0});try{t.target.hasPointerCapture(e)&&t.target.releasePointerCapture(e)}catch{}}},[S,C,p]),R=(0,r.useCallback)(e=>{if("mouse"===e.pointerType&&0!==e.button)return;e.preventDefault(),e.stopPropagation();let t=h.current;t&&T(t.pointerId);let o=e.currentTarget;o.focus({preventScroll:!0}),o.setPointerCapture(e.pointerId),h.current={pointerId:e.pointerId,startX:e.clientX,startWidth:p.current,target:o,previousCursor:document.body.style.cursor,previousUserSelect:document.body.style.userSelect},document.body.style.cursor="col-resize",document.body.style.userSelect="none",k(!0)},[T,p]),z=(0,r.useCallback)(e=>{let t=h.current;if(!t||t.pointerId!==e.pointerId)return;if("mouse"===e.pointerType&&0===e.buttons)return void T(e.pointerId);e.preventDefault();let o="right"===a?1:-1,n=w(t.startWidth+(e.clientX-t.startX)*o);j(n),e.currentTarget.setAttribute("aria-valuenow",String(n)),e.currentTarget.setAttribute("aria-valuetext",`${n} px`)},[j,w,T,a]),I=(0,r.useCallback)(e=>{T(e.pointerId)},[T]),M=(0,r.useCallback)(e=>{T(e.pointerId)},[T]),P=(0,r.useCallback)(e=>{T(e.pointerId)},[T]),E=(0,r.useCallback)(()=>{S(s?.()??n,{forcePersist:!0})},[S,n,s]),F=(0,r.useCallback)(()=>{S(p.current)},[S,p]),D=(0,r.useCallback)(e=>{let t=e.shiftKey?32:12,o="right"===a?"ArrowRight":"ArrowLeft",n="right"===a?"ArrowLeft":"ArrowRight";e.key===o?(e.preventDefault(),S(p.current+t,{forcePersist:!0})):e.key===n?(e.preventDefault(),S(p.current-t,{forcePersist:!0})):"Home"===e.key?(e.preventDefault(),S(d,{forcePersist:!0})):"End"===e.key?(e.preventDefault(),S(b(),{forcePersist:!0})):"Enter"===e.key&&(e.preventDefault(),E())},[S,b,a,d,E,p]);return(0,r.useEffect)(()=>{if(g.current)return;g.current=!0;let e=function(e){try{let t=window.localStorage.getItem(e);if(null===t)return null;let o=Number.parseInt(t,10);return Number.isFinite(o)?o:null}catch{return null}}(c),t=S(e??s?.()??n,{persist:!1});null!==e&&e!==t&&cd(c,t)},[S,n,s,c]),(0,r.useEffect)(()=>{if(!g.current)return;S(p.current);let e=()=>{S(p.current)};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[S,p]),(0,r.useEffect)(()=>{if(!x)return;let e=()=>{let e=h.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,x]),(0,r.useEffect)(()=>()=>{let e=h.current;e&&(h.current=null,C(e))},[C]),{isResizing:x,panelRef:u,reclampWidth:F,separatorProps:{"aria-label":t,"aria-orientation":"vertical","aria-valuemax":v?b():l,"aria-valuemin":d,"aria-valuenow":m,"aria-valuetext":`${m} px`,onDoubleClick:E,onKeyDown:D,onLostPointerCapture:P,onPointerCancel:M,onPointerDown:R,onPointerMove:z,onPointerUp:I,role:"separator",tabIndex:0},width:m}}function cp(){let e,t,o,d=(0,a.useRouter)(),c=(0,a.useSearchParams)(),p=(0,r.useMemo)(()=>{let e;return{requestedCwd:e=c.get("cwd")?.trim()||null,sessionId:e?null:c.get("session")}},[c]),{isDark:u,toggleTheme:h}=ov(),{t:g}=(0,F.s)(),m=$(),[f,x]=(0,r.useState)(null),[k,v]=(0,r.useState)(null),[y,b]=(0,r.useState)(0),[w,j]=(0,r.useState)(0),[S,C]=(0,r.useState)(0),[T,R]=(0,r.useState)(!1),[z,I]=(0,r.useState)("models"),[M,P]=(0,r.useState)(0),[E,D]=(0,r.useState)(null),[W,A]=(0,r.useState)(!1),[N,L]=(0,r.useState)(!1),[O,H]=(0,r.useState)(null),[B,U]=(0,r.useState)(!0),[_,q]=(0,r.useState)(!1);(0,r.useEffect)(()=>{m&&U(!1)},[m]),(0,r.useEffect)(()=>{q(!0)},[]);let V=(0,r.useRef)(null),K=(0,r.useRef)(null),[G,J]=(0,r.useState)(null),[Y,X]=(0,r.useState)(null),[Z,Q]=(0,r.useState)(null),ee=d9(),et=function(){let{isDesktop:e,isMacOS:t}=d9(),o=(0,r.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?d8():d5())},[]);return e&&!t?{onMouseDown:o}:{}}(),[eo,en]=(0,r.useState)(null),er=(0,r.useCallback)(e=>{en(e)},[]),[es,ei]=(0,r.useState)(null),el=(0,r.useCallback)(e=>{ei(e)},[]),[ed,ec]=(0,r.useState)([]),ep=(0,r.useCallback)(e=>{ec(e)},[]),eu=ed.filter(e=>"running"===e.status).length,[eh,eg]=(0,r.useState)(null),em=(0,r.useRef)(null),ef=(0,r.useCallback)((e,t)=>{oy(t).then(()=>{em.current&&clearTimeout(em.current),eg(e),em.current=setTimeout(()=>eg(null),1400)})},[]);(0,r.useEffect)(()=>()=>{em.current&&clearTimeout(em.current)},[]);let[ex,ek]=(0,r.useState)(null),ev=(0,r.useCallback)(e=>{ek(e)},[]),[ey,eb]=(0,r.useState)(null),[ew,ej]=(0,r.useState)(null),eS=(0,r.useCallback)(()=>{m&&U(!1),eb("session")},[m]),eC=(0,r.useCallback)(()=>{m&&eb(null),U(e=>!e)},[m]);(0,r.useEffect)(()=>{if(!ey||!K.current)return;let e=()=>{let e=K.current.getBoundingClientRect();ej({top:e.bottom,left:e.left,width:e.width})};e();let t=new ResizeObserver(e);return t.observe(K.current),()=>t.disconnect()},[ey]);let[eT,eR]=(0,r.useState)([]),[ez,eI]=(0,r.useState)(null),[eM,eP]=(0,r.useState)(!1),[eE,eD]=(0,r.useState)(!1),[eW,eA]=(0,r.useState)(null),eN=(0,r.useCallback)(e=>{eA(e??null),eD(!0),eP(!0),m&&U(!1)},[m]),e$=(0,r.useCallback)(()=>{eD(!1),eA(null)},[]),[eL,eO]=(0,r.useState)(null),eH=(0,r.useCallback)(e=>eO(e),[]),eB=(0,r.useCallback)(()=>eO(null),[]);(0,r.useEffect)(()=>{if(!eL)return;let e=e=>{"Escape"===e.key&&(e.stopImmediatePropagation(),e.preventDefault(),eO(null))};return window.addEventListener("keydown",e,!0),()=>window.removeEventListener("keydown",e,!0)},[eL]);let eU=(0,r.useRef)(260),e_=(0,r.useRef)(cl(1366)),eV=(0,r.useCallback)(()=>cl(window.innerWidth),[]),eK=(0,r.useCallback)(()=>(function(e){let{viewportWidth:t,rightPanelOpen:o,rightPanelWidth:n}=e;if(t<=640)return 480;let r=t<960;return Math.min(480,t-(r?320:420)-(!r&&o?n:0))})({viewportWidth:window.innerWidth,rightPanelOpen:eM,rightPanelWidth:e_.current}),[eM]),eG=(0,r.useCallback)(()=>(function(e){let{viewportWidth:t,sidebarOpen:o,sidebarWidth:n}=e;return t<960?1200:Math.min(1200,t-420-(o?n:0))})({viewportWidth:window.innerWidth,sidebarOpen:B,sidebarWidth:eU.current}),[B]),eJ=cc({ariaLabel:g("desktop.resizeSidebar"),cssVariable:"--sidebar-width",defaultWidth:260,getMaxWidth:eK,growthDirection:"right",maxWidth:480,minWidth:180,storageKey:"pi-sidebar-width",widthRef:eU}),eY=cc({ariaLabel:g("desktop.resizeFilePanel"),cssVariable:"--right-panel-width",defaultWidth:cl(1366),getDefaultWidth:eV,getMaxWidth:eG,growthDirection:"left",maxWidth:1200,minWidth:300,storageKey:"pi-right-panel-width",widthRef:e_}),eX=eJ.reclampWidth,eZ=eY.reclampWidth;(0,r.useEffect)(()=>{eM&&(eX(),eZ())},[eZ,eX,eM]);let eQ=(0,r.useCallback)((e,t)=>{V.current?.insertText(r_(e,t))},[]),e0=(0,r.useCallback)(e=>{let t=e.map(e=>r_(e,!1)).join("");t&&V.current?.insertText(t)},[]),e1=(0,r.useCallback)((e,t,o)=>{let n,r,s,i;V.current?.insertText((n=Math.max(1,Math.min(t,o)),r=Math.max(1,Math.max(t,o)),s=e.includes(" ")?`@"${e}"`:`@${e}`,i=n===r?`:${n}`:`:${n}-${r}`,`${s}${i} `))},[]),[e2,e6]=(0,r.useState)(()=>p.sessionId),[e8,e5]=(0,r.useState)(null),[e3,e7]=(0,r.useState)(()=>p.requestedCwd?"validating":"idle"),[e9,te]=(0,r.useState)(null),[tt,to]=(0,r.useState)(()=>!e2),tn=(0,r.useRef)(!1),tr=(0,r.useRef)(new Map),[ts,ti]=(0,r.useState)(null),ta=(0,r.useRef)("");(0,r.useEffect)(()=>{let e=`${p.requestedCwd??""}|${p.sessionId??""}`;ta.current!==e&&(ta.current=e,e6(p.sessionId),to(!p.sessionId),p.requestedCwd||e7("idle"),te(null))},[p]),(0,r.useEffect)(()=>{let e=p.requestedCwd;if(!e)return;let t=new AbortController;return e7("validating"),te(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}`);tn.current=!0,v(t.cwd),e7("ready")}).catch(e=>{t.signal.aborted||(te(e instanceof Error?e.message:String(e)),e7("error"))}),()=>t.abort()},[p]);let tl=(0,r.useCallback)((e,t)=>{if(!e)return;if(e5(e),tn.current&&f&&eF(f.projectRoot??f.cwd,t??e)){if(tn.current=!1,f){let e=f.projectRoot??f.cwd;e&&tr.current.set(e,f.id)}return}tn.current=!1;let o=t??e;if(f&&eF(f.projectRoot??f.cwd,o)){(f.projectRoot??f.cwd)&&tr.current.set(o,f.id);return}if(f){let e=f.projectRoot??f.cwd;e&&tr.current.set(e,f.id)}x(null),v(t=>t&&t!==e?null:t),j(e=>e+1),en(null),eb(null),window.history.replaceState(null,"","/");let n=tr.current.get(o);ti(n?{projectRoot:o,sessionId:n}:null)},[f]);(0,r.useEffect)(()=>{let e=e8?ea(e8)||e8:null;document.title=e?`${e} — Pi Agent Web`:"Pi Agent Web"},[e8]);let td=(0,r.useCallback)((e,t=!1)=>{if(t||ti(null),!t&&f){let t=eF(f.projectRoot??f.cwd,e.projectRoot??e.cwd);if(f.id===e.id&&t){m&&U(!1);return}}let o=e.projectRoot??e.cwd;o&&tr.current.set(o,e.id),v(null),x(e),j(e=>e+1),en(null),to(!0),m&&!t&&U(!1),t&&(tn.current=!0),t||window.history.replaceState(null,"",`?session=${encodeURIComponent(e.id)}`)},[m,f]),tc=(0,r.useRef)(()=>{});(0,r.useEffect)(()=>{tc.current=td},[td]);let tp=(0,r.useCallback)(e=>{fetch("/api/sessions").then(e=>e.ok?e.json():null).then(t=>{let o=t?.sessions.find(t=>t.id===e);o&&x(t=>!t||t.id!==e||t.projectRoot&&t.name?t:o)}).catch(()=>{})},[]);(0,r.useEffect)(()=>{if(!ts)return;let{projectRoot:e,sessionId:t}=ts;tc.current({path:"",id:t,cwd:e,created:"",modified:"",messageCount:0,firstMessage:"",projectRoot:e},!0),tp(t),window.history.replaceState(null,"",`?session=${encodeURIComponent(t)}`),ti(null)},[ts,tp]);let tu=(0,r.useCallback)((e,t)=>{ti(null),x(null),v(t),j(e=>e+1),en(null),eb(null),m&&U(!1),window.history.replaceState(null,"","/")},[d,m]);!function(e){let{onNewSession:t,activeCwd:o}=e;(0,r.useEffect)(()=>{let e=e=>{if("Escape"===e.key){if(!l)return;let t=e.target?.tagName;if("TEXTAREA"===t||"INPUT"===t)return;e.preventDefault(),l();return}if("n"===e.key&&e.ctrlKey&&e.altKey){if(!o||!t)return;e.preventDefault(),t(o)}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[o,t])}({onNewSession:e=>tu(`kb-${Date.now()}`,e),activeCwd:e8});let th=(0,r.useCallback)(e=>{v(null),ti(null);let t=e.projectRoot??e.cwd;t&&tr.current.set(t,e.id),x(e),e.cwd&&e5(e.cwd),b(e=>e+1),tp(e.id),window.history.replaceState(null,"",`?session=${encodeURIComponent(e.id)}`),window.setTimeout(()=>b(e=>e+1),1200),window.setTimeout(()=>b(e=>e+1),4e3)},[d,tp]),tg=(0,r.useCallback)(()=>{b(e=>e+1),C(e=>e+1)},[]),tm=(0,r.useCallback)(e=>{b(e=>e+1),j(e=>e+1),v(null),ti(null),x(t=>{let o={...t??{path:"",cwd:"",created:"",modified:"",messageCount:0,firstMessage:""},id:e},n=o.projectRoot??o.cwd;return n&&tr.current.set(n,e),o}),tp(e),window.history.replaceState(null,"",`?session=${encodeURIComponent(e)}`)},[d,tp]),tf=(0,r.useCallback)(()=>{to(!0)},[]),tx=(0,r.useCallback)(e=>{if(b(e=>e+1),f?.id===e){let e=f.cwd;x(null),v(e??null),j(e=>e+1),en(null),eb(null),window.history.replaceState(null,"","/")}},[d,f]),tk=(0,r.useCallback)((e,t,o,n)=>{let r="string"==typeof o||null===o?o:void 0,s="object"==typeof o&&null!==o?o:n,i=`file:${e}`;eR(o=>{let n=o.find(e=>e.id===i);return n?r&&n.sourceSessionId!==r||s?.initialDisplayMode&&n.initialDisplayMode!==s.initialDisplayMode?o.map(e=>e.id===i?{...e,sourceSessionId:r??e.sourceSessionId,initialDisplayMode:s?.initialDisplayMode??e.initialDisplayMode}:e):o:[...o,{id:i,label:t,filePath:e,sourceSessionId:r,initialDisplayMode:s?.initialDisplayMode}]}),eI(i),eP(!0),m&&U(!1)},[m]),tv=(0,r.useCallback)(e=>{tk(e,ea(e),f?.id??null)},[tk,f?.id]),ty=(0,r.useCallback)(e=>{eR(t=>{let o=t.filter(t=>t.id!==e);return 0===o.length&&eP(!1),o}),eI(t=>{if(t!==e)return t;let o=eT.filter(t=>t.id!==e);return o.length>0?o[o.length-1].id:null})},[eT]),tb=(0,r.useCallback)(e=>{C(e=>e+1),tk(e,ea(e))},[tk]),tw=(0,r.useCallback)((e,t)=>{C(e=>e+1);let o=e.endsWith("/")?e:e+"/",n=n=>n===e||t&&n.startsWith(o);eR(e=>{let t=e.filter(e=>!n(e.filePath));return 0===t.length&&eP(!1),t}),eI(e=>{if(!e)return e;let t=eT.find(t=>t.id===e);if(!t||!n(t.filePath))return e;let o=eT.filter(e=>!n(e.filePath));return o.length>0?o[o.length-1].id:null})},[eT]),tj=f?eq(f.name||es?.sessionName)||f.firstMessage.slice(0,50)||f.id.slice(0,12):(e=e8??k)?e.replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean).pop()||e:null,tS=(0,r.useCallback)(()=>{f&&window.open(`/api/sessions/${encodeURIComponent(f.id)}/export?inline=1`,"_blank","noopener,noreferrer")},[f]),tC=k??(null===f&&e8?e8:null),tT="validating"!==e3&&"error"!==e3&&(null!==f||null!==tC),tR=f?.id;(0,r.useEffect)(()=>{eL&&eO(null)},[tR,tT]);let tz=f?.cwd??tC,[tI,tM]=(0,r.useState)(!1),tP=(0,r.useCallback)(()=>{m||tM(e=>!e)},[m]),[tE,tF]=(0,r.useState)(!0);(0,r.useEffect)(()=>{let e=!1,t=()=>fetch("/api/features").then(e=>e.ok?e.json():null).then(t=>{!e&&t&&"boolean"==typeof t.tasksBoard&&(tF(t.tasksBoard),t.tasksBoard||tM(!1))}).catch(()=>{});t();let o=()=>t();return window.addEventListener("pi:features-changed",o),()=>{e=!0,window.removeEventListener("pi:features-changed",o)}},[]);let tD=tt&&!tT;(0,r.useEffect)(()=>{let e=()=>{m||tM(!0)};return window.addEventListener(iU,e),()=>window.removeEventListener(iU,e)},[m]),(0,r.useEffect)(()=>{if(D(null),A(!1),H(null),!tz)return;let e=new AbortController;return fetch(`/api/project-trust?cwd=${encodeURIComponent(tz)}`,{signal:e.signal}).then(async e=>{let t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);D(t)}).catch(e=>{e instanceof DOMException&&"AbortError"===e.name||console.error("Failed to load project trust:",e)}),()=>e.abort()},[tz]);let tW=(0,r.useCallback)(async()=>{if(tz&&!N){L(!0),H(null);try{let e=await fetch("/api/project-trust",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:tz})}),t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);D(t),A(!1),P(e=>e+1),j(e=>e+1)}catch(e){H(e instanceof Error?e.message:String(e))}finally{L(!1)}}},[N,tz]),tA=eT.find(e=>e.id===ez)??null,tN=e8??f?.cwd??k,t$=(0,r.useCallback)(e=>{I(e),R(!0)},[]),tL=(0,n.jsx)(n.Fragment,{children:(0,n.jsx)(e4,{selectedSessionId:f?.id??null,onSelectSession:td,onNewSession:tu,initialSessionId:e2,onInitialRestoreDone:tf,refreshKey:y,onSessionDeleted:tx,selectedCwd:f?.cwd??k??null,onCwdChange:tl,onOpenFile:tk,selectedSessionStats:es,onOpenSettings:e=>{t$(["models","skills","plugins","chat","features","logs"].includes(e)?e:"models")},explorerRefreshKey:S,onAtMention:eQ,onAtMentions:e0,onFileCreated:tb,onFileDeleted:tw,workspaceControlsHosts:{title:G,welcome:Z,titleRight:Y},showWorkspaceControls:!0})});return(0,n.jsxs)(dw,{children:[(0,n.jsx)("style",{children:`
38
38
  @media (max-width: 640px) {
39
39
  .sidebar-overlay-backdrop.sidebar-mobile-pending {
40
40
  opacity: 0 !important;